Создание cartoon шейдера в XSI 1.5


При создании ролика передо мной стояла задача максимально приблизится, к двумерному эскизу, в числе прочих задач встал вопрос о заливке. Если посмотреть на двухмерную картинку то можно заметить, что помимо контура и спошной заливки слева находится светлая обводка, справа темная. При этом как бы не повернулся персонаж и камера эта обводка должна оставатся неизменной. Эксперементы со стандарным toons встроенным в XSI не дали приемлемых результатов. Поэтому пришлось создать специальный шейдер.

Сначала был настоен node - Dielectic (который будет отвечать за определение граней обьекта) , в нем использовались значение 2 для Exponent и 4 для Reflection Energy. С помощью node- Color correction была произведена окончательная доводка толщины обводки . Далее это будет использоватся как маска, совместно с маской создание которой описано ниже.

Если первая маска предназначена для определения толщины обводки то эта необходима для опрделения с какой стороны она будет светлая, а с какой темная. Для решение этой задачи были исползованы два nodes. Первый Indicence в котором необходимо установить mode - custom vector. К input - custom vector приконекчивается node Vector_coordinate_converter. В нем необходимо установить следующие значения Vector Input - 1 по X, 0 по YZ, type - Vector, transform - from Camera. Как видно из рисунка вне зависимости от положения камеры будет генерироватся чернобелая маска, которая делит все части обьекта включая тело, руки, ноги пальцы независимо друг от друга на темную слева и светлую справа.

Следующий этап окончательная сборка шейдера. В котором сначала два nodes Constant (со светлым и темным цветом) микшируются по второй маске. Затем через первую маску полученная map микшируется с node toons, который отвечает за цвет сплошной заливки ( в нем все составляющие illumination должны иметь один цвет) и конур. Можно так же усложнить шейдер . Например мне так же понадобилось затенение под "волосами". Для этого использовалась уже обычная растровая карта. Ниже на рисунке можно это увидеть.


Summatr

591 0 850 9
1
2011-03-24
Сумматр о_О
RENDER.RU