Ada banyak makalah selama bertahun-tahun tentang teknik yang berbeda untuk menggambar medan bidang tinggi dalam pelacak sinar. Beberapa algoritma ray-pawai grid secara langsung (atau melalui quadtree); yang lain mengubah medan menjadi jaring poligon dan menggunakan uji persimpangan ray-triangle standar. Penelitian tampaknya telah bergerak dalam beberapa tahun terakhir, dan sulit untuk menemukan makalah yang ditulis dalam dekade terakhir, tetapi keseimbangan antara memori dan komputasi (baik CPU dan GPU) masih berubah.
Algoritma seperti apa yang memberikan kinerja terbaik pada mesin desktop kelas atas saat ini? Atau jika tidak ada jawaban tunggal, bagaimana perbedaan karakteristik kinerja dari algoritma terbaik saat ini?
raytracing
height-field
Dan Hulme
sumber
sumber
Jawaban:
Untuk keadaan saat ini, lihat makalah ini: "Mipmaps Maksimum untuk Rendering Bidang Ketinggian Dinamis Cepat, Akurat, dan Terukur", Tevs et al. 2008
Ide dasarnya adalah untuk melewati banyak ruang dengan memiliki pengetahuan tentang nilai maksimum di wilayah yang luas. Jika sinar tetap di atas itu, lewati ke area besar berikutnya.
Jika Anda melihat Gambar 8, Anda akan melihat perbandingan stepping linier dasar vs mipmaps maksimum. Stepping linear menghasilkan 200 langkah, yang dapat dilakukan secara real-time pada GPU modern tetapi sebenarnya masih lambat. Max mipmaps melakukan hal yang sama dalam sekitar 10 langkah, semuanya dalam shader.
sumber
Yang terbaik yang saya pribadi lihat adalah barang-barang inigo quillez tidak, yang digunakan dalam barang-barang demoscene. Ray March medan, mengambil langkah-langkah yang lebih besar semakin jauh Anda dapatkan dari kamera karena detail (biasanya) kurang penting di kejauhan (pengecualian = dinding tipis!). Dia menggunakan info penetrasi dan metrik lain yang mudah didapat untuk mensimulasikan oklusi ambien dan teknik pencahayaan canggih lainnya.
Berikut ini adalah demo dari barang yang sedang beraksi: https://www.youtube.com/watch?v=_YWMGuh15nE
Dan inilah halaman IQ tentang raymarching medan yang merupakan bacaan yang cukup menarik: http://www.iquilezles.org/www/articles/terrainmarching/terrainmarching.htm
BTW, dalam permainan modern, teknik "refleksi ruang layar" sering hanya pawai sinar terhadap Z buffer dari adegan yang diberikan. Z buffer benar-benar hanya bidang ketinggian.
Saya melihat beberapa pembicaraan tentang hal ini di siggraph 2014, dan sementara beberapa orang menggunakan teknik yang sama seperti IQ, beberapa melakukan hal-hal yang bahkan tidak sebaik IQ, yang menarik untuk dilihat: P
sumber
Cone Step Mapping dan Relaxed Cone Step Mapping tampaknya algoritma yang sangat baik. Ini bergantung pada sedikit preprocessing dari bidang ketinggian untuk membuat peta 2D yang digunakan untuk pencarian yang lebih efisien.
http://www.lonesock.net/files/ConeStepMapping.pdf https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch18.html
sumber