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);

したがって、コードは、Web 上にあるすべてのサンプルのようなものです。変わりはない。しかし、私が気づいたことの 1 つは、プリミティブの反射は完璧ですが、obj ファイルからロードされたカスタム メッシュの反射は貧弱です。

スクリーンショット

4

1 に答える 1

0

環境マッピングは、環境が無限に離れているという前提に基づいていますが、これはあなたのケースでは有効な近似ではありません。したがって、気に入らないアーティファクトが表示されます。

キューブ カメラの解像度を 2 倍にすると、エッジが壊れる効果が減少する場合があります。

于 2013-01-26T16:40:17.320 に答える