【问题标题】:Layered textures in three.jsthree.js 中的分层纹理
【发布时间】:2025-12-01 02:55:01
【问题描述】:

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

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

我知道这条消息是关于普通图层、凹凸贴图或其他的,但在 fbx 文件中加载了它自己的 url。任何人都知道是否有任何方法可以正确加载它?还是以不同于 C4D 的方式导出?

谢谢

【问题讨论】:

    标签: javascript three.js 3d fbx cinema-4d


    【解决方案1】:

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

    为了将多个纹理叠加在一起,您需要为每个纹理创建一个网格。也许在位置上给它们一个非常小的偏移量,以便以正确的顺序将它们分层。或者,您可以将分层纹理拼合为单个图像。

    【讨论】:

      【解决方案2】:

      如何使用具有略微不同缩放和不同纹理的多个网格?就像马特罗什卡木偶一样。 因此,如果纹理是透明的,您也可以看到底层的纹理。

      【讨论】: