Дисплейсмент-преобразование |
Search Keywords: displacement, displacement mapping, 2D, 3D
В этом учебном пособии мы рассмотрим дисплейсмент-преобразование в V-Ray. Мы сосредоточимся на методе 3d дисплейсмент-преобразования.
Дисплейсмент-преобразование - это техника для добавления геометрических деталей поверхностям на этапе визуализации. По сравнению с бамп-преобразованием, которое работает только посредством изменения нормалей поверхности для создания иллюзии деталей, дисплейсмент-преобразование изменяет саму поверхность. Это пример одного и того же объекта, визуализированного с бамп-преобразованием и с дисплейсмент-преобразованием:
Мсходный объект Бамп-преобразование Дисплейсмент-преобразование
В случае дисплейсмент-преобразования поверхность действительно изменена, что приводит к корректному очертанию, тени и GI. В случае бамп-преобразования, несмотря на то, что поверхность выглядит измененной, очертания и тень остаются прежними.
Заметим, что дисплейсмент отличается от других типов закрашивания, так как ему необходимо изменить действительную поверхность объекта. Однако объект должен быть искривлен до того, как он может быть визуализирован. Поэтому дисплейсмент в V-Ray представлен как модификатор (хотя модификатор может брать карту дисплейсмента из материала объекта).
Начнем с пустой сцены. Создайте во вьюпорте GeoSphere с радиусом около 40 единиц и укажите V-Ray в качестве визуализатора. Примените к сфере какой-нибудь материал типа Standard.
Перейдите в панель Modify и наложите на сферу модификатор VRayDisplacementMod. Если вы сейчас визуализируете сцену, вы заметите слабый эффект дисплейсмента, типа такого:
Это происходит потому, что V-Ray применяет простую шумовую карту дисплейсмента, когда никакая другая текстура не выбрана.
Для выбора другой карты щелкните по кнопке Texmap в VRayDisplacementMod. Это вызовет диалог Material/map browser. Выберите текстуру Cellular. Для редактирования только что созданной карты откройте Material Edtior и перетащите карту с кнопки в VRayDisplacementMod в слот редактора материалов. При перетаскивании карты выберите метод Instance.
Если вы снова визуализируете сцену, вы получите похожий результат:
Для того, что бы эффект дисплейсмента был более заметным, увеличьте значение параметра Amount VRayDisplacementMod. Если вы установите значение 5.0 и визуализируете сцену, вы получите примерно следующее:
Значение Amount определяет максимальную силу дисплейсмента (которая возникает в местах, где карта дисплейсмента белая).
Вы можете сдвинуть целиком карту дисплейсмента вверх или вниз настройкой параметра Shift. Эффектом будет увеличение (для положительных значений параметра Shift) или сжатие (для отрицательных значений параметра Shift) искривляемой поверхности. Ниже несколько примеров для различных значений параметра Shift:
Shift = -5.0 Shift = 0.0 Shift = 5.0
Заметим, что значение параметра Shift абсолютное и указывается в мировых единицах. Если вы изменяете Amount, то возможно вам будет необходимо перенастроить и Shift.
Параметры Use water level и Water level позволяют вам отсечь части объекта. Верните значение Shift к 0.0, если вы его изменяли. Затем включите опцию Use water level и установите Water level в 2.5:
Геометрия отсекается для тех мест в карте дисплейсмента, где значение дисплейсмента ниже Water level. Ниже несколько примеров для различных значений параметра Water level (при условии что параметр Amount остается равным 5.0 и параметр Shift установлен в 0.0):
Water level = 0.0 (нет отсечения) Water level = 1.25 Water level = 2.5 Water level = 3.75 Water level = 5.0 (вся геометрия усечена)
Параметр Water level также абсолютен и указывается в мировых единицах. Если вы изменяете Amount и/или Shift, возможно вам будет необходимо перенастроить и параметр Water level для получения такого же эффекта.
Для 3d-дисплейсмента геометрия отсекается на уровне подтреугольников - подтреугольник либо полностью отсечен, либо полностью видимый (в случае 2d-дисплейсмента отсечение более точное). Поэтому вы можете получить отсеченные ребра рваными. Вы можете уменьшить этот эффект путем увеличения числа подтреугольников (см. следующий раздел).
V-Ray делает 3d-дисплейсмент путем подразбиения каждого треугольника исходного объекта на некоторое количество подтреугольников. Большее количество подтреугольников означает лучший дисплейсмент, но при этом будет также расходоваться больше оперативной памяти и будет увеличиваться время визуализации. Есть хорошая идея как посмотреть сколько подтреугольников вы имеете: прмените материал Standard к сфере (если вы этого еще не сделали) и включите опцию материала Faceted. Это важно, так как в противном случае V-Ray будет не только сглаживать нормали поверхности, но также будет автоматически применять карту нормалей, которая представляет нормаль идеально искривленной поверхности, которая будет делать вид поверхности гораздо более детальной, чем это есть на самом деле. Также выключите опцию Use water level в VRayDisplacementMod, если она включена. При визуализации вы получите похожий результат (щелкните по изображению для увеличения):
Здесь - увеличенный фрагмент предыдущей визуализации, что бы лучше показать отдельные подтреугольники (щелкните по изображению для увеличения):
В дополнение, посмотрите на изображение, на котором показаны границы исходных треугольников сферы. Что бы это сделать, положите карту VRayEdgesTex в слот материала Diffuse и экземпляр (instance) этой карты в слот Self-illumination. Установите цвет ребер (параметр Color) VRayEdgesTex красным и толщину (параметр Thickness) в World units:
Качество дисплейсмента определяется размером и количеством подтреугольников. Основной параметр для тонкой настройки - Edge length. Он определяет максимальную длину ребра подтреугольника. Он может быть указан в мировых единицах или в пикселях в зависимости от опции View-dependent. Маленькие значения параметра Edge length означают более мелкие подтреугольники и более высокое качество. Ниже предыдущее изображение визуализировано с различными значениями параметра Edge length (со включенной опцией View-dependent). Заметим что опция View-dependent принимает во внимание пиксели оригинального изображения, а не увеличенного, которое вы получаете при визуализации в режиме Blow-Up. С помощью этого способа вы можете лучше увидеть отдельные подтреугольники. Щелкните по изображению для увеличения:
Значение
Edge length Обычная
визуализация Визуализация
Blowup 0.5 1.0 2.0 5.0 10.0
Перевод © Black Sphinx, 2008. All rights reserved.