Tech Tip: Configuring specular reflections to add realism
For this month's tech tip, we'll cover how to configure your environment to make scenarios richer and more realistic by adding specular reflections to inland water. Specular effects produce the shiny, reflective water surface that you're used to seeing in the real world. Since inland water terrain is usually just a flat area of elevation with an image of water, adding specular reflections increases realism and provides an important visual cue for aircraft.
The quickest way to create a specular effect is to include the osm.waterTextures.xml to your earth file. This adds a specular image based on OpenStreetMap inland water areas. Here's what that looks like:
Let's take a closer look at the XML snippet above:
- The main block of the XML file defines an effectmap with a type of "SPECULAR_MAP". This directive generates a specular reflection effect from an image that, in this case, is generated from a vector feature layer using the FeatureImage directive.
- The <features> directive references a feature layer named data:osm-water, which contains inland water polygons. A separate file (osm.features.water.xml) contains the definition of the data:osm-water layer containing the water polygons.
- The <style> directive defines that all water polygons will receive a solid fill value of #FFFFFF (the color white) which is interpreted to mean 'produce the effect here'. Anything else not colored white will not receive the effect.
- The <profile> directive defines that the feature data is referenced to a spherical-mercator system, so that projection to the MAK Earth coordinate system can be done accurately.
So how can you extend this to use your own data? An important constraint is that only one effectmap of each type can be in an earth file. One approach is to merge your own water area features into a single file (e.g. Shapefile or Geopackage) and reference it as a feature layer. You could directly replace the <feature> line with your feature definition or make a separate feature XML file and reference it by name. (Your data may not need the spherical-mercator profile line.)
Another option is to combine your features with the OSM features. For this, you would need to define a CompositeImage with layers for the OSM FeatureImage and another FeatureImage for your features. As an example, you can look at effect.lightmap.worldwide.online.xml, which defines an effectmap using the CompositeImage approach.
Interested in learning more about specular effects or other ways to configure your world to be richer and more realistic? Let us know at