浏览代码

thin engine reduction

David Catuhe 5 年之前
父节点
当前提交
26ec3a558f
共有 52 个文件被更改,包括 1501 次插入1940 次删除
  1. 16 8
      Playground/babylon.d.txt
  2. 16 11
      dist/preview release/babylon.d.ts
  3. 1 1
      dist/preview release/babylon.js
  4. 56 108
      dist/preview release/babylon.max.js
  5. 1 1
      dist/preview release/babylon.max.js.map
  6. 34 24
      dist/preview release/babylon.module.d.ts
  7. 16 11
      dist/preview release/documentation.d.ts
  8. 1 1
      dist/preview release/gui/babylon.gui.js.map
  9. 1 1
      dist/preview release/materialsLibrary/babylon.cellMaterial.js.map
  10. 1 1
      dist/preview release/materialsLibrary/babylon.furMaterial.js.map
  11. 1 1
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js.map
  12. 1 1
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js.map
  13. 1 1
      dist/preview release/materialsLibrary/babylon.mixMaterial.js.map
  14. 1 1
      dist/preview release/materialsLibrary/babylon.normalMaterial.js.map
  15. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js.map
  16. 1 1
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js.map
  17. 1 1
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js.map
  18. 1 1
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js.map
  19. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.js.map
  20. 1 1
      dist/preview release/materialsLibrary/babylonjs.materials.js.map
  21. 2 2
      dist/preview release/nodeEditor/babylon.nodeEditor.js
  22. 2 2
      dist/preview release/nodeEditor/babylon.nodeEditor.max.js
  23. 1 1
      dist/preview release/nodeEditor/babylon.nodeEditor.max.js.map
  24. 1 1
      dist/preview release/packagesSizeBaseLine.json
  25. 34 24
      dist/preview release/viewer/babylon.module.d.ts
  26. 6 6
      dist/preview release/viewer/babylon.viewer.js
  27. 1 1
      dist/preview release/viewer/babylon.viewer.max.js
  28. 3 3
      gui/src/3D/materials/fluentMaterial.ts
  29. 3 3
      materialsLibrary/src/cell/cellMaterial.ts
  30. 3 3
      materialsLibrary/src/fur/furMaterial.ts
  31. 3 3
      materialsLibrary/src/gradient/gradientMaterial.ts
  32. 3 3
      materialsLibrary/src/lava/lavaMaterial.ts
  33. 3 3
      materialsLibrary/src/mix/mixMaterial.ts
  34. 3 3
      materialsLibrary/src/normal/normalMaterial.ts
  35. 3 3
      materialsLibrary/src/shadowOnly/shadowOnlyMaterial.ts
  36. 3 3
      materialsLibrary/src/simple/simpleMaterial.ts
  37. 3 3
      materialsLibrary/src/terrain/terrainMaterial.ts
  38. 3 3
      materialsLibrary/src/triPlanar/triPlanarMaterial.ts
  39. 3 3
      materialsLibrary/src/water/waterMaterial.ts
  40. 1 1
      nodeEditor/src/blockTools.ts
  41. 3 2
      nodeEditor/src/components/diagram/diagram.scss
  42. 14 1
      src/Cameras/Inputs/arcRotateCameraGamepadInput.ts
  43. 4 4
      src/Engines/thinEngine.ts
  44. 3 3
      src/Materials/Background/backgroundMaterial.ts
  45. 2 2
      src/Materials/Node/nodeMaterial.ts
  46. 3 3
      src/Materials/PBR/pbrBaseMaterial.ts
  47. 36 109
      src/Materials/effect.ts
  48. 4 4
      src/Materials/materialHelper.ts
  49. 2 2
      src/Materials/shaderMaterial.ts
  50. 3 3
      src/Materials/standardMaterial.ts
  51. 2 2
      src/Particles/gpuParticleSystem.ts
  52. 1188 1554
      tests/es6Modules/webpack-stats.json

+ 16 - 8
Playground/babylon.d.txt

