在OpenGL编程指南文本的第3章“查看转换”一节中,作者提供了以下代码,从默认摄像机位置开始,从侧面查看对象。
glTranslatef(0.0,0.0,-5.0);
glRotatef(90.0,0.0,1.0,0.0);
当我用拉伸的立方体尝试这个时,立方体被错误地绘制(我通过绘制坐标轴来检查它 - 不包括绘制轴的代码)。但是,将旋转调用更改为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轴现在朝向后方,沿着光轴相机。图片在这里:http://i.stack.imgur.com/O74gT.png
答案 0 :(得分:0)
围绕Y轴旋转90度或-90度基本上做同样的事情(唯一的区别是旋转方向,分别是顺时针或逆时针)。
虽然变换是相似的(并且在简单立方体的情况下结果也应该相似),但是图元的渲染顺序可以是完全不同的。您是否启用了OpenGL的深度测试工具?