在 xz 平面 opengl 中绘制场景
Drawing a scene in xz plane opengl
我正在开发一个opengl程序。查看参数为:眼睛 0 -4 6查看 0 1 0看
0 0 0我想画一个背景矩形(带有纹理),这样我就可以从当前的眼睛位置看到它。现在,眼睛正在从-ve Y方向看。我希望能够绘制一个覆盖整个屏幕的矩形。我不明白给矩形提供什么坐标以及如何获得纹理映射。目前我的方法中有这个:相同的代码是什么。我在功能上有这个:
glPushMatrix();
glLoadIdentity();
glBegin(GL_QUADS);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(-1.0, -1.0);
glVertex2f(-1.0, 1.0);
glVertex2f(1.0, 1.0);
glVertex2f(1.0, -1.0);
glEnd();
glPopMatrix();
绘制独立于相机的背景图像的最简单选项是在规范化设备坐标 (NDC) 中绘制它,并且不对其执行任何转换/投影。要覆盖整个屏幕,您必须绘制一个从p = [-1, -1]到[1,1]的四边形。然后可以通过 tex = (p + 1)/2 找到纹理坐标
归一化设备坐标是应用投影和透视分割后通常获得的坐标。它们跨越从 [-1,-1,-1] 到 [1,1,1] 的立方体,其中近平面映射到 z = -1(至少在 OpenGL 中,在 DirectX 中,近平面映射到 z=0)。在您的特殊情况下,深度应该无关紧要,只要您将背景平面绘制为每帧中的第一个元素并禁用深度测试即可。
相关文章:
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 在现代OpenGL中,绘制GL_TRIANGLE奇怪的z轴行为的填充圆
- OpenGL 着色器不绘制任何东西 - 糟糕的精灵类
- 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
- C++ OpenGL 中,绘制形状返回错误
- OpenGL绘制三角形而不是正方形
- 如何使用 mvp 在 opengl 中绘制椭圆
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- Opengl 和 c++ 绘制多个立方体
- 在另一个线程中绘制 OpenGL
- 使用纹理,法线和索引列表从VBO绘制OpenGL对象的问题
- 在3.2中使用VAO和VBO绘制OpenGL线条和正方形
- 用VBO绘制OpenGL图形
- 多对象绘制(OpenGL)
- 如何在Qt 5.7中使用glew绘制OpenGL几何图形
- SFML绘制OpenGL到多个窗口的速度非常慢
- 多次绘制Opengl纹理