Saya hanya ingin tahu bagaimana cara membuat cermin di dalam game 3D? Saran saya adalah / adalah untuk melacak sinar, mengenai objek "cermin" kemudian menggambar gambar kamera kedua ke objek "cermin" yang terletak di "titik" cermin kamera asli dengan menggunakan sisi hit objek cermin sebagai pesawat mirroring.
Kita harus menggunakan satu sinar yang berasal dari pusat kamera asli untuk menentukan titik di mana pusat penglihatan terletak pada bidang cermin.
graphics-programming
daemonfire300
sumber
sumber
Jawaban:
Jika Anda menggunakan OpenGL, bagian FAQ OpenGL 9: Transformasi mencakup cara melakukan hal ini. Dan tidak, itu tidak melibatkan raytracing, karena itu bisa dimengerti cara yang sangat tidak efisien (tapi berkualitas tinggi) untuk mencapai ini.
9.170 Bagaimana cara membuat cermin?
Berikut ini pada dasarnya apa yang dikatakan entri FAQ, dan contoh kode menunjukkan:
Jelas ada banyak ruang untuk optimasi. Saat merender adegan yang dipantulkan, Anda mungkin harus menyisihkan sebanyak mungkin, karena cermin biasanya kecil dan penyisihan di luar layar tidak akan mendukung geometri yang ada di layar tetapi tidak terlihat melalui cermin. Anda juga dapat membuat versi adegan yang disederhanakan melalui cermin. Untuk efek, dan untuk mengaburkan pengguna dari memperhatikan penurunan kualitas, Anda bisa menerapkan shader (misalnya buram, atau mungkin cerah / pudar) saat Anda membuat render cermin Anda.
Saya membayangkan, jika Anda menggunakan DirectX, prosedurnya akan sama.
sumber