-
Notifications
You must be signed in to change notification settings - Fork 54
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
3D Transforms #2256
Comments
Also |
Don't need the Translate transform, as that's relative to the Scene, not the model. Thus the target is the right place for the transformation, not the body. Hence we use a selector on the Specific Resource of the target. |
|
Riffing on the above snippet to add the other 2 transforms at the annotation level, keeping just a translate transform at the target level.
|
In thinking this through, I'm -1 on TranslateTransform. The translation doesn't apply to the scene, it applies to the model within the scene, but that's not what the JSON says. |
As was requested during the Basel working meeting on 10/26/2023, adding a note to say that the scale transform as indicated here is using degrees (rather than radians) for reasons of human readability. |
See https://github.com/IIIF/api/blob/rob_3d/source/presentation/4.0/examples.md where @azaroth42 created a few JSON snippets:
RS from the Google Doc: Transforms are allowed on specific resources, which specify an ordered series of operations to perform on the resource. If there is a Selector, then the transforms operate on the selected part of the resource. There are three Transforms (Scale, Rotate and Translate). They can be repeated in the transforms list. The result of Selection + Transformation is then annotated to a point in the target Scene with a painting Annotation. The model's coordinate space and the Scene's coordinate space must be aligned, which is done by setting the origin of the model to the origin of the scene. The location within the model's coordinate space is given by a PointSelector to change the alignment to the point selected, rather than the origin. |
See #2266 |
Though part of this is also stated by @julsraemy above, I wanted to detail some general consensus items from the Basel conference working meeting on October 26, 2023:
|
Some further details from @JulieWinchester to my question: If you do have a TranslateTransform on the body, it applies within that body's space - the model's space.
|
Proposal from @JulieWinchester that negative numbers are allowed for flipping axes. E.g. to go from right to left handed. (+1 from me) |
In addition to the three standard transforms
This kind of operation - centering a model before carrying out further transforms like scaling or rotating - is extremely common when working with 3D. It's also not always immediately obvious from an end-user perspective what is the off-set of the model centroid from the origin, unless one delves directly into the 3D coordinate data. Because of this, if a user wanted to use |
(decisions and suggestions from IIIF/3d#11 (comment))
We need to be able to scale and rotate models to place them in the
Scene
.To do this we can add a transforms property to SpecificResource, to specify an ordered sequence of changes to make to the model (or selected part of the model) before placing at the painting annotation target (as above #2253)
From Rob’s draft:
We need at least two transform classes:
Note that a full example of a SpecificResource may also have a selector (as #2255) if only part of the model is required.
The text was updated successfully, but these errors were encountered: