@volter/cyclotron 0.5.191 → 0.5.193
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/BUNDLED_NOTICES +12 -12
- package/dist/.vite/manifest.json +1371 -1357
- package/dist/assets/BVHLoader-DtI3CJC4.js +1 -0
- package/dist/assets/ColladaLoader-Diuam4wk.js +3 -0
- package/dist/assets/EntityModelDocument-D7zs6zy3.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-CkAaAn5J.js +1 -0
- package/dist/assets/FBXLoader-BjOAAMF-.js +1 -0
- package/dist/assets/InspectorObjectPreview-Cz9eomOl.js +1 -0
- package/dist/assets/LineSegments2-Cq8MYDAv.js +370 -0
- package/dist/assets/LiveModuleDocument-Bn-dibdo.js +2 -0
- package/dist/assets/LutAssetDocument-mOBp8UDz.js +1 -0
- package/dist/assets/MTLLoader-40u5d5nb.js +2 -0
- package/dist/assets/ModelAssetDocument-CUKkjUGh.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-bWUlgHxX.js +1 -0
- package/dist/assets/OBJLoader-DIZjK3jK.js +5 -0
- package/dist/assets/Object3DDocumentToolbar-C4WkM_0k.js +1 -0
- package/dist/assets/Object3DPreview-D8H6i7pI.js +2 -0
- package/dist/assets/OrbitControls-CSy1c_sw.js +1 -0
- package/dist/assets/PLYLoader-B8UEO__v.js +2 -0
- package/dist/assets/QuarksAssetDocument-C2pWks73.js +2 -0
- package/dist/assets/RectAreaLightUniformsLib-DJvEUfKR.js +1 -0
- package/dist/assets/STLLoader-GvyGAjJi.js +1 -0
- package/dist/assets/ShaderAssetDocument-DoCflhIi.js +1 -0
- package/dist/assets/StageHost-BGavQ9nT.js +1179 -0
- package/dist/assets/TDSLoader-ClXVgMIu.js +1 -0
- package/dist/assets/ToolObject3DPreview-CHlNxX0X.js +1 -0
- package/dist/assets/ViewportShadingMenu-BZV_eHGc.js +1 -0
- package/dist/assets/animation-mixers.service-C4yH0EzJ.js +1 -0
- package/dist/assets/animation-timeline.utility-BmUT89-I.js +1 -0
- package/dist/assets/asset-preview-DL7Y_iqy.js +4 -0
- package/dist/assets/blender-emscripten-engine-DKCp5dHi.js +2 -0
- package/dist/assets/blender-node-editor.document-DdYI3iYH.js +1 -0
- package/dist/assets/blender-properties-model-BmDNILTF.js +1 -0
- package/dist/assets/blender-properties-tab-pBVFYKVc.js +3 -0
- package/dist/assets/blender-runtime-host-_3zJz7jJ.js +14 -0
- package/dist/assets/blender-runtime.document-lRbvBCFl.js +13 -0
- package/dist/assets/blender-screenshot.menu-CFaImUoF.js +1 -0
- package/dist/assets/blender-timeline.document-DYhkDQ9o.js +1 -0
- package/dist/assets/blender-uv-editor.document-CiLnOxfL.js +1 -0
- package/dist/assets/blender-version.status-D8mCKwz-.js +1 -0
- package/dist/assets/blender-wali-engine-DopTN9IU.js +2 -0
- package/dist/assets/blender.command-Do3slJX7.js +1 -0
- package/dist/assets/blender.status-C4r4VRkL.js +1 -0
- package/dist/assets/index-XQ9et_dx.js +952 -0
- package/dist/assets/linear-resolve-BRXL8cFB.js +8 -0
- package/dist/assets/model-inspection-BjuieHyS.js +1 -0
- package/dist/assets/models.finder-C_22ZAZq.js +1 -0
- package/dist/assets/object3d-document-session-registry-BZRAoeWC.js +2 -0
- package/dist/assets/output-pass-Bwl2YLRI.js +85 -0
- package/dist/assets/play-mode-BSS0KI9w.js +7208 -0
- package/dist/assets/product-CVWl1Npu.js +14 -0
- package/dist/assets/properties-bone-constraints.inspector-BarPpc76.js +1 -0
- package/dist/assets/properties-bone.inspector-1nJpAAa2.js +1 -0
- package/dist/assets/properties-collection.inspector-BgeZq1z6.js +1 -0
- package/dist/assets/properties-constraints.inspector-33kIzmel.js +1 -0
- package/dist/assets/properties-data.inspector-CNXEJf2X.js +1 -0
- package/dist/assets/properties-material.inspector-BD3XLj11.js +1 -0
- package/dist/assets/properties-modifiers.inspector-CYJvhz-o.js +1 -0
- package/dist/assets/properties-object.inspector-COZNJBdE.js +1 -0
- package/dist/assets/properties-output.inspector-j-m83ED5.js +1 -0
- package/dist/assets/properties-particles.inspector-BnNfdo6Q.js +1 -0
- package/dist/assets/properties-physics.inspector-BkpIzcDv.js +1 -0
- package/dist/assets/properties-render.inspector-DkYCcpwt.js +1 -0
- package/dist/assets/properties-scene.inspector-CrqxJu_0.js +1 -0
- package/dist/assets/properties-texture.inspector-BBy9eeaM.js +1 -0
- package/dist/assets/properties-view-layer.inspector-BnvB8cCv.js +1 -0
- package/dist/assets/properties-world.inspector-D3v_IUMa.js +1 -0
- package/dist/assets/react-18-DNTHH5yO.js +1 -0
- package/dist/assets/session-CNj3Mdrh.js +5537 -0
- package/dist/assets/spark.module-CpL7Mg2r.js +12120 -0
- package/dist/assets/stage-keyboard-DSxiQuwB.js +1 -0
- package/dist/assets/stage-overlay-set-XSNU6afE.js +1 -0
- package/dist/assets/stage-presence-markers-BqUW05XR.js +1 -0
- package/dist/assets/stage-transform-tools-wTrGW3wk.js +1 -0
- package/dist/assets/standard-viewport-dressing-DXy04eCI.js +24 -0
- package/dist/assets/three-integration.service-BGWweviw.js +2 -0
- package/dist/assets/three.module-CEj_RcZi.js +3840 -0
- package/dist/assets/volter-sdk-DEsaXvO-.js +2359 -0
- package/dist/assets/volter-sdk-account-D_Bto7S5.js +1 -0
- package/dist/assets/volter-sdk-client-C2S_OOM4.js +1 -0
- package/dist/assets/volter-sdk-contributions-BwSx_AVw.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-DwZ6iYjF.js +1 -0
- package/dist/assets/volter-sdk-document-probe-Dvj7bLoE.js +1 -0
- package/dist/assets/volter-sdk-editor-view-3gZMFMR6.js +1 -0
- package/dist/assets/volter-sdk-host-CmafO-Yd.js +1 -0
- package/dist/assets/volter-sdk-http-transport.browser-Dvnbd-NI.js +1 -0
- package/dist/assets/volter-sdk-index-qKXRm6Hs.js +1 -0
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-pV94hDhL.js +1 -0
- package/dist/assets/volter-sdk-kit-account-client-BSy9k57a.js +1 -0
- package/dist/assets/volter-sdk-kit-action-registry-cTjHHqIx.js +1 -0
- package/dist/assets/volter-sdk-kit-active-product-CeE_Dz59.js +1 -0
- package/dist/assets/volter-sdk-kit-active-project-DJUHrYAc.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-editor-config-DOBNXZFE.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-observation-Tk1dsFOj.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DVGI0wHU.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-stage-transport-BzG5NGQg.js +1 -0
- package/dist/assets/volter-sdk-kit-api-assets-s-VFFdQp.js +1 -0
- package/dist/assets/volter-sdk-kit-api-base-DIoVHhlV.js +1 -0
- package/dist/assets/volter-sdk-kit-api-build-Cejdl5OO.js +1 -0
- package/dist/assets/volter-sdk-kit-api-logs-C4gLQrEL.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-identity-Ccb8eqoB.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-open-j_9cWsX9.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-source-C_4M95dH.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-state-s4lAjlxH.js +1 -0
- package/dist/assets/volter-sdk-kit-api-relay-ClGIxFY-.js +1 -0
- package/dist/assets/volter-sdk-kit-api-settings-Bh_eQ4gX.js +1 -0
- package/dist/assets/volter-sdk-kit-api-themes-CS_JDEtn.js +1 -0
- package/dist/assets/volter-sdk-kit-api-worktrees-CDH_SGiD.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-capabilities-x_R_8tTz.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-compare-core-B7wP3Yzc.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-editor-context-DuMkCxcp.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-events-zAYe08pe.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-JqEyYslZ.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-Bp_awPw9.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-DLUYozyP.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-thumbnails-Bo-BNpQ8.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-viewers-ryNgpsh2.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-D2T7Vm3d.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-DZW2zfUM.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-Dcz2ziwD.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-kcW003Hj.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-e-l0h2wo.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-CTRSKNvb.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-D9kP86PN.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DWqyvVf7.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-B0D69sBU.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-CW-Sw0Q5.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-D-JZ_Wgs.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-DHHX5dhv.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BLK8uUe9.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-CXrVG_x4.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DqEBDO2u.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-BWTMV2Hh.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-Dt_IVDBC.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-systems-BepjDhAp.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-GLi9IVo9.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-J4i5P640.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-BeFo_nzB.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CGTzlGJ8.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-CY8zRQH7.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-CHCGcS8p.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-B9lud0rJ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-DquiBFfg.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-OKk_OkR_.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-CnCxsSNB.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-Dd1EjBzR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-A72Xh__u.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-DaX4Szvv.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BhcdT_UI.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-BvMPQpgp.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-CSNiD3DJ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-DnSOkVFS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-BoNlTqWX.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-provenance-C0YJNvAJ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BPEckMGB.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-BZBbBdhS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-BeJ2iwy2.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-CwRgfcAa.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-CzqCdz3h.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-CN3GQbwJ.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-UYjmBFJR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-three-root-BoCBpF31.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-CONrfq92.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BAkzZ-DX.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-Bpg8arXb.js +1 -0
- package/dist/assets/volter-sdk-kit-availability-tick-4J0P0Ev3.js +1 -0
- package/dist/assets/volter-sdk-kit-bitmap-label-3wyKVXiC.js +1 -0
- package/dist/assets/volter-sdk-kit-boot-routing-5_Af_34l.js +1 -0
- package/dist/assets/volter-sdk-kit-breakpoint-state-Tg7nJBXg.js +1 -0
- package/dist/assets/volter-sdk-kit-build-identity-Jp1_AIb8.js +1 -0
- package/dist/assets/volter-sdk-kit-bytes-codec-BP3IEwEy.js +1 -0
- package/dist/assets/volter-sdk-kit-cancellation-reason-D46H7GZL.js +1 -0
- package/dist/assets/volter-sdk-kit-canvas-frames-B8MVkduI.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-camera-pose-N18vVPYh.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-size-D3CAgBji.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-registry-DyF4bseo.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-onGDtKXM.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-client-iirOBSs_.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-presence-DpZtpc96.js +1 -0
- package/dist/assets/volter-sdk-kit-command-dispatch-DC85-9V0.js +1 -0
- package/dist/assets/volter-sdk-kit-command-listener-CJQpIr01.js +1 -0
- package/dist/assets/volter-sdk-kit-command-registry-SUKOefZu.js +1 -0
- package/dist/assets/volter-sdk-kit-component-board-registry-BGhtwhTc.js +1 -0
- package/dist/assets/volter-sdk-kit-component-states-registry-CyDIe4Rl.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-Dy_l2Vh-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-B_3S6wRV.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BRVAq1tv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-D38JDrPg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-BoardRulers-B62U-5L7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-D9JlpEky.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-Bxly5v2-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-BukjCnIj.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CodeView-bNgW3HVC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-Dv8xV3yN.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-DQa5h1vj.js +1 -0
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-DIPWvEPP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-BIozBMU_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Inspector-D9ecZEkT.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-DgGFJkGz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-CvqzeU5l.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-CtOvqgL6.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-Cpg4rytg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-pO1R7ICt.js +1 -0
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-C8dBl1WR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-MediaProperties-C3pis4RR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CDCwZy3K.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-LpbdhsbH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-EOTmyA7l.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-BR40oLaK.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SaveStatus-DouWs-NN.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CAEvM-p9.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-BFWTtq53.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CWVk1QEC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolHost-DXQLGXs-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Toolbar-CYheRKGd.js +1 -0
- package/dist/assets/volter-sdk-kit-components-TransientHint-ad_ZcJLX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-9QUdGEK_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-Cg5gsUjJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VolterLogo-BK_op1KW.js +1 -0
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-trOUuKzd.js +1 -0
- package/dist/assets/volter-sdk-kit-components-account-documents-CGki5khY.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-documents-CQ4DF-WJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-CZ8uFxoC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-DdYgkXJO.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-4R6zzVhP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-CYJ6_ssl.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-B9FsdcBi.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-B-TrloNc.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-Cl73AUKx.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-C4gBeYTT.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BAEIFMg7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-Bwi9oVpa.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-2RO1b18V.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-BS4rEX3W.js +1 -0
- package/dist/assets/volter-sdk-kit-components-board-guides-CNX4DBBz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-DNhV7dl9.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BilL8U61.js +1 -0
- package/dist/assets/volter-sdk-kit-components-core-utilities-D5mzooHP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-DlWgsXGW.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-Vg8VbGdL.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-selection-D-XWRsOn.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BsSVwVv2.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-BNtLiJfM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-CPXrNbPX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-kind-documents-BYv4NXdB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-DIA4ApmS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-Bx5xERiZ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-scene-documents-CE_3QzC9.js +1 -0
- package/dist/assets/volter-sdk-kit-components-status-contributions-ByIABkIq.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-documents-B98ENSuP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-DEb_FNwc.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-after-paint-BcvK-1hS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-Bj2gwYb4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-workspace-history-D7jt8XzN.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-documents-CIrELSWP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-CqDkRGrp.js +1 -0
- package/dist/assets/volter-sdk-kit-composite-screenshot-Dbr9GYHP.js +1 -0
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-xTsGh2Xr.js +1 -0
- package/dist/assets/volter-sdk-kit-contribution-surfaces-CUjrnu1s.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-C0z1_UJn.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-8gk8c2f9.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-8PnihkO3.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-6Q25n5FM.js +1 -0
- package/dist/assets/volter-sdk-kit-creation-site-registry-BpZxP5NT.js +1 -0
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-C4SRijG_.js +1 -0
- package/dist/assets/volter-sdk-kit-document-areas-BjClCFVq.js +1 -0
- package/dist/assets/volter-sdk-kit-document-context-registry-CC_TPb2p.js +1 -0
- package/dist/assets/volter-sdk-kit-document-open-registry-5iNLIU3i.js +1 -0
- package/dist/assets/volter-sdk-kit-document-play-extension-DYUGTc4Q.js +1 -0
- package/dist/assets/volter-sdk-kit-document-preview-source-Bd9SSQyj.js +1 -0
- package/dist/assets/volter-sdk-kit-document-renderer-session-uFKo82JE.js +1 -0
- package/dist/assets/volter-sdk-kit-document-stage-sessions-BMVop16R.js +1 -0
- package/dist/assets/volter-sdk-kit-document-viewports-DV-GwYZI.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-api-BW8ZdFLF.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-1sttbp3T.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-commands-BK2jV-Qe.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-console-RSicj6_M.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-current-view-BuyMYyGS.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-document-probe-JupKheUl.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-git-client-DR4aWAZv.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-hotkeys-DamyJ8tj.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-2vYFSPUW.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-view-DGPwXgV1.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-mode-i4NJm-MW.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-notifications-Cssw_DL-.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presence-B54_Hw0-.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-DjoZfjPT.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-_df33UUU.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-runtime-CM7nF511.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-server-response-BxO7ANwl.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-attribution-D2v3Clt5.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-mode-BFMY_7bR.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-state-facets-C_OhRt3E.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-view-presentation-GjSu6GPQ.js +1 -0
- package/dist/assets/volter-sdk-kit-environment-images-CwEVzL0y.js +1 -0
- package/dist/assets/volter-sdk-kit-eyedropper-session-DtFwKZY2.js +1 -0
- package/dist/assets/volter-sdk-kit-files-file-provider-Dr0l13aR.js +1 -0
- package/dist/assets/volter-sdk-kit-files-project-files-DI41839f.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-index-C_ZbzMI_.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-DeKJrgrF.js +1 -0
- package/dist/assets/volter-sdk-kit-frame-frame-parts-I0GQmUFc.js +1 -0
- package/dist/assets/volter-sdk-kit-framed-document-capture-Bn5M3mMJ.js +1 -0
- package/dist/assets/volter-sdk-kit-game-surface-defaults-Bz0rldwt.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-export-state-BsCok1RZ.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-replay-41VyjuQi.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-session-time-C_BOtm6D.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-sessions-CBT9ZQM8.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-D4PvaL7Z.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-internals-BZ76u5LX.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-CXTuCqsG.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DOe-WeRq.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-C2kO_CE1.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-E3KykkWO.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-projection-CvbUKfSf.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-CIUfVcIa.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-DWctGnXn.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-rows-fOY-Xd3l.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-walk-kfLz7ddk.js +1 -0
- package/dist/assets/volter-sdk-kit-history-editor-session-CJXLqW3l.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-commands-DdVZGBwB.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-delegate-BNWvJP91.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-Dw3HcbJz.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-service-jjmgRJev.js +1 -0
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-DggmuCwF.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-file-history-CSvVr6AT.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-B3PQnmkJ.js +1 -0
- package/dist/assets/volter-sdk-kit-history-resource-registry-BTwY92r2.js +1 -0
- package/dist/assets/volter-sdk-kit-history-snapshot-store-FqmZnJcE.js +1 -0
- package/dist/assets/volter-sdk-kit-history-source-history-backend-CcD7-GJO.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DZ_AYb6L.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-BKEsgtAC.js +1 -0
- package/dist/assets/volter-sdk-kit-hotkeys-CX1UPyKa.js +1 -0
- package/dist/assets/volter-sdk-kit-inference-diagnostics-Bkncf0WS.js +1 -0
- package/dist/assets/volter-sdk-kit-initial-project-nwWX5Rql.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-subject-CoD2VApq.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-surface-W6it-cxV.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-DDs_lzrf.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-display-C8m5sVvU.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-document-subject-DNnFzVTp.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-game-subject-D-eCgiqL.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-model-CBu73BsQ.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-node-media-C9MEYh6t.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-null-subject-dKLVb1Rf.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-serialize-Cnvw7jJd.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-CYOzaT2r.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-presentation-DZ1Moxh3.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-BTMT_rkV.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-section-registry-CMGQlUf1.js +1 -0
- package/dist/assets/volter-sdk-kit-instance-source-actions-DKS37qFv.js +1 -0
- package/dist/assets/volter-sdk-kit-js-heap-Ca8O5P_D.js +1 -0
- package/dist/assets/volter-sdk-kit-key-actions-CTXbRB5r.js +1 -0
- package/dist/assets/volter-sdk-kit-keymap-presets-DAs9z_YP.js +1 -0
- package/dist/assets/volter-sdk-kit-layout-policy-21AAFcSd.js +1 -0
- package/dist/assets/volter-sdk-kit-light-explorer-model-Wq6HYBa1.js +1 -0
- package/dist/assets/volter-sdk-kit-live-canvas-frame-BBqVVNkm.js +1 -0
- package/dist/assets/volter-sdk-kit-live-document-C5T9T9lP.js +1 -0
- package/dist/assets/volter-sdk-kit-live-gesture-lock-BJ9h8u1C.js +1 -0
- package/dist/assets/volter-sdk-kit-live-seam-evidence-CB0qg8Hx.js +1 -0
- package/dist/assets/volter-sdk-kit-live-session-registry-CBB7jL11.js +1 -0
- package/dist/assets/volter-sdk-kit-live-transition-CGUnrXO0.js +1 -0
- package/dist/assets/volter-sdk-kit-manifest-project-p2VEWcyz.js +1 -0
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-BZaARKNw.js +1 -0
- package/dist/assets/volter-sdk-kit-mount-failure-report-CIkLlEkT.js +1 -0
- package/dist/assets/volter-sdk-kit-native-selection-style-BM0Ukbtq.js +1 -0
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-CQNrG3KD.js +1 -0
- package/dist/assets/volter-sdk-kit-packaged-runtime-BCM1729t.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-profiler-CI6DytUl.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-sources-H0TTy-T6.js +1 -0
- package/dist/assets/volter-sdk-kit-photograph-notice-BHM1GxiT.js +1 -0
- package/dist/assets/volter-sdk-kit-play-boot-phase-C2rHRBCZ.js +1 -0
- package/dist/assets/volter-sdk-kit-play-camera-flight-YLupe_aO.js +1 -0
- package/dist/assets/volter-sdk-kit-presentation-surface-hnEAhz6H.js +1 -0
- package/dist/assets/volter-sdk-kit-product-command-DItBgVkB.js +1 -0
- package/dist/assets/volter-sdk-kit-project-adapter-BfjtJdmn.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-refresh-CXFUAjEK.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-roots-B8wOC-sX.js +1 -0
- package/dist/assets/volter-sdk-kit-project-local-state-aTDmKNF7.js +1 -0
- package/dist/assets/volter-sdk-kit-project-manager-DndL7N84.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-changes-W53jFp6X.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-split-CKVjapj_.js +1 -0
- package/dist/assets/volter-sdk-kit-project-provenance-C3-SGpME.js +1 -0
- package/dist/assets/volter-sdk-kit-project-ready-Db1wLPXF.js +1 -0
- package/dist/assets/volter-sdk-kit-project-shape-DEB4bt5r.js +1 -0
- package/dist/assets/volter-sdk-kit-project-tools-BsmcGbmr.js +1 -0
- package/dist/assets/volter-sdk-kit-readiness-DKj7qpMr.js +1 -0
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-7-Rhjrlg.js +1 -0
- package/dist/assets/volter-sdk-kit-reported-play-state-DFRyYuby.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-kptWdgHR.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-iOnV4pxU.js +1 -0
- package/dist/assets/volter-sdk-kit-retained-document-states-CP4mq6Np.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-document-plan-CAfk4Y3O.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-live-open-Dkm22U6_.js +1 -0
- package/dist/assets/volter-sdk-kit-scoped-game-css-BSZ3_8HV.js +1 -0
- package/dist/assets/volter-sdk-kit-served-url-CBlN8eWK.js +1 -0
- package/dist/assets/volter-sdk-kit-session-close-Dc43VCdO.js +1 -0
- package/dist/assets/volter-sdk-kit-session-tombstone-DVXjQHBw.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-settings-provider-BFQAejvw.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-store-p--wgWra.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-Bm5AICdY.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-door-CRZfRWcU.js +1 -0
- package/dist/assets/volter-sdk-kit-source-conflict-C3hNPpds.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-context-mtwQ-8pP.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-invalidation-D6ZK7MlS.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-store-registry-V7E-LCgS.js +1 -0
- package/dist/assets/volter-sdk-kit-startup-failure-DATC6OBZ.js +1 -0
- package/dist/assets/volter-sdk-kit-state-report-deferral-BZ79QmRs.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-CJhX-nzS.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-http-storage-BjmDWx4a.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-index-B0sXxc5y.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-mem-storage-WIgep6Z8.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-path-lock-Bk4zcC39.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-paths-CIdTjfWP.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-CrxOIF15.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dy9N9XDi.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-NHralAEY.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-Ce7z_eUi.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-ClGmlzSC.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-scope-B9AfeC8h.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-capture-DkGrijGq.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium--2_QJVOD.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-discovery-Dws2B8wD.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-Dws7hHK4.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-grouping-Cux-p00v.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-presentation-BPa7QxKW.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-registry-By0Fb1Fo.js +1 -0
- package/dist/assets/volter-sdk-kit-story-document-openers-ClXsOfLM.js +1 -0
- package/dist/assets/volter-sdk-kit-story-thumbnails-BRhD82Hv.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-keyboard-D4OYv6Xc.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-state-BVQH6qFd.js +1 -0
- package/dist/assets/volter-sdk-kit-system-seam-evidence-VwJ_v6fY.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-census-CgwaIwQ6.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-Ba5y2i3Q.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-library-6raK9nAK.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-preference-CXe22HUZ.js +1 -0
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-vF_mRH51.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-contribution-play-CRN-YGLE.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-loader-DdWtpngT.js +1 -0
- package/dist/assets/volter-sdk-kit-transform-mode-request-BKrip44W.js +1 -0
- package/dist/assets/volter-sdk-kit-transient-hint-BPK6mqOd.js +1 -0
- package/dist/assets/volter-sdk-kit-transport-strip-z8iUvdtv.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-R6LwmZB4.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-inspect-Dmn-QXVB.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-D5xr_a5p.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-B0RLxEjZ.js +1 -0
- package/dist/assets/volter-sdk-kit-user-local-state-TKgFB4Hx.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-tMsr-hHC.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-BzmIfQMJ.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-presentation-DDVa8aJ9.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-surface-status-BSwjNnex.js +1 -0
- package/dist/assets/volter-sdk-kit-wait-until-Di-IC_n1.js +1 -0
- package/dist/assets/volter-sdk-kit-worker-call-metrics-JQpjfny-.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-areas-CmpY6Kh7.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-Cv-HtGDp.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-available-documents-Bzqw0LzX.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-CSbKoxZZ.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-ids-DX0ksexu.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-registry-B_lLMSZ2.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-restore-B5_S0Doz.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-host-commands-BGybHeER.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-C1K2UGwB.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-BZfZlUsf.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-presets-DRz-fLOx.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-regions-CDQw6xMq.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-static-panels-DC3_x8mx.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-status-registry-BBb0kpgi.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-storage-BOFr0DR8.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-style-emdFhp6s.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-BGCTzpgI.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-BaRnb2a-.js +1 -0
- package/dist/assets/volter-sdk-kit-world-adoption-DlxK2LfX.js +1 -0
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-DVAOYSlC.js +1 -0
- package/dist/assets/volter-sdk-kit-world-document-routing-DOce2_da.js +1 -0
- package/dist/assets/volter-sdk-kit-world-pan-state-Dq7Z8bZv.js +1 -0
- package/dist/assets/volter-sdk-kit-write-pipe-CDpfiPGK.js +1 -0
- package/dist/assets/volter-sdk-layout-arrangements-ApSZbpYh.js +1 -0
- package/dist/assets/volter-sdk-layouts-DSknqJAX.js +1 -0
- package/dist/assets/volter-sdk-selection-x0zEFxAo.js +1 -0
- package/dist/assets/volter-sdk-session-command-table-DU1jJ_iJ.js +1 -0
- package/dist/assets/volter-sdk-session-editor-brand-BviaYMjv.js +1 -0
- package/dist/assets/volter-sdk-session-editor-compatibility-DesR3HA8.js +1 -0
- package/dist/assets/volter-sdk-session-editor-control-protocol-Nt4oCWaV.js +1 -0
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-BuJmUSFg.js +1 -0
- package/dist/assets/volter-sdk-session-game-css-scope-YYt9DVR1.js +1 -0
- package/dist/assets/volter-sdk-session-project-module-url-CZNwkeh7.js +1 -0
- package/dist/assets/volter-sdk-session-relative-path-guard-BOEQflRP.js +1 -0
- package/dist/assets/volter-sdk-session-tool-contribution-convention-C_uSj2P0.js +1 -0
- package/dist/assets/volter-sdk-types-Bfzd0ct2.js +1 -0
- package/dist/assets/volter-sdk-views-BjqJRj4v.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-C76n8Lls.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-CP92lXZC.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-vlJl8PNb.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-Cc0zj3Ro.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-B4CFMwye.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-BzjDiLTi.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CaGki_l7.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-B-dfXDKz.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-CLnhjS4g.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CNbwi1Tj.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor--NoEEl70.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CPY39Poo.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-IJy9WBq2.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-BxLcqevT.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-DQngHfyy.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-CA2WusuP.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DNj4L-Ru.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-SnsDkKl_.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-Btl7ExtI.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-BEh9qwnp.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-DQN2nY0t.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-BGPEGdvq.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List-CnDfqlFy.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-F-2puTvI.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdXLI3Uo.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-BCTvk5g7.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CA-LZBa7.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-37wyq9ks.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-B854nVwi.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-dZJsy3vi.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-CtDMV7wL.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-B1VCOViu.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-bwhvToRi.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-bFs1_1P_.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-CoqSEVyd.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-Cj9qxOFO.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DZb_CRlb.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-BRaj87N7.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-BNJSqm2A.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-CvI-3lyI.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-YSOq0jRI.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-C-O2ceSs.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-sOaylFuz.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-C-FPPoqW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-Dhv_xgEq.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-Ckl-6k95.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-qSNtUAUe.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Cn3ZNioq.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-Bpkmu2o3.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-Dm-fYGB1.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-Bpvw5DCo.js +1 -0
- package/dist/assets/volter-shared-fontawesome-eDs8uxm5.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-DBEBzneR.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-B18EjHUh.js +1 -0
- package/dist/assets/volter-shared-react-B_4Rqw3d.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-C26rR3Km.js +1 -0
- package/dist/assets/volter-shared-react-dom-lOA8B-Je.js +1 -0
- package/dist/assets/volter-shared-three-CGq8AXqh.js +1 -0
- package/dist/assets/worker-CaCrljK5.js +4 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-sdk.json +461 -460
- package/dist/volter-shared-three.json +1 -1
- package/dist-node/cli.js +81 -33
- package/dist-node/create.js +8 -8
- package/package.json +8 -8
- package/starter/AGENTS.md +7 -0
- package/dist/assets/BVHLoader-Dxn1IBPh.js +0 -1
- package/dist/assets/ColladaLoader-FWjhft-R.js +0 -3
- package/dist/assets/EntityModelDocument-H5MGTLgY.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-DscnToFv.js +0 -1
- package/dist/assets/FBXLoader-B6D0-2sM.js +0 -1
- package/dist/assets/InspectorObjectPreview-DmgzscPS.js +0 -1
- package/dist/assets/LineSegments2-D1_2s-N-.js +0 -370
- package/dist/assets/LiveModuleDocument-DAYkZerk.js +0 -2
- package/dist/assets/LutAssetDocument-B7CFf1iQ.js +0 -1
- package/dist/assets/MTLLoader-BwtVpZY2.js +0 -2
- package/dist/assets/ModelAssetDocument-C3AYQW5D.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-BnkHNgwT.js +0 -1
- package/dist/assets/OBJLoader-Cwe-BN99.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-6iKyx5P7.js +0 -1
- package/dist/assets/Object3DPreview-CVsX3Ez6.js +0 -2
- package/dist/assets/OrbitControls-Cn2q_IQK.js +0 -1
- package/dist/assets/PLYLoader-DOl6qb2a.js +0 -2
- package/dist/assets/QuarksAssetDocument-BrUx0sFF.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-CobhIWNK.js +0 -1
- package/dist/assets/STLLoader-B5YpfCGT.js +0 -1
- package/dist/assets/ShaderAssetDocument-8fZCtoKv.js +0 -1
- package/dist/assets/StageHost-CM6pXufo.js +0 -1179
- package/dist/assets/TDSLoader-BdQ2M2WU.js +0 -1
- package/dist/assets/ToolObject3DPreview-BY-w2JDK.js +0 -1
- package/dist/assets/ViewportShadingMenu-BcSW0SdM.js +0 -1
- package/dist/assets/animation-mixers.service-Dh2f8bk9.js +0 -1
- package/dist/assets/animation-timeline.utility-DTZfezuF.js +0 -1
- package/dist/assets/asset-preview-BCSH6zvx.js +0 -4
- package/dist/assets/blender-emscripten-engine-DEk9HdR1.js +0 -2
- package/dist/assets/blender-node-editor.document-sTxATkra.js +0 -1
- package/dist/assets/blender-properties-model-DG3h6RbJ.js +0 -1
- package/dist/assets/blender-properties-tab-kS_hNbKV.js +0 -3
- package/dist/assets/blender-runtime-host-CJ3l04y8.js +0 -17
- package/dist/assets/blender-runtime.document-CIJypNav.js +0 -13
- package/dist/assets/blender-screenshot.menu-B0WniIkP.js +0 -1
- package/dist/assets/blender-timeline.document-CCIcBTnZ.js +0 -1
- package/dist/assets/blender-uv-editor.document-CENezQQk.js +0 -1
- package/dist/assets/blender-version.status-aS3tabn9.js +0 -1
- package/dist/assets/blender-wali-engine-D2ymLooc.js +0 -2
- package/dist/assets/blender.command-Cl2XnwrS.js +0 -1
- package/dist/assets/blender.status-BgdpgL9J.js +0 -1
- package/dist/assets/clip-planes-CmZu3QTO.js +0 -8
- package/dist/assets/content-bounds-Dg9hT5Gp.js +0 -85
- package/dist/assets/index-BxW3iIJI.js +0 -952
- package/dist/assets/model-inspection-D_Z7lPhp.js +0 -1
- package/dist/assets/models.finder-n0qYfNhP.js +0 -1
- package/dist/assets/object3d-document-session-registry-Dso-3DdQ.js +0 -2
- package/dist/assets/play-mode-CB-BAREv.js +0 -7208
- package/dist/assets/product-2FMfCeKv.js +0 -14
- package/dist/assets/properties-bone-constraints.inspector-DPD94zpc.js +0 -1
- package/dist/assets/properties-bone.inspector-CDYgJFMb.js +0 -1
- package/dist/assets/properties-collection.inspector-Bc7-DzEi.js +0 -1
- package/dist/assets/properties-constraints.inspector-CnyXcr_p.js +0 -1
- package/dist/assets/properties-data.inspector-Y9trp74x.js +0 -1
- package/dist/assets/properties-material.inspector-DKW8fWHF.js +0 -1
- package/dist/assets/properties-modifiers.inspector-CCxaKRAi.js +0 -1
- package/dist/assets/properties-object.inspector-DHCzFViD.js +0 -1
- package/dist/assets/properties-output.inspector-Jcvyw8r-.js +0 -1
- package/dist/assets/properties-particles.inspector-DHrpt9YM.js +0 -1
- package/dist/assets/properties-physics.inspector-BdCSY9ed.js +0 -1
- package/dist/assets/properties-render.inspector-DPNhVHyH.js +0 -1
- package/dist/assets/properties-scene.inspector-BEyWMESu.js +0 -1
- package/dist/assets/properties-texture.inspector-BDAHphbo.js +0 -1
- package/dist/assets/properties-view-layer.inspector-Dd1R2c8y.js +0 -1
- package/dist/assets/properties-world.inspector-GA10_Q2q.js +0 -1
- package/dist/assets/react-18-DLRa6EBJ.js +0 -1
- package/dist/assets/session-C0OdhDD8.js +0 -5393
- package/dist/assets/spark.module-GpLuSFtI.js +0 -12120
- package/dist/assets/stage-keyboard-DQMRbQSk.js +0 -1
- package/dist/assets/stage-overlay-set-BjkX6NS2.js +0 -1
- package/dist/assets/stage-presence-markers-BLzWksKB.js +0 -1
- package/dist/assets/stage-transform-tools-CmCouHjc.js +0 -1
- package/dist/assets/standard-viewport-dressing-tRKYG-Oe.js +0 -24
- package/dist/assets/three-integration.service-CZBtvpOJ.js +0 -2
- package/dist/assets/three.module-dk_BdrjN.js +0 -3840
- package/dist/assets/volter-sdk-CTPCkGXt.js +0 -2358
- package/dist/assets/volter-sdk-account-C7TbJeFz.js +0 -1
- package/dist/assets/volter-sdk-client-DTdXvoMD.js +0 -1
- package/dist/assets/volter-sdk-contributions-eo4CPh2p.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-Ttf_8Kmw.js +0 -1
- package/dist/assets/volter-sdk-document-probe-uMZJqaXu.js +0 -1
- package/dist/assets/volter-sdk-editor-view-CRZQicqm.js +0 -1
- package/dist/assets/volter-sdk-host-B-zxfcPu.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-DPW20rVu.js +0 -1
- package/dist/assets/volter-sdk-index-Cb7Yywg-.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-D0IDzMdi.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-BcyEmaPH.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-DriAF6Sc.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-r7jCIax2.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-Cjf4pJ6J.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-BaNyB8ig.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-V71hItcC.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DmeLqo0W.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-BaD_Lz7M.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-D9KgHTyt.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-DH9EkQUe.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-DHp-caUc.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-DLGBnX6D.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-Ce2bcNI8.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-BUoW4R4G.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-D_ZKYf7K.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-fp96KH-b.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-Da3eSdYq.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-7nqXhmRG.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-CcJT4tNc.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees-BPery5as.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-B0ay5F3v.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-BRjsa1JH.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-QSJFkrTF.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-DhC-oWIc.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-DOGzxnKO.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-D3iKMZhc.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-iSjetPTF.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-B-rnrR4e.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-DW_B6mUz.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-zpDDAGhi.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-BLvGK5K9.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-R_sMRJxQ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Cu8PzcuH.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-CykYNw93.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-DisMJvNX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DaE4b6q5.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-BA2DspQh.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-CAs2DnB-.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-CKGz1teu.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-CUSx23CF.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-20DVa19-.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-9aCVJ5ZD.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-D9rsm7id.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-MiELo_O1.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-C2_qZtHy.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-CF9u3FRf.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-BHJmeKT1.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-Crk3ASvv.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-DG5Fxmhm.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-B0nbQdGo.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CeQy5qiB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-1JIcdD37.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-B92Z3v81.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-VKZPMDF4.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-CjdjzFCK.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-Dj9yuM04.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-7WjAL2FS.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-Cl7rnMX7.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-D3W4NqNC.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-BdohFxNz.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-Djn9pHUW.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-B7eiKgrk.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DLcEQvHq.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-gK-CPiH6.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-uHS0CYvK.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-D-BET8RO.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-B60IffcY.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-ks9HoOST.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-C_LkOQ31.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-Cs2OD8Mp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-BBRJ_LYX.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-BgFY_dTi.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-DBmpy3fX.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-DcfxyBfe.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-iBDEmcv0.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-B_6F6Tjj.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-D5dzuuRn.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-CY8If63r.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-Beh0HDVB.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-BJca1uda.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-CNWGaLfG.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-BBdzUzJV.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-DLFzHQUN.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-BH7-0ZVf.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-BieYMTcU.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-CHUoNB6d.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-CAnl2oe2.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-MC5H7QaT.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-0ZLiAfjQ.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-BuG6oS42.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-De8jBlkX.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-k9Qre0zs.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-BCAbvhi5.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-DhoVVzF5.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-BeICFKFG.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-QdCQHRDN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-UuSLtczL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DRnMid6h.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-k_gEaNs8.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-CgmL27Qf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-DaINv5KN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-D33j4CtY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-U0vUe3Gh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-Di70MjzD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-Dw9qSGfW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-BSaITVHL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-CBX_j1sn.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-D_SOr8n1.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-BjmRH40i.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-Bo9BYgAQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-C2U561Ms.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-CKikcRO-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-CamEatgb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-qZTCY7B0.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-C1QrGase.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-D0XCAqj9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-CdL2K3l0.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-Ds2BEQBR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-B-lQR6dk.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-DL06pAbx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-NXARIgKP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-D9k5E7Hu.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-B1204CGs.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-Dg-KoCOj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-CQQFzB8P.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-B84RxD-H.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-Dm4X7E6D.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-fex1-uEJ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-BMtIjudq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-CtJX1fLJ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-I5L1eMS3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-Dlh8Fj4d.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-BGNKcXN5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DYf1sB59.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-DTX5bWfY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-CMcb7LxE.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-hYej0it1.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-C29xbyEa.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DKm5c9pQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-DlKL0CIE.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-C4m5ChIc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-C14y3ihh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-CKB0yNjt.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-BDVR2s-T.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-DQ40_HIV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-vzj1_mB_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-BfUtoRtR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BOXeKsL_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-2xqqv2Xj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-CIf6SZcH.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-CB8zytBo.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-B7qYFl9c.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BBT6jLKq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-DfBSTsjH.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-BNvFtyig.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-Cz1AqKrb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-2RRfpNhD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-Baw6UVeU.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-Dp2nxLO5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-0AL287G7.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-SxZNqv0G.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-CBlMD0L5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-HjJYZ8Gz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-BGRscgk_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-BdMvmkrA.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-BuIe0TVS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-BKlVnBSH.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-ClRYm_mt.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-BTxRwbHZ.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-BBsj68Wz.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-CPo5_e0H.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-CZyb5EH5.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Blt31TSP.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-Da5QSNR9.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-wwmnNA8H.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-DZhtG99C.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-D660d1pQ.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-C7A14BNb.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-o7VHt0RE.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-DnympyQy.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-BIfEWYvh.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-BAoAh3oc.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-rp-lUOf7.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-nfnBmvxp.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-B4otzopy.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-CWmg17HP.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-cJDgiqAt.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-DPkmRwd6.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-DxGCw3Wd.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-CN2yr1kY.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-B46cp3L1.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-Dce3EYk2.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-BN3_7vDZ.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-C8WlPz7s.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-B5EZmrCR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-sTGM7WtH.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-BHriH9Fy.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-CmD9eBZ_.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-Decyhm66.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-DHQJcaKd.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-BkWelHzj.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-BR9UWdR6.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-hqIWdf2B.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-bvq2P7SA.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-DLOWDzzy.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-oMeHjbDw.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-DWAa-Biy.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-U0Hd4ukx.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-4-kjPKJS.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-CII4_28l.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-B8hycBye.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-D-8Ffbnn.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-xuaTlR2W.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-DMPYj1cL.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-DwPVbG_z.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-YQ9HaJ4D.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-CHjy5x0w.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-DVNFi3db.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-BO6QFbcg.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-DHl0iE2O.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-CsQB7hVX.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-BqwYB4wh.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-SGt4wx3-.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-j1CZFQrR.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-DlD5Ge3J.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-C8NlC6Zs.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-CsxqvCkr.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-B6vFr7fv.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-BSorleKV.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-Ch7Rju03.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-DHfC2eEE.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-d1VrRfJ_.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-Cz_aUVbj.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-DQuzGZjj.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-B_IHVPkm.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-Carvs4Xw.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-BLD_AY74.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-CNjNiuSL.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-CJSmgzLO.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-Dl_iBeRi.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-CXyUJGHt.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-CcADd8vA.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-B5mfvdNj.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-CKudL-Hd.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-DxdY28Kn.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-ayxYCqDa.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-BU9dpZgu.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-qD3qBc4d.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-C5PF41kk.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-C7wKxaTC.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-DbMHqpER.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-7J8bEzro.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-CsqEbnmq.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-DZbH2nfV.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-BRjHRzyv.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-BwlJ4cum.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-BAs9sxmj.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-BMPF_r1R.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-sIu0cDZ3.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-CuCpNP44.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-33ODHy-d.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-CsRondgE.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-AscUFBGG.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-CWNvk4YG.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-DtNXjPVL.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-BjCbO1ip.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-DcKqP5Vm.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-D8Xw-crH.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-BFvKDVcA.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-DH6Gw6mD.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-BqyCVB6M.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-DB9obnxF.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-UWhRbWd2.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-CUeYgCgW.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-Cn13Teb3.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-CAuCUEuz.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-CfWW26Lw.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-Drw2xyyh.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-C5_qaCKL.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-BorTV754.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-DRILY5HB.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-xWnFHyCJ.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-BVjhfPW_.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-Z3FUyOZH.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-DYLGSL7n.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-BQRieOTY.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-BzvdTX0f.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-C3v2aoZe.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-BhNOa6yj.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-D6xXn9e0.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-hrsUcLWw.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-Ch-TcC33.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-DIs3PAtE.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-cp-U044u.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-Dsz8XxT2.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-DGy_iPng.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-CSFdq6cn.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-Bbfug76r.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-BbMh2utc.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BuivsBeF.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-CxqjPi-M.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-Pq2qwZBi.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-u4QDXpQ0.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-tb7gOlcn.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-DtZEq2OD.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-BE3nJmiM.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-B9q2Gxk2.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-Bo5k3qZx.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-BJ_3jPnk.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-CA_p9YRS.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-DrDJAdEA.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-BskWTHl1.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-d2MOE3m1.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-CaUfxL_V.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-CsPquPQN.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-Bf4E0YMD.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-CKxDlryl.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-DpV1XxZk.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-Bu87cOj_.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-j54mTIme.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-CtFx_JD9.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-CzDbr7Zo.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-C-fXy9NI.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-X17hefjP.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dm6PyZ2j.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-Ch6FzvvU.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-vm7c5Dez.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-0zBaevxR.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-CQF_Wn9H.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-CuSMTSru.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-D5fxOuPe.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-CARKaW03.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-SNxzbxPZ.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-DyuyTFov.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-DB5Pqlf7.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-C4PxIVxf.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-BLRErv4h.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-nRyLNJxw.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-C5VehlZB.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-D2RWtgU_.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-DBmKEA5N.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-DCYP_c6M.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-B2dkacMA.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-D2z9TIt_.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-CQYPOsMY.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-DjqLHzpC.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-BJf9frMP.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-BJSPdpDJ.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-BysdaJxj.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-BCAURwwB.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-Dh_gh_Ar.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-3PTxxNEF.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-htLRFbbl.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend--mXzGN0l.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-BLldmdDB.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-BG9yY7wu.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-DI9VeZ8I.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-yx73yxqB.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-BiXyPx_l.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-DhOHcCGA.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-BxjkicFp.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-CxIIhpb2.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-CnNrdXA2.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-3Si9v39s.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-DiQ-lLLQ.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-Htvt6dsG.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CaVQDIFY.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-C-JtMmAl.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-BMR96t8y.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-lzroQNX_.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-DuvwxRnn.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-C98Lvagt.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets-D-_A7JDE.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-CjlUpZr0.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-CMqSE6J4.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-7kSA_sJg.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-Dg-zwxJa.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-DOuNQjxD.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-Cb2B-wJ4.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-Bm-lvH6A.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-ndmh4Nmf.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-EnXhxxxs.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-DBACuFYQ.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-BGY2sBjP.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-D-TR3xVs.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-DUPpMeSr.js +0 -1
- package/dist/assets/volter-sdk-layouts-CGyUD29k.js +0 -1
- package/dist/assets/volter-sdk-selection-tCvpnXRn.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-BxONBy05.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-BG0ODZ-8.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-BHTMjwNA.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-CN7sZXZb.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-9vLAGmig.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-BM1eAf3p.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-CYuYhJk6.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-BIEldh0Z.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-DvN_LWlB.js +0 -1
- package/dist/assets/volter-sdk-types-BvyVPR_Q.js +0 -1
- package/dist/assets/volter-sdk-views-BDaWlMYB.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-QBgXzl9_.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-BrIPELML.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-B_fvft70.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-T4Dmzqt7.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-B3HpUbVG.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-CDr_zdnY.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BWxes3gA.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-etYg4PmT.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-DetQDh_f.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BfTn_BsC.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-saO-J7Oq.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CZ7FmWxG.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-ChiCM1d4.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-Dz-bVsZ8.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BAugA19h.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-DxraCOXQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-kkJukQ0s.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-B3vyn0Ai.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CPkFF1JF.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-D4_tVXsa.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CkPDHAWE.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-BJShETId.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-BgG2_2xL.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-G2He1eZg.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-N-ry8Gth.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-gSMJ3Pp_.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-BVbWQJC-.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-BsJEhxbv.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-CaiLdn6d.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-C0ugJ_I6.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-CJcVDa_m.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-B-I_hC_P.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-BUbAPjrv.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-9Ke8qtZ8.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-IgTEdXXe.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-Dj0j9sft.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-BfWHHWVT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-hgt5A7Kd.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-B_EwFkyN.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-Bv-Dt2pg.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CtGyBmQ7.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-CROeI4AB.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-Bp6LhOHs.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-CKGQWC6W.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DKN5rnzb.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-2b5QAcYe.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-D94XgQyr.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-D9930eKI.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DmH6-h4B.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-ah2w0Fkn.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-BTO2KQ8P.js +0 -1
- package/dist/assets/volter-shared-fontawesome-BjL6w6Cn.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-Bz1gHaPC.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-DZaM4mR0.js +0 -1
- package/dist/assets/volter-shared-react-71UsCCPo.js +0 -1
- package/dist/assets/volter-shared-react-dom-BJsW7Z0N.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-Yf5gYUSE.js +0 -1
- package/dist/assets/volter-shared-three-wYzUWvH9.js +0 -1
- package/dist/assets/worker-D1j8wqVo.js +0 -4
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{F as ne,a as Br,v as ce,c as ae}from"./content-bounds-Dg9hT5Gp.js";import{D as te,a as fr,F as oe,R as fe,b as le,L as se,N as be,C as ve,c as de,d as ge,G as ue,e as Pr,H as Y,W as J,f as xe,g as ie,P as me,S as pe,h as Vr,i as _e,M as Ie,j as Lr,V as cr,k as Ce,O as he,l as ye}from"./three.module-dk_BdrjN.js";import{h1 as u,hw as Se}from"./volter-sdk-CTPCkGXt.js";import{r as we,f as Le}from"./clip-planes-CmZu3QTO.js";const Re=1024*1024,Rr={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},Ae=async e=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",e)),r=>r.toString(16).padStart(2,"0")).join("");class Me{constructor(){this.buffers=null,this.offsets=[]}reset(){this.buffers=null,this.offsets=[]}async accept(r){try{if(r.kind==="begin"){if(this.buffers)throw new Error("A frame value is already arriving");if(!r.lengths.length||r.lengths.length>4096||r.lengths.reduce((a,c)=>a+c,0)>2*1024**3||r.lengths.some(a=>!Number.isSafeInteger(a)||a<0||a>1024**3))throw new Error("Invalid frame buffer lengths");this.buffers=r.lengths.map(a=>new Uint8Array(a)),this.offsets=r.lengths.map(()=>0);return}if(!this.buffers)throw new Error("Frame chunk arrived without its manifest");if(r.kind==="bytes"){const a=this.buffers[r.slot];if(!a||!Number.isSafeInteger(r.offset)||r.offset!==this.offsets[r.slot]||r.bytes.byteLength>Re||!r.bytes.byteLength||r.offset+r.bytes.byteLength>a.byteLength)throw new Error("Frame chunk is out of order or exceeds its bound");if(await Ae(r.bytes)!==r.sha256)throw new Error("Frame chunk digest mismatch");a.set(r.bytes,r.offset),this.offsets[r.slot]=r.offset+r.bytes.byteLength;return}if(r.kind!=="end")throw new Error("Unknown frame chunk");const n=this.buffers;if(n.some((a,c)=>a.length!==this.offsets[c]))throw new Error("Frame value is incomplete");const t=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(n[0]),(a,c)=>{if(!c||typeof c!="object"||!("$frameColumn"in c))return c;const o=n[c.$frameColumn],f=Rr[c.type];if(!Number.isSafeInteger(c.$frameColumn)||c.$frameColumn<1||!o||!Object.hasOwn(Rr,c.type)||!f||o.byteLength%f.BYTES_PER_ELEMENT)throw new Error("Invalid frame column descriptor");return new f(o.buffer)});return this.reset(),{value:t}}catch(n){throw this.reset(),n}}}const Ar=4096;class ze{#c;#a;#o=[];#n=new Map;#V=0;#d=null;#f=null;#l=!1;#S=!1;#w=r=>{!this.#S&&this.#p===0||(r.preventDefault(),r.returnValue="")};#g=new Map;#u=new Map;#x="engine-start";#L=null;#C=new Set;#i=null;#h=0;#R=0;#A=0;#s=null;#M=null;#b=null;constructor(r){this.#a=r,this.#c=new Worker(new URL("/assets/worker-D1j8wqVo.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#w),this.#c.onmessage=n=>void this.#P(n.data),this.#c.onerror=n=>{const t=n.error,a=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",c=t?.stack??t?.message??n.message,o=this.#o.length>0?`
|
|
2
|
-
Blender's last output:
|
|
3
|
-
${this.#o.join(`
|
|
4
|
-
`)}`:"",f=this.#b===null?null:Math.round(this.#b/1048576),s=f!==null&&f>=Ar-16?`Blender ran out of memory: its heap reached ${f} MB of the in-tab engine's ${Ar} MB, and this scene needs more. `:"",b=new Error(`${s}Blender worker failed: ${c||"the worker script did not load"}${a}${o}`);console.error(b.message);for(const l of[...this.#n.keys()])this.#m(l);for(const l of this.#n.values())l.reject(b);this.#n.clear(),this.terminate()}}#t=null;#v=null;get project(){return this.#t}get document(){return this.#v}get lastOutput(){return[...this.#o]}start(r,n){return this.#t!==null&&this.#t!==r?Promise.reject(new Error(`The Blender session is bound to ${this.#t}, not ${r}`)):n!==void 0&&this.#v!==null&&this.#v!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#v}; cannot open ${n}`)):(this.#t=r,this.#v??=n??"models/model.blend",this.#d??=this.#r({op:"start",project:r,...n===void 0?{}:{document:n}}),this.#d)}#e(){return this.#t===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#t)}async execute(r,n=!0,t="Blender Python"){return await this.#e(),await this.#r({op:"execute",code:r,history:n,label:t})}async historyGesture(r){await this.#e(),await this.#r({op:r})}async historyStep(r,n){return await this.#e(),(await this.#r({op:"history-step",token:r,direction:n})).moved}async sceneInfo(){return await this.#e(),await this.#r({op:"scene-info"})}async objectInfo(r){return await this.#e(),await this.#r({op:"object-info",name:r})}async rna(r,n){return await this.#e(),await this.#r({op:"rna",path:r,...n===void 0?{}:{names:n}})}async rnaContext(r,n){return await this.#e(),await this.#r({op:"rna-context",...r===void 0?{}:{object:r},...n===void 0?{}:{collection:n}})}async rnaSet(r,n,t,a,c=!0){return await this.#e(),await this.#r({op:"rna-set",history:c,path:r,property:n,value:t,...a===void 0?{}:{index:a}})}async viewShading(r){await this.#e(),await this.#r({op:"view-shading",shading:r})}async outliner(r){return await this.#e(),await this.#r({op:"outliner",...r===void 0?{}:{selected:r}})}async nodeTree(r){return await this.#e(),await this.#r({op:"node-tree",...r?.path===void 0?{}:{path:r.path},...r?.material===void 0?{}:{material:r.material}})}async uvLayout(r){return await this.#e(),await this.#r({op:"uv-layout",...r?.object===void 0?{}:{object:r.object},...r?.uvLayer===void 0?{}:{uvLayer:r.uvLayer}})}async rig(r){return await this.#e(),await this.#r({op:"rig",...r?.object===void 0?{}:{object:r.object}})}async actionClip(r){return await this.#e(),await this.#r({op:"action-clip",...r?.object===void 0?{}:{object:r.object},...r?.bake===void 0?{}:{bake:r.bake}})}async outlinerSet(r,n,t){return await this.#e(),await this.#r({op:"outliner-set",path:r,column:n,value:t})}async present(){await this.#e(),await this.#r({op:"present"})}async screenshotView(r){return await this.#e(),await this.#r({op:"screenshot-view",maxSize:r})}async readFile(r){return await this.#e(),await this.#r({op:"read-file",path:r})}async writeFile(r,n){await this.#e(),await this.#r({op:"write-file",path:r,bytes:n})}async listFiles(r){return await this.#e(),await this.#r({op:"list-files",path:r})}get presented(){return this.#M}stop(){return this.#l?Promise.resolve():this.#f?this.#f:(this.#f=(async()=>{(this.#d?await this.#d.then(()=>!0,()=>!1):!1)&&await this.#r({op:"flush-document"},!0),this.terminate()})().catch(r=>{throw this.#f=null,r}),this.#f)}terminate(){if(this.#I(),this.#l)return;this.#l=!0,globalThis.removeEventListener?.("beforeunload",this.#w);const r=this.#y("terminating worker");try{this.#c.terminate()}finally{r()}const n=new Error("The Blender session was terminated");for(const t of[...this.#n.keys()])this.#m(t);for(const t of this.#n.values())t.reject(n);this.#n.clear();for(const t of this.#C)t()}metrics(r=performance.now()){let n=null,t=this.#h,a=this.#L,c=this.#R,o=this.#A;for(const[f,s]of this.#g){const b=r-s;(n===null||b>n)&&(n=b),b>t&&(t=b,a=this.#u.get(f)??null),b>=5e3&&(c+=1),b>=3e4&&(o+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#i===null?null:Math.round(this.#i),maxCallMs:this.#i===null&&n===null?null:Math.round(t),maxCallLabel:a,currentPhase:this.#p?this.#x:null,completedCalls:this.#z,callsOver5s:c,callsOver30s:o,lastCallWindow:this.#s,wasmMemoryMB:this.#b===null?null:Math.round(this.#b/1048576)}}#m(r){const n=this.#g.get(r);if(n===void 0)return;this.#g.delete(r);const t=this.#u.get(r)??null;this.#u.delete(r),this.#z++;const a=performance.now()-n;this.#i=a,a>this.#h&&(this.#h=a,this.#L=t),a>=5e3&&(this.#R+=1),a>=3e4&&(this.#A+=1),this.#s!==null&&this.#s.start===n&&(this.#s={start:n,end:n+a})}#z=0;#p=0;#k=Promise.resolve();#r(r,n=!1){if(this.#l||this.#f&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const t=performance.now();let a=()=>{};this.#p++;const c=this.#k.then(async()=>{const o=this.#y(`running worker ${r.op}`);a=()=>{this.#C.delete(a)&&o()},this.#C.add(a),this.#x=r.op;let f=await this.#D(r);for(;f?.load==="continue";)this.#x=f.phase,f=await this.#D({op:"load-next",token:f.token});return f?.load==="done"?f.value:f}).finally(()=>{this.#p--,a();const o=Math.round(performance.now()-t);try{o>=1e3&&this.#a.log?.("log",`@@VOLTER-WORK op=${r.op} totalMs=${o}`)}catch{}});return this.#k=c.then(()=>{},()=>{}),c}#D(r){if(this.#l)return Promise.reject(new Error("The Blender session is terminated"));const n=++this.#V;return new Promise((t,a)=>{this.#n.set(n,{resolve:t,reject:a});const c=performance.now();this.#g.set(n,c),this.#u.set(n,r.op==="load-next"?`load-next after ${this.#x}`:r.op),this.#s={start:c,end:null};try{this.#c.postMessage({...r,id:n})}catch(o){this.#n.delete(n),this.#m(n),a(o instanceof Error?o:new Error(String(o)))}})}#y(r){try{const n=this.#a.work?.(r);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}#B=new Me;#_=null;#I(){this.#B.reset();const r=this.#_;if(this.#_=null,r)try{Promise.resolve(this.#a.stage?.({...r,abort:!0})).catch(()=>{})}catch{}}async#P(r){if("op"in r){if(r.op==="frame-stream"){try{const c=await this.#B.accept(r.chunk);if(c){const o=c.value;if(o.op==="present"){await this.#P({...o,id:r.id});return}if(o.op!=="stage"||!this.#a.stage)throw new Error("The presenter does not support staged Blender frames");this.#_={session:o.session,revision:o.revision},await this.#a.stage(o)}this.#c.postMessage({op:"present-result",id:r.id})}catch(c){this.#I(),this.#c.postMessage({op:"present-result",id:r.id,error:c instanceof Error?c.message:String(c)})}return}if(r.op==="document-dirty"){this.#S=r.dirty;return}if(r.op==="history"){this.#a.history?.(r.entries);return}if(r.op==="log"){this.#o.push(r.text),this.#o.length>12&&this.#o.shift(),this.#a.log?.(r.level,r.text);return}if(r.op==="memory"){this.#b=r.bytes;return}const t=r.frame;typeof t?.session=="string"&&typeof t.revision=="number"&&(this.#M={session:t.session,revision:t.revision});const a=this.#y("presenting worker frame");try{const c=await this.#a.present(r.frame,r.description,r.capture);this.#_=null,this.#c.postMessage({op:"present-result",id:r.id,...c?.capture===void 0?{}:{capture:c.capture},...c!=null&&"held"in c?{held:c.held}:{}})}catch(c){this.#I(),this.#c.postMessage({op:"present-result",id:r.id,error:c instanceof Error?c.message:String(c)})}finally{a()}return}"error"in r&&this.#I();const n=this.#n.get(r.id);n&&(this.#n.delete(r.id),this.#m(r.id),"error"in r?n.reject(new Error(r.error)):n.resolve(r.result))}}const ke=JSON.parse(`{"Standard/None":{"shader":"\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[]},"Filmic/None":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/Very High Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\nuniform sampler3D blender_lut3d_2Sampler;\\nuniform sampler2D blender_lut1d_3Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 65535.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 17.;\\n return retVal;\\n}\\nvec2 blender_lut1d_3_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.660000026, 0.660000026, 0.660000026, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_2\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_2Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_3\\n \\n {\\n outColor.r = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":464012,"count":69632,"linear":true,"width":4096,"height":17,"channels":1},{"sampler":"blender_lut1d_3Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_2Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/High Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\nuniform sampler3D blender_lut3d_2Sampler;\\nuniform sampler2D blender_lut1d_3Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 65535.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 17.;\\n return retVal;\\n}\\nvec2 blender_lut1d_3_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.660000026, 0.660000026, 0.660000026, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_2\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_2Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_3\\n \\n {\\n outColor.r = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":742540,"count":69632,"linear":true,"width":4096,"height":17,"channels":1},{"sampler":"blender_lut1d_3Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_2Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/Medium High Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\nuniform sampler3D blender_lut3d_2Sampler;\\nuniform sampler2D blender_lut1d_3Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 65535.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 17.;\\n return retVal;\\n}\\nvec2 blender_lut1d_3_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.660000026, 0.660000026, 0.660000026, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_2\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_2Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_3\\n \\n {\\n outColor.r = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":1021068,"count":69632,"linear":true,"width":4096,"height":17,"channels":1},{"sampler":"blender_lut1d_3Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_2Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/Medium Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\nuniform sampler2D blender_lut1d_2Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_2_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_2\\n \\n {\\n outColor.r = texture(blender_lut1d_2Sampler, blender_lut1d_2_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_2Sampler, blender_lut1d_2_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_2Sampler, blender_lut1d_2_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_2Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/Medium Low Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\nuniform sampler3D blender_lut3d_2Sampler;\\nuniform sampler2D blender_lut1d_3Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 65535.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 17.;\\n return retVal;\\n}\\nvec2 blender_lut1d_3_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.660000026, 0.660000026, 0.660000026, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_2\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_2Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_3\\n \\n {\\n outColor.r = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":1299596,"count":69632,"linear":true,"width":4096,"height":17,"channels":1},{"sampler":"blender_lut1d_3Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_2Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/Low Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\nuniform sampler3D blender_lut3d_2Sampler;\\nuniform sampler2D blender_lut1d_3Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 65535.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 17.;\\n return retVal;\\n}\\nvec2 blender_lut1d_3_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.660000026, 0.660000026, 0.660000026, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_2\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_2Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_3\\n \\n {\\n outColor.r = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":1578124,"count":69632,"linear":true,"width":4096,"height":17,"channels":1},{"sampler":"blender_lut1d_3Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_2Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"Filmic/Very Low Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler2D blender_lut1d_1Sampler;\\nuniform sampler3D blender_lut3d_2Sampler;\\nuniform sampler2D blender_lut1d_3Sampler;\\n\\n// Declaration of all helper methods\\n\\nvec2 blender_lut1d_1_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 65535.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 17.;\\n return retVal;\\n}\\nvec2 blender_lut1d_3_computePos(float f)\\n{\\n float dep = clamp(f, 0.0, 1.0) * 4095.;\\n vec2 retVal;\\n retVal.y = floor(dep / 4095.);\\n retVal.x = dep - retVal.y * 4095.;\\n retVal.x = (retVal.x + 0.5) / 4096.;\\n retVal.y = (retVal.y + 0.5) / 2.;\\n return retVal;\\n}\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0399999991, 0.0399999991, 0.0399999991, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_1\\n \\n {\\n outColor.r = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_1Sampler, blender_lut1d_1_computePos(outColor.b)).r;\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.660000026, 0.660000026, 0.660000026, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_2\\n \\n {\\n vec3 coords = outColor.rgb * vec3(32., 32., 32.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(33., 33., 33.);\\n vec3 v1 = texture(blender_lut3d_2Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.0303030312);\\n vec3 v4 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0303030312);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0303030312, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.0303030312);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0303030312, 0.);\\n vec3 v2 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0303030312, 0.0303030312, 0.);\\n vec3 v3 = texture(blender_lut3d_2Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(1.5151515, 1.5151515, 1.5151515, 1.) * res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 1D processing for blender_lut1d_3\\n \\n {\\n outColor.r = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.r)).r;\\n outColor.g = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.g)).r;\\n outColor.b = texture(blender_lut1d_3Sampler, blender_lut1d_3_computePos(outColor.b)).r;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut1d_1Sampler","offset":1856652,"count":69632,"linear":true,"width":4096,"height":17,"channels":1},{"sampler":"blender_lut1d_3Sampler","offset":0,"count":8192,"linear":true,"width":4096,"height":2,"channels":1},{"sampler":"blender_lut3d_0Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3},{"sampler":"blender_lut3d_2Sampler","offset":32768,"count":107811,"linear":false,"size":33,"channels":3}]},"AgX/None":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Punchy":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingTone 'log' forward processing\\n \\n {\\n const float blacksR = 1.;\\n const float blacksG = 1.;\\n const float blacksB = 1.;\\n const float blacksM = 1.;\\n const float blacksStart = 0.400000006;\\n const float blacksWidth = 0.335000008;\\n const float shadowsR = 0.200000003;\\n const float shadowsG = 0.200000003;\\n const float shadowsB = 0.200000003;\\n const float shadowsM = 0.349999994;\\n const float shadowsStart = 0.400000006;\\n const float shadowsWidth = 0.100000001;\\n const float midtonesR = 1.;\\n const float midtonesG = 1.;\\n const float midtonesB = 1.;\\n const float midtonesM = 1.;\\n const float midtonesStart = 0.400000006;\\n const float midtonesWidth = 0.600000024;\\n const float highlightsR = 1.;\\n const float highlightsG = 1.;\\n const float highlightsB = 1.;\\n const float highlightsM = 1.;\\n const float highlightsStart = 0.300000012;\\n const float highlightsWidth = 1.;\\n const float whitesR = 1.;\\n const float whitesG = 1.;\\n const float whitesB = 1.;\\n const float whitesM = 1.;\\n const float whitesStart = 0.400000006;\\n const float whitesWidth = 0.5;\\n const float sContrast = 1.;\\n {\\n const float halo = 0.4;\\n float mid_adj = clamp(midtonesR, 0.01, 1.99);\\n if (mid_adj != 1.)\\n {\\n const float x0 = 0.000000;\\n const float x5 = 1.000000;\\n const float max_width = (x5 - x0) * 0.95;\\n float width = clamp(midtonesWidth, 0.01, max_width);\\n float min_cent = x0 + width * 0.51;\\n float max_cent = x5 - width * 0.51;\\n float center = clamp(midtonesStart, min_cent, max_cent);\\n float x1 = center - width * 0.5;\\n float x4 = x1 + width;\\n float x2 = x1 + (x4 - x1) * 0.25;\\n float x3 = x1 + (x4 - x1) * 0.75;\\n float y0 = x0;\\n const float m0 = 1.;\\n const float m5 = 1.;\\n const float min_slope = 0.1;\\n mid_adj = mid_adj - 1.;\\n mid_adj = mid_adj * (1. - min_slope);\\n float m2 = 1. + mid_adj;\\n float m3 = 1. - mid_adj;\\n float m1 = 1. + mid_adj * halo;\\n float m4 = 1. - mid_adj * halo;\\n if (center <= (x5 + x0) * 0.5)\\n {\\n float area = (x1 - x0) * (m1 - m0) * 0.5 + \\n (x2 - x1) * ((m1 - m0) + (m2 - m1)*0.5) + (center - x2) * (m2 - m0) * 0.5;\\n m4 = ( -0.5*(x5 - x4)*m5 + (x4 - x3) * (0.5*m3 - m5) + \\n (x3 - center) * (m3 - m5) * 0.5 + area ) / ( -0.5*(x5 - x3) );\\n }\\n else\\n {\\n float area = (x5 - x4) * (m4 - m5) * 0.5 + \\n (x4 - x3) * ((m4 - m5) + (m3 - m4) * 0.5) + (x3 - center) * (m3 - m5) * 0.5;\\n m1 = ( -0.5*(x1 - x0)*m0 + (x2 - x1) * (0.5*m2 - m0) + \\n (center - x2) * (m2 - m0) * 0.5 + area ) / ( -0.5*(x2 - x0) );\\n }\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float y2 = y1 + (m1 + m2) * (x2 - x1) * 0.5;\\n float y3 = y2 + (m2 + m3) * (x3 - x2) * 0.5;\\n float y4 = y3 + (m3 + m4) * (x4 - x3) * 0.5;\\n float y5 = y4 + (m4 + m5) * (x5 - x4) * 0.5;\\n float t = outColor.rgb.r;\\n float tL = (t - x0) / (x1 - x0);\\n float tM = (t - x1) / (x2 - x1);\\n float tR = (t - x2) / (x3 - x2);\\n float tR2 = (t - x3) / (x4 - x3);\\n float tR3 = (t - x4) / (x5 - x4);\\n float fL = tL * (x1 - x0) * ( tL * 0.5 * (m1 - m0) + m0 ) + y0;\\n float fM = tM * (x2 - x1) * ( tM * 0.5 * (m2 - m1) + m1 ) + y1;\\n float fR = tR * (x3 - x2) * ( tR * 0.5 * (m3 - m2) + m2 ) + y2;\\n float fR2 = tR2 * (x4 - x3) * ( tR2 * 0.5 * (m4 - m3) + m3 ) + y3;\\n float fR3 = tR3 * (x5 - x4) * ( tR3 * 0.5 * (m5 - m4) + m4 ) + y4;\\n float res = (t < x1) ? fL : fM;\\n if (t > x2) res = fR;\\n if (t > x3) res = fR2;\\n if (t > x4) res = fR3;\\n if (t < x0) res = y0 + (t - x0) * m0;\\n if (t > x5) res = y5 + (t - x5) * m5;\\n outColor.rgb.r = res;\\n }\\n }\\n {\\n const float halo = 0.4;\\n float mid_adj = clamp(midtonesG, 0.01, 1.99);\\n if (mid_adj != 1.)\\n {\\n const float x0 = 0.000000;\\n const float x5 = 1.000000;\\n const float max_width = (x5 - x0) * 0.95;\\n float width = clamp(midtonesWidth, 0.01, max_width);\\n float min_cent = x0 + width * 0.51;\\n float max_cent = x5 - width * 0.51;\\n float center = clamp(midtonesStart, min_cent, max_cent);\\n float x1 = center - width * 0.5;\\n float x4 = x1 + width;\\n float x2 = x1 + (x4 - x1) * 0.25;\\n float x3 = x1 + (x4 - x1) * 0.75;\\n float y0 = x0;\\n const float m0 = 1.;\\n const float m5 = 1.;\\n const float min_slope = 0.1;\\n mid_adj = mid_adj - 1.;\\n mid_adj = mid_adj * (1. - min_slope);\\n float m2 = 1. + mid_adj;\\n float m3 = 1. - mid_adj;\\n float m1 = 1. + mid_adj * halo;\\n float m4 = 1. - mid_adj * halo;\\n if (center <= (x5 + x0) * 0.5)\\n {\\n float area = (x1 - x0) * (m1 - m0) * 0.5 + \\n (x2 - x1) * ((m1 - m0) + (m2 - m1)*0.5) + (center - x2) * (m2 - m0) * 0.5;\\n m4 = ( -0.5*(x5 - x4)*m5 + (x4 - x3) * (0.5*m3 - m5) + \\n (x3 - center) * (m3 - m5) * 0.5 + area ) / ( -0.5*(x5 - x3) );\\n }\\n else\\n {\\n float area = (x5 - x4) * (m4 - m5) * 0.5 + \\n (x4 - x3) * ((m4 - m5) + (m3 - m4) * 0.5) + (x3 - center) * (m3 - m5) * 0.5;\\n m1 = ( -0.5*(x1 - x0)*m0 + (x2 - x1) * (0.5*m2 - m0) + \\n (center - x2) * (m2 - m0) * 0.5 + area ) / ( -0.5*(x2 - x0) );\\n }\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float y2 = y1 + (m1 + m2) * (x2 - x1) * 0.5;\\n float y3 = y2 + (m2 + m3) * (x3 - x2) * 0.5;\\n float y4 = y3 + (m3 + m4) * (x4 - x3) * 0.5;\\n float y5 = y4 + (m4 + m5) * (x5 - x4) * 0.5;\\n float t = outColor.rgb.g;\\n float tL = (t - x0) / (x1 - x0);\\n float tM = (t - x1) / (x2 - x1);\\n float tR = (t - x2) / (x3 - x2);\\n float tR2 = (t - x3) / (x4 - x3);\\n float tR3 = (t - x4) / (x5 - x4);\\n float fL = tL * (x1 - x0) * ( tL * 0.5 * (m1 - m0) + m0 ) + y0;\\n float fM = tM * (x2 - x1) * ( tM * 0.5 * (m2 - m1) + m1 ) + y1;\\n float fR = tR * (x3 - x2) * ( tR * 0.5 * (m3 - m2) + m2 ) + y2;\\n float fR2 = tR2 * (x4 - x3) * ( tR2 * 0.5 * (m4 - m3) + m3 ) + y3;\\n float fR3 = tR3 * (x5 - x4) * ( tR3 * 0.5 * (m5 - m4) + m4 ) + y4;\\n float res = (t < x1) ? fL : fM;\\n if (t > x2) res = fR;\\n if (t > x3) res = fR2;\\n if (t > x4) res = fR3;\\n if (t < x0) res = y0 + (t - x0) * m0;\\n if (t > x5) res = y5 + (t - x5) * m5;\\n outColor.rgb.g = res;\\n }\\n }\\n {\\n const float halo = 0.4;\\n float mid_adj = clamp(midtonesB, 0.01, 1.99);\\n if (mid_adj != 1.)\\n {\\n const float x0 = 0.000000;\\n const float x5 = 1.000000;\\n const float max_width = (x5 - x0) * 0.95;\\n float width = clamp(midtonesWidth, 0.01, max_width);\\n float min_cent = x0 + width * 0.51;\\n float max_cent = x5 - width * 0.51;\\n float center = clamp(midtonesStart, min_cent, max_cent);\\n float x1 = center - width * 0.5;\\n float x4 = x1 + width;\\n float x2 = x1 + (x4 - x1) * 0.25;\\n float x3 = x1 + (x4 - x1) * 0.75;\\n float y0 = x0;\\n const float m0 = 1.;\\n const float m5 = 1.;\\n const float min_slope = 0.1;\\n mid_adj = mid_adj - 1.;\\n mid_adj = mid_adj * (1. - min_slope);\\n float m2 = 1. + mid_adj;\\n float m3 = 1. - mid_adj;\\n float m1 = 1. + mid_adj * halo;\\n float m4 = 1. - mid_adj * halo;\\n if (center <= (x5 + x0) * 0.5)\\n {\\n float area = (x1 - x0) * (m1 - m0) * 0.5 + \\n (x2 - x1) * ((m1 - m0) + (m2 - m1)*0.5) + (center - x2) * (m2 - m0) * 0.5;\\n m4 = ( -0.5*(x5 - x4)*m5 + (x4 - x3) * (0.5*m3 - m5) + \\n (x3 - center) * (m3 - m5) * 0.5 + area ) / ( -0.5*(x5 - x3) );\\n }\\n else\\n {\\n float area = (x5 - x4) * (m4 - m5) * 0.5 + \\n (x4 - x3) * ((m4 - m5) + (m3 - m4) * 0.5) + (x3 - center) * (m3 - m5) * 0.5;\\n m1 = ( -0.5*(x1 - x0)*m0 + (x2 - x1) * (0.5*m2 - m0) + \\n (center - x2) * (m2 - m0) * 0.5 + area ) / ( -0.5*(x2 - x0) );\\n }\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float y2 = y1 + (m1 + m2) * (x2 - x1) * 0.5;\\n float y3 = y2 + (m2 + m3) * (x3 - x2) * 0.5;\\n float y4 = y3 + (m3 + m4) * (x4 - x3) * 0.5;\\n float y5 = y4 + (m4 + m5) * (x5 - x4) * 0.5;\\n float t = outColor.rgb.b;\\n float tL = (t - x0) / (x1 - x0);\\n float tM = (t - x1) / (x2 - x1);\\n float tR = (t - x2) / (x3 - x2);\\n float tR2 = (t - x3) / (x4 - x3);\\n float tR3 = (t - x4) / (x5 - x4);\\n float fL = tL * (x1 - x0) * ( tL * 0.5 * (m1 - m0) + m0 ) + y0;\\n float fM = tM * (x2 - x1) * ( tM * 0.5 * (m2 - m1) + m1 ) + y1;\\n float fR = tR * (x3 - x2) * ( tR * 0.5 * (m3 - m2) + m2 ) + y2;\\n float fR2 = tR2 * (x4 - x3) * ( tR2 * 0.5 * (m4 - m3) + m3 ) + y3;\\n float fR3 = tR3 * (x5 - x4) * ( tR3 * 0.5 * (m5 - m4) + m4 ) + y4;\\n float res = (t < x1) ? fL : fM;\\n if (t > x2) res = fR;\\n if (t > x3) res = fR2;\\n if (t > x4) res = fR3;\\n if (t < x0) res = y0 + (t - x0) * m0;\\n if (t > x5) res = y5 + (t - x5) * m5;\\n outColor.rgb.b = res;\\n }\\n }\\n {\\n const float halo = 0.4;\\n float mid_adj = clamp(midtonesM, 0.01, 1.99);\\n if (mid_adj != 1.)\\n {\\n const float x0 = 0.000000;\\n const float x5 = 1.000000;\\n const float max_width = (x5 - x0) * 0.95;\\n float width = clamp(midtonesWidth, 0.01, max_width);\\n float min_cent = x0 + width * 0.51;\\n float max_cent = x5 - width * 0.51;\\n float center = clamp(midtonesStart, min_cent, max_cent);\\n float x1 = center - width * 0.5;\\n float x4 = x1 + width;\\n float x2 = x1 + (x4 - x1) * 0.25;\\n float x3 = x1 + (x4 - x1) * 0.75;\\n float y0 = x0;\\n const float m0 = 1.;\\n const float m5 = 1.;\\n const float min_slope = 0.1;\\n mid_adj = mid_adj - 1.;\\n mid_adj = mid_adj * (1. - min_slope);\\n float m2 = 1. + mid_adj;\\n float m3 = 1. - mid_adj;\\n float m1 = 1. + mid_adj * halo;\\n float m4 = 1. - mid_adj * halo;\\n if (center <= (x5 + x0) * 0.5)\\n {\\n float area = (x1 - x0) * (m1 - m0) * 0.5 + \\n (x2 - x1) * ((m1 - m0) + (m2 - m1)*0.5) + (center - x2) * (m2 - m0) * 0.5;\\n m4 = ( -0.5*(x5 - x4)*m5 + (x4 - x3) * (0.5*m3 - m5) + \\n (x3 - center) * (m3 - m5) * 0.5 + area ) / ( -0.5*(x5 - x3) );\\n }\\n else\\n {\\n float area = (x5 - x4) * (m4 - m5) * 0.5 + \\n (x4 - x3) * ((m4 - m5) + (m3 - m4) * 0.5) + (x3 - center) * (m3 - m5) * 0.5;\\n m1 = ( -0.5*(x1 - x0)*m0 + (x2 - x1) * (0.5*m2 - m0) + \\n (center - x2) * (m2 - m0) * 0.5 + area ) / ( -0.5*(x2 - x0) );\\n }\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float y2 = y1 + (m1 + m2) * (x2 - x1) * 0.5;\\n float y3 = y2 + (m2 + m3) * (x3 - x2) * 0.5;\\n float y4 = y3 + (m3 + m4) * (x4 - x3) * 0.5;\\n float y5 = y4 + (m4 + m5) * (x5 - x4) * 0.5;\\n vec3 t = outColor.rgb;\\n vec3 res;\\n vec3 tL = (t - x0) / (x1 - x0);\\n vec3 tM = (t - x1) / (x2 - x1);\\n vec3 tR = (t - x2) / (x3 - x2);\\n vec3 tR2 = (t - x3) / (x4 - x3);\\n vec3 tR3 = (t - x4) / (x5 - x4);\\n vec3 fL = tL * (x1 - x0) * ( tL * 0.5 * (m1 - m0) + m0 ) + y0;\\n vec3 fM = tM * (x2 - x1) * ( tM * 0.5 * (m2 - m1) + m1 ) + y1;\\n vec3 fR = tR * (x3 - x2) * ( tR * 0.5 * (m3 - m2) + m2 ) + y2;\\n vec3 fR2 = tR2 * (x4 - x3) * ( tR2 * 0.5 * (m4 - m3) + m3 ) + y3;\\n vec3 fR3 = tR3 * (x5 - x4) * ( tR3 * 0.5 * (m5 - m4) + m4 ) + y4;\\n res.r = (t.r < x1) ? fL.r : fM.r;\\n res.g = (t.g < x1) ? fL.g : fM.g;\\n res.b = (t.b < x1) ? fL.b : fM.b;\\n res.r = (t.r > x2) ? fR.r : res.r;\\n res.g = (t.g > x2) ? fR.g : res.g;\\n res.b = (t.b > x2) ? fR.b : res.b;\\n res.r = (t.r > x3) ? fR2.r : res.r;\\n res.g = (t.g > x3) ? fR2.g : res.g;\\n res.b = (t.b > x3) ? fR2.b : res.b;\\n res.r = (t.r > x4) ? fR3.r : res.r;\\n res.g = (t.g > x4) ? fR3.g : res.g;\\n res.b = (t.b > x4) ? fR3.b : res.b;\\n res.r = (t.r < x0) ? y0 + (t.r - x0) * m0 : res.r;\\n res.g = (t.g < x0) ? y0 + (t.g - x0) * m0 : res.g;\\n res.b = (t.b < x0) ? y0 + (t.b - x0) * m0 : res.b;\\n res.r = (t.r > x5) ? y5 + (t.r - x5) * m5 : res.r;\\n res.g = (t.g > x5) ? y5 + (t.g - x5) * m5 : res.g;\\n res.b = (t.b > x5) ? y5 + (t.b - x5) * m5 : res.b;\\n outColor.rgb = res;\\n }\\n }\\n {\\n float x0 = highlightsStart;\\n float x2 = highlightsWidth;\\n float m0 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = highlightsR;\\n val = 2. - val;\\n if (val < 1.)\\n {\\n float m2 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.r;\\n float res, tL, tR, fL, fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res = (t < x1) ? fL : fR;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x2) ? y2 + (t - x2) * m2 : res;\\n outColor.rgb.r = res;\\n }\\n else if (val > 1.)\\n {\\n float m2 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.r;\\n float res, cL, cR, discrimL, discrimR, outL, outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res = (t < y1) ? outL : outR;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y2) ? x2 + (t - y2) / m2 : res;\\n outColor.rgb.r = res;\\n }\\n }\\n {\\n float x0 = highlightsStart;\\n float x2 = highlightsWidth;\\n float m0 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = highlightsG;\\n val = 2. - val;\\n if (val < 1.)\\n {\\n float m2 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.g;\\n float res, tL, tR, fL, fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res = (t < x1) ? fL : fR;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x2) ? y2 + (t - x2) * m2 : res;\\n outColor.rgb.g = res;\\n }\\n else if (val > 1.)\\n {\\n float m2 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.g;\\n float res, cL, cR, discrimL, discrimR, outL, outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res = (t < y1) ? outL : outR;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y2) ? x2 + (t - y2) / m2 : res;\\n outColor.rgb.g = res;\\n }\\n }\\n {\\n float x0 = highlightsStart;\\n float x2 = highlightsWidth;\\n float m0 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = highlightsB;\\n val = 2. - val;\\n if (val < 1.)\\n {\\n float m2 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.b;\\n float res, tL, tR, fL, fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res = (t < x1) ? fL : fR;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x2) ? y2 + (t - x2) * m2 : res;\\n outColor.rgb.b = res;\\n }\\n else if (val > 1.)\\n {\\n float m2 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.b;\\n float res, cL, cR, discrimL, discrimR, outL, outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res = (t < y1) ? outL : outR;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y2) ? x2 + (t - y2) / m2 : res;\\n outColor.rgb.b = res;\\n }\\n }\\n {\\n float x0 = highlightsStart;\\n float x2 = highlightsWidth;\\n float m0 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = highlightsM;\\n val = 2. - val;\\n if (val < 1.)\\n {\\n float m2 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n vec3 t = outColor.rgb;\\n vec3 res;\\n vec3 tL;\\n vec3 tR;\\n vec3 fL;\\n vec3 fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res.r = (t.r < x1) ? fL.r : fR.r;\\n res.g = (t.g < x1) ? fL.g : fR.g;\\n res.b = (t.b < x1) ? fL.b : fR.b;\\n res.r = (t.r < x0) ? y0 + (t.r - x0) * m0 : res.r;\\n res.g = (t.g < x0) ? y0 + (t.g - x0) * m0 : res.g;\\n res.b = (t.b < x0) ? y0 + (t.b - x0) * m0 : res.b;\\n res.r = (t.r > x2) ? y2 + (t.r - x2) * m2 : res.r;\\n res.g = (t.g > x2) ? y2 + (t.g - x2) * m2 : res.g;\\n res.b = (t.b > x2) ? y2 + (t.b - x2) * m2 : res.b;\\n outColor.rgb = res;\\n }\\n else if (val > 1.)\\n {\\n float m2 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n vec3 t = outColor.rgb;\\n vec3 res;\\n vec3 cL;\\n vec3 cR;\\n vec3 discrimL;\\n vec3 discrimR;\\n vec3 outL;\\n vec3 outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res.r = (t.r < y1) ? outL.r : outR.r;\\n res.g = (t.g < y1) ? outL.g : outR.g;\\n res.b = (t.b < y1) ? outL.b : outR.b;\\n res.r = (t.r < y0) ? x0 + (t.r - y0) / m0 : res.r;\\n res.g = (t.g < y0) ? x0 + (t.g - y0) / m0 : res.g;\\n res.b = (t.b < y0) ? x0 + (t.b - y0) / m0 : res.b;\\n res.r = (t.r > y2) ? x2 + (t.r - y2) / m2 : res.r;\\n res.g = (t.g > y2) ? x2 + (t.g - y2) / m2 : res.g;\\n res.b = (t.b > y2) ? x2 + (t.b - y2) / m2 : res.b;\\n outColor.rgb = res;\\n }\\n }\\n {\\n float x0 = whitesStart;\\n float x1 = x0 + whitesWidth;\\n const float m0 = 1.;\\n float y0 = x0;\\n float m1 = whitesR;\\n float mtest = m1;\\n float t = outColor.rgb.r;\\n if (mtest < 1.)\\n {\\n m1 = max( 0.01, m1 );\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float tlocal = (t - x0) / (x1 - x0);\\n float res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x1) ? y1 + (t - x1) * m1 : res;\\n outColor.rgb.r = res;\\n }\\n else if (mtest > 1.)\\n {\\n m1 = 2. - m1;\\n m1 = max( 0.01, m1 );\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x0) * gain + x0;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n float c = y0 - t;\\n float discrim = sqrt( b * b - 4. * a * c );\\n float tmp = ( -2. * c ) / ( discrim + b );\\n float res = tmp * (x1 - x0) + x0;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (res - x0) / gain + x0;\\n float new_y1 = (x1 - x0) / gain + x0;\\n float xd = x0 + (x1 - x0) * 0.99;\\n float md = m0 + (xd - x0) * (m1 - m0) / (x1 - x0);\\n md = 1. / md;\\n float aa = 0.5 * (1. / m1 - md) / (x1 - xd);\\n float bb = 1. / m1 - 2. * aa * x1;\\n float cc = new_y1 - bb * x1 - aa * x1 * x1;\\n t = (t - x0) / gain + x0;\\n if (t > x1) res = (aa * t + bb) * t + cc;\\n outColor.rgb.r = res;\\n }\\n }\\n {\\n float x0 = whitesStart;\\n float x1 = x0 + whitesWidth;\\n const float m0 = 1.;\\n float y0 = x0;\\n float m1 = whitesG;\\n float mtest = m1;\\n float t = outColor.rgb.g;\\n if (mtest < 1.)\\n {\\n m1 = max( 0.01, m1 );\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float tlocal = (t - x0) / (x1 - x0);\\n float res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x1) ? y1 + (t - x1) * m1 : res;\\n outColor.rgb.g = res;\\n }\\n else if (mtest > 1.)\\n {\\n m1 = 2. - m1;\\n m1 = max( 0.01, m1 );\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x0) * gain + x0;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n float c = y0 - t;\\n float discrim = sqrt( b * b - 4. * a * c );\\n float tmp = ( -2. * c ) / ( discrim + b );\\n float res = tmp * (x1 - x0) + x0;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (res - x0) / gain + x0;\\n float new_y1 = (x1 - x0) / gain + x0;\\n float xd = x0 + (x1 - x0) * 0.99;\\n float md = m0 + (xd - x0) * (m1 - m0) / (x1 - x0);\\n md = 1. / md;\\n float aa = 0.5 * (1. / m1 - md) / (x1 - xd);\\n float bb = 1. / m1 - 2. * aa * x1;\\n float cc = new_y1 - bb * x1 - aa * x1 * x1;\\n t = (t - x0) / gain + x0;\\n if (t > x1) res = (aa * t + bb) * t + cc;\\n outColor.rgb.g = res;\\n }\\n }\\n {\\n float x0 = whitesStart;\\n float x1 = x0 + whitesWidth;\\n const float m0 = 1.;\\n float y0 = x0;\\n float m1 = whitesB;\\n float mtest = m1;\\n float t = outColor.rgb.b;\\n if (mtest < 1.)\\n {\\n m1 = max( 0.01, m1 );\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n float tlocal = (t - x0) / (x1 - x0);\\n float res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x1) ? y1 + (t - x1) * m1 : res;\\n outColor.rgb.b = res;\\n }\\n else if (mtest > 1.)\\n {\\n m1 = 2. - m1;\\n m1 = max( 0.01, m1 );\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x0) * gain + x0;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n float c = y0 - t;\\n float discrim = sqrt( b * b - 4. * a * c );\\n float tmp = ( -2. * c ) / ( discrim + b );\\n float res = tmp * (x1 - x0) + x0;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (res - x0) / gain + x0;\\n float new_y1 = (x1 - x0) / gain + x0;\\n float xd = x0 + (x1 - x0) * 0.99;\\n float md = m0 + (xd - x0) * (m1 - m0) / (x1 - x0);\\n md = 1. / md;\\n float aa = 0.5 * (1. / m1 - md) / (x1 - xd);\\n float bb = 1. / m1 - 2. * aa * x1;\\n float cc = new_y1 - bb * x1 - aa * x1 * x1;\\n t = (t - x0) / gain + x0;\\n if (t > x1) res = (aa * t + bb) * t + cc;\\n outColor.rgb.b = res;\\n }\\n }\\n {\\n float x0 = whitesStart;\\n float x1 = x0 + whitesWidth;\\n const float m0 = 1.;\\n float y0 = x0;\\n float m1 = whitesM;\\n float mtest = m1;\\n vec3 t = outColor.rgb;\\n if (mtest < 1.)\\n {\\n m1 = max( 0.01, m1 );\\n float y1 = y0 + (m0 + m1) * (x1 - x0) * 0.5;\\n vec3 tlocal = (t - x0) / (x1 - x0);\\n vec3 res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res.r = (t.r < x0) ? y0 + (t.r - x0) * m0 : res.r;\\n res.g = (t.g < x0) ? y0 + (t.g - x0) * m0 : res.g;\\n res.b = (t.b < x0) ? y0 + (t.b - x0) * m0 : res.b;\\n res.r = (t.r > x1) ? y1 + (t.r - x1) * m1 : res.r;\\n res.g = (t.g > x1) ? y1 + (t.g - x1) * m1 : res.g;\\n res.b = (t.b > x1) ? y1 + (t.b - x1) * m1 : res.b;\\n outColor.rgb = res;\\n }\\n else if (mtest > 1.)\\n {\\n m1 = 2. - m1;\\n m1 = max( 0.01, m1 );\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x0) * gain + x0;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n vec3 c = y0 - t;\\n vec3 discrim = sqrt( b * b - 4. * a * c );\\n vec3 tmp = ( -2. * c ) / ( discrim + b );\\n vec3 res = tmp * (x1 - x0) + x0;\\n res.r = (t.r < y0) ? x0 + (t.r - y0) / m0 : res.r;\\n res.g = (t.g < y0) ? x0 + (t.g - y0) / m0 : res.g;\\n res.b = (t.b < y0) ? x0 + (t.b - y0) / m0 : res.b;\\n res = (res - x0) / gain + x0;\\n float new_y1 = (x1 - x0) / gain + x0;\\n float xd = x0 + (x1 - x0) * 0.99;\\n float md = m0 + (xd - x0) * (m1 - m0) / (x1 - x0);\\n md = 1. / md;\\n float aa = 0.5 * (1. / m1 - md) / (x1 - xd);\\n float bb = 1. / m1 - 2. * aa * x1;\\n float cc = new_y1 - bb * x1 - aa * x1 * x1;\\n t = (t - x0) / gain + x0;\\n if (t.r > x1) res.r = (aa * t.r + bb) * t.r + cc;\\n if (t.g > x1) res.g = (aa * t.g + bb) * t.g + cc;\\n if (t.b > x1) res.b = (aa * t.b + bb) * t.b + cc;\\n outColor.rgb = res;\\n }\\n }\\n {\\n float x0 = shadowsWidth;\\n float x2 = shadowsStart;\\n float m2 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = shadowsR;\\n if (val < 1.)\\n {\\n float m0 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.r;\\n float res, tL, tR, fL, fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res = (t < x1) ? fL : fR;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x2) ? y2 + (t - x2) * m2 : res;\\n outColor.rgb.r = res;\\n }\\n else if (val > 1.)\\n {\\n float m0 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.r;\\n float res, cL, cR, discrimL, discrimR, outL, outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res = (t < y1) ? outL : outR;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y2) ? x2 + (t - y2) / m2 : res;\\n outColor.rgb.r = res;\\n }\\n }\\n {\\n float x0 = shadowsWidth;\\n float x2 = shadowsStart;\\n float m2 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = shadowsG;\\n if (val < 1.)\\n {\\n float m0 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.g;\\n float res, tL, tR, fL, fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res = (t < x1) ? fL : fR;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x2) ? y2 + (t - x2) * m2 : res;\\n outColor.rgb.g = res;\\n }\\n else if (val > 1.)\\n {\\n float m0 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.g;\\n float res, cL, cR, discrimL, discrimR, outL, outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res = (t < y1) ? outL : outR;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y2) ? x2 + (t - y2) / m2 : res;\\n outColor.rgb.g = res;\\n }\\n }\\n {\\n float x0 = shadowsWidth;\\n float x2 = shadowsStart;\\n float m2 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = shadowsB;\\n if (val < 1.)\\n {\\n float m0 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.b;\\n float res, tL, tR, fL, fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res = (t < x1) ? fL : fR;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x2) ? y2 + (t - x2) * m2 : res;\\n outColor.rgb.b = res;\\n }\\n else if (val > 1.)\\n {\\n float m0 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n float t = outColor.rgb.b;\\n float res, cL, cR, discrimL, discrimR, outL, outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res = (t < y1) ? outL : outR;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y2) ? x2 + (t - y2) / m2 : res;\\n outColor.rgb.b = res;\\n }\\n }\\n {\\n float x0 = shadowsWidth;\\n float x2 = shadowsStart;\\n float m2 = 1.;\\n float y0 = x0;\\n float y2 = x2;\\n float x1 = x0 + (x2 - x0) * 0.5;\\n float val = shadowsM;\\n if (val < 1.)\\n {\\n float m0 = max( 0.01, val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n vec3 t = outColor.rgb;\\n vec3 res;\\n vec3 tL;\\n vec3 tR;\\n vec3 fL;\\n vec3 fR;\\n tL = (t - x0) / (x1 - x0);\\n tR = (t - x1) / (x2 - x1);\\n fL = y0 * (1. - tL*tL) + y1 * tL*tL + m0 * (1. - tL) * tL * (x1 - x0);\\n fR = y1 * (1. - tR)*(1. - tR) + y2 * (2. - tR)*tR + m2 * (tR - 1.)*tR * (x2 - x1);\\n res.r = (t.r < x1) ? fL.r : fR.r;\\n res.g = (t.g < x1) ? fL.g : fR.g;\\n res.b = (t.b < x1) ? fL.b : fR.b;\\n res.r = (t.r < x0) ? y0 + (t.r - x0) * m0 : res.r;\\n res.g = (t.g < x0) ? y0 + (t.g - x0) * m0 : res.g;\\n res.b = (t.b < x0) ? y0 + (t.b - x0) * m0 : res.b;\\n res.r = (t.r > x2) ? y2 + (t.r - x2) * m2 : res.r;\\n res.g = (t.g > x2) ? y2 + (t.g - x2) * m2 : res.g;\\n res.b = (t.b > x2) ? y2 + (t.b - x2) * m2 : res.b;\\n outColor.rgb = res;\\n }\\n else if (val > 1.)\\n {\\n float m0 = max( 0.01, 2. - val );\\n float y1 = ( 0.5 / (x2 - x0) ) * ( (2.*y0 + m0 * (x1 - x0)) * (x2 - x1) + (2.*y2 - m2 * (x2 - x1)) * (x1 - x0) );\\n vec3 t = outColor.rgb;\\n vec3 res;\\n vec3 cL;\\n vec3 cR;\\n vec3 discrimL;\\n vec3 discrimR;\\n vec3 outL;\\n vec3 outR;\\n cL = y0 - t;\\n float bL = m0 * (x1 - x0);\\n float aL = y1 - y0 - m0 * (x1 - x0);\\n discrimL = sqrt( bL * bL - 4. * aL * cL );\\n outL = (-2. * cL) / ( discrimL + bL ) * (x1 - x0) + x0;\\n cR = y1 - t;\\n float bR = 2.*y2 - 2.*y1 - m2 * (x2 - x1);\\n float aR = y1 - y2 + m2 * (x2 - x1);\\n discrimR = sqrt( bR * bR - 4. * aR * cR );\\n outR = (-2. * cR) / ( discrimR + bR ) * (x2 - x1) + x1;\\n res.r = (t.r < y1) ? outL.r : outR.r;\\n res.g = (t.g < y1) ? outL.g : outR.g;\\n res.b = (t.b < y1) ? outL.b : outR.b;\\n res.r = (t.r < y0) ? x0 + (t.r - y0) / m0 : res.r;\\n res.g = (t.g < y0) ? x0 + (t.g - y0) / m0 : res.g;\\n res.b = (t.b < y0) ? x0 + (t.b - y0) / m0 : res.b;\\n res.r = (t.r > y2) ? x2 + (t.r - y2) / m2 : res.r;\\n res.g = (t.g > y2) ? x2 + (t.g - y2) / m2 : res.g;\\n res.b = (t.b > y2) ? x2 + (t.b - y2) / m2 : res.b;\\n outColor.rgb = res;\\n }\\n }\\n {\\n float x1 = blacksStart;\\n float x0 = x1 - blacksWidth;\\n const float m1 = 1.;\\n float y1 = x1;\\n float m0 = blacksR;\\n m0 = 2. - m0;\\n float mtest = m0;\\n float t = outColor.rgb.r;\\n if (mtest < 1.)\\n {\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float tlocal = (t - x0) / (x1 - x0);\\n float res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x1) ? y1 + (t - x1) * m1 : res;\\n outColor.rgb.r = res;\\n }\\n else if (mtest > 1.)\\n {\\n m0 = 2. - m0;\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x1) * gain + x1;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n float c = y0 - t;\\n float discrim = sqrt( b * b - 4. * a * c );\\n float tmp = ( -2. * c ) / ( discrim + b );\\n float res = tmp * (x1 - x0) + x0;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y1) ? x1 + (t - y1) / m1 : res;\\n res = (res - x1) / gain + x1;\\n outColor.rgb.r = res;\\n }\\n }\\n {\\n float x1 = blacksStart;\\n float x0 = x1 - blacksWidth;\\n const float m1 = 1.;\\n float y1 = x1;\\n float m0 = blacksG;\\n m0 = 2. - m0;\\n float mtest = m0;\\n float t = outColor.rgb.g;\\n if (mtest < 1.)\\n {\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float tlocal = (t - x0) / (x1 - x0);\\n float res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x1) ? y1 + (t - x1) * m1 : res;\\n outColor.rgb.g = res;\\n }\\n else if (mtest > 1.)\\n {\\n m0 = 2. - m0;\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x1) * gain + x1;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n float c = y0 - t;\\n float discrim = sqrt( b * b - 4. * a * c );\\n float tmp = ( -2. * c ) / ( discrim + b );\\n float res = tmp * (x1 - x0) + x0;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y1) ? x1 + (t - y1) / m1 : res;\\n res = (res - x1) / gain + x1;\\n outColor.rgb.g = res;\\n }\\n }\\n {\\n float x1 = blacksStart;\\n float x0 = x1 - blacksWidth;\\n const float m1 = 1.;\\n float y1 = x1;\\n float m0 = blacksB;\\n m0 = 2. - m0;\\n float mtest = m0;\\n float t = outColor.rgb.b;\\n if (mtest < 1.)\\n {\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float tlocal = (t - x0) / (x1 - x0);\\n float res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res = (t < x0) ? y0 + (t - x0) * m0 : res;\\n res = (t > x1) ? y1 + (t - x1) * m1 : res;\\n outColor.rgb.b = res;\\n }\\n else if (mtest > 1.)\\n {\\n m0 = 2. - m0;\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x1) * gain + x1;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n float c = y0 - t;\\n float discrim = sqrt( b * b - 4. * a * c );\\n float tmp = ( -2. * c ) / ( discrim + b );\\n float res = tmp * (x1 - x0) + x0;\\n res = (t < y0) ? x0 + (t - y0) / m0 : res;\\n res = (t > y1) ? x1 + (t - y1) / m1 : res;\\n res = (res - x1) / gain + x1;\\n outColor.rgb.b = res;\\n }\\n }\\n {\\n float x1 = blacksStart;\\n float x0 = x1 - blacksWidth;\\n const float m1 = 1.;\\n float y1 = x1;\\n float m0 = blacksM;\\n m0 = 2. - m0;\\n float mtest = m0;\\n vec3 t = outColor.rgb;\\n if (mtest < 1.)\\n {\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n vec3 tlocal = (t - x0) / (x1 - x0);\\n vec3 res = tlocal * (x1 - x0) * ( tlocal * 0.5 * (m1 - m0) + m0 ) + y0;\\n res.r = (t.r < x0) ? y0 + (t.r - x0) * m0 : res.r;\\n res.g = (t.g < x0) ? y0 + (t.g - x0) * m0 : res.g;\\n res.b = (t.b < x0) ? y0 + (t.b - x0) * m0 : res.b;\\n res.r = (t.r > x1) ? y1 + (t.r - x1) * m1 : res.r;\\n res.g = (t.g > x1) ? y1 + (t.g - x1) * m1 : res.g;\\n res.b = (t.b > x1) ? y1 + (t.b - x1) * m1 : res.b;\\n outColor.rgb = res;\\n }\\n else if (mtest > 1.)\\n {\\n m0 = 2. - m0;\\n m0 = max( 0.01, m0 );\\n float y0 = y1 - (m0 + m1) * (x1 - x0) * 0.5;\\n float gain = (m0 + m1) * 0.5;\\n t = (t - x1) * gain + x1;\\n float a = 0.5 * (m1 - m0) * (x1 - x0);\\n float b = m0 * (x1 - x0);\\n vec3 c = y0 - t;\\n vec3 discrim = sqrt( b * b - 4. * a * c );\\n vec3 tmp = ( -2. * c ) / ( discrim + b );\\n vec3 res = tmp * (x1 - x0) + x0;\\n res.r = (t.r < y0) ? x0 + (t.r - y0) / m0 : res.r;\\n res.g = (t.g < y0) ? x0 + (t.g - y0) / m0 : res.g;\\n res.b = (t.b < y0) ? x0 + (t.b - y0) / m0 : res.b;\\n res.r = (t.r > y1) ? x1 + (t.r - y1) / m1 : res.r;\\n res.g = (t.g > y1) ? x1 + (t.g - y1) / m1 : res.g;\\n res.b = (t.b > y1) ? x1 + (t.b - y1) / m1 : res.b;\\n res = (res - x1) / gain + x1;\\n outColor.rgb = res;\\n }\\n }\\n float contrast = sContrast;\\n if (contrast != 1.)\\n {\\n contrast = (contrast > 1.) ? 1. / (1.8125 - 0.8125 * min( contrast, 1.99 )) : 0.28125 + 0.71875 * max( contrast, 0.01 );\\n const float pivot = 0.400000;\\n vec3 t = outColor.rgb;\\n {\\n const float x3 = 1.000000;\\n const float y3 = 1.000000;\\n const float y0 = pivot + (y3 - pivot) * 0.25;\\n float m0 = contrast;\\n float x0 = pivot + (y0 - pivot) / m0;\\n float min_width = (x3 - x0) * 0.3;\\n float m3 = 1. / m0;\\n float center = (y3 - y0 - m3*x3 + m0*x0) / (m0 - m3);\\n float x1 = x0;\\n float x2 = 2. * center - x1;\\n if (x2 > x3)\\n {\\n x2 = x3;\\n x1 = 2. * center - x2;\\n }\\n else if ((x2 - x1) < min_width)\\n {\\n x2 = x1 + min_width;\\n float new_center = (x2 + x1) * 0.5;\\n m3 = (y3 - y0 + m0*x0 - new_center * m0) / (x3 - new_center);\\n }\\n float y1 = y0;\\n float y2 = y1 + (m0 + m3) * (x2 - x1) * 0.5;\\n outColor.rgb = (t - pivot) * contrast + pivot;\\n vec3 tR = (t - x1) / (x2 - x1);\\n vec3 res = tR * (x2 - x1) * ( tR * 0.5 * (m3 - m0) + m0 ) + y1;\\n outColor.rgb.r = (t.r > x1) ? res.r : outColor.rgb.r;\\n outColor.rgb.g = (t.g > x1) ? res.g : outColor.rgb.g;\\n outColor.rgb.b = (t.b > x1) ? res.b : outColor.rgb.b;\\n outColor.rgb.r = (t.r > x2) ? y2 + (t.r - x2) * m3 : outColor.rgb.r;\\n outColor.rgb.g = (t.g > x2) ? y2 + (t.g - x2) * m3 : outColor.rgb.g;\\n outColor.rgb.b = (t.b > x2) ? y2 + (t.b - x2) * m3 : outColor.rgb.b;\\n }\\n {\\n const float x0 = 0.000000;\\n const float y0 = 0.000000;\\n const float y3 = pivot - (pivot - y0) * 0.25;\\n float m3 = contrast;\\n float x3 = pivot - (pivot - y3) / m3;\\n float min_width = (x3 - x0) * 0.3;\\n float m0 = 1. / m3;\\n float center = (y3 - y0 - m3*x3 + m0*x0) / (m0 - m3);\\n float x2 = x3;\\n float x1 = 2. * center - x2;\\n if (x1 < x0)\\n {\\n x1 = x0;\\n x2 = 2. * center - x1;\\n }\\n else if ((x2 - x1) < min_width)\\n {\\n x1 = x2 - min_width;\\n float new_center = (x2 + x1) * 0.5;\\n m0 = (y3 - y0 - m3*x3 + new_center * m3) / (new_center - x0);\\n }\\n float y2 = y3;\\n float y1 = y2 - (m0 + m3) * (x2 - x1) * 0.5;\\n vec3 tR = (t - x1) / (x2 - x1);\\n vec3 res = tR * (x2 - x1) * ( tR * 0.5 * (m3 - m0) + m0 ) + y1;\\n outColor.rgb.r = (t.r < x2) ? res.r : outColor.rgb.r;\\n outColor.rgb.g = (t.g < x2) ? res.g : outColor.rgb.g;\\n outColor.rgb.b = (t.b < x2) ? res.b : outColor.rgb.b;\\n outColor.rgb.r = (t.r < x1) ? y1 + (t.r - x1) * m0 : outColor.rgb.r;\\n outColor.rgb.g = (t.g < x1) ? y1 + (t.g - x1) * m0 : outColor.rgb.g;\\n outColor.rgb.b = (t.b < x1) ? y1 + (t.b - x1) * m0 : outColor.rgb.b;\\n }\\n }\\n outColor = min( outColor, 65504. );\\n }\\n \\n // Add CDL 'FwdNoClamp' processing\\n \\n {\\n vec3 lumaWeights = vec3(0.212599993, 0.715200007, 0.0722000003);\\n vec3 slope = vec3(1., 1., 1.);\\n vec3 offset = vec3(0., 0., 0.);\\n vec3 power = vec3(1.09119999, 1.09119999, 1.09119999);\\n float saturation = 1.;\\n outColor.rgb = outColor.rgb * slope;\\n outColor.rgb = outColor.rgb + offset;\\n vec3 posPix = step(0.0, outColor.rgb);\\n vec3 pixPower = pow(abs(outColor.rgb), power);\\n outColor.rgb = mix(outColor.rgb, pixPower, posPix);\\n float luma = dot(outColor.rgb, lumaWeights);\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Greyscale":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Range processing\\n \\n {\\n outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.25892353556898479, 0.25892353556898479, 0.25892353556898479, 0., 0.61049853460665249, 0.61049853460665249, 0.61049853460665249, 0., 0.13057792982436284, 0.13057792982436284, 0.13057792982436284, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Range processing\\n \\n {\\n outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Very High Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingPrimary 'log' forward processing\\n \\n {\\n vec3 brightness = vec3(0., 0., 0.);\\n vec3 contrast = vec3(1.57000005, 1.57000005, 1.57000005);\\n vec3 gamma = vec3(1., 1., 1.);\\n const float pivot = 0.400000006;\\n const float pivotBlack = 0.;\\n const float pivotWhite = 1.;\\n const float clampBlack = -3.40282347e+38;\\n const float clampWhite = 3.40282347e+38;\\n const float saturation = 0.899999976;\\n outColor.rgb += brightness;\\n outColor.rgb = ( outColor.rgb - pivot ) * contrast + pivot;\\n if ( gamma != vec3(1., 1., 1.) )\\n {\\n vec3 normalizedOut = abs(outColor.rgb - pivotBlack) / (pivotWhite - pivotBlack);\\n vec3 scale = sign(outColor.rgb - pivotBlack) * (pivotWhite - pivotBlack);\\n outColor.rgb = pow( normalizedOut, gamma ) * scale + pivotBlack;\\n }\\n vec3 lumaWgts = vec3(0.212599993, 0.715200007, 0.0722000003);\\n float luma = dot( outColor.rgb, lumaWgts );\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n outColor.rgb = clamp( outColor.rgb, clampBlack, clampWhite );\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - High Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingPrimary 'log' forward processing\\n \\n {\\n vec3 brightness = vec3(0., 0., 0.);\\n vec3 contrast = vec3(1.39999998, 1.39999998, 1.39999998);\\n vec3 gamma = vec3(1., 1., 1.);\\n const float pivot = 0.400000006;\\n const float pivotBlack = 0.;\\n const float pivotWhite = 1.;\\n const float clampBlack = -3.40282347e+38;\\n const float clampWhite = 3.40282347e+38;\\n const float saturation = 0.949999988;\\n outColor.rgb += brightness;\\n outColor.rgb = ( outColor.rgb - pivot ) * contrast + pivot;\\n if ( gamma != vec3(1., 1., 1.) )\\n {\\n vec3 normalizedOut = abs(outColor.rgb - pivotBlack) / (pivotWhite - pivotBlack);\\n vec3 scale = sign(outColor.rgb - pivotBlack) * (pivotWhite - pivotBlack);\\n outColor.rgb = pow( normalizedOut, gamma ) * scale + pivotBlack;\\n }\\n vec3 lumaWgts = vec3(0.212599993, 0.715200007, 0.0722000003);\\n float luma = dot( outColor.rgb, lumaWgts );\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n outColor.rgb = clamp( outColor.rgb, clampBlack, clampWhite );\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Medium High Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingPrimary 'log' forward processing\\n \\n {\\n vec3 brightness = vec3(0., 0., 0.);\\n vec3 contrast = vec3(1.20000005, 1.20000005, 1.20000005);\\n vec3 gamma = vec3(1., 1., 1.);\\n const float pivot = 0.400000006;\\n const float pivotBlack = 0.;\\n const float pivotWhite = 1.;\\n const float clampBlack = -3.40282347e+38;\\n const float clampWhite = 3.40282347e+38;\\n const float saturation = 1.;\\n outColor.rgb += brightness;\\n outColor.rgb = ( outColor.rgb - pivot ) * contrast + pivot;\\n if ( gamma != vec3(1., 1., 1.) )\\n {\\n vec3 normalizedOut = abs(outColor.rgb - pivotBlack) / (pivotWhite - pivotBlack);\\n vec3 scale = sign(outColor.rgb - pivotBlack) * (pivotWhite - pivotBlack);\\n outColor.rgb = pow( normalizedOut, gamma ) * scale + pivotBlack;\\n }\\n vec3 lumaWgts = vec3(0.212599993, 0.715200007, 0.0722000003);\\n float luma = dot( outColor.rgb, lumaWgts );\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n outColor.rgb = clamp( outColor.rgb, clampBlack, clampWhite );\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Base Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Range processing\\n \\n {\\n outColor.rgb = max(vec3(0., 0., 0.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Medium Low Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingPrimary 'log' forward processing\\n \\n {\\n vec3 brightness = vec3(0., 0., 0.);\\n vec3 contrast = vec3(0.899999976, 0.899999976, 0.899999976);\\n vec3 gamma = vec3(1., 1., 1.);\\n const float pivot = 0.400000006;\\n const float pivotBlack = 0.;\\n const float pivotWhite = 1.;\\n const float clampBlack = -3.40282347e+38;\\n const float clampWhite = 3.40282347e+38;\\n const float saturation = 1.04999995;\\n outColor.rgb += brightness;\\n outColor.rgb = ( outColor.rgb - pivot ) * contrast + pivot;\\n if ( gamma != vec3(1., 1., 1.) )\\n {\\n vec3 normalizedOut = abs(outColor.rgb - pivotBlack) / (pivotWhite - pivotBlack);\\n vec3 scale = sign(outColor.rgb - pivotBlack) * (pivotWhite - pivotBlack);\\n outColor.rgb = pow( normalizedOut, gamma ) * scale + pivotBlack;\\n }\\n vec3 lumaWgts = vec3(0.212599993, 0.715200007, 0.0722000003);\\n float luma = dot( outColor.rgb, lumaWgts );\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n outColor.rgb = clamp( outColor.rgb, clampBlack, clampWhite );\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Low Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingPrimary 'log' forward processing\\n \\n {\\n vec3 brightness = vec3(0., 0., 0.);\\n vec3 contrast = vec3(0.800000012, 0.800000012, 0.800000012);\\n vec3 gamma = vec3(1., 1., 1.);\\n const float pivot = 0.400000006;\\n const float pivotBlack = 0.;\\n const float pivotWhite = 1.;\\n const float clampBlack = -3.40282347e+38;\\n const float clampWhite = 3.40282347e+38;\\n const float saturation = 1.10000002;\\n outColor.rgb += brightness;\\n outColor.rgb = ( outColor.rgb - pivot ) * contrast + pivot;\\n if ( gamma != vec3(1., 1., 1.) )\\n {\\n vec3 normalizedOut = abs(outColor.rgb - pivotBlack) / (pivotWhite - pivotBlack);\\n vec3 scale = sign(outColor.rgb - pivotBlack) * (pivotWhite - pivotBlack);\\n outColor.rgb = pow( normalizedOut, gamma ) * scale + pivotBlack;\\n }\\n vec3 lumaWgts = vec3(0.212599993, 0.715200007, 0.0722000003);\\n float luma = dot( outColor.rgb, lumaWgts );\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n outColor.rgb = clamp( outColor.rgb, clampBlack, clampWhite );\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"AgX/AgX - Very Low Contrast":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\nuniform sampler3D blender_lut3d_1Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.55937113331007726, 0.076220705483506221, 0.065526711778770175, 0., 0.30478334662300893, 0.78797177010284647, 0.16454675460372412, 0., 0.13584556048047711, 0.1358074661747215, 0.76992650165037446, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(36., 36., 36.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(37., 37., 37.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.0270270277);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0270270277);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0270270277, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.0270270277);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0270270277, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0270270277, 0.0270270277, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(0.96797150353695682, 0.13181009198676014, 0.046878652950633655, 0., 0.11789008541573694, 0.91607837651128576, 0.012432801782063633, 0., -0.085861625689108531, -0.047888564165671443, 0.94068860851626579, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add GradingPrimary 'log' forward processing\\n \\n {\\n vec3 brightness = vec3(0., 0., 0.);\\n vec3 contrast = vec3(0.699999988, 0.699999988, 0.699999988);\\n vec3 gamma = vec3(1., 1., 1.);\\n const float pivot = 0.400000006;\\n const float pivotBlack = 0.;\\n const float pivotWhite = 1.;\\n const float clampBlack = -3.40282347e+38;\\n const float clampWhite = 3.40282347e+38;\\n const float saturation = 1.14999998;\\n outColor.rgb += brightness;\\n outColor.rgb = ( outColor.rgb - pivot ) * contrast + pivot;\\n if ( gamma != vec3(1., 1., 1.) )\\n {\\n vec3 normalizedOut = abs(outColor.rgb - pivotBlack) / (pivotWhite - pivotBlack);\\n vec3 scale = sign(outColor.rgb - pivotBlack) * (pivotWhite - pivotBlack);\\n outColor.rgb = pow( normalizedOut, gamma ) * scale + pivotBlack;\\n }\\n vec3 lumaWgts = vec3(0.212599993, 0.715200007, 0.0722000003);\\n float luma = dot( outColor.rgb, lumaWgts );\\n outColor.rgb = luma + saturation * (outColor.rgb - luma);\\n outColor.rgb = clamp( outColor.rgb, clampBlack, clampWhite );\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(25., 25., 25., 1.) * res;\\n res = vec4(-12.4739304, -12.4739304, -12.4739304, -0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log 'Anti-Log' processing\\n \\n {\\n outColor.rgb = pow( vec3(2., 2., 2.), outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n vec4 tmp = res;\\n res = mat4(1.0473107847120087, -0.15331493679326946, -0.050165787234335076, 0., -0.13598180076490973, 1.1107622300653881, -0.0079040427623260339, 0., 0.088671035909937621, 0.042552804668204332, 1.0580697604757736, 0., 0., 0., 0., 1.) * tmp;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0400000028, 0.0400000028, 0.0400000028, 1.) * res;\\n res = vec4(0.498957247, 0.498957247, 0.498957247, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_1\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_1Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_1Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'basicFwd' processing\\n \\n {\\n vec4 gamma = vec4(2.3999999999999999, 2.3999999999999999, 2.3999999999999999, 1.);\\n vec4 res = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma );\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4357496,"count":151959,"linear":false,"size":37,"channels":3},{"sampler":"blender_lut3d_1Sampler","offset":2135180,"count":555579,"linear":false,"size":57,"channels":3}]},"Khronos PBR Neutral/None":{"shader":"\\n// Declaration of all textures\\n\\nuniform sampler3D blender_lut3d_0Sampler;\\n\\n// Declaration of the OCIO shader function\\n\\nvec4 blenderDisplay(vec4 inPixel)\\n{\\n vec4 outColor = inPixel;\\n \\n // Add Log processing\\n \\n {\\n outColor.rgb = max( vec3(1.17549435e-38, 1.17549435e-38, 1.17549435e-38), outColor.rgb);\\n outColor.rgb = log2(outColor.rgb);\\n }\\n \\n // Add Matrix processing\\n \\n {\\n vec4 res = vec4(outColor.rgb.r, outColor.rgb.g, outColor.rgb.b, outColor.a);\\n res = vec4(0.0526315793, 0.0526315793, 0.0526315793, 1.) * res;\\n res = vec4(0.473684222, 0.473684222, 0.473684222, 0.) + res;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n \\n // Add LUT 3D processing for blender_lut3d_0\\n \\n {\\n vec3 coords = outColor.rgb * vec3(56., 56., 56.); \\n vec3 baseInd = floor(coords);\\n vec3 frac = coords - baseInd;\\n vec3 f1, f4;\\n baseInd = ( baseInd.zyx + vec3(0.5, 0.5, 0.5) ) / vec3(57., 57., 57.);\\n vec3 v1 = texture(blender_lut3d_0Sampler, baseInd).rgb;\\n vec3 nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.0175438598);\\n vec3 v4 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n if (frac.r >= frac.g)\\n {\\n if (frac.g >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n vec3 f3 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0., 0.0175438598);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.r, 1. - frac.r, 1. - frac.r);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n vec3 f3 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.g, frac.g, frac.g);\\n vec3 f2 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n vec3 f3 = vec3(frac.r - frac.g, frac.r - frac.g, frac.r - frac.g);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n else\\n {\\n if (frac.g <= frac.b)\\n {\\n nextInd = baseInd + vec3(0.0175438598, 0., 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.b, 1. - frac.b, 1. - frac.b);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.b - frac.g, frac.b - frac.g, frac.b - frac.g);\\n vec3 f3 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else if (frac.r >= frac.b)\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.0175438598);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.b, frac.b, frac.b);\\n vec3 f2 = vec3(frac.g - frac.r, frac.g - frac.r, frac.g - frac.r);\\n vec3 f3 = vec3(frac.r - frac.b, frac.r - frac.b, frac.r - frac.b);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n else\\n {\\n nextInd = baseInd + vec3(0., 0.0175438598, 0.);\\n vec3 v2 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n nextInd = baseInd + vec3(0.0175438598, 0.0175438598, 0.);\\n vec3 v3 = texture(blender_lut3d_0Sampler, nextInd).rgb;\\n f1 = vec3(1. - frac.g, 1. - frac.g, 1. - frac.g);\\n f4 = vec3(frac.r, frac.r, frac.r);\\n vec3 f2 = vec3(frac.g - frac.b, frac.g - frac.b, frac.g - frac.b);\\n vec3 f3 = vec3(frac.b - frac.r, frac.b - frac.r, frac.b - frac.r);\\n outColor.rgb = (f2 * v2) + (f3 * v3);\\n }\\n }\\n outColor.rgb = outColor.rgb + (f1 * v1) + (f4 * v4);\\n }\\n \\n // Add Gamma 'monCurveRev' processing\\n \\n {\\n vec4 breakPnt = vec4(0.00303993467, 0.00303993467, 0.00303993467, 1.);\\n vec4 slope = vec4(12.9232101, 12.9232101, 12.9232101, 1.);\\n vec4 scale = vec4(1.05499995, 1.05499995, 1.05499995, 1.00000095);\\n vec4 offset = vec4(0.0549999997, 0.0549999997, 0.0549999997, 9.99999997e-07);\\n vec4 gamma = vec4(0.416666657, 0.416666657, 0.416666657, 0.999998987);\\n vec4 isAboveBreak = vec4(greaterThan( outColor, breakPnt));\\n vec4 linSeg = outColor * slope;\\n vec4 powSeg = pow( max( vec4(0., 0., 0., 0.), outColor ), gamma ) * scale - offset;\\n vec4 res = isAboveBreak * powSeg + ( vec4(1., 1., 1., 1.) - isAboveBreak ) * linSeg;\\n outColor.rgb = vec3(res.x, res.y, res.z);\\n outColor.a = res.w;\\n }\\n\\n return outColor;\\n}\\n","textures":[{"sampler":"blender_lut3d_0Sampler","offset":4965332,"count":555579,"linear":false,"size":57,"channels":3}]}}`),De={processors:ke};function Tr(e){return{transform:{none:"Standard",filmic:"Filmic",agx:"AgX",neutral:"Khronos PBR Neutral"}[e.toneMapping],look:e.look??"None",exposure:e.exposure,gamma:e.gamma??1}}const jr=De.processors;let Mr=null;function Be(){return Mr??=fetch(new URL("/assets/blender-display-shaders-BpnqnkG8.lut",import.meta.url)).then(async e=>{if(!e.ok)throw new Error(`Blender display tables: ${e.status}`);return e.arrayBuffer()}).catch(e=>{throw Mr=null,e})}class Pe{constructor(r,n){this.textures=[];const t=jr[`${r.transform}/${r.look}`];if(!t)throw new Error(`Unimplemented Blender display transform: ${r.transform}, ${r.look}`);const a={frame:{value:null},exposure:{value:r.exposure},exponent:{value:1/Math.max(1e-7,r.gamma)},straightAlpha:{value:!1}};for(const c of t.textures)if(c.offset+c.count*4>n.byteLength)throw new Error("Invalid Blender display table");for(const c of t.textures){const o=new Float32Array(n,c.offset,c.count);let f;c.size?f=new te(o,c.size,c.size,c.size):f=new fr(o,c.width,c.height),f.type=oe,f.format=c.channels===1?fe:le,f.internalFormat=c.channels===1?"R32F":"RGB32F",f.minFilter=f.magFilter=c.linear?se:be,f.wrapS=f.wrapT=ve,f.unpackAlignment=1,f.needsUpdate=!0,this.textures.push(f),a[c.sampler]={value:f}}this.material=new de({name:"Blender OCIO display",glslVersion:ue,depthTest:!1,depthWrite:!1,blending:ge,uniforms:a,vertexShader:`precision highp float; in vec3 position; in vec2 uv; out vec2 vUv;
|
|
5
|
-
void main(){vUv=uv;gl_Position=vec4(position,1.0);}`,fragmentShader:`precision highp float; precision highp sampler3D;
|
|
6
|
-
uniform sampler2D frame; uniform float exposure; uniform float exponent;
|
|
7
|
-
uniform bool straightAlpha; in vec2 vUv; out vec4 outputColor;
|
|
8
|
-
${t.shader}
|
|
9
|
-
void main() {
|
|
10
|
-
vec4 pixel=texture(frame,vUv);
|
|
11
|
-
vec3 linear=pixel.rgb*(pixel.a==0.0 ? exposure : exposure/pixel.a);
|
|
12
|
-
vec3 display=clamp(pow(max(blenderDisplay(vec4(linear,1.0)).rgb,vec3(0.0)),vec3(exponent)),0.0,1.0);
|
|
13
|
-
outputColor=vec4(straightAlpha ? display : display*pixel.a,pixel.a);
|
|
14
|
-
}`}),this.quad=new ne(this.material)}render(r,n,t,a){this.material.uniforms.frame.value=n.texture,this.material.uniforms.straightAlpha.value=a,r.setRenderTarget(t),this.quad.render(r)}encodeFrame(r,n,t,a){const c=r.getRenderTarget(),o=new fr(n,t,a,Pr,Y);o.needsUpdate=!0;const f=new J(t,a);try{this.render(r,{texture:o},f,!0);const s=new Uint8Array(t*a*4);return r.readRenderTargetPixels(f,0,0,t,a,s),s}finally{r.setRenderTarget(c),o.dispose(),f.dispose()}}dispose(){for(const r of this.textures)r.dispose();this.material.dispose(),this.quad.dispose()}}async function Or(e){if(!jr[`${e.transform}/${e.look}`])throw new Error(`Unimplemented Blender display transform: ${e.transform}, ${e.look}`);return new Pe(e,await Be())}function Er(e,r,n,t){if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<1||n.height<1)throw new Error("Scene capture requires finite positive dimensions");const a=Math.min(2048,Math.round(n.width)),c=Math.min(2048,Math.round(n.height)),o=t?1:2,f=a*o,s=c*o,b=Br(),l=b.renderer,i={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new xe),clearAlpha:l.getClearAlpha(),background:e.background};let g,d,I,p=!1;try{g=new J(f,s,{type:Y}),n.effect&&(g.depthTexture=new ie(f,s)),l.shadowMap.enabled=!0,l.shadowMap.type=me,l.outputColorSpace=pe,l.toneMapping=n.toneMapping??Vr,l.toneMappingExposure=n.exposure??1,l.setClearColor(0,n.transparent?0:1),n.transparent&&(e.background=null),l.setRenderTarget(g),l.clear(),l.render(e,r);const _=n.effect?.render(l,g,e,r)??g;if(_.texture.type!==Y||_.width!==f||_.height!==s)throw new Error("Scene capture effect must return a same-size half-float target");if(t){const x=new Uint16Array(f*s*4);return l.readRenderTargetPixels(_,0,0,f,s,x),p=!0,{pixels:x,width:a,height:c}}d=new J(n.displayTransform?a:f,n.displayTransform?c:s),n.displayTransform?(I=we(l,_,a,c),n.displayTransform.render(l,I,d,n.transparent===!0)):ce(n.transparent===!0).render(l,d,_,0,!1);const y=new Uint8Array(d.width*d.height*4);l.readRenderTargetPixels(d,0,0,d.width,d.height,y);const P=document.createElement("canvas");P.width=d.width,P.height=d.height;const k=P.getContext("2d");if(!k)throw new Error("Scene capture could not create an image canvas");const C=k.createImageData(d.width,d.height),A=d.width*4;for(let x=0;x<d.height;x++)C.data.set(y.subarray((d.height-1-x)*A,(d.height-x)*A),x*A);k.putImageData(C,0,0);const R=document.createElement("canvas");R.width=a,R.height=c;const z=R.getContext("2d");if(!z)throw new Error("Scene capture could not create an output canvas");z.drawImage(P,0,0,a,c);const M=R.toDataURL("image/png");return p=!0,M}finally{e.background=i.background,l.setRenderTarget(i.target),l.toneMapping=i.toneMapping,l.toneMappingExposure=i.exposure,l.outputColorSpace=i.colorSpace,l.shadowMap.enabled=i.shadows,l.shadowMap.type=i.shadowType,l.setClearColor(i.clearColor,i.clearAlpha),d?.dispose(),I?.dispose(),g?.dispose(),b.release({discard:!p})}}function Ve(e,r,n){return Er(e,r,n,!0)}function Te(e,r,n){return Er(e,r,n,!1)}function je(e,r){const n=Br(),t=n.renderer,a=t.getRenderTarget(),c=new fr(e.pixels,e.width,e.height,Pr,Y);c.needsUpdate=!0;const o=new J(e.width,e.height);let f=!1;try{r.render(t,{texture:c},o,!0);const s=new Uint8Array(e.width*e.height*4);return t.readRenderTargetPixels(o,0,0,e.width,e.height,s),f=!0,s}finally{t.setRenderTarget(a),c.dispose(),o.dispose(),n.release({discard:!f})}}const Oe=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.objectForBlenderName=="function"&&typeof e.blenderObjectName=="function"&&typeof e.blenderSelection=="function"&&typeof e.setStageMode=="function";function xr(){const e=u().documents.context(Nr());return Oe(e)?e:null}function Ee(){return xr()?.blenderSelection()??{selected:[],active:null}}const We={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let lr=We,Wr=0;const sr=new Set;let j=null,Z=null,ir="",O=null;function Ue(e){const r=new Map,n=new Map,t=(a,c)=>{r.set(a.id,a),n.set(a.id,c);for(const o of a.children)t(o,a.id)};for(const a of e?.rows??[])t(a,null);return{byId:r,parentOf:n}}function N(e){lr={...lr,...e},Wr+=1;for(const r of[...sr])r()}function ln(e){return sr.add(e),()=>{sr.delete(e)}}function sn(){return Wr}function bn(){return lr}function mr(e){O!==e&&(O=e,setTimeout(()=>{O===e&&(O=null,Ur(e===""?[]:e.split("\0")))},0))}let ar=0,br=Promise.resolve();function Ur(e){const r=Fe(e);return br=r,r}async function Fe(e){const r=e.join("\0"),n=++ar;Z=r,ir=r,N({loading:!0});try{const t=await Qe(e);if(n!==ar)return;xr()?.setStageMode(t?.mode??null),N({tree:t,...Ue(t),loading:!1,error:null})}catch(t){if(n!==ar)return;N({loading:!1,error:Fr(t)})}}function $e(){Z=null,mr(ir);for(const e of[...vr])e()}const vr=new Set;function vn(e){return pr(),vr.add(e),()=>{vr.delete(e)}}let q=!1,tr=null;function pr(){const e=xr();if(j!==null&&tr===e)return;j!==null&&(j(),j=null,tr=null);const r=e;if(r!==null){j=r.subscribeFrames($e),tr=r;return}q||(q=!0,u().documents.waitForContext(Nr()).then(()=>{q=!1,pr()}).catch(()=>{q=!1}))}function dn(e){if(!w())return;pr();const r=[...e].sort().join("\0");Z!==r&&mr(r)}async function Ge(e){if(!w())return;O=null;let r=Ur([...e].sort());for(;;){if(await r,br===r)return;r=br}}async function gn(e,r,n){try{return await Hr(e,r,n),Z=null,mr(ir),!0}catch(t){return N({error:Fr(t)}),!1}}function Fr(e){return e instanceof Error?e.message:String(e)}const qe={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let dr=qe,_r=0;const Q=new Set;let $r=0;function or(){return dr}function un(){return _r}function xn(e){return Q.add(e),()=>{Q.delete(e)}}function E(e){dr={...dr,...e},_r+=1;for(const r of[...Q])r()}function Ne(){$r+=1,_r+=1;for(const e of[...Q])e()}function mn(){return $r}function V(e){E({refusal:e})}function Xe(e){const r=atob(e),n=new Uint8Array(r.length);for(let t=0;t<r.length;t++)n[t]=r.charCodeAt(t);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function Gr(e,r){const n=r.linearInput,t=n?{pixels:Xe(n.base64),width:n.width,height:n.height}:e;if(!t)throw new Error("Blender display transform requires a linear capture");const{pixels:a,width:c,height:o}=t,f=await Or(Tr(r));let s;try{s=je(t,f)}finally{f.dispose()}const b=document.createElement("canvas");b.width=c,b.height=o;const l=b.getContext("2d");if(!l)throw new Error("Blender display transform could not create its image canvas");const i=l.createImageData(c,o),g=c*4;for(let p=0;p<o;p++){const _=(o-1-p)*g;i.data.set(s.subarray(_,_+g),p*g)}l.putImageData(i,0,0);const d=b.toDataURL("image/png"),I={base64:d.slice(d.indexOf(",")+1),mimeType:"image/png"};if(r.linear===!0){const p=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);let _="";for(let y=0;y<p.length;y+=32768)_+=String.fromCharCode(...p.subarray(y,y+32768));I.linearBase64=btoa(_),I.linearWidth=c,I.linearHeight=o}return I}async function He(e,r,n,t,a=()=>{}){await n.prepare(r),a();const c={effect:n.effect,width:t.width,height:t.height,transparent:t.transparent===!0,toneMapping:Vr,exposure:1};if(t.linear===!0){const f=await Gr(Ve(e,r,c),t);return a(),f}const o=await Or(Tr(t));try{a();const f=Te(e,r,{...c,displayTransform:o});return{base64:f.slice(f.indexOf(",")+1),mimeType:"image/png"}}finally{o.dispose()}}const qr="document:blender:runtime";let S=null,zr=0;function pn(e){const r=++zr;return S=e,T(),()=>{zr===r&&(S=null,T())}}function X(){const e=v?.document,r=u().documents.activeId(),n=r?.startsWith("document:model:")?r.slice(15):S?.blend;return!n||!e||n===e?null:`Blender is editing ${e}, but the editor is showing ${n}, which Blender has not loaded. Wait for ${n} to finish opening and retry. If it stays, switch to another document and back, or reload the page; or return to ${e}.`}function L(){return S?.documentId??qr}function Nr(){return L()}function B(e){if(S!==e)return!1;const r=u().documents.activeId();return!(r?.startsWith("document:model:")||r===qr)||r===e.documentId}function _n(e,r,n,t){const a=S,c=v?.presented;return u().session.open()&&!!a&&a.documentId===e&&a.entryId===r&&a.blend===n&&B(a)&&v?.project===u().projectLocalState.projectRootPath()&&v.document===n&&!!t&&!!c&&t.session===c.session&&t.revision===c.revision}let kr=Promise.resolve(),H=null;function Ir(e){const r=kr.then(e);return kr=r.then(()=>{},()=>{}),r}async function In(e,r){let n=!1;const t=()=>{n||(r(),n=!0)},a=u(),c=H;return c&&c.session===v&&a.session.open()&&c.project===a.projectLocalState.projectRootPath()&&c.blend===e.blend&&B(e)&&t(),Ir(()=>Ke(e,t))}async function Ke(e,r){const n=u();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const t=n.projectLocalState.projectRootPath();if(t===null)throw new Error("Opening a model requires a project path.");if(!B(e))return!1;const a=v;if(a&&(a.project!==t||a.document!==e.blend)){const l=W("saving previous model before opening another");try{await a.stop()}finally{l()}if(v===a&&Cr(),!n.session.open()||!B(e))return!1}const c=m(),o=c.start(t,e.blend),f={session:c,project:t,blend:e.blend};H=f;try{r(),await o}finally{H===f&&(H=null)}if(!n.session.open()||!B(e))return!1;const s=(await U()).snapshot();if(!n.session.open()||!B(e))return!1;const b=c.presented;return(!s||!b||s.session!==b.session||s.revision!==b.revision)&&await c.present(),n.session.open()&&B(e)}function w(){return v?.project!=null&&X()===null}let Xr=0;const gr=new Set;function Cn(){return Xr}function hn(e){return gr.add(e),()=>{gr.delete(e)}}function T(){Xr+=1;for(const e of[...gr])e()}async function yn(e,r){return w()?m().rna(e,r):null}async function Sn(e,r){return w()?m().rnaContext(e,r):null}async function Ye(e,r,n,t,a=!0){if(!w())return null;const c=await m().rnaSet(e,r,n,t,a);return T(),c}async function wn(e){w()&&await m().viewShading(e)}async function Je(e,r=!0,n="Blender Python"){const t=await m().execute(e,r,n);T();const a=/^Error executing code:/.exec(t);return{text:t,executed:a===null,result:a===null?t.replace(/^Code executed successfully: ?/,""):"",error:a===null?null:t.replace(/^Error executing code: ?/,"")}}function Ln(){m().historyGesture("history-begin").catch(e=>u().console.error(`Could not begin Blender undo gesture: ${String(e)}`,"blender-history"))}async function Rn(){await m().historyGesture("history-end")}async function Qe(e){return w()?m().outliner(e):null}async function An(e){return w()?m().nodeTree(e):null}async function Mn(e){return w()?m().uvLayout(e):null}async function zn(e){return w()?m().rig(e):null}async function kn(e){return w()?m().actionClip(e):null}async function Hr(e,r,n){if(!w())return null;const t=await m().outlinerSet(e,r,n);return T(),t}const Ze={view:"blender-node-view",title:"Node Editor",verbs:[["state",void 0],["look",void 0],["view-all","Node Editor: Frame All"],["zoom",void 0],["pan",void 0],["move",void 0],["link",void 0],["set-value",void 0],["use-nodes",void 0],["collapse-panel",void 0]].map(([e,r])=>({id:e,...r?{title:r}:{},run:n=>Kr({...n,action:e})}))};function Kr(e){const r=typeof e.action=="string"?e.action:"state";switch(r){case"state":break;case"look":E({looked:typeof e.node=="string"?e.node:null,refusal:null});break;case"view-all":Ne(),E({refusal:null});break;case"zoom":{const n=typeof e.zoom=="number"?e.zoom:1;E({transform:{...or().transform,zoom:n},refusal:null});break}case"pan":{const n=or().transform;E({transform:{...n,cx:typeof e.cx=="number"?e.cx:n.cx,cy:typeof e.cy=="number"?e.cy:n.cy},refusal:null});break}case"move":V(`Moving "${String(e.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":V("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":V(`Changing "${String(e.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":V("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":V(`Collapsing "${String(e.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:V(`blender-node-view: no action "${r}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return or()}let v=null;const K=new Set;function Yr(){K.size&&u().history.invalidate([...K]),K.clear()}let ur=null,Dr=!1;function W(e){try{const r=u().session.beginWork(`Blender: ${e}`);return()=>{try{r()}catch{}}}catch{return()=>{}}}function Cr(){const e=W("invalidating history and releasing runtime");try{Yr(),ur?.abort(),ur=null,v?.terminate(),v=null,Qr=null}finally{e()}}function rn(){Dr||(Dr=!0,u().session.onBeforeClose(()=>Ir(Jr)),u().session.onEnded(Cr))}async function Jr(){const e=v;await e?.stop(),v===e&&Cr()}let Qr=null;const en=e=>typeof e=="object"&&e!==null&&typeof e.applyFrame=="function"&&typeof e.stageFrame=="function"&&typeof e.snapshot=="function"&&typeof e.captureSnapshot=="function"&&typeof e.recordPresentation=="function"&&typeof e.recordPhotograph=="function";async function U(){const{documents:e}=u(),r=Date.now()+15e3;let n=L(),t="no context";for(;;){n=L();const a=await e.waitForContext(n,Math.max(0,Math.min(250,r-Date.now())));if(en(a))return a;if(a!==void 0){const c=["applyFrame","stageFrame","snapshot","captureSnapshot","recordPresentation","recordPhotograph"],o=a;t=`${typeof a} context missing ${c.filter(f=>typeof o?.[f]!="function").join(", ")}`,await new Promise(f=>setTimeout(f,Math.max(0,Math.min(25,r-Date.now()))))}if(Date.now()>=r)break}throw new Error(`The Blender Model document is not open, or the open one is not a Model this engine can present to (it must answer stageFrame, applyFrame, captureSnapshot, recordPresentation and recordPhotograph): nothing published a presentable view as ${n} within 15 s (bound model: ${S?.documentId??"none"}; last publication: ${t}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function m(){const e=X();if(e)throw new Error(e);if(v!==null)return v;rn();const r=new AbortController;ur=r;let n=!1,t=null;const a=()=>{const o=t;t=null,o&&o.view.stageFrame({session:o.session,revision:o.revision,abort:!0})};v=new ze({work:W,history:o=>{const f=v;if(!f)throw new Error("Blender history arrived before its runtime");for(const s of o){if("reset"in s){Yr();continue}if(!s.resource)throw new Error("A Blender edit has no document resource");K.add(s.resource);const b=async l=>{if(v!==f)throw new Error("This Blender history belongs to a closed worker");const i=await f.historyStep(s.id,l);return T(),await Ge(Ee().selected),i};u().history.record({id:s.id,label:s.label,resources:[s.resource],document:L(),undo:()=>b("undo"),redo:()=>b("redo")})}},stage:async o=>{if(o.abort){a();return}const f=X();if(f)throw new Error(f);if(S===null){a();return}const s=L(),b=await U();if(r.signal.throwIfAborted(),L()!==s)throw new Error("Blender document changed during frame transfer");if(t&&t.view!==b)throw new Error("Blender presenter changed during frame transfer");b.stageFrame(o),t={view:b,session:o.session,revision:o.revision}},present:async(o,f,s)=>{const b=X();if(b)throw new Error(b);if(S===null){if(a(),s?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const l=L(),i=W("waiting for Model presenter");let g;try{g=await U()}finally{i()}if(r.signal.throwIfAborted(),L()!==l)throw new Error("Blender document changed before its frame could be presented");if(t&&t.view!==g)throw new Error("Blender presenter changed before its frame could be presented");const d=W("applying frame to Model"),I=(()=>{try{return g.applyFrame(o)}finally{d()}})();t=null;const p=typeof I=="object"&&I!==null&&"held"in I,_=p?I.held:null,y=x=>({...x===void 0?{}:{capture:x},...p?{held:_}:{}});if(g.recordPresentation(f),!s||(Qr=s,!s.render))return y(void 0);const P=g.snapshot(),k=()=>{if(r.signal.throwIfAborted(),L()!==l||g.snapshot()!==P)throw new Error("Blender capture document or source revision changed before completion")};if(s.render.linearInput){const x=await Gr(null,s.render);return k(),y(x)}const{render:C,position:A,target:R,up:z}=s;if(!A||!R||!z)throw new Error("A Blender render capture must carry the scene camera position, target and up");if(n)throw new Error("A Blender render capture is already in progress");const M=g.captureSnapshot();n=!0,r.signal.addEventListener("abort",M.dispose,{once:!0});try{k();const x=new _e;x.add(M.root),x.updateMatrixWorld(!0);const F=M.root.matrixWorld,rr=new Ie().copy(F).invert(),Zr=new Lr().setFromMatrix4(F),re=new Lr().setFromMatrix4(rr),er=new cr(A[0],A[1],A[2]).applyMatrix4(F),hr=new cr(R[0],R[1],R[2]).applyMatrix4(F),yr=new cr(z[0],z[1],z[2]).applyMatrix3(Zr),nr=Math.min(2048,Math.round(C.width))/Math.min(2048,Math.round(C.height)),Sr=ae(M.root).getBoundingSphere(new Ce),$=Le(er.distanceTo(Sr.center),Sr.radius);let D;if(C.orthographic){const G=C.fov/2;D=new he(-G*nr,G*nr,G,-G,$.near,$.far)}else D=new ye(C.fov,nr,$.near,$.far);D.up.copy(yr),D.position.copy(er),D.lookAt(hr),D.updateMatrixWorld(!0);const wr={position:er.clone().applyMatrix4(rr).toArray(),target:hr.clone().applyMatrix4(rr).toArray(),up:yr.clone().applyMatrix3(re).toArray()};g.recordPhotograph({sent:{position:A,target:R,up:z},photographed:wr,render:{width:C.width,height:C.height,fov:C.fov,orthographic:C.orthographic}});const ee=await He(x,D,M,C,k);return y({...ee,camera:wr})}finally{n=!1,r.signal.removeEventListener("abort",M.dispose),M.dispose()}},log:(o,f)=>console[o](`[blender] ${f}`)});const c=v;return u().session.reportWorkerCallMeter("Blender",()=>c.metrics()),v}const nn="models/model.blend",h=(e,r)=>{const n=e[r];if(typeof n!="string")throw new Error(`${String(e.type)} requires a string "${r}"`);return n};async function cn(e){const r=u().projectLocalState.projectRootPath();if(r===null)return{};let n;try{n=await e.execute(`import bpy
|
|
15
|
-
print(bpy.data.filepath)
|
|
16
|
-
`,!1)}catch{return{}}if(/^Error executing code:/m.test(n))return{};const t=n.replace(/^Code executed successfully:/,"").split(`
|
|
17
|
-
`).map(c=>c.trim()).filter(c=>c.startsWith("/")).pop()??"";if(t==="")return{};const a=r.endsWith("/")?r:`${r}/`;return t.startsWith(a)?{document:t.slice(a.length)}:{}}async function Dn(e){const r=u();if(e.type==="blender-draw-batching"){if(typeof e.enabled!="boolean")return{ok:!1,error:"blender-draw-batching requires boolean enabled"};if(!v?.project||!r.session.open())return{ok:!1,error:"Open a Blender document before changing draw batching"};const n=await U();return n.setDrawBatching(e.enabled),{ok:!0,data:{instancing:n.drawStatistics()}}}if(e.type==="blender-status")return{ok:!0,data:{started:v?.project!=null,document:r.documents.context(L())!==void 0,instancing:v?.project!=null?(await U()).drawStatistics():null,lastOutput:v?.lastOutput??[]}};if(!r.session.open())return{ok:!1,error:`${e.type} needs an open project session; this editor page has none.`};try{const n=e.type==="blender-start"?h(e,"project"):null;let t=typeof e.document=="string"?e.document:void 0;if((e.type==="blender-stop"||e.type==="blender-start"&&e.fresh===!0)&&(await Ir(Jr),e.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(e.type==="blender-start"&&!r.documents.context(L())){const c=await r.project.documentTable(),o=c.entries.filter(l=>l.kind==="model"),f=t!==void 0?o.find(l=>l.source?.path===t):o.find(l=>l.id===(S?.entryId??c.default))??(o.length===1?o[0]:void 0);if(!f)return{ok:!1,error:t!==void 0?`No declared Model document names ${t}.`:`Choose a Model document before starting Blender. Available: ${o.map(l=>l.id).join(", ")||"(none)"}.`};const s=f.id;if(t=f.source?.path,!await r.workspace.open({kind:"document",id:s}))return{ok:!1,error:`blender-start could not open the Blender Model document ${s}: nothing in this editor opens that document (the Model document ships with @volter/editor-blender).`}}const a=m();switch(e.type){case"blender-start":{const c=t!==void 0?t:S?.blend??nn;return{ok:!0,data:{...await a.start(n,c)}}}case"blender-execute":return{ok:!0,data:{result:(await Je(h(e,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await a.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await a.objectInfo(h(e,"name"))}};case"blender-rna":{const c=typeof e.names=="number"?e.names:void 0;return{ok:!0,data:{result:await a.rna(h(e,"path"),c)}}}case"blender-rna-context":{const c=typeof e.object=="string"?e.object:void 0,o=typeof e.collection=="string"?e.collection:void 0;return{ok:!0,data:{result:await a.rnaContext(c,o)}}}case"blender-rna-set":{const c=typeof e.index=="number"?e.index:void 0;return{ok:!0,data:{result:await Ye(h(e,"path"),h(e,"property"),e.value,c)}}}case"blender-outliner":{const c=Array.isArray(e.selected)?e.selected.filter(o=>typeof o=="string"):void 0;return{ok:!0,data:{result:await a.outliner(c)}}}case"blender-node-tree":return{ok:!0,data:{result:await a.nodeTree({...typeof e.path=="string"?{path:e.path}:{},...typeof e.material=="string"?{material:e.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await a.uvLayout({...typeof e.object=="string"?{object:e.object}:{},...typeof e.uvLayer=="string"?{uvLayer:e.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await a.rig({...typeof e.object=="string"?{object:e.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await a.actionClip({...typeof e.object=="string"?{object:e.object}:{},...typeof e.bake=="boolean"?{bake:e.bake}:{}})}};case"blender-node-view":{const c=typeof e.action=="string"?e.action:"state";return{ok:!0,data:{result:Ze.verbs.some(f=>f.id===c)?Se("blender-node-view",c,e):Kr(e)}}}case"blender-outliner-set":return{ok:!0,data:{result:await Hr(h(e,"path"),h(e,"column"),e.value!==!1)}};case"blender-screenshot-view":{const c=typeof e.maxSize=="number"?e.maxSize:1e3,o={kind:"document",id:S?.entryId??"blender:runtime"};return{ok:!0,data:{...await a.screenshotView(c),document:o}}}case"blender-read-file":{const c=await a.readFile(h(e,"path")),o=h(e,"transferId"),f=await fetch(`/__editor/blender-file?id=${encodeURIComponent(o)}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([c])});return f.ok?{ok:!0,data:{bytes:c.length}}:{ok:!1,error:`Transfer ${o} was refused: ${f.status}`}}case"blender-write-file":{const c=atob(h(e,"base64")),o=Uint8Array.from(c,f=>f.charCodeAt(0));return await a.writeFile(h(e,"path"),o),{ok:!0,data:{written:o.length}}}case"blender-list-files":{const c=await a.listFiles(h(e,"path")),o=a.presented;return{ok:!0,data:{entries:c,...o?{session:o.session,revision:o.revision}:{},...await cn(a)}}}}return{ok:!1,error:`Unknown Blender command ${e.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{_n as A,B,In as C,Sn as D,yn as E,Or as F,wn as G,Nr as H,w as I,T as J,Dn as K,Ze as N,xn as a,Cn as b,E as c,or as d,An as e,mn as f,kn as g,zn as h,Ye as i,Mn as j,ln as k,bn as l,Ge as m,un as n,vn as o,Ee as p,sn as q,V as r,hn as s,Rn as t,Ln as u,dn as v,gn as w,Je as x,xr as y,pn as z};
|