UNPKG

three-stdlib

Version:

stand-alone library of threejs examples

1 lines 2.05 kB
{"version":3,"file":"DotScreenShader.cjs","sources":["../../src/shaders/DotScreenShader.ts"],"sourcesContent":["import { Vector2 } from 'three'\n\n/**\n * Dot screen shader\n * based on glfx.js sepia shader\n * https://github.com/evanw/glfx.js\n */\n\nexport const DotScreenShader = {\n uniforms: {\n tDiffuse: { value: null },\n tSize: { value: new Vector2(256, 256) },\n center: { value: new Vector2(0.5, 0.5) },\n angle: { value: 1.57 },\n scale: { value: 1.0 },\n },\n\n vertexShader: [\n 'varying vec2 vUv;',\n\n 'void main() {',\n\n '\tvUv = uv;',\n '\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n\n '}',\n ].join('\\n'),\n\n fragmentShader: [\n 'uniform vec2 center;',\n 'uniform float angle;',\n 'uniform float scale;',\n 'uniform vec2 tSize;',\n\n 'uniform sampler2D tDiffuse;',\n\n 'varying vec2 vUv;',\n\n 'float pattern() {',\n\n '\tfloat s = sin( angle ), c = cos( angle );',\n\n '\tvec2 tex = vUv * tSize - center;',\n '\tvec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;',\n\n '\treturn ( sin( point.x ) * sin( point.y ) ) * 4.0;',\n\n '}',\n\n 'void main() {',\n\n '\tvec4 color = texture2D( tDiffuse, vUv );',\n\n '\tfloat average = ( color.r + color.g + color.b ) / 3.0;',\n\n '\tgl_FragColor = vec4( vec3( average * 10.0 - 5.0 + pattern() ), color.a );',\n\n '}',\n ].join('\\n'),\n}\n"],"names":["Vector2"],"mappings":";;;AAQO,MAAM,kBAAkB;AAAA,EAC7B,UAAU;AAAA,IACR,UAAU,EAAE,OAAO,KAAK;AAAA,IACxB,OAAO,EAAE,OAAO,IAAIA,MAAQ,QAAA,KAAK,GAAG,EAAE;AAAA,IACtC,QAAQ,EAAE,OAAO,IAAIA,MAAQ,QAAA,KAAK,GAAG,EAAE;AAAA,IACvC,OAAO,EAAE,OAAO,KAAK;AAAA,IACrB,OAAO,EAAE,OAAO,EAAI;AAAA,EACtB;AAAA,EAEA,cAAc;AAAA,IACZ;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AAAA,EAEX,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,IAEA;AAAA,EAAA,EACA,KAAK,IAAI;AACb;;"}