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
Layers are only supported for XRSessions created with XRSessionMode of {{XRSessionMode/"immersive-vr"}}
278
-
or {{XRSessionMode/"immersive-ar"}}. {{XRSessionMode/"inline"}} sessions MUST not support layers.
279
+
or {{XRSessionMode/"immersive-ar"}}. {{XRSessionMode/"inline"}} sessions MUST NOT support layers.
279
280
280
281
The "[=feature descriptor/layers=]" [=feature descriptor=] has a [=feature requirement=] that it cannot be enabled when there is an [=active immersive session=].
@@ -562,9 +563,9 @@ The <dfn attribute for="XRQuadLayer">onredraw</dfn> attribute is an Event handle
562
563
XRCylinderLayer {#xrcylinderayertype}
563
564
---------------
564
565
An {{XRCylinderLayer}} renders a layer that takes up a curved rectangular space in the virtual environment.
565
-
Only the front of the layer MUST be visible; the back face MUST not be drawn by the [=XR Compositor=].
566
+
Only the front of the layer MUST be visible; the back face MUST NOT be drawn by the [=XR Compositor=].
566
567
567
-
<img alt="representation of a cylinder layer" src="images/cylinder-layer.png" style="width:50%; height: 50%; border-style: ridge;"/>
568
+
<img alt="representation of a cylinder layer" src="images/cylinder-layer.png" style="width:50%; height: 50%; border-style: ridge;">
568
569
569
570
A XRCylinderLayer has no thicknes. It is a two-dimensional object positioned and oriented in 3D space. The position
570
571
of the cylinder refers to the center of the quad.
@@ -595,7 +596,7 @@ It grows symmetrically around the 0 angle.
595
596
596
597
The <dfn attribute for="XRCylinderLayer">aspectRatio</dfn> attribute controls the ratio of the visible cylinder section. It is the ratio of the width of the visible section of the cylinder divided by its height. The width is calculated by multiplying the {{XRCylinderLayer/radius}} with the {{XRCylinderLayer/centralAngle}}.
597
598
598
-
<img alt="description of the parameters of a cylinder layer"src="images/cylinder_layer_params.png" style="width: 80%; height: 80%;"/>
599
+
<img alt="description of the parameters of a cylinder layer"src="images/cylinder_layer_params.png" style="width: 80%; height: 80%;">
When <dfn lt="initialize a cylinder layer">initializing an {{XRCylinderLayer}} |layer| with an {{XRCylinderLayerInit}} |init|</dfn>, the user agent MUST run the following steps:
An {{XREquirectLayer}} renders a layer where the [=XR Compositor=] MUST map an equirectangular coded data onto the inside of a sphere.
622
623
623
-
<img alt="representation of an equirect layer" src="images/equirect-layer.png" style="width:50%; height: 50%; border-style: ridge;"/>
624
+
<img alt="representation of an equirect layer" src="images/equirect-layer.png" style="width:50%; height: 50%; border-style: ridge;">
624
625
625
626
ISSUE: this section needs clarification
626
627
@@ -656,7 +657,7 @@ a value higher than 2π will set it to 2π.
656
657
Setting {{XREquirectLayer/upperVerticalAngle}} or {{XREquirectLayer/lowerVerticalAngle}} to a value less than -π/2 will set it
657
658
to -π/2 and setting it to a value higher than π/2 will set it to π/2.
658
659
659
-
<img alt="description of the parameters of an equirect layer" src="images/equirect.png" style="width:50%; height: 50%;"/>
660
+
<img alt="description of the parameters of an equirect layer" src="images/equirect.png" style="width:50%; height: 50%;">
660
661
661
662
When assigning an {{XRSpace}} to the {{XREquirectLayer/space}} attribute, first run the following steps.
662
663
@@ -693,7 +694,7 @@ XRCubeLayer {#xcubelayertype}
693
694
-----------
694
695
A {{XRCubeLayer}} renders a layer where the [=XR Compositor=] renders directly from a cubemap.
695
696
696
-
<img alt="representation of a cube layer" src="images/cube-layer.jpg" style="width:50%; height: 50%; border-style: ridge;"/>
697
+
<img alt="representation of a cube layer" src="images/cube-layer.jpg" style="width:50%; height: 50%; border-style: ridge;">
697
698
698
699
ISSUE: this section needs clarification
699
700
@@ -909,6 +910,11 @@ section in the OpenGL ES 3.0 spec defines these limitations in more detail.
909
910
910
911
Allocation of the resources for layers (such as memory) MUST be done through the same mechanism as WebGL.
911
912
913
+
If an {{XRLayer}} is allocated with the {{RGBA}} or {{RGB}}{{XRLayerInit/colorFormat}}, its [=colorTextures=] MUST be exposed as {{RGBA}} or {{RGB}} to the {{WebGLRenderingContext}} context.
914
+
However, the [=XR Compositor=] MUST treat the [=colorTextures=]'s pixels as if they were in the {{SRGB8_ALPHA8}} or {{SRGB8}}{{XRLayerInit/colorFormat}}.
915
+
916
+
NOTE: this means that the [=XR Compositor=] MUST NOT do any gamma conversion from linear {{RGBA}} or {{RGB}} when it processes the [=colorTextures=]. Otherwise, the pixels in the final rendering will appear too bright which will not match the rendering on a regular 2D {{WebGLRenderingContext}} context.
0 commit comments