Mengapa jerat yang dihaluskan di studio 3D berakhir dengan jumlah simpul / segitiga yang sama? Lalu bagaimana mereka bisa dihaluskan dengan geometri yang sama?

11

Saya mencoba memahami mengapa jerat yang dihaluskan di studio 3D (Pengubah / Perhalus) pada akhirnya memiliki jumlah simpul / wajah yang sama sebelum atau setelah proses itu, serta geometri yang sama persis.

Dalam contoh berikut, kedua jerat memiliki 32 simpul dan 60 wajah.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Meskipun saya memiliki pengalaman bekerja dengan pemrograman (c ++ dan c #), saya cukup pemula dengan grafik komputer. Jadi harapan saya adalah bahwa tampilan yang dihaluskan dari mesh yang dihaluskan akan membutuhkan simpul tambahan, yaitu pembagian segitiga, untuk akhirnya memiliki jaring akhir yang lebih rinci. Namun, sepertinya bukan itu masalahnya.

Karena itu saya bertanya:

1) bagaimana mungkin smoothing tanpa meningkatkan detail geometri mesh?

2) apakah smoothing setidaknya meningkatkan memori yang dialokasikan / digunakan untuk menyimpan mesh baru dibandingkan dengan yang asli?

Penjelasannya sangat disambut baik, tetapi referensi (akademis atau tidak) juga dihargai.

Louis15
sumber
Tidak super berpengalaman di sini, tapi saya kira Anda bisa menggunakan shader yang berbeda dalam satu. Lambert akan terlihat seperti yang ada di kanan. Tetapi, rasa takut akan rata-rata dan membuatnya tampak lebih halus. prosjekt.ffi.no/unik-4660/lectures04/chapters/jpgfiles/…
Andrew Wilson
1
Terima kasih atas komentar Anda! Sejujurnya, satu-satunya hal yang saya lakukan adalah menerapkan pengubah Smoother. Tidak ada shader yang ditambahkan sebelumnya dan saya tidak menambahkan shader apa pun setelahnya.
Louis15
Istilah historisnya adalah "itulah perbedaan antara flat dan gouraud's shading". Dalam praktiknya ini berhubungan dengan norma seperti yang dijelaskan oleh joojaa
v.oddou
Perangkat lunak apa yang Anda gunakan dalam tangkapan layar? THX :)
xyz

Jawaban:

14

Halus dalam hal ini hanya membuat permukaan normal pada titik-titik titik dengan cara yang sama, ketika diinterpolasi terlihat halus. Meshsmooth akan menambahkan simpul.

1) bagaimana mungkin smoothing tanpa meningkatkan detail geometri mesh?

Mata manusia tidak bisa benar-benar melihat kelengkungan kecuali di tepi benda. Yang bisa mereka lakukan hanyalah memperkirakan kelancaran dan memproses kemiringan lereng. Jadi memiliki medan kontinu memang memberikan suasana kehalusan. Namun mata sangat sensitif terhadap perubahan warna yang tiba-tiba, dan mengartikannya sebagai lipatan yang keras.

Dengan interpolasi vertex normals permukaan Anda akan mendapatkan tampilan yang mengalir lancar. Karena normal ini digunakan untuk menghitung warna akhir yang dipantulkan Anda mendapatkan bidang warna yang halus.

Rata berbayang vs berbayang halus

Gambar 1 : flat berarsir normal versus normals dari interplasi halus. Kebohongan normal hitam pada sebuah titik. Yang berwarna diinterpolasi.

Tidak ada yang mengatakan kita perlu melakukan interpolasi linier. Bahkan dengan mengganggu normals kita dapat menyebabkan permukaan datar berubah penampilan. Ini adalah cara kerja pemetaan benjolan dan pemetaan normal. Efeknya bisa meyakinkan kecuali permukaan tepi memainkan bagian yang terlalu besar di mana ilusi rusak.

masukkan deskripsi gambar di sini

Gambar 2 : permukaan berbayang datar (belakang), Bayangan halus (tengah) dan normal mulus yang dipetakan. Ilusi permukaan bergelombang pecah karena ujungnya memainkan bagian yang sangat menonjol dalam gambar, Anda malah bisa meningkatkan normalnya

2) apakah perataan setidaknya meningkatkan memori yang dialokasikan

Sulit mengatakan hal-hal definitif tentang mesin grafis yang mendasarinya. Normalnya perlu dipancarkan ke kartu grafis, kemungkinan besar data ini di-cache, tetapi dapat dihitung dengan cepat (dalam kedua kasus).

Karena Max menggunakan smoothing groups, tampaknya bagi saya penggunaan memori konstan, apa pun yang terjadi. Sulit dikatakan, bahkan jika itu tidak di-cache maka itu tidak akan membuat perbedaan besar. Itu membuat shader menjadi sedikit lebih rumit, tetapi kemungkinan besar kompleksitas ini hadir, menggunakannya atau tidak.

joojaa
sumber
Jawaban bagus! Itulah tepatnya yang saya cari: penjelasan konseptual yang tidak meninggalkan detail penting tetapi masih jelas dan langsung ke intinya. Terima kasih banyak
Louis15
2
"Namun mata sangat sensitif terhadap perubahan warna yang tiba-tiba, dan menafsirkannya sebagai lipatan yang keras." Sebenarnya sistem visual manusia sangat baik dalam mendeteksi perubahan dalam turunan dari shading. Naungan bisa kontinu tetapi jika ada ketidaksinambungan dalam laju perubahan seperti pada gambar ini, hal ini bisa sangat terlihat. Cari efek Mach band.
Simon F
1
@SimonF itulah sebabnya mereka melihat lipatan, karena mereka mendapatkan deteksi tepi dan semua itu. Tetapi otak manusia tidak benar-benar melunakkan aliran gradien 2 smooths semuanya paling sama dengan kebanyakan manusia (misalnya, tidak ada derviate sensing detik). Jadi memiliki bola halus itu halus, bahkan jika normalnya tidak berperilaku sepenuhnya bulat asalkan halus. Itulah sebabnya kami lolos dengan triknya. Sangat sedikit permukaan yang berperilaku seperti ini.
joojaa
"(tidak ada derviate sensing detik misalnya)" Saya baru saja memeriksa di "Prinsip-prinsip Sintesis Gambar Digital" Glassner (Volume 1 halaman 29) ... dan sekarang saya lebih bingung dari sebelumnya.
Simon F
@SimonF Anda mungkin bingung tentang pantulan yang secara alami satu turunan lebih rendah dari permukaannya. Jadi, manusia dalam kondisi tertentu dapat merasakan turunan kedua. Tetapi intinya adalah bahwa manusia dapat melihat kerutan, tetapi mereka tidak membuat perbedaan yang berarti antara semua perubahan yang berbeda, fakta bahwa refleksi sedikit tidak aktif atau ke arah yang salah tidak secara otomatis terlihat oleh manusia. Tanpa analisis yang lebih dalam. Sepanjang tidak ada perubahan mendadak untuk sebagian besar cukup baik dalam banyak keadaan. Kita harus melanjutkan ini di ruang obrolan
joojaa