Переглянути джерело

Fixed SkyMaterial issue with fog

luaacro 9 роки тому
батько
коміт
9d7dad9d88

Різницю між файлами не показано, бо вона завелика
+ 3 - 20
materialsLibrary/dist/babylon.skyMaterial.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
materialsLibrary/dist/babylon.skyMaterial.min.js


+ 1 - 18
materialsLibrary/materials/sky/babylon.skyMaterial.ts

@@ -147,7 +147,7 @@ module BABYLON {
                 var join = this._defines.toString();
                 var join = this._defines.toString();
                 this._effect = scene.getEngine().createEffect(shaderName,
                 this._effect = scene.getEngine().createEffect(shaderName,
                     attribs,
                     attribs,
-                    ["world", "viewProjection",
+                    ["world", "viewProjection", "view",
                         "vFogInfos", "vFogColor", "pointSize", "vClipPlane",
                         "vFogInfos", "vFogColor", "pointSize", "vClipPlane",
                         "luminance", "turbidity", "rayleigh", "mieCoefficient", "mieDirectionalG", "sunPosition"
                         "luminance", "turbidity", "rayleigh", "mieCoefficient", "mieDirectionalG", "sunPosition"
                     ],
                     ],
@@ -233,23 +233,6 @@ module BABYLON {
         }
         }
 
 
         public clone(name: string): SkyMaterial {
         public clone(name: string): SkyMaterial {
-            /*
-            var newMaterial = new SkyMaterial(name, this.getScene());
-
-            // Base material
-            this.copyTo(newMaterial);
-            
-            newMaterial.luminance = this.luminance;
-            newMaterial.turbidity = this.turbidity;
-            newMaterial.rayleigh = this.rayleigh;
-            newMaterial.mieCoefficient = this.mieCoefficient;
-            newMaterial.mieDirectionalG = this.mieDirectionalG;
-            newMaterial.distance = this.distance;
-            newMaterial.inclination = this.inclination;
-            newMaterial.azimuth = this.azimuth;
-            
-            return newMaterial;
-            */
             return SerializationHelper.Clone<SkyMaterial>(() => new SkyMaterial(name, this.getScene()), this);
             return SerializationHelper.Clone<SkyMaterial>(() => new SkyMaterial(name, this.getScene()), this);
         }
         }
 		
 		

+ 3 - 2
materialsLibrary/materials/sky/sky.fragment.fx

@@ -77,13 +77,13 @@ float A = 0.15;
 float B = 0.50;
 float B = 0.50;
 float C = 0.10;
 float C = 0.10;
 float D = 0.20;
 float D = 0.20;
-float E = 0.02;
+float EEE = 0.02;
 float F = 0.30;
 float F = 0.30;
 float W = 1000.0;
 float W = 1000.0;
 
 
 vec3 Uncharted2Tonemap(vec3 x)
 vec3 Uncharted2Tonemap(vec3 x)
 {
 {
-	return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;
+	return ((x*(A*x+C*B)+D*EEE)/(x*(A*x+B)+D*F))-EEE/F;
 }
 }
 
 
 void main(void) {
 void main(void) {
@@ -164,6 +164,7 @@ void main(void) {
 	// Composition
 	// Composition
 	vec4 color = vec4(baseColor.rgb, alpha);
 	vec4 color = vec4(baseColor.rgb, alpha);
 
 
+    // Fog
 #include<fogFragment>
 #include<fogFragment>
 
 
 	gl_FragColor = color;
 	gl_FragColor = color;

+ 1 - 0
materialsLibrary/materials/sky/sky.vertex.fx

@@ -9,6 +9,7 @@ attribute vec4 color;
 
 
 // Uniforms
 // Uniforms
 uniform mat4 world;
 uniform mat4 world;
+uniform mat4 view;
 uniform mat4 viewProjection;
 uniform mat4 viewProjection;
 
 
 #ifdef POINTSIZE
 #ifdef POINTSIZE