Apa yang dimaksud dengan voxelization “6-separating” dan “26-separating”?

11

Saya membaca makalah ini tentang Voxelpipe, perpustakaan voxelization dari NVIDIA dan saya temukan di bagian 2 Voxelization istilah 6-separating dan 26-separating

Saya menemukan situs web ini yang mencoba menjelaskan ide-ide dasar tentang voxelization tetapi tidak terlalu membantu memahami istilah yang disebutkan.

Adakah yang bisa menjelaskan atau menunjukkan sumber daya lain yang dapat membantu saya memahami?

BRabbit27
sumber

Jawaban:

17

Istilah-istilah itu berkaitan dengan "ketebalan" voxelization. Saya akan mengilustrasikan dengan bantuan diagram tentang rasterisasi garis 2D (dari pertanyaan yang tidak terkait ini ).

masukkan deskripsi gambar di sini

Di sebelah kanan adalah rasterisasi garis yang khas: algoritma menemukan satu piksel terdekat dengan garis dalam setiap baris (atau kolom, tergantung pada kemiringan). Ini menghasilkan apa yang biasanya kita anggap sebagai garis "1-pixel-tebal". Di sebelah kiri adalah rasterisasi konservatif, yang menemukan setiap piksel yang persegi panjangnya disentuh oleh garis, dan menghasilkan garis yang lebih tebal.

6-memisahkan voxelization seperti garis tipis di sebelah kanan, dan 26-memisahkan seperti garis tebal di sebelah kiri, tetapi dalam 3D. Jika Anda membayangkan garis sebenarnya adalah segitiga yang dilihat di tepi, ini analog dengan seperti apa bentuk voxelization nantinya.

Berbagai jenis voxelization mungkin lebih baik tergantung pada apa yang akan Anda lakukan dengan data voxelized nanti. Jika Anda menggunakan voxel sebagai hierarki spasial untuk menemukan segitiga yang memotong wilayah tertentu, Anda mungkin menginginkan voxelization yang tebal, karena konservatif. Voxelization yang tebal mungkin juga lebih disukai untuk parier, karena voxelization yang tipis dapat dilewatkan oleh sinar diagonal. Di sisi lain, voxelization tipis adalah representasi yang lebih setia dari permukaan asli, yang mungkin lebih baik untuk tes visibilitas, deteksi tabrakan, simulasi fluida, dan sejenisnya.

Terminologi "n-separating" agak disayangkan, tapi inilah maksudnya. Bayangkan Anda melakukan pengisian banjir 3D di kotak voxel, tetapi di pengisian banjir Anda hanya melihat 6 tetangga langsung dari masing-masing voxel (± 1 langkah di sepanjang setiap sumbu). Maka voxelisasi "6-separating" (thin) akan menghentikan banjir: cukup untuk memisahkan kedua sisi permukaan, jika hanya 6 tetangga yang dipertimbangkan. Di sisi lain, anggaplah banjir Anda diizinkan untuk pergi ke tetangga diagonal juga — 26 tetangga di semua (3 × 3 × 3 lingkungan voxels). Maka voxelization 6-separating tidak akan menghentikan mengisi banjir, tetapi yang 26-memisahkan (tebal) akan.

Nathan Reed
sumber
Bagus! Penjelasan Anda memberi saya intuisi tentang hal itu. Apakah Anda memiliki beberapa sumber di mana saya dapat membaca lebih banyak tentang rasterisasi? Saya kira hal-hal n-separating ini berasal dari 2D di mana lebih mudah dipahami dan kemudian saya bisa lebih berpikir untuk memahami 6- dan 26-separating dalam 3D.
BRabbit27
1
@ BRabbit27 Saya tidak berpikir terminologi "n-separating" banyak digunakan dalam rasterisasi 2D; Saya hanya melihatnya ketika membahas voxelization. Itu hanya merujuk pada jumlah tetangga. Saya akan menambahkan sedikit jawaban tentang itu.
Nathan Reed