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
For morph/skinning compression, I would like to propose the following approach.
Let's say that we have a base mesh M with the following associated attributes:
M.position: vertices positions,
M.normal: vertices normals,
M.floatAttribute0: vertices texCoord set 0,
M.floatAttribute1: vertices texCoord set 1,
M.floatAttribute2: vertices animation weights,
M.intAttribute0: vertices joint IDs.
Let T(0), T(1), ..., T(n) be the associated morphing targets and let's suppose than only the vertices positions and attributes are update by the morphing. Therefore, only the following information need to be stored for each target T(i):
T(i).position: vertices positions, and
T(i).normal: vertices normals.
I propose to encode {M, (Ti)i} in one stream to be able to exploit the correlations between the base mesh M and the targets (Ti)i. More precisely, we will encode a mesh C composed of the following information:
Closing, I think we have both interest and tentative plans to iterate from KHR_draco_mesh_compression to support morphs, skinning, or both, but probably do not need an issue open at this stage.
For morph/skinning compression, I would like to propose the following approach.
Let's say that we have a base mesh M with the following associated attributes:
M.position: vertices positions,
M.normal: vertices normals,
M.floatAttribute0: vertices texCoord set 0,
M.floatAttribute1: vertices texCoord set 1,
M.floatAttribute2: vertices animation weights,
M.intAttribute0: vertices joint IDs.
Let T(0), T(1), ..., T(n) be the associated morphing targets and let's suppose than only the vertices positions and attributes are update by the morphing. Therefore, only the following information need to be stored for each target T(i):
T(i).position: vertices positions, and
T(i).normal: vertices normals.
I propose to encode {M, (Ti)i} in one stream to be able to exploit the correlations between the base mesh M and the targets (Ti)i. More precisely, we will encode a mesh C composed of the following information:
C.position = M.position,
C.normal = M.normal,
C.floatAttribute0: vertices texCoord set 0,
C.floatAttribute1: vertices texCoord set 1,
C.floatAttribute2: vertices animation weights,
C.intAttribute0: vertices joint IDs.
C.floatAttribute3 = T(0).position- M.position,
C.floatAttribute4 = T(0).normal - M.normal,
C.floatAttribute5 = T(1).position - M.position,
C.floatAttribute6 = T(1).normal- M.normal, ...
C.floatAttribute2n+3 = T(n).position - M.position,
C.floatAttribute2n+4 = T(n).normal- M.normal,
Any thoughts?
The text was updated successfully, but these errors were encountered: