cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
2 lines (1 loc) • 2.08 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e=require("../Texture.js"),r=require("../FrameBuffer.js"),a=require("../Texture2D.js"),t=require("../core/vendor.js"),n=require("../plugin/Skybox.js"),d=require("../prePass/EnvironmentMap.js"),u=require("../Scene.js"),l=require("../glmatrix/vec3.js"),i={},o=["px","nx","py","ny","pz","nz"];function f(e,r){var a=e[0],t=e[1],n=e[2];return 0===r?1:1===r?a:2===r?t:3===r?n:4===r?a*n:5===r?t*n:6===r?a*t:7===r?3*n*n-1:a*a-t*t}var s={px:[2,1,0,-1,-1,1],nx:[2,1,0,1,-1,-1],py:[0,2,1,1,-1,-1],ny:[0,2,1,1,1,1],pz:[0,1,2,-1,-1,-1],nz:[0,1,2,1,-1,1]};i.projectEnvironmentMap=function(i,p,v){var c;(v=v||{}).lod=v.lod||0;var m=new u.default,x=64;"texture2D"===p.textureType||(x=p.image&&p.image.px?p.image.px.width:p.width),c=new n.default({scene:m,environmentMap:p});var g=Math.ceil(x/Math.pow(2,v.lod)),h=Math.ceil(x/Math.pow(2,v.lod)),w=new a.default({width:g,height:h}),M=new r.default;c.material.define("fragment","RGBM_ENCODE"),v.decodeRGBM&&c.material.define("fragment","RGBM_DECODE"),c.material.set("lod",v.lod);for(var j=new d.default({texture:w}),y={},q=0;q<o.length;q++){y[o[q]]=new Uint8Array(g*h*4);var E=j.getCamera(o[q]);E.fov=90,M.attach(w),M.bind(i),i.render(m,E),i.gl.readPixels(0,0,g,h,e.default.RGBA,e.default.UNSIGNED_BYTE,y[o[q]]),M.unbind(i)}return c.dispose(i),M.dispose(i),w.dispose(i),function(e,r,a,n){for(var d=new t.default.Float32Array(27),u=l.default.create(),i=l.default.create(),p=l.default.create(),v=0;v<9;v++){for(var c=l.default.create(),m=0;m<o.length;m++){for(var x=r[o[m]],g=l.default.create(),h=0,w=0,M=s[o[m]],j=0;j<n;j++)for(var y=0;y<a;y++){u[0]=y/(a-1)*2-1,u[1]=j/(n-1)*2-1,u[2]=-1,l.default.normalize(u,u),p[0]=u[M[0]]*M[3],p[1]=u[M[1]]*M[4],p[2]=u[M[2]]*M[5],i[0]=x[w++]/255,i[1]=x[w++]/255,i[2]=x[w++]/255;var q=x[w++]/255*8.12;i[0]*=q,i[1]*=q,i[2]*=q,l.default.scaleAndAdd(g,g,i,f(p,v)*-u[2]),h+=-u[2]}l.default.scaleAndAdd(c,c,g,1/h)}d[3*v]=c[0]/6,d[3*v+1]=c[1]/6,d[3*v+2]=c[2]/6}return d}(0,y,g,h)};var p=i;exports.default=p;