Визуализация анимации пролета.

Основы.
Часть I: Рассчет кэша света.
Часть II: Рассчет карты освещения.
Часть III: Визуализация финальной анимации.
Примечания.
Обсуждение.

Основы.

В этом уроке мы будем визуализировать анимацию пролета в статичной сцене, где ничего, кроме камеры не двигается. Мы будем использовать глобальное освещение для освещения сцены, что сделает задачу слегка усложненой. GI обычно слишком медленно для рассчета начерно и с достаточным качеством для каждого кадра анимации. Для оптимизации этого процесса и сохранения времени визуализации, мы можем использовать тот факт, что сцена статична и камера единственная вещь, которая движется. Большинство из GI решений используемых в VRay (карта освещения, карта фотонов, кэш света) или полностью или частично видонезависимы, и мы можем использовать этот факт для уменьшения времени визуализации.

Для этого урока мы будем использовать карту освещения как первичный GI движок, и кэшсвета как вторичный. Чтобы сделать процесс легче для понимания, мы будем визуализировать сцену в три этапа.

На первом этапе мы рассчитаем кэш света для всей анимации. На втором - мы рассчитаем карту освещения. На третьем этапе мы визуализируем финальную анимацию.

Заметим, что Вам не обязательно использовать этот метод для визуализации пролета. Вы можете всегда использовать медленное приближение прямого рассчета и избежать всех этих заморочек с предварительным рассчетом разных GI решений. Однако Вы заплатите за это временем визуализации.

Часть I: Рассчет кэша света.

1.1. Откройте стартовую сцену.

1.2. Назначьте Вирэй текущим визуализатором.

1.3. Установите цвет фона в окне 3ds max Environment and Effects (Окружения и эффекты) в RGB 252,252,252.

1.4. В диалоге визуализатора включите парметр Global illumination и установите оба Primary GI engine и Secondary GI engine в Light cache.

1.5. Установите Image sampler type в Fixed для быстрого превью.

1.6. Включите Show calc. phase в свитке Light cache.

1.7. Установите флажок небесного света Override MAX's в свитке Environment.

1.8. Установите цвет неба в RGB 252,253,255 и HSV(156,3,255).

1.9. Установите Multiplier (Множитель) цвета неба в 4.0.

1.10. Сеимите флажок Default lights в свитке Global switches. Это удалит светильник по умолчанию 3ds max из сцены и сотавит только освещение окружения - небо.

1.11. Перейдите в панель Camera и измените Camera type на Fish eye.

1.12. Снимите флажок Auto-fit, измените значение параметра Dist на 1.0 и параметр Curve на 0.35. Мы установили тип камеры - рыбий глаз для получения более интересной сцены.

1.13. Визуализируйте кадры 0 и 360 для справки.

Кэш света не выглядит плохим, но нам нужно рассчитать его для всей анимации пролета, а не одиночных кадров. Заметим, что это не абсолютно необходимо - мы можем визуализировать анимацию с кэшем света, рассчитав все кадры; однако визуализация только одного будет сохранять время, особенно для длинной анимации.

1.14. Установите Mode (Режим) кэша света в Fly-through (Пролет). Удостоверьтесь, что линейка времени анимации показывает диапазон, который Вы хотите визуализировать. Это важно, т.к. кэш света будет проверять текущее установленное время визуализации при рассчете кэша пролета.

Т.к. все выборки кэша света будут распределены по всем кадрам анимации, нам нужно увеличить значение Subdivs. Точное значение зависит от желаемого качества и от специфики Вашей анимации. Если камера движется медленно, или путь относительно короткий (т.е. только через одну комнату в доме), тогда Вы можете использовать меньшее значение Subdivs, т.к. большинство выборок попадут в те же места. Если камера движется быстро или покрывает большую часть сцены, Вам нужно больше выборок для получения аккуратного покрытия везде.

1.15. Установите Subdivs в 2000.

1.16. Визуализируйте кадр 360 для примера. Заметим, что хотя мы визуализировали только один кадр, режим Fly-through заставит VRay рассчитать кэш света для всей анимации:

В течение режима пролета выводимый превью кэша света не очень полезен, т.к. он показывает выборки со всего пути камеры. Следующее изображение показывает превью, выводимый во время рассчета кэша света:

