Other interesting stuff and programming

HDR tone mapping using the CUDA programming environment [package]
I have been playing around quite seriously with the CUDA programming environment. There is a little app called cudaGLview that reads HDR imaging data and applies tone mapping operators to it. GPGPU processing allows to do this in realtime with up to 2 gigapixel per second.

The intention of this experiment was to learn about memory bandwidth and processing resource allocation on DX10-style graphics cards. The CUDA environment provides a very convenient yet much more detailled view than before on the hardware. Check it out!

The code is released on SourceForge for the Linux platform.
SourceForge.net Logo

TeReX - Special topics in terrain rendering [archive]
Lately, I am back to terrain rendering. I am looking for solutions to common problems in displaying aerial images on sampled heightfields. You all know these techniques from terrain viewers like Google Earth.

The work focuses on improving the visual quality of the terrain. The TeReX renderer uses the tiling approach from Jens Schneiders Terrain paper with a number of improvements:

  • each tile is meshed into a single triangle strip; no need for primitive restart tokens
  • the tiles are managed by a caching system that feeds the GPU with necessary geometry and texture LOD data with a look-ahead estimation of the camera movement
  • the tile texturing can overlay several textures (for annotations, roads and other infrastructure from topographic maps)
  • the renderer can project planar geometry (road splines, buildings) onto the heightfield
  • the renderer can show GPS tracking data
  • support for processing data from an HRSC device
TeReX has been used for displaying the heighfields in the river simulation project (image on the left).

Recent features under development:

Fighting the curtain effect
Because the terrain textures are usually photographed from far above with the camera pointing straight down, vertical surfaces like the walls of a house or the lower leafs of vegetation are not visible. When rendering them on a heightfield, these vertical surfaces look like curtains.
The HRSC device is a scanning camera that has additional side channels that are usually used to reconstruct a heightfield. Because these channels look "ahead" and "backwards" with an angle, they can see the side views of objects. The TeReX renderer can look at the orientation of the triangles of the heightfield and chooses the two best projecting views with a weighted blend. The channels are greyscale, so it needs to synthesize color from the nadir (= straight from above) view using a LAB color model calibrated to a D65 source. The reconstruction is performed entirely in a GPU shader.
See the images in the archive for an example of how views of house facades and trees are improved.