All pastes #2134273 Raw Edit

Anonymous

public text v1 · immutable
#2134273 ·published 2012-03-31 12:01 UTC
rendered paste body
Vector view;
Vector lookat;
Vector eye;
Vector center, horz, vert,up;	

float dis = 1.0;
float fov = m_Scene.GetCamera().GetFOV()*3.1416/180;

float vsize = 2*dis*tan(fov/2.0f);
float hsize = hsize = vsize*((float)Scene::WINDOW_WIDTH/(float)Scene::WINDOW_HEIGHT);
	
float hpixel = hsize/(float)Scene::WINDOW_WIDTH;
float vpixel = vsize/(float)Scene::WINDOW_HEIGHT;

eye = m_Scene.GetCamera().GetPosition();
lookat = m_Scene.GetCamera().GetTarget();
up = m_Scene.GetCamera().GetUp();
 
view = (lookat - eye);
view.Normalize();

center = view*dis;
horz = up.Cross(view);
horz.Normalize();

vert = view.Cross(horz);
vert.Normalize();

Vector origin = center - (horz*(((float)Scene::WINDOW_WIDTH-1.0f)/2.0f)*hpixel)-(vert*(((float)Scene::WINDOW_HEIGHT-1.0f)/2.0f)*vpixel);

Vector pixel = origin + (horz* screenX*hpixel) + (vert*screenY*vpixel);