Jelajahi Sumber

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js

Temechon 8 tahun lalu
induk
melakukan
94e6d39f20

+ 2 - 0
.gitignore

@@ -157,3 +157,5 @@ node_modules
 
 # local dev
 localDev/src/*
+/dist/preview release/babylon.custom.js
+/dist/preview release/babylon.custom.max.js

+ 200 - 0
Tools/Gulp/custom.config.json

@@ -0,0 +1,200 @@
+{
+  "build": {
+    "filename": "babylon.custom.max.js",
+    "minFilename": "babylon.custom.js",
+    "outputDirectory": "../../dist/preview release",
+    "srcOutputDirectory": "../../src/"
+  },
+  "core": {
+    "typescript": [
+      "../../src/**/*.ts",
+      "!../../src/**/*.d.ts"
+    ],
+    "files": [
+      "../../src/Math/babylon.math.js",
+      "../../src/babylon.mixins.js",
+      "../../src/Tools/babylon.decorators.js",
+      "../../src/Tools/babylon.observable.js",
+      "../../src/Tools/babylon.database.js",
+      "../../src/Tools/babylon.tools.tga.js",
+      "../../src/Tools/babylon.smartArray.js",
+      "../../src/Tools/babylon.stringDictionary.js",
+      "../../src/Tools/babylon.tools.js",
+      "../../src/States/babylon.alphaCullingState.js",
+      "../../src/States/babylon.depthCullingState.js",
+      "../../src/States/babylon.stencilState.js",
+      "../../src/babylon.engine.js",
+      "../../src/babylon.node.js",
+      "../../src/Tools/babylon.filesInput.js",
+      "../../src/Collisions/babylon.pickingInfo.js",
+      "../../src/Culling/babylon.boundingSphere.js",
+      "../../src/Culling/babylon.boundingBox.js",
+      "../../src/Culling/babylon.boundingInfo.js",
+      "../../src/Culling/babylon.ray.js",
+      "../../src/Mesh/babylon.abstractMesh.js",
+      "../../src/Lights/babylon.light.js",
+      "../../src/Lights/babylon.pointLight.js",
+      "../../src/Lights/babylon.spotLight.js",
+      "../../src/Lights/babylon.hemisphericLight.js",
+      "../../src/Lights/babylon.directionalLight.js",
+      "../../src/Lights/Shadows/babylon.shadowGenerator.js",
+      "../../src/Collisions/babylon.collider.js",
+      "../../src/Collisions/babylon.collisionCoordinator.js",
+      "../../src/Cameras/babylon.camera.js",
+      "../../src/Cameras/babylon.cameraInputsManager.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.mouse.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.keyboard.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.touch.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.deviceorientation.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.gamepad.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.keyboard.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.mousewheel.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.pointers.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.gamepad.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.vrdeviceorientation.js",
+      "../../src/Cameras/babylon.targetCamera.js",
+      "../../src/Cameras/babylon.freeCamera.js",
+      "../../src/Cameras/babylon.freeCameraInputsManager.js",
+      "../../src/Cameras/babylon.followCamera.js",
+      "../../src/Cameras/babylon.touchCamera.js",
+      "../../src/Cameras/babylon.arcRotateCamera.js",
+      "../../src/Cameras/babylon.arcRotateCameraInputsManager.js",
+      "../../src/Rendering/babylon.renderingManager.js",
+      "../../src/Rendering/babylon.renderingGroup.js",
+      "../../src/babylon.scene.js",
+      "../../src/Mesh/babylon.buffer.js",
+      "../../src/Mesh/babylon.vertexBuffer.js",
+      "../../src/Mesh/babylon.instancedMesh.js",
+      "../../src/Mesh/babylon.mesh.js",
+      "../../src/Mesh/babylon.subMesh.js",
+      "../../src/Mesh/babylon.meshBuilder.js",
+      "../../src/Materials/Textures/babylon.baseTexture.js",
+      "../../src/Materials/Textures/babylon.texture.js",
+      "../../src/Materials/Textures/babylon.cubeTexture.js",
+      "../../src/Materials/Textures/babylon.renderTargetTexture.js",
+      "../../src/Materials/Textures/Procedurals/babylon.proceduralTexture.js",
+      "../../src/Materials/Textures/babylon.mirrorTexture.js",
+      "../../src/Materials/Textures/babylon.refractionTexture.js",
+      "../../src/Materials/Textures/babylon.dynamicTexture.js",
+      "../../src/Materials/Textures/babylon.videoTexture.js",
+      "../../src/Materials/Textures/Procedurals/babylon.customProceduralTexture.js",
+      "../../src/Materials/babylon.effect.js",
+      "../../src/Materials/babylon.materialHelper.js",
+      "../../src/Materials/babylon.fresnelParameters.js",
+      "../../src/Materials/babylon.material.js",
+      "../../src/Materials/babylon.standardMaterial.js",
+      "../../src/Materials/babylon.multiMaterial.js",
+      "../../src/Loading/babylon.sceneLoader.js",
+      "../../src/Loading/Plugins/babylon.babylonFileLoader.js",
+      "../../src/Sprites/babylon.spriteManager.js",
+      "../../src/Sprites/babylon.sprite.js",
+      "../../src/Layer/babylon.layer.js",
+      "../../src/Particles/babylon.particle.js",
+      "../../src/Particles/babylon.particleSystem.js",
+      "../../src/Animations/babylon.animation.js",
+      "../../src/Animations/babylon.animatable.js",
+      "../../src/Animations/babylon.easing.js",
+      "../../src/Bones/babylon.bone.js",
+      "../../src/Bones/babylon.boneIKController.js",
+      "../../src/Bones/babylon.boneLookController.js",
+      "../../src/Bones/babylon.skeleton.js",
+      "../../src/PostProcess/babylon.postProcess.js",
+      "../../src/PostProcess/babylon.postProcessManager.js",
+      "../../src/PostProcess/babylon.passPostProcess.js",
+      "../../src/Physics/babylon.physicsJoint.js",
+      "../../src/Physics/babylon.physicsImpostor.js",
+      "../../src/Physics/babylon.physicsEngine.js",
+      "../../src/Mesh/babylon.mesh.vertexData.js",
+      "../../src/Tools/babylon.tags.js",
+      "../../src/Tools/babylon.andOrNotEvaluator.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPass.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderEffect.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipeline.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipelineManager.js",
+      "../../src/Rendering/babylon.boundingBoxRenderer.js",
+      "../../src/Actions/babylon.condition.js",
+      "../../src/Actions/babylon.action.js",
+      "../../src/Actions/babylon.actionManager.js",
+      "../../src/Actions/babylon.interpolateValueAction.js",
+      "../../src/Actions/babylon.directActions.js",
+      "../../src/Mesh/babylon.geometry.js",
+      "../../src/Mesh/babylon.groundMesh.js",
+      "../../src/Mesh/babylon.instancedMesh.js",
+      "../../src/Mesh/babylon.linesMesh.js",
+      "../../src/Tools/babylon.loadingScreen.js",
+      "../../src/Audio/babylon.audioEngine.js",
+      "../../src/Audio/babylon.sound.js",
+      "../../src/Audio/babylon.soundtrack.js",
+      "../../src/Layer/babylon.highlightlayer.js",
+      "../../src/Math/babylon.math.SIMD.js",
+      "../../src/Tools/babylon.rectPackingMap.js",
+      "../../src/Tools/babylon.dynamicFloatArray.js",
+      "../../src/Materials/Textures/babylon.fontTexture.js",
+      "../../src/Materials/Textures/babylon.mapTexture.js",
+      "../../src/Materials/babylon.shaderMaterial.js",
+      "../../src/Tools/babylon.tools.dds.js",
+      "../../src/Physics/Plugins/babylon.cannonJSPlugin.js",
+      "../../src/Physics/Plugins/babylon.oimoJSPlugin.js",
+      "../../src/PostProcess/babylon.displayPassPostProcess.js",
+      "../../src/Mesh/babylon.meshSimplification.js",
+      "../../src/Tools/babylon.sceneSerializer.js",
+      "../../src/Tools/babylon.earcut.js",
+      "../../src/Mesh/babylon.csg.js",
+      "../../src/PostProcess/babylon.vrDistortionCorrectionPostProcess.js",
+      "../../src/Tools/babylon.virtualJoystick.js",
+      "../../src/Cameras/babylon.virtualJoysticksCamera.js",      
+      "../../src/Cameras/Inputs/babylon.freecamera.input.virtualjoystick.js",
+      "../../src/PostProcess/babylon.anaglyphPostProcess.js",
+      "../../src/Rendering/babylon.outlineRenderer.js",
+      "../../src/Tools/babylon.assetsManager.js",
+      "../../src/Cameras/VR/babylon.vrCameraMetrics.js",
+      "../../src/Cameras/VR/babylon.webVRCamera.js",
+      "../../src/Tools/babylon.sceneOptimizer.js",
+      "../../src/Mesh/babylon.meshLODLevel.js",
+      "../../src/Materials/Textures/babylon.rawTexture.js",
+      "../../src/Mesh/babylon.polygonMesh.js",
+      "../../src/Culling/Octrees/babylon.octree.js",
+      "../../src/Culling/Octrees/babylon.octreeBlock.js",
+      "../../src/PostProcess/babylon.blurPostProcess.js",
+      "../../src/PostProcess/babylon.refractionPostProcess.js",
+      "../../src/PostProcess/babylon.blackAndWhitePostProcess.js",
+      "../../src/PostProcess/babylon.convolutionPostProcess.js",
+      "../../src/PostProcess/babylon.filterPostProcess.js",
+      "../../src/PostProcess/babylon.fxaaPostProcess.js",
+      "../../src/PostProcess/babylon.stereoscopicInterlacePostProcess.js",
+      "../../src/LensFlare/babylon.lensFlare.js",
+      "../../src/LensFlare/babylon.lensFlareSystem.js",
+      "../../src/Cameras/babylon.deviceOrientationCamera.js",
+      "../../src/Cameras/VR/babylon.vrDeviceOrientationCamera.js",
+      "../../src/Cameras/babylon.universalCamera.js",
+      "../../src/Tools/babylon.gamepads.js",
+      "../../src/Cameras/babylon.gamepadCamera.js",
+      "../../src/Audio/babylon.analyser.js",
+      "../../src/Rendering/babylon.depthRenderer.js",
+      "../../src/PostProcess/babylon.ssaoRenderingPipeline.js",
+      "../../src/PostProcess/babylon.volumetricLightScatteringPostProcess.js",
+      "../../src/PostProcess/babylon.lensRenderingPipeline.js",
+      "../../src/PostProcess/babylon.colorCorrectionPostProcess.js",
+      "../../src/Cameras/babylon.stereoscopicCameras.js",
+      "../../src/PostProcess/babylon.hdrRenderingPipeline.js",
+      "../../src/Rendering/babylon.edgesRenderer.js",
+      "../../src/PostProcess/babylon.tonemapPostProcess.js",
+      "../../src/Probes/babylon.reflectionProbe.js",
+      "../../src/Particles/babylon.solidParticle.js",
+      "../../src/Particles/babylon.solidParticleSystem.js",
+      "../../src/Tools/HDR/babylon.tools.cubemapToSphericalPolynomial.js",
+      "../../src/Tools/HDR/babylon.tools.panoramaToCubemap.js",
+      "../../src/Tools/HDR/babylon.tools.hdr.js",
+      "../../src/Tools/HDR/babylon.tools.pmremgenerator.js",
+      "../../src/Materials/Textures/babylon.hdrCubeTexture.js",
+      "../../src/Debug/babylon.skeletonViewer.js",
+      "../../src/Debug/babylon.axesViewer.js",
+      "../../src/Debug/babylon.boneAxesViewer.js",
+      "../../src/Materials/Textures/babylon.colorGradingTexture.js",
+      "../../src/Materials/babylon.colorCurves.js",
+      "../../src/Materials/babylon.pbrMaterial.js",      
+      "../../src/Debug/babylon.debugLayer.js",
+      "../../src/PostProcess/babylon.standardRenderingPipeline.js"
+    ]
+  }
+}

