David Catuhe пре 7 година
родитељ
комит
b810909c71

Разлика између датотеке није приказан због своје велике величине
+ 1537 - 1537
dist/preview release/babylon.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/babylon.js


+ 12 - 14
dist/preview release/babylon.max.js

@@ -56541,6 +56541,18 @@ var BABYLON;
                                 }
                             });
                         }
+                        /// Drag
+                        if (_this._dragGradients && _this._dragGradients.length > 0) {
+                            BABYLON.Tools.GetCurrentGradient(ratio, _this._dragGradients, function (currentGradient, nextGradient, scale) {
+                                if (currentGradient !== particle._currentDragGradient) {
+                                    particle._currentDrag1 = particle._currentDrag2;
+                                    particle._currentDrag2 = nextGradient.getFactor();
+                                    particle._currentDragGradient = currentGradient;
+                                }
+                                var drag = BABYLON.Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
+                                _this._scaledDirection.scaleInPlace(drag);
+                            });
+                        }
                         particle.position.addInPlace(_this._scaledDirection);
                         // Noise
                         if (noiseTextureData && noiseTextureSize) {
@@ -56560,20 +56572,6 @@ var BABYLON;
                         // Gravity
                         _this.gravity.scaleToRef(_this._scaledUpdateSpeed, _this._scaledGravity);
                         particle.direction.addInPlace(_this._scaledGravity);
-                        /// Drag
-                        if (_this._dragGradients && _this._dragGradients.length > 0) {
-                            BABYLON.Tools.GetCurrentGradient(ratio, _this._dragGradients, function (currentGradient, nextGradient, scale) {
-                                if (currentGradient !== particle._currentDragGradient) {
-                                    particle._currentDrag1 = particle._currentDrag2;
-                                    particle._currentDrag2 = nextGradient.getFactor();
-                                    particle._currentDragGradient = currentGradient;
-                                }
-                                var drag = BABYLON.Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
-                                var dragValue = BABYLON.Tmp.Vector3[0];
-                                particle.direction.scaleToRef(1.0 - drag, dragValue);
-                                particle.direction.subtractInPlace(dragValue);
-                            });
-                        }
                         // Size
                         if (_this._sizeGradients && _this._sizeGradients.length > 0) {
                             BABYLON.Tools.GetCurrentGradient(ratio, _this._sizeGradients, function (currentGradient, nextGradient, scale) {

+ 12 - 14
dist/preview release/babylon.no-module.max.js

@@ -56508,6 +56508,18 @@ var BABYLON;
                                 }
                             });
                         }
+                        /// Drag
+                        if (_this._dragGradients && _this._dragGradients.length > 0) {
+                            BABYLON.Tools.GetCurrentGradient(ratio, _this._dragGradients, function (currentGradient, nextGradient, scale) {
+                                if (currentGradient !== particle._currentDragGradient) {
+                                    particle._currentDrag1 = particle._currentDrag2;
+                                    particle._currentDrag2 = nextGradient.getFactor();
+                                    particle._currentDragGradient = currentGradient;
+                                }
+                                var drag = BABYLON.Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
+                                _this._scaledDirection.scaleInPlace(drag);
+                            });
+                        }
                         particle.position.addInPlace(_this._scaledDirection);
                         // Noise
                         if (noiseTextureData && noiseTextureSize) {
@@ -56527,20 +56539,6 @@ var BABYLON;
                         // Gravity
                         _this.gravity.scaleToRef(_this._scaledUpdateSpeed, _this._scaledGravity);
                         particle.direction.addInPlace(_this._scaledGravity);
-                        /// Drag
-                        if (_this._dragGradients && _this._dragGradients.length > 0) {
-                            BABYLON.Tools.GetCurrentGradient(ratio, _this._dragGradients, function (currentGradient, nextGradient, scale) {
-                                if (currentGradient !== particle._currentDragGradient) {
-                                    particle._currentDrag1 = particle._currentDrag2;
-                                    particle._currentDrag2 = nextGradient.getFactor();
-                                    particle._currentDragGradient = currentGradient;
-                                }
-                                var drag = BABYLON.Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
-                                var dragValue = BABYLON.Tmp.Vector3[0];
-                                particle.direction.scaleToRef(1.0 - drag, dragValue);
-                                particle.direction.subtractInPlace(dragValue);
-                            });
-                        }
                         // Size
                         if (_this._sizeGradients && _this._sizeGradients.length > 0) {
                             BABYLON.Tools.GetCurrentGradient(ratio, _this._sizeGradients, function (currentGradient, nextGradient, scale) {

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/babylon.worker.js


+ 12 - 14
dist/preview release/es6.js

@@ -56508,6 +56508,18 @@ var BABYLON;
                                 }
                             });
                         }
