Ver código fonte

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

Temechon 8 anos atrás
pai
commit
31571f92f2
100 arquivos alterados com 1484 adições e 386 exclusões
  1. 27 1
      .gitignore
  2. 36 7
      .vscode/launch.json
  3. 40 0
      .vscode/settings.json
  4. 29 0
      .vscode/tasks.json
  5. 571 0
      Babylon.csproj
  6. 34 0
      Babylon.sln
  7. 0 0
      Exporters/3ds Max/ActionsBuilder/README.md
  8. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.actionNode.js
  9. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.contextMenu.js
  10. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.js
  11. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.list.js
  12. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.main.js
  13. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.max.js
  14. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.parameters.js
  15. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.toolbar.js
  16. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.utils.js
  17. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.viewer.js
  18. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/babylon.max.js
  19. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts.css
  20. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.eot
  21. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.otf
  22. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.svg
  23. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.ttf
  24. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.woff
  25. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.eot
  26. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.otf
  27. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.svg
  28. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.ttf
  29. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.woff
  30. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.eot
  31. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.otf
  32. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.svg
  33. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.ttf
  34. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.woff
  35. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.eot
  36. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.otf
  37. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.svg
  38. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.ttf
  39. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.woff
  40. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans_NOTICE.txt
  41. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/index-debug.html
  42. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/index.css
  43. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/index.html
  44. 0 0
      Exporters/3ds Max/ActionsBuilder/Sources/raphael.js
  45. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.actionNode.ts
  46. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.contextMenu.ts
  47. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.list.ts
  48. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.main.ts
  49. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.parameters.ts
  50. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.toolbar.ts
  51. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.ts
  52. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.utils.ts
  53. 0 0
      Exporters/3ds Max/ActionsBuilder/actionsbuilder.viewer.ts
  54. 0 0
      Exporters/3ds Max/ActionsBuilder/gulpfile.js
  55. 0 0
      Exporters/3ds Max/ActionsBuilder/package.json
  56. 0 0
      Exporters/3ds Max/ActionsBuilder/raphaeljs.d.ts
  57. BIN
      Exporters/Blender/Blender2Babylon-5.0.zip
  58. BIN
      Exporters/Blender/Blender2Babylon-5.1.zip
  59. 1 1
      Exporters/Blender/readme.md
  60. 1 1
      Exporters/Blender/src/__init__.py
  61. 7 23
      Exporters/Blender/src/exporter_settings_panel.py
  62. 4 5
      Exporters/Blender/src/json_exporter.py
  63. 5 28
      Exporters/Blender/src/material.py
  64. 5 0
      Playground/debug.html
  65. 5 0
      Playground/frame.html
  66. 6 201
      Playground/index-local.html
  67. 4 0
      Playground/index.html
  68. 1 1
      Playground/package.json
  69. 36 27
      Playground/scripts/pbr.js
  70. 184 0
      Tools/DevLoader/BabylonLoader.js
  71. 0 17
      Tools/Gulp/.gitignore
  72. 233 0
      Tools/Gulp/config.json
  73. 5 4
      postProcessLibrary/gulp-srcToVariable.js
  74. 186 61
      Tools/Gulp/gulpfile.js
  75. 8 3
      Tools/Gulp/package.json
  76. 24 6
      Tools/Gulp/readme.md
  77. 32 0
      Web.config
  78. 0 0
      assets/meshes/Rabbit.babylon
  79. 0 0
      assets/refs/dat.gui.min.js
  80. 0 0
      assets/textures/ColorGrading.3DL
  81. 0 0
      assets/textures/amiga.jpg
  82. 0 0
      assets/textures/fire/diffuse.png
  83. 0 0
      assets/textures/fire/distortion.png
  84. 0 0
      assets/textures/fire/opacity.png
  85. 0 0
      assets/textures/floor.png
  86. 0 0
      assets/textures/floor_bump.PNG
  87. 0 0
      assets/textures/grass.png
  88. 0 0
      assets/textures/grassn.png
  89. 0 0
      assets/textures/hdr/environment.hdr
  90. 0 0
      assets/textures/heightMap.png
  91. 0 0
      assets/textures/lava/cloud.png
  92. 0 0
      assets/textures/lava/lavatile.jpg
  93. 0 0
      assets/textures/leopard_fur.JPG
  94. 0 0
      assets/textures/mixMap.png
  95. 0 0
      assets/textures/rock.png
  96. 0 0
      assets/textures/rockn.png
  97. 0 0
      assets/textures/skybox/TropicalSunnyDay_nx.jpg
  98. 0 0
      assets/textures/skybox/TropicalSunnyDay_ny.jpg
  99. 0 0
      assets/textures/skybox/TropicalSunnyDay_nz.jpg
  100. 0 0
      proceduralTexturesLibrary/test/textures/skybox/TropicalSunnyDay_px.jpg

+ 27 - 1
.gitignore

@@ -16,6 +16,11 @@ TestResults
 
 # javascript files
 src/**/*.js
+src/**/*.d.ts
+loaders/src/**/*.js
+materialsLibrary/src/**/*.js
+proceduralTexturesLibrary/src/**/*.js
+postProcessLibrary/src/**/*.js
 
 # Build results
 [Dd]ebug/
@@ -107,6 +112,19 @@ ClientBin
 *.dbmdl
 Generated_Code #added for RIA/Silverlight projects
 
+# OS or Editor folders
+*.DS_Store
+._*
+Thumbs.db
+.cache
+.tmproj
+nbproject
+*.sublime-project
+*.sublime-workspace
+.directory
+build
+.history
+
 # Backup & report files from converting an old project file to a newer
 # Visual Studio version. Backup files are not needed, because we have git ;-)
 _UpgradeReport_Files/
@@ -124,10 +142,18 @@ UpgradeLog*.XML
 
 # Do not ignore loaders/obj
 !loaders/*
+**/node_modules
 node_modules
 
 # for JetBrains IDE
 .idea
 
 # for VSCode
-.vscode
+.vs
+.tempChromeProfileForDebug
+.temp
+*.js.map
+*.js.fx
+
+# local dev
+localDev/src/*

+ 36 - 7
.vscode/launch.json

@@ -2,20 +2,49 @@
     "version": "0.1.0",
     "configurations": [
         {
-            "name": "Launch playground (Edge)",
-            "type": "edge",
+            "name": "Launch playground (Chrome)",
+            "type": "chrome",
             "request": "launch",
-            "url": "http://localhost/playground/index-local.html",
+            "url": "http://localhost:1338/Playground/index-local.html",
             "webRoot": "${workspaceRoot}/",
-            "sourceMaps": true
+            "sourceMaps": true,
+            "userDataDir": "${workspaceRoot}/.tempChromeProfileForDebug"
         },
         {
-            "name": "Launch playground (Chrome)",
+            "name": "Launch Materials Library (Chrome)",
+            "type": "chrome",
+            "request": "launch",
+            "url": "http://localhost:1338/materialsLibrary/index.html",
+            "webRoot": "${workspaceRoot}/",
+            "sourceMaps": true,
+            "userDataDir": "${workspaceRoot}/.tempChromeProfileForDebug"
+        },
+        {
+            "name": "Launch Post Processes Library (Chrome)",
+            "type": "chrome",
+            "request": "launch",
+            "url": "http://localhost:1338/postProcessLibrary/index.html",
+            "webRoot": "${workspaceRoot}/",
+            "sourceMaps": true,
+            "userDataDir": "${workspaceRoot}/.tempChromeProfileForDebug"
+        },
+        {
+            "name": "Launch Procedural Textures Library (Chrome)",
+            "type": "chrome",
+            "request": "launch",
+            "url": "http://localhost:1338/proceduralTexturesLibrary/index.html",
+            "webRoot": "${workspaceRoot}/",
+            "sourceMaps": true,
+            "userDataDir": "${workspaceRoot}/.tempChromeProfileForDebug"
+        },
+        {
+            "name": "Launch Local Dev (Chrome)",
             "type": "chrome",
             "request": "launch",
-            "url": "http://localhost/playground/index-local.html",
+            "url": "http://localhost:1338/localDev/index.html",
             "webRoot": "${workspaceRoot}/",
-            "sourceMaps": true
+            "sourceMaps": true,
+            "userDataDir": "${workspaceRoot}/.tempChromeProfileForDebug"
         }
     ]
 }

+ 40 - 0
.vscode/settings.json

@@ -0,0 +1,40 @@
+// Place your settings in this file to overwrite default and user settings.
+{
+    // Configure glob patterns for excluding files and folders.
+    "files.exclude": {
+        "**/.git": true,
+        "**/.svn": true,
+        "**/.hg": true,
+        "**/.DS_Store": true,
+        "**/.vs": true,        
+        "**/.tempChromeProfileForDebug": true,
+        "**/node_modules": true,
+        "**/temp": true,
+        "**/.temp": true,
+        "**/*.js.map": true,
+        "**/*.js.fx": true,
+        "**/*.js": { 
+            "when":"$(basename).ts"
+        },
+        "**/*.d.ts": { 
+            "when":"$(basename).ts"
+        }
+    },
+    "files.associations": {
+        "*.fx": "glsl"
+    },
+    "search.exclude": {
+        "**/node_modules": true,
+        "**/bower_components": true,
+        "**/.vs": true,
+        "**/.tempChromeProfileForDebug": true,
+        "**/.temp": true,
+        "**/dist": true,
+        "**/*.map": true,
+        "**/*.js": { 
+             "when":"$(basename).ts"
+         },
+        "**/*.d.ts": true
+    },
+    "typescript.check.workspaceVersion": false
+}

+ 29 - 0
.vscode/tasks.json

@@ -0,0 +1,29 @@
+{
+    // See https://go.microsoft.com/fwlink/?LinkId=733558
+    // for the documentation about the tasks.json format
+    "version": "0.1.0",
+    "command": "gulp",
+    "isShellCommand": true,
+    "args": [],
+    "showOutput": "always",
+    "options": {
+        "cwd": "${workspaceRoot}/Tools/Gulp"
+    },
+    "tasks": [
+        { 
+            "taskName": "run",
+            // Hijack Test Command for easy shortcut
+            "isTestCommand": true,
+            "problemMatcher": [
+                "$tsc"
+            ]
+        },
+        { 
+            "taskName": "typescript-all",
+            "isBuildCommand": true,
+            "problemMatcher": [
+                "$tsc"
+            ]
+        }
+    ]
+}

+ 571 - 0
Babylon.csproj

