繁体   English   中英

在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)。 在您的特殊情况下,深度不重要,只要您将背景平面绘制为每帧中的第一个元素并禁用深度测试即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM