Add skinning support for gfx-replay and legacy replay rendering.#2120
Add skinning support for gfx-replay and legacy replay rendering.#2120
Conversation
eundersander
left a comment
There was a problem hiding this comment.
Good progress! I left comments. Let me know when I should look again!
| std::string shaderTypeToUseString; | ||
| // read as string | ||
| bool shaderTypeSucceess = fromJsonValue(obj, shaderTypeToUseString); | ||
| bool shaderTypeSuccess = fromJsonValue(obj, shaderTypeToUseString); |
There was a problem hiding this comment.
Thanks for fixing all the spelling typos!
| } | ||
| } | ||
|
|
||
| void BulletPhysicsManager::instantiateSkinnedModel( |
There was a problem hiding this comment.
@aclegg3 maybe you wanna take a look at changes to BulletPhysicsManager.
| /** | ||
| * @brief The next available unique ID for instantiated rigs. | ||
| */ | ||
| int _nextRigInstanceID = 0; |
There was a problem hiding this comment.
In the future we could revisit this so that it managed IDs similar to how PhysicsManager does, reusing freed IDs instead of just incrementing, on the off chance that the RigManager may persist through billions of training cycles.
jturner65
left a comment
There was a problem hiding this comment.
LGTM. Always nice to see some things move out of ResourceManager that can.
|
FYI - Tests were passing prior to rebasing to main due to our CI image losing support.
The last run was green. |
Motivation and Context
This changeset adds support for:
Capture from the SIRo sandbox tool, which renders using the classic replay renderer:
fetch-2023-09-29_19.20.31.mp4
How it works
Overview
This changeset introduces a new structure,
Rig, which contains a node for each bone of a skinned model. During asset instantiation, theRigis associated to the model instance so that it can be posed during rendering.Therefore, the skinned model is animated by modifying transforms of the
Rigbone nodes. This is currently done in either of those ways:rigUpdate.posein gfx-replay keyframes.Gfx-replay
Two new keyframe fields are introduced:
Additionally, RenderAssetCreationInfo now has a rigId field.
How Has This Been Tested
Types of changes
Checklist