Titus | Lighting and Rendering Evaluation
What?
Give Titus high quality AAA lighting
Focus on:
Materials
Lighting
Special considerations:
Do this in Unreal Engine version 4.22.3; custom UE4 build
Beauty corner | vertical slice
Schedule:
TBD
Estimated development time 4 weeks
x1 AAA Senior/Lead Lighting Artist
X1 Technical Artist
Why?
Upgrade Titus’ visuals to highest standards of “AAA” competitors (i.e. Uncharted 4, Last of Us II, etc.)
Improve visual experience for vertical slice
Establish new (higher) visual bar for Titus
How?
Team: (GoDemics)Independent development team comprised of industry veterans from AAA games; mostly lead and senior artists with games and film experience (specialize in Unreal Engine lighting)
Roster (for Titus):
Senior/ Lead Lighting Artists x 1
Tech Artist x 1
Experience:
Battlefield
Uncharted 2
Last of Us
Doom (2016)
Many AAA franchises...
AAA Lighting Standard Examples
Ingredients for Lighting (Technical)
Material pipeline:
Calibrated textures
“Vetted” materials
Realistic BRDF surfacing
Lighting pipeline:
Calibrated lighting
Tone mapping
Realistic light functions (tuned for accuracy)
Art Ingredients for Lighting (Non Technical)
Contrast (value)
Draw player’s eye; provide scene with interest
Depth
Prevent scene from going “flat” (what most poorly lit games suffer from); support dimensionality of the game’s world
Surface (definition)
Does the lighting make each surface distinguishable; that is, can viewer tell difference immediately between something that is dry vs. wet; stone vs. wood; soft vs. hard, smooth vs. rough; etc.
Wait… But How?
Good news!
Unreal Engine 4 supports all the aforementioned features
Bad news!
The features are like “ingredients” to a recipe; and UE4 is like a bag of groceries- you can’t just empty the bag and have a five course meal, we need to put it altogether and be great chefs for this to work!
Calibrate, Calibrate, and Then Calibrate More!
We need to do the following:
Calibrate your scene’s lighting...
Don’t stop there; you have to calibrate your entire project’s lighting- across the board! This will help the entire team be on the same page
Example of properly calibrated project lighting; note the visual fidelity of the plant and its surfacing
On the right: current uncalibrated lighting in Titus results in poor visual feedback in UE4 editors (in this example, the static mesh editor). Artists and devs will be unable to properly view and evaluate materials and textures!
Example of improperly calibrated project lighting (default UE4); note lack of surface definition and lack of details, unrealistic, among other issues
Texturing
PBR calibrated textures
Validated textures
Correct compression
Use of (wide range) shading surface data
Layer masks (used with high fidelity tiling textures)
Shading
Implementing concept of:
Dielectric surfaces
Metallic surfaces
Example of dielectric material with corresponding data maps
Lighting
Lighting needs to be completely redone in Titus:
Lighting needs to be calibrated
Previewer lighting (UE4) needs to be calibrated
Material ranges need to be validated (out of range textures break lighting)
Use of true 32bit HDRI skies for ambient lighting
Use volumetric lightmap system
Fix tonemapping (don’t use default tonemapping curve!)
Many more items...
Indirect Lighting
Flat ambient lighting:
Note the equal value and hue of lighting in the highlighted areas. In real life, light doesn’t behave this way- this is a very “video game” way of lighting, and isn’t authentic. Real ambient lighting comes from millions of directions and has subtle changes in hue and value.
Lack of (accurate) GI:
This is an example of an impossibility in nature; this would never happen. On a typical clear early afternoon day, you’ll have an EV of about 15- which would produce very distinct bounce lighting and indirect shadows.
Example of how exterior lighting works in real life, on a typical early afternoon, with clear skies. Also note the gradient of the sky.
Also note that the indirectly lit areas, are not the same value. Because light comes from so many directions, and bounces off so many surfaces, ambient light is complex and not the same value everywhere.
Skybox
To the right is the skybox texture being used in CQ_Ludus.
It’s best to have a custom 32bit HDRI skybox; custom painted/comped, removal of lens artifacts (sun flare in this case), replacement of sun in HDRI, replacement of “ground plane”, flow map support for realistic cloud movement, etc.
The current sky box material needs more features; it’s too simple/placeholder at the moment. Should include features for control of contrast, brightness, cloud movement, etc.
Many production features missing!
Post Processing
LUTs are NOT supported in the HDR rendering pipeline and should not be used, aside from lookdev.
Tonemapping (currently Titus is not properly tonemapped)
Color grading (HDR- no LUTs)Titus is using LUTs; these are great for lookdev, bad for final production!
Lens exposure (currently this isn’t setup; but it needs to be!)
Depth of Field
Atmosphere
To achieve the atmosphere in the current art direction:
Breakup lighting (opposite of the current lighting pass; lighting is currently too uniform, which looks unnatural)
Volumetric lighting needed, to be married with VFX pass
Global material pass to add more sand, grit, etc.
Color grading pass
Missing atmosphere and execution of art direction/concepts:
Lighting is uniform, uninteresting, no mood or “personality”
Lack of volumetric lighting and env fog
Surfaces are not “unified”; env fails to connect them
No color grading (this is fine since it should be avoided until final stages of lighting)
Future Tech: Raytracing
Titus RTX
Why Raytracing?
It’s the future of realtime rendering
Position Titus at the bleeding edge of innovation
Add Titus to the small list of next gen games supporting RTX (i.e. Battlefield V, Metro Exodus, etc.)
Titus can become known as a title that pushes rendering innovation forward
Final Thoughts…
Primary Goals:
For Titus to have AAA lighting on par with the top competing products in the industry
Improve lighting in vertical slice level (CQ_Ludus)
Stretch Goals:
Fix rendering pipeline
Improve material pipeline
Calibrate project lighting (global)
RTX lighting support (if interested, ask us for an example for illustrative purposes)