maketx(1)

πŸ’– maketx β€” the glow-up that turns your images into tiled, MIP-mapped textures πŸ’–

okay so bestie, you've found maketx(1), and it's from the OpenImageIO squad πŸ’… if you've ever needed a plain old picture to become a texture with mipmaps and tiles and all the backstage magic, this is your girl. no cap.


✨ NAME ✨

maketx β€” convert images to tiled, MIP-mapped textures πŸ¦‹


🌸 SYNOPSIS 🌸

Usage: maketx [options] file...

like, you feed it files, you give it options, it gives you textures. iconic.


πŸŽ€ DESCRIPTION πŸŽ€

so this program is part of the OpenImageIO tool suite β€” their whole vibe lives at http://www.openimageio.org 🌈 and if you want the detailed documentation, it ships as a pdf with the OpenImageIO distribution. go read it, i believe in you 🫢


πŸ‘‘ OPTIONS πŸ‘‘

the whole menu, item by item, no skipping, we don't do that here:

  • --help β€” print the help message πŸ™ˆ
  • --version β€” print the version and dip out ✌️
  • -v β€” verbose status messages, so you can watch it cook πŸ”₯
  • -o FILENAME β€” the output filename πŸŽ€
  • --threads NUMTHREADS β€” how many threads to throw at it (default: #cores) πŸ’€
  • -u β€” update mode
  • --format FILEFORMAT β€” specify the output file format (default: guess it from the extension, she's intuitive like that)
  • --nchannels N β€” specify the number of output image channels
  • --chnames CHANNELNAMES β€” rename channels, comma-separated, no spaces pls
  • -d TYPE β€” set the output data format to one of: uint8, sint8, uint16, sint16, half, float
  • --tile WIDTH HEIGHT β€” specify the tile size
  • --separate β€” use planarconfig separate (default is contiguous)
  • --compression NAME β€” set the compression method (default = zip, if possible)
  • --fovcot FOVCAT β€” override the frame aspect ratio. default is width/height
  • --wrap WRAP β€” specify the wrap mode: black, clamp, periodic, mirror
  • --swrap WRAP β€” set the s wrap mode all by itself, main character energy
  • --twrap WRAP β€” set the t wrap mode all by itself, also main character energy
  • --resize β€” resize textures to power of 2 (default: no)
  • --keepaspect β€” keep the texture aspect ratio when resizing to power of 2 πŸ¦‹
  • --filter FILTERNAME β€” pick the filter for resizing. choices: box triangle gaussian sharp-gaussian catmull-rom blackman-harris sinc lanczos3 radial-lanczos3 nuke-lanczos6 mitchell bspline disk cubic keys simon rifman, default = box
  • --hicomp β€” compress the HDR range before resize, then expand it after
  • --sharpen SHARPEN β€” sharpen the MIP levels (default = 0.0 = no)
  • --nomipmap β€” do not make multiple MIP-map levels
  • --checknan β€” check for NaN/Inf values and abort if found 😭
  • --fixnan STRATEGY β€” try to fix NaN/Inf values in the image (options: none, black, box3)
  • --fullpixels β€” set the 'full' image range to be the pixel data window. (and yes, in the original page this entry is smooshed together with the matrix stuff below β€” same bullet, no divider, we love a chaotic layout ✨)
    • --Mcamera %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f β€” set the camera matrix
    • --Mscreen %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f β€” set the screen matrix
    • --MNDC %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f β€” set the NDC matrix
  • --prman-metadata β€” add prman specific metadata
  • --attrib NAME VALUE β€” sets a metadata attribute (name, value)
  • --sattrib NAME VALUE β€” sets a string metadata attribute (name, value)
  • --sansattrib β€” write the command line into Software & ImageHistory, but remove the --sattrib and --attrib options from it
  • --history β€” write the full command line into the Exif:ImageHistory, Software metadata attributes
  • --no-history β€” do not write the full command line into Exif:ImageHistory, Software metadata attributes
  • --constant-color-detect β€” create 1-tile textures from constant color inputs 🌈
  • --monochrome-detect β€” create 1-channel textures from monochrome inputs
  • --opaque-detect β€” drop the alpha channel if it's always 1.0
  • --no-compute-average β€” don't compute and store the average color
  • --ignore-unassoc β€” ignore unassociated alpha tags in the input (don't autoconvert)
  • --runstats β€” print runtime statistics
  • --mipimage FILENAME β€” specify an individual MIP level
  • --cdf β€” store the forward and inverse Gaussian CDF as a lookup-table. the variance is set by cdfsigma (1/6 by default), and the number of buckets in the lookup table is determined by cdfbits (8 bit - 256 buckets by default)
  • --cdfsigma N β€” specify the Gaussian sigma parameter when writing the forward and inverse Gaussian CDF data. the default vale is 1/6 (0.1667) β€” yes, the original page literally says "vale", we are preserving the lore πŸ’€
  • --cdfbits N β€” specify the number of bits used to store the forward and inverse Gaussian CDF. the default value is 8 bits

🧚 Basic modes (default is plain texture) 🧚

these are the moods, bestie. pick one:

  • --shadow β€” create shadow map
  • --envlatl β€” create lat/long environment map
  • --lightprobe β€” create lat/long environment map from a light probe
  • --bumpslopes β€” create a 6 channels bump-map with height, derivatives and square derivatives from an height or a normal map
  • --uvslopes_scale VALUE β€” if specified, compute derivatives for --bumpslopes in UV space rather than in texel space and divide them by a scale factor. 0 = disable by default, only valid for height maps.
  • --bumpformat NAME β€” specify the interpretation of a 3-channel input image for --bumpslopes: "height", "normal" or "auto" (default).
  • --bumpscale N β€” set the scale factor for the bump-slope map. the default is 1.0
  • --bumpinverts β€” invert the bump-slope map in the s (u) direction.
  • --bumpinvertt β€” invert the bump-slope map in the t (v) direction.
  • --slopefilter FILTER β€” specify the filter used to calculate the slope of a height map: "sobel" (default), "centraldiff" (matches txmake behavior).
  • --bumprange RANGE β€” specify the expected range of values for the input normal map: "centered" from [-1,1], "positive" from [0,1] (traditional blue-ish normal map), "auto" will select this based off of the presence of negative values.
  • --handed STRING β€” specify the handedness of a vector or normal map: "left", "right", or "" (default).

🌈 Color Management Options (OpenColorIO enabled) 🌈

only relevant if OCIO is switched on, iykyk:

  • --colorconfig FILENAME β€” explicitly specify an OCIO configuration file
  • --colorconvert IN OUT β€” apply a color space conversion to the image. if the output color space is not the same bit depth as the input color space, it is your responsibility to set the data format to the proper bit depth using the -d option 🫑 (choices: sRGB - Display, Display P3 - Display, Rec.1886 Rec.709 - Display, Rec.2100-PQ - Display, ST2084-P3-D65 - Display, P3-D65 - Display, ACES2065-1, ACEScc, ACEScct, ACEScg, sRGB Encoded Rec.709 (sRGB), Gamma 1.8 Encoded Rec.709, Gamma 2.2 Encoded Rec.709, Gamma 2.4 Encoded Rec.709, sRGB Encoded P3-D65, Gamma 2.2 Encoded AdobeRGB, sRGB Encoded AP1, Gamma 2.2 Encoded AP1, Linear Rec.709 (sRGB), Linear P3-D65, Linear AdobeRGB, Linear Rec.2020, Raw)
  • --unpremult β€” unpremultiply before the color conversion, then premultiply after it. you'll probably want this flag if your image contains an alpha channel πŸ’…

🎁 Configuration Presets 🎁

the "just trust me" buttons:

  • --prman β€” use PRMan-safe settings for tile size, planarconfig, and metadata.
  • --oiio β€” use OIIO-optimized settings for tile size, planarconfig, metadata.

⭐ little reminder: --checknan will literally abort if it finds NaN/Inf, and --resize, --nomipmap, --sharpen, --compression, --filter, --format, --threads and --fovcot all have the defaults listed above. don't come for me, come for the manpage. πŸ’–

and that's the whole page, bestie 🫢 this was maketx(1) from OpenImageIO, dated 05 October 2026 β€” slay, stay tiled, and may all your mipmaps be power-of-two βœ¨πŸ’œπŸŽ€

πŸ“¦ where this page comes from