

If your source texture has no alpha channel to begin with, this setting will have no effect. This is mostly relevant because the presence of an alpha channel in your texture will dictate which compression formats are available to you. If Compress Without Alpha is checked, then the alpha channel of your texture will be removed during compression. This is where we’ll be configuring our texture compression settings to get the best possible result. Just below the texture statistics is the Compression section. As we experiment with different compression methods, you’ll be able to see the changes reflected here, so we’ll be coming back to this overview regularly. The Texture Properties Editor in Unreal Engine 4.Īt the very top of the Details panel you’ll find an overview of your textures’ resolution, size on disk, streaming method, compression format, and mipmapping information. Here are the ones relevant to our discussion today.

This editor contains a lot of configurable options. The Texture Properties EditorĪll of the settings we’ll be looking at in this article are found in the Texture Properties Editor, which you can find by double-clicking any texture file in your Content Browser. If you’re interested in learning more about color depth and how it’s stored, this video is a good primer. The following table contains some of the more common color depth formats that we’ll be referencing in the rest of the guide. In the case of our 8-bit image, the distribution would be 3 bits in the red channel, 3 bits in the green, and 2 bits in the blue.Ĭolor/Bit depth defines the color range of a texture as well as it’s overall size in memory. This information is usually (but not always) spread across multiple color channels that, when combined, produce the final color. If an image has an 8-bit color depth, this would mean the color value of each pixel is stored inside 8 bits of data. The color depth of an image describes how much memory is being used to store the color data of each pixel.

Keep in mind that anything you see here will have an additional unavoidable layer of jpg compression so it won’t be 1:1.Īll of the screenshots and statistics found in this guide are from my machine that’s running DirectX 12. I hope they’ll be able to give you an indication of the kind of visual fidelity to expect. Throughout this post I’ll be using some simple textures to illustrate the different settings we’ll be exploring. In a game engine this translates to a tradeoff between graphical fidelity and performance. Īs always, with data compression of any kind it will come down to a tradeoff between visual quality and file size. As a general rule, this means that the compression is fast and adaptable, but not lossless. Unlike the kind of image compression that you might get when exporting from image-editing programs like Photoshop, the texture compression formats you’ll find in game engines are designed specifically for application in real-time. Texture compression is a principal part of the larger sphere of texture optimization, the practice of reducing the amount of texture data that needs to be loaded at any one time to improve performance, and reducing the overall amount of texture data in your game to keep build sizes and loading times down.Įssentially, the goal of texture compression is to reduce the amount of data stored in a texture by culling any that can be seen as expendable or less important. Getting the most out of Unreal’s texture compression tools is just a matter of understanding a little bit about how texture compression works, and how Epic intends their system to be used. These options can be used in a variety of ways to significantly reduce the amount of texture data your game requires with the minimum impact on visual fidelity. Unreal Engine provides a wide range of texture compression settings and presets in the Texture Properties Editor. If left unchecked this sheer amount of texture data can slow down both your game’s performance and your team’s production speed – especially on larger projects. Texture data commonly represents the bulk of an Unreal project’s size, sometimes taking up more disk space than the rest of your game’s assets combined.
