Procedural Island Generation (III)

Adding multi-scale noise layers, mountain distance fields, and elevation blending to create detailed terrain from the paint map foundation.


Procedural Island Generation (II)

Creating terrain elevation with a paint map system, mountain ridges, and custom color gradients for natural-looking procedural islands.


Procedural Island Generation (I)

Building the foundation for procedural island generation with Voronoi diagrams, Delaunay triangulation, and a paint map system for terrain specification....


Spherical Harmonics

A math tool you can use to encode/decode the radiance arriving at a point with just a few coeffs.


Constrained Dynamics (IV)

Direct continuation to the force-based constraint posts: Systems of constraints.


Constrained Dynamics (III)

A new entry in my constrained dynamics series. Force-based constraints.


Constrained Dynamics (II)

A new entry in my constrained dynamics series. Springs are a no-go for constraints.


Constrained Dynamics (I)

Introductory entry in my series of posts about constrained dynamics.


Reprojection Temporal Anti-Aliasing

Description and full Shadertoy implementation of a TAA system.


Tiny path tracing in 2D

Cutsie prototype for tiny path-tracing 2D platformer.


Wool flyaways

Experiments in wool flyaways for Maverick Render's hair/fur system.


u32 to f32 in [0..1)

On correctly squeezing an unsigned 32-bit value into [0..1).


Micro-Patch Displacement Mapping

An overview of Maverick Render's new Micro-Patch Displacement Mapping system.


Diffraction vs. Multi-resolution

Comparison of diffraction effects in Maverick Render at multiple resolutions.


Flyby heatmaps (i)

Some technical flybys from Maverick Render's displacement mapping system.


Glare/Bloom versatility in Maverick

Miscellaneous examples of diffraction effects in Maverick Render.


Bessel functions

The math of vibrating membranes.


Fourier Transform of a unit pulse

Mathematical derivation of the Fourier Transform when the input signal is a unit pulse.


Playing with the Fourier Transform (II)

What happens to the Fourier Transform when you apply affine transforms to the input signal?


The Avalanche effect

Full Shadertoy implementation of an avalanche effect tester for 32-bit hash functions.


Recent developments in Maverick Render

Recent developments in Maverick Render.


Octahedron unit-vector encoding

Different methods of encoding an unit-vector into fewer bits than just 3 floats.


Barycentric coords in triangle sweeps

An encounter with cubic equations when doing raytracing in swept triangles.


QRNs in the unit square/disk/sphere

Transforming pairs of [0..1) numbers between the unit square and the unit sphere.


Recklessly encoding int as float

Is it ok to recklessy cast int/float? Surprisingly yes... To some extent.


Viewport baked PBR materials

An easy and super-efficient method to fake PBR materials on a 3D viewport.


Trimmed NURBS

Beginnings of my own NURBS tessellation system.


Lattice-Boltzmann Method (LBM)

The Lattize-Boltmann Method implemented a Unity compute shader.


Colorful pet project

A colorful 3D SDF modeling pet project I started as a Unity asset.


Topology fun

A topology library I started as a Unity asset.


Old MLT experiments

Some old MLT visualizations and examples in Arion Render.


Unbiased spanning-tree generation

A colorful visualization of spanning-trees, erm... classic mazes.


Random-walk SSS

An old visualization of random-walk SSS.


Legendre polynomials

Legendre polynomials because... Why not?


Playing with the Fourier Transform (I)

What happens to the Fourier Transform when we transform the input signal.


Filling of missing image pixels

A pyramidal algorithm to reasonably complete and incomplete image.


Uniform vs. stratified

Uniform random numbers vs. stratified series.


Scrambled Halton

Scrambled Halton series as obfuscated in Arion Render.


Hosek & Wilkie sky model

Comparison of classic sky models as used in fryrender/Arion/Maverick Render.


Sobel operator

An introduction to the Sobel operator.


The Error function (erf)

On the mysterious erf() math function.


Downsampling and Gaussian blur

Approximating large gaussian blurs taking advantage of prior downsampling.


Diaphragm and f-stop

A classic diagram in photography.


Glare patterns

Aperture, glare patterns, and such.


My latest running shoes

My latest running shoes on display.


Fast convolutions (III)

Exploring the algorithmic complexity of convolutions.


Fast convolutions (II)

Exploring the algorithmic complexity of convolutions.


Fast convolutions (I)

Exploring the algorithmic complexity of convolutions.


Point-Spread Functions & Convolutions

An introduction to the duality of PSFs and convolutions.


Circular & radial blur

Some details on the implementation of circular and radial blur.


Anatomy of a PE

An introduction to Microsoft's Portable Executable specification.


Code fortification

Some useful links on the subject of code fortification.


Index-Of-Refraction

Visualization of IOR.


The cosine lobe

Visualization of the cosine lobe.


Hello again!

Resurrecting the coding blog that I started in 2011.