framefields 2.0.10 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -6
- package/dist/audio/index.d.mts +4 -4
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-BxA0sL9z.d.mts → audio-BHanw8Jb.d.mts} +3 -3
- package/dist/{audio-BxA0sL9z.d.mts.map → audio-BHanw8Jb.d.mts.map} +1 -1
- package/dist/{audio-B7Al-W_0.mjs → audio-COOMNwL5.mjs} +4 -4
- package/dist/{audio-B7Al-W_0.mjs.map → audio-COOMNwL5.mjs.map} +1 -1
- package/dist/{dist-BFjSQP7i.mjs → dist-BAVZdFEJ.mjs} +3 -3
- package/dist/{dist-BFjSQP7i.mjs.map → dist-BAVZdFEJ.mjs.map} +1 -1
- package/dist/{dist-DzUJmIHt.mjs → dist-BYqNNwsl.mjs} +2 -2
- package/dist/{dist-DzUJmIHt.mjs.map → dist-BYqNNwsl.mjs.map} +1 -1
- package/dist/{dist-B9Afsv83.mjs → dist-CbG3QxDw.mjs} +651 -2
- package/dist/dist-CbG3QxDw.mjs.map +1 -0
- package/dist/{dist-B9PkqWnN.mjs → dist-Cxi68OuY.mjs} +5322 -3274
- package/dist/dist-Cxi68OuY.mjs.map +1 -0
- package/dist/effects/index.d.mts +4 -4
- package/dist/effects/index.mjs +25 -25
- package/dist/{effects-CREopCyP.mjs → effects-DzbjFhyA.mjs} +3 -3
- package/dist/{effects-CREopCyP.mjs.map → effects-DzbjFhyA.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +2 -2
- package/dist/fonts/index.mjs +1 -1
- package/dist/{fonts-DhEQ5h6E.mjs → fonts-C0W6TgJk.mjs} +52 -5
- package/dist/fonts-C0W6TgJk.mjs.map +1 -0
- package/dist/{index-J9CIK_nu.d.mts → index-9B8CJowc.d.mts} +2 -2
- package/dist/{index-J9CIK_nu.d.mts.map → index-9B8CJowc.d.mts.map} +1 -1
- package/dist/{index-CvDVpaKn.d.mts → index-CDoTrMs1.d.mts} +4 -4
- package/dist/{index-CvDVpaKn.d.mts.map → index-CDoTrMs1.d.mts.map} +1 -1
- package/dist/{index-BXNNJVs8.d.mts → index-CYGpSVsf.d.mts} +2 -2
- package/dist/{index-BXNNJVs8.d.mts.map → index-CYGpSVsf.d.mts.map} +1 -1
- package/dist/{index-D1zaOwEU.d.mts → index-DDEPvMww.d.mts} +520 -71
- package/dist/index-DDEPvMww.d.mts.map +1 -0
- package/dist/{index-oodg5k9K.d.mts → index-DGJp1d30.d.mts} +3 -3
- package/dist/{index-oodg5k9K.d.mts.map → index-DGJp1d30.d.mts.map} +1 -1
- package/dist/{index-fo4E7A6C.d.mts → index-DRZu3ezy.d.mts} +3 -3
- package/dist/{index-fo4E7A6C.d.mts.map → index-DRZu3ezy.d.mts.map} +1 -1
- package/dist/{index-CQcdKyxF.d.mts → index-DnWsbbuZ.d.mts} +54 -2
- package/dist/index-DnWsbbuZ.d.mts.map +1 -0
- package/dist/index.d.mts +398 -18
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +633 -57
- package/dist/index.mjs.map +1 -1
- package/dist/preview/index.d.mts +2 -2
- package/dist/preview/index.mjs +10 -10
- package/dist/{preview-9ifxywUM.mjs → preview-BV2C4Fk6.mjs} +2 -2
- package/dist/{preview-9ifxywUM.mjs.map → preview-BV2C4Fk6.mjs.map} +1 -1
- package/dist/preview-engine/{chunk-VVLM6LZ3.mjs → chunk-6256GQFP.mjs} +1 -1
- package/dist/preview-engine/{chunk-YG35X5R5.mjs → chunk-AWTH2WZO.mjs} +1 -1
- package/dist/preview-engine/{chunk-7DIAFPQP.mjs → chunk-ECPP3UG6.mjs} +1 -1
- package/dist/preview-engine/{chunk-5JD65JSJ.mjs → chunk-FGHOHCFG.mjs} +1 -1
- package/dist/preview-engine/chunk-IMV5SBQV.mjs +1 -0
- package/dist/preview-engine/chunk-IQKIHFNZ.mjs +1 -0
- package/dist/preview-engine/chunk-L3IEJZ5S.mjs +474 -0
- package/dist/preview-engine/chunk-M7NMFDJ3.mjs +3 -0
- package/dist/preview-engine/chunk-NFAGEP43.mjs +1448 -0
- package/dist/preview-engine/{chunk-AG5JNZYQ.mjs → chunk-Q66QQI6N.mjs} +1 -1
- package/dist/preview-engine/{chunk-JAOXXYXG.mjs → chunk-QYRDQMNB.mjs} +1 -1
- package/dist/preview-engine/{chunk-XCYFPA34.mjs → chunk-RJUAM52F.mjs} +1 -1
- package/dist/preview-engine/chunk-VRGREB3V.mjs +1 -0
- package/dist/preview-engine/{chunk-AW7HNZKR.mjs → chunk-Y6HWYPKX.mjs} +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +27 -27
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/renderers-5BV6JGTU.mjs +248 -0
- package/dist/preview-engine/renderers-7X2W6QWX.mjs +1 -0
- package/dist/preview-engine/renderers-EOJMPPAQ.mjs +1 -0
- package/dist/preview-engine/renderers-G5KQISVL.mjs +1 -0
- package/dist/preview-engine/renderers-GMX2ZQDG.mjs +1 -0
- package/dist/preview-engine/renderers-TVTQ2R74.mjs +1 -0
- package/dist/preview-engine/renderers-ZIMBODX6.mjs +1 -0
- package/dist/{program-xRfFoPxe.mjs → program-BmNKgzja.mjs} +281 -23
- package/dist/program-BmNKgzja.mjs.map +1 -0
- package/dist/renderer/index.d.mts +2 -2
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-D-4Yh-RK.mjs → renderer-1VuQTY1Z.mjs} +2 -2
- package/dist/{renderer-D-4Yh-RK.mjs.map → renderer-1VuQTY1Z.mjs.map} +1 -1
- package/dist/renderer-6oMSare3.mjs +3 -0
- package/dist/renderer-B1ComPb2.mjs +3 -0
- package/dist/{renderer-CgmFh6MY.mjs → renderer-B1YMwl2B.mjs} +1 -1
- package/dist/{renderer-BtRfKx5N.mjs → renderer-B2ieylQ3.mjs} +2 -2
- package/dist/{renderer-BtRfKx5N.mjs.map → renderer-B2ieylQ3.mjs.map} +1 -1
- package/dist/{renderer-DYm4duFr.mjs → renderer-B8-kzZdP.mjs} +2 -2
- package/dist/{renderer-DYm4duFr.mjs.map → renderer-B8-kzZdP.mjs.map} +1 -1
- package/dist/{renderer-Dju9CaeL.mjs → renderer-B8UaFNqb.mjs} +3 -3
- package/dist/{renderer-Dju9CaeL.mjs.map → renderer-B8UaFNqb.mjs.map} +1 -1
- package/dist/{renderer-BA8YwBRQ.mjs → renderer-BDbTWSpP.mjs} +3 -3
- package/dist/{renderer-BA8YwBRQ.mjs.map → renderer-BDbTWSpP.mjs.map} +1 -1
- package/dist/{renderer-DxtHmyAa.mjs → renderer-BIIWCg_J.mjs} +3 -3
- package/dist/{renderer-DxtHmyAa.mjs.map → renderer-BIIWCg_J.mjs.map} +1 -1
- package/dist/{renderer-CJNyhr_S.mjs → renderer-BJ1aTkZf.mjs} +3 -3
- package/dist/{renderer-CJNyhr_S.mjs.map → renderer-BJ1aTkZf.mjs.map} +1 -1
- package/dist/renderer-BQ5Bz5D0.mjs +3 -0
- package/dist/{renderer-DBlPbsgi.mjs → renderer-BSaYG8aw.mjs} +1 -1
- package/dist/{renderer-2NQWaZd7.d.mts → renderer-BTdOMMEx.d.mts} +2 -2
- package/dist/{renderer-2NQWaZd7.d.mts.map → renderer-BTdOMMEx.d.mts.map} +1 -1
- package/dist/renderer-BZcn_iBl.mjs +3 -0
- package/dist/{renderer-CroHPOsX.mjs → renderer-Bc04fivZ.mjs} +3 -3
- package/dist/{renderer-CroHPOsX.mjs.map → renderer-Bc04fivZ.mjs.map} +1 -1
- package/dist/{renderer-xKOVmd2O.mjs → renderer-BfAWZziM.mjs} +193 -12
- package/dist/renderer-BfAWZziM.mjs.map +1 -0
- package/dist/{renderer-DTvfYkI9.mjs → renderer-Bfgd4N0O.mjs} +3 -3
- package/dist/{renderer-DTvfYkI9.mjs.map → renderer-Bfgd4N0O.mjs.map} +1 -1
- package/dist/{renderer-b6sZN90h.mjs → renderer-BhZZEyFX.mjs} +2 -2
- package/dist/{renderer-b6sZN90h.mjs.map → renderer-BhZZEyFX.mjs.map} +1 -1
- package/dist/{renderer-wVldKtFU.mjs → renderer-Bhdf90Zq.mjs} +2 -2
- package/dist/{renderer-wVldKtFU.mjs.map → renderer-Bhdf90Zq.mjs.map} +1 -1
- package/dist/renderer-Bp6sDMa6.mjs +3 -0
- package/dist/renderer-Bt7_sb_Y.mjs +3 -0
- package/dist/{renderer-BiSALMQy.mjs → renderer-Bv21DbWy.mjs} +1 -1
- package/dist/{renderer-CoZKST2Y.mjs → renderer-Bv6q84TU.mjs} +2 -2
- package/dist/{renderer-CoZKST2Y.mjs.map → renderer-Bv6q84TU.mjs.map} +1 -1
- package/dist/renderer-C606ZPUn.mjs +3 -0
- package/dist/renderer-C9jyKn1i.mjs +3 -0
- package/dist/renderer-CERfcxgv.mjs +3 -0
- package/dist/renderer-CG5PzNkv.mjs +3 -0
- package/dist/{renderer-BGXbGqY4.mjs → renderer-CI7sG_cv.mjs} +2 -2
- package/dist/{renderer-BGXbGqY4.mjs.map → renderer-CI7sG_cv.mjs.map} +1 -1
- package/dist/renderer-CPoIMVdk.mjs +3 -0
- package/dist/{renderer-DCkSR2Ne.mjs → renderer-CWTpc4ff.mjs} +2 -2
- package/dist/{renderer-DCkSR2Ne.mjs.map → renderer-CWTpc4ff.mjs.map} +1 -1
- package/dist/{renderer-D7ztfQHX.mjs → renderer-CXn5HAnK.mjs} +3 -3
- package/dist/{renderer-D7ztfQHX.mjs.map → renderer-CXn5HAnK.mjs.map} +1 -1
- package/dist/{renderer-DjTiNeAp.mjs → renderer-C_TPMHiH.mjs} +2 -2
- package/dist/{renderer-DjTiNeAp.mjs.map → renderer-C_TPMHiH.mjs.map} +1 -1
- package/dist/renderer-Ca7L1EOp.mjs +3 -0
- package/dist/{renderer-DAMJZNtX.mjs → renderer-CaaOKMSd.mjs} +2 -2
- package/dist/{renderer-DAMJZNtX.mjs.map → renderer-CaaOKMSd.mjs.map} +1 -1
- package/dist/{renderer-CIYcdZuZ.mjs → renderer-CdciwwMI.mjs} +3 -3
- package/dist/{renderer-CIYcdZuZ.mjs.map → renderer-CdciwwMI.mjs.map} +1 -1
- package/dist/{renderer-BZmfKIom.mjs → renderer-CfC_aiew.mjs} +3 -3
- package/dist/{renderer-BZmfKIom.mjs.map → renderer-CfC_aiew.mjs.map} +1 -1
- package/dist/{renderer-8qpGxSSO.mjs → renderer-ChdLYS-G.mjs} +3 -3
- package/dist/{renderer-8qpGxSSO.mjs.map → renderer-ChdLYS-G.mjs.map} +1 -1
- package/dist/renderer-Cl6GkeHx.mjs +3 -0
- package/dist/renderer-ClcjrFyo.mjs +3 -0
- package/dist/{renderer-BgdkEFmv.mjs → renderer-CnXW28b9.mjs} +2 -2
- package/dist/{renderer-BgdkEFmv.mjs.map → renderer-CnXW28b9.mjs.map} +1 -1
- package/dist/{renderer-6GeDT4Mx.mjs → renderer-Ctk2zzfy.mjs} +3 -3
- package/dist/{renderer-6GeDT4Mx.mjs.map → renderer-Ctk2zzfy.mjs.map} +1 -1
- package/dist/{renderer-But0u-xi.mjs → renderer-CtyD_Xju.mjs} +2 -2
- package/dist/{renderer-But0u-xi.mjs.map → renderer-CtyD_Xju.mjs.map} +1 -1
- package/dist/renderer-CySUP_wk.mjs +3 -0
- package/dist/renderer-D2l_Odyg.mjs +3 -0
- package/dist/{renderer-BJ6Y-7ke.mjs → renderer-D2nCGcjv.mjs} +2 -2
- package/dist/{renderer-BJ6Y-7ke.mjs.map → renderer-D2nCGcjv.mjs.map} +1 -1
- package/dist/renderer-DCPCYySt.mjs +3 -0
- package/dist/{renderer-BnvqEqvE.mjs → renderer-DIgsilTw.mjs} +3 -3
- package/dist/{renderer-BnvqEqvE.mjs.map → renderer-DIgsilTw.mjs.map} +1 -1
- package/dist/renderer-DIkpJEOZ.mjs +3 -0
- package/dist/{renderer-BpCxKWQm.mjs → renderer-DML9qpmS.mjs} +2 -2
- package/dist/{renderer-BpCxKWQm.mjs.map → renderer-DML9qpmS.mjs.map} +1 -1
- package/dist/renderer-DNSXPkf_.mjs +3 -0
- package/dist/renderer-DP-CvZ_Z.mjs +3 -0
- package/dist/renderer-DeXb8R6h.mjs +3 -0
- package/dist/renderer-DezO-ZaP.mjs +4 -0
- package/dist/renderer-DhXe04fC.mjs +3 -0
- package/dist/{renderer-jkZ_IQnW.mjs → renderer-DirxsOjq.mjs} +2 -2
- package/dist/{renderer-jkZ_IQnW.mjs.map → renderer-DirxsOjq.mjs.map} +1 -1
- package/dist/{renderer-CfeoxM_3.mjs → renderer-Djlb4TLO.mjs} +3 -3
- package/dist/{renderer-CfeoxM_3.mjs.map → renderer-Djlb4TLO.mjs.map} +1 -1
- package/dist/renderer-DnH3SI7w.mjs +3 -0
- package/dist/{renderer-DdVBt8Rz.mjs → renderer-DpGc-N3G.mjs} +3 -3
- package/dist/{renderer-DdVBt8Rz.mjs.map → renderer-DpGc-N3G.mjs.map} +1 -1
- package/dist/renderer-Dpw4oi33.mjs +3 -0
- package/dist/{renderer-CcU7dVn9.mjs → renderer-DxTs4Iyi.mjs} +2 -2
- package/dist/{renderer-CcU7dVn9.mjs.map → renderer-DxTs4Iyi.mjs.map} +1 -1
- package/dist/{renderer-CNF10fCq.mjs → renderer-Dy0utCl7.mjs} +3 -3
- package/dist/{renderer-CNF10fCq.mjs.map → renderer-Dy0utCl7.mjs.map} +1 -1
- package/dist/renderer-Md-ytU0v.mjs +3 -0
- package/dist/{renderer-CStktK20.mjs → renderer-RKsXlF_0.mjs} +43 -43
- package/dist/{renderer-CStktK20.mjs.map → renderer-RKsXlF_0.mjs.map} +1 -1
- package/dist/renderer-U-bhWO9Q.mjs +3 -0
- package/dist/{renderer-5h0llpx7.mjs → renderer-WSGuj_V6.mjs} +2 -2
- package/dist/{renderer-5h0llpx7.mjs.map → renderer-WSGuj_V6.mjs.map} +1 -1
- package/dist/{renderer-_bygZSKk.mjs → renderer-bsWnRNpJ.mjs} +2 -2
- package/dist/{renderer-_bygZSKk.mjs.map → renderer-bsWnRNpJ.mjs.map} +1 -1
- package/dist/{renderer-DNNqpK7t.mjs → renderer-cgxO2xN6.mjs} +3 -3
- package/dist/{renderer-DNNqpK7t.mjs.map → renderer-cgxO2xN6.mjs.map} +1 -1
- package/dist/{renderer-DryPrxYc.mjs → renderer-dncoIVdd.mjs} +1 -1
- package/dist/{renderer-DffynBHa.mjs → renderer-kwmlLQOO.mjs} +3 -3
- package/dist/{renderer-DffynBHa.mjs.map → renderer-kwmlLQOO.mjs.map} +1 -1
- package/dist/{renderer-9wp5R7PL.mjs → renderer-vqkKWqa5.mjs} +2 -2
- package/dist/{renderer-9wp5R7PL.mjs.map → renderer-vqkKWqa5.mjs.map} +1 -1
- package/dist/renderer-zA5okHds.mjs +3 -0
- package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs → renderers-CP8CFWDs-DwQTx8S7.mjs} +3 -3
- package/dist/{renderers-CP8CFWDs-BLgwUYX2.mjs.map → renderers-CP8CFWDs-DwQTx8S7.mjs.map} +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +6 -6
- package/dist/{signals-CsxqD2AA.mjs → signals-Bv1OweKd.mjs} +3 -3
- package/dist/{signals-CsxqD2AA.mjs.map → signals-Bv1OweKd.mjs.map} +1 -1
- package/package.json +55 -55
- package/dist/dist-B9Afsv83.mjs.map +0 -1
- package/dist/dist-B9PkqWnN.mjs.map +0 -1
- package/dist/fonts-DhEQ5h6E.mjs.map +0 -1
- package/dist/index-CQcdKyxF.d.mts.map +0 -1
- package/dist/index-D1zaOwEU.d.mts.map +0 -1
- package/dist/preview-engine/chunk-CNSHAFEA.mjs +0 -1
- package/dist/preview-engine/chunk-QTKJXDIW.mjs +0 -997
- package/dist/preview-engine/chunk-RNOO4UR5.mjs +0 -3
- package/dist/preview-engine/chunk-T6CC2KCZ.mjs +0 -418
- package/dist/preview-engine/chunk-UC7CSW2A.mjs +0 -1
- package/dist/preview-engine/renderers-32PIFHPS.mjs +0 -1
- package/dist/preview-engine/renderers-3Y3EMRDJ.mjs +0 -1
- package/dist/preview-engine/renderers-7HNVXNAI.mjs +0 -248
- package/dist/preview-engine/renderers-CHJWUJVI.mjs +0 -1
- package/dist/preview-engine/renderers-CI2GXWLP.mjs +0 -1
- package/dist/preview-engine/renderers-EE2GFG7J.mjs +0 -1
- package/dist/preview-engine/renderers-UGZUPONY.mjs +0 -1
- package/dist/program-xRfFoPxe.mjs.map +0 -1
- package/dist/renderer-B4F6wL68.mjs +0 -3
- package/dist/renderer-B4i1jmiT.mjs +0 -3
- package/dist/renderer-B5ylY3uM.mjs +0 -3
- package/dist/renderer-BPw23wiR.mjs +0 -3
- package/dist/renderer-BghW-bSZ.mjs +0 -3
- package/dist/renderer-Bw3oZ9YT.mjs +0 -3
- package/dist/renderer-C2009W-_.mjs +0 -3
- package/dist/renderer-C36yoGXG.mjs +0 -3
- package/dist/renderer-CL3evUmF.mjs +0 -3
- package/dist/renderer-CM1_2ZWA.mjs +0 -3
- package/dist/renderer-CWlzudP8.mjs +0 -3
- package/dist/renderer-Cd5vzrGs.mjs +0 -3
- package/dist/renderer-CeJ_vDXI.mjs +0 -3
- package/dist/renderer-CjY77sB_.mjs +0 -3
- package/dist/renderer-D5Z6mda5.mjs +0 -3
- package/dist/renderer-DCJa7OGk.mjs +0 -3
- package/dist/renderer-DGwSl7g1.mjs +0 -3
- package/dist/renderer-DNoRNfMm.mjs +0 -3
- package/dist/renderer-DOZ8bpyY.mjs +0 -3
- package/dist/renderer-DRHyRNU8.mjs +0 -3
- package/dist/renderer-DlD85Xoi.mjs +0 -3
- package/dist/renderer-Dr0bgOrW.mjs +0 -3
- package/dist/renderer-DurtG-Hc.mjs +0 -3
- package/dist/renderer-eFv9HBmL.mjs +0 -3
- package/dist/renderer-iuV6wQoL.mjs +0 -4
- package/dist/renderer-n-uuWPF4.mjs +0 -3
- package/dist/renderer-rzccTFuY.mjs +0 -3
- package/dist/renderer-xKOVmd2O.mjs.map +0 -1
- package/dist/renderer-y9eGFPFL.mjs +0 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gt as reportRenderDiagnostic, Jt as resolveNumber, Kt as resolveBoolean, p as DEFAULT_DURATION_MS, wt as getActiveMediaMetadata } from "./dist-CbG3QxDw.mjs";
|
|
2
2
|
import { n as defineRenderer, t as audioRegistry } from "./renderer-CtVkU_GA.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { a as resolveLayerDuration, g as measureText, n as decodeAudioSource } from "./dist-
|
|
3
|
+
import { $ as poseNodes, H as jointMatrices, I as generateExtrudedTextGeometry, R as getPrimitiveGeometry, S as Vector3Math, Y as parseColor, a as Camera3D, c as Light3D, ct as resolveMediaSourceUrl, g as ScreenSpaceRelightPipeline, it as srtLoader, l as Matrix4Math, m as Renderer3D, n as AudioLatentTrackCache, q as measureMaxCaptionHeight, y as SlugFontCache } from "./dist-Cxi68OuY.mjs";
|
|
4
|
+
import { a as resolveLayerDuration, g as measureText, n as decodeAudioSource } from "./dist-BAVZdFEJ.mjs";
|
|
5
5
|
import { o as TemporalDeflickerPipeline } from "./dist-C_hjvkdN.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { Ct as collectNodeOps, Dt as computeLayout, Ut as evaluateTrackAtFrame, Zt as initLayout } from "./program-BmNKgzja.mjs";
|
|
7
7
|
import gsapModule from "gsap";
|
|
8
8
|
|
|
9
|
-
//#region ../../nodes/node-compositor/dist/renderers-
|
|
9
|
+
//#region ../../nodes/node-compositor/dist/renderers-BAr6K7E8.mjs
|
|
10
10
|
/**
|
|
11
11
|
* Solves a cubic bezier curve defined by control points (x1, y1) and (x2, y2)
|
|
12
12
|
* for a given progress parameter t in [0, 1].
|
|
@@ -1338,6 +1338,25 @@ function drawProjectedQuad(ctx, encoder, destView, sourceTex, quad, destWidth, d
|
|
|
1338
1338
|
renderPass.draw(4);
|
|
1339
1339
|
renderPass.end();
|
|
1340
1340
|
}
|
|
1341
|
+
/**
|
|
1342
|
+
* Emissive and shadow participation for a 3D draw: animated values first,
|
|
1343
|
+
* then the node's own, then (meshes) the model file's material.
|
|
1344
|
+
*/
|
|
1345
|
+
function surfaceProps(target, lop, mat) {
|
|
1346
|
+
const toSrgb = (v) => v <= .0031308 ? 12.92 * v : 1.055 * v ** (1 / 2.4) - .055;
|
|
1347
|
+
const emissive = target?.emissive ?? lop.emissive ?? (mat?.emissive ? [
|
|
1348
|
+
toSrgb(mat.emissive[0]),
|
|
1349
|
+
toSrgb(mat.emissive[1]),
|
|
1350
|
+
toSrgb(mat.emissive[2])
|
|
1351
|
+
] : void 0);
|
|
1352
|
+
const out = {};
|
|
1353
|
+
if (emissive !== void 0) {
|
|
1354
|
+
out.emissive = emissive;
|
|
1355
|
+
out.emissiveIntensity = target?.emissiveIntensity ?? lop.emissiveIntensity ?? mat?.emissiveStrength ?? 1;
|
|
1356
|
+
}
|
|
1357
|
+
if (lop.castShadow !== void 0) out.castShadow = lop.castShadow;
|
|
1358
|
+
return out;
|
|
1359
|
+
}
|
|
1341
1360
|
function computeContainerScissor(matrix, width, height) {
|
|
1342
1361
|
const corners = [
|
|
1343
1362
|
matrix.transformPoint(new DOMPoint(0, 0)),
|
|
@@ -1524,6 +1543,9 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1524
1543
|
let camera = null;
|
|
1525
1544
|
let dofEnabled = false;
|
|
1526
1545
|
const sceneLights = [];
|
|
1546
|
+
let sceneEnvironment = null;
|
|
1547
|
+
let sceneBloom = null;
|
|
1548
|
+
let shadowMapSize;
|
|
1527
1549
|
if (is3DScene) {
|
|
1528
1550
|
const camOp = cameraVM?.operation;
|
|
1529
1551
|
const camStub = camOp?.id ? targetsById[camOp.id] : void 0;
|
|
@@ -1593,6 +1615,23 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1593
1615
|
if (durationFrames !== void 0 && shiftedFrame >= startFrame + durationFrames) continue;
|
|
1594
1616
|
}
|
|
1595
1617
|
const lightType = target?.lightType ?? lop.lightType ?? "point";
|
|
1618
|
+
if (lightType === "environment") {
|
|
1619
|
+
const intensity$1 = target?.intensity ?? lop.intensity;
|
|
1620
|
+
sceneEnvironment = {
|
|
1621
|
+
preset: lop.preset,
|
|
1622
|
+
top: lop.top,
|
|
1623
|
+
horizon: lop.horizon,
|
|
1624
|
+
bottom: lop.bottom,
|
|
1625
|
+
softboxes: target?.softboxes ?? lop.softboxes,
|
|
1626
|
+
rotation: target?.rotation ?? lop.rotation,
|
|
1627
|
+
exposure: target?.exposure ?? lop.exposure,
|
|
1628
|
+
toneMapping: lop.toneMapping,
|
|
1629
|
+
fog: lop.fog,
|
|
1630
|
+
...intensity$1 !== void 0 && { intensity: intensity$1 }
|
|
1631
|
+
};
|
|
1632
|
+
sceneBloom = lop.bloom === true ? {} : lop.bloom && typeof lop.bloom === "object" ? { ...lop.bloom } : null;
|
|
1633
|
+
continue;
|
|
1634
|
+
}
|
|
1596
1635
|
const color = parseColor(target?.color ?? lop.color ?? "#ffffff");
|
|
1597
1636
|
const intensity = target?.intensity ?? lop.intensity ?? 1;
|
|
1598
1637
|
const x = target?.x ?? lop.x ?? 0;
|
|
@@ -1622,11 +1661,17 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1622
1661
|
radius,
|
|
1623
1662
|
angle,
|
|
1624
1663
|
penumbra,
|
|
1625
|
-
decay
|
|
1664
|
+
decay,
|
|
1665
|
+
castShadow: Boolean(lop.castShadow),
|
|
1666
|
+
shadowSoftness: target?.shadowSoftness ?? lop.shadowSoftness,
|
|
1667
|
+
shadowDarkness: target?.shadowDarkness ?? lop.shadowDarkness
|
|
1626
1668
|
});
|
|
1669
|
+
if (lop.castShadow && lop.shadowMapSize) shadowMapSize = lop.shadowMapSize;
|
|
1627
1670
|
}
|
|
1628
1671
|
}
|
|
1629
1672
|
const pending3DItems = [];
|
|
1673
|
+
/** Textures the queued 3D items still read: their layers and mattes. */
|
|
1674
|
+
const pendingTextures = () => pending3DItems.flatMap((q) => [q.texture, q.opts.matte]).filter((t) => Boolean(t));
|
|
1630
1675
|
const flush3DPass = (curTex, curView, curExcludes) => {
|
|
1631
1676
|
if (pending3DItems.length === 0 || !camera) return {
|
|
1632
1677
|
finalTex: curTex,
|
|
@@ -1634,7 +1679,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1634
1679
|
};
|
|
1635
1680
|
const r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? "rgba8unorm", sampleCount3d);
|
|
1636
1681
|
for (const item of pending3DItems) if (item.kind === "mesh" && item.opts.audioDeform) item.meshBuffers = r3d.deformMesh(encoder, item.mesh, item.opts.audioDeform);
|
|
1637
|
-
const itemTextures =
|
|
1682
|
+
const itemTextures = pendingTextures();
|
|
1638
1683
|
const scene3dTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [
|
|
1639
1684
|
curTex,
|
|
1640
1685
|
targetTexture,
|
|
@@ -1648,12 +1693,41 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1648
1693
|
linearDepthTex = r3d.getOrCreateLinearDepthTexture(nativeWidth, nativeHeight);
|
|
1649
1694
|
linearDepthView = linearDepthTex.createView();
|
|
1650
1695
|
}
|
|
1696
|
+
let shadow = null;
|
|
1697
|
+
const casterIndex = Light3D.shadowCasterIndex(sceneLights);
|
|
1698
|
+
if (casterIndex >= 0) {
|
|
1699
|
+
const casters = [];
|
|
1700
|
+
const receivers = [];
|
|
1701
|
+
for (const item of pending3DItems) if (item.kind === "mesh") {
|
|
1702
|
+
const caster = {
|
|
1703
|
+
kind: "mesh",
|
|
1704
|
+
mesh: item.mesh,
|
|
1705
|
+
buffers: item.meshBuffers,
|
|
1706
|
+
opts: item.opts
|
|
1707
|
+
};
|
|
1708
|
+
receivers.push(r3d.worldBounds(caster));
|
|
1709
|
+
if (item.opts.castShadow !== false && item.opts.material !== "unlit") casters.push(caster);
|
|
1710
|
+
} else if (item.kind === "quad") {
|
|
1711
|
+
const caster = {
|
|
1712
|
+
kind: "quad",
|
|
1713
|
+
texture: item.texture,
|
|
1714
|
+
opts: item.opts
|
|
1715
|
+
};
|
|
1716
|
+
receivers.push(r3d.worldBounds(caster));
|
|
1717
|
+
if (item.opts.castShadow === true) casters.push(caster);
|
|
1718
|
+
}
|
|
1719
|
+
const shadowLight = sceneLights.filter((l) => (l.lightType ?? l.type) !== "ambient")[casterIndex];
|
|
1720
|
+
if (shadowLight && casters.length > 0) shadow = r3d.renderShadowMap(encoder, shadowLight, casterIndex, casters, receivers, { mapSize: shadowMapSize });
|
|
1721
|
+
}
|
|
1651
1722
|
const { pass: pass3d, cameraBindGroup, cameraBuffer, lightsBindGroup } = r3d.beginPass(encoder, scene3dView, nativeWidth, nativeHeight, camera, "clear", {
|
|
1652
1723
|
r: 0,
|
|
1653
1724
|
g: 0,
|
|
1654
1725
|
b: 0,
|
|
1655
1726
|
a: 0
|
|
1656
|
-
}, linearDepthView, sceneLights
|
|
1727
|
+
}, linearDepthView, sceneLights, {
|
|
1728
|
+
environment: sceneEnvironment,
|
|
1729
|
+
shadow
|
|
1730
|
+
}, Boolean(sceneBloom));
|
|
1657
1731
|
for (const item of pending3DItems) if (item.kind === "quad") r3d.drawTextureQuad(pass3d, cameraBindGroup, lightsBindGroup, item.texture, item.opts, dofEnabled);
|
|
1658
1732
|
else if (item.kind === "slug") r3d.drawSlugText(pass3d, cameraBindGroup, lightsBindGroup, item.batches, item.opts, item.stackBase, dofEnabled);
|
|
1659
1733
|
else if (item.kind === "mesh") r3d.drawMesh3D(pass3d, cameraBindGroup, lightsBindGroup, item.meshBuffers ?? item.mesh, item.texture, item.opts, dofEnabled);
|
|
@@ -1669,6 +1743,17 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1669
1743
|
r3d.applyDepthOfField(encoder, scene3dTex, linearDepthTex, dofResultTex.createView(), cameraBuffer);
|
|
1670
1744
|
final3dTex = dofResultTex;
|
|
1671
1745
|
}
|
|
1746
|
+
if (sceneBloom) {
|
|
1747
|
+
const bloomTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [
|
|
1748
|
+
curTex,
|
|
1749
|
+
targetTexture,
|
|
1750
|
+
final3dTex,
|
|
1751
|
+
scene3dTex,
|
|
1752
|
+
...curExcludes
|
|
1753
|
+
]);
|
|
1754
|
+
r3d.applyBloom(encoder, final3dTex, bloomTex, sceneBloom, r3d.hdrSource());
|
|
1755
|
+
final3dTex = bloomTex;
|
|
1756
|
+
}
|
|
1672
1757
|
const nextTex = ctx.renderer.composite(encoder, curTex, final3dTex, "normal", [targetTexture, ...curExcludes]);
|
|
1673
1758
|
pending3DItems.length = 0;
|
|
1674
1759
|
return {
|
|
@@ -1684,9 +1769,15 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1684
1769
|
let activeTex = initialTex;
|
|
1685
1770
|
let activeView = initialView;
|
|
1686
1771
|
let activeExcludes = excludes;
|
|
1772
|
+
const mattesByOwner = /* @__PURE__ */ new Map();
|
|
1773
|
+
for (const vm of vms) {
|
|
1774
|
+
const owner = vm.operation?.matteOf;
|
|
1775
|
+
if (owner) mattesByOwner.set(owner, vm);
|
|
1776
|
+
}
|
|
1687
1777
|
for (const child of sorted) {
|
|
1688
1778
|
const lop = child.operation;
|
|
1689
1779
|
if (lop.kind === "camera" || lop.kind === "light") continue;
|
|
1780
|
+
if (lop.matteOf) continue;
|
|
1690
1781
|
const targetId = lop.id || lop.inputHandleId;
|
|
1691
1782
|
const target = targetId ? targetsById[targetId] : void 0;
|
|
1692
1783
|
const isChild3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D)) || Boolean(parent3DMatrix);
|
|
@@ -1710,6 +1801,87 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1710
1801
|
continue;
|
|
1711
1802
|
}
|
|
1712
1803
|
nodeIndex += 1;
|
|
1804
|
+
const matteVM = lop.matteId ? mattesByOwner.get(lop.id) : void 0;
|
|
1805
|
+
if (matteVM) {
|
|
1806
|
+
const isolate = async (vm, index) => {
|
|
1807
|
+
const queued = pending3DItems.splice(0);
|
|
1808
|
+
const busy = [
|
|
1809
|
+
targetTexture,
|
|
1810
|
+
activeTex,
|
|
1811
|
+
...activeExcludes,
|
|
1812
|
+
...queued.flatMap((q) => [q.texture, q.opts.matte])
|
|
1813
|
+
].filter((t) => Boolean(t));
|
|
1814
|
+
const tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);
|
|
1815
|
+
const view = tex.createView();
|
|
1816
|
+
ctx.renderer.beginFrame(encoder, view, {
|
|
1817
|
+
r: 0,
|
|
1818
|
+
g: 0,
|
|
1819
|
+
b: 0,
|
|
1820
|
+
a: 0
|
|
1821
|
+
}, targetW, targetH, "clear").end();
|
|
1822
|
+
const drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;
|
|
1823
|
+
const flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;
|
|
1824
|
+
pending3DItems.push(...queued);
|
|
1825
|
+
return flat;
|
|
1826
|
+
};
|
|
1827
|
+
const mode = matteVM.operation.matteMode ?? "alpha";
|
|
1828
|
+
const blend = mode === "luma" ? "luma-in" : mode === "luma-inverted" ? "luma-out" : mode === "alpha-inverted" ? "destination-out" : "destination-in";
|
|
1829
|
+
if (isChild3D) {
|
|
1830
|
+
let coverage = await isolate(matteVM, nodeIndex);
|
|
1831
|
+
activeExcludes = [...activeExcludes, coverage];
|
|
1832
|
+
nodeIndex += 1;
|
|
1833
|
+
if (mode !== "alpha") {
|
|
1834
|
+
const white = ctx.renderer.getTemporaryTexture(targetW, targetH, [
|
|
1835
|
+
targetTexture,
|
|
1836
|
+
activeTex,
|
|
1837
|
+
...activeExcludes,
|
|
1838
|
+
...pendingTextures()
|
|
1839
|
+
]);
|
|
1840
|
+
ctx.renderer.beginFrame(encoder, white.createView(), {
|
|
1841
|
+
r: 1,
|
|
1842
|
+
g: 1,
|
|
1843
|
+
b: 1,
|
|
1844
|
+
a: 1
|
|
1845
|
+
}, targetW, targetH, "clear").end();
|
|
1846
|
+
coverage = ctx.renderer.composite(encoder, white, coverage, blend, [
|
|
1847
|
+
targetTexture,
|
|
1848
|
+
activeTex,
|
|
1849
|
+
...activeExcludes,
|
|
1850
|
+
...pendingTextures(),
|
|
1851
|
+
white
|
|
1852
|
+
]);
|
|
1853
|
+
activeExcludes = [...activeExcludes, coverage];
|
|
1854
|
+
}
|
|
1855
|
+
const before = pending3DItems.length;
|
|
1856
|
+
const res$1 = await renderLayerVM(child, nodeIndex, activeTex, activeView, activeExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);
|
|
1857
|
+
for (const item of pending3DItems.slice(before)) item.opts.matte = coverage;
|
|
1858
|
+
if (res$1) {
|
|
1859
|
+
if (res$1.finalTex !== activeTex) activeExcludes = [...activeExcludes, res$1.finalTex];
|
|
1860
|
+
activeTex = res$1.finalTex;
|
|
1861
|
+
activeView = res$1.finalView;
|
|
1862
|
+
}
|
|
1863
|
+
continue;
|
|
1864
|
+
}
|
|
1865
|
+
const contentTex = await isolate(child, nodeIndex);
|
|
1866
|
+
activeExcludes = [...activeExcludes, contentTex];
|
|
1867
|
+
nodeIndex += 1;
|
|
1868
|
+
const matteTex = await isolate(matteVM, nodeIndex);
|
|
1869
|
+
const masked = ctx.renderer.composite(encoder, contentTex, matteTex, blend, [
|
|
1870
|
+
targetTexture,
|
|
1871
|
+
activeTex,
|
|
1872
|
+
...activeExcludes,
|
|
1873
|
+
matteTex
|
|
1874
|
+
]);
|
|
1875
|
+
const next = ctx.renderer.composite(encoder, activeTex, masked, "normal", [
|
|
1876
|
+
targetTexture,
|
|
1877
|
+
...activeExcludes,
|
|
1878
|
+
matteTex
|
|
1879
|
+
]);
|
|
1880
|
+
activeExcludes = [...activeExcludes, next];
|
|
1881
|
+
activeTex = next;
|
|
1882
|
+
activeView = next.createView();
|
|
1883
|
+
continue;
|
|
1884
|
+
}
|
|
1713
1885
|
const res = await renderLayerVM(child, nodeIndex, activeTex, activeView, activeExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);
|
|
1714
1886
|
if (res) {
|
|
1715
1887
|
if (res.finalTex !== activeTex) activeExcludes = [...activeExcludes, res.finalTex];
|
|
@@ -1729,7 +1901,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1729
1901
|
};
|
|
1730
1902
|
};
|
|
1731
1903
|
const renderLayerVM = async (nodeVM, i, destTex, destView, baseExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {
|
|
1732
|
-
const excludes = [...baseExcludes, ...
|
|
1904
|
+
const excludes = [...baseExcludes, ...pendingTextures()];
|
|
1733
1905
|
const lop = nodeVM.operation;
|
|
1734
1906
|
if (lop.kind === "camera" || lop.kind === "light") return;
|
|
1735
1907
|
const targetId = lop.id || lop.inputHandleId;
|
|
@@ -1757,6 +1929,10 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1757
1929
|
lop.modelData = modelSrc;
|
|
1758
1930
|
}
|
|
1759
1931
|
}
|
|
1932
|
+
if (!modelSrc && lop.primitive3d) {
|
|
1933
|
+
modelSrc = getPrimitiveGeometry(lop.primitive3d);
|
|
1934
|
+
lop.modelData = modelSrc;
|
|
1935
|
+
}
|
|
1760
1936
|
if (!modelSrc) return;
|
|
1761
1937
|
let model;
|
|
1762
1938
|
try {
|
|
@@ -1993,8 +2169,10 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
1993
2169
|
specularIntensity: target?.specularIntensity ?? lop.specularIntensity ?? .5,
|
|
1994
2170
|
ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity ?? 1,
|
|
1995
2171
|
metallic: target?.metallic ?? lop.metallic ?? mat?.metallic,
|
|
2172
|
+
...surfaceProps(target, lop, mat),
|
|
1996
2173
|
audioDeform: meshAudioDeform
|
|
1997
2174
|
};
|
|
2175
|
+
if (mat) meshOpts.maps = await r3d.materialMaps(mat);
|
|
1998
2176
|
pending3DItems.push({
|
|
1999
2177
|
kind: "mesh",
|
|
2000
2178
|
mesh,
|
|
@@ -2150,7 +2328,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2150
2328
|
activeTex,
|
|
2151
2329
|
targetTexture,
|
|
2152
2330
|
...excludes,
|
|
2153
|
-
...
|
|
2331
|
+
...pendingTextures()
|
|
2154
2332
|
];
|
|
2155
2333
|
const groupTex$1 = ctx.renderer.getTemporaryTexture(texW$1, texH$1, groupExcludes$1);
|
|
2156
2334
|
const groupView$1 = groupTex$1.createView();
|
|
@@ -2254,6 +2432,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2254
2432
|
specularIntensity: target?.specularIntensity ?? lop.specularIntensity,
|
|
2255
2433
|
ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
|
|
2256
2434
|
metallic: target?.metallic ?? lop.metallic,
|
|
2435
|
+
...surfaceProps(target, lop),
|
|
2257
2436
|
...modelMatrix && { modelMatrix }
|
|
2258
2437
|
};
|
|
2259
2438
|
pending3DItems.push({
|
|
@@ -2589,7 +2768,8 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2589
2768
|
const textTrack = lop.animation?.tracks?.find((t) => t.prop === "text");
|
|
2590
2769
|
if (!hasKineticAnimators$1 && !hasTypewriter && (textTrack !== void 0 || typeof target?.text === "number") && fullText.length > 0) {
|
|
2591
2770
|
const progress = typeof target?.text === "number" ? Math.max(0, Math.min(1, target.text)) : 1;
|
|
2592
|
-
|
|
2771
|
+
const countsUnits = typeof target?.text === "number" && target.text > 1.0001;
|
|
2772
|
+
if (progress >= 1 && !countsUnits) displayText = fullText;
|
|
2593
2773
|
else if (progress <= 0) displayText = "";
|
|
2594
2774
|
else {
|
|
2595
2775
|
const presetType = textTrack?.keyframes?.find((k) => k.presetType)?.presetType ?? "typewriter";
|
|
@@ -2994,6 +3174,7 @@ const CompositorWebGPURenderer = async (args) => {
|
|
|
2994
3174
|
specularIntensity: target?.specularIntensity ?? lop.specularIntensity,
|
|
2995
3175
|
ambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,
|
|
2996
3176
|
metallic: target?.metallic ?? lop.metallic,
|
|
3177
|
+
...surfaceProps(target, lop),
|
|
2997
3178
|
...modelMatrix && { modelMatrix }
|
|
2998
3179
|
};
|
|
2999
3180
|
const quadHasContent = layerHasRaster || Boolean(quadOpts.borderWidth && quadOpts.borderWidth > 0 && quadOpts.borderColor);
|
|
@@ -3302,4 +3483,4 @@ var renderers_default = defineRenderer({ WebGPURenderer: CompositorWebGPURendere
|
|
|
3302
3483
|
|
|
3303
3484
|
//#endregion
|
|
3304
3485
|
export { Transform3DMath, renderers_default as default, has3DTransform, solveHomography };
|
|
3305
|
-
//# sourceMappingURL=renderer-
|
|
3486
|
+
//# sourceMappingURL=renderer-BfAWZziM.mjs.map
|