вторник, 15 декабря 2020 г.

Приближение к реализму в 3DLight DAZ Studio и демистификация гамма-коррекции

    Я хочу поделиться некоторыми идеями, которые вывел для достижения большего реализма. Я сосредоточился на улучшении внешнего вида человеческой кожи, но это действительно применимо практически к любой поверхности на сцене. Первый вопрос, который приходит на ум в связи с темой реализма: «Зачем беспокоиться, если можно просто сфотографировать?» Что ж, я большой поклонник множества разных стилей и жанров искусства, многие из которых не имеют ничего общего с фотореализмом. Но меня особенно привлекает идея «остановки недоверия». Когда я смотрю кино, я прихожу в восторг, когда эффект настолько хорош, что, по крайней мере, на мгновение, меня обманывают. Больше всего мне нравится, что потенциал для создания чего-то столь же убедительного и информативного, ждет меня на моем настольном ПК. Поскольку Lux, Octane и теперь Iray предлагаются пользователям DAZ Studio в качестве альтернативных движков рендеринга, очевидно, что больше реализма - это то, в чем заинтересованы и другие. Но вы можете не знать, что в 3Delight есть скрытая сила для создания более реалистичных рендеров, и просто ожидает, когда вы ею воспользуетесь.

    В основе этой скрытой силы лежит концепция линейного рабочего процесса, также известного как гамма-коррекция. Для некоторых гамма-коррекция может быть устаревшей новостью. В конце концов, это было в 2008 году, когда Бэггисбилл заставил пользователей Poser начать использовать GC на форумах Renderosity и RuntimeDNA. На самом деле его истоки уходят корнями в далекое прошлое, поскольку мне удалось найти некоторую документацию по этому вопросу примерно за 2001 год. Но преимущества его использования в 3D-рендеринге так же важны, как и прежде, несмотря на то, что его часто неправильно понимают и часто отвергают даже опытные пользователи и крупные профессионалы отрасли. Существует множество авторитетных источников, рекламирующих важность гамма-коррекции в 3D-рендеринге, и несколько достойных объяснений того, как она работает, хотя многие из них носят высокотехнологичный характер. Вот несколько хороших:

От Pixar: http://renderman.pixar.com/view/LinearWorkflow

VFX Wizard: http://www.vfxwizard.com/tutorials/gamma-correction-for-linear-workflow.html

Из Shader Guru Bagginsbill, показывающего его оригинальный общедоступный рецепт Poser Material Room:

http://www.renderosity.com/mod/forumpro/?thread_id=2738989

В бесценной книге «Digital Lighting & Rendering: Third Edition» (2014) Джереми Бирна, технического директора Pixar, есть отличная глава (№ 8) о линейном рабочем.

Поскольку технические детали были хорошо объяснены в других местах, я хочу использовать менее технический подход, попытаться объяснить в терминах здравого смысла и показать, как именно использовать два метода гамма-коррекции в DAZ Studio с Render Settings Gamma Correction, и Shader Based GC (Shader Mixer).

[Рисунок A: Пример портрета с использованием гамма-коррекции и подповерхностного рассеяния]


Чего не хватает в рендере без гамма-коррекции

Три наиболее распространенных признака рендеринга без гамма-коррекции:

    1). Слишком темные тени (черные).

    2). Преувеличенное зеркальное выгорание (слишком яркое блестящее пятно).

    3). Сдвиг цвета (цвет, который вы не планировали использовать в сцене).

    Если вы когда-либо работали с традиционными красками или проводили время, изучая цветные фотографии или даже окружающий вас мир, то, возможно, вы заметили, что что-то не так с преувеличенным контрастом, который вы часто наблюдаете в 3D-рендерингах. Художники знают, что надо рисовать затененную часть человека или объекта более темной краской основного цвета поверхности. Так, например, с синим шаром вы смешиваете часть краски более темно-синего цвета и часто даже более насыщенного цвета, но редко когда просто черный. Затем вы можете использовать более светлый синий цвет для более ярких частей, а затем умеренно немного белого для наиболее светоотражающих частей. Вы можете добавить в микс больше этих переходных цветов и использовать разные методы смешивания. Но в основном то, что вы сделали бы, чтобы визуально оценить, какие цвета краски вам подходят, - это то, к чему с научной точки зрения приходит Linear Workflow - это лучший способ смешать ваши пиксельные краски. В любом случае, параллельное сравнение, вероятно, лучший способ показать преимущества:

    [Рисунок B: сравнение синих шариков (гамма-коррекция - слева, фото - в центре, без GC - справа)]




Совместите гамма-коррекцию и подповерхностное рассеяние

    В наши дни в DAZ Studio, когда шейдеры кожи на основе Subsurface Scattering являются стандартом, распространенным признаком является "восковая" кожа, потому что используется слишком много SSS. Без гамма-коррекции трудно правильно осветить человеческую кожу, поэтому по умолчанию оригинальные персонажи DAZ частично используют SSS для своей основной цели - имитировать световые явления на полупрозрачных поверхностях, а частично для компенсации отсутствия гамма-коррекции. Поэтому, когда вы используете гамма-коррекцию, вы можете комбинировать ее с подповерхностным рассеянием и уменьшать SSS до физически правильных уровней.

