Войти
ПрограммированиеФорумГрафика

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

#0
11:16, 6 дек. 2018

Помогите, пожалуйста доработать шейдер Outlined/Silhouette Only.

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

+ Показать

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


#1
(Правка: 15:14) 15:05, 6 дек. 2018

deeffoora
После рендеринга всех объектов тебе надо взять и нарисовать твой объект еще раз, только его контур, с отключенным ZEnable, тогда другие объекты не будут его затирать.

#2
15:24, 6 дек. 2018

Этим шейдером нельзя нарисовать "только контур" , он рисует сначала выдавленную версию, а потом поверх нее сам обьект. Там надо как то стенсилами вырезать дырку

#3
9:01, 7 дек. 2018

Polyflow3d
> сначала выдавленную версию, а потом поверх нее сам обьект

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

#4
10:10, 7 дек. 2018

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

#5
10:42, 7 дек. 2018

Делаешь ZWrite, потом рисуешь обводку как обычно. См: https://docs.unity3d.com/Manual/SL-CullAndDepth.html

#6
13:24, 7 дек. 2018

если честно, обводку для всей сцены а-ля borderlands гораздо проще сделать через sobel filter.

#7
18:53, 7 дек. 2018

Suslik
и не надо всю геометрию 2 раза рисовать.

#8
18:08, 8 дек. 2018

Battle Angel Alita
и обводка получется не обводкой а выдавленным силуэтом поверх всего

#9
20:37, 12 дек. 2018

Polyflow3d
> и обводка получется не обводкой а выдавленным силуэтом поверх всего

Это проверял, так и есть. А вот как потом вырезать нормальную модель из выдавленной, не затрагивая объектов которые находятся ближе к камере, не знаю.

#10
13:19, 13 дек. 2018

копай стенсилы, расскапаешь - покажи

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