Granite SDK is a middleware solution that handles fine-grained texture streaming for real-time 3D software applications. It is aimed at using sparse textures, also called virtual texturing.
The Granite SDK consists of both production and run-time components. The runtime component can be integrated into any 3D or game engine. While running your application, it will analyze which texture data is visible to the virtual camera in your scene, and constantly load the required texture data asynchronously from disk into video memory. There’s no need to load all textures up front at the start of the application. All the runtime subsystems are highly optimized to ensure the lowest latency possible between requesting a piece of texture data, and when it is present in video memory to be used for rendering. It doesn’t matter how many textures you have in your scene, or how high the resolutions of those textures are, Granite SDK will elegantly handle all your content at 60 frames per second.
Fine-grained texture streamingVirtual texturing or sparse texturesStrong, scalable texture compressionImports all existing texture and image formatsNo restrictions on content creation
Granite SDK allows you to either drastically increase your graphical fidelity for the same memory and storage budget, or reduce these requirements for efficient distribution and reduced minimum hardware requirements for your product. In addition to the significant memory savings, streaming your texture data into memory when it is needed will drastically lower your scene loading times, allowing your users to jump in without unwanted delays.
Granite SDK is available for PC (Windows, Linux, Mac), Playstation 4 and Xbox One. The SDK can be licensed for a specific platform and application (VR experience, 3D visualization, training simulation, etc) or game.
Develop and release a game on one single platform.
Develop and release a game on multiple platforms.
Develop and release a game on multiple platforms using the source code.
The Granite SDK can easily be integrated into any engine or content pipeline. Your source art is imported using our tools during or after production. The images are split into tiles which are compressed and stored in our streaming file format. This production pipeline is available both as a command line tool that fits into any build system or as a software library that allows you to build it into existing tools. We support all common image file formats (.tga, .bmp, .png, .tiff, .jpg, .exr, etc.). These texture tiles can then be used at run-time for either “classic” texture streaming, or tile-based streaming for virtual texturing.
The runtime component (see image) is designed from the ground up to be integrated into existing engines and pipelines. The streaming core manages the memory caches and the disk IO requests. The runtime provides API-specific implementations for most common graphics APIs, but you can create custom bindings with your render engine or graphics API.
Granite SDK’s run-time component supports common practices such as easy-to-overload memory allocations and error reporting. The use of threads can be fully customized by integrating it with your existing job system. Our system comes with a standard multi-threading implementation if you don't have a job system in your engine. Besides threading, (asynchronous) disk-IO can also be customized allowing the Granite SDK to be used alongside your in-house streaming system or other middleware.