ABSTRACT:
Game programming often use simplified representations of the scene elements in order to achieve real-time performance. For instance, simple polygonal models extended with normal maps and carefully crafted textures have been used to produce some impressive results in games such as Doom 3 and Quake 4. Another successful techniques are billboards and impostors, used to replace objects at a certain distance from the camera. Billboards can represent static and animated objects, but when an animation is required, a keyframe approach has to be used. This usually requires a lot of artwork and as many textures as keyframes. In this gem, we describe a new technique to animate relief impostors based on radial basis functions (RBF). In a pre-processing step, the user specifies the animation using a set of correspondence points on the texture of the impostor. The animation is encoded using an RBF representation, which is saved into a texture. At runtime, the RBF texture is used to warp the relief texture on the GPU producing the desired animation. Our technique can animate relief impostors, billboards with normal mapping, displacement maps, or any other texture-based resolution-independent representation. All this is achieved with a simple RBF-evaluation shader function. The proposed technique can be used produce real-time realistic animations of live and moving objects undergoing repetitive motions. We will provide a gentle description of all the background required to understand and implement the technique, including shader code and a video showing our results.