Develop takes a look at the middleware designed to dramatically reduce memory use and allow for increased use of unique textures
From the impact on a game’s download time to the disk footprint of a given title, texture assets are famously tricky beasts, hogging memory with abandon.
And as a result, a range of texturing solutions are available to studios as middleware. One that is rather distinct is the texture streaming approach provided by the Granite SDK, created by Belgian outfit Graphine Software.
The tool began life in a research lab at Belgium’s Ghent University, where the Graphine team came together to look at various aspects of compression in an academic context. That group remains core to Graphine, from CEO Aljosha Demeulemeester to CTO and former Splash Damage megatextures expert Charles Hollemeersch.
“Our research was always very practical, in the sense that we always worked in the area of real-time techniques,” explains Demeulemeester. “And because of Charles’ previous experience in the games industry, a lot of what we built back then was already applicable to the business. We saw then that there was real value in the technology, and since then we have been trying to bring it to the market.”
SOLID AS A ROCK
The product has in fact been on the market for some time now, but the 2.0 release serves to make Granite SDK more accessible and increasingly scalable, meaning it is now a practical choice for a far wider array of different studios. But what of the core solution?
“Our Granite SDK technology is actually a texture streaming and compression middleware,” confirms Demeulemeester. “The nice thing is that streaming and compression go hand in hand. A good streaming solution needs quality compression, and quality compression is to the benefit of good streaming.
“The product itself is a runtime component which is built into a game, which handles the texture compression, decompression and transcoding, and it’s surrounded by a number of tools which allow games developers to import their data into a highly compressed and streamable format that can be used by the runtime.
“What texture streaming does is constantly load data in the background into video memory when it is needed. We say Granite SDK is an advanced texture streaming solution, and in our opinion the reasons that it is advanced are four-fold.”
Firstly, says Demeulemeester, Granite SDK offers a highly optimised system that quickly responds to requests for specific data, reducing latency.
Secondly, such efficiency improvements effectively negate the need for the likes of pre-loading and pre-fetching, meaning an overall reduction in the memory required for high quality textures.
The third reason is Granite SDK’s focus on minimising disk footprint, compressing data throughout each step of the streaming system, which positively impacts the latency.
All of this means that, finally, Granite SDK should let developers use what Demeulemeester describes as “massive amounts of texture data,” or reduce the amount of computer data needed for a given project.
ON THE TILES
In terms of new improvements, 2.0 debuts two significant new elements.
Firstly, it introduces a tiling module. Granite 2.0’s new tiling module and full built-in support for hardware accelerated tiled resources provides graphics API-specific handling for most common graphics APIs, meaning the intricate, difficult work such as locking is handled by the SDK itself.
“The 2.0 update also introduces texture atlasing,” adds Demeulemeester. “Our previous library was really focused on using very large textures; just putting everything in one huge texture and streaming that in. But in most practical cases developers are going to be using much smaller textures, and a lot of them – sometimes up to 10,000 texture assets. Before you could import that in our system, but now it is a lot easier and a lot more intuitive to stream all those individual texture assets.
The technology originally targeted triple-A studios, but the new accessibility, say its creators, means Granite is now all the more available to smaller teams, who may themselves have been navigating the memory allocation minefield that is mobile gaming.
Evaluation and licence details are available at the Graphine website.