如何跨多个对象无缝跨越单个纹理?

时间:2014-08-19 18:32:08

标签: opengl opengl-es opengl-es-2.0 texture-mapping

E.g。说我有任何一组飞机,为了纹理特定的目的,我想把它当作一个单独的2d对象。像这样:

example

我将如何绘制此图? (在生产中,独立对象的数量及其在世界空间中的位置是任意的。)

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使Texture Atlases的技术适应您的问题。

请记住,整个纹理都覆盖了[0,0],[1,1]的UV坐标范围,您可以将该范围的任何子集应用于纹理指定。对于问题中提供的示例,每个单独的四边形将覆盖原始纹理的0.25 x 0.25子集。

enter image description here

当然,这可以缩放到n^2个对象,其中每个对象覆盖原始纹理的1/n x 1/n的子集大小。如果使用整个纹理和/或保持子集纹理方形不是必需的,那么它可以缩放到任意数量的潜在子集图像。