Глобальное освещение в FinalRender, часть 1
В этом уроке мы изучим глобальное освещение в Final Render.
Думаю, многие уже смотрели мой первый урок по FinalRender’у, и знают, что прежде чем получить красивую картинку, нужно включить фильтр сглаживания (так называемый Anti-Aliasing). Напоминаю, что находится он во вкладке finalRender, в самом верхнем свитке подключаем галочку… а потом еще одну (Low Priority Thread), выключаем другую (Check for Missing Files), а заодно и поменяем режим прогона бакетов (поменяю на Spiral). Где расположены все эти галочки, можно увидеть на изображении ниже.
А теперь, собственно, перейдем к главной части урока – просмотру особенностей глобального освещения Final Render’a. Для этого перейдем во вкладку Indirect Illumination. Конечно же, первое, что мы должны сделать – включить это самое глобальное освещение (кнопочка Enable).
После этого нам будут доступны все ранее закрытые свитки, но начнем с уже открытого (Global Illumination). Здесь мы можем видеть наиболее важные параметры, без которых ничего работать не будет: открывающиеся списки первичного (Engine) и вторичного (Sec.Engine) движков, количество отскоков (Bounces), и парочка других параметров, которые нас пока особо не интересуют (скажу по правде, сам еще не пользовался ими).
Раз по умолчанию в первичный движок воткнут AdaptiveQMS, думаю, стоит рассказать о нем наиболее подробно, но для начала опустим глаза чуть ниже и рассмотрим свиток с названием AdaptiveQMS.
По сути, этот свиток управляет настройками движка с помощью ползунков, которые можно передвигать по горизонтали на значения с 0 до 100 (Процентов? Условных единиц? Лошадиных сил?) Но прежде, чем мы их рассмотрим, стоит обратить внимание на параметры Min Rate и Max Rate. Все дело в том, что движок AdaptiveQMS при просчете картинки создает так называемые сэмплы, размер и качество которых может варьироваться. Как только просчет закончится, программа усреднит значения освещенности рядом лежащих сэмплов и в итоге мы получим красивую картинку. Вполне логично, что, если размер сэмплов меньше, а их количество больше, да еще мы и смешиваем меньшее количество, то и картинка у нас будет более качественная (к примеру, кое-где появятся тени/полутени, лучше посчитается освещенность маленького участка и т.д.).
Вот как раз за размер сэмплов и отвечают эти параметры (Min и Max Rate) – вы можете посмотреть картинку, на которой довольно четко можно понять, чем отличается рэйт -3 от 0 (ноль соответствует маленькой серой ячейке – пикселю на изображении).
Собственно, дабы повысить скорость просчета изображения, рэйты обычно уводятся глубоко в минус – вплоть до -5, чтобы максимально быстро посчитать превью. Онако, как видно из изображения выше, качество сэмплов с низким рейтом будет хромать… когда объединяются 64 пикселя в 1 (при рейте -3) – какое ж тут качество? Ан нет… это самое качество будет и при -100500, но об этом чуть позже.
У меня есть простенькая сценка с нужником око… пардон, унитазом около стены.
Вот предлагаю на ней и посмотреть разницу в этих самых рейтах, заодно и посмотрим как будет считаться изображение. Я намерено буду останавливать рендер в момент, когда закончится просчет AQMS, так что пока не стоит ждать конечной картинки :) Так, поставим пресет на Low (рейты варьируются от -5 до -3), и посмотрим на картинку:
Видим как раз то, о чем я вам и говорил – каждые 64 пикселя изображения содержат в себе всего один сэмпл (красный при отражении, зеленый на матовых материалах), благодаря чему и картинка посчиталась довольно быстро – всего 11 секунд. Теперь выставим пресет на High+ и посмотрим на результат:
Вот тут то самое интересное: сейчас практически каждый пиксель на изображении имеет свой сэмпл, однако хорошо заметна и другая особенность – там, где поверхность гладкая и, по сути, не требующая тщательных просчетов (плитка например), сэмплы расположены довольно далеко друг от друга. А там, где программа считает, что количество сэмплов нужно увеличить ради качества, их гораздо больше (это различные стыки, переходы с уровня на уровень и прочее и прочее). На этом примере лучше всего видна адаптивность движка AQMS, за что он, собственно, и получил прибавку Adaptive.
Чтож, полет продолжается, и мы переходим к следующему довольно важному параметру –Jitter. Этот параметр отвечает за «рандомное» расположение сэмплов на экране. Если посмотрим на последнюю картинку, то можно заметить, что сэмплы будто-бы выстроились по линеечке. А вот как только мы включаем параметр Jitter – то они начинают располагаться хаотично, хотя их все равно больше там, где AQMS ставляет бОльший рейт (стыки). Нижележащая гифка дает больше понимания происходящего: на верхней картинке Jitter включен, на нижней выключен. Рендерилось на пресете Medium. Стоит еще добавить, что подключение этого параметра дает небольшой выигрыш в скорости. Стоит ли его использовать? Не знаю, но как лишняя интересная галочка, ее стоило рассмотреть :)
Сейчас наконец то перейдем к ползункам – это самая интересное, что придумали мастера из Cebas для своего рендера. Или нет… самое интересное впереди… ну да неважно, смотрим на ползунки: их три. Да, правда, целых три! Первый – Sampling Quality, который, как нетрудно догадаться из названия, повышает качество каждого сэмпла. Как? Да по сути и не важно… скажу лишь только, что каждый сэмпл будто бы «излучает» некое количество дополнительных лучей, которые летят до тех пор пока не соприкоснутся с другим сэмплом и не передадут ему часть энергии. И именно за качество просчета этой передаваемой энергии, отвечает параметр Sampling Quality. Далее идет ползунок Detail Detection. Тоже довольно интересный ползунок, влияющий на чувствительность каждого сэмпла к геометрии и на упрощение/усложнение просчетов каждого из них. Тут, к сожалению, без картинок :( Далее по списку остался ползунок Interpolation – он отвечает за смешивание близлежащих сэмплов. Чем он выше – тем более размытым будет результат, но тем быстрее будет идти просчет… Вообще, очень рекомендую пользоваться пресетами – их хватает на все случаи жизни.
Вот мы и закончили осмотр базовых возможностей движка AQMS, перейдем теперь ко вторичному движку, в котором по умолчанию стоит все тот же QMS, только совсем не адаптивный.
По сути, это аналог Brute Force (блин, так не хотел вспоминать вирей…) – он в принудительном порядке заставляет компьютер просчитывать каждый пиксель на экране, хотя и делает это в упрощенном виде, но недостаточно упрощенном чтобы выдавать плохую картинку – напротив, как правило, картинки со вторичным (мазохисты иногда и на первичку ставят) QMS движком дают наиболее качественную картинку. Предлагаю наконец, отрендерить мой срааааааааунитаз, и взять картинку и время рендера эталонным. С ней то мы и будем сравнивать все последующие рендеры. Стоит отметить, что движок QMS активируется только в момент конечного рендеринга – никаких предпросчетов он не делает, да и не нужно ему этого.
На данном этапе я предлагаю пока отдохнуть и спокойно обдумать / потестить все то что я только что вам рассказал :) А то текста получается очень много… нужен перерыв! На этом все, до встречи во второй части урока ;)