KhronosGroup / KhronosGroup/glTF
Clarify multi-node transform behavior with skew and shear
- Dominant language
- HTML
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 17h 26m
- Merged PRs (30d)
- 5
Description
https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#transformations
The glTF specification section for node transformations contains this implementation note:
> Implementation Note
>
> Transformation matrices cannot skew or shear.
However, there is something left unclear. This seems to indicate that the glTF spec does not desire for skewed and sheared transformation matrices to exist in the file. However, it is possible to create a skew/shear by having a parent node with a non-uniform scale, and a child node with a rotation. There is a way to ensure skew/shear cannot be created by composition, by ensuring all transformation matrices are [conformal](https://en.wikipedia.org/wiki/Conformal_linear_transformation), or by disallowing this configuration of a scaled parent with a rotated child.
So, questions:
* What is the desired outcome of disallowing skewed/sheared matrices in glTF?
* Is it to prevent skew/shear from happening? If so, what about the multi-node case?
* Is it purely just to allow converting a node's local transform matrix to TRS? If so, why?
* Is it allowed to create a skew/shear with multiple nodes like this?
* If so, should it be discouraged to compose transforms like this in a way that creates skew/shear?
* Should conformal transformations, where the only scale is uniform, be recommended for non-leaf nodes?
* Things where non-uniform scale makes sense, like meshes, could be specified as leaf nodes.
* However, skew/shear also makes sense with meshes, so that doesn't explain why skew/shear is disallowed.
* If a glTF extension defines objects that cannot be skewed/sheared (as in the case with physics objects in most physics engines), or can't be non-uniformly scaled:
* Is it acceptable for a glTF extension to impose additional restrictions on the glTF node transform, such that any files that create skew/shear are considered invalid?
* Is it acceptable for a glTF extension to impose a conformal restriction so that the only allowed scale is uniform?
Contributor guide
Research direction
Start with the glTF 2.0 specification's Transformations section and the implementation note linked in the issue. Determine the intended rules for skew or shear produced by parent-child composition and for extension-specific restrictions; done means the specification clearly answers these questions.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100