Boid Space — Shader System
Shader Dev · Real-time

Boid Space — Shader System

TypePersonal Project
EngineUnity URP
LanguageHLSL

A shader system for a boid-based space simulation — 2D planet sprites that needed to feel three-dimensional without the cost of actual 3D geometry. The goal was rich visual quality at minimal render budget.

Each planet shader combines several techniques: FBM (fractal Brownian motion) noise for surface texture variation, directional lighting with atmosphere glow, optional rings rendered as 2D imposters, and Bayer dithering for a retro palette-constrained look. All parameters are driven per-instance via MaterialPropertyBlock so thousands of planets can share a single draw call.

The interesting constraint: boids need to be visually distinct from each other at a glance while remaining legible at small sizes. That tension — expressive at large, readable at small — pushed me toward procedural approaches over hand-authored textures. The shader ended up being more interesting than the boids.

Tech Stack
HLSL Unity URP FBM Noise Bayer Dithering MaterialPropertyBlock Procedural Textures