-
Notifications
You must be signed in to change notification settings - Fork 152
Meshconvert
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 Object (OBJ) or VBO files.
Meshconvert.exe
uses the following command syntax:
meshconvert [options] [--file-list <filename>] <file-name(s)>
The file-name parameter indicates the file(s) to convert.
The command-line parsing uses Windows-style
-
or/
for options. It also has some POSIX-like behavior: it supports--version
and--help
command-line options, and the use of--
disables further options parsing to support filenames that begin with-
or/
characters. There are 'GNU long options' style command-line parameters that use--
as well.
-r: Input file names can contain wildcard characters (?
or *
). If this switch is used, subdirectories are also searched.
-flist filename, --file-type 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.
-o filename: specifies output filename which is otherwise generated from the input file name. Use of this switch supports only one input file.
-l, --to-lowercase: Forces the output path & filename to all lower-case. Windows file system is case-insensitive by default, but some programs like git are case-sensitive.
-y, --overwrite: overwrite existing output file if any. By default, the tool will abort if the output file already exists.
-n, --normal-by-angle: generate normals weighted by angle
-na, --normal-by-area: generate normals weighted by area
-ne, --normal-by-equal: generate normals weighted equally
-t, --tangents: generate tangents.
-tb, --tangent-frame: generate tangents and bi-tangents (aka bi-normals).
-fn format, --normal-format format: Sets the format for writing vertex normals/tangents/bi-normals for SDKMESH
output: float3
(the default), float16_4
, or r11g11b10
(x2 biased). This switch is not supported by CMO
or VBO
.
-cw, --clockwise: faces are clockwise (defaults to counter-clockwise) for generating normal
-flip, --flip-face-winding: reverses the winding of faces
--flip-u: inverts the u texture coordinate
--flip-v: inverts the v texture coordinate (Direct3D vs. OpenGL image orientation)
--flip-z: negates the z component (RH vs. LH view systems)
-ib32, --index-buffer-32-bit: Forces the use of 32-bit indices for SDKMESH
output. By default it will attempt to write 16-bit indices if possible. This switch is not supported by CMO
or VBO
.
-fuv format, --uv-format format: Sets the format for writing vertex texture coordinates for SDKMESH
output: float2
(the default) or float16_2
. This switch is not supported by CMO
or VBO
.
-fc format, --color-format format: Sets the format for writing vertex color for SDKMESH
output: bgra
(the default), rgba
, float4
, float16_4
, rgba_10
or r11g11b10
. This switch is not supported by CMO
or VBO
.
-op, --optimize: vertex cache optimize the mesh (implies -c) using the Hoppe algorithm.
-oplru, --optimize-lru: vertex cache optimize the mesh (implies -c) using the Forsyth algorithm.
-c, --clean: mesh cleaning including vertex duplication for attribute sets.
-ta, --topological-adjacency: when generating adjacency use topological adjacency (the default)
-ga, --geometric-adjacency: when generating adjacency use geometric adjacency (uses epsilon of 1e-5f)
-ft file-type, --file-type file-type: A file type for the output texture. Use one of the following. The default value is dds
.
-
sdkmesh
: output anSDKMESH
file (the default) -
sdkmesh2
: output anSDKMESH
file with PBR materials -
cmo
: output a Visual StudioCMO
file (requires normals, tangents and texture coordinates) -
vbo
: output aVBO
file (requires normals and texture coordinates) -
obj
: output a WaveFront ObjectOBJ
file
-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.
-nologo: suppress copyright message.
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
.
All content and source code for this package are subject to the terms of the MIT License.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
- Universal Windows Platform apps
- Windows desktop apps
- Windows 11
- Windows 10
- Windows 8.1
- Xbox One
- Xbox Series X|S
- Windows Subsystem for Linux
- x86
- x64
- ARM64
- 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
DirectX Tool Kit for DirectX 11