본문 바로가기

DirectX/3D

지형 렌더링 LOD

용준 IT EXPERT 3D 게임 프로그래밍

 

정적 LOD(Static LOD)

- 여러 개의 메시를 준비해 놓고 게임 등에서 카메라와 물체간의 거리를 측정하여

   카메라와 가까운 거리에 있는 물체는 정밀한 메시를 사용, 거리가 멀어질수록

   낮은 단계의 메시를 사용하는 기법

특징 1. 처음부터 메시의 정밀도가 정해져 있고 이를 카메라와의 거리에 따라서

          단계별로 바꿔치기 하며 출력

장점 연산이 간단하므로 속도가 빠르다.

단점 여러 단계의 메시를 추가적으로 가지고 있어야 하므로 메모리의 낭비가

       심하고 거리에 따라서 메시의 단계가 급격하게 변하기 때문에

       (popping) 현상이 발생   

 

동적 LOD(Dynamic LOD)

- 카메라와 물체의 거리에 따라서 실시간 적으로 메시의 정밀도를 변화시키는 기법

   여러 가지 기법으로 분류 메시 분할과 메시 간략화 기법으로 나뉨

장점 거리에 따라 자연스럽게 LOD가 이루어지므로 튐(popping)현상 발생하지 않음

       낭비되는 메모리가 없음

단점 메시 분할이나 간략화에 추가적인 연산이 필요하므로 상대적으로 속도가 느림

 

김용준씨가 책에서 제공한 LOD방식은 SLOD, CLOD로 구분되는 방식중에

CLOD방식인지 정확한 언급은 없지만...실시간적으로 메쉬의 정밀도를 변화시키는

방식으로 구현되어 있기에  CLOD의 한종류인듯하다. 

 

김용준씨 말대로라면 동적LOD방식을 지형쪽에서

많이 쓰는게 맞는얘기인듯한데...

 

GPG를 검색해 보면 엄청난 CPU사용량때문에

SLOD방식을 많이 쓴다는 이야기가 있다. 흠....

일단 하나식 정리하면서 생각해봐야 할듯하다.


4.2  맞물린 타일들을 이용한 단순화된 지형시스템

 

 

LOD쪽을 더 알아보기 위해 GPGems 2의 내용과 소스를 살펴보았다.

해당 아티클에서 적용한 LOD방식은 세부수준을 미리정의해서 거리에 따라

이미 정해진 세부수준을 보여주는 SLOD방식으로 되어있다.

 

하지만 이 아티클의 문제점은 여러가지가 보인다.

1.  맞물린 타일들의 크랙을 이어붙이기위해 16개의 본체를 구성하는 인덱스버퍼 

    그리고 세부수준의 차이에 따라 한타일이 최대 12개의 연결부 인덱스버퍼를

    구성하고 있다. 인덱스 버퍼의 잦은 변경뿐만 아니라...

    타일마다 버텍스 버퍼를 따로 가지고 있어서 버텍스버퍼의 잦은 변경또한

    그리 좋아보이지 않는다.

 

2. 크랙의 보강이 세부수준이 낮은부분에서 더 상세화되는게 아니라 더 높은부분이

    통합되어 이루어진다. 이렇게 하면 오히려 지형에 대한 세밀도도 떨어지고

    Popping현상이 부각 되지않을가 하는 생각이든다.

 

3. 쿼드트리와 절두체컬링 부분이 소스부분에 같이 적용되어있지 않기에.

    해당부분을 같이 구현할시에 어떤문제가 있는지는 아직은 알순없을듯 하다.  

구현

게임 LOD 이론에서 응용까지

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

ASE 파일을 이용한 Bone Animation (1)  (0) 2010.07.19
픽킹~ 수학 이론  (0) 2010.07.16
쿼드트리(Quad Tree)  (0) 2010.07.06
DX 3D z버퍼  (0) 2010.06.29
Z버퍼의 개념( 알파블랜딩)  (0) 2010.06.29