Browse Source

begin on swithcing texture encodings from uniforms to macros.

Ben Houston 9 years ago
parent
commit
b057fed455

+ 44 - 0
src/renderers/shaders/ShaderChunk/encoding_template.glsl

@@ -0,0 +1,44 @@
+// this is intended to be the body of a macro.  Define the name of the function,
+// set the defines and then include this glsl snippet to define its body.
+
+#if defined( MACRO_DECODE )
+
+  #if ( MACRO_ENCODING_TYPE == ENCODING_Linear )
+    return value;
+  #elif ( MACRO_ENCODING_TYPE == ENCODING_sRGB )
+    return sRGBToLinear( value );
+  #elif ( MACRO_ENCODING_TYPE == ENCODING_RGBE )
+    return RGBEToLinear( value );
+  //#elif ( MACRO_ENCODING_TYPE == ENCODING_LogLuv )  TODO
+  //  return LogLuvToLinear( value );
+  #elif ( MACRO_ENCODING_TYPE == ENCODING_RGBM7 )
+    return RGBM7ToLinear( value );
+  #elif ( MACRO_ENCODING_TYPE == ENCODING_RGBM16 )
+    return RGBM16ToLinear( value );
+  //#elif ( MACRO_ENCODING_TYPE == ENCODING_RGBD )  TODO
+  //  return RGBMDToLinear( value );
+  #else
+    return vec4( 1.0, 0.0, 0.0, 1.0 );
+  #endif
+
+#elif defined( MACRO_ENCODE )
+
+  #if ( MACRO_ENCODING_TYPE == ENCODING_Linear )
+    return value;
+  #elif ( MACRO_ENCODING_TYPE == ENCODING_sRGB )
+    return LinearTosRGB( value );
+  #elif ( MACRO_ENCODING_TYPE == ENCODING_RGBE )
+    return LinearToRGBE( value );
+  //#elif ( MACRO_ENCODING_TYPE == ENCODING_LogLuv )  TODO
+  //  return LinearToLogLuv( value );
+  //#elif ( MACRO_ENCODING_TYPE == ENCODING_RGBM7 )  TODO
+  //  return LinearToRGBM7( value );
+  //#elif ( MACRO_ENCODING_TYPE == ENCODING_RGBM16 )  TODO
+  //  return LinearToRGBM16( value );
+  //#elif ( MACRO_ENCODING_TYPE == ENCODING_RGBD )  TODO
+  //  return LinearToRGBMD( value );
+  #else
+    return vec4( 1.0, 0.0, 0.0, 1.0 );
+  #endif
+
+#endif

+ 1 - 0
utils/build/includes/common.json

@@ -138,6 +138,7 @@
 	"src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/emissivemap_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/encodings.glsl",
+	"src/renderers/shaders/ShaderChunk/encoding_template.glsl",
 	"src/renderers/shaders/ShaderChunk/envmap_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl",
 	"src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl",