29 января 2014 г.

Карандашный normal mapping

Продолжаю исследования в области 3D без 3D. Предыдущий опыт позволял менять цвет статичных источников света в готовых иллюстрациях. Теперь посмотрим, что можно сделать для объектов, освещение которых зависит от обстоятельств.

Превращение Хогуна из The Banner Saga в Хогуна Объемного

Данное изображение — результат затенения оригинального спрайта из игры с помощью специально созданных карт нормалей. Плюс этого метода в том, что такой плоский объект может быть помещен в объемное окружение, и будет естественно реагировать на освещение сцены.

Интерактивная демонстрация


Подготовка текстуры


Так как цель эксперимента состояла в том, чтобы создать видимость объема, не прибегая к помощи 3D‑художника, материалы, как и в случае с лампой на столе, готовились 2D‑художником, карандашом на бумаге. Перед ним была поставлена задача затенить имеющееся изображение так, будто свет падает только с одной стороны. И так четыре раза.

Тени, нарисованные художником

Потом с помощью определенных наложений получаем готовые значения двух осей: горизонтальной и вертикальной.

X и Y будущей поверхности

Конечно, ничто не мешает художнику сразу рисовать их в таком виде, но сложно с ходу понять, что от тебя требуется, если не представляешь, как это работает.

Наконец, как и с любой картой нормалей, одна ось помещается в красный канал, а другая в зеленый (данные синего канала заполняются автоматически с помощью небольшого скрипта).

Готовая карта нормалей

Вот и все, текстура готова. Остальное делает самый обыкновенный normal-шейдер.

Конечно, первый блин получился комковатый. Но если художник будет понимать, что делает, можно смело использовать такую технику. К тому же необязательно обрабатывать свет по всем четырем направлениям — для некоторых случаев текстура с одним каналом подойдет даже лучше.

1 комментарий: