2008년 04월 04일
D3D Chapter 01>> DirectX:: Direct3D에 대하여...
:: 오늘의 넋두리--------------------------------------------------------------------------------
아... 그러고 보니 카테고리 이름이 DirectX로 되어 있군. 사실 현재로서는 Direct3D만 정리할 계획인데... 내가 어째서! DirectX라는 이름을 떡 하니 걸어둔것일까? ㅋ ㅡㅡ;;
그러고 보니 이글루는... 카테고리에 카테고리를 분할 할 수 없잖아... 이글루 아직은 미약하군....
------------------------------------------------------------------------------------------------
오늘은 Direct3D의 시스템 적인 부분에 대해서 정리해 보도록 하겠다.
DirectX는 2D와 3D 그래픽, 사운드, 인풋에 관련된 기능을 제공해 준다. 그중에 가장 두각을 나타내고 주목을 받고 있는 녀석이 3D를 담당하는 Direct3D이다.
Direct3D의 기본 기능은 고속으로 점을 찍는것이다. 혹 GDI를 다뤄 본 사람이 있다면 금방 이해 할것이다. 얼마나 무식한 방법인가? Pixel을 찍어 가면 화면에 그림을 그린다라... 사실 컴퓨터란놈... 내부로 들어가면 들어갈수록 정말 무식하다. 메모리만 하더라도 초저용량 케페시터를 충전 했다가 리프레쉬.... ㅡㅡ;;; 이런걸 말하고 있을때가 아닌데... 아무튼 점을 고속으로 찍어준더랬다. 다행히 눈에 보이지 않을 많큼 빠르니 무식해 보이지 않는다. ^_________^(사람은 보이는것에 매우 민감해서리 안보이면 장땡!... 쩝)
DirectX에는 2D를 담당하던 DirectDraw(지금은 DirectGraphics로 Direct3D와 통합되었다.)라는 녀석이 있었는데 이녀석도 점찍기의 고수였다. 하지만 이 둘은 2D와 3D라는 커다란 공간지각적 차이 만큼이나 연산의 양에서도 엄청난 차이를 보인다. 그래서 예전 동컴(동사무소 컴퓨터라고 하여 매우 느린 컴퓨터를 비화한 표현. 지금은 동사무소 컴터도 빠르지 않을라나?)을 쓰던 시절에는 3D라는 녀석이 두각을 보이지 않았다. 하지만, CPU는 엄청나게 발전했고 저런 3D연산쯤은! 가볍게(?) 수행을 해 낼수 있게 되었다. 더구나 Graphic Card는 더욱 발전했고, 요즘 출시되는 제품은 모두 3D 가속기를 내장하고 있어서 3D의 질을 한층 높이고 있는 추세이다. 이것이 무슨 말인고 하니! Direct3D와 그래픽 카드가 Direct로 연결 되여 연산을 한다는 것이다.
즉, Direct3D API는 바로 3D 가속기를 사용할 수 있도록 해주는 것이다.
다음은 Directx SDK(March 2008)의 Programming Guide를 발췌한 것이다.
Direct3D Architecture(Direct3D 9)
Direct3D System Intergration:
다음 그림은 Window 응용프로그램과 Direct3D, GDI 그리고 하드웨어 사이의 관계를 나타낸다.

hal device는 graphics pipeline 기능(함수)에 하드웨어 가속을 제공하며, 이는 그래픽 카드에 의해 지원되는 특성을 기초로 한다. Direct3D 메소드(기능)들은 런타임에 장치의 디스플레이 가능성 파악을 위해 제공되어진다.(IDirect3D9::GetDeviceCaps와 IDirect3DDeviceCaps) 만약 하드웨어가 기능을 지원하지 않는다면, hal은 그것을 보고하지 않는다.(?? 요기 해석 안되네 ㅡㅡ;)
아... 그냥 원문을 올린다.
=================================================================================================
Direct3D exposes a device-independent interface to an application. Direct3D applications can exist alongsideGDI applications, and both have access to the computer's graphics hardware through the device driver for the graphics card. UnlikeGDI, Direct3D can take advantage of hardware features by creating a hal device.
A hal device provides hardware acceleration to graphics pipeline functions, based upon the feature set supported by the graphics card. Direct3D methods are provided to retrieve device display capabilities at run time. (See IDirect3D9::GetDeviceCaps and IDirect3DDevice9::GetDeviceCaps.) If a capability is not provided by the hardware, the hal does not report it as a hardware capability.
For more information about hal and reference devices supported by Direct3D, see Device Types (Direct3D 9).
==================================================================================================
# by | 2008/04/04 12:10 | ▶▷DirectX◁◀ | 트랙백 | 덧글(0)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]