-
Notifications
You must be signed in to change notification settings - Fork 57
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
Geometry nodes support #160
Conversation
…extended BlenderPyContext to interface between bindings and caller code. Added access via the iterators on msBlendContext::exportMesh (WIP)
…t for evaluating the RNAPointer to an Object
…ng instancing info in mesh transform
Sean Dillon seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
…ata on the object with the geometry node modifier
…above. Better resource lifetime using exporter events
…ny mode (auto or manual)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @sindharta here is a self-review with some changes I would like to make in this PR. On a higher level, I noticed that while the VariantData works well for manual sync, auto sync requires some state management around what is dirty or not.
A quick and dirty solution to the latest commit is to change the Transform checksum to take into account the variant data checksums.
A cleaner solution would be to create a manager class for instances, similar to the entityManager. That would allow us to create our own serializable objects for instances and additional info if required. It would also decouple the instances info from meshes, so we should be able to send scene updates for instances without re-sending the mesh data.
Let me know what you think about the plan, any feedback would be appreciated!
A general question. Without this PR on the Meshsync side: 549, will Unity just simply ignore the instance info ? |
Another idea is, can we make a certain user interaction to set a flag for sending geometry node variant data, instead of having to calculate the checksum of all variant data. |
I think it will be safe. Unity will simply not check for the variant data. I will definitely test it before merging in any case. |
That's a good point. At the moment I have started moving away from the VariantData approach but if we were to merge the variant data solution, I will make sure to implement this |
…odes class to a geometry nodes utility class
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implemented the Instance manager class and updated the scene exported to use it. Need to validate thread safety.
…ulated and handled correctly with regards to the instancing info
Plugins~/Src/MeshSyncClient/Include/MeshSyncClient/msInstancesManager.h
Outdated
Show resolved
Hide resolved
Plugins~/Src/MeshSyncClient/Include/MeshSyncClient/msTransformManager.h
Outdated
Show resolved
Hide resolved
Plugins~/Src/MeshSyncClient/Include/MeshSyncClient/msInstancesManager.h
Outdated
Show resolved
Hide resolved
Plugins~/Src/MeshSyncClientBlender/BlenderPyObjects/BlenderPyDepsgraph.h
Show resolved
Hide resolved
…and InstancesManager
…oManager up to TransformManager. Introduced ITransformManager interface.
…for path providers
…verted change to singleton pattern that used a raw pointer
…ions to msblenContextGeometryNodes.cpp. Renamed msblenGeometryNodes to msblenGeometryNodeUtils
Plugins~/Src/MeshSyncClientBlender/msblenContextGeometryNodes.cpp
Outdated
Show resolved
Hide resolved
Plugins~/Src/MeshSyncClient/Include/MeshSyncClient/msTransformManager.h
Outdated
Show resolved
Hide resolved
Moved to #185 to fix issue with CLA client |
Support for sending instance info from geometry nodes