Bläddra i källkod

Added color correction shader to ShaderExtras

alteredq 13 år sedan
förälder
incheckning
3f58f03c79
1 ändrade filer med 48 tillägg och 0 borttagningar
  1. 48 0
      examples/js/ShaderExtras.js

+ 48 - 0
examples/js/ShaderExtras.js

@@ -21,6 +21,7 @@
  *  blend
  *  fxaa
  *  luminosity
+ *  colorCorrection
  *  normalmap
  */
 
@@ -1282,6 +1283,53 @@ THREE.ShaderExtras = {
 
 	},
 
+	/* -------------------------------------------------------------------------
+	//	Color correction
+	 ------------------------------------------------------------------------- */
+
+	'colorCorrection': {
+
+		uniforms: {
+
+			"tDiffuse" : 	{ type: "t", value: 0, texture: null },
+			"powRGB" :		{ type: "v3", value: new THREE.Vector3( 2, 2, 2 ) },
+			"mulRGB" :		{ type: "v3", value: new THREE.Vector3( 1, 1, 1 ) }
+
+		},
+
+		vertexShader: [
+
+			"varying vec2 vUv;",
+
+			"void main() {",
+
+				"vUv = vec2( uv.x, 1.0 - uv.y );",
+
+				"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
+
+			"}"
+
+		].join("\n"),
+
+		fragmentShader: [
+
+			"uniform sampler2D tDiffuse;",
+			"uniform vec3 powRGB;",
+			"uniform vec3 mulRGB;",
+
+			"varying vec2 vUv;",
+
+			"void main() {",
+
+				"gl_FragColor = texture2D( tDiffuse, vUv );",
+				"gl_FragColor.rgb = mulRGB * pow( gl_FragColor.rgb, powRGB );",
+
+			"}"
+
+		].join("\n")
+
+	},
+
 	/* -------------------------------------------------------------------------
 	//	Normal map shader
 	//	- compute normals from heightmap