+                        /// Drag
+                        if (_this._dragGradients && _this._dragGradients.length > 0) {
+                            BABYLON.Tools.GetCurrentGradient(ratio, _this._dragGradients, function (currentGradient, nextGradient, scale) {
+                                if (currentGradient !== particle._currentDragGradient) {
+                                    particle._currentDrag1 = particle._currentDrag2;
+                                    particle._currentDrag2 = nextGradient.getFactor();
+                                    particle._currentDragGradient = currentGradient;
+                                }
+                                var drag = BABYLON.Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
+                                _this._scaledDirection.scaleInPlace(drag);
+                            });
+                        }
                         particle.position.addInPlace(_this._scaledDirection);
                         // Noise
                         if (noiseTextureData && noiseTextureSize) {
@@ -56527,20 +56539,6 @@ var BABYLON;
                         // Gravity
                         _this.gravity.scaleToRef(_this._scaledUpdateSpeed, _this._scaledGravity);
                         particle.direction.addInPlace(_this._scaledGravity);
-                        /// Drag
-                        if (_this._dragGradients && _this._dragGradients.length > 0) {
-                            BABYLON.Tools.GetCurrentGradient(ratio, _this._dragGradients, function (currentGradient, nextGradient, scale) {
-                                if (currentGradient !== particle._currentDragGradient) {
-                                    particle._currentDrag1 = particle._currentDrag2;
-                                    particle._currentDrag2 = nextGradient.getFactor();
-                                    particle._currentDragGradient = currentGradient;
-                                }
-                                var drag = BABYLON.Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
-                                var dragValue = BABYLON.Tmp.Vector3[0];
-                                particle.direction.scaleToRef(1.0 - drag, dragValue);
-                                particle.direction.subtractInPlace(dragValue);
-                            });
-                        }
                         // Size
                         if (_this._sizeGradients && _this._sizeGradients.length > 0) {
                             BABYLON.Tools.GetCurrentGradient(ratio, _this._sizeGradients, function (currentGradient, nextGradient, scale) {

+ 15 - 1
dist/preview release/viewer/babylon.viewer.d.ts

@@ -924,7 +924,7 @@ declare module BabylonViewer {
       * @param name the name of the custom optimizer configuration
       * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
       */
-    export function getCustomOptimizerByName(name: string, upgrade?: boolean): (sceneManager: SceneManager) => boolean;
+    export function getCustomOptimizerByName(name: string, upgrade?: boolean): typeof extendedUpgrade;
     export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
 }
 declare module BabylonViewer {
@@ -1558,6 +1558,20 @@ declare module BabylonViewer {
     export function addLoaderPlugin(name: string, plugin: ILoaderPlugin): void;
 }
 declare module BabylonViewer {
+    /**
+        * A custom upgrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedUpgrade(sceneManager: SceneManager): boolean;
+    /**
+        * A custom degrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedDegrade(sceneManager: SceneManager): boolean;
+}
+declare module BabylonViewer {
 }
 declare module BabylonViewer {
     export interface IEnvironmentMapConfiguration {

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/viewer/babylon.viewer.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 18 - 1
dist/preview release/viewer/babylon.viewer.module.d.ts

@@ -985,13 +985,14 @@ declare module 'babylonjs-viewer/templating/viewerTemplatePlugin' {
 }
 
 declare module 'babylonjs-viewer/optimizer/custom' {
+    import { extendedUpgrade } from "babylonjs-viewer/optimizer/custom/extended";
     import { SceneManager } from "babylonjs-viewer/managers/sceneManager";
     /**
       *
       * @param name the name of the custom optimizer configuration
       * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
       */
-    export function getCustomOptimizerByName(name: string, upgrade?: boolean): (sceneManager: SceneManager) => boolean;
+    export function getCustomOptimizerByName(name: string, upgrade?: boolean): typeof extendedUpgrade;
     export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
 }
 
@@ -1662,6 +1663,22 @@ declare module 'babylonjs-viewer/loader/plugins' {
     export function addLoaderPlugin(name: string, plugin: ILoaderPlugin): void;
 }
 
+declare module 'babylonjs-viewer/optimizer/custom/extended' {
+    import { SceneManager } from 'babylonjs-viewer/managers/sceneManager';
+    /**
+        * A custom upgrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedUpgrade(sceneManager: SceneManager): boolean;
+    /**
+        * A custom degrade-oriented function configuration for the scene optimizer.
+        *
+        * @param viewer the viewer to optimize
+        */
+    export function extendedDegrade(sceneManager: SceneManager): boolean;
+}
+
 declare module 'babylonjs-viewer/configuration/interfaces' {
     export * from 'babylonjs-viewer/configuration/interfaces/cameraConfiguration';
     export * from 'babylonjs-viewer/configuration/interfaces/colorGradingConfiguration';

+ 16 - 18
src/Particles/babylon.particleSystem.ts

@@ -235,6 +235,21 @@
                             });
                         }   
 
+                        /// Drag
+                        if (this._dragGradients && this._dragGradients.length > 0) {                  
+                            Tools.GetCurrentGradient(ratio, this._dragGradients, (currentGradient, nextGradient, scale) => {
+                                if (currentGradient !== particle._currentDragGradient) {
+                                    particle._currentDrag1 = particle._currentDrag2;
+                                    particle._currentDrag2 = (<FactorGradient>nextGradient).getFactor();    
+                                    particle._currentDragGradient = (<FactorGradient>currentGradient);
+                                }                                
+                                
+                                let drag = Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
+
+                                this._scaledDirection.scaleInPlace(drag);
+                            });
+                        }                           
+
                         particle.position.addInPlace(this._scaledDirection);
 
                         // Noise
@@ -260,24 +275,7 @@
 
                         // Gravity
                         this.gravity.scaleToRef(this._scaledUpdateSpeed, this._scaledGravity);
-                        particle.direction.addInPlace(this._scaledGravity);
-
-                        /// Drag
-                        if (this._dragGradients && this._dragGradients.length > 0) {                  
-                            Tools.GetCurrentGradient(ratio, this._dragGradients, (currentGradient, nextGradient, scale) => {
-                                if (currentGradient !== particle._currentDragGradient) {
-                                    particle._currentDrag1 = particle._currentDrag2;
-                                    particle._currentDrag2 = (<FactorGradient>nextGradient).getFactor();    
-                                    particle._currentDragGradient = (<FactorGradient>currentGradient);
-                                }                                
-                                
-                                let drag = Scalar.Lerp(particle._currentDrag1, particle._currentDrag2, scale);
-
-                                let dragValue = Tmp.Vector3[0];
-                                particle.direction.scaleToRef(1.0 - drag, dragValue);
-                                particle.direction.subtractInPlace(dragValue);
-                            });
-                        }                          
+                        particle.direction.addInPlace(this._scaledGravity);                       
 
                         // Size
                         if (this._sizeGradients && this._sizeGradients.length > 0) {