Render.ru

Присвоение материала области, ограниченной дополнительной геометрией.

Рейтинг
47
#1
Подскажите пожалуйста урок или статью, о том как назначать разные материалы с использованием дополнительной геометрии.

То есть, допустим в сцене имеется два материала. Геометрия сцены, это плейн с кучей сфер на нем. Создается куб, и им захватывается часть геометрии. Так вот нужно, что бы все что внутри куба, имело один материал. А все что cнаружи, второй.
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#2
Первое, что приходит на ум:
  1. 2 различные сиквенции + композитинг
  2. Переработать данный скрипт: http://forums.cgsociety.org/showthread.php?t=904223
  3. Кубическая проекция с отключенным Wrap.
 
Последнее редактирование:

volodyaRenderberg

Активный участник
Рейтинг
14
#4
а не подскажете, как вообще на разные полигоны назначить разные материалы, выделяю фейс, применяю материал -> применяется на весь объект, в чём хитрость?
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#5
а не подскажете, как вообще на разные полигоны назначить разные материалы, выделяю фейс, применяю материал -> применяется на весь объект, в чём хитрость?
Надо применять не на весь объект, а на выбранное to Selection.
 
Последнее редактирование:
Рейтинг
47
#6
Спасибо за советы и рекомендации. Мою задачу решила нода VRayDistanceTex. И подключение к ней геометрии, которая ограничивает распространение материалов (все это собирается в ноде layeredTexture) (Рис.)
VRayDistanceTex.jpg
В общем то, это практически то же самое что и шейдеры puppet`a, но только через ВиРей.

Я вообще искал способ, сжульничать с геометрией. То есть, если топология верна, то не составляет труда назначить материалы на разные участки. После чего, можно либо бэйкануть id пасс, либо открыть к примеру в Substance Painter, и получить все эти куски модели в разных set-ах.

А мне хотелось, имея не всегда идеальную (подходящую) геометрию, с помощью дополнительных примитивов, выделять участки, для последующего текстурирования (рис. 2).
IdPass.jpg

Были рекомендации, использовать скрипты из SOUP. Но они к сожалению, назначают материал, на все полигоны, которые даже частично попадают в область выделение. http://www.tokeru.com/mayawiki/images/e/e7/At_colour.gif

Так же, мне помогли воспроизвести подобный эффект, с помощью стандартных ноды (рис. 3). Но там был недостаток в том, что область распространение (белой маски по черному материалу) ограничивалась баундбоксом второго шейпа .
Ris3.jpg
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#8
А мне хотелось, имея не всегда идеальную (подходящую) геометрию, с помощью дополнительных примитивов, выделять участки, для последующего текстурирования (рис. 2).
Хм, может я не все понял, но чем не устроил простой 3-ий метод, который можно было объединить со скриптом, который выделял бы нужные вершины по белой текстуре?
Последняя схема как-то усложнена уж.
 
Рейтинг
47
#9
А фишка же в том, что третий метод, позволял сделать маску на часть полигона. Если бы внутри этой зоны выделялись вертексы, и потом конвертировались в пологоны с последующем назначением материала Получался бы тот же самый эффект что и со скриптами Soup (сторонний материал, назначался на все полигоны, который даже частично попали в зону выделения).
http://www.tokeru.com/mayawiki/images/e/e7/At_colour.gif

Я ж говорю, 3-й метод в принципе хорош. Но его серьезный недостаток, в том что он не учитывает шейпа объекта (который служит маской). Область, формируется по его баундбоксу.


Использование же VRayDistanceTex, полностью удовлетворяет мои "извращенные фантазии" о создании ID карты :)
То есть, создавая любые цветные формы, на любой геометрии (для последующего текстурирования). А по скольку используется layeredTexture, можно создавать формы друг в друге (только нужно контролировать порядок наложение слоев).
2015-03-23 11-21-09 Скриншот экрана.png


Ps: такой метод получения ID карты, далеко не всегда нужен. Но иногда, может выручить.
 
Сверху