언어 [DX&C++] DirectX란 무엇인가?
2007.02.17 06:44
오늘은 전에 예고해드렸던대로 DX&C++에 대한 이야기를 풀어내는 첫번째 시간입니다. ^^
즐거운 마음으로 아래의 지겨운 내용을 읽어보시기 바랍니다.
[DirectX]
- DirectX에 대하여...
DirectX는 마이크로소프트社에서 만든 3D API 인터페이스 입니다.
여기서 인터페이스라고 말한 것은, 모든 API의 기능을 마이크로 소프트에서 제작하는 방식이 아니라 각 하드웨어 제조사에서 나름대로의 방식으로 구현을 해주는 부분이 있기 때문인데 Java의 Interface 클래스와 비슷하게 이해하면 쉬울 것 같습니다.
이 DirectX는 두가지 버전이 있습니다. 하나는 SDK이고, 다른 하나는 EUR입니다.
EUR은 End User Runtimes의 약자로 일반적으로 우리가 게임을 하거나 가속기능을 사용한 프로그램을 사용하기 전에 설치하는 버전입니다.
SDK는 DirectX를 이용한 프로그램을 제작할 때 사용하는 툴킷으로써 DirectX API 함수들의 정의들과 3D 공간을 다루기 위한 DirectX만의 객체들이 정의되어 있습니다.
만약 이런 API가 없었다면 우리는 하드웨어 가속을 받지 못한채, CPU로 정점 연산을 하며 그에 맞추어 일일히 그림을 만들어줘야 할 것입니다.
그것은 API 자체를 만드는 것에 버금가는 작업이 필요할 것이므로 직접 만들기엔 너무나 효율적이지 못하므로 그런 것에 시도하는 것은 권장하지 않습니다.
[C++]
- C언어의 발전형태인 C++은 기존의 문법을 이어받고, 새로운 객체 지향 개념을 받아들인 그야말로 온고지신을 실천한 언어라고 할수 있습니다.
이 언어로 말할 것 같으면 그동안의 많은 글에서 만나본 바로 그 언어이지요.
이 두가지 도구의 궁합이 가히 극상이라 그 둘을 사용한 이야기를 여기서 해보려고 합니다.
오늘은 예고편격으로 일반 개념을 정립하는 선에서 마치도록 하겠습니다. ^^ 다음 시간에 다시 만나요~.
댓글 9
-
아란
2007.02.17 12:27
그럼, 일반적으로 다운받아 까는 다이렉트X는 거의 EUR이란 것이겠네요.|+rp2+|2785|+rp3+|acoc_board_ideatip -
Zeprod
2007.02.17 13:29
네, 그다지 중요하진 않지만 이 글의 목적이 DX 프로그래밍을 따라하시려면
DirectX SDK를 따로 받아야 한다는걸 먼저 밝히는 것이었으므로 주의만 하면 만사 OK입니다..|+rp2+|2786|+rp3+|acoc_board_ideatip -
악마의9시저주
2007.02.20 21:07
여기서 3D 라는 의미가요.......;
그래픽의 3D 가 아닌가요?;;
Direct2D도 있긴 한데요..|+rp2+|2795|+rp3+|acoc_board_ideatip -
Zeprod
2007.02.21 00:38
Direct3D, Draw, Sound, Show 등등 여러가지 객체들이 있습니다만, 3D를 다루는 내용이 주가 될 것 같아 이렇게 적었습니다.
사실 Direct9 이후로는 2D 객체를 따로 지원하지 않고 Direct3D에서 처리하고 있으니 그래픽 출력 관점에선 틀린말은 아닙니다. |+rp+|2795|+rp2+|2796|+rp3+|acoc_board_ideatip -
SeHwa
2007.02.25 01:37
3D API 라는 말은 틀린 말입니다.
LPDIRECTDRAW7 같은 객체가 존재합니다.
한마디로 DirectDraw 는 2D 이며 DirectMusic 와 DirectShow(이제 DirectX 가 아니죠)
DirectSound 나 DirectInput 등은 Direct3D 와 완전히 다른 인터페이스이므로
3D API 라는 말보다 DirectX 는 거의 게임용 라이브러리라고 해도 무방합니다.
(만들어진 이유가 보호 모드인 윈도우즈에서 게임을 만들게 하기 위한 이유입니다.)|+rp2+|2810|+rp3+|acoc_board_ideatip -
케이코냥이
2007.02.26 21:18
SeHwa님 정확한 지적입니다.
D3D를 3DAPI이라고 지칭합니다.
DirectX라고 한다면 d3d,DS,DM,DI,DD,DP를 포함하는게 되버리니까요..|+rp2+|2818|+rp3+|acoc_board_ideatip -
Zeprod
2007.03.01 03:38
위 두분의 말씀 잘 받았습니다.
DirectX는 여러가지 게임API를 제공하는 통합 게임API입니다. DX9 이후로는 2D 스프라이트 처리를 3D 상에서 하기를 MS에서 권고하고 있으며, 3D 프로그래밍을 제외한 여타 부분은 상당히 추상화되어 직접 하드웨어를 건드릴 일이 없게 되었습니다. 이제는 3D 게임에 최적화된 API라고 불러도 이상이 없을 정도지요.
게다가, DShow, DMusic 등의 고차 객체들은 실행속도상의 문제로 게임 프로그래밍에서 사용하지 않기를 권고하며, 실제 SDK 배포판에서도 제외되었으니 크게 신경 쓸 부분은 아닙니다.|+rp2+|2821|+rp3+|acoc_board_ideatip -
SeHwa
2007.03.03 04:15
이제는 그래픽도 그렇고 3D 기준으로 되버린게 이유겠지요.
그래픽쪽도 2D(도트 그래픽제외) 게임의 경우 3ds max 등의 3D 그래픽 소프트웨어에서
렌더링과 그 후의 처리등을 통하여 2D 그래픽을 만들어내더군요.
프로그래밍쪽도 마찬가지가 되버린건가 봅니다.
게다가 MS는 DX7 이후로 그 후의 버전은 모두 사실상 DirectX8 , DirectX9 , DirectX10 이라고
부르지만 사실상 D3D8,D3D9,D3D10 일 정도로 변화된 부분이 D3D 밖에 없더군요.
게다가 DirectX10 은 예외로 비스타 환경에서 사용하는 인터페이스라 조금 차이는 있지만 말입니다..|+rp2+|2822|+rp3+|acoc_board_ideatip -
Zeprod
2007.03.04 00:48
3D 이외의 DirectDevice는 아직 DX8의 것을 쓰고 있으니까요.|+rp2+|2823|+rp3+|acoc_board_ideatip