@@ -0,0 +1,571 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>BabylonExport</RootNamespace>
+    <AssemblyName>Babylon</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <UseIISExpress>true</UseIISExpress>
+    <IISExpressSSLPort />
+    <IISExpressAnonymousAuthentication />
+    <IISExpressWindowsAuthentication />
+    <IISExpressUseClassicPipelineMode />
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion>
+    <UseGlobalApplicationHostFile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.EnterpriseServices" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Playground\babylon.d.txt" />
+    <Content Include="Playground\debug.html" />
+    <Content Include="Playground\index-local.html" />
+    <Content Include="Playground\sounds\gunshot.wav" />
+    <Content Include="Playground\sounds\violons11.wav" />
+    <Content Include="Playground\textures\albedo.png" />
+    <Content Include="Playground\textures\reflectivity.png" />
+    <Content Include="Playground\textures\room.hdr" />
+    <Content Include="Playground\package.json" />
+    <Content Include="src\Shaders\glowBlurPostProcess.fragment.fx" />
+    <Content Include="src\Shaders\glowMapGeneration.fragment.fx" />
+    <Content Include="src\Shaders\glowMapGeneration.vertex.fx" />
+    <Content Include="src\Shaders\glowMapMerge.fragment.fx" />
+    <Content Include="src\Shaders\glowMapMerge.vertex.fx" />
+    <None Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </None>
+    <None Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </None>
+    <Content Include="Playground\frame.css" />
+    <Content Include="Playground\frame.js" />
+    <Content Include="Playground\scripts\pbr.js" />
+    <Content Include="Playground\scripts\refraction and reflection.js" />
+    <Content Include="Playground\frame.html" />
+    <Content Include="Playground\textures\mask.png" />
+    <Content Include="Playground\hand.minified-1.2.js" />
+    <Content Include="Playground\textures\equirectangular.jpg" />
+    <Content Include="Playground\textures\sphereMap.png" />
+    <Content Include="Playground\textures\waterbump.png" />
+    <TypeScriptCompile Include="src\Actions\babylon.action.ts" />
+    <TypeScriptCompile Include="src\Actions\babylon.actionManager.ts" />
+    <TypeScriptCompile Include="src\Actions\babylon.condition.ts" />
+    <TypeScriptCompile Include="src\Actions\babylon.directActions.ts" />
+    <TypeScriptCompile Include="src\Actions\babylon.interpolateValueAction.ts" />
+    <TypeScriptCompile Include="src\Animations\babylon.easing.ts" />
+    <TypeScriptCompile Include="src\Audio\babylon.analyser.ts" />
+    <TypeScriptCompile Include="src\Audio\babylon.audioEngine.ts" />
+    <TypeScriptCompile Include="src\Audio\babylon.sound.ts" />
+    <TypeScriptCompile Include="src\Audio\babylon.soundtrack.ts" />
+    <TypeScriptCompile Include="src\Bones\babylon.bone.ts" />
+    <TypeScriptCompile Include="src\Bones\babylon.skeleton.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.arcRotateCameraInputsManager.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.cameraInputsManager.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.followCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.freeCameraInputsManager.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.gamepadCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.stereoscopicCameras.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.targetCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.universalCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.touchCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.deviceOrientationCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.virtualJoysticksCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.arcrotatecamera.input.gamepad.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.arcrotatecamera.input.keyboard.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.arcrotatecamera.input.mousewheel.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.arcrotatecamera.input.pointers.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.freecamera.input.deviceorientation.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.freecamera.input.gamepad.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.freecamera.input.keyboard.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.freecamera.input.mouse.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.freecamera.input.touch.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.freecamera.input.virtualjoystick.ts" />
+    <TypeScriptCompile Include="src\Cameras\Inputs\babylon.arcrotatecamera.input.vrdeviceorientation.ts" />
+    <TypeScriptCompile Include="src\Cameras\VR\babylon.vrCameraMetrics.ts" />
+    <TypeScriptCompile Include="src\Cameras\VR\babylon.vrDeviceOrientationCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\VR\babylon.webVRCamera.ts" />
+    <TypeScriptCompile Include="src\Collisions\babylon.collisionCoordinator.ts" />
+    <TypeScriptCompile Include="src\Collisions\babylon.collisionWorker.ts" />
+    <TypeScriptCompile Include="src\Culling\babylon.ray.ts" />
+    <TypeScriptCompile Include="src\Debug\babylon.axesViewer.ts" />
+    <TypeScriptCompile Include="src\Debug\babylon.boneAxesViewer.ts" />
+    <TypeScriptCompile Include="src\Debug\babylon.skeletonViewer.ts" />
+    <TypeScriptCompile Include="src\Debug\babylon.debugLayer.ts" />
+    <TypeScriptCompile Include="src\Layer\babylon.highlightlayer.ts" />
+    <TypeScriptCompile Include="src\Loading\babylon.sceneLoader.ts" />
+    <TypeScriptCompile Include="src\Loading\Plugins\babylon.babylonFileLoader.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.colorCurves.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.effect.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.fresnelParameters.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.material.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.materialHelper.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.multiMaterial.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.pbrMaterial.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.shaderMaterial.ts" />
+    <TypeScriptCompile Include="src\Materials\babylon.standardMaterial.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.baseTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.colorGradingTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.cubeTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.dynamicTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.fontTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.mapTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.refractionTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.mirrorTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.rawTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.renderTargetTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.texture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.videoTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\babylon.hdrCubeTexture.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.buffer.ts" />
+    <TypeScriptCompile Include="src\Physics\babylon.physicsImpostor.ts" />
+    <TypeScriptCompile Include="src\Physics\babylon.physicsJoint.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.standardRenderingPipeline.ts" />
+    <TypeScriptCompile Include="src\States\babylon.alphaCullingState.ts" />
+    <TypeScriptCompile Include="src\States\babylon.depthCullingState.ts" />
+    <TypeScriptCompile Include="src\States\babylon.stencilState.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.decorators.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.dynamicFloatArray.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.earcut.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.observable.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.rectPackingMap.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.stringDictionary.ts" />
+    <TypeScriptCompile Include="src\Tools\HDR\babylon.tools.cubemapToSphericalPolynomial.ts" />
+    <TypeScriptCompile Include="src\Tools\HDR\babylon.tools.hdr.ts" />
+    <TypeScriptCompile Include="src\Tools\HDR\babylon.tools.panoramaToCubemap.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\Procedurals\babylon.customProceduralTexture.ts" />
+    <TypeScriptCompile Include="src\Materials\Textures\Procedurals\babylon.proceduralTexture.ts" />
+    <TypeScriptCompile Include="src\Math\babylon.math.SIMD.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.abstractMesh.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.geometry.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.groundMesh.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.instancedMesh.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.linesMesh.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.meshBuilder.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.meshLODLevel.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.meshSimplification.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.polygonMesh.ts" />
+    <TypeScriptCompile Include="src\Particles\babylon.solidParticle.ts" />
+    <TypeScriptCompile Include="src\Particles\babylon.solidParticleSystem.ts" />
+    <TypeScriptCompile Include="src\Physics\Plugins\babylon.oimoJSPlugin.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.colorCorrectionPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.displayPassPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.filterPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.convolutionPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.fxaaPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.hdrRenderingPipeline.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.lensRenderingPipeline.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.ssaoRenderingPipeline.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.stereoscopicInterlacePostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.tonemapPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.volumetricLightScatteringPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.vrDistortionCorrectionPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.refractionPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\RenderPipeline\babylon.postProcessRenderEffect.ts" />
+    <TypeScriptCompile Include="src\PostProcess\RenderPipeline\babylon.postProcessRenderPass.ts" />
+    <Content Include="Playground\splitbox.css" />
+    <Content Include="Playground\splitbox.js" />
+    <Content Include="Playground\textures\amiga.jpg" />
+    <Content Include="Playground\textures\grass.dds" />
+    <Content Include="Playground\textures\specmap.png" />
+    <Content Include="Playground\textures\specularglossymap.png" />
+    <Content Include="Playground\xtag.min.js" />
+    <Content Include="src\Shaders\anaglyph.fragment.fx" />
+    <Content Include="src\Shaders\chromaticAberration.fragment.fx" />
+    <Content Include="src\Shaders\ShadersInclude\colorCurves.fx" />
+    <Content Include="src\Shaders\ShadersInclude\colorCurvesDefinition.fx" />
+    <Content Include="src\Shaders\ShadersInclude\colorGrading.fx" />
+    <Content Include="src\Shaders\ShadersInclude\colorGradingDefinition.fx" />
+    <Content Include="src\Shaders\standard.fragment.fx" />
+    <Content Include="src\Shaders\legacypbr.fragment.fx" />
+    <Content Include="src\Shaders\legacypbr.vertex.fx" />
+    <Content Include="src\Shaders\line.fragment.fx" />
+    <Content Include="src\Shaders\line.vertex.fx" />
+    <Content Include="src\Shaders\colorCorrection.fragment.fx" />
+    <Content Include="src\Shaders\depthBoxBlur.fragment.fx" />
+    <Content Include="src\Shaders\depthOfField.fragment.fx" />
+    <Content Include="src\Shaders\hdr.fragment.fx" />
+    <Content Include="src\Shaders\lensHighlights.fragment.fx" />
+    <Content Include="src\Shaders\pbr.fragment.fx" />
+    <Content Include="src\Shaders\pbr.vertex.fx" />
+    <Content Include="src\Shaders\procedural.vertex.fx" />
+    <Content Include="src\Shaders\outline.fragment.fx" />
+    <Content Include="src\Shaders\color.fragment.fx" />
+    <Content Include="src\Shaders\outline.vertex.fx" />
+    <Content Include="src\Shaders\color.vertex.fx" />
+    <Content Include="src\Shaders\displayPass.fragment.fx" />
+    <Content Include="src\Shaders\filter.fragment.fx" />
+    <Content Include="src\Shaders\convolution.fragment.fx" />
+    <Content Include="src\Shaders\blackAndWhite.fragment.fx" />
+    <Content Include="src\Shaders\fxaa.fragment.fx" />
+    <Content Include="src\Shaders\lensFlare.fragment.fx" />
+    <Content Include="src\Shaders\lensFlare.vertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\bumpFragment.fx" />
+    <Content Include="src\Shaders\ShadersInclude\clipPlaneFragment.fx" />
+    <Content Include="src\Shaders\ShadersInclude\clipPlaneVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\clipPlaneFragmentDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\clipPlaneVertexDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\harmonicsFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\helperFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\lightFragment.fx" />
+    <Content Include="src\Shaders\ShadersInclude\pbrFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\pbrLightFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\pbrLightFunctionsCall.fx" />
+    <Content Include="src\Shaders\ShadersInclude\pbrShadowFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\reflectionFunction.fx" />
+    <Content Include="src\Shaders\ShadersInclude\fresnelFunction.fx" />
+    <Content Include="src\Shaders\ShadersInclude\pointCloudVertexDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\pointCloudVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\logDepthDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\logDepthFragment.fx" />
+    <Content Include="src\Shaders\ShadersInclude\logDepthVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\lightsFragmentFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\lightFragmentDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\bumpFragmentFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\shadowsVertexDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\shadowsVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\shadowsFragmentFunctions.fx" />
+    <Content Include="src\Shaders\ShadersInclude\fogVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\fogVertexDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\fogFragment.fx" />
+    <Content Include="src\Shaders\ShadersInclude\fogFragmentDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\instancesVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\instancesDeclaration.fx" />
+    <Content Include="src\Shaders\ShadersInclude\bonesVertex.fx" />
+    <Content Include="src\Shaders\ShadersInclude\bonesDeclaration.fx" />
+    <Content Include="src\Shaders\stereoscopicInterlace.fragment.fx" />
+    <Content Include="src\Shaders\tonemap.fragment.fx" />
+    <Content Include="src\Shaders\vrDistortionCorrection.fragment.fx" />
+    <Content Include="src\Shaders\pass.fragment.fx" />
+    <Content Include="src\Shaders\refraction.fragment.fx" />
+    <TypeScriptCompile Include="src\PostProcess\RenderPipeline\babylon.postProcessRenderPipeline.ts" />
+    <TypeScriptCompile Include="src\PostProcess\RenderPipeline\babylon.postProcessRenderPipelineManager.ts" />
+    <TypeScriptCompile Include="src\Probes\babylon.reflectionProbe.ts" />
+    <TypeScriptCompile Include="src\Rendering\babylon.boundingBoxRenderer.ts" />
+    <TypeScriptCompile Include="src\Rendering\babylon.depthRenderer.ts" />
+    <TypeScriptCompile Include="src\Rendering\babylon.edgesRenderer.ts" />
+    <TypeScriptCompile Include="src\Rendering\babylon.outlineRenderer.ts" />
+    <Content Include="src\Shaders\depth.fragment.fx" />
+    <Content Include="src\Shaders\shadowMap.vertex.fx" />
+    <Content Include="src\Shaders\ssao.fragment.fx" />
+    <Content Include="src\Shaders\ssaoCombine.fragment.fx" />
+    <Content Include="src\Shaders\volumetricLightScattering.fragment.fx" />
+    <Content Include="src\Shaders\volumetricLightScatteringPass.fragment.fx" />
+    <TypeScriptCompile Include="src\Tools\babylon.assetsManager.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.filesInput.ts" />
+    <Content Include="Playground\scripts\hdr rendering pipeline.js" />
+    <Content Include="Playground\bootstrap\css\bootstrap-responsive.css" />
+    <Content Include="Playground\bootstrap\css\bootstrap-responsive.min.css" />
+    <Content Include="Playground\bootstrap\css\bootstrap.css" />
+    <Content Include="Playground\bootstrap\css\bootstrap.min.css" />
+    <Content Include="Playground\bootstrap\img\glyphicons-halflings-white.png" />
+    <Content Include="Playground\bootstrap\img\glyphicons-halflings.png" />
+    <Content Include="Playground\bootstrap\js\bootstrap.js" />
+    <Content Include="Playground\bootstrap\js\bootstrap.min.js" />
+    <Content Include="Playground\fileSaver.js" />
+    <Content Include="Playground\index.css" />
+    <Content Include="Playground\index.html" />
+    <Content Include="Playground\scenes\0.jpg" />
+    <Content Include="Playground\scenes\Dude\0.jpg" />
+    <Content Include="Playground\scenes\Dude\1.jpg" />
+    <Content Include="Playground\scenes\Dude\2.jpg" />
+    <Content Include="Playground\scenes\Dude\3.jpg" />
+    <Content Include="Playground\scripts\Easing functions.js" />
+    <Content Include="Playground\scripts\proceduralTexture.js" />
+    <Content Include="Playground\scripts\ssao rendering pipeline.js" />
+    <Content Include="Playground\scripts\volumetric light scattering.js" />
+    <Content Include="Playground\index.js" />
+    <Content Include="Playground\jszip.min.js" />
+    <Content Include="Playground\scripts\drag and drop.js" />
+    <Content Include="Playground\scripts\actions.js" />
+    <Content Include="Playground\scripts\Environment.js" />
+    <Content Include="Playground\scripts\cameras.js" />
+    <Content Include="Playground\scripts\collisions.js" />
+    <Content Include="Playground\scripts\height Map.js" />
+    <Content Include="Playground\scripts\import meshes.js" />
+    <Content Include="Playground\scripts\Intersections.js" />
+    <Content Include="Playground\scripts\fresnel.js" />
+    <Content Include="Playground\scripts\lights.js" />
+    <Content Include="Playground\scripts\particles.js" />
+    <Content Include="Playground\scripts\rotation and scaling.js" />
+    <Content Include="Playground\scripts\basic elements.js" />
+    <Content Include="Playground\scripts\basic scene.js" />
+    <Content Include="Playground\scripts\materials.js" />
+    <Content Include="Playground\scripts\animations.js" />
+    <Content Include="Playground\scripts\scripts.txt" />
+    <Content Include="Playground\scripts\shadows.js" />
+    <Content Include="Playground\scripts\sprites.js" />
+    <Content Include="Playground\textures\babylonjs.mp4" />
+    <Content Include="Playground\textures\bloc.jpg" />
+    <Content Include="Playground\textures\cloud.png" />
+    <Content Include="Playground\textures\crate.png" />
+    <Content Include="Playground\textures\customProceduralTextures\land\custom.fragment.fx" />
+    <Content Include="Playground\textures\customProceduralTextures\land\textures\dirt.jpg" />
+    <Content Include="Playground\textures\customProceduralTextures\land\textures\grass.png" />
+    <Content Include="Playground\textures\earth.jpg" />
+    <Content Include="Playground\textures\flare.png" />
+    <Content Include="Playground\textures\grass.jpg" />
+    <Content Include="Playground\textures\ground.jpg" />
+    <Content Include="Playground\textures\heightMap.png" />
+    <Content Include="Playground\textures\impact.png" />
+    <Content Include="Playground\textures\normalMap.jpg" />
+    <Content Include="Playground\textures\orient.jpg" />
+    <Content Include="Playground\textures\palm.png" />
+    <Content Include="Playground\textures\player.png" />
+    <Content Include="Playground\textures\skybox_nx.jpg" />
+    <Content Include="Playground\textures\skybox_ny.jpg" />
+    <Content Include="Playground\textures\skybox_nz.jpg" />
+    <Content Include="Playground\textures\skybox_px.jpg" />
+    <Content Include="Playground\textures\skybox_py.jpg" />
+    <Content Include="Playground\textures\skybox_pz.jpg" />
+    <Content Include="Playground\textures\sun.png" />
+    <Content Include="Playground\textures\tree.png" />
+    <Content Include="Playground\textures\misc.jpg" />
+    <Content Include="Playground\textures\TropicalSunnyDay_ny.jpg" />
+    <Content Include="Playground\textures\TropicalSunnyDay_nx.jpg" />
+    <Content Include="Playground\textures\TropicalSunnyDay_nz.jpg" />
+    <Content Include="Playground\textures\TropicalSunnyDay_px.jpg" />
+    <Content Include="Playground\textures\TropicalSunnyDay_py.jpg" />
+    <Content Include="Playground\textures\TropicalSunnyDay_pz.jpg" />
+    <Content Include="Playground\textures\worldHeightMap.jpg" />
+    <Content Include="Playground\textures\xStrip.jpg" />
+    <Content Include="Playground\textures\yStrip.jpg" />
+    <Content Include="Playground\textures\zStrip.jpg" />
+    <Content Include="Playground\zipContent\index.html" />
+    <Content Include="src\Shaders\blur.fragment.fx" />
+    <Content Include="src\Shaders\postprocess.vertex.fx" />
+    <Content Include="src\Shaders\shadowMap.fragment.fx" />
+    <Content Include="src\Shaders\depth.vertex.fx" />
+    <Content Include="src\Shaders\layer.fragment.fx" />
+    <Content Include="src\Shaders\layer.vertex.fx" />
+    <Content Include="src\Shaders\particles.fragment.fx" />
+    <Content Include="src\Shaders\particles.vertex.fx" />
+    <Content Include="src\Shaders\sprites.fragment.fx" />
+    <Content Include="src\Shaders\sprites.vertex.fx" />
+    <Content Include="Playground\scripts\picking.js" />
+    <Content Include="Web.config">
+      <SubType>Designer</SubType>
+    </Content>
+    <TypeScriptCompile Include="src\Tools\babylon.gamepads.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.database.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.loadingScreen.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.sceneOptimizer.ts" />
+    <TypeScriptCompile Include="src\Tools\HDR\babylon.tools.pmremGenerator.ts" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="src\Shaders\default.fragment.fx" />
+    <Content Include="src\Shaders\default.vertex.fx" />
+    <Content Include="Playground\textures\babylonjs.webm" />
+    <Content Include="Playground\scenes\skull.babylon" />
+    <Content Include="Playground\textures\customProceduralTextures\land\config.json" />
+    <Content Include="Playground\scenes\SSAOcat.babylon" />
+    <Content Include="Playground\scenes\Rabbit.babylon" />
+    <Content Include="Playground\scenes\Dude\dude.babylon" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Properties\" />
+  </ItemGroup>
+  <ItemGroup>
+    <TypeScriptCompile Include="src\Animations\babylon.animatable.ts" />
+    <TypeScriptCompile Include="src\Animations\babylon.animation.ts" />
+    <TypeScriptCompile Include="src\babylon.engine.ts" />
+    <TypeScriptCompile Include="src\babylon.mixins.ts" />
+    <TypeScriptCompile Include="src\babylon.scene.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.arcRotateCamera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.camera.ts" />
+    <TypeScriptCompile Include="src\Cameras\babylon.freeCamera.ts" />
+    <TypeScriptCompile Include="src\Collisions\babylon.collider.ts" />
+    <TypeScriptCompile Include="src\Collisions\babylon.pickingInfo.ts" />
+    <TypeScriptCompile Include="src\Culling\babylon.boundingBox.ts" />
+    <TypeScriptCompile Include="src\Culling\babylon.boundingInfo.ts" />
+    <TypeScriptCompile Include="src\Culling\babylon.boundingSphere.ts" />
+    <TypeScriptCompile Include="src\Culling\Octrees\babylon.octree.ts" />
+    <TypeScriptCompile Include="src\Culling\Octrees\babylon.octreeBlock.ts" />
+    <TypeScriptCompile Include="src\Layer\babylon.layer.ts" />
+    <TypeScriptCompile Include="src\LensFlare\babylon.lensFlare.ts" />
+    <TypeScriptCompile Include="src\LensFlare\babylon.lensFlareSystem.ts" />
+    <TypeScriptCompile Include="src\Lights\babylon.directionalLight.ts" />
+    <TypeScriptCompile Include="src\Lights\babylon.hemisphericLight.ts" />
+    <TypeScriptCompile Include="src\Lights\babylon.light.ts" />
+    <TypeScriptCompile Include="src\Lights\babylon.pointLight.ts" />
+    <TypeScriptCompile Include="src\Lights\babylon.spotLight.ts" />
+    <TypeScriptCompile Include="src\Lights\Shadows\babylon.shadowGenerator.ts" />
+    <TypeScriptCompile Include="src\Math\babylon.math.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.csg.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.mesh.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.mesh.vertexData.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.subMesh.ts" />
+    <TypeScriptCompile Include="src\Mesh\babylon.vertexBuffer.ts" />
+    <TypeScriptCompile Include="src\babylon.node.ts" />
+    <TypeScriptCompile Include="src\Particles\babylon.particle.ts" />
+    <TypeScriptCompile Include="src\Particles\babylon.particleSystem.ts" />
+    <TypeScriptCompile Include="src\Physics\babylon.physicsEngine.ts" />
+    <TypeScriptCompile Include="src\Physics\Plugins\babylon.cannonJSPlugin.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.anaglyphPostProcess.ts">
+      <SubType>Code</SubType>
+    </TypeScriptCompile>
+    <TypeScriptCompile Include="src\PostProcess\babylon.blackAndWhitePostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.blurPostProcess.ts" />
+    <TypeScriptCompile Include="src\PostProcess\babylon.passPostProcess.ts">
+      <SubType>Code</SubType>
+    </TypeScriptCompile>
+    <TypeScriptCompile Include="src\PostProcess\babylon.postProcess.ts">
+      <SubType>Code</SubType>
+    </TypeScriptCompile>
+    <TypeScriptCompile Include="src\PostProcess\babylon.postProcessManager.ts" />
+    <TypeScriptCompile Include="src\Rendering\babylon.renderingGroup.ts" />
+    <TypeScriptCompile Include="src\Rendering\babylon.renderingManager.ts" />
+    <TypeScriptCompile Include="src\Sprites\babylon.sprite.ts" />
+    <TypeScriptCompile Include="src\Sprites\babylon.spriteManager.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.andOrNotEvaluator.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.sceneSerializer.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.smartArray.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.tags.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.tools.dds.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.tools.tga.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.tools.ts" />
+    <TypeScriptCompile Include="src\Tools\babylon.virtualJoystick.ts" />
+  </ItemGroup>
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
+    <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
+    <TypeScriptModuleKind>none</TypeScriptModuleKind>
+    <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
+    <TypeScriptTarget>ES5</TypeScriptTarget>
+    <TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
+    <TypeScriptRemoveComments>False</TypeScriptRemoveComments>
+    <TypeScriptOutFile />
+    <TypeScriptOutDir />
+    <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
+    <TypeScriptSourceMap>True</TypeScriptSourceMap>
+    <TypeScriptMapRoot />
+    <TypeScriptSourceRoot />
+    <TypeScriptExperimentalDecorators>true</TypeScriptExperimentalDecorators>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
+    <TypeScriptTarget>ES5</TypeScriptTarget>
+  </PropertyGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
+  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>True</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>0</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>http://localhost:51793/</IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+          <UseCustomServer>False</UseCustomServer>
+          <CustomServerUrl>
+          </CustomServerUrl>
+          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+        </WebProjectProperties>
+      </FlavorProperties>
+      <UserProperties node__modules_2grunt-contrib-uglify_2package_1json__JSONSchema="http://json.schemastore.org/package" />
+    </VisualStudio>
+  </ProjectExtensions>
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+  </PropertyGroup>
+  <PropertyGroup>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 34 - 0
Babylon.sln

