Three.js: Geometri tanpa permukaan masih dirender dalam Mesh

Dibuat pada 7 Agu 2017  ·  3Komentar  ·  Sumber: mrdoob/three.js

Idenya adalah bahwa Geometri saya selalu memiliki simpul yang sama, tetapi wajah ditambahkan secara opsional. Namun, ia secara acak memutuskan untuk menggambar sesuatu. Demo di sini .

Bug Won't fix

Komentar yang paling membantu

Saya telah men-debug masalah ini hari ini. Geometry secara internal dikonversi menjadi BufferGeometry . Hasil dari konversi ini tergantung pada jenis objek (Jaring, Garis, dll.). Jadi dalam contoh @makc , geometri diubah sebagai geometri objek Line . Ini akan membuat atribut posisi dan warna. Ketika instance Mesh -render dengan objek Geometry , perender mengembalikan instance cache yang sama dari BufferGeometry .

https://github.com/mrdoob/three.js/blob/ec67749b0767e2727deebd52da2dbd3a4e7ab6a2/src/renderers/webgl/WebGLGeometries.js#L63 -L65

Inilah alasan mengapa Anda melihat segitiga hijau ini di demo. Mesh dan Line berbagi internal yang sama BufferGeometry dan menafsirkannya secara berbeda. Saya pikir kita bisa menyelesaikan masalah ini jika kita mencoba untuk menghormati jenis objek saat menyimpan BufferGeometry .

Atau kami hanya merekomendasikan untuk menggunakan BufferGeometry di tempat pertama: sweat_smile:

Semua 3 komentar

Masalah sebaliknya di sini - kami tidak melihat wajah di tempat mereka didefinisikan. Jadi mungkin ini karena Geometri dibagi antara Garis dan Jaring.

Saya telah men-debug masalah ini hari ini. Geometry secara internal dikonversi menjadi BufferGeometry . Hasil dari konversi ini tergantung pada jenis objek (Jaring, Garis, dll.). Jadi dalam contoh @makc , geometri diubah sebagai geometri objek Line . Ini akan membuat atribut posisi dan warna. Ketika instance Mesh -render dengan objek Geometry , perender mengembalikan instance cache yang sama dari BufferGeometry .

https://github.com/mrdoob/three.js/blob/ec67749b0767e2727deebd52da2dbd3a4e7ab6a2/src/renderers/webgl/WebGLGeometries.js#L63 -L65

Inilah alasan mengapa Anda melihat segitiga hijau ini di demo. Mesh dan Line berbagi internal yang sama BufferGeometry dan menafsirkannya secara berbeda. Saya pikir kita bisa menyelesaikan masalah ini jika kita mencoba untuk menghormati jenis objek saat menyimpan BufferGeometry .

Atau kami hanya merekomendasikan untuk menggunakan BufferGeometry di tempat pertama: sweat_smile:

@mrdoob Saya sarankan untuk memperkenalkan label baru Wont't fix , tetapkan ke terbitan dan tutup. Saya rasa tidak masuk akal untuk menambahkan perbaikan ke perender jika proyek akan berhenti merender Geometry . Solusi untuk masalah ini adalah penggunaan BufferGeometry .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat