void CCamera::Init(const POINT3D &pos,const Vector4D& dir,float fov,float nearz,
		  float farz,float viewport_width,float viewport_height )
{

	m_pos = pos;
	m_dir = dir;
	m_fov = fov;
	m_nearclipz = nearz;
	m_farclipz  = farz;
	m_viewport_width = viewport_width;
	m_viewport_height = viewport_height;
	m_aspectratio = m_viewport_width/m_viewport_height;
	m_imageplannar_width = 2;
	m_imageplannar_height = 2/m_aspectratio;
	m_imageplannar_viewdist = 1/tan(DEG2RAD *(m_fov/2));



	m_w2camMatrix.Identity();
	m_c2prjMatrix.Identity();
	m_p2ScrMatrix.Identity();

	SetWorldToCameraMatrix();
	SetCameraToProjectionMatrix();
	SetProjectionToScreenMatrix();
	
}
Beispiel #2
0
ProjectionFrustum::ProjectionFrustum(float fov, float z_near, float z_far)
: camera_clip_matrix(1.0)
, world_camera_matrix(1.0)
, fov(fov)
, z_near(z_near)
, z_far(z_far)
{
	SetupCameraClip();

	SetCameraToClipMatrix(camera_clip_matrix);
	SetWorldToCameraMatrix(world_camera_matrix);
}