three.js 中的分层纹理
Posted
技术标签:
【中文标题】three.js 中的分层纹理【英文标题】:Layered textures in three.js 【发布时间】:2021-01-29 01:54:00 【问题描述】:我正在加载一个 fbx 模型,其中包含多个使用 Cinema4D 制作的对象。 加载模型时,我会收到此警告控制台消息。
THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.
我知道这条消息是关于普通图层、凹凸贴图或其他的,但在 fbx 文件中加载了它自己的 url。任何人都知道是否有任何方法可以正确加载它?还是以不同于 C4D 的方式导出?
谢谢
【问题讨论】:
【参考方案1】:默认情况下,Three.js 只为每个网格绘制一种纹理类型。例如,您只能将一个纹理分配给material.map
,而不能将它们一层层叠加。听起来您的 Cinema4D 对象有两个或多个纹理,一个层叠在另一个之上。
为了将多个纹理叠加在一起,您需要为每个纹理创建一个网格。也许在位置上给它们一个非常小的偏移量,以便以正确的顺序将它们分层。或者,您可以将分层纹理拼合为单个图像。
【讨论】:
【参考方案2】:如何使用具有略微不同缩放和不同纹理的多个网格?就像马特罗什卡木偶一样。 因此,如果纹理是透明的,您也可以看到底层的纹理。
【讨论】:
以上是关于three.js 中的分层纹理的主要内容,如果未能解决你的问题,请参考以下文章