使用ThreeJS GLTF Blender Exporter的法线贴图值

时间:2019-01-21 03:14:25

标签: three.js export blender gltf

如果我在Blender中将“几何”下的“常规”滑块值设置为2.0,则为<2.0>。当我查看控制台日志中的对象时,看到一个正常值X:1,Y:-1。我想念什么吗?

我正在使用ThreeJS R97。

1 个答案:

答案 0 :(得分:1)

从您对“几何体下的法线滑块”的描述中,我猜您正在谈论的是Blender 2.79x或更早版本,Blender的内置渲染器,材质设置,其中滑块控制着所应用法线贴图的强度。

因此,这里有两件事要谈。首先,glTF导出器不正式支持内置的Blender Render材质,并且您已经发现该滑块没有连接。现在,针对出口商的开发工作集中在一个名为glTF-Blender-IO的插件上,该插件可在Blender 2.79中使用,但实际上已预先安装在Blender 2.80 Beta中。

此插件可通过“原理性BSDF”节点与Cycles和Eevee引擎一起使用,还可以与一些辅助节点(例如“法线贴图”)组合使用。因此,glTF导出器希望找到一个这样连接的法线贴图:

Normal Map Hookup in Blender 2.79x

请记住,glTF格式本身并不包含节点,但是,导出器将理解该连接,并将法线贴图以及可选的基础颜色,金属色,粗糙度和发光色写入glTF文件中。贴图(通过发射所需的另一个单独的节点)。

但是这个计划有一个小问题,看来力量还没有得到解决。 Blender的“法线贴图”节点包含一个“ strength”参数,而glTF格式包含一个名为normalTexture.scale的对应参数,该参数执行相同的操作,但是看起来导出器没有将值从一个位置复制到该位置。其他。我对此提交了issue #241,希望最终能解决。

在ThreeJS中,X:1,Y:-1的值是故意用于单位强度法线贴图的。 ThreeJS法线贴图使用与glTF格式不同的Y约定,因此从glTF加载法线贴图时会故意翻转Y。因此,要使其强度加倍,可以将X:2,Y:-2设置为。到目前为止,在导出器中添加了一项功能来复制丢失的强度参数之前,似乎只有在代码中分配此选项(或手动编辑glTF)才是唯一的选择。