Почему узел Alpha Over делает мое изображение ярче?

Dec 11 2020

В проекте Cycles в Blender 2.9 я хочу, чтобы все объекты получали белый свет из окружающей среды, поэтому я установил World Properties -> Surface -> Color на белый.

Но я хочу, чтобы фон конечного результата был темно-синим, поэтому я выбрал Render Properties -> Film -> Transparent и использовал нод Alpha Over в композиторе, чтобы получить мой синий фон.

Это исходное изображение с прозрачным фоном:

И это изображение с синим фоном, составленным из:

Как видите, режим Alpha Over делает изображение намного ярче. Но я этого не хочу: мне просто нужно исходное изображение с синим фоном.

Что пробовал:

  1. Проверка «Преобразовать Premul» (не требуется, потому что визуализированное изображение уже содержит предварительно умноженный альфа-канал)
  2. Ручное изменение «Fac» (что имеет неожиданное поведение: требуется очень низкое значение (0,0001), чтобы сделать передний план прозрачным. Я ожидал, что передний план будет прозрачным на 50% при Fac = 0,5)
  3. Подключите выход Alpha узла Render Layers к входу Fac узла Alpha Over (не требуется, потому что альфа-канал уже должен быть в самом изображении)
  4. Установка яркости лампы Sun, которая также находится в моей сцене, на 0. Все это не решило мою проблему.

Мой вопрос: как получить визуализированное изображение на синем фоне, не делая визуализированное изображение ярче?

Любая помощь высоко ценится!

Ответы

1 GordonBrinkmann Dec 11 2020 at 19:31

Одна вещь, которую вы можете сделать, чтобы уменьшить чрезмерную яркость в полупрозрачных частях, - это использовать узел Alpha Convert в Compositor . Поместите его между слоями рендеринга и Alpha Over и установите его на «Straight to Premul». Это сильно снижает яркость в прозрачных областях.

Прозрачность рендеринга по-прежнему не будет похожа на прозрачность в узле просмотра .

Чтобы получить этот результат, вам необходимо зафиксировать значения RGB изображения, например, используя узел Color> Mix с включенным Clamp . Затем вы можете умножить изображение на чистый белый или добавить чистый черный, и тогда на выходе все яркие пиксели будут закреплены на белом, и альфа-прозрачность будет работать с этим. Дело в том, почему яркость такая высокая, если вы этого хотите?

Хотя вы сказали, что вы установили силу солнечной лампы на 0, и даже это не сильно изменилось, в предоставленном вами файле было солнце с силой 1000. В Blender даже солнце с силой 10 очень яркий.

Таким образом, рендеринг вашего файла с кубом и солнцем 1000 привел к полупрозрачным областям вокруг куба, которые имели значения RGB выше 150 или даже 200 при прозрачности 60% -80%, что дает пиксели далеко за пределами белого. Вот почему все выглядит намного ярче, чем в режиме Заставки.

Вы должны установить солнце намного ниже, чтобы получить желаемый результат. Если ваши объекты выглядят серыми, а не белыми, и поэтому вы увеличили значение солнца, попробуйте установить View Transform> Standard вместо Filmic в Color Management .