com.io7m.r2

The com.io7m.r2 package implements an aggressively minimalist deferred rendering system.

Features

  • Deferred rendering system for rendering hundreds of dynamic light sources at a time.
  • Batched instancing for rendering large numbers of instances with one draw call.
  • Billboarded instances for rendering particle systems and foliage.
  • Dynamic spherical, directional, and projective lighting.
  • Optional specular lighting.
  • Light clip volumes for preventing light volumes from leaking.
  • Variance shadow mapping for soft-edged per-pixel shadows.
  • Artist-controllable alpha stippling for crossfading opaque instances.
  • Emission and glow filters for simulating emissive surfaces and bloom.
  • Normal mapping for per-pixel control over surface lighting.
  • Command-line tools and API to generate consistent tangent vectors for meshes for normal mapping.
  • Environment mapping for simple pseudo reflections.
  • High quality haloless screen-space ambient occlusion (SSAO).
  • Generic refraction for simulating refractive surfaces.
  • Simple forward renderer for translucent instances.
  • Logarithmic depth by default, supporting planetary-scale scenes.
  • Box blur and bilateral depth-aware blur filters.
  • Fog filters for simple postprocessed atmospheric fog.
  • FXAA antialiasing.
  • Reusable and heavily documented GLSL shader library. Integrated with sombrero for consuming and publishing shader modules.
  • Safely extensible via strongly-typed shader interfaces.
  • Scene independent: The package provides batching and does not require the user to use a complicated and error-prone scene graph or any kind of baked-in visibility determination.
  • Heavily documented including Javadoc and full design and implementation manual.
  • Strongly typed interfaces with run-time checking to catch programming mistakes early.
  • Written in pure Java 8 for platform independence.
  • Works on JOGL or LWJGL via jcanephora.
  • Works on any OpenGL 3.3 implementation.
  • High converage automated test suite.
  • ISC license.