屏幕坐标到OpenGL世界坐标的转换
2013-05-13 20:07
751 查看
worldPos screen2world(int
x,
int
y)
{
GLint
viewport[4];
GLdouble
modelview[16];
GLdouble
projection[16];
GLfloat
winX,
winY,
winZ;
GLdouble
posX,
posY,
posZ;
glGetDoublev(GL_MODELVIEW_MATRIX,
modelview);
glGetDoublev(GL_PROJECTION_MATRIX,
projection);
glGetIntegerv(GL_VIEWPORT,
viewport);
winX = (float)x;
winY = (float)viewport[3]
- (float)y;
glReadPixels(x,
int(winY),
1, 1, GL_DEPTH_COMPONENT,
GL_FLOAT, &winZ);
gluUnProject(winX,
winY,
winZ,
modelview,
projection,
viewport, &posX,
&posY, &posZ);
worldPos
v;
v.posX
= posX;
v.posY
= posY;
v.posZ
= posZ;
return
v;
}
x,
int
y)
{
GLint
viewport[4];
GLdouble
modelview[16];
GLdouble
projection[16];
GLfloat
winX,
winY,
winZ;
GLdouble
posX,
posY,
posZ;
glGetDoublev(GL_MODELVIEW_MATRIX,
modelview);
glGetDoublev(GL_PROJECTION_MATRIX,
projection);
glGetIntegerv(GL_VIEWPORT,
viewport);
winX = (float)x;
winY = (float)viewport[3]
- (float)y;
glReadPixels(x,
int(winY),
1, 1, GL_DEPTH_COMPONENT,
GL_FLOAT, &winZ);
gluUnProject(winX,
winY,
winZ,
modelview,
projection,
viewport, &posX,
&posY, &posZ);
worldPos
v;
v.posX
= posX;
v.posY
= posY;
v.posZ
= posZ;
return
v;
}
相关文章推荐
- 屏幕坐标到opengl世界坐标转换
- OpenGL中的屏幕坐标和世界坐标的转换
- VTK屏幕坐标与世界坐标转换(Qt)
- OpenGL由屏幕坐标转换三维坐标
- NGUI,世界坐标,屏幕坐标转换
- Unity世界坐标与屏幕坐标之间如何转换
- osg 屏幕坐标和世界坐标转换
- opengl中将三维坐标转换到屏幕坐标
- ogre 世界坐标、本地坐标、屏幕坐标之间的转换
- OSG学习笔记25——屏幕坐标——相机坐标——世界坐标之间的转换
- ogre世界坐标鱼屏幕坐标相互转换
- 屏幕坐标向OpenGL坐标的转换(完整版)(转载)
- unity 屏幕坐标&世界坐标相互转换
- Unity3D屏幕坐标到世界坐标转换浅析
- OpenGL: 3D坐标到屏幕坐标的转换逻辑(gluProject的实现)(转)
- ogre世界坐标与屏幕坐标相互转换
- NGUI 与世界坐标与屏幕坐标之间的转换的帮助类
- [unity3d]屏幕坐标跟世界坐标的转换
- opengl中屏幕坐标到opengl下坐标的转换解析
- 屏幕坐标和世界坐标的转换+对象池技术(3D打地鼠小游戏)