12/27/2015 8:01:59 AM
Granite for Unreal Adds Advanced Texture Streaming to Unreal Engine 4
App Developer Magazine

Granite for Unreal Adds Advanced Texture Streaming to Unreal Engine 4

Stuart Parkerson Stuart Parkerson in Game Development Sunday, December 27, 2015

Granite for Unreal is a new solution that adds the Granite SDK to Unreal Engine 4, enabling game developers to handle substantial amounts of texture data while using less memory and eliminating loading time.

Available as a limited commercial seat license, Granite for Unreal eliminates texture-related memory and loading time issues to get ultra-high quality graphics in real-time on mainstream hardware for 3D visualization and video games. It’s a fine-grained texture streaming technology that is aimed at using sparse textures, also called virtual texturing.

Texture streaming is the process of progressively loading a texture into GPU memory. By progressively uploading textures, loading times can be shortened - not all textures have to be loaded up front - and memory use can be reduced - not all texture data needs to be present in memory at once.

To achieve texture streaming, the Granite texture streaming library splits the texture in tiles (small rectangles of texture data). Tiles are the basic unit of processing in the Granite SDK. All data is loaded, coded and processed one tile at a time. The Granite SDK also supports multiple resolution levels (also known as ‘mipmaps’). To achieve this, the resolution levels are split into tiles as well.

To create the tiled textures, the tools import all texture data into an efficient file format for large image data sets. The pixel data is highly compressed, using state of the art image compression techniques. The Granite SDK compression systems are specifically tuned for game specific data types, such as normal maps and alpha channels. The tools convert source art to the Granite streamable file format.

At run-time, the library then transcodes data from Granite custom compression format into a GPU friendly format (like DXT1 or DXT5). Doing this allows for hardware accelerated sampling in shaders, while reducing the amount of video memory. Granite’s transcoder algorithms are highly optimized (using assembly on most platforms) and can be run off the main game thread, allowing game developers to make optimal use of multicore systems.

Read more: http://graphinesoftware.com/products/granite-for-u...