在我的项目中,为场景添加了一个cubeCamera以获得动态的envMapping(反射)。如你所见,厨房的后墙有反射,上面有一些模糊,边缘也没有抗锯齿。那么我怎么能摆脱断线并在墙上画出尖锐的反射呢?
代码:
var cubeCamera = new THREE.CubeCamera(1, 1000, 256);
cubeCamera.renderTarget.minFilter = THREE.LinearMipMapLinearFilter;
scene.add(cubeCamera);
var material = new THREE.MeshPhongMaterial({
ambient: 0x996633,
reflectivity: 1,
color: 0x996633,
specular: 0x050505,
shininess: 100,
shading: THREE.SmoothShading, //THREE.FlatShading,
blending: THREE.NormalBlending,
side: THREE.DoubleSide,
envMap: project.cubeCamera.renderTarget,
wireframe: false
});
objMesh.material = material;
在渲染功能中:
objMesh.visible = false;
objMesh.cubeCamera.updateCubeMap(renderer, scene);
objMesh.visible = true;
renderer.render(scene, camera);
因此代码就像在网络上找到的每个样本一样。没有不同。但我抓到的一件事是,对基元的反射是完美的,但是从obj文件加载的自定义网格的反射很差。
答案 0 :(得分:0)
环境映射基于环境无限远的假设,这在您的情况下不是有效的近似值。因此,你会看到你不喜欢的文物。
如果将立方相机的分辨率提高一倍,可能会减少折边效果。