Catmull-Rom (left) vs bilinear (right) interpolation

A new technique is introduced that can do Catmull-Rom interpolation in 2D using only four bilinear samples instead of 16 fetches. This is made possible by preprocessing the input data using a specific sign-flipping scheme, and modifying the interpolation weights and locations accordingly.

Ballistic trajectories

Having enemies throw grenades or launch projectiles in games often requires some form of trajectory planning in order to find the best launch moment, speed and angle. This research paper proposes a novel and practical approximation of 2D and 3D trajectories with drag and wind, which allows for very efficient trajectory planning as shown through a number of included examples. Includes an open source Unity3D implementation and demonstration.

Figure 12. Cylindrical ratio 1:1.

Using a virtual camera with a large FOV can cause objectionable distortion near the screen’s edges. This article introduces a novel barrel distortion post effect that may be used to reduce stretch in this case. The effect can be controlled through multiple tweakable parameters, and requires only 2 additional instruction slots of a post effect’s fragment shader.

Fixed-step discrete probability distribution

The Bernoulli distribution can be generalized to support more than two discrete states, where each state’s probability is generated by linearly interpolating between two given extremes, evenly dividing the difference from one extreme to the other. This article describes the properties of this discrete staircase distribution, together with a method to generate random samples from it in constant time.

Scape terrain editor

Finally, the Scape terrain editor prototype is now officially open sourced and freely available for download! This article on Scape is meant to provide an aggregated collection of links to previously published documentation and downloads, as well as to the new source code and binary package downloads.

Scape terrain editor

In this fourth article on the Scape terrain editor, the actual brush-based editing pipeline is described from beginning to end, which uses either the CPU or the GPU to update the areas affected by a user’s brush strokes. Besides many pipeline optimization details, it also covers Scape’s direction noise feature.

Scape terrain editor

This is the third article in the series on Scape, a GPU-based terrain editor, picking up where I left off in the previous article on procedural noise techniques. In this article, I’ll discuss two novel procedural noise-mixing algorithms that are capable of generating terrain types that seem to be heavily eroded.

Scape terrain editor

This is the second article in a series on the Scape terrain editor, covering the first (and simpler) half of the procedural algorithms behind Scape’s brushes, including its optimized pixel shader Perlin noise and the more common turbulence functions used internally to edit heightfields on the GPU.

Scape terrain editor

Scape is a heightfield terrain editor I developed as part of my thesis work at W!Games in 2008. It allows the user to sculpt large terrains using procedural brushes in real-time, using GPGPU techniques for the bulk of the work. In this first article on Scape, its (procedural) terrain rendering techniques are explained.

Super Nova: screenshot 1

Super Nova is a ‘planet’ generation experiment gone berserk. Rendering almost half a million particles on the ever-changing surface of an extremely perturbed sphere while flying around and through it creates a quite interesting visual display. Freely available as a screensaver for Windows.