Add support for multithreaded resource loading through Ogre
Currently all resources are loaded in the same thread as the main application. This means that when you navigate the world and first happen upon a large resource, such as a complex mesh or a large texture, the whole thread is paused while the resource is loaded. Ogre has however for some time had support for multithreaded loading, where the resource loading happens in a thread different from the main thread. Ogre however needs to be compiled with specific configuration directives in order to get this working.
It's however something that seems perfectly suited for Ember, since it's very common to get stilted performance due to the loading of resources.
Support for this would be very welcome. Any implementation needs however to work both with the default behaviour and the multi threaded approach (there will be preprocessor directives set, OGRE_THREAD_SUPPORT for example). So if the Ogre lib has support for multi threaded loading that will be used, but if it hasn't Ember will use the regular approach.
Once the basic support is in, we can look at further enhancements such as letting loaded entities being faded into the scene by altering the material/shader.
Blueprint information
- Status:
- Complete
- Approver:
- Erik Ogenvik
- Priority:
- Medium
- Drafter:
- Erik Ogenvik
- Direction:
- Needs approval
- Assignee:
- Erik Ogenvik
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Erik Ogenvik
- Completed by
- Erik Ogenvik