2010-05-28 42 views
1

每当我在显示列表中输入一个转换(gltranslate,glrotate,gsccale)时,转换将保持为显示列表中的一个命令。每次显示列表被渲染时,它将一遍又一遍地计算。显示列表和转换

有没有一种方法,我可以做一个OpenGL改造和转化顶点坐标可以在显示列表,而不是改造& INTIAL坐标永久保存?

+4

你怎么知道显示列表数据的内部格式是什么?你拥有的是一个不透明的手柄,对吧? – 2010-05-28 02:36:21

回答

3

在将矩阵提交给显示列表之前,应用您的矩阵将其转换为manually

但德鲁大厅是正确的:当编译你的显示列表时,驱动程序可能已经做了类似的事情。

+1

实际上它可能不是。显示列表实现是那些很难同时进行正确和优化的事情之一,因为要处理的角落案例太多。问题示例:1.没有什么能够确保GL旋转将以MODELVIEW矩阵为目标。如果PROJECTION在glCallList之前激活,那么行为必须不同。 2.旋转需要在显示列表执行后在矩阵堆栈的顶部处于活动状态......并且我确信我没有想到所有的角落情况。 – Bahbar 2011-02-14 10:37:35