레벨 오브 디테일

컴퓨터 그래픽스에서 **레벨 오브 디테일**(Level of detail, **LOD**)은 3D 모델 표현의 복잡성을 나타낸다. LOD는 모델이 뷰어에서 멀어지거나 객체의 중요성, 뷰포인트 대비 속도 또는 위치와 같은 다른 기준에 따라 낮출 수 있다.
LOD 기법은 그래픽스 파이프라인 단계, 일반적으로 정점 변환의 작업량을 줄임으로써 렌더링 효율을 높인다.
모델의 시각적 품질 저하는 멀리 있거나 빠르게 움직일 때 객체의 외관에 미치는 영향이 작기 때문에 종종 알아채기 어렵다.

대부분의 경우 LOD는 기하학적 세부 정보에만 적용되지만, 기본 개념은 일반화될 수 있다. 최근에는 LOD 기법에 픽셀 복잡도를 제어하기 위한 셰이더 관리도 포함되었다.
레벨 오브 디테일 관리의 한 형태는 수년간 텍스처 맵에 밉맵핑이라는 이름으로 적용되어 왔으며, 이는 더 높은 렌더링 품질을 제공한다.

3D 모델러가 수동으로 LOD 모델을 만들거나 기본 LOD 알고리즘에 의해 객체가 단순화될 때 "객체가 LOD 처리되었다"고 말하는 것이 일반적이다.

## 역사적 참고 자료

3D 컴퓨터 그래픽스용 LOD 알고리즘의 기원은 제임스 H. 클라크가 커뮤니케이션즈 오브 더 ACM 1976년 10월호에 발표한 논문으로 거슬러 올라간다.
당시 컴퓨터는 거대하고 희귀했으며, 그래픽스는 연구원들에 의해 개발되고 있었다. 하드웨어 자체는 아키텍처적으로나 성능 면에서 완전히 달랐다. 따라서 오늘날의 알고리즘과 많은 차이점을 보였지만, 공통점도 많았다.

원래의 알고리즘은 여기서 논의될 내용보다 훨씬 더 일반적인 접근 방식을 제시했다. 기하학 관리에 사용할 수 있는 일부 알고리즘을 소개한 후, 가장 큰 이점은 "렌더링되는 환경을 구조화"하는 데서 나왔다고 명시하며, 이를 통해 더 빠른 변환 및 클리핑 작업을 활용할 수 있었다.

동일한 환경 구조화는 이제 다양한 디테일을 제어하여 불필요한 계산을 피하면서도 적절한 시각적 품질을 제공하는 방법으로 제안되었다.

제안된 알고리즘은 변환과 더 자세한 객체로의 전환을 모두 아크에 인코딩하는 트리 데이터 구조를 구상한다. 이런 식으로 각 노드는 객체를 인코딩하며, 빠른 휴리스틱에 따라 트리는 각 객체에 더 많은 세부 정보를 제공하는 리프까지 내려간다. 리프에 도달하면 캐트멀의 재귀적 세분화와 같이 더 높은 세부 정보가 필요할 때 다른 방법을 사용할 수 있다.

이 논문은 이어서 클리핑 (컬링과 혼동하지 말 것, 종종 유사하지만), 그래픽 작업 세트에 대한 다양한 고려 사항 및 성능에 미치는 영향, 제안된 알고리즘과 렌더링 속도 향상을 위한 다른 알고리즘 간의 상호 작용에 대해 소개한다.

## 잘 알려진 접근 방식
위에 소개된 알고리즘은 다양한 수준의 디테일 관리 기법을 다루지만, 실제 응용 프로그램은 일반적으로 렌더링되는 정보에 맞춰진 특수 방법을 사용한다. 상황의 요구 사항에 따라 두 가지 주요 방법이 사용된다.

첫 번째 방법인 **불연속 레벨 오브 디테일(DLOD)**은 기하학적 세부 수준이 감소된 원래 기하학의 여러 불연속 버전을 생성하는 것을 포함한다. 런타임에 필요에 따라 완전 세부 모델이 축소된 세부 모델로 대체된다. 레벨의 불연속적인 특성 때문에 한 모델이 다른 모델로 교체될 때 시각적인 팝핑이 발생할 수 있다. 이는 전환 중에 알파 블렌딩 또는 모핑을 통해 완화될 수 있다.

두 번째 방법인 **연속 레벨 오브 디테일(CLOD)**은 기하학적 세부 사항의 연속적인 가변 스펙트럼을 포함하는 구조를 사용한다. 이 구조는 상황에 필요한 적절한 세부 수준을 부드럽게 선택하기 위해 탐색될 수 있다. 이 기술의 중요한 장점은 세부 사항을 국부적으로 변경할 수 있다는 것이다. 예를 들어, 뷰에 더 가까운 큰 객체의 측면은 높은 세부 정보로 표시될 수 있으며, 동시에 멀리 있는 측면의 세부 정보는 줄일 수 있다.

