OpenGL显示列表:用于绘制2D精灵?

时间:2011-03-10 19:18:51

标签: opengl displaylist

使用显示列表绘制纹理矩形是一个好主意还是坏主意?

仅当精灵正在使用的纹理发生变化时,才会重新编译显示列表。

1 个答案:

答案 0 :(得分:0)

对于绘制单个sprite,这样做没有真正的问题,但是它也没有优势,假设你使用glRotate / glTranslate来定位sprite。这样写了很多游戏。

在我的游戏中,我使用带有GL_DYNAMIC_DRAW的顶点缓冲对象来存储共享每个纹理图集的所有精灵。我更新CPU上的垂直位置,并在一次绘制调用中发送整批。我可以使用这种方法绘制更多的精灵。如果我需要画得更多,我可以在顶点着色器中做位置。

另外,请记住,OpenGL ES2不支持显示列表,因此如果您考虑移植到ES2设备,则必须重新执行此操作。 (iPhone / iPad支持ES1,但你不能与ES2混搭,你可以使用显示列表或着色器,但不能同时使用两者)。