Hallo,

I simulate a real camera with OSG camera node and for debugging I have some problem with the pixel location. I would like to know whether the following statement is correct or false:

if coordinate of vertex in eye coordinate is (xe,ye,ze), and we assume that xe>0,ye<0,ze<0, namely, the verice should appear next to bottom right corner of the image. (Origin of the image is top left, x forwards to right, y forwards to bottom)

Then can its corresponding pixel location(px, py) on the image calculated like following? (x resolution of image is xRes, y Resoluation is yRes, yaw angle of camera is ViewYaw, pitch angle of camera is ViewPitch, near plane is 1 )

px=xe/abs(ze)* (xRes/2/tan(ViewYaw/2)) +xRes/2

py=abs(ye)/abs(ze)* (yRes/2/tan(ViewPitch/2)) +yRes/2


I get coordinate of vertex in eye coordinate by a product of vertex global coordinate and camera->getViewmatrix(), and then calculate the corresponding pixel location following the above formulas. But the location is not correct compared to what appears on the image. the error is about 50 pixels in the x coordinate.


Can anybody give me some tips on that?


Thank you very much in advance!


Best regards

Shuiying




_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to