Sha256: 103e58f2caf8e7a793084d95ca9c0b249c44a95de5d89eaf33f6907862fb5c93

Contents?: true

Size: 1.95 KB

Versions: 4

Compression:

Stored size: 1.95 KB

Contents

(function (global, factory) {
  if (typeof define === "function" && define.amd) {
    define(["exports", "three"], factory);
  } else if (typeof exports !== "undefined") {
    factory(exports, require("three"));
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports, global.three);
    global.DotScreenShader = mod.exports;
  }
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _three) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.DotScreenShader = void 0;

  /**
   * Dot screen shader
   * based on glfx.js sepia shader
   * https://github.com/evanw/glfx.js
   */
  var DotScreenShader = {
    uniforms: {
      'tDiffuse': {
        value: null
      },
      'tSize': {
        value: new _three.Vector2(256, 256)
      },
      'center': {
        value: new _three.Vector2(0.5, 0.5)
      },
      'angle': {
        value: 1.57
      },
      'scale': {
        value: 1.0
      }
    },
    vertexShader:
    /* glsl */
    "\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",
    fragmentShader:
    /* glsl */
    "\n\n\t\tuniform vec2 center;\n\t\tuniform float angle;\n\t\tuniform float scale;\n\t\tuniform vec2 tSize;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tfloat pattern() {\n\n\t\t\tfloat s = sin( angle ), c = cos( angle );\n\n\t\t\tvec2 tex = vUv * tSize - center;\n\t\t\tvec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;\n\n\t\t\treturn ( sin( point.x ) * sin( point.y ) ) * 4.0;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvec4 color = texture2D( tDiffuse, vUv );\n\n\t\t\tfloat average = ( color.r + color.g + color.b ) / 3.0;\n\n\t\t\tgl_FragColor = vec4( vec3( average * 10.0 - 5.0 + pattern() ), color.a );\n\n\t\t}"
  };
  _exports.DotScreenShader = DotScreenShader;
});

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
opal-js_wrap-three-0.1.5 lib-opal/js_wrap/three/shaders/DotScreenShader.js
opal-js_wrap-three-0.1.4 lib-opal/js_wrap/three/shaders/DotScreenShader.js
opal-js_wrap-three-0.1.3 lib-opal/js_wrap/three/shaders/DotScreenShader.js
opal-js_wrap-three-0.1.2 lib-opal/js_wrap/three/shaders/DotScreenShader.js