@babylonjs/core 7.10.1 → 7.10.3

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.
Files changed (92) hide show
  1. package/Collisions/gpuPicker.d.ts +11 -2
  2. package/Collisions/gpuPicker.js +9 -3
  3. package/Collisions/gpuPicker.js.map +1 -1
  4. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +3 -0
  5. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +4 -2
  6. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  7. package/Engines/abstractEngine.js +2 -2
  8. package/Engines/abstractEngine.js.map +1 -1
  9. package/Engines/nativeEngine.d.ts +3 -1
  10. package/Engines/nativeEngine.js +2 -1
  11. package/Engines/nativeEngine.js.map +1 -1
  12. package/Engines/thinEngine.d.ts +2 -1
  13. package/Engines/thinEngine.js +2 -4
  14. package/Engines/thinEngine.js.map +1 -1
  15. package/Layers/effectLayer.js +1 -1
  16. package/Layers/effectLayer.js.map +1 -1
  17. package/Lights/Shadows/shadowGenerator.js +1 -1
  18. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  19. package/Loading/sceneLoader.d.ts +20 -11
  20. package/Loading/sceneLoader.js +10 -19
  21. package/Loading/sceneLoader.js.map +1 -1
  22. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +5 -3
  23. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  24. package/Materials/Node/Blocks/Input/inputBlock.js +3 -0
  25. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  26. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +2 -3
  27. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  28. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +6 -11
  29. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  30. package/Materials/Node/Blocks/Particle/particleTextureBlock.d.ts +1 -2
  31. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +1 -1
  32. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  33. package/Materials/Node/nodeMaterial.js +1 -1
  34. package/Materials/Node/nodeMaterial.js.map +1 -1
  35. package/Materials/Node/nodeMaterialBuildState.d.ts +9 -1
  36. package/Materials/Node/nodeMaterialBuildState.js +25 -1
  37. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  38. package/Materials/material.d.ts +3 -1
  39. package/Materials/material.js +8 -6
  40. package/Materials/material.js.map +1 -1
  41. package/Meshes/Builders/decalBuilder.js +1 -2
  42. package/Meshes/Builders/decalBuilder.js.map +1 -1
  43. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.d.ts +10 -0
  44. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +73 -3
  45. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  46. package/Meshes/mesh.d.ts +3 -2
  47. package/Meshes/mesh.js +18 -20
  48. package/Meshes/mesh.js.map +1 -1
  49. package/Misc/filesInput.js +13 -0
  50. package/Misc/filesInput.js.map +1 -1
  51. package/Particles/particleSystemComponent.d.ts +3 -1
  52. package/Particles/particleSystemComponent.js +3 -2
  53. package/Particles/particleSystemComponent.js.map +1 -1
  54. package/Physics/v2/IPhysicsEnginePlugin.d.ts +7 -2
  55. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  56. package/Physics/v2/Plugins/havokPlugin.d.ts +1 -0
  57. package/Physics/v2/Plugins/havokPlugin.js +43 -0
  58. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  59. package/Physics/v2/physicsAggregate.js +1 -0
  60. package/Physics/v2/physicsAggregate.js.map +1 -1
  61. package/Physics/v2/physicsShape.d.ts +27 -0
  62. package/Physics/v2/physicsShape.js +39 -0
  63. package/Physics/v2/physicsShape.js.map +1 -1
  64. package/Rendering/depthRenderer.js +1 -1
  65. package/Rendering/depthRenderer.js.map +1 -1
  66. package/Rendering/geometryBufferRenderer.js +2 -5
  67. package/Rendering/geometryBufferRenderer.js.map +1 -1
  68. package/Shaders/picking.vertex.d.ts +4 -0
  69. package/Shaders/picking.vertex.js +8 -0
  70. package/Shaders/picking.vertex.js.map +1 -1
  71. package/ShadersWGSL/ShadersInclude/fogVertex.d.ts +5 -0
  72. package/ShadersWGSL/ShadersInclude/fogVertex.js +12 -0
  73. package/ShadersWGSL/ShadersInclude/fogVertex.js.map +1 -0
  74. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.d.ts +5 -0
  75. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js +12 -0
  76. package/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js.map +1 -0
  77. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.d.ts +5 -0
  78. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js +35 -0
  79. package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js.map +1 -0
  80. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.d.ts +5 -0
  81. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +70 -0
  82. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -0
  83. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.d.ts +5 -0
  84. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js +12 -0
  85. package/ShadersWGSL/ShadersInclude/logDepthDeclaration.js.map +1 -0
  86. package/ShadersWGSL/ShadersInclude/logDepthVertex.d.ts +5 -0
  87. package/ShadersWGSL/ShadersInclude/logDepthVertex.js +12 -0
  88. package/ShadersWGSL/ShadersInclude/logDepthVertex.js.map +1 -0
  89. package/ShadersWGSL/particles.vertex.d.ts +11 -0
  90. package/ShadersWGSL/particles.vertex.js +89 -0
  91. package/ShadersWGSL/particles.vertex.js.map +1 -0
  92. package/package.json +1 -1
