Джамшутик, тебе понадобятся несколько нод: френель, диффузная бсдф, нормаль поверхности и бэк фейс. Последние 2 доступны из ноды Geometry. Щас попробую скидать шейдер, как выйдет скину связку. Пытаюсь найти как вектор инвертнуть
.
Так, негейт нормали не понадобился (с ним оказывается и не работает, хотя странно), там есть специальная бсдф для транслюенции. Скоро будет шейдер.
Пока вот так:
Нетворк:
Так, сейчас распишу по пунктам, что к чему, пойдем ок финала шейдера к тому что его формирует:
1. Финальный материал, стоит из сюрфейсного шейдера (как выглядит поверхность), волюмного шейдера (облака, дым, огонь и т.п.), дисплейс (смещение точки в пространстве).
2. Наш сюрфесный шейдер, который состоит из 2х частей: 1. Т.к. ткань тонкая, то она просвечивает, т.е. мы видим свет с обратной стороны и 2. Сама ткань, т.е. тот шейдер который отрабатывает свет с внешней стороны.
Начнем разбирать каждую ветку:
3. Диффузная бсдф. Тут мы получаем цвет поверхности с учетом падающего на него света, просто диффуз, никаких рефлектов, спекуляров и прочего. Свет попал на поверхность, осветил её, мы увидели результат. 2 параметра, цвет и шероховатость поверхности. Нас интересует цвет, т.е. нам надо подать сюда цвет джинс. На рафнесс я пока забил.
4. Делаем микс, по френелю (5), чтобы к краям под углом цвет текстуры (11) немного становился более светлым и голубым.
5. Сам френель, тут иором можно регулировать силу влияния нашего добавочного цвета.
6. В этой ноде я делаю ещё один микс. Т.к. джинс отличается с 2х сторон, обратная сторона у неё другая. В этом случае величиной смешивания является значение которое показывает какую сторону мы видим в текущей точке, берем его из ноды Geometry (
7. Тут я просто гаммой сделал цвет текстуры (11) чуть светлее, якобы обратная сторона, но по идее можно было подать сюда именно текстуру обратной стороны, но я забил
8. Эта нода нам позволяет брать информацию с геометрии, мы можем получить текущее положение точки (скорее всего в пространстве камеры, но не факт, не проверял), нормали как шейдинг нормаль, так и геометрическую, далее есть ещё тангенс, и входящий вектор (от камеры к поверхности или наоборот), плюс параметрические координаты полигона (поверхности, от 0 до 1), ну и то что нам надо - бэкфейсинг, он показывает на какую сторону поверхности мы сейчас смотрим, т.е. если 0 - то смотрим на лицевую часть (геометрическая нормаль повернута в камеру), а если 1, то видим значит обратную сторону.
9. А это уже бсдф транслюенции, т.е. та часть шейдера которая работает на просвет, т.е. если мы посветим сверху на плоскость, то она будет черная, но с обратной стороны мы увидим свет который падает на поверхность, а ля тюли, шторы, трава, листва, киноэкран и т.п. Мы этой бсдф так же должны подать какой-то цвет, то что будет на просвете виден.
10. Тут я взял цвет текстуры, сделал его чуть темнее и чуть менее контрастный, т.е. с обратной стороны мы будем видеть света как бы чуть меньше чем с лицевой, ну он же там в ткани то затухает, она его блокирует.
11. Ну вот и добрались до самой ноды текстуры, это просто нода текстуры, тут мы открываем файл и получаем РГБ вектор и Альфу, которые и отправляем дальше по ветке.
12. Ну, а это бамп, эта нода меняет нормаль как будто бы поверхность имеет неровность (это и есть бамп - точка остается на прежнем месте, а нормаль меняется, в результате чего рассчитывается свет иначе, как будто поверхность имеет рельеф). Для бампа мы тоже должны подать текстуру только черно-белую.
13. Вот тут я взял из вектора красный канал (обычно берут яркость, ну а ещё обычнее отдельную карту рисуют
). Можно было взять синий или зеленый, надо было просто посмотреть по каналам какой-лучше подходит, но я забил. Мне главное вам объяснить, чтобы сами смогли сделать.
Ну вот вроде и все. Можно было ещё рафнесс порулить, или например добавлять голубоватый светлый цвет по френелю, можно было только на лицевую часть, а на оборотную нет, но я сделал это после, просто пока делал не подумал
.
В общем все в ваших руках, как хотите так и рулите. Если к этому ещё приплюсовать спекулярную бсдф (рефлекшн) то можно поменять текстуру на листья и получить шейдер листвы, подрулив параметры.
Научившись вязать такие штуки, т.е. разобравшись из чего все состоит, вам будет до фонаря в чем рендерить, по сути все они одинаковые, особенно пафтрейсеры.