+ 21 - 0
Tools/Gulp/gulpfile.js

@@ -20,6 +20,7 @@ var webserver = require('gulp-webserver');
 var path = require('path');
 
 var config = require("./config.json");
+var customConfig = require("./custom.config.json");
 
 var debug = require('gulp-debug');
 var includeShadersStream;
@@ -165,6 +166,26 @@ gulp.task("build", ["workers", "shaders"], function () {
         .pipe(gulp.dest(config.build.outputDirectory));
 });
 
+gulp.task("build-custom", ["shaders"], function () {
+    return merge2(
+        gulp.src(customConfig.core.files).        
+            pipe(expect.real({ errorOnFailure: true }, customConfig.core.files)),  
+        shadersStream,
+        includeShadersStream
+        )
+        .pipe(concat(customConfig.build.filename))
+        .pipe(cleants())
+        .pipe(replace(extendsSearchRegex, ""))
+        .pipe(replace(decorateSearchRegex, ""))
+        .pipe(addModuleExports("BABYLON"))
+        .pipe(gulp.dest(customConfig.build.outputDirectory))
+        .pipe(rename(customConfig.build.minFilename))
+        .pipe(uglify())
+        .pipe(optimisejs())
+        .pipe(gulp.dest(customConfig.build.outputDirectory));
+});
+
+
 /*
 * Compiles all typescript files and creating a js and a declaration file.
 */

