gpvigano / AsImpL

Asynchronous Importer and run-time Loader for Unity
MIT License
212 stars 37 forks source link

[Feature Request] Optimization using upcoming Unity jobsystem #20

Open deltamish opened 6 years ago

deltamish commented 6 years ago

Hey,

After seeing the tech demo of the new unity Job system and job compiler and seeing the crazy optimizations possible. I was wondering if you had plans to optimize the Object importer further so you can add much complex features like automatic LOD generation and what not

Here are a few resources on Unity Job system that may help anyone to get a deeper idea of what this is and how one can use it

Unity-In depth talk and tutorial https://www.youtube.com/watch?v=AXUvnk7Jws4

C# job system short tutorial (On waves simualtion) https://www.youtube.com/watch?v=gibqhg0wMA0

Cheers

gpvigano commented 6 years ago

I had a quick look to the new Job System API now available in Unity 2018.1 and I realized that using that API in AsImpL would require a different approach and a huge work. I don't think I can do it for now, but if anyone can try and make a pull request it would be welcome...

guizmo01 commented 6 years ago

HI,

This loader is probably the fastest i could find however, it can still be slow especially when im loading model after changing scene. Is there any way to make it faster?

gpvigano commented 6 years ago

I think so... Any suggestion (except Job System API)?

guizmo01 commented 6 years ago

I did attempt to change coroutine methods to async but no success plus you can't really call unity API stuff on other threads anyway so just changing to async I do not really know if it is going to make a difference.

In our project we most likely will go the asset bundle approach but we need to find a way to dynamically create asset bundles from server

eldamir commented 4 years ago

@guizmo01 did you ever solve the issue of making assets dynamically on server and loading them? I'm having the same issue, but the best I've found so far is that it cannot be done :(

eldamir commented 4 years ago

Just FYI, we are at a place where using AsImpL is the best we can do, but would still like it to be faster for big models (Actually, when loading my test model of 8000 objects, I'm seeing a slowdown of around 20 seconds for each 1000 objects loaded, which I havn't been able to narrow down).

I will look into what it will take to move this, or parts of it, over to using Unity Jobsystem. I'll see what performance gains I can get.

My scope is limited to only OBJ files and only for viewing in a web build, but if I get some tangible results, I'll share it here and see if it is worth getting into the main stream.

Thanks for all the good work getting here so far 😉

gpvigano commented 4 years ago

@eldamir Thank you. A possible contribution from you would be absolutely welcome. I cannot help you now, but I'll be available for testing and merging eventual pull requests. Good luck!