@aura3d/rendering 3.0.0 → 4.0.0

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 (1877) hide show
  1. package/dist/BlendModes.d.ts +34 -0
  2. package/dist/BlendModes.d.ts.map +1 -0
  3. package/dist/BlendModes.js +42 -0
  4. package/dist/BlendModes.js.map +1 -0
  5. package/dist/CascadedShadowMaps.d.ts.map +1 -1
  6. package/dist/CascadedShadowMaps.js +3 -1
  7. package/dist/CascadedShadowMaps.js.map +1 -1
  8. package/dist/DepthPass.d.ts +18 -0
  9. package/dist/DepthPass.d.ts.map +1 -1
  10. package/dist/DepthPass.js +103 -20
  11. package/dist/DepthPass.js.map +1 -1
  12. package/dist/EnvironmentBackgroundPass.d.ts +7 -0
  13. package/dist/EnvironmentBackgroundPass.d.ts.map +1 -1
  14. package/dist/EnvironmentBackgroundPass.js +39 -14
  15. package/dist/EnvironmentBackgroundPass.js.map +1 -1
  16. package/dist/EnvironmentMapResources.d.ts +1 -1
  17. package/dist/EnvironmentMapResources.d.ts.map +1 -1
  18. package/dist/EnvironmentMapResources.js +19 -8
  19. package/dist/EnvironmentMapResources.js.map +1 -1
  20. package/dist/EnvironmentPlatform.d.ts +6 -0
  21. package/dist/EnvironmentPlatform.d.ts.map +1 -1
  22. package/dist/EnvironmentPlatform.js +3 -1
  23. package/dist/EnvironmentPlatform.js.map +1 -1
  24. package/dist/EnvironmentPreset.d.ts +7 -0
  25. package/dist/EnvironmentPreset.d.ts.map +1 -1
  26. package/dist/EnvironmentPreset.js +11 -11
  27. package/dist/EnvironmentPreset.js.map +1 -1
  28. package/dist/EnvironmentPresetPack.d.ts +16 -0
  29. package/dist/EnvironmentPresetPack.d.ts.map +1 -1
  30. package/dist/EnvironmentPresetPack.js +28 -0
  31. package/dist/EnvironmentPresetPack.js.map +1 -1
  32. package/dist/ExtensionScalarAtlas.d.ts +18 -0
  33. package/dist/ExtensionScalarAtlas.d.ts.map +1 -0
  34. package/dist/ExtensionScalarAtlas.js +107 -0
  35. package/dist/ExtensionScalarAtlas.js.map +1 -0
  36. package/dist/ExternalParityRenderPreset.d.ts +15 -1
  37. package/dist/ExternalParityRenderPreset.d.ts.map +1 -1
  38. package/dist/ExternalParityRenderPreset.js +52 -7
  39. package/dist/ExternalParityRenderPreset.js.map +1 -1
  40. package/dist/ForwardPass.d.ts +240 -50
  41. package/dist/ForwardPass.d.ts.map +1 -1
  42. package/dist/ForwardPass.js +845 -866
  43. package/dist/ForwardPass.js.map +1 -1
  44. package/dist/Geometry.d.ts +44 -1
  45. package/dist/Geometry.d.ts.map +1 -1
  46. package/dist/Geometry.js +174 -24
  47. package/dist/Geometry.js.map +1 -1
  48. package/dist/InstancedPBRMaterial.d.ts +5 -0
  49. package/dist/InstancedPBRMaterial.d.ts.map +1 -1
  50. package/dist/InstancedPBRMaterial.js +7 -0
  51. package/dist/InstancedPBRMaterial.js.map +1 -1
  52. package/dist/LeanWebGL2Device.d.ts +265 -0
  53. package/dist/LeanWebGL2Device.d.ts.map +1 -0
  54. package/dist/LeanWebGL2Device.js +4001 -0
  55. package/dist/LeanWebGL2Device.js.map +1 -0
  56. package/dist/LightCollector.d.ts +8 -0
  57. package/dist/LightCollector.d.ts.map +1 -1
  58. package/dist/LightCollector.js +1 -1
  59. package/dist/LightCollector.js.map +1 -1
  60. package/dist/LightUniforms.d.ts +78 -0
  61. package/dist/LightUniforms.d.ts.map +1 -1
  62. package/dist/LightUniforms.js +100 -0
  63. package/dist/LightUniforms.js.map +1 -1
  64. package/dist/Material.d.ts +15 -0
  65. package/dist/Material.d.ts.map +1 -1
  66. package/dist/Material.js +19 -2
  67. package/dist/Material.js.map +1 -1
  68. package/dist/MaterialBinding.d.ts +10 -0
  69. package/dist/MaterialBinding.d.ts.map +1 -1
  70. package/dist/MaterialBinding.js +92 -2
  71. package/dist/MaterialBinding.js.map +1 -1
  72. package/dist/MaterialPresets.d.ts +60 -0
  73. package/dist/MaterialPresets.d.ts.map +1 -1
  74. package/dist/MaterialPresets.js +212 -0
  75. package/dist/MaterialPresets.js.map +1 -1
  76. package/dist/NormalMappedPBRMaterial.d.ts +5 -0
  77. package/dist/NormalMappedPBRMaterial.d.ts.map +1 -1
  78. package/dist/NormalMappedPBRMaterial.js +7 -0
  79. package/dist/NormalMappedPBRMaterial.js.map +1 -1
  80. package/dist/OceanSurface.d.ts +8 -0
  81. package/dist/OceanSurface.d.ts.map +1 -1
  82. package/dist/OceanSurface.js +10 -79
  83. package/dist/OceanSurface.js.map +1 -1
  84. package/dist/PBRLightingDefaults.d.ts +8 -0
  85. package/dist/PBRLightingDefaults.d.ts.map +1 -1
  86. package/dist/PBRLightingDefaults.js +8 -0
  87. package/dist/PBRLightingDefaults.js.map +1 -1
  88. package/dist/PBRMaterial.d.ts +5 -0
  89. package/dist/PBRMaterial.d.ts.map +1 -1
  90. package/dist/PBRMaterial.js +7 -0
  91. package/dist/PBRMaterial.js.map +1 -1
  92. package/dist/PlanarReflection.d.ts +2 -2
  93. package/dist/PlanarReflection.js +3 -3
  94. package/dist/PlanarReflection.js.map +1 -1
  95. package/dist/PostProcessPass.d.ts +8 -473
  96. package/dist/PostProcessPass.d.ts.map +1 -1
  97. package/dist/PostProcessPass.js +6 -1984
  98. package/dist/PostProcessPass.js.map +1 -1
  99. package/dist/ProceduralMaterialTextures.d.ts +28 -0
  100. package/dist/ProceduralMaterialTextures.d.ts.map +1 -0
  101. package/dist/ProceduralMaterialTextures.js +217 -0
  102. package/dist/ProceduralMaterialTextures.js.map +1 -0
  103. package/dist/ProjectionMath.d.ts +3 -0
  104. package/dist/ProjectionMath.d.ts.map +1 -0
  105. package/dist/ProjectionMath.js +26 -0
  106. package/dist/ProjectionMath.js.map +1 -0
  107. package/dist/ReflectionProbe.d.ts.map +1 -1
  108. package/dist/ReflectionProbe.js +4 -1
  109. package/dist/ReflectionProbe.js.map +1 -1
  110. package/dist/ReflectionSurfaces.d.ts +4 -1
  111. package/dist/ReflectionSurfaces.d.ts.map +1 -1
  112. package/dist/ReflectionSurfaces.js +10 -1
  113. package/dist/ReflectionSurfaces.js.map +1 -1
  114. package/dist/RenderBackend.d.ts +2 -0
  115. package/dist/RenderBackend.d.ts.map +1 -1
  116. package/dist/RenderBackend.js +3 -0
  117. package/dist/RenderBackend.js.map +1 -1
  118. package/dist/RenderDevice.d.ts +97 -5
  119. package/dist/RenderDevice.d.ts.map +1 -1
  120. package/dist/RenderDevice.js +166 -9
  121. package/dist/RenderDevice.js.map +1 -1
  122. package/dist/RenderGraph.d.ts.map +1 -1
  123. package/dist/RenderGraph.js +17 -0
  124. package/dist/RenderGraph.js.map +1 -1
  125. package/dist/RenderPass.d.ts +7 -0
  126. package/dist/RenderPass.d.ts.map +1 -1
  127. package/dist/RenderPass.js.map +1 -1
  128. package/dist/RenderPipeline.d.ts +5 -0
  129. package/dist/RenderPipeline.d.ts.map +1 -1
  130. package/dist/RenderPipeline.js +6 -0
  131. package/dist/RenderPipeline.js.map +1 -1
  132. package/dist/Renderer.d.ts +270 -66
  133. package/dist/Renderer.d.ts.map +1 -1
  134. package/dist/Renderer.js +970 -1249
  135. package/dist/Renderer.js.map +1 -1
  136. package/dist/RendererPostprocessPlan.d.ts +20 -3
  137. package/dist/RendererPostprocessPlan.d.ts.map +1 -1
  138. package/dist/RendererPostprocessPlan.js +32 -4
  139. package/dist/RendererPostprocessPlan.js.map +1 -1
  140. package/dist/RendererTiming.d.ts +27 -0
  141. package/dist/RendererTiming.d.ts.map +1 -1
  142. package/dist/RendererTiming.js +179 -12
  143. package/dist/RendererTiming.js.map +1 -1
  144. package/dist/ResolutionGovernor.d.ts +56 -0
  145. package/dist/ResolutionGovernor.d.ts.map +1 -0
  146. package/dist/ResolutionGovernor.js +87 -0
  147. package/dist/ResolutionGovernor.js.map +1 -0
  148. package/dist/Sampler.d.ts +34 -1
  149. package/dist/Sampler.d.ts.map +1 -1
  150. package/dist/Sampler.js +55 -2
  151. package/dist/Sampler.js.map +1 -1
  152. package/dist/ScreenSpaceReflectionPass.d.ts +43 -0
  153. package/dist/ScreenSpaceReflectionPass.d.ts.map +1 -0
  154. package/dist/ScreenSpaceReflectionPass.js +58 -0
  155. package/dist/ScreenSpaceReflectionPass.js.map +1 -0
  156. package/dist/ShaderLibrary.d.ts.map +1 -1
  157. package/dist/ShaderLibrary.js +183 -207
  158. package/dist/ShaderLibrary.js.map +1 -1
  159. package/dist/ShaderLibraryCore.d.ts +3 -0
  160. package/dist/ShaderLibraryCore.d.ts.map +1 -1
  161. package/dist/ShaderLibraryCore.js +6 -2
  162. package/dist/ShaderLibraryCore.js.map +1 -1
  163. package/dist/ShaderModule.d.ts +7 -1
  164. package/dist/ShaderModule.d.ts.map +1 -1
  165. package/dist/ShaderModule.js +20 -5
  166. package/dist/ShaderModule.js.map +1 -1
  167. package/dist/ShadowPass.d.ts.map +1 -1
  168. package/dist/ShadowPass.js +14 -7
  169. package/dist/ShadowPass.js.map +1 -1
  170. package/dist/SkinnedLitMaterial.d.ts +5 -0
  171. package/dist/SkinnedLitMaterial.d.ts.map +1 -1
  172. package/dist/SkinnedLitMaterial.js +13 -0
  173. package/dist/SkinnedLitMaterial.js.map +1 -1
  174. package/dist/SkinningBounds.d.ts +18 -0
  175. package/dist/SkinningBounds.d.ts.map +1 -1
  176. package/dist/SkinningBounds.js +78 -0
  177. package/dist/SkinningBounds.js.map +1 -1
  178. package/dist/SkinningPaletteTextureCache.d.ts +117 -0
  179. package/dist/SkinningPaletteTextureCache.d.ts.map +1 -0
  180. package/dist/SkinningPaletteTextureCache.js +205 -0
  181. package/dist/SkinningPaletteTextureCache.js.map +1 -0
  182. package/dist/SkinningUniforms.d.ts +56 -0
  183. package/dist/SkinningUniforms.d.ts.map +1 -0
  184. package/dist/SkinningUniforms.js +262 -0
  185. package/dist/SkinningUniforms.js.map +1 -0
  186. package/dist/TemporalHistory.d.ts +70 -0
  187. package/dist/TemporalHistory.d.ts.map +1 -0
  188. package/dist/TemporalHistory.js +218 -0
  189. package/dist/TemporalHistory.js.map +1 -0
  190. package/dist/TemporalMath.d.ts +3 -0
  191. package/dist/TemporalMath.d.ts.map +1 -0
  192. package/dist/TemporalMath.js +9 -0
  193. package/dist/TemporalMath.js.map +1 -0
  194. package/dist/TerrainHeightfield.d.ts +12 -0
  195. package/dist/TerrainHeightfield.d.ts.map +1 -1
  196. package/dist/TerrainHeightfield.js +29 -6
  197. package/dist/TerrainHeightfield.js.map +1 -1
  198. package/dist/TerrainTiles.d.ts +40 -10
  199. package/dist/TerrainTiles.d.ts.map +1 -1
  200. package/dist/TerrainTiles.js +18 -57
  201. package/dist/TerrainTiles.js.map +1 -1
  202. package/dist/Texture.d.ts +47 -2
  203. package/dist/Texture.d.ts.map +1 -1
  204. package/dist/Texture.js +119 -3
  205. package/dist/Texture.js.map +1 -1
  206. package/dist/TexturedPBRMaterial.d.ts +27 -0
  207. package/dist/TexturedPBRMaterial.d.ts.map +1 -1
  208. package/dist/TexturedPBRMaterial.js +137 -23
  209. package/dist/TexturedPBRMaterial.js.map +1 -1
  210. package/dist/TransmissionRenderTarget.d.ts +33 -0
  211. package/dist/TransmissionRenderTarget.d.ts.map +1 -0
  212. package/dist/TransmissionRenderTarget.js +61 -0
  213. package/dist/TransmissionRenderTarget.js.map +1 -0
  214. package/dist/VegetationScatter.js +1 -1
  215. package/dist/VegetationScatter.js.map +1 -1
  216. package/dist/VolumetricFog.d.ts +42 -0
  217. package/dist/VolumetricFog.d.ts.map +1 -1
  218. package/dist/VolumetricFog.js +52 -1
  219. package/dist/VolumetricFog.js.map +1 -1
  220. package/dist/WaterSurface.d.ts +5 -0
  221. package/dist/WaterSurface.d.ts.map +1 -1
  222. package/dist/WaterSurface.js +5 -0
  223. package/dist/WaterSurface.js.map +1 -1
  224. package/dist/WebGL2Device.d.ts +159 -198
  225. package/dist/WebGL2Device.d.ts.map +1 -1
  226. package/dist/WebGL2Device.js +797 -3443
  227. package/dist/WebGL2Device.js.map +1 -1
  228. package/dist/WebGL2StateCache.d.ts +15 -1
  229. package/dist/WebGL2StateCache.d.ts.map +1 -1
  230. package/dist/WebGL2StateCache.js +31 -2
  231. package/dist/WebGL2StateCache.js.map +1 -1
  232. package/dist/WebGPUDevice.d.ts +16 -9
  233. package/dist/WebGPUDevice.d.ts.map +1 -1
  234. package/dist/WebGPUDevice.js +343 -618
  235. package/dist/WebGPUDevice.js.map +1 -1
  236. package/dist/WebGPUExtensionAtlas.d.ts +6 -0
  237. package/dist/WebGPUExtensionAtlas.d.ts.map +1 -0
  238. package/dist/WebGPUExtensionAtlas.js +225 -0
  239. package/dist/WebGPUExtensionAtlas.js.map +1 -0
  240. package/dist/WebGPUSkinningLimits.d.ts +10 -1
  241. package/dist/WebGPUSkinningLimits.d.ts.map +1 -1
  242. package/dist/WebGPUSkinningLimits.js +15 -1
  243. package/dist/WebGPUSkinningLimits.js.map +1 -1
  244. package/dist/advanced-runtime/index.d.ts +6 -2
  245. package/dist/advanced-runtime/index.d.ts.map +1 -1
  246. package/dist/advanced-runtime/index.js +0 -1
  247. package/dist/advanced-runtime/index.js.map +1 -1
  248. package/dist/animation/AnimationRenderPreset.d.ts +1 -1
  249. package/dist/animation/AnimationRenderPreset.d.ts.map +1 -1
  250. package/dist/animation/AnimationRenderPreset.js +1 -1
  251. package/dist/animation/AnimationRenderPreset.js.map +1 -1
  252. package/dist/animation/applyAnimationRenderPreset.d.ts +1 -1
  253. package/dist/animation/applyAnimationRenderPreset.d.ts.map +1 -1
  254. package/dist/animation/index.d.ts +2 -1
  255. package/dist/animation/index.d.ts.map +1 -1
  256. package/dist/animation/index.js +1 -1
  257. package/dist/animation/index.js.map +1 -1
  258. package/dist/atmosphere/CloudLayer.d.ts +24 -0
  259. package/dist/atmosphere/CloudLayer.d.ts.map +1 -0
  260. package/dist/atmosphere/CloudLayer.js +30 -0
  261. package/dist/atmosphere/CloudLayer.js.map +1 -0
  262. package/dist/atmosphere/FogVolumes.d.ts +30 -0
  263. package/dist/atmosphere/FogVolumes.d.ts.map +1 -0
  264. package/dist/atmosphere/FogVolumes.js +96 -0
  265. package/dist/atmosphere/FogVolumes.js.map +1 -0
  266. package/dist/atmosphere/GradientSky.d.ts +40 -0
  267. package/dist/atmosphere/GradientSky.d.ts.map +1 -0
  268. package/dist/atmosphere/GradientSky.js +75 -0
  269. package/dist/atmosphere/GradientSky.js.map +1 -0
  270. package/dist/atmosphere/HeightFog.d.ts +154 -0
  271. package/dist/atmosphere/HeightFog.d.ts.map +1 -0
  272. package/dist/atmosphere/HeightFog.js +379 -0
  273. package/dist/atmosphere/HeightFog.js.map +1 -0
  274. package/dist/atmosphere/PreethamSky.d.ts +38 -0
  275. package/dist/atmosphere/PreethamSky.d.ts.map +1 -0
  276. package/dist/atmosphere/PreethamSky.js +150 -0
  277. package/dist/atmosphere/PreethamSky.js.map +1 -0
  278. package/dist/atmosphere/SkyBackgroundPass.d.ts +63 -0
  279. package/dist/atmosphere/SkyBackgroundPass.d.ts.map +1 -0
  280. package/dist/atmosphere/SkyBackgroundPass.js +233 -0
  281. package/dist/atmosphere/SkyBackgroundPass.js.map +1 -0
  282. package/dist/atmosphere/SkyCaptureAdapter.d.ts +45 -0
  283. package/dist/atmosphere/SkyCaptureAdapter.d.ts.map +1 -0
  284. package/dist/atmosphere/SkyCaptureAdapter.js +65 -0
  285. package/dist/atmosphere/SkyCaptureAdapter.js.map +1 -0
  286. package/dist/atmosphere/SkyEval.d.ts +56 -0
  287. package/dist/atmosphere/SkyEval.d.ts.map +1 -0
  288. package/dist/atmosphere/SkyEval.js +99 -0
  289. package/dist/atmosphere/SkyEval.js.map +1 -0
  290. package/dist/atmosphere/StarField.d.ts +26 -0
  291. package/dist/atmosphere/StarField.d.ts.map +1 -0
  292. package/dist/atmosphere/StarField.js +31 -0
  293. package/dist/atmosphere/StarField.js.map +1 -0
  294. package/dist/atmosphere/VolumetricFogPass.d.ts +69 -0
  295. package/dist/atmosphere/VolumetricFogPass.d.ts.map +1 -0
  296. package/dist/atmosphere/VolumetricFogPass.js +265 -0
  297. package/dist/atmosphere/VolumetricFogPass.js.map +1 -0
  298. package/dist/atmosphere/fogChunks.d.ts +8 -0
  299. package/dist/atmosphere/fogChunks.d.ts.map +1 -0
  300. package/dist/atmosphere/fogChunks.js +39 -0
  301. package/dist/atmosphere/fogChunks.js.map +1 -0
  302. package/dist/atmosphere/fogUniformStore.d.ts +20 -0
  303. package/dist/atmosphere/fogUniformStore.d.ts.map +1 -0
  304. package/dist/atmosphere/fogUniformStore.js +45 -0
  305. package/dist/atmosphere/fogUniformStore.js.map +1 -0
  306. package/dist/atmosphere/shaders/fog.glsl.d.ts +10 -0
  307. package/dist/atmosphere/shaders/fog.glsl.d.ts.map +1 -0
  308. package/dist/atmosphere/shaders/fog.glsl.js +161 -0
  309. package/dist/atmosphere/shaders/fog.glsl.js.map +1 -0
  310. package/dist/atmosphere/shaders/volumetric-apply.glsl.d.ts +3 -0
  311. package/dist/atmosphere/shaders/volumetric-apply.glsl.d.ts.map +1 -0
  312. package/dist/atmosphere/shaders/volumetric-apply.glsl.js +61 -0
  313. package/dist/atmosphere/shaders/volumetric-apply.glsl.js.map +1 -0
  314. package/dist/atmosphere/shaders/volumetric-inject.glsl.d.ts +4 -0
  315. package/dist/atmosphere/shaders/volumetric-inject.glsl.d.ts.map +1 -0
  316. package/dist/atmosphere/shaders/volumetric-inject.glsl.js +129 -0
  317. package/dist/atmosphere/shaders/volumetric-inject.glsl.js.map +1 -0
  318. package/dist/atmosphere/shaders/volumetric-integrate.glsl.d.ts +3 -0
  319. package/dist/atmosphere/shaders/volumetric-integrate.glsl.d.ts.map +1 -0
  320. package/dist/atmosphere/shaders/volumetric-integrate.glsl.js +55 -0
  321. package/dist/atmosphere/shaders/volumetric-integrate.glsl.js.map +1 -0
  322. package/dist/atmosphere/shaders/wetness.glsl.d.ts +34 -0
  323. package/dist/atmosphere/shaders/wetness.glsl.d.ts.map +1 -0
  324. package/dist/atmosphere/shaders/wetness.glsl.js +101 -0
  325. package/dist/atmosphere/shaders/wetness.glsl.js.map +1 -0
  326. package/dist/atmosphere/sky.glsl.d.ts +8 -0
  327. package/dist/atmosphere/sky.glsl.d.ts.map +1 -0
  328. package/dist/atmosphere/sky.glsl.js +249 -0
  329. package/dist/atmosphere/sky.glsl.js.map +1 -0
  330. package/dist/batching/BatchedGeometryPool.d.ts +72 -0
  331. package/dist/batching/BatchedGeometryPool.d.ts.map +1 -0
  332. package/dist/batching/BatchedGeometryPool.js +138 -0
  333. package/dist/batching/BatchedGeometryPool.js.map +1 -0
  334. package/dist/batching/ContentKeys.d.ts +29 -0
  335. package/dist/batching/ContentKeys.d.ts.map +1 -0
  336. package/dist/batching/ContentKeys.js +220 -0
  337. package/dist/batching/ContentKeys.js.map +1 -0
  338. package/dist/batching/DrawDataTexture.d.ts +51 -0
  339. package/dist/batching/DrawDataTexture.d.ts.map +1 -0
  340. package/dist/batching/DrawDataTexture.js +99 -0
  341. package/dist/batching/DrawDataTexture.js.map +1 -0
  342. package/dist/batching/MultiDrawBatch.d.ts +64 -0
  343. package/dist/batching/MultiDrawBatch.d.ts.map +1 -0
  344. package/dist/batching/MultiDrawBatch.js +103 -0
  345. package/dist/batching/MultiDrawBatch.js.map +1 -0
  346. package/dist/batching/StaticMergePlanner.d.ts +80 -0
  347. package/dist/batching/StaticMergePlanner.d.ts.map +1 -0
  348. package/dist/batching/StaticMergePlanner.js +323 -0
  349. package/dist/batching/StaticMergePlanner.js.map +1 -0
  350. package/dist/batching/index.d.ts +8 -0
  351. package/dist/batching/index.d.ts.map +1 -0
  352. package/dist/batching/index.js +8 -0
  353. package/dist/batching/index.js.map +1 -0
  354. package/dist/batching/shaders/drawId.glsl.d.ts +29 -0
  355. package/dist/batching/shaders/drawId.glsl.d.ts.map +1 -0
  356. package/dist/batching/shaders/drawId.glsl.js +93 -0
  357. package/dist/batching/shaders/drawId.glsl.js.map +1 -0
  358. package/dist/batching/shaders/instanceEmissive.glsl.d.ts +16 -0
  359. package/dist/batching/shaders/instanceEmissive.glsl.d.ts.map +1 -0
  360. package/dist/batching/shaders/instanceEmissive.glsl.js +63 -0
  361. package/dist/batching/shaders/instanceEmissive.glsl.js.map +1 -0
  362. package/dist/cinematic/BloomPass.d.ts +5 -9
  363. package/dist/cinematic/BloomPass.d.ts.map +1 -1
  364. package/dist/cinematic/BloomPass.js +5 -17
  365. package/dist/cinematic/BloomPass.js.map +1 -1
  366. package/dist/cinematic/DepthHazePass.d.ts +5 -11
  367. package/dist/cinematic/DepthHazePass.d.ts.map +1 -1
  368. package/dist/cinematic/DepthHazePass.js +5 -19
  369. package/dist/cinematic/DepthHazePass.js.map +1 -1
  370. package/dist/cinematic/FilmGrainPass.d.ts +5 -8
  371. package/dist/cinematic/FilmGrainPass.d.ts.map +1 -1
  372. package/dist/cinematic/FilmGrainPass.js +5 -16
  373. package/dist/cinematic/FilmGrainPass.js.map +1 -1
  374. package/dist/cinematic/VignettePass.d.ts +5 -9
  375. package/dist/cinematic/VignettePass.d.ts.map +1 -1
  376. package/dist/cinematic/VignettePass.js +5 -16
  377. package/dist/cinematic/VignettePass.js.map +1 -1
  378. package/dist/cinematic/index.d.ts +2 -1
  379. package/dist/cinematic/index.d.ts.map +1 -1
  380. package/dist/cinematic/index.js +1 -1
  381. package/dist/cinematic/index.js.map +1 -1
  382. package/dist/contracts/atmosphere.d.ts +30 -0
  383. package/dist/contracts/atmosphere.d.ts.map +1 -0
  384. package/dist/contracts/atmosphere.js +42 -0
  385. package/dist/contracts/atmosphere.js.map +1 -0
  386. package/dist/contracts/blend.d.ts +28 -0
  387. package/dist/contracts/blend.d.ts.map +1 -0
  388. package/dist/contracts/blend.js +73 -0
  389. package/dist/contracts/blend.js.map +1 -0
  390. package/dist/contracts/core.d.ts +47 -0
  391. package/dist/contracts/core.d.ts.map +1 -0
  392. package/dist/contracts/core.js +70 -0
  393. package/dist/contracts/core.js.map +1 -0
  394. package/dist/contracts/deform.d.ts +38 -0
  395. package/dist/contracts/deform.d.ts.map +1 -0
  396. package/dist/contracts/deform.js +14 -0
  397. package/dist/contracts/deform.js.map +1 -0
  398. package/dist/contracts/device.d.ts +71 -0
  399. package/dist/contracts/device.d.ts.map +1 -0
  400. package/dist/contracts/device.js +97 -0
  401. package/dist/contracts/device.js.map +1 -0
  402. package/dist/contracts/environment.d.ts +55 -0
  403. package/dist/contracts/environment.d.ts.map +1 -0
  404. package/dist/contracts/environment.js +115 -0
  405. package/dist/contracts/environment.js.map +1 -0
  406. package/dist/contracts/flags.state.d.ts +15 -0
  407. package/dist/contracts/flags.state.d.ts.map +1 -0
  408. package/dist/contracts/flags.state.js +45 -0
  409. package/dist/contracts/flags.state.js.map +1 -0
  410. package/dist/contracts/frameGraph.d.ts +78 -0
  411. package/dist/contracts/frameGraph.d.ts.map +1 -0
  412. package/dist/contracts/frameGraph.js +32 -0
  413. package/dist/contracts/frameGraph.js.map +1 -0
  414. package/dist/contracts/frameUniforms.d.ts +43 -0
  415. package/dist/contracts/frameUniforms.d.ts.map +1 -0
  416. package/dist/contracts/frameUniforms.js +35 -0
  417. package/dist/contracts/frameUniforms.js.map +1 -0
  418. package/dist/contracts/geometry.d.ts +33 -0
  419. package/dist/contracts/geometry.d.ts.map +1 -0
  420. package/dist/contracts/geometry.js +59 -0
  421. package/dist/contracts/geometry.js.map +1 -0
  422. package/dist/contracts/index.d.ts +27 -0
  423. package/dist/contracts/index.d.ts.map +1 -0
  424. package/dist/contracts/index.js +27 -0
  425. package/dist/contracts/index.js.map +1 -0
  426. package/dist/contracts/materialLobes.d.ts +41 -0
  427. package/dist/contracts/materialLobes.d.ts.map +1 -0
  428. package/dist/contracts/materialLobes.js +14 -0
  429. package/dist/contracts/materialLobes.js.map +1 -0
  430. package/dist/contracts/output.d.ts +35 -0
  431. package/dist/contracts/output.d.ts.map +1 -0
  432. package/dist/contracts/output.js +18 -0
  433. package/dist/contracts/output.js.map +1 -0
  434. package/dist/contracts/particles.d.ts +41 -0
  435. package/dist/contracts/particles.d.ts.map +1 -0
  436. package/dist/contracts/particles.js +15 -0
  437. package/dist/contracts/particles.js.map +1 -0
  438. package/dist/contracts/post.d.ts +71 -0
  439. package/dist/contracts/post.d.ts.map +1 -0
  440. package/dist/contracts/post.js +28 -0
  441. package/dist/contracts/post.js.map +1 -0
  442. package/dist/contracts/program.d.ts +158 -0
  443. package/dist/contracts/program.d.ts.map +1 -0
  444. package/dist/contracts/program.js +128 -0
  445. package/dist/contracts/program.js.map +1 -0
  446. package/dist/contracts/quality.d.ts +93 -0
  447. package/dist/contracts/quality.d.ts.map +1 -0
  448. package/dist/contracts/quality.js +149 -0
  449. package/dist/contracts/quality.js.map +1 -0
  450. package/dist/contracts/renderItem.d.ts +58 -0
  451. package/dist/contracts/renderItem.d.ts.map +1 -0
  452. package/dist/contracts/renderItem.js +8 -0
  453. package/dist/contracts/renderItem.js.map +1 -0
  454. package/dist/contracts/renderSource.d.ts +63 -0
  455. package/dist/contracts/renderSource.d.ts.map +1 -0
  456. package/dist/contracts/renderSource.js +7 -0
  457. package/dist/contracts/renderSource.js.map +1 -0
  458. package/dist/contracts/rendererFactory.d.ts +42 -0
  459. package/dist/contracts/rendererFactory.d.ts.map +1 -0
  460. package/dist/contracts/rendererFactory.js +32 -0
  461. package/dist/contracts/rendererFactory.js.map +1 -0
  462. package/dist/contracts/sampling.d.ts +23 -0
  463. package/dist/contracts/sampling.d.ts.map +1 -0
  464. package/dist/contracts/sampling.js +17 -0
  465. package/dist/contracts/sampling.js.map +1 -0
  466. package/dist/contracts/shadows.d.ts +53 -0
  467. package/dist/contracts/shadows.d.ts.map +1 -0
  468. package/dist/contracts/shadows.js +66 -0
  469. package/dist/contracts/shadows.js.map +1 -0
  470. package/dist/contracts/testing/ChunkHarness.d.ts +18 -0
  471. package/dist/contracts/testing/ChunkHarness.d.ts.map +1 -0
  472. package/dist/contracts/testing/ChunkHarness.js +68 -0
  473. package/dist/contracts/testing/ChunkHarness.js.map +1 -0
  474. package/dist/contracts/textureFormats.d.ts +18 -0
  475. package/dist/contracts/textureFormats.d.ts.map +1 -0
  476. package/dist/contracts/textureFormats.js +13 -0
  477. package/dist/contracts/textureFormats.js.map +1 -0
  478. package/dist/contracts/velocity.d.ts +37 -0
  479. package/dist/contracts/velocity.d.ts.map +1 -0
  480. package/dist/contracts/velocity.js +22 -0
  481. package/dist/contracts/velocity.js.map +1 -0
  482. package/dist/effects/GPUParticleBackend.d.ts +4 -2
  483. package/dist/effects/GPUParticleBackend.d.ts.map +1 -1
  484. package/dist/effects/GPUParticleBackend.js +20 -2
  485. package/dist/effects/GPUParticleBackend.js.map +1 -1
  486. package/dist/effects/ResidentGPUParticleRenderer.d.ts +158 -0
  487. package/dist/effects/ResidentGPUParticleRenderer.d.ts.map +1 -0
  488. package/dist/effects/ResidentGPUParticleRenderer.js +576 -0
  489. package/dist/effects/ResidentGPUParticleRenderer.js.map +1 -0
  490. package/dist/environment/EnvUniforms.d.ts +42 -0
  491. package/dist/environment/EnvUniforms.d.ts.map +1 -0
  492. package/dist/environment/EnvUniforms.js +54 -0
  493. package/dist/environment/EnvUniforms.js.map +1 -0
  494. package/dist/environment/EnvironmentCache.d.ts +83 -0
  495. package/dist/environment/EnvironmentCache.d.ts.map +1 -0
  496. package/dist/environment/EnvironmentCache.js +205 -0
  497. package/dist/environment/EnvironmentCache.js.map +1 -0
  498. package/dist/environment/EnvironmentProbeFactory.d.ts +41 -0
  499. package/dist/environment/EnvironmentProbeFactory.d.ts.map +1 -0
  500. package/dist/environment/EnvironmentProbeFactory.js +52 -0
  501. package/dist/environment/EnvironmentProbeFactory.js.map +1 -0
  502. package/dist/environment/GPUPMREMGenerator.d.ts +44 -0
  503. package/dist/environment/GPUPMREMGenerator.d.ts.map +1 -0
  504. package/dist/environment/GPUPMREMGenerator.js +98 -0
  505. package/dist/environment/GPUPMREMGenerator.js.map +1 -0
  506. package/dist/environment/HdrEquirect.d.ts +28 -0
  507. package/dist/environment/HdrEquirect.d.ts.map +1 -0
  508. package/dist/environment/HdrEquirect.js +205 -0
  509. package/dist/environment/HdrEquirect.js.map +1 -0
  510. package/dist/environment/LightingSamplerBudget.d.ts +20 -0
  511. package/dist/environment/LightingSamplerBudget.d.ts.map +1 -0
  512. package/dist/environment/LightingSamplerBudget.js +94 -0
  513. package/dist/environment/LightingSamplerBudget.js.map +1 -0
  514. package/dist/environment/Prd02BackgroundShaderLibrary.d.ts +10 -0
  515. package/dist/environment/Prd02BackgroundShaderLibrary.d.ts.map +1 -0
  516. package/dist/environment/Prd02BackgroundShaderLibrary.js +100 -0
  517. package/dist/environment/Prd02BackgroundShaderLibrary.js.map +1 -0
  518. package/dist/environment/Rgb9e5Cube.d.ts +25 -0
  519. package/dist/environment/Rgb9e5Cube.d.ts.map +1 -0
  520. package/dist/environment/Rgb9e5Cube.js +103 -0
  521. package/dist/environment/Rgb9e5Cube.js.map +1 -0
  522. package/dist/environment/RoomEnvironmentScene.d.ts +57 -0
  523. package/dist/environment/RoomEnvironmentScene.d.ts.map +1 -0
  524. package/dist/environment/RoomEnvironmentScene.js +165 -0
  525. package/dist/environment/RoomEnvironmentScene.js.map +1 -0
  526. package/dist/environment/SphericalHarmonics.d.ts +32 -0
  527. package/dist/environment/SphericalHarmonics.d.ts.map +1 -0
  528. package/dist/environment/SphericalHarmonics.js +155 -0
  529. package/dist/environment/SphericalHarmonics.js.map +1 -0
  530. package/dist/environment/probeBuild.d.ts +97 -0
  531. package/dist/environment/probeBuild.d.ts.map +1 -0
  532. package/dist/environment/probeBuild.js +406 -0
  533. package/dist/environment/probeBuild.js.map +1 -0
  534. package/dist/environment/workers/cpuPrefilter.d.ts +58 -0
  535. package/dist/environment/workers/cpuPrefilter.d.ts.map +1 -0
  536. package/dist/environment/workers/cpuPrefilter.js +288 -0
  537. package/dist/environment/workers/cpuPrefilter.js.map +1 -0
  538. package/dist/extension-scalar-atlas.d.ts +3 -0
  539. package/dist/extension-scalar-atlas.d.ts.map +1 -0
  540. package/dist/extension-scalar-atlas.js +2 -0
  541. package/dist/extension-scalar-atlas.js.map +1 -0
  542. package/dist/forward/Deform.d.ts +56 -0
  543. package/dist/forward/Deform.d.ts.map +1 -0
  544. package/dist/forward/Deform.js +517 -0
  545. package/dist/forward/Deform.js.map +1 -0
  546. package/dist/forward/DrawSubmit.d.ts +32 -0
  547. package/dist/forward/DrawSubmit.d.ts.map +1 -0
  548. package/dist/forward/DrawSubmit.js +75 -0
  549. package/dist/forward/DrawSubmit.js.map +1 -0
  550. package/dist/forward/Lighting.d.ts +35 -0
  551. package/dist/forward/Lighting.d.ts.map +1 -0
  552. package/dist/forward/Lighting.js +477 -0
  553. package/dist/forward/Lighting.js.map +1 -0
  554. package/dist/forward/Transmission.d.ts +62 -0
  555. package/dist/forward/Transmission.d.ts.map +1 -0
  556. package/dist/forward/Transmission.js +299 -0
  557. package/dist/forward/Transmission.js.map +1 -0
  558. package/dist/forward/Velocity.d.ts +47 -0
  559. package/dist/forward/Velocity.d.ts.map +1 -0
  560. package/dist/forward/Velocity.js +153 -0
  561. package/dist/forward/Velocity.js.map +1 -0
  562. package/dist/forward/transmissionTargetStore.d.ts +21 -0
  563. package/dist/forward/transmissionTargetStore.d.ts.map +1 -0
  564. package/dist/forward/transmissionTargetStore.js +8 -0
  565. package/dist/forward/transmissionTargetStore.js.map +1 -0
  566. package/dist/geometry/Primitives.d.ts +28 -0
  567. package/dist/geometry/Primitives.d.ts.map +1 -0
  568. package/dist/geometry/Primitives.js +110 -0
  569. package/dist/geometry/Primitives.js.map +1 -0
  570. package/dist/index.d.ts +140 -57
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +102 -51
  573. package/dist/index.js.map +1 -1
  574. package/dist/lanes/index.d.ts +17 -0
  575. package/dist/lanes/index.d.ts.map +1 -0
  576. package/dist/lanes/index.js +17 -0
  577. package/dist/lanes/index.js.map +1 -0
  578. package/dist/lanes/prd01.d.ts +6 -0
  579. package/dist/lanes/prd01.d.ts.map +1 -0
  580. package/dist/lanes/prd01.js +19 -0
  581. package/dist/lanes/prd01.js.map +1 -0
  582. package/dist/lanes/prd02.d.ts +62 -0
  583. package/dist/lanes/prd02.d.ts.map +1 -0
  584. package/dist/lanes/prd02.js +117 -0
  585. package/dist/lanes/prd02.js.map +1 -0
  586. package/dist/lanes/prd03.d.ts +19 -0
  587. package/dist/lanes/prd03.d.ts.map +1 -0
  588. package/dist/lanes/prd03.js +55 -0
  589. package/dist/lanes/prd03.js.map +1 -0
  590. package/dist/lanes/prd04.d.ts +22 -0
  591. package/dist/lanes/prd04.d.ts.map +1 -0
  592. package/dist/lanes/prd04.js +35 -0
  593. package/dist/lanes/prd04.js.map +1 -0
  594. package/dist/lanes/prd05.d.ts +4 -0
  595. package/dist/lanes/prd05.d.ts.map +1 -0
  596. package/dist/lanes/prd05.js +31 -0
  597. package/dist/lanes/prd05.js.map +1 -0
  598. package/dist/lanes/prd06.d.ts +33 -0
  599. package/dist/lanes/prd06.d.ts.map +1 -0
  600. package/dist/lanes/prd06.js +217 -0
  601. package/dist/lanes/prd06.js.map +1 -0
  602. package/dist/lanes/prd07.d.ts +49 -0
  603. package/dist/lanes/prd07.d.ts.map +1 -0
  604. package/dist/lanes/prd07.js +112 -0
  605. package/dist/lanes/prd07.js.map +1 -0
  606. package/dist/lanes/prd08.d.ts +2 -0
  607. package/dist/lanes/prd08.d.ts.map +1 -0
  608. package/dist/lanes/prd08.js +17 -0
  609. package/dist/lanes/prd08.js.map +1 -0
  610. package/dist/lanes/prd09.d.ts +6 -0
  611. package/dist/lanes/prd09.d.ts.map +1 -0
  612. package/dist/lanes/prd09.js +6 -0
  613. package/dist/lanes/prd09.js.map +1 -0
  614. package/dist/lanes/prd10.d.ts +2 -0
  615. package/dist/lanes/prd10.d.ts.map +1 -0
  616. package/dist/lanes/prd10.js +10 -0
  617. package/dist/lanes/prd10.js.map +1 -0
  618. package/dist/lanes/prd11.d.ts +61 -0
  619. package/dist/lanes/prd11.d.ts.map +1 -0
  620. package/dist/lanes/prd11.js +244 -0
  621. package/dist/lanes/prd11.js.map +1 -0
  622. package/dist/lanes/prd12.d.ts +6 -0
  623. package/dist/lanes/prd12.d.ts.map +1 -0
  624. package/dist/lanes/prd12.js +6 -0
  625. package/dist/lanes/prd12.js.map +1 -0
  626. package/dist/lanes/prd13.d.ts +6 -0
  627. package/dist/lanes/prd13.d.ts.map +1 -0
  628. package/dist/lanes/prd13.js +6 -0
  629. package/dist/lanes/prd13.js.map +1 -0
  630. package/dist/lanes/prd14.d.ts +6 -0
  631. package/dist/lanes/prd14.d.ts.map +1 -0
  632. package/dist/lanes/prd14.js +6 -0
  633. package/dist/lanes/prd14.js.map +1 -0
  634. package/dist/lanes/prd15.d.ts +6 -0
  635. package/dist/lanes/prd15.d.ts.map +1 -0
  636. package/dist/lanes/prd15.js +6 -0
  637. package/dist/lanes/prd15.js.map +1 -0
  638. package/dist/lean/LeanProductionRenderer.d.ts.map +1 -1
  639. package/dist/lean/LeanProductionRenderer.js +2 -2
  640. package/dist/lean/LeanProductionRenderer.js.map +1 -1
  641. package/dist/lean-core-runtime.d.ts +13 -0
  642. package/dist/lean-core-runtime.d.ts.map +1 -0
  643. package/dist/lean-core-runtime.js +10 -0
  644. package/dist/lean-core-runtime.js.map +1 -0
  645. package/dist/materials/PhysicalFeatures.d.ts +71 -0
  646. package/dist/materials/PhysicalFeatures.d.ts.map +1 -0
  647. package/dist/materials/PhysicalFeatures.js +255 -0
  648. package/dist/materials/PhysicalFeatures.js.map +1 -0
  649. package/dist/materials/PhysicalMaterial.d.ts +85 -0
  650. package/dist/materials/PhysicalMaterial.d.ts.map +1 -1
  651. package/dist/materials/PhysicalMaterial.js +21 -0
  652. package/dist/materials/PhysicalMaterial.js.map +1 -1
  653. package/dist/materials/features.d.ts +47 -0
  654. package/dist/materials/features.d.ts.map +1 -0
  655. package/dist/materials/features.js +282 -0
  656. package/dist/materials/features.js.map +1 -0
  657. package/dist/materials/lobes.d.ts +3 -0
  658. package/dist/materials/lobes.d.ts.map +1 -0
  659. package/dist/materials/lobes.js +225 -0
  660. package/dist/materials/lobes.js.map +1 -0
  661. package/dist/output/HdrTarget.d.ts +27 -0
  662. package/dist/output/HdrTarget.d.ts.map +1 -0
  663. package/dist/output/HdrTarget.js +48 -0
  664. package/dist/output/HdrTarget.js.map +1 -0
  665. package/dist/output/OutputPass.d.ts +28 -0
  666. package/dist/output/OutputPass.d.ts.map +1 -0
  667. package/dist/output/OutputPass.js +142 -0
  668. package/dist/output/OutputPass.js.map +1 -0
  669. package/dist/output/ToneMappingOperators.glsl.d.ts +22 -0
  670. package/dist/output/ToneMappingOperators.glsl.d.ts.map +1 -0
  671. package/dist/output/ToneMappingOperators.glsl.js +217 -0
  672. package/dist/output/ToneMappingOperators.glsl.js.map +1 -0
  673. package/dist/passes/ContactShadowPass.d.ts +57 -0
  674. package/dist/passes/ContactShadowPass.d.ts.map +1 -0
  675. package/dist/passes/ContactShadowPass.js +151 -0
  676. package/dist/passes/ContactShadowPass.js.map +1 -0
  677. package/dist/passes/Prd02ContactShadowsContributor.d.ts +16 -0
  678. package/dist/passes/Prd02ContactShadowsContributor.d.ts.map +1 -0
  679. package/dist/passes/Prd02ContactShadowsContributor.js +133 -0
  680. package/dist/passes/Prd02ContactShadowsContributor.js.map +1 -0
  681. package/dist/passes/Prd02SubFlags.d.ts +22 -0
  682. package/dist/passes/Prd02SubFlags.d.ts.map +1 -0
  683. package/dist/passes/Prd02SubFlags.js +32 -0
  684. package/dist/passes/Prd02SubFlags.js.map +1 -0
  685. package/dist/performance/BVH.d.ts +46 -0
  686. package/dist/performance/BVH.d.ts.map +1 -1
  687. package/dist/performance/BVH.js +212 -0
  688. package/dist/performance/BVH.js.map +1 -1
  689. package/dist/performance/Batcher.d.ts +11 -0
  690. package/dist/performance/Batcher.d.ts.map +1 -1
  691. package/dist/performance/Batcher.js +10 -0
  692. package/dist/performance/Batcher.js.map +1 -1
  693. package/dist/performance/FrustumCuller.d.ts +29 -0
  694. package/dist/performance/FrustumCuller.d.ts.map +1 -1
  695. package/dist/performance/FrustumCuller.js +78 -1
  696. package/dist/performance/FrustumCuller.js.map +1 -1
  697. package/dist/performance/LOD.d.ts +6 -0
  698. package/dist/performance/LOD.d.ts.map +1 -1
  699. package/dist/performance/LOD.js +12 -0
  700. package/dist/performance/LOD.js.map +1 -1
  701. package/dist/performance/RenderItemSorting.d.ts +2 -0
  702. package/dist/performance/RenderItemSorting.d.ts.map +1 -1
  703. package/dist/performance/RenderItemSorting.js +5 -1
  704. package/dist/performance/RenderItemSorting.js.map +1 -1
  705. package/dist/post/CubeLut.d.ts +15 -0
  706. package/dist/post/CubeLut.d.ts.map +1 -0
  707. package/dist/post/CubeLut.js +86 -0
  708. package/dist/post/CubeLut.js.map +1 -0
  709. package/dist/post/DisplayLutCache.d.ts +31 -0
  710. package/dist/post/DisplayLutCache.d.ts.map +1 -0
  711. package/dist/post/DisplayLutCache.js +44 -0
  712. package/dist/post/DisplayLutCache.js.map +1 -0
  713. package/dist/post/PostAntiAlias.d.ts +49 -0
  714. package/dist/post/PostAntiAlias.d.ts.map +1 -0
  715. package/dist/post/PostAntiAlias.js +75 -0
  716. package/dist/post/PostAntiAlias.js.map +1 -0
  717. package/dist/post/PostGraph.d.ts +206 -0
  718. package/dist/post/PostGraph.d.ts.map +1 -0
  719. package/dist/post/PostGraph.js +234 -0
  720. package/dist/post/PostGraph.js.map +1 -0
  721. package/dist/post/PostQualityTiers.d.ts +95 -0
  722. package/dist/post/PostQualityTiers.d.ts.map +1 -0
  723. package/dist/post/PostQualityTiers.js +62 -0
  724. package/dist/post/PostQualityTiers.js.map +1 -0
  725. package/dist/post/PostResources.d.ts +49 -0
  726. package/dist/post/PostResources.d.ts.map +1 -0
  727. package/dist/post/PostResources.js +119 -0
  728. package/dist/post/PostResources.js.map +1 -0
  729. package/dist/post/PostTimer.d.ts +37 -0
  730. package/dist/post/PostTimer.d.ts.map +1 -0
  731. package/dist/post/PostTimer.js +88 -0
  732. package/dist/post/PostTimer.js.map +1 -0
  733. package/dist/post/ScreenFeelPass.d.ts +83 -0
  734. package/dist/post/ScreenFeelPass.d.ts.map +1 -0
  735. package/dist/post/ScreenFeelPass.js +197 -0
  736. package/dist/post/ScreenFeelPass.js.map +1 -0
  737. package/dist/post/ToneOperators.d.ts +42 -0
  738. package/dist/post/ToneOperators.d.ts.map +1 -0
  739. package/dist/post/ToneOperators.js +179 -0
  740. package/dist/post/ToneOperators.js.map +1 -0
  741. package/dist/post/chunks/indirectFraction.glsl.d.ts +50 -0
  742. package/dist/post/chunks/indirectFraction.glsl.d.ts.map +1 -0
  743. package/dist/post/chunks/indirectFraction.glsl.js +82 -0
  744. package/dist/post/chunks/indirectFraction.glsl.js.map +1 -0
  745. package/dist/post/chunks/velocity.glsl.d.ts +35 -0
  746. package/dist/post/chunks/velocity.glsl.d.ts.map +1 -0
  747. package/dist/post/chunks/velocity.glsl.js +86 -0
  748. package/dist/post/chunks/velocity.glsl.js.map +1 -0
  749. package/dist/post/shaders/bloom.glsl.d.ts +21 -0
  750. package/dist/post/shaders/bloom.glsl.d.ts.map +1 -0
  751. package/dist/post/shaders/bloom.glsl.js +120 -0
  752. package/dist/post/shaders/bloom.glsl.js.map +1 -0
  753. package/dist/post/shaders/bloom.wgsl.d.ts +10 -0
  754. package/dist/post/shaders/bloom.wgsl.d.ts.map +1 -0
  755. package/dist/post/shaders/bloom.wgsl.js +121 -0
  756. package/dist/post/shaders/bloom.wgsl.js.map +1 -0
  757. package/dist/post/shaders/common.glsl.d.ts +11 -0
  758. package/dist/post/shaders/common.glsl.d.ts.map +1 -0
  759. package/dist/post/shaders/common.glsl.js +34 -0
  760. package/dist/post/shaders/common.glsl.js.map +1 -0
  761. package/dist/post/shaders/common.wgsl.d.ts +25 -0
  762. package/dist/post/shaders/common.wgsl.d.ts.map +1 -0
  763. package/dist/post/shaders/common.wgsl.js +48 -0
  764. package/dist/post/shaders/common.wgsl.js.map +1 -0
  765. package/dist/post/shaders/composite.glsl.d.ts +25 -0
  766. package/dist/post/shaders/composite.glsl.d.ts.map +1 -0
  767. package/dist/post/shaders/composite.glsl.js +96 -0
  768. package/dist/post/shaders/composite.glsl.js.map +1 -0
  769. package/dist/post/shaders/composite.wgsl.d.ts +10 -0
  770. package/dist/post/shaders/composite.wgsl.d.ts.map +1 -0
  771. package/dist/post/shaders/composite.wgsl.js +92 -0
  772. package/dist/post/shaders/composite.wgsl.js.map +1 -0
  773. package/dist/post/shaders/depthDownsample.glsl.d.ts +20 -0
  774. package/dist/post/shaders/depthDownsample.glsl.d.ts.map +1 -0
  775. package/dist/post/shaders/depthDownsample.glsl.js +78 -0
  776. package/dist/post/shaders/depthDownsample.glsl.js.map +1 -0
  777. package/dist/post/shaders/depthDownsample.wgsl.d.ts +17 -0
  778. package/dist/post/shaders/depthDownsample.wgsl.d.ts.map +1 -0
  779. package/dist/post/shaders/depthDownsample.wgsl.js +87 -0
  780. package/dist/post/shaders/depthDownsample.wgsl.js.map +1 -0
  781. package/dist/post/shaders/displayGrade.glsl.d.ts +18 -0
  782. package/dist/post/shaders/displayGrade.glsl.d.ts.map +1 -0
  783. package/dist/post/shaders/displayGrade.glsl.js +80 -0
  784. package/dist/post/shaders/displayGrade.glsl.js.map +1 -0
  785. package/dist/post/shaders/displayGrade.wgsl.d.ts +9 -0
  786. package/dist/post/shaders/displayGrade.wgsl.d.ts.map +1 -0
  787. package/dist/post/shaders/displayGrade.wgsl.js +75 -0
  788. package/dist/post/shaders/displayGrade.wgsl.js.map +1 -0
  789. package/dist/post/shaders/dof.glsl.d.ts +25 -0
  790. package/dist/post/shaders/dof.glsl.d.ts.map +1 -0
  791. package/dist/post/shaders/dof.glsl.js +129 -0
  792. package/dist/post/shaders/dof.glsl.js.map +1 -0
  793. package/dist/post/shaders/dof.wgsl.d.ts +11 -0
  794. package/dist/post/shaders/dof.wgsl.d.ts.map +1 -0
  795. package/dist/post/shaders/dof.wgsl.js +119 -0
  796. package/dist/post/shaders/dof.wgsl.js.map +1 -0
  797. package/dist/post/shaders/exposure.glsl.d.ts +43 -0
  798. package/dist/post/shaders/exposure.glsl.d.ts.map +1 -0
  799. package/dist/post/shaders/exposure.glsl.js +115 -0
  800. package/dist/post/shaders/exposure.glsl.js.map +1 -0
  801. package/dist/post/shaders/exposure.wgsl.d.ts +16 -0
  802. package/dist/post/shaders/exposure.wgsl.d.ts.map +1 -0
  803. package/dist/post/shaders/exposure.wgsl.js +97 -0
  804. package/dist/post/shaders/exposure.wgsl.js.map +1 -0
  805. package/dist/post/shaders/finalize.glsl.d.ts +17 -0
  806. package/dist/post/shaders/finalize.glsl.d.ts.map +1 -0
  807. package/dist/post/shaders/finalize.glsl.js +120 -0
  808. package/dist/post/shaders/finalize.glsl.js.map +1 -0
  809. package/dist/post/shaders/finalize.wgsl.d.ts +13 -0
  810. package/dist/post/shaders/finalize.wgsl.d.ts.map +1 -0
  811. package/dist/post/shaders/finalize.wgsl.js +124 -0
  812. package/dist/post/shaders/finalize.wgsl.js.map +1 -0
  813. package/dist/post/shaders/fxaa.glsl.d.ts +26 -0
  814. package/dist/post/shaders/fxaa.glsl.d.ts.map +1 -0
  815. package/dist/post/shaders/fxaa.glsl.js +246 -0
  816. package/dist/post/shaders/fxaa.glsl.js.map +1 -0
  817. package/dist/post/shaders/fxaa.wgsl.d.ts +17 -0
  818. package/dist/post/shaders/fxaa.wgsl.d.ts.map +1 -0
  819. package/dist/post/shaders/fxaa.wgsl.js +268 -0
  820. package/dist/post/shaders/fxaa.wgsl.js.map +1 -0
  821. package/dist/post/shaders/godrays.glsl.d.ts +16 -0
  822. package/dist/post/shaders/godrays.glsl.d.ts.map +1 -0
  823. package/dist/post/shaders/godrays.glsl.js +70 -0
  824. package/dist/post/shaders/godrays.glsl.js.map +1 -0
  825. package/dist/post/shaders/godrays.wgsl.d.ts +8 -0
  826. package/dist/post/shaders/godrays.wgsl.d.ts.map +1 -0
  827. package/dist/post/shaders/godrays.wgsl.js +60 -0
  828. package/dist/post/shaders/godrays.wgsl.js.map +1 -0
  829. package/dist/post/shaders/gtao.glsl.d.ts +29 -0
  830. package/dist/post/shaders/gtao.glsl.d.ts.map +1 -0
  831. package/dist/post/shaders/gtao.glsl.js +190 -0
  832. package/dist/post/shaders/gtao.glsl.js.map +1 -0
  833. package/dist/post/shaders/gtao.wgsl.d.ts +13 -0
  834. package/dist/post/shaders/gtao.wgsl.d.ts.map +1 -0
  835. package/dist/post/shaders/gtao.wgsl.js +163 -0
  836. package/dist/post/shaders/gtao.wgsl.js.map +1 -0
  837. package/dist/post/shaders/gtaoDenoise.glsl.d.ts +22 -0
  838. package/dist/post/shaders/gtaoDenoise.glsl.d.ts.map +1 -0
  839. package/dist/post/shaders/gtaoDenoise.glsl.js +121 -0
  840. package/dist/post/shaders/gtaoDenoise.glsl.js.map +1 -0
  841. package/dist/post/shaders/gtaoDenoise.wgsl.d.ts +11 -0
  842. package/dist/post/shaders/gtaoDenoise.wgsl.d.ts.map +1 -0
  843. package/dist/post/shaders/gtaoDenoise.wgsl.js +117 -0
  844. package/dist/post/shaders/gtaoDenoise.wgsl.js.map +1 -0
  845. package/dist/post/shaders/motionBlur.glsl.d.ts +21 -0
  846. package/dist/post/shaders/motionBlur.glsl.d.ts.map +1 -0
  847. package/dist/post/shaders/motionBlur.glsl.js +110 -0
  848. package/dist/post/shaders/motionBlur.glsl.js.map +1 -0
  849. package/dist/post/shaders/motionBlur.wgsl.d.ts +10 -0
  850. package/dist/post/shaders/motionBlur.wgsl.d.ts.map +1 -0
  851. package/dist/post/shaders/motionBlur.wgsl.js +102 -0
  852. package/dist/post/shaders/motionBlur.wgsl.js.map +1 -0
  853. package/dist/post/shaders/smaa.glsl.d.ts +28 -0
  854. package/dist/post/shaders/smaa.glsl.d.ts.map +1 -0
  855. package/dist/post/shaders/smaa.glsl.js +354 -0
  856. package/dist/post/shaders/smaa.glsl.js.map +1 -0
  857. package/dist/post/shaders/smaa.wgsl.d.ts +20 -0
  858. package/dist/post/shaders/smaa.wgsl.d.ts.map +1 -0
  859. package/dist/post/shaders/smaa.wgsl.js +375 -0
  860. package/dist/post/shaders/smaa.wgsl.js.map +1 -0
  861. package/dist/post/shaders/taa.glsl.d.ts +23 -0
  862. package/dist/post/shaders/taa.glsl.d.ts.map +1 -0
  863. package/dist/post/shaders/taa.glsl.js +169 -0
  864. package/dist/post/shaders/taa.glsl.js.map +1 -0
  865. package/dist/post/shaders/taa.wgsl.d.ts +10 -0
  866. package/dist/post/shaders/taa.wgsl.d.ts.map +1 -0
  867. package/dist/post/shaders/taa.wgsl.js +185 -0
  868. package/dist/post/shaders/taa.wgsl.js.map +1 -0
  869. package/dist/post/shaders/velocityDilate.glsl.d.ts +16 -0
  870. package/dist/post/shaders/velocityDilate.glsl.d.ts.map +1 -0
  871. package/dist/post/shaders/velocityDilate.glsl.js +45 -0
  872. package/dist/post/shaders/velocityDilate.glsl.js.map +1 -0
  873. package/dist/post/shaders/velocityDilate.wgsl.d.ts +8 -0
  874. package/dist/post/shaders/velocityDilate.wgsl.d.ts.map +1 -0
  875. package/dist/post/shaders/velocityDilate.wgsl.js +30 -0
  876. package/dist/post/shaders/velocityDilate.wgsl.js.map +1 -0
  877. package/dist/post/smaa/textures.d.ts +17 -0
  878. package/dist/post/smaa/textures.d.ts.map +1 -0
  879. package/dist/post/smaa/textures.js +17 -0
  880. package/dist/post/smaa/textures.js.map +1 -0
  881. package/dist/post/v2Entry.d.ts +25 -0
  882. package/dist/post/v2Entry.d.ts.map +1 -0
  883. package/dist/post/v2Entry.js +28 -0
  884. package/dist/post/v2Entry.js.map +1 -0
  885. package/dist/post/v2Stages.d.ts +156 -0
  886. package/dist/post/v2Stages.d.ts.map +1 -0
  887. package/dist/post/v2Stages.js +1189 -0
  888. package/dist/post/v2Stages.js.map +1 -0
  889. package/dist/postprocess/EffectComposer.d.ts +6 -109
  890. package/dist/postprocess/EffectComposer.d.ts.map +1 -1
  891. package/dist/postprocess/EffectComposer.js +6 -246
  892. package/dist/postprocess/EffectComposer.js.map +1 -1
  893. package/dist/postprocess/NativeBloomPyramid.d.ts +51 -1
  894. package/dist/postprocess/NativeBloomPyramid.d.ts.map +1 -1
  895. package/dist/postprocess/NativeBloomPyramid.js +88 -1
  896. package/dist/postprocess/NativeBloomPyramid.js.map +1 -1
  897. package/dist/postprocess/SSAOPass.d.ts +5 -5
  898. package/dist/postprocess/SSAOPass.d.ts.map +1 -1
  899. package/dist/postprocess/SSAOPass.js +5 -17
  900. package/dist/postprocess/SSAOPass.js.map +1 -1
  901. package/dist/probes/IrradianceVolume.d.ts +45 -0
  902. package/dist/probes/IrradianceVolume.d.ts.map +1 -0
  903. package/dist/probes/IrradianceVolume.js +230 -0
  904. package/dist/probes/IrradianceVolume.js.map +1 -0
  905. package/dist/probes/LtcLuts.d.ts +30 -0
  906. package/dist/probes/LtcLuts.d.ts.map +1 -0
  907. package/dist/probes/LtcLuts.js +120 -0
  908. package/dist/probes/LtcLuts.js.map +1 -0
  909. package/dist/probes/Prd02ProbesContributor.d.ts +53 -0
  910. package/dist/probes/Prd02ProbesContributor.d.ts.map +1 -0
  911. package/dist/probes/Prd02ProbesContributor.js +241 -0
  912. package/dist/probes/Prd02ProbesContributor.js.map +1 -0
  913. package/dist/probes/ProbeBoxProjection.d.ts +53 -0
  914. package/dist/probes/ProbeBoxProjection.d.ts.map +1 -0
  915. package/dist/probes/ProbeBoxProjection.js +99 -0
  916. package/dist/probes/ProbeBoxProjection.js.map +1 -0
  917. package/dist/probes/ReflectionProbeSystem.d.ts +64 -0
  918. package/dist/probes/ReflectionProbeSystem.d.ts.map +1 -0
  919. package/dist/probes/ReflectionProbeSystem.js +157 -0
  920. package/dist/probes/ReflectionProbeSystem.js.map +1 -0
  921. package/dist/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
  922. package/dist/production-runtime/PBRHDRPipeline.js +23 -9
  923. package/dist/production-runtime/PBRHDRPipeline.js.map +1 -1
  924. package/dist/production-runtime/ProductionRendererTypes.d.ts +17 -6
  925. package/dist/production-runtime/ProductionRendererTypes.d.ts.map +1 -1
  926. package/dist/production-runtime/ProductionRendererTypes.js.map +1 -1
  927. package/dist/production-runtime/ProductionRuntimeRenderer.d.ts +3 -0
  928. package/dist/production-runtime/ProductionRuntimeRenderer.d.ts.map +1 -1
  929. package/dist/production-runtime/ProductionRuntimeRenderer.js +8 -1
  930. package/dist/production-runtime/ProductionRuntimeRenderer.js.map +1 -1
  931. package/dist/production-runtime/ProductionWebGL2Renderer.d.ts +4 -0
  932. package/dist/production-runtime/ProductionWebGL2Renderer.d.ts.map +1 -1
  933. package/dist/production-runtime/ProductionWebGL2Renderer.js +15 -0
  934. package/dist/production-runtime/ProductionWebGL2Renderer.js.map +1 -1
  935. package/dist/production-runtime/ProductionWebGPURenderer.d.ts +11 -5
  936. package/dist/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
  937. package/dist/production-runtime/ProductionWebGPURenderer.js +38 -47
  938. package/dist/production-runtime/ProductionWebGPURenderer.js.map +1 -1
  939. package/dist/production-runtime/backendSelection.d.ts +26 -0
  940. package/dist/production-runtime/backendSelection.d.ts.map +1 -0
  941. package/dist/production-runtime/backendSelection.js +46 -0
  942. package/dist/production-runtime/backendSelection.js.map +1 -0
  943. package/dist/production-runtime/backends/WebGL2RendererBackend.d.ts +1 -1
  944. package/dist/production-runtime/backends/WebGL2RendererBackend.d.ts.map +1 -1
  945. package/dist/production-runtime/backends/WebGL2RendererBackend.js +8 -4
  946. package/dist/production-runtime/backends/WebGL2RendererBackend.js.map +1 -1
  947. package/dist/production-runtime/backends/WebGPURendererBackend.d.ts +2 -19
  948. package/dist/production-runtime/backends/WebGPURendererBackend.d.ts.map +1 -1
  949. package/dist/production-runtime/backends/WebGPURendererBackend.js +2 -18
  950. package/dist/production-runtime/backends/WebGPURendererBackend.js.map +1 -1
  951. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.d.ts +2 -10
  952. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.d.ts.map +1 -1
  953. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.js +2 -7
  954. package/dist/production-runtime/backends/webgl2/WebGL2Buffer.js.map +1 -1
  955. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.d.ts +2 -10
  956. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.d.ts.map +1 -1
  957. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.js +2 -7
  958. package/dist/production-runtime/backends/webgl2/WebGL2Capabilities.js.map +1 -1
  959. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.d.ts +2 -10
  960. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.d.ts.map +1 -1
  961. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.js +2 -7
  962. package/dist/production-runtime/backends/webgl2/WebGL2RenderTarget.js.map +1 -1
  963. package/dist/production-runtime/backends/webgl2/WebGL2Shader.d.ts +2 -10
  964. package/dist/production-runtime/backends/webgl2/WebGL2Shader.d.ts.map +1 -1
  965. package/dist/production-runtime/backends/webgl2/WebGL2Shader.js +2 -7
  966. package/dist/production-runtime/backends/webgl2/WebGL2Shader.js.map +1 -1
  967. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.d.ts +1 -0
  968. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.d.ts.map +1 -1
  969. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.js +1 -0
  970. package/dist/production-runtime/backends/webgl2/WebGL2StateCache.js.map +1 -1
  971. package/dist/production-runtime/backends/webgl2/WebGL2Texture.d.ts +2 -10
  972. package/dist/production-runtime/backends/webgl2/WebGL2Texture.d.ts.map +1 -1
  973. package/dist/production-runtime/backends/webgl2/WebGL2Texture.js +2 -7
  974. package/dist/production-runtime/backends/webgl2/WebGL2Texture.js.map +1 -1
  975. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.d.ts +2 -10
  976. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.d.ts.map +1 -1
  977. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.js +2 -7
  978. package/dist/production-runtime/backends/webgpu/WebGPUBuffer.js.map +1 -1
  979. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.d.ts +2 -10
  980. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.d.ts.map +1 -1
  981. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.js +2 -7
  982. package/dist/production-runtime/backends/webgpu/WebGPUCapabilities.js.map +1 -1
  983. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.d.ts +2 -10
  984. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.d.ts.map +1 -1
  985. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.js +2 -7
  986. package/dist/production-runtime/backends/webgpu/WebGPURenderTarget.js.map +1 -1
  987. package/dist/production-runtime/backends/webgpu/WebGPUShader.d.ts +2 -10
  988. package/dist/production-runtime/backends/webgpu/WebGPUShader.d.ts.map +1 -1
  989. package/dist/production-runtime/backends/webgpu/WebGPUShader.js +2 -7
  990. package/dist/production-runtime/backends/webgpu/WebGPUShader.js.map +1 -1
  991. package/dist/production-runtime/backends/webgpu/WebGPUTexture.d.ts +2 -10
  992. package/dist/production-runtime/backends/webgpu/WebGPUTexture.d.ts.map +1 -1
  993. package/dist/production-runtime/backends/webgpu/WebGPUTexture.js +2 -7
  994. package/dist/production-runtime/backends/webgpu/WebGPUTexture.js.map +1 -1
  995. package/dist/production-runtime/framegraph/FrameGraph.d.ts +4 -2
  996. package/dist/production-runtime/framegraph/FrameGraph.d.ts.map +1 -1
  997. package/dist/production-runtime/framegraph/FrameGraph.js +62 -4
  998. package/dist/production-runtime/framegraph/FrameGraph.js.map +1 -1
  999. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.d.ts +32 -0
  1000. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.d.ts.map +1 -0
  1001. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.js +111 -0
  1002. package/dist/production-runtime/framegraph/NativeFrameGraphBindings.js.map +1 -0
  1003. package/dist/production-runtime/framegraph/RenderPass.d.ts +23 -0
  1004. package/dist/production-runtime/framegraph/RenderPass.d.ts.map +1 -1
  1005. package/dist/production-runtime/framegraph/RenderPass.js +87 -1
  1006. package/dist/production-runtime/framegraph/RenderPass.js.map +1 -1
  1007. package/dist/production-runtime/index.d.ts +8 -6
  1008. package/dist/production-runtime/index.d.ts.map +1 -1
  1009. package/dist/production-runtime/index.js +10 -3
  1010. package/dist/production-runtime/index.js.map +1 -1
  1011. package/dist/production-runtime/materials/GLTFMaterialAdapter.d.ts +12 -13
  1012. package/dist/production-runtime/materials/GLTFMaterialAdapter.d.ts.map +1 -1
  1013. package/dist/production-runtime/materials/GLTFMaterialAdapter.js +10 -4
  1014. package/dist/production-runtime/materials/GLTFMaterialAdapter.js.map +1 -1
  1015. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.d.ts +9 -2
  1016. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.d.ts.map +1 -1
  1017. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.js +7 -1
  1018. package/dist/production-runtime/materials/GLTFPBRMaterialAdapter.js.map +1 -1
  1019. package/dist/production-runtime/materials/MaterialCompiler.d.ts +10 -8
  1020. package/dist/production-runtime/materials/MaterialCompiler.d.ts.map +1 -1
  1021. package/dist/production-runtime/materials/MaterialCompiler.js +9 -4
  1022. package/dist/production-runtime/materials/MaterialCompiler.js.map +1 -1
  1023. package/dist/production-runtime/materials/PBRShaderFeatures.d.ts.map +1 -1
  1024. package/dist/production-runtime/materials/PBRShaderFeatures.js +30 -1
  1025. package/dist/production-runtime/materials/PBRShaderFeatures.js.map +1 -1
  1026. package/dist/production-runtime/passes/DepthPrepass.d.ts +4 -12
  1027. package/dist/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
  1028. package/dist/production-runtime/passes/DepthPrepass.js +3 -11
  1029. package/dist/production-runtime/passes/DepthPrepass.js.map +1 -1
  1030. package/dist/production-runtime/passes/FramegraphTopology.js +1 -1
  1031. package/dist/production-runtime/passes/FramegraphTopology.js.map +1 -1
  1032. package/dist/production-runtime/passes/OpaquePass.d.ts +3 -8
  1033. package/dist/production-runtime/passes/OpaquePass.d.ts.map +1 -1
  1034. package/dist/production-runtime/passes/OpaquePass.js +3 -1
  1035. package/dist/production-runtime/passes/OpaquePass.js.map +1 -1
  1036. package/dist/production-runtime/passes/ShadowPass.d.ts +3 -8
  1037. package/dist/production-runtime/passes/ShadowPass.d.ts.map +1 -1
  1038. package/dist/production-runtime/passes/ShadowPass.js +2 -0
  1039. package/dist/production-runtime/passes/ShadowPass.js.map +1 -1
  1040. package/dist/production-runtime/passes/SkyboxPass.d.ts +3 -7
  1041. package/dist/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
  1042. package/dist/production-runtime/passes/SkyboxPass.js +2 -0
  1043. package/dist/production-runtime/passes/SkyboxPass.js.map +1 -1
  1044. package/dist/production-runtime/passes/ToneMappingPass.d.ts +7 -10
  1045. package/dist/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
  1046. package/dist/production-runtime/passes/ToneMappingPass.js +9 -0
  1047. package/dist/production-runtime/passes/ToneMappingPass.js.map +1 -1
  1048. package/dist/production-runtime/passes/TransparentPass.d.ts +4 -9
  1049. package/dist/production-runtime/passes/TransparentPass.d.ts.map +1 -1
  1050. package/dist/production-runtime/passes/TransparentPass.js +6 -1
  1051. package/dist/production-runtime/passes/TransparentPass.js.map +1 -1
  1052. package/dist/production-runtime/renderProofs.d.ts +54 -0
  1053. package/dist/production-runtime/renderProofs.d.ts.map +1 -0
  1054. package/dist/production-runtime/renderProofs.js +245 -0
  1055. package/dist/production-runtime/renderProofs.js.map +1 -0
  1056. package/dist/program/DFGLut.d.ts +23 -0
  1057. package/dist/program/DFGLut.d.ts.map +1 -0
  1058. package/dist/program/DFGLut.js +58 -0
  1059. package/dist/program/DFGLut.js.map +1 -0
  1060. package/dist/program/DFGLutData.d.ts +35 -0
  1061. package/dist/program/DFGLutData.d.ts.map +1 -0
  1062. package/dist/program/DFGLutData.js +52 -0
  1063. package/dist/program/DFGLutData.js.map +1 -0
  1064. package/dist/program/FeatureSelect.d.ts +35 -0
  1065. package/dist/program/FeatureSelect.d.ts.map +1 -0
  1066. package/dist/program/FeatureSelect.js +88 -0
  1067. package/dist/program/FeatureSelect.js.map +1 -0
  1068. package/dist/program/MaterialFeatures.d.ts +66 -0
  1069. package/dist/program/MaterialFeatures.d.ts.map +1 -0
  1070. package/dist/program/MaterialFeatures.js +242 -0
  1071. package/dist/program/MaterialFeatures.js.map +1 -0
  1072. package/dist/program/ProgramCache.d.ts +83 -0
  1073. package/dist/program/ProgramCache.d.ts.map +1 -0
  1074. package/dist/program/ProgramCache.js +194 -0
  1075. package/dist/program/ProgramCache.js.map +1 -0
  1076. package/dist/program/ProgramFeatures.d.ts +21 -0
  1077. package/dist/program/ProgramFeatures.d.ts.map +1 -0
  1078. package/dist/program/ProgramFeatures.js +95 -0
  1079. package/dist/program/ProgramFeatures.js.map +1 -0
  1080. package/dist/program/ProgramGenerator.d.ts +60 -0
  1081. package/dist/program/ProgramGenerator.d.ts.map +1 -0
  1082. package/dist/program/ProgramGenerator.js +760 -0
  1083. package/dist/program/ProgramGenerator.js.map +1 -0
  1084. package/dist/program/ProgramKey.d.ts +10 -0
  1085. package/dist/program/ProgramKey.d.ts.map +1 -0
  1086. package/dist/program/ProgramKey.js +13 -0
  1087. package/dist/program/ProgramKey.js.map +1 -0
  1088. package/dist/program/ProgramWarmup.d.ts +37 -0
  1089. package/dist/program/ProgramWarmup.d.ts.map +1 -0
  1090. package/dist/program/ProgramWarmup.js +68 -0
  1091. package/dist/program/ProgramWarmup.js.map +1 -0
  1092. package/dist/program/UniformLayout.d.ts +40 -0
  1093. package/dist/program/UniformLayout.d.ts.map +1 -0
  1094. package/dist/program/UniformLayout.js +105 -0
  1095. package/dist/program/UniformLayout.js.map +1 -0
  1096. package/dist/program/chunks/alpha.glsl.d.ts +7 -0
  1097. package/dist/program/chunks/alpha.glsl.d.ts.map +1 -0
  1098. package/dist/program/chunks/alpha.glsl.js +17 -0
  1099. package/dist/program/chunks/alpha.glsl.js.map +1 -0
  1100. package/dist/program/chunks/brdf.glsl.d.ts +12 -0
  1101. package/dist/program/chunks/brdf.glsl.d.ts.map +1 -0
  1102. package/dist/program/chunks/brdf.glsl.js +144 -0
  1103. package/dist/program/chunks/brdf.glsl.js.map +1 -0
  1104. package/dist/program/chunks/colorspace.glsl.d.ts +8 -0
  1105. package/dist/program/chunks/colorspace.glsl.d.ts.map +1 -0
  1106. package/dist/program/chunks/colorspace.glsl.js +16 -0
  1107. package/dist/program/chunks/colorspace.glsl.js.map +1 -0
  1108. package/dist/program/chunks/common.glsl.d.ts +7 -0
  1109. package/dist/program/chunks/common.glsl.d.ts.map +1 -0
  1110. package/dist/program/chunks/common.glsl.js +25 -0
  1111. package/dist/program/chunks/common.glsl.js.map +1 -0
  1112. package/dist/program/chunks/depth.glsl.d.ts +9 -0
  1113. package/dist/program/chunks/depth.glsl.d.ts.map +1 -0
  1114. package/dist/program/chunks/depth.glsl.js +18 -0
  1115. package/dist/program/chunks/depth.glsl.js.map +1 -0
  1116. package/dist/program/chunks/drawId.wgsl.d.ts +9 -0
  1117. package/dist/program/chunks/drawId.wgsl.d.ts.map +1 -0
  1118. package/dist/program/chunks/drawId.wgsl.js +29 -0
  1119. package/dist/program/chunks/drawId.wgsl.js.map +1 -0
  1120. package/dist/program/chunks/fog_default.glsl.d.ts +8 -0
  1121. package/dist/program/chunks/fog_default.glsl.d.ts.map +1 -0
  1122. package/dist/program/chunks/fog_default.glsl.js +31 -0
  1123. package/dist/program/chunks/fog_default.glsl.js.map +1 -0
  1124. package/dist/program/chunks/indirect_default.glsl.d.ts +29 -0
  1125. package/dist/program/chunks/indirect_default.glsl.d.ts.map +1 -0
  1126. package/dist/program/chunks/indirect_default.glsl.js +113 -0
  1127. package/dist/program/chunks/indirect_default.glsl.js.map +1 -0
  1128. package/dist/program/chunks/instanceEmissive.wgsl.d.ts +10 -0
  1129. package/dist/program/chunks/instanceEmissive.wgsl.d.ts.map +1 -0
  1130. package/dist/program/chunks/instanceEmissive.wgsl.js +21 -0
  1131. package/dist/program/chunks/instanceEmissive.wgsl.js.map +1 -0
  1132. package/dist/program/chunks/instancing.glsl.d.ts +8 -0
  1133. package/dist/program/chunks/instancing.glsl.d.ts.map +1 -0
  1134. package/dist/program/chunks/instancing.glsl.js +25 -0
  1135. package/dist/program/chunks/instancing.glsl.js.map +1 -0
  1136. package/dist/program/chunks/lights_legacy.glsl.d.ts +15 -0
  1137. package/dist/program/chunks/lights_legacy.glsl.d.ts.map +1 -0
  1138. package/dist/program/chunks/lights_legacy.glsl.js +95 -0
  1139. package/dist/program/chunks/lights_legacy.glsl.js.map +1 -0
  1140. package/dist/program/chunks/manifest.d.ts +42 -0
  1141. package/dist/program/chunks/manifest.d.ts.map +1 -0
  1142. package/dist/program/chunks/manifest.js +48 -0
  1143. package/dist/program/chunks/manifest.js.map +1 -0
  1144. package/dist/program/chunks/normal.glsl.d.ts +8 -0
  1145. package/dist/program/chunks/normal.glsl.d.ts.map +1 -0
  1146. package/dist/program/chunks/normal.glsl.js +34 -0
  1147. package/dist/program/chunks/normal.glsl.js.map +1 -0
  1148. package/dist/program/chunks/shadow_forward.glsl.d.ts +23 -0
  1149. package/dist/program/chunks/shadow_forward.glsl.d.ts.map +1 -0
  1150. package/dist/program/chunks/shadow_forward.glsl.js +73 -0
  1151. package/dist/program/chunks/shadow_forward.glsl.js.map +1 -0
  1152. package/dist/quality/DeviceClasses.d.ts +31 -0
  1153. package/dist/quality/DeviceClasses.d.ts.map +1 -0
  1154. package/dist/quality/DeviceClasses.js +83 -0
  1155. package/dist/quality/DeviceClasses.js.map +1 -0
  1156. package/dist/quality/DeviceProbe.d.ts +42 -0
  1157. package/dist/quality/DeviceProbe.d.ts.map +1 -0
  1158. package/dist/quality/DeviceProbe.js +83 -0
  1159. package/dist/quality/DeviceProbe.js.map +1 -0
  1160. package/dist/quality/FrameStats.d.ts +62 -0
  1161. package/dist/quality/FrameStats.d.ts.map +1 -0
  1162. package/dist/quality/FrameStats.js +220 -0
  1163. package/dist/quality/FrameStats.js.map +1 -0
  1164. package/dist/quality/PostprocessGuard.d.ts +49 -0
  1165. package/dist/quality/PostprocessGuard.d.ts.map +1 -0
  1166. package/dist/quality/PostprocessGuard.js +92 -0
  1167. package/dist/quality/PostprocessGuard.js.map +1 -0
  1168. package/dist/quality/QualityController.d.ts +93 -0
  1169. package/dist/quality/QualityController.d.ts.map +1 -0
  1170. package/dist/quality/QualityController.js +248 -0
  1171. package/dist/quality/QualityController.js.map +1 -0
  1172. package/dist/quality/QualityGovernor.d.ts +78 -0
  1173. package/dist/quality/QualityGovernor.d.ts.map +1 -0
  1174. package/dist/quality/QualityGovernor.js +170 -0
  1175. package/dist/quality/QualityGovernor.js.map +1 -0
  1176. package/dist/quality/QualityTier.d.ts +17 -0
  1177. package/dist/quality/QualityTier.d.ts.map +1 -0
  1178. package/dist/quality/QualityTier.js +23 -0
  1179. package/dist/quality/QualityTier.js.map +1 -0
  1180. package/dist/quality/RenderScaleController.d.ts +35 -0
  1181. package/dist/quality/RenderScaleController.d.ts.map +1 -0
  1182. package/dist/quality/RenderScaleController.js +57 -0
  1183. package/dist/quality/RenderScaleController.js.map +1 -0
  1184. package/dist/quality/RetentionPolicy.d.ts +11 -0
  1185. package/dist/quality/RetentionPolicy.d.ts.map +1 -0
  1186. package/dist/quality/RetentionPolicy.js +12 -0
  1187. package/dist/quality/RetentionPolicy.js.map +1 -0
  1188. package/dist/quality/TierResolver.d.ts +52 -0
  1189. package/dist/quality/TierResolver.d.ts.map +1 -0
  1190. package/dist/quality/TierResolver.js +155 -0
  1191. package/dist/quality/TierResolver.js.map +1 -0
  1192. package/dist/quality/liveTier.d.ts +23 -0
  1193. package/dist/quality/liveTier.d.ts.map +1 -0
  1194. package/dist/quality/liveTier.js +16 -0
  1195. package/dist/quality/liveTier.js.map +1 -0
  1196. package/dist/reference/BloomPass.d.ts +10 -0
  1197. package/dist/reference/BloomPass.d.ts.map +1 -0
  1198. package/dist/reference/BloomPass.js +18 -0
  1199. package/dist/reference/BloomPass.js.map +1 -0
  1200. package/dist/reference/DepthHazePass.d.ts +12 -0
  1201. package/dist/reference/DepthHazePass.d.ts.map +1 -0
  1202. package/dist/reference/DepthHazePass.js +20 -0
  1203. package/dist/reference/DepthHazePass.js.map +1 -0
  1204. package/dist/reference/EffectComposer.d.ts +110 -0
  1205. package/dist/reference/EffectComposer.d.ts.map +1 -0
  1206. package/dist/reference/EffectComposer.js +247 -0
  1207. package/dist/reference/EffectComposer.js.map +1 -0
  1208. package/dist/reference/FilmGrainPass.d.ts +9 -0
  1209. package/dist/reference/FilmGrainPass.d.ts.map +1 -0
  1210. package/dist/reference/FilmGrainPass.js +17 -0
  1211. package/dist/reference/FilmGrainPass.js.map +1 -0
  1212. package/dist/reference/PostProcessPass.d.ts +511 -0
  1213. package/dist/reference/PostProcessPass.d.ts.map +1 -0
  1214. package/dist/reference/PostProcessPass.js +2020 -0
  1215. package/dist/reference/PostProcessPass.js.map +1 -0
  1216. package/dist/reference/SSAOPass.d.ts +6 -0
  1217. package/dist/reference/SSAOPass.d.ts.map +1 -0
  1218. package/dist/reference/SSAOPass.js +18 -0
  1219. package/dist/reference/SSAOPass.js.map +1 -0
  1220. package/dist/reference/VignettePass.d.ts +10 -0
  1221. package/dist/reference/VignettePass.d.ts.map +1 -0
  1222. package/dist/reference/VignettePass.js +17 -0
  1223. package/dist/reference/VignettePass.js.map +1 -0
  1224. package/dist/reference/index.d.ts +15 -0
  1225. package/dist/reference/index.d.ts.map +1 -0
  1226. package/dist/reference/index.js +15 -0
  1227. package/dist/reference/index.js.map +1 -0
  1228. package/dist/reflection-surfaces.d.ts +5 -0
  1229. package/dist/reflection-surfaces.d.ts.map +1 -0
  1230. package/dist/reflection-surfaces.js +3 -0
  1231. package/dist/reflection-surfaces.js.map +1 -0
  1232. package/dist/renderer/Background.d.ts +49 -0
  1233. package/dist/renderer/Background.d.ts.map +1 -0
  1234. package/dist/renderer/Background.js +259 -0
  1235. package/dist/renderer/Background.js.map +1 -0
  1236. package/dist/renderer/CullingBatching.d.ts +55 -0
  1237. package/dist/renderer/CullingBatching.d.ts.map +1 -0
  1238. package/dist/renderer/CullingBatching.js +362 -0
  1239. package/dist/renderer/CullingBatching.js.map +1 -0
  1240. package/dist/renderer/DeviceLifecycle.d.ts +29 -0
  1241. package/dist/renderer/DeviceLifecycle.d.ts.map +1 -0
  1242. package/dist/renderer/DeviceLifecycle.js +48 -0
  1243. package/dist/renderer/DeviceLifecycle.js.map +1 -0
  1244. package/dist/renderer/FrameGraph.d.ts +96 -0
  1245. package/dist/renderer/FrameGraph.d.ts.map +1 -0
  1246. package/dist/renderer/FrameGraph.js +301 -0
  1247. package/dist/renderer/FrameGraph.js.map +1 -0
  1248. package/dist/renderer/InterleavedTransparentPass.d.ts +31 -0
  1249. package/dist/renderer/InterleavedTransparentPass.d.ts.map +1 -0
  1250. package/dist/renderer/InterleavedTransparentPass.js +65 -0
  1251. package/dist/renderer/InterleavedTransparentPass.js.map +1 -0
  1252. package/dist/renderer/PixelRatio.d.ts +64 -0
  1253. package/dist/renderer/PixelRatio.d.ts.map +1 -0
  1254. package/dist/renderer/PixelRatio.js +81 -0
  1255. package/dist/renderer/PixelRatio.js.map +1 -0
  1256. package/dist/renderer/PostprocessExecution.d.ts +82 -0
  1257. package/dist/renderer/PostprocessExecution.d.ts.map +1 -0
  1258. package/dist/renderer/PostprocessExecution.js +741 -0
  1259. package/dist/renderer/PostprocessExecution.js.map +1 -0
  1260. package/dist/renderer/Prd06ShaderWarmup.d.ts +32 -0
  1261. package/dist/renderer/Prd06ShaderWarmup.d.ts.map +1 -0
  1262. package/dist/renderer/Prd06ShaderWarmup.js +45 -0
  1263. package/dist/renderer/Prd06ShaderWarmup.js.map +1 -0
  1264. package/dist/renderer/RenderShared.d.ts +11 -0
  1265. package/dist/renderer/RenderShared.d.ts.map +1 -0
  1266. package/dist/renderer/RenderShared.js +47 -0
  1267. package/dist/renderer/RenderShared.js.map +1 -0
  1268. package/dist/renderer/RendererFactory.d.ts +3 -0
  1269. package/dist/renderer/RendererFactory.d.ts.map +1 -0
  1270. package/dist/renderer/RendererFactory.js +19 -0
  1271. package/dist/renderer/RendererFactory.js.map +1 -0
  1272. package/dist/renderer/RendererHost.d.ts +25 -0
  1273. package/dist/renderer/RendererHost.d.ts.map +1 -0
  1274. package/dist/renderer/RendererHost.js +4 -0
  1275. package/dist/renderer/RendererHost.js.map +1 -0
  1276. package/dist/renderer/SceneDepthCopyPass.d.ts +50 -0
  1277. package/dist/renderer/SceneDepthCopyPass.d.ts.map +1 -0
  1278. package/dist/renderer/SceneDepthCopyPass.js +124 -0
  1279. package/dist/renderer/SceneDepthCopyPass.js.map +1 -0
  1280. package/dist/renderer/ShadowOrchestration.d.ts +32 -0
  1281. package/dist/renderer/ShadowOrchestration.d.ts.map +1 -0
  1282. package/dist/renderer/ShadowOrchestration.js +491 -0
  1283. package/dist/renderer/ShadowOrchestration.js.map +1 -0
  1284. package/dist/renderer/SkinnedBounds.d.ts +6 -0
  1285. package/dist/renderer/SkinnedBounds.d.ts.map +1 -0
  1286. package/dist/renderer/SkinnedBounds.js +74 -0
  1287. package/dist/renderer/SkinnedBounds.js.map +1 -0
  1288. package/dist/renderer/coreOutputPostRoute.d.ts +40 -0
  1289. package/dist/renderer/coreOutputPostRoute.d.ts.map +1 -0
  1290. package/dist/renderer/coreOutputPostRoute.js +46 -0
  1291. package/dist/renderer/coreOutputPostRoute.js.map +1 -0
  1292. package/dist/renderer/postSkipped.d.ts +12 -0
  1293. package/dist/renderer/postSkipped.d.ts.map +1 -0
  1294. package/dist/renderer/postSkipped.js +54 -0
  1295. package/dist/renderer/postSkipped.js.map +1 -0
  1296. package/dist/renderer/qrSubFlags.d.ts +45 -0
  1297. package/dist/renderer/qrSubFlags.d.ts.map +1 -0
  1298. package/dist/renderer/qrSubFlags.js +130 -0
  1299. package/dist/renderer/qrSubFlags.js.map +1 -0
  1300. package/dist/resources/InstanceBuffer.d.ts +34 -0
  1301. package/dist/resources/InstanceBuffer.d.ts.map +1 -0
  1302. package/dist/resources/InstanceBuffer.js +96 -0
  1303. package/dist/resources/InstanceBuffer.js.map +1 -0
  1304. package/dist/resources/MorphTargetTexture.d.ts +53 -0
  1305. package/dist/resources/MorphTargetTexture.d.ts.map +1 -0
  1306. package/dist/resources/MorphTargetTexture.js +135 -0
  1307. package/dist/resources/MorphTargetTexture.js.map +1 -0
  1308. package/dist/resources/RenderTargetPool.d.ts +47 -0
  1309. package/dist/resources/RenderTargetPool.d.ts.map +1 -0
  1310. package/dist/resources/RenderTargetPool.js +113 -0
  1311. package/dist/resources/RenderTargetPool.js.map +1 -0
  1312. package/dist/resources/ResourceRegistry.d.ts +48 -0
  1313. package/dist/resources/ResourceRegistry.d.ts.map +1 -0
  1314. package/dist/resources/ResourceRegistry.js +95 -0
  1315. package/dist/resources/ResourceRegistry.js.map +1 -0
  1316. package/dist/resources/UniformBlock.d.ts +90 -0
  1317. package/dist/resources/UniformBlock.d.ts.map +1 -0
  1318. package/dist/resources/UniformBlock.js +184 -0
  1319. package/dist/resources/UniformBlock.js.map +1 -0
  1320. package/dist/shaders/camera-fade.glsl.d.ts +26 -0
  1321. package/dist/shaders/camera-fade.glsl.d.ts.map +1 -0
  1322. package/dist/shaders/camera-fade.glsl.js +109 -0
  1323. package/dist/shaders/camera-fade.glsl.js.map +1 -0
  1324. package/dist/shaders/chunks/contact_shadow.glsl.d.ts +12 -0
  1325. package/dist/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -0
  1326. package/dist/shaders/chunks/contact_shadow.glsl.js +53 -0
  1327. package/dist/shaders/chunks/contact_shadow.glsl.js.map +1 -0
  1328. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts +29 -0
  1329. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -0
  1330. package/dist/shaders/chunks/lighting_ibl.glsl.js +122 -0
  1331. package/dist/shaders/chunks/lighting_ibl.glsl.js.map +1 -0
  1332. package/dist/shaders/chunks/lighting_mirrors.d.ts +18 -0
  1333. package/dist/shaders/chunks/lighting_mirrors.d.ts.map +1 -0
  1334. package/dist/shaders/chunks/lighting_mirrors.js +35 -0
  1335. package/dist/shaders/chunks/lighting_mirrors.js.map +1 -0
  1336. package/dist/shaders/chunks/lighting_punctual.glsl.d.ts +17 -0
  1337. package/dist/shaders/chunks/lighting_punctual.glsl.d.ts.map +1 -0
  1338. package/dist/shaders/chunks/lighting_punctual.glsl.js +197 -0
  1339. package/dist/shaders/chunks/lighting_punctual.glsl.js.map +1 -0
  1340. package/dist/shaders/chunks/sh9.glsl.d.ts +9 -0
  1341. package/dist/shaders/chunks/sh9.glsl.d.ts.map +1 -0
  1342. package/dist/shaders/chunks/sh9.glsl.js +41 -0
  1343. package/dist/shaders/chunks/sh9.glsl.js.map +1 -0
  1344. package/dist/shaders/chunks/shadow_caster.glsl.d.ts +10 -0
  1345. package/dist/shaders/chunks/shadow_caster.glsl.d.ts.map +1 -0
  1346. package/dist/shaders/chunks/shadow_caster.glsl.js +32 -0
  1347. package/dist/shaders/chunks/shadow_caster.glsl.js.map +1 -0
  1348. package/dist/shaders/chunks/shadow_receive.glsl.d.ts +13 -0
  1349. package/dist/shaders/chunks/shadow_receive.glsl.d.ts.map +1 -0
  1350. package/dist/shaders/chunks/shadow_receive.glsl.js +136 -0
  1351. package/dist/shaders/chunks/shadow_receive.glsl.js.map +1 -0
  1352. package/dist/shaders/debug-view.glsl.d.ts +18 -0
  1353. package/dist/shaders/debug-view.glsl.d.ts.map +1 -0
  1354. package/dist/shaders/debug-view.glsl.js +153 -0
  1355. package/dist/shaders/debug-view.glsl.js.map +1 -0
  1356. package/dist/shaders/deform/deform.glsl.d.ts +17 -0
  1357. package/dist/shaders/deform/deform.glsl.d.ts.map +1 -0
  1358. package/dist/shaders/deform/deform.glsl.js +99 -0
  1359. package/dist/shaders/deform/deform.glsl.js.map +1 -0
  1360. package/dist/shaders/deform/deform.wgsl.d.ts +15 -0
  1361. package/dist/shaders/deform/deform.wgsl.d.ts.map +1 -0
  1362. package/dist/shaders/deform/deform.wgsl.js +89 -0
  1363. package/dist/shaders/deform/deform.wgsl.js.map +1 -0
  1364. package/dist/shaders/deform/depthFeature.d.ts +22 -0
  1365. package/dist/shaders/deform/depthFeature.d.ts.map +1 -0
  1366. package/dist/shaders/deform/depthFeature.js +44 -0
  1367. package/dist/shaders/deform/depthFeature.js.map +1 -0
  1368. package/dist/shaders/deform/forwardFeature.d.ts +114 -0
  1369. package/dist/shaders/deform/forwardFeature.d.ts.map +1 -0
  1370. package/dist/shaders/deform/forwardFeature.js +300 -0
  1371. package/dist/shaders/deform/forwardFeature.js.map +1 -0
  1372. package/dist/shaders/deform/morph.glsl.d.ts +14 -0
  1373. package/dist/shaders/deform/morph.glsl.d.ts.map +1 -0
  1374. package/dist/shaders/deform/morph.glsl.js +45 -0
  1375. package/dist/shaders/deform/morph.glsl.js.map +1 -0
  1376. package/dist/shaders/deform/morph.wgsl.d.ts +21 -0
  1377. package/dist/shaders/deform/morph.wgsl.d.ts.map +1 -0
  1378. package/dist/shaders/deform/morph.wgsl.js +73 -0
  1379. package/dist/shaders/deform/morph.wgsl.js.map +1 -0
  1380. package/dist/shaders/deform/skinning.glsl.d.ts +8 -0
  1381. package/dist/shaders/deform/skinning.glsl.d.ts.map +1 -0
  1382. package/dist/shaders/deform/skinning.glsl.js +37 -0
  1383. package/dist/shaders/deform/skinning.glsl.js.map +1 -0
  1384. package/dist/shaders/deform/skinning.wgsl.d.ts +26 -0
  1385. package/dist/shaders/deform/skinning.wgsl.d.ts.map +1 -0
  1386. package/dist/shaders/deform/skinning.wgsl.js +58 -0
  1387. package/dist/shaders/deform/skinning.wgsl.js.map +1 -0
  1388. package/dist/shaders/deform/twins.d.ts +8 -0
  1389. package/dist/shaders/deform/twins.d.ts.map +1 -0
  1390. package/dist/shaders/deform/twins.js +20 -0
  1391. package/dist/shaders/deform/twins.js.map +1 -0
  1392. package/dist/shaders/lod-dither.glsl.d.ts +12 -0
  1393. package/dist/shaders/lod-dither.glsl.d.ts.map +1 -0
  1394. package/dist/shaders/lod-dither.glsl.js +101 -0
  1395. package/dist/shaders/lod-dither.glsl.js.map +1 -0
  1396. package/dist/shaders/physical/alpha_a2c.glsl.d.ts +19 -0
  1397. package/dist/shaders/physical/alpha_a2c.glsl.d.ts.map +1 -0
  1398. package/dist/shaders/physical/alpha_a2c.glsl.js +29 -0
  1399. package/dist/shaders/physical/alpha_a2c.glsl.js.map +1 -0
  1400. package/dist/shaders/physical/anisotropy.glsl.d.ts +23 -0
  1401. package/dist/shaders/physical/anisotropy.glsl.d.ts.map +1 -0
  1402. package/dist/shaders/physical/anisotropy.glsl.js +116 -0
  1403. package/dist/shaders/physical/anisotropy.glsl.js.map +1 -0
  1404. package/dist/shaders/physical/bsdf_lobes_common.glsl.d.ts +25 -0
  1405. package/dist/shaders/physical/bsdf_lobes_common.glsl.d.ts.map +1 -0
  1406. package/dist/shaders/physical/bsdf_lobes_common.glsl.js +95 -0
  1407. package/dist/shaders/physical/bsdf_lobes_common.glsl.js.map +1 -0
  1408. package/dist/shaders/physical/clearcoat.glsl.d.ts +23 -0
  1409. package/dist/shaders/physical/clearcoat.glsl.d.ts.map +1 -0
  1410. package/dist/shaders/physical/clearcoat.glsl.js +70 -0
  1411. package/dist/shaders/physical/clearcoat.glsl.js.map +1 -0
  1412. package/dist/shaders/physical/debug_view.glsl.d.ts +19 -0
  1413. package/dist/shaders/physical/debug_view.glsl.d.ts.map +1 -0
  1414. package/dist/shaders/physical/debug_view.glsl.js +76 -0
  1415. package/dist/shaders/physical/debug_view.glsl.js.map +1 -0
  1416. package/dist/shaders/physical/dispersion.glsl.d.ts +18 -0
  1417. package/dist/shaders/physical/dispersion.glsl.d.ts.map +1 -0
  1418. package/dist/shaders/physical/dispersion.glsl.js +67 -0
  1419. package/dist/shaders/physical/dispersion.glsl.js.map +1 -0
  1420. package/dist/shaders/physical/emissive_strength.glsl.d.ts +18 -0
  1421. package/dist/shaders/physical/emissive_strength.glsl.d.ts.map +1 -0
  1422. package/dist/shaders/physical/emissive_strength.glsl.js +20 -0
  1423. package/dist/shaders/physical/emissive_strength.glsl.js.map +1 -0
  1424. package/dist/shaders/physical/index.d.ts +27 -0
  1425. package/dist/shaders/physical/index.d.ts.map +1 -0
  1426. package/dist/shaders/physical/index.js +69 -0
  1427. package/dist/shaders/physical/index.js.map +1 -0
  1428. package/dist/shaders/physical/iridescence.glsl.d.ts +25 -0
  1429. package/dist/shaders/physical/iridescence.glsl.d.ts.map +1 -0
  1430. package/dist/shaders/physical/iridescence.glsl.js +186 -0
  1431. package/dist/shaders/physical/iridescence.glsl.js.map +1 -0
  1432. package/dist/shaders/physical/lobe_calls.glsl.d.ts +83 -0
  1433. package/dist/shaders/physical/lobe_calls.glsl.d.ts.map +1 -0
  1434. package/dist/shaders/physical/lobe_calls.glsl.js +397 -0
  1435. package/dist/shaders/physical/lobe_calls.glsl.js.map +1 -0
  1436. package/dist/shaders/physical/sheen.glsl.d.ts +24 -0
  1437. package/dist/shaders/physical/sheen.glsl.d.ts.map +1 -0
  1438. package/dist/shaders/physical/sheen.glsl.js +108 -0
  1439. package/dist/shaders/physical/sheen.glsl.js.map +1 -0
  1440. package/dist/shaders/physical/specular_ior.glsl.d.ts +20 -0
  1441. package/dist/shaders/physical/specular_ior.glsl.d.ts.map +1 -0
  1442. package/dist/shaders/physical/specular_ior.glsl.js +64 -0
  1443. package/dist/shaders/physical/specular_ior.glsl.js.map +1 -0
  1444. package/dist/shaders/physical/tangent_frame.glsl.d.ts +27 -0
  1445. package/dist/shaders/physical/tangent_frame.glsl.d.ts.map +1 -0
  1446. package/dist/shaders/physical/tangent_frame.glsl.js +71 -0
  1447. package/dist/shaders/physical/tangent_frame.glsl.js.map +1 -0
  1448. package/dist/shaders/physical/transmission.glsl.d.ts +25 -0
  1449. package/dist/shaders/physical/transmission.glsl.d.ts.map +1 -0
  1450. package/dist/shaders/physical/transmission.glsl.js +204 -0
  1451. package/dist/shaders/physical/transmission.glsl.js.map +1 -0
  1452. package/dist/shaders/physical/transmission_copy.glsl.d.ts +15 -0
  1453. package/dist/shaders/physical/transmission_copy.glsl.d.ts.map +1 -0
  1454. package/dist/shaders/physical/transmission_copy.glsl.js +33 -0
  1455. package/dist/shaders/physical/transmission_copy.glsl.js.map +1 -0
  1456. package/dist/shaders/physical/unlit.glsl.d.ts +17 -0
  1457. package/dist/shaders/physical/unlit.glsl.d.ts.map +1 -0
  1458. package/dist/shaders/physical/unlit.glsl.js +19 -0
  1459. package/dist/shaders/physical/unlit.glsl.js.map +1 -0
  1460. package/dist/shaders/physical/uv_transform.glsl.d.ts +18 -0
  1461. package/dist/shaders/physical/uv_transform.glsl.d.ts.map +1 -0
  1462. package/dist/shaders/physical/uv_transform.glsl.js +30 -0
  1463. package/dist/shaders/physical/uv_transform.glsl.js.map +1 -0
  1464. package/dist/shaders/physical/volume.glsl.d.ts +19 -0
  1465. package/dist/shaders/physical/volume.glsl.d.ts.map +1 -0
  1466. package/dist/shaders/physical/volume.glsl.js +47 -0
  1467. package/dist/shaders/physical/volume.glsl.js.map +1 -0
  1468. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.d.ts +8 -0
  1469. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.d.ts.map +1 -0
  1470. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.js +26 -0
  1471. package/dist/shaders/physical-wgsl/alpha_a2c.wgsl.js.map +1 -0
  1472. package/dist/shaders/physical-wgsl/anisotropy.wgsl.d.ts +10 -0
  1473. package/dist/shaders/physical-wgsl/anisotropy.wgsl.d.ts.map +1 -0
  1474. package/dist/shaders/physical-wgsl/anisotropy.wgsl.js +97 -0
  1475. package/dist/shaders/physical-wgsl/anisotropy.wgsl.js.map +1 -0
  1476. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.d.ts +11 -0
  1477. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.d.ts.map +1 -0
  1478. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.js +76 -0
  1479. package/dist/shaders/physical-wgsl/bsdf_lobes_common.wgsl.js.map +1 -0
  1480. package/dist/shaders/physical-wgsl/clearcoat.wgsl.d.ts +9 -0
  1481. package/dist/shaders/physical-wgsl/clearcoat.wgsl.d.ts.map +1 -0
  1482. package/dist/shaders/physical-wgsl/clearcoat.wgsl.js +56 -0
  1483. package/dist/shaders/physical-wgsl/clearcoat.wgsl.js.map +1 -0
  1484. package/dist/shaders/physical-wgsl/debug_view.wgsl.d.ts +10 -0
  1485. package/dist/shaders/physical-wgsl/debug_view.wgsl.d.ts.map +1 -0
  1486. package/dist/shaders/physical-wgsl/debug_view.wgsl.js +71 -0
  1487. package/dist/shaders/physical-wgsl/debug_view.wgsl.js.map +1 -0
  1488. package/dist/shaders/physical-wgsl/dispersion.wgsl.d.ts +10 -0
  1489. package/dist/shaders/physical-wgsl/dispersion.wgsl.d.ts.map +1 -0
  1490. package/dist/shaders/physical-wgsl/dispersion.wgsl.js +51 -0
  1491. package/dist/shaders/physical-wgsl/dispersion.wgsl.js.map +1 -0
  1492. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.d.ts +9 -0
  1493. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.d.ts.map +1 -0
  1494. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.js +15 -0
  1495. package/dist/shaders/physical-wgsl/emissive_strength.wgsl.js.map +1 -0
  1496. package/dist/shaders/physical-wgsl/index.d.ts +35 -0
  1497. package/dist/shaders/physical-wgsl/index.d.ts.map +1 -0
  1498. package/dist/shaders/physical-wgsl/index.js +51 -0
  1499. package/dist/shaders/physical-wgsl/index.js.map +1 -0
  1500. package/dist/shaders/physical-wgsl/iridescence.wgsl.d.ts +9 -0
  1501. package/dist/shaders/physical-wgsl/iridescence.wgsl.d.ts.map +1 -0
  1502. package/dist/shaders/physical-wgsl/iridescence.wgsl.js +162 -0
  1503. package/dist/shaders/physical-wgsl/iridescence.wgsl.js.map +1 -0
  1504. package/dist/shaders/physical-wgsl/sheen.wgsl.d.ts +9 -0
  1505. package/dist/shaders/physical-wgsl/sheen.wgsl.d.ts.map +1 -0
  1506. package/dist/shaders/physical-wgsl/sheen.wgsl.js +85 -0
  1507. package/dist/shaders/physical-wgsl/sheen.wgsl.js.map +1 -0
  1508. package/dist/shaders/physical-wgsl/specular_ior.wgsl.d.ts +10 -0
  1509. package/dist/shaders/physical-wgsl/specular_ior.wgsl.d.ts.map +1 -0
  1510. package/dist/shaders/physical-wgsl/specular_ior.wgsl.js +47 -0
  1511. package/dist/shaders/physical-wgsl/specular_ior.wgsl.js.map +1 -0
  1512. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.d.ts +11 -0
  1513. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.d.ts.map +1 -0
  1514. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.js +57 -0
  1515. package/dist/shaders/physical-wgsl/tangent_frame.wgsl.js.map +1 -0
  1516. package/dist/shaders/physical-wgsl/transmission.wgsl.d.ts +14 -0
  1517. package/dist/shaders/physical-wgsl/transmission.wgsl.d.ts.map +1 -0
  1518. package/dist/shaders/physical-wgsl/transmission.wgsl.js +159 -0
  1519. package/dist/shaders/physical-wgsl/transmission.wgsl.js.map +1 -0
  1520. package/dist/shaders/physical-wgsl/unlit.wgsl.d.ts +8 -0
  1521. package/dist/shaders/physical-wgsl/unlit.wgsl.d.ts.map +1 -0
  1522. package/dist/shaders/physical-wgsl/unlit.wgsl.js +13 -0
  1523. package/dist/shaders/physical-wgsl/unlit.wgsl.js.map +1 -0
  1524. package/dist/shaders/physical-wgsl/uv_transform.wgsl.d.ts +10 -0
  1525. package/dist/shaders/physical-wgsl/uv_transform.wgsl.d.ts.map +1 -0
  1526. package/dist/shaders/physical-wgsl/uv_transform.wgsl.js +24 -0
  1527. package/dist/shaders/physical-wgsl/uv_transform.wgsl.js.map +1 -0
  1528. package/dist/shaders/physical-wgsl/volume.wgsl.d.ts +10 -0
  1529. package/dist/shaders/physical-wgsl/volume.wgsl.d.ts.map +1 -0
  1530. package/dist/shaders/physical-wgsl/volume.wgsl.js +35 -0
  1531. package/dist/shaders/physical-wgsl/volume.wgsl.js.map +1 -0
  1532. package/dist/shadows/DirectionalCascadeFitter.d.ts +97 -0
  1533. package/dist/shadows/DirectionalCascadeFitter.d.ts.map +1 -0
  1534. package/dist/shadows/DirectionalCascadeFitter.js +372 -0
  1535. package/dist/shadows/DirectionalCascadeFitter.js.map +1 -0
  1536. package/dist/shadows/Prd02DepthShaderLibrary.d.ts +77 -0
  1537. package/dist/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -0
  1538. package/dist/shadows/Prd02DepthShaderLibrary.js +381 -0
  1539. package/dist/shadows/Prd02DepthShaderLibrary.js.map +1 -0
  1540. package/dist/shadows/Prd02ReceiveShadowContributor.d.ts +20 -0
  1541. package/dist/shadows/Prd02ReceiveShadowContributor.d.ts.map +1 -0
  1542. package/dist/shadows/Prd02ReceiveShadowContributor.js +20 -0
  1543. package/dist/shadows/Prd02ReceiveShadowContributor.js.map +1 -0
  1544. package/dist/shadows/Prd02ShadowBridge.d.ts +111 -0
  1545. package/dist/shadows/Prd02ShadowBridge.d.ts.map +1 -0
  1546. package/dist/shadows/Prd02ShadowBridge.js +267 -0
  1547. package/dist/shadows/Prd02ShadowBridge.js.map +1 -0
  1548. package/dist/shadows/Prd02ShadowFilter.d.ts +29 -0
  1549. package/dist/shadows/Prd02ShadowFilter.d.ts.map +1 -0
  1550. package/dist/shadows/Prd02ShadowFilter.js +35 -0
  1551. package/dist/shadows/Prd02ShadowFilter.js.map +1 -0
  1552. package/dist/shadows/Prd02ShadowsContributor.d.ts +44 -0
  1553. package/dist/shadows/Prd02ShadowsContributor.d.ts.map +1 -0
  1554. package/dist/shadows/Prd02ShadowsContributor.js +197 -0
  1555. package/dist/shadows/Prd02ShadowsContributor.js.map +1 -0
  1556. package/dist/shadows/ShadowAtlas.d.ts +59 -0
  1557. package/dist/shadows/ShadowAtlas.d.ts.map +1 -0
  1558. package/dist/shadows/ShadowAtlas.js +137 -0
  1559. package/dist/shadows/ShadowAtlas.js.map +1 -0
  1560. package/dist/shadows/ShadowDebugViews.d.ts +5 -0
  1561. package/dist/shadows/ShadowDebugViews.d.ts.map +1 -1
  1562. package/dist/shadows/ShadowDebugViews.js +15 -10
  1563. package/dist/shadows/ShadowDebugViews.js.map +1 -1
  1564. package/dist/shadows/ShadowFrameBinding.d.ts +18 -0
  1565. package/dist/shadows/ShadowFrameBinding.d.ts.map +1 -0
  1566. package/dist/shadows/ShadowFrameBinding.js +52 -0
  1567. package/dist/shadows/ShadowFrameBinding.js.map +1 -0
  1568. package/dist/shadows/ShadowSystem.d.ts +125 -0
  1569. package/dist/shadows/ShadowSystem.d.ts.map +1 -0
  1570. package/dist/shadows/ShadowSystem.js +293 -0
  1571. package/dist/shadows/ShadowSystem.js.map +1 -0
  1572. package/dist/textures/TextureBudget.d.ts +42 -0
  1573. package/dist/textures/TextureBudget.d.ts.map +1 -0
  1574. package/dist/textures/TextureBudget.js +180 -0
  1575. package/dist/textures/TextureBudget.js.map +1 -0
  1576. package/dist/vfx/BeamPass.d.ts +42 -0
  1577. package/dist/vfx/BeamPass.d.ts.map +1 -0
  1578. package/dist/vfx/BeamPass.js +249 -0
  1579. package/dist/vfx/BeamPass.js.map +1 -0
  1580. package/dist/vfx/BlendFallback.d.ts +19 -0
  1581. package/dist/vfx/BlendFallback.d.ts.map +1 -0
  1582. package/dist/vfx/BlendFallback.js +73 -0
  1583. package/dist/vfx/BlendFallback.js.map +1 -0
  1584. package/dist/vfx/DecalBatch.d.ts +120 -0
  1585. package/dist/vfx/DecalBatch.d.ts.map +1 -0
  1586. package/dist/vfx/DecalBatch.js +234 -0
  1587. package/dist/vfx/DecalBatch.js.map +1 -0
  1588. package/dist/vfx/DecalPass.d.ts +63 -0
  1589. package/dist/vfx/DecalPass.d.ts.map +1 -0
  1590. package/dist/vfx/DecalPass.js +159 -0
  1591. package/dist/vfx/DecalPass.js.map +1 -0
  1592. package/dist/vfx/LowResParticles.d.ts +31 -0
  1593. package/dist/vfx/LowResParticles.d.ts.map +1 -0
  1594. package/dist/vfx/LowResParticles.js +151 -0
  1595. package/dist/vfx/LowResParticles.js.map +1 -0
  1596. package/dist/vfx/MeshParticleBatch.d.ts +49 -0
  1597. package/dist/vfx/MeshParticleBatch.d.ts.map +1 -0
  1598. package/dist/vfx/MeshParticleBatch.js +184 -0
  1599. package/dist/vfx/MeshParticleBatch.js.map +1 -0
  1600. package/dist/vfx/MeshParticlePass.d.ts +28 -0
  1601. package/dist/vfx/MeshParticlePass.d.ts.map +1 -0
  1602. package/dist/vfx/MeshParticlePass.js +150 -0
  1603. package/dist/vfx/MeshParticlePass.js.map +1 -0
  1604. package/dist/vfx/ParticleBatchPass.d.ts +61 -0
  1605. package/dist/vfx/ParticleBatchPass.d.ts.map +1 -0
  1606. package/dist/vfx/ParticleBatchPass.js +320 -0
  1607. package/dist/vfx/ParticleBatchPass.js.map +1 -0
  1608. package/dist/vfx/ParticleGpuSim.d.ts +85 -0
  1609. package/dist/vfx/ParticleGpuSim.d.ts.map +1 -0
  1610. package/dist/vfx/ParticleGpuSim.js +301 -0
  1611. package/dist/vfx/ParticleGpuSim.js.map +1 -0
  1612. package/dist/vfx/ParticleInstanceLayout.d.ts +38 -0
  1613. package/dist/vfx/ParticleInstanceLayout.d.ts.map +1 -0
  1614. package/dist/vfx/ParticleInstanceLayout.js +105 -0
  1615. package/dist/vfx/ParticleInstanceLayout.js.map +1 -0
  1616. package/dist/vfx/ParticleSort.d.ts +21 -0
  1617. package/dist/vfx/ParticleSort.d.ts.map +1 -0
  1618. package/dist/vfx/ParticleSort.js +80 -0
  1619. package/dist/vfx/ParticleSort.js.map +1 -0
  1620. package/dist/vfx/ProceduralVolumeEmitter.d.ts +90 -0
  1621. package/dist/vfx/ProceduralVolumeEmitter.d.ts.map +1 -0
  1622. package/dist/vfx/ProceduralVolumeEmitter.js +155 -0
  1623. package/dist/vfx/ProceduralVolumeEmitter.js.map +1 -0
  1624. package/dist/vfx/RibbonBatch.d.ts +71 -0
  1625. package/dist/vfx/RibbonBatch.d.ts.map +1 -0
  1626. package/dist/vfx/RibbonBatch.js +234 -0
  1627. package/dist/vfx/RibbonBatch.js.map +1 -0
  1628. package/dist/vfx/RibbonPass.d.ts +21 -0
  1629. package/dist/vfx/RibbonPass.d.ts.map +1 -0
  1630. package/dist/vfx/RibbonPass.js +108 -0
  1631. package/dist/vfx/RibbonPass.js.map +1 -0
  1632. package/dist/vfx/SceneDepthAdapter.d.ts +28 -0
  1633. package/dist/vfx/SceneDepthAdapter.d.ts.map +1 -0
  1634. package/dist/vfx/SceneDepthAdapter.js +70 -0
  1635. package/dist/vfx/SceneDepthAdapter.js.map +1 -0
  1636. package/dist/vfx/VfxAtlas.d.ts +68 -0
  1637. package/dist/vfx/VfxAtlas.d.ts.map +1 -0
  1638. package/dist/vfx/VfxAtlas.js +106 -0
  1639. package/dist/vfx/VfxAtlas.js.map +1 -0
  1640. package/dist/vfx/contributors.d.ts +73 -0
  1641. package/dist/vfx/contributors.d.ts.map +1 -0
  1642. package/dist/vfx/contributors.js +615 -0
  1643. package/dist/vfx/contributors.js.map +1 -0
  1644. package/dist/vfx/decalLighting.d.ts +8 -0
  1645. package/dist/vfx/decalLighting.d.ts.map +1 -0
  1646. package/dist/vfx/decalLighting.js +53 -0
  1647. package/dist/vfx/decalLighting.js.map +1 -0
  1648. package/dist/vfx/depthSampler.d.ts +3 -0
  1649. package/dist/vfx/depthSampler.d.ts.map +1 -0
  1650. package/dist/vfx/depthSampler.js +10 -0
  1651. package/dist/vfx/depthSampler.js.map +1 -0
  1652. package/dist/vfx/prd07FeaturePars.d.ts +12 -0
  1653. package/dist/vfx/prd07FeaturePars.d.ts.map +1 -0
  1654. package/dist/vfx/prd07FeaturePars.js +54 -0
  1655. package/dist/vfx/prd07FeaturePars.js.map +1 -0
  1656. package/dist/vfx/shaders/beam.glsl.d.ts +11 -0
  1657. package/dist/vfx/shaders/beam.glsl.d.ts.map +1 -0
  1658. package/dist/vfx/shaders/beam.glsl.js +89 -0
  1659. package/dist/vfx/shaders/beam.glsl.js.map +1 -0
  1660. package/dist/vfx/shaders/decal.glsl.d.ts +14 -0
  1661. package/dist/vfx/shaders/decal.glsl.d.ts.map +1 -0
  1662. package/dist/vfx/shaders/decal.glsl.js +157 -0
  1663. package/dist/vfx/shaders/decal.glsl.js.map +1 -0
  1664. package/dist/vfx/shaders/gpu-sim.glsl.d.ts +5 -0
  1665. package/dist/vfx/shaders/gpu-sim.glsl.d.ts.map +1 -0
  1666. package/dist/vfx/shaders/gpu-sim.glsl.js +177 -0
  1667. package/dist/vfx/shaders/gpu-sim.glsl.js.map +1 -0
  1668. package/dist/vfx/shaders/lowresComposite.glsl.d.ts +9 -0
  1669. package/dist/vfx/shaders/lowresComposite.glsl.d.ts.map +1 -0
  1670. package/dist/vfx/shaders/lowresComposite.glsl.js +64 -0
  1671. package/dist/vfx/shaders/lowresComposite.glsl.js.map +1 -0
  1672. package/dist/vfx/shaders/mesh-particle.glsl.d.ts +4 -0
  1673. package/dist/vfx/shaders/mesh-particle.glsl.d.ts.map +1 -0
  1674. package/dist/vfx/shaders/mesh-particle.glsl.js +55 -0
  1675. package/dist/vfx/shaders/mesh-particle.glsl.js.map +1 -0
  1676. package/dist/vfx/shaders/particle.glsl.d.ts +24 -0
  1677. package/dist/vfx/shaders/particle.glsl.d.ts.map +1 -0
  1678. package/dist/vfx/shaders/particle.glsl.js +215 -0
  1679. package/dist/vfx/shaders/particle.glsl.js.map +1 -0
  1680. package/dist/vfx/shaders/ribbon.glsl.d.ts +9 -0
  1681. package/dist/vfx/shaders/ribbon.glsl.d.ts.map +1 -0
  1682. package/dist/vfx/shaders/ribbon.glsl.js +60 -0
  1683. package/dist/vfx/shaders/ribbon.glsl.js.map +1 -0
  1684. package/dist/vfx/shaders/volume.glsl.d.ts +5 -0
  1685. package/dist/vfx/shaders/volume.glsl.d.ts.map +1 -0
  1686. package/dist/vfx/shaders/volume.glsl.js +52 -0
  1687. package/dist/vfx/shaders/volume.glsl.js.map +1 -0
  1688. package/dist/webgl2/ContextLifecycle.d.ts +43 -0
  1689. package/dist/webgl2/ContextLifecycle.d.ts.map +1 -0
  1690. package/dist/webgl2/ContextLifecycle.js +189 -0
  1691. package/dist/webgl2/ContextLifecycle.js.map +1 -0
  1692. package/dist/webgl2/Counters.d.ts +58 -0
  1693. package/dist/webgl2/Counters.d.ts.map +1 -0
  1694. package/dist/webgl2/Counters.js +207 -0
  1695. package/dist/webgl2/Counters.js.map +1 -0
  1696. package/dist/webgl2/DeviceHost.d.ts +41 -0
  1697. package/dist/webgl2/DeviceHost.d.ts.map +1 -0
  1698. package/dist/webgl2/DeviceHost.js +3 -0
  1699. package/dist/webgl2/DeviceHost.js.map +1 -0
  1700. package/dist/webgl2/LegacyPost.d.ts +279 -0
  1701. package/dist/webgl2/LegacyPost.d.ts.map +1 -0
  1702. package/dist/webgl2/LegacyPost.js +2477 -0
  1703. package/dist/webgl2/LegacyPost.js.map +1 -0
  1704. package/dist/webgl2/MultiDraw.d.ts +96 -0
  1705. package/dist/webgl2/MultiDraw.d.ts.map +1 -0
  1706. package/dist/webgl2/MultiDraw.js +716 -0
  1707. package/dist/webgl2/MultiDraw.js.map +1 -0
  1708. package/dist/webgl2/Probe.d.ts +27 -0
  1709. package/dist/webgl2/Probe.d.ts.map +1 -0
  1710. package/dist/webgl2/Probe.js +303 -0
  1711. package/dist/webgl2/Probe.js.map +1 -0
  1712. package/dist/webgl2/Samplers.d.ts +20 -0
  1713. package/dist/webgl2/Samplers.d.ts.map +1 -0
  1714. package/dist/webgl2/Samplers.js +179 -0
  1715. package/dist/webgl2/Samplers.js.map +1 -0
  1716. package/dist/webgl2/TextureFormats.d.ts +48 -0
  1717. package/dist/webgl2/TextureFormats.d.ts.map +1 -0
  1718. package/dist/webgl2/TextureFormats.js +185 -0
  1719. package/dist/webgl2/TextureFormats.js.map +1 -0
  1720. package/dist/webgl2/TextureUpload.d.ts +38 -0
  1721. package/dist/webgl2/TextureUpload.d.ts.map +1 -0
  1722. package/dist/webgl2/TextureUpload.js +346 -0
  1723. package/dist/webgl2/TextureUpload.js.map +1 -0
  1724. package/dist/webgpu/WebGPUBuffer.d.ts +1 -0
  1725. package/dist/webgpu/WebGPUBuffer.d.ts.map +1 -1
  1726. package/dist/webgpu/WebGPUCompute.d.ts +1 -0
  1727. package/dist/webgpu/WebGPUCompute.d.ts.map +1 -1
  1728. package/dist/webgpu/WebGPUCompute.js +1 -0
  1729. package/dist/webgpu/WebGPUCompute.js.map +1 -1
  1730. package/dist/webgpu/WebGPUPipelineCache.d.ts +4 -0
  1731. package/dist/webgpu/WebGPUPipelineCache.d.ts.map +1 -1
  1732. package/dist/webgpu/WebGPUPipelineCache.js +4 -0
  1733. package/dist/webgpu/WebGPUPipelineCache.js.map +1 -1
  1734. package/dist/webgpu/WebGPUPostShaders.d.ts +2 -3
  1735. package/dist/webgpu/WebGPUPostShaders.d.ts.map +1 -1
  1736. package/dist/webgpu/WebGPUPostShaders.js +35 -5
  1737. package/dist/webgpu/WebGPUPostShaders.js.map +1 -1
  1738. package/dist/webgpu/WebGPUTemporal.d.ts +17 -0
  1739. package/dist/webgpu/WebGPUTemporal.d.ts.map +1 -0
  1740. package/dist/webgpu/WebGPUTemporal.js +64 -0
  1741. package/dist/webgpu/WebGPUTemporal.js.map +1 -0
  1742. package/dist/webgpu/WebGPUTexture.d.ts +1 -0
  1743. package/dist/webgpu/WebGPUTexture.d.ts.map +1 -1
  1744. package/dist/webgpu/WebGPUTexture.js.map +1 -1
  1745. package/dist/webgpu.d.ts +6 -0
  1746. package/dist/webgpu.d.ts.map +1 -1
  1747. package/dist/webgpu.js +4 -0
  1748. package/dist/webgpu.js.map +1 -1
  1749. package/dist/world/chunks.d.ts +15 -0
  1750. package/dist/world/chunks.d.ts.map +1 -0
  1751. package/dist/world/chunks.js +56 -0
  1752. package/dist/world/chunks.js.map +1 -0
  1753. package/dist/world/index.d.ts +38 -0
  1754. package/dist/world/index.d.ts.map +1 -0
  1755. package/dist/world/index.js +39 -0
  1756. package/dist/world/index.js.map +1 -0
  1757. package/dist/world/shared/shaders/worldLightFallback.d.ts +12 -0
  1758. package/dist/world/shared/shaders/worldLightFallback.d.ts.map +1 -0
  1759. package/dist/world/shared/shaders/worldLightFallback.js +82 -0
  1760. package/dist/world/shared/shaders/worldLightFallback.js.map +1 -0
  1761. package/dist/world/space/PlanetMaterial.d.ts +24 -0
  1762. package/dist/world/space/PlanetMaterial.d.ts.map +1 -0
  1763. package/dist/world/space/PlanetMaterial.js +82 -0
  1764. package/dist/world/space/PlanetMaterial.js.map +1 -0
  1765. package/dist/world/space/SpaceSkyBake.d.ts +46 -0
  1766. package/dist/world/space/SpaceSkyBake.d.ts.map +1 -0
  1767. package/dist/world/space/SpaceSkyBake.js +145 -0
  1768. package/dist/world/space/SpaceSkyBake.js.map +1 -0
  1769. package/dist/world/space/shaders/planet.d.ts +8 -0
  1770. package/dist/world/space/shaders/planet.d.ts.map +1 -0
  1771. package/dist/world/space/shaders/planet.js +55 -0
  1772. package/dist/world/space/shaders/planet.js.map +1 -0
  1773. package/dist/world/space/shaders/spaceBake.d.ts +9 -0
  1774. package/dist/world/space/shaders/spaceBake.d.ts.map +1 -0
  1775. package/dist/world/space/shaders/spaceBake.js +102 -0
  1776. package/dist/world/space/shaders/spaceBake.js.map +1 -0
  1777. package/dist/world/terrain/SplatBake.d.ts +76 -0
  1778. package/dist/world/terrain/SplatBake.d.ts.map +1 -0
  1779. package/dist/world/terrain/SplatBake.js +308 -0
  1780. package/dist/world/terrain/SplatBake.js.map +1 -0
  1781. package/dist/world/terrain/TerrainCdlod.d.ts +67 -0
  1782. package/dist/world/terrain/TerrainCdlod.d.ts.map +1 -0
  1783. package/dist/world/terrain/TerrainCdlod.js +115 -0
  1784. package/dist/world/terrain/TerrainCdlod.js.map +1 -0
  1785. package/dist/world/terrain/TerrainHeightTexture.d.ts +44 -0
  1786. package/dist/world/terrain/TerrainHeightTexture.d.ts.map +1 -0
  1787. package/dist/world/terrain/TerrainHeightTexture.js +173 -0
  1788. package/dist/world/terrain/TerrainHeightTexture.js.map +1 -0
  1789. package/dist/world/terrain/TerrainPatchGeometry.d.ts +18 -0
  1790. package/dist/world/terrain/TerrainPatchGeometry.d.ts.map +1 -0
  1791. package/dist/world/terrain/TerrainPatchGeometry.js +40 -0
  1792. package/dist/world/terrain/TerrainPatchGeometry.js.map +1 -0
  1793. package/dist/world/terrain/shaders/terrain.vert.glsl.d.ts +19 -0
  1794. package/dist/world/terrain/shaders/terrain.vert.glsl.d.ts.map +1 -0
  1795. package/dist/world/terrain/shaders/terrain.vert.glsl.js +162 -0
  1796. package/dist/world/terrain/shaders/terrain.vert.glsl.js.map +1 -0
  1797. package/dist/world/terrain/shaders/terrainCdlod.d.ts +23 -0
  1798. package/dist/world/terrain/shaders/terrainCdlod.d.ts.map +1 -0
  1799. package/dist/world/terrain/shaders/terrainCdlod.js +110 -0
  1800. package/dist/world/terrain/shaders/terrainCdlod.js.map +1 -0
  1801. package/dist/world/terrain/shaders/terrainSplat.d.ts +26 -0
  1802. package/dist/world/terrain/shaders/terrainSplat.d.ts.map +1 -0
  1803. package/dist/world/terrain/shaders/terrainSplat.js +181 -0
  1804. package/dist/world/terrain/shaders/terrainSplat.js.map +1 -0
  1805. package/dist/world/vegetation/FoliageMaterial.d.ts +14 -0
  1806. package/dist/world/vegetation/FoliageMaterial.d.ts.map +1 -0
  1807. package/dist/world/vegetation/FoliageMaterial.js +107 -0
  1808. package/dist/world/vegetation/FoliageMaterial.js.map +1 -0
  1809. package/dist/world/vegetation/GrassField.d.ts +43 -0
  1810. package/dist/world/vegetation/GrassField.d.ts.map +1 -0
  1811. package/dist/world/vegetation/GrassField.js +68 -0
  1812. package/dist/world/vegetation/GrassField.js.map +1 -0
  1813. package/dist/world/vegetation/ImpostorMaterial.d.ts +20 -0
  1814. package/dist/world/vegetation/ImpostorMaterial.d.ts.map +1 -0
  1815. package/dist/world/vegetation/ImpostorMaterial.js +80 -0
  1816. package/dist/world/vegetation/ImpostorMaterial.js.map +1 -0
  1817. package/dist/world/vegetation/InstanceChunkGrid.d.ts +67 -0
  1818. package/dist/world/vegetation/InstanceChunkGrid.d.ts.map +1 -0
  1819. package/dist/world/vegetation/InstanceChunkGrid.js +150 -0
  1820. package/dist/world/vegetation/InstanceChunkGrid.js.map +1 -0
  1821. package/dist/world/vegetation/WindCpu.d.ts +19 -0
  1822. package/dist/world/vegetation/WindCpu.d.ts.map +1 -0
  1823. package/dist/world/vegetation/WindCpu.js +43 -0
  1824. package/dist/world/vegetation/WindCpu.js.map +1 -0
  1825. package/dist/world/vegetation/WindField.d.ts +42 -0
  1826. package/dist/world/vegetation/WindField.d.ts.map +1 -0
  1827. package/dist/world/vegetation/WindField.js +154 -0
  1828. package/dist/world/vegetation/WindField.js.map +1 -0
  1829. package/dist/world/vegetation/shaders/foliage.d.ts +8 -0
  1830. package/dist/world/vegetation/shaders/foliage.d.ts.map +1 -0
  1831. package/dist/world/vegetation/shaders/foliage.js +104 -0
  1832. package/dist/world/vegetation/shaders/foliage.js.map +1 -0
  1833. package/dist/world/vegetation/shaders/grass.d.ts +10 -0
  1834. package/dist/world/vegetation/shaders/grass.d.ts.map +1 -0
  1835. package/dist/world/vegetation/shaders/grass.js +79 -0
  1836. package/dist/world/vegetation/shaders/grass.js.map +1 -0
  1837. package/dist/world/vegetation/shaders/impostor.d.ts +9 -0
  1838. package/dist/world/vegetation/shaders/impostor.d.ts.map +1 -0
  1839. package/dist/world/vegetation/shaders/impostor.js +97 -0
  1840. package/dist/world/vegetation/shaders/impostor.js.map +1 -0
  1841. package/dist/world/vegetation/shaders/wind.d.ts +9 -0
  1842. package/dist/world/vegetation/shaders/wind.d.ts.map +1 -0
  1843. package/dist/world/vegetation/shaders/wind.js +103 -0
  1844. package/dist/world/vegetation/shaders/wind.js.map +1 -0
  1845. package/dist/world/water/GerstnerWaves.d.ts +65 -0
  1846. package/dist/world/water/GerstnerWaves.d.ts.map +1 -0
  1847. package/dist/world/water/GerstnerWaves.js +182 -0
  1848. package/dist/world/water/GerstnerWaves.js.map +1 -0
  1849. package/dist/world/water/ReflectionViewPass.d.ts +46 -0
  1850. package/dist/world/water/ReflectionViewPass.d.ts.map +1 -0
  1851. package/dist/world/water/ReflectionViewPass.js +85 -0
  1852. package/dist/world/water/ReflectionViewPass.js.map +1 -0
  1853. package/dist/world/water/SceneCopyFallback.d.ts +21 -0
  1854. package/dist/world/water/SceneCopyFallback.d.ts.map +1 -0
  1855. package/dist/world/water/SceneCopyFallback.js +150 -0
  1856. package/dist/world/water/SceneCopyFallback.js.map +1 -0
  1857. package/dist/world/water/UnderwaterState.d.ts +25 -0
  1858. package/dist/world/water/UnderwaterState.d.ts.map +1 -0
  1859. package/dist/world/water/UnderwaterState.js +134 -0
  1860. package/dist/world/water/UnderwaterState.js.map +1 -0
  1861. package/dist/world/water/WaterMaterial.d.ts +23 -0
  1862. package/dist/world/water/WaterMaterial.d.ts.map +1 -0
  1863. package/dist/world/water/WaterMaterial.js +129 -0
  1864. package/dist/world/water/WaterMaterial.js.map +1 -0
  1865. package/dist/world/water/shaders/caustics.d.ts +13 -0
  1866. package/dist/world/water/shaders/caustics.d.ts.map +1 -0
  1867. package/dist/world/water/shaders/caustics.js +103 -0
  1868. package/dist/world/water/shaders/caustics.js.map +1 -0
  1869. package/dist/world/water/shaders/gerstner.d.ts +9 -0
  1870. package/dist/world/water/shaders/gerstner.d.ts.map +1 -0
  1871. package/dist/world/water/shaders/gerstner.js +100 -0
  1872. package/dist/world/water/shaders/gerstner.js.map +1 -0
  1873. package/dist/world/water/shaders/water.d.ts +12 -0
  1874. package/dist/world/water/shaders/water.d.ts.map +1 -0
  1875. package/dist/world/water/shaders/water.js +112 -0
  1876. package/dist/world/water/shaders/water.js.map +1 -0
  1877. package/package.json +40 -7
