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.

3 lines (2 loc) 1.21 kB
import{_ as e,h as a}from"./index-B8IgtevW.esm.min.js";function s(s,n){const t=new Set,r=new WeakMap;a(o);const d={name:"shadow",engine:s,scene:n,_passes:[],async _preload(){const a=[];for(const s of n.lights){const o=s.shadowGenerator,n=o?e(o):null;o?._preloadShadowTask&&n&&(t.add(o),a.push(o._preloadShadowTask(n)))}await Promise.all(a)},record(){d._passes.length=0;for(const a of n.lights){const o=a.shadowGenerator,r=o?e(o):null;if(o?._ensureShadowTaskState&&r&&!o._preloadPending){t.add(o);o._ensureShadowTaskState(s,n,r)._task.record()}}},execute(){let a=0;for(const o of n.lights){const d=o.shadowGenerator,l=d?e(d):null;if(d?._ensureShadowTaskState&&d._renderShadowMap&&l&&!d._preloadPending){t.add(d);const e=d._shadowTaskState??null,o=d._ensureShadowTaskState(s,n,l);e&&e._casterMeshes===l&&r.get(d)===n._renderableVersion||(o._task.record(),r.set(d,n._renderableVersion)),a+=d._renderShadowMap(s,o)}}return a},dispose(){d._passes.length=0;for(const e of t){const a=e._shadowTaskState;a&&(a._task.dispose(),e._shadowTaskState=void 0)}t.clear()}};return d}async function o(e,a){await(e._preloadShadowTask?.(a))}export{s as createShadowTask}; //# sourceMappingURL=shadow-task-Bj4Ho70L.esm.min.js.map