Scheme of baking renderables?

Before risking to bring it too far, I want to know if there have been previous approach on this way.

I’m used to “models” in rendering (Unrelated to MVC/MVP), which contains information to render. Usually they come baked, i.e. they become available as accessible by e.g. migrating to GPU memory. Specifically, stuffs like Texture, VBOs, VAOs would be better present in memory first before actual rendering.

Are there libraries for this aspect? Namely, preparing stuffs early so that later, it could be composed in a declarative sense. Any help is greatly appreciated!

  • Please specify any aspect of this post that is hard to understand, this is possibly too rough of an idea. Do you think I’d be fine making such a library?

What kind of functionality would you want? I’ve considered this in the past as an optimization problem; figuring out which assets you are most likely to benefit from (what scenes are nearby, at what resolution might you want a texture, etc) vs available GPU memory and bandwidth. Would definitely be interesting to do in a principled way. I’m sure big game engines like UE have some kind of functionality like this, although I wouldn’t necessarily expect it to be super well done.

Thank you for your reply! I guess this is yet to be done in haskell space. Though I am not working with calculating GPU bandwidth. I am aiming for separating moving parts (position, orientation, gesture…) from static parts (textures, fixed vertices, configuration…) clearly, which is indeed sort of optimization. The goal is to have static parts built in initiation phase, aiming for least moving parts as possible.