You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have some trouble with some of my fbx, when i set the parameter morphTargetInfluences to some weight, i saw that the render of the influence does not match what was made with 3dsmax.
I have done some research to understand why, and manage to find the 'GeometricTranslation' is used in the function genMorphGeometry() when applying a 4x4 matrix (positionAttribute.applyMatrix4( preTransform );)
On the screenshot you can see empty space on top and bottom of the wires of the lamp that correspond to the value in 'GeometricTranslation'
Fbx blend shapes contains a list of vertice index to move and corresponding vertices position depends on the weight. It is raw data, for sure some transformation must apply with the matrix to match the expected render.
But blend shapes vertices positions are already the delta positions from the base vertices positions.
So it means the 'GeometricTranslation' is applied once to the basevertices positions, then currently one more time on the blend shapes vertices positions, that is on my point of view, not correct. I didn't find any documentation about it (hard to find for fbx), but on my side i had already written some c# fbx reader some time ago where i exclude this value.
I currently had a "dirty fix" in local, because not sure it is the good way to do, that is why i didn't made a pull request (and I'm not used to using GitHub also), i pass a second parameter to genGeometry() without translation (see code section)
Reproduction steps
import a fbx with blend shapes and 'GeometricTranslation' not empty on the FbxNode that have blendshape
set 'morphTargetInfluences' to 1
display in scene
Code
remove the translation for morpher in genGeometry and pass also the matrix
Description
I have some trouble with some of my fbx, when i set the parameter morphTargetInfluences to some weight, i saw that the render of the influence does not match what was made with 3dsmax.
I have done some research to understand why, and manage to find the 'GeometricTranslation' is used in the function genMorphGeometry() when applying a 4x4 matrix (positionAttribute.applyMatrix4( preTransform );)
On the screenshot you can see empty space on top and bottom of the wires of the lamp that correspond to the value in 'GeometricTranslation'
Fbx blend shapes contains a list of vertice index to move and corresponding vertices position depends on the weight. It is raw data, for sure some transformation must apply with the matrix to match the expected render.
But blend shapes vertices positions are already the delta positions from the base vertices positions.
So it means the 'GeometricTranslation' is applied once to the basevertices positions, then currently one more time on the blend shapes vertices positions, that is on my point of view, not correct. I didn't find any documentation about it (hard to find for fbx), but on my side i had already written some c# fbx reader some time ago where i exclude this value.
I currently had a "dirty fix" in local, because not sure it is the good way to do, that is why i didn't made a pull request (and I'm not used to using GitHub also), i pass a second parameter to genGeometry() without translation (see code section)
Reproduction steps
Code
Live example
Screenshots
Version
r169
Device
No response
Browser
No response
OS
No response
The text was updated successfully, but these errors were encountered: