makeMap is a tool to convert images into textures for graphics cards for use with Direct3D 12 bases game engines. It is using the current technical capabilities using DirectStorage for high performance data transfer from disk to video memory.
The tool is located in the [root]/Tools/ directory.
makeMap does support these input formats:
Loader | Extension | ||||||
---|---|---|---|---|---|---|---|
Train Simulator NEXT Map1 | *.map | ||||||
Microsoft Train Simulator | *.ace | ||||||
Dovetail Games Train Simulators | *.TgPcDx | ||||||
Direct Draw Surface, full compatibiliuty1 | *.dds | ||||||
Windows provided decoder | *.bmp | *.gif | *.ico | *.jpg | *.png | *.tif | *.wmp |
*.heic | |||||||
FreeImage | *.jif | *.jpg | *.jpe | *.jng | *.koa | *.iff | *.lbm |
*.mng | *.pbm | *.pcd | *.pcx | *.pgm | *.ppm | *.ras | |
*.tga | *.targa | *.tiff | *.wap | *.wbmp | *.wbm | *.psd | |
*.cut | *.xbm | *.xpm | *.hdr | *.g3 | *.sgi | *.rgb | |
*.rgba | *.bw | *.exr | *.j2k | *.j2c | *.jp2 | *.pfm | |
*.pct | *.pict | *.pic | *.3fr | *.arw | *.bay | *.bmq | |
*.cap | *.cine | *.cr2 | *.crw | *.cs1 | *.dc2 | *.dcr | |
*.drf | *.dsc | *.dng | *.erf | *.fff | *.ia | *.iiq | |
*.k25 | *.kc2 | *.kdc | *.mdc | *.mef | *.mos | *.mrw | |
*.nef | *.nrw | *.orf | *.pef | *.ptx | *.pxm | *.qtk | |
*.raf | *.raw | *.rdc | *.rw2 | *.rwl | *.rwz | *.sr2 | |
*.srf | *.srw | *.sti | *.x3f | *.webp | *.jxr | *.wdp | |
*.hdp |
1) Also export.
Textures must have a size in width and height of a multipe of 256 pixels.
Drag and drop an image or map, multiple images or maps or a directory onto the app.
You may also call makeMap manually:
makeMap <file or directory>
(<num_mips i>)
(<min_mip_size i>)
(<compression (None|BC1|BC2|BC3|BC7)>)
(<quality (High|Normal|Low)>)
(<dds>)
(<convert_dxt>)
(<outdir directory>)
(<rg>)
(<r>)
(<2C>)
(<bump>)
(<1C>)
(<Version>)
(<uncompressed>)
(<pass_dds>)
(<help> or <?>)
Argument | Description | Remarks |
---|---|---|
alpha_bit | If a pixel does not have a alpha value of 255, the pixel is set to be transparent. | |
bump | Stores only the red and green channel and encodes the normals to a sphercial map coordinate. | |
compression | Sets the texture compression base type. Read below. | None, BC1, BC2, BC3 or BC7. Default: BC7. |
convert_dxt | Converts outdated BC1, BC2 or BC3 textures back to raw data. | |
dds | Export the image always as a dds file. | Default: Source Dir. |
min_mip_size | The minimum accepted size for a mip level. | Default is 256. |
num_mips | The maximum number of MIP maps for a texture. | Default is 32. |
no_alpha | Removes the alpha channel from the texture data. | |
no_gdeflate | Forces the map exporter not to use the gdeflate compression for DirectStorage convertes textures. | |
outdir | The output directory. | |
pass_dds | Loads the file and stores the non-converted data in a dds file. | |
quality | Defines the quality of the compression algorithm. | Low, Normal or High. Default: High. |
r | Stores only the red channel in the same format. | |
rg | Stores only the red and green channel in the same format. | |
1C | Stores only the red channel as a floating point texture. | |
2C | Stores only the red and green channel in the same format. | |
uncompressed | Does not compress the texture. | |
version | Sets the map file version to export. | 1.0, 1.1 or current. Default: current |
help / ? | Prints the version and a link to this documentation. |
Textures must have a size in width and height of a multipe of 256 pixels.
If you pass a Map file, the file will be converted back to a dds file. The tool will overwrite an existing file. Bump maps wont be converted back from spherical coordinates to a DirectX left handed format currently.
If possible you should work with png and exr files. Also working with dds files may be okay but not optimal for resource file sizes.
If a file has one of these suffixes, the following configurations will be applied:
Suffix | Applied configuration |
---|---|
_albedo | compression BC7 |
_bump | bump compression BC7 |
_diffuse | compression BC7 |
_emissive | compression BC7 |
_nml | bump compression BC7 |
_pbr | 2C compression BC7 |
_subsurface | 1C compression BC7 |
If bump is passed, the application assumes the input data to be a XYZ-normalized normal map in DirectX format (left handed). The converter works only with rgba 8-bit unsigned-integer or rgba 16-bit floating-point formated textures.
If compression <type> is passed, you should use BC7. This code tries to apply a modern compression method for the channel data. Also conversion to BC6 is automatically supported. The applied data format depends on the input type.
Note that a conversion from BC1, BC2 or BC3 to BC7 implies some minor quality loss.
The uncompressed flag forces the map file exporter not to compress the image data with DirectStorage, even it would be possible. In some cases this flag is required, i. e. the map will be used for a User Interface or as a data source.
Component | Requirement |
---|---|
Graphics Card | OpenGL 4.2 compatible, Direct3D 12.2 compatible, DirectStorage 1.2 compatible |
Main Memory | 100MB+ free main memory or more |
Operating System | Windows 10 22H2 or newer |