2009-06-09 4 views
3

OpenGL과 Direct3D의 차이점은 무엇입니까? 자바와 Mirosoft의 CLR [.NET]과 같은 것들을 수행하기위한 진정한 구현물입니까?OpenGL 및 Direct3D

+0

DirectX는 3D 그래픽 그 이상입니다. Direct3D와 OpenGL을 의미하지 않습니까? –

+0

당신의 권리, 나는 그것을 고쳤습니다. http://en.wikipedia.org/wiki/DirectX –

답변

9

매우 다른 그래픽 API입니다. 그러나 그들이 같은 것을 성취한다고 말하는 것은 공평합니다. Windows (또는 XBOX 용 게임)에서 게임을 개발하는 경우 DirectX가 아마도 API가 될 것이며, 플랫폼 간 지원을 원할 경우 OpenGL을 선택하게됩니다. Mac OS는 예를 들어 iPhone과 마찬가지로 GL을 사용하며 많은 Windows 게임에서도 OpenGL을 지원합니다.

OpenGL은 오랫동안 개발되어 '위원회별로'개발 되었기 때문에 많은 수하물이 있습니다. API에는 오늘날에는별로 관련이없는 몇 가지 옵션이 있습니다. 그것이 OpenGL ES의 이유 중 하나입니다. 모든 쓰레기를 없애고보다 쉬운 대상 플랫폼을 만듭니다.

DirectX는 Microsoft가 제어하므로 DirectX는 COM 요소를 기반으로하므로 '현대적인 느낌'이 더 강합니다 (고도로 객체 지향적입니다). MS는 종종 새 하드웨어와 일치하도록 API를 업데이트합니다.

경우에 따라 선택의 여지가 없습니다 (예 : iPhone에서 DX를 실행할 수 없음). 그러나 종종 그것은 단지 개인적 취향/경험에 달려 있습니다. 오랜 시간 동안 그래픽 프로그래머라면 두 사람 모두에게 꽤 익숙해 져있는 경향이 있습니다 ...

+0

자세한 설명을 읽어 주셔서 감사합니다. 저에게이 두 가지에 대한 아주 명확한 그림을 보여줍니다. –

3

구글은이 라이브러리를 contrastring 좋은 Wikipedia 기사가있다 ...이 경우에 당신의 친구입니다 : Direct3D를 밖으로 오기 전에

Comparison of OpenGL and Direct3D

메모리를 제공하는 경우

는, OpenGL은 오픈 구현했다. 그런 다음 Direct3D는 OpenGL을 기반으로했지만 신속하게 갈라져서 고유 한 라이브러리가되었습니다. 내 기억이 촬영처럼

UPDATE

Direct3D를이 independtly OpenGL을 개발 한 ... 본다.

+0

Direct3D는 OGL을 기반으로하지 않았습니다 (둘 다 렌더링을 위해 동일한 기본 모델을 사용했지만). 5.0 이전의 D3D의 역사는 확실히 이상합니다 (http : // ko .wikipedia.org/wiki/Direct3D # History). – Michael

+0

Google에서 좋은 점. –

+0

ㅎ - Direct3D가되기 전에 Direct3D에서 일했습니다 ;-) 확실히 OpenGL을 기반으로하지 않았습니다 ... –

3

Direct3D와 OpenGL은 같은 것을 달성하는 데 사용되는 API가 다릅니다.

D3D와 GL의 주요 차이점은 D3D는 객체 지향이며 GL은 그렇지 않다는 것입니다. D3D9와 GLES2는 기본적으로 동일한 기능을 가지고 있습니다. 실제로 OpenGL을 사용하고 GL3 또는 GL4 기능이 필요하지 않은 경우 GLES2 API의 모든 코드를 기반으로해야합니다 (모든 GLES2 기능은 GL2에 있지만 다른 방법은 아닙니다).

멀티 스레딩 및 드라이버 지원이 불안정하기 때문에 항상 Windows에서 GL을 통해 D3D를 사용해야합니다. 예를 들어 넷북을 사용하면 ShaderModel 2에서 D3D의 HLSL을 지원하지만 GLSL에 해당하는 것을 지원하지는 않으며 GL에 대한 고정 파이프 라인 만 지원합니다.