@@ -8837,7 +8837,7 @@ declare module BABYLON {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -27451,7 +27451,7 @@ declare module BABYLON {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -27587,7 +27587,7 @@ declare module BABYLON {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -27664,9 +27664,7 @@ declare module BABYLON {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
private _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
private _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
private _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -28911,7 +28909,7 @@ declare module BABYLON {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -28921,7 +28919,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -36635,6 +36633,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -37622,6 +37625,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;

+ 16 - 11
dist/preview release/babylon.d.ts

@@ -8912,7 +8912,7 @@ declare module BABYLON {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -27950,7 +27950,7 @@ declare module BABYLON {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -28090,7 +28090,7 @@ declare module BABYLON {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -28167,12 +28167,7 @@ declare module BABYLON {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
-        _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -29451,7 +29446,7 @@ declare module BABYLON {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -29461,7 +29456,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -37342,6 +37337,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -38342,6 +38342,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/babylon.js


文件差异内容过多而无法显示
+ 56 - 108
dist/preview release/babylon.max.js


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/babylon.max.js.map


+ 34 - 24
dist/preview release/babylon.module.d.ts

@@ -8905,7 +8905,7 @@ declare module "babylonjs/Materials/materialHelper" {
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Light } from "babylonjs/Lights/light";
     import { Light } from "babylonjs/Lights/light";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
-    import { Effect, EffectCreationOptions } from "babylonjs/Materials/effect";
+    import { Effect, IEffectCreationOptions } from "babylonjs/Materials/effect";
     import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
     import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
     import { MaterialDefines } from "babylonjs/Materials/materialDefines";
     import { MaterialDefines } from "babylonjs/Materials/materialDefines";
     import { EffectFallbacks } from "babylonjs/Materials/effectFallbacks";
     import { EffectFallbacks } from "babylonjs/Materials/effectFallbacks";
@@ -9039,7 +9039,7 @@ declare module "babylonjs/Materials/materialHelper" {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -28787,7 +28787,7 @@ declare module "babylonjs/Materials/effect" {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -28927,7 +28927,7 @@ declare module "babylonjs/Materials/effect" {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -29004,12 +29004,7 @@ declare module "babylonjs/Materials/effect" {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
-        _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -29694,7 +29689,7 @@ declare module "babylonjs/Materials/Textures/videoTexture" {
 }
 }
 declare module "babylonjs/Engines/thinEngine" {
 declare module "babylonjs/Engines/thinEngine" {
     import { IInternalTextureLoader } from "babylonjs/Materials/Textures/internalTextureLoader";
     import { IInternalTextureLoader } from "babylonjs/Materials/Textures/internalTextureLoader";
-    import { Effect, EffectCreationOptions } from "babylonjs/Materials/effect";
+    import { Effect, IEffectCreationOptions } from "babylonjs/Materials/effect";
     import { IShaderProcessor } from "babylonjs/Engines/Processors/iShaderProcessor";
     import { IShaderProcessor } from "babylonjs/Engines/Processors/iShaderProcessor";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
     import { Nullable, DataArray, IndicesArray } from "babylonjs/types";
     import { Nullable, DataArray, IndicesArray } from "babylonjs/types";
@@ -30323,7 +30318,7 @@ declare module "babylonjs/Engines/thinEngine" {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -30333,7 +30328,7 @@ declare module "babylonjs/Engines/thinEngine" {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -38497,6 +38492,11 @@ declare module "babylonjs/Cameras/Inputs/arcRotateCameraGamepadInput" {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -39543,6 +39543,11 @@ declare module "babylonjs/Cameras/Inputs/freeCameraGamepadInput" {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;
@@ -75723,7 +75728,7 @@ declare module BABYLON {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -94761,7 +94766,7 @@ declare module BABYLON {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -94901,7 +94906,7 @@ declare module BABYLON {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -94978,12 +94983,7 @@ declare module BABYLON {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
-        _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -96262,7 +96262,7 @@ declare module BABYLON {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -96272,7 +96272,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -104153,6 +104153,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -105153,6 +105158,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;

+ 16 - 11
dist/preview release/documentation.d.ts

@@ -8912,7 +8912,7 @@ declare module BABYLON {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -27950,7 +27950,7 @@ declare module BABYLON {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -28090,7 +28090,7 @@ declare module BABYLON {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -28167,12 +28167,7 @@ declare module BABYLON {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
-        _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -29451,7 +29446,7 @@ declare module BABYLON {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -29461,7 +29456,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -37342,6 +37337,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -38342,6 +38342,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/gui/babylon.gui.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.cellMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.furMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.gradientMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.lavaMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.mixMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.normalMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.simpleMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.terrainMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.js.map


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/materialsLibrary/babylonjs.materials.js.map


文件差异内容过多而无法显示
+ 2 - 2
dist/preview release/nodeEditor/babylon.nodeEditor.js


文件差异内容过多而无法显示
+ 2 - 2
dist/preview release/nodeEditor/babylon.nodeEditor.max.js


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/nodeEditor/babylon.nodeEditor.max.js.map


+ 1 - 1
dist/preview release/packagesSizeBaseLine.json

@@ -1 +1 @@
-{"thinEngineOnly":127189,"engineOnly":164058,"sceneOnly":508079,"minGridMaterial":638543,"minStandardMaterial":762401}
+{"thinEngineOnly":126138,"engineOnly":163007,"sceneOnly":507028,"minGridMaterial":637492,"minStandardMaterial":761350}

+ 34 - 24
dist/preview release/viewer/babylon.module.d.ts

@@ -8905,7 +8905,7 @@ declare module "babylonjs/Materials/materialHelper" {
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Light } from "babylonjs/Lights/light";
     import { Light } from "babylonjs/Lights/light";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
-    import { Effect, EffectCreationOptions } from "babylonjs/Materials/effect";
+    import { Effect, IEffectCreationOptions } from "babylonjs/Materials/effect";
     import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
     import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
     import { MaterialDefines } from "babylonjs/Materials/materialDefines";
     import { MaterialDefines } from "babylonjs/Materials/materialDefines";
     import { EffectFallbacks } from "babylonjs/Materials/effectFallbacks";
     import { EffectFallbacks } from "babylonjs/Materials/effectFallbacks";
@@ -9039,7 +9039,7 @@ declare module "babylonjs/Materials/materialHelper" {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -28787,7 +28787,7 @@ declare module "babylonjs/Materials/effect" {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -28927,7 +28927,7 @@ declare module "babylonjs/Materials/effect" {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -29004,12 +29004,7 @@ declare module "babylonjs/Materials/effect" {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
-        _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -29694,7 +29689,7 @@ declare module "babylonjs/Materials/Textures/videoTexture" {
 }
 }
 declare module "babylonjs/Engines/thinEngine" {
 declare module "babylonjs/Engines/thinEngine" {
     import { IInternalTextureLoader } from "babylonjs/Materials/Textures/internalTextureLoader";
     import { IInternalTextureLoader } from "babylonjs/Materials/Textures/internalTextureLoader";
-    import { Effect, EffectCreationOptions } from "babylonjs/Materials/effect";
+    import { Effect, IEffectCreationOptions } from "babylonjs/Materials/effect";
     import { IShaderProcessor } from "babylonjs/Engines/Processors/iShaderProcessor";
     import { IShaderProcessor } from "babylonjs/Engines/Processors/iShaderProcessor";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
     import { UniformBuffer } from "babylonjs/Materials/uniformBuffer";
     import { Nullable, DataArray, IndicesArray } from "babylonjs/types";
     import { Nullable, DataArray, IndicesArray } from "babylonjs/types";
@@ -30323,7 +30318,7 @@ declare module "babylonjs/Engines/thinEngine" {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -30333,7 +30328,7 @@ declare module "babylonjs/Engines/thinEngine" {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -38497,6 +38492,11 @@ declare module "babylonjs/Cameras/Inputs/arcRotateCameraGamepadInput" {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -39543,6 +39543,11 @@ declare module "babylonjs/Cameras/Inputs/freeCameraGamepadInput" {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;
@@ -75723,7 +75728,7 @@ declare module BABYLON {
          * @param defines The defines helping in the list generation
          * @param defines The defines helping in the list generation
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
          */
          */
-        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
+        static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights?: number): void;
         /**
         /**
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * This helps decreasing rank by rank the shadow quality (0 being the highest rank and quality)
          * @param defines The defines to update while falling back
          * @param defines The defines to update while falling back
@@ -94761,7 +94766,7 @@ declare module BABYLON {
     /**
     /**
      * Options to be used when creating an effect.
      * Options to be used when creating an effect.
      */
      */
-    export class EffectCreationOptions {
+    export interface IEffectCreationOptions {
         /**
         /**
          * Atrributes that will be used in the shader.
          * Atrributes that will be used in the shader.
          */
          */
@@ -94901,7 +94906,7 @@ declare module BABYLON {
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param onError Callback that will be called if an error occurs during shader compilation.
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
          */
          */
-        constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
+        constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: Nullable<string[]>, engine?: ThinEngine, defines?: Nullable<string>, fallbacks?: Nullable<IEffectFallbacks>, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any);
         private _useFinalCode;
         private _useFinalCode;
         /**
         /**
          * Unique key for this effect
          * Unique key for this effect
@@ -94978,12 +94983,7 @@ declare module BABYLON {
          */
          */
         executeWhenCompiled(func: (effect: Effect) => void): void;
         executeWhenCompiled(func: (effect: Effect) => void): void;
         private _checkIsReady;
         private _checkIsReady;
-        /** @hidden */
-        _loadVertexShader(vertex: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
-        /** @hidden */
-        _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void;
+        private _loadShader;
         /**
         /**
          * Recompiles the webGL program
          * Recompiles the webGL program
          * @param vertexSourceCode The source code for the vertex shader.
          * @param vertexSourceCode The source code for the vertex shader.
@@ -96262,7 +96262,7 @@ declare module BABYLON {
         /**
         /**
          * Create a new effect (used to store vertex/fragment shaders)
          * Create a new effect (used to store vertex/fragment shaders)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
          * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-         * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+         * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
          * @param samplers defines an array of string used to represent textures
          * @param samplers defines an array of string used to represent textures
          * @param defines defines the string containing the defines to use to compile the shaders
          * @param defines defines the string containing the defines to use to compile the shaders
@@ -96272,7 +96272,7 @@ declare module BABYLON {
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
          * @returns the new Effect
          * @returns the new Effect
          */
          */
-        createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
+        createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string, fallbacks?: IEffectFallbacks, onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         protected static _ConcatenateShader(source: string, defines: Nullable<string>, shaderVersion?: string): string;
         private _compileShader;
         private _compileShader;
         private _compileRawShader;
         private _compileRawShader;
@@ -104153,6 +104153,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         /**
         /**
@@ -105153,6 +105158,11 @@ declare module BABYLON {
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          * This is the threshold from when moving starts to be accounted for for to prevent jittering.
          */
          */
         gamepadMoveSensibility: number;
         gamepadMoveSensibility: number;
+        private _yAxisScale;
+        /**
+         * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+         */
+        invertYAxis: boolean;
         private _onGamepadConnectedObserver;
         private _onGamepadConnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _onGamepadDisconnectedObserver;
         private _cameraTransform;
         private _cameraTransform;

文件差异内容过多而无法显示
+ 6 - 6
dist/preview release/viewer/babylon.viewer.js


文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 3 - 3
gui/src/3D/materials/fluentMaterial.ts

@@ -3,7 +3,7 @@ import { serializeAsColor4, serializeAsVector3, serializeAsTexture, serialize, e
 import { Color3, Vector3, Color4, Matrix, TmpVectors } from "babylonjs/Maths/math";
 import { Color3, Vector3, Color4, Matrix, TmpVectors } from "babylonjs/Maths/math";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { VertexBuffer } from "babylonjs/Meshes/buffer";
 import { VertexBuffer } from "babylonjs/Meshes/buffer";
@@ -192,7 +192,7 @@ export class FluentMaterial extends PushMaterial {
             var samplers = ["albedoSampler"];
             var samplers = ["albedoSampler"];
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -202,7 +202,7 @@ export class FluentMaterial extends PushMaterial {
 
 
             var join = defines.toString();
             var join = defines.toString();
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/cell/cellMaterial.ts

@@ -3,7 +3,7 @@ import { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, Ser
 import { Matrix } from "babylonjs/Maths/math.vector";
 import { Matrix } from "babylonjs/Maths/math.vector";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -193,7 +193,7 @@ export class CellMaterial extends PushMaterial {
             var samplers = ["diffuseSampler"];
             var samplers = ["diffuseSampler"];
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -201,7 +201,7 @@ export class CellMaterial extends PushMaterial {
                 maxSimultaneousLights: this.maxSimultaneousLights
                 maxSimultaneousLights: this.maxSimultaneousLights
             });
             });
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/fur/furMaterial.ts

@@ -7,7 +7,7 @@ import { Tags } from "babylonjs/Misc/tags";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { Texture } from "babylonjs/Materials/Textures/texture";
 import { Texture } from "babylonjs/Materials/Textures/texture";
 import { DynamicTexture } from "babylonjs/Materials/Textures/dynamicTexture";
 import { DynamicTexture } from "babylonjs/Materials/Textures/dynamicTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -275,7 +275,7 @@ export class FurMaterial extends PushMaterial {
 
 
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -284,7 +284,7 @@ export class FurMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/gradient/gradientMaterial.ts

@@ -6,7 +6,7 @@ import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { VertexBuffer } from "babylonjs/Meshes/buffer";
 import { VertexBuffer } from "babylonjs/Meshes/buffer";
 import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
 import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
@@ -185,7 +185,7 @@ export class GradientMaterial extends PushMaterial {
             var samplers: string[] = [];
             var samplers: string[] = [];
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -194,7 +194,7 @@ export class GradientMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/lava/lavaMaterial.ts

@@ -4,7 +4,7 @@ import { Matrix } from "babylonjs/Maths/math.vector";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -259,7 +259,7 @@ export class LavaMaterial extends PushMaterial {
             ];
             ];
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -268,7 +268,7 @@ export class LavaMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/mix/mixMaterial.ts

@@ -5,7 +5,7 @@ import { Color3 } from "babylonjs/Maths/math.color";
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { Texture } from "babylonjs/Materials/Textures/texture";
 import { Texture } from "babylonjs/Materials/Textures/texture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -290,7 +290,7 @@ export class MixMaterial extends PushMaterial {
 
 
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -299,7 +299,7 @@ export class MixMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/normal/normalMaterial.ts

@@ -4,7 +4,7 @@ import { Matrix } from "babylonjs/Maths/math.vector";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -227,7 +227,7 @@ export class NormalMaterial extends PushMaterial {
             var samplers = ["diffuseSampler"];
             var samplers = ["diffuseSampler"];
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -236,7 +236,7 @@ export class NormalMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/shadowOnly/shadowOnlyMaterial.ts

@@ -4,7 +4,7 @@ import { Matrix } from "babylonjs/Maths/math.vector";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { IShadowLight } from "babylonjs/Lights/shadowLight";
 import { IShadowLight } from "babylonjs/Lights/shadowLight";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -157,7 +157,7 @@ export class ShadowOnlyMaterial extends PushMaterial {
 
 
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -166,7 +166,7 @@ export class ShadowOnlyMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/simple/simpleMaterial.ts

@@ -4,7 +4,7 @@ import { Matrix } from "babylonjs/Maths/math.vector";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { Color3 } from "babylonjs/Maths/math.color";
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -182,7 +182,7 @@ export class SimpleMaterial extends PushMaterial {
             var samplers = ["diffuseSampler"];
             var samplers = ["diffuseSampler"];
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -190,7 +190,7 @@ export class SimpleMaterial extends PushMaterial {
                 maxSimultaneousLights: this.maxSimultaneousLights
                 maxSimultaneousLights: this.maxSimultaneousLights
             });
             });
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/terrain/terrainMaterial.ts

@@ -5,7 +5,7 @@ import { Color3 } from "babylonjs/Maths/math.color";
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { Texture } from "babylonjs/Materials/Textures/texture";
 import { Texture } from "babylonjs/Materials/Textures/texture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -249,7 +249,7 @@ export class TerrainMaterial extends PushMaterial {
 
 
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -258,7 +258,7 @@ export class TerrainMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/triPlanar/triPlanarMaterial.ts

@@ -5,7 +5,7 @@ import { Color3 } from "babylonjs/Maths/math.color";
 
 
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { IAnimatable } from 'babylonjs/Animations/animatable.interface';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
 import { PushMaterial } from "babylonjs/Materials/pushMaterial";
@@ -241,7 +241,7 @@ export class TriPlanarMaterial extends PushMaterial {
 
 
             var uniformBuffers = new Array<string>();
             var uniformBuffers = new Array<string>();
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -250,7 +250,7 @@ export class TriPlanarMaterial extends PushMaterial {
             });
             });
 
 
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 3 - 3
materialsLibrary/src/water/waterMaterial.ts

@@ -9,7 +9,7 @@ import { SmartArray } from "babylonjs/Misc/smartArray";
 import { Observer } from 'babylonjs/Misc/observable';
 import { Observer } from 'babylonjs/Misc/observable';
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
 import { RenderTargetTexture } from "babylonjs/Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "babylonjs/Materials/Textures/renderTargetTexture";
-import { EffectCreationOptions } from "babylonjs/Materials/effect";
+import { IEffectCreationOptions } from "babylonjs/Materials/effect";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { MaterialDefines } from "babylonjs/Materials/materialDefines";
 import { IImageProcessingConfigurationDefines, ImageProcessingConfiguration } from "babylonjs/Materials/imageProcessingConfiguration";
 import { IImageProcessingConfigurationDefines, ImageProcessingConfiguration } from "babylonjs/Materials/imageProcessingConfiguration";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
 import { MaterialHelper } from "babylonjs/Materials/materialHelper";
@@ -456,7 +456,7 @@ export class WaterMaterial extends PushMaterial {
                 ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
                 ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
             }
             }
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -464,7 +464,7 @@ export class WaterMaterial extends PushMaterial {
                 maxSimultaneousLights: this.maxSimultaneousLights
                 maxSimultaneousLights: this.maxSimultaneousLights
             });
             });
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
             subMesh.setEffect(scene.getEngine().createEffect(shaderName,
-                <EffectCreationOptions>{
+                <IEffectCreationOptions>{
                     attributes: attribs,
                     attributes: attribs,
                     uniformsNames: uniforms,
                     uniformsNames: uniforms,
                     uniformBuffersNames: uniformBuffers,
                     uniformBuffersNames: uniformBuffers,

+ 1 - 1
nodeEditor/src/blockTools.ts

@@ -394,7 +394,7 @@ export class BlockTools {
         let color = "Red";
         let color = "Red";
         switch (type) {
         switch (type) {
             case NodeMaterialBlockConnectionPointTypes.Float:
             case NodeMaterialBlockConnectionPointTypes.Float:
-				color = "#ca9e27";
+				color = "#cb9e27";
                 break;
                 break;
             case NodeMaterialBlockConnectionPointTypes.Vector2:                
             case NodeMaterialBlockConnectionPointTypes.Vector2:                
 				color = "#16bcb1";
 				color = "#16bcb1";

+ 3 - 2
nodeEditor/src/components/diagram/diagram.scss

@@ -54,7 +54,7 @@
         }
         }
 
 
         &.Float {
         &.Float {
-            background: #ca9e27;
+            background: #cb9e27;
         }
         }
 
 
         &.Vector2 {
         &.Vector2 {
@@ -116,7 +116,7 @@
     }
     }
 
 
     &.constant {
     &.constant {
-        background: gray !important;
+        background: #646464 !important;
     }
     }
 
 
     &.output {
     &.output {
@@ -295,6 +295,7 @@
         display: grid;
         display: grid;
         grid-template-rows: 30px auto 1fr;
         grid-template-rows: 30px auto 1fr;
         grid-template-columns: calc(100% - 60px) 60px;
         grid-template-columns: calc(100% - 60px) 60px;
+        background: #323232;
 
 
         .inputs {
         .inputs {
             grid-column: 1;
             grid-column: 1;

+ 14 - 1
src/Cameras/Inputs/arcRotateCameraGamepadInput.ts

@@ -33,6 +33,19 @@ export class ArcRotateCameraGamepadInput implements ICameraInput<ArcRotateCamera
     @serialize()
     @serialize()
     public gamepadMoveSensibility = 40;
     public gamepadMoveSensibility = 40;
 
 
+    private _yAxisScale = 1.0;
+
+    /**
+     * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted
+     */
+    public get invertYAxis() {
+        return this._yAxisScale !== 1.0;
+    }
+
+    public set invertYAxis(value: boolean) {
+        this._yAxisScale = value ? -1.0 : 1.0;
+    }
+
     private _onGamepadConnectedObserver: Nullable<Observer<Gamepad>>;
     private _onGamepadConnectedObserver: Nullable<Observer<Gamepad>>;
     private _onGamepadDisconnectedObserver: Nullable<Observer<Gamepad>>;
     private _onGamepadDisconnectedObserver: Nullable<Observer<Gamepad>>;
 
 
@@ -89,7 +102,7 @@ export class ArcRotateCameraGamepadInput implements ICameraInput<ArcRotateCamera
                 }
                 }
 
 
                 if (RSValues.y != 0) {
                 if (RSValues.y != 0) {
-                    var normalizedRY = RSValues.y / this.gamepadRotationSensibility;
+                    var normalizedRY = (RSValues.y / this.gamepadRotationSensibility) * this._yAxisScale;
                     if (normalizedRY != 0 && Math.abs(normalizedRY) > 0.005) {
                     if (normalizedRY != 0 && Math.abs(normalizedRY) > 0.005) {
                         camera.inertialBetaOffset += normalizedRY;
                         camera.inertialBetaOffset += normalizedRY;
                     }
                     }

+ 4 - 4
src/Engines/thinEngine.ts

@@ -1,6 +1,6 @@
 import { EngineStore } from './engineStore';
 import { EngineStore } from './engineStore';
 import { IInternalTextureLoader } from '../Materials/Textures/internalTextureLoader';
 import { IInternalTextureLoader } from '../Materials/Textures/internalTextureLoader';
-import { Effect, EffectCreationOptions } from '../Materials/effect';
+import { Effect, IEffectCreationOptions } from '../Materials/effect';
 import { _DevTools } from '../Misc/devTools';
 import { _DevTools } from '../Misc/devTools';
 import { IShaderProcessor } from './Processors/iShaderProcessor';
 import { IShaderProcessor } from './Processors/iShaderProcessor';
 import { UniformBuffer } from '../Materials/uniformBuffer';
 import { UniformBuffer } from '../Materials/uniformBuffer';
@@ -1966,7 +1966,7 @@ export class ThinEngine {
     /**
     /**
      * Create a new effect (used to store vertex/fragment shaders)
      * Create a new effect (used to store vertex/fragment shaders)
      * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
      * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
-     * @param attributesNamesOrOptions defines either a list of attribute names or an EffectCreationOptions object
+     * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object
      * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
      * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use
      * @param samplers defines an array of string used to represent textures
      * @param samplers defines an array of string used to represent textures
      * @param defines defines the string containing the defines to use to compile the shaders
      * @param defines defines the string containing the defines to use to compile the shaders
@@ -1976,13 +1976,13 @@ export class ThinEngine {
      * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
      * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)
      * @returns the new Effect
      * @returns the new Effect
      */
      */
-    public createEffect(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string,
+    public createEffect(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers?: string[], defines?: string,
         fallbacks?: IEffectFallbacks,
         fallbacks?: IEffectFallbacks,
         onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect {
         onCompiled?: Nullable<(effect: Effect) => void>, onError?: Nullable<(effect: Effect, errors: string) => void>, indexParameters?: any): Effect {
         var vertex = baseName.vertexElement || baseName.vertex || baseName;
         var vertex = baseName.vertexElement || baseName.vertex || baseName;
         var fragment = baseName.fragmentElement || baseName.fragment || baseName;
         var fragment = baseName.fragmentElement || baseName.fragment || baseName;
 
 
-        var name = vertex + "+" + fragment + "@" + (defines ? defines : (<EffectCreationOptions>attributesNamesOrOptions).defines);
+        var name = vertex + "+" + fragment + "@" + (defines ? defines : (<IEffectCreationOptions>attributesNamesOrOptions).defines);
         if (this._compiledEffects[name]) {
         if (this._compiledEffects[name]) {
             var compiledEffect = <Effect>this._compiledEffects[name];
             var compiledEffect = <Effect>this._compiledEffects[name];
             if (onCompiled && compiledEffect.isReady()) {
             if (onCompiled && compiledEffect.isReady()) {

+ 3 - 3
src/Materials/Background/backgroundMaterial.ts

@@ -9,7 +9,7 @@ import { VertexBuffer } from "../../Meshes/buffer";
 import { SubMesh } from "../../Meshes/subMesh";
 import { SubMesh } from "../../Meshes/subMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { Mesh } from "../../Meshes/mesh";
 import { Mesh } from "../../Meshes/mesh";
-import { Effect, EffectCreationOptions } from "../../Materials/effect";
+import { Effect, IEffectCreationOptions } from "../../Materials/effect";
 import { MaterialHelper } from "../../Materials/materialHelper";
 import { MaterialHelper } from "../../Materials/materialHelper";
 import { MaterialDefines } from "../../Materials/materialDefines";
 import { MaterialDefines } from "../../Materials/materialDefines";
 import { PushMaterial } from "../../Materials/pushMaterial";
 import { PushMaterial } from "../../Materials/pushMaterial";
@@ -889,7 +889,7 @@ export class BackgroundMaterial extends PushMaterial {
                 ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
                 ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
             }
             }
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -906,7 +906,7 @@ export class BackgroundMaterial extends PushMaterial {
             };
             };
 
 
             var join = defines.toString();
             var join = defines.toString();
-            subMesh.setEffect(scene.getEngine().createEffect("background", <EffectCreationOptions>{
+            subMesh.setEffect(scene.getEngine().createEffect("background", <IEffectCreationOptions>{
                 attributes: attribs,
                 attributes: attribs,
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,

+ 2 - 2
src/Materials/Node/nodeMaterial.ts

@@ -7,7 +7,7 @@ import { Color4 } from '../../Maths/math.color';
 import { Mesh } from '../../Meshes/mesh';
 import { Mesh } from '../../Meshes/mesh';
 import { Engine } from '../../Engines/engine';
 import { Engine } from '../../Engines/engine';
 import { NodeMaterialBuildState } from './nodeMaterialBuildState';
 import { NodeMaterialBuildState } from './nodeMaterialBuildState';
-import { EffectCreationOptions } from '../effect';
+import { IEffectCreationOptions } from '../effect';
 import { BaseTexture } from '../../Materials/Textures/baseTexture';
 import { BaseTexture } from '../../Materials/Textures/baseTexture';
 import { Observable, Observer } from '../../Misc/observable';
 import { Observable, Observer } from '../../Misc/observable';
 import { NodeMaterialBlockTargets } from './Enums/nodeMaterialBlockTargets';
 import { NodeMaterialBlockTargets } from './Enums/nodeMaterialBlockTargets';
@@ -762,7 +762,7 @@ export class NodeMaterial extends PushMaterial {
                 fragment: "nodeMaterial" + this._buildId,
                 fragment: "nodeMaterial" + this._buildId,
                 vertexSource: this._vertexCompilationState.compilationString,
                 vertexSource: this._vertexCompilationState.compilationString,
                 fragmentSource: this._fragmentCompilationState.compilationString
                 fragmentSource: this._fragmentCompilationState.compilationString
-            }, <EffectCreationOptions>{
+            }, <IEffectCreationOptions>{
                 attributes: this._vertexCompilationState.attributes,
                 attributes: this._vertexCompilationState.attributes,
                 uniformsNames: mergedUniforms,
                 uniformsNames: mergedUniforms,
                 uniformBuffersNames: mergedUniformBuffers,
                 uniformBuffersNames: mergedUniformBuffers,

+ 3 - 3
src/Materials/PBR/pbrBaseMaterial.ts

@@ -20,7 +20,7 @@ import { IMaterialSubSurfaceDefines, PBRSubSurfaceConfiguration } from "./pbrSub
 import { Color3, TmpColors } from '../../Maths/math.color';
 import { Color3, TmpColors } from '../../Maths/math.color';
 
 
 import { ImageProcessingConfiguration, IImageProcessingConfigurationDefines } from "../../Materials/imageProcessingConfiguration";
 import { ImageProcessingConfiguration, IImageProcessingConfigurationDefines } from "../../Materials/imageProcessingConfiguration";
-import { Effect, EffectCreationOptions } from "../../Materials/effect";
+import { Effect, IEffectCreationOptions } from "../../Materials/effect";
 import { Material } from "../../Materials/material";
 import { Material } from "../../Materials/material";
 import { MaterialDefines } from "../../Materials/materialDefines";
 import { MaterialDefines } from "../../Materials/materialDefines";
 import { PushMaterial } from "../../Materials/pushMaterial";
 import { PushMaterial } from "../../Materials/pushMaterial";
@@ -1226,7 +1226,7 @@ export abstract class PBRBaseMaterial extends PushMaterial {
             ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
             ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
         }
         }
 
 
-        MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+        MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
             uniformsNames: uniforms,
             uniformsNames: uniforms,
             uniformBuffersNames: uniformBuffers,
             uniformBuffersNames: uniformBuffers,
             samplers: samplers,
             samplers: samplers,
@@ -1239,7 +1239,7 @@ export abstract class PBRBaseMaterial extends PushMaterial {
         }
         }
 
 
         var join = defines.toString();
         var join = defines.toString();
-        return engine.createEffect(shaderName, <EffectCreationOptions>{
+        return engine.createEffect(shaderName, <IEffectCreationOptions>{
             attributes: attribs,
             attributes: attribs,
             uniformsNames: uniforms,
             uniformsNames: uniforms,
             uniformBuffersNames: uniformBuffers,
             uniformBuffersNames: uniformBuffers,

+ 36 - 109
src/Materials/effect.ts

@@ -20,51 +20,51 @@ declare type PostProcess = import("../PostProcesses/postProcess").PostProcess;
 /**
 /**
  * Options to be used when creating an effect.
  * Options to be used when creating an effect.
  */
  */
-export class EffectCreationOptions {
+export interface IEffectCreationOptions {
     /**
     /**
      * Atrributes that will be used in the shader.
      * Atrributes that will be used in the shader.
      */
      */
-    public attributes: string[];
+    attributes: string[];
     /**
     /**
      * Uniform varible names that will be set in the shader.
      * Uniform varible names that will be set in the shader.
      */
      */
-    public uniformsNames: string[];
+    uniformsNames: string[];
     /**
     /**
      * Uniform buffer varible names that will be set in the shader.
      * Uniform buffer varible names that will be set in the shader.
      */
      */
-    public uniformBuffersNames: string[];
+    uniformBuffersNames: string[];
     /**
     /**
      * Sampler texture variable names that will be set in the shader.
      * Sampler texture variable names that will be set in the shader.
      */
      */
-    public samplers: string[];
+    samplers: string[];
     /**
     /**
      * Define statements that will be set in the shader.
      * Define statements that will be set in the shader.
      */
      */
-    public defines: any;
+    defines: any;
     /**
     /**
      * Possible fallbacks for this effect to improve performance when needed.
      * Possible fallbacks for this effect to improve performance when needed.
      */
      */
-    public fallbacks: Nullable<IEffectFallbacks>;
+    fallbacks: Nullable<IEffectFallbacks>;
     /**
     /**
      * Callback that will be called when the shader is compiled.
      * Callback that will be called when the shader is compiled.
      */
      */
-    public onCompiled: Nullable<(effect: Effect) => void>;
+    onCompiled: Nullable<(effect: Effect) => void>;
     /**
     /**
      * Callback that will be called if an error occurs during shader compilation.
      * Callback that will be called if an error occurs during shader compilation.
      */
      */
-    public onError: Nullable<(effect: Effect, errors: string) => void>;
+    onError: Nullable<(effect: Effect, errors: string) => void>;
     /**
     /**
      * Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
      * Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
      */
      */
-    public indexParameters?: any;
+    indexParameters?: any;
     /**
     /**
      * Max number of lights that can be used in the shader.
      * Max number of lights that can be used in the shader.
      */
      */
-    public maxSimultaneousLights?: number;
+    maxSimultaneousLights?: number;
     /**
     /**
      * See https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings
      * See https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings
      */
      */
-    public transformFeedbackVaryings?: Nullable<string[]>;
+    transformFeedbackVaryings?: Nullable<string[]>;
 }
 }
 
 
 /**
 /**
@@ -172,13 +172,13 @@ export class Effect implements IDisposable {
      * @param onError Callback that will be called if an error occurs during shader compilation.
      * @param onError Callback that will be called if an error occurs during shader compilation.
      * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
      * @param indexParameters Parameters to be used with Babylons include syntax to iterate over an array (eg. {lights: 10})
      */
      */
-    constructor(baseName: any, attributesNamesOrOptions: string[] | EffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers: Nullable<string[]> = null,
+    constructor(baseName: any, attributesNamesOrOptions: string[] | IEffectCreationOptions, uniformsNamesOrEngine: string[] | ThinEngine, samplers: Nullable<string[]> = null,
         engine?: ThinEngine, defines: Nullable<string> = null,
         engine?: ThinEngine, defines: Nullable<string> = null,
         fallbacks: Nullable<IEffectFallbacks> = null, onCompiled: Nullable<(effect: Effect) => void> = null, onError: Nullable<(effect: Effect, errors: string) => void> = null, indexParameters?: any) {
         fallbacks: Nullable<IEffectFallbacks> = null, onCompiled: Nullable<(effect: Effect) => void> = null, onError: Nullable<(effect: Effect, errors: string) => void> = null, indexParameters?: any) {
         this.name = baseName;
         this.name = baseName;
 
 
-        if ((<EffectCreationOptions>attributesNamesOrOptions).attributes) {
-            var options = <EffectCreationOptions>attributesNamesOrOptions;
+        if ((<IEffectCreationOptions>attributesNamesOrOptions).attributes) {
+            var options = <IEffectCreationOptions>attributesNamesOrOptions;
             this._engine = <Engine>uniformsNamesOrEngine;
             this._engine = <Engine>uniformsNamesOrEngine;
 
 
             this._attributesNames = options.attributes;
             this._attributesNames = options.attributes;
@@ -252,8 +252,8 @@ export class Effect implements IDisposable {
             platformName: this._engine.webGLVersion >= 2 ? "WEBGL2" : "WEBGL1"
             platformName: this._engine.webGLVersion >= 2 ? "WEBGL2" : "WEBGL1"
         };
         };
 
 
-        this._loadVertexShader(vertexSource, (vertexCode) => {
-            this._loadFragmentShader(fragmentSource, (fragmentCode) => {
+        this._loadShader(vertexSource, "Vertex", "", (vertexCode) => {
+            this._loadShader(fragmentSource, "Fragment", "Pixel", (fragmentCode) => {
                 ShaderProcessor.Process(vertexCode, processorOptions, (migratedVertexCode) => {
                 ShaderProcessor.Process(vertexCode, processorOptions, (migratedVertexCode) => {
                     processorOptions.isFragment = true;
                     processorOptions.isFragment = true;
                     ShaderProcessor.Process(fragmentCode, processorOptions, (migratedFragmentCode) => {
                     ShaderProcessor.Process(fragmentCode, processorOptions, (migratedFragmentCode) => {
@@ -438,123 +438,50 @@ export class Effect implements IDisposable {
         }, 16);
         }, 16);
     }
     }
 
 
-    /** @hidden */
-    public _loadVertexShader(vertex: any, callback: (data: any) => void): void {
-        if (typeof(HTMLElement) !== "undefined") {
-            // DOM element ?
-            if (vertex instanceof HTMLElement) {
-                var vertexCode = DomManagement.GetDOMTextContent(vertex);
-                callback(vertexCode);
-                return;
-            }
-        }
-
-        // Direct source ?
-        if (vertex.substr(0, 7) === "source:") {
-            callback(vertex.substr(7));
-            return;
-        }
-
-        // Base64 encoded ?
-        if (vertex.substr(0, 7) === "base64:") {
-            var vertexBinary = window.atob(vertex.substr(7));
-            callback(vertexBinary);
-            return;
-        }
-
-        // Is in local store ?
-        if (Effect.ShadersStore[vertex + "VertexShader"]) {
-            callback(Effect.ShadersStore[vertex + "VertexShader"]);
-            return;
-        }
-
-        var vertexShaderUrl;
-
-        if (vertex[0] === "." || vertex[0] === "/" || vertex.indexOf("http") > -1) {
-            vertexShaderUrl = vertex;
-        } else {
-            vertexShaderUrl = Effect.ShadersRepository + vertex;
-        }
-
-        // Vertex shader
-        this._engine._loadFile(vertexShaderUrl + ".vertex.fx", callback);
-    }
-
-    /** @hidden */
-    public _loadFragmentShader(fragment: any, callback: (data: any) => void): void {
+    private _loadShader(shader: any, key: string, optionalKey: string, callback: (data: any) => void): void {
         if (typeof(HTMLElement) !== "undefined") {
         if (typeof(HTMLElement) !== "undefined") {
             // DOM element ?
             // DOM element ?
-            if (fragment instanceof HTMLElement) {
-                var fragmentCode = DomManagement.GetDOMTextContent(fragment);
-                callback(fragmentCode);
+            if (shader instanceof HTMLElement) {
+                var shaderCode = DomManagement.GetDOMTextContent(shader);
+                callback(shaderCode);
                 return;
                 return;
             }
             }
         }
         }
 
 
         // Direct source ?
         // Direct source ?
-        if (fragment.substr(0, 7) === "source:") {
-            callback(fragment.substr(7));
+        if (shader.substr(0, 7) === "source:") {
+            callback(shader.substr(7));
             return;
             return;
         }
         }
 
 
         // Base64 encoded ?
         // Base64 encoded ?
-        if (fragment.substr(0, 7) === "base64:") {
-            var fragmentBinary = window.atob(fragment.substr(7));
-            callback(fragmentBinary);
+        if (shader.substr(0, 7) === "base64:") {
+            var shaderBinary = window.atob(shader.substr(7));
+            callback(shaderBinary);
             return;
             return;
         }
         }
 
 
         // Is in local store ?
         // Is in local store ?
-        if (Effect.ShadersStore[fragment + "PixelShader"]) {
-            callback(Effect.ShadersStore[fragment + "PixelShader"]);
+        if (Effect.ShadersStore[shader + key + "Shader"]) {
+            callback(Effect.ShadersStore[shader + key + "Shader"]);
             return;
             return;
         }
         }
 
 
-        if (Effect.ShadersStore[fragment + "FragmentShader"]) {
-            callback(Effect.ShadersStore[fragment + "FragmentShader"]);
+        if (optionalKey && Effect.ShadersStore[shader + optionalKey + "Shader"]) {
+            callback(Effect.ShadersStore[shader + optionalKey + "Shader"]);
             return;
             return;
         }
         }
 
 
-        var fragmentShaderUrl;
+        var shaderUrl;
 
 
-        if (fragment[0] === "." || fragment[0] === "/" || fragment.indexOf("http") > -1) {
-            fragmentShaderUrl = fragment;
+        if (shader[0] === "." || shader[0] === "/" || shader.indexOf("http") > -1) {
+            shaderUrl = shader;
         } else {
         } else {
-            fragmentShaderUrl = Effect.ShadersRepository + fragment;
+            shaderUrl = Effect.ShadersRepository + shader;
         }
         }
 
 
-        // Fragment shader
-        this._engine._loadFile(fragmentShaderUrl + ".fragment.fx", callback);
-    }
-
-    /** @hidden */
-    public _dumpShadersSource(vertexCode: string, fragmentCode: string, defines: string): void {
-        // Rebuild shaders source code
-        var shaderVersion = (this._engine.webGLVersion > 1) ? "#version 300 es\n#define WEBGL2 \n" : "";
-        var prefix = shaderVersion + (defines ? defines + "\n" : "");
-        vertexCode = prefix + vertexCode;
-        fragmentCode = prefix + fragmentCode;
-
-        // Number lines of shaders source code
-        var i = 2;
-        var regex = /\n/gm;
-        var formattedVertexCode = "\n1\t" + vertexCode.replace(regex, function() { return "\n" + (i++) + "\t"; });
-        i = 2;
-        var formattedFragmentCode = "\n1\t" + fragmentCode.replace(regex, function() { return "\n" + (i++) + "\t"; });
-
-        // Dump shaders name and formatted source code
-        if (this.name.vertexElement) {
-            Logger.Error("Vertex shader: " + this.name.vertexElement + formattedVertexCode);
-            Logger.Error("Fragment shader: " + this.name.fragmentElement + formattedFragmentCode);
-        }
-        else if (this.name.vertex) {
-            Logger.Error("Vertex shader: " + this.name.vertex + formattedVertexCode);
-            Logger.Error("Fragment shader: " + this.name.fragment + formattedFragmentCode);
-        }
-        else {
-            Logger.Error("Vertex shader: " + this.name + formattedVertexCode);
-            Logger.Error("Fragment shader: " + this.name + formattedFragmentCode);
-        }
+        // Vertex shader
+        this._engine._loadFile(shaderUrl + "." + key.toLowerCase() + ".fx", callback);
     }
     }
 
 
     /**
     /**

+ 4 - 4
src/Materials/materialHelper.ts

@@ -10,7 +10,7 @@ import { VertexBuffer } from "../Meshes/buffer";
 import { Light } from "../Lights/light";
 import { Light } from "../Lights/light";
 
 
 import { UniformBuffer } from "./uniformBuffer";
 import { UniformBuffer } from "./uniformBuffer";
-import { Effect, EffectCreationOptions } from "./effect";
+import { Effect, IEffectCreationOptions } from "./effect";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { WebVRFreeCamera } from '../Cameras/VR/webVRCamera';
 import { WebVRFreeCamera } from '../Cameras/VR/webVRCamera';
 import { MaterialDefines } from "./materialDefines";
 import { MaterialDefines } from "./materialDefines";
@@ -478,12 +478,12 @@ export class MaterialHelper {
      * @param defines The defines helping in the list generation
      * @param defines The defines helping in the list generation
      * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
      * @param maxSimultaneousLights The maximum number of simultanous light allowed in the effect
      */
      */
-    public static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | EffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights = 4): void {
+    public static PrepareUniformsAndSamplersList(uniformsListOrOptions: string[] | IEffectCreationOptions, samplersList?: string[], defines?: any, maxSimultaneousLights = 4): void {
         let uniformsList: string[];
         let uniformsList: string[];
         let uniformBuffersList: Nullable<string[]> = null;
         let uniformBuffersList: Nullable<string[]> = null;
 
 
-        if ((<EffectCreationOptions>uniformsListOrOptions).uniformsNames) {
-            var options = <EffectCreationOptions>uniformsListOrOptions;
+        if ((<IEffectCreationOptions>uniformsListOrOptions).uniformsNames) {
+            var options = <IEffectCreationOptions>uniformsListOrOptions;
             uniformsList = options.uniformsNames;
             uniformsList = options.uniformsNames;
             uniformBuffersList = options.uniformBuffersNames;
             uniformBuffersList = options.uniformBuffersNames;
             samplersList = options.samplers;
             samplersList = options.samplers;

+ 2 - 2
src/Materials/shaderMaterial.ts

@@ -8,7 +8,7 @@ import { VertexBuffer } from "../Meshes/buffer";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { Texture } from "../Materials/Textures/texture";
 import { Texture } from "../Materials/Textures/texture";
 import { MaterialHelper } from "./materialHelper";
 import { MaterialHelper } from "./materialHelper";
-import { EffectCreationOptions } from "./effect";
+import { IEffectCreationOptions } from "./effect";
 import { Material } from "./material";
 import { Material } from "./material";
 import { _TypeStore } from '../Misc/typeStore';
 import { _TypeStore } from '../Misc/typeStore';
 import { Color3, Color4 } from '../Maths/math.color';
 import { Color3, Color4 } from '../Maths/math.color';
@@ -515,7 +515,7 @@ export class ShaderMaterial extends Material {
         var previousEffect = this._effect;
         var previousEffect = this._effect;
         var join = defines.join("\n");
         var join = defines.join("\n");
 
 
-        this._effect = engine.createEffect(this._shaderPath, <EffectCreationOptions>{
+        this._effect = engine.createEffect(this._shaderPath, <IEffectCreationOptions>{
             attributes: attribs,
             attributes: attribs,
             uniformsNames: this._options.uniforms,
             uniformsNames: this._options.uniforms,
             uniformBuffersNames: this._options.uniformBuffers,
             uniformBuffersNames: this._options.uniformBuffers,

+ 3 - 3
src/Materials/standardMaterial.ts

@@ -15,7 +15,6 @@ import { Mesh } from "../Meshes/mesh";
 import { ImageProcessingConfiguration, IImageProcessingConfigurationDefines } from "./imageProcessingConfiguration";
 import { ImageProcessingConfiguration, IImageProcessingConfigurationDefines } from "./imageProcessingConfiguration";
 import { ColorCurves } from "./colorCurves";
 import { ColorCurves } from "./colorCurves";
 import { FresnelParameters } from "./fresnelParameters";
 import { FresnelParameters } from "./fresnelParameters";
-import { EffectCreationOptions } from "./effect";
 import { MaterialDefines } from "../Materials/materialDefines";
 import { MaterialDefines } from "../Materials/materialDefines";
 import { PushMaterial } from "./pushMaterial";
 import { PushMaterial } from "./pushMaterial";
 import { MaterialHelper } from "./materialHelper";
 import { MaterialHelper } from "./materialHelper";
@@ -31,6 +30,7 @@ import "../Shaders/default.fragment";
 import "../Shaders/default.vertex";
 import "../Shaders/default.vertex";
 import { Constants } from "../Engines/constants";
 import { Constants } from "../Engines/constants";
 import { EffectFallbacks } from './effectFallbacks';
 import { EffectFallbacks } from './effectFallbacks';
+import { IEffectCreationOptions } from './effect';
 
 
 /** @hidden */
 /** @hidden */
 export class StandardMaterialDefines extends MaterialDefines implements IImageProcessingConfigurationDefines {
 export class StandardMaterialDefines extends MaterialDefines implements IImageProcessingConfigurationDefines {
@@ -1139,7 +1139,7 @@ export class StandardMaterial extends PushMaterial {
                 ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
                 ImageProcessingConfiguration.PrepareSamplers(samplers, defines);
             }
             }
 
 
-            MaterialHelper.PrepareUniformsAndSamplersList(<EffectCreationOptions>{
+            MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,
                 samplers: samplers,
                 samplers: samplers,
@@ -1154,7 +1154,7 @@ export class StandardMaterial extends PushMaterial {
             var join = defines.toString();
             var join = defines.toString();
 
 
             let previousEffect = subMesh.effect;
             let previousEffect = subMesh.effect;
-            let effect = scene.getEngine().createEffect(shaderName, <EffectCreationOptions>{
+            let effect = scene.getEngine().createEffect(shaderName, <IEffectCreationOptions>{
                 attributes: attribs,
                 attributes: attribs,
                 uniformsNames: uniforms,
                 uniformsNames: uniforms,
                 uniformBuffersNames: uniformBuffers,
                 uniformBuffersNames: uniformBuffers,

+ 2 - 2
src/Particles/gpuParticleSystem.ts

@@ -13,7 +13,7 @@ import { ParticleSystem } from "./particleSystem";
 import { Engine } from "../Engines/engine";
 import { Engine } from "../Engines/engine";
 import { BoxParticleEmitter } from "../Particles/EmitterTypes/boxParticleEmitter";
 import { BoxParticleEmitter } from "../Particles/EmitterTypes/boxParticleEmitter";
 import { Scene, IDisposable } from "../scene";
 import { Scene, IDisposable } from "../scene";
-import { Effect, EffectCreationOptions } from "../Materials/effect";
+import { Effect, IEffectCreationOptions } from "../Materials/effect";
 import { Material } from "../Materials/material";
 import { Material } from "../Materials/material";
 import { MaterialHelper } from "../Materials/materialHelper";
 import { MaterialHelper } from "../Materials/materialHelper";
 import { ImageProcessingConfiguration } from "../Materials/imageProcessingConfiguration";
 import { ImageProcessingConfiguration } from "../Materials/imageProcessingConfiguration";
@@ -69,7 +69,7 @@ export class GPUParticleSystem extends BaseParticleSystem implements IDisposable
     private _randomTexture2: RawTexture;
     private _randomTexture2: RawTexture;
 
 
     private _attributesStrideSize: number;
     private _attributesStrideSize: number;
-    private _updateEffectOptions: EffectCreationOptions;
+    private _updateEffectOptions: IEffectCreationOptions;
 
 
     private _randomTextureSize: number;
     private _randomTextureSize: number;
     private _actualFrame = 0;
     private _actualFrame = 0;

文件差异内容过多而无法显示
+ 1188 - 1554
tests/es6Modules/webpack-stats.json