RSSAmplifier

Blog

Chema Guerra

This is a coding blog where I post about the various projects that I am currently working on, both at work, or as an independent researcher. Most content here revolves around computer graphics and physics simulation.

brashandplucky.comRSS feed ↗10 posts

Latest posts

Procedural Island Generation (III)

Resulting terrain elevation with multi-scale noise layers and mountain peaks

Procedural Island Generation (II)

128x128 paint map defining the island's base elevation structure

Procedural Island Generation (I)

Procedurally generated terrain mesh with organic triangulation This post marks the beginning of a series on procedural island generation. I recently fell in love with Amit Patel’s brilliant polygon map generation articles, and this series will be my own exploration and interpretation of those techniques. This series assumes familiarity with computational geometry and procedural generation concepts…

Spherical Harmonics

Note: This post was written nearly 2 years ago and never published. I’m posting it now as-is, with some sections incomplete but the core content intact. This post is a quick crash course on what Spherical Harmonics are and how they can be used to efficiently encode and decode incoming radiance (i.e., a spherical view of the scene) at a point. Motivation Radiance and irradiance In the context of…

Constrained Dynamics (IV)

This post is a direct continuation to the latest entry… Part III: Constrained Dynamics (III) - Force-based constraints. …and the rest of the series: Part II: Constrained Dynamics (II) - Don’t use springs to model rigid constraints. Part I: Constrained Dynamics (I) - Unconstrained dynamics. Let’s continue where we left off and find a more compact vector/matrix form for force-based constraints.…

Constrained Dynamics (III)

This post is a continuation to the first two entries in this series: Part II: Constrained Dynamics (II) - Don’t use springs to model rigid constraints. Part I: Constrained Dynamics (I) - Unconstrained dynamics. Constrained dynamics (recap) In a system where masses (particles) are ruled by newtonian dynamics (forces/accelerations), “constrained dynamics” is the ability to enforce custom…

Constrained Dynamics (II)

This post is a continuation to the first entry in this series: Part I: Constrained Dynamics (I) - Unconstrained dynamics. Constrained dynamics We left off with a single unconstrained particle in free-fall. In order to build more interesting setups we need to define rules that constrain the motion of the particle in a certain desired way. For example, a rigid-arm pendulum could be modeled with a…

Constrained Dynamics (I)

I am starting a mini-series of posts that go through the mathematical derivation necessary to build a minimal physics engine with support for constrained dynamics. This first post is about unconstrained dynamics, using a free-falling particle as an example. Upcoming posts will describe constrained dynamics, then build a (single-constraint) pendulum, and finally a (multi-constraint)…

Reprojection Temporal Anti-Aliasing

Recently I dived into the rabbit-hole of real-time anti-aliasing techniques and ended up implementing Reprojection-based Temporal Anti-Aliasing. Here’s my TAA prototype, in Shadertoy form: Shadertoy: Reprojection Temporal AA I am not embedding the shadertoy here to avoid web browser crashes. So here’s a recording instead: From Wikipedia: “Temporal anti-aliasing (TAA) … combines information from…

Tiny path tracing in 2D

This is a tiny pixelshader-only 2D path tracing engine. In my (little) spare time I’ve been writing a small C++ videogame/real-time engine and am doing some little experiments from time to time. The fragment shader here does stochastic PT and NEE, and MIS to weigh both. The rays and scene obstacles are all in 2D (line segments and rectangles). The 2 moving cubes are controlled by a gamepad, and…