我有cpp代码,在Maya中显示简单的OpenGL形状。
如果使用遗留视口,那么我正是我想要的:沿x轴的箭头:
但是,如果我在ViewPort 2.0中使用相同的代码,则箭头会跟随相机移动:
只有在我应用glTranslatef(我需要使用它)时才会发生这种情况。
这是一段代码:
for (int i=0;i<10;i++)
{
glPushMatrix();
glTranslatef(i,0,0);
glBegin(GL_LINES);
// Arrow
glVertex3f(0, y, z);
glVertex3f(1, y, z);
glVertex3f(1, y, z);
glVertex3f(0.5, y, z+0.5);
glVertex3f(1, y, z);
glVertex3f(0.5, y, z-0.5);
glEnd();
glPopMatrix();
}
我怎样才能在&#34; new&#34; Maya viewport?
答案 0 :(得分:2)
跟进我的评论,这看起来翻译发生在与渲染不同的坐标框架中,这向我建议绑定不同的矩阵堆栈。
因此,在旧视口中(您的结果是正确的&#39;),您正在将转换连接到模型视图矩阵,但在2.0情况下,您可能正在将转换连接到投影上矩阵 - 这会导致翻译看起来相对于屏幕,而不是视图。
我建议确保在渲染调用中正确设置所有相关状态,例如在弄乱矩阵堆栈之前设置所需的glMatrixMode()等。