Проблема со стандартным Toon шейдером

Шейдеры и все-все-все.

Проблема со стандартным Toon шейдером

Сообщение Summerscream 19 фев 2012, 13:35

Есть следующая проблема.
Стандартный toon shader, в частности Lighted Outline некорректно работает при приближении или отдалении камеры. Беда в том, что чем дальше камера от объекта с этим шейдером тем сильнее обводящие линии начинают отходить от объекта в сторону, что выглядит плохо. Возможно кто-то уже сталкивался с этой проблемой и знает ее решения. Подскажите пожалуйста.
Summerscream
UNIт
 
Сообщения: 62
Зарегистрирован: 01 фев 2011, 00:34
Откуда: msc

Re: Проблема со стандартным Toon шейдером

Сообщение gnoblin 19 фев 2012, 15:43

а как должно работать - толщина линий не меняться?
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Проблема со стандартным Toon шейдером

Сообщение Summerscream 19 фев 2012, 16:18

а как должно работать - толщина линий не меняться?

Не совсем, толщина линий должна меняться, иначе на определенном расстоянии чернота заслонит геометрию. Беда в том, что меняя толщину в зависимости от расстояния обводка начинает отходить на некоторое расстояние от геометрии и получается зазор.
Картинка 1, на которой мы находимся близко к объекту. В принципе тут уже есть проблема, а именно дырки в обводке на углах геометрии - http://imageshack.us/photo/my-images/825/27085052.jpg
Картинка 2, на которой видно что обводка отходит от геометрии на некоторое расстояние и образуется зазор, я обвел красным - http://imageshack.us/photo/my-images/443/61935349.jpg

Вот вариант правильного тун шейдинга - http://www.bankigr.ru/screen/mini/3694/ ... enie-2.jpg
Здесь линии не отходят от геометрии и на углах геометрии нет дырок в обводке.
Вот так же хороший вариант - http://www.cs.virginia.edu/~gfx/Courses ... ading2.jpg

С кодом шейдеров я не общался в плотную никогда, возможно вы подскажите куда копать?
Summerscream
UNIт
 
Сообщения: 62
Зарегистрирован: 01 фев 2011, 00:34
Откуда: msc

Re: Проблема со стандартным Toon шейдером

Сообщение Summerscream 21 фев 2012, 00:17

Путем различных экспериментов была таки найдена причина подобного поведения. Она заключается в том, что данная реализация шейдера не переваривает острые углы, совсем. Если острый угол разделить, сделав отдельный полигон, а потом в 3dsMax применить модификатор AutoSmooth на модельку, то шейдер сработает нормально. Примечательно, что если AutoSmooth не применить, то шейдер продолжить работать некорректно.
Отдельно отмечу, что применение AutoSmooth к моделькам с острыми углами не дает никакого эффекта.
Таким образом выходит, что стандартный тун шейдер Unity нельзя применять на геометрии с острыми углами. Иначе говоря все модельки в игре автоматически увеличиваются по полигонажу в 2 раза минимум.
Отдельно замечу, что данная реализация не способна тонировать видимые края геометрии, что и понятно, так как она с краями вобще не работает, утолщая фейсы попавшие под нож куллинга.
Постарался сделать наглядный скриншот, возможно кому-то будет полезно - http://imageshack.us/f/850/29887746.jpg

Друзья, поправьте меня пожалуйста, если я где-то оклеветал шейдер зря.
Summerscream
UNIт
 
Сообщения: 62
Зарегистрирован: 01 фев 2011, 00:34
Откуда: msc

Re: Проблема со стандартным Toon шейдером

Сообщение gnoblin 21 фев 2012, 01:37

в юнити можно smoothing angle поставить 180 градусов в настройках меша и такой проблемы вроде не будет
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Проблема со стандартным Toon шейдером

Сообщение Summerscream 21 фев 2012, 19:20

в юнити можно smoothing angle поставить 180 градусов в настройках меша и такой проблемы вроде не будет

Спасибо большое, этот вариант решил все проблемы, ну или почти все. Артефакты остались, но их минимум.
Summerscream
UNIт
 
Сообщения: 62
Зарегистрирован: 01 фев 2011, 00:34
Откуда: msc


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3