@@ -0,0 +1,70 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "imageProcessingFunctions";
4
+ const shader = `#if TONEMAPPING==3
5
+ const PBRNeutralStartCompression: f32=0.8-0.04;const PBRNeutralDesaturation: f32=0.15;fn PBRNeutralToneMapping( color: vec3f )->vec3f {var x: f32=min(color.r,min(color.g,color.b));var offset: f32=select(0.04,x-6.25*x*x,x<0.08);var result=color;result-=offset;var peak: f32=max(result.r,max(result.g,result.b));if (peak<PBRNeutralStartCompression) {return result;}
6
+ var d: f32=1.-PBRNeutralStartCompression;var newPeak: f32=1.-d*d/(peak+d-PBRNeutralStartCompression);result*=newPeak/peak;var g: f32=1.-1./(PBRNeutralDesaturation*(peak-newPeak)+1.);return mix(result,newPeak* vec3f(1,1,1),g);}
7
+ #endif
8
+ #if TONEMAPPING==2
9
+ const ACESInputMat: mat3x3f= mat3x3f(
10
+ vec3f(0.59719,0.07600,0.02840),
11
+ vec3f(0.35458,0.90834,0.13383),
12
+ vec3f(0.04823,0.01566,0.83777)
13
+ );const ACESOutputMat: mat3x3f= mat3x3f(
14
+ vec3f( 1.60475,-0.10208,-0.00327),
15
+ vec3f(-0.53108, 1.10813,-0.07276),
16
+ vec3f(-0.07367,-0.00605, 1.07602)
17
+ );fn RRTAndODTFit(v: vec3f)->vec3f
18
+ {var a: vec3f=v*(v+0.0245786)-0.000090537;var b: vec3f=v*(0.983729*v+0.4329510)+0.238081;return a/b;}
19
+ fn ACESFitted(color: vec3f)->vec3f
20
+ {var output=ACESInputMat*color;output=RRTAndODTFit(output);output=ACESOutputMat*output;output=saturate(output);return output;}
21
+ #endif
22
+ #define CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS
23
+ fn applyImageProcessing(result: vec4f)->vec4f {
24
+ #define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART
25
+ var rgb=result.rgb;;
26
+ #ifdef EXPOSURE
27
+ rgb*=uniforms.exposureLinear;
28
+ #endif
29
+ #ifdef VIGNETTE
30
+ var viewportXY: vec2f=fragmentInputs.position.xy*uniforms.vInverseScreenSize;viewportXY=viewportXY*2.0-1.0;var vignetteXY1: vec3f= vec3f(viewportXY*uniforms.vignetteSettings1.xy+uniforms.vignetteSettings1.zw,1.0);var vignetteTerm: f32=dot(vignetteXY1,vignetteXY1);var vignette: f32=pow(vignetteTerm,uniforms.vignetteSettings2.w);var vignetteColor: vec3f=uniforms.vignetteSettings2.rgb;
31
+ #ifdef VIGNETTEBLENDMODEMULTIPLY
32
+ var vignetteColorMultiplier: vec3f=mix(vignetteColor, vec3f(1,1,1),vignette);rgb*=vignetteColorMultiplier;
33
+ #endif
34
+ #ifdef VIGNETTEBLENDMODEOPAQUE
35
+ rgb=mix(vignetteColor,rgb,vignette);
36
+ #endif
37
+ #endif
38
+ #if TONEMAPPING==3
39
+ rgb=PBRNeutralToneMapping(rgb);
40
+ #elif TONEMAPPING==2
41
+ rgb=ACESFitted(rgb);
42
+ #elif TONEMAPPING==1
43
+ const tonemappingCalibration: f32=1.590579;rgb=1.0-exp2(-tonemappingCalibration*rgb);
44
+ #endif
45
+ rgb=toGammaSpaceVec3(rgb);rgb=saturate(rgb);
46
+ #ifdef CONTRAST
47
+ var resultHighContrast: vec3f=rgb*rgb*(3.0-2.0*rgb);if (uniforms.contrast<1.0) {rgb=mix( vec3f(0.5,0.5,0.5),rgb,uniforms.contrast);} else {rgb=mix(rgb,resultHighContrast,uniforms.contrast-1.0);}
48
+ #endif
49
+ #ifdef COLORGRADING
50
+ var colorTransformInput: vec3f=rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;
51
+ #ifdef COLORGRADING3D
52
+ var colorTransformOutput: vec3f=texture(txColorTransform,colorTransformInput).rgb;
53
+ #else
54
+ var colorTransformOutput: vec3f=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;
55
+ #endif
56
+ rgb=mix(rgb,colorTransformOutput,colorTransformSettings.www);
57
+ #endif
58
+ #ifdef COLORCURVES
59
+ var luma: f32=getLuminance(rgb);var curveMix: vec2f=clamp( vec2f(luma*3.0-1.5,luma*-3.0+1.5), vec2f(0.0), vec2f(1.0));var colorCurve: vec4f=uniforms.vCameraColorCurveNeutral+curveMix.x*uniforms.vCameraColorCurvePositive-curveMix.y*uniforms.vCameraColorCurveNegative;rgb*=colorCurve.rgb;rgb=mix( vec3f(luma),rgb,colorCurve.a);
60
+ #endif
61
+ #ifdef DITHER
62
+ var rand: f32=getRand(fragmentInputs.position.xy*uniforms.vInverseScreenSize);var dither: f32=mix(-uniforms.ditherIntensity,uniforms.ditherIntensity,rand);rgb=saturate(rgb+ vec3f(dither));
63
+ #endif
64
+ #define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND
65
+ return vec4f(rgb,result.a);}`;
66
+ // Sideeffect
67
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
68
+ /** @internal */
69
+ export const imageProcessingFunctions = { name, shader };
70
+ //# sourceMappingURL=imageProcessingFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageProcessingFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA6Dc,CAAC;AAC9B,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,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 TONEMAPPING==3\nconst PBRNeutralStartCompression: f32=0.8-0.04;const PBRNeutralDesaturation: f32=0.15;fn PBRNeutralToneMapping( color: vec3f )->vec3f {var x: f32=min(color.r,min(color.g,color.b));var offset: f32=select(0.04,x-6.25*x*x,x<0.08);var result=color;result-=offset;var peak: f32=max(result.r,max(result.g,result.b));if (peak<PBRNeutralStartCompression) {return result;}\nvar d: f32=1.-PBRNeutralStartCompression;var newPeak: f32=1.-d*d/(peak+d-PBRNeutralStartCompression);result*=newPeak/peak;var g: f32=1.-1./(PBRNeutralDesaturation*(peak-newPeak)+1.);return mix(result,newPeak* vec3f(1,1,1),g);}\n#endif\n#if TONEMAPPING==2\nconst ACESInputMat: mat3x3f= mat3x3f(\nvec3f(0.59719,0.07600,0.02840),\nvec3f(0.35458,0.90834,0.13383),\nvec3f(0.04823,0.01566,0.83777)\n);const ACESOutputMat: mat3x3f= mat3x3f(\nvec3f( 1.60475,-0.10208,-0.00327),\nvec3f(-0.53108, 1.10813,-0.07276),\nvec3f(-0.07367,-0.00605, 1.07602)\n);fn RRTAndODTFit(v: vec3f)->vec3f\n{var a: vec3f=v*(v+0.0245786)-0.000090537;var b: vec3f=v*(0.983729*v+0.4329510)+0.238081;return a/b;}\nfn ACESFitted(color: vec3f)->vec3f\n{var output=ACESInputMat*color;output=RRTAndODTFit(output);output=ACESOutputMat*output;output=saturate(output);return output;}\n#endif\n#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS\nfn applyImageProcessing(result: vec4f)->vec4f {\n#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART\nvar rgb=result.rgb;;\n#ifdef EXPOSURE\nrgb*=uniforms.exposureLinear;\n#endif\n#ifdef VIGNETTE\nvar viewportXY: vec2f=fragmentInputs.position.xy*uniforms.vInverseScreenSize;viewportXY=viewportXY*2.0-1.0;var vignetteXY1: vec3f= vec3f(viewportXY*uniforms.vignetteSettings1.xy+uniforms.vignetteSettings1.zw,1.0);var vignetteTerm: f32=dot(vignetteXY1,vignetteXY1);var vignette: f32=pow(vignetteTerm,uniforms.vignetteSettings2.w);var vignetteColor: vec3f=uniforms.vignetteSettings2.rgb;\n#ifdef VIGNETTEBLENDMODEMULTIPLY\nvar vignetteColorMultiplier: vec3f=mix(vignetteColor, vec3f(1,1,1),vignette);rgb*=vignetteColorMultiplier;\n#endif\n#ifdef VIGNETTEBLENDMODEOPAQUE\nrgb=mix(vignetteColor,rgb,vignette);\n#endif\n#endif\n#if TONEMAPPING==3\nrgb=PBRNeutralToneMapping(rgb);\n#elif TONEMAPPING==2\nrgb=ACESFitted(rgb);\n#elif TONEMAPPING==1\nconst tonemappingCalibration: f32=1.590579;rgb=1.0-exp2(-tonemappingCalibration*rgb);\n#endif\nrgb=toGammaSpaceVec3(rgb);rgb=saturate(rgb);\n#ifdef CONTRAST\nvar resultHighContrast: vec3f=rgb*rgb*(3.0-2.0*rgb);if (uniforms.contrast<1.0) {rgb=mix( vec3f(0.5,0.5,0.5),rgb,uniforms.contrast);} else {rgb=mix(rgb,resultHighContrast,uniforms.contrast-1.0);}\n#endif\n#ifdef COLORGRADING\nvar colorTransformInput: vec3f=rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\n#ifdef COLORGRADING3D\nvar colorTransformOutput: vec3f=texture(txColorTransform,colorTransformInput).rgb;\n#else\nvar colorTransformOutput: vec3f=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\n#endif\nrgb=mix(rgb,colorTransformOutput,colorTransformSettings.www);\n#endif\n#ifdef COLORCURVES\nvar luma: f32=getLuminance(rgb);var curveMix: vec2f=clamp( vec2f(luma*3.0-1.5,luma*-3.0+1.5), vec2f(0.0), vec2f(1.0));var colorCurve: vec4f=uniforms.vCameraColorCurveNeutral+curveMix.x*uniforms.vCameraColorCurvePositive-curveMix.y*uniforms.vCameraColorCurveNegative;rgb*=colorCurve.rgb;rgb=mix( vec3f(luma),rgb,colorCurve.a);\n#endif\n#ifdef DITHER\nvar rand: f32=getRand(fragmentInputs.position.xy*uniforms.vInverseScreenSize);var dither: f32=mix(-uniforms.ditherIntensity,uniforms.ditherIntensity,rand);rgb=saturate(rgb+ vec3f(dither));\n#endif\n#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND\nreturn vec4f(rgb,result.a);}`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const imageProcessingFunctions = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const logDepthDeclaration: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,12 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "logDepthDeclaration";
4
+ const shader = `#ifdef LOGARITHMICDEPTH
5
+ uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
6
+ #endif
7
+ `;
8
+ // Sideeffect
9
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
10
+ /** @internal */
11
+ export const logDepthDeclaration = { name, shader };
12
+ //# sourceMappingURL=logDepthDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logDepthDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/logDepthDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;CAGd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"logDepthDeclaration\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nuniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const logDepthDeclaration = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const logDepthVertex: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,12 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "logDepthVertex";
4
+ const shader = `#ifdef LOGARITHMICDEPTH
5
+ vFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;
6
+ #endif
7
+ `;
8
+ // Sideeffect
9
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
10
+ /** @internal */
11
+ export const logDepthVertex = { name, shader };
12
+ //# sourceMappingURL=logDepthVertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logDepthVertex.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/logDepthVertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,MAAM,GAAG;;;CAGd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"logDepthVertex\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nvFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const logDepthVertex = { name, shader };\n"]}
@@ -0,0 +1,11 @@
1
+ import "./ShadersInclude/clipPlaneVertexDeclaration";
2
+ import "./ShadersInclude/fogVertexDeclaration";
3
+ import "./ShadersInclude/logDepthDeclaration";
4
+ import "./ShadersInclude/clipPlaneVertex";
5
+ import "./ShadersInclude/fogVertex";
6
+ import "./ShadersInclude/logDepthVertex";
7
+ /** @internal */
8
+ export declare const particlesVertexShader: {
9
+ name: string;
10
+ shader: string;
11
+ };
@@ -0,0 +1,89 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../Engines/shaderStore.js";
3
+ import "./ShadersInclude/clipPlaneVertexDeclaration.js";
4
+ import "./ShadersInclude/fogVertexDeclaration.js";
5
+ import "./ShadersInclude/logDepthDeclaration.js";
6
+ import "./ShadersInclude/clipPlaneVertex.js";
7
+ import "./ShadersInclude/fogVertex.js";
8
+ import "./ShadersInclude/logDepthVertex.js";
9
+ const name = "particlesVertexShader";
10
+ const shader = `attribute position: vec3f;attribute color: vec4f;attribute angle: f32;attribute size: vec2f;
11
+ #ifdef ANIMATESHEET
12
+ attribute cellIndex: f32;
13
+ #endif
14
+ #ifndef BILLBOARD
15
+ attribute direction: vec3f;
16
+ #endif
17
+ #ifdef BILLBOARDSTRETCHED
18
+ attribute direction: vec3f;
19
+ #endif
20
+ #ifdef RAMPGRADIENT
21
+ attribute remapData: vec4f;
22
+ #endif
23
+ attribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform translationPivot: vec2f;
24
+ #ifdef ANIMATESHEET
25
+ uniform particlesInfos: vec3f;
26
+ #endif
27
+ varying vUV: vec2f;varying vColor: vec4f;varying vPositionW: vec3f;
28
+ #ifdef RAMPGRADIENT
29
+ varying remapRanges: vec4f;
30
+ #endif
31
+ #if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)
32
+ uniform invView: mat4x4f;
33
+ #endif
34
+ #include<clipPlaneVertexDeclaration>
35
+ #include<fogVertexDeclaration>
36
+ #include<logDepthDeclaration>
37
+ #ifdef BILLBOARD
38
+ uniform eyePosition: vec3f;
39
+ #endif
40
+ fn rotate(yaxis: vec3f,rotatedCorner: vec3f)->vec3f {var xaxis: vec3f=normalize(cross( vec3f(0.,1.0,0.),yaxis));var zaxis: vec3f=normalize(cross(yaxis,xaxis));var row0: vec3f= vec3f(xaxis.x,xaxis.y,xaxis.z);var row1: vec3f= vec3f(yaxis.x,yaxis.y,yaxis.z);var row2: vec3f= vec3f(zaxis.x,zaxis.y,zaxis.z);var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}
41
+ #ifdef BILLBOARDSTRETCHED
42
+ fn rotateAlign(toCamera: vec3f,rotatedCorner: vec3f)->vec3f {var normalizedToCamera: vec3f=normalize(toCamera);var normalizedCrossDirToCamera: vec3f=normalize(cross(normalize(direction),normalizedToCamera));var row0: vec3f= vec3f(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);var row2: vec3f= vec3f(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);
43
+ #ifdef BILLBOARDSTRETCHED_LOCAL
44
+ var row1: vec3f=direction;
45
+ #else
46
+ var crossProduct: vec3f=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));var row1: vec3f= vec3f(crossProduct.x,crossProduct.y,crossProduct.z);
47
+ #endif
48
+ var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}
49
+ #endif
50
+ #define CUSTOM_VERTEX_DEFINITIONS
51
+ @vertex
52
+ fn main(input: VertexInputs)->FragmentInputs {
53
+ #define CUSTOM_VERTEX_MAIN_BEGIN
54
+ var cornerPos: vec2f;cornerPos=( vec2f(vertexInputs.offset.x-0.5,vertexInputs.offset.y -0.5)-uniforms.translationPivot)*vertexInputs.size;
55
+ #ifdef BILLBOARD
56
+ var rotatedCorner: vec3f;
57
+ #ifdef BILLBOARDY
58
+ rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.ngle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.xz+=uniforms.translationPivot;var yaxis: vec3f=vertexInputs.position-eyePosition;yaxis.y=0.;vertexOutputs.vPositionW=rotate(normalize(yaxis),rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;
59
+ #elif defined(BILLBOARDSTRETCHED)
60
+ rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var toCamera: vec3f=vertexInputs.position-eyePosition;vertexOutputs.vPositionW=rotateAlign(toCamera,rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;
61
+ #else
62
+ rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var viewPos: vec3f=(uniforms.view* vec4f(vertexInputs.position,1.0)).xyz+rotatedCorner;vertexOutputs.vPositionW=(uniforms.invView* vec4f(viewPos,1)).xyz;
63
+ #endif
64
+ #ifdef RAMPGRADIENT
65
+ remapRanges=remapData;
66
+ #endif
67
+ vertexOutputs.position=uniforms.projection* vec4f(viewPos,1.0);
68
+ #else
69
+ var rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var yaxis: vec3f=normalize(direction);vertexOutputs.vPositionW=rotate(yaxis,rotatedCorner);vertexOutputs.position=uniforms.projection*view* vec4f(vertexOutputs.vPositionW,1.0);
70
+ #endif
71
+ vertexOutputs.vColor=vertexInputs.color;
72
+ #ifdef ANIMATESHEET
73
+ var rowOffset: f32=floor(cellIndex*particlesInfos.z);var columnOffset: f32=cellIndex-rowOffset/particlesInfos.z;var uvScale: vec2f=particlesInfos.xy;var uvOffset: vec2f= vec2f(vertexInputs.offset.x ,1.0-vertexInputs.offset.y);vertexOutputs.vUV=(uvOffset+ vec2f(columnOffset,rowOffset))*uvScale;
74
+ #else
75
+ vertexOutputs.vUV=vertexInputs.offset;
76
+ #endif
77
+ #if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)
78
+ var worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);
79
+ #endif
80
+ #include<clipPlaneVertex>
81
+ #include<fogVertex>
82
+ #include<logDepthVertex>
83
+ #define CUSTOM_VERTEX_MAIN_END
84
+ }`;
85
+ // Sideeffect
86
+ ShaderStore.ShadersStoreWGSL[name] = shader;
87
+ /** @internal */
88
+ export const particlesVertexShader = { name, shader };
89
+ //# sourceMappingURL=particles.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particles.vertex.js","sourceRoot":"","sources":["../../../../dev/core/src/ShadersWGSL/particles.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAC/C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AAEzC,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Eb,CAAC;AACH,aAAa;AACb,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"./ShadersInclude/fogVertexDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/clipPlaneVertex\";\nimport \"./ShadersInclude/fogVertex\";\nimport \"./ShadersInclude/logDepthVertex\";\n\nconst name = \"particlesVertexShader\";\nconst shader = `attribute position: vec3f;attribute color: vec4f;attribute angle: f32;attribute size: vec2f;\n#ifdef ANIMATESHEET\nattribute cellIndex: f32;\n#endif\n#ifndef BILLBOARD\nattribute direction: vec3f;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute direction: vec3f;\n#endif\n#ifdef RAMPGRADIENT\nattribute remapData: vec4f;\n#endif\nattribute offset: vec2f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform translationPivot: vec2f;\n#ifdef ANIMATESHEET\nuniform particlesInfos: vec3f; \n#endif\nvarying vUV: vec2f;varying vColor: vec4f;varying vPositionW: vec3f;\n#ifdef RAMPGRADIENT\nvarying remapRanges: vec4f;\n#endif\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform invView: mat4x4f;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<logDepthDeclaration>\n#ifdef BILLBOARD\nuniform eyePosition: vec3f;\n#endif\nfn rotate(yaxis: vec3f,rotatedCorner: vec3f)->vec3f {var xaxis: vec3f=normalize(cross( vec3f(0.,1.0,0.),yaxis));var zaxis: vec3f=normalize(cross(yaxis,xaxis));var row0: vec3f= vec3f(xaxis.x,xaxis.y,xaxis.z);var row1: vec3f= vec3f(yaxis.x,yaxis.y,yaxis.z);var row2: vec3f= vec3f(zaxis.x,zaxis.y,zaxis.z);var rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#ifdef BILLBOARDSTRETCHED\nfn rotateAlign(toCamera: vec3f,rotatedCorner: vec3f)->vec3f {var normalizedToCamera: vec3f=normalize(toCamera);var normalizedCrossDirToCamera: vec3f=normalize(cross(normalize(direction),normalizedToCamera));var row0: vec3f= vec3f(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);var row2: vec3f= vec3f(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\n#ifdef BILLBOARDSTRETCHED_LOCAL\nvar row1: vec3f=direction;\n#else\nvar crossProduct: vec3f=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));var row1: vec3f= vec3f(crossProduct.x,crossProduct.y,crossProduct.z);\n#endif\nvar rotMatrix: mat3x3f= mat3x3f(row0,row1,row2);var alignedCorner: vec3f=rotMatrix*rotatedCorner;return vertexInputs.position+alignedCorner;}\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input: VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvar cornerPos: vec2f;cornerPos=( vec2f(vertexInputs.offset.x-0.5,vertexInputs.offset.y -0.5)-uniforms.translationPivot)*vertexInputs.size;\n#ifdef BILLBOARD\nvar rotatedCorner: vec3f;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.ngle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.xz+=uniforms.translationPivot;var yaxis: vec3f=vertexInputs.position-eyePosition;yaxis.y=0.;vertexOutputs.vPositionW=rotate(normalize(yaxis),rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var toCamera: vec3f=vertexInputs.position-eyePosition;vertexOutputs.vPositionW=rotateAlign(toCamera,rotatedCorner);var viewPos: vec3f=(uniforms.view* vec4f(vertexOutputs.vPositionW,1.0)).xyz;\n#else\nrotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.y=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.z=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var viewPos: vec3f=(uniforms.view* vec4f(vertexInputs.position,1.0)).xyz+rotatedCorner;vertexOutputs.vPositionW=(uniforms.invView* vec4f(viewPos,1)).xyz;\n#endif\n#ifdef RAMPGRADIENT\nremapRanges=remapData;\n#endif\nvertexOutputs.position=uniforms.projection* vec4f(viewPos,1.0);\n#else\nvar rotatedCorner: vec3f;rotatedCorner.x=cornerPos.x*cos(vertexInputs.angle)-cornerPos.y*sin(vertexInputs.angle);rotatedCorner.z=cornerPos.x*sin(vertexInputs.angle)+cornerPos.y*cos(vertexInputs.angle);rotatedCorner.y=0.;rotatedCorner.x+=uniforms.translationPivot.x;rotatedCorner.y+=uniforms.translationPivot.y;var yaxis: vec3f=normalize(direction);vertexOutputs.vPositionW=rotate(yaxis,rotatedCorner);vertexOutputs.position=uniforms.projection*view* vec4f(vertexOutputs.vPositionW,1.0);\n#endif\nvertexOutputs.vColor=vertexInputs.color;\n#ifdef ANIMATESHEET\nvar rowOffset: f32=floor(cellIndex*particlesInfos.z);var columnOffset: f32=cellIndex-rowOffset/particlesInfos.z;var uvScale: vec2f=particlesInfos.xy;var uvOffset: vec2f= vec2f(vertexInputs.offset.x ,1.0-vertexInputs.offset.y);vertexOutputs.vUV=(uvOffset+ vec2f(columnOffset,rowOffset))*uvScale;\n#else\nvertexOutputs.vUV=vertexInputs.offset;\n#endif\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvar worldPos: vec4f= vec4f(vertexOutputs.vPositionW,1.0);\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const particlesVertexShader = { name, shader };\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/core",
3
- "version": "7.10.1",
3
+ "version": "7.10.3",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "types": "index.d.ts",