Skip to content

Meshconvert

Chuck Walbourn edited this page Sep 19, 2017 · 24 revisions

This DirectXMesh sample is an implementation of the meshconvert command-line utility from the DirectX SDK using DirectXMesh rather than D3DX. This tool imports geometry and prepares it for runtime use including generating normals and tangent frames, performing vertex-cache optimization, and writing it to a file format suited for runtime use.

The original tool imported from legacy X files. This version imports from Wavefront OBJ or VBO files.

Syntax

Meshconvert.exe uses the following command syntax:

meshconvert [-r] [-n | -na | -ne] [-t | -tb] [-cw] [-op] [-c] [-ta | -ga]
[-sdkmesh | -cmo | -vbo] [-nodds] [-flip] [-flipu] [-flipv] [-flipz]
[-o <filename>] [-y]
[-nologo] [-flist <filename>]
<file-name(s)>

The file-name parameter indicates the file(s) to convert.

The optional command-line switches are described in the following table.

Optional Switches Description

-r: Input file names can contain wildcard characters (? or *). If this switch is used, subdirectories are also searched.

-n: generate normals weighted by angle
-na: generate normals weighted by area
-ne: generate normals weighted equally

-t: generate tangents.
-tb: generate tangents and bi-tangents (aka bi-normals).

-cw: faces are clockwise (defaults to counter-clockwise) for generating normal

-op: vertex cache optimize the mesh (implies -c)

-c: mesh cleaning including vertex duplication for attribute sets.

-ta: when generating adjacency use topological adjacency (the default)
-ga: when generating adjacency use geometric adjacency (uses epsilon of 1e-5f)

-sdkmesh: output an .SDKMESH file (the default)
-cmo: output a .CMO file (requires normals, tangents and texture coordinates).
-vbo: output a .VBO file (requires normals and texture coordinates).

-nodds: prevents extension renaming in exported materials. By default, texture filenames are converted from an existing image extension to .dds assuming they are going to be processed by 'texconv'. This flag prevents the renaming and leaves the original extension.

-flip: reverses the winding of faces
-flipu: inverts the u texture coordinate
-flipv: inverts the v texture coordinate (Direct3D vs. OpenGL image orientation)
-flipz: negates the z component (RH vs. LH view systems)

-o filename: specifies output filename which is otherwise generated from the input file name. Use of this switch supports only one input file.

-y: overwrite existing output file if any. By default, the tool will abort if the output file already exists.

-nologo: suppress copyright message.

-flist filename: Uses the provided filename as a text file containing a list of input files (one per line). Ignores lines that begin with # (used for comments). Does not support providing additional command-line arguments or the use of filename wildcards.

Example

meshconvert cup.obj -n -op

This loads the geometry in a Wavefront OBJ file 'cup.obj', generates normals (using weight by angle), performs vertex-cache optimization, and then writes the result to cup.sdkmesh.

For Use

  • Universal Windows Platform apps
  • Windows desktop apps
  • Windows 11
  • Windows 10
  • Windows 8.1
  • Xbox One
  • Xbox Series X|S
  • Windows Subsystem for Linux

Architecture

  • x86
  • x64
  • ARM64

For Development

  • Visual Studio 2022
  • Visual Studio 2019 (16.11)
  • clang/LLVM v12 - v18
  • GCC 10.5, 11.4, 12.3
  • MinGW 12.2, 13.2
  • CMake 3.20

Related Projects

DirectX Tool Kit for DirectX 11

DirectX Tool Kit for DirectX 12

DirectXTex

DirectXMath

Tools

Test Suite

Content Exporter

DxCapsViewer

See also

DirectX Landing Page

Clone this wiki locally