洛阳市网站建设管理,青岛网站建设微动力,wordpress 批量文章,网推推荐信环境贴图作用测试
实际生活中光源照射到一个物体上#xff0c;这个物体反射出去的光线也会影响其他的物体#xff0c;环境贴图就是用一种简单方式#xff0c;近似模拟一个物体周边环境对物体表面的影响。
测试#xff1a;对于PBR材质#xff0c;如果threejs三维场景不添…环境贴图作用测试
实际生活中光源照射到一个物体上这个物体反射出去的光线也会影响其他的物体环境贴图就是用一种简单方式近似模拟一个物体周边环境对物体表面的影响。
测试对于PBR材质如果threejs三维场景不添加任何光源物体就是完全黑色的你可以不添加任何光源尝试只使用环境贴图你会发现物体表面的颜色也能看到这说明环境贴图其实相当于提供了物体周围环境发射或反射的光线。
测试更换不同明暗的环境贴图你会发现场景中模型的明暗也有变化。
场景环境属性.environment
网格模型可以通过材质的.envMap属性设置环境贴图如果一个gltf模型中所有的Mesh都要设置环境贴图就需要递归遍历gltf模型给里面每个Mesh的材质设置.envMap。
loader.load(../工厂.glb, function (gltf) {// 递归遍历批量设置环境贴图gltf.scene.traverse(function (obj) {if (obj.isMesh) { //判断是否是网格模型obj.material.envMap textureCube; //设置环境贴图}});
})如果你希望环境贴图影响场景中scene所有Mesh可以通过Scene的场景环境属性.environment实现,把环境贴图对应纹理对象设置为.environment的属性值即可。
// 环境贴图纹理对象textureCube作为.environment属性值,影响所有模型
scene.environment textureCube;环境贴图色彩空间编码.encoding
//如果renderer.outputEncodingTHREE.sRGBEncoding;环境贴图需要保持一致
textureCube.encoding THREE.sRGBEncoding;