首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在opengl中获取摄像机位置

在opengl中获取摄像机位置
EN

Stack Overflow用户
提问于 2014-08-27 12:44:07
回答 1查看 7.6K关注 0票数 4

我知道,在opengl中,相机不会移动,但是模型是围绕着它移动的。我需要相机在MODELVIEW中的位置..。是的,我也知道有很多关于它的话题,但我尝试了他们所做的一切来获得相机坐标,但它总是返回(0, 0, 0) (相机的真正位置)。

这就是我想要的:

代码语言:javascript
复制
GLfloat mdl[16];
float camera_org[3];
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
glGetFloatv(GL_MODELVIEW_MATRIX, mdl);
camera_org[0] = -(mdl[0] * mdl[12] + mdl[1] * mdl[13] + mdl[2] * mdl[14]);
camera_org[1] = -(mdl[4] * mdl[12] + mdl[5] * mdl[13] + mdl[6] * mdl[14]);
camera_org[2] = -(mdl[8] * mdl[12] + mdl[9] * mdl[13] + mdl[10] * mdl[14]);

也尝试过这样做(如在某些主题中所述):

代码语言:javascript
复制
camera_org[0] = mdl[12];
camera_org[0] = mdl[13];
camera_org[0] = mdl[14];

他们给了我相同的结果(0,0,0),谁能告诉我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-27 13:11:28

我找到了答案:

代码语言:javascript
复制
int viewport[4]; 
// get matrixs and viewport:
glGetDoublev( GL_MODELVIEW_MATRIX, matModelView ); 
glGetDoublev( GL_PROJECTION_MATRIX, matProjection ); 
glGetIntegerv( GL_VIEWPORT, viewport ); 
gluUnProject( (viewport[2]-viewport[0])/2 , (viewport[3]-viewport[1])/2, 
0.0, matModelView, matProjection, viewport,  
&camera_pos[0],&camera_pos[1],&camera_pos[2]);

这将给你的坐标相机在现场。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25527571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档