用OpenGL在vram中存储三角形纹理
有没有什么方法可以存储和绘制三角形纹理而不必创建矩形缓冲区(并且使用两倍于我需要的存储空间)用OpenGL在vram中存储三角形纹理,opengl,language-agnostic,graphics,3d,Opengl,Language Agnostic,Graphics,3d,有没有什么方法可以存储和绘制三角形纹理而不必创建矩形缓冲区(并且使用两倍于我需要的存储空间) (我知道我可以将许多三角形打包成一个大的矩形纹理,但我想看看是否有一种方法可以做到这一点,而不必浪费任何空间或编写复杂的打包算法)没有,但您可以尝试使用此相当简单的算法来展开纹理UV,如下所示: |\ |1\ |__\ | \ | 2 \ ------- _____ | \1| | 2 \| ------- 通过切割三角形(1)的顶部并将其放置在底部(2)附近的自由空间中来创建矩形壶纹
(我知道我可以将许多三角形打包成一个大的矩形纹理,但我想看看是否有一种方法可以做到这一点,而不必浪费任何空间或编写复杂的打包算法)没有,但您可以尝试使用此相当简单的算法来展开纹理UV,如下所示:
|\
|1\
|__\
| \
| 2 \
-------
_____
| \1|
| 2 \|
-------
通过切割三角形(1)的顶部并将其放置在底部(2)附近的自由空间中来创建矩形壶纹理。据我所知,OpenGL和任何扩展都不支持您所寻找的内容。对于这种情况,通常的做法是将多个奇数形状打包到单个矩形纹理上(它们需要彼此分离,以便采样不会从相邻形状中溢出颜色…。如果您对三角形使用多个纹理,您可能也可以这样打包它们
如果您只有一个纹理,那么浪费空间可能是最简单的——很可能您的应用程序不是特别占用资源?好吧,创建的不连续性肯定会在以后的纹理制作中造成麻烦。当然,可以基于直接纹理访问实现片段着色器,并进行插值和过滤手动抖动。是的。这种解决方案需要某种程度的自动化。例如,可以提前生成贴图/多边形。似乎没有其他解决方案,因为没有硬件支持三角形纹理;)什么是“矩形缓冲区?”@NicolBolas常规纹理(矩形或方形)。