@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.25914.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Babylon", "Babylon.csproj", "{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Debug|x64.ActiveCfg = Debug|x64
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Debug|x64.Build.0 = Debug|x64
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Debug|x86.ActiveCfg = Debug|x86
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Debug|x86.Build.0 = Debug|x86
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Release|x64.ActiveCfg = Release|x64
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Release|x64.Build.0 = Release|x64
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Release|x86.ActiveCfg = Release|x86
+		{BA85B096-DDB8-4324-BB47-5F4EC2C5DB6A}.Release|x86.Build.0 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Tools/ActionsBuilder/README.md → Exporters/3ds Max/ActionsBuilder/README.md


Tools/ActionsBuilder/Sources/actionsbuilder.actionNode.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.actionNode.js


Tools/ActionsBuilder/Sources/actionsbuilder.contextMenu.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.contextMenu.js


Tools/ActionsBuilder/Sources/actionsbuilder.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.js


Tools/ActionsBuilder/Sources/actionsbuilder.list.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.list.js


Tools/ActionsBuilder/Sources/actionsbuilder.main.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.main.js


Tools/ActionsBuilder/Sources/actionsbuilder.max.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.max.js


Tools/ActionsBuilder/Sources/actionsbuilder.parameters.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.parameters.js


Tools/ActionsBuilder/Sources/actionsbuilder.toolbar.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.toolbar.js


Tools/ActionsBuilder/Sources/actionsbuilder.utils.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.utils.js


Tools/ActionsBuilder/Sources/actionsbuilder.viewer.js → Exporters/3ds Max/ActionsBuilder/Sources/actionsbuilder.viewer.js


Tools/ActionsBuilder/Sources/babylon.max.js → Exporters/3ds Max/ActionsBuilder/Sources/babylon.max.js


Tools/ActionsBuilder/Sources/fonts.css → Exporters/3ds Max/ActionsBuilder/Sources/fonts.css


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.eot → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.eot


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.otf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.otf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.svg → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.svg


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.ttf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.ttf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.woff → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300Light.woff


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.eot → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.eot


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.otf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.otf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.svg → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.svg


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.ttf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.ttf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.woff → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-300LightItalic.woff


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.eot → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.eot


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.otf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.otf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.svg → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.svg


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.ttf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.ttf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.woff → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-500Medium.woff


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.eot → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.eot


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.otf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.otf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.svg → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.svg


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.ttf → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.ttf


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.woff → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans-600SemiBold.woff


Tools/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans_NOTICE.txt → Exporters/3ds Max/ActionsBuilder/Sources/fonts/SinkinSans/SinkinSans_NOTICE.txt


Tools/ActionsBuilder/Sources/index-debug.html → Exporters/3ds Max/ActionsBuilder/Sources/index-debug.html


Tools/ActionsBuilder/Sources/index.css → Exporters/3ds Max/ActionsBuilder/Sources/index.css


Tools/ActionsBuilder/Sources/index.html → Exporters/3ds Max/ActionsBuilder/Sources/index.html


Tools/ActionsBuilder/Sources/raphael.js → Exporters/3ds Max/ActionsBuilder/Sources/raphael.js


Tools/ActionsBuilder/actionsbuilder.actionNode.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.actionNode.ts


Tools/ActionsBuilder/actionsbuilder.contextMenu.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.contextMenu.ts


Tools/ActionsBuilder/actionsbuilder.list.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.list.ts


Tools/ActionsBuilder/actionsbuilder.main.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.main.ts


Tools/ActionsBuilder/actionsbuilder.parameters.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.parameters.ts


Tools/ActionsBuilder/actionsbuilder.toolbar.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.toolbar.ts


Tools/ActionsBuilder/actionsbuilder.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.ts


Tools/ActionsBuilder/actionsbuilder.utils.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.utils.ts


Tools/ActionsBuilder/actionsbuilder.viewer.ts → Exporters/3ds Max/ActionsBuilder/actionsbuilder.viewer.ts


Tools/ActionsBuilder/gulpfile.js → Exporters/3ds Max/ActionsBuilder/gulpfile.js


Tools/ActionsBuilder/package.json → Exporters/3ds Max/ActionsBuilder/package.json


Tools/ActionsBuilder/raphaeljs.d.ts → Exporters/3ds Max/ActionsBuilder/raphaeljs.d.ts


BIN
Exporters/Blender/Blender2Babylon-5.0.zip


BIN
Exporters/Blender/Blender2Babylon-5.1.zip


+ 1 - 1
Exporters/Blender/readme.md

@@ -56,7 +56,7 @@ For a discussion of Tower of Babel exporter, along with the difference this expo
  * Child materials
  * 32 bit vertex limit for multi-materials
 * **Textures**
- * Name(s) - Multiples for compressed texture prioritization
+ * Name
  * Associated file
  * Level
  * Use alpha

+ 1 - 1
Exporters/Blender/src/__init__.py

@@ -1,7 +1,7 @@
 bl_info = {
     'name': 'Babylon.js',
     'author': 'David Catuhe, Jeff Palmer',
-    'version': (5, 1, 0),
+    'version': (5, 1, 1),
     'blender': (2, 76, 0),
     'location': 'File > Export > Babylon.js (.babylon)',
     'description': 'Export Babylon.js scenes (.babylon)',

+ 7 - 23
Exporters/Blender/src/exporter_settings_panel.py

@@ -1,9 +1,6 @@
 from .package_level import *
 
 import bpy
-LEGACY      = 'LEGACY'
-INLINE      = 'INLINE'
-PRIORITIZED = 'PRIORITIZED'
 # Panel displayed in Scene Tab of properties, so settings can be saved in a .blend file
 class ExporterSettingsPanel(bpy.types.Panel):
     bl_label = get_title()
@@ -36,21 +33,11 @@ class ExporterSettingsPanel(bpy.types.Panel):
         description='',
         default = True
         )
-    bpy.types.Scene.textureMethod = bpy.props.EnumProperty(
-        name='Method',
-        description='How are textures to be implemented',
-        items = (
-                 (LEGACY     , 'Legacy'     , 'Just the single Blender texture'),
-                 (INLINE     , 'Inline'     , 'Place a base64 version of texture directly in the output'),
-                 (PRIORITIZED, 'Prioritized', 'Allow various compressed texture formats to be tried first')
-                ),
-        default = LEGACY
+    bpy.types.Scene.inlineTextures = bpy.props.BoolProperty(
+        name='inline',
+        description='turn textures into encoded strings, for direct inclusion into source code',
+        default = False
     )
-    bpy.types.Scene.texturePriority = bpy.props.StringProperty(
-        name='Order',
-        description='Space delimited list of extensions to try\nnot including format supplied by Blender\nwhich will be last.',
-        default = '.ASTC .DDS .ETC'
-        )
     bpy.types.Scene.textureDir = bpy.props.StringProperty(
         name='Sub-directory',
         description='The path below the output directory to write texture files (any separators OS dependent)',
@@ -71,13 +58,10 @@ class ExporterSettingsPanel(bpy.types.Panel):
         layout.prop(scene, 'ignoreIKBones')
 
         box = layout.box()
-        box.label(text='Texture Options:')
-        box.prop(scene, 'textureMethod')
-        row = box.row()
-        row.enabled = scene.textureMethod == PRIORITIZED
-        row.prop(scene, 'texturePriority')
+        box.label(text='Texture Location:')
+        box.prop(scene, 'inlineTextures')
         row = box.row()
-        row.enabled = scene.textureMethod != INLINE
+        row.enabled = not scene.inlineTextures
         row.prop(scene, 'textureDir')
 
         box = layout.box()

+ 4 - 5
Exporters/Blender/src/json_exporter.py

@@ -32,7 +32,7 @@ class JsonExporter:
 
             # assign texture location, purely temporary if inlining
             self.textureDir = path.dirname(filepath)
-            if scene.textureMethod != INLINE:
+            if not scene.inlineTextures:
                 self.textureDir = path.join(self.textureDir, scene.textureDir)
                 if not path.isdir(self.textureDir):
                     makedirs(self.textureDir)
@@ -42,11 +42,10 @@ class JsonExporter:
             Logger.log('Scene settings used:', 1)
             Logger.log('selected layers only:  ' + format_bool(scene.export_onlySelectedLayer), 2)
             Logger.log('flat shading entire scene:  ' + format_bool(scene.export_flatshadeScene), 2)
-            Logger.log('texture Method:  ' + scene.textureMethod, 2)
-            if scene.textureMethod != INLINE:
+            Logger.log('inline textures:  ' + format_bool(scene.inlineTextures), 2)
+            if not scene.inlineTextures:
                 Logger.log('texture directory:  ' + self.textureDir, 2)
-            if scene.textureMethod == PRIORITIZED:
-                Logger.log('Priority Order:  ' + scene.texturePriority)
+                
             self.world = World(scene)
 
             bpy.ops.screen.animation_cancel()

+ 5 - 28
Exporters/Blender/src/material.py

@@ -1,4 +1,3 @@
-from .exporter_settings_panel import *
 from .logger import *
 from .package_level import *
 
@@ -84,7 +83,7 @@ class Texture:
 
             # when coming from either a packed image or a baked image, then save_render
             if internalImage:
-                if exporter.scene.textureMethod == INLINE:
+                if exporter.scene.inlineTextures:
                     textureFile = path.join(exporter.textureDir, self.fileNoPath + 'temp')
                 else:
                     textureFile = path.join(exporter.textureDir, self.fileNoPath)
@@ -100,7 +99,7 @@ class Texture:
             ex = exc_info()
             Logger.warn('Error encountered processing image file:  ' + ', Error:  '+ str(ex[1]))
 
-        if exporter.scene.textureMethod == INLINE:
+        if exporter.scene.inlineTextures:
             # base64 is easiest from a file, so sometimes a temp file was made above;  need to delete those
             with open(textureFile, "rb") as image_file:
                 asString = b64encode(image_file.read()).decode()
@@ -109,16 +108,6 @@ class Texture:
             if internalImage:
                 remove(textureFile)
 
-        # build priority Order
-        if exporter.scene.textureMethod == PRIORITIZED:
-            nameNoExtension = self.fileNoPath.rpartition('.')[0]
-            self.priorityNames = []
-            for ext in exporter.scene.texturePriority.split():
-                self.priorityNames.append(nameNoExtension + ext)
-
-            # add blend image last
-            self.priorityNames.append(self.fileNoPath)
-
         # capture texture attributes
         self.slot = slot
         self.level = level
@@ -154,21 +143,7 @@ class Texture:
 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     def to_scene_file(self, file_handler):
         file_handler.write(', \n"' + self.slot + '":{')
-        if hasattr(self,'encoded_URI'):
-            write_string(file_handler, 'base64String', self.encoded_URI)
-
-        elif hasattr(self,'priorityNames'):
-            file_handler.write('"name":[')
-            first = True
-            for name in self.priorityNames:
-                if first == False:
-                    file_handler.write(',')
-                file_handler.write('"' + name + '"')
-                first = False
-            file_handler.write(']')
-
-        else:
-            write_string(file_handler, 'name', self.fileNoPath, True)
+        write_string(file_handler, 'name', self.fileNoPath, True)
 
         write_float(file_handler, 'level', self.level)
         write_float(file_handler, 'hasAlpha', self.hasAlpha)
@@ -183,6 +158,8 @@ class Texture:
         write_int(file_handler, 'wrapU', self.wrapU)
         write_int(file_handler, 'wrapV', self.wrapV)
         write_int(file_handler, 'coordinatesIndex', self.coordinatesIndex)
+        if hasattr(self,'encoded_URI'):
+            write_string(file_handler, 'base64String', self.encoded_URI)
         file_handler.write('}')
 #===============================================================================
 # need to evaluate the need to bake a mesh before even starting; class also stores specific types of bakes

+ 5 - 0
Playground/debug.html

@@ -40,6 +40,11 @@
     <script src="http://www.babylonjs.com/lib/babylon.roadProceduralTexture.min.js"></script>
     <script src="http://www.babylonjs.com/lib/babylon.starfieldProceduralTexture.min.js"></script>
     <script src="http://www.babylonjs.com/lib/babylon.woodProceduralTexture.min.js"></script>
+
+    <script src="http://www.babylonjs.com/lib/babylon.glTFFileLoader.js"></script>
+    <script src="http://www.babylonjs.com/lib/babylon.objFileLoader.js"></script>
+    <script src="http://www.babylonjs.com/lib/babylon.stlFileLoader.js"></script>
+
     <link href="index.css" rel="stylesheet" />
 </head>
 <body>

+ 5 - 0
Playground/frame.html

@@ -29,6 +29,11 @@
     <script src="http://www.babylonjs.com/lib/babylon.roadProceduralTexture.min.js"></script>
     <script src="http://www.babylonjs.com/lib/babylon.starfieldProceduralTexture.min.js"></script>
     <script src="http://www.babylonjs.com/lib/babylon.woodProceduralTexture.min.js"></script>
+
+    <script src="http://www.babylonjs.com/lib/babylon.glTFFileLoader.js"></script>
+    <script src="http://www.babylonjs.com/lib/babylon.objFileLoader.js"></script>
+    <script src="http://www.babylonjs.com/lib/babylon.stlFileLoader.js"></script>
+    
     <link href="frame.css" rel="stylesheet" />
 </head>
 <body>

+ 6 - 201
Playground/index-local.html

@@ -14,206 +14,8 @@
     <!-- Bootstrap -->
     <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
     <script src="node_modules/monaco-editor/min/vs/loader.js"></script>
-    <!-- Babylon.js -->
-    <script src="../dist/preview release/cannon.js"></script>
-    <script src="../dist/preview release/Oimo.js"></script>
-    <!--<script src="../babylon.js"></script>-->
-    <script src="../src/Math/babylon.math.js"></script>
-    <script src="../src/Tools/babylon.observable.js"></script>
-    <script src="../src/Culling/babylon.ray.js"></script>
-    <script src="../src/States/babylon.alphaCullingState.js"></script>
-    <script src="../src/States/babylon.depthCullingState.js"></script>
-    <script src="../src/States/babylon.stencilState.js"></script>
-    <script src="../src/Tools/babylon.decorators.js"></script>
-    <script src="../src/Tools/babylon.database.js"></script>
-    <script src="../src/Tools/babylon.tools.tga.js"></script>
-    <script src="../src/Tools/babylon.tools.dds.js"></script>
-    <script src="../src/Tools/babylon.smartArray.js"></script>
-    <script src="../src/Tools/babylon.tools.js"></script>
-    <script src="../src/babylon.engine.js"></script>
-    <script src="../src/babylon.node.js"></script>
-    <script src="../src/Mesh/babylon.buffer.js"></script>
-    <script src="../src/Cameras/VR/babylon.vrCameraMetrics.js"></script>
-    <script src="../src/Cameras/babylon.cameraInputsManager.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.arcrotatecamera.input.gamepad.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.arcrotatecamera.input.keyboard.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.arcrotatecamera.input.mousewheel.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.arcrotatecamera.input.pointers.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.freecamera.input.deviceorientation.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.freecamera.input.mouse.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.freecamera.input.touch.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.freecamera.input.keyboard.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.freecamera.input.virtualjoystick.js"></script>
-    <script src="../src/Cameras/Inputs/babylon.freecamera.input.gamepad.js"></script>
-    <script src="../src/Cameras/babylon.freeCameraInputsManager.js"></script>
-    <script src="../src/Cameras/babylon.arcRotateCameraInputsManager.js"></script>
-    <script src="../src/Tools/babylon.filesInput.js"></script>
-    <script src="../src/Collisions/babylon.pickingInfo.js"></script>
-    <script src="../src/Culling/babylon.boundingSphere.js"></script>
-    <script src="../src/Culling/babylon.boundingBox.js"></script>
-    <script src="../src/Culling/babylon.boundingInfo.js"></script>
-    <script src="../src/Mesh/babylon.abstractMesh.js"></script>
-    <script src="../src/Lights/babylon.light.js"></script>
-    <script src="../src/Lights/babylon.pointLight.js"></script>
-    <script src="../src/Lights/babylon.spotLight.js"></script>
-    <script src="../src/Lights/babylon.hemisphericLight.js"></script>
-    <script src="../src/Lights/babylon.directionalLight.js"></script>
-    <script src="../src/Lights/Shadows/babylon.shadowGenerator.js"></script>
-    <script src="../src/Collisions/babylon.collider.js"></script>
-    <script src="../src/Collisions/babylon.collisionCoordinator.js"></script>
-    <script src="../src/Collisions/babylon.collisionWorker.js"></script>
-    <script src="../src/Cameras/babylon.camera.js"></script>
-    <script src="../src/Cameras/babylon.targetCamera.js"></script>
-    <script src="../src/Cameras/babylon.followCamera.js"></script>
-    <script src="../src/Cameras/babylon.freeCamera.js"></script>
-    <script src="../src/Cameras/babylon.touchCamera.js"></script>
-    <script src="../src/Cameras/babylon.arcRotateCamera.js"></script>
-    <script src="../src/Cameras/babylon.deviceOrientationCamera.js"></script>
-    <script src="../src/Cameras/babylon.universalCamera.js"></script>
-    <script src="../src/Tools/babylon.gamepads.js"></script>
-    <script src="../src/Cameras/babylon.gamepadCamera.js"></script>
-    <script src="../src/Rendering/babylon.renderingManager.js"></script>
-    <script src="../src/Rendering/babylon.renderingGroup.js"></script>
-    <script src="../src/babylon.scene.js"></script>
-    <script src="../src/Mesh/babylon.vertexBuffer.js"></script>
-    <script src="../src/Mesh/babylon.InstancedMesh.js"></script>
-    <script src="../src/Mesh/babylon.mesh.js"></script>
-    <script src="../src/Mesh/babylon.groundMesh.js"></script>
-    <script src="../src/Mesh/babylon.subMesh.js"></script>
-    <script src="../src/Mesh/babylon.meshBuilder.js"></script>
-    <script src="../src/Materials/textures/babylon.baseTexture.js"></script>
-    <script src="../src/Materials/textures/babylon.texture.js"></script>
-    <script src="../src/Materials/textures/babylon.cubeTexture.js"></script>
-    <script src="../src/Materials/textures/babylon.renderTargetTexture.js"></script>
-    <script src="../src/Materials/textures/babylon.mirrorTexture.js"></script>
-    <script src="../src/Materials/textures/babylon.dynamicTexture.js"></script>
-    <script src="../src/Materials/textures/babylon.videoTexture.js"></script>
-    <script src="../src/Materials/babylon.effect.js"></script>
-    <script src="../src/Materials/babylon.materialHelper.js"></script>
-    <script src="../src/Materials/babylon.material.js"></script>
-    <script src="../src/Materials/babylon.standardMaterial.js"></script>
-    <script src="../src/Materials/babylon.multiMaterial.js"></script>
-    <script src="../src/Materials/textures/procedurals/babylon.proceduralTexture.js"></script>
-    <script src="../src/Materials/textures/procedurals/babylon.customProceduralTexture.js"></script>
-    <script src="../src/Loading/babylon.sceneLoader.js"></script>
-    <script src="../src/Loading/Plugins/babylon.babylonFileLoader.js"></script>
-    <script src="../src/Sprites/babylon.spriteManager.js"></script>
-    <script src="../src/Sprites/babylon.sprite.js"></script>
-    <script src="../src/Layer/babylon.layer.js"></script>
-    <script src="../src/Particles/babylon.particle.js"></script>
-    <script src="../src/Particles/babylon.particleSystem.js"></script>
-    <script src="../src/Animations/babylon.animation.js"></script>
-    <script src="../src/Animations/babylon.animatable.js"></script>
-    <script src="../src/Animations/babylon.easing.js"></script>
-    <script src="../src/Culling/Octrees/babylon.octree.js"></script>
-    <script src="../src/Culling/Octrees/babylon.octreeBlock.js"></script>
-    <script src="../src/Bones/babylon.bone.js"></script>
-    <script src="../src/Bones/babylon.skeleton.js"></script>
-    <script src="../src/Bones/babylon.skeleton.js"></script>
-    <script src="../src/PostProcess/babylon.postProcess.js"></script>
-    <script src="../src/PostProcess/babylon.postProcessManager.js"></script>
-    <script src="../src/PostProcess/babylon.passPostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.blurPostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.refractionPostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.blackAndWhitePostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.convolutionPostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.filterPostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.fxaaPostProcess.js"></script>
-    <script src="../src/LensFlare/babylon.lensFlare.js"></script>
-    <script src="../src/LensFlare/babylon.lensFlareSystem.js"></script>
-    <script src="../src/Physics/babylon.physicsJoint.js"></script>
-    <script src="../src/Physics/babylon.physicsImpostor.js"></script>
-    <script src="../src/Physics/Plugins/babylon.cannonJSPlugin.js"></script>
-    <script src="../src/Physics/Plugins/babylon.oimoJSPlugin.js"></script>
-    <script src="../src/Physics/babylon.physicsEngine.js"></script>
-    <script src="../src/Tools/babylon.sceneSerializer.js"></script>
-    <script src="../src/Mesh/babylon.csg.js"></script>
-    <script src="../src/PostProcess/babylon.vrDistortionCorrectionPostProcess.js"></script>
-    <script src="../src/Tools/babylon.virtualJoystick.js"></script>
-    <script src="../src/Cameras/babylon.virtualJoysticksCamera.js"></script>
-    <script src="../src/Materials/babylon.shaderMaterial.js"></script>
-    <script src="../src/Mesh/babylon.mesh.vertexData.js"></script>
-    <script src="../src/PostProcess/babylon.anaglyphPostProcess.js"></script>
-    <script src="../src/Tools/babylon.tags.js"></script>
-    <script src="../src/Tools/babylon.andOrNotEvaluator.js"></script>
-    <script src="../src/PostProcess/RenderPipeline/babylon.postProcessRenderPass.js"></script>
-    <script src="../src/PostProcess/RenderPipeline/babylon.postProcessRenderEffect.js"></script>
-    <script src="../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipeline.js"></script>
-    <script src="../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipelineManager.js"></script>
-    <script src="../src/PostProcess/babylon.displayPassPostProcess.js"></script>
-    <script src="../src/Rendering/babylon.boundingBoxRenderer.js"></script>
-    <script src="../src/Actions/babylon.condition.js"></script>
-    <script src="../src/Actions/babylon.action.js"></script>
-    <script src="../src/Actions/babylon.actionManager.js"></script>
-    <script src="../src/Actions/babylon.interpolateValueAction.js"></script>
-    <script src="../src/Actions/babylon.directActions.js"></script>
-    <script src="../src/Mesh/babylon.geometry.js"></script>
-    <script src="../src/Mesh/babylon.linesMesh.js"></script>
-    <script src="../src/Rendering/babylon.outlineRenderer.js"></script>
-    <script src="../src/Tools/babylon.assetsManager.js"></script>
-    <script src="../src/Cameras/VR/babylon.vrDeviceOrientationCamera.js"></script>
-    <script src="../src/Cameras/VR/babylon.webVRCamera.js"></script>
-    <script src="../src/Tools/babylon.sceneOptimizer.js"></script>
-    <script src="../src/Mesh/babylon.meshLODLevel.js"></script>
-    <script src="../src/Audio/babylon.audioengine.js"></script>
-    <script src="../src/Audio/babylon.sound.js"></script>
-    <script src="../src/Audio/babylon.analyser.js"></script>
-    <script src="../src/Debug/babylon.debugLayer.js"></script>
-    <script src="../src/Audio/babylon.soundtrack.js"></script>
-    <script src="../src/Materials/Textures/babylon.rawTexture.js"></script>
-    <script src="../src/Mesh/babylon.polygonMesh.js"></script>
-    <script src="../src/Mesh/babylon.meshSimplification.js"></script>
-    <script src="../src/Rendering/babylon.depthRenderer.js"></script>
-    <script src="../src/PostProcess/babylon.ssaoRenderingPipeline.js"></script>
-    <script src="../src/PostProcess/babylon.volumetricLightScatteringPostProcess.js"></script>
-    <script src="../src/PostProcess/babylon.lensRenderingPipeline.js"></script>
-    <script src="../src/PostProcess/babylon.colorCorrectionPostProcess.js"></script>
-    <script src="../src/Tools/babylon.stringDictionary.js"></script>
-    <script src="../src/PostProcess/babylon.stereoscopicInterlacePostProcess.js"></script>
-    <script src="../src/Cameras/babylon.stereoscopicCameras.js"></script>
-    <script src="../src/PostProcess/babylon.hdrRenderingPipeline.js"></script>
-    <script src="../src/Rendering/babylon.edgesRenderer.js"></script>
-    <script src="../src/PostProcess/babylon.tonemapPostProcess.js"></script>
-    <script src="../src/Tools/babylon.loadingScreen.js"></script>
-    <script src="../src/Materials/babylon.pbrMaterial.js"></script>
-    <script src="../src/Probes/babylon.reflectionProbe.js"></script>
-    <script src="../src/Particles/babylon.solidParticle.js"></script>
-    <script src="../src/Particles/babylon.solidParticleSystem.js"></script>
-    <script src="../src/Debug/babylon.skeletonViewer.js"></script>
-    <script src="../src/Materials/Textures/babylon.hdrCubeTexture.js"></script>
-    <script src="../src/Tools/HDR/babylon.tools.cubemapToSphericalPolynomial.js"></script>
-    <script src="../src/Tools/HDR/babylon.tools.hdr.js"></script>
-    <script src="../src/Tools/HDR/babylon.tools.pmremGenerator.js"></script>
-    <script src="../src/Tools/HDR/babylon.tools.panoramaToCubemap.js"></script>
-    <script src="../src/Materials/babylon.fresnelParameters.js"></script>
-    <script src="../dist/preview release/babylon.canvas2d.max.js"></script>
-    <script src="../src/Tools/babylon.dynamicFloatArray.js"></script>
-    <script src="../src/Materials/Textures/babylon.fontTexture.js"></script>
-    <script src="../src/Materials/Textures/babylon.mapTexture.js"></script>
-    <script src="../src/Tools/babylon.rectPackingMap.js"></script>
-    <script src="../src/Materials/babylon.colorCurves.js"></script>
-    <script src="../src/Materials/Textures/babylon.colorGradingTexture.js"></script>
-    <script src="../src/Layer/babylon.highlightlayer.js"></script>
-
-    <script src="../materialsLibrary/dist/babylon.fireMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.waterMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.lavaMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.normalMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.skyMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.triPlanarMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.terrainMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.gradientMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.furMaterial.min.js"></script>
-    <script src="../materialsLibrary/dist/babylon.gridMaterial.min.js"></script>
-
-    <script src="../proceduralTexturesLibrary/dist/babylon.brickProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.cloudProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.fireProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.grassProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.marbleProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.roadProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.starfieldProceduralTexture.min.js"></script>
-    <script src="../proceduralTexturesLibrary/dist/babylon.woodProceduralTexture.min.js"></script>
+    <!-- Babylon.js -->    
+	<script src="../tools/DevLoader/BabylonLoader.js"></script>
     <link href="index.css" rel="stylesheet" />
 </head>
 <body>
@@ -290,6 +92,9 @@
 
     <script src="http://code.jquery.com/jquery.js"></script>
     <script src="bootstrap/js/bootstrap.min.js"></script>
-    <script src="index.js"></script>
+    <script>
+        BABYLONDEVTOOLS.Loader.require('index.js')
+            .load();
+    </script>
 </body>
 </html>

+ 4 - 0
Playground/index.html

@@ -40,6 +40,10 @@
     <script src="http://www.babylonjs.com/lib/babylon.roadProceduralTexture.min.js"></script>
     <script src="http://www.babylonjs.com/lib/babylon.starfieldProceduralTexture.min.js"></script>
     <script src="http://www.babylonjs.com/lib/babylon.woodProceduralTexture.min.js"></script>
+
+    <script src="http://www.babylonjs.com/lib/babylon.glTFFileLoader.js"></script>
+    <script src="http://www.babylonjs.com/lib/babylon.objFileLoader.js"></script>
+    <script src="http://www.babylonjs.com/lib/babylon.stlFileLoader.js"></script>
     <link href="index.css" rel="stylesheet" />
 </head>
 <body>

+ 1 - 1
Playground/package.json

@@ -1,6 +1,6 @@
 {
   "name": "babylonjsplayground",
-  "version": "2.4.0",
+  "version": "2.5.0",
   "description": "Babylon.js is a 3D engine based on webgl and javascript",
   "main": "",
   "repository": { "url": "https://github.com/BabylonJS/Babylon.js/" },

+ 36 - 27
Playground/scripts/pbr.js

@@ -3,33 +3,37 @@
     var camera = new BABYLON.ArcRotateCamera("Camera", -Math.PI / 4, Math.PI / 2.5, 200, BABYLON.Vector3.Zero(), scene);
     camera.attachControl(canvas, true);
     camera.minZ = 0.1;
-
-    // Light
-    new BABYLON.PointLight("point", new BABYLON.Vector3(20, 20, 10), scene);
-
+    
     // Environment Texture
     var hdrTexture = new BABYLON.HDRCubeTexture("textures/room.hdr", scene, 512);
 
+    var exposure = 0.6;
+    var contrast = 1.6;
+
     // Skybox
     var hdrSkybox = BABYLON.Mesh.CreateBox("hdrSkyBox", 1000.0, scene);
-    var hdrSkyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
+    var hdrSkyboxMaterial = new BABYLON.PBRMaterial("skyBox", scene);
     hdrSkyboxMaterial.backFaceCulling = false;
     hdrSkyboxMaterial.reflectionTexture = hdrTexture.clone();
     hdrSkyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
-    hdrSkyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
-    hdrSkyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
+	hdrSkyboxMaterial.microSurface = 1.0;
+	hdrSkyboxMaterial.cameraExposure = exposure;
+	hdrSkyboxMaterial.cameraContrast = contrast;
     hdrSkyboxMaterial.disableLighting = true;
     hdrSkybox.material = hdrSkyboxMaterial;
     hdrSkybox.infiniteDistance = true;
 
     // Create meshes
-    var sphereGlass = BABYLON.Mesh.CreateSphere("sphere", 48, 30.0, scene);
-    sphereGlass.translate(new BABYLON.Vector3(1, 0, 0), -50);
+    var sphereGlass = BABYLON.Mesh.CreateSphere("sphereGlass", 48, 30.0, scene);
+    sphereGlass.translate(new BABYLON.Vector3(1, 0, 0), -60);
+
+    var sphereMetal = BABYLON.Mesh.CreateSphere("sphereMetal", 48, 30.0, scene);
+    sphereMetal.translate(new BABYLON.Vector3(1, 0, 0), 60);
 
-    var sphereMetal = BABYLON.Mesh.CreateSphere("sphere", 48, 30.0, scene);
-    sphereMetal.translate(new BABYLON.Vector3(1, 0, 0), 50);
+	var spherePlastic = BABYLON.Mesh.CreateSphere("spherePlastic", 48, 30.0, scene);
+    spherePlastic.translate(new BABYLON.Vector3(0, 0, 1), -60);
 
-    var woodPlank = BABYLON.MeshBuilder.CreateBox("plane", { width: 45, height: 1, depth: 90 }, scene);
+    var woodPlank = BABYLON.MeshBuilder.CreateBox("plane", { width: 65, height: 1, depth: 65 }, scene);
 
     // Create materials
     var glass = new BABYLON.PBRMaterial("glass", scene);
@@ -38,33 +42,37 @@
     glass.linkRefractionWithTransparency = true;
     glass.indexOfRefraction = 0.52;
     glass.alpha = 0;
-    glass.directIntensity = 0.0;
-    glass.environmentIntensity = 0.5;
-    glass.cameraExposure = 0.5;
-    glass.cameraContrast = 1.7;
+    glass.cameraExposure = exposure;
+    glass.cameraContrast = contrast;
     glass.microSurface = 1;
-    glass.reflectivityColor = new BABYLON.Color3(0.1, 0.1, 0.1);
-    glass.albedoColor = new BABYLON.Color3(0.3, 0.3, 0.3);
+    glass.reflectivityColor = new BABYLON.Color3(0.2, 0.2, 0.2);
+    glass.albedoColor = new BABYLON.Color3(0.85, 0.85, 0.85);
     sphereGlass.material = glass;
 
     var metal = new BABYLON.PBRMaterial("metal", scene);
     metal.reflectionTexture = hdrTexture;
-    metal.directIntensity = 0.3;
-    metal.environmentIntensity = 0.7;
-    metal.cameraExposure = 0.6;
+    metal.cameraExposure = exposure;
     metal.cameraContrast = 1.6;
     metal.microSurface = 0.96;
-    metal.reflectivityColor = new BABYLON.Color3(0.9, 0.9, 0.9);
-    metal.albedoColor = new BABYLON.Color3(1, 1, 1);
+    metal.reflectivityColor = new BABYLON.Color3(0.85, 0.85, 0.85);
+    metal.albedoColor = new BABYLON.Color3(0.01, 0.01, 0.01);
     sphereMetal.material = metal;
+	
+	var plastic = new BABYLON.PBRMaterial("plastic", scene);
+    plastic.reflectionTexture = hdrTexture;
+    plastic.cameraExposure = exposure;
+    plastic.cameraContrast = contrast;
+    plastic.microSurface = 0.96;
+	plastic.albedoColor = new BABYLON.Color3(0.206, 0.94, 1);
+	plastic.reflectivityColor = new BABYLON.Color3(0.07, 0.07, 0.07);
+    spherePlastic.material = plastic;
 
     var wood = new BABYLON.PBRMaterial("wood", scene);
     wood.reflectionTexture = hdrTexture;
-    wood.directIntensity = 1.5;
-    wood.environmentIntensity = 0.5;
+    wood.environmentIntensity = 1;
     wood.specularIntensity = 0.3;
-    wood.cameraExposure = 0.9;
-    wood.cameraContrast = 1.6;
+    wood.cameraExposure = exposure;
+    wood.cameraContrast = contrast;
 
     wood.reflectivityTexture = new BABYLON.Texture("textures/reflectivity.png", scene);
     wood.useMicroSurfaceFromReflectivityMapAlpha = true;
@@ -72,5 +80,6 @@
     wood.albedoColor = BABYLON.Color3.White();
     wood.albedoTexture = new BABYLON.Texture("textures/albedo.png", scene);
     woodPlank.material = wood;
+		
     return scene;
 };

+ 184 - 0
Tools/DevLoader/BabylonLoader.js

@@ -0,0 +1,184 @@
+// Old Fashion Way for IE 11 Devs. Yes, that still exists ;-)
+
+var BABYLONDEVTOOLS;
+(function (BABYLONDEVTOOLS) {
+    
+    var getJson = function(url, callback, errorCallback) {
+        var xhr = new XMLHttpRequest();
+        xhr.open('GET', url);
+        xhr.onload = function () {
+            if (this.status >= 200 && this.status < 300) {
+                var data = JSON.parse(xhr.response);
+                callback(data)
+            } else {
+                errorCallback({
+                status: this.status,
+                statusText: xhr.statusText
+                });
+            }
+        };
+        xhr.onerror = function () {
+            errorCallback({
+                status: this.status,
+                statusText: xhr.statusText
+            });
+        };
+        xhr.send();
+    }
+
+    var Loader = (function () {
+        var queue;
+        var callback;
+        var dependencies;
+        var useDist;
+        var min;
+        var babylonJSPath;
+
+        function Loader() {
+            queue = [];
+            dependencies = [];
+            callback = null;
+            min = (document.location.href.toLowerCase().indexOf('dist=min') > 0);
+            useDist = (min || document.location.href.toLowerCase().indexOf('dist=true') > 0);            
+            babylonJSPath = '';
+        }
+
+        Loader.prototype.root = function (newBabylonJSPath) {
+            babylonJSPath = newBabylonJSPath;
+            return this;
+        }
+
+        Loader.prototype.require = function (newDependencies) {
+            if (typeof newDependencies === 'string') {
+                dependencies.push(newDependencies);
+            }
+            else if (newDependencies) {
+                for (var i = 0; i < newDependencies.length; i++) {
+                    dependencies.push(newDependencies[i]);
+                }
+            }
+            return this;
+        }
+
+        Loader.prototype.onReady = function (newCallback) {
+            callback = newCallback;
+            return this;
+        }
+
+        Loader.prototype.dequeue = function () {
+            if (queue.length == 0) {
+                console.log('Scripts loaded');
+                BABYLON.Engine.ShadersRepository = "/src/Shaders/"; 
+                if (callback) {                    
+                    callback();
+                }
+                return;                
+            }
+
+            var url = queue.shift();
+            
+            var head = document.getElementsByTagName('head')[0];
+            var script = document.createElement('script');
+            script.type = 'text/javascript';
+            script.src = url;
+
+            var self = this;
+            script.onload = function() {
+                self.dequeue();
+            };
+            head.appendChild(script);
+        }
+
+        Loader.prototype.loadScript = function (url) {
+            queue.push(url);
+        }
+
+        Loader.prototype.loadScripts = function (urls) {
+            for (var i = 0; i< urls.length; i++) {
+                this.loadScript(urls[i]);
+            }
+        }
+
+        Loader.prototype.loadLibrary = function (library, module) {
+            if (!useDist) {
+                var i = 0;
+                for (; i < library.files.length; i++) {
+                    var file = library.files[i];
+                    file = file.replace('.ts', '.js');
+                    file = file.replace('../', '');
+                    file = babylonJSPath + '/' + file;
+                    this.loadScript(file);
+                }
+
+                if (library.shaderFiles && library.shaderFiles.length > 0) {
+                    var shaderFile = library.shaderFiles[0];
+                    var endDirectoryIndex = shaderFile.lastIndexOf('/');
+                    shaderFile = shaderFile.substring(0, endDirectoryIndex + 1);
+                    shaderFile += library.output.replace('.js', '.js.fx');
+                    file = file.replace('../', '');
+                    file = babylonJSPath + '/' + file;
+                    this.loadScript(shaderFile);
+                }
+            }
+            else if (min) {
+                this.loadScript(babylonJSPath + '/dist/preview release' + module.build.distOutputDirectory + library.output.replace('.js', '.min.js'));
+            }
+            else {
+                this.loadScript(babylonJSPath + '/dist/preview release' + module.build.distOutputDirectory + library.output);
+            }
+        }
+
+        Loader.prototype.loadModule = function (module) {
+            for (var i = 0; i< module.libraries.length; i++) {
+                this.loadLibrary(module.libraries[i], module);
+            }
+        }
+
+        Loader.prototype.loadBJSScripts = function (settings) {
+
+            if (!useDist) {
+                this.loadScripts(settings.core.files);
+                this.loadScripts(settings.extras.files);                
+                this.loadScript('/dist/preview release/babylon.canvas2d.max.js');
+            }
+            else if (min) {
+                this.loadScript('/dist/preview release/babylon.js');
+                this.loadScript('/dist/preview release/babylon.canvas2d.js');
+            }
+            else {
+                this.loadScript('/dist/preview release/babylon.max.js');
+                this.loadScript('/dist/preview release/babylon.canvas2d.max.js');
+            }
+
+            for (var i = 0; i< settings.modules.length; i++) {
+                this.loadModule(settings[settings.modules[i]]);
+            }
+        }
+
+        Loader.prototype.load = function (newCallback) {
+            var self = this;
+            if (newCallback) {
+                callback = newCallback;
+            }
+            getJson('/Tools/Gulp/config.json',
+                function(data) {
+                    self.loadBJSScripts(data);
+                    if (dependencies) {
+                        self.loadScripts(dependencies);
+                    }
+
+                    self.dequeue();
+                },
+                function(reason) { 
+                    console.error(reason);
+                }
+            );
+        };
+
+        return Loader;
+    }());    
+
+    var loader = new Loader();
+    BABYLONDEVTOOLS.Loader = loader;
+
+})(BABYLONDEVTOOLS || (BABYLONDEVTOOLS = {}))

+ 0 - 17
Tools/Gulp/.gitignore

@@ -1,17 +0,0 @@
-#NodeJS
-node_modules
-
-
-# OS or Editor folders
-*.DS_Store
-._*
-Thumbs.db
-.cache
-.project
-.settings
-.tmproj
-nbproject
-*.sublime-project
-*.sublime-workspace
-.directory
-build

+ 233 - 0
Tools/Gulp/config.json

@@ -218,11 +218,244 @@
       "../../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"
     ]
+  },
+
+  "modules": ["materialsLibrary", "postProcessesLibrary", "proceduralTexturesLibrary", "loaders", "serializers"],
+
+  "materialsLibrary": {
+    "libraries": [
+      {
+        "files": ["../../materialsLibrary/src/gradient/babylon.gradientMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/gradient/gradient.vertex.fx",
+          "../../materialsLibrary/src/gradient/gradient.fragment.fx"
+        ],
+        "output": "babylon.gradientMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/normal/babylon.normalMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/normal/normal.vertex.fx",
+          "../../materialsLibrary/src/normal/normal.fragment.fx"
+        ],
+        "output": "babylon.normalMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/lava/babylon.lavaMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/lava/lava.vertex.fx",
+          "../../materialsLibrary/src/lava/lava.fragment.fx"
+        ],
+        "output": "babylon.lavaMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/simple/babylon.simpleMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/simple/simple.vertex.fx",
+          "../../materialsLibrary/src/simple/simple.fragment.fx"
+        ],
+        "output": "babylon.simpleMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/water/babylon.waterMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/water/water.vertex.fx",
+          "../../materialsLibrary/src/water/water.fragment.fx"
+        ],
+        "output": "babylon.waterMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/fire/babylon.fireMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/fire/fire.vertex.fx",
+          "../../materialsLibrary/src/fire/fire.fragment.fx"
+        ],
+        "output": "babylon.fireMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/fur/babylon.furMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/fur/fur.vertex.fx",
+          "../../materialsLibrary/src/fur/fur.fragment.fx"
+        ],
+        "output": "babylon.furMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/terrain/babylon.terrainMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/terrain/terrain.vertex.fx",
+          "../../materialsLibrary/src/terrain/terrain.fragment.fx"
+        ],
+        "output": "babylon.terrainMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/triPlanar/babylon.triPlanarMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/triPlanar/triplanar.vertex.fx",
+          "../../materialsLibrary/src/triPlanar/triplanar.fragment.fx"
+        ],
+        "output": "babylon.triPlanarMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/sky/babylon.skyMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/sky/sky.vertex.fx",
+          "../../materialsLibrary/src/sky/sky.fragment.fx"
+        ],
+        "output": "babylon.skyMaterial.js"
+      },
+      {
+        "files": ["../../materialsLibrary/src/grid/babylon.gridMaterial.ts"],
+        "shaderFiles": [
+          "../../materialsLibrary/src/grid/grid.vertex.fx",
+          "../../materialsLibrary/src/grid/grid.fragment.fx",
+          "../../materialsLibrary/src/grid/legacygrid.vertex.fx",
+          "../../materialsLibrary/src/grid/legacygrid.fragment.fx"
+        ],
+        "output": "babylon.gridMaterial.js"
+      }
+    ],
+    "build": {
+      "srcOutputDirectory": "../../materialsLibrary/",
+      "distOutputDirectory": "/materialsLibrary/"
+    }
+  },
+
+  "postProcessesLibrary": {
+      "libraries": [    
+      {
+        "files": ["../../postProcessLibrary/src/asciiArt/babylon.asciiArtPostProcess.ts"],
+        "shaderFiles": [
+          "../../postProcessLibrary/src/asciiArt/asciiart.fragment.fx"
+        ],
+        "output": "babylon.asciiArtPostProcess.js"
+      },
+      {
+        "files": ["../../postProcessLibrary/src/digitalRain/babylon.digitalRainPostProcess.ts"],
+        "shaderFiles": [
+          "../../postProcessLibrary/src/digitalRain/digitalrain.fragment.fx"
+        ],
+        "output": "babylon.digitalRainPostProcess.js"
+      }
+    ],
+    "build": {
+      "srcOutputDirectory": "../../postProcessLibrary/",
+      "distOutputDirectory": "/postProcessesLibrary/"
+    }
+  },
+
+  "proceduralTexturesLibrary": {
+    "libraries": [
+      {
+        "files": ["../../proceduralTexturesLibrary/src/wood/babylon.woodProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/wood/woodProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.woodProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/fire/babylon.fireProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/fire/fireProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.fireProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/cloud/babylon.cloudProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/cloud/cloudProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.cloudProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/grass/babylon.grassProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/grass/grassProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.grassProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/road/babylon.roadProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/road/roadProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.roadProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/brick/babylon.brickProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/brick/brickProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.brickProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/marble/babylon.marbleProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/marble/marbleProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.marbleProceduralTexture.js"
+      },
+      {
+        "files": ["../../proceduralTexturesLibrary/src/starfield/babylon.starfieldProceduralTexture.ts"],
+        "shaderFiles": [
+          "../../proceduralTexturesLibrary/src/starfield/starfieldProceduralTexture.fragment.fx"
+        ],
+        "output": "babylon.starfieldProceduralTexture.js"
+      }
+    ],
+    "build": {
+      "srcOutputDirectory": "../../proceduralTexturesLibrary/",      
+      "distOutputDirectory": "/proceduralTexturesLibrary/"
+    }
+  },
+
+  "loaders": {
+    "libraries": [
+     {
+      "files": ["../../loaders/src/STL/babylon.stlFileLoader.ts"],
+      "output": "babylon.stlFileLoader.js"
+    },
+
+    {
+      "files": ["../../loaders/src/OBJ/babylon.objFileLoader.ts"],
+      "output": "babylon.objFileLoader.js"
+    },
+
+    {
+      "files": [
+        "../../loaders/src/glTF/babylon.glTFFileLoaderInterfaces.ts",
+        "../../loaders/src/glTF/babylon.glTFFileLoader.ts",
+        "../../loaders/src/glTF/babylon.glTFFileLoaderUtils.ts",
+        "../../loaders/src/glTF/babylon.glTFFileLoaderExtension.ts",
+        "../../loaders/src/glTF/babylon.glTFBinaryExtension.ts"
+      ],
+      "output": "babylon.glTFFileLoader.js"
+    }],
+
+    "build": {
+      "srcOutputDirectory": "../../loaders/",
+      "distOutputDirectory": "/loaders/"
+    }
+  },
+
+  "serializers": {
+      "libraries": [    
+      {
+        "files": ["../../serializers/src/OBJ/babylon.objSerializer.ts"],
+        "output": "babylon.objSerializer.js"
+      }
+    ],
+    "build": {
+      "srcOutputDirectory": "../../serializers/",
+      "distOutputDirectory": "/serializers/"
+    }
   }
 }

