GPU-based visualization :: Shepherd of Dreams

 

 

Shepherd of Dreams

Selected for the 2005 Slamdance Independent Games Competition

Click here to download Shepherd of Dreams (29 MB)
Requires card with Vertex Shader 1.1
 

Screenshots

 
       
Description
 

In Shepherd of Dreams your job is to guide a herd of good dreams (which resemble sheep), through the dreamworld. The dreamworld is also populated with bad dreams which try to kill both you and your flock. At your disposal is a wide variety of weapons, quite effective at dispatching bad dreams.

       
New Technologies / Techniques Demonstrated

Shaders

   
 

Environment is rendered using spherical harmonic lighting vertex shader for ultra-realistic soft shadows and subsurface scattering effects.

A refraction-based vertex shader is used to give characters a translucent effect.

An anisotropic 'ramp lighting' vertex shader is used to simulate light-scattering, giving the characters more color on their edges than in their centers.

 

User-Interface

   
 

In order to conserve screen-space, we wanted to implement a 'radar-like' game device without actually putting a radar on the screen. The solution we chose was to use subsurface scattering when computing the radience transfer for the environment. This allows light to penetrate all geometry (with some decay factor), enabling the player to see light scattered from objects which are fairly far away.

For example, the player always knows when bad dreams are approaching because bad dreams emit a reddish glow. This glow is visible even when the bad dreams themselves are offscreen - the scattered light still gets to the player. Same goes for the good dreams, which emit a green glow. In the end, this approach turned out to be pretty successful - as long as there aren't too many different types of enemies (in which case you would need more distinctive colors), scattered light works well as a psuedo-radar.