2011-11-29 36 views
0

在OpenGL编程指南文本的第3章'查看转换'一节中,作者提供以下代码以从一侧查看对象,从默认相机位置。OpenGL编程指南:第3章:查看转换:从侧面查看对象

glTranslatef(0.0,0.0,-5.0); 
glRotatef(90.0,0.0,1.0,0.0); 

当我试图这一点与拉伸立方体,该立方体绘制不正确(I通过绘制的坐标轴检查此 - 代码绘制轴不包括在内)。但是,将轮转电话更改为glRotatef(-90,0.0,1.0,0.0)可以做正确的事情。任何想法为什么发生这种情况?

编辑:我想通了。原始示例绘制一个立方体,在OpenGL y方向上延伸2倍。'glTranslate将物体沿着z轴从相机移开5个单位。图片在这里:http://i.stack.imgur.com/aHRIX.png

最后,glRotate逆时针方向旋转立方体90度,以便我们可以看到z轴(蓝色),并且x轴现在朝向后面,沿着光轴相机。 Image here:http://i.stack.imgur.com/O74gT.png

+1

定义“正确的东西”?你看到了什么,你期望看到什么? –

回答

0

围绕Y轴旋转90度或-90度本质上做同样的事情(唯一的区别是旋转的方向,分别为顺时针或逆时针)。

尽管转换是相似的(并且在简单立方体的情况下结果也应该类似),但是基元的渲染顺序可能完全不同。您是否启用了OpenGL的深度测试工具?