Granite for Unreal 4.10.2: 4GB caches and channel packing

Granite for Unreal 4.10.2 with channel packing banner

We have a new update for Granite for Unreal with two major features: GPU caches up to 4GB and channel packing!

The new features are available in the Granite for Unreal 4.10.2 binary. The update has also been committed to the 4.10.2 branch in Github. And we’ll backport the changes to the 4.10.1 Github branch in a few days. You’ll need to install the latest Granite toolset (3.1) to get access to the channel packing feature.

In this release, we’ve increased the maximum GPU cache size to 4GB per cache. Large caches were a major new feature of Granite SDK 3.0. However, Granite for Unreal 4.10 was limited to 1GB caches because higher cache settings could impact the performance. This issue was already solved with the December patch. Users that like to use even larger caches can easily change the maximum size in the source code. Just make sure you have enough physical memory available because graphics drivers are rather unforgiving if you don’t.

“Channel packing” is our most significant new feature for this release. The layering system in Granite 3.0 already allowed you to bundle channels in one stacked texture. You could have one channel (color, normals, greyscale, etc.) per layer. With our new release, you can now have two separate grayscale channels per layer. This ensures that you can have up to 8 individual grayscale channels in a single stacked texture. Or you can now pack a RGB(A) map, normal map, roughness map, metallic map and a displacement map in one stacked texture.

Screenshot of Tile Set Studio showing the texture channel packing feature for texture streaming in Unreal Engine 4.10

We’ve also made importing channels from image files easier. You can now import two grayscale channels from one image or from two separate image files (see screenshot). We’ve also added the option to import a separate image into an RGBA layer’s alpha channel. You can pack your metallic map in an alpha channel and use only 3 layers for a diffuse + metallic + normal + rougness + displacement stacked texture. Since SDK 3.0, performance improves when using less layers. The performance and memory savings will get even higher in future releases so the less layers you need the better. One thing to note is that when using compressed GPU caches, using the alpha channel (for alpha or something else) may result in less precision for your color channel (see BC7 texture compression).

Next to our two major features we’ve also solved a number of other issues. Most notably, we resolved the potential texture bleeding for the lower mipmaps of tiling textures. We’ve also revisited our use of threading to map better to the Unreal threading model. This was mainly an issue for the Playstation 4 runtime and should give additional speedups as the multithreaded renderer on windows is improved. We improved the graphics memory cache sharing on PS4. And we fixed a number of bugs in the import tools.

Leave your information