@@ -1,6 +1,6 @@
1
1
  import { SHADER_CHUNKS, validateShaderChunks } from "./ShaderChunks.js";
2
2
  import { registerAnimationToonShader } from "./animation/AnimationToonMaterial.js";
3
- import { ShaderLibrary, registerLeanUnlitShader, registerLeanPbrShader, registerLeanDepthShader, registerLeanEnvironmentBackgroundShader, DEFAULT_DEPTH_SHADER_MARKER, DEFAULT_DEPTH_SHADER_NAME, DEFAULT_ENVIRONMENT_BACKGROUND_SHADER_MARKER, DEFAULT_ENVIRONMENT_BACKGROUND_SHADER_NAME, DEFAULT_INSTANCED_PBR_SHADER_MARKER, DEFAULT_INSTANCED_PBR_SHADER_NAME, DEFAULT_INSTANCED_UNLIT_SHADER_MARKER, DEFAULT_INSTANCED_UNLIT_SHADER_NAME, DEFAULT_MORPH_UNLIT_SHADER_MARKER, DEFAULT_MORPH_UNLIT_SHADER_NAME, DEFAULT_NORMAL_MAPPED_PBR_SHADER_MARKER, DEFAULT_NORMAL_MAPPED_PBR_SHADER_NAME, DEFAULT_PBR_SHADER_MARKER, DEFAULT_PBR_SHADER_NAME, DEFAULT_SCREEN_SPACE_LINE_SHADER_MARKER, DEFAULT_SCREEN_SPACE_LINE_SHADER_NAME, DEFAULT_SKINNED_LIT_EIGHT_INFLUENCE_SHADER_MARKER, DEFAULT_SKINNED_LIT_EIGHT_INFLUENCE_SHADER_NAME, DEFAULT_SKINNED_LIT_SHADER_MARKER, DEFAULT_SKINNED_LIT_SHADER_NAME, DEFAULT_SKINNED_UNLIT_EIGHT_INFLUENCE_SHADER_MARKER, DEFAULT_SKINNED_UNLIT_EIGHT_INFLUENCE_SHADER_NAME, DEFAULT_SKINNED_UNLIT_SHADER_MARKER, DEFAULT_SKINNED_UNLIT_SHADER_NAME, DEFAULT_TEXTURED_PBR_CLEARCOAT_SPECULAR_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_CLEARCOAT_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_CLEARCOAT_TRANSMISSION_VOLUME_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_IRIDESCENCE_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_SHADER_MARKER, DEFAULT_TEXTURED_PBR_SHADER_NAME, DEFAULT_TEXTURED_PBR_SPECULAR_SHEEN_ANISOTROPY_IRIDESCENCE_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_TRANSMISSION_VOLUME_TEXTURES_VARIANT, DEFAULT_TEXTURED_UNLIT_SHADER_MARKER, DEFAULT_TEXTURED_UNLIT_SHADER_NAME, DEFAULT_UNLIT_SHADER_MARKER, DEFAULT_UNLIT_SHADER_NAME, } from "./ShaderLibraryCore.js";
3
+ import { ShaderLibrary, registerLeanUnlitShader, registerLeanPbrShader, registerLeanDepthShader, registerLeanEnvironmentBackgroundShader, DEFAULT_DEPTH_SHADER_MARKER, DEFAULT_DEPTH_SHADER_NAME, DEFAULT_ENVIRONMENT_BACKGROUND_SHADER_MARKER, DEFAULT_ENVIRONMENT_BACKGROUND_SHADER_NAME, DEFAULT_INSTANCED_PBR_SHADER_MARKER, DEFAULT_INSTANCED_PBR_SHADER_NAME, DEFAULT_INSTANCED_UNLIT_SHADER_MARKER, DEFAULT_INSTANCED_UNLIT_SHADER_NAME, DEFAULT_MORPH_UNLIT_SHADER_MARKER, DEFAULT_MORPH_UNLIT_SHADER_NAME, DEFAULT_NORMAL_MAPPED_PBR_SHADER_MARKER, DEFAULT_NORMAL_MAPPED_PBR_SHADER_NAME, DEFAULT_PBR_SHADER_MARKER, DEFAULT_PBR_SHADER_NAME, DEFAULT_SCREEN_SPACE_LINE_SHADER_MARKER, DEFAULT_SCREEN_SPACE_LINE_SHADER_NAME, DEFAULT_SKINNED_LIT_EIGHT_INFLUENCE_SHADER_MARKER, DEFAULT_SKINNED_LIT_EIGHT_INFLUENCE_SHADER_NAME, DEFAULT_SKINNED_LIT_SHADER_MARKER, DEFAULT_SKINNED_LIT_SHADER_NAME, DEFAULT_SKINNED_UNLIT_EIGHT_INFLUENCE_SHADER_MARKER, DEFAULT_SKINNED_UNLIT_EIGHT_INFLUENCE_SHADER_NAME, DEFAULT_SKINNED_UNLIT_SHADER_MARKER, DEFAULT_SKINNED_UNLIT_SHADER_NAME, DEFAULT_TEXTURED_PBR_CLEARCOAT_SHEEN_ANISOTROPY_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_CLEARCOAT_IRIDESCENCE_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_EXTENSION_ATLAS_VARIANT, DEFAULT_TEXTURED_PBR_CLEARCOAT_SPECULAR_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_CLEARCOAT_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_CLEARCOAT_TRANSMISSION_VOLUME_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_IRIDESCENCE_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_SHADER_MARKER, DEFAULT_TEXTURED_PBR_SHADER_NAME, DEFAULT_TEXTURED_PBR_SPECULAR_SHEEN_ANISOTROPY_IRIDESCENCE_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES_VARIANT, DEFAULT_TEXTURED_PBR_TRANSMISSION_VOLUME_TEXTURES_VARIANT, DEFAULT_TEXTURED_UNLIT_SHADER_MARKER, DEFAULT_TEXTURED_UNLIT_SHADER_NAME, DEFAULT_UNLIT_SHADER_MARKER, DEFAULT_UNLIT_SHADER_NAME, } from "./ShaderLibraryCore.js";
4
4
  export * from "./ShaderLibraryCore.js";
