Pipeline untuk membuat Voronoi Meshes

10

Saya ingin menerapkan plugin Maya (pertanyaan ini independen dari Maya) untuk membuat pola 3D Voronoi, Sesuatu seperti

masukkan deskripsi gambar di sini

Saya hanya tahu bahwa saya harus mulai dari titik sampling (saya menerapkan algoritma sampling poisson adaptif yang dijelaskan dalam makalah ini ).

Saya berpikir bahwa, dari titik-titik itu, saya harus membuat kawat 3D dari jala yang menerapkan Voronoi (saya mencoba menggunakan (Python) scipy.spatial.Voronoi tetapi hasilnya adalah sesuatu yang berbeda dari yang saya harapkan).

Saya melewatkan sesuatu? Adakah yang bisa menyarankan pipeline dan algoritma yang tepat yang harus saya terapkan untuk membuat pola seperti itu?

[EDIT] Berikut adalah beberapa contoh dari apa yang saya dapatkan menangani hasil yang saya dapatkan dari scipy.spatial.Voronoi seperti ini (seperti yang disarankan di sini ):

vor = Voronoi(points)
for vpair in vor.ridge_vertices:
    for i in range(len(vpair) - 1):
        if all(x >= 0 for x in vpair):
            v0 = vor.vertices[vpair[i]]
            v1 = vor.vertices[vpair[i+1]]
            create_line(v0.tolist(), v1.tolist())

Simpul abu-abu adalah titik sampel (bentuk aslinya adalah bola sederhana): masukkan deskripsi gambar di sini

Ini adalah bentuk yang lebih kompleks (lengan) masukkan deskripsi gambar di sini

Jiloc
sumber
Terima kasih atas balasannya. Saya akan meniru apa yang saya lakukan dan memposting layar seperti yang disarankan. Pokoknya tujuan akhir dari pertanyaan ini bukan untuk men-debug kode saya, tetapi untuk memahami jika apa yang saya lakukan benar atau ada langkah-langkah lain yang saya lewatkan di antaranya!
Jiloc
menambahkan contoh seperti yang disarankan!
Jiloc
Poin-poin dari poisson sampling benar. Algoritma yang menghasilkan mereka sepenuhnya unit diuji dan yang Anda lihat di layar adalah bola dengan pusat di titik sampel yang saya secara pemrograman dibuat sebelum memanggil Voronoi (poin)! Saya khawatir bahwa saya tidak mengikuti jalan yang benar atau saya menangani hasil Voronoi dengan cara yang salah
Jiloc
Gambar yang Anda perlihatkan telah melakukan voronoi pada fungsi 2d.
joojaa
@joojaa Dari contoh gambar saya berharap bahwa tepi sel Voronoi pada permukaan 2D adalah apa yang diperlukan (untuk memberikan koleksi segmen garis yang menghubungkan titik-titik pada permukaan bola, daripada kumpulan bagian pesawat yang akan diberikan dalam 3D) . Namun, scipy.spatial.Voronoi tampaknya dirancang untuk ruang dimensi N daripada permukaan yang tertanam di dalamnya. Saya tidak bisa langsung melihat bagaimana ini akan digunakan untuk poin 3D yang dibatasi ke permukaan 2D.
trichoplax

Jawaban:

1

http://www.cs.sandia.gov/~samitch/papers/vor_final.pdf Tidak ada algoritma komputer dalam bahasa pemrograman apa pun, tetapi Anda harus dapat mereplikasi dengan mudah dengan beberapa Refleksi Pesawat dan algoritma dari tautan di atas.

Zeitaku Enjin
sumber
Selamat datang di ComputerGraphics.SE! Biasanya merupakan ide yang baik untuk membuat jawaban di Stack Exchange mandiri (mis. Jika tautan menurun dan juga secara umum sehingga orang tidak perlu mengikuti tautan untuk dapat mengetahui apakah suatu jawaban bermanfaat bagi mereka). Anda mungkin ingin meningkatkan jawaban dengan memasukkan ringkasan singkat dari isi makalah ini.
Martin Ender