Rendering
I worked as a rendering programmer on Saints Row (2022), primarily in particles, VFX, accessibility, materials, and optimization. Here's a sample of my rendering work:
The most advanced high contrast mode ever shipped
- Adjustable highlights: outline or fill
- Toggleable greyscale filter
- Full color customization
- Automatic exposure - bright or dark, you can always see!
FPS gains with adaptive quality
- Automatically tunes all display settings
- Maximizes framerate and quality
- Custom high-dimensional control system
Deformable undergrowth
- Deforms to people, animals, and vehicles
- Bounce spring motion
- Deforms in movement direction
Weather control with ease
- Fully artist adjustable toolchain
- Allows custom particles, sky settings, and prefab spawning
- Data driven open world, with scripted mission support
- Probabilities automatically set by desired states per user experience
Advanced particle systems
- High order interpolation for Gen8 hardware
- Correctly oriented ribbons along camera axis
- Fast robust parameter randomization
- And more: turbulence, velocity, blending, optimization
I did much of the particle system work in Saints Row. For ribbons, I added non-linear frame interpolation for smoother blends when framerate is not consistent. I also added view orientation adjustment, to break vertex welding when on-axis views would force interpolation out of the ribbon axis. I wrote scripts and tools to migrate all of our single dimension turbulent particles systems to a 3D turbulence model. I also improved velocity inheritance, frame emission spacing, property randomness, and orientation interpolation.
Other work
I implemented Saints Row's borderless window mode and added variable refresh rate support. My method scales the game's render resolution, so the user could reduce resolution for increased performance, while maintaining the benefits of a fullscreen window and not doing a mode switch out of their desktop resolution. When a principal programmer left Volition, I took over the design and implementation of the PC launcher tool for users to select their graphics API. I created a small, minimally dependent executable that could still use game resources and localization.