在threejs中加载模型变黑
有时候会发现在blender中打卡的模型颜色是正常的,但是当我们导出glb文件之后,使用threejs加载的模型会变成黑色。
1. 方式一
目前网上查到的大部分解决办法是:
child.material.emissive = child.material.color;
child.material.emissiveMap = child.material.map;
其实就是把模型材质的自发光颜色改成模型材质颜色,因为模型材质的自发光颜色默认是黑色。由于一些模型奇妙的原因导致颜色不受光照的影响,只能显示自发光的颜色。
关于自发光,材质的自发光颜色影响了该材质在渲染时发出的光线的颜色。自发光颜色决定了物体表面发出的光线的颜色,而不是通过反射光或其他光源来获得的颜色。
当物体的材质设置了自发光颜色时,渲染器会在渲染过程中将该颜色考虑进去。这意味着物体不需要接收来自光源的光线也能够发光,并且其颜色由自发光颜色决定。
自发光颜色通常用于制作发光效果,比如发光的物体、灯光、光线等。这种效果通常在暗处或者不受周围光照影响的物体上使用,可以增加场景的视觉吸引力,并产生一种神秘感或者科幻感。
2.另外还有一种方式:
使用blender打开模型,选择显示黑色的模型,看看数据中的颜色属性是否有这样的一条数据,删除掉,在重新导出glb文件,会发现不需要改代码颜色就正常了。