Home | History | Annotate | Download | only in angeles
      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 Lnnberg (!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 ------------------------------------------------------------------------
     78