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

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

Screenshot1

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

screenshot2

Мы попытались изменить 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 ответ

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

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

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

Другие вопросы по тегам