DOI QR코드

DOI QR Code

Implementing a set of Direct3D Functions on OpenGL

OpenGL을 이용한 Direct3D 기능의 구현

  • 도주영 (경북대학교 대학원 컴퓨터공학과) ;
  • 백낙훈 (경북대학교 IT대학 컴퓨터학부)
  • Received : 2011.08.30
  • Accepted : 2011.10.07
  • Published : 2011.11.28

Abstract

In this paper, we present an emulation library for the essential features and their API function calls provided by Direct3D, the most actively used API for computer game-related application programs on the MS-Windows-based desktop's, with OpenGL library in the Linux environment. In typical Linux-based systems, only the X window system and OpenGL graphics library are available. There are lots of needs for this kind of emulation library to convert the Direct3D-based game applications and user interfaces on these systems. Through carefully selecting the essential API functions from the DirectX version 9.0, we obtained the prototype implementation of that emulation library, to finally get the final full-scale DirectX implementation. Our implementation currently covers 3D coordinate transformations, light and material processing, texture mapping, simple animation features and more. We showed its feasibility through successfully executing a set of Direct3D demonstration programs including a real-world game character animation on our implementation.

본 논문에서는 윈도우(Windows) 기반의 데스크탑 환경에서, 특히 컴퓨터 게임에 관련된 응용 프로그램들에서 활발하게 사용되는 Direct3D가 제공하는 핵심적인 기능들과 함수들을 리눅스 환경에서 OpenGL 라이브러리를 기반으로 에뮬레이션 형태로 제공하고자 한다. 리눅스(Linux) 운영 체제 하에서는 일반적으로 X 윈도우 시스템과 OpenGL 라이브러리만 사용 가능한 컴퓨터 그래픽스 환경이 제공된다. 이 상황에서는, 우선적으로 윈도우 기반의 PC에서 Direct3D를 기반으로 개발된 게임 프로그램들이나 사용자 인터페이스 등을 컨버전하는 변환 작업에서 이러한 에뮬레이션 환경이 반드시 필요하다. 본 논문에서는 DirectX 9.0을 기준으로, 많이 사용되는 함수들을 선별하여 이들을 지원함으로써, 최종적인 전체 구현의 프로토타입을 확보하였다. 본 논문의 구현은 3차원 좌표 변환(3D coordinate transformation), 광원 및 재질(light & material), 텍스처 매핑(texture mapping), 애니메이션(animation) 등을 지원하여, 이를 이용하여 다양한 응용 프로그램 예제들과 실제 게임 캐릭터의 애니메니션 스크립트를 성공적으로 실행하여, 유용성을 입증하였다.

Keywords

References

  1. K. Pulli, T. Aarnio, K. Roimela, and J. Vaarala, "Designing graphics programming interfaces for mobile devices," IEEE CG&A, Vol.25, No.6, pp.66-75, 2005.
  2. http://code.google.com/android/what-is-android.html
  3. http://developer.apple.com/iphone/
  4. Y. H. Mirza and H. da Costa, "Introducing the New Managed Direct3D Graphics API in the .NET Framework," MSDN magazine, 2003.
  5. M. Segal and K. Akeley, The OpenGL Graphics System: A Specification, version 4.1, 2011.
  6. A. Munshi and J. Leech, OpenGL ES Common/Common-Lite Profile Specification,version 1.1.12 (Full Specification), Khronos Group, 2008.
  7. A. Munshi and J. Leech, OpenGL ES Common Profile Specification, version 2.0.24 (full specification), Khronos Group, 2009.
  8. K. Pulli, T. Aarnio, V. Miettinen, K. Roimela, and J. Vaarala, Mobile 3D Graphics: with OpenGL ES and M3G, Morgan Kaufman, 2007.
  9. M. J. Kilgard, The OpenGL Utility Toolkit (GLUT) Programming Interface, version3, Silicon Graphics Inc., 1996.