본문 바로가기

[ C/ C++ 프로그래밍 ]/[ 외부 지형 ]

LOD


◎ LOD ( Level of Detail )
- 가까운 물체는 자세히, 먼 물체는 희미하게 보이는 현실 원리를 컴퓨터 그래픽에 적용

- 지형 뿐만이 아닌 모든 오브젝트에 적용 가능

- 다양한 알고리즘이 존재

- 정적 LOD ( Static LOD), 동적 LOD(Dynamic LOD)

- 지형처리 기법의 대부분은 동적 LOD를 사용 ==> 캐릭터 포현에도 동적 LOD가 많이 사용됨

 

◎ 정적 LOD (Static LOD)
 - 기존의 LOD 표현방법
 - 전처리기 과정에서 미리 각 물체마다 LOD 생성
 - 런터임시, 거리에 따라 알맞은 LOD선택하여 가시화
    :: 카메라에서 일정단계를 나누어 좋고 출력
 - 실시간 LOD 생성 불필요

ㅇ 정점 : 하드웨어 연산 상대적으로 적음
 - 전처리 과정에서 하드웨어를 실시간 렌더링에 적합한 구조 LOD생성

ㅇ단점 : LOD 사이의 팝핑 현상
  - 그래픽이 튀어 보임

 


◎  동적 LOD (Dynamic LOD)

ㅇ 최근 LOD  표현 방법
   - 전처리 과정 : LOD를 위한 자료 구조 형성
   - 런타임 : 원하는 단계의 LOD로 실시간 압축 / 해제

ㅇ 장점
   - LOD 단계가 세분화 될수록 부드러운 전이 가능  ==> 팝핑 현상 해결
   - 점진적인 전송
   - 시점 종속적 LOD ( View-dependent LOD)


 


◎ CLOD
 - 해골책의 LOD 방식
 - 시간, 거리에 따라 연속적으로 정밀도가 변경되는 방법
 - 대표적으로 하이트맵(또는 하이트필드)를 이용한 지형렌더링에서 사용
 - 폴리곤 자체의 폴리곤수를 동적으로 조절하는 용도로 사용
 - 매 프레임마다 원래 있던 버텍스와 사라지는 버텍스 사이에 갭 존제( Poping) 
 - Poping 현상을 보간해주는 것을 첨가하면 Geomorphing CLOD가 된다.

설명)
그림으로 보자면
0번 프레임에서부터 카메라가 점점 다가가는 예제를 생각해보죠...

frame 0 ~ 9

---- : Low Polygon

frame 10
/\
/ \ : High Polygon


0번 프레임에서 9번 프레임 까지는 Low Polygon인 상태였는데
10번프레임으로 이동할때 갑자기 버텍스가 생기면
그걸 바로보는 우리 눈은 그걸 놓치지 않죠...
그 간격이 크면 클수록 더 어색하게 보일테구요...

그래서 0번 프레임에서 10번 프레임으로 이동하는 사이에
가운데 버텍스의 높이를(지형 예군요 ^^) 보간해서
갑자기 튀어보이지 않게 처리해 주는겁니다...

출쳐 ) http://www.gpgstudy.com/forum/viewtopic.php?p=9162&sid=fd3644683ce92998539053d3fde8e490


 

 

참고 및 자세한 내용은 


 

'[ C/ C++ 프로그래밍 ] > [ 외부 지형 ]' 카테고리의 다른 글

컬링  (0) 2010.06.28
쿼드 트리  (2) 2010.06.28