Microsoft DirectX 9.0

Bump Waves Sample


The Bump Waves sample demonstrates the bump mapping capabilities of Microsoft?Direct3D? Bump mapping is a multitexture-blending technique that renders the appearance of rough, bumpy surfaces. This sample renders a waterfront scene with only four triangles. The waves in the scene are completely fabricated with a bump map.

Not all cards support all features for bump mapping techniques. Some hardware has no, or limited, bump mapping support. For more information about bump mapping, refer to the Microsoft DirectX® software development kit (SDK) documentation.

This sample also uses a technique called projected textures, which is a texture-coordinate generation technique and is not the focal point of the sample. For more information about texture-coordinate generation, see Bump Mapping.


Source: (SDK root)\Samples\C++\Direct3D\BumpMapping\BumpWaves

Executable: (SDK root)\Samples\C++\Direct3D\Bin

User's Guide

The following table lists the keys that are implemented. You can use menu commands for the same controls.

ENTERStarts and stops the scene.
SPACEBARAdvances the scene by a small increment.
F2Prompts the user to select a new rendering device or display mode.
ALT+ENTERToggles between full-screen and windowed modes.
ESCExits the application.

Programming Notes

A bump map is a texture that stores the perturbation data. Bump mapping requires two textures. One is an environment map, which contains the lights that you see in the scene. The other is the actual bump mapping, which contain values—stored as du and dv—used to bump the environment map's texture coordinates. Some bump maps also contain luminance values to control the shininess of a particular texel.

In this sample, bump mapping is used to generate waves in a scene. The backdrop is used as a projective texture for the environment map, so it reflects in the waves. The waves themselves appear to be generated with many polygons. However, it is one large quad.

This sample uses common DirectX code that consists of programming elements such as helper functions. This code is shared with other samples in the DirectX SDK. You can find the sample framework headers and source code in (SDK root)\DXSDK\Samples\C++\Common\Include and (SDK root)\DXSDK\Samples\C++\Common\Src.

© 2002 Microsoft Corporation. All rights reserved.