Dari membaca makalah hingga halaman 2, tampak bobot volume disimpan di sudut-sudut kisi bukannya bobot kubus itu sendiri seperti yang disukai algoritma gaya Marching Cubes. Bobot sudut ini menentukan titik antara sepanjang tepi antara 2 sudut di mana ada perubahan tanda dari sudut ke sudut .. Tepi dengan perubahan tanda juga menyimpan normal untuk tepi yang merupakan garis miring dalam representasi 2D Anda di OP. Informasi normal itu didefinisikan selama pembuatan volume (dengan alat penyuntingan apa pun atau metode pembuatan volume prosedural sedang digunakan), tidak setelah permukaan isosur dihasilkan seperti yang diharapkan oleh algoritma gaya Marching Cubes. Data normal ini "menyatakan" bahwa garis / permukaan yang melewati titik harus memiliki nilai normal yang telah ditentukan. Dalam kasus di mana Marching Cubes akan menekuk garis pada titik itu untuk kawin dengan titik lain di tepi yang berdekatan, Extended Marching Cubes dan Dual Contouring keduanya memperpanjang garis / permukaan keluar sampai bersinggungan dengan garis / permukaan yang melewati titik di atas edge yang berdekatan yang memiliki nilai normal berbeda. Hal ini memungkinkan membuat sudut tajam dari data volume di mana algoritma Marching Cubes dasar akan membulatkan permukaan. Saya tidak begitu mengerti bagaimana QEFs (fungsi kesalahan kuadrat) bermain dalam hal ini kecuali bahwa tampaknya mereka membuatnya lebih mudah untuk menghitung titik yang diperluas dalam sebuah kubus di mana sudut akan berada. Extended Marching Cubes dan Dual Contouring keduanya memperpanjang garis / permukaan hingga bersinggungan dengan garis / permukaan yang melewati titik di tepi yang berdekatan yang memiliki nilai normal berbeda. Hal ini memungkinkan membuat sudut tajam dari data volume di mana algoritma Marching Cubes dasar akan membulatkan permukaan. Saya tidak begitu mengerti bagaimana QEFs (fungsi kesalahan kuadrat) bermain dalam hal ini kecuali bahwa tampaknya mereka membuatnya lebih mudah untuk menghitung titik yang diperluas dalam sebuah kubus di mana sudut akan berada. Extended Marching Cubes dan Dual Contouring keduanya memperpanjang garis / permukaan hingga bersinggungan dengan garis / permukaan yang melewati titik di tepi yang berdekatan yang memiliki nilai normal berbeda. Hal ini memungkinkan membuat sudut tajam dari data volume di mana algoritma Marching Cubes dasar akan membulatkan permukaan. Saya tidak begitu mengerti bagaimana QEFs (fungsi kesalahan kuadrat) bermain dalam hal ini kecuali bahwa tampaknya mereka membuatnya lebih mudah untuk menghitung titik yang diperluas dalam sebuah kubus di mana sudut akan berada.
Perhatikan bahwa saya telah berbicara tentang garis dan tepi di sini dalam arti 2D seperti yang digambarkan oleh representasi dalam OP .. Saya harus melakukan lebih banyak membaca dan berpikir untuk memperluas ini ke 3D untuk generasi mesh volumetrik.
Untuk menjawab setengah pertanyaan Anda tentang cara membuat normals, dan berpikir dari sudut pandang prosedural yang digerakkan oleh noise, sepertinya Anda akan mengisi volume Anda dengan data noise lalu mencari tepi dengan perubahan tanda, kemudian memeriksa 4 kubus yang berbagi tepi untuk mencari tahu di mana segitiga apa yang akan dihasilkan, dan menghitung titik normal seperti yang Anda lakukan untuk persimpangan lainnya dari beberapa segitiga, mengambil rata-rata normal untuk setiap segitiga yang berbagi titik. Ini sangat spekulatif bagi saya karena makalah ini membahas sebagian besar operasi CSG dan volume yang dihasilkan dari jerat pindaian yang dikonversi, keduanya memiliki normals yang didefinisikan dengan baik di permukaan.
Saya harap setidaknya bagian pertama dari jawaban ini membahas perbedaan dalam bagaimana data berat diwakili dan digunakan dengan cara yang sangat berbeda dari Marching Cubes dasar, dan mengapa data normal harus dibuat cukup awal dalam proses pembuatan volume, di mana dengan dasar marching kubus normalnya biasanya dibuat sebagai tahap terakhir dalam proses pembuatan mesh.