벽 뒤의 창문이 보이던 픽셀 프리셋

나중에 그리는 창문이 벽을 통과했습니다
Pixel Camera의 일반 예제에서 왼쪽 창문이 앞쪽 벽 위로 드러났습니다. 창문은 벽 구멍을 통해 보이는 부분만 표시돼야 했지만, 후순위 렌더 설정이 관통 모드까지 켜고 있었습니다. 픽셀 해상도보다 먼저 가림 규칙이 잘못 연결된 문제였습니다.
재현은 Unity 6000.0.83f1의 Built-in 파이프라인과 16-CompleteStyle 씬에서 진행했습니다. 같은 카메라에서 원본 프리셋을 메모리로 복제하고 Through walls를 켠 경우와 끈 경우를 각각 렌더했습니다. 시점이 바뀌어 창문이 가려진 것처럼 보이지 않도록 조건을 유지했습니다.
![]()
![]()
후순위와 관통은 다른 선택입니다
BuildPaidSamples.mjs는 lateLayers 마스크를 켜면 drawLateThroughWalls도 자동으로 1로 설정했습니다. 활성 프리셋과 135픽셀 프리셋 모두 이 값이 켜져 있었습니다. 실제 Built-in 코드는 값이 true이면 후순위 패스의 깊이를 지우도록 동작했습니다.
나중에 그릴 대상을 고르는 것과 앞의 벽을 무시하는 것은 다른 의도입니다. 생성 규칙에서 둘을 묶어 놓으면 해상도나 예제를 바꾸는 과정에서도 원하지 않는 관통이 따라옵니다. 아래는 원문에서 확인한 설정의 구분입니다. 렌더러 전체 패스 순서를 나타낸 도표는 아닙니다.
flowchart TD
A["후순위 렌더 대상"] --> B["일반 맵 예제"]
A --> C["의도된 관통 예제 09"]
B --> D["Through walls 끔"]
C --> E["Through walls 켬 유지"]
프리셋뿐 아니라 재생성 경로도 고쳤습니다
16-CompleteStyle과 Outpost-CoarseThroughWalls의 설정을 0으로 바꾸고 생성 스크립트 두 곳도 수정했습니다. 저장된 파일만 바꾸면 예제를 다시 만들 때 문제가 돌아올 수 있기 때문입니다. 기존 GUID와 파일명은 유지했고, 관통을 보여 주려는 09-ThroughWalls는 1을 그대로 뒀습니다.
새 실제 렌더를 아홉 언어 가이드와 스크린샷 목록에 추가하고 제출 스테이징과 압축본에도 반영했습니다. 과거 캡처의 해시는 바꾸지 않았습니다. 변경 전 근거까지 새 결과로 덮어쓰지 않아야 어떤 설정에서 문제가 나타났는지 다시 확인할 수 있습니다.
픽셀 차이와 실제 가림을 함께 확인했습니다
전후 렌더는 모두 960×540 원본 PNG입니다. 전체 3,197픽셀, 왼쪽 영역 1,436픽셀이 달라졌고 직접 시각 비교에서도 지적된 관통 영역이 사라졌습니다. 이는 실행 중인 Unity의 Camera.Render 출력이며 Play UI를 조작한 캡처와는 구분합니다.
핵심 검사 22개, 맵 회귀 16개, 최종 패키지 전수 대조도 통과했습니다. 테스트가 끝난 뒤 카메라의 targetTexture와 프리셋 참조는 복원했고 씬과 Play 상태를 바꾸지 않았습니다. 이번 수정의 실제 실행 확인은 Built-in 범위입니다. URP의 이전 검사 이력은 남아 있지만 변경 후 새 URP 실행은 하지 않았습니다. 해상도 선택과 가림 정책을 분리한 결과를 다른 파이프라인에서도 확인하는 일은 별도로 남습니다.
미로


댓글
이 글에 대한 생각을 남겨 주세요.