@babylonjs/core 5.22.0 → 5.22.1
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/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -0
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +2 -0
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +1 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -0
- package/Materials/Node/nodeMaterial.js +1 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +1 -0
- package/Materials/PBR/pbrBaseMaterial.js +1 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +4 -1
- package/Materials/Textures/renderTargetTexture.js +15 -28
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +22 -0
- package/Materials/imageProcessingConfiguration.js +68 -13
- package/Materials/imageProcessingConfiguration.js.map +1 -1
- package/Materials/standardMaterial.d.ts +1 -0
- package/Materials/standardMaterial.js +1 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Misc/arrayTools.d.ts +12 -0
- package/Misc/arrayTools.js +44 -0
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/fileTools.d.ts +4 -0
- package/Misc/fileTools.js +14 -2
- package/Misc/fileTools.js.map +1 -1
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Misc/logger.d.ts +1 -4
- package/Misc/logger.js +28 -66
- package/Misc/logger.js.map +1 -1
- package/Misc/observable.d.ts +9 -37
- package/Misc/observable.extensions.d.ts +41 -0
- package/Misc/observable.extensions.js +82 -0
- package/Misc/observable.extensions.js.map +1 -0
- package/Misc/observable.js +4 -95
- package/Misc/observable.js.map +1 -1
- package/Navigation/Plugins/recastJSPlugin.d.ts +11 -0
- package/Navigation/Plugins/recastJSPlugin.js +19 -1
- package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.d.ts +2 -0
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +20 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +16 -0
- package/PostProcesses/imageProcessingPostProcess.js +25 -0
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/Rendering/edgesRenderer.js +1 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +5 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +2 -0
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +8 -1
- package/scene.js +13 -2
- package/scene.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageProcessingDeclaration.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Shaders/ShadersInclude/imageProcessingDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,4BAA4B,CAAC;AAC1C,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"imageProcessingDeclaration.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Shaders/ShadersInclude/imageProcessingDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,4BAA4B,CAAC;AAC1C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,cAAc;AACd,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"imageProcessingDeclaration\";\nconst shader = `#ifdef EXPOSURE\nuniform float exposureLinear;\r#endif\n#ifdef CONTRAST\nuniform float contrast;\r#endif\n#if defined(VIGNETTE) || defined(DITHER)\nuniform vec2 vInverseScreenSize;\r#endif\n#ifdef VIGNETTE\nuniform vec4 vignetteSettings1;\runiform vec4 vignetteSettings2;\r#endif\n#ifdef COLORCURVES\nuniform vec4 vCameraColorCurveNegative;\runiform vec4 vCameraColorCurveNeutral;\runiform vec4 vCameraColorCurvePositive;\r#endif\n#ifdef COLORGRADING\n#ifdef COLORGRADING3D\nuniform highp sampler3D txColorTransform;\r#else\nuniform sampler2D txColorTransform;\r#endif\nuniform vec4 colorTransformSettings;\r#endif\n#ifdef DITHER\nuniform float ditherIntensity;\r#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @hidden */\nexport const imageProcessingDeclaration = { name, shader };\n"]}
|
|
@@ -37,6 +37,8 @@ vec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,c
|
|
|
37
37
|
result.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);
|
|
38
38
|
#ifdef COLORCURVES
|
|
39
39
|
float luma=getLuminance(result.rgb);
|
|
40
|
+
#ifdef DITHER
|
|
41
|
+
float rand=getRand(gl_FragCoord.xy*vInverseScreenSize);
|
|
40
42
|
return result;
|
|
41
43
|
// Sideeffect
|
|
42
44
|
ShaderStore.IncludesShadersStore[name] = shader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageProcessingFunctions.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Shaders/ShadersInclude/imageProcessingFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"imageProcessingFunctions.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Shaders/ShadersInclude/imageProcessingFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Hb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAChD,cAAc;AACd,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"imageProcessingFunctions\";\nconst shader = `#if defined(COLORGRADING) && !defined(COLORGRADING3D)\n/** \r* Polyfill for SAMPLE_TEXTURE_3D,which is unsupported in WebGL.\r* sampler3dSetting.x=textureOffset (0.5/textureSize).\r* sampler3dSetting.y=textureSize.\r*/\r#define inline\nvec3 sampleTexture3D(sampler2D colorTransform,vec3 color,vec2 sampler3dSetting)\r{\rfloat sliceSize=2.0*sampler3dSetting.x; \r#ifdef SAMPLER3DGREENDEPTH\nfloat sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;\r#else\nfloat sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;\r#endif\nfloat sliceInteger=floor(sliceContinuous);\rfloat sliceFraction=sliceContinuous-sliceInteger;\r#ifdef SAMPLER3DGREENDEPTH\nvec2 sliceUV=color.rb;\r#else\nvec2 sliceUV=color.rg;\r#endif\nsliceUV.x*=sliceSize;\rsliceUV.x+=sliceInteger*sliceSize;\rsliceUV=saturate(sliceUV);\rvec4 slice0Color=texture2D(colorTransform,sliceUV);\rsliceUV.x+=sliceSize;\rsliceUV=saturate(sliceUV);\rvec4 slice1Color=texture2D(colorTransform,sliceUV);\rvec3 result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);\r#ifdef SAMPLER3DBGRMAP\ncolor.rgb=result.rgb;\r#else\ncolor.rgb=result.bgr;\r#endif\nreturn color;\r}\r#endif\n#ifdef TONEMAPPING_ACES\nconst mat3 ACESInputMat=mat3(\rvec3(0.59719,0.07600,0.02840),\rvec3(0.35458,0.90834,0.13383),\rvec3(0.04823,0.01566,0.83777)\r);\rconst mat3 ACESOutputMat=mat3(\rvec3( 1.60475,-0.10208,-0.00327),\rvec3(-0.53108, 1.10813,-0.07276),\rvec3(-0.07367,-0.00605, 1.07602)\r);\rvec3 RRTAndODTFit(vec3 v)\r{\rvec3 a=v*(v+0.0245786)-0.000090537;\rvec3 b=v*(0.983729*v+0.4329510)+0.238081;\rreturn a/b;\r}\rvec3 ACESFitted(vec3 color)\r{\rcolor=ACESInputMat*color;\rcolor=RRTAndODTFit(color);\rcolor=ACESOutputMat*color;\rcolor=saturate(color);\rreturn color;\r}\r#endif\nvec4 applyImageProcessing(vec4 result) {\r#ifdef EXPOSURE\nresult.rgb*=exposureLinear;\r#endif\n#ifdef VIGNETTE\nvec2 viewportXY=gl_FragCoord.xy*vInverseScreenSize;\rviewportXY=viewportXY*2.0-1.0;\rvec3 vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);\rfloat vignetteTerm=dot(vignetteXY1,vignetteXY1);\rfloat vignette=pow(vignetteTerm,vignetteSettings2.w);\rvec3 vignetteColor=vignetteSettings2.rgb;\r#ifdef VIGNETTEBLENDMODEMULTIPLY\nvec3 vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);\rresult.rgb*=vignetteColorMultiplier;\r#endif\n#ifdef VIGNETTEBLENDMODEOPAQUE\nresult.rgb=mix(vignetteColor,result.rgb,vignette);\r#endif\n#endif\n#ifdef TONEMAPPING\n#ifdef TONEMAPPING_ACES\nresult.rgb=ACESFitted(result.rgb);\r#else\nconst float tonemappingCalibration=1.590579;\rresult.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);\r#endif\n#endif\nresult.rgb=toGammaSpace(result.rgb);\rresult.rgb=saturate(result.rgb);\r#ifdef CONTRAST\nvec3 resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);\rif (contrast<1.0) {\rresult.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);\r} else {\rresult.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);\r}\r#endif\n#ifdef COLORGRADING\nvec3 colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\r#ifdef COLORGRADING3D\nvec3 colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;\r#else\nvec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\r#endif\nresult.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);\r#endif\n#ifdef COLORCURVES\nfloat luma=getLuminance(result.rgb);\rvec2 curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));\rvec4 colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;\rresult.rgb*=colorCurve.rgb;\rresult.rgb=mix(vec3(luma),result.rgb,colorCurve.a);\r#endif\n#ifdef DITHER\nfloat rand=getRand(gl_FragCoord.xy*vInverseScreenSize);\rfloat dither=mix(-ditherIntensity,ditherIntensity,rand);\rresult.rgb=saturate(result.rgb+vec3(dither));\r#endif\nreturn result;\r}`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @hidden */\nexport const imageProcessingFunctions = { name, shader };\n"]}
|
package/package.json
CHANGED
package/scene.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ import type { LoadFileError, RequestFileError, ReadFileError } from "./Misc/file
|
|
|
30
30
|
import type { IClipPlanesHolder } from "./Misc/interfaces/iClipPlanesHolder";
|
|
31
31
|
import type { IPointerEvent } from "./Events/deviceInputEvents";
|
|
32
32
|
import type { IComputePressureData } from "./Misc/computePressure";
|
|
33
|
+
import type { INotifyArrayChangeType } from "./Misc/arrayTools";
|
|
33
34
|
declare type Ray = import("./Culling/ray").Ray;
|
|
34
35
|
declare type TrianglePickingPredicate = import("./Culling/ray").TrianglePickingPredicate;
|
|
35
36
|
declare type Animation = import("./Animations/animation").Animation;
|
|
@@ -458,6 +459,10 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
|
|
|
458
459
|
* An event triggered when the activeCamera property is updated
|
|
459
460
|
*/
|
|
460
461
|
onActiveCameraChanged: Observable<Scene>;
|
|
462
|
+
/**
|
|
463
|
+
* An event triggered when the activeCameras property is updated
|
|
464
|
+
*/
|
|
465
|
+
onActiveCamerasChanged: Observable<INotifyArrayChangeType<import("./Cameras/camera").Camera>>;
|
|
461
466
|
/**
|
|
462
467
|
* This Observable will be triggered before rendering each renderingGroup of each rendered camera.
|
|
463
468
|
* The RenderingGroupInfo class contains all the information about the context in which the observable is called
|
|
@@ -668,8 +673,10 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
|
|
|
668
673
|
*/
|
|
669
674
|
set lightsEnabled(value: boolean);
|
|
670
675
|
get lightsEnabled(): boolean;
|
|
676
|
+
private _activeCameras;
|
|
671
677
|
/** All of the active cameras added to this scene. */
|
|
672
|
-
activeCameras: Nullable<Camera[]>;
|
|
678
|
+
get activeCameras(): Nullable<Camera[]>;
|
|
679
|
+
set activeCameras(cameras: Nullable<Camera[]>);
|
|
673
680
|
/** @hidden */
|
|
674
681
|
_activeCamera: Nullable<Camera>;
|
|
675
682
|
/** Gets or sets the current active camera */
|
package/scene.js
CHANGED
|
@@ -25,6 +25,7 @@ import { UniqueIdGenerator } from "./Misc/uniqueIdGenerator.js";
|
|
|
25
25
|
import { ReadFile, RequestFile, LoadFile } from "./Misc/fileTools.js";
|
|
26
26
|
import { LightConstants } from "./Lights/lightConstants.js";
|
|
27
27
|
import { ComputePressureObserverWrapper } from "./Misc/computePressure.js";
|
|
28
|
+
import { ArrayTools } from "./Misc/arrayTools.js";
|
|
28
29
|
/**
|
|
29
30
|
* Represents a scene to be rendered by the engine.
|
|
30
31
|
* @see https://doc.babylonjs.com/features/scene
|
|
@@ -289,6 +290,10 @@ export class Scene extends AbstractScene {
|
|
|
289
290
|
* An event triggered when the activeCamera property is updated
|
|
290
291
|
*/
|
|
291
292
|
this.onActiveCameraChanged = new Observable();
|
|
293
|
+
/**
|
|
294
|
+
* An event triggered when the activeCameras property is updated
|
|
295
|
+
*/
|
|
296
|
+
this.onActiveCamerasChanged = new Observable();
|
|
292
297
|
/**
|
|
293
298
|
* This Observable will be triggered before rendering each renderingGroup of each rendered camera.
|
|
294
299
|
* The RenderingGroupInfo class contains all the information about the context in which the observable is called
|
|
@@ -383,8 +388,7 @@ export class Scene extends AbstractScene {
|
|
|
383
388
|
// Lights
|
|
384
389
|
this._shadowsEnabled = true;
|
|
385
390
|
this._lightsEnabled = true;
|
|
386
|
-
|
|
387
|
-
this.activeCameras = new Array();
|
|
391
|
+
this._activeCameras = ArrayTools.MakeObservableArray(this.onActiveCamerasChanged, []);
|
|
388
392
|
// Textures
|
|
389
393
|
this._texturesEnabled = true;
|
|
390
394
|
// Physics
|
|
@@ -1024,6 +1028,13 @@ export class Scene extends AbstractScene {
|
|
|
1024
1028
|
get lightsEnabled() {
|
|
1025
1029
|
return this._lightsEnabled;
|
|
1026
1030
|
}
|
|
1031
|
+
/** All of the active cameras added to this scene. */
|
|
1032
|
+
get activeCameras() {
|
|
1033
|
+
return this._activeCameras;
|
|
1034
|
+
}
|
|
1035
|
+
set activeCameras(cameras) {
|
|
1036
|
+
this._activeCameras = ArrayTools.MakeObservableArray(this.onActiveCamerasChanged, cameras);
|
|
1037
|
+
}
|
|
1027
1038
|
/** Gets or sets the current active camera */
|
|
1028
1039
|
get activeCamera() {
|
|
1029
1040
|
return this._activeCamera;
|