From 11f4cbbddf7e079212d6475047740e6bac481376 Mon Sep 17 00:00:00 2001 From: Daniel Rossi Date: Mon, 30 Mar 2026 00:30:05 +1100 Subject: [PATCH 1/4] XRManager: Adds native equirect and quad media layer render - Adds equirect and quad media layer render to XRManager - Refactor quad and cylinder layer creation with common mesh and blend utility methods - Add media layer example --- examples/files.json | 3 +- .../screenshots/webgpu_xr_media_layer.jpg | Bin 0 -> 85078 bytes examples/webgpu_xr_media_layer.html | 345 ++++++++++++++++++ src/renderers/common/XRLayerUtils.js | 262 +++++++++++++ src/renderers/common/XRManager.js | 304 +++++++++++++-- 5 files changed, 874 insertions(+), 40 deletions(-) create mode 100644 examples/screenshots/webgpu_xr_media_layer.jpg create mode 100644 examples/webgpu_xr_media_layer.html create mode 100644 src/renderers/common/XRLayerUtils.js diff --git a/examples/files.json b/examples/files.json index 85dc5dc3d49bd8..446287dc79cea9 100644 --- a/examples/files.json +++ b/examples/files.json @@ -501,7 +501,8 @@ "webgpu_water", "webgpu_xr_rollercoaster", "webgpu_xr_cubes", - "webgpu_xr_native_layers" + "webgpu_xr_native_layers", + "webgpu_xr_media_layer" ], "webaudio": [ "webaudio_orientation", diff --git a/examples/screenshots/webgpu_xr_media_layer.jpg b/examples/screenshots/webgpu_xr_media_layer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e5e745ac5f4d7e3c8b95617eaaa2e418dc2525b GIT binary patch literal 85078 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 VM{4S$wfg@6!Dl@F*U$Ao|JlMknnVBq literal 0 HcmV?d00001 diff --git a/examples/webgpu_xr_media_layer.html b/examples/webgpu_xr_media_layer.html new file mode 100644 index 00000000000000..c9acc25f1d0393 --- /dev/null +++ b/examples/webgpu_xr_media_layer.html @@ -0,0 +1,345 @@ + + + + three.js vr - 360 stereo video + + + + + +
+
+ +
+
+ +
+ + + + + + + + diff --git a/src/renderers/common/XRLayerUtils.js b/src/renderers/common/XRLayerUtils.js new file mode 100644 index 00000000000000..a7527f7f4edc97 --- /dev/null +++ b/src/renderers/common/XRLayerUtils.js @@ -0,0 +1,262 @@ + +import { SphereGeometry } from '../../geometries/SphereGeometry.js'; + +import { PlaneGeometry } from '../../geometries/PlaneGeometry.js'; +import { MeshBasicMaterial } from '../../materials/MeshBasicMaterial.js'; +import { Mesh } from '../../objects/Mesh.js'; + +import { AddEquation, CustomBlending, FrontSide, ZeroFactor } from '../../constants.js'; + +/** + * Utility methods for native layer creation. + * Common methods for creating sphere and planes for stereo abd mono video textures. + */ + +//The UV mapping geometry transforms for stereo layouts. +const UVMapFactors = { + 'stereo-top-bottom': [ + { yMult: 0.5, yPhase: 0, xMult: 1.0, xPhase: 0 }, + { yMult: 0.5, yPhase: 0.5, xMult: 1.0, xPhase: 0 } + ], + 'stereo-left-right': [ + { yMult: 1.0, yPhase: 0, xMult: 0.5, xPhase: 0 }, + { yMult: 1.0, yPhase: 0, xMult: 0.5, xPhase: 0.5 } + ] +}; + +/** + * set the uv mapping for each eye in a stereo video. + * uv factors for stereo-left-right and stereo-top-bottom layouts is applied. + * @param {number} [eyeIndex = 1] The mesh layer eye index for stereo rendering. + * @param {Object} [uvFactors] The uv factories for a set stereo layout. + * @param {Geometry} geometry The geometry to transform. + */ +const setUVMapping = ( eyeIndex, uvFactors, geometry ) => { + + const eyeUvfactor = uvFactors[ eyeIndex - 1 ], + uvs = geometry.attributes.uv.array; + + for ( let i = 0; i < uvs.length; i += 2 ) { + + //x + uvs[ i ] *= eyeUvfactor.xMult; + uvs[ i ] += eyeUvfactor.xPhase; + //y + uvs[ i + 1 ] *= eyeUvfactor.yMult; + uvs[ i + 1 ] += eyeUvfactor.yPhase; + + } + +}; + +/** + * Positions the plane to the set translation and quaternion. + * @param {Planegoemetry} [plane] The plane to position. + * @param {Vector3} [translation] The position vector. + * @param {Quaternion} quaternion The quaternion to set. + */ +const positionQuad = ( plane, translation, quaternion ) => { + + plane.position.copy( translation ); + plane.quaternion.copy( quaternion ); + +}; + +/** + * Create a common material for mesh creation. + * @param {number} [side = Frontside] The side to set for the material. + * @return {MeshBasicMaterial} Return the mesh material. + */ +const createMaterial = ( side = FrontSide ) => new MeshBasicMaterial( { color: 0xffffff, side: side } ); + +/** + * Creates a mesh material providing a texture. + * @param {VideoTexture} texture The video texture + * @return {MeshBasicMaterial} The mesh material. + */ +const createMeshMaterial = ( texture ) => { + + const material = createMaterial(); + material.map = texture; + return material; + +}; + +/** + * Creates a full and half sphere geometry. + * @param {number} [radius = 500] The SphereGeometry radius. + * @param {number} [widthSegments = 60] The SphereGeometry width segments. + * @param {number} [heightSegments = 40] The SphereGeometry height segments. + * @param {boolean} [is180 = false] If it's a 180 video. + * @return {SphereGeometry} The full or half sphere geometry. + */ +const createSphereGeometry = ( radius, widthSegments, heightSegments, is180 = false ) => { + + let phiStart = 0, phiLength = Math.PI * 2; + + if ( is180 ) { + + phiStart = Math.PI / 2, phiLength = Math.PI; + + } + + const geometry = new SphereGeometry( radius, widthSegments, heightSegments, phiStart, phiLength ); + + geometry.scale( - 1, 1, 1 ); + return geometry; + +}; + +/** + * Creates a mesh. + * If uvFactors is given it will create stereo transformed meshes. + * @param {VideoTexture} texture The video texture + * @param {number} [eyeIndex = 0] The mesh layer eye index for stereo rendering. + * @param {Geometry} [geometry] Tje geometry. + * @param {MeshBasicMaterial} [material] The material. If not set creates a material with texture. + * @param {Object} [uvFactors] The uv factors for a set stereo layout. + * @return {Mesh} The created mono/stereo transformed mesh. + */ +const createMesh = ( texture, eyeIndex = 0, geometry, material, uvFactors = null ) => { + + //if has stereo layout set the uv mapping. + if ( uvFactors ) { + + setUVMapping( eyeIndex, uvFactors, geometry ); + + } + + const mesh = new Mesh( geometry, material || createMeshMaterial( texture ) ); + mesh.layers.set( eyeIndex ); + + return mesh; + +}; + +/** + * Creates a sphere mesh for mono/stereo 360/180 textures. + * @param {VideoTexture} texture The video texture + * @param {number} [eyeIndex = 0] The mesh layer eye index for stereo rendering. + * @param {number} [radius = 500] The SphereGeometry radius. + * @param {number} [widthSegments = 60] The SphereGeometry width segments. + * @param {number} [heightSegments = 40] The SphereGeometry height segments. + * @param {Object} [uvFactors] The uv factors for a set stereo layout. + * @param {boolean} [is180 = false] If it's a 180 video. + * @return {Mesh} The sphere mesh. + */ +const createSphereMesh = ( texture, eyeIndex = 0, radius, widthSegments, heightSegments, uvFactors = null, is180 = false, material = null ) => { + + const geometry = createSphereGeometry( radius, widthSegments, heightSegments, is180 ), + mesh = createMesh( texture, eyeIndex, geometry, material, uvFactors ); + + //only rotate for stereo layouts. + mesh.rotation.y = uvFactors ? - Math.PI / 2 : 0; + + return mesh; + +}; + +/** + * Creates a plane mesh for mono/stereo textures. + * @param {VideoTexture} texture The video texture + * @param {number} [eyeIndex = 0] The mesh layer eye index for stereo rendering. + * @param {number} [quadWidth = 0] The quad layer width in meter units. + * @param {number} [quadHeight = 0] The quad layer height in meter units. + * @param {Vector3} translation - The position/translation of the layer plane in world units. Native layer Z is 2 units more required than non layer planes. + * @param {Object} [quaternion={}] A transform quaternion param for the layer. + * @param {Object} [uvFactors] The uv factors for a set stereo layout. + * @return {Mesh} The plane mesh. + */ +const createPlaneMesh = ( texture, eyeIndex = 0, quadWidth = 1, quadHeight = 1, translation = {}, quaternion = {}, uvFactors = null, material = null ) => { + + const geometry = new PlaneGeometry( quadWidth, quadHeight ), + mesh = createMesh( texture, eyeIndex, geometry, material, uvFactors ); + + positionQuad( mesh, translation, quaternion ); + + return mesh; + +}; + + +/** + * Creates a blend layer material required for native layer rendering. + * @param {number} [side = Frontside] The side to set for the material. + * @return {MeshBasicMaterial} The blend layer material. + */ +const createBlendLayerMaterial = ( side = FrontSide ) => { + + const material = createMaterial( side ); + material.blending = CustomBlending; + material.blendEquation = AddEquation; + material.blendSrc = ZeroFactor; + material.blendDst = ZeroFactor; + return material; + +}; + +/** + * Toggle between the 2D non layer meshes and the blend layer meshes for native layer rendering. + * This is needed to disable video texture rendering from the 2D meshes. + * @param {Object} [layer] The layer data object. + * @param {boolean} [toggle] Toggle on/off. + */ +const toggleBlendLayerRender = ( layer, toggle ) => { + + layer.group.children.forEach( mesh => { + + if ( ! mesh.textureMaterial && toggle ) { + + //store the original material with the texture map + mesh.textureMaterial = mesh.material; + //swap the material with a cmmmon blend layer material + mesh.material = layer.blendMaterial; + + } else { + + //disable the blend layer material. + mesh.material = mesh.textureMaterial; + mesh.textureMaterial = null; + + } + + } ); + +}; + +// +/** + * update and replace the layer item at the specified index or prepend + * @param {number} [index] The layer index to insert or update. + * @param {Array} [layers] The medialayers. + * @param {Object} [layer] The layer object to insert or update. + */ +const updateOrPrepend = ( index, layers, layer ) => { + + if ( index > - 1 ) { + + layers.splice( index, 1, layer ); + + } else { + + layers.unshift( layer ); + + } + +}; + +export { + + UVMapFactors, + createMesh, + createMaterial, + createMeshMaterial, + createSphereGeometry, + createSphereMesh, + createPlaneMesh, + createBlendLayerMaterial, + toggleBlendLayerRender, + updateOrPrepend, + positionQuad + +}; diff --git a/src/renderers/common/XRManager.js b/src/renderers/common/XRManager.js index 13c50cfb9fe919..a624d82f2447d5 100644 --- a/src/renderers/common/XRManager.js +++ b/src/renderers/common/XRManager.js @@ -7,15 +7,14 @@ import { Vector2 } from '../../math/Vector2.js'; import { Vector3 } from '../../math/Vector3.js'; import { Vector4 } from '../../math/Vector4.js'; import { WebXRController } from '../webxr/WebXRController.js'; -import { AddEquation, BackSide, CustomBlending, DepthFormat, DepthStencilFormat, FrontSide, RGBAFormat, UnsignedByteType, UnsignedInt248Type, UnsignedIntType, ZeroFactor } from '../../constants.js'; +import { BackSide, DepthFormat, DepthStencilFormat, RGBAFormat, UnsignedByteType, UnsignedInt248Type, UnsignedIntType } from '../../constants.js'; import { DepthTexture } from '../../textures/DepthTexture.js'; import { XRRenderTarget } from './XRRenderTarget.js'; import { CylinderGeometry } from '../../geometries/CylinderGeometry.js'; -import { PlaneGeometry } from '../../geometries/PlaneGeometry.js'; -import { MeshBasicMaterial } from '../../materials/MeshBasicMaterial.js'; -import { Mesh } from '../../objects/Mesh.js'; import { warn } from '../../utils.js'; import { renderOutput } from '../../nodes/display/RenderOutputNode.js'; +import { Group } from '../../objects/Group.js'; +import { createMesh, createSphereMesh, createPlaneMesh, createBlendLayerMaterial, toggleBlendLayerRender, UVMapFactors, updateOrPrepend, positionQuad } from './XRLayerUtils.js'; const _cameraLPos = /*@__PURE__*/ new Vector3(); const _cameraRPos = /*@__PURE__*/ new Vector3(); @@ -392,6 +391,22 @@ class XRManager extends EventDispatcher { */ this._useMultiview = false; + /** + * Stores params and video elements for equirect layers. + * + * @private + * @type {Array} + */ + this._mediaLayers = []; + + /** + * Stores the created equrect layers for updating render state. + * + * @private + * @type {Array} + */ + this._createdMediaLayers = []; + } /** @@ -634,6 +649,195 @@ class XRManager extends EventDispatcher { } + /** + * Sets up params for a Quad native video layer. + * Creates meshes for 2D layers in mono or stereo + * + * @param {VideoTexture} texture The video texture + * @param {('default'|'mono'|'stereo'|'stereo-left-right'|'stereo-top-bottom')} [layout='stereo'] The layout to use either mono/steree/stereo-left-right/stereo-top-bottom. The default layout is stereo which creates a stereo-top-bottom layout. + * @param {number} [width = 1] The width in meter units. + * @param {number} [height = 1] The quad layer height in meter units. + * @param {Vector3} translation - The position/translation of the layer plane in world units. Native layer Z is 2 units more required than non layer planes. + * @param {Object} [quaternion = {}] A transform quaternion param for the layer. + * @param {Object} [params = {}] Extra params for the layer to add but not needed. + * @param {number} [updateAtIndex = -1] If set update and replace the current layer in an XR session at the specified index. + * @returns {Group} Returns a group of a mono or stereo mesh + */ + createQuadMediaLayer( texture, layout = 'mono', width = 1, height = 1, translation, quaternion, params = {}, updateAtIndex = - 1 ) { + + return this.createMediaLayer( texture, layout, quaternion, false, params, 0, 0, 0, updateAtIndex, width, height, translation ); + + } + + /** + * Sets up params for an Equirect native video layer. + * Creates meshes for 2D layers in mono or stereo + * + * @param {VideoTexture} texture The video texture + * @param {('default'|'mono'|'stereo'|'stereo-left-right'|'stereo-top-bottom')} [layout='stereo'] The layout to use either mono/steree/stereo-left-right/stereo-top-bottom. The default layout is stereo which creates a stereo-top-bottom layout. + * @param {Object} [quaternion = {}] A transform quaternion param for the layer. + * @param {boolean} [is180 = false] If it's a 180 video. + * @param {Object} [params = {}] Extra params for the layer to add but not needed. + * @param {number} [radius = 500] The SphereGeometry radius. + * @param {number} [widthSegments = 60] The SphereGeometry width segments. + * @param {number} [heightSegments = 40] The SphereGeometry height segments. + * @param {number} [updateAtIndex = -1] If set update and replace the current layer in an XR session at the specified index. + * @param {number} [quadWidth = 0] The width in meter units. Tf the width is set it will enable quad media layer creation. + * @param {number} [quadHeight = 0] The quad layer height in meter units. + * @param {Vector3} translation - The position/translation of the layer plane in world units. Native layer Z is 2 units more required than non layer planes. + * @returns {Group} Returns a group of a mono or stereo mesh + */ + createMediaLayer( texture, layout = 'stereo', quaternion = {}, is180 = false, params = {}, radius = 500, widthSegments = 60, heightSegments = 40, updateAtIndex = - 1, quadWidth = 0, quadHeight = 0, translation = {} ) { + + const group = new Group(), + isQuad = !! quadWidth; + + /** + * Creates a sphere mesh for equirect layers. + * @param {VideoTexture} texture The video texture + * @param {number} [eyeIndex = 1] The mesh layer eye index for stereo rendering. + * @param {number} [radius = 500] The SphereGeometry radius. + * @param {number} [widthSegments = 60] The SphereGeometry width segments. + * @param {number} [heightSegments = 40] The SphereGeometry height segments. + * @param {Object} [uvFactors = null] If the UV factors is set this turns on stereo mesh transforms. + * @param {boolean} [is180 = false] If it's a 180 video. + * @returns { Mesh} The mono/stereo sphere mesh. + */ + const createMediaSphere = ( texture, eyeIndex = 1, radius, widthSegments, heightSegments, uvFactors = null, is180 = false, material = null ) => { + + const mesh = createSphereMesh( texture, eyeIndex, radius, widthSegments, heightSegments, uvFactors, is180, material ); + + return mesh; + + }; + + /** + * Creates a quad layer plane mesh. + * @param {VideoTexture} texture The video texture + * @param {number} [eyeIndex = 1] The mesh layer eye index for stereo rendering. + * @param {number} [quadWidth = 0] The quad layer width in meter units. + * @param {number} [quadHeight = 0] The quad layer height in meter units. + * @param {Vector3} translation - The position/translation of the layer plane in world units. Native layer Z is 2 units more required than non layer planes. + * @param {Object} [quaternion={}] A transform quaternion param for the layer. + * @param {Object} [uvFactors = null] If the UV factors is set this turns on stereo mesh transforms. + * @returns { Mesh} The mono/stereo plane quad mesh. + */ + const createMediaPlane = ( texture, eyeIndex = 0, quadWidth = 1, quadHeight = 1, translation = {}, quaternion = {}, uvFactors = null, material = null ) => { + + const mesh = createPlaneMesh( texture, eyeIndex, quadWidth, quadHeight, translation, quaternion, uvFactors, material ); + + return mesh; + + }; + + /** + * Creates a sphere mesh if quad layer widths isn't set. Or create a quad layer plane. + * @param {number} [eyeIndex = 1] The mesh layer eye index for stereo rendering. + * @param {Object} [uvFactors = null] If the UV factors is set this turns on stereo mesh transforms. + * @returns { Mesh} The mono/stereo plane quad or sphere mesh. + */ + const createMediaMesh = ( eyeIndex = 0, uvFactors = null, material = null ) => { + + if ( ! isQuad ) { + + return createMediaSphere( texture, eyeIndex, radius, widthSegments, heightSegments, uvFactors, is180, material ); + + } else { + + return createMediaPlane( texture, eyeIndex, quadWidth, quadHeight, translation, quaternion, uvFactors, material ); + + } + + }; + + let mesh; + + switch ( layout ) { + + case 'mono': + + mesh = createMediaMesh(); + group.add( mesh ); + + break; + case 'stereo': + default: + + if ( layout === 'stereo' ) layout = 'stereo-top-bottom'; + + //get the uv factors for the layout + const uvFactors = UVMapFactors[ layout ]; + + mesh = createMediaMesh( 1, uvFactors ); + group.add( mesh ); + + //for efficiency use the first material for the second eye material + mesh = createMediaMesh( 2, uvFactors, mesh.material ); + group.add( mesh ); + + break; + + } + + if ( this._supportsLayers ) { + + let centralHorizontalAngle = Math.PI * ( is180 ? 1 : 2 ), + mediaLayerMethod = 'createEquirectLayer'; + + //change the media layer creation method to quad if set. + if ( isQuad ) { + + //set the quad layer plane width and height. + //diovide the units of the quad native layer by half to match world units. + params.width = quadWidth / 2; + params.height = quadHeight / 2; + + centralHorizontalAngle = 0; + mediaLayerMethod = 'createQuadLayer'; + + } + + const layer = { + type: 'media', + texture: texture, + group: group, + blendMaterial: createBlendLayerMaterial(), + translation: translation, + quaternion: quaternion, + mediaLayerMethod: mediaLayerMethod, + params: { + layout: layout, + centralHorizontalAngle: centralHorizontalAngle, + ...params + } + + }; + + updateOrPrepend( updateAtIndex, this._mediaLayers, layer ); + + if ( this._session !== null ) { + + layer.xrlayer = this._createXRLayer( layer ); + + updateOrPrepend( updateAtIndex, this._createdMediaLayers, layer.xrlayer ); + + //enable current blend layer group + toggleBlendLayerRender( layer, true ); + + const xrlayers = [ ...this._session.renderState.layers ]; + + updateOrPrepend( updateAtIndex, xrlayers, layer.xrlayer ); + + this._session.updateRenderState( { layers: xrlayers } ); + + } + + } + + return group; + + } + /** * This method can be used in XR applications to create a quadratic layer that presents a separate * rendered scene. @@ -651,7 +855,6 @@ class XRManager extends EventDispatcher { */ createQuadLayer( width, height, translation, quaternion, pixelwidth, pixelheight, rendercall, attributes = {} ) { - const geometry = new PlaneGeometry( width, height ); const renderTarget = new XRRenderTarget( pixelwidth, pixelheight, @@ -677,13 +880,9 @@ class XRManager extends EventDispatcher { renderTarget._autoAllocateDepthBuffer = true; - const material = new MeshBasicMaterial( { color: 0xffffff, side: FrontSide } ); - material.map = renderTarget.texture; - material.map.offset.y = 1; - material.map.repeat.y = - 1; - const plane = new Mesh( geometry, material ); - plane.position.copy( translation ); - plane.quaternion.copy( quaternion ); + const plane = createPlaneMesh( renderTarget.texture, 1, width, height, translation, quaternion ); + plane.material.map.offset.y = 1; + plane.material.map.repeat.y = - 1; const layer = { type: 'quad', @@ -694,7 +893,7 @@ class XRManager extends EventDispatcher { pixelwidth: pixelwidth, pixelheight: pixelheight, plane: plane, - material: material, + material: plane.material, rendercall: rendercall, renderTarget: renderTarget }; @@ -702,17 +901,13 @@ class XRManager extends EventDispatcher { if ( this._session !== null ) { - layer.plane.material = new MeshBasicMaterial( { color: 0xffffff, side: FrontSide } ); - layer.plane.material.blending = CustomBlending; - layer.plane.material.blendEquation = AddEquation; - layer.plane.material.blendSrc = ZeroFactor; - layer.plane.material.blendDst = ZeroFactor; + layer.plane.material = createBlendLayerMaterial(); layer.xrlayer = this._createXRLayer( layer ); const xrlayers = this._session.renderState.layers; xrlayers.unshift( layer.xrlayer ); - this._session.updateRenderState( { layers: xrlayers } ); + this._session.updateRenderState( { layers: [ ...this._createdMediaLayers, ...xrlayers ] } ); } else { @@ -768,13 +963,11 @@ class XRManager extends EventDispatcher { renderTarget._autoAllocateDepthBuffer = true; - const material = new MeshBasicMaterial( { color: 0xffffff, side: BackSide } ); - material.map = renderTarget.texture; - material.map.offset.y = 1; - material.map.repeat.y = - 1; - const plane = new Mesh( geometry, material ); - plane.position.copy( translation ); - plane.quaternion.copy( quaternion ); + const plane = createMesh( renderTarget.texture, 1, geometry ); + plane.material.side = BackSide; + plane.material.map.offset.y = 1; + plane.material.map.repeat.y = - 1; + positionQuad( plane, translation, quaternion ); const layer = { type: 'cylinder', @@ -786,7 +979,7 @@ class XRManager extends EventDispatcher { pixelwidth: pixelwidth, pixelheight: pixelheight, plane: plane, - material: material, + material: plane.material, rendercall: rendercall, renderTarget: renderTarget }; @@ -794,17 +987,13 @@ class XRManager extends EventDispatcher { if ( this._session !== null ) { - layer.plane.material = new MeshBasicMaterial( { color: 0xffffff, side: BackSide } ); - layer.plane.material.blending = CustomBlending; - layer.plane.material.blendEquation = AddEquation; - layer.plane.material.blendSrc = ZeroFactor; - layer.plane.material.blendDst = ZeroFactor; + layer.plane.material = createBlendLayerMaterial( layer.blendSide ); layer.xrlayer = this._createXRLayer( layer ); const xrlayers = this._session.renderState.layers; xrlayers.unshift( layer.xrlayer ); - this._session.updateRenderState( { layers: xrlayers } ); + this._session.updateRenderState( { layers: [ ...this._createdMediaLayers, ...xrlayers ] } ); } else { @@ -1028,11 +1217,7 @@ class XRManager extends EventDispatcher { for ( const layer of this._layers ) { // change material so it "punches" out a hole to show the XR Layer. - layer.plane.material = new MeshBasicMaterial( { color: 0xffffff, side: layer.type === 'cylinder' ? BackSide : FrontSide } ); - layer.plane.material.blending = CustomBlending; - layer.plane.material.blendEquation = AddEquation; - layer.plane.material.blendSrc = ZeroFactor; - layer.plane.material.blendDst = ZeroFactor; + layer.plane.material = createBlendLayerMaterial( layer.blendSide ); layer.xrlayer = this._createXRLayer( layer ); @@ -1040,9 +1225,28 @@ class XRManager extends EventDispatcher { } + //Creates the equirect or quad media layers on session creation + if ( this._mediaLayers.length ) { + + this._createdMediaLayers = this._mediaLayers.map( layer => { + + layer.xrlayer = this._createXRLayer( layer ); + return layer.xrlayer; + + } ); + + //disable 2D media mesh layers to be replaced with native media layers + for ( const mediaLayer of this._mediaLayers ) { + + toggleBlendLayerRender( mediaLayer, true ); + + } + + } + } - session.updateRenderState( { layers: layersArray } ); + session.updateRenderState( { layers: [ ...this._createdMediaLayers, ...layersArray ] } ); } else { @@ -1432,6 +1636,13 @@ function onSessionEnd() { } + //reenable 2D media mesh layers on session end + for ( const mediaLayer of this._mediaLayers ) { + + toggleBlendLayerRender( mediaLayer, false ); + + } + } // @@ -1535,6 +1746,21 @@ function createXRLayer( layer ) { clearOnAccess: false } ); + } else if ( /media/.test( layer.type ) ) { + + const mediaBinding = new XRMediaBinding( this._session ); + + return mediaBinding[ layer.mediaLayerMethod ]( + layer.texture.image, + { + space: this._referenceSpace, + transform: new XRRigidTransform( + layer.translation, + layer.quaternion + ), + ...layer.params + } ); + } else { return this._glBinding.createCylinderLayer( { From 166662fc08763066c362cb05c5c67bfa5c5e9a6b Mon Sep 17 00:00:00 2001 From: Daniel Rossi Date: Mon, 30 Mar 2026 03:29:04 +1100 Subject: [PATCH 2/4] - add new example screenshot --- .../screenshots/webgpu_xr_media_layer.jpg | Bin 85078 -> 3413 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/screenshots/webgpu_xr_media_layer.jpg b/examples/screenshots/webgpu_xr_media_layer.jpg index 7e5e745ac5f4d7e3c8b95617eaaa2e418dc2525b..001fe203e0b94e476d12e5c1c76aa979a0fbc77f 100644 GIT binary patch literal 3413 zcmex=iF;N$`UAd82aiwDGkXk%h!W@hDLXJZFTlSKSKz#z!M@QZN*Gov5_lOQ9r zAmjfdjEjJ7WCc47=uik?WMXDvWn%|Afm;CRY-VPlV_AVN1*)tC$}zAAvI;30I#U-U>$dGXcJ4ZK_{h;?$4{I*b?NeztJkjIxOwa0qsLF4K70P+<*SdMK7aZ8?fZ|P zzZe;qA>IL!82$lzoRJ9>=IkK_0Zp(e6?1osf!KmTtr@Gvt1BaB&)!Jgq?{R@T#ObuKN n8l%)`5R9gR(Tp%!7K|2$qcy^4Z8%yRj@E|5u{QkA@c$+N?bpn5 literal 85078 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 VM{4S$wfg@6!Dl@F*U$Ao|JlMknnVBq From 2553ff93ac9fa9d5c4da673f817a2f715956ddb4 Mon Sep 17 00:00:00 2001 From: Daniel Rossi Date: Tue, 31 Mar 2026 08:39:11 +1100 Subject: [PATCH 3/4] - fix eye index for layer creation --- src/renderers/common/XRManager.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderers/common/XRManager.js b/src/renderers/common/XRManager.js index a624d82f2447d5..759ff875b4d03b 100644 --- a/src/renderers/common/XRManager.js +++ b/src/renderers/common/XRManager.js @@ -880,7 +880,7 @@ class XRManager extends EventDispatcher { renderTarget._autoAllocateDepthBuffer = true; - const plane = createPlaneMesh( renderTarget.texture, 1, width, height, translation, quaternion ); + const plane = createPlaneMesh( renderTarget.texture, 0, width, height, translation, quaternion ); plane.material.map.offset.y = 1; plane.material.map.repeat.y = - 1; @@ -963,7 +963,7 @@ class XRManager extends EventDispatcher { renderTarget._autoAllocateDepthBuffer = true; - const plane = createMesh( renderTarget.texture, 1, geometry ); + const plane = createMesh( renderTarget.texture, 0, geometry ); plane.material.side = BackSide; plane.material.map.offset.y = 1; plane.material.map.repeat.y = - 1; From 1bb4c5715f9059a186687b5796350999ccf5a4f6 Mon Sep 17 00:00:00 2001 From: Daniel Rossi Date: Tue, 31 Mar 2026 08:57:20 +1100 Subject: [PATCH 4/4] - fix blending side for cylinder layer - swap eye index param to keep it default --- src/renderers/common/XRLayerUtils.js | 6 +++--- src/renderers/common/XRManager.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/renderers/common/XRLayerUtils.js b/src/renderers/common/XRLayerUtils.js index a7527f7f4edc97..5db1a0ac0e620b 100644 --- a/src/renderers/common/XRLayerUtils.js +++ b/src/renderers/common/XRLayerUtils.js @@ -117,7 +117,7 @@ const createSphereGeometry = ( radius, widthSegments, heightSegments, is180 = fa * @param {Object} [uvFactors] The uv factors for a set stereo layout. * @return {Mesh} The created mono/stereo transformed mesh. */ -const createMesh = ( texture, eyeIndex = 0, geometry, material, uvFactors = null ) => { +const createMesh = ( texture, geometry, eyeIndex = 0, material, uvFactors = null ) => { //if has stereo layout set the uv mapping. if ( uvFactors ) { @@ -147,7 +147,7 @@ const createMesh = ( texture, eyeIndex = 0, geometry, material, uvFactors = null const createSphereMesh = ( texture, eyeIndex = 0, radius, widthSegments, heightSegments, uvFactors = null, is180 = false, material = null ) => { const geometry = createSphereGeometry( radius, widthSegments, heightSegments, is180 ), - mesh = createMesh( texture, eyeIndex, geometry, material, uvFactors ); + mesh = createMesh( texture, geometry, eyeIndex, material, uvFactors ); //only rotate for stereo layouts. mesh.rotation.y = uvFactors ? - Math.PI / 2 : 0; @@ -170,7 +170,7 @@ const createSphereMesh = ( texture, eyeIndex = 0, radius, widthSegments, heightS const createPlaneMesh = ( texture, eyeIndex = 0, quadWidth = 1, quadHeight = 1, translation = {}, quaternion = {}, uvFactors = null, material = null ) => { const geometry = new PlaneGeometry( quadWidth, quadHeight ), - mesh = createMesh( texture, eyeIndex, geometry, material, uvFactors ); + mesh = createMesh( texture, geometry, eyeIndex, material, uvFactors ); positionQuad( mesh, translation, quaternion ); diff --git a/src/renderers/common/XRManager.js b/src/renderers/common/XRManager.js index 759ff875b4d03b..f66ab00a6abf77 100644 --- a/src/renderers/common/XRManager.js +++ b/src/renderers/common/XRManager.js @@ -963,7 +963,7 @@ class XRManager extends EventDispatcher { renderTarget._autoAllocateDepthBuffer = true; - const plane = createMesh( renderTarget.texture, 0, geometry ); + const plane = createMesh( renderTarget.texture, geometry ); plane.material.side = BackSide; plane.material.map.offset.y = 1; plane.material.map.repeat.y = - 1; @@ -980,6 +980,7 @@ class XRManager extends EventDispatcher { pixelheight: pixelheight, plane: plane, material: plane.material, + blendSide: BackSide, rendercall: rendercall, renderTarget: renderTarget };
+ three.js vr - 360 stereo/mono video native media layers
+ stereoscopic panoramic render by pedrofe. scene from mery project.
+ Choose Layout: +