fix: performance issue when dealing with models with a lot of objects rendering over and over again#40
Merged
DIYer22 merged 1 commit intoDIYer22:masterfrom May 27, 2022
Merged
Conversation
… rendering over and over again Signed-off-by: lucasew <[email protected]>
Owner
|
Thank you for the contribution! |
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In our project, we have models with about 500 objects but much fewer segmentation instances, and when calculating segmentations repeatedly, we had a very annoying performance problem. Each render iteration gets a bit slower kinda linearly.
After some investigation, we discovered that when this library kicks in it creates one material for each object but every time a render is requested it creates another material instead of reusing the one already there.
This pull request changes this behavior by creating one material per inst_id instead of per object and check if the material is already created so it will not be created again reusing that material and avoiding the slowdown.