[英]Assigning texture to an object using multiple textures
我正在制作一个对象加载器,所有纹理部件都在不同的纹理文件中。 将其映射到模型的最佳解决方案是什么? 我是否需要将具有自身纹理的每个零件都视为1个模型,以便最终实体具有许多单独的绘制调用,每个调用都具有一个纹理?
一种可能的方法是,对需要不同纹理的每个零件(或一组纹理,如果您需要法线贴图,如@glampert建议)进行单独的绘制调用。 您似乎具有相当复杂的几何形状,因此可能不会非常低效,因为您的绘制调用仍然会相当大。 您仍然可以将模型的所有顶点/索引保存在一个缓冲区中,因此至少不必为每个调用切换顶点缓冲区。 如果需要逼真的材质,则每种材质可能都需要一个不同的着色器,这意味着您必须将模型拆分为单独的绘制调用。
不知道人们是否真的这样做了,但是我很想尝试的一种方法是使用纹理数组,其中每种材料的纹理都存储为一层。 使材质索引成为顶点属性,将其从顶点着色器传递到片段着色器,然后在对纹理数组进行采样时将is用作图层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.