Skip to content

Commit 0ccfd8b

Browse files
authored
Merge pull request #2434 from IIIF/p4-more-light-tweaks
More tweaks and language updates around lighting
2 parents b3021ae + bfb07c8 commit 0ccfd8b

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

source/presentation/4.0/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2035,7 +2035,7 @@ A [`PointSelector`][prezi-40-model-PointSelector] can be used to modify the poin
20352035

20362036
Like Timelines or Canvases, Scenes can be painted into Scenes. As with other resources, it may be appropriate to modify the initial scale, rotation, or translation of a content resource Scene prior to painting it within another Scene. Scenes associated with SpecificResources may be manipulated through [Transforms](#transforms).
20372037

2038-
When a Scene is nested into another Scene, the [`backgroundColor`][prezi-40-model-backgroundColor] of the Scene to be nested should be ignored as it would have no meaningful effect. All Annotations painted into the Scene to be nested will be painted into the Scene into which content is being nested, including Light or Camera resources. If the Scene to be nested has one or more Camera Annotations while the Scene into which content is being nested does not, the first Camera Annotation from the nested Scene will become the default Camera for the overall Scene.
2038+
When a Scene is nested into another Scene, the [`backgroundColor`][prezi-40-model-backgroundColor] of the Scene to be nested should be ignored as it would have no meaningful effect. Similarly, if both Scenes have ImageBasedLight Annotations, the ImageBasedLight Annotation of the Scene into which the Scene will be nested takes precedence. All other Annotations painted into the Scene to be nested will be painted into the Scene into which content is being nested, including Light or Camera resources. If the Scene to be nested has one or more Camera Annotations while the Scene into which content is being nested does not, the first Camera Annotation from the nested Scene will become the default Camera for the overall Scene.
20392039

20402040
```jsonc
20412041
{

source/presentation/4.0/model.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ Containers _MAY_ be treated as content resources for the purposes of annotating
548548

549549
A Canvas painted into a Scene has special requirements. The top-left corner of the Canvas _MUST_ be aligned with either the Scene coordinate origin by default or with a specific 3D point in the Scene if a [Point Selector](#point-selector) is used. The Canvas _MUST_ be scaled to the Scene such that Canvas coordinate dimensions after any [Transforms](#transforms) are applied correspond to Scene coordinate dimensions with 1:1 scaling. A Canvas painted into a Scene as an Annotation has forward and backward faces, and by default the forward face is toward the positive z axis of the Scene, though this may be modified by Transforms. The content of the Canvas _SHOULD_ be displayed on the forward face, and the backward face _SHOULD_ display either any `backgroundColor` of the Canvas or a reverse view of the content.
550550

551-
A Scene painted into a Scene has one special requirement, that any `backgroundColor` of the Scene to be painted _SHOULD_ be ignored.
551+
A Scene painted into a Scene has two special processing rules. The first is that any `backgroundColor` of the Scene to be painted _SHOULD_ be ignored. The second is that when both Scenes have ImageBasedLight Annotations, clients _MAY_ ignore any ImageBasedLight Annotation of the Scene to be painted.
552552

553553
__Properties__<br/>
554554
A Content Resource _MUST_ have the following properties: [id](#id) and [type](#type).<br/><br/>
@@ -837,7 +837,7 @@ All Lights _MAY_ have the following properties: [id](#id) and [label](#label).
837837
{: #AmbientLight}
838838
> `"type": "AmbientLight"`
839839
840-
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.
840+
Ambient Light evenly illuminates all objects in the Scene, and does not have a direction or position. It does not have any new properties.
841841

842842
__Properties__<br/>
843843
An Ambient Light _SHOULD_ have the following additional properties: [color](#color).<br/><br/>
@@ -856,7 +856,7 @@ An Ambient Light _SHOULD_ have the following additional properties: [color](#col
856856
{: #DirectionalLight}
857857
> `"type": "DirectionalLight"`
858858
859-
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.
859+
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.
860860

861861
The light is emitted in the negative Y direction by default, thus straight down, but the orientation of the light can be altered with `lookAt` or with a `RotateTransform`.
862862

@@ -879,7 +879,7 @@ A Directional Light _MAY_ have the following additional properties: [lookAt](#lo
879879
{: #ImageBasedLight}
880880
> `"type": "ImageBasedLight"`
881881
882-
Image-Based Lights illuminate objects in a Scene using lighting information derived from an image, typically a panoramic environment map. They simulate complex, realistic lighting without a specific direction or position.
882+
Image-Based Lights illuminate objects in a Scene using lighting information derived from an image, typically a panoramic environment map. They simulate complex, realistic lighting without a specific position. Light cast is omnidirectional, but the orientation of the light can be altered with a `RotateTransform`.
883883

884884
__Properties__<br/>
885885
An Image-Based Light _MUST_ have the following properties: [environmentMap](#environmentMap).<br/><br/>
@@ -973,7 +973,7 @@ All Audio Emitters _MAY_ have the following properties: [id](#id) and [label](#l
973973
{: #AmbientAudio}
974974
> `"type": "AmbientAudio"`
975975
976-
Ambient Audio emits equally throughout the Scene, and does not have a position or direction. The Emitter _MUST_ be annotated somewhere within the Scene so that it can be rendered by editing interfaces, and exists within the Scene's hierarchy.
976+
Ambient Audio emits equally throughout the Scene, and does not have a position or direction.
977977

978978
{% include api/code_header.html %}
979979
```json
@@ -1439,7 +1439,13 @@ This property sets the color of a Light.
14391439

14401440
The value _MUST_ be a string, which defines an RGB color. It _SHOULD_ be a hex value starting with "#" and is treated in a case-insensitive fashion. If this property is not specified, then the default value is "#FFFFFF".
14411441

1442-
* A Light _SHOULD_ have the `color` property<br/>
1442+
* An AmbientLight _SHOULD_ have the `color` property<br/>
1443+
Clients _SHOULD_ render `color` on any resource type.
1444+
* A DirectionalLight _SHOULD_ have the `color` property<br/>
1445+
Clients _SHOULD_ render `color` on any resource type.
1446+
* A PointLight _SHOULD_ have the `color` property<br/>
1447+
Clients _SHOULD_ render `color` on any resource type.
1448+
* A SpotLight _SHOULD_ have the `color` property<br/>
14431449
Clients _SHOULD_ render `color` on any resource type.
14441450
* Other resources _MUST NOT_ have the `color` property.
14451451

@@ -1907,8 +1913,8 @@ The value _MUST_ be a JSON object, conforming to either a reference to an Annota
19071913

19081914
* A Camera _MAY_ have the `lookAt` property.<br/>
19091915
Clients _SHOULD_ process the `lookAt` property on Cameras.
1910-
* A SpotLight or a DirectionalLight _SHOULD_ have the `lookAt` property.<br/>
1911-
* A SpotAudio _SHOULD_ have the `lookAt` property.
1916+
* A SpotLight or a DirectionalLight _MAY_ have the `lookAt` property.<br/>
1917+
* A SpotAudio _MAY_ have the `lookAt` property.
19121918

19131919
{% include api/code_header.html %}
19141920
```json

0 commit comments

Comments
 (0)