three.js中的分层纹理

问题描述

我正在加载一个fbx模型,其中包含使用Cinema4D制作的多个对象。 加载模型后,我收到此警告控制台消息。

THREE.FBXLoader: layered textures are not supported in three.js. discarding all but first layer.

我知道此消息与正常图层,凹凸贴图或其他有关,但在fbx文件中加载了它自己的网址。有人知道是否有任何方法可以正确加载吗?还是将其导出为与C4D不同?

谢谢

解决方法

默认情况下,Three.js每个网格仅绘制一种纹理类型。例如,您只能将一个纹理分配给material.map,而不能将它们一个放在另一个之上。听起来您的Cinema4D对象具有两个或多个纹理,一个或另一个叠加在上面。

要在一个纹理上叠加多个纹理,您需要为每个纹理创建一个网格。也许给它们一个很小的位置偏移,以正确的顺序对其进行分层。另外,您可以将分层纹理展平为单个图像。

,

如何使用几个具有略微不同比例和不同纹理的网格?就像俄罗斯套娃木偶一样。 因此,如果纹理是透明的,您也可以看到下面的纹理。