+ 3 - 2
dist/preview release/what's new.md

@@ -6,8 +6,9 @@
 - Babylon.js now supports right handed system with ```scene.useRightHandedSystem = true``` ([deltakosh](https://github.com/deltakosh))
 - Babylon.js is now compiled with [optimize-js](https://github.com/nolanlawson/optimize-js) to get faster initial load ([deltakosh](https://github.com/deltakosh))
 - Canvas2D moved to a separate folder in main repo. Now you need to also include babylon.cavans2d.js to get Canvas@D feature ([deltakosh](https://github.com/deltakosh))
-- New BoneIKController [Demo](http://www.babylonjs-playground.com/#1EVNNB#15) - ([abow](https://github.com/abow))
-- New BoneLookController [Demo](http://www.babylonjs-playground.com/#1B1PUZ#15) - ([abow](https://github.com/abow))
+- New BoneIKController [Demo](http://www.babylonjs-playground.com/#1EVNNB#15) ([abow](https://github.com/abow))
+- New BoneLookController [Demo](http://www.babylonjs-playground.com/#1B1PUZ#15) ([abow](https://github.com/abow))
+- You can now build your own version of babylon.js with `gulp build-custom` [Doc](http://doc.babylonjs.com/generals/how_to_start) ([deltakosh](https://github.com/deltakosh))
 
 ### Updates
 - Added `node.doNotSerialize` to prevent specific nodes to be serialized by `SceneSerializer` ([deltakosh](https://github.com/deltakosh))

+ 3 - 2
src/Cameras/babylon.arcRotateCamera.ts

@@ -288,14 +288,15 @@
             this.inputs.checkInputs();
             // Inertia
             if (this.inertialAlphaOffset !== 0 || this.inertialBetaOffset !== 0 || this.inertialRadiusOffset !== 0) {
-                this.beta += this.inertialBetaOffset;                    
-
+                
                 if (this.getScene().useRightHandedSystem) {
                     this.alpha -= this.beta <= 0 ? -this.inertialAlphaOffset : this.inertialAlphaOffset;
                 } else {
                     this.alpha += this.beta <= 0 ? -this.inertialAlphaOffset : this.inertialAlphaOffset;
                 }
 
+                this.beta += this.inertialBetaOffset;
+
                 this.radius -= this.inertialRadiusOffset;
                 this.inertialAlphaOffset *= this.inertia;
                 this.inertialBetaOffset *= this.inertia;

+ 13 - 0
src/Mesh/babylon.mesh.ts

@@ -1812,6 +1812,19 @@
                 mesh._waitingActions = parsedMesh.actions;
             }
 
+            // Overlay
+            if (parsedMesh.overlayAlpha !== undefined) {
+                mesh.overlayAlpha = parsedMesh.overlayAlpha;
+            }
+
+            if (parsedMesh.overlayColor !== undefined) {
+                mesh.overlayColor = Color3.FromArray(parsedMesh.overlayColor);
+            }
+
+            if (parsedMesh.renderOverlay !== undefined) {
+                mesh.renderOverlay = parsedMesh.renderOverlay;
+            }
+
             // Geometry
             mesh.hasVertexAlpha = parsedMesh.hasVertexAlpha;
 

+ 4 - 0
src/Tools/babylon.sceneSerializer.ts

@@ -162,7 +162,11 @@
         // Alpha
         serializationObject.alphaIndex = mesh.alphaIndex;
         serializationObject.hasVertexAlpha = mesh.hasVertexAlpha;
+        
+        // Overlay
         serializationObject.overlayAlpha = mesh.overlayAlpha;
+        serializationObject.overlayColor = mesh.overlayColor.asArray();
+        serializationObject.renderOverlay = mesh.renderOverlay;
 
         // Fog
         serializationObject.applyFog = mesh.applyFog;