microsoft / DirectXMesh

DirectXMesh geometry processing library
https://walbourn.github.io/directxmesh/
MIT License
764 stars 149 forks source link

Simplify Mesh #3

Open walbourn opened 9 years ago

walbourn commented 9 years ago

Simplifies a mesh using a vertex/edge decimation algorithm.

HRESULT D3DXSimplifyMesh(
  _In_   LPD3DXMESH pMesh,
  _In_   const DWORD *pAdjacency,
  _In_   const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
  _In_   const FLOAT *pVertexWeights,
  _In_   DWORD MinValue,
  _In_   DWORD Options,
  _Out_  LPD3DXMESH *ppMesh
);

Schroeder, Zarge and Lorensen “Decimation of Triangle Meshes” SIGGRAPH 1992 link

Hoppe, DeRose, Duchampy, McDonald, Stuetzle, “Mesh Optimization”, SIGGRAPH 1993 link

Hoppe, "Progressive meshes", SIGGRAPH 1996 link

This would be most useful for automatic "level-of-detail" generation, but this kind of solution is not commonly used as it lacks artist control. There are a number of simplification programs that run in the context of various art tools that might be more robust.

walbourn commented 9 years ago

The robust solution is to use something like the SimplyGon product to simplify the model within the context of an art tool.