Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support draco compression in GLBRuntime #18

Open
wants to merge 9 commits into
base: develop
Choose a base branch
from
Open

Conversation

tuket
Copy link

@tuket tuket commented May 9, 2024

I added a model with Draco compression in the Azure shared folder, if you want to try it out.

@tuket tuket requested review from Jorgemagic and sescalada May 9, 2024 11:04
tuket added 4 commits May 9, 2024 13:20
The new version has new compiled libraries for android and uwp
Copy link
Member

@sescalada sescalada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works as a charm in HoloLens, but I get some crashes when trying to open a model using a Meta Quest 2 device :(. Original duck model can be loaded without problem, but draco-compressed duck only loads 1 of each 3 attemps. Maybe some kind of race condition?

Need to check it with more draco compressed models to see if this is a common problem or not.

@sescalada
Copy link
Member

Just updated to latest Draco bindings library, and it looks like execution in both HoloLens and Quest is broken now, throwing following error:

image

@tuket
Copy link
Author

tuket commented May 29, 2024

It makes sense that it crashes in HoloLens because I have removed the UAP .dll.
I was told that UAP is deprecated and it's not going to be supported by Microsoft any more, so I decided to drop it since it was causing problem with VS targets.

However, I didn't remove the .dll for Android, so it's weird that it doesn't work in Quest. I suspect what might be the issue, I will take a look.

@sescalada
Copy link
Member

For June release we will still support UAP in Evergine, so we need that DLL back. For September release, it's true that this will no longer supported, and you could get rid of library for that platform.

@tuket
Copy link
Author

tuket commented Jun 25, 2024

I made a fix for this in EvergineTeam/NativeLibraryLoader#2.
However, I can't test it because I don't have an Android device.

@sescalada
Copy link
Member

I made a fix for this in EvergineTeam/NativeLibraryLoader#2. However, I can't test it because I don't have an Android device.

Let's wait until that PR is merged :)

@jcant0n
Copy link
Member

jcant0n commented Jul 4, 2024

The EvergineTeam/NativeLibraryLoader#2 has been merged

Also fixed problem loading two consecutive draco models (the decompressed data was cached, and the cache wasn't cleared for the next model)
@tuket
Copy link
Author

tuket commented Jul 19, 2024

I have updated XRV to reference to the newest Draco.NET which now uses the fixed NativeLibraryLoader.
It should work now in Android, although I can't test it because I don't have any Android device to test it.
Can anyone test it for me? Thanks!

@sescalada
Copy link
Member

Thanks for trying to update this, but you should merge changes from develop branch first. As you may see, we are no longer using Model Viewer module importers, they have been replaced by Evergine.RuntimeLoders for both STL and GLB :-/.

@tuket
Copy link
Author

tuket commented Jul 22, 2024

Thanks for trying to update this, but you should merge changes from develop branch first. As you may see, we are no longer using Model Viewer module importers, they have been replaced by Evergine.RuntimeLoders for both STL and GLB :-/.

Does that mean that the RuntimeLoaders are now part of Evergine? The PR should be now made to the Evergine repo instead?

@sescalada
Copy link
Member

Thanks for trying to update this, but you should merge changes from develop branch first. As you may see, we are no longer using Model Viewer module importers, they have been replaced by Evergine.RuntimeLoders for both STL and GLB :-/.

Does that mean that the RuntimeLoaders are now part of Evergine? The PR should be now made to the Evergine repo instead?

Yeah, if you need to change how current runtime loader works (for example adding that cache dictionary) you should do it in Core repository. Take a look to that code first, I think it already includes changes you made on GLBRuntime class. Maybe it's enough with merging current develop branch and check that native DLLs are properly loaded via Evergine.Bindings.Draco package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants