Рендеринг поддельного зеркала

Aug 31 2020

Я пытаюсь понять, как использовать фальшивое зеркало в моей сцене.

Персонаж A проходит мимо зеркала на стене, которое должно отражать комнату и все в ней, кроме персонажа A. Вместо персонажа A оно отражает персонажа B.

В общем, мне нужна простая отражающая поверхность, но:

  • Знак А не должен быть виден на поверхности. Отражения должны отображаться так, как будто персонажа A нет в сцене.
  • Персонаж B будет в сцене, но будет виден только на отражающей поверхности, а не в самом мире.

Вот грубая графика, чтобы показать, что я имею в виду: D

Здесь менее грубая графика:

Возможно ли это с помощью Blender? Я знаком со всеми наиболее общими функциями, но не могу придумать ничего, что могло бы достичь этого. Могу ли я настроить какие-либо свойства данных? Есть ли модификатор, с помощью которого можно этого добиться? Обман с датчиком отражения?

Я намерен использовать Eevee для рендеринга, но если Cycles добьется этого лучше, я могу переключиться.

РЕДАКТИРОВАТЬ: Я, конечно, могу выбрать не отражающую, а пропускающую поверхность и просто смоделировать содержимое зеркала за поверхностью. Поэтому вместо того, чтобы иметь какое-либо отражение, я просто скопирую и отразлю геометрию и сделаю все вручную, но 1) это много работы, 2) не совсем ответ на технический вопрос, который я задаю.

Ответы

18 lemon Aug 31 2020 at 07:16

Вы можете использовать выход «Is Reflection Ray» из узла «Light path» и подключить его к альфа-входу «Principled shader» .

Это будет работать как для Eevee, так и для Cycles. Для Eevee вам нужно установить «Режим наложения» на альфа-хеширование в настройках материала.

Для того, что отражается в зеркале, но не видно за его пределами:

Для того, что видно только за пределами зеркала:

Для Eevee установите для обоих объектов альфа-хеширование в настройках материала:

9 moonboots Aug 31 2020 at 07:10

Вы должны использовать узел Input> Light Path как фактор между материалом объекта и узлом Transparent .

Для зеленого куба используйте результат Is Glossy Ray (не виден в зеркале):

Для красного куба используйте выход Is Camera Ray (видимый только в зеркале):