Сэл шейдинг от Саймона
Нарисовать объекты “как в комиксе” (добавить снаружи очертания или сделать сэл шейдинг) достаточно просто. Если знать как! Несколько лет назад в школе Games Academy одна команда занималась созданием адвенчура в стиле комиксов (Tummy Trundle), чтобы исследовать, как придавать объектам вид “как в комиксе” в реальном времени. Falk предложил следующее решение: взять 3D модель, копировать ее, инвертировать нормали, добавить к скопированному объекту черный цвет и раздвинуть объект немного за границы нормалей. Результат выглядит так:
- Первоначальная 3D модель
- Копия модели (оригинал спрятан)
- Инвертированные нормали копии
- Края модели, выдвинутые вдоль нормалей
- Возвращение первоначальной модели
- Копия с добавлением черного
В результате под первой черепахой лежит еще одна черная, побольше. Но поскольку нормали черной черепахи инвертированы, вы видите только не перекрывающиеся части.
Дополнение 1
Кристофер дал две ссылки на техники выделения краев в “реальных” объектах:
- Обнаружение граней в Unity (эффект Edge Detect )
- Работа с нормалями в эффекте Edge Detect
(в переводе добавлены обновленные рабочие ссылки)
Дополнение 2
Nicolae Berbece шепнул мне про один замечательный трюк. Как добавить черные края к 2D спрайтам. Идея заключается в том, чтобы “просто” копировать спрайт 8 раз, раскрасить и сместить в 8 противолежащих направлениях:
Вы могли бы подумать, что достаточно увеличить один спрайт. На первый взгляд да, но заметны несколько проблемных областей:
Конечно, рисовать 8 спрайтов стоит дороже, но если это надо сделать на небольшой площади – не страшно. И данная техника дает нам несколько замечательных возможностей!
Возможности
Идеальный контур может выглядеть скучным (продемонстрирован с помощью Photoshop-Outline), а небольшой трюк помогает создать очень красивые края для волос:
Еще это хорошо работает с мягким альфа-переходом (обратите внимание на руки):
И моя любимая (и самая важная возможность). Простые точки превращаются в цветочки!
Дополнение 3
Николя (создатель Move or Die) отметил также, что в Heroes of the Storm для создания черного контура использована та же самая техника!<3