rogue-engine-user-scripts.js.map 73 KB

1
  1. {"version":3,"file":"rogue-engine-user-scripts.js","mappings":"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","sources":["webpack://roguetemplateproject/webpack/universalModuleDefinition","webpack://roguetemplateproject/external umd {\"commonjs\":\"rogue-engine\",\"commonjs2\":\"rogue-engine\",\"amd\":\"rogue-engine\",\"root\":\"rogue-engine\"}","webpack://roguetemplateproject/external umd {\"commonjs\":\"three\",\"commonjs2\":\"three\",\"amd\":\"three\",\"root\":\"three\"}","webpack://roguetemplateproject/./node_modules/three/examples/jsm/lines/LineMaterial.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/lines/Wireframe.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/lines/WireframeGeometry2.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/postprocessing/EffectComposer.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/postprocessing/MaskPass.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/postprocessing/Pass.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/postprocessing/RenderPass.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/postprocessing/ShaderPass.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/shaders/CopyShader.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/shaders/FilmShader.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/shaders/FocusShader.js","webpack://roguetemplateproject/./node_modules/three/examples/jsm/shaders/RGBShiftShader.js","webpack://roguetemplateproject/webpack/bootstrap","webpack://roguetemplateproject/webpack/runtime/chunk loaded","webpack://roguetemplateproject/webpack/runtime/compat get default export","webpack://roguetemplateproject/webpack/runtime/define property getters","webpack://roguetemplateproject/webpack/runtime/hasOwnProperty shorthand","webpack://roguetemplateproject/webpack/runtime/make namespace object","webpack://roguetemplateproject/webpack/runtime/jsonp chunk loading","webpack://roguetemplateproject/./Assets/Components/ColoredDotScreenShader.js","webpack://roguetemplateproject/./Assets/Components/CylinderDistortionComponent.re.ts","webpack://roguetemplateproject/./Assets/Components/GradientShaderMaterialComponent.re.ts","webpack://roguetemplateproject/./Assets/Components/PostProcessingComponent.re.ts","webpack://roguetemplateproject/./Assets/Components/RotationComponent.re.ts","webpack://roguetemplateproject/./Assets/Components/StarShaderMaterialComponent.re.ts","webpack://roguetemplateproject/./Assets/Components/VaporwaveSunShaderMaterialComponent.re.ts","webpack://roguetemplateproject/./Assets/Components/WireframeShaderMaterialComponent.re.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"three\"), require(\"rogue-engine\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"three\", \"rogue-engine\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rogue-engine-user-scripts\"] = factory(require(\"three\"), require(\"rogue-engine\"));\n\telse\n\t\troot[\"rogue-engine-user-scripts\"] = factory(root[\"three\"], root[\"rogue-engine\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE_three__, __WEBPACK_EXTERNAL_MODULE_rogue_engine__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE_rogue_engine__;","module.exports = __WEBPACK_EXTERNAL_MODULE_three__;","/**\n * parameters = {\n * color: <hex>,\n * linewidth: <float>,\n * dashed: <boolean>,\n * dashScale: <float>,\n * dashSize: <float>,\n * dashOffset: <float>,\n * gapSize: <float>,\n * resolution: <Vector2>, // to be set by renderer\n * }\n */\n\nimport {\n\tShaderLib,\n\tShaderMaterial,\n\tUniformsLib,\n\tUniformsUtils,\n\tVector2\n} from 'three';\n\n\nUniformsLib.line = {\n\n\tworldUnits: { value: 1 },\n\tlinewidth: { value: 1 },\n\tresolution: { value: new Vector2( 1, 1 ) },\n\tdashOffset: { value: 0 },\n\tdashScale: { value: 1 },\n\tdashSize: { value: 1 },\n\tgapSize: { value: 1 } // todo FIX - maybe change to totalSize\n\n};\n\nShaderLib[ 'line' ] = {\n\n\tuniforms: UniformsUtils.merge( [\n\t\tUniformsLib.common,\n\t\tUniformsLib.fog,\n\t\tUniformsLib.line\n\t] ),\n\n\tvertexShader:\n\t/* glsl */`\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 offset;\n\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t}\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t#endif\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t// set the world position\n\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segments overlap neatly\n\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t`,\n\n\tfragmentShader:\n\t/* glsl */`\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashOffset;\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha = opacity;\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t`\n};\n\nclass LineMaterial extends ShaderMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper( {\n\n\t\t\ttype: 'LineMaterial',\n\n\t\t\tuniforms: UniformsUtils.clone( ShaderLib[ 'line' ].uniforms ),\n\n\t\t\tvertexShader: ShaderLib[ 'line' ].vertexShader,\n\t\t\tfragmentShader: ShaderLib[ 'line' ].fragmentShader,\n\n\t\t\tclipping: true // required for clipping support\n\n\t\t} );\n\n\t\tthis.isLineMaterial = true;\n\n\t\tObject.defineProperties( this, {\n\n\t\t\tcolor: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.diffuse.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.diffuse.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tworldUnits: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn 'WORLD_UNITS' in this.defines;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tif ( value === true ) {\n\n\t\t\t\t\t\tthis.defines.WORLD_UNITS = '';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.WORLD_UNITS;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tlinewidth: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.linewidth.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.linewidth.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashed: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn Boolean( 'USE_DASH' in this.defines );\n\n\t\t\t\t},\n\n\t\t\t\tset( value ) {\n\n\t\t\t\t\tif ( Boolean( value ) !== Boolean( 'USE_DASH' in this.defines ) ) {\n\n\t\t\t\t\t\tthis.needsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( value === true ) {\n\n\t\t\t\t\t\tthis.defines.USE_DASH = '';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.USE_DASH;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashScale: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.dashScale.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.dashScale.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashSize: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.dashSize.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.dashSize.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashOffset: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.dashOffset.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.dashOffset.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tgapSize: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.gapSize.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.gapSize.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\topacity: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.opacity.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.opacity.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tresolution: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.resolution.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.resolution.value.copy( value );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\talphaToCoverage: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines );\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tif ( Boolean( value ) !== Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines ) ) {\n\n\t\t\t\t\t\tthis.needsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( value === true ) {\n\n\t\t\t\t\t\tthis.defines.USE_ALPHA_TO_COVERAGE = '';\n\t\t\t\t\t\tthis.extensions.derivatives = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.USE_ALPHA_TO_COVERAGE;\n\t\t\t\t\t\tthis.extensions.derivatives = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n}\n\nexport { LineMaterial };\n","import {\n\tBox3,\n\tFloat32BufferAttribute,\n\tInstancedBufferGeometry,\n\tInstancedInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tSphere,\n\tVector3,\n\tWireframeGeometry\n} from 'three';\n\nconst _box = new Box3();\nconst _vector = new Vector3();\n\nclass LineSegmentsGeometry extends InstancedBufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isLineSegmentsGeometry = true;\n\n\t\tthis.type = 'LineSegmentsGeometry';\n\n\t\tconst positions = [ - 1, 2, 0, 1, 2, 0, - 1, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 0, - 1, - 1, 0, 1, - 1, 0 ];\n\t\tconst uvs = [ - 1, 2, 1, 2, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 2, 1, - 2 ];\n\t\tconst index = [ 0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5 ];\n\n\t\tthis.setIndex( index );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst start = this.attributes.instanceStart;\n\t\tconst end = this.attributes.instanceEnd;\n\n\t\tif ( start !== undefined ) {\n\n\t\t\tstart.applyMatrix4( matrix );\n\n\t\t\tend.applyMatrix4( matrix );\n\n\t\t\tstart.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetPositions( array ) {\n\n\t\tlet lineSegments;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\tlineSegments = array;\n\n\t\t} else if ( Array.isArray( array ) ) {\n\n\t\t\tlineSegments = new Float32Array( array );\n\n\t\t}\n\n\t\tconst instanceBuffer = new InstancedInterleavedBuffer( lineSegments, 6, 1 ); // xyz, xyz\n\n\t\tthis.setAttribute( 'instanceStart', new InterleavedBufferAttribute( instanceBuffer, 3, 0 ) ); // xyz\n\t\tthis.setAttribute( 'instanceEnd', new InterleavedBufferAttribute( instanceBuffer, 3, 3 ) ); // xyz\n\n\t\t//\n\n\t\tthis.computeBoundingBox();\n\t\tthis.computeBoundingSphere();\n\n\t\treturn this;\n\n\t}\n\n\tsetColors( array ) {\n\n\t\tlet colors;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\tcolors = array;\n\n\t\t} else if ( Array.isArray( array ) ) {\n\n\t\t\tcolors = new Float32Array( array );\n\n\t\t}\n\n\t\tconst instanceColorBuffer = new InstancedInterleavedBuffer( colors, 6, 1 ); // rgb, rgb\n\n\t\tthis.setAttribute( 'instanceColorStart', new InterleavedBufferAttribute( instanceColorBuffer, 3, 0 ) ); // rgb\n\t\tthis.setAttribute( 'instanceColorEnd', new InterleavedBufferAttribute( instanceColorBuffer, 3, 3 ) ); // rgb\n\n\t\treturn this;\n\n\t}\n\n\tfromWireframeGeometry( geometry ) {\n\n\t\tthis.setPositions( geometry.attributes.position.array );\n\n\t\treturn this;\n\n\t}\n\n\tfromEdgesGeometry( geometry ) {\n\n\t\tthis.setPositions( geometry.attributes.position.array );\n\n\t\treturn this;\n\n\t}\n\n\tfromMesh( mesh ) {\n\n\t\tthis.fromWireframeGeometry( new WireframeGeometry( mesh.geometry ) );\n\n\t\t// set colors, maybe\n\n\t\treturn this;\n\n\t}\n\n\tfromLineSegments( lineSegments ) {\n\n\t\tconst geometry = lineSegments.geometry;\n\n\t\tthis.setPositions( geometry.attributes.position.array ); // assumes non-indexed\n\n\t\t// set colors, maybe\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst start = this.attributes.instanceStart;\n\t\tconst end = this.attributes.instanceEnd;\n\n\t\tif ( start !== undefined && end !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( start );\n\n\t\t\t_box.setFromBufferAttribute( end );\n\n\t\t\tthis.boundingBox.union( _box );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tconst start = this.attributes.instanceStart;\n\t\tconst end = this.attributes.instanceEnd;\n\n\t\tif ( start !== undefined && end !== undefined ) {\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\tthis.boundingBox.getCenter( center );\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = start.count; i < il; i ++ ) {\n\n\t\t\t\t_vector.fromBufferAttribute( start, i );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector ) );\n\n\t\t\t\t_vector.fromBufferAttribute( end, i );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector ) );\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\t// todo\n\n\t}\n\n\tapplyMatrix( matrix ) {\n\n\t\tconsole.warn( 'THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4().' );\n\n\t\treturn this.applyMatrix4( matrix );\n\n\t}\n\n}\n\nexport { LineSegmentsGeometry };\n","import {\n\tInstancedInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tMesh,\n\tVector3\n} from 'three';\nimport { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';\nimport { LineMaterial } from '../lines/LineMaterial.js';\n\nconst _start = new Vector3();\nconst _end = new Vector3();\n\nclass Wireframe extends Mesh {\n\n\tconstructor( geometry = new LineSegmentsGeometry(), material = new LineMaterial( { color: Math.random() * 0xffffff } ) ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isWireframe = true;\n\n\t\tthis.type = 'Wireframe';\n\n\t}\n\n\t// for backwards-compatibility, but could be a method of LineSegmentsGeometry...\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst instanceStart = geometry.attributes.instanceStart;\n\t\tconst instanceEnd = geometry.attributes.instanceEnd;\n\t\tconst lineDistances = new Float32Array( 2 * instanceStart.count );\n\n\t\tfor ( let i = 0, j = 0, l = instanceStart.count; i < l; i ++, j += 2 ) {\n\n\t\t\t_start.fromBufferAttribute( instanceStart, i );\n\t\t\t_end.fromBufferAttribute( instanceEnd, i );\n\n\t\t\tlineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ];\n\t\t\tlineDistances[ j + 1 ] = lineDistances[ j ] + _start.distanceTo( _end );\n\n\t\t}\n\n\t\tconst instanceDistanceBuffer = new InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1\n\n\t\tgeometry.setAttribute( 'instanceDistanceStart', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0\n\t\tgeometry.setAttribute( 'instanceDistanceEnd', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { Wireframe };\n","import {\n\tWireframeGeometry\n} from 'three';\nimport { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';\n\nclass WireframeGeometry2 extends LineSegmentsGeometry {\n\n\tconstructor( geometry ) {\n\n\t\tsuper();\n\n\t\tthis.isWireframeGeometry2 = true;\n\n\t\tthis.type = 'WireframeGeometry2';\n\n\t\tthis.fromWireframeGeometry( new WireframeGeometry( geometry ) );\n\n\t\t// set colors, maybe\n\n\t}\n\n}\n\nexport { WireframeGeometry2 };\n","import {\n\tClock,\n\tHalfFloatType,\n\tVector2,\n\tWebGLRenderTarget\n} from 'three';\nimport { CopyShader } from '../shaders/CopyShader.js';\nimport { ShaderPass } from './ShaderPass.js';\nimport { MaskPass } from './MaskPass.js';\nimport { ClearMaskPass } from './MaskPass.js';\n\nclass EffectComposer {\n\n\tconstructor( renderer, renderTarget ) {\n\n\t\tthis.renderer = renderer;\n\n\t\tthis._pixelRatio = renderer.getPixelRatio();\n\n\t\tif ( renderTarget === undefined ) {\n\n\t\t\tconst size = renderer.getSize( new Vector2() );\n\t\t\tthis._width = size.width;\n\t\t\tthis._height = size.height;\n\n\t\t\trenderTarget = new WebGLRenderTarget( this._width * this._pixelRatio, this._height * this._pixelRatio, { type: HalfFloatType } );\n\t\t\trenderTarget.texture.name = 'EffectComposer.rt1';\n\n\t\t} else {\n\n\t\t\tthis._width = renderTarget.width;\n\t\t\tthis._height = renderTarget.height;\n\n\t\t}\n\n\t\tthis.renderTarget1 = renderTarget;\n\t\tthis.renderTarget2 = renderTarget.clone();\n\t\tthis.renderTarget2.texture.name = 'EffectComposer.rt2';\n\n\t\tthis.writeBuffer = this.renderTarget1;\n\t\tthis.readBuffer = this.renderTarget2;\n\n\t\tthis.renderToScreen = true;\n\n\t\tthis.passes = [];\n\n\t\tthis.copyPass = new ShaderPass( CopyShader );\n\n\t\tthis.clock = new Clock();\n\n\t}\n\n\tswapBuffers() {\n\n\t\tconst tmp = this.readBuffer;\n\t\tthis.readBuffer = this.writeBuffer;\n\t\tthis.writeBuffer = tmp;\n\n\t}\n\n\taddPass( pass ) {\n\n\t\tthis.passes.push( pass );\n\t\tpass.setSize( this._width * this._pixelRatio, this._height * this._pixelRatio );\n\n\t}\n\n\tinsertPass( pass, index ) {\n\n\t\tthis.passes.splice( index, 0, pass );\n\t\tpass.setSize( this._width * this._pixelRatio, this._height * this._pixelRatio );\n\n\t}\n\n\tremovePass( pass ) {\n\n\t\tconst index = this.passes.indexOf( pass );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tthis.passes.splice( index, 1 );\n\n\t\t}\n\n\t}\n\n\tisLastEnabledPass( passIndex ) {\n\n\t\tfor ( let i = passIndex + 1; i < this.passes.length; i ++ ) {\n\n\t\t\tif ( this.passes[ i ].enabled ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\trender( deltaTime ) {\n\n\t\t// deltaTime value is in seconds\n\n\t\tif ( deltaTime === undefined ) {\n\n\t\t\tdeltaTime = this.clock.getDelta();\n\n\t\t}\n\n\t\tconst currentRenderTarget = this.renderer.getRenderTarget();\n\n\t\tlet maskActive = false;\n\n\t\tfor ( let i = 0, il = this.passes.length; i < il; i ++ ) {\n\n\t\t\tconst pass = this.passes[ i ];\n\n\t\t\tif ( pass.enabled === false ) continue;\n\n\t\t\tpass.renderToScreen = ( this.renderToScreen && this.isLastEnabledPass( i ) );\n\t\t\tpass.render( this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive );\n\n\t\t\tif ( pass.needsSwap ) {\n\n\t\t\t\tif ( maskActive ) {\n\n\t\t\t\t\tconst context = this.renderer.getContext();\n\t\t\t\t\tconst stencil = this.renderer.state.buffers.stencil;\n\n\t\t\t\t\t//context.stencilFunc( context.NOTEQUAL, 1, 0xffffffff );\n\t\t\t\t\tstencil.setFunc( context.NOTEQUAL, 1, 0xffffffff );\n\n\t\t\t\t\tthis.copyPass.render( this.renderer, this.writeBuffer, this.readBuffer, deltaTime );\n\n\t\t\t\t\t//context.stencilFunc( context.EQUAL, 1, 0xffffffff );\n\t\t\t\t\tstencil.setFunc( context.EQUAL, 1, 0xffffffff );\n\n\t\t\t\t}\n\n\t\t\t\tthis.swapBuffers();\n\n\t\t\t}\n\n\t\t\tif ( MaskPass !== undefined ) {\n\n\t\t\t\tif ( pass instanceof MaskPass ) {\n\n\t\t\t\t\tmaskActive = true;\n\n\t\t\t\t} else if ( pass instanceof ClearMaskPass ) {\n\n\t\t\t\t\tmaskActive = false;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.renderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n\treset( renderTarget ) {\n\n\t\tif ( renderTarget === undefined ) {\n\n\t\t\tconst size = this.renderer.getSize( new Vector2() );\n\t\t\tthis._pixelRatio = this.renderer.getPixelRatio();\n\t\t\tthis._width = size.width;\n\t\t\tthis._height = size.height;\n\n\t\t\trenderTarget = this.renderTarget1.clone();\n\t\t\trenderTarget.setSize( this._width * this._pixelRatio, this._height * this._pixelRatio );\n\n\t\t}\n\n\t\tthis.renderTarget1.dispose();\n\t\tthis.renderTarget2.dispose();\n\t\tthis.renderTarget1 = renderTarget;\n\t\tthis.renderTarget2 = renderTarget.clone();\n\n\t\tthis.writeBuffer = this.renderTarget1;\n\t\tthis.readBuffer = this.renderTarget2;\n\n\t}\n\n\tsetSize( width, height ) {\n\n\t\tthis._width = width;\n\t\tthis._height = height;\n\n\t\tconst effectiveWidth = this._width * this._pixelRatio;\n\t\tconst effectiveHeight = this._height * this._pixelRatio;\n\n\t\tthis.renderTarget1.setSize( effectiveWidth, effectiveHeight );\n\t\tthis.renderTarget2.setSize( effectiveWidth, effectiveHeight );\n\n\t\tfor ( let i = 0; i < this.passes.length; i ++ ) {\n\n\t\t\tthis.passes[ i ].setSize( effectiveWidth, effectiveHeight );\n\n\t\t}\n\n\t}\n\n\tsetPixelRatio( pixelRatio ) {\n\n\t\tthis._pixelRatio = pixelRatio;\n\n\t\tthis.setSize( this._width, this._height );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.renderTarget1.dispose();\n\t\tthis.renderTarget2.dispose();\n\n\t\tthis.copyPass.dispose();\n\n\t}\n\n}\n\nexport { EffectComposer };\n","import { Pass } from './Pass.js';\n\nclass MaskPass extends Pass {\n\n\tconstructor( scene, camera ) {\n\n\t\tsuper();\n\n\t\tthis.scene = scene;\n\t\tthis.camera = camera;\n\n\t\tthis.clear = true;\n\t\tthis.needsSwap = false;\n\n\t\tthis.inverse = false;\n\n\t}\n\n\trender( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) {\n\n\t\tconst context = renderer.getContext();\n\t\tconst state = renderer.state;\n\n\t\t// don't update color or depth\n\n\t\tstate.buffers.color.setMask( false );\n\t\tstate.buffers.depth.setMask( false );\n\n\t\t// lock buffers\n\n\t\tstate.buffers.color.setLocked( true );\n\t\tstate.buffers.depth.setLocked( true );\n\n\t\t// set up stencil\n\n\t\tlet writeValue, clearValue;\n\n\t\tif ( this.inverse ) {\n\n\t\t\twriteValue = 0;\n\t\t\tclearValue = 1;\n\n\t\t} else {\n\n\t\t\twriteValue = 1;\n\t\t\tclearValue = 0;\n\n\t\t}\n\n\t\tstate.buffers.stencil.setTest( true );\n\t\tstate.buffers.stencil.setOp( context.REPLACE, context.REPLACE, context.REPLACE );\n\t\tstate.buffers.stencil.setFunc( context.ALWAYS, writeValue, 0xffffffff );\n\t\tstate.buffers.stencil.setClear( clearValue );\n\t\tstate.buffers.stencil.setLocked( true );\n\n\t\t// draw into the stencil buffer\n\n\t\trenderer.setRenderTarget( readBuffer );\n\t\tif ( this.clear ) renderer.clear();\n\t\trenderer.render( this.scene, this.camera );\n\n\t\trenderer.setRenderTarget( writeBuffer );\n\t\tif ( this.clear ) renderer.clear();\n\t\trenderer.render( this.scene, this.camera );\n\n\t\t// unlock color and depth buffer for subsequent rendering\n\n\t\tstate.buffers.color.setLocked( false );\n\t\tstate.buffers.depth.setLocked( false );\n\n\t\t// only render where stencil is set to 1\n\n\t\tstate.buffers.stencil.setLocked( false );\n\t\tstate.buffers.stencil.setFunc( context.EQUAL, 1, 0xffffffff ); // draw if == 1\n\t\tstate.buffers.stencil.setOp( context.KEEP, context.KEEP, context.KEEP );\n\t\tstate.buffers.stencil.setLocked( true );\n\n\t}\n\n}\n\nclass ClearMaskPass extends Pass {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.needsSwap = false;\n\n\t}\n\n\trender( renderer /*, writeBuffer, readBuffer, deltaTime, maskActive */ ) {\n\n\t\trenderer.state.buffers.stencil.setLocked( false );\n\t\trenderer.state.buffers.stencil.setTest( false );\n\n\t}\n\n}\n\nexport { MaskPass, ClearMaskPass };\n","import {\n\tBufferGeometry,\n\tFloat32BufferAttribute,\n\tOrthographicCamera,\n\tMesh\n} from 'three';\n\nclass Pass {\n\n\tconstructor() {\n\n\t\tthis.isPass = true;\n\n\t\t// if set to true, the pass is processed by the composer\n\t\tthis.enabled = true;\n\n\t\t// if set to true, the pass indicates to swap read and write buffer after rendering\n\t\tthis.needsSwap = true;\n\n\t\t// if set to true, the pass clears its buffer before rendering\n\t\tthis.clear = false;\n\n\t\t// if set to true, the result of the pass is rendered to screen. This is set automatically by EffectComposer.\n\t\tthis.renderToScreen = false;\n\n\t}\n\n\tsetSize( /* width, height */ ) {}\n\n\trender( /* renderer, writeBuffer, readBuffer, deltaTime, maskActive */ ) {\n\n\t\tconsole.error( 'THREE.Pass: .render() must be implemented in derived pass.' );\n\n\t}\n\n\tdispose() {}\n\n}\n\n// Helper for passes that need to fill the viewport with a single quad.\n\nconst _camera = new OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );\n\n// https://github.com/mrdoob/three.js/pull/21358\n\nconst _geometry = new BufferGeometry();\n_geometry.setAttribute( 'position', new Float32BufferAttribute( [ - 1, 3, 0, - 1, - 1, 0, 3, - 1, 0 ], 3 ) );\n_geometry.setAttribute( 'uv', new Float32BufferAttribute( [ 0, 2, 0, 0, 2, 0 ], 2 ) );\n\nclass FullScreenQuad {\n\n\tconstructor( material ) {\n\n\t\tthis._mesh = new Mesh( _geometry, material );\n\n\t}\n\n\tdispose() {\n\n\t\tthis._mesh.geometry.dispose();\n\n\t}\n\n\trender( renderer ) {\n\n\t\trenderer.render( this._mesh, _camera );\n\n\t}\n\n\tget material() {\n\n\t\treturn this._mesh.material;\n\n\t}\n\n\tset material( value ) {\n\n\t\tthis._mesh.material = value;\n\n\t}\n\n}\n\nexport { Pass, FullScreenQuad };\n","import {\n\tColor\n} from 'three';\nimport { Pass } from './Pass.js';\n\nclass RenderPass extends Pass {\n\n\tconstructor( scene, camera, overrideMaterial, clearColor, clearAlpha ) {\n\n\t\tsuper();\n\n\t\tthis.scene = scene;\n\t\tthis.camera = camera;\n\n\t\tthis.overrideMaterial = overrideMaterial;\n\n\t\tthis.clearColor = clearColor;\n\t\tthis.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0;\n\n\t\tthis.clear = true;\n\t\tthis.clearDepth = false;\n\t\tthis.needsSwap = false;\n\t\tthis._oldClearColor = new Color();\n\n\t}\n\n\trender( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) {\n\n\t\tconst oldAutoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\n\t\tlet oldClearAlpha, oldOverrideMaterial;\n\n\t\tif ( this.overrideMaterial !== undefined ) {\n\n\t\t\toldOverrideMaterial = this.scene.overrideMaterial;\n\n\t\t\tthis.scene.overrideMaterial = this.overrideMaterial;\n\n\t\t}\n\n\t\tif ( this.clearColor ) {\n\n\t\t\trenderer.getClearColor( this._oldClearColor );\n\t\t\toldClearAlpha = renderer.getClearAlpha();\n\n\t\t\trenderer.setClearColor( this.clearColor, this.clearAlpha );\n\n\t\t}\n\n\t\tif ( this.clearDepth ) {\n\n\t\t\trenderer.clearDepth();\n\n\t\t}\n\n\t\trenderer.setRenderTarget( this.renderToScreen ? null : readBuffer );\n\n\t\t// TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600\n\t\tif ( this.clear ) renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\t\trenderer.render( this.scene, this.camera );\n\n\t\tif ( this.clearColor ) {\n\n\t\t\trenderer.setClearColor( this._oldClearColor, oldClearAlpha );\n\n\t\t}\n\n\t\tif ( this.overrideMaterial !== undefined ) {\n\n\t\t\tthis.scene.overrideMaterial = oldOverrideMaterial;\n\n\t\t}\n\n\t\trenderer.autoClear = oldAutoClear;\n\n\t}\n\n}\n\nexport { RenderPass };\n","import {\n\tShaderMaterial,\n\tUniformsUtils\n} from 'three';\nimport { Pass, FullScreenQuad } from './Pass.js';\n\nclass ShaderPass extends Pass {\n\n\tconstructor( shader, textureID ) {\n\n\t\tsuper();\n\n\t\tthis.textureID = ( textureID !== undefined ) ? textureID : 'tDiffuse';\n\n\t\tif ( shader instanceof ShaderMaterial ) {\n\n\t\t\tthis.uniforms = shader.uniforms;\n\n\t\t\tthis.material = shader;\n\n\t\t} else if ( shader ) {\n\n\t\t\tthis.uniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t\tthis.material = new ShaderMaterial( {\n\n\t\t\t\tname: ( shader.name !== undefined ) ? shader.name : 'unspecified',\n\t\t\t\tdefines: Object.assign( {}, shader.defines ),\n\t\t\t\tuniforms: this.uniforms,\n\t\t\t\tvertexShader: shader.vertexShader,\n\t\t\t\tfragmentShader: shader.fragmentShader\n\n\t\t\t} );\n\n\t\t}\n\n\t\tthis.fsQuad = new FullScreenQuad( this.material );\n\n\t}\n\n\trender( renderer, writeBuffer, readBuffer /*, deltaTime, maskActive */ ) {\n\n\t\tif ( this.uniforms[ this.textureID ] ) {\n\n\t\t\tthis.uniforms[ this.textureID ].value = readBuffer.texture;\n\n\t\t}\n\n\t\tthis.fsQuad.material = this.material;\n\n\t\tif ( this.renderToScreen ) {\n\n\t\t\trenderer.setRenderTarget( null );\n\t\t\tthis.fsQuad.render( renderer );\n\n\t\t} else {\n\n\t\t\trenderer.setRenderTarget( writeBuffer );\n\t\t\t// TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600\n\t\t\tif ( this.clear ) renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\t\t\tthis.fsQuad.render( renderer );\n\n\t\t}\n\n\t}\n\n\tdispose() {\n\n\t\tthis.material.dispose();\n\n\t\tthis.fsQuad.dispose();\n\n\t}\n\n}\n\nexport { ShaderPass };\n","/**\n * Full-screen textured quad shader\n */\n\nconst CopyShader = {\n\n\tname: 'CopyShader',\n\n\tuniforms: {\n\n\t\t'tDiffuse': { value: null },\n\t\t'opacity': { value: 1.0 }\n\n\t},\n\n\tvertexShader: /* 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}`,\n\n\tfragmentShader: /* glsl */`\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tgl_FragColor = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor.a *= opacity;\n\n\n\t\t}`\n\n};\n\nexport { CopyShader };\n","/**\n * Film grain & scanlines shader\n *\n * - ported from HLSL to WebGL / GLSL\n * https://web.archive.org/web/20210226214859/http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html\n *\n * Screen Space Static Postprocessor\n *\n * Produces an analogue noise overlay similar to a film grain / TV static\n *\n * Original implementation and noise algorithm\n * Pat 'Hawthorne' Shearon\n *\n * Optimized scanlines + noise version with intensity scaling\n * Georg 'Leviathan' Steinrohder\n *\n * This version is provided under a Creative Commons Attribution 3.0 License\n * http://creativecommons.org/licenses/by/3.0/\n */\n\nconst FilmShader = {\n\n\tname: 'FilmShader',\n\n\tuniforms: {\n\n\t\t'tDiffuse': { value: null },\n\t\t'time': { value: 0.0 },\n\t\t'nIntensity': { value: 0.5 },\n\t\t'sIntensity': { value: 0.05 },\n\t\t'sCount': { value: 4096 },\n\t\t'grayscale': { value: 1 }\n\n\t},\n\n\tvertexShader: /* 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}`,\n\n\tfragmentShader: /* glsl */`\n\n\t\t#include <common>\n\n\t\t// control parameter\n\t\tuniform float time;\n\n\t\tuniform bool grayscale;\n\n\t\t// noise effect intensity value (0 = no effect, 1 = full effect)\n\t\tuniform float nIntensity;\n\n\t\t// scanlines effect intensity value (0 = no effect, 1 = full effect)\n\t\tuniform float sIntensity;\n\n\t\t// scanlines effect count value (0 = no effect, 4096 = full effect)\n\t\tuniform float sCount;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t// sample the source\n\t\t\tvec4 cTextureScreen = texture2D( tDiffuse, vUv );\n\n\t\t// make some noise\n\t\t\tfloat dx = rand( vUv + time );\n\n\t\t// add noise\n\t\t\tvec3 cResult = cTextureScreen.rgb + cTextureScreen.rgb * clamp( 0.1 + dx, 0.0, 1.0 );\n\n\t\t// get us a sine and cosine\n\t\t\tvec2 sc = vec2( sin( vUv.y * sCount ), cos( vUv.y * sCount ) );\n\n\t\t// add scanlines\n\t\t\tcResult += cTextureScreen.rgb * vec3( sc.x, sc.y, sc.x ) * sIntensity;\n\n\t\t// interpolate between source and result by intensity\n\t\t\tcResult = cTextureScreen.rgb + clamp( nIntensity, 0.0,1.0 ) * ( cResult - cTextureScreen.rgb );\n\n\t\t// convert to grayscale if desired\n\t\t\tif( grayscale ) {\n\n\t\t\t\tcResult = vec3( cResult.r * 0.3 + cResult.g * 0.59 + cResult.b * 0.11 );\n\n\t\t\t}\n\n\t\t\tgl_FragColor = vec4( cResult, cTextureScreen.a );\n\n\t\t}`,\n\n};\n\nexport { FilmShader };\n","/**\n * Focus shader\n * based on PaintEffect postprocess from ro.me\n * http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js\n */\n\nconst FocusShader = {\n\n\tuniforms: {\n\n\t\t'tDiffuse': { value: null },\n\t\t'screenWidth': { value: 1024 },\n\t\t'screenHeight': { value: 1024 },\n\t\t'sampleDistance': { value: 0.94 },\n\t\t'waveFactor': { value: 0.00125 }\n\n\t},\n\n\tvertexShader: /* 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}`,\n\n\tfragmentShader: /* glsl */`\n\n\t\tuniform float screenWidth;\n\t\tuniform float screenHeight;\n\t\tuniform float sampleDistance;\n\t\tuniform float waveFactor;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 color, org, tmp, add;\n\t\t\tfloat sample_dist, f;\n\t\t\tvec2 vin;\n\t\t\tvec2 uv = vUv;\n\n\t\t\tadd = color = org = texture2D( tDiffuse, uv );\n\n\t\t\tvin = ( uv - vec2( 0.5 ) ) * vec2( 1.4 );\n\t\t\tsample_dist = dot( vin, vin ) * 2.0;\n\n\t\t\tf = ( waveFactor * 100.0 + sample_dist ) * sampleDistance * 4.0;\n\n\t\t\tvec2 sampleSize = vec2( 1.0 / screenWidth, 1.0 / screenHeight ) * vec2( f );\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.111964, 0.993712 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.846724, 0.532032 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.943883, -0.330279 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.330279, -0.943883 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.532032, -0.846724 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.993712, -0.111964 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.707107, 0.707107 ) * sampleSize );\n\t\t\tif( tmp.b < color.b ) color = tmp;\n\n\t\t\tcolor = color * vec4( 2.0 ) - ( add / vec4( 8.0 ) );\n\t\t\tcolor = color + ( add / vec4( 8.0 ) - color ) * ( vec4( 1.0 ) - vec4( sample_dist * 0.5 ) );\n\n\t\t\tgl_FragColor = vec4( color.rgb * color.rgb * vec3( 0.95 ) + color.rgb, 1.0 );\n\n\t\t}`\n\n};\n\nexport { FocusShader };\n","/**\n * RGB Shift Shader\n * Shifts red and blue channels from center in opposite directions\n * Ported from https://web.archive.org/web/20090820185047/http://kriss.cx/tom/2009/05/rgb-shift/\n * by Tom Butterworth / https://web.archive.org/web/20090810054752/http://kriss.cx/tom/\n *\n * amount: shift distance (1 is width of input)\n * angle: shift angle in radians\n */\n\nconst RGBShiftShader = {\n\n\tname: 'RGBShiftShader',\n\n\tuniforms: {\n\n\t\t'tDiffuse': { value: null },\n\t\t'amount': { value: 0.005 },\n\t\t'angle': { value: 0.0 }\n\n\t},\n\n\tvertexShader: /* 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}`,\n\n\tfragmentShader: /* glsl */`\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float amount;\n\t\tuniform float angle;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec2 offset = amount * vec2( cos(angle), sin(angle));\n\t\t\tvec4 cr = texture2D(tDiffuse, vUv + offset);\n\t\t\tvec4 cga = texture2D(tDiffuse, vUv);\n\t\t\tvec4 cb = texture2D(tDiffuse, vUv - offset);\n\t\t\tgl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);\n\n\t\t}`\n\n};\n\nexport { RGBShiftShader };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"rogue-engine-user-scripts\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkroguetemplateproject\"] = self[\"webpackChunkroguetemplateproject\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import {\r\n\tVector2\r\n} from 'three';\r\n\r\n/**\r\n * Dot screen shader\r\n * based on glfx.js sepia shader\r\n * https://github.com/evanw/glfx.js\r\n */\r\n\r\nconst ColoredDotScreenShader = {\r\n\r\n\tname: 'ColoredDotScreenShader',\r\n\r\n\tuniforms: {\r\n\r\n\t\t'tDiffuse': { value: null },\r\n\t\t'tSize': { value: new Vector2( 256, 256 ) },\r\n\t\t'center': { value: new Vector2( 0.5, 0.5 ) },\r\n\t\t'angle': { value: 1.57 },\r\n\t\t'scale': { value: 1.0 }\r\n\r\n\t},\r\n\r\n\tvertexShader: /* glsl */`\r\n\r\n\t\tvarying vec2 vUv;\r\n\r\n\t\tvoid main() {\r\n\r\n\t\t\tvUv = uv;\r\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\r\n\r\n\t\t}`,\r\n\r\n\tfragmentShader: /* glsl */`\r\n\r\n\t\tuniform vec2 center;\r\n\t\tuniform float angle;\r\n\t\tuniform float scale;\r\n\t\tuniform vec2 tSize;\r\n\r\n\t\tuniform sampler2D tDiffuse;\r\n\r\n\t\tvarying vec2 vUv;\r\n\r\n\t\tfloat pattern() {\r\n\r\n\t\t\tfloat s = sin( angle ), c = cos( angle );\r\n\r\n\t\t\tvec2 tex = vUv * tSize - center;\r\n\t\t\tvec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;\r\n\r\n\t\t\treturn ( sin( point.x ) * sin( point.y ) ) * 4.0;\r\n\r\n\t\t}\r\n\r\n\t\tvoid main() {\r\n\r\n\t\t\tvec4 color = texture2D( tDiffuse, vUv );\r\n\r\n gl_FragColor = vec4( vec3(color.r, color.g, color.b) * pattern(), color.a );\r\n\r\n\t\t}`\r\n\r\n};\r\n\r\nexport { ColoredDotScreenShader };\r\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class CylinderDistortionComponent extends RE.Component {\n awake() {\n this.distort()\n }\n\n start() {\n }\n\n update() {\n\n }\n\n distort() {\n const positions = (this.object3d as any).geometry.getAttribute(\"position\")\n const normals = (this.object3d as any).geometry.getAttribute(\"normal\")\n const uv = (this.object3d as any).geometry.getAttribute(\"uv\")\n const pos = new THREE.Vector3(0,0,0)\n const norm = new THREE.Vector3(0,0,0)\n const uvPoint = new THREE.Vector2(0,0)\n\n const alteredPosition = new THREE.Vector3(0,0,0)\n\n for (let i = 0; i < (positions.array.length / positions.itemSize); i++) {\n const offset = i * positions.itemSize\n\n pos.set(positions.array[offset], positions.array[offset + 1], positions.array[offset + 2])\n norm.set(normals.array[offset], normals.array[offset + 1], normals.array[offset + 2])\n\n const uvOffset = i * uv.itemSize\n uvPoint.set(uv.array[uvOffset], uv.array[uvOffset + 1])\n\n\n alteredPosition.set(pos.x, pos.y, pos.z)\n const modifier = 1-Math.cos(pos.y / 12)\n alteredPosition.add(norm.multiplyScalar((12 * modifier) * Math.random()))\n\n positions.array[offset] = alteredPosition.x\n positions.array[offset + 1] = alteredPosition.y\n positions.array[offset + 2] = alteredPosition.z\n }\n }\n}\n\nRE.registerComponent(CylinderDistortionComponent);\n","import * as RE from 'rogue-engine';\nimport * as THREE from 'three';\n\nexport default class GradientShaderMaterialComponent extends RE.Component {\n fragmentShader = `uniform vec3 colorA; \n uniform vec3 colorB; \n uniform float meshHeight;\n varying vec3 vUv;\n \n void main() {\n float lerpValue = vUv.y / meshHeight;\n gl_FragColor = vec4(mix(colorA, colorB, lerpValue), 1.0);\n }`\n\n\n vertexShader = `varying vec3 vBC;\n varying vec3 vUv; \n void main() {\n vUv = position; \n \n vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewPosition; \n }`\n\n shaderMaterial\n elapsed: number = 0\n awake() {\n this.shaderMaterial = new THREE.ShaderMaterial({\n extensions: {\n // needed for anti-alias smoothstep, aastep()\n derivatives: true\n },\n transparent: false,\n side: THREE.FrontSide,\n uniforms: {\n colorA: { type: 'vec3', value: new THREE.Color(0x0c1328) },\n colorB: { type: 'vec3', value: new THREE.Color(0x071647) },\n meshHeight: { type: 'float', value: 25.0}\n } as any,\n\n fragmentShader: this.fragmentShader,\n vertexShader: this.vertexShader,\n });\n\n \n }\n\n start() {\n if((this.object3d as any).material instanceof THREE.ShaderMaterial) {\n console.log(\"It's a shader\")\n } else {\n console.log(\"no shader here\")\n }\n (this.object3d as any).material = this.shaderMaterial\n }\n\n update() {\n }\n}\n\nRE.registerComponent(GradientShaderMaterialComponent);\n\n","import * as RE from 'rogue-engine';\nimport { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';\nimport { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';\nimport { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';\n\nimport { RGBShiftShader } from 'three/examples/jsm/shaders/RGBShiftShader.js';\nimport { FocusShader } from 'three/examples/jsm/shaders/FocusShader.js'\nimport { FilmShader } from 'three/examples/jsm/shaders/FilmShader.js'\n\nexport default class PostProcessingComponent extends RE.Component {\n composer: EffectComposer\n shaders: ShaderPass[] = []\n\n elapsed: number = 0\n\n awake() {\n this.elapsed = 0\n\n this.composer = new EffectComposer(RE.Runtime.renderer);\n this.composer.addPass(new RenderPass(RE.Runtime.scene, RE.Runtime.camera));\n\n this.addShader(RGBShiftShader, {\n 'angle': 0,\n 'amount': 0.002,\n })\n\n this.addShader(FocusShader, {\n 'sampleDistance': 0.95,\n 'waveFactor': 0.003,\n })\n\n this.addShader(FilmShader, {\n 'time': 0.0,\n 'nIntensity': 1.0,\n 'sIntensity': 0.8,\n 'sCount': 1024,\n 'grayscale': false,\n })\n\n // const effect3 = new OutputPass();\n // this.composer.addPass( effect3 );\n\n RE.Runtime.renderFunc = () => {\n this.composer.render(RE.Runtime.deltaTime);\n }\n\n RE.Runtime.onStop(() => {\n RE.Runtime.renderFunc = () => RE.Runtime.defaultRenderFunc();\n });\n }\n\n addShader(shaderClass, uniforms = {}) {\n const effect1 = new ShaderPass(shaderClass);\n for (let key in uniforms) {\n effect1.uniforms[key].value = uniforms[key]\n }\n\n this.shaders.push(effect1)\n this.composer.addPass(effect1);\n }\n\n start() {\n\n }\n\n update() {\n this.elapsed += RE.Runtime.deltaTime\n this.shaders.forEach((shaderPass) => {\n if (shaderPass.uniforms['time']) {\n shaderPass.uniforms['time'].value = this.elapsed\n }\n if (shaderPass.uniforms['uTime']) {\n shaderPass.uniforms['uTime'].value = this.elapsed\n }\n if (shaderPass.uniforms['u_time']) {\n shaderPass.uniforms['u_time'].value = this.elapsed\n }\n })\n }\n}\n\nRE.registerComponent(PostProcessingComponent);\n","import * as RE from 'rogue-engine';\n\nexport default class RotationComponent extends RE.Component {\n @RE.props.num() rotationSpeed = -1\n awake() {\n\n }\n\n start() {\n\n }\n\n update() {\n this.object3d.rotateY(this.rotationSpeed / 1000)\n\n }\n}\n\nRE.registerComponent(RotationComponent);\n ","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class StarShaderMaterialComponent extends RE.Component {\n material: THREE.ShaderMaterial\n elapsed: number = 0\n awake() {\n this.material = (this.object3d as any).material as THREE.ShaderMaterial\n \n this.material.uniforms = {\n uTime: { type: 'float', value: 0.0 },\n } as any\n this.elapsed = 0\n }\n\n start() {\n\n }\n\n update() {\n console.log(\"tick\")\n this.elapsed += RE.Runtime.deltaTime\n this.material.uniforms[\"uTime\"].value = this.elapsed\n\n }\n}\n\nRE.registerComponent(StarShaderMaterialComponent);\n ","import * as RE from 'rogue-engine'\r\nimport * as THREE from 'three'\r\n\r\nexport default class VaporwaveSunShaderMaterialComponent extends RE.Component {\r\n elapsed = 0\r\n uniforms : any = {}\r\n vertexShader = `#define GLSLIFY 1\r\n varying vec3 v_position;\r\n varying vec3 v_normal;\r\n varying vec2 v_Uv;\r\n \r\n void main() {\r\n // Save the varyings\r\n v_position = position;\r\n v_normal = normalize(normalMatrix * normal);\r\n v_Uv = uv;\r\n \r\n // Vertex shader output\r\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\r\n }\r\n`\r\nfragmentShader = `#define GLSLIFY 1\r\nuniform float u_time;\r\n\r\nvarying vec3 v_position;\r\nvarying vec3 v_normal;\r\nvarying vec2 v_Uv;\r\n\r\nvoid main() {\r\n float invertedUv = 1.0 - v_Uv.y;\r\n float yPos = 64.0 * (invertedUv * invertedUv * invertedUv);\r\n float delta = 2.0 * u_time;\r\n // Don't paint the pixels between the stripes\r\n if (cos(yPos + delta) > 0.0 && v_Uv.y < 0.6) {\r\n discard;\r\n }\r\n\r\n\r\n float lerpValue = v_Uv.y / 1.0;\r\n vec3 colorA = vec3(1., 1., 0);\r\n vec3 colorB = vec3(1.0, 0.0, 1.0);\r\n gl_FragColor = vec4(mix(colorB, colorA, lerpValue), 1.0);\r\n}\r\n` \r\n awake() {\r\n this.initMaterial()\r\n }\r\n\r\n update() {\r\n this.elapsed += RE.Runtime.deltaTime\r\n\r\n this.uniforms.u_time.value = this.elapsed;\r\n }\r\n\r\n start() {\r\n this.initMaterial()\r\n }\r\n\r\n initMaterial() {\r\n this.elapsed = 0\r\n this.uniforms = {\r\n\t\t\tu_time : {\r\n\t\t\t\ttype : \"f\",\r\n\t\t\t\tvalue : 0.0\r\n\t\t\t}\r\n\t\t};\r\n\r\n const material = (this.object3d as any).material as THREE.ShaderMaterial\r\n material.uniforms = this.uniforms\r\n material.vertexShader = this.vertexShader\r\n material.fragmentShader = this.fragmentShader\r\n material.extensions.derivatives = true\r\n material.side = THREE.FrontSide\r\n material.transparent = true\r\n material.needsUpdate = true\r\n material.uniformsNeedUpdate = true\r\n }\r\n}\r\n\r\nRE.registerComponent(VaporwaveSunShaderMaterialComponent);\r\n ","import * as RE from 'rogue-engine';\nimport * as THREE from 'three';\n\nimport { LineMaterial } from 'three/examples/jsm/lines/LineMaterial.js'\nimport { Wireframe } from 'three/examples/jsm/lines/Wireframe.js'\nimport { WireframeGeometry2 } from 'three/examples/jsm/lines/WireframeGeometry2.js'\n\nexport default class WireframeShaderMaterialComponent extends RE.Component {\n\n @RE.props.material() baseMaterial: THREE.Material\n awake() {\n }\n\n start() {\n let geometry = new WireframeGeometry2((this.object3d as any).geometry)\n const matLine = new LineMaterial({\n\n color: 0x4422ff,\n linewidth: 5,\n dashed: false,\n\n });\n\n matLine.resolution.set( window.innerWidth, window.innerHeight );\n\n const wireframe = new Wireframe(geometry, matLine)\n wireframe.computeLineDistances()\n wireframe.scale.set(1, 1, 1)\n this.object3d.add(wireframe);\n\n (this.object3d as any).material = this.baseMaterial\n }\n\n update() {\n\n }\n}\n\nRE.registerComponent(WireframeShaderMaterialComponent);\n"],"names":[],"sourceRoot":""}