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

Performance on high draw calls #323

Open
Aloalo opened this issue May 17, 2021 · 4 comments
Open

Performance on high draw calls #323

Aloalo opened this issue May 17, 2021 · 4 comments

Comments

@Aloalo
Copy link

Aloalo commented May 17, 2021

The attached GLB has ~3000 draw calls, and performance on it is poor (~20FPS on a relatively powerful desktop). Three.js based viewers and babylon.js have much better performance (locked to 60FPS on the same machine).
I understand that the sample viewer is meant to be a reference viewer and not compete with production level viewers in performance. My question is whether any improvement on this is planned?

dress.zip

@UX3D-nopper
Copy link
Contributor

I assume, that they batch a mesh (primitive and the same material) into one draw call and use internally instanced rendering.
For this asset, of course, this does provide a big boost.
The glTF Sample Viewer - for any asset - currently iterates the node hierachy and - if required for transparency - sorts them.
Technically correct, but regarding performance of course not optimal.
At this point of time, regarding performance, nothing is planned.

@Aloalo
Copy link
Author

Aloalo commented May 17, 2021

Understood, thank you. Regarding your assumption - it's correct for babylon.js but the three.js based viewers actually preform all the draw calls. They only use instancin if EXT_mesh_gpu_instancing is enabled for the asset.

@UX3D-nopper
Copy link
Contributor

Okay, I'll keep the ticket open. Maybe somewhere - a low hanging fruit - can improve the performance.

@UX3D-nopper UX3D-nopper assigned UX3D-becher and ghost May 17, 2021
@UX3D-nopper
Copy link
Contributor

@UX3D-becher @UX3D-eckerlein Maybe someone can have a look, if e.g. somewhere some tasks can be avoided?

@UX3D-nopper UX3D-nopper unassigned UX3D-becher and ghost Aug 31, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants