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
Copy file name to clipboardExpand all lines: source/presentation/4.0/model.md
+82-17Lines changed: 82 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -598,6 +598,16 @@ __Properties__<br/>
598
598
Orthographic Cameras _SHOULD_ have the following additional properties: [viewHeight](#viewHeight).
599
599
{: .note}
600
600
601
+
```json
602
+
{
603
+
"id": "https://example.org/iiif/camera/1",
604
+
"type": "OrthographicCamera",
605
+
"near": 1.0,
606
+
"far": 100.0,
607
+
"viewHeight": 40.0
608
+
}
609
+
```
610
+
601
611
602
612
##### Perspective Camera
603
613
@@ -607,12 +617,14 @@ Orthographic Cameras _SHOULD_ have the following additional properties: [viewHei
607
617
608
618
The region of the Scene's space that is observable by the camera is bounded by two planes orthogonal to the direction the camera is facing, given in the `near` and `far` properties, and a vertical projection angle that provides the top and bottom planes of the region in the `fieldOfView` property.
609
619
610
-
Properties...
620
+
__Properties__<br/>
621
+
Perspective Cameras _SHOULD_ have the following additional properties: [fieldOfView](#fieldOfView).
622
+
{: .note}
611
623
612
624
613
625
```json
614
626
{
615
-
"id": "https://example.org/iiif/camera/1",
627
+
"id": "https://example.org/iiif/camera/2",
616
628
"type": "PerspectiveCamera",
617
629
"near": 1.0,
618
630
"far": 100.0,
@@ -621,42 +633,95 @@ Properties...
621
633
```
622
634
623
635
#### Lights
636
+
637
+
It is necessary for there to be a Light within a Scene that illuminates the objects. If no Light is provided by the Scene's description, then the client _MUST_ add a Light.
638
+
639
+
This specification does not define other aspects of Lights, such as the rate of decay of the intensity of the light over a distance, the maximum range of the light, or the penumbra of a cone. Implementation of these aspects is client-dependent.
640
+
641
+
The specification defines four types of Light, below.
642
+
643
+
__Properties__<br/>
644
+
All Lights _MUST_ have the following properties: [id](#id), and [type](#type).<br/><br/>
645
+
All Lights _SHOULD_ have the following properties: [color](#color), and [intensity](#intensity).<br/><br/>
646
+
All Lights _MAY_ have the following properties: [label](#label).
647
+
{: .note}
648
+
624
649
625
650
##### Ambient Light
626
651
627
-
`"type": "AmbientLight"`
652
+
> `"type": "AmbientLight"`
628
653
629
-
Ambient Light evenly illuminates all objects in the Scene, and does not have a direction or position.
654
+
Ambient Light evenly illuminates all objects in the Scene, and does not have a direction or position. It does not have any new properties. The Light itself _MUST_ be added into the scene at a specific position, however this is only such that editing interfaces can render the object to the user.
655
+
656
+
```json
657
+
{
658
+
"id": "https://example.org/iiif/light/1",
659
+
"type": "AmbientLight",
660
+
"color": "#F0A0F0",
661
+
}
662
+
```
630
663
631
664
##### Directional Light
632
665
633
-
`"type": "DirectionalLight"`
666
+
> `"type": "DirectionalLight"`
667
+
668
+
Directional Lights emit their light in a specific direction as if infinitely far away, and as such the light does not come from a specific position. The rays produced are all parallel. The Light itself _MUST_ be added into the scene at a specific position, however this is only such that editing interfaces can render the object to the user.
634
669
635
-
Directional Light emits in a specific direction as if it is infinitely far away and the rays produced from it are all parallel. It does not have a specific position.
670
+
The light is emitted in the negative Y (-y) direction by default, thus straight down, but the orientation of the light can be altered with `lookAt` or with a `RotationTransform`.
636
671
637
-
The light is emitted in the negative Y (-y) direction by default, but the orientation of the light can be altered by subsequent transforms.
672
+
__Properties__<br/>
673
+
Directional Lights _MAY_ have the following additional properties: [lookAt](#lookAt)
Point Lights emit from a single point within the Scene in all directions.
690
+
691
+
```json
692
+
{
693
+
"id": "https://example.org/iiif/light/3",
694
+
"type": "PointLight",
695
+
"color": "#A0F0F0"
696
+
}
697
+
```
642
698
643
-
Point Light emits from a single point within the Scene in all directions.
644
699
645
700
##### Spot Light
646
701
647
-
`"type": "SpotLight"`
702
+
> `"type": "SpotLight"`
648
703
649
704
Spot Light emits a cone of light from a single point in a given direction. The Spot Light's `angle` property defines the radius of the cone.
650
705
651
706
The Spot Light emits in the negative Y (-y) direction by default, but the orientation of the light can be altered by subsequent transforms.
652
707
708
+
<imgsrc="https://raw.githubusercontent.com/IIIF/3d/eds/assets/images/angle-of-cone.png"title="Angle of cone"alt="diagram of cone geometry showing how the angle of the cone is defined"width="250"/>
709
+
710
+
__Properties__<br/>
711
+
Spot Lights _SHOULD_ have the following additional properties: [angle](#angle)<br/><br/>
712
+
Spot Lights _MAY_ have the following additional properties: [lookAt](#lookAt)
@@ -674,19 +739,19 @@ Volume is relative to the input audio source's volume.
674
739
675
740
##### Ambient Audio
676
741
677
-
`"type": "AmbientAudio"`
742
+
> `"type": "AmbientAudio"`
678
743
679
744
Ambient Audio emits equally throughout the Scene, and does not have a position or direction.
680
745
681
746
##### Point Audio
682
747
683
-
`"type": "PointAudio"`
748
+
> `"type": "PointAudio"`
684
749
685
750
Point Audio emits from a single point in the Scene in all directions.
686
751
687
752
##### Spot Audio
688
753
689
-
`"type": "SpotAudio"`
754
+
> `"type": "SpotAudio"`
690
755
691
756
Spot Audio emits a cone of sound from a single point in a given direction. The Spot Audio's `angle` property defines the radius of the cone.
692
757
@@ -725,20 +790,20 @@ here are the rules about transforms?
725
790
726
791
##### Rotate Transform
727
792
728
-
`"type": "RotateTransform"`
793
+
> `"type": "RotateTransform"`
729
794
730
795
A RotateTransform rotates the local coordinate space around the given axis in a counter-clockwise direction around the axis itself (e.g. around a pivot point of 0 on the axis). A point that was at x=1,y=1 and was rotated 90 degrees around the x axis would be at x=1,y=0,z=1. If an axis value is not specified, then it is not changed, resulting in a default of 0.0
731
796
732
797
733
798
##### Scale Transform
734
799
735
-
`"type": "ScaleTransform"`
800
+
> `"type": "ScaleTransform"`
736
801
737
802
A ScaleTransform applies a multiplier to one or more axes in the local coordinate space. A point that was at 3.5, after applying a ScaleTransform of 2.0 would then be at 7.0. If an axis value is not specified, then it is not changed, resulting in a default of 1.0
738
803
739
804
##### Translate Transform
740
805
741
-
`"type": "TranslateTransform"`
806
+
> `"type": "TranslateTransform"`
742
807
743
808
A TranslateTransform moves all of the objects in the local coordinate space the given distance along the axis. A point that was at x=1.0, after applying a TranslateTransform of x=1.0 would be at x=2.0. If an axis value is not specified then it is not changed, resulting in a default of 0.0
0 commit comments