Accidentally sent incomplete message :(

lets assume your eye coord is osg::Vec4 eyeCoord:

eyeCoord = eyeCoord * osgProjectionMatrix;//get it from camera
if (eyeCoord.w() < 0 )
//vertex behind camera
else
{
 eyeCoord /= eyeCoord.w();
 eyeCoord.x() *= 0.5;
 eyeCoord.y() *= 0.5;
 eyeCoord.x() += 0.5;
 eyeCoord.y() += 0.5;
 eyeCoord.x() *= width;
 eyeCoord.y() *= height;
}

now your eyeCoord.xy contains screen coords in pixels

Cheers,
Sergey

28.05.2012, 14:00, "Sergey Polischuk" <[email protected]>:
> Hi, Shuiying
>
> lets assume your eye coord is osg::Vec4 eyeCoord:
>
> eyeCoord = eyeCoord * osgProjectionMatrix;
> if (eyeCoord.w() < 0 )
> //vertex behind camera
> else
> {
>  eyeCoord /= eyeCoord.w()
>
> }
>
> 26.05.2012, 19:58, "wang shuiying" <[email protected]>:
>
>>  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
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to