Рендеринг поддельного зеркала
Я пытаюсь понять, как использовать фальшивое зеркало в моей сцене.
Персонаж A проходит мимо зеркала на стене, которое должно отражать комнату и все в ней, кроме персонажа A. Вместо персонажа A оно отражает персонажа B.
В общем, мне нужна простая отражающая поверхность, но:
- Знак А не должен быть виден на поверхности. Отражения должны отображаться так, как будто персонажа A нет в сцене.
- Персонаж B будет в сцене, но будет виден только на отражающей поверхности, а не в самом мире.
Вот грубая графика, чтобы показать, что я имею в виду: D
Здесь менее грубая графика:
Возможно ли это с помощью Blender? Я знаком со всеми наиболее общими функциями, но не могу придумать ничего, что могло бы достичь этого. Могу ли я настроить какие-либо свойства данных? Есть ли модификатор, с помощью которого можно этого добиться? Обман с датчиком отражения?
Я намерен использовать Eevee для рендеринга, но если Cycles добьется этого лучше, я могу переключиться.
РЕДАКТИРОВАТЬ: Я, конечно, могу выбрать не отражающую, а пропускающую поверхность и просто смоделировать содержимое зеркала за поверхностью. Поэтому вместо того, чтобы иметь какое-либо отражение, я просто скопирую и отразлю геометрию и сделаю все вручную, но 1) это много работы, 2) не совсем ответ на технический вопрос, который я задаю.
Ответы
Вы можете использовать выход «Is Reflection Ray» из узла «Light path» и подключить его к альфа-входу «Principled shader» .
Это будет работать как для Eevee, так и для Cycles. Для Eevee вам нужно установить «Режим наложения» на альфа-хеширование в настройках материала.
Для того, что отражается в зеркале, но не видно за его пределами:
Для того, что видно только за пределами зеркала:
Для Eevee установите для обоих объектов альфа-хеширование в настройках материала:
Вы должны использовать узел Input> Light Path как фактор между материалом объекта и узлом Transparent .
Для зеленого куба используйте результат Is Glossy Ray (не виден в зеркале):
Для красного куба используйте выход Is Camera Ray (видимый только в зеркале):