This is the documentation for Enlighten.

GeoViewer on mobile

Preparing a scene

GeoViewer on mobile platforms requires appropriate texture compression formats to have been generated at the mesh conversion stage, and (for ARM/NEON) a different precompute data format.

To generate the additional mobile platform texture and precompute data using GeoRadiosity, ensure that Include mobile targets is checked when loading the scene:

And when performing the precompute:

This is equivalent to passing "/p:IncludeMobileTargets=true" to the mesh conversion and precompute generation stages of the High Level Build System (HLBS).

When mesh conversion is run on a Windows PC via GeoRadiosity or the HLBS, the scene textures are compressed to ETC format for use with GeoViewer on Android. When performing mesh conversion on OS X using the HLBS, scene textures are compressed to Imagination Technologies PVRTC format for use on iOS devices.

Loading a scene

The GeoViewer app must have been installed on a mobile device before a precomputed scene can be loaded. The installation process creates an app-specific directory structure into which scene data must be manually copied. On iOS this is the Documents directory of the app, and on Android the destination path is /mnt/sdcard/Android/data/com.geomerics.enlighten.GeoViewer/files. The image below shows a screenshot of the resulting folder structure on Android after GeoViewer has been installed and the Arches scene data copied to the correct location:

Command line options can be passed to GeoViewer on iOS when launching the app from Xcode by editing the GeoViewer scheme. Alternatively, the command line can be provided by adding it to a text file called cmd_args.txt alongside the scene data in the Documents directory of the app. Note that doing this will cause any arguments provided by Xcode to be ignored. To specify command line arguments to GeoViewer on Android, edit /mnt/sdcard/Android/data/com.geomerics.enlighten.GeoViewer/files/cmd_args.txt on the device.

Navigating the scene

While GeoViewer does not have visible virtual control sticks as GeoMobileDemo does, it is still possible to move around a scene using the touch screen. In landscape orientation, drag gestures in the bottom left corner of the screen move the camera forwards, backwards, left and right, and dragging in the bottom right corner of the screen rotates the camera.

Current limitations

  • GeoViewer on Android and iOS currently renders a given scene using just the output from the Enlighten Runtime. It does not render light from sources defined in light configuration files.
  • Half float textures are not supported on all Android devices, so GeoViewer uses the Enlighten LRB irradiance output format on Android. However, this may result in banding artifacts in the indirect lighting on some Android devices.
  • GeoViewer requires the GL_OES_depth24 OpenGL ES 2.0 extension on OpenGL ES devices.