0

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

当前的法线贴图都是 512 x 512 并且来自画布。

有什么方法可以做到这一点?

4

1 回答 1

1

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

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

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

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

于 2013-05-08T18:38:08.747 回答