Итак, вторая часть одного большого поста. Продолжаем.
Насчёт зубов и языка – всё делаю абсолютно по такому же принципу. А для зубов даже карты нормалей не нужно – там, если помните, отлично справляются складки. Размер текстур для ротовой полости сильно большой не нужен, делаю их 2048х2048 пикселей.
Кстати, к нарисованным бровям я дополнительно добавил и настоящие, сделанные при помощи Hair Curves. Они почти не выделяются, но добавляют детализации и объёма.
Всё? А вот и нет. Текстуры готовы, но с персонажем всё ещё что-то не так. Особенно если смотреть его на просвет. Силуэт тёмный, как статуя. Живые люди (даже стилизованные) так не выглядят. А дело в том, что у Эльзы ещё нет так называемого SSS – Subsurface scattering. Это та самая штука, когда вы смотрите на свою руку перед ярким источником света, и пальцы по краям становятся красными.
Так и здесь. Я добавляю подповерхностное рассеивание на всё тело. Но, где-то оно должно быть явно выраженным, например на ушах, на пальцах, на носу и других тонких объектах, а где-то – почти не проявляться. Как этого добиться? Можно нарисовать ещё одну текстуру, чёрно-белую, где чёрный цвет будет соответствовать отсутствию рассеивания, а белый – максимальному проявлению. А можно сделать и проще. Этот способ я придумал сам, но, может быть, его ещё кто-то использует, не знаю.
Суть та же, что и с текстурой, только указывать блендеру, где подсвечивать, мы будем с помощью атрибута цвета. Заходим в режим рисования по вершинам, и чёрной кисточкой превращаем Эльзу вот в такого чумазика.
В нодовой структуре материала указываю полученный атрибут, инвертирую его, и настраиваю так, чтобы меня удовлетворил результат. Нода с красным цветом отвечает за цвет самого рассеяния.
И всё, теперь уши и пальцы выглядят натуральнее, да и в целом тени на теле стали помягче.
И тут хотелось бы вернуться к зубам и сделать маленькое уточнение. Зубы, хоть и являются твёрдым объектом, они – не кусок камня, а органика, которая должна хоть немного, но пропускать свет. Этого практически никогда не будет заметно на рендерах, при анимации, но тем не менее, такие мелочи нужно учитывать, иначе персонаж может выглядеть неестественно. Поэтому к материалу зубов тоже добавляем совсем немного SSS.
И последнее, чего стоит коснуться в данной теме – динамические текстуры. Мне хочется, чтобы при определённой мимике, на тех или иных местах на лице появлялись морщинки. Самый простой и очевидный способ этого добиться – создать ещё одну карту нормалей, подмешать её к основной, а затем скрывать или показывать. Идём в ранее созданный файл, в котором я запекал нормали для тела, и слегка пакостим на лице следующим образом:
Снова запекаем, возвращаемся к основному. Тут уже и средства блендера сгодятся. Рисуем вот такую текстуру размером 256х256 (больше нет смысла).
Эта, и ещё несколько подобных ей – маски для будущей динамической текстуры. Белый цвет проявляет карту морщин, чёрный – скрывает. Значит, нужно добиться того, чтобы каждая из этих текстур могла становиться полностью чёрной.
Делаю ещё одну текстуру, тоже 256 пикселей. Она отделит левую сторону от правой, и позволит включать и выключать маски.
А дальше – смешиваю всё это между собой. Вот пример одной из них, остальные аналогично.
Значение 0 – маска чёрная, текстура скрыта. Значение 1 – текстура проявлена.
Забегая немного вперёд, в тему анимации, я подвязал эти значения с помощью драйверов к определённым костям. Вот как это работает, на примере этих самых морщин на лбу:
Кожу специально сделал более блестящей, и чуть увеличил силу нормалей, чтобы было заметнее.
Вот теперь, кажется, всё. Но только для темы с текстурами. Впереди риг, одежда, анимация, короче ещё будет, о чём написать.