ズームインしてカメラを少し動かすと、アーティファクトが再現される場合があります。
https://threejs.org/examples/webgl_mirror.html
確かに。
このトピックも参照してください: https :
最後に、ミラーが適切に実装されていないように感じます。
メインカメラのアスペクト比がミラーカメラにコピーされることはありません。
// "examples/Mirror.js" (lines 142-146)
mirrorCamera.near = camera.near;
mirrorCamera.far = camera.far;
mirrorCamera.updateMatrixWorld();
mirrorCamera.updateProjectionMatrix();
次のように変更する必要があります。
mirrorCamera.updateMatrixWorld();
mirrorCamera.projectionMatrix.copy(camera.projectionMatrix);
後でPRを送ります!
ミラー(および平面の海)のもう1つの問題は、 logarithmicDepthBuffer
が有効になっていると機能しないように見えることです。 斜めの平面近くのクリッピングは深さで混乱し、私はこれに対する解決策を見つけられませんでした。 WebGLにglClipPlane
あればいいのに😞
@vanruescコードをいじっていたので、直接実装しました。 どうもありがとう!
@mrdoobまだいじっているのなら、単純化の余地があると思います...
//mirrorCamera.up.set( 0, - 1, 0 );
//mirrorCamera.up.applyMatrix4( rotationMatrix );
//mirrorCamera.up.reflect( normal ).negate();
mirrorCamera.up.set( 0, 1, 0 ).applyMatrix4( rotationMatrix ).reflect( normal );
@WestLangleyありがとう!
最も参考になるコメント
@mrdoobまだいじっているのなら、単純化の余地があると思います...