3D Studio MAX: первые шаги. Урок 30. Визуализация средствами V-Ray. Часть 2
Свисающая с шара махровая ткань
Возможности визуализатора V-Ray не ограничиваются получением изображений с визуальными эффектами, включая эффекты каустики и рассеянное освещение сцены. Данный модуль предоставляет еще ряд интересных функций, в числе которых использование карт смещения (V-ray Displacement) для получения иллюзии выпуклых поверхностей и генерация меха и шерсти (VRayFur). Ознакомлению с некоторыми особенностями применения названных возможностей и посвящен данный урок.
Использование карт смещения
Техника применения карт смещения (V-ray Displacement) позволяет во время визуализации повысить детализацию геометрии и добиться иллюзии выпуклости поверхности. Используемые для этой цели в V-Ray карты смещения напоминают стандартные карты рельефа (Bump), которые также придают поверхности некую рельефность, но между ними есть и существенная разница: карты рельефа изменяют только отображение поверхности, а карты смещения — модифицируют ее. В итоге в случае применения карт рельефа контур объекта и тени остаются неизменными, что выглядит неестественно, а при использовании карт смещения — меняются (рис. 1).
Рис. 1. Оригинальный объект (слева) и тот же самый объект с наложенными картами рельефа (в центре) и смещения (справа)
Карта смещения в V-Ray представлена модификатором VRayDisplacementMod, и потому для ее применения к объекту требуется назначить ему данный модификатор, что осуществляется точно так же, как и в отношении других модификаторов. Наложение карты смещения производится с применением одного из трех следующих методов:
- 2D mapping (landscape) — производит смещение исходной поверхности по высоте (то есть в двумерном пространстве) в соответствии с указанной картой текстуры, а результат преобразуется обратно в трехмерное пространство. Данный метод требует, чтобы объект имел правильные текстурные координаты, и не может быть применен в отношении процедурных текстур или текстур, использующих объектные или мировые координаты;
- 3D mapping — обеспечивает разбиение исходной поверхности на треугольники, которые затем смещаются. Он может быть применен к произвольной карте смещения, но диапазон данной карты должен быть в пределах от 0 до 1, значения вне этого диапазона окажутся обрезаны. Также при данном методе может использоваться карта смещения, указанная в материале объекта;
- Subdivision — работает так же, как и предыдущий метод, но, в отличие от него, производит не только смещение полигонов, но и сглаживание объекта (примерно так же, как это делает модификатор MeshSmooth). При этом для треугольных полигонов сетки используется схема Loop subdivision, для прямоугольников — Catmull-Clark, полигоны другого вида сначала конвертируются в треугольные. Данный метод может применяться только для сглаживания объекта (то есть без учета карты смещения), для чего параметр Amount устанавливается равным 0.
Отдать предпочтение какому-то одному из методов сложно. В предыдущих версиях V-Ray метод 2D mapping, как правило, обеспечивал существенный выигрыш в скорости визуализации. Однако с введением динамической геометрии в версии V- Ray 1.45. xx ситуация изменилась — теперь метод 3D mapping обеспечивает более быстрый и качественный результат, чем 2D mapping. Однако для больших поверхностей, формируемых с применением карт смещения (например, океанской глади или горного массива), лучше использовать метод 2D mapping. Вместе с тем данный метод хранит карту смещения до компиляции в оперативной памяти, и большие карты могут потребовать большого объема памяти — если ее недостаточно, придется прибегнуть к методу 3D mapping, при использовании которого потребности в оперативной памяти не столь велики.
Настройка модификатора VRayDisplacementMod, помимо выбора метода наложения карты смещения (параметр Type в секции Parameters), предполагает настройку еще целой группы параметров (рис. 2). Основные из них следующие:
- Texmap (Карта смещения) — любая текстурная карта (битовая карта, процедурная, 2D Maps, 3D Maps и пр.). Исключением является метод 2Dmapping, при использовании которого возможно применение текстурных карт только с явным UV-проецированием. Карта смещения игнорируется при включении опции Use object mtl;
- Texture channel (Канал текстуры) — UVW-канал, который будет использован для получения смещения. Он должен соответствовать каналу текстуры, указанному в самой карте текстуры, имеющей явное UVW-проецирование. Канал текстуры игнорируется при включении опции Use object mtl;
- Filtertexmap (Фильтр текстуры) — если параметр включен, карта текстуры будет отфильтрована. Канал текстуры игнорируется при включении опции Use object mtl;
- Amount (Значение) — максимальное значение смещения, которое наблюдается в областях, где карта смещения имеет белый цвет. При положительных значениях этого параметра геометрия сдвигается наружу, при отрицательных — внутрь;
- Shift (Сдвиг) — сдвиг карты смещения, который обеспечивает смещение поверхности вверх или вниз по нормали. При положительных значениях данного параметра поверхность будет расширяться, при отрицательных — сжиматься;
- Water level (Уровень воды) — значение карты смещения, ниже которого геометрия будет обрезаться.
Рис. 2. Параметры модификатора VRayDisplacementMod
Чтобы разобраться с базовыми принципами настройки карт смещения в V-Ray, создайте простую сцену с находящимися на плоскости шаром и чайником и двумя источниками света — точечным источником и направленным прожектором (рис. 3). Установите V-Ray в качестве текущего визуализатора сцены — нажмите клавишу F10, в открывшемся окне Render Scene разверните свиток Assign Renderer, щелкните в строке Production на кнопке с изображением многоточия и выберите V-Ray. Визуализируйте сцену — пока никакого смещения еще нет (рис. 4). Выделите шар, активируйте панель Modify и примените к шару модификатор VRayDisplacementMod — если после этого сразу визуализировать сцену, то эффект смещения будет заметен, но очень слабо (рис. 5). Это связано с тем, что при отсутствии назначенных текстурных карт визуализатор применяет простую шумовую карту смещения. Укажем другую карту: щелкните в модификаторе VRayDisplacementMod на кнопке Texmap и выберите текстуру Speckle — результат изменится (рис. 6). Увеличьте значение параметра Amount до 5 — эффект смещения станет более выраженным, а шар будет казаться больше (рис. 7). Включите флажок Use water level и установите в поле Water level значение 5 — часть геометрии (то есть области, где значение карты смещения окажется ниже указанного порога) будет вырезана (рис. 8). Отключите флажок Use water level.
Рис. 3. Исходный вид сцены
Рис. 4. Первоначальный вид сцены при визуализации
Рис. 5. Результат назначения шару модификатора VRayDisplacementMod
Рис. 6. Вид сцены после указания карты Speckle
Рис. 7. Результат увеличения максимального значения смещения
Рис. 8. Результат вырезания части геометрии
Можно также поэкспериментировать с настройками качества получаемого смещения, зависящего в случае устанавливаемого по умолчанию метода 3Dmapping от размера и количества подтреугольников. Эти параметры регулируются не напрямую, а косвенно — через параметр Edgelength (Длина ребра), определяющий максимальную длину ребра подтреугольника. По умолчанию длина ребра равна 4; для примера попробуйте установить ее равной 1 и 10, качество при значении 10 окажется заметно ниже (рис. 9).
Рис. 9. Пример визуализации с разными значениями параметра Edge length
Массив из высотных зданий
Воспользуемся картами смещения для превращения обычной плоскости в имитацию массива из четырех высотных зданий. Создайте новую сцену с плоскостью с включенной опцией Generate mapping coordinates (рис. 10). Внедрите в сцену два источника света: в качестве основного выберите Omni-источник, а в качестве дополнительного Spot-источник. Уменьшите у направленного источника интенсивность (параметр Multiplier) до 0,6 и включите для него генерацию теней по типу VRayShadow (рис. 11), снизьте интенсивность точечного света до 0,9. Установите V-Ray в качестве текущего визуализатора. Включите в секции Environment окна Render Scene флажок SkyLight и пока уменьшите интенсивность небесного света (параметр Multiplier в свитке Environment окна Render Scene) примерно до 0,5 (рис. 12). Проведите визуализацию — естественно, пока ничего другого, кроме ярко освещенной плоскости, наблюдаться не будет (рис. 13).
Рис. 10 Исходная сцена
Рис. 11. Настройка параметров направленного источника света
Рис. 12. Включение небесного света
Рис. 13. Вид сцены при первоначальной визуализации
Активируйте плоскость, назначьте ей модификатор VrayDisplacementMod и измените метод смещения на 2D mapping (landscape). Откройте окно графического редактора (например, Adobe Photoshop), создайте в нем изображение размером 1024 x1024 пикселов вида, как на рис. 14, — обратите внимание, что каждый из четырех квадратов имеет более темную рамку, которая потребуется для получения внешнего контура зданий. Переключитесь в 3D Studio MAX, щелкните в модификаторе VRayDisplacementMod на кнопке Texmap, укажите созданную текстуру и получите результат как на рис. 15. Увеличьте максимальную величину смещения (Amount) до 150, а в полях Resolution (Разрешение) и Precision (Точность) установите значения 2048 и 100 соответственно, также включите флажок Tight bounds (Жесткая граница) для того, чтобы расчет границ смещаемых элементов производился более точно (рис. 16). После этого на месте плоскости появятся четыре здания, параметры которых будут полностью соответствовать установленной текстуре (рис. 17).
Рис. 14. Текстура для смещения
Рис. 15. Изображение сразу после добавления модификатора с созданной текстурой
Рис. 16. Настройка параметров модификатора VrayDisplacementMod
Рис. 17. Появление зданий
Назначьте плоскости с модификатором VrayDisplacementMod подходящую текстуру и добавьте в сцену еще одну плоскость большого размера, расположив ее под первой плоскостью, — данная плоскость сыграет роль поверхности земли. Поскольку освещенность зданий оказалась недостаточной, придется ее усилить. Для этого вначале увеличьте интенсивность небесного света (параметр Multiplier в свитке Environment окна Render Scene) до 1,1 и сделайте его более насыщенным. Затем установите в качестве фона при рендеринге (команда Rendering => Environment) тот же самый оттенок голубого цвета, что задан для небесного света (рис. 18). Для лучшего освещения в теневой зоне добавьте два вспомогательных источника света типа Directional Light с интенсивностью 0,4 (рис. 19). В итоге вид сцены заметно улучшится (рис. 20). Поскольку здания по замыслу должны быть высотными, еще немного увеличьте в настройках модификатора VrayDisplacementMod значение параметра Amount (мы остановились на 200). Добавьте в сцену камеру с широкоугольной линзой (рис. 21) — это позволит добиться имитации перспективных искажений, всегда имеющих место при съемке высотных зданий. Выделите камеру и в свитке Parameters включите флажок Show Horizon (в окне камеры появится линия горизонта), отрегулируйте положение камеры и размещение объектов сцены так, чтобы линия горизонта камеры была близка к предполагаемой линии горизонта сцены (она должна проходить на границе между плоскостями почвы и неба). Сцена станет выглядеть более естественно (рис. 22).
Рис. 18. Корректировка небесного света и фона
Рис. 19. Появление дополнительных источников света
Рис. 20. Результат корректировки освещения
Рис. 21. Появление камеры
Рис. 22. Вид из камеры
Внедрите в сцену фоновое изображение неба и для большей естественности изображения назначьте сцене эффект стандартного тумана — из меню Rendering (Визуализация) откройте команду Environment (Окружение), в свитке Atmosphere (Атмосферные эффекты) щелкните по кнопке Add (Добавить), выберите эффект Fog (Туман) и щелкните по кнопке Ок. Уменьшите плотность тумана (Far) примерно до 55 (рис. 23). Выделите камеру, перейдите на панель Modify, в группе Environment Ranges установите флажок Show, а затем экспериментально подберите значения ближней (NearRange) и дальней (FarRange) границ — в данном случае были взяты значения 600 и 1000 соответственно (рис. 24). После рендеринга вы увидите, что линия горизонта скрыта дымкой, а сцена за счет этого стала более правдоподобной (рис. 25).
Рис. 23. Настройка параметров тумана
Рис. 24. Настройка параметров камеры с учетом =>а
Рис. 25. Появление в сцене тумана
Включите просчет глобального освещения, активировав в секции Indirect Illumination окна Render Scene флажок On. В секции Irradiance map выберите пресет Medium (он дает хорошие результаты в большинстве случаев при отсутствии в сценах мелких деталей) и для повышения качества изображения установите в поле Hsph subdivs (Полусферическое подразбиение) значение 50, а в группе Options включите флажки Show calc. phase и Show direct light (рис. 26). Поскольку включение глобального освещения неизбежно существенно повышает уровень освещенности, то экспериментальным путем найдите оптимальные значения для всех имеющихся в сцене источников света — в нашем случае интенсивность точечного, Spot и Directional-источников была снижена до 0,6; 0,5 и 0,1 соответственно, а интенсивность небесного света уменьшена до 0,1. В итоге вы получите примерно такое же изображение, как представлено на рис. 27.
Рис. 26. Настройка параметров визуализации
Рис. 27. Массив из высотных зданий