Некоторые модели видны даже после прохождения z-теста в пользовательском шейдере маски глубины UNITY. - PullRequest
0 голосов
/ 26 декабря 2018

При использовании некоторых 3D-моделей шейдер маски глубины, имеющий z-критерий «LEqual», должен нормально работать, как на скриншоте1

screenshot1

Но этодать результат, который показывает градации серого, выделенные для той части 3d модели, где ее нужно спрятать.[Взять ссылку на снимок экрана2]

снимок экрана2

Мы попытались изменить ZTest с LEqual на Always, что немного решает проблему, но опять-таки объект частично виден.

Shader "Custom/mask" { 
SubShader { 
Tags {
"Queue" = "Geometry+10" 
"RenderType" = "Opaque" 
}

Lighting Off 
ZTest LEqual 
Cull Back 
ZWrite On 
ColorMask 0 
Blend One One 
Pass {Fog {Mode Off}}

} } 

1 Ответ

0 голосов
/ 14 января 2019

Похоже, вы делали ранний Z-проход из сорбирующего меша, который, я полагаю, является реконструированным или отслеживаемым движением лицом?Таким образом, очки отображаются с использованием правильного стандартного материала?

Материал маски должен быть нарисован в начале , поэтому очередь должна быть Геометрия-10 или что-то в этом роде.Все остальные теги не имеют значения, за исключением ColorMask 0 .

Освещение и туман устарели, а Blend бесполезен, так как вы все равно не рисуете в буфер цвета (только с ColorMask 0рисует глубину).

...