Глобальное освещение в 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 активируется только в момент конечного рендеринга – никаких предпросчетов он не делает, да и не нужно ему этого.

  На данном этапе я предлагаю пока отдохнуть и спокойно обдумать / потестить все то что я только что вам рассказал :) А то текста получается очень много… нужен перерыв! На этом все, до встречи во второй части урока ;)

art-pulsar.ru
721 0 850 6
2
2012-02-27
хороший урок. Спасибо!
2012-03-08
Эммм....... CGcookie.com в помощь . Там Алесандро Кангелосси рассказывает подробно о файнал рендере , и приводит тьму примеров , рассусолено от и до. А так + за урок норм написал .
RENDER.RU