我的纹理是一个较小纹理的网格,我无法在此应用程序中拆分成单个文件。我需要在模型上平铺这些子结构。
拆分几何图形可能会起作用,但会增加场景复杂性,如果生成细三角形,可能会引入视觉瑕疵。
在运行时分配从原始文件复制的新纹理可能会起作用,但会增加纹理内存的使用,并且如果主要纹理发生更改(我在此应用程序中无法检测到),则会涉及陈旧数据。
如果真的无法直接绑定子纹理以允许OpenGL平铺工作,那么下一个最好的方法是什么呢?
答案 0 :(得分:1)
如果您需要这样做,正确的方法是使用片段着色器直接平铺纹理坐标。
这看起来像是大规模的过度杀伤,可能会干扰应用程序现有的渲染管道
它会干扰的唯一方法是你不使用片段着色器。如果你不是......你应该是。
现代硬件设计通常不再添加固定功能;这一切都是为着色器提供更多的功能和选择。如果您需要一个功能,“在着色器中编码”通常是正确的解决方案。
但是,如果您不允许使用着色器,唯一的选择就是按照您的建议修改几何体。