【问题标题】:How can i draw a model on front screen in opengl我如何在opengl的前屏幕上绘制模型
【发布时间】:2012-05-14 15:30:18
【问题描述】:

我想在窗口的一角(更换相机时的固定位置)画一个标志(3D奖)

【问题讨论】:

标签: opengl


【解决方案1】:

这是我绘制全屏矩形的代码(在旧的 opengl 中)

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

glBegin(GL_QUADS);
glTexCoord2f( 0,0 );
glVertex3d( -1.0,-1.0, 0 );
glTexCoord2f( 1,0 );
glVertex3d(  1.0,-1.0, 0 );
glTexCoord2f( 1,1 );
glVertex3d(  1.0, 1.0, 0 );
glTexCoord2f( 0,1 );
glVertex3d( -1.0, 1.0, 0 );
glEnd();

glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();

只需禁用深度缓冲区 abd 将纹理设置为能够在 eferything 前面绘制您的徽标 当然你可以改变它的位置和大小

【讨论】:

    【解决方案2】:

    可以这样做:

    1. 绘制场景
    2. 禁用深度测试(如果您需要自深度测试以正确绘制模型,则清除深度缓冲区)
    3. 在堆栈上设置一个忽略相机位置的新矩阵。
    4. 绘制徽标。

    【讨论】:

    • 您能否更清楚地解释一下:“在堆栈上设置一个忽略相机位置的新矩阵。”?
    • @user1235872 你知道如何在屏幕上定位一个对象吗?你为什么不展示你已经尝试过的东西。
    • 我只是不明白“'忽略相机位置'的意思”。因为如果我移动相机,徽标模型也会移动
    • 在您的代码中的某个时刻,您正在做一些代表相机定位的事情,并将其添加到某种矩阵堆栈中(您帖子中的一些代码在这里真的很有帮助)。您需要加载一个新的模型视图/投影矩阵,但要加载一个固定位置的视图。
    • 这是我的主要绘制函数://clearbufferbit; //启用深度测试; //绘制场景; //禁用深度测试; //加载身份; //绘制标志;
    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 2011-01-25
    • 2020-06-18
    • 1970-01-01
    • 2021-06-15
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多