2
0
Эх сурвалжийг харах

start addressing @mrdoob's feedback here: https://github.com/mrdoob/three.js/pull/8117/files#r53900857

Ben Houston 9 жил өмнө
parent
commit
4cc3052dec

+ 42 - 0
src/renderers/webgl/WebGLProgram.js

@@ -7,6 +7,48 @@ THREE.WebGLProgram = ( function () {
 	var arrayStructRe = /^([\w\d_]+)\[(\d+)\]\.([\w\d_]+)$/;
 	var arrayRe = /^([\w\d_]+)\[0\]$/;
 
+	function getTexelDecodingMacro( encoding ) {
+		switch( encoding ) {
+			case THREE.LinearEncoding:
+				return "(value)";
+			case THREE.sRGBEncoding:
+				return "sRGBToLinear( value )";
+			case THREE.RGBEEncoding:
+				return "RGBEToLinear( value )";
+			case THREE.RGBM7Encoding:
+				return "RGBMToLinear( value, 7.0 )";
+			case THREE.RGBM16Encoding:
+				return "RGBMToLinear( value, 16.0 )";
+			case THREE.RGBDEncoding:
+				return "RGBDToLinear( value, 256.0 )";
+			case THREE.GammaEncoding:
+				return "GammaToLinear( value, float( GAMMA_FACTOR ) )";
+			default:
+			 throw new Error( "unsupported encoding: " + encoding );
+		}
+	}
+
+	function getTexelEncodingMacro( encoding ) {
+		switch( encoding ) {
+			case THREE.LinearEncoding:
+				return "(value)";
+			case THREE.sRGBEncoding:
+				return "LinearTosRGB( value )";
+			case THREE.RGBEEncoding:
+				return "LinearToRGBE( value )";
+			case THREE.RGBM7Encoding:
+				return "LinearToRGBM( value, 7.0 )";
+			case THREE.RGBM16Encoding:
+				return "LinearToRGBM( value, 16.0 )";
+			case THREE.RGBDEncoding:
+				return "LinearToRGBD( value, 256.0 )";
+			case THREE.GammaEncoding:
+				return "LinearToGamma( value, float( GAMMA_FACTOR ) )";
+			default:
+			 throw new Error( "unsupported encoding: " + encoding );
+		}
+	}
+
 	function generateExtensions( extensions, parameters, rendererExtensions ) {
 
 		extensions = extensions || {};