1. 개요
Level Of Detail(LOD)란 3차원 컴퓨터 그래픽스 관련 기술로, 3D 모델 표현의 복잡도를 거리에 따라 차등을 두어 부하를 줄이는 최적화 기술이다. 일반적으로 지오메트리 디테일만을 일컫는 개념이나, 엔진에 따라서는 밉맵과 같은 텍스쳐 필터링, 셰이더의 변경 역시 LOD에 포함시킨다.
게임에서 가장 많이 사용되며, 그 이외의 경우는 내비게이션 같은 GIS 활용 어플리케이션에서 자주 볼 수 있다.
2. 상세
90년대 초중반 3D 게임은 원경 표현이 미약하였다. 사일런트 힐처럼 안개를 이용하여 가시거리를 강제로 낮추거나, 바이오하자드처럼 고정 카메라 시점을 이용하여 폴리곤 없이 프로젝션 매핑으로 눈속임을 하거나, 그냥 슈퍼 마리오 64처럼 원경 디자인 자체를 포기하고 그림 속 세계라는 서사/레벨 디자인을 이용하여 존재하지 않는 원경에 대한 당위성을 부과하는 경우가 대부분이였다. 이는 5세대 콘솔의 미약한 성능 때문도 있었지만 더 근본적으로는 초창기 개발자들이 Level of Detail에 대한 이해가 미비하였기 때문이다. LOD에 대한 개념은 1970년대에 논문으로서 존재하였으나[1], CG 기술의 태동기였던 당대 투고된 다른 논문들[2]과 마찬가지로 이는 실제 구현을 염두에 두지 않은 추상적 개념에 불과하였고, 최초로 LOD를 폴리곤 기반 풀 3D 게임에 적용한 사례는 5세대 콘솔의 황혼기인 1998년작 Spyro the Dragon[3]이다. LOD의 적용으로 인해 3D 게임은 기존의 수십배 이상의 가시거리를 확보할 수 있게 되었으며, 이는 게임이 표현 가능한 세계의 범위를 훨씬 더 넓혀 Grand Theft Auto 3와 같은 초창기 오픈 월드 게임이 만들어질 수 있었던 원동력이 되었다.LOD의 효과를 확실하게 체감할 수 있는 사례. LOD가 없다면 거리에 따라 화면에 그려지는 오브젝트가 많아질수록 픽셀 면적당 폴리곤 카운트는 기하급수적으로 증가하지만, LOD의 적용을 통해 이를 산술급수 레벨에서 제어하거나, 아예 증가 자체를 막을 수 있다.
3. 팝핑(Popping)
영상은 ARMA 2의 LOD 팝핑 현상.
팝핑은 LOD 변환이 이루어질 때에 거리에 비해 모델의 품질 차이가 너무 클 경우 다른 모델이 갑자기 튀어나오는(Popping) 듯한 경험을 받는 현상을 의미한다.
1.5배의 용량을 사용하기만 하면 별도의 노동력 없이 16x16부터 4K에 이르기까지의 중간 단계에 해당하는 모든 밉맵을 자동으로 얻을 수 있는 텍스쳐와는 달리[4], LOD는 제작 비용과 용량의 코스트가 크기 때문에 중간 단계를 많이 만들 수 없으며 보통 많아야 4단계 정도에 그쳐 전환 과정이 상대적으로 덜 매끄러울수밖에 없다. 이를 해결하기 위한 방법은 크게 2가지가 있다.
- LOD 블렌딩
엔진에 따라 CrossFade(유니티 엔진), Dithered LOD(언리얼 엔진) 라고도 불린다. 2가지 단계의 LOD를 동시에 렌더링하면서, 거리에 따라 두 LOD의 투명도를 교차시켜 전환 과정을 부드럽게 보이게 하는 것이다. 구현이 매우 간단하고 추가적인 개발 코스트가 거의 없지만, 변환 과정 중에는 2개의 모델을 동시에 투명도까지 줘서 렌더링해야하므로 일시적으로 드로우콜이 2배가 되며 오버드로우까지 일어난다는 치명적 단점이 있다. 가까운 거리에서 사용할 경우 변환 과정이 눈에 띄어 없느니만 못하다는 단점 역시 존재한다.
- 지오모핑
영상은 지오모핑을 이용하여 풀의 부드러운 LOD 변환을 이루어낸 고스트 오브 쓰시마의 GDC 영상.
높은 디테일 LOD의 정점을 이동시켜(이때 UV도 같이 이동해야 한다) 점진적으로 낮은 디테일 LOD에 가깝게 만들고, 정점이 완전히 겹쳐질 때에 LOD를 변환하는 방식이다. LOD 블렌딩에서 일어나는 사양의 문제가 발생하지 않는다.
단점은 구현이 어렵다는 것이다. LOD를 아무렇게나 만들면 정점 이동만으로는 LOD 변환이 불가능할 수 있기 때문에, LOD 생성 단계에서부터 지오모핑을 염두에 두고 토폴로지를 구성하여야 한다. 이 때문에 아무 오브젝트에나 사용할 수는 없으며 보통 지형(Terrain)이나, 절차적으로 생성된 식생 모델 등에서 사용된다.
4. 임포스터
경우에 따라서는 극단적으로 낮은 디테일의 LOD 모델을 사용해야 할 때가 존재한다. 주로 숲의 나무나 바위와 같은, 반복적으로 표현해야 하는 오브젝트가 이에 해당한다. 허나 이러한 오브젝트의 디테일을 과도하게 낮추면 납득 불가능한 형태가 되는 경우가 많고, 알파 텍스처로 빌보드를 만들어 표현하면 디테일은 어느정도 유지되지만 오브젝트의 한 쪽 방향밖에 표현이 불가능하여 어색해진다.
임포스터 메시는 이러한 문제점을 해결하기 위한 절충안으로, 3D 오브젝트를 다양한 각도에서 캡처하여 스프라이트화시킨 뒤 이를 10~20폴리곤 정도의 구형 메시에 패럴랙스 매핑으로 구현하거나, 아예 2폴리곤짜리 평면에 빌보드로 구현한다.
단점은 알파 텍스쳐를 사용하기 때문에 오버드로우 문제가 발생한다는 것이다. 대다수의 임포스터 모델이 빽빽히 밀집한 식생에 최우선적으로 사용되기 때문에 매우 심각한 오버드로우가 발생한다. 임포스터로 절감 가능한 폴리곤 카운트 및 배칭 비용이 오버드로우로 인한 렌더링 리소스 낭비를 크게 상회한다는 확신이 있을 때만 사용하여야 한다.
[1] Catmull-Clark 알고리즘의 공동 개발자로 유명한 제임스 H 클라크가 1976년 ACM에 투고한 소논문 Hierarchical geometric models for visible surface algorithms[2] 레이트레이싱, 노멀 매핑 등 현대 사용되는 대다수의 그래픽 기술에 대한 아이디어 초안은 전부 1970년대 중후반에 만들어졌다.[3] 관련 영상[4] 보조기억장치에서 주기억 장치로의 로딩이 원활하지 않아 낮은 품질의 텍스쳐가 일시적으로 보여지는 텍스쳐 팝인(Pop-In)과는 비슷해 보이지만 기술적으로는 다른 현상이다.