Image Tessellation

I’m not sure if “tessellation” is the right word to describe this as it relates mostly to polygons, but it’s a similar concept. With geometry tessellation, the gist of it is the quality of geometry decreases or increases based on available resources. Running on an old machine or a lot of objects in the scene? The game can use a small amount of polygons to give a boost to performance. Running on a beast of a computer? The game will use high-poly models that look much nicer.

So how does this apply to images? While I haven’t seen any games that have performance issues due to images (though maybe it’s an issue on mobile – ROBLOX would have the statistics for that), images take time to download. If the image is non-critical, for instance a texture for a distant building mesh, it’s probably not preloaded and instead is rendered as grey or nonexistent until it downloads. If it’s a critical asset, the developer likely preloads the image and keeps the user behind a loading screen while the critical assets load. Applying the general concept of tessellation, we can use low-quality assets in place of the full-resolution images when the system can’t handle downloading all of the high-quality images at once. We might do an initial pass and load all images at 50% resolution, and then after all images are downloaded, load the assets at 100% resolution.

The optimal result of this is that when I join a game on a bad connection, whether it be a mobile data plan or just a bad home internet connection in general, instead of seeing indistinguishably grey characters and not being able to tell what half of the assets in the game are due to lack of textures, I’d be able to distinguish them in half the time when they’re loaded at 50% resolution, and then they’d load at 100% in the same time it takes them to now.

I’m not sure how possible this ideal is from a technological standpoint though. For instance, if it’s not possible to download an image at 50% resolution and then resume that to load the remaining 50%, this may require the user to effectively download 150% resolution (the half + full resolution image). Another thing that would have to be taken into consideration is Preload(Async) loading the 100% resolution off the bat instead of 50% to ensure developers are able to load the full quality of super critical assets.

21 Likes

I think this would be a nifty thing to have, although I don’t know the practicality of implementing it. I guess it could be something like interlacing

3 Likes

It’s not really “Tesselation” here. What you’re describing is “level of detail” and “texture streaming”.

24 Likes