+ 5 - 4
postProcessLibrary/gulp-srcToVariable.js

@@ -5,9 +5,9 @@ var path = require('path');
 var File = gutil.File;
 
 // Consts
-const PLUGIN_NAME = 'gulp-srcToVariable';
+const PLUGIN_NAME = 'gulp-appendSrcToVariable';
 
-var srcToVariable = function srcToVariable(varName, asMap, namingCallback) {
+var appendSrcToVariable = function appendSrcToVariable(varName, namingCallback, output) {
 
     var content;
     var firstFile;
@@ -48,7 +48,8 @@ var srcToVariable = function srcToVariable(varName, asMap, namingCallback) {
             return;
         }
 
-        var joinedPath = path.join(firstFile.base, varName);
+        var pathObject = path.parse(firstFile.path);
+        var joinedPath = path.join(pathObject.dir, output);
 
         var joinedFile = new File({
             cwd: firstFile.cwd,
@@ -65,4 +66,4 @@ var srcToVariable = function srcToVariable(varName, asMap, namingCallback) {
     return through.obj(bufferContents, endStream);
 }
 
-module.exports = srcToVariable;
+module.exports = appendSrcToVariable;

+ 186 - 61
Tools/Gulp/gulpfile.js

@@ -3,21 +3,25 @@ var uglify = require("gulp-uglify");
 var typescript = require("gulp-typescript");
 var sourcemaps = require("gulp-sourcemaps");
 var srcToVariable = require("gulp-content-to-variable");
+var appendSrcToVariable = require("./gulp-appendSrcToVariable");
 var addDtsExport = require("./gulp-addDtsExport");
 var addModuleExports = require("./gulp-addModuleExports");
 var merge2 = require("merge2");
 var concat = require("gulp-concat");
 var rename = require("gulp-rename");
 var cleants = require('gulp-clean-ts-extends');
-var changed = require('gulp-changed');
+var changedInPlace = require('gulp-changed-in-place');
 var runSequence = require('run-sequence');
 var replace = require("gulp-replace");
 var uncommentShader = require("./gulp-removeShaderComments");
 var expect = require('gulp-expect-file');
 var optimisejs = require('gulp-optimize-js');
+var webserver = require('gulp-webserver');
+var path = require('path');
 
 var config = require("./config.json");
 
+var debug = require('gulp-debug');
 var includeShadersStream;
 var shadersStream;
 var workersStream;
@@ -25,9 +29,34 @@ var workersStream;
 var extendsSearchRegex = /var\s__extends[\s\S]+?\};/g;
 var decorateSearchRegex = /var\s__decorate[\s\S]+?\};/g;
 
-//function to convert the shaders' filenames to variable names.
+/**
+ * TS configurations shared in the gulp file.
+ */
+var tsConfig = {
+    noExternalResolve: true,
+    target: 'ES5',
+    declarationFiles: true,
+    typescript: require('typescript'),
+    experimentalDecorators: true,
+    isolatedModules: false
+};
+var tsProject = typescript.createProject(tsConfig);
+
+var externalTsConfig = {
+    noExternalResolve: false,
+    target: 'ES5',
+    declarationFiles: true,
+    typescript: require('typescript'),
+    experimentalDecorators: true,
+    isolatedModules: false
+};
+
+/*
+ * Shader Management.
+ */
 function shadersName(filename) {
-    return filename.replace('.fragment', 'Pixel')
+    return path.basename(filename)
+        .replace('.fragment', 'Pixel')
         .replace('.vertex', 'Vertex')
         .replace('.fx', 'Shader');
 }
@@ -36,6 +65,9 @@ function includeShadersName(filename) {
     return filename.replace('.fx', '');
 }
 
+/*
+ * Main necessary files stream Management.
+ */
 gulp.task("includeShaders", function (cb) {
     includeShadersStream = config.includeShadersDirectories.map(function (shadersDef) {
         return gulp.src(shadersDef.files).
@@ -72,55 +104,9 @@ gulp.task("workers", function (cb) {
     cb();
 });
 
-/*
-Compiles all typescript files and creating a declaration file.
-*/
-gulp.task('typescript-compile', function () {
-    var tsResult = gulp.src(config.core.typescript).
-        pipe(typescript({
-            noExternalResolve: true,
-            target: 'ES5',
-            declarationFiles: true,
-            typescript: require('typescript'),
-            experimentalDecorators: true
-        }));
-    //If this gulp task is running on travis, file the build!
-    if (process.env.TRAVIS) {
-        var error = false;
-        tsResult.on('error', function () {
-            error = true;
-        }).on('end', function () {
-            if (error) {
-                console.log('Typescript compile failed');
-                process.exit(1);
-            }
-        });
-    }
-    return merge2([
-        tsResult.dts
-            .pipe(concat(config.build.declarationFilename))
-            //.pipe(addDtsExport("BABYLON"))
-            .pipe(gulp.dest(config.build.outputDirectory)),
-        tsResult.js
-            .pipe(gulp.dest(config.build.srcOutputDirectory))
-    ])
-});
-
-gulp.task('typescript-sourcemaps', function () {
-    var tsResult = gulp.src(config.core.typescript)
-        .pipe(sourcemaps.init()) // sourcemaps init. currently redundant directory def, waiting for this - https://github.com/floridoo/gulp-sourcemaps/issues/111
-        .pipe(typescript({
-            noExternalResolve: true,
-            target: 'ES5',
-            declarationFiles: true,
-            typescript: require('typescript'),
-            experimentalDecorators: true
-        }));
-    return tsResult.js
-        .pipe(sourcemaps.write("./")) // sourcemaps are written.
-        .pipe(gulp.dest(config.build.srcOutputDirectory));
-});
-
+/**
+ * Build tasks to concat minify uflify optimise the BJS js in different flavor (workers...).
+ */
 gulp.task("buildCore", ["shaders"], function () {
     return merge2(
         gulp.src(config.core.files).        
@@ -179,27 +165,166 @@ gulp.task("build", ["workers", "shaders"], function () {
         .pipe(gulp.dest(config.build.outputDirectory));
 });
 
-gulp.task("typescript", function (cb) {
-    runSequence("typescript-compile", "default", cb);
+/*
+* Compiles all typescript files and creating a js and a declaration file.
+*/
+gulp.task('typescript-compile', function () {
+    var tsResult = gulp.src(config.core.typescript)
+        .pipe(sourcemaps.init())
+        .pipe(typescript(tsProject));
+
+    //If this gulp task is running on travis, file the build!
+    if (process.env.TRAVIS) {
+        var error = false;
+        tsResult.on('error', function () {
+            error = true;
+        }).on('end', function () {
+            if (error) {
+                console.log('Typescript compile failed');
+                process.exit(1);
+            }
+        });
+    }
+
+    return merge2([
+        tsResult.dts
+            .pipe(concat(config.build.declarationFilename))
+            //.pipe(addDtsExport("BABYLON"))
+            .pipe(gulp.dest(config.build.outputDirectory)),
+        tsResult.js
+            .pipe(sourcemaps.write("./", 
+                {
+                    includeContent:false, 
+                    sourceRoot: (filePath) => {
+                        return ''; 
+                    }
+                }))
+            .pipe(gulp.dest(config.build.srcOutputDirectory))
+    ])
 });
 
 /**
- * The default task, call the tasks: build
+ * Helper methods to build external library (mat, post processes, ...).
+ */
+var buildExternalLibraries = function(settings) {
+    var tasks = settings.libraries.map(function (library) {
+        return buildExternalLibrary(library, settings); 
+    });
+
+    return merge2(tasks);
+}
+
+var buildExternalLibrary= function(library, settings) {
+    var tsProcess = gulp.src(library.files, {base: settings.build.srcOutputDirectory})
+        .pipe(sourcemaps.init())
+        .pipe(typescript(externalTsConfig));
+
+    var shader = gulp.src(library.shaderFiles || [], {base: settings.build.srcOutputDirectory} )
+            .pipe(uncommentShader())            
+            .pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, library.output + '.fx'))
+            .pipe(gulp.dest(settings.build.srcOutputDirectory));
+
+    var dev = tsProcess.js.pipe(sourcemaps.write("./", {
+                includeContent:false, 
+                sourceRoot: (filePath) => {
+                    return ''; 
+                }
+            }))
+            .pipe(gulp.dest(settings.build.srcOutputDirectory));
+
+    var outputDirectory = config.build.outputDirectory + settings.build.distOutputDirectory;
+    var dist = merge2(tsProcess.js, shader)
+        .pipe(concat(library.output))
+        .pipe(gulp.dest(outputDirectory))
+        .pipe(cleants())
+        .pipe(replace(extendsSearchRegex, ""))
+        .pipe(replace(decorateSearchRegex, ""))
+        .pipe(rename({extname: ".min.js"}))
+        .pipe(uglify())
+        .pipe(optimisejs())
+        .pipe(gulp.dest(outputDirectory));
+
+    return merge2(dev, dist);
+}
+
+/**
+ * The default task, concat and min the main BJS files.
  */
 gulp.task('default', function (cb) {
     runSequence("buildNoWorker", "build", "buildCore", cb);
 });
 
 /**
- * Watch task, will call the default task if a js file is updated.
+ * Build the releasable files.
  */
-gulp.task('watch', function () {
-    gulp.watch(config.core.typescript, ['build']);
+gulp.task("typescript", function (cb) {
+    runSequence("typescript-compile", "default", cb);
+});
+
+/**
+ * Dynamic module creation.
+ */
+config.modules.map(function (module) {
+    gulp.task(module, function () {
+        return buildExternalLibraries(config[module]);
+    });
+});
+
+gulp.task("typescript-libraries", config.modules, function () {
+});
+
+/**
+ * Do it all.
+ */
+gulp.task("typescript-all", function (cb) {
+    runSequence("typescript", "typescript-libraries", cb);
+});
+
+/**
+ * Watch ts files and fire repective tasks.
+ */
+gulp.task('watch', [], function () {
+    var tasks = [gulp.watch(config.core.typescript, ['typescript-compile'])];
+
+    config.modules.map(function (module) { 
+        config[module].libraries.map(function (library) {
+            
+            tasks.push(gulp.watch(library.files, function() { 
+                console.log(library.output);
+                return buildExternalLibrary(library, config[module])
+                .pipe(debug()); 
+            }));
+            tasks.push(gulp.watch(library.shaderFiles, function() { 
+                console.log(library.output);
+                return buildExternalLibrary(library, config[module])
+                .pipe(debug()) 
+            }));
+        }); 
+    });
+    
+    return tasks;
 });
 
 /**
- * Watch typescript task, will call the default typescript task if a typescript file is updated.
+ * Embedded local dev env management.
  */
-gulp.task('watch-typescript', function () {
-    gulp.watch(config.core.typescript, ["typescript-compile", "build"]);
+gulp.task('deployLocalDev', function () {
+    gulp.src('../../localDev/template/**.*')
+        .pipe(gulp.dest('../../localDev/src/'));
 });
+
+/**
+ * Embedded webserver for test convenience.
+ */
+gulp.task('webserver', function () {
+    gulp.src('../../.').pipe(webserver({
+      port: 1338,
+      livereload: false
+    }));
+});
+
+/**
+ * Combine Webserver and Watch as long as vscode does not handle multi tasks.
+ */
+gulp.task('run', ['watch', 'webserver'], function () {
+});

+ 8 - 3
Tools/Gulp/package.json

@@ -9,7 +9,7 @@
   "devDependencies": {
     "gulp": "^3.8.11",
     "gulp-uglify": "~1.5.3",
-    "gulp-sourcemaps": "~1.5.2",
+    "gulp-sourcemaps": "~1.9.1",
     "typescript": "^1.7.5",
     "gulp-typescript": "~2.13.0",
     "through2": "~0.6.5",
@@ -18,11 +18,16 @@
     "merge2": "~0.3.5",
     "gulp-rename": "~1.2.2",
     "gulp-clean-ts-extends": "~0.1.1",
-    "gulp-changed": "~1.2.1",
+    "gulp-changed-in-place": "2.0.3",
     "run-sequence": "~1.1.0",
     "gulp-replace": "~0.5.3",
     "gulp-content-to-variable": "^0.1.0",
     "gulp-expect-file": "^0.0.7",
-    "gulp-optimize-js": "^1.0.2"
+    "gulp-optimize-js": "^1.0.2",
+    "gulp-webserver": "^0.9.1",
+    "gulp-debug": "^3.0.0"
+  },
+  "scripts": {
+    "install": "npm --prefix ../../Playground/ install ../../Playground/ && gulp typescript-compile && gulp typescript-libraries && gulp deployLocalDev"
   }
 }

+ 24 - 6
Tools/Gulp/readme.md

@@ -41,11 +41,6 @@ Will be generated :
 - babylon.noworker.js (minified version without collisions workers)
 - babylon.max.js (unminified)
 
-### Build Babylon.js when you save a javascript file:
-```
-gulp watch
-```
-
 ## From the typescript source
 ### Build Babylon.js from the typescript files:
 
@@ -62,12 +57,35 @@ Be aware that all js files content will be overwrite.
 
 ### Build Babylon.js when you save a typescript file:
 ```
-gulp watch-typescript
+gulp watch
+```
+
+### Run Integrated Web Server and watch for changes:
+```
+gulp run
 ```
 
+you can now freely test in the following URLs:
+- [Playground]("http://localhost:1338/Playground/index-local.html")
+- [Materials Library]("http://localhost:1338/materialsLibrary/index.html")
+- [Postprocess Library]("http://localhost:1338/postProcessLibrary/index.html")
+- [Procedural Textures Library]("http://localhost:1338/proceduralTexturesLibrary/index.html")
+- [Local Dev Samples]("http://localhost:1338/localDev/index.html")
+
 ### Compile all the typscript files to their javascript respective files including declaration file
 ```
 gulp typescript-compile
 ```
 
 Be aware that all js files content will be overwritten.
+
+### Compile all the libraries
+```
+gulp typescript-libraries
+```
+
+Be aware that all js files content will be overwritten.
+
+### Compile all the typscript and the library
+```
+gulp typescript-all

+ 32 - 0
Web.config

@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+
+<!--
+  For more information on how to configure your ASP.NET application, please visit
+  http://go.microsoft.com/fwlink/?LinkId=169433
+  -->
+
+<configuration>
+  <system.web>
+    <compilation debug="true" targetFramework="4.5" />
+    <httpRuntime targetFramework="4.5" />
+  </system.web>
+  <system.webServer>
+    <staticContent>
+      <!--<mimeMap fileExtension=".json" mimeType="application/text" />-->
+      <mimeMap fileExtension=".hdr" mimeType="application/hdr" />
+      <mimeMap fileExtension=".obj" mimeType="application/obj" />
+      <mimeMap fileExtension=".dds" mimeType="application/dds" />
+      <mimeMap fileExtension=".tga" mimeType="application/tga" />
+      <mimeMap fileExtension=".fx" mimeType="application/fx" />
+      <mimeMap fileExtension=".babylon" mimeType="application/babylon" />
+      <mimeMap fileExtension=".babylonmeshdata" mimeType="application/babylonmeshdata" />
+      <mimeMap fileExtension=".babylonbinarymeshdata" mimeType="application/babylonbinarymeshdata" />
+      <mimeMap fileExtension=".webp" mimeType="image/webp" />
+      <mimeMap fileExtension=".wdp" mimeType="image/vnd.ms-photo" />
+      <!--<mimeMap fileExtension=".manifest" mimeType="text/cache-manifest" />-->
+      <!--<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />-->
+      <!--<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />-->
+      <!--<mimeMap fileExtension=".mp4" mimeType="video/mp4" />-->
+    </staticContent>
+  </system.webServer>
+</configuration>

proceduralTexturesLibrary/test/meshes/Rabbit.babylon → assets/meshes/Rabbit.babylon


proceduralTexturesLibrary/test/refs/dat.gui.min.js → assets/refs/dat.gui.min.js


materialsLibrary/test/textures/ColorGrading.3DL → assets/textures/ColorGrading.3DL


proceduralTexturesLibrary/test/textures/amiga.jpg → assets/textures/amiga.jpg


proceduralTexturesLibrary/test/textures/fire/diffuse.png → assets/textures/fire/diffuse.png


proceduralTexturesLibrary/test/textures/fire/distortion.png → assets/textures/fire/distortion.png


proceduralTexturesLibrary/test/textures/fire/opacity.png → assets/textures/fire/opacity.png


proceduralTexturesLibrary/test/textures/floor.png → assets/textures/floor.png


proceduralTexturesLibrary/test/textures/floor_bump.PNG → assets/textures/floor_bump.PNG


proceduralTexturesLibrary/test/textures/grass.png → assets/textures/grass.png


proceduralTexturesLibrary/test/textures/grassn.png → assets/textures/grassn.png


materialsLibrary/test/textures/hdr/environment.hdr → assets/textures/hdr/environment.hdr


materialsLibrary/test/textures/heightMap.png → assets/textures/heightMap.png


proceduralTexturesLibrary/test/textures/lava/cloud.png → assets/textures/lava/cloud.png


proceduralTexturesLibrary/test/textures/lava/lavatile.jpg → assets/textures/lava/lavatile.jpg


materialsLibrary/test/textures/leopard_fur.JPG → assets/textures/leopard_fur.JPG


materialsLibrary/test/textures/mixMap.png → assets/textures/mixMap.png


proceduralTexturesLibrary/test/textures/rock.png → assets/textures/rock.png


proceduralTexturesLibrary/test/textures/rockn.png → assets/textures/rockn.png


proceduralTexturesLibrary/test/textures/skybox/TropicalSunnyDay_nx.jpg → assets/textures/skybox/TropicalSunnyDay_nx.jpg


proceduralTexturesLibrary/test/textures/skybox/TropicalSunnyDay_ny.jpg → assets/textures/skybox/TropicalSunnyDay_ny.jpg


proceduralTexturesLibrary/test/textures/skybox/TropicalSunnyDay_nz.jpg → assets/textures/skybox/TropicalSunnyDay_nz.jpg


+ 0 - 0
proceduralTexturesLibrary/test/textures/skybox/TropicalSunnyDay_px.jpg


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff