这个问题说明了一切。我想只将法线贴图应用于网格的一部分(几个选择面)。
法线贴图目前都是512 x 512,来自画布。
有哪些方法可以实现这一目标?
答案 0 :(得分:1)
看看THREE.MeshFaceMaterial将是一个很好的起点。这将允许您在单个网格上使用多个纹理。我无法找到好的文档,但您可以在jsfiddle上查看this little demo以查看它的实际效果。您不必仅在每个单独的材质中定义颜色,而是将它的normalMap定义为您想要的法线贴图。
然后,在我们的示例中,可以使用以下代码手动将每个面映射到特定纹理:
cube.geometry.faces[desiredFaceIndex].materialIndex = desiredMaterialIndex
在我们将网格传递给Three.js之前修改网格可能有很多方法来设置它。我相信如果你创建了模型以期望多个纹理,你可以使用小提琴中显示的方法应用它们来达到你想要的结果。祝你好运!