두 경우 모두, LOD는 완전 세부 모델에 대한 LOD의 기하학적 오류를 평가하는 것과 같이, 세부 정보 축소로 인해 얼마나 많은 세부 정보가 손실되는지를 판단하는 데 사용되는 휴리스틱에 따라 선택된다. 그런 다음 객체는 휴리스틱을 만족하는 데 필요한 최소한의 세부 정보로 표시되며, 이는 허용 가능한 수준의 시각적 품질을 유지하면서 성능을 최대화하기 위해 기하학적 세부 정보를 가능한 한 최소화하도록 설계되었다.

### 불연속 LOD에 대한 세부 정보
[right|200px|섬네일|다양한 DLOD 범위의 예. 어두운 영역은 더 높은 디테일로 렌더링되어야 함을 의미한다. 추가 컬링 작업이 실행되어 [뷰잉 절두체|절두체 외부의 모든 정보 (색상 영역)를 제거한다.]]
불연속 LOD(DLOD)의 기본 개념은 동일한 객체를 나타내기 위해 다양한 모델을 제공하는 것이다. 이러한 모델을 얻는 것은 종종 사소하지 않고 많은 폴리곤 축소 기법의 대상이 되는 외부 알고리즘을 필요로 한다. 연속적인 LOD 알고리즘은 단순히 이러한 모델을 사용할 수 있다고 가정한다.

DLOD 알고리즘은 메모리에 쉽게 들어갈 수 있는 작은 데이터 세트를 사용하는 성능 집약적인 응용 프로그램에서 자주 사용된다. 코어 외부 알고리즘을 사용할 수도 있지만, 정보의 세분성은 이러한 종류의 응용 프로그램에 적합하지 않다. 이러한 종류의 알고리즘은 일반적으로 관련된 작업이 적기 때문에 더 빠른 성능과 낮은 CPU 사용량을 제공하여 작동시키기 쉽다.

DLOD 방법은 종종 복잡한 애니메이션 방법을 포함할 수 있는 "독립형" 움직이는 객체에 사용된다. 인기 있는 지형 렌더링 알고리즘인 지오맵핑에는 다른 접근 방식이 사용되는데, 이는 "객체" 메시와 그래픽적으로나 토폴로지적으로 다른 지형 메시에 적용되기 때문이다. 오류를 계산하고 이에 따라 메시를 단순화하는 대신, 지오맵핑은 고정된 축소 방법을 사용하고, 도입된 오류를 평가하며, 오류가 허용되는 거리를 계산한다. 간단하지만, 이 알고리즘은 괜찮은 성능을 제공한다.

### 불연속 LOD 예시
간단한 예로 구를 생각해보자. 불연속 LOD 접근 방식은 다른 거리에서 사용될 특정 수의 모델을 캐싱한다. 모델은 수학적 공식에 의해 절차적으로 생성될 수 있으므로, 표면에 분산된 다른 수의 샘플 포인트를 사용하는 것만으로도 필요한 다양한 모델을 생성하기에 충분하다. 이 단계는 LOD 알고리즘이 아니다.

현실적인 변환 한계 시나리오를 시뮬레이션하기 위해, 특별히 작성된 응용 프로그램을 사용할 수 있다. 간단한 알고리즘과 최소한의 프래그먼트 연산을 사용하여 CPU 바운드가 발생하지 않도록 한다. 각 프레임마다 프로그램은 각 구의 거리를 계산하고 이 정보에 따라 풀에서 모델을 선택한다. 개념을 쉽게 보여주기 위해 각 모델이 사용되는 거리는 소스에 하드 코딩되어 있다. 더 복잡한 방법은 선택된 사용 거리에 따라 적절한 모델을 계산할 것이다.

OpenGL은 작은 배치를 효율적으로 관리하고 각 모델을 디스플레이 목록에 저장하여 통신 오버헤드를 피하므로 렌더링에 사용된다. 두 개의 방향성 광원을 무한히 멀리 이상적으로 배치하여 추가 정점 부하를 준다.

다음 표는 LOD 인식 렌더링과 완전 디테일(무차별 대입) 방법의 성능을 비교한다.

### 계층적 LOD
하드웨어는 많은 양의 디테일에 맞춰져 있기 때문에 저 폴리곤 객체를 렌더링하면 최적이 아닌 성능을 낼 수 있다. HLOD는 다른 객체들을 그룹화하여 이러한 문제를 피한다. 이는 효율성을 높이고 근접성 고려 사항을 활용할 수 있게 해준다.

## 실제 적용

