- •Мифы универсальности
- •Стартовые настройки V-Ray
- •С чего начать
- •Свиток V-Ray Frame Buffer
- •Свиток V-Ray Global switches
- •Свиток V-Ray Image sampler (Antialiasing)
- •Методы антиалиасинга V-Ray Fixed image sampler, Adaptive dmc image sampler и Adaptive subdivision image sampler
- •Фильтры антиалиасинга
- •Свиток V-Ray Environment
- •Свиток V-Ray Color mapping
- •Непрямое освещение в природе
- •Глобальное освещение в компьютерной графике
- •Практическая настройка gi
- •Беспристрастный Brute force gi
- •Адаптивный Irradiance map
- •Основные настройки Irradiance Map
- •Улучшение деталей Irradiance map
- •Дополнительные опции Irradiance Map
- •Традиционный Photon map
- •Современный Light cache
- •Главные параметры Light Cache
- •Воссоздание карты Light Cache
- •Выбираем движки gi
- •Распространенные проблемы gi
- •Глобальные настройки качества и скорости V-Ray
- •Особенности dmc Sampler
- •Костяк адаптивности V-Ray
- •Контроль dmc Sampler
- •Дополнительные параметры dmc Sampler
- •Практический контроль скорости и качества V-Ray рендеринга
- •Проблемы Крэша V-Ray
- •Raycasting, Основа Рендеринга V-Ray
- •Недостатки Не Организованности Данных
- •Bsp tree и Удобное Структурирование Данных
- •Static Raycaster – Загрузка Всей Сцены в Память
- •Dynamic Raycaster – Загрузка Геометрии Порциями
- •Raycaster Params – Настройки Двоичного Дерева
- •Raycaster Params – Настройки Динамического Рейкастера
- •Калькулятор Dynamic Memory Limit
- •Параметры Бакетов
- •Статистика Frame stamp
- •Настройки распределенного рендеринга
- •Журнал рендеринга V-Ray
- •Второстепенные опции
- •Карты gi Вне Контроля
Bsp tree и Удобное Структурирование Данных
Для ускорения процесса определения свойств части сцены, с которой пересекся луч рейкастинга, V-Ray организовывает всю геометрию в удобную ему структуру.
V-Ray «раскладывает» данные о геометрии в оперативную память «по полочкам» иерархической древовидной структуры. Она называется Binary Space Partitioning (BSP) tree. Это особый метод представления массива данных в виде двоичной древовидной структуры.
Его общая суть в том, что все имеющиеся данные о геометрии делятся надвое, разделяя пространство сцены напополам. Таким образом, образуются две ветки, отходящие от исходной точки (всей сцены), которая называется корнем дерева – Root. После первого деления, каждая из веток данных, исходящая из корня, снова делится напополам, образовывая новые ветки. Точки, из которых исходят новые ветки, называют узлами дерева – Node. Процесс деления геометрии сцены и запись новых веток древовидной структуры в память продолжается до тех пор, пока не будет достигнут предельный уровень деления, который задается в параметрах создания двоичного дерева BSP tree. Результат последнего деления веток называется листьями дерева – Leaf. Таким образом, создается разветвленная структура геометрии всей сцены, по которой может происходить быстрый поиск свойств нужной области сцены.
Для условного, но наглядного представления того, как это происходит, давайте вернемся к нашему энтомологическому примеру. Аналогия с листиками и муравьем-сыщиком прекрасно показывает, как начальная организация помогает в поиске нужных данных.
Если мы не будем сбрасывать листья в беспорядочную кучу, а аккуратно расположим их на ветках дерева, то мы можем в разы ускорить процесс нахождения желтого листика. Ведь тогда наш муравей, минуя все лишние ветки, прямиком отправится к заветному желтому листочку. Так, ему не придется последовательно осматривать все листики. Вместо этого, он сразу глянет на дерево и, увидев на какой из веток растет желтый листик, быстренько заберется к нему своими цепкими лапками.
По такому принципу V-Ray структурирует данные о геометрии в сцене, не упуская возможностей сэкономить наше драгоценное время даже на таких, казалось бы, мелких операциях.
Базовый принцип рендеринга на этом уровне достаточно прост: загрузил, структурировал, отыскал нужные свойства и отрендерил :)
Теперь, когда мы познакомились с принципом структурирования данных для рейкастера, можно переходить к следующему шагу, который встречается на пути рендеринга насыщенных сцен в V-Ray.
Static Raycaster – Загрузка Всей Сцены в Память
Как мы теперь знаем, для начала процесса рендеринга, в память должна быть загружена геометрия сцены. В предыдущей главе мы рассмотрели древовидную структуру, решающую проблему медлительности рейкастинга.
Однако, на пути рендеринга встречается еще одна проблема, с упоминания которой мы начали этот урок. Всё гладко до тех пор, пока для загрузки геометрии в том или ином виде, не требуется ОЗУ больше, чем физически установлено на текущем компьютере.
Дело в том, что в V-Ray есть разные типы алгоритмов рейкастинга. Самый простой из них – это так называемый Static Raycaster. Он загружает в память геометрию сцены сразу и целиком.
Представьте, что мы собираемся запустить рендеринг сцены со многими миллионами полигонов, а для всей ее загрузки не хватает доступного нам объема ОЗУ. Что происходит в таком случае? К сожалению, в таком случае происходит одна из самых неприятных неожиданностей V-Ray – краш программы.
Краш (англ. crash) – это программный сбой, непредвиденная критическая ошибка, приводящая к аварийному завершению программы. Этот самый сбой V-Ray происходит в тот момент, когда свободный объем ОЗУ исчерпан и дальнейшее заполнение памяти геометрией просто невозможно. Сообщение о создании в памяти древовидной структуры геометрии «Current Task: Buliding static raycast accelerator...» это, как правило, последнее, что видят 3d визуализаторы в информационном окне Rendering. Далее рендеринг, а за ним и работа 3ds Max с V-Ray, самопроизвольно обрываются, вызывая окно отчета об ошибке.
В нашей аналогии, например, это попытка использовать излишне ветвистое дерево для расположения листиков. Слишком тяжелое дерево, под массой огромного количества листьев и ветвей, просто рухнет, вырвавшись из держащей его земли.
Единственным выходом из подобной ситуации без увеличения объема ОЗУ, будет отказ от единоразовой загрузки всей сцены в память и поочередная загрузка ее отдельных частей, просчет которых должен происходить в данный конкретный момент рендеринга.
Как и следовало ожидать, V-Ray обладает таким способом загрузки геометрии в память. Этот способ воплощен в особом, динамическом типе рейкастера, который рассчитан как раз на подобную ситуацию.