Explorar o código

WebGL1 temp fix.

sebavan %!s(int64=5) %!d(string=hai) anos
pai
achega
b5ae26e0f0

+ 1 - 1
src/Materials/Textures/hdrCubeTexture.ts

@@ -241,7 +241,7 @@ export class HDRCubeTexture extends BaseTexture {
             return results;
         };
 
-        if (this._prefilterOnLoad) {
+        if (this._getEngine()!.webGLVersion >= 2 && this._prefilterOnLoad) {
             const previousOnLoad = this._onLoad;
             const hdrFiltering = new HDRFiltering(engine);
             this._onLoad = () => {

+ 1 - 1
src/Shaders/ShadersInclude/hdrFilteringFunctions.fx

@@ -1,4 +1,4 @@
-#ifdef NUM_SAMPLES
+#if defined(WEBGL2) && defined(NUM_SAMPLES)
 	#if NUM_SAMPLES > 0u
 		uniform vec2 vFilteringInfo;
 		uniform float linearRoughness;

+ 24 - 24
src/Shaders/ShadersInclude/helperFunctions.fx

@@ -91,30 +91,30 @@ float square(float value)
         return vec2(float(i)/float(N), radicalInverse_VdC(i));
     }
 #else
-    float vanDerCorpus(uint n, uint base)
-    {
-        float invBase = 1.0 / float(base);
-        float denom   = 1.0;
-        float result  = 0.0;
-
-        for(uint i = 0u; i < 32u; ++i)
-        {
-            if(n > 0u)
-            {
-                denom   = mod(float(n), 2.0);
-                result += denom * invBase;
-                invBase = invBase / 2.0;
-                n       = uint(float(n) / 2.0);
-            }
-        }
-
-        return result;
-    }
-
-    vec2 hammersley(uint i, uint N)
-    {
-        return vec2(float(i)/float(N), vanDerCorpus(i, 2u));
-    }
+    // float vanDerCorpus(uint n, uint base)
+    // {
+    //     float invBase = 1.0 / float(base);
+    //     float denom   = 1.0;
+    //     float result  = 0.0;
+
+    //     for(uint i = 0u; i < 32u; ++i)
+    //     {
+    //         if(n > 0u)
+    //         {
+    //             denom   = mod(float(n), 2.0);
+    //             result += denom * invBase;
+    //             invBase = invBase / 2.0;
+    //             n       = uint(float(n) / 2.0);
+    //         }
+    //     }
+
+    //     return result;
+    // }
+
+    // vec2 hammersley(uint i, uint N)
+    // {
+    //     return vec2(float(i)/float(N), vanDerCorpus(i, 2u));
+    // }
 #endif
 
 float log4(float x) {

+ 1 - 1
src/Shaders/ShadersInclude/pbrBlockReflection.fx

@@ -254,7 +254,7 @@
                     irradianceVector.z *= -1.0;
                 #endif
 
-                #ifdef REALTIME_FILTERING
+                #if defined(WEBGL2) && defined(REALTIME_FILTERING)
                     environmentIrradiance = irradiance(reflectionSampler, irradianceVector);
                 #else
                     environmentIrradiance = computeEnvironmentIrradiance(irradianceVector);

+ 1 - 1
src/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.fx

@@ -155,7 +155,7 @@
         uniform samplerCube reflectionSampler;
         
         #ifdef LODBASEDMICROSFURACE
-            #ifdef REALTIME_FILTERING
+            #if defined(WEBGL2) && defined(REALTIME_FILTERING)
                 #define sampleReflectionLod(s, c, l) vec4(radiance(s, c), 1.0)
             #else
                 #define sampleReflectionLod(s, c, l) textureCubeLodEXT(s, c, l)