转换正交相机透视OpenGL
Converting Orthogonal Camera to Perspective OpenGL
我在使用OpenGL将正交相机转换为透视相机时遇到了一些麻烦。我目前有一个正交相机跟随两个物体的中间点,使用:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,_winWidth,0,_winHeight,150,-150);
glTranslated(-_middlePoint[0]+_winWidth/2, -_middlePoint[1]+_winHeight/2, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
上面的代码工作得很好,现在我试着像这样使用它:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, _winWidth/_winHeight, 1.0, 1000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, 0, 800, _middlePoint[0], _middlePoint[1], 50, 0, 0, 1);
glLoadIdentity();
我只是得到一个黑屏。任何想法吗?我试过将向上向量从0,0,1改为0,1,0,它保持不变。
感谢您的帮助。
如果您已经使用glOrtho
工作的代码,您可以通过简单地将其更改为glFrustum
来切换到透视图投影。如果您正在编写新代码,gluPerspective
和gluLookat
可能更容易,但对于已经使用正交投影工作的代码,只需调用具有相同参数的glFrustum
即可轻松切换到透视图。
相关文章:
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 了解 GLM- openGL 中的相机转换
- 如何在全屏模式下(在OpenGL中)使背景透明
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- OpenGL大的3D纹理(>2GB)非常慢
- 在 OpenGL 中使用透视与正交投影时的光线投射(鼠标拾取)
- 透视视图的任何解决方案 openGL qt.
- 从固定函数迁移到 GLSL OpenGL:我应该如何修改我的视图(lookAt)矩阵和透视矩阵?
- OpenGL 透视投影裁剪多边形与顶点在视锥体之外 = 错误的纹理映射?
- 现代Opengl:同时正投影和透视投影
- 绕Y轴旋转二维正方形,并使用DirectX或openGL以透视投影方式显示
- 透视投影 OPENGL 和计算着色器
- 在C++中的OpenGL中将坐标从三维透视投影映射到二维正投影
- OpenGL截头体,透视
- OpenGL透视投影来映射屏幕像素
- OpenGL透视矩阵不起作用
- OpenGL帮助透视中的坐标
- OpenGL透视矩阵到DirectX矩阵
- OpenGL透视和照明不工作
- 转换正交相机透视OpenGL