Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Помогите доработать шейдер Outlined/Silhouette

Помогите доработать шейдер Outlined/Silhouette

deeffooraПостоялецwww6 дек. 201811:16#0
Помогите, пожалуйста доработать шейдер Outlined/Silhouette Only.

Есть шейдер (взятый на wiki.unity3d.com/index.php/Silhouette-Outlined_Diffuse) отрисовывающий только контур объекта. Его код под спойлером.

+ Показать

Требуется, чтобы контур был виден за всеми объектами.

gmsПостоялецwww6 дек. 201815:05#1
deeffoora
После рендеринга всех объектов тебе надо взять и нарисовать твой объект еще раз, только его контур, с отключенным ZEnable, тогда другие объекты не будут его затирать.

Правка: 6 дек. 2018 15:14

Polyflow3dПостоялецwww6 дек. 201815:24#2
Этим шейдером нельзя нарисовать "только контур" , он рисует сначала выдавленную версию, а потом поверх нее сам обьект. Там надо как то стенсилами вырезать дырку
deeffooraПостоялецwww7 дек. 20189:01#3
Polyflow3d
> сначала выдавленную версию, а потом поверх нее сам обьект

Пытаюсь разобраться. В коде вроде как первый проход отрисовывает сам объект, а второй выдавленный. По идее наоборот должно быть, как вы сказали, или я что-то не понимаю?

Polyflow3dПостоялецwww7 дек. 201810:10#4
deeffoora
не знаю на счет последовательности, но то что аутлайн рисуется выдавливанием геометрии  - это во всех шейдерах что я видел, по этому чтобы рисовать контур поверх всего нужно прорезать дырку.
Я использую у себя подобный шейдер, и хочу тоже возможности рисовать поверх всего, но пока не знаю как это сделать.
https://polyflow.studio/Ep11PieChartDemo/

Battle Angel AlitaПостоялецwww7 дек. 201810:42#5
Делаешь ZWrite, потом рисуешь обводку как обычно. См: https://docs.unity3d.com/Manual/SL-CullAndDepth.html
SuslikМодераторwww7 дек. 201813:24#6
если честно, обводку для всей сцены а-ля borderlands гораздо проще сделать через sobel filter.
MAMOHT-92Постоялецwww7 дек. 201818:53#7
Suslik
и не надо всю геометрию 2 раза рисовать.
Polyflow3dПостоялецwww8 дек. 201818:08#8
Battle Angel Alita
и обводка получется не обводкой а выдавленным силуэтом поверх всего

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр