瀏覽代碼

Smoe fixes for opacity fresnel

David Catuhe 11 年之前
父節點
當前提交
c3587ee623

+ 0 - 27
Babylon/Math/babylon.math.ts

@@ -303,33 +303,6 @@
             return otherVector && this.x === otherVector.x && this.y === otherVector.y;
         }
 
-        public multiplyInPlace(otherVector: Vector2): void {
-            this.x *= otherVector.x;
-            this.y *= otherVector.y;
-        }
-
-        public multiply(otherVector: Vector2): Vector2 {
-            return new Vector2(this.x * otherVector.x, this.y * otherVector.y);
-        }
-
-        public multiplyToRef(otherVector: Vector2, result: Vector2): void {
-            result.x = this.x * otherVector.x;
-            result.y = this.y * otherVector.y;
-        }
-
-        public multiplyByFloats(x: number, y: number): Vector2 {
-            return new Vector2(this.x * x, this.y * y);
-        }
-
-        public divide(otherVector: Vector2): Vector2 {
-            return new Vector2(this.x / otherVector.x, this.y / otherVector.y);
-        }
-
-        public divideToRef(otherVector: Vector2, result: Vector2): void {
-            result.x = this.x / otherVector.x;
-            result.y = this.y / otherVector.y;
-        }
-		
         // Properties
         public length(): number {
             return Math.sqrt(this.x * this.x + this.y * this.y);

+ 1 - 1
Babylon/Sprites/babylon.sprite.ts

@@ -7,7 +7,7 @@
         public cellIndex = 0;
         public invertU = 0;
         public invertV = 0;
-        public disposeWhenFinishedAnimating: () => void;
+        public disposeWhenFinishedAnimating: boolean;
         public animations = new Array<Animation>();
 
         private _animationStarted = false;

+ 28 - 0
Babylon/Tools/babylon.sceneSerializer.js

@@ -40,6 +40,18 @@
         return serializationObject;
     };
 
+    var serializeFresnelParameter = function (fresnelParameter) {
+        var serializationObject = {};
+
+        serializationObject.isEnabled = fresnelParameter.isEnabled;
+        serializationObject.leftColor = fresnelParameter.leftColor;
+        serializationObject.rightColor = fresnelParameter.rightColor;
+        serializationObject.bias = fresnelParameter.bias;
+        serializationObject.power = fresnelParameter.power;
+
+        return serializationObject;
+    };
+
     var serializeCamera = function (camera) {
         var serializationObject = {};
         serializationObject.name = camera.name;
@@ -172,6 +184,10 @@
             serializationObject.diffuseTexture = serializeTexture(material.diffuseTexture);
         }
 
+        if (material.diffuseFresnelParameters) {
+            serializationObject.diffuseFresnelParameters = serializeFresnelParameter(material.diffuseFresnelParameters);
+        }
+
         if (material.ambientTexture) {
             serializationObject.ambientTexture = serializeTexture(material.ambientTexture);
         }
@@ -180,14 +196,26 @@
             serializationObject.opacityTexture = serializeTexture(material.opacityTexture);
         }
 
+        if (material.opacityFresnelParameters) {
+            serializationObject.opacityFresnelParameters = serializeFresnelParameter(material.opacityFresnelParameters);
+        }
+
         if (material.reflectionTexture) {
             serializationObject.reflectionTexture = serializeTexture(material.reflectionTexture);
         }
 
+        if (material.reflectionFresnelParameters) {
+            serializationObject.reflectionFresnelParameters = serializeFresnelParameter(material.reflectionFresnelParameters);
+        }
+
         if (material.emissiveTexture) {
             serializationObject.emissiveTexture = serializeTexture(material.emissiveTexture);
         }
 
+        if (material.emissiveFresnelParameters) {
+            serializationObject.emissiveFresnelParameters = serializeFresnelParameter(material.emissiveFresnelParameters);
+        }
+
         if (material.specularTexture) {
             serializationObject.specularTexture = serializeTexture(material.specularTexture);
         }

+ 28 - 0
Babylon/Tools/babylon.sceneSerializer.ts

@@ -40,6 +40,18 @@
         return serializationObject;
     };
 
