프롬겜들은 한 번도 눈이 부신다던가 잘 안보인다던가 이런게 없었는데, 언리얼 게임들 특히 오공에선 사실적이랍시고 하늘에서 내리쬐는 햇빛 한 번 보면 실제로 눈뽕맞은 것마냥 내 홍채가 실시간으로 축소되는게 느껴지고 엄청 피곤하다. 차라리 baked된 표현이 안정적이고 더 현실적인 것 같음. 난 별로야 - 중국 AAA 타이틀 하면서 느끼는 점들
얼마 전에 이런 글귀를 적은 적이 있다. 검은신화 오공과 팬텀 블레이드 제로를 플레이하면서 공통적으로 겪었던 '눈뽕' 경험이 불쾌해서 남겼던 글귀다.

이 땐 제대로 아는게 없이 순수히 감정적이고 단편적인 리뷰만 남겼었는데, 각잡고 찾아본건 아니지만 어떻게 뒤적거리다보니 3D 환경에서의 라이팅에 대해 공부해볼 수 있었고 왜 '눈뽕' 문제가 발생했는지 알게 됐다.
언리얼 PBL? 이건 또 뭐야.. 3D 개발자가 알아야할게 또 생겼다니.. - 유정통 3D
특히 3D 게임에서 빛과 관련된 처리들은 플레이어가 게임에 몰입할 수 있게 도와주는 핵심적인 요소로 작용한다. 아무리 모델링이 폴리곤 수가 많아지고 정교해지더라도, 텍스쳐가 잘못 입혀지거나 빛 반사가 이상하게 적용된다면 우리는 단번에 이질감을 느끼고 금방 몰입된 이 세계에서 빠져나오게 된다.
그래서 게임 업계는 Physically Based Rendering 이라는 기법을 표준으로 삼고 물체의 표면이 가져야할 베이스 컬러, 메탈릭 정도, 러프니스 정도와 좀 더 미시적으로 들어가 입체감을 위한 노멀 맵과 하이트맵 정보를 데이터화하여 게임 파일로 추가하고 놀라운 그래픽 진보를 한 차례 이끌어 냈다.
그런데 물체 자체의 그래픽 퀄리티는 올라갔어도, 물체들이 위치한 장소의 빛은 또다른 영역이다. 현실에서 우리가 눈으로 인지하는 이 공간은 모두 사실상 무한대의 빛 반사를 거친 빛 정보를 인식하는 것이다. 게임 속에서는 실제 물리적인 라이팅 기술이 발명되기 전까지 전구 따위의 단순한 빛 반사 시뮬레이션에 그쳤다.
언리얼 엔진의 PBL
오늘날의 게임 엔진은 고도로 발달하여 실제 빛의 산란 현상을 그대로 재현하고자 노력하고 있다. 언리얼 엔진의 경우 실제 물리적 단위인 Lux, Lumen, Candela 등의 단위를 엔진 내에서 그대로 쓸 수 있도록 하였고, 각 광원의 특징을 그대로 가져와 시뮬레이션할 수 있게 만들어뒀다.
이러한 개념을 Physically Based Lighting, PBL이라 부른다. 자세한 내용은 위 에픽 라이브 영상에 잘 나와있으므로 깊게 들어가지 않을 것이고, 이 글의 주제인 '눈뽕'에 대해서만 간략히 짚고 넘어가보자.
'눈뽕'은 눈 순응(Eye Adaptation) 현상의 일부로, 고양이의 동공이 밝을 때 날카롭게 줄어들고 어두울 때 동그랗게 커지는 원리와 같다. 눈 순응 현상은 밝은 곳에서 어두운 곳으로 가는 암순응과 반대인 명순응 2개가 있는데, 시각적 불쾌함은 명순응에서 더 쉽게 경험하기 때문에 눈뽕이라는 명칭이 붙게 된 것이다.

이럴 때 언리얼 엔진에서 제공하는 여러 환경의 값(포스트 프로세스 볼륨의 로컬 익스포저)들을 수정함으로써 빛의 명암은 유지하면서 불쾌한 눈뽕을 줄일 수 있다.

현실적인 빛의 계산은 좋은데...이런 맵을 언리얼 엔진에서 돌린다고 생각하면 고개를 하늘로 들고 다니기 좀 어려울 것 같다는 생각이 든다


블러드본에도 성배던전 중에 이렇게 협곡 사이를 다리로 왔다갔다하면서 하늘을 바라볼 수 있는데 확실히 이땐 그냥 뭉개버리는 옛날 그래픽이긴 하다. 딱 이 장면이 눈뽕을 인공적으로 만든 옛날 기법이었음.
결론
너무 현실적인 것도 좋지 않다. 레이트레이싱이니 패스트레이싱이니 화려한 기술도 사실 '게임같은' 아름다운 그래픽을 구현하기 위해서 있는 것이지 '사실적'이어서 똑같이 불편한 그래픽을 원하는게 아니다. 그런 측면에서 AI 업스케일링, 프레임젠은 되게 좋은 기술인 것 같고 빛 관련된 기술들은 상당히 보수적으로 검토하는게 일관된 게임 경험을 줄 수 있는 것 같다.
덤으로 요즘 게임들이 퀄리티와 경험에 비해 심각하게 하드웨어 스펙을 따지고 발적화 이슈가 따르는 것도 복잡해진 PBR 만큼이나마 아직 완벽하게 제어할 수 없는 빛 관련 기술들 때문인 것 같다.