Abstract
In this paper, we present an efficient way of implementing OpenGL ES 1.1 3D graphics API library for the environments with hardware-supported OpenGL facility, typically as desktop PCs. Although OpenGL ES was started from the existing OpenGL features, it rapidly became the standard 3D graphics library customized for embedded systems through introducing fixed-point arithmetic operations, buffer management with fixed-point data type supports, completely new texture mapping functions and others. Currently, it is the official 3D graphics API for Google Android, Apple iPhone, Sony 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 1.1. 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 specialized memory management scheme to manage the converted data from 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 of OpenGL ES library provides all of more than 200 functions in the standard specification and passed its conformance test, to show its compliance with the standard. From the efficiency point of view, we measured its execution times for several OpenGL ES-specific application programs and achieved remarkable improvements.
Similar content being viewed by others
Notes
References
Apple iPhone. http://developer.apple.com/iphone/
ARM (1996) Fixed point arithmetic on the ARM. Application note 33. ARM
Astle D, Durnil D (2004) OpenGL-ES game development (game development series). Premier Press, Budapest
Babin S (2007) Developing software for Symbian OS, 2nd edn. A beginner’s guide to creating Symbian OS v9 Smartphone applications in C+ +. Wiley, New York
Blythe D (2004) OpenGL ES common/common-lite profile specification, version 1.0.02 (annotated). Khronos Group
Google Android. http://code.google.com/android/what-is-android.html
Hill S, Robart M, Tanguy E (2008) Implementing openGL ES 1.1 over openGL ES 2.0. In: Int. conf. on consumer electronics, pp 1–2
Hough D (1981) Applications of the proposed IEEE 754 standard for floating-point arithetic. Computer 14(3):70–74. doi:10.1109/C-M.1981.220381
Hybrid. http://www.embeddedstar.com/press/content/2004/2/embedded13008.html
Imagination. http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES1xMBX.asp
Khronos Group. http://www.khronos.org/
Khronos Group Conformance Test Suites. http://www.khronos.org/adopters/
Khronos Group Reference Implementation. http://www.khronos.org/developers/resources/
Lee H, Baek N, Hahn JK (2010) OpenGL ES 1.1 software implementation on mobile phones. Accepted in IEICE Electronics Express
Malizia A (2006) Mobile 3D graphics. Springer, New York
Mozilla web browser. http://wiki.mozilla.org/Canvas:3D/Historical
Munshi A (2009) OpenGL ES common profile specification, version 2.0.24. Full specification. Khronos Group
Munshi A, Leech J (2008) OpenGL ES common/common-lite profile specification, version 1.1.12. Full specification. Khronos Group
Pandora. http://www.openpandora.org/
PlayStation3 API. http://www.nvidia.com/object/IO_21111.html
Pulli K, Aarnio T, Roimela K, Vaarala J (2005) Designing graphics programming interfaces for mobile devices. IEEE Comput Graph Appl 25(6):66–75
Pulli K, Vaarala J, Miettinen V, Aarnio T, Roimela K (2007) Mobile 3D graphics: with OpenGL ES and M3G. Morgan Kaufmann, San Francisco
Samsung Electronics. http://www.bada.com/
Tu CH, Chen BY (2005) The architecture of a J2ME-based openGL ES 3D library. In: CAD-CG ’05: proceedings of the ninth international conference on computer aided design and computer graphics. IEEE Computer Society, Washington, pp 423–427. doi:10.1109/CAD-CG.2005.81
Vincent3D. http://www.vincent3d.com/
Acknowledgements
The authors thank to Jetro Lauha, Changzhi Li and Jacobo Rodriguez Villar for their original OpenGL ES application programs, San Angeles, Dancing Flora and Jelly Fish, respectively, and their agreement on the official use of their programs in our experiments.
Author information
Authors and Affiliations
Corresponding author
Additional information
This research was supported by Basic Science Research Program through the National Research Foundation of Korea(NRF) funded by the Ministry of Education, Science and Technology (Grants 2009-0088544 and 2010-0028106).
Rights and permissions
About this article
Cite this article
Baek, N., Lee, H. OpenGL ES 1.1 implementation based on OpenGL. Multimed Tools Appl 57, 669–685 (2012). https://doi.org/10.1007/s11042-010-0662-4
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11042-010-0662-4