Comparison high resolution textures and lower resolution textures
Textures are one of the key elements in real-time rendering. They are essential to bring a virtual world to life. Textures add detail to the objects and environments to make them more interesting or more realistic. They enable real-time rendering of ultra-detailed and sharp images on mainstream computer hardware. However, technical limitations sometimes constrain the detail that can be added to textures.
Just like digital images, textures are a 2D grid of (color) samples. The higher the resolution, the more detail they add to the virtual objects and the final rendered images. Render engines typically allow a maximum texture resolution of 4K by 4K or 8K by 8K. In practice, in these engines, increasing the texture resolution leads to increasing memory usage and longer loading times.
Some 3D engines integrate a texture streaming system to allow more textures in a 3D scene than what would otherwise fit into memory. However, these streaming systems are not designed to handle large textures. In most cases, the maximum texture size remains limited to 16K x 16K; the limit imposed by the underlying graphics APIs.
Graphine’s texture streaming middleware Granite SDK removes any limitation on texture resolution. By subdividing the texture into small tiles (virtual texturing), only parts of the textures need to be loaded and kept in memory at one given time.
Granite SDK removes loading times and reduces memory usage to a much smaller and constant amount. As a result of using this tile-based streaming system, increasing the texture sizes from 2K to 4K or 8K has no impact on video memory usage. The technology also allows importing textures up to 262.144 x 262.144 pixels.