• Register

The Drag[en]gine is a fully customizable game engine and game development environment designed with modularity and extensibility in mind not requiring expensive licenses.

Post news Report RSS Camera Adapted Emissivity Intensity

Improved Tone-Mapping and added "Camera Relative Emissivity Intensity" solving lighting problems.

Posted by on

Something in between while waiting for the Demo.

Improved Tone-Mapping and added "Camera Relative Emissivity Intensity" solving lighting problems.

Tone-Mapping preserves colors now better. No more Reinhard but modified Uchimura. Modification removes the annoying wash-out to white which plagues many filmic curve tone mappers (including Uchimura). The modified version is more linear and avoids the heavy white-out.

Especially improved the automatic exposure adjustment. Many implementations suffer from wrong scene average luminance estimation causing white-out when looking at dark objects or oscillation effects. These problems are solved now by calculating the scene average luminance using pure lighting contribution only instead of the final rendered scene. As a result the estimation is much more stable as you can see in the video below.

Also the new texture property emissivity.camera.adapted solves the problems with emissivity effects like displays to read, particles and beams not matching intensity with tone mapping. Without this property these effects can be too faint at day-light (if adjusted to night-light) or washed out to white with lots of blooming (if adjusted to day-light). With this property the emissivity is adjusted by the Graphic Module to keep a relative intensity. Problem solved and this without lots of manual fine tuning or giving in to limitations.

The video below shows this on the example of the player smartphone in harsh day light and night time.


And this is the skin used for the display (minus comments that is):

<?xml version='1.0' encoding='UTF-8'?>
<skin>
   <!-- Texture used to show content set at run-time -->
   <texture name='screen'>
      <!--
      Color used by light sources, a dark grey color close to black.
      Without emissivity this is rendered.
      -->
      <color property='color' r='0.1' g='0.1' b='0.1'/>
 
      <!--
      Reflectance and roughness. Lower than usual reflectivity to
      ease viewing content. 0 roughness produces glass like sharp
      reflections.
      -->
      <value property='reflectivity'>0.1</value>
      <value property='roughness'>0</value>
 
      <!--
      Screen content shown by emission. Sets renderable to allow
      content to be set at run-time.
      -->
      <color property='emissivity' renderable='screen'/>
 
      <!--
      The emissivity intensity is set to "0.5". By using relative
      intensities this represents 50% intensity compared to the
      maximum intensity the rendered image is tone mapped to.
      0.5 is a good value keeping colors from washing out while
      still being well perceptible by the player.
      -->
      <value property='emissivity.intensity'>0.5</value>
      <value property='emissivity.camera.adapted'>1</value>
   </texture>
</skin>

All this is part of the upcoming 1.4 Release.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: