| 12 |
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("babylonjs")):"function"==typeof define&&define.amd?define("babylonjs-postProcessesLibrary",["babylonjs"],t):"object"==typeof exports?exports["babylonjs-postProcessesLibrary"]=t(require("babylonjs")):e.POSTPROCESSLIBRARY=t(e.BABYLON)}(window,function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(n(3))},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),i=void 0!==e?e:"undefined"!=typeof window?window:void 0;if(void 0!==i)for(var r in o)i.BABYLON[r]=o[r];!function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(n(0))}).call(this,n(2))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),i=this&&this.__decorate||function(e,t,n,o){var i,r=arguments.length,a=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(r<3?i(a):r>3?i(t,n,a):i(t,n))||a);return r>3&&a&&Object.defineProperty(t,n,a),a};Object.defineProperty(t,"__esModule",{value:!0});var r=n(4);r.Effect.ShadersStore.digitalrainPixelShader=n(5);var a=function(e){function t(t,n,o,i){void 0===i&&(i=null);var a=e.call(this,i)||this;if(!(i=a.getScene()))return a;a.name=t,a._text,a._font,a.wrapU=r.Texture.CLAMP_ADDRESSMODE,a.wrapV=r.Texture.CLAMP_ADDRESSMODE;var l=a.getFontHeight(n),f=a.getFontWidth(n);a._charSize=Math.max(l.height,f);var c=a._charSize,u=Math.ceil(a._charSize*o.length);a._texture=i.getEngine().createDynamicTexture(c,u,!1,r.Texture.NEAREST_SAMPLINGMODE);var s=a.getSize(),d=document.createElement("canvas");d.width=s.width,d.height=s.height;var g=d.getContext("2d");g.textBaseline="top",g.font=n,g.fillStyle="white",g.imageSmoothingEnabled=!1;for(var p=0;p<o.length;p++)g.fillText(o[p],0,p*a._charSize-l.offset);return i.getEngine().updateDynamicTexture(a._texture,d,!1,!0),a}return o(t,e),Object.defineProperty(t.prototype,"charSize",{get:function(){return this._charSize},enumerable:!0,configurable:!0}),t.prototype.getFontWidth=function(e){var t=document.createElement("canvas").getContext("2d");return t.fillStyle="white",t.font=e,t.measureText("W").width},t.prototype.getFontHeight=function(e){var t=document.createElement("canvas"),n=t.getContext("2d");n.fillRect(0,0,t.width,t.height),n.textBaseline="top",n.fillStyle="white",n.font=e,n.fillText("jH|",0,0);for(var o=n.getImageData(0,0,t.width,t.height).data,i=-1,r=-1,a=0;a<t.height;a++)for(var l=0;l<t.width;l++){if(0!==o[4*(a*t.width+l)]){-1===i&&(i=a);break}if(l===t.width-1&&-1!==i){r=a,a=t.height;break}}return{height:r-i+1,offset:i-1}},t.prototype.clone=function(){return new t(this.name,this._font,this._text,this.getScene())},t.Parse=function(e,n){return r.SerializationHelper.Parse(function(){return new t(e.name,e.font,e.text,n)},e,n,null)},i([r.serialize("font")],t.prototype,"_font",void 0),i([r.serialize("text")],t.prototype,"_text",void 0),t}(r.BaseTexture);t.DigitalRainFontTexture=a;var l=function(e){function t(t,n,o){var i=e.call(this,t,"digitalrain",["digitalRainFontInfos","digitalRainOptions","cosTimeZeroOne","matrixSpeed"],["digitalRainFont"],{width:n.getEngine().getRenderWidth(),height:n.getEngine().getRenderHeight()},n,r.Texture.TRILINEAR_SAMPLINGMODE,n.getEngine(),!0)||this;i.mixToTile=0,i.mixToNormal=0;var l="15px Monospace",f="古池や蛙飛び込む水の音ふるいけやかわずとびこむみずのおと初しぐれ猿も小蓑をほしげ也はつしぐれさるもこみのをほしげなり江戸の雨何石呑んだ時鳥えどのあめなんごくのんだほととぎす";o&&("string"==typeof o?l=o:(l=o.font||l,i.mixToTile=o.mixToTile||i.mixToTile,i.mixToNormal=o.mixToNormal||i.mixToNormal)),i._digitalRainFontTexture=new a(t,l,f,n.getScene());for(var c=i._digitalRainFontTexture.getSize(),u=0,s=0,d=new r.Matrix,g=0;g<16;g++)d.m[g]=Math.random();return i.onApply=function(e){e.setTexture("digitalRainFont",i._digitalRainFontTexture),e.setFloat4("digitalRainFontInfos",i._digitalRainFontTexture.charSize,f.length,c.width,c.height),e.setFloat4("digitalRainOptions",i.width,i.height,i.mixToNormal,i.mixToTile),e.setMatrix("matrixSpeed",d),s=u+=.003,e.setFloat("cosTimeZeroOne",s)},i}return o(t,e),t}(r.PostProcess);t.DigitalRainPostProcess=l},function(t,n){t.exports=e},function(e,t){e.exports="\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D digitalRainFont;\n\nuniform vec4 digitalRainFontInfos;\nuniform vec4 digitalRainOptions;\nuniform mat4 matrixSpeed;\nuniform float cosTimeZeroOne;\n\nfloat getLuminance(vec3 color)\n{\nreturn clamp(dot(color,vec3(0.2126,0.7152,0.0722)),0.,1.);\n}\n\nvoid main(void) \n{\nfloat caracterSize=digitalRainFontInfos.x;\nfloat numChar=digitalRainFontInfos.y-1.0;\nfloat fontx=digitalRainFontInfos.z;\nfloat fonty=digitalRainFontInfos.w;\nfloat screenx=digitalRainOptions.x;\nfloat screeny=digitalRainOptions.y;\nfloat ratio=screeny/fonty;\nfloat columnx=float(floor((gl_FragCoord.x)/caracterSize));\nfloat tileX=float(floor((gl_FragCoord.x)/caracterSize))*caracterSize/screenx;\nfloat tileY=float(floor((gl_FragCoord.y)/caracterSize))*caracterSize/screeny;\nvec2 tileUV=vec2(tileX,tileY);\nvec4 tileColor=texture2D(textureSampler,tileUV);\nvec4 baseColor=texture2D(textureSampler,vUV);\nfloat tileLuminance=getLuminance(tileColor.rgb);\nint st=int(mod(columnx,4.0));\nfloat speed=cosTimeZeroOne*(sin(tileX*314.5)*0.5+0.6); \nfloat x=float(mod(gl_FragCoord.x,caracterSize))/fontx;\nfloat y=float(mod(speed+gl_FragCoord.y/screeny,1.0));\ny*=ratio;\nvec4 finalColor=texture2D(digitalRainFont,vec2(x,1.0-y));\nvec3 high=finalColor.rgb*(vec3(1.2,1.2,1.2)*pow(1.0-y,30.0));\nfinalColor.rgb*=vec3(pow(tileLuminance,5.0),pow(tileLuminance,1.5),pow(tileLuminance,3.0));\nfinalColor.rgb+=high;\nfinalColor.rgb=clamp(finalColor.rgb,0.,1.);\nfinalColor.a=1.0;\nfinalColor=mix(finalColor,tileColor,digitalRainOptions.w);\nfinalColor=mix(finalColor,baseColor,digitalRainOptions.z);\ngl_FragColor=finalColor;\n}"}])});
- //# sourceMappingURL=babylon.digitalRainPostProcess.min.js.map
|