Global Illumination explained

From Realsoft3D Wiki

Contents

Introduction

This article gives a general overview of how Global Illumination is achieved in Realsoft3D. This is a work in progress, so don't be surprised if the information is a bit scarce. Note that this is not a tutorial on GI usage. For general information on GI see http://en.wikipedia.org/wiki/Global_illumination

Pipeline

Overview

Image:GIPipe.jpg

Material

Overview

GI material
Enlarge
GI material

The GI shader renders diffuse, specular and surface color components to their respective channels.

  • Diffuse component luminosity is controlled by surface color and GI reflection
  • Specular component luminosity is controlled by GI_specularity
  • Specular component sharpness is controlled by GI_specular_sharpness
  • Specular component works pretty much like the Specular VSL object

Global Variables

  • WHITE
    • Used as a multiplier for the raytracer objects
  • contrast
    • Defines how much the surfaces are accentuated by normal direction

Material Initialization

  • Sets contrast value.

Surface Finishing

  • The main part of the shader
  • Shoots a buch of rays all around...

Secondary Ray

  • Copies the needed channel values to the ray.

User Controls

  • Raycounts
  • Contrast
  • Bounces
  • Reflection

Post Effect

Image:GIEffects.png

Overview

The post effect handles the GI filtering and compositing.

GI_effects

Post image that contains all the parts below (and then some). Scales the final image by 0.5 to compensate for the missing aa.

GI_blur

Blurs the diffuse component.

GI_blur_specular

Blurs the specular component.

GI_brightness_control

Adjusts diffuse and specular brightness and adds them to the final image.

aa_blur

Blurs the final image slightly to hide edge aliasing.

User Controls

  • Blur levels & iterations
  • diffuse curve
  • specular linear

Render Setting

The 'GI Rendering' render setting pretty much just turns off AA and sets recursions high enough for GI. AA would cause bleeding between the objects.