|
@@ -0,0 +1,50 @@
|
|
|
+/**
|
|
|
+ * @author WestLangley / http://github.com/WestLangley
|
|
|
+ *
|
|
|
+ * Gamma Correction Shader
|
|
|
+ * http://en.wikipedia.org/wiki/gamma_correction
|
|
|
+ */
|
|
|
+
|
|
|
+THREE.GammaCorrectionShader = {
|
|
|
+
|
|
|
+ uniforms: {
|
|
|
+
|
|
|
+ "tDiffuse": { type: "t", value: null },
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ vertexShader: [
|
|
|
+
|
|
|
+ "varying vec2 vUv;",
|
|
|
+
|
|
|
+ "void main() {",
|
|
|
+
|
|
|
+ "vUv = uv;",
|
|
|
+ "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
|
|
|
+
|
|
|
+ "}"
|
|
|
+
|
|
|
+ ].join("\n"),
|
|
|
+
|
|
|
+ fragmentShader: [
|
|
|
+
|
|
|
+ "#define GAMMA_OUTPUT",
|
|
|
+ "#define GAMMA_FACTOR 2",
|
|
|
+
|
|
|
+ "uniform sampler2D tDiffuse;",
|
|
|
+
|
|
|
+ "varying vec2 vUv;",
|
|
|
+
|
|
|
+ THREE.ShaderChunk[ "common" ],
|
|
|
+
|
|
|
+ "void main() {",
|
|
|
+
|
|
|
+ "vec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );",
|
|
|
+
|
|
|
+ "gl_FragColor = vec4( linearToOutput( tex.rgb ), tex.a );",
|
|
|
+
|
|
|
+ "}"
|
|
|
+
|
|
|
+ ].join("\n")
|
|
|
+
|
|
|
+};
|