В этом уроке мы исследуем карты смещения в VRay. Мы сконцентрируемся на методе 3d картирования смещений.
Карты смещения техника для добавления деталей геометрии к поверхностям во время визуализации. По контрасту с картами рельефа, которые работают просто изменяя нормали поверхности для создания иллюзии деталей поверхности, карты смещения модифицируют свою поверхность. Вот пример объекта, визуализированного картой рельефа и картой смещения:
![]() |
![]() |
![]() |
| Оригинальный объект. | Карта рельефа. | Карта смещения. |
В случае карт смещения поверхность на самом деле модифицируется, что ведет к правильному контуру, тени и GI. В случае карт рельефа хотя поверхность выглядит модифицированной, контур и тени осатются теми же.
Заметим, что смещение отличается от других сортов оттенений, т.к. оно требует настоящей модификации поверхности объекта. Т.о. объект должен быть смещен перед визуализацией. Вот почему в смещении VRay представлен модификатором (хотя этот модификатор может брать карту смещения от материала объекта).
Стратуем с пустой сцены. Создадим GeoSphere (Геосферу) радиусом около 40 в окне просмотра и выберем VRay визуализатором. Применим какой-нибудь стандартный материал к сфере.
Прейдите в панель Modify и примените VRayDisplacementMod к сфере. Если Вы визуализируете прямо сейчас, Вы заметите слабый эффект смещения, как здесь:

Это потому что VRay применяет простую шумовую карту смещения, когда нет других примененных текстур.
Для выбора другой карты нажмите кнопку текстуры в VRayDisplacementMod. Это выведет диалог просмотра Material/map (Материала/карты). Выберите текстуру Cellular (Клеточная). Для редактирования вновь созданной карты, откройте редактор материалов и перетащите карту из кнопки в VRayDisplacementMod в слот в редакторе материалов. Выберите метод Instance (ссылка) когда вы отпустите карту в слот.
Если Вы визуализируете снова, Вы получите попдобный результат:

Чтобы сделать эффект смещения отчетливым, увеличте значение Amount в VRayDisplacementMod. Если Вы установите его в 5.0 и визуализируете, Вы получите подобное:

Значение Amount определяет максимальное значение смещения (которое наблюдается в местах где карта смещения - белая).
Вы можете сдвинуть карту смещения вверх и вниз настраивая параметр Shift. Эффект будет расширять (для положительных значений Shift) или сокращать (для отрицательных значений Shift) поверхность смещения. Тут несколько примеров различных значений Shift:
![]() |
![]() |
![]() |
| Shift = -5.0 | Shift = 0.0 | Shift = 5.0 |
Заметим, что параметр Shift - абсолютное значение в мировых единицах. Если Вы измените Amount, Вам возможно нужно настроить также и Shift too.
Параметры 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 смещения, где вырезание более точно). Т.о. Вы можете получить эффект зазубрин на ребрах вырезания. Вы можете уменьшить этот эффект произведя больше подтреугольников (смотри следующую секцию).
VRay делает 3d смещение разделением каждого треугольника оригинального объекта на несколько подтреугольников. Больше подтреугольников значат лучшее смещение, но также отнимают больше памяти и увеличивают время визуализации. Для того чтобы понять как много у вас подтреугольников, примените стандартный материал к сфере (если Вы жтого еще не сделали) и включите опцию Faceted. Это важно, т.к. иначе VRay не только сгладит нормали поверхности, но также автоматически применит карту нормалей, которая представляет нормали соврешенной смещенной поверхности, что заставит поверхность выглядеть намного более детализированной чем на самом деле. Также выключите опцию Use water level VRayDisplacementMod, если она включена. Если Вы сейчас визуализируете, Вы получите подобный результат (нажмите изображение, чтобы увидеть полный размер):
Здесь увеличенная визуализация, чтобы лучше увидеть отдельные подтреугольники (нажмите изображение, чтобы увидеть полный размер):
В дополнение тут визуализация, которая показывает границы оригинальных треугольников сферы. Для того чтобы сделать это поместите карту VRayEdgesTex в слот Diffuse материала и скопируйте эту карту в слот Self-illumination. Установите Color ребер в VRayEdgesTex в красный свет и Thickness в World units:
Качество смещения определяется размером и числом подтреугольников. Главный параметр для настройки Edge length (Длина ребра). Он определяет максимальную длину ребра подтреугольника. Он может быть в мировых единицах или в пикселях, что зависит от опции View-dependent. Меньшее значение для Edge length означает более мелкие треугольники и лучшее качество. Злесь предыдущее изображение визуализированное с разными значениями Edge length (с View-dependent включеным). Заметим, что опция View-dependent относится к пикселям в оригинальном изображении, не в увеличенном, что вы получаете чтобы лучше увидеть отдельные подтреугольники (нажмите изображение, чтобы увидеть полный размер):
| Значение Edge length | Нормальная визуализация | Увеличенная визуализация |
| 0.5 | ![]() |
![]() |
| 1.0 | ![]() |
![]() |
| 2.0 | ![]() |
![]() |
| 5.0 | ![]() |
![]() |
| 10.0 | ![]() |
![]() |