
Новости • Форум • Помощь • Поиск • Участники • Календарь • База |
Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (2) [1] 2 ( Перейти к первому непрочитанному сообщению ) | ![]() ![]() |
OZazello Профиль Статус: Fool Power Группа: Элита Рейтинг: 10 ![]() |
С момента написания первого туториала по бампу в XSI
прошло много времени, но я постоянно сталкивался с проблемами, то по маске бамп
не обрезать, то вообще его нет. Естественно это происходило от непонимания,
а вернее от нехватки информации по mentalRay. В конце концов информация (по
крайней мере её часть) была найдена, изучена и систематизирована. И теперь я
попытаюсь поставить точку в этой (надо сказать порядком надоевшей) истории.
Итак, лирическое отступление закончено, перейдем непосредственно
к изучению.
Первые две для бампа, последняя для маски. Но сначала теоретическая часть. Рис.1 Как видно из картинки, карта бампа нанесена на объект и расположенна на нем используя UV координаты. Каким образом получает MR (Mental Ray) информацию о бампе из текстуры? Посмотрите на Рис.2.
Красная точка показывает собой место откуда шейдер запрашивает
информацию о бампе. Зеленые точки это шаг (Step). Между красной и зеленой точкой
происходит усреднение цвета, который затем используется для информации как отклоняется
нормаль относительно поверхности. Т.е. шейдер получает значение нормали из геометрической
поверхности, затем (если есть бамп) высчитывает нормаль бампа, cкладывает эти
две нормали и отдает данные на рендер (ну или дальше по шейдеру).
1. Получение бампа из картинки или процедурного шейдера (Рис. 3) Тут все очень просто. Присоединяем картинку или процедурный шейдер на вход BumpMap_Generator (Nodes\Bump\Bumpmap Generator), а BumpMap_Generator присоединяем ко входу Bump в Phong шейдере (или любой другой шейдер у которого есть вход bump), или ко входу Bump в Material. Присоединение ко входу Phong называется локальный бамп. К материалу - глобальный бамп. В данном случае нет никакой разницы, куда присоединять. 2. смешивание двух карт для бампа. (Рис. 4,5,6) Первый способ. Как видим тут тоже нет ничего сложного. Мы используем ноду ImageLookup
и подаем на воход coord ноду Vector_state. Данная нода (VectorState) говорит
какие координаты использовать, в данном случае Texture Vector, это означает,
что для нанесения бампа будут использовать UV координаты поверхности, которые
задаются Texture Projection. Второй способ:
Учтите, чем больше Bump_Generator`ов в дереве шейдера, тем больше будет рассчитываться шейдер, т.к. каждая такая нода рассчитывает бамп для поверхности. Третий способ:
Обрезание бампа по маске(Рис. 7) Я сделал сразу сложный шейдер, чтобы показать как можно смешивать все что угодно используя в качестве бампа картинки и процедурные шейдера, и в качестве маски так же картинки и процедурные шейдера. Все делается через ноду Mix_8colors (Nodes/mixers/mix 8 colors). Base Color в миксере ставим черным и включаем использование Layer 2. значения Mode у Layer1 и Layer2 я установил в Add. Естественно, в зависимости от задач это значение нужно менять. Попробуйте поставить Mix и посмотрите, что произойдет. Bump2.png обрезается по процедурной маске Checkerboard. Она заводится
в миксере на weight1 указывая, где нужен бамп, а где нет. Трехмерные координаты для Bump. BumpMap
Осталось рассмотреть ноду BumpMap (Nodes\Bump\BumpMap).
Вы скажете, а в чем проблема? Заведем BumpGenerator на вход Bump ноды Material и получим аналогичный результат. И будете правы, но это просто пример. А вот более сложное дерево шейдера с использованием Bumpmap:
|
Ё-моё Профиль Статус: Энерджайзер Группа: Заслуженные артисты Рейтинг: 0 ![]() |
Ещё одна полезная нода для работы с бампом (IMG:http://softimage.ru/images/inter/zip.gif)Mix_8vectors.zip.
Пример использования приведен ниже. ![]() |
Ё-моё Профиль Статус: Энерджайзер Группа: Заслуженные артисты Рейтинг: 0 ![]() | |
Bunch Профиль Статус: Херосимо Группа: Заслуженные артисты Рейтинг: 1 ![]() |
Попытаюсь объяснить своё предположение(не более)
Нода Color2Scalar возвращает значения в диапазоне от 0 до 1 Величина значения bump factor может варьироватся теоретически от минус бесконечности до плюс бесконечности чтобы побороть эту несправедливость вводится нода Change Range |
OZazello Профиль Статус: Fool Power Группа: Элита Рейтинг: 10 ![]() |
хехе, а в 4 XSI нода ChangeRange между Color2Scalar и фактором бампа на Cell не нужна. все-таки это был баг :) (ну или фича, уж кому как больше нравится). Что и следовало доказать
|
Bunch Профиль Статус: Херосимо Группа: Заслуженные артисты Рейтинг: 1 ![]() |
Оз мир устоял:) теперь по умолчанию второй предел берется 0
т.е. даже в 4ке ты не получишь без ноды Change Range маску где она половина имеет отрицательный фактор а вторая положительный так что баг или фича суди сам:) |
depol Профиль Статус: кибермух Группа: Администраторы ![]() |
классная статья Оз B) Спасибо
|
uno Профиль Статус: Мексиканский Тушкан Группа: Редакторы Рейтинг: 15 ![]() |
script от guillaume laforge >>>
устанавливает корректные значения steps в Bumpmap_generator и Images Nodes для всех материалов TheGoodBumpStep.js ![]() |
Lir Профиль Статус: алоЭЭ Группа: Заслуженные артисты Рейтинг: 3 ![]() |
Несколько раз прочитал тут этот тутор, но разницы между бамп нодой и бамп генератором не увидел. Еще не понимаю зачем последовательно подключать ноду генератора к ноде бампа, что мы таким образом получаем, усиление бампа?
|
OZazello Профиль Статус: Fool Power Группа: Элита Рейтинг: 10 ![]() |
Bump_Generator позволяет назначать на бамп отличные от основных текстурные координаты.
второй вопрос не очень понял. Нода бампа это Bumpmap? Или вход Bump на любых нодах? |
Lir Профиль Статус: алоЭЭ Группа: Заслуженные артисты Рейтинг: 3 ![]() |
Все, разобрался со вторым вопросом, спасибо за пояснение ... :thankyou:
|
bananov Профиль Статус: слон Группа: Артисты Рейтинг: 3 ![]() |
В чем может быть проблема.
При подключении Bump map локально в шейдер то тени отображаются правильно, но если подключить глобально на материал, то получается лесенка из теней по полигонам. Хотя я больше ничего не трогал кроме как переключил bump. Geometry Approximation включен 60 градусов. Image filtering выключен, при включении только чучуть исправляет ситуацию. ![]() |
bananov Профиль Статус: слон Группа: Артисты Рейтинг: 3 ![]() | |
/voo-doo/ Профиль Статус: три дэ бугор Группа: Заслуженные артисты Рейтинг: 7 ![]() |
некропост первого уровня :sarcastj:
|
Wats Профиль Статус: слон Группа: Модераторы Рейтинг: 17 ![]() |
bananov
Ну с архматом лучше в его порт подавать бамп, а не глобально на материал, тоже сталкивался с подобным и вроде как первый раз в 2011 версии такое вылезло. |
![]() |
![]() ![]() |