Saya mencoba menerapkan pemandangan laut dengan C ++ dan DirectX11. Saat ini saya memiliki grid yang diproyeksikan, gelombang Gerstner dan bayangan dasar. Masalah saya adalah ketika saya mengarahkan kamera secara horizontal, sehingga saya bisa melihat cakrawala air, di kejauhan, grid yang diproyeksikan menjadi tidak mencukupi, bahkan pada bilangan titik tinggi. Tangkapan layar ini menggambarkan masalah:
Saya tahu penyebab masalahnya adalah dalam konsep grid yang diproyeksikan (grid dirinci di dekat kamera, jauh dari itu), tetapi harus ada praktik terbaik untuk menyelesaikan ini.
Ada ide?
Anda bisa realistis dan real-time. rahasianya adalah mengubah representasi setiap kali informasi masuk dalam skala Shannon-Nyquist (yaitu kisi): dari geometri ke peta normal ke model naungan. Makalah ini dibuat untuk Anda: http://maverick.inria.fr/Publications/2010/BNH10/index.php (lihat juga video Yoube)
sumber
Beberapa perangkat lunak seperti Maya, pecahkan masalah ini dengan menggunakan kutub (atau sebenarnya kartesian yang mengubah kutub dari kejauhan) dengan cara yang sama seperti ketika Anda memusatkan pada posisi kamera. Pengaturan ini menambahkan lebih banyak detail di mana ia paling penting. Kemudian mereka mengandalkan pemrosesan normal shader pada rentang lebih lanjut. Ada ruang untuk offcourse improvisasi. Anda dapat sedikit memodifikasi pendekatan ini, dan memiliki bentuk lain yang meningkatkan kepadatan jala ke arah kamera. Manfaatnya adalah Anda dapat meregangkan efek hingga ke cakrawala tanpa khawatir dengan jahitannya.
Trik untuk tidak membuat displacentent tercampur dalam kasus ini adalah Anda secara bertahap mengurangi perpindahan saat Anda bergerak lebih jauh. Anda kemudian hanya menggunakan modifikasi normal dalam pixel shader saat Anda melangkah lebih jauh. Ini lebih mudah disaring daripada harus menyaring tepi shiluette yang akurat. Juga jika Anda dapat melihat sejauh itu maka vawes Anda mungkin cukup rata pula.
sumber
Teknik yang disebutkan Benedikt dijelaskan dalam Bagian 2.4.1 dari tesis ini.
http://fileadmin.cs.lth.se/graphics/theses/projects/projgrid/projgrid-lq.pdf
Menerapkan ini harus menyelesaikan masalah Anda.
sumber