ABSTRACT

A graphical user interface (GUI) is the preferred type of user interface (UI). It provides more intuitive visual components with images or animations, as opposed to a text-based interface. Such a GUI is essential for both graphics applications (for example, games) and non-graphics applications (for example, a phonebook). It should offer us convenience as well as beauty. With advancement of embedded systems, UI design shows a trend toward presenting three-dimensional graphical looks. Because the UI is a fundamental component for all applications, a UI engine should provide high performance and low memory consumption. The major mission of our UX development group at INNOACE Co., Ltd., is developing an optimized three-dimensional UI engine and an authoring tool for various mobile devices to maximize user experience. Our core engine supports two-dimensional and

three-dimensional widgets, scene management, resource management, TrueType font rendering, three-dimensional transition, visibility culling, occlusion culling, widget caching, partial rendering, etc. Based on this core engine, we migrated our UI engine to various platforms, for example LINUX, Windows Mobile, Android and GPOS. We developed a hardware renderer based on OpenGL ES 2.0 for highend smartphones and PMPs, and a software renderer for common mobile phones. This article presents practical optimization methods for a three-dimensional UI engine based on OpenGL ES 2.0 with our development experience (see Figure 4.1). However, we expect some features of our core engine would be useful for OpenGL ES 1.1 or software renderers.