Games for Windows and the DirectX SDK blog

Technical tips, tricks, and news about game development for Microsoft platforms including desktop, Xbox, and UWP

Project maintained by walbourn Hosted on GitHub Pages — Theme by mattgraham
Home | Posts by Tag | Posts by Month

DirectXTex Update

codeplex, direct3d

Originally posted to Chuck Walbourn's Blog on MSDN,

The DirectX Texture library (aka DirectXTex) for Direct3D 11 (originally released on this blog and made an official CodePlex project) has continued to improve. It’s been a busy month of work, but with this release I’ve hit a milestone of sorts so I’m declaring this DirectXTex “Version 1.1”. This release includes custom filtering implementations to fully finish out the feature set, and as of this release all the functionality that was in D3DX11 for texture processing is now available in DirectXTex. Resizing and mipmap generation has been updated to avoid a number of known issues with the Windows Imaging Component (WIC) including proper HDR/XR format handling, sRGB gamma correct filtering and conversion behavior, mirror/wrap texture address mode filtering semantics, and implements the finite low-pass triangle filter that was available in D3DX. Volume map mipmap generation now supports all filtering modes and supports non-power-of-2 volume maps.

The DirectXTex package also include a new command-line utility for creating volume maps, cube maps, and texture arrays (texassemble). It loads each of the image files provided, performs any required resizing and format conversion to get them all to match, and outputs a .DDS files containing the new complex resource. This tool does not perform texture compression or mipmap generation, but the .DDS output file is suitable for use with texconv to do these operations. For convenience it will expand texture compressed .DDS files used as input files, but will exit with an error if given a complex .DDS file as input.

The latest release is available on CodePlex and GitHub. The documentation on GitHub has also been updated.

June 15, 2013

  • Custom filtering implementation for Resize & GenerateMipMaps(3D) - Point, Box, Linear, Cubic, and Triangle
    • ``TEX_FILTER_TRIANGLE`` finite low-pass triangle filter
    • ``TEX_FILTER_WRAP``, ``TEX_FILTER_MIRROR`` texture semantics for custom filtering
    • ``TEX_FILTER_BOX`` alias for ``TEX_FILTER_FANT`` WIC
  • Ordered and error diffusion dithering for non-WIC conversion
  • sRGB gamma correct custom filtering and conversion
  • ``DDS_FLAGS_EXPAND_LUMINANCE`` - Reader conversion option for L8, L16, and A8L8 legacy DDS files
  • Added use of WIC metadata for sRGB pixel formats
  • Added BitsPerColor utility function
  • Fixed Convert threshold parameter usage
  • Non-power-of-2 volume map support, fixed bug with non-square volume maps
  • Texconv utility update with -xlum, -wrap, and -mirror options; reworked -if options for improved dithering
  • Texassemble utility for creating cubemaps, volume maps, and texture arrays
  • DDSTextureLoader and WICTextureLoader sync'd with DirectXTK versions