FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Mobility
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
May 16, 2006
OpenGL & Mobile Devices

Real-time 3D graphics for handheld devices

(Page 1 of 5)
Richard S. Wright, Jr.
OpenGL is the de facto standard for cross-platform real-time 3D graphics. OpenGL ES extends these capabilities to mobile devices.
Richard writes science visualization and educational software at Starstone Software Systems and teaches OpenGL programming at Full Sail Real World Education. He can be reached at rwright@starstonesoftware.com.


When it comes to games, visualization, and even video-stream processing, OpenGL is the de facto standard for cross-platform real-time 3D graphics. So when I first heard that OpenGL was being adapted for things like cell phones and PDAs, I was, well, skeptical. After being spoiled by workstation-class 3D graphics, going back to software rendering on a display half the size of a note card was underwhelming, to say the least.

Two things changed my mind—Sony's PSP and Nintendo's GameBoy DS. When I saw their displays, I knew 3D hardware in handheld devices was a reality. For the first time, I had a real reason to dive into OpenGL ES, a royalty-free, cross-platform API for full-function 2D and 3D graphics for the "embedded space" (www.khronos.org/opengles). About the same time I was working to incorporate OpenGL ES into my OpenGL class at Full Sail (www.fullsail.com), I was also working with Software Bisque (www.bisque.com) on some OpenGL-based astronomy projects. NVidia heard what we were up to and contacted us about moving TheSky Pocket Edition to OpenGL ES-enabled platforms. NVidia supplied me with a development kit (developer.nvidia.com/page/handheld.html), which included the Gizmondo handheld gaming unit. Alas, the company behind the unit is gone, but the Gizmondo still proved to be a valuable prototyping and evaluation tool. Getting something running on the Gizmondo was straightforward because it runs on Windows CE, which lets me use Microsoft's Embedded Visual C++.

The Gizmondo is not a Pocket PC or PDA—it was solely intended as a handheld gaming device—so there are a few hurdles most PDA developers are spared. For instance, I had to use a special "Developers" version of the USB driver to form a regular partnership with the device and copy files back and forth to protected areas. There was also a special program that had to be integrated into Embedded Visual C++'s build steps to digitally sign the executables, or the Gizmondo would not execute them.

The Gizmondo unit contains a 400-MHz ARM9 CPU, and has 64 MB of RAM. The 320×240, 16-bit color (5-6-5 dither) display was driven by a 72-MHz NVidia GoForce 4500 3D GPU, which supports OpenGL ES 1.0 with some extensions. This is more power than was available when 3D games first came to PCs, and I was eager to see my first 3D program running on a handheld device.

1 OpenGL & Mobile Devices | 2 Using the EGL Interface | 3 OpenGL ES: A Subset of OpenGL | 4 Results | 5 Mobile Phones Get Smaller, Software Builds Get Bigger Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK