Browse Source

Make the subsurface block nme friendly

Popov72 5 years ago
parent
commit
7e37e8e76e
2 changed files with 8 additions and 7 deletions
  1. 2 4
      src/Shaders/ShadersInclude/pbrBlockSubSurface.fx
  2. 6 3
      src/Shaders/pbr.fragment.fx

+ 2 - 4
src/Shaders/ShadersInclude/pbrBlockSubSurface.fx

@@ -26,14 +26,13 @@ struct subSurfaceOutParams
 
 
 #ifdef SUBSURFACE
 #ifdef SUBSURFACE
     void subSurfaceBlock(
     void subSurfaceBlock(
+        const in vec3 vSubSurfaceIntensity,
         const in vec2 vThicknessParam,
         const in vec2 vThicknessParam,
         const in vec4 vTintColor,
         const in vec4 vTintColor,
         const in vec3 normalW,
         const in vec3 normalW,
         const in vec3 specularEnvironmentReflectance,
         const in vec3 specularEnvironmentReflectance,
     #ifdef SS_THICKNESSANDMASK_TEXTURE
     #ifdef SS_THICKNESSANDMASK_TEXTURE
-        const in vec2 vThicknessUV,
-        const in vec2 uvOffset,
-        const in sampler2D thicknessSampler,
+        const in vec4 thicknessMap,
     #endif
     #endif
     #ifdef REFLECTION
     #ifdef REFLECTION
         #ifdef SS_TRANSLUCENCY
         #ifdef SS_TRANSLUCENCY
@@ -116,7 +115,6 @@ struct subSurfaceOutParams
     #endif
     #endif
 
 
     #ifdef SS_THICKNESSANDMASK_TEXTURE
     #ifdef SS_THICKNESSANDMASK_TEXTURE
-        vec4 thicknessMap = texture2D(thicknessSampler, vThicknessUV + uvOffset);
         float thickness = thicknessMap.r * vThicknessParam.y + vThicknessParam.x;
         float thickness = thicknessMap.r * vThicknessParam.y + vThicknessParam.x;
 
 
         #if DEBUGMODE > 0
         #if DEBUGMODE > 0

+ 6 - 3
src/Shaders/pbr.fragment.fx

@@ -385,15 +385,18 @@ void main(void) {
     subSurfaceOutParams subSurfaceOut;
     subSurfaceOutParams subSurfaceOut;
 
 
     #ifdef SUBSURFACE
     #ifdef SUBSURFACE
+        #ifdef SS_THICKNESSANDMASK_TEXTURE
+            vec4 thicknessMap = texture2D(thicknessSampler, vThicknessUV + uvOffset);
+        #endif
+
         subSurfaceBlock(
         subSurfaceBlock(
+            vSubSurfaceIntensity,
             vThicknessParam,
             vThicknessParam,
             vTintColor,
             vTintColor,
             normalW,
             normalW,
             specularEnvironmentReflectance,
             specularEnvironmentReflectance,
         #ifdef SS_THICKNESSANDMASK_TEXTURE
         #ifdef SS_THICKNESSANDMASK_TEXTURE
-            vThicknessUV,
-            uvOffset,
-            thicknessSampler,
+            thicknessMap,
         #endif
         #endif
         #ifdef REFLECTION
         #ifdef REFLECTION
             #ifdef SS_TRANSLUCENCY
             #ifdef SS_TRANSLUCENCY