Теперь, когда мы имеем рассчитанный кэш света, нам нужно посмотреть достаточно ли он хорош для наших нужд. Мы можем сделать это визуализировав несколко разных кадров, используя этот кэш света.

1.17. Сохраните кэш на диске, например в файл lightcache.vrlmap.

1.18. Установите Mode (Режим) кэша света в From file и выберите имя сохраненного файла.

1.19. Измените параметр Filter в свитке Light cache с Nearest на None. Теперь мы можем лучше увидеть размер выборок.

1.20. Визуализируем кадр 435:

Вы можете заметить что в месте где камера подходит близко к стене в сцене выборки мелкие и более шумные. Это из-за того что параметр кэша света Scale (Масштаб) установлен в Screen (Экран) по умолчанию. Это прекрасно для одиночного изображения, но для анимации нам лучше иметь более распрделенные выборки. Для достижения этого нам нужно использовать опцию World.

1.21. Установите параметр кэша света Scale в World.

Теперь мы определим хороший Sample size для сцены. Это может быть сделано, например, созданием геосферы прямо в окне просмотра Камеры или объекта Tape и использования его для визуализации размера выборок. Для нашей сцены размер выборки около 2.0 кажутся достаточно хорошими (сцена в общих единицах). В основном, Вы делаете Sample size таким большим, насколько возможно без получения артефактов (утечки света, например). Даже если Вы получите некоторую утечку света, это можно удалить уменьшив значение фильтра Interp. samples.

1.22. Установите парметр кэша света Sample size в 2.0.

Помните, что когда Вы используете масштаб World, Вы должны быть уверены что Ваша сцена не очень большая (т.е. с большой плоскостью земли) или что выборки кэша света не очень маленькие, иначе Вы можете выйти за предел памяти. Это не проблема для режима Screen, т.к. поверхности, далекие от камеры будут иметь мало выборок. Для внешних сцен рекомендуется всегда использовать режим Screen.

1.23. Измените Mode (Режим) кэша света назад на Single frame и уменьшите параметр Subdivs на 500 просто для проверки адекватны ли размеры выборок. Здесь приведен пример кадра 435:

Выборки равны везде в размерах и они достаточно велики для того чтобы не получить артефактов в изображении.

1.24. Установите Mode (Режим) кэша света в Fly-through снова.

1.25. Для сглаживания кэша света увеличте Subdivs в 3300.

1.26. Измените Filter назад в Nearest.

1.27. Визуализируйте кадр 360:

Время рассчета теперь больше из-за увеличения числа выборок.

1.28. Сохраните кэш света и установите режим в From file снова.

Вы можете заметить что файл кэша света стал больше в размерах. Это из-за того что стало больше выборок в кэше света , частично из-за режима масштаба World - одинаковый размер выборок будет везде в сцене ( в режиме Screen, размер выборок размер выборок увеличивается с расстоянием от камеры, что ведет к уменьшению их количества).

Теперь мы можем визуализировать несколько разных кадров для того чтобы быть уверенным что кэш света подходит для нашей анимации.

1.29. Визуализируйте несколько кадров.

Похоже кэш света хорош и мы можем двигаться к следующей части - рассчету карты освещения.

Часть II: Рассчет карты освещения.

В сравнении с кэшем света, карта освещения может занять значительно больше времени при рассчете. Это из-за того что кэш света производит очень грубое и недетализированное решение освещения. Карта освещения, с другой стороны, правильно передает мелкие GI тени в сцене.

Заметим, что карта освещения не может быть рассчитана через backburner. Она должна быть рассчитана на одной машине. Это потому что мы используем Mode (Режим) Multiframe incremental (Многокадровый инкрементальный) для карты освещения.

2.1. Установите первичный движок в Irradiance map.

2.2. Установите Mode карты освещения в Multiframe incremental.

2.3. Установите флажок Show calc. phase (Показать фазу рассчета).

Т.к. камера движется достаточно медленно, нет необходимости визуализировать каждый кадр анимации на этой стадии. Мы можем получить адекватный результат визуализируя, например каждый 10-й кадр. Если камера будет двигаться быстрее, нам нужно визуализировать больше кадров, например каждый 5-й.

