@volter/cyclotron 0.5.193 → 0.5.194
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 +14 -14
- package/dist/.vite/manifest.json +1356 -1356
- package/dist/assets/BVHLoader-BXKiHT5h.js +1 -0
- package/dist/assets/ColladaLoader-CyZbE4O2.js +3 -0
- package/dist/assets/EntityModelDocument-D2K-YeUs.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-DBnJ4_-V.js +1 -0
- package/dist/assets/FBXLoader-D57b2Qrv.js +1 -0
- package/dist/assets/InspectorObjectPreview-qS1byRDV.js +1 -0
- package/dist/assets/LineSegments2-D_GgVQph.js +370 -0
- package/dist/assets/LiveModuleDocument-DaeiFQtn.js +2 -0
- package/dist/assets/LutAssetDocument-BpQ9GsJ9.js +1 -0
- package/dist/assets/MTLLoader-BqTkgdtE.js +2 -0
- package/dist/assets/ModelAssetDocument-CZTyX618.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-DUJbk9k-.js +1 -0
- package/dist/assets/OBJLoader-C6DZQNaC.js +5 -0
- package/dist/assets/Object3DDocumentToolbar-DLo3_IHd.js +1 -0
- package/dist/assets/Object3DPreview-CYzEOi6B.js +2 -0
- package/dist/assets/OrbitControls-YNq5RhEj.js +1 -0
- package/dist/assets/PLYLoader-BKPS0Afd.js +2 -0
- package/dist/assets/QuarksAssetDocument-DI_-XGJI.js +2 -0
- package/dist/assets/RectAreaLightUniformsLib-CfxEn3z_.js +1 -0
- package/dist/assets/STLLoader-DtW5I84v.js +1 -0
- package/dist/assets/ShaderAssetDocument-yDopYfwE.js +1 -0
- package/dist/assets/StageHost-D97jIRog.js +1179 -0
- package/dist/assets/TDSLoader-Bg7nII7y.js +1 -0
- package/dist/assets/ToolObject3DPreview-BrkGtgvC.js +1 -0
- package/dist/assets/ViewportShadingMenu-CCPx-8Rg.js +1 -0
- package/dist/assets/animation-mixers.service-C8Z6TcCX.js +1 -0
- package/dist/assets/animation-timeline.utility-BZkNK9-R.js +1 -0
- package/dist/assets/asset-preview-B4kK4wfl.js +4 -0
- package/dist/assets/blender-emscripten-engine-B_l8H9L4.js +2 -0
- package/dist/assets/blender-node-editor.document-Cm2yettL.js +1 -0
- package/dist/assets/blender-properties-model-CsZS91JN.js +1 -0
- package/dist/assets/blender-properties-tab-qj951C1w.js +3 -0
- package/dist/assets/blender-runtime-host-BGBnqcJk.js +14 -0
- package/dist/assets/blender-runtime.document-DURGLPev.js +13 -0
- package/dist/assets/blender-screenshot.menu-BvF_Eagq.js +1 -0
- package/dist/assets/blender-timeline.document-BGUCiiCU.js +1 -0
- package/dist/assets/blender-uv-editor.document-D9kg8-ry.js +1 -0
- package/dist/assets/blender-version.status-Dh7m7u-0.js +1 -0
- package/dist/assets/blender-wali-engine-BH54NSlp.js +2 -0
- package/dist/assets/blender.command-CaqBVtVQ.js +1 -0
- package/dist/assets/blender.status-CxdohUyQ.js +1 -0
- package/dist/assets/index-B28J5e-4.js +952 -0
- package/dist/assets/linear-resolve-CZ0wav6c.js +8 -0
- package/dist/assets/model-inspection-Dl7fyCmY.js +1 -0
- package/dist/assets/models.finder-CHQs8tVl.js +1 -0
- package/dist/assets/object3d-document-session-registry-COCylBVQ.js +2 -0
- package/dist/assets/output-pass-C_NksIPU.js +85 -0
- package/dist/assets/play-mode-Cvsdz02D.js +7271 -0
- package/dist/assets/product-wrgI_NFB.js +14 -0
- package/dist/assets/properties-bone-constraints.inspector-DLpEJmHt.js +1 -0
- package/dist/assets/properties-bone.inspector-DtIZop33.js +1 -0
- package/dist/assets/properties-collection.inspector-Ba56aP3f.js +1 -0
- package/dist/assets/properties-constraints.inspector-9g_MJmXF.js +1 -0
- package/dist/assets/properties-data.inspector-BUFAw4vd.js +1 -0
- package/dist/assets/properties-material.inspector-DutVHX2l.js +1 -0
- package/dist/assets/properties-modifiers.inspector-7BrqjXu1.js +1 -0
- package/dist/assets/properties-object.inspector-BCCelHxh.js +1 -0
- package/dist/assets/properties-output.inspector-CdVm6jQb.js +1 -0
- package/dist/assets/properties-particles.inspector-BGlWUwqw.js +1 -0
- package/dist/assets/properties-physics.inspector-BR7LRN9U.js +1 -0
- package/dist/assets/properties-render.inspector-Dv-6OeHT.js +1 -0
- package/dist/assets/properties-scene.inspector-DvuLw6sn.js +1 -0
- package/dist/assets/properties-texture.inspector-BesNoDJo.js +1 -0
- package/dist/assets/properties-view-layer.inspector-D8lf3UEA.js +1 -0
- package/dist/assets/properties-world.inspector-Dp9WcNb1.js +1 -0
- package/dist/assets/react-18-B-fDrlK3.js +1 -0
- package/dist/assets/session-BCbKE24z.js +5598 -0
- package/dist/assets/spark.module-Bheu1A5i.js +12120 -0
- package/dist/assets/stage-keyboard-CHXyPoVi.js +1 -0
- package/dist/assets/stage-overlay-set-DNTaFw5D.js +1 -0
- package/dist/assets/stage-presence-markers-e-4Izt1B.js +1 -0
- package/dist/assets/stage-transform-tools-CH8oKU9q.js +1 -0
- package/dist/assets/standard-viewport-dressing-DDY_9SZV.js +24 -0
- package/dist/assets/three-integration.service-BIlcUdBp.js +2 -0
- package/dist/assets/three.module-Ch_c8uGz.js +3840 -0
- package/dist/assets/volter-sdk-BQB0Zlob.js +2359 -0
- package/dist/assets/volter-sdk-account-BRmOQigQ.js +1 -0
- package/dist/assets/volter-sdk-client-BVPEmglb.js +1 -0
- package/dist/assets/volter-sdk-contributions-COTDJYO1.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-D8wAOsPa.js +1 -0
- package/dist/assets/volter-sdk-document-probe-DXbTwL2u.js +1 -0
- package/dist/assets/volter-sdk-editor-view-Bzu-8CYm.js +1 -0
- package/dist/assets/volter-sdk-host-DqJQr1df.js +1 -0
- package/dist/assets/volter-sdk-http-transport.browser-dslmINS5.js +1 -0
- package/dist/assets/volter-sdk-index-Cecw-mhV.js +1 -0
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-B0RqqZl4.js +1 -0
- package/dist/assets/volter-sdk-kit-account-client-DlGIQn1J.js +1 -0
- package/dist/assets/volter-sdk-kit-action-registry-iyJE-VV5.js +1 -0
- package/dist/assets/volter-sdk-kit-active-product-GLOp7SGI.js +1 -0
- package/dist/assets/volter-sdk-kit-active-project-Dq8kofND.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-editor-config-Cr-mrc_Y.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-observation-C6oW-ky_.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DXSx3lLN.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-stage-transport-B9cPRQOS.js +1 -0
- package/dist/assets/volter-sdk-kit-api-assets-QQkgNwVu.js +1 -0
- package/dist/assets/volter-sdk-kit-api-base-Bi2i5hsp.js +1 -0
- package/dist/assets/volter-sdk-kit-api-build-1KMxNSM5.js +1 -0
- package/dist/assets/volter-sdk-kit-api-logs-CDY71iIJ.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-identity-BqUoSmNo.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-open-B1w4XBfB.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-source-F1AcNj-D.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-state-CB3cUFZU.js +1 -0
- package/dist/assets/volter-sdk-kit-api-relay-iOZ9kIor.js +1 -0
- package/dist/assets/volter-sdk-kit-api-settings-4yiNiPSb.js +1 -0
- package/dist/assets/volter-sdk-kit-api-themes-B9lXw-rS.js +1 -0
- package/dist/assets/volter-sdk-kit-api-worktrees-Bb349LYf.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-capabilities-DTzFDavf.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-compare-core-DIjVnsWv.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-editor-context-B8nmnM0v.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-events-p6ItxCTP.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-BTfyM2o7.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-CyBY_d7d.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-GEOzhji9.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-thumbnails-CtkiF-V5.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-viewers-D3Mi8fQr.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-CYGzcTaL.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-D91D_0CF.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-B0zRHiL9.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-IY6VUMHw.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-Ce47mw6a.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-CD1vnsZR.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-d0-Uzy03.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-D0vVAqBn.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BAEvL1UZ.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-fPi29bOk.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-D6_Z95V4.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-J-T1VMTl.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-EJZkn7bf.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-DkuAqo0y.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DZNwlagz.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-98jVdg4_.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-BUHOIghW.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-systems-BkfojKRD.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-DlUMlg2J.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-j7BZcyGf.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-mMFV_DNR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-BOxK4vQz.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-DFBqMSWw.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-DMiKN7VF.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-bhWe6xvl.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-23UL6KYj.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-DW9dIClD.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-DBgL_lA2.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-ClpazTR4.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-sWfxRUay.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-DS0eMkp2.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-DZs9VhIo.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-J4KHjSKS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-M3aJf5zN.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-7fQh-qhz.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-BccpEej-.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-provenance-CSBBulpS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-CwqVcZU9.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-CNq_7ExO.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-C3IgU8EW.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-C6_N51p0.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-Dx0OhjSY.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-vSHUVyMV.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-CbEZTmx1.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-three-root-Dg0-ohDP.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-igyC5lq5.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-CyLsqP5d.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-BkPCvL32.js +1 -0
- package/dist/assets/volter-sdk-kit-availability-tick-CztgdYL5.js +1 -0
- package/dist/assets/volter-sdk-kit-bitmap-label-0hGzu1o7.js +1 -0
- package/dist/assets/volter-sdk-kit-boot-routing-B6xZMCfo.js +1 -0
- package/dist/assets/volter-sdk-kit-breakpoint-state-DICezbj0.js +1 -0
- package/dist/assets/volter-sdk-kit-build-identity-DuHPXxO0.js +1 -0
- package/dist/assets/volter-sdk-kit-bytes-codec-rzvCGFIr.js +1 -0
- package/dist/assets/volter-sdk-kit-cancellation-reason-UOzNM96u.js +1 -0
- package/dist/assets/volter-sdk-kit-canvas-frames-CzkzpXX6.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-camera-pose-I9C3liSR.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-size-6Ya1f6kq.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-registry-CbG9Q3FR.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-wzW1ylyz.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-client-AG1jGw5p.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-presence-CyeZjLeU.js +1 -0
- package/dist/assets/volter-sdk-kit-command-dispatch-CAXRpf6i.js +1 -0
- package/dist/assets/volter-sdk-kit-command-listener-B6y1MEn7.js +1 -0
- package/dist/assets/volter-sdk-kit-command-registry-BaA8ssQ5.js +1 -0
- package/dist/assets/volter-sdk-kit-component-board-registry-DkdgKK0v.js +1 -0
- package/dist/assets/volter-sdk-kit-component-states-registry-3ciThnSP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-Iwi81m1v.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-dRU2zlOB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-CY0cXlne.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-BVB6gPIp.js +1 -0
- package/dist/assets/volter-sdk-kit-components-BoardRulers-Ddw0d1Mq.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-CmUPyJQk.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-BkzB4oUY.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-BeFxCLHz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CodeView-QxuKeVvG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DjZIEp2q.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-DouDFNne.js +1 -0
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-lAZoIi-u.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-hXragN0t.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Inspector-BfgpPzq3.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-F6VuXOsD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-wuqUpHyM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-aAJUhffn.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-Cocge2fh.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-AiA8zoWI.js +1 -0
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-02Yf3R8-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-MediaProperties-BXFREoRK.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-BzeFQSAJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-Bvic1Ayf.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CH7lZrRZ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-Bvx3JFLQ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SaveStatus-Dr8FZj6d.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CYvTikb4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-CgPZWiJ7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CtDzjSwg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolHost-Cyo_MKqv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Toolbar-WFauNr1P.js +1 -0
- package/dist/assets/volter-sdk-kit-components-TransientHint-FVfwK7Ca.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-Biji3eP8.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-gYEaeGoB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VolterLogo-C_sHkE56.js +1 -0
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-B6-CfiZ4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-account-documents-Chw7MMS0.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-documents-BB8AUKFZ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DJUlflJ3.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-1-jSEte_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-QVXuceNT.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-Bm8sWT6v.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-DhTeXByX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DEjeA96n.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-B9cqEHWp.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-ThHv999_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-4l6r3olY.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-Bxyen4JM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-BbMJqQaS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-Caowc3-j.js +1 -0
- package/dist/assets/volter-sdk-kit-components-board-guides-BXW3q7MN.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-2X5Bx2Fu.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-DvjBV827.js +1 -0
- package/dist/assets/volter-sdk-kit-components-core-utilities-Z7YZB4yO.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-cTdPXu6v.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-B1ZSlBf0.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-selection-6Z7aLmWH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-DNDinFBG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-CKtjqPwP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-E-23DANe.js +1 -0
- package/dist/assets/volter-sdk-kit-components-kind-documents-Db2uK1Oy.js +1 -0
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-C-_1gplg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-D9-N15vG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-scene-documents-u7dpCCdb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-status-contributions-B6xlBlk4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-documents-DDvfJ5Cz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-DQ_0hzjB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-after-paint-MSFD3H8b.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-BUkqg3mk.js +1 -0
- package/dist/assets/volter-sdk-kit-components-workspace-history-C4aj-JV5.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-documents-DfGiXnGG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-0q-85Bpy.js +1 -0
- package/dist/assets/volter-sdk-kit-composite-screenshot-DowI-yBg.js +1 -0
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-BKBx1Gqc.js +1 -0
- package/dist/assets/volter-sdk-kit-contribution-surfaces-BKX7_V94.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-DXuIFCaX.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-DhUT9M6O.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-gpoWC6W_.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-zXrwtVLq.js +1 -0
- package/dist/assets/volter-sdk-kit-creation-site-registry-cfJyxPqx.js +1 -0
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-Dg7yqRs1.js +1 -0
- package/dist/assets/volter-sdk-kit-document-areas-CWSscw4i.js +1 -0
- package/dist/assets/volter-sdk-kit-document-context-registry-liI7m3bn.js +1 -0
- package/dist/assets/volter-sdk-kit-document-open-registry-B0xtV3kM.js +1 -0
- package/dist/assets/volter-sdk-kit-document-play-extension-BIZPGKEi.js +1 -0
- package/dist/assets/volter-sdk-kit-document-preview-source-CKz96VVj.js +1 -0
- package/dist/assets/volter-sdk-kit-document-renderer-session-DC-_aHBi.js +1 -0
- package/dist/assets/volter-sdk-kit-document-stage-sessions-DdkM2E8o.js +1 -0
- package/dist/assets/volter-sdk-kit-document-viewports-BOAugjsJ.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-api-D-OoPzLj.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-BtlUvnlO.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-commands-DeDDPSwH.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-console-CmaDwUfI.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-current-view-D8qWFpK-.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-document-probe-Db2-eadh.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-git-client-DPeSWeR7.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-hotkeys-CWlHo3Dq.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-BQHejuJ7.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-view-GDTMB6Vy.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-mode-pmO1flrA.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-notifications-DVpgNbN7.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presence-BcS5ndJL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-CA1IqWXc.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-DbEDigBX.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-runtime-CBUuMkNW.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-server-response-C-G7z_cX.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-attribution-C5kXN5Pt.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-mode-Bp0TVYzH.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-state-facets-CacSMrtw.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-view-presentation-CmtPgOL3.js +1 -0
- package/dist/assets/volter-sdk-kit-environment-images-CCgKwC_f.js +1 -0
- package/dist/assets/volter-sdk-kit-eyedropper-session-DEUGSW3y.js +1 -0
- package/dist/assets/volter-sdk-kit-files-file-provider-Dq015zNu.js +1 -0
- package/dist/assets/volter-sdk-kit-files-project-files-CRUmsj64.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-index-DMYWmVDz.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-IMUANy-Q.js +1 -0
- package/dist/assets/volter-sdk-kit-frame-frame-parts-BHC8Qhep.js +1 -0
- package/dist/assets/volter-sdk-kit-framed-document-capture-BTXr1ns8.js +1 -0
- package/dist/assets/volter-sdk-kit-game-surface-defaults-ByC_S19H.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-export-state-8vLhFoqg.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-replay-B89hoF7n.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-session-time-BIMlPXez.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-sessions-BIGSNv4W.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-Do2Fr9kc.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-internals-C3W4IhCf.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-G7B0n3y5.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-CnLArtIh.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BxhOfAty.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-B0F_lE9E.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-projection-DiSPEkht.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-CbfvRhDw.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-BG3MH2i0.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-rows-BoYVV4BM.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-walk-B1WITZT0.js +1 -0
- package/dist/assets/volter-sdk-kit-history-editor-session-BpSS2eCq.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-commands-DpYPaooe.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-delegate-CC36ndAU.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-CuRCkIsU.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-service-BZ2r4UsO.js +1 -0
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-BabhnPdr.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-file-history-DJyrfF-i.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-CPPI1Q-C.js +1 -0
- package/dist/assets/volter-sdk-kit-history-resource-registry-D_FZDVeq.js +1 -0
- package/dist/assets/volter-sdk-kit-history-snapshot-store-DXG8sDri.js +1 -0
- package/dist/assets/volter-sdk-kit-history-source-history-backend-C9j6Tcs7.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-registration-group-BW8h_rqN.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-DK8E77z7.js +1 -0
- package/dist/assets/volter-sdk-kit-hotkeys-C6LTBp6w.js +1 -0
- package/dist/assets/volter-sdk-kit-inference-diagnostics-U4MqgzGp.js +1 -0
- package/dist/assets/volter-sdk-kit-initial-project-CsT7shAO.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-subject-C4nF3lBr.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-surface-9iryi0aN.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-VBalD3jL.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-display-dQlcKD2T.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-document-subject-D_9SBCJn.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-game-subject-vVRfCg63.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-model-CmtP96Yt.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-node-media-1PWWiMnB.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-null-subject-CHmkmoqV.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-serialize-QwJ-RIBv.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-DaL1na5Y.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-presentation-JZXRW45s.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-Beab0j-E.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-section-registry-DUHmAmGH.js +1 -0
- package/dist/assets/volter-sdk-kit-instance-source-actions-bm8vOJnE.js +1 -0
- package/dist/assets/volter-sdk-kit-js-heap-B5vP1pk0.js +1 -0
- package/dist/assets/volter-sdk-kit-key-actions-CZdIVYSS.js +1 -0
- package/dist/assets/volter-sdk-kit-keymap-presets-DyfuCv1L.js +1 -0
- package/dist/assets/volter-sdk-kit-layout-policy-CCwA5cOZ.js +1 -0
- package/dist/assets/volter-sdk-kit-light-explorer-model-Dn7MIsU3.js +1 -0
- package/dist/assets/volter-sdk-kit-live-canvas-frame-CqdR3bjg.js +1 -0
- package/dist/assets/volter-sdk-kit-live-document-BfyRM7Gx.js +1 -0
- package/dist/assets/volter-sdk-kit-live-gesture-lock-CLH5XOvs.js +1 -0
- package/dist/assets/volter-sdk-kit-live-seam-evidence-Rr0EF7Ie.js +1 -0
- package/dist/assets/volter-sdk-kit-live-session-registry-Bq5chqfS.js +1 -0
- package/dist/assets/volter-sdk-kit-live-transition-BqvZmj3M.js +1 -0
- package/dist/assets/volter-sdk-kit-manifest-project-Dz-tIaCC.js +1 -0
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-Cm7GUNDI.js +1 -0
- package/dist/assets/volter-sdk-kit-mount-failure-report-VckKBE0g.js +1 -0
- package/dist/assets/volter-sdk-kit-native-selection-style-DFyWIXzW.js +1 -0
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-NskdH99w.js +1 -0
- package/dist/assets/volter-sdk-kit-packaged-runtime-CdCdYjeq.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-profiler-BwZxb2wN.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-sources-CW46PNKI.js +1 -0
- package/dist/assets/volter-sdk-kit-photograph-notice-BYqkIM4V.js +1 -0
- package/dist/assets/volter-sdk-kit-play-boot-phase-Dzwqv3D1.js +1 -0
- package/dist/assets/volter-sdk-kit-play-camera-flight-DVQsN2rU.js +1 -0
- package/dist/assets/volter-sdk-kit-presentation-surface-dRR8vU_U.js +1 -0
- package/dist/assets/volter-sdk-kit-product-command-C8LM4ZGo.js +1 -0
- package/dist/assets/volter-sdk-kit-project-adapter-ispDkjSY.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-refresh-uxC6Eshd.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-roots-DR1YQ-l8.js +1 -0
- package/dist/assets/volter-sdk-kit-project-local-state-DoKZqGiv.js +1 -0
- package/dist/assets/volter-sdk-kit-project-manager-CbGXLUiQ.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-changes-BeQGAaZI.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-split-EroN_dmL.js +1 -0
- package/dist/assets/volter-sdk-kit-project-provenance-BcG5vk_U.js +1 -0
- package/dist/assets/volter-sdk-kit-project-ready-BIM5KwVl.js +1 -0
- package/dist/assets/volter-sdk-kit-project-shape-DTzM5AZp.js +1 -0
- package/dist/assets/volter-sdk-kit-project-tools-Bl29ZjLy.js +1 -0
- package/dist/assets/volter-sdk-kit-readiness-CQZbW2EN.js +1 -0
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-B8SuN0f8.js +1 -0
- package/dist/assets/volter-sdk-kit-reported-play-state-CBIohvAi.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-CMfd_rdI.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BU7dyZXI.js +1 -0
- package/dist/assets/volter-sdk-kit-retained-document-states-CAvpFHQ9.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-document-plan-BfdHESEZ.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-live-open-DC0HsI96.js +1 -0
- package/dist/assets/volter-sdk-kit-scoped-game-css-CPGETy86.js +1 -0
- package/dist/assets/volter-sdk-kit-served-url-D_yrrv_1.js +1 -0
- package/dist/assets/volter-sdk-kit-session-close-YNH4zdyj.js +1 -0
- package/dist/assets/volter-sdk-kit-session-tombstone-CxGNCCDu.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-settings-provider-BhPpKMj9.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-store-Ctmz-9mi.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-DyIjZ3x9.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-door-CxpNnVpt.js +1 -0
- package/dist/assets/volter-sdk-kit-source-conflict-gJ1ttdYG.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-context-BXWdaZZH.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-invalidation-DoBa46UC.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-store-registry-CSE-ryJ8.js +1 -0
- package/dist/assets/volter-sdk-kit-startup-failure-D1bKtcl4.js +1 -0
- package/dist/assets/volter-sdk-kit-state-report-deferral-XUgXV_Hc.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-DJITrBus.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-http-storage-BK74iz56.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-index-BZ0CScx0.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-mem-storage-TiCBd4i3.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-path-lock-Nmp75rjg.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-paths-CNITX0tV.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-D_9XN2LZ.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-B96LV2aF.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-BPS7TeVd.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-B6SW9DUA.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-KM7bfb3W.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-scope-By69yhUz.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-capture-DloxZzrT.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-CEEIRPOE.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-discovery-BT3_14Xa.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-CLzsmM--.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-grouping-DxBXFgHu.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-presentation-DfJDlcUw.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-registry-CAei4tIR.js +1 -0
- package/dist/assets/volter-sdk-kit-story-document-openers-B8NxCN3d.js +1 -0
- package/dist/assets/volter-sdk-kit-story-thumbnails-Dlm0eWNt.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-keyboard-RaaImMOt.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-state-CGPBfFdm.js +1 -0
- package/dist/assets/volter-sdk-kit-system-seam-evidence-BaXb7RCG.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-census-Bk74bOKT.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-CkTgM6Nz.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-library-DSPv1Wns.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-preference-BQNfH5vF.js +1 -0
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-MYyhHeNE.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-contribution-play-BntnYdSm.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-loader-BsJw0vnd.js +1 -0
- package/dist/assets/volter-sdk-kit-transform-mode-request-C3PuFjVc.js +1 -0
- package/dist/assets/volter-sdk-kit-transient-hint-CVtQElA_.js +1 -0
- package/dist/assets/volter-sdk-kit-transport-strip-CfaFs3Yu.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-DPXAGySM.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-inspect-6GqYurA1.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-C-bGiG4D.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-Ohf_RRv4.js +1 -0
- package/dist/assets/volter-sdk-kit-user-local-state-etm9FY2T.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-BcCqcD6V.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-B4gRjrxY.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-presentation-Dcr3UwqV.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-surface-status-7OdWYECT.js +1 -0
- package/dist/assets/volter-sdk-kit-wait-until-Dh_onDNv.js +1 -0
- package/dist/assets/volter-sdk-kit-worker-call-metrics-TJJbr4dU.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-areas-Ds-xVOwK.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-tOC4yQ8R.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-available-documents-Dmk2fy2F.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-BQyYzIc4.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-ids-DEcnxFIB.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-registry-C4HVUV-2.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-restore-BWxTnjs9.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-host-commands-B_tkERxo.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-rpCO_5KT.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-Dvtn1V7m.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-presets-DbQTAm5l.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-regions-CjWoSqJ6.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-static-panels-CKvedP-8.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-status-registry-VjaCrPdJ.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-storage-ByhjnSsr.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-style-DEf6yZvO.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-ChNufExZ.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-Bn_McKXG.js +1 -0
- package/dist/assets/volter-sdk-kit-world-adoption-HGJC0CsF.js +1 -0
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-ChDvLibG.js +1 -0
- package/dist/assets/volter-sdk-kit-world-document-routing-DEXNxBk9.js +1 -0
- package/dist/assets/volter-sdk-kit-world-pan-state-Bi2Lw5-Y.js +1 -0
- package/dist/assets/volter-sdk-kit-write-pipe-BvZqw0Hp.js +1 -0
- package/dist/assets/volter-sdk-layout-arrangements-Cr2uRsko.js +1 -0
- package/dist/assets/volter-sdk-layouts-Bnykz5Ai.js +1 -0
- package/dist/assets/volter-sdk-selection-CDQMMCEq.js +1 -0
- package/dist/assets/volter-sdk-session-command-table-CbXHPwA2.js +1 -0
- package/dist/assets/volter-sdk-session-editor-brand-DDQ18zLq.js +1 -0
- package/dist/assets/volter-sdk-session-editor-compatibility-NOZDDZK_.js +1 -0
- package/dist/assets/volter-sdk-session-editor-control-protocol-D6XiYb-A.js +1 -0
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-Cdx8JIbN.js +1 -0
- package/dist/assets/volter-sdk-session-game-css-scope-CB0ldJQ-.js +1 -0
- package/dist/assets/volter-sdk-session-project-module-url-CJcubWJl.js +1 -0
- package/dist/assets/volter-sdk-session-relative-path-guard-DQps9oYM.js +1 -0
- package/dist/assets/volter-sdk-session-tool-contribution-convention-TjVNa6uv.js +1 -0
- package/dist/assets/volter-sdk-types-PEqAjzBK.js +1 -0
- package/dist/assets/volter-sdk-views-C_kZ1s6a.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-DoUKGljE.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-9oVjYySg.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-Vd-L9KgB.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-CxCcm-c1.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-CLvQfhRY.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-BkERE2Jf.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CWl1Ys5V.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-CnzME7tq.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-gDJtjosl.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BKLsGegH.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-D7BNtJvk.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CknrzEEc.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor--PUuRL_J.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-BF-74OJ0.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BJDkmQqr.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-CC5e_wbs.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-BM0n4u4C.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-CAlsfatW.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-Dr8Lr1KG.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CC8fzEhK.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CMACvNwQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-CorJktC6.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List-BS4Fm2PV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C9Uzxq1y.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BMMqAg8s.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-BApaduI4.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CR9ti-h7.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-Cm_EQKv7.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-C2WFo6cM.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-Dk4KKaq8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-cXDWaFqp.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-1KGMi_Rl.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-j_sJkYTv.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-CtgByRjD.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-JpYZe_XQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-BG-yXU_y.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-CndjSS77.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-BIutSLlq.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-BUDuaSC3.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BNXTITcJ.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DWMBw8Qg.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-Cl_Lnbtl.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-A4QZ8r01.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-B-w_mbeY.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-OekffUMN.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-D_B3XSIS.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-o_Ek7Meg.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-RYnsVO3a.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BbG-knlC.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-BEKMFghe.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-B2PEmd8v.js +1 -0
- package/dist/assets/volter-shared-fontawesome-YzlKiPbn.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-DjRoguSG.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-CuosbL2-.js +1 -0
- package/dist/assets/volter-shared-react-B2G7k3gj.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-Bn--udp0.js +1 -0
- package/dist/assets/volter-shared-react-dom-zuFYLViM.js +1 -0
- package/dist/assets/volter-shared-three-Bd-6jvNx.js +1 -0
- package/dist/assets/worker-ViyXMDMg.js +8 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-sdk.json +461 -461
- package/dist/volter-shared-three.json +1 -1
- package/dist-node/cli.js +31 -19
- package/dist-node/create.js +15 -14
- package/package.json +15 -14
- package/starter/AGENTS.md +26 -11
- package/dist/assets/BVHLoader-DtI3CJC4.js +0 -1
- package/dist/assets/ColladaLoader-Diuam4wk.js +0 -3
- package/dist/assets/EntityModelDocument-D7zs6zy3.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-CkAaAn5J.js +0 -1
- package/dist/assets/FBXLoader-BjOAAMF-.js +0 -1
- package/dist/assets/InspectorObjectPreview-Cz9eomOl.js +0 -1
- package/dist/assets/LineSegments2-Cq8MYDAv.js +0 -370
- package/dist/assets/LiveModuleDocument-Bn-dibdo.js +0 -2
- package/dist/assets/LutAssetDocument-mOBp8UDz.js +0 -1
- package/dist/assets/MTLLoader-40u5d5nb.js +0 -2
- package/dist/assets/ModelAssetDocument-CUKkjUGh.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-bWUlgHxX.js +0 -1
- package/dist/assets/OBJLoader-DIZjK3jK.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-C4WkM_0k.js +0 -1
- package/dist/assets/Object3DPreview-D8H6i7pI.js +0 -2
- package/dist/assets/OrbitControls-CSy1c_sw.js +0 -1
- package/dist/assets/PLYLoader-B8UEO__v.js +0 -2
- package/dist/assets/QuarksAssetDocument-C2pWks73.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-DJvEUfKR.js +0 -1
- package/dist/assets/STLLoader-GvyGAjJi.js +0 -1
- package/dist/assets/ShaderAssetDocument-DoCflhIi.js +0 -1
- package/dist/assets/StageHost-BGavQ9nT.js +0 -1179
- package/dist/assets/TDSLoader-ClXVgMIu.js +0 -1
- package/dist/assets/ToolObject3DPreview-CHlNxX0X.js +0 -1
- package/dist/assets/ViewportShadingMenu-BZV_eHGc.js +0 -1
- package/dist/assets/animation-mixers.service-C4yH0EzJ.js +0 -1
- package/dist/assets/animation-timeline.utility-BmUT89-I.js +0 -1
- package/dist/assets/asset-preview-DL7Y_iqy.js +0 -4
- package/dist/assets/blender-emscripten-engine-DKCp5dHi.js +0 -2
- package/dist/assets/blender-node-editor.document-DdYI3iYH.js +0 -1
- package/dist/assets/blender-properties-model-BmDNILTF.js +0 -1
- package/dist/assets/blender-properties-tab-pBVFYKVc.js +0 -3
- package/dist/assets/blender-runtime-host-_3zJz7jJ.js +0 -14
- package/dist/assets/blender-runtime.document-lRbvBCFl.js +0 -13
- package/dist/assets/blender-screenshot.menu-CFaImUoF.js +0 -1
- package/dist/assets/blender-timeline.document-DYhkDQ9o.js +0 -1
- package/dist/assets/blender-uv-editor.document-CiLnOxfL.js +0 -1
- package/dist/assets/blender-version.status-D8mCKwz-.js +0 -1
- package/dist/assets/blender-wali-engine-DopTN9IU.js +0 -2
- package/dist/assets/blender.command-Do3slJX7.js +0 -1
- package/dist/assets/blender.status-C4r4VRkL.js +0 -1
- package/dist/assets/index-XQ9et_dx.js +0 -952
- package/dist/assets/linear-resolve-BRXL8cFB.js +0 -8
- package/dist/assets/model-inspection-BjuieHyS.js +0 -1
- package/dist/assets/models.finder-C_22ZAZq.js +0 -1
- package/dist/assets/object3d-document-session-registry-BZRAoeWC.js +0 -2
- package/dist/assets/output-pass-Bwl2YLRI.js +0 -85
- package/dist/assets/play-mode-BSS0KI9w.js +0 -7208
- package/dist/assets/product-CVWl1Npu.js +0 -14
- package/dist/assets/properties-bone-constraints.inspector-BarPpc76.js +0 -1
- package/dist/assets/properties-bone.inspector-1nJpAAa2.js +0 -1
- package/dist/assets/properties-collection.inspector-BgeZq1z6.js +0 -1
- package/dist/assets/properties-constraints.inspector-33kIzmel.js +0 -1
- package/dist/assets/properties-data.inspector-CNXEJf2X.js +0 -1
- package/dist/assets/properties-material.inspector-BD3XLj11.js +0 -1
- package/dist/assets/properties-modifiers.inspector-CYJvhz-o.js +0 -1
- package/dist/assets/properties-object.inspector-COZNJBdE.js +0 -1
- package/dist/assets/properties-output.inspector-j-m83ED5.js +0 -1
- package/dist/assets/properties-particles.inspector-BnNfdo6Q.js +0 -1
- package/dist/assets/properties-physics.inspector-BkpIzcDv.js +0 -1
- package/dist/assets/properties-render.inspector-DkYCcpwt.js +0 -1
- package/dist/assets/properties-scene.inspector-CrqxJu_0.js +0 -1
- package/dist/assets/properties-texture.inspector-BBy9eeaM.js +0 -1
- package/dist/assets/properties-view-layer.inspector-BnvB8cCv.js +0 -1
- package/dist/assets/properties-world.inspector-D3v_IUMa.js +0 -1
- package/dist/assets/react-18-DNTHH5yO.js +0 -1
- package/dist/assets/session-CNj3Mdrh.js +0 -5537
- package/dist/assets/spark.module-CpL7Mg2r.js +0 -12120
- package/dist/assets/stage-keyboard-DSxiQuwB.js +0 -1
- package/dist/assets/stage-overlay-set-XSNU6afE.js +0 -1
- package/dist/assets/stage-presence-markers-BqUW05XR.js +0 -1
- package/dist/assets/stage-transform-tools-wTrGW3wk.js +0 -1
- package/dist/assets/standard-viewport-dressing-DXy04eCI.js +0 -24
- package/dist/assets/three-integration.service-BGWweviw.js +0 -2
- package/dist/assets/three.module-CEj_RcZi.js +0 -3840
- package/dist/assets/volter-sdk-DEsaXvO-.js +0 -2359
- package/dist/assets/volter-sdk-account-D_Bto7S5.js +0 -1
- package/dist/assets/volter-sdk-client-C2S_OOM4.js +0 -1
- package/dist/assets/volter-sdk-contributions-BwSx_AVw.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-DwZ6iYjF.js +0 -1
- package/dist/assets/volter-sdk-document-probe-Dvj7bLoE.js +0 -1
- package/dist/assets/volter-sdk-editor-view-3gZMFMR6.js +0 -1
- package/dist/assets/volter-sdk-host-CmafO-Yd.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-Dvnbd-NI.js +0 -1
- package/dist/assets/volter-sdk-index-qKXRm6Hs.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-pV94hDhL.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-BSy9k57a.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-cTjHHqIx.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-CeE_Dz59.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-DJUHrYAc.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-DOBNXZFE.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-Tk1dsFOj.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DVGI0wHU.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-BzG5NGQg.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-s-VFFdQp.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-DIoVHhlV.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-Cejdl5OO.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-C4gLQrEL.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-Ccb8eqoB.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-j_9cWsX9.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-C_4M95dH.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-s4lAjlxH.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-ClGIxFY-.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-Bh_eQ4gX.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-CS_JDEtn.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees-CDH_SGiD.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-x_R_8tTz.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-B7wP3Yzc.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-DuMkCxcp.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-zAYe08pe.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-JqEyYslZ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-Bp_awPw9.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-DLUYozyP.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-Bo-BNpQ8.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-ryNgpsh2.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-D2T7Vm3d.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-DZW2zfUM.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-Dcz2ziwD.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-kcW003Hj.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-e-l0h2wo.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-CTRSKNvb.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-D9kP86PN.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DWqyvVf7.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-B0D69sBU.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-CW-Sw0Q5.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-D-JZ_Wgs.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-DHHX5dhv.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BLK8uUe9.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-CXrVG_x4.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DqEBDO2u.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-BWTMV2Hh.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-Dt_IVDBC.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-BepjDhAp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-GLi9IVo9.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-J4i5P640.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-BeFo_nzB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CGTzlGJ8.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-CY8zRQH7.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-CHCGcS8p.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-B9lud0rJ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-DquiBFfg.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-OKk_OkR_.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-CnCxsSNB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-Dd1EjBzR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-A72Xh__u.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-DaX4Szvv.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BhcdT_UI.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-BvMPQpgp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-CSNiD3DJ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-DnSOkVFS.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-BoNlTqWX.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-C0YJNvAJ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BPEckMGB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-BZBbBdhS.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-BeJ2iwy2.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-CwRgfcAa.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-CzqCdz3h.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-CN3GQbwJ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-UYjmBFJR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-BoCBpF31.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-CONrfq92.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BAkzZ-DX.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-Bpg8arXb.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-4J0P0Ev3.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-3wyKVXiC.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-5_Af_34l.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-Tg7nJBXg.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-Jp1_AIb8.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-BP3IEwEy.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-D46H7GZL.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-B8MVkduI.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-N18vVPYh.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-D3CAgBji.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-DyF4bseo.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-onGDtKXM.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-iirOBSs_.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-DpZtpc96.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-DC85-9V0.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-CJQpIr01.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-SUKOefZu.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-BGhtwhTc.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-CyDIe4Rl.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-Dy_l2Vh-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-B_3S6wRV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-BRVAq1tv.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-D38JDrPg.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-B62U-5L7.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-D9JlpEky.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-Bxly5v2-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-BukjCnIj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-bNgW3HVC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-Dv8xV3yN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-DQa5h1vj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-DIPWvEPP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-BIozBMU_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-D9ecZEkT.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-DgGFJkGz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-CvqzeU5l.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-CtOvqgL6.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-Cpg4rytg.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-pO1R7ICt.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-C8dBl1WR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-C3pis4RR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CDCwZy3K.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-LpbdhsbH.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-EOTmyA7l.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-BR40oLaK.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-DouWs-NN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CAEvM-p9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-BFWTtq53.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CWVk1QEC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-DXQLGXs-.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-CYheRKGd.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-ad_ZcJLX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-9QUdGEK_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-Cg5gsUjJ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-BK_op1KW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-trOUuKzd.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-CGki5khY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-CQ4DF-WJ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-CZ8uFxoC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-DdYgkXJO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-4R6zzVhP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-CYJ6_ssl.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-B9FsdcBi.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-B-TrloNc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-Cl73AUKx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-C4gBeYTT.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BAEIFMg7.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-Bwi9oVpa.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-2RO1b18V.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-BS4rEX3W.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-CNX4DBBz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-DNhV7dl9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BilL8U61.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-D5mzooHP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-DlWgsXGW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-Vg8VbGdL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-D-XWRsOn.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BsSVwVv2.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-BNtLiJfM.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-CPXrNbPX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-BYv4NXdB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-DIA4ApmS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-Bx5xERiZ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-CE_3QzC9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-ByIABkIq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-B98ENSuP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-DEb_FNwc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-BcvK-1hS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-Bj2gwYb4.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-D7jt8XzN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-CIrELSWP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-CqDkRGrp.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-Dbr9GYHP.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-xTsGh2Xr.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-CUjrnu1s.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-C0z1_UJn.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-8gk8c2f9.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-8PnihkO3.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-6Q25n5FM.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-BpZxP5NT.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-C4SRijG_.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-BjClCFVq.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-CC_TPb2p.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-5iNLIU3i.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-DYUGTc4Q.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-Bd9SSQyj.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-uFKo82JE.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-BMVop16R.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-DV-GwYZI.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-BW8ZdFLF.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-1sttbp3T.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-BK2jV-Qe.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-RSicj6_M.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-BuyMYyGS.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-JupKheUl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-DR4aWAZv.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-DamyJ8tj.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-2vYFSPUW.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-DGPwXgV1.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-i4NJm-MW.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-Cssw_DL-.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-B54_Hw0-.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-DjoZfjPT.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-_df33UUU.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-CM7nF511.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-BxO7ANwl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-D2v3Clt5.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-BFMY_7bR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-C_OhRt3E.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-GjSu6GPQ.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-CwEVzL0y.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-DtFwKZY2.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-Dr0l13aR.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-DI41839f.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-C_ZbzMI_.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-DeKJrgrF.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-I0GQmUFc.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-Bn5M3mMJ.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-Bz0rldwt.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-BsCok1RZ.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-41VyjuQi.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-C_BOtm6D.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-CBT9ZQM8.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-D4PvaL7Z.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-BZ76u5LX.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-CXTuCqsG.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DOe-WeRq.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-C2kO_CE1.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-E3KykkWO.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-CvbUKfSf.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-CIUfVcIa.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-DWctGnXn.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-fOY-Xd3l.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-kfLz7ddk.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-CJXLqW3l.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-DdVZGBwB.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-BNWvJP91.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-Dw3HcbJz.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-jjmgRJev.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-DggmuCwF.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-CSvVr6AT.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-B3PQnmkJ.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-BTwY92r2.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-FqmZnJcE.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-CcD7-GJO.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DZ_AYb6L.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-BKEsgtAC.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-CX1UPyKa.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-Bkncf0WS.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-nwWX5Rql.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-CoD2VApq.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-W6it-cxV.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-DDs_lzrf.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-C8m5sVvU.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-DNnFzVTp.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-D-eCgiqL.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-CBu73BsQ.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-C9MEYh6t.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-dKLVb1Rf.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-Cnvw7jJd.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-CYOzaT2r.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-DZ1Moxh3.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-BTMT_rkV.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-CMGQlUf1.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-DKS37qFv.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-Ca8O5P_D.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-CTXbRB5r.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-DAs9z_YP.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-21AAFcSd.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-Wq6HYBa1.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-BBqVVNkm.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-C5T9T9lP.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-BJ9h8u1C.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-CB0qg8Hx.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-CBB7jL11.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-CGUnrXO0.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-p2VEWcyz.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-BZaARKNw.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-CIkLlEkT.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-BM0Ukbtq.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-CQNrG3KD.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-BCM1729t.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-CI6DytUl.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-H0TTy-T6.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-BHM1GxiT.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-C2rHRBCZ.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-YLupe_aO.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-hnEAhz6H.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-DItBgVkB.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-BfjtJdmn.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-CXFUAjEK.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-B8wOC-sX.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-aTDmKNF7.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-DndL7N84.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-W53jFp6X.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-CKVjapj_.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-C3-SGpME.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-Db1wLPXF.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-DEB4bt5r.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-BsmcGbmr.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-DKj7qpMr.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-7-Rhjrlg.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-DFRyYuby.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-kptWdgHR.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-iOnV4pxU.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-CP4mq6Np.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-CAfk4Y3O.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-Dkm22U6_.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-BSZ3_8HV.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-CBlN8eWK.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-Dc43VCdO.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-DVXjQHBw.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-BFQAejvw.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-p--wgWra.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-Bm5AICdY.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-CRZfRWcU.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-C3hNPpds.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-mtwQ-8pP.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-D6ZK7MlS.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-V7E-LCgS.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-DATC6OBZ.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-BZ79QmRs.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-CJhX-nzS.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-BjmDWx4a.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-B0sXxc5y.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-WIgep6Z8.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-Bk4zcC39.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-CIdTjfWP.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-CrxOIF15.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dy9N9XDi.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-NHralAEY.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-Ce7z_eUi.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-ClGmlzSC.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-B9AfeC8h.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-DkGrijGq.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium--2_QJVOD.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-Dws2B8wD.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-Dws7hHK4.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-Cux-p00v.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-BPa7QxKW.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-By0Fb1Fo.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-ClXsOfLM.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-BRhD82Hv.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-D4OYv6Xc.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-BVQH6qFd.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-VwJ_v6fY.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-CgwaIwQ6.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-Ba5y2i3Q.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-6raK9nAK.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-CXe22HUZ.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-vF_mRH51.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-CRN-YGLE.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-DdWtpngT.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-BKrip44W.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-BPK6mqOd.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-z8iUvdtv.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-R6LwmZB4.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-Dmn-QXVB.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-D5xr_a5p.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-B0RLxEjZ.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-TKgFB4Hx.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-tMsr-hHC.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-BzmIfQMJ.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-DDVa8aJ9.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-BSwjNnex.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-Di-IC_n1.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-JQpjfny-.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-CmpY6Kh7.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-Cv-HtGDp.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-Bzqw0LzX.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-CSbKoxZZ.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-DX0ksexu.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-B_lLMSZ2.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-B5_S0Doz.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-BGybHeER.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-C1K2UGwB.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-BZfZlUsf.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets-DRz-fLOx.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-CDQw6xMq.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-DC3_x8mx.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-BBb0kpgi.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-BOFr0DR8.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-emdFhp6s.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-BGCTzpgI.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-BaRnb2a-.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-DlxK2LfX.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-DVAOYSlC.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-DOce2_da.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-Dq7Z8bZv.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-CDpfiPGK.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-ApSZbpYh.js +0 -1
- package/dist/assets/volter-sdk-layouts-DSknqJAX.js +0 -1
- package/dist/assets/volter-sdk-selection-x0zEFxAo.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-DU1jJ_iJ.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-BviaYMjv.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-DesR3HA8.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-Nt4oCWaV.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-BuJmUSFg.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-YYt9DVR1.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-CZNwkeh7.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-BOEQflRP.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-C_uSj2P0.js +0 -1
- package/dist/assets/volter-sdk-types-Bfzd0ct2.js +0 -1
- package/dist/assets/volter-sdk-views-BjqJRj4v.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-C76n8Lls.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-CP92lXZC.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-vlJl8PNb.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-Cc0zj3Ro.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-B4CFMwye.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-BzjDiLTi.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-CaGki_l7.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-B-dfXDKz.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-CLnhjS4g.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CNbwi1Tj.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor--NoEEl70.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-CPY39Poo.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-IJy9WBq2.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-BxLcqevT.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-DQngHfyy.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-CA2WusuP.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DNj4L-Ru.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-SnsDkKl_.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-Btl7ExtI.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-BEh9qwnp.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-DQN2nY0t.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-BGPEGdvq.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-CnDfqlFy.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-F-2puTvI.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdXLI3Uo.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-BCTvk5g7.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CA-LZBa7.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-37wyq9ks.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-B854nVwi.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-dZJsy3vi.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-CtDMV7wL.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-B1VCOViu.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-bwhvToRi.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-bFs1_1P_.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-CoqSEVyd.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-Cj9qxOFO.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DZb_CRlb.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-BRaj87N7.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-BNJSqm2A.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-CvI-3lyI.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-YSOq0jRI.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-C-O2ceSs.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-sOaylFuz.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-C-FPPoqW.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-Dhv_xgEq.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-Ckl-6k95.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-qSNtUAUe.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Cn3ZNioq.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-Bpkmu2o3.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-Dm-fYGB1.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-Bpvw5DCo.js +0 -1
- package/dist/assets/volter-shared-fontawesome-eDs8uxm5.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-DBEBzneR.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-B18EjHUh.js +0 -1
- package/dist/assets/volter-shared-react-B_4Rqw3d.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-C26rR3Km.js +0 -1
- package/dist/assets/volter-shared-react-dom-lOA8B-Je.js +0 -1
- package/dist/assets/volter-shared-three-CGq8AXqh.js +0 -1
- package/dist/assets/worker-CaCrljK5.js +0 -4
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import{F as ce,a as Br,v as te}from"./output-pass-C_NksIPU.js";import{D as ae,a as or,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 K,W as Y,f as xe,g as ie,P as me,S as pe,h as Vr,O as _e,i as Ie,j as Ce,M as he,k as wr,V as nr}from"./three.module-Ch_c8uGz.js";import{h2 as g,hx as ye}from"./volter-sdk-BQB0Zlob.js";import{r as Se}from"./linear-resolve-CZ0wav6c.js";const we=1024*1024,Lr={Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array},Le=async r=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",r)),e=>e.toString(16).padStart(2,"0")).join("");class Re{constructor(){this.buffers=null,this.offsets=[]}reset(){this.buffers=null,this.offsets=[]}async accept(e){try{if(e.kind==="begin"){if(this.buffers)throw new Error("A frame value is already arriving");if(!e.lengths.length||e.lengths.length>4096||e.lengths.reduce((t,c)=>t+c,0)>2*1024**3||e.lengths.some(t=>!Number.isSafeInteger(t)||t<0||t>1024**3))throw new Error("Invalid frame buffer lengths");this.buffers=e.lengths.map(t=>new Uint8Array(t)),this.offsets=e.lengths.map(()=>0);return}if(!this.buffers)throw new Error("Frame chunk arrived without its manifest");if(e.kind==="bytes"){const t=this.buffers[e.slot];if(!t||!Number.isSafeInteger(e.offset)||e.offset!==this.offsets[e.slot]||e.bytes.byteLength>we||!e.bytes.byteLength||e.offset+e.bytes.byteLength>t.byteLength)throw new Error("Frame chunk is out of order or exceeds its bound");if(await Le(e.bytes)!==e.sha256)throw new Error("Frame chunk digest mismatch");t.set(e.bytes,e.offset),this.offsets[e.slot]=e.offset+e.bytes.byteLength;return}if(e.kind!=="end")throw new Error("Unknown frame chunk");const n=this.buffers;if(n.some((t,c)=>t.length!==this.offsets[c]))throw new Error("Frame value is incomplete");const a=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(n[0]),(t,c)=>{if(!c||typeof c!="object"||!("$frameColumn"in c))return c;const o=n[c.$frameColumn],f=Lr[c.type];if(!Number.isSafeInteger(c.$frameColumn)||c.$frameColumn<1||!o||!Object.hasOwn(Lr,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:a}}catch(n){throw this.reset(),n}}}const Rr=4096;class Ae{#t;#n;#o=[];#c=new Map;#V=0;#d=null;#f=null;#s=!1;#S=!1;#w=e=>{!this.#S&&this.#p===0||(e.preventDefault(),e.returnValue="")};#g=new Map;#u=new Map;#x="engine-start";#L=null;#C=new Set;#i=null;#h=0;#R=0;#A=0;#b=null;#M=null;#v=null;constructor(e){this.#n=e,this.#t=new Worker(new URL("/assets/worker-ViyXMDMg.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#w),this.#t.onmessage=n=>void this.#P(n.data),this.#t.onerror=n=>{const a=n.error,t=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",c=a?.stack??a?.message??n.message,o=this.#o.length>0?`
|
|
2
|
+
Blender's last output:
|
|
3
|
+
${this.#o.join(`
|
|
4
|
+
`)}`:"",f=this.#v===null?null:Math.round(this.#v/1048576),s=f!==null&&f>=Rr-16?`Blender ran out of memory: its heap reached ${f} MB of the in-tab engine's ${Rr} MB, and this scene needs more. `:"",b=new Error(`${s}Blender worker failed: ${c||"the worker script did not load"}${t}${o}`);console.error(b.message);for(const l of[...this.#c.keys()])this.#m(l);for(const l of this.#c.values())l.reject(b);this.#c.clear(),this.terminate()}}#a=null;#l=null;get project(){return this.#a}get document(){return this.#l}get lastOutput(){return[...this.#o]}start(e,n){return this.#a!==null&&this.#a!==e?Promise.reject(new Error(`The Blender session is bound to ${this.#a}, not ${e}`)):n!==void 0&&this.#l!==null&&this.#l!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#l}; cannot open ${n}`)):(this.#a=e,this.#l??=n??"models/model.blend",this.#d??=this.#r({op:"start",project:e,...n===void 0?{}:{document:n}}),this.#d)}#e(){return this.#a===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#a)}async execute(e,n=!0,a="Blender Python"){return await this.#e(),await this.#r({op:"execute",code:e,history:n,label:a})}async nativePreview(e){return await this.#e(),await this.#r({op:"native-preview",...e})}async historyGesture(e){await this.#e(),await this.#r({op:e})}async historyStep(e,n){return await this.#e(),(await this.#r({op:"history-step",token:e,direction:n})).moved}async sceneInfo(){return await this.#e(),await this.#r({op:"scene-info"})}async objectInfo(e){return await this.#e(),await this.#r({op:"object-info",name:e})}async rna(e,n){return await this.#e(),await this.#r({op:"rna",path:e,...n===void 0?{}:{names:n}})}async rnaContext(e,n){return await this.#e(),await this.#r({op:"rna-context",...e===void 0?{}:{object:e},...n===void 0?{}:{collection:n}})}async rnaSet(e,n,a,t,c=!0){return await this.#e(),await this.#r({op:"rna-set",history:c,path:e,property:n,value:a,...t===void 0?{}:{index:t}})}async viewShading(e){await this.#e(),await this.#r({op:"view-shading",shading:e})}async outliner(e){return await this.#e(),await this.#r({op:"outliner",...e===void 0?{}:{selected:e}})}async nodeTree(e){return await this.#e(),await this.#r({op:"node-tree",...e?.path===void 0?{}:{path:e.path},...e?.material===void 0?{}:{material:e.material}})}async uvLayout(e){return await this.#e(),await this.#r({op:"uv-layout",...e?.object===void 0?{}:{object:e.object},...e?.uvLayer===void 0?{}:{uvLayer:e.uvLayer}})}async rig(e){return await this.#e(),await this.#r({op:"rig",...e?.object===void 0?{}:{object:e.object}})}async actionClip(e){return await this.#e(),await this.#r({op:"action-clip",...e?.object===void 0?{}:{object:e.object},...e?.bake===void 0?{}:{bake:e.bake}})}async outlinerSet(e,n,a){return await this.#e(),await this.#r({op:"outliner-set",path:e,column:n,value:a})}async present(){await this.#e(),await this.#r({op:"present"})}async screenshotView(e){return await this.#e(),await this.#r({op:"screenshot-view",maxSize:e})}async readFile(e){return await this.#e(),await this.#r({op:"read-file",path:e})}async writeFile(e,n){await this.#e(),await this.#r({op:"write-file",path:e,bytes:n})}async listFiles(e){return await this.#e(),await this.#r({op:"list-files",path:e})}async listFilesSnapshot(e){return await this.#e(),await this.#r({op:"list-files-snapshot",path:e})}get presented(){return this.#M}stop(){return this.#s?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(e=>{throw this.#f=null,e}),this.#f)}terminate(){if(this.#I(),this.#s)return;this.#s=!0,globalThis.removeEventListener?.("beforeunload",this.#w);const e=this.#y("terminating worker");try{this.#t.terminate()}finally{e()}const n=new Error("The Blender session was terminated");for(const a of[...this.#c.keys()])this.#m(a);for(const a of this.#c.values())a.reject(n);this.#c.clear();for(const a of this.#C)a()}metrics(e=performance.now()){let n=null,a=this.#h,t=this.#L,c=this.#R,o=this.#A;for(const[f,s]of this.#g){const b=e-s;(n===null||b>n)&&(n=b),b>a&&(a=b,t=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(a),maxCallLabel:t,currentPhase:this.#p?this.#x:null,completedCalls:this.#k,callsOver5s:c,callsOver30s:o,lastCallWindow:this.#b,wasmMemoryMB:this.#v===null?null:Math.round(this.#v/1048576)}}#m(e){const n=this.#g.get(e);if(n===void 0)return;this.#g.delete(e);const a=this.#u.get(e)??null;this.#u.delete(e),this.#k++;const t=performance.now()-n;this.#i=t,t>this.#h&&(this.#h=t,this.#L=a),t>=5e3&&(this.#R+=1),t>=3e4&&(this.#A+=1),this.#b!==null&&this.#b.start===n&&(this.#b={start:n,end:n+t})}#k=0;#p=0;#z=Promise.resolve();#r(e,n=!1){if(this.#s||this.#f&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const a=performance.now();let t=()=>{};this.#p++;const c=this.#z.then(async()=>{const o=this.#y(`running worker ${e.op}`);t=()=>{this.#C.delete(t)&&o()},this.#C.add(t),this.#x=e.op;let f=await this.#D(e);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--,t();const o=Math.round(performance.now()-a);try{o>=1e3&&this.#n.log?.("log",`@@VOLTER-WORK op=${e.op} totalMs=${o}`)}catch{}});return this.#z=c.then(()=>{},()=>{}),c}#D(e){if(this.#s)return Promise.reject(new Error("The Blender session is terminated"));const n=++this.#V;return new Promise((a,t)=>{this.#c.set(n,{resolve:a,reject:t});const c=performance.now();this.#g.set(n,c),this.#u.set(n,e.op==="load-next"?`load-next after ${this.#x}`:e.op),this.#b={start:c,end:null};try{this.#t.postMessage({...e,id:n})}catch(o){this.#c.delete(n),this.#m(n),t(o instanceof Error?o:new Error(String(o)))}})}#y(e){try{const n=this.#n.work?.(e);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}#B=new Re;#_=null;#I(){this.#B.reset();const e=this.#_;if(this.#_=null,e)try{Promise.resolve(this.#n.stage?.({...e,abort:!0})).catch(()=>{})}catch{}}async#P(e){if("op"in e){if(e.op==="frame-stream"){try{const c=await this.#B.accept(e.chunk);if(c){const o=c.value;if(o.op==="present"){await this.#P({...o,id:e.id});return}if(o.op!=="stage"||!this.#n.stage)throw new Error("The presenter does not support staged Blender frames");this.#_={session:o.session,revision:o.revision},await this.#n.stage(o)}this.#t.postMessage({op:"present-result",id:e.id})}catch(c){this.#I(),this.#t.postMessage({op:"present-result",id:e.id,error:c instanceof Error?c.message:String(c)})}return}if(e.op==="document-dirty"){this.#S=e.dirty;return}if(e.op==="document-moved"){this.#l=e.document;try{this.#n.documentMoved?.({from:e.from,document:e.document})}catch{}return}if(e.op==="history"){this.#n.history?.(e.entries);return}if(e.op==="log"){this.#o.push(e.text),this.#o.length>12&&this.#o.shift(),this.#n.log?.(e.level,e.text);return}if(e.op==="memory"){this.#v=e.bytes;return}const a=e.frame;typeof a?.session=="string"&&typeof a.revision=="number"&&(this.#M={session:a.session,revision:a.revision});const t=this.#y("presenting worker frame");try{const c=await this.#n.present(e.frame,e.description,e.capture);this.#_=null,this.#t.postMessage({op:"present-result",id:e.id,...c?.capture===void 0?{}:{capture:c.capture},...c!=null&&"held"in c?{held:c.held}:{}})}catch(c){this.#I(),this.#t.postMessage({op:"present-result",id:e.id,error:c instanceof Error?c.message:String(c)})}finally{t()}return}"error"in e&&this.#I();const n=this.#c.get(e.id);n&&(this.#c.delete(e.id),this.#m(e.id),"error"in e?n.reject(new Error(e.error)):n.resolve(e.result))}}const Me=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}]}}`),ke={processors:Me};function Tr(r){return{transform:{none:"Standard",filmic:"Filmic",agx:"AgX",neutral:"Khronos PBR Neutral"}[r.toneMapping],look:r.look??"None",exposure:r.exposure,gamma:r.gamma??1}}const jr=ke.processors;let Ar=null;function ze(){return Ar??=fetch(new URL("/assets/blender-display-shaders-BpnqnkG8.lut",import.meta.url)).then(async r=>{if(!r.ok)throw new Error(`Blender display tables: ${r.status}`);return r.arrayBuffer()}).catch(r=>{throw Ar=null,r})}class De{constructor(e,n){this.textures=[];const a=jr[`${e.transform}/${e.look}`];if(!a)throw new Error(`Unimplemented Blender display transform: ${e.transform}, ${e.look}`);const t={frame:{value:null},exposure:{value:e.exposure},exponent:{value:1/Math.max(1e-7,e.gamma)},straightAlpha:{value:!1}};for(const c of a.textures)if(c.offset+c.count*4>n.byteLength)throw new Error("Invalid Blender display table");for(const c of a.textures){const o=new Float32Array(n,c.offset,c.count);let f;c.size?f=new ae(o,c.size,c.size,c.size):f=new or(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),t[c.sampler]={value:f}}this.material=new de({name:"Blender OCIO display",glslVersion:ue,depthTest:!1,depthWrite:!1,blending:ge,uniforms:t,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
|
+
${a.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 ce(this.material)}render(e,n,a,t){this.material.uniforms.frame.value=n.texture,this.material.uniforms.straightAlpha.value=t,e.setRenderTarget(a),this.quad.render(e)}encodeFrame(e,n,a,t){const c=e.getRenderTarget(),o=new or(n,a,t,Pr,K);o.needsUpdate=!0;const f=new Y(a,t);try{this.render(e,{texture:o},f,!0);const s=new Uint8Array(a*t*4);return e.readRenderTargetPixels(f,0,0,a,t,s),s}finally{e.setRenderTarget(c),o.dispose(),f.dispose()}}dispose(){for(const e of this.textures)e.dispose();this.material.dispose(),this.quad.dispose()}}async function Or(r){if(!jr[`${r.transform}/${r.look}`])throw new Error(`Unimplemented Blender display transform: ${r.transform}, ${r.look}`);return new De(r,await ze())}function Er(r,e,n,a){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 t=Math.min(2048,Math.round(n.width)),c=Math.min(2048,Math.round(n.height)),o=a?1:2,f=t*o,s=c*o,b=Br(),l=b.renderer,x={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:r.background};let u,d,I,_=!1,L;try{u=new Y(f,s,{type:K}),n.effect&&(u.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&&(r.background=null),l.setRenderTarget(u),L=n.prepareDraw?.(l,e),l.clear(),l.render(r,e);const i=n.effect?.render(l,u,r,e)??u;if(i.texture.type!==K||i.width!==f||i.height!==s)throw new Error("Scene capture effect must return a same-size half-float target");if(a){const C=new Uint16Array(f*s*4);return l.readRenderTargetPixels(i,0,0,f,s,C),_=!0,{pixels:C,width:t,height:c}}d=new Y(n.displayTransform?t:f,n.displayTransform?c:s),n.displayTransform?(I=Se(l,i,t,c),n.displayTransform.render(l,I,d,n.transparent===!0)):te(n.transparent===!0).render(l,d,i,0,!1);const $=new Uint8Array(d.width*d.height*4);l.readRenderTargetPixels(d,0,0,d.width,d.height,$);const D=document.createElement("canvas");D.width=d.width,D.height=d.height;const R=D.getContext("2d");if(!R)throw new Error("Scene capture could not create an image canvas");const B=R.createImageData(d.width,d.height),k=d.width*4;for(let C=0;C<d.height;C++)B.data.set($.subarray((d.height-1-C)*k,(d.height-C)*k),C*k);R.putImageData(B,0,0);const A=document.createElement("canvas");A.width=t,A.height=c;const z=A.getContext("2d");if(!z)throw new Error("Scene capture could not create an output canvas");z.drawImage(D,0,0,t,c);const M=A.toDataURL("image/png");return _=!0,M}finally{try{L?.()}finally{r.background=x.background,l.setRenderTarget(x.target),l.toneMapping=x.toneMapping,l.toneMappingExposure=x.exposure,l.outputColorSpace=x.colorSpace,l.shadowMap.enabled=x.shadows,l.shadowMap.type=x.shadowType,l.setClearColor(x.clearColor,x.clearAlpha),d?.dispose(),I?.dispose(),u?.dispose(),b.release({discard:!_})}}}function Be(r,e,n){return Er(r,e,n,!0)}function Pe(r,e,n){return Er(r,e,n,!1)}function Ve(r,e){const n=Br(),a=n.renderer,t=a.getRenderTarget(),c=new or(r.pixels,r.width,r.height,Pr,K);c.needsUpdate=!0;const o=new Y(r.width,r.height);let f=!1;try{e.render(a,{texture:c},o,!0);const s=new Uint8Array(r.width*r.height*4);return a.readRenderTargetPixels(o,0,0,r.width,r.height,s),f=!0,s}finally{a.setRenderTarget(t),c.dispose(),o.dispose(),n.release({discard:!f})}}function Te(r,e=1){const n=r.width/r.height,a=(r.clipStart??.1)*e,t=(r.clipEnd??2e3)*e,c=r.orthographic?new _e(-r.fov*e*n/2,r.fov*e*n/2,r.fov*e/2,-r.fov*e/2,a,t):new Ie(r.fov,n,a,t),o=r.horizontalFit??n>=1?r.width:r.height;return c.setViewOffset(r.width,r.height,(r.shiftX??0)*o,-(r.shiftY??0)*o,r.width,r.height),c}const je=r=>typeof r=="object"&&r!==null&&typeof r.subscribeFrames=="function"&&typeof r.objectForBlenderName=="function"&&typeof r.blenderObjectName=="function"&&typeof r.blenderSelection=="function"&&typeof r.setStageMode=="function";function xr(){const r=g().documents.context(qr());return je(r)?r:null}function Oe(){return xr()?.blenderSelection()??{selected:[],active:null}}const Ee={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let fr=Ee,Wr=0;const lr=new Set;let O=null,Q=null,ir="",E=null;function We(r){const e=new Map,n=new Map,a=(t,c)=>{e.set(t.id,t),n.set(t.id,c);for(const o of t.children)a(o,t.id)};for(const t of r?.rows??[])a(t,null);return{byId:e,parentOf:n}}function N(r){fr={...fr,...r},Wr+=1;for(const e of[...lr])e()}function fn(r){return lr.add(r),()=>{lr.delete(r)}}function ln(){return Wr}function sn(){return fr}function mr(r){E!==r&&(E=r,setTimeout(()=>{E===r&&(E=null,Fr(r===""?[]:r.split("\0")))},0))}let cr=0,sr=Promise.resolve();function Fr(r){const e=Fe(r);return sr=e,e}async function Fe(r){const e=r.join("\0"),n=++cr;Q=e,ir=e,N({loading:!0});try{const a=await Qe(r);if(n!==cr)return;xr()?.setStageMode(a?.mode??null),N({tree:a,...We(a),loading:!1,error:null})}catch(a){if(n!==cr)return;N({loading:!1,error:Ur(a)})}}function Ue(){Q=null,mr(ir);for(const r of[...br])r()}const br=new Set;function bn(r){return pr(),br.add(r),()=>{br.delete(r)}}let G=!1,tr=null;function pr(){const r=xr();if(O!==null&&tr===r)return;O!==null&&(O(),O=null,tr=null);const e=r;if(e!==null){O=e.subscribeFrames(Ue),tr=e;return}G||(G=!0,g().documents.waitForContext(qr()).then(()=>{G=!1,pr()}).catch(()=>{G=!1}))}function vn(r){if(!S())return;pr();const e=[...r].sort().join("\0");Q!==e&&mr(e)}async function $e(r){if(!S())return;E=null;let e=Fr([...r].sort());for(;;){if(await e,sr===e)return;e=sr}}async function dn(r,e,n){try{return await Hr(r,e,n),Q=null,mr(ir),!0}catch(a){return N({error:Ur(a)}),!1}}function Ur(r){return r instanceof Error?r.message:String(r)}const Ge={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let vr=Ge,_r=0;const J=new Set;let $r=0;function ar(){return vr}function gn(){return _r}function un(r){return J.add(r),()=>{J.delete(r)}}function W(r){vr={...vr,...r},_r+=1;for(const e of[...J])e()}function Ne(){$r+=1,_r+=1;for(const r of[...J])r()}function xn(){return $r}function V(r){W({refusal:r})}function qe(r){const e=atob(r),n=new Uint8Array(e.length);for(let a=0;a<e.length;a++)n[a]=e.charCodeAt(a);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function Gr(r,e){const n=e.linearInput,a=n?{pixels:qe(n.base64),width:n.width,height:n.height}:r;if(!a)throw new Error("Blender display transform requires a linear capture");const{pixels:t,width:c,height:o}=a,f=await Or(Tr(e));let s;try{s=Ve(a,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 x=l.createImageData(c,o),u=c*4;for(let _=0;_<o;_++){const L=(o-1-_)*u;x.data.set(s.subarray(L,L+u),_*u)}l.putImageData(x,0,0);const d=b.toDataURL("image/png"),I={base64:d.slice(d.indexOf(",")+1),mimeType:"image/png"};if(e.linear===!0){const _=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);let L="";for(let i=0;i<_.length;i+=32768)L+=String.fromCharCode(..._.subarray(i,i+32768));I.linearBase64=btoa(L),I.linearWidth=c,I.linearHeight=o}return I}async function Xe(r,e,n,a,t=()=>{}){await n.prepare(e),t();const c={prepareDraw:n.prepareDraw,effect:n.effect,width:a.width,height:a.height,transparent:a.transparent===!0,toneMapping:Vr,exposure:1};if(a.linear===!0){const f=await Gr(Be(r,e,c),a);return t(),f}const o=await Or(Tr(a));try{t();const f=Pe(r,e,{...c,displayTransform:o});return{base64:f.slice(f.indexOf(",")+1),mimeType:"image/png"}}finally{o.dispose()}}const Ir="document:blender:runtime";let y=null,Mr=0;function mn(r){const e=++Mr;return y=r,T(),()=>{Mr===e&&(y=null,T())}}function Nr(){const r=g().documents.activeId();return r?.startsWith("document:model:")?r.slice(15):y?.blend}let m=null;function q(){const r=v?.document,e=Nr();return!e||!r||e===r||m!==null&&m.owner===v&&m.document===r&&m.from===e?null:`Blender is editing ${r}, but the editor is showing ${e}, which Blender has not loaded. Wait for ${e} to finish opening and retry. If it stays, switch to another document and back, or reload the page; or return to ${r}.`}function w(){return y?.documentId??Ir}function qr(){return w()}function P(r){if(y!==r)return!1;const e=g().documents.activeId();return!(e?.startsWith("document:model:")||e===Ir)||e===r.documentId}function pn(r,e,n,a){const t=y,c=v?.presented;return g().session.open()&&!!t&&t.documentId===r&&t.entryId===e&&t.blend===n&&P(t)&&v?.project===g().projectLocalState.projectRootPath()&&v.document===n&&!!a&&!!c&&a.session===c.session&&a.revision===c.revision}let kr=Promise.resolve(),X=null;function Cr(r){const e=kr.then(r);return kr=e.then(()=>{},()=>{}),e}async function _n(r,e){let n=!1;const a=()=>{n||(e(),n=!0)},t=g(),c=X;return c&&c.session===v&&t.session.open()&&c.project===t.projectLocalState.projectRootPath()&&c.blend===r.blend&&P(r)&&a(),Cr(()=>He(r,a))}async function He(r,e){const n=g();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const a=n.projectLocalState.projectRootPath();if(a===null)throw new Error("Opening a model requires a project path.");if(!P(r))return!1;const t=v;if(t&&(t.project!==a||t.document!==r.blend)){const l=F("saving previous model before opening another");try{await t.stop()}finally{l()}if(v===t&&hr(),!n.session.open()||!P(r))return!1}const c=p(),o=c.start(a,r.blend),f={session:c,project:a,blend:r.blend};X=f;try{e(),await o}finally{X===f&&(X=null)}if(!n.session.open()||!P(r))return!1;const s=(await U()).snapshot();if(!n.session.open()||!P(r))return!1;const b=c.presented;return(!s||!b||s.session!==b.session||s.revision!==b.revision)&&await c.present(),n.session.open()&&P(r)}function S(){return v?.project!=null&&q()===null}let Xr=0;const dr=new Set;function In(){return Xr}function Cn(r){return dr.add(r),()=>{dr.delete(r)}}function T(){Xr+=1;for(const r of[...dr])r()}async function hn(r,e){return S()?p().rna(r,e):null}async function yn(r,e){return S()?p().rnaContext(r,e):null}async function Ke(r,e,n,a,t=!0){if(!S())return null;const c=await p().rnaSet(r,e,n,a,t);return T(),c}async function Sn(r){S()&&await p().viewShading(r)}async function Ye(r,e=!0,n="Blender Python"){const a=p(),t=await a.execute(r,e,n);await Je(a),T();const c=/^Error executing code:/.exec(t);return{text:t,executed:c===null,result:c===null?t.replace(/^Code executed successfully: ?/,""):"",error:c===null?null:t.replace(/^Error executing code: ?/,"")}}let gr=null;async function Je(r){const e=gr;if(!e||e.owner!==r)return;gr=null;const n=g(),a=m!==null&&m.owner===r&&m.document===e.from?m.from:e.from;m=null;const t=()=>{if(v!==r||r.document!==e.document)return!1;const o=Nr();return o===a||o===void 0&&n.documents.activeId()===Ir};if(!t())return;try{const f=(await n.project.documentTable()).entries.find(s=>s.kind==="model"&&s.source?.path===e.document);if(!f){if(!t())return;m={owner:r,from:a,document:e.document},n.console.warn(`Blender now has ${e.document} open and the model saves there. No Model document lists that file (the project's model finder does not include its folder), so the ${a} tab keeps showing Blender, which now edits ${e.document}; ${a} keeps what it last saved. Save the model under src/models/ to give it a Model tab of its own.`,"blender-document");return}if(!t())return;await n.workspace.open({kind:"document",id:f.id})||(c(),n.console.warn(`Blender now has ${e.document} open, but its Model document ${f.id} did not open; the ${a} tab keeps showing Blender, which edits ${e.document}.`,"blender-document"))}catch(o){c(),n.console.error(`The Model tab could not follow Blender to ${e.document}: ${o instanceof Error?o.message:String(o)}`,"blender-document")}function c(){t()&&(m={owner:r,from:a,document:e.document})}}function wn(){p().historyGesture("history-begin").catch(r=>g().console.error(`Could not begin Blender undo gesture: ${String(r)}`,"blender-history"))}async function Ln(){await p().historyGesture("history-end")}async function Qe(r){return S()?p().outliner(r):null}async function Rn(r){return S()?p().nodeTree(r):null}async function An(r){return S()?p().uvLayout(r):null}async function Mn(r){return S()?p().rig(r):null}async function kn(r){return S()?p().actionClip(r):null}async function Hr(r,e,n){if(!S())return null;const a=await p().outlinerSet(r,e,n);return T(),a}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(([r,e])=>({id:r,...e?{title:e}:{},run:n=>Kr({...n,action:r})}))};function Kr(r){const e=typeof r.action=="string"?r.action:"state";switch(e){case"state":break;case"look":W({looked:typeof r.node=="string"?r.node:null,refusal:null});break;case"view-all":Ne(),W({refusal:null});break;case"zoom":{const n=typeof r.zoom=="number"?r.zoom:1;W({transform:{...ar().transform,zoom:n},refusal:null});break}case"pan":{const n=ar().transform;W({transform:{...n,cx:typeof r.cx=="number"?r.cx:n.cx,cy:typeof r.cy=="number"?r.cy:n.cy},refusal:null});break}case"move":V(`Moving "${String(r.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(r.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(r.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:V(`blender-node-view: no action "${e}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return ar()}let v=null;const H=new Set;function Yr(){H.size&&g().history.invalidate([...H]),H.clear()}let ur=null,zr=!1;function F(r){try{const e=g().session.beginWork(`Blender: ${r}`);return()=>{try{e()}catch{}}}catch{return()=>{}}}function hr(){const r=F("invalidating history and releasing runtime");try{Yr(),ur?.abort(),ur=null,v?.terminate(),v=null,Qr=null}finally{r()}}function rn(){zr||(zr=!0,g().session.onBeforeClose(()=>Cr(Jr)),g().session.onEnded(hr))}async function Jr(){const r=v;await r?.stop(),v===r&&hr()}let Qr=null;const en=r=>typeof r=="object"&&r!==null&&typeof r.applyFrame=="function"&&typeof r.stageFrame=="function"&&typeof r.snapshot=="function"&&typeof r.captureSnapshot=="function"&&typeof r.recordPresentation=="function"&&typeof r.recordPhotograph=="function";async function U(){const{documents:r}=g(),e=Date.now()+15e3;let n=w(),a="no context";for(;;){n=w();const t=await r.waitForContext(n,Math.max(0,Math.min(250,e-Date.now())));if(en(t))return t;if(t!==void 0){const c=["applyFrame","stageFrame","snapshot","captureSnapshot","recordPresentation","recordPhotograph"],o=t;a=`${typeof t} context missing ${c.filter(f=>typeof o?.[f]!="function").join(", ")}`,await new Promise(f=>setTimeout(f,Math.max(0,Math.min(25,e-Date.now()))))}if(Date.now()>=e)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: ${y?.documentId??"none"}; last publication: ${a}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function p(){const r=q();if(r)throw new Error(r);if(v!==null)return v;rn();const e=new AbortController;ur=e;let n=!1,a=null;const t=()=>{const o=a;a=null,o&&o.view.stageFrame({session:o.session,revision:o.revision,abort:!0})};v=new Ae({work:F,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");H.add(s.resource);const b=async l=>{if(v!==f)throw new Error("This Blender history belongs to a closed worker");const x=await f.historyStep(s.id,l);return T(),await $e(Oe().selected),x};g().history.record({id:s.id,label:s.label,resources:[s.resource],document:w(),undo:()=>b("undo"),redo:()=>b("redo")})}},stage:async o=>{if(o.abort){t();return}const f=q();if(f)throw new Error(f);if(y===null){t();return}const s=w(),b=await U();if(e.signal.throwIfAborted(),w()!==s)throw new Error("Blender document changed during frame transfer");if(a&&a.view!==b)throw new Error("Blender presenter changed during frame transfer");b.stageFrame(o),a={view:b,session:o.session,revision:o.revision}},present:async(o,f,s)=>{const b=q();if(b)throw new Error(b);if(y===null){if(t(),s?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const l=w(),x=F("waiting for Model presenter");let u;try{u=await U()}finally{x()}if(e.signal.throwIfAborted(),w()!==l)throw new Error("Blender document changed before its frame could be presented");if(a&&a.view!==u)throw new Error("Blender presenter changed before its frame could be presented");const d=F("applying frame to Model"),I=(()=>{try{return u.applyFrame(o)}finally{d()}})();a=null;const _=typeof I=="object"&&I!==null&&"held"in I,L=_?I.held:null,i=M=>({...M===void 0?{}:{capture:M},..._?{held:L}:{}});if(u.recordPresentation(f),!s||(Qr=s,!s.render))return i(void 0);const $=u.snapshot(),D=()=>{if(e.signal.throwIfAborted(),w()!==l||u.snapshot()!==$)throw new Error("Blender capture document or source revision changed before completion")};if(s.render.linearInput){const M=await Gr(null,s.render);return D(),i(M)}const{render:R,position:B,target:k,up:A}=s;if(!B||!k||!A)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 z=u.captureSnapshot();n=!0,e.signal.addEventListener("abort",z.dispose,{once:!0});try{D();const M=new Ce;M.add(z.root),M.updateMatrixWorld(!0);const C=z.root.matrixWorld,Z=new he().copy(C).invert(),Zr=new wr().setFromMatrix4(C),re=new wr().setFromMatrix4(Z),rr=new nr(B[0],B[1],B[2]).applyMatrix4(C),er=new nr(k[0],k[1],k[2]).applyMatrix4(C),yr=new nr(A[0],A[1],A[2]).applyMatrix3(Zr),ee=rr.distanceTo(er),j=Te(R,ee);j.up.copy(yr),j.position.copy(rr),j.lookAt(er),j.updateMatrixWorld(!0);const Sr={position:rr.clone().applyMatrix4(Z).toArray(),target:er.clone().applyMatrix4(Z).toArray(),up:yr.clone().applyMatrix3(re).toArray()};u.recordPhotograph({sent:{position:B,target:k,up:A},photographed:Sr,render:{width:R.width,height:R.height,fov:R.fov,orthographic:R.orthographic}});const ne=await Xe(M,j,z,R,D);return i({...ne,camera:Sr})}finally{n=!1,e.signal.removeEventListener("abort",z.dispose),z.dispose()}},log:(o,f)=>console[o](`[blender] ${f}`),documentMoved:o=>{const f=v;f&&(gr={owner:f,from:o.from,document:o.document},g().console.log(`Blender now has ${o.document} open (a script saved or opened it there), so the model saves to ${o.document} from now on; ${o.from} keeps what it last saved.`,"blender-document"))}});const c=v;return g().session.reportWorkerCallMeter("Blender",()=>c.metrics()),v}const Dr="models/model.blend",h=(r,e)=>{const n=r[e];if(typeof n!="string")throw new Error(`${String(r.type)} requires a string "${e}"`);return n};function nn(r){const e=g().projectLocalState.projectRootPath();if(e===null)return{};if(r==="")return{};const n=e.endsWith("/")?e:`${e}/`;return r.startsWith(n)?{document:r.slice(n.length)}:{}}async function zn(r){const e=g();if(r.type==="blender-draw-batching"){if(typeof r.enabled!="boolean")return{ok:!1,error:"blender-draw-batching requires boolean enabled"};if(!v?.project||!e.session.open())return{ok:!1,error:"Open a Blender document before changing draw batching"};const n=await U();return n.setDrawBatching(r.enabled),{ok:!0,data:{instancing:n.drawStatistics()}}}if(r.type==="blender-status")return{ok:!0,data:{started:v?.project!=null,document:e.documents.context(w())!==void 0,instancing:v?.project!=null?(await U()).drawStatistics():null,lastOutput:v?.lastOutput??[]}};if(!e.session.open())return{ok:!1,error:`${r.type} needs an open project session; this editor page has none.`};try{const n=r.type==="blender-start"?h(r,"project"):null;let a=typeof r.document=="string"?r.document:void 0;if((r.type==="blender-stop"||r.type==="blender-start"&&r.fresh===!0)&&(await Cr(Jr),r.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(r.type==="blender-start"&&!e.documents.context(w())){const c=await e.project.documentTable(),o=c.entries.filter(l=>l.kind==="model"),f=a!==void 0?o.find(l=>l.source?.path===a):o.find(l=>l.id===(y?.entryId??c.default))??(o.length===1?o[0]:void 0);if(!f)return{ok:!1,error:a!==void 0?`No declared Model document names ${a}.`:`Choose a Model document before starting Blender. Available: ${o.map(l=>l.id).join(", ")||"(none)"}.`};const s=f.id;if(a=f.source?.path,!await e.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 t=p();switch(r.type){case"blender-start":{const c=m!==null&&m.owner===t&&m.from===(y?.blend??Dr)?m.document:y?.blend,o=a!==void 0?a:c??Dr;return{ok:!0,data:{...await t.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await Ye(h(r,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await t.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await t.objectInfo(h(r,"name"))}};case"blender-rna":{const c=typeof r.names=="number"?r.names:void 0;return{ok:!0,data:{result:await t.rna(h(r,"path"),c)}}}case"blender-rna-context":{const c=typeof r.object=="string"?r.object:void 0,o=typeof r.collection=="string"?r.collection:void 0;return{ok:!0,data:{result:await t.rnaContext(c,o)}}}case"blender-rna-set":{const c=typeof r.index=="number"?r.index:void 0;return{ok:!0,data:{result:await Ke(h(r,"path"),h(r,"property"),r.value,c)}}}case"blender-outliner":{const c=Array.isArray(r.selected)?r.selected.filter(o=>typeof o=="string"):void 0;return{ok:!0,data:{result:await t.outliner(c)}}}case"blender-node-tree":return{ok:!0,data:{result:await t.nodeTree({...typeof r.path=="string"?{path:r.path}:{},...typeof r.material=="string"?{material:r.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await t.uvLayout({...typeof r.object=="string"?{object:r.object}:{},...typeof r.uvLayer=="string"?{uvLayer:r.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await t.rig({...typeof r.object=="string"?{object:r.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await t.actionClip({...typeof r.object=="string"?{object:r.object}:{},...typeof r.bake=="boolean"?{bake:r.bake}:{}})}};case"blender-node-view":{const c=typeof r.action=="string"?r.action:"state";return{ok:!0,data:{result:Ze.verbs.some(f=>f.id===c)?ye("blender-node-view",c,r):Kr(r)}}}case"blender-outliner-set":return{ok:!0,data:{result:await Hr(h(r,"path"),h(r,"column"),r.value!==!1)}};case"blender-screenshot-view":{const c=typeof r.maxSize=="number"?r.maxSize:1e3,o={kind:"document",id:y?.entryId??"blender:runtime"};return{ok:!0,data:{...await t.screenshotView(c),document:o}}}case"blender-native-preview":{const c=r.camera;if(c!==void 0&&typeof c!="string")throw new Error("Native preview camera must be a name");return{ok:!0,data:{...await t.nativePreview({width:r.width,height:r.height,samples:r.samples,...c===void 0?{}:{camera:c}})}}}case"blender-read-file":{const c=await t.readFile(h(r,"path")),o=h(r,"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(r,"base64")),o=Uint8Array.from(c,f=>f.charCodeAt(0));return await t.writeFile(h(r,"path"),o),{ok:!0,data:{written:o.length}}}case"blender-list-files":{const{entries:c,document:o}=await t.listFilesSnapshot(h(r,"path"));return{ok:!0,data:{entries:c,session:o.session,revision:o.revision,...nn(o.filepath)}}}}return{ok:!1,error:`Unknown Blender command ${r.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{pn as A,P as B,_n as C,yn as D,hn as E,Or as F,Sn as G,qr as H,S as I,T as J,zn as K,Ze as N,un as a,In as b,W as c,ar as d,Rn as e,xn as f,kn as g,Mn as h,Ke as i,An as j,fn as k,sn as l,$e as m,gn as n,bn as o,Oe as p,ln as q,V as r,Cn as s,Ln as t,wn as u,vn as v,dn as w,Ye as x,xr as y,mn as z};
|