OpenGL:多纹理化一系列“链接”四边形

时间:2013-08-05 19:30:55

标签: opengl textures render vbo vertex

我最近完成了将系统数组加载到VBO中的系统。该系统允许四边形共享顶点以节省大量内存。例如,100x100四边形阵列通常使用100x100x4 = 40000个顶点(每个四边形4个顶点),但使用此系统时,它只使用101x101 = 10201个顶点。当你进入更大的尺度时,这是一个巨大的节省空间。

我的问题是,为了单独构造每个四边形,每个顶点需要一个“UV”坐标对(或“ST”坐标)来映射纹理的一部分。这导致了问题,我如何独立地将每个四边形纹理化?即使两个相同的纹理四边形彼此相邻,我也不能对两个四边形使用相同的纹理坐标。如下图所示: enter image description here

*每个四边形的尺寸为16x16像素,纹理坐标的范围为0到1.

为了使事情变得更复杂,数组中的一些四边形甚至可能不存在(因为那部分地形只是一个空块)。正如您可能已经猜到的那样,这是针对每个人都试图制作的2D平铺游戏的渲染引擎。

有没有办法使用顶点保存技术对纹理四边形进行纹理处理,还是只需要废弃此方法并使用效率较低的方法?

1 个答案:

答案 0 :(得分:2)

你不能。

OpenGL中的顶点是一组数据。它们可能包含位置,但它们也包含纹理坐标或其他内容。每个顶点,位置/坐标/等的每个集合必须是唯一的。因此,如果您需要将相同的位置与不同的纹理坐标配对,那么您将拥有不同的顶点

相关问题