UNPKG

@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.

22 lines (19 loc) 932 B
const WGSL_FOG = ` const E_FOG: f32 = 2.71828; fn calcFogFactor(fogDistance: vec3<f32>) -> f32 { var fogCoeff: f32 = 1.0; let fogMode = scene.vFogInfos.x; let fogStart = scene.vFogInfos.y; let fogEnd = scene.vFogInfos.z; let fogDensity = scene.vFogInfos.w; let dist = length(fogDistance); if (fogMode == 3.0) { fogCoeff = (fogEnd - dist) / (fogEnd - fogStart); } else if (fogMode == 1.0) { fogCoeff = 1.0 / pow(E_FOG, dist * fogDensity); } else if (fogMode == 2.0) { fogCoeff = 1.0 / pow(E_FOG, dist * dist * fogDensity * fogDensity); } return clamp(fogCoeff, 0.0, 1.0); } `; const PBR_FOG_HELPER = WGSL_FOG; const PBR_FOG_BLOCK = `if(scene.vFogInfos.x>0.0){var fogFactor=calcFogFactor((scene.view*vec4<f32>(input.worldPos,1.0)).xyz);fogFactor=pow(fogFactor,2.2);color=mix(pow(scene.vFogColor.rgb,vec3<f32>(2.2)),color,fogFactor);}`; export { PBR_FOG_BLOCK, PBR_FOG_HELPER }; //# sourceMappingURL=pbr-fog-wgsl-Bm1AhwLx.esm.js.map