四种光
1:自发光
2:环境光
3:散射光
4:镜面光
光的优先级的表现
自发光覆盖其它任何选项。
环境光覆盖除自发光以外的任何选项。
散射光、镜面光可以同时存在。
其实所有光都是叠加表现的,这里说的“覆盖”指的都是白光的情况。
光的设置
自发光只需设置材料的自发光选项。
环境光需要开启场景的环境光选项,同时设置材料的环境光选项,缺一不可。
散射光需要设置光源,同时设置材料的散射选项,二者共同决定物体颜色。
镜面光需要设置光源,同时设置材料的镜面选项,二者共同决定镜面颜色。
设置相关选项的代码
自发光
material.emissiveColor = new BABYLON.Color3(1, 1, 1);
环境光
scene.ambientColor = new BABYLON.Color3(1, 1, 1);
material.ambientColor = new BABYLON.Color3(1, 1, 1);
散射光
light.diffuse = new BABYLON.Color3(1, 1, 1);
material.diffuseColor = new BABYLON.Color3(1, 1, 1);
镜面光
light.specular = new BABYLON.Color3(1, 1, 1);
material.specularColor = new BABYLON.Color3(0, 0, 0);
吐槽
同一个光源,需要分别设置散射光、镜面光,二者可以是不同的颜色,比如,一盏绿灯照射在白色物体上,可以产生粉色的镜面反射。
呜,我不能理解,这种情况在现实中是怎样的存在。