Якщо ви використовуєте OpenGL, в розділі 9: FAQ: Open Transformation описано, як саме це зробити. І ні, це не передбачає проміння, оскільки це зрозуміло дуже неефективний (але якісний) спосіб досягти цього.
9.170 Як зробити дзеркало?
Тут по суті йдеться про запитання FAQ, а приклад коду демонструє:
- Налаштування матриці відображення перегляду. Робити це для дзеркал, орієнтованих на осі, пояснено у другому параграфі.
- Намалюйте сцену
- Відновіть матрицю подання та очистіть буфер глибини
- Знову виведіть сцену; фактична геометрія дзеркала в цій сцені повинна бути напівпрозорою або повністю прозорою, щоб відобразитись до раніше наданої дзеркальної сцени.
Очевидно, що є багато місця для оптимізації. Під час візуалізації відображеної сцени ви, мабуть, повинні якомога більше відсікати, оскільки дзеркала, як правило, невеликі, а вимкнення поза екраном за замовчуванням не сприймається за геометрію, яка є на екрані, але не бачиться через дзеркало. Ви також можете відображати просто дзеркальну спрощену версію сцени. Для ефектів і для того, щоб застерегти користувача від того, щоб помітити знижену якість, ви можете застосувати шейдер (наприклад, розмиття або, можливо, яскравий / вимитий) під час дзеркального відображення.
Я думаю, якби ви використовували DirectX, процедура була б майже однаковою.