DirectX Graphics 프로그래밍 가이드 고도의 주제 픽셀 파이프라인 범프 맵핑   [목차열람] [주소복사] [슬롯비우기]
범프 맵핑
 
Microsoft DirectX 9.0

범프 맵핑


범프 맵핑은, 소수의 다각형만으로 예쁘게 테설레이션 된 개체의 반사 상태를 시뮬레이트 하는, 특수한 스펙큐러 또는 디퓨즈 환경 맵핑이다. 다음 화면은Bump Earth 샘플에 근거해 범프 맵핑의 이펙트를 나타내고 있다.

좌측의 매끈매끈한 구는 지구를 시뮬레이트 한 것으로, 우측의 구에서는 범프 맵 텍스처를 추가하고 있는

좌측의 지구는, 지구의 표면의 화면으로 텍스처 처리되어 스펙큐러 환경 맵이 적용되고 있다. 우측의 지구도 완전히 같지만, 범프 맵이 적용되고 있다. 2 번째의 지구의 화면의 다각형수는, 1 번째의 화면의 다각형수로 변함없다.

Microsoft® Direct3D® 의 범프 맵핑에서는, 개발자는 델타값에 의한 윤곽선의 정보를 제공하는 것으로부터, 범프 맵핑은, 정확하게는 스펙큐러 또는 디퓨즈 환경 맵의 픽셀 단위의 텍스처 좌표의 보정과 기술할 수 있다. 윤곽선의 정보는, 시스템에 의해 다음의 텍스처 스테이지의 환경 맵의 uv 텍스처 좌표에 적용된다. 델타값은, 범프 맵 표면의 픽셀 포맷으로 encode 된다. 더 자세한 정보는, 「범프 맵 픽셀 포맷」을 참조할것.

BumpEarth 샘플에서는, 높이 맵을 사용해 윤곽선데이터를 저장 한다. 샘플을 시작 하면, 높이 맵내의 픽셀이 처리되어 적절한 uv 가 계산된다. 이것은, 인접하는 4 개의 픽셀을 기준으로 한, 각 픽셀의 상대 고도로 기초를 둔다.

본래, Direct3D 에서는 높이 맵을 지원 하고 있지 않다. 높이 맵은, 윤곽선데이터를 저장 및 시각화하는데 편리한 포맷인 것에 지나지 않는다. 전의 화면은 높이 맵에 근거해 생성 된 것으로, BumpEarth 샘플에서는 이 높이 맵을 사용해, Direct3D 에 제공하는 범프 맵을 생성하고 있다. 이 화면은 설명을 목적으로 나타낸 것이다. 애플리케이션에서는 윤곽선정보를 어떠한 포맷에서도 저장 할 수 있어 또 Bump Waves 샘플과 같이 각각의 범프 맵을 생성할 수도 있다.

다음은, BumpEarth 샘플로 사용하는 높이 맵 화면이다. 이 샘플에서는, 이것을 사용해, 범프 맵 텍스처의 픽셀 포맷으로 encode 되는 델타값을 계산한다.

지구의 높이 맵을 encode 하는 이미지

범프 맵핑은, 복수의 텍스처 혼합 서비스에 완전하게 의존하고 있어, 장치는 적어도 2 개의 혼합 스테이지 (하나는 범프 맵용, 다른 하나는 환경 맵용)를 지원 하고 있을 필요가 있다. 베이스 텍스처 맵을 적용하려면 , 가장 일반적인 경우, 최저 3 개의 텍스처 혼합 스테이지가 요구된다. 다음 그림은 텍스처 혼합 cascade에 있어서의, 베이스 텍스처, 범프 맵, 및 환경 맵간의 관계를 나타내고 있다.

다각형 텍스처를 생성하기 위해서 사용되는 텍스처 혼합 cascade

텍스처 스테이지를 적절히 준비해, 범프 맵핑을 유효하게 할 필요가 있다.

여기에서는, Direct3D 에 의한 범프 맵핑의 실행에 대해 설명한다. 다음 주제에서는, 범프 맵핑을 소개해, 그 주요한 개념을 특정 및 정의해, 애플리케이션에서의 범프 맵핑의 사용법에 대해 설명한다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP