Preloading has the problem that the stuff must fit into the RAM. No problem for meshes, serious problem for textures unless you want low size DDS textures.
B3D SDK won't change anything, the loading code is still part of the SDK not of your code, so you can not get the loading done async from rendering, rendering will still wait for loading to be finished.
What you need to do is create your own streaming world format which allows you to read just the data you potentially will need instead of reading everything.
This sounds harder than it actually is ...
main problem is that you will need to get some basic understand of how such files need to be built up to work efficientely.
With B3D SDK this streamed loading naturally would be possible to be done in its own thread, so this would give you a serious benefit.
BUT:
1. threaded programming is always a potential cause for serious and hard/un debugable bugs.
2. As you already realized you will need to port the code you already have, add some own stuff (sound library most likely). And even moving to C# (BM is no solution, non threaded as well) won't remove the need of an own streaming world format.
B3D SDK won't change anything, the loading code is still part of the SDK not of your code, so you can not get the loading done async from rendering, rendering will still wait for loading to be finished.
What you need to do is create your own streaming world format which allows you to read just the data you potentially will need instead of reading everything.
This sounds harder than it actually is ...
main problem is that you will need to get some basic understand of how such files need to be built up to work efficientely.
With B3D SDK this streamed loading naturally would be possible to be done in its own thread, so this would give you a serious benefit.
BUT:
1. threaded programming is always a potential cause for serious and hard/un debugable bugs.
2. As you already realized you will need to port the code you already have, add some own stuff (sound library most likely). And even moving to C# (BM is no solution, non threaded as well) won't remove the need of an own streaming world format.