TechnicolorShader.js 850 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * Technicolor Shader
  3. * Simulates the look of the two-strip technicolor process popular in early 20th century films.
  4. * More historical info here: http://www.widescreenmuseum.com/oldcolor/technicolor1.htm
  5. * Demo here: http://charliehoey.com/technicolor_shader/shader_test.html
  6. */
  7. THREE.TechnicolorShader = {
  8. uniforms: {
  9. "tDiffuse": { value: null }
  10. },
  11. vertexShader: [
  12. "varying vec2 vUv;",
  13. "void main() {",
  14. " vUv = uv;",
  15. " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
  16. "}"
  17. ].join( "\n" ),
  18. fragmentShader: [
  19. "uniform sampler2D tDiffuse;",
  20. "varying vec2 vUv;",
  21. "void main() {",
  22. " vec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );",
  23. " vec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);",
  24. " gl_FragColor = newTex;",
  25. "}"
  26. ].join( "\n" )
  27. };