Selaa lähdekoodia

Fix crashes after merging

Popov72 4 vuotta sitten
vanhempi
commit
a5ad4b1573

+ 13 - 2
src/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.fx

@@ -1,9 +1,20 @@
 // Input
 varying vec3 vPositionW;
 
+#if DEBUGMODE > 0
+    varying vec4 vClipSpacePosition;
+#endif
+
+#ifdef MAINUV1
+    varying vec2 vMainUV1;
+#endif 
+
+#ifdef MAINUV2 
+    varying vec2 vMainUV2;
+#endif 
+
 #ifdef NORMAL
     varying vec3 vNormalW;
-
     #if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
         varying vec3 vEnvironmentIrradiance;
     #endif
@@ -11,4 +22,4 @@ varying vec3 vPositionW;
 
 #ifdef VERTEXCOLOR
     varying vec4 vColor;
-#endif
+#endif

+ 22 - 26
src/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.fx

@@ -6,22 +6,9 @@
     #else
         varying vec2 vAlbedoUV;
     #endif
-
     uniform sampler2D albedoSampler;
 #endif
 
-#ifdef REFLECTIVITY
-    #if REFLECTIVITYDIRECTUV == 1
-        #define vReflectivityUV vMainUV1
-    #elif REFLECTIVITYDIRECTUV == 2
-        #define vReflectivityUV vMainUV2
-    #else
-        varying vec2 vReflectivityUV;
-    #endif
-
-    uniform sampler2D reflectivitySampler;
-#endif
-
 #ifdef AMBIENT
     #if AMBIENTDIRECTUV == 1
         #define vAmbientUV vMainUV1
@@ -30,22 +17,9 @@
     #else
         varying vec2 vAmbientUV;
     #endif
-
     uniform sampler2D ambientSampler;
 #endif
 
-#ifdef EMISSIVE
-    #if EMISSIVEDIRECTUV == 1
-        #define vEmissiveUV vMainUV1
-    #elif EMISSIVEDIRECTUV == 2
-        #define vEmissiveUV vMainUV2
-    #else
-        varying vec2 vEmissiveUV;
-    #endif
-
-    uniform sampler2D emissiveSampler;
-#endif
-
 #ifdef OPACITY
     #if OPACITYDIRECTUV == 1
         #define vOpacityUV vMainUV1
@@ -57,6 +31,17 @@
     uniform sampler2D opacitySampler;
 #endif
 
+#ifdef EMISSIVE
+    #if EMISSIVEDIRECTUV == 1
+        #define vEmissiveUV vMainUV1
+    #elif EMISSIVEDIRECTUV == 2
+        #define vEmissiveUV vMainUV2
+    #else
+        varying vec2 vEmissiveUV;
+    #endif
+    uniform sampler2D emissiveSampler;
+#endif
+
 #ifdef LIGHTMAP
     #if LIGHTMAPDIRECTUV == 1
         #define vLightmapUV vMainUV1
@@ -68,6 +53,17 @@
     uniform sampler2D lightmapSampler;
 #endif
 
+#ifdef REFLECTIVITY
+    #if REFLECTIVITYDIRECTUV == 1
+        #define vReflectivityUV vMainUV1
+    #elif REFLECTIVITYDIRECTUV == 2
+        #define vReflectivityUV vMainUV2
+    #else
+        varying vec2 vReflectivityUV;
+    #endif
+    uniform sampler2D reflectivitySampler;
+#endif
+
 #ifdef MICROSURFACEMAP
     #if MICROSURFACEMAPDIRECTUV == 1
         #define vMicroSurfaceSamplerUV vMainUV1

+ 1 - 1
src/Shaders/pbr.fragment.fx

@@ -24,7 +24,7 @@ precision highp float;
 // Declaration
 #include<__decl__pbrFragment>
 
-// TODO. WEBGPU. Probably create a camera ubo
+// TODO WEBGPU Probably create a camera ubo
 #define vEyePosition viewPosition
 
 #include<pbrFragmentExtraDeclaration>

+ 48 - 21
src/Shaders/pbr.vertex.fx

@@ -6,40 +6,40 @@
 
 // Attributes
 attribute vec3 position;
-// #endif
-
 #ifdef NORMAL
-    attribute vec3 normal;
+attribute vec3 normal;
 #endif
-
 #ifdef TANGENT
-    attribute vec4 tangent;
+attribute vec4 tangent;
 #endif
-
 #ifdef UV1
-    attribute vec2 uv;
+attribute vec2 uv;
 #endif
-
 #ifdef UV2
-    attribute vec2 uv2;
+attribute vec2 uv2;
 #endif
-
-#ifdef VERTEXCOLOR
-    attribute vec4 color;
+#ifdef MAINUV1
+varying vec2 vMainUV1;
 #endif
-
-#ifdef INSTANCES
-    attribute vec4 world0;
-    attribute vec4 world1;
-    attribute vec4 world2;
-    attribute vec4 world3;
+#ifdef MAINUV2
+varying vec2 vMainUV2; 
+#endif 
+#ifdef VERTEXCOLOR
+attribute vec4 color;
 #endif
 
 #include<helperFunctions>
 #include<bonesDeclaration>
 
-// Uniforms
-#include<instancesDeclaration>
+// TODO WEBGPU faut-il remettre l'include et supprimer la déclaration de la world matrix ? Ca implique de passer par l'ubo du mesh aussi pour les autres types de material
+// #include<instancesDeclaration>
+#ifdef INSTANCES
+	attribute vec4 world0;
+	attribute vec4 world1;
+	attribute vec4 world2;
+	attribute vec4 world3;
+#endif
+
 #include<prePassVertexDeclaration>
 
 #if defined(ALBEDO) && ALBEDODIRECTUV == 0
@@ -114,14 +114,41 @@ varying vec2 vBumpUV;
     #endif
 #endif
 
+// Output
+varying vec3 vPositionW;
+#if DEBUGMODE > 0
+    varying vec4 vClipSpacePosition;
+#endif
+#ifdef NORMAL
+    varying vec3 vNormalW;
+    #if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)
+        varying vec3 vEnvironmentIrradiance;
+        
+        #include<harmonicsFunctions>
+    #endif
+#endif
+
+#ifdef VERTEXCOLOR
+varying vec4 vColor;
+#endif
+
 #include<bumpVertexDeclaration>
 #include<clipPlaneVertexDeclaration>
 #include<fogVertexDeclaration>
 #include<__decl__lightFragment>[0..maxSimultaneousLights]
+
 #include<morphTargetsVertexGlobalDeclaration>
 #include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
-#include<logDepthDeclaration>
 
+#ifdef REFLECTIONMAP_SKYBOX
+varying vec3 vPositionUVW;
+#endif
+
+#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)
+varying vec3 vDirectionW;
+#endif
+
+#include<logDepthDeclaration>
 #define CUSTOM_VERTEX_DEFINITIONS
 
 void main(void) {