@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3 lines (2 loc) • 1.2 kB
JavaScript
import{r as e,_ as r}from"./pbr-transmission-ext-C6WXt9pi.esm.min.js";import{br as t}from"./index-B8IgtevW.esm.min.js";import"./generate-mipmaps-Cs76X4rW.esm.min.js";function a(a,n){((a._subsurface??={}).refraction??={}).dispersion=n,r("let eta=material.refractionParams.y;\nlet realIOR=1.0/eta;\nlet spread=0.04*material.volumeParams.w*(realIOR-1.0);\nlet etaR=1.0/(realIOR-spread);\nlet etaB=1.0/(realIOR+spread);\nlet cpR=scene.viewProjection*vec4<f32>(input.worldPos+refract(-V,N,etaR)*th,1.0);\nlet cpG=scene.viewProjection*vec4<f32>(input.worldPos+refract(-V,N,eta)*th,1.0);\nlet cpB=scene.viewProjection*vec4<f32>(input.worldPos+refract(-V,N,etaB)*th,1.0);\nlet uvR=(cpR.xy/cpR.w)*vec2<f32>(0.5,-0.5)+vec2<f32>(0.5,0.5);\nlet uvG=(cpG.xy/cpG.w)*vec2<f32>(0.5,-0.5)+vec2<f32>(0.5,0.5);\nlet uvB=(cpB.xy/cpB.w)*vec2<f32>(0.5,-0.5)+vec2<f32>(0.5,0.5);\nlet er=vec3<f32>(textureSampleLevel(refractionTexture,refractionSampler_,uvR,lv).r,textureSampleLevel(refractionTexture,refractionSampler_,uvG,lv).g,textureSampleLevel(refractionTexture,refractionSampler_,uvB,lv).b)*material.environmentIntensity;"),t(e)}export{a as setPbrDispersion};
//# sourceMappingURL=set-dispersion-EzglBhg3.esm.min.js.map