Blender 导出到 three.js。所有材料都有相同的灰色

Posted

技术标签:

【中文标题】Blender 导出到 three.js。所有材料都有相同的灰色【英文标题】:Blender export to three.js. All matirials have the same grey color 【发布时间】:2018-10-30 10:21:12 【问题描述】:

我正在使用一些开源 3d 模型,当我尝试将它们导出为 three.js json 格式时,所有材料都以相同的灰色导出。 How model looks like in blender(可以看到所有材质都有不同的颜色)

How the result looks like

所以在导出的 json 文件中,所有材质都具有相同的颜色:

[
    ...
    "colorSpecular":[0.5,0.5,0.5],
    "colorDiffuse":[0.64,0.64,0.64],
    "colorEmissive":[0,0,0],
    ...
    "DbgName":"HullPlain.002"
,
    ...
    "colorSpecular":[0.5,0.5,0.5],
    "colorDiffuse":[0.64,0.64,0.64],
    "colorEmissive":[0,0,0],
    ...
    "DbgName":"HullColor.002"
,...]

here my export settings 我尝试了不同的模型,我得到了相同的材料设置"colorSpecular":[0.5,0.5,0.5], "colorDiffuse":[0.64,0.64,0.64],

有谁知道什么会导致这个问题?谢谢!

【问题讨论】:

您能分享一个.blend 文件,或者至少是您在Blender 中的材质设置的屏幕截图吗?仅从屏幕截图很难猜出您使用了哪种材料。 @DonMcCurdy 是的,当然。这是混合文件:first、second。对于他们两个,我得到了相同的结果 【参考方案1】:

three.js JSON 导出器does not support Cycles node materials,一般为that exporter is no longer recommended。

我建议改用KhronosGroup/glTF-Blender-Exporter 和THREE.GLTFLoader。它支持循环渲染,但前提是您使用provided PBR nodes。为了简化设置过程,请使用默认的 Blender 渲染材质。快速转换(我不小心获得正确的颜色)表明这适用于您的模型:

^请注意,您需要在导出之前或在导出设置中应用修饰符。

三个.js r92

【讨论】:

以上是关于Blender 导出到 three.js。所有材料都有相同的灰色的主要内容,如果未能解决你的问题,请参考以下文章

Three.js 的导出 Blender 模型中的材料不起作用

使用具有 0 粗糙度的 GLTF 导出的立方体 原则 BSDF 材料在 Three.js 中无法正确显示

将模型从 Blender 导出到 Three.js 时没有纹理

将变形目标从 Blender 导出到 Three.js

Blender 导出到 Three.js

将 Blender 粒子系统头发导出到 Three.JS