+    var serializeFresnelParameter = (fresnelParameter: FresnelParameters): any => {
+        var serializationObject: any = {};
+
+        serializationObject.isEnabled = fresnelParameter.isEnabled;
+        serializationObject.leftColor = fresnelParameter.leftColor;
+        serializationObject.rightColor = fresnelParameter.rightColor;
+        serializationObject.bias = fresnelParameter.bias;
+        serializationObject.power = fresnelParameter.power;
+
+        return serializationObject;
+    }
+
     var serializeCamera = (camera: FreeCamera): any => {
         var serializationObject:any = {};
         serializationObject.name = camera.name;
@@ -172,6 +184,10 @@
             serializationObject.diffuseTexture = serializeTexture(material.diffuseTexture);
         }
 
+        if (material.diffuseFresnelParameters) {
+            serializationObject.diffuseFresnelParameters = serializeFresnelParameter(material.diffuseFresnelParameters);
+        }
+
         if (material.ambientTexture) {
             serializationObject.ambientTexture = serializeTexture(material.ambientTexture);
         }
@@ -180,14 +196,26 @@
             serializationObject.opacityTexture = serializeTexture(material.opacityTexture);
         }
 
+        if (material.opacityFresnelParameters) {
+            serializationObject.opacityFresnelParameters = serializeFresnelParameter(material.opacityFresnelParameters);
+        }
+
         if (material.reflectionTexture) {
             serializationObject.reflectionTexture = serializeTexture(material.reflectionTexture);
         }
 
+        if (material.reflectionFresnelParameters) {
+            serializationObject.reflectionFresnelParameters = serializeFresnelParameter(material.reflectionFresnelParameters);
+        }
+
         if (material.emissiveTexture) {
             serializationObject.emissiveTexture = serializeTexture(material.emissiveTexture);
         }
 
+        if (material.emissiveFresnelParameters) {
+            serializationObject.emissiveFresnelParameters = serializeFresnelParameter(material.emissiveFresnelParameters);
+        }
+
         if (material.specularTexture) {
             serializationObject.specularTexture = serializeTexture(material.specularTexture);
         }

+ 1 - 1
Babylon/babylon.engine.js

@@ -1413,7 +1413,7 @@
                     texture._width = info.width;
                     texture._height = info.height;
                     texture.isReady = true;
-                });
+                }, null, null, true);
             } else {
                 cascadeLoad(rootUrl, 0, [], scene, function (imgs) {
                     var width = getExponantOfTwo(imgs[0].width, _this._caps.maxCubemapTextureSize);

+ 1 - 1
Babylon/babylon.engine.ts

@@ -1418,7 +1418,7 @@
                     texture._width = info.width;
                     texture._height = info.height;
                     texture.isReady = true;
-                });
+                }, null, null, true);
             } else {
                 cascadeLoad(rootUrl, 0, [], scene, imgs => {
                     var width = getExponantOfTwo(imgs[0].width, this._caps.maxCubemapTextureSize);

二進制
Exporters/3ds Max/Max2Babylon-0.8.0.zip


+ 6 - 0
Exporters/3ds Max/Max2Babylon/Exporter/BabylonExporter.Material.cs

@@ -87,6 +87,12 @@ namespace Max2Babylon
                 if (fresnelParameters != null)
                 {
                     babylonMaterial.emissiveFresnelParameters = fresnelParameters;
+                    if (babylonMaterial.emissive[0] == 0 && 
+                        babylonMaterial.emissive[1] == 0 &&
+                        babylonMaterial.emissive[2] == 0)
+                    {
+                        babylonMaterial.emissive = new float[]{1, 1, 1};
+                    }
                 }
                 
                 babylonMaterial.opacityTexture = ExportTexture(stdMat, 6, out fresnelParameters, babylonScene, false, true);   // Opacity

+ 16 - 30
Exporters/3ds Max/Max2Babylon/Tools/WebServer.cs

@@ -28,24 +28,11 @@ namespace Max2Babylon
             margin: 0;
             overflow: hidden;
         }
-
-        #waitLabel {
-            position: absolute;
-            width: 100%;
-            height: 100%;
-            font-size: 40px;
-            text-align: center;
-            top: 50%;
-            margin-top: -20px;
-            font-family: Arial;
-            font-weight: bold;
-        }
     </style>
 </head>
 
 <body>
     <canvas id='canvas'></canvas>
-    <div id='waitLabel'>loading....please wait</div>
     <script type='text/javascript'>
         var canvas = document.getElementById('canvas');
         var engine = new BABYLON.Engine(canvas, true);
@@ -60,8 +47,6 @@ namespace Max2Babylon
             window.addEventListener('resize', function () {
                 engine.resize();
             });
-
-            document.getElementById('waitLabel').style.display = 'none';
         });
     </script>
 </body>
