DirectXMesh (original) (raw)

A number of my projects over the past few years have been to provide modern replacements for the full range of functionality provided in the now legacy D3DX library: DirectXMath in the Windows 8.x SDK, DirectX Tool Kit and the DirectXTex texture processing libraries on CodePlex. To round out that set, I’ve created DirectXMesh for geometry processing functionality such as computing triangle adjacency, computing normals and tangent frames, and vertex cache optimization.

DirectXMesh is hosted on CodePlexGitHub. The latest version of the library, documentation, notes on future work, release history, and other information is available there.

Platforms: The code is designed to build with the Windows 8.x SDK using Visual Studio 2010, 2012, or 2013 and works on Windows Vista, Windows 7, Windows 8.x Win32 desktop, Windows Store apps, and Xbox One.

Update: Meshconvert, a sample using DirectXMesh that is a command-line tool replacement for the DirectX SDK sdkmesh conversion utility, is now available on GitHub.

Porting Notes

Here’s a handy table of equivalents for D3DX (see Living without D3DX for a complete listing):

D3DXCleanMesh Clean
D3DXComputeNormals ComputeNormals
D3DXComputeTangentD3DXComputeTangentFrameD3DXComputeTangentFrameEx ComputeTangentFrame
ID3DX10Mesh::GenerateAdjacencyAndPointReps GenerateAdjacencyAndPointReps
ID3DX10Mesh::GenerateGSAdjacency GenerateGSAdjacency
ID3DX10Mesh::Optimize AttributeSortOptimizeFacesExOptimizeVerticesReorderIBFinalizeIBFinalizeVB
D3DXOptimizeFaces OptimizeFaces
D3DXOptimizeVertices OptimizeVertices
D3DXValidMesh Validate
D3DXWeldVertices WeldVerticesCompactVB
D3DXGetFVFVertexSizeD3DXGetDeclVertexSizeD3DXGetDeclLengthD3DXDeclaratorFromFVFD3DXFVFFromDeclarator FlexibleVertexFormat.h

vcpkg: The vcpkg C++ Package Manager has a directxmesh port available.

See also: DirectXTex, DirectXTK, DirectXMath