back to home

Untitled FPS Game

This is a quick feature overview of my custom engine and work-in-progress untitled game.

Baked Lightmaps

Static direct lighting and indirect bounce lighting information is baked into lightmaps. The current version uses raytracing hardware to perform Monte Carlo path-tracing on the GPU and calculate the bounce lighting that each surface luxel receives. Previously, I had written a slower hemicube rendering based solution: https://kevin.gd/PrebakedGlobalIllumination.html.

image 1

image 2

image 3

Light Probes

Dynamic models such as characters are illuminated using light probes baked into the levels. It uses the same Monte Carlo path-tracing shader to collect the indirect bounce lighting from the 6 directions around each light probe. The directional data gives me something similar to Valve's Ambient Cube solution in Half-Life 2. The difference in my solution is that I cache which directional light sources are visible from the light probe and use this later to know which light sources are occluded from that region in space.

Before and after model lighting with light probes

model-lighting-comparison

Level Editor

Watch Demo on YouTube

Particle System

gibs-compressed-short

Skeletal Animation

skeletal-animation

Instanced model rendering

image