@@ -73,28 +58,28 @@ namespace Max2Babylon
 
         static WebServer()
         {
-            listener = new HttpListener();
-
-            if (!HttpListener.IsSupported)
-            {
-                IsSupported = false;
-                return;
-            }
-
             try
             {
+                listener = new HttpListener();
+
+                if (!HttpListener.IsSupported)
+                {
+                    IsSupported = false;
+                    return;
+                }
+
                 listener.Prefixes.Add("http://localhost:" + Port + "/");
                 listener.Start();
+
+
+                runningTask = Task.Run(() => Listen());
+
+                IsSupported = true;
             }
-            catch 
+            catch
             {
                 IsSupported = false;
-                return;
             }
-
-            runningTask = Task.Run(() => Listen());
-
-            IsSupported = true;
         }
 
         public static string SceneFilename { get; set; }
@@ -110,7 +95,8 @@ namespace Max2Babylon
                     var request = context.Request;
                     var url = request.Url;
 
-                    if (string.IsNullOrEmpty(url.PathAndQuery) || url.PathAndQuery == "/")
+                    context.Response.AddHeader("Cache-Control", "no-cache");
+                    if (string.IsNullOrEmpty(url.LocalPath) || url.LocalPath == "/")
                     {
                         var responseText = HtmlResponseText.Replace("###SCENE###", SceneFilename);
                         WriteResponse(context, responseText);

+ 29 - 1
babylon.1.14-beta-debug.js

@@ -4205,7 +4205,7 @@ var BABYLON;
                     texture._width = info.width;
                     texture._height = info.height;
                     texture.isReady = true;
-                });
+                }, null, null, true);
             } else {
                 cascadeLoad(rootUrl, 0, [], scene, function (imgs) {
                     var width = getExponantOfTwo(imgs[0].width, _this._caps.maxCubemapTextureSize);
@@ -16787,6 +16787,18 @@ var BABYLON;
         return serializationObject;
     };
 
+    var serializeFresnelParameter = function (fresnelParameter) {
+        var serializationObject = {};
+
+        serializationObject.isEnabled = fresnelParameter.isEnabled;
+        serializationObject.leftColor = fresnelParameter.leftColor;
+        serializationObject.rightColor = fresnelParameter.rightColor;
+        serializationObject.bias = fresnelParameter.bias;
+        serializationObject.power = fresnelParameter.power;
+
+        return serializationObject;
+    };
+
     var serializeCamera = function (camera) {
         var serializationObject = {};
         serializationObject.name = camera.name;
@@ -16919,6 +16931,10 @@ var BABYLON;
             serializationObject.diffuseTexture = serializeTexture(material.diffuseTexture);
         }
 
+        if (material.diffuseFresnelParameters) {
+            serializationObject.diffuseFresnelParameters = serializeFresnelParameter(material.diffuseFresnelParameters);
+        }
+
         if (material.ambientTexture) {
             serializationObject.ambientTexture = serializeTexture(material.ambientTexture);
         }
@@ -16927,14 +16943,26 @@ var BABYLON;
             serializationObject.opacityTexture = serializeTexture(material.opacityTexture);
         }
 
+        if (material.opacityFresnelParameters) {
+            serializationObject.opacityFresnelParameters = serializeFresnelParameter(material.opacityFresnelParameters);
+        }
+
         if (material.reflectionTexture) {
             serializationObject.reflectionTexture = serializeTexture(material.reflectionTexture);
         }
 
+        if (material.reflectionFresnelParameters) {
+            serializationObject.reflectionFresnelParameters = serializeFresnelParameter(material.reflectionFresnelParameters);
+        }
+
         if (material.emissiveTexture) {
             serializationObject.emissiveTexture = serializeTexture(material.emissiveTexture);
         }
 
+        if (material.emissiveFresnelParameters) {
+            serializationObject.emissiveFresnelParameters = serializeFresnelParameter(material.emissiveFresnelParameters);
+        }
+
         if (material.specularTexture) {
             serializationObject.specularTexture = serializeTexture(material.specularTexture);
         }

文件差異過大導致無法顯示
+ 7 - 7
babylon.1.14-beta.js