所以我有非常基本的设置:
var cubeCamera = new THREE.CubeCamera (1, 1000, 1024);
cubeCamera.renderTarget.texture.minFilter = THREE.LinearMipMapLinearFilter;
cubeCamera.renderTarget.texture.mapping = THREE.CubeRefractionMapping;
cubeCamera.updateCubeMap (renderer, scene);
var matte = new THREE.MeshStandardMaterial({
envMap: cubeCamera.renderTarget.texture,
metalness: 0.5,
roughness: 0.4
});
这会产生正确的模糊折射。然而,将金属度驱动到0使其几乎完全消失,使材料看起来完全不透明。设置哑光折射材料的正确方法是什么?
答案 0 :(得分:1)
您正尝试使用MeshStandardMaterial
来制作半透明和折射的非金属材质。您将metalness
设置为零或接近零。
非金属通常具有低镜面反射率。这意味着来自环境的镜面反射很小 - 当然与金属相比。因此,MeshStandardMaterial
被设计为具有类似的属性。
您有两种选择。
第一个选项是通过增加material.envMapIntensity
进行补偿,默认为1.这样可以模拟更明亮的环境。
第二种选择是使用功能更丰富的MeshPhysicalMaterial
。
MeshPhysicalMaterial
具有额外的material.reflectivity
属性,可控制非金属的镜面反射率。对于基于物理的材质,将此属性设置为1是合理的最大值,但如果需要,可以进一步增加。
three.js r.86