Categories: 언리얼 엔진

유리 머티리얼이 들어간 컷에서 심도가 이상하게 나올 때

▲ 머티리얼 Translucency Pass부터 나나이트 적용 여부까지 확인 순서

창문이나 유리병이 있는 컷을 렌더하면 초점이 엉뚱한 곳에 맞습니다. 유리 뒤의 배경이 선명하고 앞의 인물이 흐려지기도 합니다.

반투명 머티리얼의 처리 순서 때문입니다.

확인할 곳은 머티리얼의 Translucency Pass, 포스트 프로세스 볼륨의 Translucency 타입, 그리고 나나이트 적용 여부입니다. 증상에 따라 손댈 자리가 갈립니다.

반투명은 심도 계산 이후에 그려집니다

엔진은 화면을 한 번에 그리지 않습니다. 불투명한 것을 먼저 그리고 심도를 계산한 뒤, 반투명한 것을 나중에 얹습니다. 유리가 이 순서의 뒤쪽에 있으면 심도 계산에 참여하지 못합니다. 그래서 유리 표면에 초점이 잡히지 않고 뒤쪽이 그대로 선명하게 남습니다.

머티리얼에서 처리 시점을 앞으로 당깁니다

해당 유리 머티리얼을 엽니다. 디테일 패널에서 Translucency 항목을 찾습니다. 그 안의 Translucency Pass 값을 Before DOF로 바꿉니다.

이제 유리가 심도 계산 전에 그려집니다. 초점이 유리 표면에 정상적으로 잡힙니다. 값 하나만 바꾸면 되는 일인데 모르면 조명과 카메라를 붙잡고 한참을 헤매게 됩니다.

바꾼 뒤에는 유리가 화면을 가리는 컷만 짧게 다시 뽑아 봅니다. 유리 표면에 초점이 잡히는지가 확인 기준입니다.

유리 질감이 밋밋하다면 레이트레이싱을 봅니다

초점은 맞는데 유리가 플라스틱처럼 보이는 경우가 있습니다. 이때는 포스트 프로세스 볼륨에서 Translucency 타입을 Raytracing으로 바꿉니다. 굴절과 반사가 제대로 계산됩니다.

다만 이 설정을 바꾸면 씬 안의 모든 유리 질감이 달라집니다. 이미 맞춰둔 다른 컷의 유리도 영향을 받으니 전체를 다시 확인해야 합니다.

그래서 이 설정은 유리가 여러 컷에 걸쳐 나올 때 일찍 정해 두는 편이 낫습니다. 컷 작업이 끝난 뒤에 바꾸면 확인할 컷이 그만큼 늘어납니다.

▲ Before DOF, Raytracing, 오버스캔 0.3, r.SetNearClipPlane 1

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

이해를 돕기 위한 주제 이미지

최적화를 위해 모든 메시에 나나이트를 켜는 경우가 흔합니다. 그런데 유리와 물처럼 반투명한 메시는 나나이트가 적용되지 않습니다. 켜도 무시되거나 화면에서 사라집니다.

나나이트를 쓸 수 있는 것은 불투명 셰이더와 마스크드 셰이더입니다. 유리는 따로 분리해서 관리하는 편이 맞습니다. 패스트레이싱에서 렌더가 튕긴다면 이 반투명 그룹을 먼저 의심하시기 바랍니다.

분리해 두면 문제가 생겼을 때 그 그룹만 화면에서 빼고 다시 걸어볼 수 있습니다. 유리가 원인인지 아닌지가 한 번에 갈립니다.

아나몰픽 카메라에서는 화면 아래가 떨립니다

아나몰픽 렌즈를 쓰면 왜곡 때문에 화면 하단에 플리커링이 생기는 경우가 있습니다. 유리와는 별개 문제인데 증상이 비슷해 혼동하기 쉽습니다.

아나몰픽 카메라를 선택하고 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 을 시험해 보세요. 도움이 되는 경우가 있습니다.

출처

확인일 2026년 9월 14일. 언리얼 엔진은 버전마다 항목 위치와 기본값이 달라집니다. 위 문서에서 쓰는 버전을 골라 다시 확인하시기 바랍니다.

발행 · 빅픽처

unrealtechlog

Recent Posts

언리얼엔진 프레임이 떨어질 때 stat unit 부터 켜는 이유, Game·Draw·GPU 숫자 읽는 법 (UE 5.8 기준)

씬이 무거워져서 프레임이 30 아래로 떨어지면 대부분 먼저 그래픽 옵션부터 낮춰 봅니다. 그림자 품질을 내리고,…

1주 ago

언리얼엔진 HighResShot, 화면보다 큰 스크린샷을 원하는 크기로 뽑는 명령어 정리 (UE 5.8 기준)

포트폴리오 이미지나 기획서에 넣을 컷을 뷰포트에서 캡처하면 모니터 해상도 이상으로는 커지지 않습니다. 1920×1080 모니터에서 작업하면…

1주 ago

무비 렌더 큐 샘플 수, 스페이셜과 템포럴 중 어디를 올릴지 정하는 법

이해를 돕기 위한 주제 이미지▲ 스페이셜은 위치를, 템포럴은 셔터 시간을 나눈다 무비 렌더 큐로 뽑았는데…

4주 ago

노출 고정과 포토메트릭 조명 단위 — 밝기가 출렁이지 않는 씬 만들기

라이트 강도를 바꿨는데 화면 밝기가 예상과 다르거나, 카메라 방향에 따라 화면이 서서히 밝아진다면 자동 노출을…

1개월 ago

개인 작업용 렌더 워크스테이션, 돈을 어디에 쓸지

장비를 새로 맞출 때 예산은 정해져 있습니다. 문제는 어디에 몰아줄지죠. 커뮤니티 글을 보면 다들 다른…

1개월 ago

외주 견적에서 자주 빠지는 항목들

견적을 잘못 내면 작업 내내 손해라는 감각이 따라다닙니다. 금액을 낮게 불러서가 아니라, 들어갈 일을 빠뜨려서…

1개월 ago