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.
Files changed (236) hide show
  1. python_cad_tools/__init__.py +10 -0
  2. python_cad_tools/_locking.py +63 -0
  3. python_cad_tools/_project_loader.py +273 -0
  4. python_cad_tools/_project_state.py +65 -0
  5. python_cad_tools/_scaffold.py +66 -0
  6. python_cad_tools/_transaction.py +208 -0
  7. python_cad_tools/_viewer_static/app.webmanifest +18 -0
  8. python_cad_tools/_viewer_static/asset-manifest.json +1 -0
  9. python_cad_tools/_viewer_static/assets/animationGroup-Sd34ntWg.js +1 -0
  10. python_cad_tools/_viewer_static/assets/bakedVertexAnimation-Cd_pRdrn.js +316 -0
  11. python_cad_tools/_viewer_static/assets/basisTextureLoader-DWgvS_1G.js +1 -0
  12. python_cad_tools/_viewer_static/assets/brdfTextureTools-CWGiG1W2.js +2 -0
  13. python_cad_tools/_viewer_static/assets/bumpFragment-CWULheF1.js +127 -0
  14. python_cad_tools/_viewer_static/assets/bumpVertex-DqzFZayE.js +6 -0
  15. python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-C5EFyTio.js +6 -0
  16. python_cad_tools/_viewer_static/assets/clipPlaneFragment-BXRtt4jj.js +46 -0
  17. python_cad_tools/_viewer_static/assets/clipPlaneVertex-B_VhD1oQ.js +37 -0
  18. python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DRpaukza.js +1 -0
  19. python_cad_tools/_viewer_static/assets/dds-Dkb2Cx2N.js +1 -0
  20. python_cad_tools/_viewer_static/assets/dds.pure-DtvJsKvY.js +1 -0
  21. python_cad_tools/_viewer_static/assets/ddsTextureLoader-H78xux1g.js +1 -0
  22. python_cad_tools/_viewer_static/assets/default.fragment-oSQ-tWhe.js +469 -0
  23. python_cad_tools/_viewer_static/assets/default.vertex-DhFjw_Da.js +209 -0
  24. python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BMDHNppx.js +5 -0
  25. python_cad_tools/_viewer_static/assets/dumpTools-BaNZPjUX.js +2 -0
  26. python_cad_tools/_viewer_static/assets/envTextureLoader-V0YnLcIM.js +1 -0
  27. python_cad_tools/_viewer_static/assets/exrTextureLoader-CjGyIK3x.js +1 -0
  28. python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-CW5nuobR.js +1 -0
  29. python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-LFqYIkhj.js +1 -0
  30. python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BMOHUbBm.js +1 -0
  31. python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js +1 -0
  32. python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js +1 -0
  33. python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BJRHMXMo.js +1 -0
  34. python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Dng-6jE0.js +1 -0
  35. python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CgbK3CQZ.js +1 -0
  36. python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-8zMtq9tg.js +1 -0
  37. python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BiLr2rkI.js +1 -0
  38. python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-J1vcCtNP.js +1 -0
  39. python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CFb5nuaV.js +1 -0
  40. python_cad_tools/_viewer_static/assets/flowGraphContextBlock-DAeGVzhC.js +1 -0
  41. python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-lZlAQiJd.js +1 -0
  42. python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-BIzvmbVy.js +1 -0
  43. python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-DvNuMVwy.js +1 -0
  44. python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-Dymd2VEE.js +1 -0
  45. python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-v68aoNLH.js +1 -0
  46. python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CTnGv92q.js +1 -0
  47. python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DXsO0Chw.js +1 -0
  48. python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CPpe9T75.js +1 -0
  49. python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js +1 -0
  50. python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-GIYCz4AQ.js +1 -0
  51. python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js +1 -0
  52. python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Eiqoivbz.js +1 -0
  53. python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js +1 -0
  54. python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js +1 -0
  55. python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CUyOsPw0.js +1 -0
  56. python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js +1 -0
  57. python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-O4597zBl.js +1 -0
  58. python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-E00Z3KXM.js +1 -0
  59. python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DnkA9MNH.js +1 -0
  60. python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js +1 -0
  61. python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js +1 -0
  62. python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-OmCorK0y.js +1 -0
  63. python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-RuVtj6g2.js +1 -0
  64. python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DO4pAfHi.js +1 -0
  65. python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js +1 -0
  66. python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-7W1XYOC8.js +1 -0
  67. python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js +1 -0
  68. python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js +1 -0
  69. python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D4m-I4CS.js +1 -0
  70. python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BISVSMw6.js +1 -0
  71. python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js +1 -0
  72. python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Drh1EeW6.js +1 -0
  73. python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js +1 -0
  74. python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-Clry-68M.js +1 -0
  75. python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-LbBVxGBE.js +1 -0
  76. python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DIVXCSHh.js +1 -0
  77. python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js +1 -0
  78. python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B8f2dOFT.js +1 -0
  79. python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CQr8LCee.js +1 -0
  80. python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMg_iEHl.js +1 -0
  81. python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js +1 -0
  82. python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js +1 -0
  83. python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BLE5p4mi.js +1 -0
  84. python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BMzDItQ5.js +1 -0
  85. python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DRURovjn.js +1 -0
  86. python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js +1 -0
  87. python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-CnQR--Gn.js +1 -0
  88. python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js +1 -0
  89. python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js +1 -0
  90. python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-C-uv2jhP.js +1 -0
  91. python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js +1 -0
  92. python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DszzRB5X.js +1 -0
  93. python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DeTDSudb.js +1 -0
  94. python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DWuwoFWr.js +1 -0
  95. python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-DEnj2cQw.js +1 -0
  96. python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-zs8Fp9ky.js +1 -0
  97. python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BYAKUQXd.js +1 -0
  98. python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js +1 -0
  99. python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-vFwn79bS.js +1 -0
  100. python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js +1 -0
  101. python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-BEIhMs-A.js +1 -0
  102. python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-DFbELP_j.js +1 -0
  103. python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C1OKQ-_F.js +1 -0
  104. python_cad_tools/_viewer_static/assets/fogFragment-DtDlQBnz.js +25 -0
  105. python_cad_tools/_viewer_static/assets/gaussianSplatting-Cfigjb15.js +242 -0
  106. python_cad_tools/_viewer_static/assets/gaussianSplatting-DIn8R8oF.js +296 -0
  107. python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BxeRJ2k-.js +38 -0
  108. python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DNDmvRs-.js +37 -0
  109. python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-D92z5jYn.js +86 -0
  110. python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DSWfFnKQ.js +86 -0
  111. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js +12 -0
  112. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js +17 -0
  113. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js +30 -0
  114. python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js +19 -0
  115. python_cad_tools/_viewer_static/assets/geometry.fragment-CsJIm2H0.js +242 -0
  116. python_cad_tools/_viewer_static/assets/geometry.fragment-Dph3muZt.js +262 -0
  117. python_cad_tools/_viewer_static/assets/geometry.vertex-BXGMTA_J.js +212 -0
  118. python_cad_tools/_viewer_static/assets/geometry.vertex-Bm9Wg3Gi.js +214 -0
  119. python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BJSwKIJD.js +7 -0
  120. python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-DcyS1cTF.js +63 -0
  121. python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BGq1Fakj.js +75 -0
  122. python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DxcneU_F.js +25 -0
  123. python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DaJJKqMV.js +8 -0
  124. python_cad_tools/_viewer_static/assets/harmonicsFunctions-DzJcvNWG.js +16 -0
  125. python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js +2 -0
  126. python_cad_tools/_viewer_static/assets/helperFunctions-Cugfp1Fz.js +87 -0
  127. python_cad_tools/_viewer_static/assets/iesTextureLoader-CO4G0p2M.js +2 -0
  128. python_cad_tools/_viewer_static/assets/index-B2zBEWsq.js +7007 -0
  129. python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css +1 -0
  130. python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B6CTXTxY.js +57 -0
  131. python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BkKbudbW.js +57 -0
  132. python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BYwFU5IS.js +11 -0
  133. python_cad_tools/_viewer_static/assets/kernelBlur.vertex-D371zUfT.js +11 -0
  134. python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CgBGaCHg.js +1 -0
  135. python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YS8JpqdO.js +1 -0
  136. python_cad_tools/_viewer_static/assets/ktxTextureLoader-ncMSJTjl.js +1 -0
  137. python_cad_tools/_viewer_static/assets/lightFragment-skHiFbKB.js +398 -0
  138. python_cad_tools/_viewer_static/assets/logDepthDeclaration-BR8XRz9F.js +4 -0
  139. python_cad_tools/_viewer_static/assets/logDepthVertex-UKrhEIvg.js +14 -0
  140. python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BxQWGFcG.js +4 -0
  141. python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js +1 -0
  142. python_cad_tools/_viewer_static/assets/meshUboDeclaration-BnX046aQ.js +4 -0
  143. python_cad_tools/_viewer_static/assets/oitFragment-CTMCOfNP.js +605 -0
  144. python_cad_tools/_viewer_static/assets/openpbr.fragment-DPJPqi6p.js +1530 -0
  145. python_cad_tools/_viewer_static/assets/openpbr.fragment-Dv6qTVVi.js +1384 -0
  146. python_cad_tools/_viewer_static/assets/openpbr.vertex-Bn2wrdGL.js +364 -0
  147. python_cad_tools/_viewer_static/assets/openpbr.vertex-CHESW3gB.js +251 -0
  148. python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BdK7VgO_.js +3 -0
  149. python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js +4 -0
  150. python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BDa9qEoN.js +339 -0
  151. python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Ba_ly4LE.js +343 -0
  152. python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BY2lSH2C.js +5 -0
  153. python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DajhikDS.js +6 -0
  154. python_cad_tools/_viewer_static/assets/packingFunctions-BHPwcGG2.js +4 -0
  155. python_cad_tools/_viewer_static/assets/packingFunctions-DTwzBRBx.js +4 -0
  156. python_cad_tools/_viewer_static/assets/pass.fragment-9oKU4pI3.js +4 -0
  157. python_cad_tools/_viewer_static/assets/passCube.fragment-CpAeiYx1.js +23 -0
  158. python_cad_tools/_viewer_static/assets/passCube.fragment-DHtSWVRF.js +23 -0
  159. python_cad_tools/_viewer_static/assets/pbr.fragment-cIhMKwLs.js +2560 -0
  160. python_cad_tools/_viewer_static/assets/pbr.vertex-BfdONsf2.js +255 -0
  161. python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-B_ppOzPO.js +173 -0
  162. python_cad_tools/_viewer_static/assets/pbrDebug-DDdwL5_t.js +693 -0
  163. python_cad_tools/_viewer_static/assets/pbrIBLFunctions-b1zdpzOP.js +43 -0
  164. python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BZA7yVhu.js +2 -0
  165. python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BRvKRnjl.js +1 -0
  166. python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CMZp25k3.js +5 -0
  167. python_cad_tools/_viewer_static/assets/postprocess.vertex-DzdUpNbW.js +9 -0
  168. python_cad_tools/_viewer_static/assets/procedural.vertex-BnbuQ-1f.js +7 -0
  169. python_cad_tools/_viewer_static/assets/procedural.vertex-Dp-Ng7Pc.js +8 -0
  170. python_cad_tools/_viewer_static/assets/reflectionFunction-DBlr3oDs.js +83 -0
  171. python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CyvnZFOJ.js +5 -0
  172. python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Dz4zLnoD.js +5 -0
  173. python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-iscgpA1_.js +5 -0
  174. python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BzFIc4mb.js +11 -0
  175. python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C9D0rd-M.js +151 -0
  176. python_cad_tools/_viewer_static/assets/textureProcessor.fragment-JMKyWZng.js +146 -0
  177. python_cad_tools/_viewer_static/assets/tgaTextureLoader-oxTElIQJ.js +1 -0
  178. python_cad_tools/_viewer_static/assets/vertexColorMixing-mdC9xZe1.js +418 -0
  179. python_cad_tools/_viewer_static/favicon.svg +10 -0
  180. python_cad_tools/_viewer_static/index.html +18 -0
  181. python_cad_tools/_viewer_static/sw.js +61 -0
  182. python_cad_tools/artifacts.py +546 -0
  183. python_cad_tools/build-info.json +1 -0
  184. python_cad_tools/build.py +270 -0
  185. python_cad_tools/cli.py +212 -0
  186. python_cad_tools/context.py +67 -0
  187. python_cad_tools/determinism.py +66 -0
  188. python_cad_tools/drawings/__init__.py +124 -0
  189. python_cad_tools/drawings/_catalog.py +79 -0
  190. python_cad_tools/drawings/_validation.py +238 -0
  191. python_cad_tools/elements.py +121 -0
  192. python_cad_tools/exceptions.py +45 -0
  193. python_cad_tools/exporters/__init__.py +8 -0
  194. python_cad_tools/exporters/base.py +24 -0
  195. python_cad_tools/exporters/drawings/__init__.py +5 -0
  196. python_cad_tools/exporters/drawings/annotations.py +444 -0
  197. python_cad_tools/exporters/drawings/dxf.py +110 -0
  198. python_cad_tools/exporters/drawings/model.py +70 -0
  199. python_cad_tools/exporters/drawings/pdf.py +119 -0
  200. python_cad_tools/exporters/drawings/primitives.py +93 -0
  201. python_cad_tools/exporters/drawings/projection.py +64 -0
  202. python_cad_tools/exporters/drawings/svg.py +135 -0
  203. python_cad_tools/exporters/glb.py +100 -0
  204. python_cad_tools/exporters/ifc.py +229 -0
  205. python_cad_tools/exporters/quantities.py +136 -0
  206. python_cad_tools/exporters/step.py +117 -0
  207. python_cad_tools/geometry.py +187 -0
  208. python_cad_tools/manifests.py +338 -0
  209. python_cad_tools/project_config.py +174 -0
  210. python_cad_tools/py.typed +1 -0
  211. python_cad_tools/runtime_sync.py +126 -0
  212. python_cad_tools/schemas/build-manifest-1.json +1 -0
  213. python_cad_tools/schemas/design-manifest-1.json +1 -0
  214. python_cad_tools/schemas/download-manifest-2.json +46 -0
  215. python_cad_tools/schemas/drawing-annotations-1.json +66 -0
  216. python_cad_tools/schemas/glb-manifest-1.json +1 -0
  217. python_cad_tools/schemas/ifc-validation-1.json +1 -0
  218. python_cad_tools/schemas/quantities-1.json +1 -0
  219. python_cad_tools/schemas/run-metadata-1.json +1 -0
  220. python_cad_tools/schemas/site-metadata-1.json +34 -0
  221. python_cad_tools/schemas/step-validation-1.json +1 -0
  222. python_cad_tools/site.py +676 -0
  223. python_cad_tools/templates/project/.gitignore +9 -0
  224. python_cad_tools/templates/project/README.md +38 -0
  225. python_cad_tools/templates/project/config.py +36 -0
  226. python_cad_tools/templates/project/drawing_annotations.py +117 -0
  227. python_cad_tools/templates/project/model.py +87 -0
  228. python_cad_tools/templates/project/pyproject.toml +27 -0
  229. python_cad_tools/units.py +207 -0
  230. python_cad_tools/validation.py +153 -0
  231. python_cad_tools-0.1.0rc1.dist-info/METADATA +149 -0
  232. python_cad_tools-0.1.0rc1.dist-info/RECORD +236 -0
  233. python_cad_tools-0.1.0rc1.dist-info/WHEEL +5 -0
  234. python_cad_tools-0.1.0rc1.dist-info/entry_points.txt +2 -0
  235. python_cad_tools-0.1.0rc1.dist-info/licenses/LICENSE +679 -0
  236. python_cad_tools-0.1.0rc1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,339 @@