5
5
  export function createDefaultShaderLibrary() {
6
6
  const library = new ShaderLibrary();
@@ -183,15 +183,6 @@ float a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirectio
183
183
  vec3 receiverNormal = normalize(normal);
184
184
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
185
185
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
186
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
187
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
188
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
189
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
190
- // wide kernels acne-free without inflating the constant bias into peter-panning.
191
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
192
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
193
- // gradient grows, so it under-biases exactly the grazing angles that need the most
194
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
195
186
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
196
187
  float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);
197
188
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -224,9 +215,6 @@ float a3dPointShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
224
215
  vec4 rect = u_pointShadowFaceRects[faceIndex];
225
216
  vec2 uv = rect.xy + localUv * rect.zw;
226
217
  float normalDotLight = clamp(abs(dot(normalize(normal), normalize(lightDirection))), 0.0, 1.0);
227
- // Same per-sample, tangent-scaled slope bias as the directional and atlas paths. These
228
- // cubemap-face variants inline the sample fetch, but they share the identical acne
229
- // mechanism: a centre-only, (1 - N.L)-scaled bias under-compensates every outer tap.
230
218
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
231
219
  float slopeTexelBias = slopeTangent * u_pointShadowSlopeBias * max(u_pointShadowTexelSize.x, u_pointShadowTexelSize.y);