### 비디오 게임
LOD는 3D 비디오 게임에서 특히 유용하다. 비디오 게임 개발자들은 플레이어에게 넓은 세계를 제공하고 싶지만, 항상 하드웨어, 프레임 속도 및 비디오 게임 그래픽의 실시간 특성에 제약을 받는다. 1990년대 3D 게임의 등장과 함께, 많은 비디오 게임들은 단순히 멀리 있는 구조나 객체를 렌더링하지 않았다. 가까운 객체만 렌더링되고 더 멀리 있는 부분은 점차적으로 사라지면서 본질적으로 거리 안개를 구현했다. LOD 렌더링을 사용하는 비디오 게임은 이러한 안개 효과를 피하고 더 넓은 영역을 렌더링할 수 있다. 3D 비디오 게임에서 LOD 렌더링의 주목할 만한 초기 예시로는 킬링 클라우드, 스파이로 더 드래곤, 크래쉬 밴디쿳: 워프드, 언리얼 토너먼트 및 시리어스 샘 엔진이 있다. 대부분의 현대 3D 게임은 LOD 렌더링 기술을 조합하여 큰 구조에는 다른 모델을 사용하고 잔디나 나무와 같은 환경 세부 사항에는 거리 컬링을 사용한다. 이 효과는 플레이어 캐릭터가 가상 지형 위를 날아가거나 장거리 시야를 위해 저격 스코프를 사용할 때 여전히 눈에 띌 수 있다. 특히 잔디와 잎은 가까이 다가갈 때 갑자기 나타나는 것처럼 보일 수 있는데, 이를 잎 컬링이라고도 한다. LOD는 또한 프랙탈 지형을 실시간으로 렌더링하는 데 사용될 수 있다. 언리얼 엔진 5의 나나이트 시스템은 본질적으로 객체 전체가 아닌 메시 내에서 레벨 오브 디테일을 구현한다.

### GIS 및 3D 도시 모델링에서
LOD는 GIS 및 3D 도시 모델에서 유사한 개념으로 발견된다. 이는 실제 세계의 특징이 얼마나 철저하게 매핑되었는지, 그리고 모델이 실제 세계의 대응물에 얼마나 잘 부합하는지를 나타낸다. 기하학적 복잡성 외에도 공간-의미론적 일관성, 텍스처 해상도 및 속성과 같은 다른 측정 기준도 모델의 LOD에서 고려될 수 있다.
표준 CityGML은 가장 두드러진 LOD 분류 중 하나를 포함한다.

GIS에서 "LOD 처리"의 비유는 지도학적 일반화라고 한다.

### 렌더링 및 모델링 소프트웨어
* 메시랩은 3D 폴리곤 메시를 정확하게 단순화할 수 있는 오픈 소스 메시 처리 도구이다.
* 폴리곤 크런처는 객체의 모양을 변경하지 않고 폴리곤 수를 줄이는 Mootools의 상업용 소프트웨어이다.
* 심플리곤은 일반 입력 메시를 리메싱하여 실시간 렌더링 가능한 메시로 변환하는 상업용 메시 처리 패키지이다.

## 같이 보기
* 비등방성 필터링
* 거리 안개
* 드로우 디스턴스
* 밉맵
* 팝핑 (컴퓨터 그래픽스)
* 프로그레시브 메시
* 희소 복셀 옥트리
* 공간 해상도

## 각주

# Communications of the ACM, October 1976 Volume 19 Number 10. Pages 547–554. Hierarchical Geometric Models for Visible Surface Algorithms by 제임스 H. 클라크, University of California at Santa Cruz. Digitalized scan is freely available at https://web.archive.org/web/20060910212907/http://accad.osu.edu/%7Ewaynec/history/PDFs/clark-vis-surface.pdf.
# Catmull E., A Subdivision Algorithm for Computer Display of Curved Surfaces. Tech. Rep. UTEC-CSc-74-133, University of Utah, Salt Lake City, Utah, Dec. 1
# Ribelles, López, and Belmonte, "An Improved Discrete Level of Detail Model Through an Incremental Representation", 2010, Available at http://www3.uji.es/~ribelles/papers/2010-TPCG/tpcg10.pdf
# de Boer, W.H., Fast Terrain Rendering using Geometrical Mipmapping, in flipCode featured articles, October 2000. Available at flipcode - Fast Terrain Rendering Using Geometrical MipMapping.
# Carl Erikson's paper at http://www.cs.unc.edu/Research/ProjectSummaries/hlods.pdf provides a quick, yet effective overlook at HLOD mechanisms. A more involved description follows in his thesis, at https://wwwx.cs.unc.edu/~geom/papers/documents/dissertations/erikson00.pdf.

분류:3차원 렌더링