0

我有一个纹理,它是一个由较小纹理组成的网格,我无法在此应用程序中将其拆分为单个文件。我需要将这些子纹理平铺在模型上。

分割几何体可能有效,但会增加场景复杂性,并且如果生成细三角形,可能会引入视觉伪影。

在运行时分配从原始纹理复制的新纹理可能会起作用,但会增加纹理内存的使用,并且如果主纹理发生变化(我无法在此应用程序中检测到),则会涉及陈旧数据。

如果真的没有办法直接绑定子纹理以允许 OpenGL 平铺工作,那么下一个最好的方法是什么?

4

1 回答 1

1

如果您需要这样做,正确的方法是使用片段着色器直接平铺您的纹理坐标。

这似乎是大材小用,可能会干扰应用程序现有的渲染管道

它会干扰的唯一方法是如果您不使用片段着色器。如果你不是……你应该是。

现代硬件设计通常不再添加固定功能;这一切都是为了给着色器更多的权力和选择。如果您需要某个功能,“在着色器中编码”通常是正确的解决方案。

但是,如果您不允许使用着色器,唯一的选择就是按照您的建议修改您的几何图形。

于 2012-08-15T01:06:29.787 回答