
창문이나 유리병이 있는 컷을 렌더하면 초점이 엉뚱한 곳에 맞습니다. 유리 뒤의 배경이 선명하고 앞의 인물이 흐려지기도 합니다.
반투명 머티리얼의 처리 순서 때문입니다.
확인할 곳은 머티리얼의 Translucency Pass, 포스트 프로세스 볼륨의 Translucency 타입, 그리고 나나이트 적용 여부입니다. 증상에 따라 손댈 자리가 갈립니다.
반투명은 심도 계산 이후에 그려집니다
엔진은 화면을 한 번에 그리지 않습니다. 불투명한 것을 먼저 그리고 심도를 계산한 뒤, 반투명한 것을 나중에 얹습니다. 유리가 이 순서의 뒤쪽에 있으면 심도 계산에 참여하지 못합니다. 그래서 유리 표면에 초점이 잡히지 않고 뒤쪽이 그대로 선명하게 남습니다.
머티리얼에서 처리 시점을 앞으로 당깁니다
해당 유리 머티리얼을 엽니다. 디테일 패널에서 Translucency 항목을 찾습니다. 그 안의 Translucency Pass 값을 Before DOF로 바꿉니다.
이제 유리가 심도 계산 전에 그려집니다. 초점이 유리 표면에 정상적으로 잡힙니다. 값 하나만 바꾸면 되는 일인데 모르면 조명과 카메라를 붙잡고 한참을 헤매게 됩니다.
바꾼 뒤에는 유리가 화면을 가리는 컷만 짧게 다시 뽑아 봅니다. 유리 표면에 초점이 잡히는지가 확인 기준입니다.
유리 질감이 밋밋하다면 레이트레이싱을 봅니다
초점은 맞는데 유리가 플라스틱처럼 보이는 경우가 있습니다. 이때는 포스트 프로세스 볼륨에서 Translucency 타입을 Raytracing으로 바꿉니다. 굴절과 반사가 제대로 계산됩니다.
다만 이 설정을 바꾸면 씬 안의 모든 유리 질감이 달라집니다. 이미 맞춰둔 다른 컷의 유리도 영향을 받으니 전체를 다시 확인해야 합니다.
그래서 이 설정은 유리가 여러 컷에 걸쳐 나올 때 일찍 정해 두는 편이 낫습니다. 컷 작업이 끝난 뒤에 바꾸면 확인할 컷이 그만큼 늘어납니다.

유리를 나나이트로 처리하려다 사라지는 경우가 많습니다

최적화를 위해 모든 메시에 나나이트를 켜는 경우가 흔합니다. 그런데 유리와 물처럼 반투명한 메시는 나나이트가 적용되지 않습니다. 켜도 무시되거나 화면에서 사라집니다.
나나이트를 쓸 수 있는 것은 불투명 셰이더와 마스크드 셰이더입니다. 유리는 따로 분리해서 관리하는 편이 맞습니다. 패스트레이싱에서 렌더가 튕긴다면 이 반투명 그룹을 먼저 의심하시기 바랍니다.
분리해 두면 문제가 생겼을 때 그 그룹만 화면에서 빼고 다시 걸어볼 수 있습니다. 유리가 원인인지 아닌지가 한 번에 갈립니다.
아나몰픽 카메라에서는 화면 아래가 떨립니다
아나몰픽 렌즈를 쓰면 왜곡 때문에 화면 하단에 플리커링이 생기는 경우가 있습니다. 유리와는 별개 문제인데 증상이 비슷해 혼동하기 쉽습니다.
아나몰픽 카메라를 선택하고 Over로 검색합니다. 오버스캔을 0.3 정도로 주고 오버스캔 크롭을 체크합니다. 뷰포트보다 넓은 영역을 렌더해 가장자리 문제를 피하는 방식입니다.
크롭을 체크하지 않으면 넓게 렌더한 영역이 그대로 남습니다. 화면 비율이 달라지므로 두 항목은 같이 씁니다.
카메라에 너무 가까운 유리가 잘릴 때
유리창 바로 앞에 카메라를 두면 창이 잘려 보입니다. 니어 클립 평면에 걸린 것입니다. 카메라보다 가까운 것은 그려지지 않기 때문입니다.
r.SetNearClipPlane 1 을 넣으면 잘림이 줄어듭니다. 값을 더 낮추면 다른 곳에서 뎁스 정밀도 문제가 생길 수 있어, 필요한 만큼만 조정하는 편이 낫습니다.

공식 문서에 적힌 값

여기까지가 화면을 보고 고치는 순서입니다. 아래는 에픽 공식 문서에서 확인한 항목입니다. 기억에 의존하지 않고 문서에 적힌 그대로 옮깁니다.
Translucency Pass 값은 세 가지입니다. Before DOF는 심도 계산 전에, After DOF는 심도 계산 후에, After Motion Blur는 모션 블러 후에 그립니다. 세 번째 값에는 단서가 붙어 있습니다. 뎁스 테스트가 꺼지고, 그 때문에 루멘 고품질 반사도 함께 꺼진다고 문서에 적혀 있습니다. TSR의 카메라 지터가 뎁스 버퍼를 흔들어 깜빡임이 생기기 때문입니다.
나나이트는 블렌드 모드가 Opaque와 Masked인 머티리얼만 지원합니다. 지원하지 않는 머티리얼이 감지되면 기본 머티리얼로 바뀌고 출력 로그에 경고가 뜹니다. 유리를 켰는데 화면에서 사라졌다면 출력 로그부터 보면 됩니다.
레이트레이싱 반투명에서 굴절을 쓰려면 포스트 프로세스 볼륨의 Ray Tracing Translucency에서 Refraction을 켜고 Max Refraction Rays를 정합니다. 문서는 이 값을 빛이 반대편까지 통과할 만큼 충분히 높게 잡으라고 설명하며, 예시로 광선 수 1·3·5·6과 굴절값 0.01·0.04·0.05·0.1을 나란히 보여 줍니다. 머티리얼 쪽에서는 Two Sided를 켜고 라이팅 모드를 Surface Translucency Volume 또는 Surface Forward Shading으로 두라고 안내합니다.
자주 묻는 질문
Q1. Before DOF로 바꾸면 성능에 영향이 있나요?
처리 순서만 바뀌는 것이라 비용 차이는 크지 않습니다. 다만 반투명이 많은 씬에서는 체감될 수 있습니다. 유리가 겹쳐 보이는 컷에서 확인해 보세요.
Q2. 물에도 같은 설정을 쓰나요?
사용한 물 셰이딩 모델부터 확인하세요. 일반 Translucent 머티리얼과 달리 Single Layer Water는 Opaque 또는 Masked 블렌드 모드와 별도 렌더 패스를 사용합니다. 물 전체에 Before DOF 처방을 적용하기보다 해당 모델의 처리 방식과 결과를 따로 확인해야 합니다.
Q3. 유리 뒤의 그림자가 이상합니다.
레이트레이싱 그림자에서 양면 지오메트리 설정을 확인해 보세요. r.RayTracing.Shadows.EnableTwoSidedGeometry 0 을 시험해 보세요. 도움이 되는 경우가 있습니다.
출처
- MaterialTranslucencyPass — 언리얼 엔진 파이썬 API 문서
- Nanite Virtualized Geometry — 언리얼 엔진 공식 문서
- Real-Time Ray Tracing — 언리얼 엔진 공식 문서
확인일 2026년 9월 14일. 언리얼 엔진은 버전마다 항목 위치와 기본값이 달라집니다. 위 문서에서 쓰는 버전을 골라 다시 확인하시기 바랍니다.
발행 · 빅픽처