0
在我的項目中,向場景添加了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文件加載的自定義網格的反思很差。
沒有看到代碼,誰知道?但我會做不同的事情。使「鏡子」部分透明,並在另一側與本房間相反的房間添加一個房間。 「反射」將是完美的 - 除了相機不會看到它自己的反射,這是一件好事。 :-) – WestLangley
另一個房間無法添加,因爲此項目對於最終用戶而言是高度互動的。可以添加新的傢俱,創建新的場景等...我用代碼片段更新了問題。主要問題是,如果我在場景中添加球體並將envMap設置爲同一個立方體相機的renderTarget(更新球場的位置),那麼球體將完美地反射場景。但是,如果反射幾何是從obj文件加載的自定義對象,則不會發生同樣的事情... – Tezcan
另一個可能是bug的問題。對球形物體的反射是完美的,同時將相機移動到場景中,反射的紋理就像它應該的那樣縮放。但是當我們將反射添加到像立方體這樣的平坦表面幾何圖形時,反射比例總是不變的。我的意思是,當我們將相機從場景中移開時,反射紋理不會縮放。 – Tezcan