본문 바로가기

예전/3D

[3D] LOD (Level of Detail)


LOD 란 Level of Detail로 말 그대로 단계에 따라 디테일을 달리 한다는 말이다. 

지형이나 오브젝트를 렌더링 할 때 폴리곤의 수를 조정하여 화질의 저하 없이 높은 퀄리티를 내기 위해 사용된다. 



<모델>


위 그림은 거리에 따라 디테일을 다르게 준 모델이다.



<지형>



카메라와의 거리에 따라 디테일을 다르게 해준 지형이다.



LOD는 데이터 저장 방식에 따라 정적 LOD동적 LOD로 구분된다. 


정적 LOD 란, LOD 단계에 맞는 서브 정점 정보를 미리 계산해 둬 렌더링시 각 지형의 레벨에 따라 처리하는 것이다.

프로세스 부하는 적으나 전처리가 까다롭고, 미리 정보를 만들어야 하기 때문에 큰 Data Pool 이 필요하다.


동적 LOD 란, 각 지형의 LOD 단계를 동적으로 계산해 렌더링 하는 것이다.

LOD 단계가 변할 때 갑자기 튀어보이는 현상인 팝핑 현상에 적절하게 대응할 수 있고, 디테일한 컨트롤이 가능하다.

하지만 부하가 크다는 단점이 있다. 또한 갱신시마다 Lock, Unlock을 해줘야 한다.


CLOD (Continuous Level Of Detail) - 연속적인 상세 단계 기법

SLOD (Static Level Of Detail) 



LOD 계산 방법에는 거리 기반면적 기반이 있다.


거리 기반 LOD 는 시점 위치와 오브젝트의 거리를 이용해 단계 값을 구하는 방법이다. 구현이 간단하고 부하가 적으나 

필요 없는 부분이 세밀하게 보이거나 세밀하게 보여야 하는 부분이 단순하게 보일 수 있다.


면적 기반 LOD 는 오브젝트의 투영 면적에 따른 단계 값을 구하는 것으로 부하는 크지만 효율은 없다.






지형에 LOD 를 적용하기 위해 동적 LOD 와 거리 기반 LOD를 사용했다.






[참고] http://spaurh.egloos.com/4260026

http://www.misofruit.co.kr/seojewoo/programming/project2314.htm



'예전 > 3D' 카테고리의 다른 글

노멀매핑하려다가 ...  (0) 2013.01.14
[3D] LOD Crack  (0) 2013.01.10
[3D] 절두체(Frustum)  (3) 2013.01.10
[3D] 지형 올리고 내리기  (0) 2013.01.08
DrawPrimitive , DrawPrimitiveUP  (0) 2013.01.08