232
220
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -259,9 +247,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
259
247
  vec3 receiverNormal = normalize(normal);
260
248
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
261
249
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
262
- // Shared bias-table policy: the same per-sample, tangent-scaled slope bias as the
263
- // directional and point-cube paths. A centre-only bias under-compensates outer PCF
264
- // taps on sloped receivers, so each tap scales by its own texel distance.
265
250
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
266
251
  float slopeTexelBias = slopeTangent * u_spotShadowSlopeBias * max(u_spotShadowTexelSize.x, u_spotShadowTexelSize.y);
267
252
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -283,9 +268,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
283
268
  return mix(1.0, 1.0 - occlusion, clamp(u_spotShadowStrength, 0.0, 1.0));
284
269
  }
285
270
  float a3dResolveSpotShadowOverride(float baseFactor, float kind, float shadowFlag, vec3 worldPosition, vec3 normal, vec3 lightDirection) {
286
- // Spot-kind lights (kind == 2) sample the perspective spot map only when it is
287
- // bound. Every gate term is 0 when no spot map is present, so mix() returns
288
- // baseFactor exactly and scenes without spot lights render unchanged.
289
271
  float spotGate = step(1.5, kind) * (1.0 - step(2.5, kind)) * step(0.5, u_spotShadowMapEnabled) * step(0.5, shadowFlag);
290
272
  return mix(baseFactor, a3dSpotShadowFactor(worldPosition, normal, lightDirection), spotGate);
291
273
  }
