Decima engine: visibility in horizon zero dawn [wayback-archive]
- seperate system for statics and dynamics
- world broken into tiles
- sort key is used to define clusters
- lod ranges, filter masks
- morton numbers for spatial partioning
- tile/cluster culling on the CPU
- launch one GPU culling job for each visible tile/cluster
- gpu tasks use aggregated atomics to write wavefront results
- one atomic operation per wavefront instead of per thread
- description of batching strategies
Vulkan: Command Buffer Management [wayback-archive]
- CommandBuffer used to record GPU work
- each worker thread has one CommandPool which owns the CommandBuffer allocations
- engine CommandBuffer
- packs completed fence, target queue
- Primary + secondary command buffers
- resource descriptors
- deleteted resources
- once the fence is reached
- resources are deleted
- descriptors and command buffers are marked for reuse
Maximizing Unified Memory Performance in CUDA [wayback-archive]
- on-demand page migration from CPU to GPU memory
- linear arrays nearly 2x slower then manual pre-fetching of gpu data
- number of page faults influences performance significantly
- less page faults, better performance
- how to structure code to achieve better asynchronous memory copy overlap
Stabel 1 pixel dithering [wayback-archive]
- image rendered in greyscale
- fullscreen pass applied to convert to 1-bit dithered image
- discussion of different experiments
- ended up using a dithering pattern mapped with 2x oversampling onto a sphere
Demystifying Floating Point Precision [wayback-archive]
- how to calculate precision of floats
- table listing the precision for half/float/double in different ranges
- show precision loss problem with storing time as float
Neural 3D Mesh Renderer [wayback-archive]
- 3D mesh reconstruction from a single image
- applying 2D stylization from image to the 3D Mesh
Universal GPU texture format: DXT5 support [wayback-archive]
- ETC1 to DXT5A conversion using a lookup table
- discussion of results
- description and WebGL demo of the terrain system used in the game Comanche released in 1992
A better depth buffer for raymarching [wayback-archive]
- single depth buffer value is not enough
- need to know the depth of objects for correct effects
- stores front and backface depth of objects in R and G channel and uses that to determine the thickness
Horizon: The Frozen Wilds PS4 Pro - Tech Breakdown and Engine Analysis
- snow deformation, snow particles, animation adjustment
- in-engine visualtions for AI
- wireframe of character models
- breakdown of light passes
Dissecting “Tiny Clouds” [wayback-archive]
- breakdown and explanation of the Tiny Cloud shadertoy
Simple Curve Fitting with the Gauss-Newton Algorithm [wayback-archive]
- explanation of how to use the Gauss-Newton Algorithm to derive an approximation to the Schlick fresnel formula
cr.h: A Simple C Hot Reload Header-only Library [wayback-archive]
- open source system for hot reloading c code (written in C++)
- supports rollback to old version if an error is detected
- rewrites the .exe to point to the copied .pdb
- uses a custom data segment to mark statics for copying
- code is on github