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:
- Siapkan matriks tampilan yang direfleksikan. Melakukan ini untuk mirror yang disejajarkan dengan sumbu dijelaskan dalam paragraf kedua.
- Gambarkan adegan itu
- Kembalikan matriks tampilan dan kosongkan buffer kedalaman
- Jadikan adegan lagi; geometri cermin sebenarnya dalam adegan ini harus tembus cahaya atau seluruhnya transparan, untuk menunjukkan adegan cermin yang sebelumnya dibuat.
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.