@@ -334,11 +316,6 @@ vec3 a3dPbrEnvironmentDiffuseInput(vec3 normal) {
334
316
  float horizonBlend = 1.0 - abs(normal.y);
335
317
  vec3 proceduralDiffuse = mix(u_environmentGroundColor, u_environmentSkyColor, skyBlend);
336
318
  proceduralDiffuse = mix(proceduralDiffuse, u_environmentHorizonColor, clamp(horizonBlend, 0.0, 1.0) * 0.55);
337
- // The ambient term must be added to the procedural contribution, not replaced by it. A mix
338
- // here discarded u_environmentColor * u_environmentIntensity entirely whenever a procedural
339
- // map was present, which is the normal case: raising ambient intensity from 0.18 to 3.0 on
340
- // the product-turntable kit produced a byte-identical frame. Ambient and a sky gradient are
341
- // separate physical contributions, so they sum.
342
319
  vec3 environmentDiffuse = ambientEnvironment + proceduralDiffuse * u_environmentMapIntensity * proceduralEnvironmentWeight;
343
320
  float sampledEnvironmentWeight = step(0.0001, u_environmentMapTextureEnabled * u_environmentMapTextureIntensity);
344
321
  float diffuseEnvironmentLod = max(u_environmentMapTextureMipCount - 1.0, 0.0);
@@ -431,8 +408,9 @@ void main() {
431
408
  vec3 toLight = positionRange.xyz - v_worldPosition;
432
409
  float distanceToLight = length(toLight);
433
410
  lightDirection = distanceToLight > 0.0001 ? toLight / distanceToLight : -directionKind.xyz;
434
- float range = max(positionRange.w, 0.0001);
435
- float rangeFalloff = clamp(1.0 - pow(distanceToLight / range, 4.0), 0.0, 1.0);
411
+ // range <= 0 means infinite (physical descriptors, PRD-02 §6.3): no
412
+ // range window, decay-only attenuation. Legacy ranges are always > 0.
413
+ float rangeFalloff = positionRange.w <= 0.0 ? 1.0 : clamp(1.0 - pow(distanceToLight / max(positionRange.w, 0.0001), 4.0), 0.0, 1.0);
436
414
  rangeFalloff *= rangeFalloff;
437
415
  attenuation = rangeFalloff / max(distanceToLight * distanceToLight, 1.0);
438
416
  }
@@ -481,9 +459,6 @@ void main() {
481
459
  float c = cos(u_baseColorTextureRotation);
482
460
  float s = sin(u_baseColorTextureRotation);
483
461
  v_uv = vec2(scaledUv.x * c - scaledUv.y * s, scaledUv.x * s + scaledUv.y * c) + u_baseColorTextureOffset;
484
- // P2 instanced-GLB path (muse3jsparity-PRD): the u_instanceCount branch is
485
- // taken only for items carrying instanceTransforms; every other draw keeps
486
- // the legacy math bit-exact.
487
462
  if (u_instanceCount > 0.5) {
488
463
  int instanceIndex = clamp(gl_InstanceID, 0, max(int(u_instanceCount) - 1, 0));
489
464
  mat4 attributeMatrix = mat4(a_instanceMatrix0, a_instanceMatrix1, a_instanceMatrix2, a_instanceMatrix3);
@@ -780,15 +755,6 @@ float a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirectio
780
755
  vec3 receiverNormal = normalize(normal);
781
756
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
782
757
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
783
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
784
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
785
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
786
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
787
- // wide kernels acne-free without inflating the constant bias into peter-panning.
788
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
789
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
790
- // gradient grows, so it under-biases exactly the grazing angles that need the most
791
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
792
758
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
793
759
  float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);
794
760
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -830,15 +796,6 @@ float a3dPointShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
830
796
  vec3 receiverNormal = normalize(normal);
831
797
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
832
798
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
833
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
834
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
835
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
836
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
837
- // wide kernels acne-free without inflating the constant bias into peter-panning.
838
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
839
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
840
- // gradient grows, so it under-biases exactly the grazing angles that need the most
841
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
842
799
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
843
800
  float slopeTexelBias = slopeTangent * u_pointShadowSlopeBias * max(u_pointShadowTexelSize.x, u_pointShadowTexelSize.y);
844
801
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -873,9 +830,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
873
830
  vec3 receiverNormal = normalize(normal);
874
831
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
875
832
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
876
- // Shared bias-table policy: the same per-sample, tangent-scaled slope bias as the
877
- // directional and point-cube paths. A centre-only bias under-compensates outer PCF
878
- // taps on sloped receivers, so each tap scales by its own texel distance.
879
833
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
880
834
  float slopeTexelBias = slopeTangent * u_spotShadowSlopeBias * max(u_spotShadowTexelSize.x, u_spotShadowTexelSize.y);
881
835
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -897,9 +851,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
897
851
  return mix(1.0, 1.0 - occlusion, clamp(u_spotShadowStrength, 0.0, 1.0));
898
852
  }
899
853
  float a3dResolveSpotShadowOverride(float baseFactor, float kind, float shadowFlag, vec3 worldPosition, vec3 normal, vec3 lightDirection) {
900
- // Spot-kind lights (kind == 2) sample the perspective spot map only when it is
901
- // bound. Every gate term is 0 when no spot map is present, so mix() returns
902
- // baseFactor exactly and scenes without spot lights render unchanged.
903
854
  float spotGate = step(1.5, kind) * (1.0 - step(2.5, kind)) * step(0.5, u_spotShadowMapEnabled) * step(0.5, shadowFlag);
904
855
  return mix(baseFactor, a3dSpotShadowFactor(worldPosition, normal, lightDirection), spotGate);
905
856
  }
@@ -963,11 +914,6 @@ void main() {
963
914
  float horizonBlend = 1.0 - abs(normal.y);
964
915
  vec3 proceduralDiffuse = mix(u_environmentGroundColor, u_environmentSkyColor, skyBlend);
965
916
  proceduralDiffuse = mix(proceduralDiffuse, u_environmentHorizonColor, clamp(horizonBlend, 0.0, 1.0) * 0.55);
966
- // The ambient term must be added to the procedural contribution, not replaced by it. A mix
967
- // here discarded u_environmentColor * u_environmentIntensity entirely whenever a procedural
968
- // map was present, which is the normal case: raising ambient intensity from 0.18 to 3.0 on
969
- // the product-turntable kit produced a byte-identical frame. Ambient and a sky gradient are
970
- // separate physical contributions, so they sum.
971
917
  vec3 environmentDiffuse = ambientEnvironment + proceduralDiffuse * u_environmentMapIntensity * proceduralEnvironmentWeight;
972
918
  vec3 reflectionDirection = reflect(-viewDirection, normal);
973
919
  float sampledEnvironmentWeight = step(0.0001, u_environmentMapTextureEnabled * u_environmentMapTextureIntensity);
@@ -1032,8 +978,9 @@ void main() {
1032
978
  vec3 toLight = positionRange.xyz - v_worldPosition;
1033
979
  float distanceToLight = length(toLight);
1034
980
  lightDirection = distanceToLight > 0.0001 ? toLight / distanceToLight : -directionKind.xyz;
1035
- float range = max(positionRange.w, 0.0001);
1036
- float rangeFalloff = clamp(1.0 - pow(distanceToLight / range, 4.0), 0.0, 1.0);
981
+ // range <= 0 means infinite (physical descriptors, PRD-02 §6.3): no
982
+ // range window, decay-only attenuation. Legacy ranges are always > 0.
983
+ float rangeFalloff = positionRange.w <= 0.0 ? 1.0 : clamp(1.0 - pow(distanceToLight / max(positionRange.w, 0.0001), 4.0), 0.0, 1.0);
1037
984
  rangeFalloff *= rangeFalloff;
1038
985
  attenuation = rangeFalloff / max(distanceToLight * distanceToLight, 1.0);
1039
986
  }
@@ -1134,8 +1081,6 @@ void main() {
1134
1081
  a_weights.x + a_weights.y + a_weights.z + a_weights.w +
1135
1082
  a_weights1.x + a_weights1.y + a_weights1.z + a_weights1.w;
1136
1083
  vec4 skinnedPosition = v_weightSum > 0.0001 ? skin * vec4(a_position, 1.0) : vec4(a_position, 1.0);
1137
- // Normals and tangents use the same skin matrix with w = 0 so translation is
1138
- // excluded; renormalizing happens in the fragment stage.
1139
1084
  vec3 skinnedNormal = (v_weightSum > 0.0001 ? skin * vec4(a_normal, 0.0) : vec4(a_normal, 0.0)).xyz;
1140
1085
  vec3 skinnedTangent = (v_weightSum > 0.0001 ? skin * vec4(a_tangent.xyz, 0.0) : vec4(a_tangent.xyz, 0.0)).xyz;
1141
1086
  v_normal = mat3(u_normalMatrix) * skinnedNormal;
@@ -1341,15 +1286,6 @@ float a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirectio
1341
1286
  vec3 receiverNormal = normalize(normal);
1342
1287
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
1343
1288
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
1344
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
1345
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
1346
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
1347
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
1348
- // wide kernels acne-free without inflating the constant bias into peter-panning.
1349
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
1350
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
1351
- // gradient grows, so it under-biases exactly the grazing angles that need the most
1352
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
1353
1289
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
1354
1290
  float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);
1355
1291
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -1391,15 +1327,6 @@ float a3dPointShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
1391
1327
  vec3 receiverNormal = normalize(normal);
1392
1328
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
1393
1329
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
1394
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
1395
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
1396
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
1397
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
1398
- // wide kernels acne-free without inflating the constant bias into peter-panning.
1399
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
1400
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
1401
- // gradient grows, so it under-biases exactly the grazing angles that need the most
1402
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
1403
1330
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
1404
1331
  float slopeTexelBias = slopeTangent * u_pointShadowSlopeBias * max(u_pointShadowTexelSize.x, u_pointShadowTexelSize.y);
1405
1332
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -1434,9 +1361,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
1434
1361
  vec3 receiverNormal = normalize(normal);
1435
1362
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
1436
1363
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
1437
- // Shared bias-table policy: the same per-sample, tangent-scaled slope bias as the
1438
- // directional and point-cube paths. A centre-only bias under-compensates outer PCF
1439
- // taps on sloped receivers, so each tap scales by its own texel distance.
1440
1364
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
1441
1365
  float slopeTexelBias = slopeTangent * u_spotShadowSlopeBias * max(u_spotShadowTexelSize.x, u_spotShadowTexelSize.y);
1442
1366
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -1458,9 +1382,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
1458
1382
  return mix(1.0, 1.0 - occlusion, clamp(u_spotShadowStrength, 0.0, 1.0));
1459
1383
  }
1460
1384
  float a3dResolveSpotShadowOverride(float baseFactor, float kind, float shadowFlag, vec3 worldPosition, vec3 normal, vec3 lightDirection) {
1461
- // Spot-kind lights (kind == 2) sample the perspective spot map only when it is
1462
- // bound. Every gate term is 0 when no spot map is present, so mix() returns
1463
- // baseFactor exactly and scenes without spot lights render unchanged.
1464
1385
  float spotGate = step(1.5, kind) * (1.0 - step(2.5, kind)) * step(0.5, u_spotShadowMapEnabled) * step(0.5, shadowFlag);
1465
1386
  return mix(baseFactor, a3dSpotShadowFactor(worldPosition, normal, lightDirection), spotGate);
1466
1387
  }
@@ -1524,11 +1445,6 @@ void main() {
1524
1445
  float horizonBlend = 1.0 - abs(normal.y);
1525
1446
  vec3 proceduralDiffuse = mix(u_environmentGroundColor, u_environmentSkyColor, skyBlend);
1526
1447
  proceduralDiffuse = mix(proceduralDiffuse, u_environmentHorizonColor, clamp(horizonBlend, 0.0, 1.0) * 0.55);
1527
- // The ambient term must be added to the procedural contribution, not replaced by it. A mix
1528
- // here discarded u_environmentColor * u_environmentIntensity entirely whenever a procedural
1529
- // map was present, which is the normal case: raising ambient intensity from 0.18 to 3.0 on
1530
- // the product-turntable kit produced a byte-identical frame. Ambient and a sky gradient are
1531
- // separate physical contributions, so they sum.
1532
1448
  vec3 environmentDiffuse = ambientEnvironment + proceduralDiffuse * u_environmentMapIntensity * proceduralEnvironmentWeight;
1533
1449
  vec3 reflectionDirection = reflect(-viewDirection, normal);
1534
1450
  float sampledEnvironmentWeight = step(0.0001, u_environmentMapTextureEnabled * u_environmentMapTextureIntensity);
@@ -1593,8 +1509,9 @@ void main() {
1593
1509
  vec3 toLight = positionRange.xyz - v_worldPosition;
1594
1510
  float distanceToLight = length(toLight);
1595
1511
  lightDirection = distanceToLight > 0.0001 ? toLight / distanceToLight : -directionKind.xyz;
1596
- float range = max(positionRange.w, 0.0001);
1597
- float rangeFalloff = clamp(1.0 - pow(distanceToLight / range, 4.0), 0.0, 1.0);
1512
+ // range <= 0 means infinite (physical descriptors, PRD-02 §6.3): no
1513
+ // range window, decay-only attenuation. Legacy ranges are always > 0.
1514
+ float rangeFalloff = positionRange.w <= 0.0 ? 1.0 : clamp(1.0 - pow(distanceToLight / max(positionRange.w, 0.0001), 4.0), 0.0, 1.0);
1598
1515
  rangeFalloff *= rangeFalloff;
1599
1516
  attenuation = rangeFalloff / max(distanceToLight * distanceToLight, 1.0);
1600
1517
  }
@@ -1632,18 +1549,15 @@ void main() {
1632
1549
  precision highp float;
1633
1550
  layout(location = 0) in vec3 a_position;
1634
1551
  uniform mat4 u_modelViewProjection;
1635
- // Uniform fast path (<= 4 targets / 64 verts):
1636
1552
  uniform vec4 u_morphPositionDeltas[256];
1637
1553
  uniform vec4 u_morphWeights;
1638
1554
  uniform float u_morphTargetCount;
1639
- // Texture-backed path (lifts the 4/64 cap; see MorphTargetPlan.ts createMorphTargetPlan):
1640
1555
  uniform sampler2D u_morphDeltaTexture;
1641
- uniform float u_morphUsesTexture; // > 0.5 => sample deltas from the texture
1642
- uniform float u_morphTextureWidth; // = vertexCount
1643
- uniform float u_morphRowsPerTarget; // 1 = positions only, 2 = positions + normals
1644
- uniform float u_morphWeightArray[64]; // per-target weights for the texture path
1556
+ uniform float u_morphUsesTexture;
1557
+ uniform float u_morphTextureWidth;
1558
+ uniform float u_morphRowsPerTarget;
1559
+ uniform float u_morphWeightArray[64];
1645
1560
  vec3 sampleMorphTexel(float row, float vertex) {
1646
- // Fetch RGBA float texel at (x=vertex, y=row) using normalized coords + nearest filtering.
1647
1561
  float u = (vertex + 0.5) / max(1.0, u_morphTextureWidth);
1648
1562
  float height = u_morphTargetCount * u_morphRowsPerTarget;
1649
1563
  float v = (row + 0.5) / max(1.0, height);
@@ -1710,9 +1624,6 @@ out vec3 v_worldPosition;
1710
1624
  out vec2 v_uv;
1711
1625
  out vec4 v_vertexColor;
1712
1626
  void main() {
1713
- // P2 instanced-GLB path (muse3jsparity-PRD): the u_instanceCount branch is
1714
- // taken only for items carrying instanceTransforms; every other draw keeps
1715
- // the legacy math bit-exact. Mirrors the instanced-PBR vertex convention.
1716
1627
  if (u_instanceCount > 0.5) {
1717
1628
  int instanceIndex = clamp(gl_InstanceID, 0, max(int(u_instanceCount) - 1, 0));
1718
1629
  mat4 attributeMatrix = mat4(a_instanceMatrix0, a_instanceMatrix1, a_instanceMatrix2, a_instanceMatrix3);
@@ -1864,15 +1775,6 @@ float a3dForwardShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirectio
1864
1775
  vec3 receiverNormal = normalize(normal);
1865
1776
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
1866
1777
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
1867
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
1868
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
1869
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
1870
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
1871
- // wide kernels acne-free without inflating the constant bias into peter-panning.
1872
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
1873
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
1874
- // gradient grows, so it under-biases exactly the grazing angles that need the most
1875
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
1876
1778
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
1877
1779
  float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);
1878
1780
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -1905,9 +1807,6 @@ float a3dPointShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
1905
1807
  vec4 rect = u_pointShadowFaceRects[faceIndex];
1906
1808
  vec2 uv = rect.xy + localUv * rect.zw;
1907
1809
  float normalDotLight = clamp(abs(dot(normalize(normal), normalize(lightDirection))), 0.0, 1.0);
1908
- // Same per-sample, tangent-scaled slope bias as the directional and atlas paths. These
1909
- // cubemap-face variants inline the sample fetch, but they share the identical acne
1910
- // mechanism: a centre-only, (1 - N.L)-scaled bias under-compensates every outer tap.
1911
1810
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
1912
1811
  float slopeTexelBias = slopeTangent * u_pointShadowSlopeBias * max(u_pointShadowTexelSize.x, u_pointShadowTexelSize.y);
1913
1812
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -1940,9 +1839,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
1940
1839
  vec3 receiverNormal = normalize(normal);
1941
1840
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
1942
1841
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
1943
- // Shared bias-table policy: the same per-sample, tangent-scaled slope bias as the
1944
- // directional and point-cube paths. A centre-only bias under-compensates outer PCF
1945
- // taps on sloped receivers, so each tap scales by its own texel distance.
1946
1842
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
1947
1843
  float slopeTexelBias = slopeTangent * u_spotShadowSlopeBias * max(u_spotShadowTexelSize.x, u_spotShadowTexelSize.y);
1948
1844
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -1964,9 +1860,6 @@ float a3dSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDirection)
1964
1860
  return mix(1.0, 1.0 - occlusion, clamp(u_spotShadowStrength, 0.0, 1.0));
1965
1861
  }
1966
1862
  float a3dResolveSpotShadowOverride(float baseFactor, float kind, float shadowFlag, vec3 worldPosition, vec3 normal, vec3 lightDirection) {
1967
- // Spot-kind lights (kind == 2) sample the perspective spot map only when it is
1968
- // bound. Every gate term is 0 when no spot map is present, so mix() returns
1969
- // baseFactor exactly and scenes without spot lights render unchanged.
1970
1863
  float spotGate = step(1.5, kind) * (1.0 - step(2.5, kind)) * step(0.5, u_spotShadowMapEnabled) * step(0.5, shadowFlag);
1971
1864
  return mix(baseFactor, a3dSpotShadowFactor(worldPosition, normal, lightDirection), spotGate);
1972
1865
  }
@@ -2015,11 +1908,6 @@ vec3 a3dPbrEnvironmentDiffuseInput(vec3 normal) {
2015
1908
  float horizonBlend = 1.0 - abs(normal.y);
2016
1909
  vec3 proceduralDiffuse = mix(u_environmentGroundColor, u_environmentSkyColor, skyBlend);
2017
1910
  proceduralDiffuse = mix(proceduralDiffuse, u_environmentHorizonColor, clamp(horizonBlend, 0.0, 1.0) * 0.55);
2018
- // The ambient term must be added to the procedural contribution, not replaced by it. A mix
2019
- // here discarded u_environmentColor * u_environmentIntensity entirely whenever a procedural
2020
- // map was present, which is the normal case: raising ambient intensity from 0.18 to 3.0 on
2021
- // the product-turntable kit produced a byte-identical frame. Ambient and a sky gradient are
2022
- // separate physical contributions, so they sum.
2023
1911
  vec3 environmentDiffuse = ambientEnvironment + proceduralDiffuse * u_environmentMapIntensity * proceduralEnvironmentWeight;
2024
1912
  float sampledEnvironmentWeight = step(0.0001, u_environmentMapTextureEnabled * u_environmentMapTextureIntensity);
2025
1913
  float diffuseEnvironmentLod = max(u_environmentMapTextureMipCount - 1.0, 0.0);
@@ -2105,8 +1993,9 @@ void main() {
2105
1993
  vec3 toLight = positionRange.xyz - v_worldPosition;
2106
1994
  float distanceToLight = length(toLight);
2107
1995
  lightDirection = distanceToLight > 0.0001 ? toLight / distanceToLight : -directionKind.xyz;
2108
- float range = max(positionRange.w, 0.0001);
2109
- float rangeFalloff = clamp(1.0 - pow(distanceToLight / range, 4.0), 0.0, 1.0);
1996
+ // range <= 0 means infinite (physical descriptors, PRD-02 §6.3): no
1997
+ // range window, decay-only attenuation. Legacy ranges are always > 0.
1998
+ float rangeFalloff = positionRange.w <= 0.0 ? 1.0 : clamp(1.0 - pow(distanceToLight / max(positionRange.w, 0.0001), 4.0), 0.0, 1.0);
2110
1999
  rangeFalloff *= rangeFalloff;
2111
2000
  attenuation = rangeFalloff / max(distanceToLight * distanceToLight, 1.0);
2112
2001
  }
@@ -2131,6 +2020,9 @@ void main() {
2131
2020
  name: DEFAULT_TEXTURED_PBR_SHADER_NAME,
2132
2021
  marker: DEFAULT_TEXTURED_PBR_SHADER_MARKER,
2133
2022
  variants: [
2023
+ { name: DEFAULT_TEXTURED_PBR_EXTENSION_ATLAS_VARIANT, defines: { A3D_PBR_EXTENSION_ATLAS: true, A3D_PBR_CLEARCOAT_TEXTURES: true, A3D_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES: true, A3D_PBR_IRIDESCENCE_TEXTURES: true, A3D_PBR_DISABLE_TRANSMISSION_BACKDROP: true, A3D_PBR_DISABLE_CLUSTERED_LIGHTING: true } },
2024
+ { name: DEFAULT_TEXTURED_PBR_CLEARCOAT_SHEEN_ANISOTROPY_TEXTURES_VARIANT, defines: { A3D_PBR_CLEARCOAT_TEXTURES: true, A3D_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES: true, A3D_PBR_DISABLE_TRANSMISSION_BACKDROP: true, A3D_PBR_DISABLE_CLUSTERED_LIGHTING: true, A3D_PBR_NO_SPOT_SHADOW: true } },
2025
+ { name: DEFAULT_TEXTURED_PBR_CLEARCOAT_IRIDESCENCE_TEXTURES_VARIANT, defines: { A3D_PBR_CLEARCOAT_TEXTURES: true, A3D_PBR_IRIDESCENCE_TEXTURES: true, A3D_PBR_DISABLE_TRANSMISSION_BACKDROP: true, A3D_PBR_DISABLE_CLUSTERED_LIGHTING: true } },
2134
2026
  { name: DEFAULT_TEXTURED_PBR_CLEARCOAT_TEXTURES_VARIANT, defines: { A3D_PBR_CLEARCOAT_TEXTURES: true, A3D_PBR_DISABLE_TRANSMISSION_BACKDROP: true, A3D_PBR_DISABLE_CLUSTERED_LIGHTING: true } },
2135
2027
  { name: DEFAULT_TEXTURED_PBR_TRANSMISSION_VOLUME_TEXTURES_VARIANT, defines: { A3D_PBR_TRANSMISSION_VOLUME_TEXTURES: true, A3D_PBR_DISABLE_TRANSMISSION_BACKDROP: true, A3D_PBR_DISABLE_CLUSTERED_LIGHTING: true } },
2136
2028
  { name: DEFAULT_TEXTURED_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES_VARIANT, defines: { A3D_PBR_SPECULAR_TEXTURES: true, A3D_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES: true, A3D_PBR_DISABLE_TRANSMISSION_BACKDROP: true, A3D_PBR_DISABLE_CLUSTERED_LIGHTING: true } },
@@ -2168,10 +2060,6 @@ out vec4 v_vertexColor;
2168
2060
  void main() {
2169
2061
  v_uv = a_uv;
2170
2062
  v_uv1 = a_uv1;
2171
- // P2 instanced-GLB path (muse3jsparity-PRD): the u_instanceCount branch is
2172
- // taken only for items carrying instanceTransforms (applyInstanceBinding
2173
- // stamps a count >= 1); every other draw keeps the legacy math bit-exact.
2174
- // Mirrors the instanced-PBR vertex convention (MVP carries the base model).
2175
2063
  if (u_instanceCount > 0.5) {
2176
2064
  int instanceIndex = clamp(gl_InstanceID, 0, max(int(u_instanceCount) - 1, 0));
2177
2065
  mat4 attributeMatrix = mat4(a_instanceMatrix0, a_instanceMatrix1, a_instanceMatrix2, a_instanceMatrix3);
@@ -2287,11 +2175,6 @@ uniform float u_pointShadowSlopeBias;
2287
2175
  uniform vec2 u_pointShadowTexelSize;
2288
2176
  uniform float u_pointShadowPcfSampleCount;
2289
2177
  uniform vec4 u_pointShadowPcfSamples[32];
2290
- // B1 spot path (muse3jsparity-PRD): the two A3D_PBR_NO_SPOT_SHADOW variants
2291
- // (clearcoat-transmission-volume, specular-sheen-anisotropy-iridescence) sit at
2292
- // the 16-sampler WebGL2 minimum without it, so they sample spot lights through
2293
- // the legacy directional factor while every other lit program takes the spot
2294
- // override. ForwardPass binds spot uniforms only when reflection declares them.
2295
2178
  #ifndef A3D_PBR_NO_SPOT_SHADOW
2296
2179
  uniform sampler2D u_spotShadowMapTexture;
2297
2180
  uniform float u_spotShadowMapEnabled;
@@ -2345,14 +2228,26 @@ uniform vec2 u_occlusionTextureWrap;
2345
2228
  uniform float u_occlusionStrength;
2346
2229
  uniform float u_clearcoatNormalScale;
2347
2230
  #ifdef A3D_PBR_CLEARCOAT_TEXTURES
2231
+ #ifndef A3D_PBR_EXTENSION_ATLAS
2348
2232
  uniform sampler2D u_clearcoatTexture;
2233
+ #else
2234
+ uniform vec4 u_clearcoatAtlasRect;
2235
+ uniform float u_clearcoatAtlasY;
2236
+ uniform vec4 u_clearcoatAtlasFilter;
2237
+ #endif
2349
2238
  uniform float u_clearcoatTextureEnabled;
2350
2239
  uniform vec2 u_clearcoatTextureOffset;
2351
2240
  uniform vec2 u_clearcoatTextureScale;
2352
2241
  uniform float u_clearcoatTextureRotation;
2353
2242
  uniform float u_clearcoatTextureTexCoord;
2354
2243
  uniform vec2 u_clearcoatTextureWrap;
2244
+ #ifndef A3D_PBR_EXTENSION_ATLAS
2355
2245
  uniform sampler2D u_clearcoatRoughnessTexture;
2246
+ #else
2247
+ uniform vec4 u_clearcoatRoughnessAtlasRect;
2248
+ uniform float u_clearcoatRoughnessAtlasY;
2249
+ uniform vec4 u_clearcoatRoughnessAtlasFilter;
2250
+ #endif
2356
2251
  uniform float u_clearcoatRoughnessTextureEnabled;
2357
2252
  uniform vec2 u_clearcoatRoughnessTextureOffset;
2358
2253
  uniform vec2 u_clearcoatRoughnessTextureScale;
@@ -2421,7 +2316,13 @@ uniform vec2 u_sheenColorTextureScale;
2421
2316
  uniform float u_sheenColorTextureRotation;
2422
2317
  uniform float u_sheenColorTextureTexCoord;
2423
2318
  uniform vec2 u_sheenColorTextureWrap;
2319
+ #ifndef A3D_PBR_EXTENSION_ATLAS
2424
2320
  uniform sampler2D u_sheenRoughnessTexture;
2321
+ #else
2322
+ uniform vec4 u_sheenRoughnessAtlasRect;
2323
+ uniform float u_sheenRoughnessAtlasY;
2324
+ uniform vec4 u_sheenRoughnessAtlasFilter;
2325
+ #endif
2425
2326
  uniform float u_sheenRoughnessTextureEnabled;
2426
2327
  uniform vec2 u_sheenRoughnessTextureOffset;
2427
2328
  uniform vec2 u_sheenRoughnessTextureScale;
@@ -2437,14 +2338,26 @@ uniform float u_anisotropyTextureTexCoord;
2437
2338
  uniform vec2 u_anisotropyTextureWrap;
2438
2339
  #endif
2439
2340
  #ifdef A3D_PBR_IRIDESCENCE_TEXTURES
2341
+ #ifndef A3D_PBR_EXTENSION_ATLAS
2440
2342
  uniform sampler2D u_iridescenceTexture;
2343
+ #else
2344
+ uniform vec4 u_iridescenceAtlasRect;
2345
+ uniform float u_iridescenceAtlasY;
2346
+ uniform vec4 u_iridescenceAtlasFilter;
2347
+ #endif
2441
2348
  uniform float u_iridescenceTextureEnabled;
2442
2349
  uniform vec2 u_iridescenceTextureOffset;
2443
2350
  uniform vec2 u_iridescenceTextureScale;
2444
2351
  uniform float u_iridescenceTextureRotation;
2445
2352
  uniform float u_iridescenceTextureTexCoord;
2446
2353
  uniform vec2 u_iridescenceTextureWrap;
2354
+ #ifndef A3D_PBR_EXTENSION_ATLAS
2447
2355
  uniform sampler2D u_iridescenceThicknessTexture;
2356
+ #else
2357
+ uniform vec4 u_iridescenceThicknessAtlasRect;
2358
+ uniform float u_iridescenceThicknessAtlasY;
2359
+ uniform vec4 u_iridescenceThicknessAtlasFilter;
2360
+ #endif
2448
2361
  uniform float u_iridescenceThicknessTextureEnabled;
2449
2362
  uniform vec2 u_iridescenceThicknessTextureOffset;
2450
2363
  uniform vec2 u_iridescenceThicknessTextureScale;
@@ -2553,15 +2466,6 @@ float a3dTexturedPbrShadowFactor(vec3 worldPosition, vec3 normal, vec3 lightDire
2553
2466
  vec3 receiverNormal = normalize(normal);
2554
2467
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
2555
2468
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
2556
- // Slope-scaled depth bias must be evaluated per PCF sample, not once for the kernel
2557
- // centre. A sample offset N texels away on a receiver sloped relative to the light sees a
2558
- // depth difference proportional to N, so a centre-only bias under-compensates every outer
2559
- // tap and the receiver shadows itself. Scaling by each sample's own texel distance keeps
2560
- // wide kernels acne-free without inflating the constant bias into peter-panning.
2561
- // The depth gradient across one shadow texel is tan(angle between receiver normal and
2562
- // light), not (1 - N.L). The linear form collapses toward zero far faster than the real
2563
- // gradient grows, so it under-biases exactly the grazing angles that need the most
2564
- // compensation. Clamped so a near-perpendicular receiver cannot demand unbounded bias.
2565
2469
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
2566
2470
  float slopeTexelBias = slopeTangent * u_shadowMapSlopeBias * max(u_shadowMapTexelSize.x, u_shadowMapTexelSize.y);
2567
2471
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -2594,9 +2498,6 @@ float a3dTexturedPbrPointShadowFactor(vec3 worldPosition, vec3 normal, vec3 ligh
2594
2498
  vec4 rect = u_pointShadowFaceRects[faceIndex];
2595
2499
  vec2 uv = rect.xy + localUv * rect.zw;
2596
2500
  float normalDotLight = clamp(abs(dot(normalize(normal), normalize(lightDirection))), 0.0, 1.0);
2597
- // Same per-sample, tangent-scaled slope bias as the directional and atlas paths. These
2598
- // cubemap-face variants inline the sample fetch, but they share the identical acne
2599
- // mechanism: a centre-only, (1 - N.L)-scaled bias under-compensates every outer tap.
2600
2501
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
2601
2502
  float slopeTexelBias = slopeTangent * u_pointShadowSlopeBias * max(u_pointShadowTexelSize.x, u_pointShadowTexelSize.y);
2602
2503
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -2630,9 +2531,6 @@ float a3dTexturedPbrSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 light
2630
2531
  vec3 receiverNormal = normalize(normal);
2631
2532
  vec3 receiverLightDirection = lightDirection / max(length(lightDirection), 0.0001);
2632
2533
  float normalDotLight = clamp(abs(dot(receiverNormal, receiverLightDirection)), 0.0, 1.0);
2633
- // Shared bias-table policy: the same per-sample, tangent-scaled slope bias as the
2634
- // directional and point-cube paths. A centre-only bias under-compensates outer PCF
2635
- // taps on sloped receivers, so each tap scales by its own texel distance.
2636
2534
  float slopeTangent = min(sqrt(max(1.0 - normalDotLight * normalDotLight, 0.0)) / max(normalDotLight, 0.05), 8.0);
2637
2535
  float slopeTexelBias = slopeTangent * u_spotShadowSlopeBias * max(u_spotShadowTexelSize.x, u_spotShadowTexelSize.y);
2638
2536
  float projectedDepth = projected.z * 0.5 + 0.5;
@@ -2654,9 +2552,6 @@ float a3dTexturedPbrSpotShadowFactor(vec3 worldPosition, vec3 normal, vec3 light
2654
2552
  return mix(1.0, 1.0 - occlusion, clamp(u_spotShadowStrength, 0.0, 1.0));
2655
2553
  }
2656
2554
  float a3dTexturedPbrResolveSpotShadowOverride(float baseFactor, float kind, float shadowFlag, vec3 worldPosition, vec3 normal, vec3 lightDirection) {
2657
- // Spot-kind lights (kind == 2) sample the perspective spot map only when it is
2658
- // bound. Every gate term is 0 when no spot map is present, so mix() returns
2659
- // baseFactor exactly and scenes without spot lights render unchanged.
2660
2555
  float spotGate = step(1.5, kind) * (1.0 - step(2.5, kind)) * step(0.5, u_spotShadowMapEnabled) * step(0.5, shadowFlag);
2661
2556
  return mix(baseFactor, a3dTexturedPbrSpotShadowFactor(worldPosition, normal, lightDirection), spotGate);
2662
2557
  }
@@ -2700,11 +2595,6 @@ vec3 a3dTexturedPbrEnvironmentDiffuseInput(vec3 normal) {
2700
2595
  float horizonBlend = 1.0 - abs(normal.y);
2701
2596
  vec3 proceduralDiffuse = mix(u_environmentGroundColor, u_environmentSkyColor, skyBlend);
2702
2597
  proceduralDiffuse = mix(proceduralDiffuse, u_environmentHorizonColor, clamp(horizonBlend, 0.0, 1.0) * 0.55);
2703
- // The ambient term must be added to the procedural contribution, not replaced by it. A mix
2704
- // here discarded u_environmentColor * u_environmentIntensity entirely whenever a procedural
2705
- // map was present, which is the normal case: raising ambient intensity from 0.18 to 3.0 on
2706
- // the product-turntable kit produced a byte-identical frame. Ambient and a sky gradient are
2707
- // separate physical contributions, so they sum.
2708
2598
  vec3 environmentDiffuse = ambientEnvironment + proceduralDiffuse * u_environmentMapIntensity * proceduralEnvironmentWeight;
2709
2599
  float sampledEnvironmentWeight = step(0.0001, u_environmentMapTextureEnabled * u_environmentMapTextureIntensity);
2710
2600
  float diffuseEnvironmentLod = max(u_environmentMapTextureMipCount - 1.0, 0.0);
@@ -2719,11 +2609,6 @@ vec3 a3dTexturedPbrEnvironmentSpecularInput(vec3 normal, vec3 viewDirection, flo
2719
2609
  float clampedRoughness = clamp(roughness, 0.0, 1.0);
2720
2610
  float nDotV = clamp(dot(normal, viewDirection), 0.0, 1.0);
2721
2611
  float reflectionBand = pow(clamp(reflectionDirection.y * 0.5 + 0.5, 0.0, 1.0), mix(18.0, 2.0, clampedRoughness));
2722
- // Keep the procedural environment from becoming a uniform white veil on
2723
- // saturated textured base colors. A high roughness floor spread neutral
2724
- // specular over every fragment, while image-based lighting and Three.js keep
2725
- // the strongest neutral energy in reflection bands and glancing highlights.
2726
- // The lower floor preserves ambient readability without erasing texture chroma.
2727
2612
  float roughEnvironmentFloor = mix(0.012, 0.16, clampedRoughness);
2728
2613
  float proceduralSpecularResponse = max(reflectionBand, roughEnvironmentFloor);
2729
2614
  float horizonStripe = pow(clamp(1.0 - abs(reflectionDirection.y), 0.0, 1.0), mix(14.0, 3.0, clampedRoughness));
@@ -2743,13 +2628,25 @@ vec3 a3dTexturedPbrEnvironmentSpecularInput(vec3 normal, vec3 viewDirection, flo
2743
2628
  float sampledSpecularScale = materialEnvironmentSpecularScale;
2744
2629
  return proceduralSpecular * proceduralSpecularScale + sampledSpecular * sampledSpecularScale;
2745
2630
  }
2746
- vec3 a3dTexturedPbrIridescenceColor(float minimumThickness, float maximumThickness, float iridescenceIor, float nDotV) {
2747
- float thickness = clamp((minimumThickness + maximumThickness) * 0.5, 0.0, 1200.0);
2748
- float opticalThicknessPhase = clamp((thickness - 100.0) / 1100.0, 0.0, 1.0) * 6.2831853;
2749
- float iorShift = clamp((iridescenceIor - 1.0) / 2.0, 0.0, 1.0) * 0.65;
2750
- float viewPhase = pow(1.0 - clamp(nDotV, 0.0, 1.0), 1.25) * (3.2 + iridescenceIor * 1.4);
2751
- float phase = opticalThicknessPhase + iorShift + viewPhase;
2752
- return clamp(0.5 + 0.5 * cos(phase + vec3(0.0, 2.0943951, 4.1887902)), vec3(0.0), vec3(1.0));
2631
+ vec3 a3dTexturedPbrThinFilmFresnel(vec3 substrateF0, float filmIor, float thickness, float cosine) {
2632
+ float c1 = clamp(cosine, 0.0001, 1.0);
2633
+ if (thickness <= 0.0) return a3dFresnelSchlick(substrateF0, c1);
2634
+ float n2 = max(filmIor, 1.0001);
2635
+ vec3 rootF0 = sqrt(clamp(substrateF0, vec3(0.0), vec3(0.98)));
2636
+ vec3 n3 = (vec3(1.0) + rootF0) / max(vec3(1.0) - rootF0, vec3(0.0001));
2637
+ float sinSquared = 1.0 - c1 * c1;
2638
+ float c2 = sqrt(max(0.0, 1.0 - sinSquared / (n2 * n2)));
2639
+ vec3 c3 = sqrt(max(vec3(0.0), vec3(1.0) - sinSquared / (n3 * n3)));
2640
+ float r12s = (c1 - n2 * c2) / max(c1 + n2 * c2, 0.0001);
2641
+ float r12p = (n2 * c1 - c2) / max(n2 * c1 + c2, 0.0001);
2642
+ vec3 r23s = (n2 * c2 - n3 * c3) / max(n2 * c2 + n3 * c3, vec3(0.0001));
2643
+ vec3 r23p = (n3 * c2 - n2 * c3) / max(n3 * c2 + n2 * c3, vec3(0.0001));
2644
+ vec3 phase = 4.0 * A3D_PI * n2 * max(thickness, 0.0) * c2 / vec3(650.0, 510.0, 475.0);
2645
+ vec3 crossS = 2.0 * r12s * r23s * cos(phase);
2646
+ vec3 crossP = 2.0 * r12p * r23p * cos(phase);
2647
+ vec3 Rs = (r12s * r12s + r23s * r23s + crossS) / max(vec3(1.0) + r12s * r12s * r23s * r23s + crossS, vec3(0.0001));
2648
+ vec3 Rp = (r12p * r12p + r23p * r23p + crossP) / max(vec3(1.0) + r12p * r12p * r23p * r23p + crossP, vec3(0.0001));
2649
+ return clamp((Rs + Rp) * 0.5, vec3(0.0), vec3(1.0));
2753
2650
  }
2754
2651
  float a3dTexturedPbrCharlieSheen(float nDotH, float sheenRoughness) {
2755
2652
  float alpha = max(0.07, sheenRoughness * sheenRoughness);
@@ -2800,7 +2697,10 @@ vec3 a3dTexturedPbrExtensionDirectLight(
2800
2697
  float iridescence,
2801
2698
  float iridescenceIor,
2802
2699
  float iridescenceThicknessMinimum,
2803
- float iridescenceThicknessMaximum
2700
+ float iridescenceThicknessMaximum,
2701
+ vec3 substrateF0,
2702
+ vec3 substrateNormal,
2703
+ float substrateRoughness
2804
2704
  ) {
2805
2705
  vec3 N = normalize(normal);
2806
2706
  vec3 V = normalize(viewDirection);
@@ -2823,9 +2723,14 @@ vec3 a3dTexturedPbrExtensionDirectLight(
2823
2723
  float anisotropicDistribution = a3dTexturedPbrAnisotropicDistribution(N, H, tangentFrame, clearcoatRough, anisotropy, anisotropyRotation);
2824
2724
  float anisotropyShape = anisotropicDistribution / (anisotropicDistribution + 3.0);
2825
2725
  vec3 anisotropyLobe = vec3(clamp(anisotropy, 0.0, 1.0) * anisotropyShape * 0.72);
2826
- vec3 iridescenceColor = a3dTexturedPbrIridescenceColor(iridescenceThicknessMinimum, iridescenceThicknessMaximum, iridescenceIor, nDotV);
2827
- vec3 iridescenceLobe = iridescenceColor * clamp(iridescence, 0.0, 1.0) * clearcoatF * pow(a3dSaturate(1.0 - nDotV), 2.0) * 0.12;
2828
- return (clearcoatLobe + sheenLobe + anisotropyLobe + iridescenceLobe) * lightColor * lightIntensity * nDotL;
2726
+ vec3 filmF = a3dTexturedPbrThinFilmFresnel(substrateF0, iridescenceIor, (iridescenceThicknessMinimum + iridescenceThicknessMaximum) * 0.5, vDotH);
2727
+ vec3 filmN = normalize(substrateNormal);
2728
+ float filmNdotV = max(a3dSaturate(dot(filmN, V)), A3D_EPSILON);
2729
+ float filmNdotL = a3dSaturate(dot(filmN, L));
2730
+ float filmD = a3dDistributionGGX(a3dSaturate(dot(filmN, H)), substrateRoughness);
2731
+ float filmG = a3dGeometrySmithGGXCorrelated(filmNdotV, filmNdotL, substrateRoughness);
2732
+ vec3 iridescenceLobe = (filmF - a3dFresnelSchlick(substrateF0, vDotH)) * clamp(iridescence, 0.0, 1.0) * filmD * filmG;
2733
+ return ((clearcoatLobe + sheenLobe + anisotropyLobe) * nDotL + iridescenceLobe * filmNdotL) * lightColor * lightIntensity;
2829
2734
  }
2830
2735
  vec3 a3dTexturedPbrExtensionEnvironmentLight(
2831
2736
  vec3 normal,
@@ -2841,7 +2746,10 @@ vec3 a3dTexturedPbrExtensionEnvironmentLight(
2841
2746
  float iridescence,
2842
2747
  float iridescenceIor,
2843
2748
  float iridescenceThicknessMinimum,
2844
- float iridescenceThicknessMaximum
2749
+ float iridescenceThicknessMaximum,
2750
+ vec3 substrateF0,
2751
+ vec3 substrateNormal,
2752
+ vec3 substrateSpecularRadiance
2845
2753
  ) {
2846
2754
  float nDotV = max(a3dSaturate(dot(normalize(normal), normalize(viewDirection))), A3D_EPSILON);
2847
2755
  vec3 clearcoatF = a3dFresnelSchlickRoughness(vec3(0.04), nDotV, clamp(clearcoatRoughness, 0.18, 1.0));
@@ -2858,10 +2766,66 @@ vec3 a3dTexturedPbrExtensionEnvironmentLight(
2858
2766
  float anisotropicDistribution = a3dTexturedPbrAnisotropicDistribution(N, environmentHalf, tangentFrame, clearcoatRoughness, anisotropy, anisotropyRotation);
2859
2767
  float anisotropyShape = anisotropicDistribution / (anisotropicDistribution + 3.0);
2860
2768
  vec3 anisotropyLobe = boundedSpecularRadiance * clamp(anisotropy, 0.0, 1.0) * anisotropyShape * 0.72;
2861
- vec3 iridescenceColor = a3dTexturedPbrIridescenceColor(iridescenceThicknessMinimum, iridescenceThicknessMaximum, iridescenceIor, nDotV);
2862
- vec3 iridescenceLobe = boundedSpecularRadiance * iridescenceColor * clamp(iridescence, 0.0, 1.0) * pow(a3dSaturate(1.0 - nDotV), 2.0) * 0.09;
2769
+ float filmNdotV = max(a3dSaturate(dot(normalize(substrateNormal), normalize(viewDirection))), A3D_EPSILON);
2770
+ vec3 filmF = a3dTexturedPbrThinFilmFresnel(substrateF0, iridescenceIor, (iridescenceThicknessMinimum + iridescenceThicknessMaximum) * 0.5, filmNdotV);
2771
+ vec3 iridescenceLobe = substrateSpecularRadiance * (filmF - a3dFresnelSchlick(substrateF0, filmNdotV)) * clamp(iridescence, 0.0, 1.0);
2863
2772
  return clearcoatLobe + sheenLobe + anisotropyLobe + iridescenceLobe;
2864
2773
  }
2774
+
2775
+ #ifdef A3D_PBR_EXTENSION_ATLAS
2776
+ uniform sampler2D u_extensionScalarAtlas;
2777
+ int a3dAtlasWrapIndex(int x, int size, float mode) {
2778
+ if (mode < 0.5) return clamp(x, 0, size - 1);
2779
+ int period = mode < 1.5 ? size : 2 * size;
2780
+ int index = ((x % period) + period) % period;
2781
+ return mode < 1.5 ? index : (index < size ? index : period - 1 - index);
2782
+ }
2783
+ vec4 a3dAtlasFetch(ivec2 point, ivec2 size, ivec2 origin, vec2 wrapMode) {
2784
+ ivec2 wrapped = ivec2(a3dAtlasWrapIndex(point.x,size.x,wrapMode.x), a3dAtlasWrapIndex(point.y,size.y,wrapMode.y));
2785
+ return texelFetch(u_extensionScalarAtlas, origin + wrapped, 0);
2786
+ }
2787
+ vec4 a3dAtlasLevel(vec2 uv, vec4 rect, float originY, vec2 wrapMode, int level, bool nearestFilter) {
2788
+ ivec2 size = ivec2(rect.yz);
2789
+ ivec2 origin = ivec2(int(rect.x),int(originY));
2790
+ for (int i=0; i<16; i++) {
2791
+ if (i >= level) break;
2792
+ origin.y += size.y;
2793
+ size = max(size / 2, ivec2(1));
2794
+ }
2795
+ vec2 pixel = uv * vec2(size) - 0.5;
2796
+ if (nearestFilter) return a3dAtlasFetch(ivec2(floor(pixel + 0.5)),size,origin,wrapMode);
2797
+ ivec2 low = ivec2(floor(pixel));
2798
+ vec2 fraction = fract(pixel);
2799
+ return mix(mix(a3dAtlasFetch(low,size,origin,wrapMode),a3dAtlasFetch(low+ivec2(1,0),size,origin,wrapMode),fraction.x),
2800
+ mix(a3dAtlasFetch(low+ivec2(0,1),size,origin,wrapMode),a3dAtlasFetch(low+ivec2(1,1),size,origin,wrapMode),fraction.x),fraction.y);
2801
+ }
2802
+ vec4 a3dAtlasSample(vec2 uv, vec4 rect, float originY, vec2 wrapMode, vec4 filterMode) {
2803
+ vec2 dx=dFdx(uv), dy=dFdy(uv);
2804
+ float lx=length(dx*rect.yz), ly=length(dy*rect.yz);
2805
+ float major=max(lx,ly), minor=max(min(lx,ly),0.000001);
2806
+ bool magnify=major<=1.0;
2807
+ float taps=magnify ? 1.0 : clamp(ceil(major/max(minor,1.0)),1.0,floor(filterMode.w));
2808
+ vec2 axis=lx>=ly ? dx : dy;
2809
+ float lod=clamp(log2(max(major/taps,1.0)),0.0,rect.w);
2810
+ if (filterMode.z<0.5) lod=0.0;
2811
+ else if (filterMode.z<1.5) lod=floor(lod+0.5);
2812
+ int low=int(floor(lod)), high=min(low+1,int(rect.w));
2813
+ bool nearestFilter=magnify ? filterMode.x>0.5 : filterMode.y>0.5;
2814
+ vec4 total=vec4(0.0);
2815
+ for (int i=0;i<16;i++) {
2816
+ if (float(i)>=taps) break;
2817
+ vec2 sampleUv=uv+axis*((float(i)+0.5)/taps-0.5);
2818
+ total+=mix(a3dAtlasLevel(sampleUv,rect,originY,wrapMode,low,nearestFilter),a3dAtlasLevel(sampleUv,rect,originY,wrapMode,high,nearestFilter),fract(lod));
2819
+ }
2820
+ return total/taps;
2821
+ }
2822
+ #endif
2823
+
2824
+
2825
+
2826
+
2827
+
2828
+
2865
2829
  void main() {
2866
2830
  vec2 baseColorUv = a3dTexturedPbrUv(u_baseColorTextureTexCoord, u_baseColorTextureOffset, u_baseColorTextureScale, u_baseColorTextureRotation);
2867
2831
  vec2 normalUv = a3dTexturedPbrUv(u_normalTextureTexCoord, u_normalTextureOffset, u_normalTextureScale, u_normalTextureRotation);
@@ -2975,10 +2939,18 @@ void main() {
2975
2939
  float anisotropy = clamp(u_anisotropyStrength, 0.0, 1.0);
2976
2940
  float anisotropyRotation = u_anisotropyRotation;
2977
2941
  float iridescence = clamp(u_iridescenceFactor, 0.0, 1.0);
2978
- float iridescenceThickness = mix(u_iridescenceThicknessMinimum, u_iridescenceThicknessMaximum, 0.5);
2942
+ float iridescenceThickness = u_iridescenceThicknessMaximum;
2979
2943
  #ifdef A3D_PBR_CLEARCOAT_TEXTURES
2944
+ #ifdef A3D_PBR_EXTENSION_ATLAS
2945
+ clearcoat = clamp(clearcoat * mix(1.0, a3dAtlasSample(clearcoatUv, u_clearcoatAtlasRect, u_clearcoatAtlasY, u_clearcoatTextureWrap, u_clearcoatAtlasFilter).r, step(0.5, u_clearcoatTextureEnabled)), 0.0, 1.0);
2946
+ #else
2980
2947
  clearcoat = clamp(clearcoat * mix(1.0, texture(u_clearcoatTexture, a3dTexturedPbrWrapUv(clearcoatUv, u_clearcoatTextureWrap)).r, step(0.5, u_clearcoatTextureEnabled)), 0.0, 1.0);
2948
+ #endif
2949
+ #ifdef A3D_PBR_EXTENSION_ATLAS
2950
+ clearcoatRoughness = clamp(clearcoatRoughness * mix(1.0, a3dAtlasSample(clearcoatRoughnessUv, u_clearcoatRoughnessAtlasRect, u_clearcoatRoughnessAtlasY, u_clearcoatRoughnessTextureWrap, u_clearcoatRoughnessAtlasFilter).g, step(0.5, u_clearcoatRoughnessTextureEnabled)), 0.0, 1.0);
2951
+ #else
2981
2952
  clearcoatRoughness = clamp(clearcoatRoughness * mix(1.0, texture(u_clearcoatRoughnessTexture, a3dTexturedPbrWrapUv(clearcoatRoughnessUv, u_clearcoatRoughnessTextureWrap)).g, step(0.5, u_clearcoatRoughnessTextureEnabled)), 0.0, 1.0);
2953
+ #endif
2982
2954
  clearcoatRoughness = max(clearcoatRoughness, 0.19 + (1.0 - clearcoatNormalBoost) * 0.12);
2983
2955
  #endif
2984
2956
  #ifdef A3D_PBR_TRANSMISSION_VOLUME_TEXTURES
@@ -2993,12 +2965,29 @@ void main() {
2993
2965
  #endif
2994
2966
  #ifdef A3D_PBR_SPECULAR_SHEEN_ANISOTROPY_TEXTURES
2995
2967
  sheenColor *= mix(vec3(1.0), a3dTexturedPbrDecodeSrgb(texture(u_sheenColorTexture, a3dTexturedPbrWrapUv(sheenColorUv, u_sheenColorTextureWrap)).rgb), step(0.5, u_sheenColorTextureEnabled));
2968
+ #ifdef A3D_PBR_EXTENSION_ATLAS
2969
+ sheenRoughness = clamp(sheenRoughness * mix(1.0, a3dAtlasSample(sheenRoughnessUv, u_sheenRoughnessAtlasRect, u_sheenRoughnessAtlasY, u_sheenRoughnessTextureWrap, u_sheenRoughnessAtlasFilter).a, step(0.5, u_sheenRoughnessTextureEnabled)), 0.0, 1.0);
2970
+ #else
2996
2971
  sheenRoughness = clamp(sheenRoughness * mix(1.0, texture(u_sheenRoughnessTexture, a3dTexturedPbrWrapUv(sheenRoughnessUv, u_sheenRoughnessTextureWrap)).a, step(0.5, u_sheenRoughnessTextureEnabled)), 0.0, 1.0);
2997
- anisotropy = clamp(anisotropy * mix(1.0, texture(u_anisotropyTexture, a3dTexturedPbrWrapUv(anisotropyUv, u_anisotropyTextureWrap)).b, step(0.5, u_anisotropyTextureEnabled)), 0.0, 1.0);
2972
+ #endif
2973
+ vec3 anisotropySample = texture(u_anisotropyTexture, a3dTexturedPbrWrapUv(anisotropyUv, u_anisotropyTextureWrap)).rgb;
2974
+ anisotropy = clamp(anisotropy * mix(1.0, anisotropySample.b, step(0.5, u_anisotropyTextureEnabled)), 0.0, 1.0);
2975
+ vec2 anisotropyDirection = anisotropySample.rg * 2.0 - 1.0;
2976
+ if (u_anisotropyTextureEnabled > 0.5 && dot(anisotropyDirection, anisotropyDirection) > 0.000001) {
2977
+ anisotropyRotation += atan(anisotropyDirection.y, anisotropyDirection.x);
2978
+ }
2998
2979
  #endif
2999
2980
  #ifdef A3D_PBR_IRIDESCENCE_TEXTURES
2981
+ #ifdef A3D_PBR_EXTENSION_ATLAS
2982
+ iridescence = clamp(iridescence * mix(1.0, a3dAtlasSample(iridescenceUv, u_iridescenceAtlasRect, u_iridescenceAtlasY, u_iridescenceTextureWrap, u_iridescenceAtlasFilter).r, step(0.5, u_iridescenceTextureEnabled)), 0.0, 1.0);
2983
+ #else
3000
2984
  iridescence = clamp(iridescence * mix(1.0, texture(u_iridescenceTexture, a3dTexturedPbrWrapUv(iridescenceUv, u_iridescenceTextureWrap)).r, step(0.5, u_iridescenceTextureEnabled)), 0.0, 1.0);
2985
+ #endif
2986
+ #ifdef A3D_PBR_EXTENSION_ATLAS
2987
+ iridescenceThickness = mix(iridescenceThickness, mix(u_iridescenceThicknessMinimum, u_iridescenceThicknessMaximum, a3dAtlasSample(iridescenceThicknessUv, u_iridescenceThicknessAtlasRect, u_iridescenceThicknessAtlasY, u_iridescenceThicknessTextureWrap, u_iridescenceThicknessAtlasFilter).g), step(0.5, u_iridescenceThicknessTextureEnabled));
2988
+ #else
3001
2989
  iridescenceThickness = mix(iridescenceThickness, mix(u_iridescenceThicknessMinimum, u_iridescenceThicknessMaximum, texture(u_iridescenceThicknessTexture, a3dTexturedPbrWrapUv(iridescenceThicknessUv, u_iridescenceThicknessTextureWrap)).g), step(0.5, u_iridescenceThicknessTextureEnabled));
2990
+ #endif
3002
2991
  #endif
3003
2992
  vec3 base = a3dApplyAdvancedPbrLobes(
3004
2993
  texturedBase.rgb,
@@ -3018,13 +3007,14 @@ void main() {
3018
3007
  sheenRoughness,
3019
3008
  anisotropy,
3020
3009
  anisotropyRotation,
3021
- iridescence,
3010
+ 0.0,
3022
3011
  u_iridescenceIor,
3023
3012
  iridescenceThickness,
3024
3013
  iridescenceThickness,
3025
3014
  u_dispersion
3026
3015
  );
3027
3016
  vec3 viewDirection = normalize(u_cameraPosition - v_worldPosition);
3017
+ vec3 iridescenceSubstrateF0 = mix(vec3(pow((u_ior - 1.0) / max(u_ior + 1.0, 0.0001), 2.0)) * specularColor * specular, texturedBase.rgb, metallic);
3028
3018
  float materialRedPaintGate = smoothstep(0.28, 0.72, texturedBase.r)
3029
3019
  * (1.0 - smoothstep(0.05, 0.18, max(texturedBase.g, texturedBase.b)))
3030
3020
  * smoothstep(0.015, 0.07, u_materialEnvironmentSpecularScale);
@@ -3059,7 +3049,10 @@ void main() {
3059
3049
  iridescence,
3060
3050
  u_iridescenceIor,
3061
3051
  iridescenceThickness,
3062
- iridescenceThickness
3052
+ iridescenceThickness,
3053
+ iridescenceSubstrateF0,
3054
+ mappedNormal,
3055
+ a3dTexturedPbrEnvironmentSpecularInput(mappedNormal, viewDirection, roughness)
3063
3056
  );
3064
3057
  float texturedTransmissionAmount = clamp(max(transmission, diffuseTransmission), 0.0, 1.0);
3065
3058
  float texturedSampledEnvironmentWeight = step(0.0001, u_environmentMapTextureEnabled * u_environmentMapTextureIntensity);
@@ -3092,10 +3085,6 @@ void main() {
3092
3085
  vec2 backdropOffset = normalize(texturedRefractionDirection.xy + vec2(0.0001)) * u_transmissionBackdropRefractionScale * mix(1.25, 0.55, roughness) * clamp(u_ior - 1.0, 0.0, 2.5);
3093
3086
  float backdropLod = clamp((roughness + volumeThickness * 0.08) * max(u_transmissionBackdropMipCount - 1.0, 0.0), 0.0, max(u_transmissionBackdropMipCount - 1.0, 0.0));
3094
3087
  vec3 backdropRadiance = a3dTexturedPbrDecodeSrgb(textureLod(u_transmissionBackdropTexture, clamp(backdropUv + backdropOffset, vec2(0.001), vec2(0.999)), backdropLod).rgb);
3095
- // Scene-color refraction travels through the same participating volume as
3096
- // environment refraction. Omitting texturedVolumeTint here made thickness,
3097
- // attenuationDistance, and attenuationColor byte-identical whenever the
3098
- // renderer-owned backdrop path was active.
3099
3088
  texturedRefractionRadiance = mix(
3100
3089
  texturedRefractionRadiance,
3101
3090
  backdropRadiance * texturedVolumeTint * texturedTransmissionAmount * mix(1.0, 1.22, texturedBackdropWeight),
@@ -3148,8 +3137,9 @@ void main() {
3148
3137
  vec3 toLight = positionRange.xyz - v_worldPosition;
3149
3138
  float distanceToLight = length(toLight);
3150
3139
  lightDirection = distanceToLight > 0.0001 ? toLight / distanceToLight : -directionKind.xyz;
3151
- float range = max(positionRange.w, 0.0001);
3152
- float rangeFalloff = clamp(1.0 - pow(distanceToLight / range, 4.0), 0.0, 1.0);
3140
+ // range <= 0 means infinite (physical descriptors, PRD-02 §6.3): no
3141
+ // range window, decay-only attenuation. Legacy ranges are always > 0.
3142
+ float rangeFalloff = positionRange.w <= 0.0 ? 1.0 : clamp(1.0 - pow(distanceToLight / max(positionRange.w, 0.0001), 4.0), 0.0, 1.0);
3153
3143
  rangeFalloff *= rangeFalloff;
3154
3144
  attenuation = rangeFalloff / max(distanceToLight * distanceToLight, 1.0);
3155
3145
  }
@@ -3190,7 +3180,10 @@ void main() {
3190
3180
  iridescence,
3191
3181
  u_iridescenceIor,
3192
3182
  iridescenceThickness,
3193
- iridescenceThickness
3183
+ iridescenceThickness,
3184
+ iridescenceSubstrateF0,
3185
+ mappedNormal,
3186
+ roughness
3194
3187
  ) * directExtensionSpecularScale;
3195
3188
  }
3196
3189
  float alpha = texturedBase.a;
@@ -3225,28 +3218,18 @@ out float v_lineDistance;
3225
3218
  out float v_halfWidthPixels;
3226
3219
 
3227
3220
  void main() {
3228
- // a_position holds this vertex's anchor endpoint in world space. It is referenced
3229
- // with zero weight so the attribute is not optimized out of the linked program:
3230
- // bounds computation, frustum culling, and the material's attribute contract all
3231
- // depend on the geometry declaring a real position stream.
3232
3221
  vec3 anchorWorld = a_position;
3233
3222
  vec4 clipStart = u_modelViewProjection * vec4(a_lineStart + anchorWorld * 0.0, 1.0);
3234
3223
  vec4 clipEnd = u_modelViewProjection * vec4(a_lineEnd, 1.0);
3235
3224
 
3236
- // Guard against a zero or negative w: a vertex behind the eye would otherwise
3237
- // produce a wildly wrong NDC position and a smeared quad.
3238
3225
  float wStart = max(abs(clipStart.w), 1e-5);
3239
3226
  float wEnd = max(abs(clipEnd.w), 1e-5);
3240
3227
 
3241
- // Project to device pixels. Expansion happens here, so the resulting width is a
3242
- // pixel quantity and is therefore independent of depth, FOV, and viewport size.
3243
3228
  vec2 pixelStart = (clipStart.xy / wStart) * 0.5 * u_lineResolution;
3244
3229
  vec2 pixelEnd = (clipEnd.xy / wEnd) * 0.5 * u_lineResolution;
3245
3230
 
3246
3231
  vec2 pixelDirection = pixelEnd - pixelStart;
3247
3232
  float pixelLength = length(pixelDirection);
3248
- // A segment that projects to a single pixel has no screen direction; pick an
3249
- // arbitrary axis so the cap still renders instead of collapsing.
3250
3233
  vec2 direction = pixelLength > 1e-4 ? pixelDirection / pixelLength : vec2(1.0, 0.0);
3251
3234
  vec2 normal = vec2(-direction.y, direction.x);
3252
3235
 
@@ -3255,14 +3238,10 @@ void main() {
3255
3238
 
3256
3239
  float along = a_lineCorner.y;
3257
3240
  vec2 anchorPixel = mix(pixelStart, pixelEnd, along);
3258
- // Square caps push the quad outward along the segment direction so the stroke
3259
- // extends half a width past each endpoint, matching Three.js LineMaterial behaviour.
3260
3241
  float capExtension = u_lineSquareCaps > 0.5 ? halfWidth : 0.0;
3261
3242
  vec2 capOffset = direction * (along > 0.5 ? capExtension : -capExtension);
3262
3243
  vec2 pixelPosition = anchorPixel + normal * (a_lineCorner.x * halfWidth) + capOffset;
3263
3244
 
3264
- // Back to clip space, preserving the anchor endpoint's own depth so the line
3265
- // depth-sorts against the rest of the scene correctly.
3266
3245
  vec4 anchorClip = along > 0.5 ? clipEnd : clipStart;
3267
3246
  float anchorW = along > 0.5 ? wEnd : wStart;
3268
3247
  vec2 ndc = pixelPosition / (0.5 * u_lineResolution);
@@ -3291,12 +3270,9 @@ void main() {
3291
3270
  if (u_lineDashSize > 0.0) {
3292
3271
  float period = u_lineDashSize + max(u_lineGapSize, 0.0);
3293
3272
  float phase = mod(v_lineDistance + u_lineDashOffset, period);
3294
- // Discard the gap portion of each dash period.
3295
3273
  if (phase > u_lineDashSize) discard;
3296
3274
  }
3297
3275
  if (u_lineRoundCaps > 0.5) {
3298
- // Round caps: reject fragments outside the unit half-disc at each end. The
3299
- // corner's x component already spans -1..1 across the stroke width.
3300
3276
  float acrossStroke = v_lineCorner.x;
3301
3277
  if (abs(acrossStroke) > 1.0) discard;
3302
3278
  }