【发布时间】:2011-11-29 18:29:30
【问题描述】:
我遇到了一个特别烦人的问题。在某些情况下,对 glColor 的调用似乎被忽略了,导致对象以不正确的颜色显示。
可以在here找到一个显示此问题的 Qt 项目。
当你运行程序时,你在屏幕上看到的只是两个从一个角度看的盒子状物体。左边的对象是调用glCallList(boxModel1); 渲染的,右边的对象是调用glCallList(boxModel2); 渲染的。这两个显示列表是由明显标题的方法创建的。
对于boxModel1 和boxModel2,我使用一个名为squareModel 的显示列表来渲染框的侧面。我这样做是因为虽然这种情况下的方形模型很简单,但我的实际程序中的 squareModel 要复杂得多,法线会发生变化等等。
问题与createManyRectangles 方法有关。当使用足够小的数字(对我来说是 2715)调用它时,颜色会正常显示:一个蓝色框和一个红色框。当数字很高(我是 2716)时,颜色会被忽略,两个框都呈现为白色。
谁能解释一下这里发生了什么?
【问题讨论】: