This page contains papers on techniques I've used and deemed worth writing a word about for the benefit of whoever may be interested. This does not imply that all or any topics covered here are necessarily novel ideas and groundbreaking techniques, it probably just means that I consider them useful and couldn't find much or anything about them on the net so that I had to work out the details myself.

Color-based per-pixel blending of detail textures

This paper presents a method for blending any number of detail texture maps over a base map, for example when rendering terrains, based on the color of the base map. A color is assigned to each detail map instead of using a mask texture and the detail maps are blended over the base map based on the 'distance' of that color from the color of the base map at each fragment.

full text · LaTeX source · samples
Real-Time Grass (and Other Procedural Objects) on Terrain

Dense vegetation is ubiquitous in nature, but challenging to render due to its great geometric complexity. This paper presents a simple approach to vegetation rendering, based on modeling each plant separately using tessellation hardware in modern GPUs. To reduce scene complexity with as little loss in image quality as possible, we use continuous level-of-detail techniques. We do this both at the level of individual plants and the whole distribution of plants on the terrain. Additionally, we describe how to control the distribution of plants over the terrain, using a technique that does not require any additional maps, other than the terrain texture map, and supports multiple species of vegetation with little overhead. In order to leverage the flexibility afforded, we present a method of using separate tessellation and geometry programs for each vegetation species, which enables the efficient rendering of diverse vegetation, or any other objects, provided that their geometry can be generated through tessellation and geometry shaders on the GPU. The basic technique is applicable to any static triangulated mesh, but it can be adapted to the dynamic meshes typical in terrain applications. Details are given for the implementation on ROAM-based terrain.

full text and source