Unity) 투명 벽 만들기
문제
유니티에서 단일 면(Plane)으로 투명 벽을 구현하려 하면 기본적으로 Backface Culling(뒷면 제거) 이 적용되어 반대편에서 보이지 않는 문제가 발생한다. 또한, 투명도(Alpha 값) 를 적용했음에도 원하는 결과가 나오지 않는 경우가 있다.
시도한 해결 방법
렌더 모드 변경 (Transparent)
유니티의 셰이더 코드를 활용하여 Surface Type을 Transparent 로 설정해야 한다. 또한, 알파 값이 적용될 수 있도록 Tags 값을 변경 한다.
Tags { "Queue"="Transparent" "RenderType"="Transparent" }
Backface Culling 문제 해결
유니티의 기본 셰이더는 Cull Back 설정 으로 인해 뒷면이 렌더링되지 않는다. 이를 해결하려면 Cull Off 로 변경하여 양면을 렌더링할 수 있도록 설정해야 한다.
Cull Off
적용 코드
최종적으로 적용한 셰이더 코드는 다음과 같다.
SubShader
{
Tags { "Queue"="Transparent" "RenderType"="Transparent" }
Blend [_SrcBlend] [_DstBlend]
Cull Off
}
결론
- Surface Type을 Transparent 로 설정하면 투명 효과를 적용할 수 있다.
- Cull Off 설정을 추가하면 단면이 아닌 양면이 렌더링되어 벽이 보이지 않는 문제를 해결할 수 있다.
댓글남기기