rendered paste bodyVector 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);