How To DDS Textures - New Block Compression

Q and A about functionality and how to solve a special task for your application.

Moderator: Support

Post Reply
User avatar
Dennis
Posts: 273
Joined: 08 Jun 2015, 11:29

How To DDS Textures - New Block Compression

Post by Dennis » 20 Nov 2018, 13:46

Hello Hello,

i want to give you small insight about my workflow :ugeek:
i will not dive toooo deep into the technical stuff, i try to explain it as flat as possible.

With the actual release of V6.2 we have added support for new DDS Texture modes... the so called Block Compression modes.
This one is VERY interesting in many ways:

you can save a lot of ram
improve the performance
gain higher quality
use compressed HDR maps

isnt it awesome?

Generally i work with Photoshop and i have used till now the DDS Texture Tools from NVidia. These tools are quit old and i would say they are deprecated. Intel has released a new plugin which is called Intel Texture Works.
The big advantage is they support the actual Block Compression modes. Years ago we talked about DXTn nowadays we call it BC (Block Compression). The newest additions are BC6H and BC7.
BC6H is used for HDRI and uses 16bit half floating point precision (thats the reason for the "H" at the end)
BC7 is able to use RGB and sRGB with fast and fine compression.

The difference between "fast and fine" compression is in first the time it takes to compress the textures. The result for a fine compression is stunning, but may take a minute to save the file. Technically it goes trough a list of 64 patterns and decides which is the best matching pattern to save the texture in the most optimal way (as good as lossless from the visual quality).
Basically its worth the time to wait and use the fine compression.

You can find a complete list of the BC's on the intel page as well, this makes it easier for you to decide which kind of texture or BC you would need.

Keep in mind to use also the other BC modes like BC4 or BC5.
BC4 can be used grayscale textures like an ambient occlusion, heightmap or roughness for example.
BC5 offers you 2 channels.. R and G, so how about to use the R for a ambient occlusion and the G for the roughness? - use the "Texture Components material stage" to map the channels to the Base and Roughness ;)

See the following images to get an idea how to use the RG DDS Texture with the Texture Components node and assign the channels ...

Create a Texture with only Red and Green Channel painted/Filled:
RedGreen_Channel.PNG
Use the Intel Texture Works plugin to select and save as BC5:
RedGreen_Channel_DDS.PNG
Preview of the resulting Texture:
RedGreen_Channel_Preview.PNG
Texture Components used to assign the R Channel to the left and G channel to the right rectangle (in both cases to the base color):
red_green_channel_designer.PNG



I hope this might help you a bit for your workflow. Feel free to ask any questions!
regArts
Dee

:ugeek:

Post Reply