24 октября 2010 24.10.10 4 12K

Autodesk 3ds Max: визуализируем стакан с жидкостью

+7

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

Маленькое лирическое отступление

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

Вступление

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

  • жидкость и поверхность не соприкасаются, и между ними имеется промежуток. Это подход прост и не требует никакой особой поддержки от визуализатора, однако результат не выглядит реалистично. Этот промежуток между двумя поверхностями заставляет быть жидкость похожую на твердый объект.
  • жидкость накладывается на сосуд. Этот подход потенциально производит намного более реалистические результаты, но требует специальной поддержки от визуализатора, потому что визуализатор должен следить какие поверхности пересекались на пути луча и вычислять индекс преломления. Без этой поддержки этот метод не может быть использован. К счастью V-Ray поддерживает эту возможность и это дает возможность пользоваться этим методом.
  • третий подход состоит в том, чтобы моделировать соприкосновение поверхностей отдельно. Этот метод наиболее труден — особенно в мультипликации. Этот подход вводит третий объект в сцене с отдельным материалом, который все усложняет. Кроме того этот метод не очень хорошо работает с такими вещами как дым в стеклянном сосуде — в этом случае V-Ray не может сделать переход между стеклянным/жидким материалом и поверхностным материалом интерфейса и не может правильно рассчитать преломление.

Ниже мы рассмотрим только первые два метода. Третий метод наиболее труден и не рекомендуется его использование с V-Ray

Первичная визуализация

1.1. Откройте изначальную сцену, которая находится здесь.

1.2. Установите V-Ray в качестве текущего визуализатора.

1.3. Для того чтобы сделать тестовые рендеры сцены более быстрыми откроем свиток "Image sampler" и в выпадающем списке выберем значение "Fixed".

Также, включим "GI" и немного настроем для получения более быстрого результата.

1.4. В свитке "Indirect illumination" включим "GI" и установим "Light cache" в качестве "Primary и Secondary GI engines".

1.5. Выключим Refractive GI. Карту фотонов мы добавим позже, когда будем визуализировать финальное изображение.

1.6. В свитке "Light cache", установим значение "Sample size" равное '0,04' для получения менее шумного результата.

1.7. Переключите режим фильтрации в режим "Fixed" и установите значение «Filter size'равное '0,08'.

1.8. Выключите опцию „Store direct light“, потому что мы будем вычислять направленное освещение отдельно.

1.9. Установите значение „Subdivs“ равное '500'.

1.10. Так же по желанию можно включить штамп в свитке „System rollout“.

1.11. Сделаем тестовый рендер.

Визуализация жидкости

Теперь, когда у нас есть сосуд, то логично, что необходимо добавить в него жидкость.

2.1. Сделаем видимым объект под названием „liquid inside“. Если поглядеть на него с вида „Front“, то можно заметить, что между ним и стенками сосуда есть небольшой промежуток, так и должно быть не изменяйте этого.

2.2. Визуализируем.

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

2.3. Скройте объект „liquid inside“ и сделайте видимым объект „liquid overlapped“. В окне вида „Front“ прекрасно видно, что жидкость накладывается на стенки сосуда.

2.4. Визуализируем.

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

Финальная визуализация

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

3.1. Включим каустику в свитке „Caustics“.

3.2. Установим значение „Max. density“ равное '0,2' — этим мы ограничим плотность фотонов каустики и получим более гладкий результат.

3.3. Значение „Search distance“ установим равное '2'. Обычно увеличение значения „Max. density“ в 5 — 10 раз дает хороший результат.

3.4. Значение параметра „Max. photons“ установим равное '' — это заставит V-Ray считать все фотоны в пределах дистанции поиска.

3.5. Визуализируем

Теперь визуализация займет немного больше времени, так как V-Ray вычисляет каустику. Как мы видим, теперь мы имеем каустику в сцене, но ее результат весьма шумный. Для уменьшения шума мы увеличим значение „Caustics subdivs“ для источника света.

3.6. Выберем „VRayLight“.

3.7. Правый клик на окне проекции, выбираем „V-Ray properties...“ и попадаем в диалог „V-Ray Light settings

3.8. Установим значение „Caustics subdivs“ равное '4000'.

3.9. Визуализируем

Теперь каустика выглядит еще лучше и мы может оставить эти настройки для финальной визуализации. Если Вы хотите получить еще более гладкий результат, то увеличьте „Caustics subdivs“ и/или „Search distance“.

3.10. Для ускорения последующих результатов визуализации сохраните карту каустики в файл и установите режим загрузки каустики из файла.

Теперь мы улучшим сглаживание и уменьшим шум от пятна света.

3.11. В свитке „Image sampler“, установите „Image sampler type“ в положение „Adaptive DMC“.

3.12. В свитке „DMC Sampler“, установите значение „Noise threshold“ равное '0,002'.

3.13. Установите значение „Global subdivs multiplier“ равное '8' — это уменьшит количество шума от пятна света.

3.14. Визуализируем

Вот мы и получили наше финальное изображение!


Лучшие комментарии

да какойто стакан странный но все равно круто
Конструктивная критика, вопросы, уточнения приветствуются. Все как всегда =)
Прикольно! Жаль, что на ВиРее. А то я сейчас решил Ментал освоить.
Вообще красиво, вот только есть ощущение, что там, где налита жидкость, у стакана нет толщины. По краям по-любому должно быть стекло.
Читай также