python-cad-tools 0.1.0rc1__py3-none-any.whl
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.
- python_cad_tools/__init__.py +10 -0
- python_cad_tools/_locking.py +63 -0
- python_cad_tools/_project_loader.py +273 -0
- python_cad_tools/_project_state.py +65 -0
- python_cad_tools/_scaffold.py +66 -0
- python_cad_tools/_transaction.py +208 -0
- python_cad_tools/_viewer_static/app.webmanifest +18 -0
- python_cad_tools/_viewer_static/asset-manifest.json +1 -0
- python_cad_tools/_viewer_static/assets/animationGroup-Sd34ntWg.js +1 -0
- python_cad_tools/_viewer_static/assets/bakedVertexAnimation-Cd_pRdrn.js +316 -0
- python_cad_tools/_viewer_static/assets/basisTextureLoader-DWgvS_1G.js +1 -0
- python_cad_tools/_viewer_static/assets/brdfTextureTools-CWGiG1W2.js +2 -0
- python_cad_tools/_viewer_static/assets/bumpFragment-CWULheF1.js +127 -0
- python_cad_tools/_viewer_static/assets/bumpVertex-DqzFZayE.js +6 -0
- python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-C5EFyTio.js +6 -0
- python_cad_tools/_viewer_static/assets/clipPlaneFragment-BXRtt4jj.js +46 -0
- python_cad_tools/_viewer_static/assets/clipPlaneVertex-B_VhD1oQ.js +37 -0
- python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DRpaukza.js +1 -0
- python_cad_tools/_viewer_static/assets/dds-Dkb2Cx2N.js +1 -0
- python_cad_tools/_viewer_static/assets/dds.pure-DtvJsKvY.js +1 -0
- python_cad_tools/_viewer_static/assets/ddsTextureLoader-H78xux1g.js +1 -0
- python_cad_tools/_viewer_static/assets/default.fragment-oSQ-tWhe.js +469 -0
- python_cad_tools/_viewer_static/assets/default.vertex-DhFjw_Da.js +209 -0
- python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BMDHNppx.js +5 -0
- python_cad_tools/_viewer_static/assets/dumpTools-BaNZPjUX.js +2 -0
- python_cad_tools/_viewer_static/assets/envTextureLoader-V0YnLcIM.js +1 -0
- python_cad_tools/_viewer_static/assets/exrTextureLoader-CjGyIK3x.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-CW5nuobR.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-LFqYIkhj.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BMOHUbBm.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BJRHMXMo.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Dng-6jE0.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CgbK3CQZ.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-8zMtq9tg.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BiLr2rkI.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-J1vcCtNP.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CFb5nuaV.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphContextBlock-DAeGVzhC.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-lZlAQiJd.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-BIzvmbVy.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-DvNuMVwy.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-Dymd2VEE.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-v68aoNLH.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CTnGv92q.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DXsO0Chw.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CPpe9T75.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-GIYCz4AQ.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Eiqoivbz.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CUyOsPw0.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-O4597zBl.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-E00Z3KXM.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DnkA9MNH.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-OmCorK0y.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-RuVtj6g2.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DO4pAfHi.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-7W1XYOC8.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D4m-I4CS.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BISVSMw6.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Drh1EeW6.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-Clry-68M.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-LbBVxGBE.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DIVXCSHh.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B8f2dOFT.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CQr8LCee.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMg_iEHl.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BLE5p4mi.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BMzDItQ5.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DRURovjn.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-CnQR--Gn.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-C-uv2jhP.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DszzRB5X.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DeTDSudb.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DWuwoFWr.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-DEnj2cQw.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-zs8Fp9ky.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BYAKUQXd.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-vFwn79bS.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-BEIhMs-A.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-DFbELP_j.js +1 -0
- python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C1OKQ-_F.js +1 -0
- python_cad_tools/_viewer_static/assets/fogFragment-DtDlQBnz.js +25 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting-Cfigjb15.js +242 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting-DIn8R8oF.js +296 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BxeRJ2k-.js +38 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DNDmvRs-.js +37 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-D92z5jYn.js +86 -0
- python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DSWfFnKQ.js +86 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js +12 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js +17 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js +30 -0
- python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js +19 -0
- python_cad_tools/_viewer_static/assets/geometry.fragment-CsJIm2H0.js +242 -0
- python_cad_tools/_viewer_static/assets/geometry.fragment-Dph3muZt.js +262 -0
- python_cad_tools/_viewer_static/assets/geometry.vertex-BXGMTA_J.js +212 -0
- python_cad_tools/_viewer_static/assets/geometry.vertex-Bm9Wg3Gi.js +214 -0
- python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BJSwKIJD.js +7 -0
- python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-DcyS1cTF.js +63 -0
- python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BGq1Fakj.js +75 -0
- python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DxcneU_F.js +25 -0
- python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DaJJKqMV.js +8 -0
- python_cad_tools/_viewer_static/assets/harmonicsFunctions-DzJcvNWG.js +16 -0
- python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js +2 -0
- python_cad_tools/_viewer_static/assets/helperFunctions-Cugfp1Fz.js +87 -0
- python_cad_tools/_viewer_static/assets/iesTextureLoader-CO4G0p2M.js +2 -0
- python_cad_tools/_viewer_static/assets/index-B2zBEWsq.js +7007 -0
- python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css +1 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B6CTXTxY.js +57 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BkKbudbW.js +57 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BYwFU5IS.js +11 -0
- python_cad_tools/_viewer_static/assets/kernelBlur.vertex-D371zUfT.js +11 -0
- python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CgBGaCHg.js +1 -0
- python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YS8JpqdO.js +1 -0
- python_cad_tools/_viewer_static/assets/ktxTextureLoader-ncMSJTjl.js +1 -0
- python_cad_tools/_viewer_static/assets/lightFragment-skHiFbKB.js +398 -0
- python_cad_tools/_viewer_static/assets/logDepthDeclaration-BR8XRz9F.js +4 -0
- python_cad_tools/_viewer_static/assets/logDepthVertex-UKrhEIvg.js +14 -0
- python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BxQWGFcG.js +4 -0
- python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js +1 -0
- python_cad_tools/_viewer_static/assets/meshUboDeclaration-BnX046aQ.js +4 -0
- python_cad_tools/_viewer_static/assets/oitFragment-CTMCOfNP.js +605 -0
- python_cad_tools/_viewer_static/assets/openpbr.fragment-DPJPqi6p.js +1530 -0
- python_cad_tools/_viewer_static/assets/openpbr.fragment-Dv6qTVVi.js +1384 -0
- python_cad_tools/_viewer_static/assets/openpbr.vertex-Bn2wrdGL.js +364 -0
- python_cad_tools/_viewer_static/assets/openpbr.vertex-CHESW3gB.js +251 -0
- python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BdK7VgO_.js +3 -0
- python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js +4 -0
- python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BDa9qEoN.js +339 -0
- python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Ba_ly4LE.js +343 -0
- python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BY2lSH2C.js +5 -0
- python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DajhikDS.js +6 -0
- python_cad_tools/_viewer_static/assets/packingFunctions-BHPwcGG2.js +4 -0
- python_cad_tools/_viewer_static/assets/packingFunctions-DTwzBRBx.js +4 -0
- python_cad_tools/_viewer_static/assets/pass.fragment-9oKU4pI3.js +4 -0
- python_cad_tools/_viewer_static/assets/passCube.fragment-CpAeiYx1.js +23 -0
- python_cad_tools/_viewer_static/assets/passCube.fragment-DHtSWVRF.js +23 -0
- python_cad_tools/_viewer_static/assets/pbr.fragment-cIhMKwLs.js +2560 -0
- python_cad_tools/_viewer_static/assets/pbr.vertex-BfdONsf2.js +255 -0
- python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-B_ppOzPO.js +173 -0
- python_cad_tools/_viewer_static/assets/pbrDebug-DDdwL5_t.js +693 -0
- python_cad_tools/_viewer_static/assets/pbrIBLFunctions-b1zdpzOP.js +43 -0
- python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BZA7yVhu.js +2 -0
- python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BRvKRnjl.js +1 -0
- python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CMZp25k3.js +5 -0
- python_cad_tools/_viewer_static/assets/postprocess.vertex-DzdUpNbW.js +9 -0
- python_cad_tools/_viewer_static/assets/procedural.vertex-BnbuQ-1f.js +7 -0
- python_cad_tools/_viewer_static/assets/procedural.vertex-Dp-Ng7Pc.js +8 -0
- python_cad_tools/_viewer_static/assets/reflectionFunction-DBlr3oDs.js +83 -0
- python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CyvnZFOJ.js +5 -0
- python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Dz4zLnoD.js +5 -0
- python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-iscgpA1_.js +5 -0
- python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BzFIc4mb.js +11 -0
- python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C9D0rd-M.js +151 -0
- python_cad_tools/_viewer_static/assets/textureProcessor.fragment-JMKyWZng.js +146 -0
- python_cad_tools/_viewer_static/assets/tgaTextureLoader-oxTElIQJ.js +1 -0
- python_cad_tools/_viewer_static/assets/vertexColorMixing-mdC9xZe1.js +418 -0
- python_cad_tools/_viewer_static/favicon.svg +10 -0
- python_cad_tools/_viewer_static/index.html +18 -0
- python_cad_tools/_viewer_static/sw.js +61 -0
- python_cad_tools/artifacts.py +546 -0
- python_cad_tools/build-info.json +1 -0
- python_cad_tools/build.py +270 -0
- python_cad_tools/cli.py +212 -0
- python_cad_tools/context.py +67 -0
- python_cad_tools/determinism.py +66 -0
- python_cad_tools/drawings/__init__.py +124 -0
- python_cad_tools/drawings/_catalog.py +79 -0
- python_cad_tools/drawings/_validation.py +238 -0
- python_cad_tools/elements.py +121 -0
- python_cad_tools/exceptions.py +45 -0
- python_cad_tools/exporters/__init__.py +8 -0
- python_cad_tools/exporters/base.py +24 -0
- python_cad_tools/exporters/drawings/__init__.py +5 -0
- python_cad_tools/exporters/drawings/annotations.py +444 -0
- python_cad_tools/exporters/drawings/dxf.py +110 -0
- python_cad_tools/exporters/drawings/model.py +70 -0
- python_cad_tools/exporters/drawings/pdf.py +119 -0
- python_cad_tools/exporters/drawings/primitives.py +93 -0
- python_cad_tools/exporters/drawings/projection.py +64 -0
- python_cad_tools/exporters/drawings/svg.py +135 -0
- python_cad_tools/exporters/glb.py +100 -0
- python_cad_tools/exporters/ifc.py +229 -0
- python_cad_tools/exporters/quantities.py +136 -0
- python_cad_tools/exporters/step.py +117 -0
- python_cad_tools/geometry.py +187 -0
- python_cad_tools/manifests.py +338 -0
- python_cad_tools/project_config.py +174 -0
- python_cad_tools/py.typed +1 -0
- python_cad_tools/runtime_sync.py +126 -0
- python_cad_tools/schemas/build-manifest-1.json +1 -0
- python_cad_tools/schemas/design-manifest-1.json +1 -0
- python_cad_tools/schemas/download-manifest-2.json +46 -0
- python_cad_tools/schemas/drawing-annotations-1.json +66 -0
- python_cad_tools/schemas/glb-manifest-1.json +1 -0
- python_cad_tools/schemas/ifc-validation-1.json +1 -0
- python_cad_tools/schemas/quantities-1.json +1 -0
- python_cad_tools/schemas/run-metadata-1.json +1 -0
- python_cad_tools/schemas/site-metadata-1.json +34 -0
- python_cad_tools/schemas/step-validation-1.json +1 -0
- python_cad_tools/site.py +676 -0
- python_cad_tools/templates/project/.gitignore +9 -0
- python_cad_tools/templates/project/README.md +38 -0
- python_cad_tools/templates/project/config.py +36 -0
- python_cad_tools/templates/project/drawing_annotations.py +117 -0
- python_cad_tools/templates/project/model.py +87 -0
- python_cad_tools/templates/project/pyproject.toml +27 -0
- python_cad_tools/units.py +207 -0
- python_cad_tools/validation.py +153 -0
- python_cad_tools-0.1.0rc1.dist-info/METADATA +149 -0
- python_cad_tools-0.1.0rc1.dist-info/RECORD +236 -0
- python_cad_tools-0.1.0rc1.dist-info/WHEEL +5 -0
- python_cad_tools-0.1.0rc1.dist-info/entry_points.txt +2 -0
- python_cad_tools-0.1.0rc1.dist-info/licenses/LICENSE +679 -0
- python_cad_tools-0.1.0rc1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import{S as e}from"./index-B2zBEWsq.js";import{h as f}from"./helperFunctions-Cugfp1Fz.js";import{c as o,a as n}from"./clipPlaneFragment-BXRtt4jj.js";const i="glowMapGenerationPixelShader",r=`#if defined(DIFFUSE_ISLINEAR) || defined(EMISSIVE_ISLINEAR)
|
|
2
|
+
#include<helperFunctions>
|
|
3
|
+
#endif
|
|
4
|
+
#ifdef DIFFUSE
|
|
5
|
+
varying vUVDiffuse: vec2f;var diffuseSamplerSampler: sampler;var diffuseSampler: texture_2d<f32>;
|
|
6
|
+
#endif
|
|
7
|
+
#ifdef OPACITY
|
|
8
|
+
varying vUVOpacity: vec2f;var opacitySamplerSampler: sampler;var opacitySampler: texture_2d<f32>;uniform opacityIntensity: f32;
|
|
9
|
+
#endif
|
|
10
|
+
#ifdef EMISSIVE
|
|
11
|
+
varying vUVEmissive: vec2f;var emissiveSamplerSampler: sampler;var emissiveSampler: texture_2d<f32>;
|
|
12
|
+
#endif
|
|
13
|
+
#ifdef VERTEXALPHA
|
|
14
|
+
varying vColor: vec4f;
|
|
15
|
+
#endif
|
|
16
|
+
uniform glowColor: vec4f;uniform glowIntensity: f32;
|
|
17
|
+
#include<clipPlaneFragmentDeclaration>
|
|
18
|
+
#define CUSTOM_FRAGMENT_DEFINITIONS
|
|
19
|
+
@fragment
|
|
20
|
+
fn main(input: FragmentInputs)->FragmentOutputs {
|
|
21
|
+
#include<clipPlaneFragment>
|
|
22
|
+
var finalColor: vec4f=uniforms.glowColor;
|
|
23
|
+
#ifdef DIFFUSE
|
|
24
|
+
var albedoTexture: vec4f=textureSample(diffuseSampler,diffuseSamplerSampler,fragmentInputs.vUVDiffuse);
|
|
25
|
+
#ifdef DIFFUSE_ISLINEAR
|
|
26
|
+
albedoTexture=toGammaSpace(albedoTexture);
|
|
27
|
+
#endif
|
|
28
|
+
#ifdef GLOW
|
|
29
|
+
finalColor=vec4f(finalColor.rgb,finalColor.a*albedoTexture.a);
|
|
30
|
+
#endif
|
|
31
|
+
#ifdef HIGHLIGHT
|
|
32
|
+
finalColor=vec4f(finalColor.rgb,albedoTexture.a);
|
|
33
|
+
#endif
|
|
34
|
+
#endif
|
|
35
|
+
#ifdef OPACITY
|
|
36
|
+
var opacityMap: vec4f=textureSample(opacitySampler,opacitySamplerSampler,fragmentInputs.vUVOpacity);
|
|
37
|
+
#ifdef OPACITYRGB
|
|
38
|
+
finalColor=vec4f(finalColor.rgb,finalColor.a*getLuminance(opacityMap.rgb));
|
|
39
|
+
#else
|
|
40
|
+
finalColor=vec4f(finalColor.rgb,finalColor.a*opacityMap.a);
|
|
41
|
+
#endif
|
|
42
|
+
finalColor=vec4f(finalColor.rgb,finalColor.a*uniforms.opacityIntensity);
|
|
43
|
+
#endif
|
|
44
|
+
#ifdef VERTEXALPHA
|
|
45
|
+
finalColor=vec4f(finalColor.rgb,finalColor.a*fragmentInputs.vColor.a);
|
|
46
|
+
#endif
|
|
47
|
+
#ifdef ALPHATEST
|
|
48
|
+
if (finalColor.a<ALPHATESTVALUE) {discard;}
|
|
49
|
+
#endif
|
|
50
|
+
#ifdef EMISSIVE
|
|
51
|
+
var emissive: vec4f=textureSample(emissiveSampler,emissiveSamplerSampler,fragmentInputs.vUVEmissive);
|
|
52
|
+
#ifdef EMISSIVE_ISLINEAR
|
|
53
|
+
emissive=toGammaSpace(emissive);
|
|
54
|
+
#endif
|
|
55
|
+
fragmentOutputs.color=emissive*finalColor*uniforms.glowIntensity;
|
|
56
|
+
#else
|
|
57
|
+
fragmentOutputs.color=finalColor*uniforms.glowIntensity;
|
|
58
|
+
#endif
|
|
59
|
+
#ifdef HIGHLIGHT
|
|
60
|
+
fragmentOutputs.color=vec4f(fragmentOutputs.color.rgb,uniforms.glowColor.a);
|
|
61
|
+
#endif
|
|
62
|
+
}
|
|
63
|
+
`;e.ShadersStoreWGSL[i]||(e.ShadersStoreWGSL[i]=r);const l=[f,o,n];for(const a of l)e.IncludesShadersStoreWGSL[a.name]||(e.IncludesShadersStoreWGSL[a.name]=a.shader);const d={name:i,shader:r};export{d as glowMapGenerationPixelShaderWGSL};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import{S as e}from"./index-B2zBEWsq.js";import{b as a,a as n,m as f,c as o,i as s,d,e as u,f as v,g as c,h as p}from"./bakedVertexAnimation-Cd_pRdrn.js";import{c as x,a as l}from"./clipPlaneVertex-B_VhD1oQ.js";const t="glowMapGenerationVertexShader",r=`attribute position: vec3f;
|
|
2
|
+
#include<bonesDeclaration>
|
|
3
|
+
#include<bakedVertexAnimationDeclaration>
|
|
4
|
+
#include<morphTargetsVertexGlobalDeclaration>
|
|
5
|
+
#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]
|
|
6
|
+
#include<clipPlaneVertexDeclaration>
|
|
7
|
+
#include<instancesDeclaration>
|
|
8
|
+
uniform viewProjection: mat4x4f;varying vPosition: vec4f;
|
|
9
|
+
#ifdef UV1
|
|
10
|
+
attribute uv: vec2f;
|
|
11
|
+
#endif
|
|
12
|
+
#ifdef UV2
|
|
13
|
+
attribute uv2: vec2f;
|
|
14
|
+
#endif
|
|
15
|
+
#ifdef DIFFUSE
|
|
16
|
+
varying vUVDiffuse: vec2f;uniform diffuseMatrix: mat4x4f;
|
|
17
|
+
#endif
|
|
18
|
+
#ifdef OPACITY
|
|
19
|
+
varying vUVOpacity: vec2f;uniform opacityMatrix: mat4x4f;
|
|
20
|
+
#endif
|
|
21
|
+
#ifdef EMISSIVE
|
|
22
|
+
varying vUVEmissive: vec2f;uniform emissiveMatrix: mat4x4f;
|
|
23
|
+
#endif
|
|
24
|
+
#ifdef VERTEXALPHA
|
|
25
|
+
attribute color: vec4f;varying vColor: vec4f;
|
|
26
|
+
#endif
|
|
27
|
+
#define CUSTOM_VERTEX_DEFINITIONS
|
|
28
|
+
@vertex
|
|
29
|
+
fn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=vertexInputs.position;
|
|
30
|
+
#ifdef UV1
|
|
31
|
+
var uvUpdated: vec2f=vertexInputs.uv;
|
|
32
|
+
#endif
|
|
33
|
+
#ifdef UV2
|
|
34
|
+
var uv2Updated: vec2f=vertexInputs.uv2;
|
|
35
|
+
#endif
|
|
36
|
+
#include<morphTargetsVertexGlobal>
|
|
37
|
+
#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]
|
|
38
|
+
#include<instancesVertex>
|
|
39
|
+
#include<bonesVertex>
|
|
40
|
+
#include<bakedVertexAnimation>
|
|
41
|
+
var worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);
|
|
42
|
+
#ifdef CUBEMAP
|
|
43
|
+
vertexOutputs.vPosition=worldPos;vertexOutputs.position=uniforms.viewProjection*finalWorld* vec4f(vertexInputs.position,1.0);
|
|
44
|
+
#else
|
|
45
|
+
vertexOutputs.vPosition=uniforms.viewProjection*worldPos;vertexOutputs.position=vertexOutputs.vPosition;
|
|
46
|
+
#endif
|
|
47
|
+
#ifdef DIFFUSE
|
|
48
|
+
#ifdef DIFFUSEUV1
|
|
49
|
+
vertexOutputs.vUVDiffuse= (uniforms.diffuseMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
|
|
50
|
+
#endif
|
|
51
|
+
#ifdef DIFFUSEUV2
|
|
52
|
+
vertexOutputs.vUVDiffuse= (uniforms.diffuseMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
|
|
53
|
+
#endif
|
|
54
|
+
#endif
|
|
55
|
+
#ifdef OPACITY
|
|
56
|
+
#ifdef OPACITYUV1
|
|
57
|
+
vertexOutputs.vUVOpacity= (uniforms.opacityMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
|
|
58
|
+
#endif
|
|
59
|
+
#ifdef OPACITYUV2
|
|
60
|
+
vertexOutputs.vUVOpacity= (uniforms.opacityMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
|
|
61
|
+
#endif
|
|
62
|
+
#endif
|
|
63
|
+
#ifdef EMISSIVE
|
|
64
|
+
#ifdef EMISSIVEUV1
|
|
65
|
+
vertexOutputs.vUVEmissive= (uniforms.emissiveMatrix* vec4f(uvUpdated,1.0,0.0)).xy;
|
|
66
|
+
#endif
|
|
67
|
+
#ifdef EMISSIVEUV2
|
|
68
|
+
vertexOutputs.vUVEmissive= (uniforms.emissiveMatrix* vec4f(uv2Updated,1.0,0.0)).xy;
|
|
69
|
+
#endif
|
|
70
|
+
#endif
|
|
71
|
+
#ifdef VERTEXALPHA
|
|
72
|
+
vertexOutputs.vColor=vertexInputs.color;
|
|
73
|
+
#endif
|
|
74
|
+
#include<clipPlaneVertex>
|
|
75
|
+
}`;e.ShadersStoreWGSL[t]||(e.ShadersStoreWGSL[t]=r);const m=[a,n,f,o,x,s,d,u,v,c,p,l];for(const i of m)e.IncludesShadersStoreWGSL[i.name]||(e.IncludesShadersStoreWGSL[i.name]=i.shader);const I={name:t,shader:r};export{I as glowMapGenerationVertexShaderWGSL};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import{S as r}from"./index-B2zBEWsq.js";const e="glowMapMergePixelShader",a=`varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
|
|
2
|
+
#ifdef EMISSIVE
|
|
3
|
+
var textureSampler2Sampler: sampler;var textureSampler2: texture_2d<f32>;
|
|
4
|
+
#endif
|
|
5
|
+
uniform offset: f32;
|
|
6
|
+
#define CUSTOM_FRAGMENT_DEFINITIONS
|
|
7
|
+
@fragment
|
|
8
|
+
fn main(input: FragmentInputs)->FragmentOutputs {
|
|
9
|
+
#define CUSTOM_FRAGMENT_MAIN_BEGIN
|
|
10
|
+
var baseColor: vec4f=textureSample(textureSampler,textureSamplerSampler,input.vUV);
|
|
11
|
+
#ifdef EMISSIVE
|
|
12
|
+
baseColor+=textureSample(textureSampler2,textureSampler2Sampler,input.vUV);baseColor*=uniforms.offset;
|
|
13
|
+
#else
|
|
14
|
+
baseColor=vec4f(baseColor.rgb,abs(uniforms.offset-baseColor.a));
|
|
15
|
+
#ifdef STROKE
|
|
16
|
+
var alpha: f32=smoothstep(.0,.1,baseColor.a);baseColor=vec4f(baseColor.rgb*alpha,alpha);
|
|
17
|
+
#endif
|
|
18
|
+
#endif
|
|
19
|
+
#if LDR
|
|
20
|
+
baseColor=clamp(baseColor,vec4f(0.),vec4f(1.0));
|
|
21
|
+
#endif
|
|
22
|
+
fragmentOutputs.color=baseColor;
|
|
23
|
+
#define CUSTOM_FRAGMENT_MAIN_END
|
|
24
|
+
}
|
|
25
|
+
`;r.ShadersStoreWGSL[e]||(r.ShadersStoreWGSL[e]=a);const o={name:e,shader:a};export{o as glowMapMergePixelShaderWGSL};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{S as t}from"./index-B2zBEWsq.js";const e="glowMapMergeVertexShader",r=`attribute position: vec2f;varying vUV: vec2f;
|
|
2
|
+
#define CUSTOM_VERTEX_DEFINITIONS
|
|
3
|
+
@vertex
|
|
4
|
+
fn main(input : VertexInputs)->FragmentInputs {const madd: vec2f= vec2f(0.5,0.5);
|
|
5
|
+
#define CUSTOM_VERTEX_MAIN_BEGIN
|
|
6
|
+
vertexOutputs.vUV=vertexInputs.position*madd+madd;vertexOutputs.position= vec4f(vertexInputs.position,0.0,1.0);
|
|
7
|
+
#define CUSTOM_VERTEX_MAIN_END
|
|
8
|
+
}`;t.ShadersStoreWGSL[e]||(t.ShadersStoreWGSL[e]=r);const o={name:e,shader:r};export{o as glowMapMergeVertexShaderWGSL};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{S as a}from"./index-B2zBEWsq.js";const r="harmonicsFunctions",e=`#ifdef USESPHERICALFROMREFLECTIONMAP
|
|
2
|
+
#ifdef SPHERICAL_HARMONICS
|
|
3
|
+
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {return uniforms.vSphericalL00
|
|
4
|
+
+ uniforms.vSphericalL1_1*(normal.y)
|
|
5
|
+
+ uniforms.vSphericalL10*(normal.z)
|
|
6
|
+
+ uniforms.vSphericalL11*(normal.x)
|
|
7
|
+
+ uniforms.vSphericalL2_2*(normal.y*normal.x)
|
|
8
|
+
+ uniforms.vSphericalL2_1*(normal.y*normal.z)
|
|
9
|
+
+ uniforms.vSphericalL20*((3.0*normal.z*normal.z)-1.0)
|
|
10
|
+
+ uniforms.vSphericalL21*(normal.z*normal.x)
|
|
11
|
+
+ uniforms.vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));}
|
|
12
|
+
#else
|
|
13
|
+
fn computeEnvironmentIrradiance(normal: vec3f)->vec3f {var Nx: f32=normal.x;var Ny: f32=normal.y;var Nz: f32=normal.z;var C1: vec3f=uniforms.vSphericalZZ.rgb;var Cx: vec3f=uniforms.vSphericalX.rgb;var Cy: vec3f=uniforms.vSphericalY.rgb;var Cz: vec3f=uniforms.vSphericalZ.rgb;var Cxx_zz: vec3f=uniforms.vSphericalXX_ZZ.rgb;var Cyy_zz: vec3f=uniforms.vSphericalYY_ZZ.rgb;var Cxy: vec3f=uniforms.vSphericalXY.rgb;var Cyz: vec3f=uniforms.vSphericalYZ.rgb;var Czx: vec3f=uniforms.vSphericalZX.rgb;var a1: vec3f=Cyy_zz*Ny+Cy;var a2: vec3f=Cyz*Nz+a1;var b1: vec3f=Czx*Nz+Cx;var b2: vec3f=Cxy*Ny+b1;var b3: vec3f=Cxx_zz*Nx+b2;var t1: vec3f=Cz *Nz+C1;var t2: vec3f=a2 *Ny+t1;var t3: vec3f=b3 *Nx+t2;return t3;}
|
|
14
|
+
#endif
|
|
15
|
+
#endif
|
|
16
|
+
`;a.IncludesShadersStoreWGSL[r]||(a.IncludesShadersStoreWGSL[r]=e);const v={name:r,shader:e};export{v as h};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function D(t,e){return e>1023?t*Math.pow(2,1023)*Math.pow(2,e-1023):e<-1074?t*Math.pow(2,-1074)*Math.pow(2,e+1074):t*Math.pow(2,e)}function B(t,e,s,r,i,n){i>0?(i=D(1,i-136),t[n+0]=e*i,t[n+1]=s*i,t[n+2]=r*i):(t[n+0]=0,t[n+1]=0,t[n+2]=0)}function g(t,e){let s="",r;for(let i=e;i<t.length-e&&(r=String.fromCharCode(t[i]),r!=`
|
|
2
|
+
`);i++)s+=r;return s}function b(t){let e=g(t,0);if(e[0]!="#"||e[1]!="?")throw"Bad HDR Format.";let s=!1,r=!1,i=0;do i+=e.length+1,e=g(t,i),e=="FORMAT=32-bit_rle_rgbe"?r=!0:e.length==0&&(s=!0);while(!s);if(!r)throw"HDR Bad header format, unsupported FORMAT";i+=e.length+1,e=g(t,i);const o=/^-Y (.*) \+X (.*)$/g.exec(e);if(!o||o.length<3)throw"HDR Bad header format, no size";const h=parseInt(o[2]),l=parseInt(o[1]);if(h<8||h>32767)throw"HDR Bad header format, unsupported size";return i+=e.length+1,{height:l,width:h,dataPosition:i}}function m(t,e){return H(t,e)}function H(t,e){let s=e.height;const r=e.width;let i,n,o,h,l,a=e.dataPosition,f,d,c;const p=new ArrayBuffer(r*4),w=new Uint8Array(p),A=new ArrayBuffer(e.width*e.height*4*3),u=new Float32Array(A);for(;s>0;){if(i=t[a++],n=t[a++],o=t[a++],h=t[a++],i!=2||n!=2||o&128||e.width<8||e.width>32767)return F(t,e);if((o<<8|h)!=r)throw"HDR Bad header format, wrong scan line width";for(f=0,c=0;c<4;c++)for(d=(c+1)*r;f<d;)if(i=t[a++],n=t[a++],i>128){if(l=i-128,l==0||l>d-f)throw"HDR Bad Format, bad scanline data (run)";for(;l-- >0;)w[f++]=n}else{if(l=i,l==0||l>d-f)throw"HDR Bad Format, bad scanline data (non-run)";if(w[f++]=n,--l>0)for(let R=0;R<l;R++)w[f++]=t[a++]}for(c=0;c<r;c++)i=w[c],n=w[c+r],o=w[c+2*r],h=w[c+3*r],B(u,i,n,o,h,(e.height-s)*r*3+c*3);s--}return u}function F(t,e){let s=e.height;const r=e.width;let i,n,o,h,l,a=e.dataPosition;const f=new ArrayBuffer(e.width*e.height*4*3),d=new Float32Array(f);for(;s>0;){for(l=0;l<e.width;l++)i=t[a++],n=t[a++],o=t[a++],h=t[a++],B(d,i,n,o,h,(e.height-s)*r*3+l*3);s--}return d}class M{constructor(){this.supportCascades=!1}loadCubeData(){throw".hdr not supported in Cube."}loadData(e,s,r){const i=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=b(i),o=m(i,n),h=n.width*n.height,l=new Float32Array(h*4);for(let a=0;a<h;a+=1)l[a*4]=o[a*3],l[a*4+1]=o[a*3+1],l[a*4+2]=o[a*3+2],l[a*4+3]=1;r(n.width,n.height,s.generateMipMaps,!1,()=>{const a=s.getEngine();s.type=1,s.format=5,s._gammaSpace=!1,a._uploadDataToTextureDirectly(s,l)})}}export{M as _HDRTextureLoader};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import{S as r}from"./index-B2zBEWsq.js";const e="helperFunctions",t=`const PI: f32=3.1415926535897932384626433832795;const TWO_PI: f32=6.283185307179586;const HALF_PI: f32=1.5707963267948966;const RECIPROCAL_PI: f32=0.3183098861837907;const RECIPROCAL_PI2: f32=0.15915494309189535;const RECIPROCAL_PI4: f32=0.07957747154594767;const HALF_MIN: f32=5.96046448e-08;
|
|
2
|
+
const LinearEncodePowerApprox: f32=2.2;const GammaEncodePowerApprox: f32=1.0/LinearEncodePowerApprox;const LuminanceEncodeApprox: vec3f=vec3f(0.2126,0.7152,0.0722);const Epsilon:f32=0.0000001;fn square(x: f32)->f32 {return x*x;}
|
|
3
|
+
fn saturate(x: f32)->f32 {return clamp(x,0.0,1.0);}
|
|
4
|
+
fn saturateVec3(x: vec3f)->vec3f {return clamp(x,vec3f(),vec3f(1.0));}
|
|
5
|
+
fn saturateEps(x: f32)->f32 {return clamp(x,Epsilon,1.0);}
|
|
6
|
+
fn maxEps(x: f32)->f32 {return max(x,Epsilon);}
|
|
7
|
+
fn maxEpsVec3(x: vec3f)->vec3f {return max(x,vec3f(Epsilon));}
|
|
8
|
+
fn absEps(x: f32)->f32 {return abs(x)+Epsilon;}
|
|
9
|
+
fn transposeMat3(inMatrix: mat3x3f)->mat3x3f {let i0: vec3f=inMatrix[0];let i1: vec3f=inMatrix[1];let i2: vec3f=inMatrix[2];let outMatrix:mat3x3f=mat3x3f(
|
|
10
|
+
vec3(i0.x,i1.x,i2.x),
|
|
11
|
+
vec3(i0.y,i1.y,i2.y),
|
|
12
|
+
vec3(i0.z,i1.z,i2.z)
|
|
13
|
+
);return outMatrix;}
|
|
14
|
+
fn inverseMat3(inMatrix: mat3x3f)->mat3x3f {let a00: f32=inMatrix[0][0];let a01: f32=inMatrix[0][1];let a02: f32=inMatrix[0][2];let a10: f32=inMatrix[1][0];let a11: f32=inMatrix[1][1];let a12: f32=inMatrix[1][2];let a20: f32=inMatrix[2][0];let a21: f32=inMatrix[2][1];let a22: f32=inMatrix[2][2];let b01: f32=a22*a11-a12*a21;let b11: f32=-a22*a10+a12*a20;let b21: f32=a21*a10-a11*a20;let det: f32=a00*b01+a01*b11+a02*b21;return mat3x3f(b01/det,(-a22*a01+a02*a21)/det,(a12*a01-a02*a11)/det,
|
|
15
|
+
b11/det,(a22*a00-a02*a20)/det,(-a12*a00+a02*a10)/det,
|
|
16
|
+
b21/det,(-a21*a00+a01*a20)/det,(a11*a00-a01*a10)/det);}
|
|
17
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
18
|
+
fn toLinearSpaceExact(color: vec3f)->vec3f
|
|
19
|
+
{let nearZeroSection: vec3f=0.0773993808*color;let remainingSection: vec3f=pow(0.947867299*(color+vec3f(0.055)),vec3f(2.4));return select(remainingSection,nearZeroSection,color<=vec3f(0.04045));}
|
|
20
|
+
fn toGammaSpaceExact(color: vec3f)->vec3f
|
|
21
|
+
{let nearZeroSection: vec3f=12.92*color;let remainingSection: vec3f=1.055*pow(color,vec3f(0.41666))-vec3f(0.055);return select(remainingSection,nearZeroSection,color<=vec3f(0.0031308));}
|
|
22
|
+
#endif
|
|
23
|
+
fn toLinearSpace(color: f32)->f32
|
|
24
|
+
{
|
|
25
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
26
|
+
var nearZeroSection=0.0773993808*color;var remainingSection=pow(0.947867299*(color+0.055),2.4);return select(remainingSection,nearZeroSection,color<=0.04045);
|
|
27
|
+
#else
|
|
28
|
+
return pow(color,LinearEncodePowerApprox);
|
|
29
|
+
#endif
|
|
30
|
+
}
|
|
31
|
+
fn toLinearSpaceVec3(color: vec3f)->vec3f
|
|
32
|
+
{
|
|
33
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
34
|
+
return toLinearSpaceExact(color);
|
|
35
|
+
#else
|
|
36
|
+
return pow(color,vec3f(LinearEncodePowerApprox));
|
|
37
|
+
#endif
|
|
38
|
+
}
|
|
39
|
+
fn toLinearSpaceVec4(color: vec4<f32>)->vec4<f32>
|
|
40
|
+
{
|
|
41
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
42
|
+
return vec4f(toLinearSpaceExact(color.rgb),color.a);
|
|
43
|
+
#else
|
|
44
|
+
return vec4f(pow(color.rgb,vec3f(LinearEncodePowerApprox)),color.a);
|
|
45
|
+
#endif
|
|
46
|
+
}
|
|
47
|
+
fn toGammaSpace(color: vec4<f32>)->vec4<f32>
|
|
48
|
+
{
|
|
49
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
50
|
+
return vec4<f32>(toGammaSpaceExact(color.rgb),color.a);
|
|
51
|
+
#else
|
|
52
|
+
return vec4<f32>(pow(color.rgb,vec3f(GammaEncodePowerApprox)),color.a);
|
|
53
|
+
#endif
|
|
54
|
+
}
|
|
55
|
+
fn toGammaSpaceVec3(color: vec3f)->vec3f
|
|
56
|
+
{
|
|
57
|
+
#if USE_EXACT_SRGB_CONVERSIONS
|
|
58
|
+
return toGammaSpaceExact(color);
|
|
59
|
+
#else
|
|
60
|
+
return pow(color,vec3f(GammaEncodePowerApprox));
|
|
61
|
+
#endif
|
|
62
|
+
}
|
|
63
|
+
fn squareVec3(value: vec3f)->vec3f
|
|
64
|
+
{return value*value;}
|
|
65
|
+
fn pow5(value: f32)->f32 {let sq: f32=value*value;return sq*sq*value;}
|
|
66
|
+
fn double_refract(I: vec3f,N: vec3f,eta: f32)->vec3f {let Tfront: vec3f=refract(I,N,1.0/eta);let Nback: vec3f=normalize(reflect(N,Tfront));return refract(Tfront,-Nback,eta);}
|
|
67
|
+
fn getLuminanceUnclamped(color: vec3f)->f32
|
|
68
|
+
{return dot(color,LuminanceEncodeApprox);}
|
|
69
|
+
fn getLuminance(color: vec3f)->f32
|
|
70
|
+
{return saturate(getLuminanceUnclamped(color));}
|
|
71
|
+
fn getRand(seed: vec2<f32>)->f32 {return fract(sin(dot(seed.xy ,vec2<f32>(12.9898,78.233)))*43758.5453);}
|
|
72
|
+
fn dither(seed: vec2<f32>,varianceAmount: f32)->f32 {let rand: f32=getRand(seed);let normVariance: f32=varianceAmount/255.0;let dither: f32=mix(-normVariance,normVariance,rand);return dither;}
|
|
73
|
+
const rgbdMaxRange: f32=255.0;fn toRGBD(color: vec3f)->vec4<f32> {let maxRGB: f32=max(max(color.r,max(color.g,color.b)),Epsilon);var D: f32 =max(rgbdMaxRange/maxRGB,1.);D =clamp(floor(D)/255.0,0.,1.);var rgb: vec3f =color.rgb*D;rgb=toGammaSpaceVec3(rgb);return vec4<f32>(saturateVec3(rgb),D);}
|
|
74
|
+
fn fromRGBD(rgbd: vec4<f32>)->vec3f {let rgb=toLinearSpaceVec3(rgbd.rgb);return rgb/rgbd.a;}
|
|
75
|
+
fn parallaxCorrectNormal(vertexPos: vec3f,origVec: vec3f,cubeSize: vec3f,cubePos: vec3f)->vec3f {let invOrigVec: vec3f=vec3f(1.)/origVec;let halfSize: vec3f=cubeSize*0.5;let intersecAtMaxPlane: vec3f=(cubePos+halfSize-vertexPos)*invOrigVec;let intersecAtMinPlane: vec3f=(cubePos-halfSize-vertexPos)*invOrigVec;let largestIntersec: vec3f=max(intersecAtMaxPlane,intersecAtMinPlane);let distance: f32=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);let intersectPositionWS: vec3f=vertexPos+origVec*distance;return intersectPositionWS-cubePos;}
|
|
76
|
+
fn equirectangularToCubemapDirection(uv : vec2f)->vec3f {var longitude : f32=uv.x*TWO_PI-PI;var latitude : f32=HALF_PI-uv.y*PI;var direction : vec3f;direction.x=cos(latitude)*sin(longitude);direction.y=sin(latitude);direction.z=cos(latitude)*cos(longitude);return direction;}
|
|
77
|
+
fn sqrtClamped(value: f32)->f32 {return sqrt(max(value,0.));}
|
|
78
|
+
fn avg(value: vec3f)->f32 {return dot(value,vec3f(0.333333333));}
|
|
79
|
+
fn singleScatterToMultiScatterAlbedo(rho_ss: vec3f)->vec3f {let s: vec3f=sqrt(max(vec3f(1.0)-rho_ss,vec3f(0.0)));return (vec3f(1.0)-s)*(vec3f(1.0)-vec3f(0.139)*s)/(vec3f(1.0)+vec3f(1.17)*s);}
|
|
80
|
+
fn multiScatterToSingleScatterAlbedo(rho_ms: vec3f)->vec3f {let s: vec3f=4.09712f+4.20863f*rho_ms-sqrt(9.59217f+41.6808f*rho_ms+17.7126f*rho_ms*rho_ms);return 1.0f-s*s;}
|
|
81
|
+
fn multiScatterToSingleScatterAlbedoWithAniso(rho_ms: vec3f,aniso: f32)->vec3f {let s: vec3f=4.09712+4.20863f*rho_ms-sqrt(9.59217f+41.6808f*rho_ms+17.7126f*rho_ms*rho_ms);return (vec3f(1.0f)-s*s)/maxEpsVec3(vec3f(1.0f)-vec3f(aniso)*s*s);}
|
|
82
|
+
fn min3(v: vec3f)->f32 {return min(v.x,min(v.y,v.z));}
|
|
83
|
+
fn max3(v: vec3f)->f32 {return max(v.x,max(v.y,v.z));}
|
|
84
|
+
fn uint2float(i: u32)->f32 {return bitcast<f32>(0x3F800000u | (i>>9u))-1.0;}
|
|
85
|
+
fn plasticSequence(rstate: u32)->vec2f {return vec2f(uint2float(rstate*3242174889u),
|
|
86
|
+
uint2float(rstate*2447445414u));}
|
|
87
|
+
`;r.IncludesShadersStoreWGSL[e]||(r.IncludesShadersStoreWGSL[e]=t);const a={name:e,shader:t};export{a as h};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{u as p}from"./index-B2zBEWsq.js";function O(t){return t.split(" ").filter(r=>r!=="").map(r=>parseFloat(r))}function x(t,r,o){for(;o.length!==r;){const n=O(t.lines[t.index++]);o.push(...n)}}function V(t,r,o){let n=0,e=0,i=0,u=0,f=0,h=0;for(let s=0;s<t.numberOfHorizontalAngles-1;s++)if(o<t.horizontalAngles[s+1]||s===t.numberOfHorizontalAngles-2){e=s,i=t.horizontalAngles[s],u=t.horizontalAngles[s+1];break}for(let s=0;s<t.numberOfVerticalAngles-1;s++)if(r<t.verticalAngles[s+1]||s===t.numberOfVerticalAngles-2){n=s,f=t.verticalAngles[s],h=t.verticalAngles[s+1];break}const c=u-i,A=h-f;if(A===0)return 0;const g=c===0?0:(o-i)/c,b=(r-f)/A,d=c===0?e:e+1,l=p(t.candelaValues[e][n],t.candelaValues[d][n],g),a=p(t.candelaValues[e][n+1],t.candelaValues[d][n+1],g);return p(l,a,b)}function z(t){const n={lines:new TextDecoder("utf-8").decode(t).split(`
|
|
2
|
+
`),index:0},e={version:n.lines[0],candelaValues:[],horizontalAngles:[],verticalAngles:[],numberOfHorizontalAngles:0,numberOfVerticalAngles:0};for(n.index=1;n.lines.length>0&&!n.lines[n.index].includes("TILT=");)n.index++;n.lines[n.index].includes("INCLUDE"),n.index++;const i=O(n.lines[n.index++]);e.numberOfLights=i[0],e.lumensPerLamp=i[1],e.candelaMultiplier=i[2],e.numberOfVerticalAngles=i[3],e.numberOfHorizontalAngles=i[4],e.photometricType=i[5],e.unitsType=i[6],e.width=i[7],e.length=i[8],e.height=i[9];const u=O(n.lines[n.index++]);e.ballastFactor=u[0],e.fileGenerationType=u[1],e.inputWatts=u[2];for(let l=0;l<e.numberOfHorizontalAngles;l++)e.candelaValues[l]=[];x(n,e.numberOfVerticalAngles,e.verticalAngles),x(n,e.numberOfHorizontalAngles,e.horizontalAngles);for(let l=0;l<e.numberOfHorizontalAngles;l++)x(n,e.numberOfVerticalAngles,e.candelaValues[l]);let f=-1;for(let l=0;l<e.numberOfHorizontalAngles;l++)for(let a=0;a<e.numberOfVerticalAngles;a++)e.candelaValues[l][a]*=e.candelaValues[l][a]*e.candelaMultiplier*e.ballastFactor*e.fileGenerationType,f=Math.max(f,e.candelaValues[l][a]);if(f>0)for(let l=0;l<e.numberOfHorizontalAngles;l++)for(let a=0;a<e.numberOfVerticalAngles;a++)e.candelaValues[l][a]/=f;const h=180,c=h*2,A=c*h,g=new Float32Array(c*h),b=e.horizontalAngles[0],d=e.horizontalAngles[e.numberOfHorizontalAngles-1];for(let l=0;l<A;l++){let a=l%c;const m=Math.floor(l/c);d-b!==0&&(a<b||a>=d)&&(a%=d*2,a>d&&(a=d*2-a)),g[m+a*h]=V(e,m,a)}return{width:c/2,height:1,data:g}}class y{constructor(){this.supportCascades=!1}loadCubeData(){throw".ies not supported in Cube."}loadData(r,o,n){const e=new Uint8Array(r.buffer,r.byteOffset,r.byteLength),i=z(e);n(i.width,i.height,!!o.useMipMaps,!1,()=>{const u=o.getEngine();o.type=1,o.format=6,o._gammaSpace=!1,u._uploadDataToTextureDirectly(o,i.data)})}}export{y as _IESTextureLoader};
|