문제

유니티에서 단일 면(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
}

image-20250318193612215

결론

  • Surface Type을 Transparent 로 설정하면 투명 효과를 적용할 수 있다.
  • Cull Off 설정을 추가하면 단면이 아닌 양면이 렌더링되어 벽이 보이지 않는 문제를 해결할 수 있다.

댓글남기기