使用OpenGL在vram中存储三角形纹理

时间:2011-11-16 11:31:49

标签: opengl language-agnostic graphics 3d

有没有办法可以存储和绘制三角形纹理,而无需创建矩形缓冲区(并使用两倍的存储空间)。

(我知道我可以把很多三角形包装成一个大的矩形纹理,但是我想知道是否有办法解决这个问题,而不必浪费任何空间或编写复杂的打包算法)

3 个答案:

答案 0 :(得分:4)

不,但您可以尝试使用这个相当简单的算法来解开像这样的纹理UV:

|\
|1\
|__\
|   \
| 2  \
-------

 _____
|   \1|
| 2  \|
-------

创建一个矩形POT纹理,切割三角形的顶部(1)并将其放置在靠近基座(2)的自由空间中。

答案 1 :(得分:1)

这种情况的常见方法是将多个奇怪的形状打包到一个矩形纹理上(它们需要彼此分开,以便采样不会使相邻形状的颜色流血......)。如果你为三角形使用多个纹理,你也可以用这种方式打包它们。

如果你只有一个纹理,那么浪费空间可能是最简单的 - 很可能,你的应用程序不是特别耗费资源?

答案 2 :(得分:0)

据我所知,OpenGL和任何扩展都不支持您所寻找的内容。