Skip to content
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

Placing non-3D content into a Scene #2260

Open
tomcrane opened this issue Jul 14, 2023 · 3 comments
Open

Placing non-3D content into a Scene #2260

tomcrane opened this issue Jul 14, 2023 · 3 comments
Labels
3d presentation Ready-for-Eds Editorial changes ready for Editorial review

Comments

@tomcrane
Copy link
Contributor

This issue is IIIF/3d#14 (comment)

Quoted here:

During the IIIF Annual Conference 2023 the week of June 5 2023, there was discussion of potential requirements and attributes for annotating canvases or 2D content resources within 3D scenes:

  • Needs a transformation position target to place the canvas into the scene, painting a canvas centroid "origin" point into the scene at the position target
  • When a canvas is placed into a 3D scene, the "center" of the canvas for 3D purposes should be considered the center of the 2D resource, NOT the top-left 2D origin. In other words, if a canvas with height and width of 200, 400 is placed at the 3D coordinate origin 0, 0, 0, then the 2D canvas point to be placed at the 3D coordinates 0, 0, 0 would be 2D canvas coordinates 100, 200, not 2D canvas coordinates 0, 0.
  • How do 2D pixels relate to 3D coordinate units, since the two will often exist at wildly different scales? Potentially we could include a scale factor property. Alternately instead of (or in addition to) using a single position transformation point and placing the canvas at that point, the target selector could specify a 2D rectangle area in space to which the canvas would be transformed

Not discussed during the conference, but we should consider whether 2D canvas resources need a normal property of some kind?

@azaroth42
Copy link
Member

I think we need transforms? For example you would need to target a 0 depth rectangle to annotate in a Canvas, and then rotate it to be on a diagonal on any of the axes. Otherwise you'd be targeting a 3d cube. But if you can rotate, can you also scale? Then it could be that 0,0 of the 2d space is positioned at target point, and then the result is manipulated?

(Unless the interpretation of the cube is that the 2d spans from the top left front, to the bottom right back ... but then how do you do the opposite angle ... I think we need to keep in mind the simple-as-possible maxim here!)

@azaroth42
Copy link
Member

azaroth42 commented Jan 30, 2024

Given more recent discussions, I think this is relatively solved :)

The key point is that the centroid of the 2d content is used as its origin in a 3d environment, not top left, and it has a depth of 0. From there we can apply Transforms on the body of the annotation to manipulate scale, position and rotation.

Question: What happens when you look at the back of 2d content. Is it the content, but mirrored? Is it invisible? Is it a default solid? I would propose the content but mirrored, on the grounds that if you move the camera to an oblique angle to the content it appears like it's flipping around.

@tomcrane
Copy link
Contributor Author

tomcrane commented Jan 31, 2024

Do we require that you get 2D content - bitmap images, video - into a Scene via a IIIF Canvas rather than directly?

Yes! You can't put a JPEG in directly, you have to go via a Canvas.

This means that annotations on the Canvas are available, and new annotations can be made on the Canvas from the Scene context but still target that Canvas rather than Scene space.

Viewers can use Image API if available, that's an implementation detail. You could put a complex AV Canvas with multiple images, audio and video and text on the Canvas, in theory. Viewers might have trouble rendering that but the simple single-content-resource is no harder to do, and requiring the Canvas leaves the door open to many many more use cases.

@azaroth42 azaroth42 added the Ready-for-Eds Editorial changes ready for Editorial review label Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3d presentation Ready-for-Eds Editorial changes ready for Editorial review
Projects
None yet
Development

No branches or pull requests

2 participants