Saya mengutak-atik pemodelan 3D prosedural sederhana untuk membuat bangunan mungil untuk pencetakan 3D. Sebuah contoh:
Untuk membuat model lebih mudah dibaca di layar, saya telah menerapkan pemetaan bayangan dasar untuk satu arah cahaya. Karena adegan saya tidak berubah, saya hanya membuat peta bayangan sekali menggunakan kotak kotak yang disejajarkan adegan untuk mencari tahu apa batas-batas peta bayangan seharusnya. Bayangan dan batas tampak seperti saya sudah benar semua matriks, tetapi datang sedikit lebih dekat tampak mengerikan:
Dari bacaan yang telah saya lakukan, saya memahami panning peter dan apa yang mungkin saya lakukan tentang hal itu, tetapi ujung-ujungnya yang kasar, yang saya yakini adalah bentuk aliasing projektif, terlihat sangat buruk sehingga saya pikir ada sesuatu yang salah dalam implementasi dasar saya.
Saya meretas pixel shader untuk menunjukkan batas bayangan texel:
Saya memiliki bilinear filtering pada tekstur (tanpa itu, saya mendapatkan jerawat bayangan yang serius). Sedihnya, upaya saya di PCF juga gagal - sepertinya hanya compang-camping:
Inilah contoh kasus tunggal dengan pemfilteran bilinear dinonaktifkan:
Apakah ini terlihat seperti aliasing proyektif "khas"? Bisakah rendering dinamis dari peta bayangan, menggunakan frustrasi tampilan terpotong ke tempat kejadian, mungkin dengan cascading, mengatasi masalah ini?
Sunting: Menambahkan closeup pemfilteran bilinear, memposting perbandingan bayangan, hanya untuk menunjukkan apa yang saya dapatkan. Jerawat bayangan buruk muncul karena tepi interior; Saya memodelkan dengan blok virtual bertumpuk dan tidak melakukan operasi serikat yang tepat. Dari bacaan saya, menerapkan operasi boolean pada polyhedra bukanlah hal sepele, tetapi juga akan memungkinkan saya untuk menerapkan volume bayangan statis serta membersihkan beberapa perangkat lunak pencetakan 3D.