【发布时间】:2011-06-02 13:02:54
【问题描述】:
这样的 OpenGL ES 序列可用于一次渲染多个对象:
glVertexPointer(...params..., vertex_Array );
glTexCoordPointer(...params..., texture_Coordinates_Array );
glBindTexture(...params..., one_single_texture_ID );
glDrawArrays( GL_TRIANGLES, number_Triangles );
这里的顶点数组和纹理坐标数组可以引用无数的图元,可以一步步描述给OpenGL。
但是所有这些图元的纹理坐标都必须引用 glBindTexture 命令中的单一纹理吗?
传入一个纹理标识符数组会很好:
glBindTexture(...params..., texture_identifier_array[] );
这里,对于前面调用中描述的每个原始形状,数组中都会有一个纹理 ID。因此,每个形状的纹理坐标都与“texture_identifier_array[]”中标识的纹理有关。
我可以看到一种选择是将所有感兴趣的纹理放置在一个大纹理中,该纹理可以在绘图调用中作为单个实体进行引用。在我的平台上,这会创建一个包含可能导致内存问题的大位图的中间步骤。
最好能够将一组纹理标识符传递给 OpenGL ES 绘图调用。这个可以吗?
【问题讨论】:
标签: opengl-es