Saya memiliki lantai heksagonal tak terbatas, yang dihasilkan oleh tessellating titik grid dalam pasangan shader tessellation:
Perhatikan bahwa ini adalah bingkai gambar datar - "bayangan" adalah trik pencahayaan:
Sekarang, saya ingin membuat ini tampak seperti kaca yang tebal, bias, tetapi tidak yakin bagaimana untuk melanjutkan.
Hal pertama yang terlintas dalam pikiran adalah
- atur seragam yang berisi "ketebalan" balok yang diminta
- Saat menghitung pencahayaan, gunakan hukum Snell untuk menghitung panjang jalur optik, sebuah sinar akan melewati blok hex, jika itu benar-benar setebal yang dikatakan oleh "ketebalan" seragam, dan jumlah alpha di atas panjang itu. Itu akan memberikan transparansi, tetapi tidak menangani hal-hal seperti refleksi internal / TIR, dll.
Saya belum mencobanya, jadi saya tidak yakin apa hasil visualnya.
Pada akhirnya, untuk level khusus ini, saya mencoba untuk mendapatkan tampilan lantai heksagonal kaca yang digunakan di Tron: Legacy selama pertempuran disc. ( Lihat gambar ini sebagai contoh .)
Saran?
Jawaban:
Artikel dalam Permata GPU ini membahas secara mendalam tentang pembiasan, yang dapat memberikan hasil yang cukup bagus
Dalam arti paling mendasar
Daftar berikut menunjukkan shader yang menunjukkan pendekatan ini
Gambar selanjutnya menggambarkan tiga langkah ini
Ada teknik yang lebih maju dalam artikel yang sama yang dapat mencapai tampilan yang jauh lebih menarik
Untuk efek serupa di Unity, Anda mungkin ingin melihat halaman wiki The Refraction Shader
sumber
Saya akan mengambil gambar yang Anda tunjukkan sebagai referensi untuk bagaimana saya membayangkan efeknya. Algoritma yang dapat saya pikirkan adalah sederhana:
Mengenai shader refraksi, inorder untuk mensimulasikan kaca yang bisa Anda lakukan
Saya hanya memikirkan ide itu, jadi saya tidak mengujinya. Saya yakin ini membutuhkan lebih banyak pekerjaan, Mungkin saya akan melakukannya begitu saya kembali dari pekerjaan.
sumber