1
+ import{S as e}from"./index-B2zBEWsq.js";const n="sceneFragmentDeclaration",c=`uniform mat4 viewProjection;
2
+ #ifdef MULTIVIEW
3
+ uniform mat4 viewProjectionR;
4
+ #endif
5
+ uniform mat4 view;uniform mat4 projection;uniform vec4 vEyePosition;uniform mat4 inverseProjection;
6
+ `;e.IncludesShadersStore[n]||(e.IncludesShadersStore[n]=c);const u={name:n,shader:c},i="openpbrDielectricReflectance",s=`struct ReflectanceParams
7
+ {float F0;float F90;vec3 coloredF0;vec3 coloredF90;};
8
+ #define pbr_inline
9
+ ReflectanceParams dielectricReflectance(
10
+ in float insideIOR,in float outsideIOR,in vec3 specularColor,in float specularWeight
11
+ )
12
+ {ReflectanceParams outParams;float dielectricF0=pow((insideIOR-outsideIOR)/(insideIOR+outsideIOR),2.0);float dielectricF0_NoSpec=pow((1.0-outsideIOR)/(1.0+outsideIOR),2.0);float f90Scale=clamp(2.0*abs(insideIOR-outsideIOR),0.0,1.0);float f90Scale_NoSpec=clamp(2.0*abs(1.0-outsideIOR),0.0,1.0);
13
+ #if (DIELECTRIC_SPECULAR_MODEL==DIELECTRIC_SPECULAR_MODEL_OPENPBR)
14
+ vec3 dielectricColorF90=specularColor.rgb*vec3(f90Scale);vec3 dielectricColorF90_NoSpec=specularColor.rgb*vec3(f90Scale_NoSpec);
15
+ #else
16
+ vec3 dielectricColorF90=vec3(f90Scale);vec3 dielectricColorF90_NoSpec=vec3(f90Scale_NoSpec);
17
+ #endif
18
+ #if DIELECTRIC_SPECULAR_MODEL==DIELECTRIC_SPECULAR_MODEL_GLTF
19
+ float maxF0=max(specularColor.r,max(specularColor.g,specularColor.b));outParams.F0=mix(dielectricF0_NoSpec,dielectricF0,specularWeight)*maxF0;
20
+ #else
21
+ outParams.F0=mix(dielectricF0_NoSpec,dielectricF0,specularWeight);
22
+ #endif
23
+ outParams.F90=mix(f90Scale_NoSpec,f90Scale,specularWeight);outParams.coloredF0=mix(vec3(dielectricF0_NoSpec),vec3(dielectricF0),specularWeight)*specularColor.rgb;outParams.coloredF90=mix(dielectricColorF90_NoSpec,dielectricColorF90,specularWeight);return outParams;}
24
+ `;e.IncludesShadersStore[i]||(e.IncludesShadersStore[i]=s);const I={name:i,shader:s},r="openpbrGeometryInfo",f=`struct geometryInfoOutParams
25
+ {float NdotV;float NdotVUnclamped;vec3 environmentBrdf;float horizonOcclusion;};struct geometryInfoAnisoOutParams
26
+ {float NdotV;float NdotVUnclamped;vec3 environmentBrdf;float horizonOcclusion;float anisotropy;vec3 anisotropicTangent;vec3 anisotropicBitangent;mat3 TBN;};
27
+ #define pbr_inline
28
+ geometryInfoOutParams geometryInfo(
29
+ in vec3 normalW,in vec3 viewDirectionW,in float roughness,in vec3 geometricNormalW
30
+ )
31
+ {geometryInfoOutParams outParams;outParams.NdotVUnclamped=dot(normalW,viewDirectionW);outParams.NdotV=absEps(outParams.NdotVUnclamped);
32
+ #if defined(ENVIRONMENTBRDF)
33
+ outParams.environmentBrdf=getBRDFLookup(outParams.NdotV,roughness);
34
+ #else
35
+ outParams.environmentBrdf=vec3(0.0);
36
+ #endif
37
+ outParams.horizonOcclusion=1.0;
38
+ #if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
39
+ #ifdef HORIZONOCCLUSION
40
+ #if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL)
41
+ #ifdef REFLECTIONMAP_3D
42
+ outParams.horizonOcclusion=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);
43
+ #endif
44
+ #endif
45
+ #endif
46
+ #endif
47
+ return outParams;}
48
+ #define pbr_inline
49
+ geometryInfoAnisoOutParams geometryInfoAniso(
50
+ in vec3 normalW,in vec3 viewDirectionW,in float roughness,in vec3 geometricNormalW
51
+ ,in vec3 vAnisotropy,in mat3 TBN
52
+ )
53
+ {geometryInfoOutParams geoInfo=geometryInfo(normalW,viewDirectionW,roughness,geometricNormalW);geometryInfoAnisoOutParams outParams;outParams.NdotV=geoInfo.NdotV;outParams.NdotVUnclamped=geoInfo.NdotVUnclamped;outParams.environmentBrdf=geoInfo.environmentBrdf;outParams.horizonOcclusion=geoInfo.horizonOcclusion;outParams.anisotropy=vAnisotropy.b;vec3 anisotropyDirection=vec3(vAnisotropy.xy,0.);mat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));outParams.anisotropicTangent=normalize(anisoTBN*anisotropyDirection);outParams.anisotropicBitangent=normalize(cross(anisoTBN[2],outParams.anisotropicTangent));outParams.TBN=TBN;return outParams;}`;e.IncludesShadersStore[r]||(e.IncludesShadersStore[r]=f);const v={name:r,shader:f},o="openpbrIblFunctions",l=`#ifdef REFLECTION
54
+ vec3 sampleIrradiance(
55
+ in vec3 surfaceNormal
56
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
57
+ ,in vec3 vEnvironmentIrradianceSH
58
+ #endif
59
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
60
+ ,in mat4 iblMatrix
61
+ #endif
62
+ #ifdef USEIRRADIANCEMAP
63
+ #ifdef REFLECTIONMAP_3D
64
+ ,in samplerCube irradianceSampler
65
+ #else
66
+ ,in sampler2D irradianceSampler
67
+ #endif
68
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
69
+ ,in vec3 reflectionDominantDirection
70
+ #endif
71
+ #endif
72
+ #ifdef REALTIME_FILTERING
73
+ ,in vec2 vReflectionFilteringInfo
74
+ #ifdef IBL_CDF_FILTERING
75
+ ,in sampler2D icdfSampler
76
+ #endif
77
+ #endif
78
+ ,in vec2 vReflectionInfos
79
+ ,in vec3 viewDirectionW
80
+ ,in float diffuseRoughness
81
+ ,in vec3 surfaceAlbedo
82
+ ) {vec3 environmentIrradiance=vec3(0.,0.,0.);
83
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
84
+ vec3 irradianceVector=(iblMatrix*vec4(surfaceNormal,0)).xyz;vec3 irradianceView=(iblMatrix*vec4(viewDirectionW,0)).xyz;
85
+ #if !defined(USE_IRRADIANCE_DOMINANT_DIRECTION) && !defined(REALTIME_FILTERING)
86
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
87
+ {float NdotV=max(dot(surfaceNormal,viewDirectionW),0.0);irradianceVector=mix(irradianceVector,irradianceView,(0.5*(1.0-NdotV))*diffuseRoughness);}
88
+ #endif
89
+ #endif
90
+ #ifdef REFLECTIONMAP_OPPOSITEZ
91
+ irradianceVector.z*=-1.0;irradianceView.z*=-1.0;
92
+ #endif
93
+ #ifdef INVERTCUBICMAP
94
+ irradianceVector.y*=-1.0;irradianceView.y*=-1.0;
95
+ #endif
96
+ #endif
97
+ #ifdef USESPHERICALFROMREFLECTIONMAP
98
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
99
+ environmentIrradiance=vEnvironmentIrradianceSH;
100
+ #else
101
+ #if defined(REALTIME_FILTERING)
102
+ environmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView
103
+ #ifdef IBL_CDF_FILTERING
104
+ ,icdfSampler
105
+ #endif
106
+ );
107
+ #else
108
+ environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
109
+ #endif
110
+ #endif
111
+ #elif defined(USEIRRADIANCEMAP)
112
+ #ifdef REFLECTIONMAP_3D
113
+ vec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,irradianceVector);
114
+ #else
115
+ vec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,reflectionCoords);
116
+ #endif
117
+ environmentIrradiance=environmentIrradianceFromTexture.rgb;
118
+ #ifdef RGBDREFLECTION
119
+ environmentIrradiance.rgb=fromRGBD(environmentIrradianceFromTexture);
120
+ #endif
121
+ #ifdef GAMMAREFLECTION
122
+ environmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);
123
+ #endif
124
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
125
+ vec3 Ls=normalize(reflectionDominantDirection);float NoL=dot(irradianceVector,Ls);float NoV=dot(irradianceVector,irradianceView);vec3 diffuseRoughnessTerm=vec3(1.0);
126
+ #if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON
127
+ float LoV=dot (Ls,irradianceView);float mag=length(reflectionDominantDirection)*2.0;vec3 clampedAlbedo=clamp(surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3(1.0),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0,1.0)));
128
+ #elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY
129
+ vec3 H=(irradianceView+Ls)*0.5;float VoH=dot(irradianceView,H);diffuseRoughnessTerm=vec3(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);
130
+ #endif
131
+ environmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;
132
+ #endif
133
+ #endif
134
+ environmentIrradiance*=vReflectionInfos.x;return environmentIrradiance;}
135
+ #define pbr_inline
136
+ #ifdef REFLECTIONMAP_3D
137
+ vec3 createReflectionCoords(
138
+ #else
139
+ vec2 createReflectionCoords(
140
+ #endif
141
+ in vec3 vPositionW
142
+ ,in vec3 normalW
143
+ )
144
+ {vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);
145
+ #ifdef REFLECTIONMAP_OPPOSITEZ
146
+ reflectionVector.z*=-1.0;
147
+ #endif
148
+ #ifdef REFLECTIONMAP_3D
149
+ vec3 reflectionCoords=reflectionVector;
150
+ #else
151
+ vec2 reflectionCoords=reflectionVector.xy;
152
+ #ifdef REFLECTIONMAP_PROJECTION
153
+ reflectionCoords/=reflectionVector.z;
154
+ #endif
155
+ reflectionCoords.y=1.0-reflectionCoords.y;
156
+ #endif
157
+ return reflectionCoords;}
158
+ #define pbr_inline
159
+ #define inline
160
+ vec3 sampleRadiance(
161
+ in float alphaG
162
+ ,in vec3 vReflectionMicrosurfaceInfos
163
+ ,in vec2 vReflectionInfos
164
+ ,in geometryInfoOutParams geoInfo
165
+ #ifdef REFLECTIONMAP_3D
166
+ ,in samplerCube reflectionSampler
167
+ ,const vec3 reflectionCoords
168
+ #else
169
+ ,in sampler2D reflectionSampler
170
+ ,const vec2 reflectionCoords
171
+ #endif
172
+ #ifdef REALTIME_FILTERING
173
+ ,in vec2 vReflectionFilteringInfo
174
+ #endif
175
+ )
176
+ {vec4 environmentRadiance=vec4(0.,0.,0.,0.);
177
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
178
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
179
+ #elif defined(LINEARSPECULARREFLECTION)
180
+ float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
181
+ #else
182
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
183
+ #endif
184
+ reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
185
+ #ifdef REALTIME_FILTERING
186
+ environmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);
187
+ #else
188
+ environmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
189
+ #endif
190
+ #ifdef RGBDREFLECTION
191
+ environmentRadiance.rgb=fromRGBD(environmentRadiance);
192
+ #endif
193
+ #ifdef GAMMAREFLECTION
194
+ environmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);
195
+ #endif
196
+ environmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}
197
+ #if defined(ANISOTROPIC)
198
+ #define pbr_inline
199
+ #define inline
200
+ vec3 sampleRadianceAnisotropic(
201
+ in float alphaG
202
+ ,in vec3 vReflectionMicrosurfaceInfos
203
+ ,in vec2 vReflectionInfos
204
+ ,in geometryInfoAnisoOutParams geoInfo
205
+ ,const vec3 normalW
206
+ ,const vec3 viewDirectionW
207
+ ,const vec3 positionW
208
+ ,const vec3 noise
209
+ ,bool isRefraction
210
+ ,float ior
211
+ #ifdef REFLECTIONMAP_3D
212
+ ,in samplerCube reflectionSampler
213
+ #else
214
+ ,in sampler2D reflectionSampler
215
+ #endif
216
+ #ifdef REALTIME_FILTERING
217
+ ,in vec2 vReflectionFilteringInfo
218
+ #endif
219
+ )
220
+ {vec4 environmentRadiance=vec4(0.,0.,0.,0.);float alphaT=alphaG*sqrt(2.0/(1.0+(1.0-geoInfo.anisotropy)*(1.0-geoInfo.anisotropy)));float alphaB=(1.0-geoInfo.anisotropy)*alphaT;alphaG=alphaB;
221
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
222
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
223
+ #elif defined(LINEARSPECULARREFLECTION)
224
+ float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
225
+ #else
226
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
227
+ #endif
228
+ reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
229
+ #ifdef REALTIME_FILTERING
230
+ vec3 view=(reflectionMatrix*vec4(viewDirectionW,0.0)).xyz;vec3 tangent=(reflectionMatrix*vec4(geoInfo.anisotropicTangent,0.0)).xyz;vec3 bitangent=(reflectionMatrix*vec4(geoInfo.anisotropicBitangent,0.0)).xyz;vec3 normal=(reflectionMatrix*vec4(normalW,0.0)).xyz;
231
+ #ifdef REFLECTIONMAP_OPPOSITEZ
232
+ view.z*=-1.0;tangent.z*=-1.0;bitangent.z*=-1.0;normal.z*=-1.0;
233
+ #endif
234
+ environmentRadiance =
235
+ vec4(radianceAnisotropic(alphaT,alphaB,reflectionSampler,
236
+ view,tangent,
237
+ bitangent,normal,
238
+ vReflectionFilteringInfo,noise.xy,isRefraction,ior),
239
+ 1.0);
240
+ #else
241
+ const int samples=16;vec4 radianceSample=vec4(0.0);vec3 reflectionCoords=vec3(0.0);float sample_weight=0.0;float total_weight=0.0;float step=1.0/float(max(samples-1,1));for (int i=0; i<samples; ++i) {float t=mix(-1.0,1.0,float(i)*step);t+=step*2.0*noise.x;sample_weight=max(1.0-abs(t),0.001);sample_weight*=sample_weight;t*=min(4.0*alphaT*geoInfo.anisotropy,1.0);vec3 bentNormal;if (t<0.0) {float blend=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {float blend=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}
242
+ if (isRefraction) {reflectionCoords=double_refract(-viewDirectionW,bentNormal,ior);} else {reflectionCoords=reflect(-viewDirectionW,bentNormal);}
243
+ reflectionCoords=vec3(reflectionMatrix*vec4(reflectionCoords,0));
244
+ #ifdef REFLECTIONMAP_OPPOSITEZ
245
+ reflectionCoords.z*=-1.0;
246
+ #endif
247
+ radianceSample=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
248
+ #ifdef RGBDREFLECTION
249
+ environmentRadiance.rgb+=sample_weight*fromRGBD(radianceSample);
250
+ #elif defined(GAMMAREFLECTION)
251
+ environmentRadiance.rgb+=sample_weight*toLinearSpace(radianceSample.rgb);
252
+ #else
253
+ environmentRadiance.rgb+=sample_weight*radianceSample.rgb;
254
+ #endif
255
+ total_weight+=sample_weight;}
256
+ environmentRadiance=vec4(environmentRadiance.xyz/float(total_weight),1.0);
257
+ #endif
258
+ environmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}
259
+ #endif
260
+ #endif
261
+ #if defined(ENVIRONMENTBRDF)
262
+ #define pbr_inline
263
+ float computeDielectricIblFresnel(in ReflectanceParams reflectance,in vec3 environmentBrdf)
264
+ {float dielectricIblFresnel=getReflectanceFromBRDFLookup(vec3(reflectance.F0),vec3(reflectance.F90),environmentBrdf).r;float dielectricECF=1.0+reflectance.F0*(1.0/environmentBrdf.y-1.0);return clamp(dielectricIblFresnel*dielectricECF,0.0,1.0);}
265
+ #define pbr_inline
266
+ vec3 computeConductorIblFresnel(in ReflectanceParams reflectance,in vec3 environmentBrdf)
267
+ {
268
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR) && defined(ENVIRONMENTBRDF)
269
+ vec3 openPBRBrdf=vec3(environmentBrdf.xy,environmentBrdf.z/BRDF_Z_SCALE);vec3 b =getF82B(reflectance.coloredF0,reflectance.coloredF90);vec3 E_F82=getF82DirectionalAlbedo(reflectance.coloredF0,vec3(1.0),b,openPBRBrdf);vec3 F_avg=getF82AverageFresnel(reflectance.coloredF0,b);vec3 ECF =vec3(1.0)+F_avg*(vec3(1.0)/openPBRBrdf.y-vec3(1.0));return clamp(E_F82*ECF,vec3(0.0),vec3(1.0));
270
+ #else
271
+ return getReflectanceFromBRDFLookup(reflectance.coloredF0,reflectance.coloredF90,environmentBrdf);
272
+ #endif
273
+ }
274
+ #endif
275
+ `;e.IncludesShadersStore[o]||(e.IncludesShadersStore[o]=l);const E={name:o,shader:l},a="openpbrSubsurfaceLayerData",d=`float subsurface_weight=vSubsurfaceWeight;vec3 subsurface_color=vSubsurfaceColor.rgb;float subsurface_radius=vSubsurfaceRadius;vec3 subsurface_radius_scale=vSubsurfaceRadiusScale;float subsurface_scatter_anisotropy=clamp(vSubsurfaceScatterAnisotropy,-0.9999,0.9999);
276
+ #ifdef SUBSURFACE_WEIGHT
277
+ vec4 subsurfaceWeightFromTexture=TEXRD(subsurfaceWeightSampler,vSubsurfaceWeightUV+uvOffset);
278
+ #endif
279
+ #ifdef SUBSURFACE_COLOR
280
+ vec4 subsurfaceColorFromTexture=TEXRD(subsurfaceColorSampler,vSubsurfaceColorUV+uvOffset);
281
+ #endif
282
+ #ifdef SUBSURFACE_RADIUS_SCALE
283
+ vec4 subsurfaceRadiusScaleFromTexture=TEXRD(subsurfaceRadiusScaleSampler,vSubsurfaceRadiusScaleUV+uvOffset);
284
+ #endif
285
+ #ifdef SUBSURFACE_WEIGHT
286
+ #ifdef SUBSURFACE_WEIGHT_FROM_TEXTURE_ALPHA
287
+ subsurface_weight*=subsurfaceWeightFromTexture.a;
288
+ #else
289
+ subsurface_weight*=subsurfaceWeightFromTexture.r;
290
+ #endif
291
+ #endif
292
+ #ifdef SUBSURFACE_COLOR
293
+ #ifdef SUBSURFACE_COLOR_GAMMA
294
+ subsurface_color*=toLinearSpace(subsurfaceColorFromTexture.rgb);
295
+ #else
296
+ subsurface_color*=subsurfaceColorFromTexture.rgb;
297
+ #endif
298
+ subsurface_color*=vSubsurfaceColorInfos.y;
299
+ #endif
300
+ #ifdef SUBSURFACE_RADIUS_SCALE
301
+ subsurface_radius_scale*=subsurfaceRadiusScaleFromTexture.rgb;
302
+ #endif
303
+ `;e.IncludesShadersStore[a]||(e.IncludesShadersStore[a]=d);const S={name:a,shader:d},t="openpbrTransmissionLayerData",m=`float transmission_weight=vTransmissionWeight;vec3 transmission_color=vTransmissionColor.rgb;float transmission_depth=vTransmissionDepth;vec3 transmission_scatter=vTransmissionScatter.rgb;float transmission_scatter_anisotropy=clamp(vTransmissionScatterAnisotropy,-0.9999,0.9999);float transmission_dispersion_scale=vTransmissionDispersionScale;float transmission_dispersion_abbe_number=vTransmissionDispersionAbbeNumber;
304
+ #ifdef TRANSMISSION_WEIGHT
305
+ vec4 transmissionWeightFromTexture=TEXRD(transmissionWeightSampler,vTransmissionWeightUV+uvOffset);
306
+ #endif
307
+ #ifdef TRANSMISSION_COLOR
308
+ vec4 transmissionColorFromTexture=TEXRD(transmissionColorSampler,vTransmissionColorUV+uvOffset);
309
+ #endif
310
+ #ifdef TRANSMISSION_DEPTH
311
+ vec4 transmissionDepthFromTexture=TEXRD(transmissionDepthSampler,vTransmissionDepthUV+uvOffset);
312
+ #endif
313
+ #ifdef TRANSMISSION_SCATTER
314
+ vec4 transmissionScatterFromTexture=TEXRD(transmissionScatterSampler,vTransmissionScatterUV+uvOffset);
315
+ #endif
316
+ #ifdef TRANSMISSION_DISPERSION_SCALE
317
+ vec4 transmissionDispersionScaleFromTexture=TEXRD(transmissionDispersionScaleSampler,vTransmissionDispersionScaleUV+uvOffset);
318
+ #endif
319
+ #ifdef TRANSMISSION_WEIGHT
320
+ transmission_weight*=transmissionWeightFromTexture.r;
321
+ #endif
322
+ #ifdef TRANSMISSION_COLOR
323
+ #ifdef TRANSMISSION_COLOR_GAMMA
324
+ transmission_color*=toLinearSpace(transmissionColorFromTexture.rgb);
325
+ #else
326
+ transmission_color*=transmissionColorFromTexture.rgb;
327
+ #endif
328
+ transmission_color*=vTransmissionColorInfos.y;
329
+ #endif
330
+ #ifdef TRANSMISSION_DEPTH
331
+ transmission_depth*=transmissionDepthFromTexture.r;
332
+ #endif
333
+ #ifdef TRANSMISSION_SCATTER
334
+ transmission_scatter*=transmissionScatterFromTexture.rgb;
335
+ #endif
336
+ #ifdef TRANSMISSION_DISPERSION_SCALE
337
+ transmission_dispersion_scale*=transmissionDispersionScaleFromTexture.r;
338
+ #endif
339
+ `;e.IncludesShadersStore[t]||(e.IncludesShadersStore[t]=m);const p={name:t,shader:m};export{v as a,E as b,S as c,p as d,I as o,u as s};
@@ -0,0 +1,343 @@
1
+ import{S as e}from"./index-B2zBEWsq.js";const r="openpbrDielectricReflectance",f=`struct ReflectanceParams
2
+ {F0: f32,
3
+ F90: f32,
4
+ coloredF0: vec3f,
5
+ coloredF90: vec3f,};
6
+ #define pbr_inline
7
+ fn dielectricReflectance(
8
+ insideIOR: f32,outsideIOR: f32,specularColor: vec3f,specularWeight: f32
9
+ )->ReflectanceParams
10
+ {var outParams: ReflectanceParams;let dielectricF0=pow((insideIOR-outsideIOR)/(insideIOR+outsideIOR),2.0);
11
+ #if DIELECTRIC_SPECULAR_MODEL==DIELECTRIC_SPECULAR_MODEL_GLTF
12
+ let maxF0=max(specularColor.r,max(specularColor.g,specularColor.b));outParams.F0=dielectricF0*maxF0*specularWeight;
13
+ #else
14
+ outParams.F0=dielectricF0*specularWeight;
15
+ #endif
16
+ let f90Scale=clamp(2.0f*abs(insideIOR-outsideIOR),0.0f,1.0f);outParams.F90=f90Scale*specularWeight;outParams.coloredF0=vec3f(dielectricF0*specularWeight)*specularColor.rgb;
17
+ #if (DIELECTRIC_SPECULAR_MODEL==DIELECTRIC_SPECULAR_MODEL_OPENPBR)
18
+ let dielectricColorF90: vec3f=specularColor.rgb*vec3f(f90Scale)*specularWeight;
19
+ #else
20
+ let dielectricColorF90: vec3f=vec3f(f90Scale)*specularWeight;
21
+ #endif
22
+ outParams.coloredF90=dielectricColorF90;return outParams;}
23
+ `;e.IncludesShadersStoreWGSL[r]||(e.IncludesShadersStoreWGSL[r]=f);const m={name:r,shader:f},n="openpbrGeometryInfo",t=`struct geometryInfoOutParams
24
+ {NdotV: f32,
25
+ NdotVUnclamped: f32,
26
+ environmentBrdf: vec3f,
27
+ horizonOcclusion: f32};struct geometryInfoAnisoOutParams
28
+ {NdotV: f32,
29
+ NdotVUnclamped: f32,
30
+ environmentBrdf: vec3f,
31
+ horizonOcclusion: f32,
32
+ anisotropy: f32,
33
+ anisotropicTangent: vec3f,
34
+ anisotropicBitangent: vec3f,
35
+ TBN: mat3x3<f32>};fn geometryInfo(
36
+ normalW: vec3f,viewDirectionW: vec3f,roughness: f32,geometricNormalW: vec3f
37
+ )->geometryInfoOutParams
38
+ {var outParams: geometryInfoOutParams;outParams.NdotVUnclamped=dot(normalW,viewDirectionW);outParams.NdotV=absEps(outParams.NdotVUnclamped);
39
+ #if defined(ENVIRONMENTBRDF)
40
+ outParams.environmentBrdf=getBRDFLookup(outParams.NdotV,roughness);
41
+ #else
42
+ outParams.environmentBrdf=vec3f(0.0);
43
+ #endif
44
+ outParams.horizonOcclusion=1.0f;
45
+ #if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
46
+ #ifdef HORIZONOCCLUSION
47
+ #if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL)
48
+ #ifdef REFLECTIONMAP_3D
49
+ outParams.horizonOcclusion=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);
50
+ #endif
51
+ #endif
52
+ #endif
53
+ #endif
54
+ return outParams;}
55
+ fn geometryInfoAniso(
56
+ normalW: vec3f,viewDirectionW: vec3f,roughness: f32,geometricNormalW: vec3f
57
+ ,vAnisotropy: vec3f,TBN: mat3x3<f32>
58
+ )->geometryInfoAnisoOutParams
59
+ {let geoInfo: geometryInfoOutParams=geometryInfo(normalW,viewDirectionW,roughness,geometricNormalW);var outParams: geometryInfoAnisoOutParams;outParams.NdotV=geoInfo.NdotV;outParams.NdotVUnclamped=geoInfo.NdotVUnclamped;outParams.environmentBrdf=geoInfo.environmentBrdf;outParams.horizonOcclusion=geoInfo.horizonOcclusion;outParams.anisotropy=vAnisotropy.b;let anisotropyDirection: vec3f=vec3f(vAnisotropy.xy,0.);let anisoTBN: mat3x3<f32>=mat3x3<f32>(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));outParams.anisotropicTangent=normalize(anisoTBN*anisotropyDirection);outParams.anisotropicBitangent=normalize(cross(anisoTBN[2],outParams.anisotropicTangent));outParams.TBN=TBN;return outParams;}
60
+ `;e.IncludesShadersStoreWGSL[n]||(e.IncludesShadersStoreWGSL[n]=t);const u={name:n,shader:t},i="openpbrIblFunctions",c=`#ifdef REFLECTION
61
+ fn sampleIrradiance(
62
+ surfaceNormal: vec3f
63
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
64
+ ,vEnvironmentIrradianceSH: vec3f
65
+ #endif
66
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
67
+ ,iblMatrix: mat4x4f
68
+ #endif
69
+ #ifdef USEIRRADIANCEMAP
70
+ #ifdef REFLECTIONMAP_3D
71
+ ,irradianceSampler: texture_cube<f32>
72
+ ,irradianceSamplerSampler: sampler
73
+ #else
74
+ ,irradianceSampler: texture_2d<f32>
75
+ ,irradianceSamplerSampler: sampler
76
+ #endif
77
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
78
+ ,reflectionDominantDirection: vec3f
79
+ #endif
80
+ #endif
81
+ #ifdef REALTIME_FILTERING
82
+ ,reflectionFilteringInfo: vec2f
83
+ #ifdef IBL_CDF_FILTERING
84
+ ,icdfSampler: texture_2d<f32>
85
+ ,icdfSamplerSampler: sampler
86
+ #endif
87
+ #endif
88
+ ,reflectionInfos: vec2f
89
+ ,viewDirectionW: vec3f
90
+ ,diffuseRoughness: f32
91
+ ,surfaceAlbedo: vec3f
92
+ )->vec3f {var environmentIrradiance=vec3f(0.,0.,0.);
93
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
94
+ var irradianceVector=(iblMatrix*vec4f(surfaceNormal,0.0f)).xyz;var irradianceView=(iblMatrix*vec4f(viewDirectionW,0.0f)).xyz;
95
+ #if !defined(USE_IRRADIANCE_DOMINANT_DIRECTION) && !defined(REALTIME_FILTERING)
96
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
97
+ {let NdotV=max(dot(surfaceNormal,viewDirectionW),0.0f);irradianceVector=mix(irradianceVector,irradianceView,(0.5f*(1.0f-NdotV))*diffuseRoughness);}
98
+ #endif
99
+ #endif
100
+ #ifdef REFLECTIONMAP_OPPOSITEZ
101
+ irradianceVector.z*=-1.0;irradianceView.z*=-1.0;
102
+ #endif
103
+ #ifdef INVERTCUBICMAP
104
+ irradianceVector.y*=-1.0;irradianceView.y*=-1.0;
105
+ #endif
106
+ #endif
107
+ #ifdef USESPHERICALFROMREFLECTIONMAP
108
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
109
+ environmentIrradiance=vEnvironmentIrradianceSH;
110
+ #else
111
+ #if defined(REALTIME_FILTERING)
112
+ environmentIrradiance=irradiance(reflectionSampler,reflectionSamplerSampler,irradianceVector,reflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView
113
+ #ifdef IBL_CDF_FILTERING
114
+ ,icdfSampler
115
+ ,icdfSamplerSampler
116
+ #endif
117
+ );
118
+ #else
119
+ environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
120
+ #endif
121
+ #endif
122
+ #elif defined(USEIRRADIANCEMAP)
123
+ #ifdef REFLECTIONMAP_3D
124
+ let environmentIrradianceFromTexture: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,irradianceVector);
125
+ #else
126
+ let environmentIrradianceFromTexture: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,reflectionCoords);
127
+ #endif
128
+ environmentIrradiance=environmentIrradianceFromTexture.rgb;
129
+ #ifdef RGBDREFLECTION
130
+ environmentIrradiance.rgb=fromRGBD(environmentIrradianceFromTexture);
131
+ #endif
132
+ #ifdef GAMMAREFLECTION
133
+ environmentIrradiance.rgb=toLinearSpaceVec3(environmentIrradiance.rgb);
134
+ #endif
135
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
136
+ let Ls: vec3f=normalize(reflectionDominantDirection);let NoL: f32=dot(irradianceVector,Ls);let NoV: f32=dot(irradianceVector,irradianceView);var diffuseRoughnessTerm=vec3f(1.0f);
137
+ #if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON
138
+ let LoV: f32=dot (Ls,irradianceView);let mag: f32=length(reflectionDominantDirection)*2.0f;let clampedAlbedo: vec3f=clamp(surfaceAlbedo,vec3f(0.1f),vec3f(1.0f));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3f(1.0f),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0f,1.0f)));
139
+ #elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY
140
+ let H: vec3f=(irradianceView+Ls)*0.5f;let VoH: f32=dot(irradianceView,H);diffuseRoughnessTerm=vec3f(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);
141
+ #endif
142
+ environmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;
143
+ #endif
144
+ #endif
145
+ environmentIrradiance*=reflectionInfos.x;return environmentIrradiance;}
146
+ #ifdef REFLECTIONMAP_3D
147
+ fn createReflectionCoords(vPositionW: vec3f,normalW: vec3f)->vec3f
148
+ #else
149
+ fn createReflectionCoords(vPositionW: vec3f,normalW: vec3f)->vec2f
150
+ #endif
151
+ {var reflectionVector: vec3f=computeReflectionCoords(vec4f(vPositionW,1.0f),normalW);
152
+ #ifdef REFLECTIONMAP_OPPOSITEZ
153
+ reflectionVector.z*=-1.0;
154
+ #endif
155
+ #ifdef REFLECTIONMAP_3D
156
+ var reflectionCoords: vec3f=reflectionVector;
157
+ #else
158
+ var reflectionCoords: vec2f=reflectionVector.xy;
159
+ #ifdef REFLECTIONMAP_PROJECTION
160
+ reflectionCoords/=reflectionVector.z;
161
+ #endif
162
+ reflectionCoords.y=1.0f-reflectionCoords.y;
163
+ #endif
164
+ return reflectionCoords;}
165
+ fn sampleRadiance(
166
+ alphaG: f32
167
+ ,reflectionMicrosurfaceInfos: vec3f
168
+ ,reflectionInfos: vec2f
169
+ ,geoInfo: geometryInfoOutParams
170
+ #ifdef REFLECTIONMAP_3D
171
+ ,reflectionSampler: texture_cube<f32>
172
+ ,reflectionSamplerSampler: sampler
173
+ ,reflectionCoords: vec3f
174
+ #else
175
+ ,reflectionSampler: texture_2d<f32>
176
+ ,reflectionSamplerSampler: sampler
177
+ ,reflectionCoords: vec2f
178
+ #endif
179
+ #ifdef REALTIME_FILTERING
180
+ ,reflectionFilteringInfo: vec2f
181
+ #endif
182
+ )->vec3f {var environmentRadiance: vec4f=vec4f(0.f,0.f,0.f,0.f);
183
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
184
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
185
+ #elif defined(LINEARSPECULARREFLECTION)
186
+ var reflectionLOD: f32=getLinearLodFromRoughness(reflectionMicrosurfaceInfos.x,roughness);
187
+ #else
188
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,alphaG);
189
+ #endif
190
+ reflectionLOD=reflectionLOD*reflectionMicrosurfaceInfos.y+reflectionMicrosurfaceInfos.z;
191
+ #ifdef REALTIME_FILTERING
192
+ environmentRadiance=vec4f(radiance(alphaG,reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionFilteringInfo),1.0f);
193
+ #else
194
+ environmentRadiance=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);
195
+ #endif
196
+ var envRadiance: vec3f=environmentRadiance.rgb;
197
+ #ifdef RGBDREFLECTION
198
+ envRadiance=fromRGBD(environmentRadiance);
199
+ #endif
200
+ #ifdef GAMMAREFLECTION
201
+ envRadiance=toLinearSpaceVec3(environmentRadiance.rgb);
202
+ #endif
203
+ envRadiance*=reflectionInfos.x;return envRadiance;}
204
+ #if defined(ANISOTROPIC)
205
+ fn sampleRadianceAnisotropic(
206
+ alphaG: f32
207
+ ,reflectionMicrosurfaceInfos: vec3f
208
+ ,reflectionInfos: vec2f
209
+ ,geoInfo: geometryInfoAnisoOutParams
210
+ ,normalW: vec3f
211
+ ,viewDirectionW: vec3f
212
+ ,positionW: vec3f
213
+ ,noise: vec3f
214
+ ,isRefraction: bool
215
+ ,ior: f32
216
+ #ifdef REFLECTIONMAP_3D
217
+ ,reflectionSampler: texture_cube<f32>
218
+ ,reflectionSamplerSampler: sampler
219
+ #else
220
+ ,reflectionSampler: texture_2d<f32>
221
+ ,reflectionSamplerSampler: sampler
222
+ #endif
223
+ #ifdef REALTIME_FILTERING
224
+ ,reflectionFilteringInfo: vec2f
225
+ #endif
226
+ )->vec3f {var environmentRadiance: vec4f=vec4f(0.f,0.f,0.f,0.f);let alphaT=alphaG*sqrt(2.0f/(1.0f+(1.0f-geoInfo.anisotropy)*(1.0f-geoInfo.anisotropy)));let alphaB=(1.0f-geoInfo.anisotropy)*alphaT;let modifiedAlphaG=alphaB;
227
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
228
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,modifiedAlphaG,geoInfo.NdotVUnclamped);
229
+ #elif defined(LINEARSPECULARREFLECTION)
230
+ var reflectionLOD: f32=getLinearLodFromRoughness(reflectionMicrosurfaceInfos.x,roughness);
231
+ #else
232
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,modifiedAlphaG);
233
+ #endif
234
+ reflectionLOD=reflectionLOD*reflectionMicrosurfaceInfos.y+reflectionMicrosurfaceInfos.z;
235
+ #ifdef REALTIME_FILTERING
236
+ var view=(uniforms.reflectionMatrix*vec4f(viewDirectionW,0.0f)).xyz;var tangent=(uniforms.reflectionMatrix*vec4f(geoInfo.anisotropicTangent,0.0f)).xyz;var bitangent=(uniforms.reflectionMatrix*vec4f(geoInfo.anisotropicBitangent,0.0f)).xyz;var normal=(uniforms.reflectionMatrix*vec4f(normalW,0.0f)).xyz;
237
+ #ifdef REFLECTIONMAP_OPPOSITEZ
238
+ view.z*=-1.0f;tangent.z*=-1.0f;bitangent.z*=-1.0f;normal.z*=-1.0f;
239
+ #endif
240
+ environmentRadiance =
241
+ vec4f(radianceAnisotropic(alphaT,alphaB,reflectionSampler,reflectionSamplerSampler,
242
+ view,tangent,
243
+ bitangent,normal,
244
+ reflectionFilteringInfo,noise.xy,isRefraction,ior),
245
+ 1.0f);
246
+ #else
247
+ const samples: i32=16;var radianceSample=vec4f(0.0);var accumulatedRadiance=vec3f(0.0);var reflectionCoords=vec3f(0.0);var sample_weight=0.0f;var total_weight=0.0f;let step=1.0f/f32(max(samples-1,1));for (var i: i32=0; i<samples; i++) {var t: f32=mix(-1.0,1.0,f32(i)*step);t+=step*2.0*noise.x;sample_weight=max(1.0-abs(t),0.001);sample_weight*=sample_weight;t*=min(4.0*alphaT*geoInfo.anisotropy,1.0);var bentNormal: vec3f;if (t<0.0) {let blend: f32=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {let blend: f32=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}
248
+ if (isRefraction) {reflectionCoords=double_refract(-viewDirectionW,bentNormal,ior);} else {reflectionCoords=reflect(-viewDirectionW,bentNormal);}
249
+ reflectionCoords=(uniforms.reflectionMatrix*vec4f(reflectionCoords,0.f)).xyz;
250
+ #ifdef REFLECTIONMAP_OPPOSITEZ
251
+ reflectionCoords.z*=-1.0f;
252
+ #endif
253
+ radianceSample=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);
254
+ #ifdef RGBDREFLECTION
255
+ accumulatedRadiance+=vec3f(sample_weight)*fromRGBD(radianceSample);
256
+ #elif defined(GAMMAREFLECTION)
257
+ accumulatedRadiance+=vec3f(sample_weight)*toLinearSpaceVec3(radianceSample.rgb);
258
+ #else
259
+ accumulatedRadiance+=vec3f(sample_weight)*radianceSample.rgb;
260
+ #endif
261
+ total_weight+=sample_weight;}
262
+ environmentRadiance=vec4f(accumulatedRadiance/vec3f(total_weight),1.0f);
263
+ #endif
264
+ environmentRadiance=vec4f(environmentRadiance.rgb*reflectionInfos.xxx,environmentRadiance.a);return environmentRadiance.rgb;}
265
+ #endif
266
+ #endif
267
+ #ifdef ENVIRONMENTBRDF
268
+ fn computeDielectricIblFresnel(reflectance: ReflectanceParams,environmentBrdf: vec3f)->f32
269
+ {let dielectricIblFresnel: f32=getReflectanceFromBRDFWithEnvLookup(vec3f(reflectance.F0),vec3f(reflectance.F90),environmentBrdf).r;let dielectricECF: f32=1.0+reflectance.F0*(1.0/environmentBrdf.y-1.0);return clamp(dielectricIblFresnel*dielectricECF,0.0,1.0);}
270
+ fn computeConductorIblFresnel(reflectance: ReflectanceParams,environmentBrdf: vec3f)->vec3f
271
+ {
272
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
273
+ let openPBRBrdf: vec3f=vec3f(environmentBrdf.xy,environmentBrdf.z/BRDF_Z_SCALE);let b: vec3f =getF82B(reflectance.coloredF0,reflectance.coloredF90);let E_F82: vec3f=getF82DirectionalAlbedo(reflectance.coloredF0,vec3f(1.0),b,openPBRBrdf);let F_avg: vec3f=getF82AverageFresnel(reflectance.coloredF0,b);let ECF: vec3f =vec3f(1.0)+F_avg*(vec3f(1.0)/openPBRBrdf.y-vec3f(1.0));return clamp(E_F82*ECF,vec3f(0.0),vec3f(1.0));
274
+ #else
275
+ return getReflectanceFromBRDFLookup(reflectance.coloredF0,reflectance.coloredF90,environmentBrdf);
276
+ #endif
277
+ }
278
+ #endif
279
+ `;e.IncludesShadersStoreWGSL[i]||(e.IncludesShadersStoreWGSL[i]=c);const v={name:i,shader:c},o="openpbrSubsurfaceLayerData",s=`var subsurface_weight: f32=uniforms.vSubsurfaceWeight;var subsurface_color: vec3f=uniforms.vSubsurfaceColor.rgb;var subsurface_radius: f32=uniforms.vSubsurfaceRadius;var subsurface_radius_scale: vec3f=uniforms.vSubsurfaceRadiusScale;var subsurface_scatter_anisotropy: f32=clamp(uniforms.vSubsurfaceScatterAnisotropy,-0.9999f,0.9999f);
280
+ #ifdef SUBSURFACE_WEIGHT
281
+ let subsurfaceWeightFromTexture: vec4f=TEXRD(subsurfaceWeightSampler,subsurfaceWeightSamplerSampler,fragmentInputs.vSubsurfaceWeightUV+uvOffset);
282
+ #endif
283
+ #ifdef SUBSURFACE_COLOR
284
+ let subsurfaceColorFromTexture: vec4f=TEXRD(subsurfaceColorSampler,subsurfaceColorSamplerSampler,fragmentInputs.vSubsurfaceColorUV+uvOffset);
285
+ #endif
286
+ #ifdef SUBSURFACE_RADIUS_SCALE
287
+ let subsurfaceRadiusScaleFromTexture: vec4f=TEXRD(subsurfaceRadiusScaleSampler,subsurfaceRadiusScaleSamplerSampler,fragmentInputs.vSubsurfaceRadiusScaleUV+uvOffset);
288
+ #endif
289
+ #ifdef SUBSURFACE_WEIGHT
290
+ #ifdef SUBSURFACE_WEIGHT_FROM_TEXTURE_ALPHA
291
+ subsurface_weight*=subsurfaceWeightFromTexture.a;
292
+ #else
293
+ subsurface_weight*=subsurfaceWeightFromTexture.r;
294
+ #endif
295
+ #endif
296
+ #ifdef SUBSURFACE_COLOR
297
+ #ifdef SUBSURFACE_COLOR_GAMMA
298
+ subsurface_color*=toLinearSpaceVec3(subsurfaceColorFromTexture.rgb);
299
+ #else
300
+ subsurface_color*=subsurfaceColorFromTexture.rgb;
301
+ #endif
302
+ subsurface_color*=uniforms.vSubsurfaceColorInfos.y;
303
+ #endif
304
+ #ifdef SUBSURFACE_RADIUS_SCALE
305
+ subsurface_radius_scale*=subsurfaceRadiusScaleFromTexture.rgb;
306
+ #endif
307
+ `;e.IncludesShadersStoreWGSL[o]||(e.IncludesShadersStoreWGSL[o]=s);const I={name:o,shader:s},a="openpbrTransmissionLayerData",l=`var transmission_weight: f32=uniforms.vTransmissionWeight;var transmission_color: vec3f=uniforms.vTransmissionColor.rgb;var transmission_depth: f32=uniforms.vTransmissionDepth;var transmission_scatter: vec3f=uniforms.vTransmissionScatter.rgb;var transmission_scatter_anisotropy: f32=clamp(uniforms.vTransmissionScatterAnisotropy,-0.9999f,0.9999f);var transmission_dispersion_scale: f32=uniforms.vTransmissionDispersionScale;var transmission_dispersion_abbe_number: f32=uniforms.vTransmissionDispersionAbbeNumber;
308
+ #ifdef TRANSMISSION_WEIGHT
309
+ let transmissionWeightFromTexture: vec4f=TEXRD(transmissionWeightSampler,transmissionWeightSamplerSampler,fragmentInputs.vTransmissionWeightUV+uvOffset);
310
+ #endif
311
+ #ifdef TRANSMISSION_COLOR
312
+ let transmissionColorFromTexture: vec4f=TEXRD(transmissionColorSampler,transmissionColorSamplerSampler,fragmentInputs.vTransmissionColorUV+uvOffset);
313
+ #endif
314
+ #ifdef TRANSMISSION_DEPTH
315
+ let transmissionDepthFromTexture: vec4f=TEXRD(transmissionDepthSampler,transmissionDepthSamplerSampler,fragmentInputs.vTransmissionDepthUV+uvOffset);
316
+ #endif
317
+ #ifdef TRANSMISSION_SCATTER
318
+ let transmissionScatterFromTexture: vec4f=TEXRD(transmissionScatterSampler,transmissionScatterSamplerSampler,fragmentInputs.vTransmissionScatterUV+uvOffset);
319
+ #endif
320
+ #ifdef TRANSMISSION_DISPERSION_SCALE
321
+ let transmissionDispersionScaleFromTexture: vec4f=TEXRD(transmissionDispersionScaleSampler,transmissionDispersionScaleSamplerSampler,fragmentInputs.vTransmissionDispersionScaleUV+uvOffset);
322
+ #endif
323
+ #ifdef TRANSMISSION_WEIGHT
324
+ transmission_weight*=transmissionWeightFromTexture.r;
325
+ #endif
326
+ #ifdef TRANSMISSION_COLOR
327
+ #ifdef TRANSMISSION_COLOR_GAMMA
328
+ transmission_color*=toLinearSpaceVec3(transmissionColorFromTexture.rgb);
329
+ #else
330
+ transmission_color*=transmissionColorFromTexture.rgb;
331
+ #endif
332
+ transmission_color*=uniforms.vTransmissionColorInfos.y;
333
+ #endif
334
+ #ifdef TRANSMISSION_DEPTH
335
+ transmission_depth*=transmissionDepthFromTexture.r;
336
+ #endif
337
+ #ifdef TRANSMISSION_SCATTER
338
+ transmission_scatter*=transmissionScatterFromTexture.rgb;
339
+ #endif
340
+ #ifdef TRANSMISSION_DISPERSION_SCALE
341
+ transmission_dispersion_scale*=transmissionDispersionScaleFromTexture.r;
342
+ #endif
343
+ `;e.IncludesShadersStoreWGSL[a]||(e.IncludesShadersStoreWGSL[a]=l);const S={name:a,shader:l};export{u as a,v as b,I as c,S as d,m as o};