1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- ------------------------------------------------------------------------
- San Angeles Observation OpenGL ES version example
- Copyright 2004-2005 Jetro Lauha
- Web: http://iki.fi/jetro/
- See file license.txt for licensing information.
- ------------------------------------------------------------------------
- This is an OpenGL ES port of the small self-running demonstration
- called "San Angeles Observation", which was first presented in the
- Assembly'2004 event. It won the first place in the 4 KB intro
- competition category.
- The demonstration features a sightseeing of a futuristic city
- having many different kind of buildings and items. Everything is
- flat shaded with three different lights.
- The original version was made for desktop with OpenGL. It was
- naturally heavily size optimized in order to fit it in the size
- limit. For this OpenGL ES version example much of the code is
- cleaned up and the sound is removed. Also detail level is lowered,
- although it still contains over 60000 faces.
- The Win32 (2000/XP) binary package of original version is
- available from this address: http://jet.ro/files/angeles.zip
- First version of this OpenGL ES port was submitted to the Khronos
- OpenGL ES Coding Challenge held in 2004-2005.
- As a code example, this source shows the following:
- * How to create a minimal and portable ad hoc framework
- for small testing/demonstration programs. This framework
- compiles for both desktop and PocketPC Win32 environment,
- and a separate source is included for Linux with X11.
- * How to dynamically find and use the OpenGL ES DLL or
- shared object, so that the library is not needed at
- the compile/link stage.
- * How to use the basic features of OpenGL ES 1.0/1.1
- Common Lite, such as vertex arrays, color arrays and
- lighting.
- * How to create a self contained small demonstration
- application with objects generated using procedural
- algorithms.
- As the original version was optimized for size instead of
- performance, that holds true for this OpenGL ES version as
- well. Thus the performance could be significantly increased,
- for example by changing the code to use glDrawElements
- instead of glDrawArrays. The code uses only OpenGL ES 1.0
- Common Lite -level function calls without any extensions.
- The reference OpenGL ES implementations used for this application:
- * Hybrid's OpenGL ES API Implementation (Gerbera) version 2.0.4
- Prebuilt Win32 PC executable: SanOGLES-Gerbera.exe
- * PowerVR MBX SDK, OpenGL ES Windows PC Emulation version 1.04.14.0170
- Prebuilt Win32 PC executable: SanOGLES-PVRSDK.exe
- Note that DISABLE_IMPORTGL preprocessor macro can be used
- to specify not to use dynamic runtime binding of the library.
- You also need to define preprocessor macro PVRSDK to compile
- the source with PowerVR OpenGL ES SDK.
- The demo application is briefly tested with a few other OpenGL ES
- implementations as well (e.g. Vincent, GLESonGL on Linux, Dell
- Axim X50v). Most of these other implementations rendered the demo
- erroneously in some aspect. This may indicate that the demo source
- could still have some work to do with compatibility and correct
- API usage, although the non-conforming implementations are most
- probably unfinished as well.
- Thanks and Acknowledgements:
- * Toni Lönnberg (!Cube) created the music for original version, which
- is not featured in this OpenGL ES port.
- * Sara Kapli (st Rana) for additional camera work.
- * Paul Bourke for information about the supershapes.
- ------------------------------------------------------------------------
|