如何将法线贴图应用于网格的一部分?

时间:2013-05-08 18:14:35

标签: map html5-canvas three.js textures normals

这个问题说明了一切。我想只将法线贴图应用于网格的一部分(几个选择面)。

法线贴图目前都是512 x 512,来自画布。

有哪些方法可以实现这一目标?

1 个答案:

答案 0 :(得分:1)

看看THREE.MeshFaceMaterial将是一个很好的起点。这将允许您在单个网格上使用多个纹理。我无法找到好的文档,但您可以在jsfiddle上查看this little demo以查看它的实际效果。您不必仅在每个单独的材质中定义颜色,而是将它的normalMap定义为您想要的法线贴图。

然后,在我们的示例中,可以使用以下代码手动将每个面映射到特定纹理:

cube.geometry.faces[desiredFaceIndex].materialIndex = desiredMaterialIndex

在我们将网格传递给Three.js之前修改网格可能有很多方法来设置它。我相信如果你创建了模型以期望多个纹理,你可以使用小提琴中显示的方法应用它们来达到你想要的结果。祝你好运!