@babylonjs/core 5.1.0 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Audio/audioSceneComponent.d.ts +2 -0
- package/Audio/audioSceneComponent.js +9 -7
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.d.ts +7 -0
- package/Behaviors/Cameras/autoRotationBehavior.js +15 -0
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +1 -0
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/skeleton.js +2 -0
- package/Bones/skeleton.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +5 -0
- package/Cameras/arcRotateCamera.js +5 -0
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +7 -2
- package/Cameras/camera.js +11 -8
- package/Cameras/camera.js.map +1 -1
- package/Debug/debugLayer.d.ts +5 -0
- package/Debug/debugLayer.js +24 -0
- package/Debug/debugLayer.js.map +1 -1
- package/DeviceInput/Helpers/eventFactory.js +14 -3
- package/DeviceInput/Helpers/eventFactory.js.map +1 -1
- package/DeviceInput/InputDevices/deviceTypes.d.ts +1 -1
- package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
- package/DeviceInput/InputDevices/nativeDeviceInputSystem.js +2 -8
- package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.js +5 -0
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +2 -2
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -0
- package/Engines/WebGPU/webgpuTextureHelper.js +16 -3
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/constants.d.ts +29 -1
- package/Engines/constants.js +29 -1
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +3 -3
- package/Engines/engine.js +2 -1
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -1
- package/Engines/nativeEngine.js +7 -8
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +4 -0
- package/Engines/webgpuEngine.js +16 -5
- package/Engines/webgpuEngine.js.map +1 -1
- package/Gizmos/axisScaleGizmo.js +3 -2
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +11 -11
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/gizmo.d.ts +5 -0
- package/Gizmos/gizmo.js +11 -4
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.js +3 -3
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Inputs/scene.inputManager.js +7 -1
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.js +1 -1
- package/Layers/effectLayer.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +9 -0
- package/Lights/Shadows/shadowGenerator.js +25 -3
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +10 -8
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -1
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +4 -0
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +19 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +54 -0
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +135 -0
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +4 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +42 -24
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/PBR/index.d.ts +1 -0
- package/Materials/PBR/index.js +1 -0
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +5 -0
- package/Materials/PBR/pbrBaseMaterial.js +2 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +102 -0
- package/Materials/PBR/pbrIridescenceConfiguration.js +257 -0
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -0
- package/Materials/Textures/Loaders/ktxTextureLoader.js +31 -0
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/cubeTexture.js +3 -0
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +12 -12
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/materialFlags.d.ts +6 -0
- package/Materials/materialFlags.js +18 -0
- package/Materials/materialFlags.js.map +1 -1
- package/Materials/materialHelper.js +1 -1
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginFactoryExport.d.ts +6 -0
- package/Materials/materialPluginFactoryExport.js +12 -0
- package/Materials/materialPluginFactoryExport.js.map +1 -1
- package/Materials/shaderMaterial.js +1 -0
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +2 -1
- package/Materials/uniformBuffer.js +2 -1
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.vector.d.ts +4 -0
- package/Maths/math.vector.js +10 -0
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -1
- package/Meshes/abstractMesh.js +5 -2
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +2 -2
- package/Meshes/mesh.js +11 -3
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/subMesh.js +1 -1
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +2 -1
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Misc/khronosTextureContainer.js +1 -1
- package/Misc/khronosTextureContainer.js.map +1 -1
- package/Misc/screenshotTools.js +6 -6
- package/Misc/screenshotTools.js.map +1 -1
- package/Physics/Plugins/oimoJSPlugin.js +1 -1
- package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/physicsImpostor.js +1 -1
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +6 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Rendering/boundingBoxRenderer.js +4 -4
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/renderingGroup.js +8 -0
- package/Rendering/renderingGroup.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +1 -1
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +5 -0
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +9 -0
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -0
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/pbr.fragment.d.ts +1 -0
- package/Shaders/pbr.fragment.js +2 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +1 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/spriteMap.fragment.js +1 -1
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.js +1 -0
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRImageTracking.d.ts +0 -5
- package/XR/features/WebXRImageTracking.js +5 -8
- package/XR/features/WebXRImageTracking.js.map +1 -1
- package/XR/native/nativeXRFrame.d.ts +2 -1
- package/XR/native/nativeXRFrame.js +5 -1
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +7 -1
- package/scene.js +11 -3
- package/scene.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cubeTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/cubeTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize, serializeAsMatrix, SerializationHelper } from \"../../Misc/decorators\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { GetClass, RegisterClass } from \"../../Misc/typeStore\";\r\nimport type { ThinEngine } from \"../../Engines/thinEngine\";\r\n\r\nimport \"../../Engines/Extensions/engine.cubeTexture\";\r\nimport { StartsWith } from \"../../Misc/stringTools\";\r\nimport { Observable } from \"../../Misc/observable\";\r\n\r\n/**\r\n * Class for creating a cube texture\r\n */\r\nexport class CubeTexture extends BaseTexture {\r\n private _delayedOnLoad: Nullable<() => void>;\r\n private _delayedOnError: Nullable<(message?: string, exception?: any) => void>;\r\n private _lodScale: number = 0.8;\r\n private _lodOffset: number = 0;\r\n\r\n /**\r\n * Observable triggered once the texture has been loaded.\r\n */\r\n public onLoadObservable: Observable<CubeTexture> = new Observable<CubeTexture>();\r\n\r\n /**\r\n * The url of the texture\r\n */\r\n @serialize()\r\n public url: string;\r\n\r\n /**\r\n * Gets or sets the center of the bounding box associated with the cube texture.\r\n * It must define where the camera used to render the texture was set\r\n * @see https://doc.babylonjs.com/how_to/reflect#using-local-cubemap-mode\r\n */\r\n public boundingBoxPosition = Vector3.Zero();\r\n\r\n private _boundingBoxSize: Vector3;\r\n\r\n /**\r\n * Gets or sets the size of the bounding box associated with the cube texture\r\n * When defined, the cubemap will switch to local mode\r\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\r\n * @example https://www.babylonjs-playground.com/#RNASML\r\n */\r\n public set boundingBoxSize(value: Vector3) {\r\n if (this._boundingBoxSize && this._boundingBoxSize.equals(value)) {\r\n return;\r\n }\r\n this._boundingBoxSize = value;\r\n const scene = this.getScene();\r\n if (scene) {\r\n scene.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n }\r\n /**\r\n * Returns the bounding box size\r\n * @see https://doc.babylonjs.com/how_to/reflect#using-local-cubemap-mode\r\n */\r\n public get boundingBoxSize(): Vector3 {\r\n return this._boundingBoxSize;\r\n }\r\n\r\n protected _rotationY: number = 0;\r\n\r\n /**\r\n * Sets texture matrix rotation angle around Y axis in radians.\r\n */\r\n @serialize(\"rotationY\")\r\n public set rotationY(value: number) {\r\n this._rotationY = value;\r\n this.setReflectionTextureMatrix(Matrix.RotationY(this._rotationY));\r\n }\r\n /**\r\n * Gets texture matrix rotation angle around Y axis radians.\r\n */\r\n public get rotationY(): number {\r\n return this._rotationY;\r\n }\r\n\r\n /**\r\n * Are mip maps generated for this texture or not.\r\n */\r\n public get noMipmap(): boolean {\r\n return this._noMipmap;\r\n }\r\n\r\n private _noMipmap: boolean;\r\n\r\n @serialize(\"files\")\r\n private _files: Nullable<string[]> = null;\r\n\r\n @serialize(\"forcedExtension\")\r\n protected _forcedExtension: Nullable<string> = null;\r\n\r\n /**\r\n * Gets the forced extension (if any)\r\n */\r\n public get forcedExtension(): Nullable<string> {\r\n return this._forcedExtension;\r\n }\r\n\r\n @serialize(\"extensions\")\r\n private _extensions: Nullable<string[]> = null;\r\n\r\n @serializeAsMatrix(\"textureMatrix\")\r\n private _textureMatrix: Matrix;\r\n\r\n private _format: number;\r\n private _createPolynomials: boolean;\r\n private _loaderOptions: any;\r\n private _useSRGBBuffer?: boolean;\r\n\r\n /**\r\n * Creates a cube texture from an array of image urls\r\n * @param files defines an array of image urls\r\n * @param scene defines the hosting scene\r\n * @param noMipmap specifies if mip maps are not used\r\n * @returns a cube texture\r\n */\r\n public static CreateFromImages(files: string[], scene: Scene, noMipmap?: boolean): CubeTexture {\r\n let rootUrlKey = \"\";\r\n\r\n files.forEach((url) => (rootUrlKey += url));\r\n\r\n return new CubeTexture(rootUrlKey, scene, null, noMipmap, files);\r\n }\r\n\r\n /**\r\n * Creates and return a texture created from prefilterd data by tools like IBL Baker or Lys.\r\n * @param url defines the url of the prefiltered texture\r\n * @param scene defines the scene the texture is attached to\r\n * @param forcedExtension defines the extension of the file if different from the url\r\n * @param createPolynomials defines whether or not to create polynomial harmonics from the texture data if necessary\r\n * @return the prefiltered texture\r\n */\r\n public static CreateFromPrefilteredData(url: string, scene: Scene, forcedExtension: any = null, createPolynomials: boolean = true) {\r\n const oldValue = scene.useDelayedTextureLoading;\r\n scene.useDelayedTextureLoading = false;\r\n\r\n const result = new CubeTexture(url, scene, null, false, null, null, null, undefined, true, forcedExtension, createPolynomials);\r\n\r\n scene.useDelayedTextureLoading = oldValue;\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Creates a cube texture to use with reflection for instance. It can be based upon dds or six images as well\r\n * as prefiltered data.\r\n * @param rootUrl defines the url of the texture or the root name of the six images\r\n * @param sceneOrEngine defines the scene or engine the texture is attached to\r\n * @param extensions defines the suffixes add to the picture name in case six images are in use like _px.jpg...\r\n * @param noMipmap defines if mipmaps should be created or not\r\n * @param files defines the six files to load for the different faces in that order: px, py, pz, nx, ny, nz\r\n * @param onLoad defines a callback triggered at the end of the file load if no errors occurred\r\n * @param onError defines a callback triggered in case of error during load\r\n * @param format defines the internal format to use for the texture once loaded\r\n * @param prefiltered defines whether or not the texture is created from prefiltered data\r\n * @param forcedExtension defines the extensions to use (force a special type of file to load) in case it is different from the file name\r\n * @param createPolynomials defines whether or not to create polynomial harmonics from the texture data if necessary\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @param loaderOptions options to be passed to the loader\r\n * @param useSRGBBuffer Defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU) (default: false)\r\n * @return the cube texture\r\n */\r\n constructor(\r\n rootUrl: string,\r\n sceneOrEngine: Scene | ThinEngine,\r\n extensions: Nullable<string[]> = null,\r\n noMipmap: boolean = false,\r\n files: Nullable<string[]> = null,\r\n onLoad: Nullable<() => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format: number = Constants.TEXTUREFORMAT_RGBA,\r\n prefiltered = false,\r\n forcedExtension: any = null,\r\n createPolynomials: boolean = false,\r\n lodScale: number = 0.8,\r\n lodOffset: number = 0,\r\n loaderOptions?: any,\r\n useSRGBBuffer?: boolean\r\n ) {\r\n super(sceneOrEngine);\r\n\r\n this.name = rootUrl;\r\n this.url = rootUrl;\r\n this._noMipmap = noMipmap;\r\n this.hasAlpha = false;\r\n this._format = format;\r\n this.isCube = true;\r\n this._textureMatrix = Matrix.Identity();\r\n this._createPolynomials = createPolynomials;\r\n this.coordinatesMode = Texture.CUBIC_MODE;\r\n this._extensions = extensions;\r\n this._files = files;\r\n this._forcedExtension = forcedExtension;\r\n this._loaderOptions = loaderOptions;\r\n this._useSRGBBuffer = useSRGBBuffer;\r\n this._lodScale = lodScale;\r\n this._lodOffset = lodOffset;\r\n\r\n if (!rootUrl && !files) {\r\n return;\r\n }\r\n\r\n this.updateURL(rootUrl, forcedExtension, onLoad, prefiltered, onError, extensions, this.getScene()?.useDelayedTextureLoading, files);\r\n }\r\n\r\n /**\r\n * Get the current class name of the texture useful for serialization or dynamic coding.\r\n * @returns \"CubeTexture\"\r\n */\r\n public getClassName(): string {\r\n return \"CubeTexture\";\r\n }\r\n\r\n /**\r\n * Update the url (and optional buffer) of this texture if url was null during construction.\r\n * @param url the url of the texture\r\n * @param forcedExtension defines the extension to use\r\n * @param onLoad callback called when the texture is loaded (defaults to null)\r\n * @param prefiltered Defines whether the updated texture is prefiltered or not\r\n * @param onError callback called if there was an error during the loading process (defaults to null)\r\n * @param extensions defines the suffixes add to the picture name in case six images are in use like _px.jpg...\r\n * @param delayLoad defines if the texture should be loaded now (false by default)\r\n * @param files defines the six files to load for the different faces in that order: px, py, pz, nx, ny, nz\r\n */\r\n public updateURL(\r\n url: string,\r\n forcedExtension?: string,\r\n onLoad: Nullable<() => void> = null,\r\n prefiltered: boolean = false,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n extensions: Nullable<string[]> = null,\r\n delayLoad = false,\r\n files: Nullable<string[]> = null\r\n ): void {\r\n if (!this.name || StartsWith(this.name, \"data:\")) {\r\n this.name = url;\r\n }\r\n this.url = url;\r\n\r\n const lastDot = url.lastIndexOf(\".\");\r\n const extension = forcedExtension ? forcedExtension : lastDot > -1 ? url.substring(lastDot).toLowerCase() : \"\";\r\n const isDDS = extension.indexOf(\".dds\") === 0;\r\n const isEnv = extension.indexOf(\".env\") === 0;\r\n\r\n if (isEnv) {\r\n this.gammaSpace = false;\r\n this._prefiltered = false;\r\n this.anisotropicFilteringLevel = 1;\r\n } else {\r\n this._prefiltered = prefiltered;\r\n\r\n if (prefiltered) {\r\n this.gammaSpace = false;\r\n this.anisotropicFilteringLevel = 1;\r\n }\r\n }\r\n\r\n if (files) {\r\n this._files = files;\r\n } else {\r\n if (!isEnv && !isDDS && !extensions) {\r\n extensions = [\"_px.jpg\", \"_py.jpg\", \"_pz.jpg\", \"_nx.jpg\", \"_ny.jpg\", \"_nz.jpg\"];\r\n }\r\n\r\n this._files = this._files || [];\r\n this._files.length = 0;\r\n\r\n if (extensions) {\r\n for (let index = 0; index < extensions.length; index++) {\r\n this._files.push(url + extensions[index]);\r\n }\r\n this._extensions = extensions;\r\n }\r\n }\r\n\r\n if (delayLoad) {\r\n this.delayLoadState = Constants.DELAYLOADSTATE_NOTLOADED;\r\n this._delayedOnLoad = onLoad;\r\n this._delayedOnError = onError;\r\n } else {\r\n this._loadTexture(onLoad, onError);\r\n }\r\n }\r\n\r\n /**\r\n * Delays loading of the cube texture\r\n * @param forcedExtension defines the extension to use\r\n */\r\n public delayLoad(forcedExtension?: string): void {\r\n if (this.delayLoadState !== Constants.DELAYLOADSTATE_NOTLOADED) {\r\n return;\r\n }\r\n if (forcedExtension) {\r\n this._forcedExtension = forcedExtension;\r\n }\r\n\r\n this.delayLoadState = Constants.DELAYLOADSTATE_LOADED;\r\n this._loadTexture(this._delayedOnLoad, this._delayedOnError);\r\n }\r\n\r\n /**\r\n * Returns the reflection texture matrix\r\n * @returns the reflection texture matrix\r\n */\r\n public getReflectionTextureMatrix(): Matrix {\r\n return this._textureMatrix;\r\n }\r\n\r\n /**\r\n * Sets the reflection texture matrix\r\n * @param value Reflection texture matrix\r\n */\r\n public setReflectionTextureMatrix(value: Matrix): void {\r\n if (value.updateFlag === this._textureMatrix.updateFlag) {\r\n return;\r\n }\r\n\r\n if (value.isIdentity() !== this._textureMatrix.isIdentity()) {\r\n this.getScene()?.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag, (mat) => mat.getActiveTextures().indexOf(this) !== -1);\r\n }\r\n\r\n this._textureMatrix = value;\r\n }\r\n\r\n private _loadTexture(onLoad: Nullable<() => void> = null, onError: Nullable<(message?: string, exception?: any) => void> = null) {\r\n const scene = this.getScene();\r\n const oldTexture = this._texture;\r\n this._texture = this._getFromCache(this.url, this._noMipmap, undefined, undefined, this._useSRGBBuffer);\r\n\r\n const onLoadProcessing = () => {\r\n this.onLoadObservable.notifyObservers(this);\r\n if (oldTexture) {\r\n oldTexture.dispose();\r\n this.getScene()?.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n };\r\n\r\n const errorHandler = (message?: string, exception?: any) => {\r\n this._loadingError = true;\r\n this._errorObject = { message, exception };\r\n if (onError) {\r\n onError(message, exception);\r\n }\r\n Texture.OnTextureLoadErrorObservable.notifyObservers(this);\r\n };\r\n\r\n if (!this._texture) {\r\n if (this._prefiltered) {\r\n this._texture = this._getEngine()!.createPrefilteredCubeTexture(\r\n this.url,\r\n scene,\r\n this._lodScale,\r\n this._lodOffset,\r\n onLoad,\r\n errorHandler,\r\n this._format,\r\n this._forcedExtension,\r\n this._createPolynomials\r\n );\r\n } else {\r\n this._texture = this._getEngine()!.createCubeTexture(\r\n this.url,\r\n scene,\r\n this._files,\r\n this._noMipmap,\r\n onLoad,\r\n errorHandler,\r\n this._format,\r\n this._forcedExtension,\r\n false,\r\n this._lodScale,\r\n this._lodOffset,\r\n null,\r\n this._loaderOptions,\r\n !!this._useSRGBBuffer\r\n );\r\n }\r\n\r\n this._texture?.onLoadedObservable.add(() => this.onLoadObservable.notifyObservers(this));\r\n } else {\r\n if (this._texture.isReady) {\r\n Tools.SetImmediate(() => onLoadProcessing());\r\n } else {\r\n this._texture.onLoadedObservable.add(() => onLoadProcessing());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Parses text to create a cube texture\r\n * @param parsedTexture define the serialized text to read from\r\n * @param scene defines the hosting scene\r\n * @param rootUrl defines the root url of the cube texture\r\n * @returns a cube texture\r\n */\r\n public static Parse(parsedTexture: any, scene: Scene, rootUrl: string): CubeTexture {\r\n const texture = SerializationHelper.Parse(\r\n () => {\r\n let prefiltered: boolean = false;\r\n if (parsedTexture.prefiltered) {\r\n prefiltered = parsedTexture.prefiltered;\r\n }\r\n return new CubeTexture(\r\n rootUrl + parsedTexture.name,\r\n scene,\r\n parsedTexture.extensions,\r\n false,\r\n parsedTexture.files || null,\r\n null,\r\n null,\r\n undefined,\r\n prefiltered,\r\n parsedTexture.forcedExtension\r\n );\r\n },\r\n parsedTexture,\r\n scene\r\n );\r\n\r\n // Local Cubemaps\r\n if (parsedTexture.boundingBoxPosition) {\r\n texture.boundingBoxPosition = Vector3.FromArray(parsedTexture.boundingBoxPosition);\r\n }\r\n if (parsedTexture.boundingBoxSize) {\r\n texture.boundingBoxSize = Vector3.FromArray(parsedTexture.boundingBoxSize);\r\n }\r\n\r\n // Animations\r\n if (parsedTexture.animations) {\r\n for (let animationIndex = 0; animationIndex < parsedTexture.animations.length; animationIndex++) {\r\n const parsedAnimation = parsedTexture.animations[animationIndex];\r\n const internalClass = GetClass(\"BABYLON.Animation\");\r\n if (internalClass) {\r\n texture.animations.push(internalClass.Parse(parsedAnimation));\r\n }\r\n }\r\n }\r\n\r\n return texture;\r\n }\r\n\r\n /**\r\n * Makes a clone, or deep copy, of the cube texture\r\n * @returns a new cube texture\r\n */\r\n public clone(): CubeTexture {\r\n let uniqueId = 0;\r\n\r\n const newCubeTexture = SerializationHelper.Clone(() => {\r\n const cubeTexture = new CubeTexture(this.url, this.getScene() || this._getEngine()!, this._extensions, this._noMipmap, this._files);\r\n uniqueId = cubeTexture.uniqueId;\r\n\r\n return cubeTexture;\r\n }, this);\r\n\r\n newCubeTexture.uniqueId = uniqueId;\r\n\r\n return newCubeTexture;\r\n }\r\n}\r\n\r\nTexture._CubeTextureParser = CubeTexture.Parse;\r\n// Some exporters relies on Tools.Instantiate\r\nRegisterClass(\"BABYLON.CubeTexture\", CubeTexture);\r\n"]}
|
|
1
|
+
{"version":3,"file":"cubeTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/cubeTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize, serializeAsMatrix, SerializationHelper } from \"../../Misc/decorators\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { GetClass, RegisterClass } from \"../../Misc/typeStore\";\r\nimport type { ThinEngine } from \"../../Engines/thinEngine\";\r\n\r\nimport \"../../Engines/Extensions/engine.cubeTexture\";\r\nimport { StartsWith } from \"../../Misc/stringTools\";\r\nimport { Observable } from \"../../Misc/observable\";\r\n\r\n/**\r\n * Class for creating a cube texture\r\n */\r\nexport class CubeTexture extends BaseTexture {\r\n private _delayedOnLoad: Nullable<() => void>;\r\n private _delayedOnError: Nullable<(message?: string, exception?: any) => void>;\r\n private _lodScale: number = 0.8;\r\n private _lodOffset: number = 0;\r\n\r\n /**\r\n * Observable triggered once the texture has been loaded.\r\n */\r\n public onLoadObservable: Observable<CubeTexture> = new Observable<CubeTexture>();\r\n\r\n /**\r\n * The url of the texture\r\n */\r\n @serialize()\r\n public url: string;\r\n\r\n /**\r\n * Gets or sets the center of the bounding box associated with the cube texture.\r\n * It must define where the camera used to render the texture was set\r\n * @see https://doc.babylonjs.com/how_to/reflect#using-local-cubemap-mode\r\n */\r\n public boundingBoxPosition = Vector3.Zero();\r\n\r\n private _boundingBoxSize: Vector3;\r\n\r\n /**\r\n * Gets or sets the size of the bounding box associated with the cube texture\r\n * When defined, the cubemap will switch to local mode\r\n * @see https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity\r\n * @example https://www.babylonjs-playground.com/#RNASML\r\n */\r\n public set boundingBoxSize(value: Vector3) {\r\n if (this._boundingBoxSize && this._boundingBoxSize.equals(value)) {\r\n return;\r\n }\r\n this._boundingBoxSize = value;\r\n const scene = this.getScene();\r\n if (scene) {\r\n scene.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n }\r\n /**\r\n * Returns the bounding box size\r\n * @see https://doc.babylonjs.com/how_to/reflect#using-local-cubemap-mode\r\n */\r\n public get boundingBoxSize(): Vector3 {\r\n return this._boundingBoxSize;\r\n }\r\n\r\n protected _rotationY: number = 0;\r\n\r\n /**\r\n * Sets texture matrix rotation angle around Y axis in radians.\r\n */\r\n @serialize(\"rotationY\")\r\n public set rotationY(value: number) {\r\n this._rotationY = value;\r\n this.setReflectionTextureMatrix(Matrix.RotationY(this._rotationY));\r\n }\r\n /**\r\n * Gets texture matrix rotation angle around Y axis radians.\r\n */\r\n public get rotationY(): number {\r\n return this._rotationY;\r\n }\r\n\r\n /**\r\n * Are mip maps generated for this texture or not.\r\n */\r\n public get noMipmap(): boolean {\r\n return this._noMipmap;\r\n }\r\n\r\n private _noMipmap: boolean;\r\n\r\n @serialize(\"files\")\r\n private _files: Nullable<string[]> = null;\r\n\r\n @serialize(\"forcedExtension\")\r\n protected _forcedExtension: Nullable<string> = null;\r\n\r\n /**\r\n * Gets the forced extension (if any)\r\n */\r\n public get forcedExtension(): Nullable<string> {\r\n return this._forcedExtension;\r\n }\r\n\r\n @serialize(\"extensions\")\r\n private _extensions: Nullable<string[]> = null;\r\n\r\n @serializeAsMatrix(\"textureMatrix\")\r\n private _textureMatrix: Matrix;\r\n\r\n private _format: number;\r\n private _createPolynomials: boolean;\r\n private _loaderOptions: any;\r\n private _useSRGBBuffer?: boolean;\r\n\r\n /**\r\n * Creates a cube texture from an array of image urls\r\n * @param files defines an array of image urls\r\n * @param scene defines the hosting scene\r\n * @param noMipmap specifies if mip maps are not used\r\n * @returns a cube texture\r\n */\r\n public static CreateFromImages(files: string[], scene: Scene, noMipmap?: boolean): CubeTexture {\r\n let rootUrlKey = \"\";\r\n\r\n files.forEach((url) => (rootUrlKey += url));\r\n\r\n return new CubeTexture(rootUrlKey, scene, null, noMipmap, files);\r\n }\r\n\r\n /**\r\n * Creates and return a texture created from prefilterd data by tools like IBL Baker or Lys.\r\n * @param url defines the url of the prefiltered texture\r\n * @param scene defines the scene the texture is attached to\r\n * @param forcedExtension defines the extension of the file if different from the url\r\n * @param createPolynomials defines whether or not to create polynomial harmonics from the texture data if necessary\r\n * @return the prefiltered texture\r\n */\r\n public static CreateFromPrefilteredData(url: string, scene: Scene, forcedExtension: any = null, createPolynomials: boolean = true) {\r\n const oldValue = scene.useDelayedTextureLoading;\r\n scene.useDelayedTextureLoading = false;\r\n\r\n const result = new CubeTexture(url, scene, null, false, null, null, null, undefined, true, forcedExtension, createPolynomials);\r\n\r\n scene.useDelayedTextureLoading = oldValue;\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Creates a cube texture to use with reflection for instance. It can be based upon dds or six images as well\r\n * as prefiltered data.\r\n * @param rootUrl defines the url of the texture or the root name of the six images\r\n * @param sceneOrEngine defines the scene or engine the texture is attached to\r\n * @param extensions defines the suffixes add to the picture name in case six images are in use like _px.jpg...\r\n * @param noMipmap defines if mipmaps should be created or not\r\n * @param files defines the six files to load for the different faces in that order: px, py, pz, nx, ny, nz\r\n * @param onLoad defines a callback triggered at the end of the file load if no errors occurred\r\n * @param onError defines a callback triggered in case of error during load\r\n * @param format defines the internal format to use for the texture once loaded\r\n * @param prefiltered defines whether or not the texture is created from prefiltered data\r\n * @param forcedExtension defines the extensions to use (force a special type of file to load) in case it is different from the file name\r\n * @param createPolynomials defines whether or not to create polynomial harmonics from the texture data if necessary\r\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\r\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\r\n * @param loaderOptions options to be passed to the loader\r\n * @param useSRGBBuffer Defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU) (default: false)\r\n * @return the cube texture\r\n */\r\n constructor(\r\n rootUrl: string,\r\n sceneOrEngine: Scene | ThinEngine,\r\n extensions: Nullable<string[]> = null,\r\n noMipmap: boolean = false,\r\n files: Nullable<string[]> = null,\r\n onLoad: Nullable<() => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format: number = Constants.TEXTUREFORMAT_RGBA,\r\n prefiltered = false,\r\n forcedExtension: any = null,\r\n createPolynomials: boolean = false,\r\n lodScale: number = 0.8,\r\n lodOffset: number = 0,\r\n loaderOptions?: any,\r\n useSRGBBuffer?: boolean\r\n ) {\r\n super(sceneOrEngine);\r\n\r\n this.name = rootUrl;\r\n this.url = rootUrl;\r\n this._noMipmap = noMipmap;\r\n this.hasAlpha = false;\r\n this._format = format;\r\n this.isCube = true;\r\n this._textureMatrix = Matrix.Identity();\r\n this._createPolynomials = createPolynomials;\r\n this.coordinatesMode = Texture.CUBIC_MODE;\r\n this._extensions = extensions;\r\n this._files = files;\r\n this._forcedExtension = forcedExtension;\r\n this._loaderOptions = loaderOptions;\r\n this._useSRGBBuffer = useSRGBBuffer;\r\n this._lodScale = lodScale;\r\n this._lodOffset = lodOffset;\r\n\r\n if (!rootUrl && !files) {\r\n return;\r\n }\r\n\r\n this.updateURL(rootUrl, forcedExtension, onLoad, prefiltered, onError, extensions, this.getScene()?.useDelayedTextureLoading, files);\r\n }\r\n\r\n /**\r\n * Get the current class name of the texture useful for serialization or dynamic coding.\r\n * @returns \"CubeTexture\"\r\n */\r\n public getClassName(): string {\r\n return \"CubeTexture\";\r\n }\r\n\r\n /**\r\n * Update the url (and optional buffer) of this texture if url was null during construction.\r\n * @param url the url of the texture\r\n * @param forcedExtension defines the extension to use\r\n * @param onLoad callback called when the texture is loaded (defaults to null)\r\n * @param prefiltered Defines whether the updated texture is prefiltered or not\r\n * @param onError callback called if there was an error during the loading process (defaults to null)\r\n * @param extensions defines the suffixes add to the picture name in case six images are in use like _px.jpg...\r\n * @param delayLoad defines if the texture should be loaded now (false by default)\r\n * @param files defines the six files to load for the different faces in that order: px, py, pz, nx, ny, nz\r\n */\r\n public updateURL(\r\n url: string,\r\n forcedExtension?: string,\r\n onLoad: Nullable<() => void> = null,\r\n prefiltered: boolean = false,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n extensions: Nullable<string[]> = null,\r\n delayLoad = false,\r\n files: Nullable<string[]> = null\r\n ): void {\r\n if (!this.name || StartsWith(this.name, \"data:\")) {\r\n this.name = url;\r\n }\r\n this.url = url;\r\n\r\n if (forcedExtension) {\r\n this._forcedExtension = forcedExtension;\r\n }\r\n\r\n const lastDot = url.lastIndexOf(\".\");\r\n const extension = forcedExtension ? forcedExtension : lastDot > -1 ? url.substring(lastDot).toLowerCase() : \"\";\r\n const isDDS = extension.indexOf(\".dds\") === 0;\r\n const isEnv = extension.indexOf(\".env\") === 0;\r\n\r\n if (isEnv) {\r\n this.gammaSpace = false;\r\n this._prefiltered = false;\r\n this.anisotropicFilteringLevel = 1;\r\n } else {\r\n this._prefiltered = prefiltered;\r\n\r\n if (prefiltered) {\r\n this.gammaSpace = false;\r\n this.anisotropicFilteringLevel = 1;\r\n }\r\n }\r\n\r\n if (files) {\r\n this._files = files;\r\n } else {\r\n if (!isEnv && !isDDS && !extensions) {\r\n extensions = [\"_px.jpg\", \"_py.jpg\", \"_pz.jpg\", \"_nx.jpg\", \"_ny.jpg\", \"_nz.jpg\"];\r\n }\r\n\r\n this._files = this._files || [];\r\n this._files.length = 0;\r\n\r\n if (extensions) {\r\n for (let index = 0; index < extensions.length; index++) {\r\n this._files.push(url + extensions[index]);\r\n }\r\n this._extensions = extensions;\r\n }\r\n }\r\n\r\n if (delayLoad) {\r\n this.delayLoadState = Constants.DELAYLOADSTATE_NOTLOADED;\r\n this._delayedOnLoad = onLoad;\r\n this._delayedOnError = onError;\r\n } else {\r\n this._loadTexture(onLoad, onError);\r\n }\r\n }\r\n\r\n /**\r\n * Delays loading of the cube texture\r\n * @param forcedExtension defines the extension to use\r\n */\r\n public delayLoad(forcedExtension?: string): void {\r\n if (this.delayLoadState !== Constants.DELAYLOADSTATE_NOTLOADED) {\r\n return;\r\n }\r\n if (forcedExtension) {\r\n this._forcedExtension = forcedExtension;\r\n }\r\n\r\n this.delayLoadState = Constants.DELAYLOADSTATE_LOADED;\r\n this._loadTexture(this._delayedOnLoad, this._delayedOnError);\r\n }\r\n\r\n /**\r\n * Returns the reflection texture matrix\r\n * @returns the reflection texture matrix\r\n */\r\n public getReflectionTextureMatrix(): Matrix {\r\n return this._textureMatrix;\r\n }\r\n\r\n /**\r\n * Sets the reflection texture matrix\r\n * @param value Reflection texture matrix\r\n */\r\n public setReflectionTextureMatrix(value: Matrix): void {\r\n if (value.updateFlag === this._textureMatrix.updateFlag) {\r\n return;\r\n }\r\n\r\n if (value.isIdentity() !== this._textureMatrix.isIdentity()) {\r\n this.getScene()?.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag, (mat) => mat.getActiveTextures().indexOf(this) !== -1);\r\n }\r\n\r\n this._textureMatrix = value;\r\n }\r\n\r\n private _loadTexture(onLoad: Nullable<() => void> = null, onError: Nullable<(message?: string, exception?: any) => void> = null) {\r\n const scene = this.getScene();\r\n const oldTexture = this._texture;\r\n this._texture = this._getFromCache(this.url, this._noMipmap, undefined, undefined, this._useSRGBBuffer);\r\n\r\n const onLoadProcessing = () => {\r\n this.onLoadObservable.notifyObservers(this);\r\n if (oldTexture) {\r\n oldTexture.dispose();\r\n this.getScene()?.markAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n };\r\n\r\n const errorHandler = (message?: string, exception?: any) => {\r\n this._loadingError = true;\r\n this._errorObject = { message, exception };\r\n if (onError) {\r\n onError(message, exception);\r\n }\r\n Texture.OnTextureLoadErrorObservable.notifyObservers(this);\r\n };\r\n\r\n if (!this._texture) {\r\n if (this._prefiltered) {\r\n this._texture = this._getEngine()!.createPrefilteredCubeTexture(\r\n this.url,\r\n scene,\r\n this._lodScale,\r\n this._lodOffset,\r\n onLoad,\r\n errorHandler,\r\n this._format,\r\n this._forcedExtension,\r\n this._createPolynomials\r\n );\r\n } else {\r\n this._texture = this._getEngine()!.createCubeTexture(\r\n this.url,\r\n scene,\r\n this._files,\r\n this._noMipmap,\r\n onLoad,\r\n errorHandler,\r\n this._format,\r\n this._forcedExtension,\r\n false,\r\n this._lodScale,\r\n this._lodOffset,\r\n null,\r\n this._loaderOptions,\r\n !!this._useSRGBBuffer\r\n );\r\n }\r\n\r\n this._texture?.onLoadedObservable.add(() => this.onLoadObservable.notifyObservers(this));\r\n } else {\r\n if (this._texture.isReady) {\r\n Tools.SetImmediate(() => onLoadProcessing());\r\n } else {\r\n this._texture.onLoadedObservable.add(() => onLoadProcessing());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Parses text to create a cube texture\r\n * @param parsedTexture define the serialized text to read from\r\n * @param scene defines the hosting scene\r\n * @param rootUrl defines the root url of the cube texture\r\n * @returns a cube texture\r\n */\r\n public static Parse(parsedTexture: any, scene: Scene, rootUrl: string): CubeTexture {\r\n const texture = SerializationHelper.Parse(\r\n () => {\r\n let prefiltered: boolean = false;\r\n if (parsedTexture.prefiltered) {\r\n prefiltered = parsedTexture.prefiltered;\r\n }\r\n return new CubeTexture(\r\n rootUrl + parsedTexture.name,\r\n scene,\r\n parsedTexture.extensions,\r\n false,\r\n parsedTexture.files || null,\r\n null,\r\n null,\r\n undefined,\r\n prefiltered,\r\n parsedTexture.forcedExtension\r\n );\r\n },\r\n parsedTexture,\r\n scene\r\n );\r\n\r\n // Local Cubemaps\r\n if (parsedTexture.boundingBoxPosition) {\r\n texture.boundingBoxPosition = Vector3.FromArray(parsedTexture.boundingBoxPosition);\r\n }\r\n if (parsedTexture.boundingBoxSize) {\r\n texture.boundingBoxSize = Vector3.FromArray(parsedTexture.boundingBoxSize);\r\n }\r\n\r\n // Animations\r\n if (parsedTexture.animations) {\r\n for (let animationIndex = 0; animationIndex < parsedTexture.animations.length; animationIndex++) {\r\n const parsedAnimation = parsedTexture.animations[animationIndex];\r\n const internalClass = GetClass(\"BABYLON.Animation\");\r\n if (internalClass) {\r\n texture.animations.push(internalClass.Parse(parsedAnimation));\r\n }\r\n }\r\n }\r\n\r\n return texture;\r\n }\r\n\r\n /**\r\n * Makes a clone, or deep copy, of the cube texture\r\n * @returns a new cube texture\r\n */\r\n public clone(): CubeTexture {\r\n let uniqueId = 0;\r\n\r\n const newCubeTexture = SerializationHelper.Clone(() => {\r\n const cubeTexture = new CubeTexture(this.url, this.getScene() || this._getEngine()!, this._extensions, this._noMipmap, this._files);\r\n uniqueId = cubeTexture.uniqueId;\r\n\r\n return cubeTexture;\r\n }, this);\r\n\r\n newCubeTexture.uniqueId = uniqueId;\r\n\r\n return newCubeTexture;\r\n }\r\n}\r\n\r\nTexture._CubeTextureParser = CubeTexture.Parse;\r\n// Some exporters relies on Tools.Instantiate\r\nRegisterClass(\"BABYLON.CubeTexture\", CubeTexture);\r\n"]}
|
|
@@ -128,30 +128,30 @@ var VideoTexture = /** @class */ (function (_super) {
|
|
|
128
128
|
_this._currentSrc = src;
|
|
129
129
|
_this.name = name || _this._getName(src);
|
|
130
130
|
_this.video = _this._getVideo(src);
|
|
131
|
-
if (
|
|
132
|
-
_this.video.poster =
|
|
131
|
+
if (_this._settings.poster) {
|
|
132
|
+
_this.video.poster = _this._settings.poster;
|
|
133
133
|
}
|
|
134
|
-
if (
|
|
135
|
-
_this.video.autoplay =
|
|
134
|
+
if (_this._settings.autoPlay !== undefined) {
|
|
135
|
+
_this.video.autoplay = _this._settings.autoPlay;
|
|
136
136
|
}
|
|
137
|
-
if (
|
|
138
|
-
_this.video.loop =
|
|
137
|
+
if (_this._settings.loop !== undefined) {
|
|
138
|
+
_this.video.loop = _this._settings.loop;
|
|
139
139
|
}
|
|
140
|
-
if (
|
|
141
|
-
_this.video.muted =
|
|
140
|
+
if (_this._settings.muted !== undefined) {
|
|
141
|
+
_this.video.muted = _this._settings.muted;
|
|
142
142
|
}
|
|
143
143
|
_this.video.setAttribute("playsinline", "");
|
|
144
144
|
_this.video.addEventListener("paused", _this._updateInternalTexture);
|
|
145
145
|
_this.video.addEventListener("seeked", _this._updateInternalTexture);
|
|
146
146
|
_this.video.addEventListener("emptied", _this._reset);
|
|
147
|
-
_this._createInternalTextureOnEvent =
|
|
147
|
+
_this._createInternalTextureOnEvent = _this._settings.poster && !_this._settings.autoPlay ? "play" : "canplay";
|
|
148
148
|
_this.video.addEventListener(_this._createInternalTextureOnEvent, _this._createInternalTexture);
|
|
149
|
-
if (
|
|
149
|
+
if (_this._settings.autoPlay) {
|
|
150
150
|
_this._handlePlay();
|
|
151
151
|
}
|
|
152
152
|
var videoHasEnoughData = _this.video.readyState >= _this.video.HAVE_CURRENT_DATA;
|
|
153
|
-
if (
|
|
154
|
-
_this._texture = _this._getEngine().createTexture(
|
|
153
|
+
if (_this._settings.poster && (!_this._settings.autoPlay || !videoHasEnoughData)) {
|
|
154
|
+
_this._texture = _this._getEngine().createTexture(_this._settings.poster, false, !_this.invertY, scene);
|
|
155
155
|
_this._displayingPosterTexture = true;
|
|
156
156
|
}
|
|
157
157
|
else if (videoHasEnoughData) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/videoTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\n\r\nimport \"../../Engines/Extensions/engine.videoTexture\";\r\nimport \"../../Engines/Extensions/engine.dynamicTexture\";\r\n\r\nfunction removeSource(video: HTMLVideoElement): void {\r\n // Remove any <source> elements, etc.\r\n while (video.firstChild) {\r\n video.removeChild(video.firstChild);\r\n }\r\n\r\n // detach srcObject\r\n video.srcObject = null;\r\n\r\n // Set a blank src (https://html.spec.whatwg.org/multipage/media.html#best-practices-for-authors-using-media-elements)\r\n video.src = \"\";\r\n\r\n // Prevent non-important errors maybe (https://twitter.com/beraliv/status/1205214277956775936)\r\n video.removeAttribute(\"src\");\r\n}\r\n\r\n/**\r\n * Settings for finer control over video usage\r\n */\r\nexport interface VideoTextureSettings {\r\n /**\r\n * Applies `autoplay` to video, if specified\r\n */\r\n autoPlay?: boolean;\r\n\r\n /**\r\n * Applies `muted` to video, if specified\r\n */\r\n muted?: boolean;\r\n\r\n /**\r\n * Applies `loop` to video, if specified\r\n */\r\n loop?: boolean;\r\n\r\n /**\r\n * Automatically updates internal texture from video at every frame in the render loop\r\n */\r\n autoUpdateTexture: boolean;\r\n\r\n /**\r\n * Image src displayed during the video loading or until the user interacts with the video.\r\n */\r\n poster?: string;\r\n}\r\n\r\n/**\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/divingDeeper/materials/using/videoTexture\r\n */\r\nexport class VideoTexture extends Texture {\r\n /**\r\n * Tells whether textures will be updated automatically or user is required to call `updateTexture` manually\r\n */\r\n public readonly autoUpdateTexture: boolean;\r\n\r\n /**\r\n * The video instance used by the texture internally\r\n */\r\n public readonly video: HTMLVideoElement;\r\n\r\n private _onUserActionRequestedObservable: Nullable<Observable<Texture>> = null;\r\n\r\n /**\r\n * Event triggered when a dom action is required by the user to play the video.\r\n * This happens due to recent changes in browser policies preventing video to auto start.\r\n */\r\n public get onUserActionRequestedObservable(): Observable<Texture> {\r\n if (!this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable = new Observable<Texture>();\r\n }\r\n return this._onUserActionRequestedObservable;\r\n }\r\n\r\n private _generateMipMaps: boolean;\r\n private _stillImageCaptured = false;\r\n private _displayingPosterTexture = false;\r\n private _settings: VideoTextureSettings;\r\n private _createInternalTextureOnEvent: string;\r\n private _frameId = -1;\r\n private _currentSrc: Nullable<string | string[] | HTMLVideoElement> = null;\r\n private _onError?: Nullable<(message?: string, exception?: any) => void>;\r\n private _errorFound = false;\r\n\r\n private _processError(reason: any) {\r\n this._errorFound = true;\r\n if (this._onError) {\r\n this._onError(reason?.message);\r\n } else {\r\n Logger.Error(reason?.message);\r\n }\r\n }\r\n\r\n private _handlePlay() {\r\n this._errorFound = false;\r\n this.video.play().catch((reason) => {\r\n if (reason?.name === \"NotAllowedError\") {\r\n if (this._onUserActionRequestedObservable && this._onUserActionRequestedObservable.hasObservers()) {\r\n this._onUserActionRequestedObservable.notifyObservers(this);\r\n return;\r\n } else if (!this.video.muted) {\r\n Logger.Warn(\"Unable to autoplay a video with sound. Trying again with muted turned true\");\r\n this.video.muted = true;\r\n this._errorFound = false;\r\n this.video.play().catch((otherReason) => {\r\n this._processError(otherReason);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n this._processError(reason);\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture.\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/how_to/video_texture\r\n * @param name optional name, will detect from video source, if not defined\r\n * @param src can be used to provide an url, array of urls or an already setup HTML video element.\r\n * @param scene is obviously the current scene.\r\n * @param generateMipMaps can be used to turn on mipmaps (Can be expensive for videoTextures because they are often updated).\r\n * @param invertY is false by default but can be used to invert video on Y axis\r\n * @param samplingMode controls the sampling method and is set to TRILINEAR_SAMPLINGMODE by default\r\n * @param settings allows finer control over video usage\r\n * @param onError defines a callback triggered when an error occurred during the loading session\r\n */\r\n constructor(\r\n name: Nullable<string>,\r\n src: string | string[] | HTMLVideoElement,\r\n scene: Nullable<Scene>,\r\n generateMipMaps = false,\r\n invertY = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n settings: Partial<VideoTextureSettings> = {},\r\n onError?: Nullable<(message?: string, exception?: any) => void>\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._settings = {\r\n autoPlay: true,\r\n loop: true,\r\n autoUpdateTexture: true,\r\n ...settings,\r\n };\r\n\r\n this._onError = onError;\r\n\r\n this._generateMipMaps = generateMipMaps;\r\n this._initialSamplingMode = samplingMode;\r\n this.autoUpdateTexture = this._settings.autoUpdateTexture;\r\n\r\n this._currentSrc = src;\r\n this.name = name || this._getName(src);\r\n this.video = this._getVideo(src);\r\n\r\n if (settings.poster) {\r\n this.video.poster = settings.poster;\r\n }\r\n if (settings.autoPlay !== undefined) {\r\n this.video.autoplay = settings.autoPlay;\r\n }\r\n if (settings.loop !== undefined) {\r\n this.video.loop = settings.loop;\r\n }\r\n if (settings.muted !== undefined) {\r\n this.video.muted = settings.muted;\r\n }\r\n\r\n this.video.setAttribute(\"playsinline\", \"\");\r\n this.video.addEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.addEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.addEventListener(\"emptied\", this._reset);\r\n this._createInternalTextureOnEvent = settings.poster && !settings.autoPlay ? \"play\" : \"canplay\";\r\n this.video.addEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n\r\n if (settings.autoPlay) {\r\n this._handlePlay();\r\n }\r\n\r\n const videoHasEnoughData = this.video.readyState >= this.video.HAVE_CURRENT_DATA;\r\n if (settings.poster && (!settings.autoPlay || !videoHasEnoughData)) {\r\n this._texture = this._getEngine()!.createTexture(settings.poster!, false, !this.invertY, scene);\r\n this._displayingPosterTexture = true;\r\n } else if (videoHasEnoughData) {\r\n this._createInternalTexture();\r\n }\r\n }\r\n\r\n /**\r\n * Get the current class name of the video texture useful for serialization or dynamic coding.\r\n * @returns \"VideoTexture\"\r\n */\r\n public getClassName(): string {\r\n return \"VideoTexture\";\r\n }\r\n\r\n private _getName(src: string | string[] | HTMLVideoElement): string {\r\n if (src instanceof HTMLVideoElement) {\r\n return src.currentSrc;\r\n }\r\n\r\n if (typeof src === \"object\") {\r\n return src.toString();\r\n }\r\n\r\n return src;\r\n }\r\n\r\n private _getVideo(src: string | string[] | HTMLVideoElement): HTMLVideoElement {\r\n if ((<any>src).isNative) {\r\n return <HTMLVideoElement>src;\r\n }\r\n if (src instanceof HTMLVideoElement) {\r\n Tools.SetCorsBehavior(src.currentSrc, src);\r\n return src;\r\n }\r\n const video: HTMLVideoElement = document.createElement(\"video\");\r\n if (typeof src === \"string\") {\r\n Tools.SetCorsBehavior(src, video);\r\n video.src = src;\r\n } else {\r\n Tools.SetCorsBehavior(src[0], video);\r\n src.forEach((url) => {\r\n const source = document.createElement(\"source\");\r\n source.src = url;\r\n video.appendChild(source);\r\n });\r\n }\r\n\r\n this.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n return video;\r\n }\r\n\r\n private _createInternalTexture = (): void => {\r\n if (this._texture != null) {\r\n if (this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._displayingPosterTexture = false;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (!this._getEngine()!.needPOTTextures || (Tools.IsExponentOfTwo(this.video.videoWidth) && Tools.IsExponentOfTwo(this.video.videoHeight))) {\r\n this.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this.wrapV = Texture.WRAP_ADDRESSMODE;\r\n } else {\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._generateMipMaps = false;\r\n }\r\n\r\n this._texture = this._getEngine()!.createDynamicTexture(this.video.videoWidth, this.video.videoHeight, this._generateMipMaps, this.samplingMode);\r\n\r\n if (!this.video.autoplay && !this._settings.poster) {\r\n const oldHandler = this.video.onplaying;\r\n const oldMuted = this.video.muted;\r\n this.video.muted = true;\r\n this.video.onplaying = () => {\r\n this.video.muted = oldMuted;\r\n this.video.onplaying = oldHandler;\r\n this._updateInternalTexture();\r\n if (!this._errorFound) {\r\n this.video.pause();\r\n }\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n };\r\n this._handlePlay();\r\n } else {\r\n this._updateInternalTexture();\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n }\r\n };\r\n\r\n private _reset = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n\r\n if (!this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._texture = null;\r\n }\r\n };\r\n\r\n /**\r\n * @hidden Internal method to initiate `update`.\r\n */\r\n public _rebuild(): void {\r\n this.update();\r\n }\r\n\r\n /**\r\n * Update Texture in the `auto` mode. Does not do anything if `settings.autoUpdateTexture` is false.\r\n */\r\n public update(): void {\r\n if (!this.autoUpdateTexture) {\r\n // Expecting user to call `updateTexture` manually\r\n return;\r\n }\r\n\r\n this.updateTexture(true);\r\n }\r\n\r\n /**\r\n * Update Texture in `manual` mode. Does not do anything if not visible or paused.\r\n * @param isVisible Visibility state, detected by user using `scene.getActiveMeshes()` or otherwise.\r\n */\r\n public updateTexture(isVisible: boolean): void {\r\n if (!isVisible) {\r\n return;\r\n }\r\n if (this.video.paused && this._stillImageCaptured) {\r\n return;\r\n }\r\n this._stillImageCaptured = true;\r\n this._updateInternalTexture();\r\n }\r\n\r\n protected _updateInternalTexture = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n if (this.video.readyState < this.video.HAVE_CURRENT_DATA) {\r\n return;\r\n }\r\n if (this._displayingPosterTexture) {\r\n return;\r\n }\r\n\r\n const frameId = this.getScene()!.getFrameId();\r\n if (this._frameId === frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = frameId;\r\n\r\n this._getEngine()!.updateVideoTexture(this._texture, this.video, this._invertY);\r\n };\r\n\r\n /**\r\n * Change video content. Changing video instance or setting multiple urls (as in constructor) is not supported.\r\n * @param url New url.\r\n */\r\n public updateURL(url: string): void {\r\n this.video.src = url;\r\n this._currentSrc = url;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public clone(): VideoTexture {\r\n return new VideoTexture(this.name, this._currentSrc!, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);\r\n }\r\n\r\n /**\r\n * Dispose the texture and release its associated resources.\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this._currentSrc = null;\r\n\r\n if (this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable.clear();\r\n this._onUserActionRequestedObservable = null;\r\n }\r\n\r\n this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n this.video.removeEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"emptied\", this._reset);\r\n this.video.pause();\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from a stream.\r\n * @param scene Define the scene the texture should be created in\r\n * @param stream Define the stream the texture should be created from\r\n * @param constraints video constraints\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromStreamAsync(scene: Scene, stream: MediaStream, constraints: any, invertY = true): Promise<VideoTexture> {\r\n const video = scene.getEngine().createVideoElement(constraints);\r\n\r\n if (scene.getEngine()._badOS) {\r\n // Yes... I know and I hope to remove it soon...\r\n document.body.appendChild(video);\r\n video.style.transform = \"scale(0.0001, 0.0001)\";\r\n video.style.opacity = \"0\";\r\n video.style.position = \"fixed\";\r\n video.style.bottom = \"0px\";\r\n video.style.right = \"0px\";\r\n }\r\n\r\n video.setAttribute(\"autoplay\", \"\");\r\n video.setAttribute(\"muted\", \"true\");\r\n video.setAttribute(\"playsinline\", \"\");\r\n video.muted = true;\r\n\r\n if (video.mozSrcObject !== undefined) {\r\n // hack for Firefox < 19\r\n video.mozSrcObject = stream;\r\n } else {\r\n if (typeof video.srcObject == \"object\") {\r\n video.srcObject = stream;\r\n } else {\r\n window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n // older API. See https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#using_object_urls_for_media_streams\r\n video.src = window.URL && window.URL.createObjectURL(stream as any);\r\n }\r\n }\r\n\r\n return new Promise<VideoTexture>((resolve) => {\r\n const onPlaying = () => {\r\n const videoTexture = new VideoTexture(\"video\", video, scene, true, invertY);\r\n if (scene.getEngine()._badOS) {\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n video.remove();\r\n });\r\n }\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n resolve(videoTexture);\r\n video.removeEventListener(\"playing\", onPlaying);\r\n };\r\n\r\n video.addEventListener(\"playing\", onPlaying);\r\n video.play();\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Define the scene the texture should be created in\r\n * @param constraints Define the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Define the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromWebCamAsync(\r\n scene: Scene,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): Promise<VideoTexture> {\r\n let constraintsDeviceId;\r\n if (constraints && constraints.deviceId) {\r\n constraintsDeviceId = {\r\n exact: constraints.deviceId,\r\n };\r\n }\r\n\r\n if (navigator.mediaDevices) {\r\n return navigator.mediaDevices\r\n .getUserMedia({\r\n video: constraints,\r\n audio: audioConstaints,\r\n })\r\n .then((stream) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n });\r\n } else {\r\n const getUserMedia = (navigator as any).getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n\r\n if (getUserMedia) {\r\n getUserMedia(\r\n {\r\n video: {\r\n deviceId: constraintsDeviceId,\r\n width: {\r\n min: (constraints && constraints.minWidth) || 256,\r\n max: (constraints && constraints.maxWidth) || 640,\r\n },\r\n height: {\r\n min: (constraints && constraints.minHeight) || 256,\r\n max: (constraints && constraints.maxHeight) || 480,\r\n },\r\n },\r\n audio: audioConstaints,\r\n },\r\n (stream: any) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n },\r\n function (e: any) {\r\n Logger.Error(e.name);\r\n }\r\n );\r\n }\r\n }\r\n\r\n return Promise.reject(\"No support for userMedia on this device\");\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Defines the scene the texture should be created in\r\n * @param onReady Defines a callback to triggered once the texture will be ready\r\n * @param constraints Defines the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Defines the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n */\r\n public static CreateFromWebCam(\r\n scene: Scene,\r\n onReady: (videoTexture: VideoTexture) => void,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): void {\r\n this.CreateFromWebCamAsync(scene, constraints, audioConstaints, invertY)\r\n .then(function (videoTexture) {\r\n if (onReady) {\r\n onReady(videoTexture);\r\n }\r\n })\r\n .catch(function (err) {\r\n Logger.Error(err.name);\r\n });\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"videoTexture.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Materials/Textures/videoTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Texture } from \"../../Materials/Textures/texture\";\r\n\r\nimport \"../../Engines/Extensions/engine.videoTexture\";\r\nimport \"../../Engines/Extensions/engine.dynamicTexture\";\r\n\r\nfunction removeSource(video: HTMLVideoElement): void {\r\n // Remove any <source> elements, etc.\r\n while (video.firstChild) {\r\n video.removeChild(video.firstChild);\r\n }\r\n\r\n // detach srcObject\r\n video.srcObject = null;\r\n\r\n // Set a blank src (https://html.spec.whatwg.org/multipage/media.html#best-practices-for-authors-using-media-elements)\r\n video.src = \"\";\r\n\r\n // Prevent non-important errors maybe (https://twitter.com/beraliv/status/1205214277956775936)\r\n video.removeAttribute(\"src\");\r\n}\r\n\r\n/**\r\n * Settings for finer control over video usage\r\n */\r\nexport interface VideoTextureSettings {\r\n /**\r\n * Applies `autoplay` to video, if specified\r\n */\r\n autoPlay?: boolean;\r\n\r\n /**\r\n * Applies `muted` to video, if specified\r\n */\r\n muted?: boolean;\r\n\r\n /**\r\n * Applies `loop` to video, if specified\r\n */\r\n loop?: boolean;\r\n\r\n /**\r\n * Automatically updates internal texture from video at every frame in the render loop\r\n */\r\n autoUpdateTexture: boolean;\r\n\r\n /**\r\n * Image src displayed during the video loading or until the user interacts with the video.\r\n */\r\n poster?: string;\r\n}\r\n\r\n/**\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/divingDeeper/materials/using/videoTexture\r\n */\r\nexport class VideoTexture extends Texture {\r\n /**\r\n * Tells whether textures will be updated automatically or user is required to call `updateTexture` manually\r\n */\r\n public readonly autoUpdateTexture: boolean;\r\n\r\n /**\r\n * The video instance used by the texture internally\r\n */\r\n public readonly video: HTMLVideoElement;\r\n\r\n private _onUserActionRequestedObservable: Nullable<Observable<Texture>> = null;\r\n\r\n /**\r\n * Event triggered when a dom action is required by the user to play the video.\r\n * This happens due to recent changes in browser policies preventing video to auto start.\r\n */\r\n public get onUserActionRequestedObservable(): Observable<Texture> {\r\n if (!this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable = new Observable<Texture>();\r\n }\r\n return this._onUserActionRequestedObservable;\r\n }\r\n\r\n private _generateMipMaps: boolean;\r\n private _stillImageCaptured = false;\r\n private _displayingPosterTexture = false;\r\n private _settings: VideoTextureSettings;\r\n private _createInternalTextureOnEvent: string;\r\n private _frameId = -1;\r\n private _currentSrc: Nullable<string | string[] | HTMLVideoElement> = null;\r\n private _onError?: Nullable<(message?: string, exception?: any) => void>;\r\n private _errorFound = false;\r\n\r\n private _processError(reason: any) {\r\n this._errorFound = true;\r\n if (this._onError) {\r\n this._onError(reason?.message);\r\n } else {\r\n Logger.Error(reason?.message);\r\n }\r\n }\r\n\r\n private _handlePlay() {\r\n this._errorFound = false;\r\n this.video.play().catch((reason) => {\r\n if (reason?.name === \"NotAllowedError\") {\r\n if (this._onUserActionRequestedObservable && this._onUserActionRequestedObservable.hasObservers()) {\r\n this._onUserActionRequestedObservable.notifyObservers(this);\r\n return;\r\n } else if (!this.video.muted) {\r\n Logger.Warn(\"Unable to autoplay a video with sound. Trying again with muted turned true\");\r\n this.video.muted = true;\r\n this._errorFound = false;\r\n this.video.play().catch((otherReason) => {\r\n this._processError(otherReason);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n this._processError(reason);\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture.\r\n * If you want to display a video in your scene, this is the special texture for that.\r\n * This special texture works similar to other textures, with the exception of a few parameters.\r\n * @see https://doc.babylonjs.com/how_to/video_texture\r\n * @param name optional name, will detect from video source, if not defined\r\n * @param src can be used to provide an url, array of urls or an already setup HTML video element.\r\n * @param scene is obviously the current scene.\r\n * @param generateMipMaps can be used to turn on mipmaps (Can be expensive for videoTextures because they are often updated).\r\n * @param invertY is false by default but can be used to invert video on Y axis\r\n * @param samplingMode controls the sampling method and is set to TRILINEAR_SAMPLINGMODE by default\r\n * @param settings allows finer control over video usage\r\n * @param onError defines a callback triggered when an error occurred during the loading session\r\n */\r\n constructor(\r\n name: Nullable<string>,\r\n src: string | string[] | HTMLVideoElement,\r\n scene: Nullable<Scene>,\r\n generateMipMaps = false,\r\n invertY = false,\r\n samplingMode: number = Texture.TRILINEAR_SAMPLINGMODE,\r\n settings: Partial<VideoTextureSettings> = {},\r\n onError?: Nullable<(message?: string, exception?: any) => void>\r\n ) {\r\n super(null, scene, !generateMipMaps, invertY);\r\n\r\n this._settings = {\r\n autoPlay: true,\r\n loop: true,\r\n autoUpdateTexture: true,\r\n ...settings,\r\n };\r\n\r\n this._onError = onError;\r\n\r\n this._generateMipMaps = generateMipMaps;\r\n this._initialSamplingMode = samplingMode;\r\n this.autoUpdateTexture = this._settings.autoUpdateTexture;\r\n\r\n this._currentSrc = src;\r\n this.name = name || this._getName(src);\r\n this.video = this._getVideo(src);\r\n\r\n if (this._settings.poster) {\r\n this.video.poster = this._settings.poster;\r\n }\r\n if (this._settings.autoPlay !== undefined) {\r\n this.video.autoplay = this._settings.autoPlay;\r\n }\r\n if (this._settings.loop !== undefined) {\r\n this.video.loop = this._settings.loop;\r\n }\r\n if (this._settings.muted !== undefined) {\r\n this.video.muted = this._settings.muted;\r\n }\r\n\r\n this.video.setAttribute(\"playsinline\", \"\");\r\n this.video.addEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.addEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.addEventListener(\"emptied\", this._reset);\r\n this._createInternalTextureOnEvent = this._settings.poster && !this._settings.autoPlay ? \"play\" : \"canplay\";\r\n this.video.addEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n\r\n if (this._settings.autoPlay) {\r\n this._handlePlay();\r\n }\r\n\r\n const videoHasEnoughData = this.video.readyState >= this.video.HAVE_CURRENT_DATA;\r\n if (this._settings.poster && (!this._settings.autoPlay || !videoHasEnoughData)) {\r\n this._texture = this._getEngine()!.createTexture(this._settings.poster!, false, !this.invertY, scene);\r\n this._displayingPosterTexture = true;\r\n } else if (videoHasEnoughData) {\r\n this._createInternalTexture();\r\n }\r\n }\r\n\r\n /**\r\n * Get the current class name of the video texture useful for serialization or dynamic coding.\r\n * @returns \"VideoTexture\"\r\n */\r\n public getClassName(): string {\r\n return \"VideoTexture\";\r\n }\r\n\r\n private _getName(src: string | string[] | HTMLVideoElement): string {\r\n if (src instanceof HTMLVideoElement) {\r\n return src.currentSrc;\r\n }\r\n\r\n if (typeof src === \"object\") {\r\n return src.toString();\r\n }\r\n\r\n return src;\r\n }\r\n\r\n private _getVideo(src: string | string[] | HTMLVideoElement): HTMLVideoElement {\r\n if ((<any>src).isNative) {\r\n return <HTMLVideoElement>src;\r\n }\r\n if (src instanceof HTMLVideoElement) {\r\n Tools.SetCorsBehavior(src.currentSrc, src);\r\n return src;\r\n }\r\n const video: HTMLVideoElement = document.createElement(\"video\");\r\n if (typeof src === \"string\") {\r\n Tools.SetCorsBehavior(src, video);\r\n video.src = src;\r\n } else {\r\n Tools.SetCorsBehavior(src[0], video);\r\n src.forEach((url) => {\r\n const source = document.createElement(\"source\");\r\n source.src = url;\r\n video.appendChild(source);\r\n });\r\n }\r\n\r\n this.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n return video;\r\n }\r\n\r\n private _createInternalTexture = (): void => {\r\n if (this._texture != null) {\r\n if (this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._displayingPosterTexture = false;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (!this._getEngine()!.needPOTTextures || (Tools.IsExponentOfTwo(this.video.videoWidth) && Tools.IsExponentOfTwo(this.video.videoHeight))) {\r\n this.wrapU = Texture.WRAP_ADDRESSMODE;\r\n this.wrapV = Texture.WRAP_ADDRESSMODE;\r\n } else {\r\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._generateMipMaps = false;\r\n }\r\n\r\n this._texture = this._getEngine()!.createDynamicTexture(this.video.videoWidth, this.video.videoHeight, this._generateMipMaps, this.samplingMode);\r\n\r\n if (!this.video.autoplay && !this._settings.poster) {\r\n const oldHandler = this.video.onplaying;\r\n const oldMuted = this.video.muted;\r\n this.video.muted = true;\r\n this.video.onplaying = () => {\r\n this.video.muted = oldMuted;\r\n this.video.onplaying = oldHandler;\r\n this._updateInternalTexture();\r\n if (!this._errorFound) {\r\n this.video.pause();\r\n }\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n };\r\n this._handlePlay();\r\n } else {\r\n this._updateInternalTexture();\r\n if (this.onLoadObservable.hasObservers()) {\r\n this.onLoadObservable.notifyObservers(this);\r\n }\r\n }\r\n };\r\n\r\n private _reset = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n\r\n if (!this._displayingPosterTexture) {\r\n this._texture.dispose();\r\n this._texture = null;\r\n }\r\n };\r\n\r\n /**\r\n * @hidden Internal method to initiate `update`.\r\n */\r\n public _rebuild(): void {\r\n this.update();\r\n }\r\n\r\n /**\r\n * Update Texture in the `auto` mode. Does not do anything if `settings.autoUpdateTexture` is false.\r\n */\r\n public update(): void {\r\n if (!this.autoUpdateTexture) {\r\n // Expecting user to call `updateTexture` manually\r\n return;\r\n }\r\n\r\n this.updateTexture(true);\r\n }\r\n\r\n /**\r\n * Update Texture in `manual` mode. Does not do anything if not visible or paused.\r\n * @param isVisible Visibility state, detected by user using `scene.getActiveMeshes()` or otherwise.\r\n */\r\n public updateTexture(isVisible: boolean): void {\r\n if (!isVisible) {\r\n return;\r\n }\r\n if (this.video.paused && this._stillImageCaptured) {\r\n return;\r\n }\r\n this._stillImageCaptured = true;\r\n this._updateInternalTexture();\r\n }\r\n\r\n protected _updateInternalTexture = (): void => {\r\n if (this._texture == null) {\r\n return;\r\n }\r\n if (this.video.readyState < this.video.HAVE_CURRENT_DATA) {\r\n return;\r\n }\r\n if (this._displayingPosterTexture) {\r\n return;\r\n }\r\n\r\n const frameId = this.getScene()!.getFrameId();\r\n if (this._frameId === frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = frameId;\r\n\r\n this._getEngine()!.updateVideoTexture(this._texture, this.video, this._invertY);\r\n };\r\n\r\n /**\r\n * Change video content. Changing video instance or setting multiple urls (as in constructor) is not supported.\r\n * @param url New url.\r\n */\r\n public updateURL(url: string): void {\r\n this.video.src = url;\r\n this._currentSrc = url;\r\n }\r\n\r\n /**\r\n * Clones the texture.\r\n * @returns the cloned texture\r\n */\r\n public clone(): VideoTexture {\r\n return new VideoTexture(this.name, this._currentSrc!, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);\r\n }\r\n\r\n /**\r\n * Dispose the texture and release its associated resources.\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this._currentSrc = null;\r\n\r\n if (this._onUserActionRequestedObservable) {\r\n this._onUserActionRequestedObservable.clear();\r\n this._onUserActionRequestedObservable = null;\r\n }\r\n\r\n this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\r\n this.video.removeEventListener(\"paused\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"seeked\", this._updateInternalTexture);\r\n this.video.removeEventListener(\"emptied\", this._reset);\r\n this.video.pause();\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from a stream.\r\n * @param scene Define the scene the texture should be created in\r\n * @param stream Define the stream the texture should be created from\r\n * @param constraints video constraints\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromStreamAsync(scene: Scene, stream: MediaStream, constraints: any, invertY = true): Promise<VideoTexture> {\r\n const video = scene.getEngine().createVideoElement(constraints);\r\n\r\n if (scene.getEngine()._badOS) {\r\n // Yes... I know and I hope to remove it soon...\r\n document.body.appendChild(video);\r\n video.style.transform = \"scale(0.0001, 0.0001)\";\r\n video.style.opacity = \"0\";\r\n video.style.position = \"fixed\";\r\n video.style.bottom = \"0px\";\r\n video.style.right = \"0px\";\r\n }\r\n\r\n video.setAttribute(\"autoplay\", \"\");\r\n video.setAttribute(\"muted\", \"true\");\r\n video.setAttribute(\"playsinline\", \"\");\r\n video.muted = true;\r\n\r\n if (video.mozSrcObject !== undefined) {\r\n // hack for Firefox < 19\r\n video.mozSrcObject = stream;\r\n } else {\r\n if (typeof video.srcObject == \"object\") {\r\n video.srcObject = stream;\r\n } else {\r\n window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n // older API. See https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#using_object_urls_for_media_streams\r\n video.src = window.URL && window.URL.createObjectURL(stream as any);\r\n }\r\n }\r\n\r\n return new Promise<VideoTexture>((resolve) => {\r\n const onPlaying = () => {\r\n const videoTexture = new VideoTexture(\"video\", video, scene, true, invertY);\r\n if (scene.getEngine()._badOS) {\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n video.remove();\r\n });\r\n }\r\n videoTexture.onDisposeObservable.addOnce(() => {\r\n removeSource(video);\r\n });\r\n\r\n resolve(videoTexture);\r\n video.removeEventListener(\"playing\", onPlaying);\r\n };\r\n\r\n video.addEventListener(\"playing\", onPlaying);\r\n video.play();\r\n });\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Define the scene the texture should be created in\r\n * @param constraints Define the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Define the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n * @returns The created video texture as a promise\r\n */\r\n public static CreateFromWebCamAsync(\r\n scene: Scene,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): Promise<VideoTexture> {\r\n let constraintsDeviceId;\r\n if (constraints && constraints.deviceId) {\r\n constraintsDeviceId = {\r\n exact: constraints.deviceId,\r\n };\r\n }\r\n\r\n if (navigator.mediaDevices) {\r\n return navigator.mediaDevices\r\n .getUserMedia({\r\n video: constraints,\r\n audio: audioConstaints,\r\n })\r\n .then((stream) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n });\r\n } else {\r\n const getUserMedia = (navigator as any).getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\r\n\r\n if (getUserMedia) {\r\n getUserMedia(\r\n {\r\n video: {\r\n deviceId: constraintsDeviceId,\r\n width: {\r\n min: (constraints && constraints.minWidth) || 256,\r\n max: (constraints && constraints.maxWidth) || 640,\r\n },\r\n height: {\r\n min: (constraints && constraints.minHeight) || 256,\r\n max: (constraints && constraints.maxHeight) || 480,\r\n },\r\n },\r\n audio: audioConstaints,\r\n },\r\n (stream: any) => {\r\n return this.CreateFromStreamAsync(scene, stream, constraints, invertY);\r\n },\r\n function (e: any) {\r\n Logger.Error(e.name);\r\n }\r\n );\r\n }\r\n }\r\n\r\n return Promise.reject(\"No support for userMedia on this device\");\r\n }\r\n\r\n /**\r\n * Creates a video texture straight from your WebCam video feed.\r\n * @param scene Defines the scene the texture should be created in\r\n * @param onReady Defines a callback to triggered once the texture will be ready\r\n * @param constraints Defines the constraints to use to create the web cam feed from WebRTC\r\n * @param audioConstaints Defines the audio constraints to use to create the web cam feed from WebRTC\r\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\r\n */\r\n public static CreateFromWebCam(\r\n scene: Scene,\r\n onReady: (videoTexture: VideoTexture) => void,\r\n constraints: {\r\n minWidth: number;\r\n maxWidth: number;\r\n minHeight: number;\r\n maxHeight: number;\r\n deviceId: string;\r\n } & MediaTrackConstraints,\r\n audioConstaints: boolean | MediaTrackConstraints = false,\r\n invertY = true\r\n ): void {\r\n this.CreateFromWebCamAsync(scene, constraints, audioConstaints, invertY)\r\n .then(function (videoTexture) {\r\n if (onReady) {\r\n onReady(videoTexture);\r\n }\r\n })\r\n .catch(function (err) {\r\n Logger.Error(err.name);\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -122,4 +122,10 @@ export declare class MaterialFlags {
|
|
|
122
122
|
*/
|
|
123
123
|
static get TranslucencyIntensityTextureEnabled(): boolean;
|
|
124
124
|
static set TranslucencyIntensityTextureEnabled(value: boolean);
|
|
125
|
+
private static _IridescenceTextureEnabled;
|
|
126
|
+
/**
|
|
127
|
+
* Are translucency intensity textures enabled in the application.
|
|
128
|
+
*/
|
|
129
|
+
static get IridescenceTextureEnabled(): boolean;
|
|
130
|
+
static set IridescenceTextureEnabled(value: boolean);
|
|
125
131
|
}
|
|
@@ -346,6 +346,23 @@ var MaterialFlags = /** @class */ (function () {
|
|
|
346
346
|
enumerable: false,
|
|
347
347
|
configurable: true
|
|
348
348
|
});
|
|
349
|
+
Object.defineProperty(MaterialFlags, "IridescenceTextureEnabled", {
|
|
350
|
+
/**
|
|
351
|
+
* Are translucency intensity textures enabled in the application.
|
|
352
|
+
*/
|
|
353
|
+
get: function () {
|
|
354
|
+
return this._IridescenceTextureEnabled;
|
|
355
|
+
},
|
|
356
|
+
set: function (value) {
|
|
357
|
+
if (this._IridescenceTextureEnabled === value) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
this._IridescenceTextureEnabled = value;
|
|
361
|
+
Engine.MarkAllMaterialsAsDirty(1);
|
|
362
|
+
},
|
|
363
|
+
enumerable: false,
|
|
364
|
+
configurable: true
|
|
365
|
+
});
|
|
349
366
|
// Flags used to enable or disable a type of texture for all Standard Materials
|
|
350
367
|
MaterialFlags._DiffuseTextureEnabled = true;
|
|
351
368
|
MaterialFlags._DetailTextureEnabled = true;
|
|
@@ -367,6 +384,7 @@ var MaterialFlags = /** @class */ (function () {
|
|
|
367
384
|
MaterialFlags._ThicknessTextureEnabled = true;
|
|
368
385
|
MaterialFlags._RefractionIntensityTextureEnabled = true;
|
|
369
386
|
MaterialFlags._TranslucencyIntensityTextureEnabled = true;
|
|
387
|
+
MaterialFlags._IridescenceTextureEnabled = true;
|
|
370
388
|
return MaterialFlags;
|
|
371
389
|
}());
|
|
372
390
|
export { MaterialFlags };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialFlags.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/materialFlags.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"../Engines/engine\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\n/**\r\n * This groups all the flags used to control the materials channel.\r\n */\r\nexport class MaterialFlags {\r\n // Flags used to enable or disable a type of texture for all Standard Materials\r\n private static _DiffuseTextureEnabled = true;\r\n /**\r\n * Are diffuse textures enabled in the application.\r\n */\r\n public static get DiffuseTextureEnabled(): boolean {\r\n return this._DiffuseTextureEnabled;\r\n }\r\n public static set DiffuseTextureEnabled(value: boolean) {\r\n if (this._DiffuseTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DiffuseTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _DetailTextureEnabled = true;\r\n /**\r\n * Are detail textures enabled in the application.\r\n */\r\n public static get DetailTextureEnabled(): boolean {\r\n return this._DetailTextureEnabled;\r\n }\r\n public static set DetailTextureEnabled(value: boolean) {\r\n if (this._DetailTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DetailTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AmbientTextureEnabled = true;\r\n /**\r\n * Are ambient textures enabled in the application.\r\n */\r\n public static get AmbientTextureEnabled(): boolean {\r\n return this._AmbientTextureEnabled;\r\n }\r\n public static set AmbientTextureEnabled(value: boolean) {\r\n if (this._AmbientTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AmbientTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _OpacityTextureEnabled = true;\r\n /**\r\n * Are opacity textures enabled in the application.\r\n */\r\n public static get OpacityTextureEnabled(): boolean {\r\n return this._OpacityTextureEnabled;\r\n }\r\n public static set OpacityTextureEnabled(value: boolean) {\r\n if (this._OpacityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._OpacityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ReflectionTextureEnabled = true;\r\n /**\r\n * Are reflection textures enabled in the application.\r\n */\r\n public static get ReflectionTextureEnabled(): boolean {\r\n return this._ReflectionTextureEnabled;\r\n }\r\n public static set ReflectionTextureEnabled(value: boolean) {\r\n if (this._ReflectionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ReflectionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _EmissiveTextureEnabled = true;\r\n /**\r\n * Are emissive textures enabled in the application.\r\n */\r\n public static get EmissiveTextureEnabled(): boolean {\r\n return this._EmissiveTextureEnabled;\r\n }\r\n public static set EmissiveTextureEnabled(value: boolean) {\r\n if (this._EmissiveTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._EmissiveTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SpecularTextureEnabled = true;\r\n /**\r\n * Are specular textures enabled in the application.\r\n */\r\n public static get SpecularTextureEnabled(): boolean {\r\n return this._SpecularTextureEnabled;\r\n }\r\n public static set SpecularTextureEnabled(value: boolean) {\r\n if (this._SpecularTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SpecularTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _BumpTextureEnabled = true;\r\n /**\r\n * Are bump textures enabled in the application.\r\n */\r\n public static get BumpTextureEnabled(): boolean {\r\n return this._BumpTextureEnabled;\r\n }\r\n public static set BumpTextureEnabled(value: boolean) {\r\n if (this._BumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._BumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _LightmapTextureEnabled = true;\r\n /**\r\n * Are lightmap textures enabled in the application.\r\n */\r\n public static get LightmapTextureEnabled(): boolean {\r\n return this._LightmapTextureEnabled;\r\n }\r\n public static set LightmapTextureEnabled(value: boolean) {\r\n if (this._LightmapTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._LightmapTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionTextureEnabled = true;\r\n /**\r\n * Are refraction textures enabled in the application.\r\n */\r\n public static get RefractionTextureEnabled(): boolean {\r\n return this._RefractionTextureEnabled;\r\n }\r\n public static set RefractionTextureEnabled(value: boolean) {\r\n if (this._RefractionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ColorGradingTextureEnabled = true;\r\n /**\r\n * Are color grading textures enabled in the application.\r\n */\r\n public static get ColorGradingTextureEnabled(): boolean {\r\n return this._ColorGradingTextureEnabled;\r\n }\r\n public static set ColorGradingTextureEnabled(value: boolean) {\r\n if (this._ColorGradingTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ColorGradingTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _FresnelEnabled = true;\r\n /**\r\n * Are fresnels enabled in the application.\r\n */\r\n public static get FresnelEnabled(): boolean {\r\n return this._FresnelEnabled;\r\n }\r\n public static set FresnelEnabled(value: boolean) {\r\n if (this._FresnelEnabled === value) {\r\n return;\r\n }\r\n\r\n this._FresnelEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_FresnelDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTextureEnabled = true;\r\n /**\r\n * Are clear coat textures enabled in the application.\r\n */\r\n public static get ClearCoatTextureEnabled(): boolean {\r\n return this._ClearCoatTextureEnabled;\r\n }\r\n public static set ClearCoatTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatBumpTextureEnabled = true;\r\n /**\r\n * Are clear coat bump textures enabled in the application.\r\n */\r\n public static get ClearCoatBumpTextureEnabled(): boolean {\r\n return this._ClearCoatBumpTextureEnabled;\r\n }\r\n public static set ClearCoatBumpTextureEnabled(value: boolean) {\r\n if (this._ClearCoatBumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatBumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTintTextureEnabled = true;\r\n /**\r\n * Are clear coat tint textures enabled in the application.\r\n */\r\n public static get ClearCoatTintTextureEnabled(): boolean {\r\n return this._ClearCoatTintTextureEnabled;\r\n }\r\n public static set ClearCoatTintTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTintTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTintTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SheenTextureEnabled = true;\r\n /**\r\n * Are sheen textures enabled in the application.\r\n */\r\n public static get SheenTextureEnabled(): boolean {\r\n return this._SheenTextureEnabled;\r\n }\r\n public static set SheenTextureEnabled(value: boolean) {\r\n if (this._SheenTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SheenTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AnisotropicTextureEnabled = true;\r\n /**\r\n * Are anisotropic textures enabled in the application.\r\n */\r\n public static get AnisotropicTextureEnabled(): boolean {\r\n return this._AnisotropicTextureEnabled;\r\n }\r\n public static set AnisotropicTextureEnabled(value: boolean) {\r\n if (this._AnisotropicTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AnisotropicTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ThicknessTextureEnabled = true;\r\n /**\r\n * Are thickness textures enabled in the application.\r\n */\r\n public static get ThicknessTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set ThicknessTextureEnabled(value: boolean) {\r\n if (this._ThicknessTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ThicknessTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionIntensityTextureEnabled = true;\r\n /**\r\n * Are refraction intensity textures enabled in the application.\r\n */\r\n public static get RefractionIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set RefractionIntensityTextureEnabled(value: boolean) {\r\n if (this._RefractionIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _TranslucencyIntensityTextureEnabled = true;\r\n /**\r\n * Are translucency intensity textures enabled in the application.\r\n */\r\n public static get TranslucencyIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set TranslucencyIntensityTextureEnabled(value: boolean) {\r\n if (this._TranslucencyIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._TranslucencyIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"materialFlags.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/materialFlags.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"../Engines/engine\";\r\nimport { Constants } from \"../Engines/constants\";\r\n\r\n/**\r\n * This groups all the flags used to control the materials channel.\r\n */\r\nexport class MaterialFlags {\r\n // Flags used to enable or disable a type of texture for all Standard Materials\r\n private static _DiffuseTextureEnabled = true;\r\n /**\r\n * Are diffuse textures enabled in the application.\r\n */\r\n public static get DiffuseTextureEnabled(): boolean {\r\n return this._DiffuseTextureEnabled;\r\n }\r\n public static set DiffuseTextureEnabled(value: boolean) {\r\n if (this._DiffuseTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DiffuseTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _DetailTextureEnabled = true;\r\n /**\r\n * Are detail textures enabled in the application.\r\n */\r\n public static get DetailTextureEnabled(): boolean {\r\n return this._DetailTextureEnabled;\r\n }\r\n public static set DetailTextureEnabled(value: boolean) {\r\n if (this._DetailTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._DetailTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AmbientTextureEnabled = true;\r\n /**\r\n * Are ambient textures enabled in the application.\r\n */\r\n public static get AmbientTextureEnabled(): boolean {\r\n return this._AmbientTextureEnabled;\r\n }\r\n public static set AmbientTextureEnabled(value: boolean) {\r\n if (this._AmbientTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AmbientTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _OpacityTextureEnabled = true;\r\n /**\r\n * Are opacity textures enabled in the application.\r\n */\r\n public static get OpacityTextureEnabled(): boolean {\r\n return this._OpacityTextureEnabled;\r\n }\r\n public static set OpacityTextureEnabled(value: boolean) {\r\n if (this._OpacityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._OpacityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ReflectionTextureEnabled = true;\r\n /**\r\n * Are reflection textures enabled in the application.\r\n */\r\n public static get ReflectionTextureEnabled(): boolean {\r\n return this._ReflectionTextureEnabled;\r\n }\r\n public static set ReflectionTextureEnabled(value: boolean) {\r\n if (this._ReflectionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ReflectionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _EmissiveTextureEnabled = true;\r\n /**\r\n * Are emissive textures enabled in the application.\r\n */\r\n public static get EmissiveTextureEnabled(): boolean {\r\n return this._EmissiveTextureEnabled;\r\n }\r\n public static set EmissiveTextureEnabled(value: boolean) {\r\n if (this._EmissiveTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._EmissiveTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SpecularTextureEnabled = true;\r\n /**\r\n * Are specular textures enabled in the application.\r\n */\r\n public static get SpecularTextureEnabled(): boolean {\r\n return this._SpecularTextureEnabled;\r\n }\r\n public static set SpecularTextureEnabled(value: boolean) {\r\n if (this._SpecularTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SpecularTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _BumpTextureEnabled = true;\r\n /**\r\n * Are bump textures enabled in the application.\r\n */\r\n public static get BumpTextureEnabled(): boolean {\r\n return this._BumpTextureEnabled;\r\n }\r\n public static set BumpTextureEnabled(value: boolean) {\r\n if (this._BumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._BumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _LightmapTextureEnabled = true;\r\n /**\r\n * Are lightmap textures enabled in the application.\r\n */\r\n public static get LightmapTextureEnabled(): boolean {\r\n return this._LightmapTextureEnabled;\r\n }\r\n public static set LightmapTextureEnabled(value: boolean) {\r\n if (this._LightmapTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._LightmapTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionTextureEnabled = true;\r\n /**\r\n * Are refraction textures enabled in the application.\r\n */\r\n public static get RefractionTextureEnabled(): boolean {\r\n return this._RefractionTextureEnabled;\r\n }\r\n public static set RefractionTextureEnabled(value: boolean) {\r\n if (this._RefractionTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ColorGradingTextureEnabled = true;\r\n /**\r\n * Are color grading textures enabled in the application.\r\n */\r\n public static get ColorGradingTextureEnabled(): boolean {\r\n return this._ColorGradingTextureEnabled;\r\n }\r\n public static set ColorGradingTextureEnabled(value: boolean) {\r\n if (this._ColorGradingTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ColorGradingTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _FresnelEnabled = true;\r\n /**\r\n * Are fresnels enabled in the application.\r\n */\r\n public static get FresnelEnabled(): boolean {\r\n return this._FresnelEnabled;\r\n }\r\n public static set FresnelEnabled(value: boolean) {\r\n if (this._FresnelEnabled === value) {\r\n return;\r\n }\r\n\r\n this._FresnelEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_FresnelDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTextureEnabled = true;\r\n /**\r\n * Are clear coat textures enabled in the application.\r\n */\r\n public static get ClearCoatTextureEnabled(): boolean {\r\n return this._ClearCoatTextureEnabled;\r\n }\r\n public static set ClearCoatTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatBumpTextureEnabled = true;\r\n /**\r\n * Are clear coat bump textures enabled in the application.\r\n */\r\n public static get ClearCoatBumpTextureEnabled(): boolean {\r\n return this._ClearCoatBumpTextureEnabled;\r\n }\r\n public static set ClearCoatBumpTextureEnabled(value: boolean) {\r\n if (this._ClearCoatBumpTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatBumpTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ClearCoatTintTextureEnabled = true;\r\n /**\r\n * Are clear coat tint textures enabled in the application.\r\n */\r\n public static get ClearCoatTintTextureEnabled(): boolean {\r\n return this._ClearCoatTintTextureEnabled;\r\n }\r\n public static set ClearCoatTintTextureEnabled(value: boolean) {\r\n if (this._ClearCoatTintTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ClearCoatTintTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _SheenTextureEnabled = true;\r\n /**\r\n * Are sheen textures enabled in the application.\r\n */\r\n public static get SheenTextureEnabled(): boolean {\r\n return this._SheenTextureEnabled;\r\n }\r\n public static set SheenTextureEnabled(value: boolean) {\r\n if (this._SheenTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._SheenTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _AnisotropicTextureEnabled = true;\r\n /**\r\n * Are anisotropic textures enabled in the application.\r\n */\r\n public static get AnisotropicTextureEnabled(): boolean {\r\n return this._AnisotropicTextureEnabled;\r\n }\r\n public static set AnisotropicTextureEnabled(value: boolean) {\r\n if (this._AnisotropicTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._AnisotropicTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _ThicknessTextureEnabled = true;\r\n /**\r\n * Are thickness textures enabled in the application.\r\n */\r\n public static get ThicknessTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set ThicknessTextureEnabled(value: boolean) {\r\n if (this._ThicknessTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._ThicknessTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _RefractionIntensityTextureEnabled = true;\r\n /**\r\n * Are refraction intensity textures enabled in the application.\r\n */\r\n public static get RefractionIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set RefractionIntensityTextureEnabled(value: boolean) {\r\n if (this._RefractionIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._RefractionIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _TranslucencyIntensityTextureEnabled = true;\r\n /**\r\n * Are translucency intensity textures enabled in the application.\r\n */\r\n public static get TranslucencyIntensityTextureEnabled(): boolean {\r\n return this._ThicknessTextureEnabled;\r\n }\r\n public static set TranslucencyIntensityTextureEnabled(value: boolean) {\r\n if (this._TranslucencyIntensityTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._TranslucencyIntensityTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n\r\n private static _IridescenceTextureEnabled = true;\r\n /**\r\n * Are translucency intensity textures enabled in the application.\r\n */\r\n public static get IridescenceTextureEnabled(): boolean {\r\n return this._IridescenceTextureEnabled;\r\n }\r\n public static set IridescenceTextureEnabled(value: boolean) {\r\n if (this._IridescenceTextureEnabled === value) {\r\n return;\r\n }\r\n\r\n this._IridescenceTextureEnabled = value;\r\n Engine.MarkAllMaterialsAsDirty(Constants.MATERIAL_TextureDirtyFlag);\r\n }\r\n}\r\n"]}
|
|
@@ -242,7 +242,7 @@ var MaterialHelper = /** @class */ (function () {
|
|
|
242
242
|
defines["VERTEXCOLOR"] = hasVertexColors;
|
|
243
243
|
defines["VERTEXALPHA"] = mesh.hasVertexAlpha && hasVertexColors && useVertexAlpha;
|
|
244
244
|
}
|
|
245
|
-
if (mesh.isVerticesDataPresent(VertexBuffer.ColorInstanceKind)) {
|
|
245
|
+
if (mesh.isVerticesDataPresent(VertexBuffer.ColorInstanceKind) && (mesh.hasInstances || mesh.hasThinInstances)) {
|
|
246
246
|
defines["INSTANCESCOLOR"] = true;
|
|
247
247
|
}
|
|
248
248
|
if (useBones) {
|