浏览代码

HemisphericEmitter step 2

David Catuhe 7 年之前
父节点
当前提交
9862875886

文件差异内容过多而无法显示
+ 16419 - 16415
Playground/babylon.d.txt


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


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


+ 2 - 2
dist/preview release/babylon.max.js

@@ -57573,12 +57573,12 @@ var BABYLON;
         HemisphericParticleEmitter.prototype.startPositionFunction = function (worldMatrix, positionToUpdate, particle) {
             var randRadius = this.radius - BABYLON.Scalar.RandomRange(0, this.radius * this.radiusRange);
             var v = BABYLON.Scalar.RandomRange(0, 1.0);
-            var phi = BABYLON.Scalar.RandomRange(0, Math.PI);
+            var phi = BABYLON.Scalar.RandomRange(0, 2 * Math.PI);
             var theta = Math.acos(2 * v - 1);
             var randX = randRadius * Math.cos(phi) * Math.sin(theta);
             var randY = randRadius * Math.cos(theta);
             var randZ = randRadius * Math.sin(phi) * Math.sin(theta);
-            BABYLON.Vector3.TransformCoordinatesFromFloatsToRef(randX, randY, randZ, worldMatrix, positionToUpdate);
+            BABYLON.Vector3.TransformCoordinatesFromFloatsToRef(randX, Math.abs(randY), randZ, worldMatrix, positionToUpdate);
         };
         /**
          * Clones the current emitter and returns a copy of it

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

@@ -57540,12 +57540,12 @@ var BABYLON;
         HemisphericParticleEmitter.prototype.startPositionFunction = function (worldMatrix, positionToUpdate, particle) {
             var randRadius = this.radius - BABYLON.Scalar.RandomRange(0, this.radius * this.radiusRange);
             var v = BABYLON.Scalar.RandomRange(0, 1.0);
-            var phi = BABYLON.Scalar.RandomRange(0, Math.PI);
+            var phi = BABYLON.Scalar.RandomRange(0, 2 * Math.PI);
             var theta = Math.acos(2 * v - 1);
             var randX = randRadius * Math.cos(phi) * Math.sin(theta);
             var randY = randRadius * Math.cos(theta);
             var randZ = randRadius * Math.sin(phi) * Math.sin(theta);
-            BABYLON.Vector3.TransformCoordinatesFromFloatsToRef(randX, randY, randZ, worldMatrix, positionToUpdate);
+            BABYLON.Vector3.TransformCoordinatesFromFloatsToRef(randX, Math.abs(randY), randZ, worldMatrix, positionToUpdate);
         };
         /**
          * Clones the current emitter and returns a copy of it

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


+ 2 - 2
dist/preview release/es6.js

@@ -57540,12 +57540,12 @@ var BABYLON;
         HemisphericParticleEmitter.prototype.startPositionFunction = function (worldMatrix, positionToUpdate, particle) {
             var randRadius = this.radius - BABYLON.Scalar.RandomRange(0, this.radius * this.radiusRange);
             var v = BABYLON.Scalar.RandomRange(0, 1.0);
-            var phi = BABYLON.Scalar.RandomRange(0, Math.PI);
+            var phi = BABYLON.Scalar.RandomRange(0, 2 * Math.PI);
             var theta = Math.acos(2 * v - 1);
             var randX = randRadius * Math.cos(phi) * Math.sin(theta);
             var randY = randRadius * Math.cos(theta);
             var randZ = randRadius * Math.sin(phi) * Math.sin(theta);
-            BABYLON.Vector3.TransformCoordinatesFromFloatsToRef(randX, randY, randZ, worldMatrix, positionToUpdate);
+            BABYLON.Vector3.TransformCoordinatesFromFloatsToRef(randX, Math.abs(randY), randZ, worldMatrix, positionToUpdate);
         };
         /**
          * Clones the current emitter and returns a copy of it

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


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


+ 1 - 0
dist/preview release/what's new.md

@@ -18,6 +18,7 @@
   - Added support for `radiusRange` for sphere emitter. [Doc](https://doc.babylonjs.com/babylon101/particles#sphere-emitter)
   - Added support for `radiusRange` and `heightRange` for cone emitter. [Doc](https://doc.babylonjs.com/babylon101/particles#cone-emitter)
   - Added new point emitter. [Doc](https://doc.babylonjs.com/babylon101/particles#point-emitter)
+  - Added new hemispheric emitter. [Doc](https://doc.babylonjs.com/babylon101/particles#hemispheric-emitter)
   - Added support for `ParticleSystem.BLENDMODE_ADD` alpha mode. [Doc](https://doc.babylonjs.com/babylon101/particles#particle-blending)
   - Added support for color gradients. [Doc](https://doc.babylonjs.com/babylon101/particles#particle-colors)
   - Added support for pre-warming. [Doc](https://doc.babylonjs.com/babylon101/particles#pre-warming)

+ 2 - 2
src/Particles/EmitterTypes/babylon.hemisphericParticleEmitter.ts

@@ -53,12 +53,12 @@ module BABYLON {
         public startPositionFunction(worldMatrix: Matrix, positionToUpdate: Vector3, particle: Particle): void {
             var randRadius = this.radius - Scalar.RandomRange(0, this.radius * this.radiusRange);
             var v = Scalar.RandomRange(0, 1.0); 
-            var phi = Scalar.RandomRange(0, Math.PI);
+            var phi = Scalar.RandomRange(0, 2 * Math.PI);
             var theta = Math.acos(2 * v - 1);
             var randX = randRadius * Math.cos(phi) * Math.sin(theta);
             var randY = randRadius * Math.cos(theta);
             var randZ = randRadius * Math.sin(phi) * Math.sin(theta);
-            Vector3.TransformCoordinatesFromFloatsToRef(randX, randY, randZ, worldMatrix, positionToUpdate);
+            Vector3.TransformCoordinatesFromFloatsToRef(randX, Math.abs(randY), randZ, worldMatrix, positionToUpdate);
         }
 
         /**