DOI QR코드

DOI QR Code

OpenGL ES 1.1 Implementation Using OpenGL

OpenGL을 이용한 OpenGL ES 1.1 구현

  • 이환용 (경북대학교 전자전기컴퓨터학부, (주)휴원) ;
  • 백낙훈 (경북대학교 전자전기컴퓨터학부)
  • Published : 2009.06.30

Abstract

In this paper, we present an efficient way of implementing OpenGL ES 1.1 standard for the environments with hardware-supported OpenGL API, such as desktop PCs. Although OpenGL ES was started from the existing OpenGL features, it becomes a new three-dimensional graphics library customized for embedded systems through introducing fixed-point arithmetic operations, buffer management with fixed-point data type supports, completely new texture mapping functionalities and others. Currently, it is the official three dimensional graphics library for Google Android, Apple iPhone, PlayStation3, etc. In this paper, we achieved improvements on the arithmetic operations for the fixed-point number representation, which is the most characteristic data type for OpenGL ES. For the conversion of fixed-point data types to the floating-point number representations for the underlying OpenGL, we show the way of efficient conversion processes even with satisfying OpenGL ES standard requirements. We also introduced a simple memory management scheme to mange the converted data for the buffer containing fixed-point numbers. In the case of texture processing, the requirements in both standards are quite different and thus we used completely new software-implementations. Our final implementation result of OpenGL ES library provides all of over than 200 functions in OpenGL ES 1.1 standard and completely passed its conformance test, to show its compliance with the standard. From the efficiency viewpoint, we measured its execution times for several OpenGL ES-specific application programs and achieved at most 33.147 times improvements, to become the fastest one among the OpenGL ES implementations in the same category.

본 논문에서는 데스크탑과 같이 OpenGL 기능이 전용 하드웨어로 제공되는 환경을 대상으로, OpenGL ES 1.1 표준을 효율적으로 구현하는 방법을 제시한다. OpenGL ES는 기존의 OpenGL 표준을 바탕으로 하였지만, 고정소수점 연산, 이를 수용하는 버퍼 기능, 완전히 새로운 텍스처 처리 등의 도입으로, 임베디드 시스템에 특화된 3차원 그래픽스 라이브러리로 새롭게 제정되어, 구글 안드로이드, 애플 아이폰, 플레이스테이션3 등에서 공식 3차원 그래픽스 API로 채택되었다. 본 논문에서는 OpenGL ES의 특징적 자료형인 고정소수점 표현에 대한 산술 연산들을 개선하였고, 특히 고정소수점 자료형들을 부동소수점 형태로 변환하여 하위의 OpenGL API로 넘기는 과정에서 표준을 준수하면서도 효율적인 처리가 가능하도록 하였다. 새로 도입된 고정소수점 자료형을 허용하는 버퍼 기능에 대해서는 변환된 자료들을 별도의 메모리 공간에서 관리하는 방식으로 속도 향상에 중점을 두었으며, 요구 사항이 완전히 달라진 텍스처 처리 부분은 전체 기능을 별도의 소프트웨어로 완전히 새롭게 구현하였다. 최종 구현 결과인 OpenGL ES 라이브러리는 OpenGL ES 1.1 표준에 규정된 총 200여 함수를 제공하며, 표준인증 테스트를 완전히 통과하여 1.1 표준을 완벽히 만족시켰음을 보였다. 수행 속도 면에서는 OpenGL ES에 특화된 응용 프로그램들에 대한 처리 속도 측정에서 기존의 구현 사례들에 비해 최대 33.147배의 속도 향상을 가져왔으며, 동일한 범주의 구현 사례들 중에서 가장 빠른 구현 결과이다.

Keywords

References

  1. D. Blythe, OpenGL ES Common/Common-Lite Profile Specification, version 1.0.02(annotated), Khronos Group, 2004
  2. A. Malizia, Mobile 3D Graphics, Springer, 162 pages, 2006
  3. K. Pulli, T. Aarnio, V. Miettinen, K. Roimela and J. Vaarala, Mobile 3D Graphics: with OpenGL ES and M3G, 500 pages, Morgan Kaufman, Nov., 2007
  4. S. Babin, Developing Software for Symbian OS, 2nd Ed, 432 pages, Symbian Press/Wiley, 2007
  5. http://code.google.com/android/what-is-android.html
  6. http://developer.apple.com/iphone/
  7. http://www.openpandora.org/
  8. http://www.nvidia.com/object/IO_21111.html
  9. D. Astle and D. Durnil, OpenGL ES Game Development, Course Technology PTR, 320 pages, Sep., 2004
  10. 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 https://doi.org/10.1109/MCG.2005.129
  11. http://www.hu1.com/english/B-03_01.html
  12. http://www.vincent3d.com/
  13. http://wiki.mozilla.org/Canvas:3D/Historical
  14. http://www.khronos.org/developers/resources/
  15. http://www.khronos.org/
  16. A. Munshi and J. Leech, OpenGL ES Common/Common-Lite Profile Specification, version 1.1.12 (Full Specification), Khronos Group, Apr., 2008
  17. ARM, Fixed Point Arithmetic on the ARM, Application Note 33, ARM, 1996
  18. D. Hough, 'Applications of the proposed IEEE-754 standard for floating point arithmetic,' IEEE Computer, Vol.14, No.3, pp.70-74, 1981 https://doi.org/10.1109/C-M.1981.220381
  19. A. Munshi, OpenGL ES Common Profile Specification, version 2.0.23(Full Specification), Khronos Group, Aug., 2008
  20. http://www.khronos.org/adopters/
  21. http://www.3d-test.com/interviews/nvidia_4.htm
  22. http://www.arm.com/news/21889.html
  23. http://www.embeddedstar.com/press/content/2004/2/embedded13008. html
  24. http://sourceforge.net/projects/dgles
  25. http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES1xMBX.asp
  26. C.-H. Tu and B.-Y. Chen, 'The architecture of a J2ME-based OpenGL ES 3D Library', 9th Conf. on Computer Aided Design and Computer Graphics, 5 pages, 2005 https://doi.org/10.1109/CAD-CG.2005.81
  27. S. Hill, M. Robart and E. Tanguy, 'Implementing OpenGL ES 1.1 over OpenGL ES 2.0,' Int. Conf. on Consumer Electronics, pp.11-1.5, 2 pages, 2008 https://doi.org/10.1109/ICCE.2008.4587998
  28. http://elf-stone.com/glee.php