Three.js: Artefak Contoh Cermin WebGL

Dibuat pada 17 Agu 2017  ·  5Komentar  ·  Sumber: mrdoob/three.js

Artefak dapat direproduksi dengan memperbesar dan menggerakkan kamera sedikit.

https://threejs.org/examples/webgl_mirror.html

screen shot 2017-08-16 at 8 53 26 pm

Versi Three.js
  • [x] Dev
  • [x] r86
Browser
  • [x] Chrome
OS
  • [x] macOS
Bug

Komentar yang paling membantu

@mrdoob Jika Anda masih main-main, saya pikir masih ada ruang untuk penyederhanaan ...

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

Semua 5 komentar

Memang.
Lihat juga topik ini: https://github.com/mrdoob/three.js/issues/11885
Pada akhirnya saya merasa Mirror tidak diterapkan dengan benar.

Rasio aspek kamera utama tidak pernah disalin ke kamera cermin.

// "examples/Mirror.js" (lines 142-146)
mirrorCamera.near = camera.near;
mirrorCamera.far = camera.far;
mirrorCamera.updateMatrixWorld();
mirrorCamera.updateProjectionMatrix();

Harus diubah menjadi:

mirrorCamera.updateMatrixWorld();
mirrorCamera.projectionMatrix.copy(camera.projectionMatrix);

Saya akan mengirim PR untuk ini nanti!

Masalah lain dengan cermin (dan lautan planar) adalah bahwa itu tampaknya tidak berfungsi ketika logarithmicDepthBuffer diaktifkan. Guntingan miring dekat bidang mengacaukan kedalaman dan saya tidak pernah menemukan solusi untuk ini. Saya berharap WebGL memiliki glClipPlane 😞

@vanruesc Saya mengotak-atik kode jadi saya menerapkannya secara langsung. Terimakasih banyak!

@mrdoob Jika Anda masih main-main, saya pikir masih ada ruang untuk penyederhanaan ...

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

@WestLang Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

scrubs picture scrubs  ·  3Komentar

yqrashawn picture yqrashawn  ·  3Komentar

akshaysrin picture akshaysrin  ·  3Komentar

seep picture seep  ·  3Komentar

donmccurdy picture donmccurdy  ·  3Komentar