[Рисунок C: Сравните GC + SSS (слева) с Без GC + SSS (справа)].


Как установить гамма-коррекцию в настройках рендера

    На вкладке «Render Settings» в разделе «Gamma» установите для параметра «Gamma Correction» значение «On» и «Gamma» на значение 2,2. Затем на вкладке Surfaces найдите свое изображение Diffuse Color для данной поверхности. Щелкните левой кнопкой мыши миниатюру изображения, затем выберите «Image Editor» ... и также установите гамму изображения 2,2. Первый шаг указывает механизму рендеринга применить значение гамма-коррекции 2,2 для готового рендеринга. Второй шаг, который не менее важен, указывает механизму рендеринга на анти-гамма-коррекцию входного изображения, чтобы оно могло правильно смешиваться со светом и тенью, а также чтобы оно не увеличивалось дважды.

[Рисунок D: показывает шаги по включению гамма-коррекции в настройках рендеринга и установке гаммы входного изображения в редакторе изображений]



Как настроить гамма-коррекцию на основе шейдеров с помощью Shader Mixer (не используйте оба метода)

    Вы никогда не захотите, чтобы гамма-коррекция производилась дважды, иначе ваши изображения будут выглядеть размытыми. Но если вы хотите применить гамма-коррекцию выборочно только к определенным поверхностям в вашей сцене, оставьте в разделе «Gamma» в Render Settings значения по умолчанию (GC: Off и Gamma 1). Для следующего шага вам нужно знать основы использования Shader Mixer.

    Этот пример ниже (Рисунок E) представляет собой настройку, используемую для синего шара с гамма-коррекцией на рисунке B выше. Его математика основана на рецепте комнаты Poser Material Room Бэггинсбилла, экстраполированном на шейдерный микшер DAZ Studio.

[Рисунок E: Показывает рецепт шейдерного микшера для гамма-коррекции на основе шейдера. ]

(добавьте 4 блока, установите значения и подключите, как показано, чтобы применить гамма-коррекцию как к входу цвета, так и к окончательному выходу)

Основываясь на GC и развивая его дальше:

    Используя один из этих двух методов, чтобы задействовать линейный рабочий процесс, мы в основном применяем анти-гамма-коррекцию ко всем входным цветам, чтобы их можно было правильно смешивать со светом (от черного до белого в оттенках серого), и поэтому они не будут размыты, когда мы применяем гамма-коррекцию ко всему в конце. Результатом является больше цвета и деталей в тенях, лучшее сохранение деталей там, где отражение света наиболее яркое, и цвета, которые более соответствуют нашим входным данным: обратите внимание на рис. B выше, как заметный аквамариновый зеркальный ореол в примере шейдера по умолчанию почти не существует в рендере Gamma Correction.

    Итак, теперь, когда мы используем правильное количество SSS для наших полупрозрачных поверхностей, таких как человеческая кожа, мы можем внести некоторые другие изменения. Ни в коем случае не используйте SSS для непрозрачных поверхностей, потому что в реальном мире этого не существует (он вам не понадобится, если GC выполняет свою работу). Затем вы можете уменьшить интенсивность освещения, если хотите, чтобы значения соответствовали предыдущим значениям сцены. Многие считают сокращение на одну треть хорошим приближением. Но имейте в виду, что рендеры с гамма-коррекцией будут работать лучше, создаете ли вы ярко освещенные сцены, более темные или более ярко освещенные. Вы по-прежнему сможете получить темные тени, когда они вам понадобятся. После этого вы также можете улучшить ситуацию, используя более подходящую модель зеркального распределения, такую как BSDF Blinn, чтобы сохранить больше ваших высококачественных диффузных деталей. Кроме того, по сравнению с SSS, GC & BSDF Blinn требует меньших затрат на рендеринг ресурсов, и гораздо легче подделать / запечь SSS для убедительности. Как ни странно, более реалистичный скин можно визуализировать за меньшее время, не больше.

    Многие приемы и передовые методы, которые нам приходилось использовать для освещения нашей сцены без гамма-коррекции, становятся менее необходимыми, а в некоторых случаях их вообще не нужно использовать. Но, может быть, на данный момент этого достаточно, чтобы подумать. Надеюсь, это поможет вам получить больше реализма ваших рендеров!
В Iray по умолчанию включена гамма-коррекция. Это один из нескольких ключевых компонентов, которые делают Iray (или любой другой движок рендеринга) более реалистичным. Другими ключевыми факторами являются глобальное освещение (хорошим примером является свет на основе изображений) и физически обоснованные (или «физически правдоподобные») поверхностные шейдеры, чтобы упомянуть несколько. Все это, кстати, поддерживается в 3delight, но еще не полностью реализовано в Daz Studio.



Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.