The Android Open Source Project | edbf3b6 | 2009-03-03 19:31:44 -0800 | [diff] [blame^] | 1 | ------------------------------------------------------------------------
|
| 2 | San Angeles Observation OpenGL ES version example
|
| 3 | Copyright 2004-2005 Jetro Lauha
|
| 4 | Web: http://iki.fi/jetro/
|
| 5 | See file license.txt for licensing information.
|
| 6 | ------------------------------------------------------------------------
|
| 7 |
|
| 8 | This is an OpenGL ES port of the small self-running demonstration
|
| 9 | called "San Angeles Observation", which was first presented in the
|
| 10 | Assembly'2004 event. It won the first place in the 4 KB intro
|
| 11 | competition category.
|
| 12 |
|
| 13 | The demonstration features a sightseeing of a futuristic city
|
| 14 | having many different kind of buildings and items. Everything is
|
| 15 | flat shaded with three different lights.
|
| 16 |
|
| 17 | The original version was made for desktop with OpenGL. It was
|
| 18 | naturally heavily size optimized in order to fit it in the size
|
| 19 | limit. For this OpenGL ES version example much of the code is
|
| 20 | cleaned up and the sound is removed. Also detail level is lowered,
|
| 21 | although it still contains over 60000 faces.
|
| 22 |
|
| 23 | The Win32 (2000/XP) binary package of original version is
|
| 24 | available from this address: http://jet.ro/files/angeles.zip
|
| 25 |
|
| 26 | First version of this OpenGL ES port was submitted to the Khronos
|
| 27 | OpenGL ES Coding Challenge held in 2004-2005.
|
| 28 |
|
| 29 | As a code example, this source shows the following:
|
| 30 | * How to create a minimal and portable ad hoc framework
|
| 31 | for small testing/demonstration programs. This framework
|
| 32 | compiles for both desktop and PocketPC Win32 environment,
|
| 33 | and a separate source is included for Linux with X11.
|
| 34 | * How to dynamically find and use the OpenGL ES DLL or
|
| 35 | shared object, so that the library is not needed at
|
| 36 | the compile/link stage.
|
| 37 | * How to use the basic features of OpenGL ES 1.0/1.1
|
| 38 | Common Lite, such as vertex arrays, color arrays and
|
| 39 | lighting.
|
| 40 | * How to create a self contained small demonstration
|
| 41 | application with objects generated using procedural
|
| 42 | algorithms.
|
| 43 |
|
| 44 | As the original version was optimized for size instead of
|
| 45 | performance, that holds true for this OpenGL ES version as
|
| 46 | well. Thus the performance could be significantly increased,
|
| 47 | for example by changing the code to use glDrawElements
|
| 48 | instead of glDrawArrays. The code uses only OpenGL ES 1.0
|
| 49 | Common Lite -level function calls without any extensions.
|
| 50 |
|
| 51 | The reference OpenGL ES implementations used for this application:
|
| 52 | * Hybrid's OpenGL ES API Implementation (Gerbera) version 2.0.4
|
| 53 | Prebuilt Win32 PC executable: SanOGLES-Gerbera.exe
|
| 54 | * PowerVR MBX SDK, OpenGL ES Windows PC Emulation version 1.04.14.0170
|
| 55 | Prebuilt Win32 PC executable: SanOGLES-PVRSDK.exe
|
| 56 |
|
| 57 | Note that DISABLE_IMPORTGL preprocessor macro can be used
|
| 58 | to specify not to use dynamic runtime binding of the library.
|
| 59 | You also need to define preprocessor macro PVRSDK to compile
|
| 60 | the source with PowerVR OpenGL ES SDK.
|
| 61 |
|
| 62 | The demo application is briefly tested with a few other OpenGL ES
|
| 63 | implementations as well (e.g. Vincent, GLESonGL on Linux, Dell
|
| 64 | Axim X50v). Most of these other implementations rendered the demo
|
| 65 | erroneously in some aspect. This may indicate that the demo source
|
| 66 | could still have some work to do with compatibility and correct
|
| 67 | API usage, although the non-conforming implementations are most
|
| 68 | probably unfinished as well.
|
| 69 |
|
| 70 | Thanks and Acknowledgements:
|
| 71 |
|
| 72 | * Toni Lönnberg (!Cube) created the music for original version, which
|
| 73 | is not featured in this OpenGL ES port.
|
| 74 | * Sara Kapli (st Rana) for additional camera work.
|
| 75 | * Paul Bourke for information about the supershapes.
|
| 76 |
|
| 77 | ------------------------------------------------------------------------
|