Microsoft DirectX 9.0

Progressive Mesh Sample


The Progressive Mesh sample illustrates how to load and optimize a file-based mesh using the Direct3D extensions (D3DX) mesh utility functions. A progressive mesh is one in which the vertex information is stored internally in a special tree that can be accessed to render the mesh with any number of vertices. This procedure is fast, so progressive meshes are ideal for level-of-detail scenarios, where objects in the distance are rendered with fewer polygons.

For more information about D3DX, refer to the Microsoft?DirectX® software development kit (SDK) documentation.


Source: (SDK root)\Samples\C++\Direct3D\ProgressiveMesh

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.
F1Shows Help or available commands.
F2Prompts the user to select a new rendering device or display mode.
ALT+ENTERToggles between full-screen and windowed modes.
ESCExits the application.
UP ARROWAdds one vertex to the progressive mesh.
DOWN ARROWSubtracts one vertex from the progressive mesh.
PAGE UPAdds 100 vertices to the progressive mesh.
PAGE DOWNSubtracts 100 vertices from the progressive mesh.
HOMEDisplays all available vertices for the progressive mesh.
ENDDisplays the minimum vertices for the progressive mesh.

Programming Notes

Many Microsoft Direct3D?samples in the DirectX SDK use file-based meshes. However, the ProgressiveMesh sample is a good example of the basic code necessary for loading a mesh. The D3DX mesh loading functionality collapses the frame hierarchy of an .x file into one mesh.

The primary reason to use progressive meshes is the call to ID3DXPMesh::SetNumVertices for the mesh.

For other samples, the basic D3DX mesh functionality is wrapped in a common class CD3DMesh. To keep the frame hierarchy, you can use the common class CD3DFile.

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.