2.4. Установите 3ds max для визуализации каждого 5-го кадра в закладке Common диалога Render scene.

2.5. Включите опцию Don't render final image (Не визуализировать финальное изображение) в свитке Global switches, т.к. мы еще не визуализируем финальную анимацию и нам не нужны финальные кадры.

2.6. Визуализируйте последовательность.

2.7. Сохраните карту освещения в файл, например irmap.vrmap.

2.8. Установите Mode карты освещения в From File, указав сохраненный файл.

Теперь мы имеем карту освещения для всей последовательности анимации. Мы можем визуализировать несколько кадров для проверки, что все Ок.

2.9. Выключите опцию Don't render final image.

2.10. Визуализируйте кадры 0 и 360 для анимации:

Два изображения выше были визуализированы с установками используемыми для финальной анимации в Части III.

Теперь мы готовы визуализировать финальную анимацию.

Часть III: Визуализация финальной анимации.

Для финальной анимации Вы можете использовать backburner с сохраненной картой освещения или на клиентской машине или на каждой серверной. В любом случае Вы должны быть уверены что каждый подчиненый визуализатор может найти карту освещения в месте, указанном в парметре From file.

3.1. Установите тип Image sampler (Сэмплер изображения) в Adaptive subdivision с Min/Max rate (Коэффициентом Min/Max) в 0/3 для лучшего качества фильтрации. Вы можете также отметить флажок Normals для устранения проблем мерцания на маленьких деталях сцены.

3.2. Проверьте, что параметр Interpolation type установлен Density-based. Это разрешит карте освещения брать ближайшую доступную выборку из решения кэша.

3.3. Установите визуализатор 3ds max для визуализации каждого отдельного кадра.

3.4. Визуализируйте финальную анимацию.

Здесь можно посмотреть Финальную сцену.

Здесь финальная анимация что вы должны были получить, если следовали уроку верно (8 MB).

Примечания.

Обсуждение.

В этой секции мы добавили несколько вопросов по этому уроку, которые задавались на нашем форуме, с ответами.

Q: Вы визуализировали последовательность изображений и затем компилировали в avi или напрямую делали avi?

A: Анимация была сначала визуализирована в изображения .png, а затем компилировалась в .avi. Т.о. Вы не потеряете ни одного кадра если что-то случится в середине визуализации... и также Вы можете поиграться с установками компрессии позднее.

Q: Почему Вы не выбрали режим Multiframe incremental (Многокадровый инкремент) над Incremental add to current map (Инкрементное добавление к текущей карте)? Какое различие между ними заставило Вас выбрать один? Я спрашиваю, потому что никогда не использовал Multiframe incremental а всегда Incremental add to current map.

A: Единственное различие, то что режим Multiframe incremental удалает карту в памяти перед началом визуализации. В режиме Incremental add текущая карта не удаляется.

Q: Я просто хочу понять... Возможно использовать режим Incremental add to current map совместно с backburner без проблем (т.е. мерцаний)? Backburner руководит размещением кадров верно без сохранения max-ом файлов? Прочитав Ваш пост выше, я почувствовал, что Вы намекаете, что Вам нужно послать разные секции анимации каждому визуализирующему узлу.

A: Да Вы можете визуализировать разные секции на разных узлах, но Вы должны соединять результаты карт освещения вручную с просмотром карты освещения в конце, перед визуализацией финальной анимации. Также, Вы должны проверить что каждая секйия размещена только на одном узле визуализации.

Q: Я должен делать анимацию спрея, который Вы можете увидеть в прикрепленном файле, и я имею много глянцевого отражения и преломления, если я последую Вашему уроку, как могу я сделать мои финальные установки? С кэшем света для второго отскока и Use light cache for glossy rays или без кэша света и без второго отскока? Работает ли Use light cache for glossy rays и карта освещения в первом отскоке прекрасно?

A: Вы можете иметь кэш света сохраненный с картой освещения. Если так, Вы можете действительно выключить вторичный отскок, что сохранит память, которая отнималась для загрузки кэша света. Однако, если Вы имеете рассчитанный кэш света для помощи гланцевитости с опцией Use light cache for glossy rays, тогда Вам нужно идти дальше и загружать кэш света при визуализации.

EOMY.NET: бесплатный хостинг без рекламы
EOMY TOP 100