babylon.js网格获得相同的材料

时间:2018-02-02 09:52:40

标签: javascript blender babylonjs

我正在使用带有Blender 2.79的BabylonJS V3来创建产品可视化。很多时候,有必要在JS代码中定义更复杂的着色器。我正在使用像

这样的行

scene.meshes[1].material.emissiveColor = new BABYLON.Color3(1, 0, 0);

在导出后定义着色器。通常,每个网格都可以通过这种方式获得自己的着色器。不幸的是,在一种情况下,多个网格的着色器被覆盖。有人有类似的问题吗? 所有网格都是单独命名的,它们都有一个来自blender的基本(单个)着色器。他们不共享任何数据块,没有进行实例化或重复。我很感激每一个提示。

修改

看起来,新版本(3.0)出现错误,更新到3.1修复了问题,但是引入了弧旋转相机的错误。单击画布后,要旋转视图,就不能再释放鼠标了。最新的稳定版本是否有错误?

编辑2

经过一些深入的故障排除我们得出结论,3.0和3.1版本和/或他们的导出插件是错误的。即使在最简单的测试中,也会发生此错误。除了其他问题,例如破碎的相机和移位的几何体。

1 个答案:

答案 0 :(得分:0)

请注意,出于性能原因,默认情况下会共享材料。所以这可能不是一个bug而是一个功能。 如果要更改单个网格的材质,首先需要克隆它