@meimu/mutracer 0.1.5 → 0.2.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 (526) hide show
  1. package/LICENSES/Classroom-CC0.txt +121 -0
  2. package/README.md +7 -7
  3. package/THIRD_PARTY_NOTICES.md +13 -8
  4. package/dist/assets/bvh.worker.js +1 -1
  5. package/dist/mutracer.umd.js +10407 -8353
  6. package/docs/api.md +200 -10
  7. package/docs/denoising.md +30 -15
  8. package/docs/materials.md +1 -1
  9. package/docs/performance.md +5 -2
  10. package/docs/progressive-rendering.md +32 -1
  11. package/docs/threejs.md +14 -5
  12. package/docs/updates.md +44 -2
  13. package/docs/viewer.md +11 -6
  14. package/lib/Display.d.ts +13 -2
  15. package/lib/Display.js +27 -6
  16. package/lib/Display.js.map +1 -1
  17. package/lib/Engine.d.ts +2 -0
  18. package/lib/Engine.js +52 -25
  19. package/lib/Engine.js.map +1 -1
  20. package/lib/Render.d.ts +44 -9
  21. package/lib/Render.js +115 -17
  22. package/lib/Render.js.map +1 -1
  23. package/lib/RenderLoop.d.ts +7 -1
  24. package/lib/RenderLoop.js +94 -13
  25. package/lib/RenderLoop.js.map +1 -1
  26. package/lib/main.d.ts +6 -3
  27. package/lib/main.js +1 -0
  28. package/lib/main.js.map +1 -1
  29. package/lib/math/access.d.ts +4 -0
  30. package/lib/math/access.js +10 -0
  31. package/lib/math/access.js.map +1 -0
  32. package/lib/math/mat3.d.ts +4 -0
  33. package/lib/math/mat3.js +54 -0
  34. package/lib/math/mat3.js.map +1 -0
  35. package/lib/math/mat4.d.ts +19 -0
  36. package/lib/math/mat4.js +413 -0
  37. package/lib/math/mat4.js.map +1 -0
  38. package/lib/math/storage.d.ts +6 -0
  39. package/lib/math/storage.js +22 -0
  40. package/lib/math/storage.js.map +1 -0
  41. package/lib/math/types.d.ts +3 -0
  42. package/lib/math/types.js +2 -0
  43. package/lib/math/types.js.map +1 -0
  44. package/lib/math/vec2.d.ts +13 -0
  45. package/lib/math/vec2.js +52 -0
  46. package/lib/math/vec2.js.map +1 -0
  47. package/lib/math/vec3.d.ts +23 -0
  48. package/lib/math/vec3.js +139 -0
  49. package/lib/math/vec3.js.map +1 -0
  50. package/lib/math.d.ts +5 -17
  51. package/lib/math.js +5 -55
  52. package/lib/math.js.map +1 -1
  53. package/lib/oidn.d.ts +1 -1
  54. package/lib/oidn.js +4 -2
  55. package/lib/oidn.js.map +1 -1
  56. package/lib/oidnBundledWeights.cdn.d.ts +2 -2
  57. package/lib/renderer/AovPrimitiveCache.d.ts +10 -0
  58. package/lib/renderer/AovPrimitiveCache.js +48 -0
  59. package/lib/renderer/AovPrimitiveCache.js.map +1 -0
  60. package/lib/renderer/Box3.d.ts +5 -0
  61. package/lib/renderer/Box3.js +9 -0
  62. package/lib/renderer/Box3.js.map +1 -0
  63. package/lib/renderer/GPUTraceQueue.d.ts +10 -0
  64. package/lib/renderer/GPUTraceQueue.js +31 -0
  65. package/lib/renderer/GPUTraceQueue.js.map +1 -0
  66. package/lib/renderer/MaterialData.d.ts +15 -0
  67. package/lib/renderer/MaterialData.js +61 -0
  68. package/lib/renderer/MaterialData.js.map +1 -0
  69. package/lib/renderer/MaterialTable.d.ts +11 -98
  70. package/lib/renderer/MaterialTable.js +34 -412
  71. package/lib/renderer/MaterialTable.js.map +1 -1
  72. package/lib/renderer/RenderingPipeline.d.ts +32 -13
  73. package/lib/renderer/RenderingPipeline.js +1 -17
  74. package/lib/renderer/RenderingPipeline.js.map +1 -1
  75. package/lib/renderer/TileRender.d.ts +0 -1
  76. package/lib/renderer/TileRender.js +14 -1
  77. package/lib/renderer/TileRender.js.map +1 -1
  78. package/lib/renderer/WGPUAov.d.ts +39 -0
  79. package/lib/renderer/WGPUAov.js +239 -0
  80. package/lib/renderer/WGPUAov.js.map +1 -0
  81. package/lib/renderer/WGPUBindlessMaterialData.d.ts +17 -0
  82. package/lib/renderer/WGPUBindlessMaterialData.js +48 -0
  83. package/lib/renderer/WGPUBindlessMaterialData.js.map +1 -0
  84. package/lib/renderer/WGPUBindlessTextures.d.ts +47 -0
  85. package/lib/renderer/WGPUBindlessTextures.js +180 -0
  86. package/lib/renderer/WGPUBindlessTextures.js.map +1 -0
  87. package/lib/renderer/WGPUBloomPass.js +17 -97
  88. package/lib/renderer/WGPUBloomPass.js.map +1 -1
  89. package/lib/renderer/WGPUComputePass.d.ts +1 -1
  90. package/lib/renderer/WGPUComputePass.js.map +1 -1
  91. package/lib/renderer/WGPUEnvMapDistribution.d.ts +12 -0
  92. package/lib/renderer/WGPUEnvMapDistribution.js +150 -0
  93. package/lib/renderer/WGPUEnvMapDistribution.js.map +1 -0
  94. package/lib/renderer/WGPUFullQuadPass.js +10 -9
  95. package/lib/renderer/WGPUFullQuadPass.js.map +1 -1
  96. package/lib/renderer/WGPUJNLMDenoiser.d.ts +1 -20
  97. package/lib/renderer/WGPUJNLMDenoiser.js +4 -267
  98. package/lib/renderer/WGPUJNLMDenoiser.js.map +1 -1
  99. package/lib/renderer/WGPURayTraceOutput.js +26 -17
  100. package/lib/renderer/WGPURayTraceOutput.js.map +1 -1
  101. package/lib/renderer/WGPURayTracePass.d.ts +36 -40
  102. package/lib/renderer/WGPURayTracePass.js +399 -550
  103. package/lib/renderer/WGPURayTracePass.js.map +1 -1
  104. package/lib/renderer/WGPURenderingPipeline.d.ts +5 -3
  105. package/lib/renderer/WGPURenderingPipeline.js +239 -60
  106. package/lib/renderer/WGPURenderingPipeline.js.map +1 -1
  107. package/lib/renderer/WGPUShaderCache.d.ts +2 -2
  108. package/lib/renderer/WGPUShaderCache.js +10 -5
  109. package/lib/renderer/WGPUShaderCache.js.map +1 -1
  110. package/lib/renderer/WGPUShaderCapabilities.d.ts +10 -0
  111. package/lib/renderer/WGPUShaderCapabilities.js +54 -0
  112. package/lib/renderer/WGPUShaderCapabilities.js.map +1 -0
  113. package/lib/renderer/WGPUSkyBaker.d.ts +13 -0
  114. package/lib/renderer/WGPUSkyBaker.js +85 -0
  115. package/lib/renderer/WGPUSkyBaker.js.map +1 -0
  116. package/lib/renderer/WebGLAov.d.ts +41 -0
  117. package/lib/renderer/WebGLAov.js +106 -0
  118. package/lib/renderer/WebGLAov.js.map +1 -0
  119. package/lib/renderer/WebGLFullQuadPass.d.ts +5 -3
  120. package/lib/renderer/WebGLFullQuadPass.js +18 -2
  121. package/lib/renderer/WebGLFullQuadPass.js.map +1 -1
  122. package/lib/renderer/WebGLJNLMDenoiser.d.ts +1 -1
  123. package/lib/renderer/WebGLJNLMDenoiser.js +83 -74
  124. package/lib/renderer/WebGLJNLMDenoiser.js.map +1 -1
  125. package/lib/renderer/WebGLRayTraceOutputPass.js +7 -4
  126. package/lib/renderer/WebGLRayTraceOutputPass.js.map +1 -1
  127. package/lib/renderer/WebGLRayTracePass.d.ts +12 -2
  128. package/lib/renderer/WebGLRayTracePass.js +82 -7
  129. package/lib/renderer/WebGLRayTracePass.js.map +1 -1
  130. package/lib/renderer/WebGLRenderingPipeline.js +116 -8
  131. package/lib/renderer/WebGLRenderingPipeline.js.map +1 -1
  132. package/lib/renderer/WebGLSkyBaker.d.ts +39 -0
  133. package/lib/renderer/WebGLSkyBaker.js +422 -0
  134. package/lib/renderer/WebGLSkyBaker.js.map +1 -0
  135. package/lib/renderer/WebGLSkySource.d.ts +9 -0
  136. package/lib/renderer/WebGLSkySource.js +28 -0
  137. package/lib/renderer/WebGLSkySource.js.map +1 -0
  138. package/lib/renderer/accumulationTarget.d.ts +5 -0
  139. package/lib/renderer/accumulationTarget.js.map +1 -1
  140. package/lib/renderer/aov.d.ts +42 -0
  141. package/lib/renderer/aov.js +50 -0
  142. package/lib/renderer/aov.js.map +1 -0
  143. package/lib/renderer/aovDisplay.d.ts +14 -0
  144. package/lib/renderer/aovDisplay.js +32 -0
  145. package/lib/renderer/aovDisplay.js.map +1 -0
  146. package/lib/renderer/aovScene.d.ts +21 -0
  147. package/lib/renderer/aovScene.js +139 -0
  148. package/lib/renderer/aovScene.js.map +1 -0
  149. package/lib/renderer/binnedSahBvh.js +2 -1
  150. package/lib/renderer/binnedSahBvh.js.map +1 -1
  151. package/lib/renderer/bvhAccel.d.ts +20 -10
  152. package/lib/renderer/bvhAccel.js +168 -58
  153. package/lib/renderer/bvhAccel.js.map +1 -1
  154. package/lib/renderer/bvhWorkerBuild.d.ts +1 -0
  155. package/lib/renderer/cameraSnapshot.js +2 -1
  156. package/lib/renderer/cameraSnapshot.js.map +1 -1
  157. package/lib/renderer/cameraUniform.d.ts +2 -0
  158. package/lib/renderer/cameraUniform.js +12 -0
  159. package/lib/renderer/cameraUniform.js.map +1 -0
  160. package/lib/renderer/committedScene.js +4 -0
  161. package/lib/renderer/committedScene.js.map +1 -1
  162. package/lib/renderer/denoiser.d.ts +3 -11
  163. package/lib/renderer/denoiser.js.map +1 -1
  164. package/lib/renderer/depthQuery.js +4 -1
  165. package/lib/renderer/depthQuery.js.map +1 -1
  166. package/lib/renderer/displacementPreparation.d.ts +11 -0
  167. package/lib/renderer/displacementPreparation.js +351 -0
  168. package/lib/renderer/displacementPreparation.js.map +1 -0
  169. package/lib/renderer/displacementRange.d.ts +1 -0
  170. package/lib/renderer/displacementRange.js +9 -0
  171. package/lib/renderer/displacementRange.js.map +1 -0
  172. package/lib/renderer/displayParityDiagnostics.d.ts +11 -0
  173. package/lib/renderer/displayParityDiagnostics.js +2 -0
  174. package/lib/renderer/displayParityDiagnostics.js.map +1 -0
  175. package/lib/renderer/envMapCreation.d.ts +9 -8
  176. package/lib/renderer/envMapCreation.js +36 -12
  177. package/lib/renderer/envMapCreation.js.map +1 -1
  178. package/lib/renderer/envMapDistribution.d.ts +12 -2
  179. package/lib/renderer/envMapDistribution.js +43 -34
  180. package/lib/renderer/envMapDistribution.js.map +1 -1
  181. package/lib/renderer/geometryBvhBounds.d.ts +4 -0
  182. package/lib/renderer/geometryBvhBounds.js +82 -0
  183. package/lib/renderer/geometryBvhBounds.js.map +1 -0
  184. package/lib/renderer/geometryUpdateState.d.ts +32 -0
  185. package/lib/renderer/geometryUpdateState.js +2 -0
  186. package/lib/renderer/geometryUpdateState.js.map +1 -0
  187. package/lib/renderer/geometryUpdates.d.ts +17 -9
  188. package/lib/renderer/geometryUpdates.js +92 -33
  189. package/lib/renderer/geometryUpdates.js.map +1 -1
  190. package/lib/renderer/glsl/aovDisplay.frag.d.ts +3 -0
  191. package/lib/renderer/glsl/aovDisplay.frag.js +54 -0
  192. package/lib/renderer/glsl/aovDisplay.frag.js.map +1 -0
  193. package/lib/renderer/glsl/aovReflectance.glsl.d.ts +2 -0
  194. package/lib/renderer/glsl/aovReflectance.glsl.js +87 -0
  195. package/lib/renderer/glsl/aovReflectance.glsl.js.map +1 -0
  196. package/lib/renderer/glsl/aovReflectanceSamples.glsl.d.ts +2 -0
  197. package/lib/renderer/glsl/aovReflectanceSamples.glsl.js +135 -0
  198. package/lib/renderer/glsl/aovReflectanceSamples.glsl.js.map +1 -0
  199. package/lib/renderer/glsl/aovTrace.frag.d.ts +2 -0
  200. package/lib/renderer/glsl/aovTrace.frag.js +121 -0
  201. package/lib/renderer/glsl/aovTrace.frag.js.map +1 -0
  202. package/lib/renderer/glsl/chunks/cameraRay.glsl.js +12 -12
  203. package/lib/renderer/glsl/chunks/envMap.glsl.js +80 -74
  204. package/lib/renderer/glsl/chunks/envMap.glsl.js.map +1 -1
  205. package/lib/renderer/glsl/chunks/intersect.glsl.js +429 -429
  206. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js +144 -144
  207. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js.map +1 -1
  208. package/lib/renderer/glsl/chunks/openPbrBsdf.glsl.js +801 -801
  209. package/lib/renderer/glsl/chunks/rand.glsl.js +3 -3
  210. package/lib/renderer/glsl/chunks/random.glsl.js +6 -6
  211. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js +49 -49
  212. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js.map +1 -1
  213. package/lib/renderer/glsl/chunks/sampleLight.glsl.js +80 -80
  214. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js +102 -102
  215. package/lib/renderer/glsl/chunks/sampleShadowCatcher.glsl.js +20 -17
  216. package/lib/renderer/glsl/chunks/sampleShadowCatcher.glsl.js.map +1 -1
  217. package/lib/renderer/glsl/chunks/sampling.glsl.js +93 -93
  218. package/lib/renderer/glsl/chunks/sobol.glsl.js +79 -79
  219. package/lib/renderer/glsl/chunks/textureLinear.glsl.js +5 -5
  220. package/lib/renderer/glsl/chunks/uvProjection.glsl.js +12 -12
  221. package/lib/renderer/glsl/chunks/uvProjection.glsl.js.map +1 -1
  222. package/lib/renderer/glsl/depthQuery.frag.js +7 -7
  223. package/lib/renderer/glsl/normalizeRayTraceOutput.frag.js +17 -9
  224. package/lib/renderer/glsl/normalizeRayTraceOutput.frag.js.map +1 -1
  225. package/lib/renderer/glsl/rayTrace.frag.js +191 -191
  226. package/lib/renderer/glsl/shadowCatcher.frag.js +25 -20
  227. package/lib/renderer/glsl/shadowCatcher.frag.js.map +1 -1
  228. package/lib/renderer/glsl/webglPipeline.frag.js +65 -60
  229. package/lib/renderer/glsl/webglPipeline.frag.js.map +1 -1
  230. package/lib/renderer/lightConstants.d.ts +10 -0
  231. package/lib/renderer/lightConstants.js +11 -0
  232. package/lib/renderer/lightConstants.js.map +1 -0
  233. package/lib/renderer/lightCore.d.ts +12 -0
  234. package/lib/renderer/lightCore.js +13 -0
  235. package/lib/renderer/lightCore.js.map +1 -0
  236. package/lib/renderer/lightSampling.d.ts +20 -17
  237. package/lib/renderer/lightSampling.js +123 -56
  238. package/lib/renderer/lightSampling.js.map +1 -1
  239. package/lib/renderer/lightsData.d.ts +21 -0
  240. package/lib/renderer/lightsData.js +192 -0
  241. package/lib/renderer/lightsData.js.map +1 -0
  242. package/lib/renderer/lightsUtil.d.ts +3 -26
  243. package/lib/renderer/lightsUtil.js +3 -153
  244. package/lib/renderer/lightsUtil.js.map +1 -1
  245. package/lib/renderer/materialBufferData.d.ts +70 -0
  246. package/lib/renderer/materialBufferData.js +2 -0
  247. package/lib/renderer/materialBufferData.js.map +1 -0
  248. package/lib/renderer/materialConstants.d.ts +11 -0
  249. package/lib/renderer/materialConstants.js +11 -0
  250. package/lib/renderer/materialConstants.js.map +1 -1
  251. package/lib/renderer/materialCore.d.ts +8 -0
  252. package/lib/renderer/materialCore.js +9 -0
  253. package/lib/renderer/materialCore.js.map +1 -0
  254. package/lib/renderer/materialEmission.d.ts +2 -2
  255. package/lib/renderer/materialEmission.js +3 -3
  256. package/lib/renderer/materialEmission.js.map +1 -1
  257. package/lib/renderer/materialLayout.d.ts +2 -101
  258. package/lib/renderer/materialLayout.js +110 -172
  259. package/lib/renderer/materialLayout.js.map +1 -1
  260. package/lib/renderer/materialLayoutSchema.d.ts +26 -0
  261. package/lib/renderer/materialLayoutSchema.js +172 -0
  262. package/lib/renderer/materialLayoutSchema.js.map +1 -0
  263. package/lib/renderer/materialParams.d.ts +69 -0
  264. package/lib/renderer/materialParams.js +272 -0
  265. package/lib/renderer/materialParams.js.map +1 -0
  266. package/lib/renderer/materialTextureSlots.d.ts +14 -324
  267. package/lib/renderer/materialTextureSlots.js +21 -8
  268. package/lib/renderer/materialTextureSlots.js.map +1 -1
  269. package/lib/renderer/materialTextures.d.ts +6 -0
  270. package/lib/renderer/{texturesFromMaterials.js → materialTextures.js} +1 -2
  271. package/lib/renderer/materialTextures.js.map +1 -0
  272. package/lib/renderer/mergeMeshesToGeometry.js +6 -147
  273. package/lib/renderer/mergeMeshesToGeometry.js.map +1 -1
  274. package/lib/renderer/meshInstances.d.ts +4 -21
  275. package/lib/renderer/meshInstances.js +10 -56
  276. package/lib/renderer/meshInstances.js.map +1 -1
  277. package/lib/renderer/oidnNetwork.d.ts +2 -2
  278. package/lib/renderer/oidnNetwork.js +1 -1
  279. package/lib/renderer/oidnNetwork.js.map +1 -1
  280. package/lib/renderer/openPbrEnergyLut.js +850 -846
  281. package/lib/renderer/openPbrEnergyLut.js.map +1 -1
  282. package/lib/renderer/ownedDenoiser.d.ts +9 -0
  283. package/lib/renderer/ownedDenoiser.js +2 -0
  284. package/lib/renderer/ownedDenoiser.js.map +1 -0
  285. package/lib/renderer/packedMeshInstances.d.ts +23 -0
  286. package/lib/renderer/packedMeshInstances.js +80 -0
  287. package/lib/renderer/packedMeshInstances.js.map +1 -0
  288. package/lib/renderer/prepareMeshBVH.d.ts +12 -47
  289. package/lib/renderer/prepareMeshBVH.js +21 -642
  290. package/lib/renderer/prepareMeshBVH.js.map +1 -1
  291. package/lib/renderer/proceduralEnvironmentPower.d.ts +3 -0
  292. package/lib/renderer/proceduralEnvironmentPower.js +8 -0
  293. package/lib/renderer/proceduralEnvironmentPower.js.map +1 -0
  294. package/lib/renderer/progressiveScheduler.d.ts +1 -0
  295. package/lib/renderer/progressiveScheduler.js +3 -0
  296. package/lib/renderer/progressiveScheduler.js.map +1 -1
  297. package/lib/renderer/renderPipeline.d.ts +3 -1
  298. package/lib/renderer/renderPipeline.js.map +1 -1
  299. package/lib/renderer/renderingLimits.d.ts +9 -0
  300. package/lib/renderer/renderingLimits.js +18 -0
  301. package/lib/renderer/renderingLimits.js.map +1 -0
  302. package/lib/renderer/sceneAssembly.d.ts +73 -0
  303. package/lib/renderer/sceneAssembly.js +109 -0
  304. package/lib/renderer/sceneAssembly.js.map +1 -0
  305. package/lib/renderer/sceneChangeCore.d.ts +39 -0
  306. package/lib/renderer/sceneChangeCore.js +307 -0
  307. package/lib/renderer/sceneChangeCore.js.map +1 -0
  308. package/lib/renderer/sceneChangeDetector.d.ts +3 -6
  309. package/lib/renderer/sceneChangeDetector.js +24 -150
  310. package/lib/renderer/sceneChangeDetector.js.map +1 -1
  311. package/lib/renderer/sceneLayoutSchema.d.ts +118 -0
  312. package/lib/renderer/sceneLayoutSchema.js +111 -0
  313. package/lib/renderer/sceneLayoutSchema.js.map +1 -0
  314. package/lib/renderer/sceneLightChanges.d.ts +3 -3
  315. package/lib/renderer/sceneLightChanges.js.map +1 -1
  316. package/lib/renderer/scenePreparation.d.ts +55 -0
  317. package/lib/renderer/scenePreparation.js +360 -0
  318. package/lib/renderer/scenePreparation.js.map +1 -0
  319. package/lib/renderer/scratchSampling.js +18 -18
  320. package/lib/renderer/scratchSampling.js.map +1 -1
  321. package/lib/renderer/shader.d.ts +2 -0
  322. package/lib/renderer/shader.js +2 -0
  323. package/lib/renderer/shader.js.map +1 -1
  324. package/lib/renderer/shaderCapabilities.d.ts +23 -0
  325. package/lib/renderer/shaderCapabilities.js +55 -0
  326. package/lib/renderer/shaderCapabilities.js.map +1 -0
  327. package/lib/renderer/shaderCapacity.d.ts +2 -0
  328. package/lib/renderer/shaderCapacity.js +5 -0
  329. package/lib/renderer/shaderCapacity.js.map +1 -0
  330. package/lib/renderer/skyModel.d.ts +9 -0
  331. package/lib/renderer/skyModel.js +10 -0
  332. package/lib/renderer/skyModel.js.map +1 -0
  333. package/lib/renderer/textureAtlas.d.ts +60 -0
  334. package/lib/renderer/textureAtlas.js +145 -0
  335. package/lib/renderer/textureAtlas.js.map +1 -0
  336. package/lib/renderer/textureAtlasPixels.d.ts +7 -0
  337. package/lib/renderer/textureAtlasPixels.js +68 -0
  338. package/lib/renderer/textureAtlasPixels.js.map +1 -0
  339. package/lib/renderer/util.d.ts +1 -1
  340. package/lib/renderer/util.js.map +1 -1
  341. package/lib/renderer/webgl.d.ts +9 -2
  342. package/lib/renderer/webgl.js +54 -9
  343. package/lib/renderer/webgl.js.map +1 -1
  344. package/lib/renderer/wgpuBindless.d.ts +26 -0
  345. package/lib/renderer/wgpuBindless.js +95 -0
  346. package/lib/renderer/wgpuBindless.js.map +1 -0
  347. package/lib/renderer/wgpuBindlessSource.d.ts +2 -0
  348. package/lib/renderer/wgpuBindlessSource.js +51 -0
  349. package/lib/renderer/wgpuBindlessSource.js.map +1 -0
  350. package/lib/renderer/wgpuMaterialConstants.d.ts +4 -0
  351. package/lib/renderer/wgpuMaterialConstants.js +52 -0
  352. package/lib/renderer/wgpuMaterialConstants.js.map +1 -0
  353. package/lib/renderer/wgpuSceneUniform.d.ts +42 -0
  354. package/lib/renderer/wgpuSceneUniform.js +125 -0
  355. package/lib/renderer/wgpuSceneUniform.js.map +1 -0
  356. package/lib/renderer/wgpuShaderSource.d.ts +15 -0
  357. package/lib/renderer/wgpuShaderSource.js +31 -0
  358. package/lib/renderer/wgpuShaderSource.js.map +1 -0
  359. package/lib/renderer/wgsl/aovDisplay.wgsl.d.ts +1 -0
  360. package/lib/renderer/wgsl/aovDisplay.wgsl.js +70 -0
  361. package/lib/renderer/wgsl/aovDisplay.wgsl.js.map +1 -0
  362. package/lib/renderer/wgsl/aovReflectance.wgsl.d.ts +2 -0
  363. package/lib/renderer/wgsl/aovReflectance.wgsl.js +98 -0
  364. package/lib/renderer/wgsl/aovReflectance.wgsl.js.map +1 -0
  365. package/lib/renderer/wgsl/aovReflectanceSamples.wgsl.d.ts +2 -0
  366. package/lib/renderer/wgsl/aovReflectanceSamples.wgsl.js +135 -0
  367. package/lib/renderer/wgsl/aovReflectanceSamples.wgsl.js.map +1 -0
  368. package/lib/renderer/wgsl/aovResolve.wgsl.d.ts +5 -0
  369. package/lib/renderer/wgsl/aovResolve.wgsl.js +38 -0
  370. package/lib/renderer/wgsl/aovResolve.wgsl.js.map +1 -0
  371. package/lib/renderer/wgsl/aovSnapshot.wgsl.d.ts +4 -0
  372. package/lib/renderer/wgsl/aovSnapshot.wgsl.js +21 -0
  373. package/lib/renderer/wgsl/aovSnapshot.wgsl.js.map +1 -0
  374. package/lib/renderer/wgsl/aovTrace.wgsl.d.ts +2 -0
  375. package/lib/renderer/wgsl/aovTrace.wgsl.js +115 -0
  376. package/lib/renderer/wgsl/aovTrace.wgsl.js.map +1 -0
  377. package/lib/renderer/wgsl/bloom.wgsl.d.ts +13 -0
  378. package/lib/renderer/wgsl/bloom.wgsl.js +92 -0
  379. package/lib/renderer/wgsl/bloom.wgsl.js.map +1 -0
  380. package/lib/renderer/wgsl/chunks/common.wgsl.js +4 -4
  381. package/lib/renderer/wgsl/chunks/envMap.wgsl.d.ts +1 -1
  382. package/lib/renderer/wgsl/chunks/envMap.wgsl.js +43 -37
  383. package/lib/renderer/wgsl/chunks/envMap.wgsl.js.map +1 -1
  384. package/lib/renderer/wgsl/chunks/intersect.wgsl.d.ts +13 -1
  385. package/lib/renderer/wgsl/chunks/intersect.wgsl.js +742 -705
  386. package/lib/renderer/wgsl/chunks/intersect.wgsl.js.map +1 -1
  387. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.js +16 -16
  388. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.js.map +1 -1
  389. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.d.ts +3 -1
  390. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js +84 -82
  391. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js.map +1 -1
  392. package/lib/renderer/wgsl/chunks/openPbrBsdf.wgsl.js +855 -857
  393. package/lib/renderer/wgsl/chunks/openPbrBsdf.wgsl.js.map +1 -1
  394. package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js +139 -139
  395. package/lib/renderer/wgsl/chunks/rand.wgsl.js +3 -3
  396. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.d.ts +2 -1
  397. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js +42 -32
  398. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js.map +1 -1
  399. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.d.ts +1 -1
  400. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js +152 -148
  401. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js.map +1 -1
  402. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js +239 -232
  403. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js.map +1 -1
  404. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.d.ts +1 -1
  405. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.js +26 -13
  406. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.js.map +1 -1
  407. package/lib/renderer/wgsl/chunks/sampling.wgsl.js +91 -91
  408. package/lib/renderer/wgsl/chunks/shadowCatcherAccumulation.wgsl.d.ts +1 -1
  409. package/lib/renderer/wgsl/chunks/shadowCatcherAccumulation.wgsl.js +1 -0
  410. package/lib/renderer/wgsl/chunks/shadowCatcherAccumulation.wgsl.js.map +1 -1
  411. package/lib/renderer/wgsl/chunks/sobol.wgsl.js +83 -83
  412. package/lib/renderer/wgsl/chunks/uvProjection.wgsl.js +12 -12
  413. package/lib/renderer/wgsl/chunks/uvProjection.wgsl.js.map +1 -1
  414. package/lib/renderer/wgsl/compose.frag.wgsl.d.ts +8 -3
  415. package/lib/renderer/wgsl/compose.frag.wgsl.js +143 -118
  416. package/lib/renderer/wgsl/compose.frag.wgsl.js.map +1 -1
  417. package/lib/renderer/wgsl/customDenoise.wgsl.js +10 -10
  418. package/lib/renderer/wgsl/depthQuery.wgsl.js +7 -7
  419. package/lib/renderer/wgsl/jnlm.compute.d.ts +25 -0
  420. package/lib/renderer/wgsl/jnlm.compute.js +315 -0
  421. package/lib/renderer/wgsl/jnlm.compute.js.map +1 -0
  422. package/lib/renderer/wgsl/offlineAdaptive.compute.js +28 -28
  423. package/lib/renderer/wgsl/oidnAuxiliary.wgsl.d.ts +1 -0
  424. package/lib/renderer/wgsl/oidnAuxiliary.wgsl.js +17 -0
  425. package/lib/renderer/wgsl/oidnAuxiliary.wgsl.js.map +1 -0
  426. package/lib/renderer/wgsl/proceduralSky.compute.d.ts +1 -0
  427. package/lib/renderer/wgsl/proceduralSky.compute.js +198 -0
  428. package/lib/renderer/wgsl/proceduralSky.compute.js.map +1 -0
  429. package/lib/renderer/wgsl/rayTrace.compute.d.ts +17 -1
  430. package/lib/renderer/wgsl/rayTrace.compute.js +612 -393
  431. package/lib/renderer/wgsl/rayTrace.compute.js.map +1 -1
  432. package/lib/scene/Camera.js +7 -3
  433. package/lib/scene/Camera.js.map +1 -1
  434. package/lib/scene/EnvironmentLight.d.ts +5 -9
  435. package/lib/scene/EnvironmentLight.js +4 -14
  436. package/lib/scene/EnvironmentLight.js.map +1 -1
  437. package/lib/scene/EnvironmentLightState.d.ts +18 -0
  438. package/lib/scene/EnvironmentLightState.js +19 -0
  439. package/lib/scene/EnvironmentLightState.js.map +1 -0
  440. package/lib/scene/Geometry.d.ts +12 -6
  441. package/lib/scene/Geometry.js +37 -13
  442. package/lib/scene/Geometry.js.map +1 -1
  443. package/lib/scene/InstanceState.d.ts +39 -0
  444. package/lib/scene/InstanceState.js +77 -0
  445. package/lib/scene/InstanceState.js.map +1 -0
  446. package/lib/scene/InstancedMesh.d.ts +1 -1
  447. package/lib/scene/InstancedMesh.js +3 -0
  448. package/lib/scene/InstancedMesh.js.map +1 -1
  449. package/lib/scene/MaterialState.d.ts +209 -0
  450. package/lib/scene/MaterialState.js +231 -0
  451. package/lib/scene/MaterialState.js.map +1 -0
  452. package/lib/scene/Mesh.d.ts +4 -6
  453. package/lib/scene/Mesh.js +3 -11
  454. package/lib/scene/Mesh.js.map +1 -1
  455. package/lib/scene/MeshState.d.ts +20 -0
  456. package/lib/scene/MeshState.js +35 -0
  457. package/lib/scene/MeshState.js.map +1 -0
  458. package/lib/scene/OpenPBRMaterial.d.ts +6 -168
  459. package/lib/scene/OpenPBRMaterial.js +5 -223
  460. package/lib/scene/OpenPBRMaterial.js.map +1 -1
  461. package/lib/scene/PixelTexture.d.ts +6 -0
  462. package/lib/scene/PixelTexture.js +10 -0
  463. package/lib/scene/PixelTexture.js.map +1 -0
  464. package/lib/scene/ProceduralSky.d.ts +24 -0
  465. package/lib/scene/ProceduralSky.js +40 -0
  466. package/lib/scene/ProceduralSky.js.map +1 -0
  467. package/lib/scene/RectLight.d.ts +2 -13
  468. package/lib/scene/RectLight.js +3 -21
  469. package/lib/scene/RectLight.js.map +1 -1
  470. package/lib/scene/RectLightState.d.ts +31 -0
  471. package/lib/scene/RectLightState.js +26 -0
  472. package/lib/scene/RectLightState.js.map +1 -0
  473. package/lib/scene/Scene.d.ts +15 -4
  474. package/lib/scene/Scene.js.map +1 -1
  475. package/lib/scene/SceneNode.js +7 -6
  476. package/lib/scene/SceneNode.js.map +1 -1
  477. package/lib/scene/Texture.d.ts +10 -41
  478. package/lib/scene/Texture.js +4 -33
  479. package/lib/scene/Texture.js.map +1 -1
  480. package/lib/scene/TextureState.d.ts +35 -0
  481. package/lib/scene/TextureState.js +35 -0
  482. package/lib/scene/TextureState.js.map +1 -0
  483. package/lib/scene/attributeData.d.ts +4 -0
  484. package/lib/scene/attributeData.js +10 -0
  485. package/lib/scene/attributeData.js.map +1 -0
  486. package/lib/scene/lightState.d.ts +8 -0
  487. package/lib/scene/lightState.js +2 -0
  488. package/lib/scene/lightState.js.map +1 -0
  489. package/lib/scene/openPbrSchema.d.ts +7 -12
  490. package/lib/scene/openPbrSchema.js +273 -28
  491. package/lib/scene/openPbrSchema.js.map +1 -1
  492. package/lib/scene/skyParameters.d.ts +20 -0
  493. package/lib/scene/skyParameters.js +28 -0
  494. package/lib/scene/skyParameters.js.map +1 -0
  495. package/lib/scene/textureData.d.ts +9 -0
  496. package/lib/scene/textureData.js +2 -0
  497. package/lib/scene/textureData.js.map +1 -0
  498. package/lib/scene/texturePixels.d.ts +6 -0
  499. package/lib/scene/texturePixels.js +10 -0
  500. package/lib/scene/texturePixels.js.map +1 -0
  501. package/lib/settings/display.d.ts +33 -0
  502. package/lib/settings/display.js +7 -0
  503. package/lib/settings/display.js.map +1 -1
  504. package/lib/settings/render.d.ts +25 -3
  505. package/lib/settings/render.js +3 -1
  506. package/lib/settings/render.js.map +1 -1
  507. package/lib/tinybvh/tinybvh.wasm +0 -0
  508. package/lib/util/commonGeometry.js +7 -7
  509. package/lib/util/commonGeometry.js.map +1 -1
  510. package/lib/util/fromTHREE.d.ts +4 -1
  511. package/lib/util/fromTHREE.js +18 -5
  512. package/lib/util/fromTHREE.js.map +1 -1
  513. package/lib/util/geometry.js +42 -29
  514. package/lib/util/geometry.js.map +1 -1
  515. package/lib/util/loadRGBE.js +3 -4
  516. package/lib/util/loadRGBE.js.map +1 -1
  517. package/lib/util/studioLighting.d.ts +18 -0
  518. package/lib/util/studioLighting.js +36 -0
  519. package/lib/util/studioLighting.js.map +1 -0
  520. package/lib/version.d.ts +1 -1
  521. package/lib/version.js +1 -1
  522. package/lib/version.js.map +1 -1
  523. package/llms.txt +4 -0
  524. package/package.json +31 -5
  525. package/lib/renderer/texturesFromMaterials.d.ts +0 -6
  526. package/lib/renderer/texturesFromMaterials.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeRayTraceOutput.frag.js","sourceRoot":"","sources":["../../../src/renderer/glsl/normalizeRayTraceOutput.frag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE5D;;GAEG;AACH,MAAM,uBAAuB,GAAG,IAAI,cAAc,CAAC;IACjD,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;IAEvD,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACtC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QAE7C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3C;IAED,IAAI,EAAE,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BT;CACF,CAAC,CAAC;AAEH,eAAe,uBAAuB,CAAC","sourcesContent":["import { FragmentShader, glsl, Shader } from '../shader.js';\n\n/**\n * Normalize\n */\nconst normalizeRayTraceOutput = new FragmentShader({\n name: 'normalizeRayTraceOutput',\n outputs: ['color', 'albedo', 'normal', 'shadowCatcher'],\n\n uniforms: {\n colorTex: Shader.uniform('sampler2D'),\n albedoTex: Shader.uniform('sampler2D'),\n normalTex: Shader.uniform('sampler2D'),\n shadowCatcherTex: Shader.uniform('sampler2D'),\n\n sampleCount: Shader.uniform('float', 1),\n lightScale: Shader.uniform('vec2', [1, 1])\n },\n\n main: glsl`\nvoid main() {\n vec2 uv = lightScale * v_Texcoord;\n vec4 albedoTexel = sample_albedoTex(uv);\n float hit = albedoTexel.a;\n vec4 normalTexel = sample_normalTex(uv);\n // Spectral WebGL rendering submits three additive wavelength passes per\n // sample. Normalize auxiliary guides by their actual contribution count,\n // not the logical sample count, or they saturate before denoising.\n float guideCount = max(normalTexel.a, 1.0);\n vec3 albedo = albedoTexel.rgb / guideCount;\n vec3 normal = normalTexel.rgb / guideCount;\n vec4 shadowCatcher= sample_shadowCatcherTex(uv) / sampleCount;\n vec4 lightTexel = sample_colorTex(uv);\n // vec2 hit = sample_hitTex(uv).rg;\n // average the color by hit count.\n // So the antialised edge color will be correct when having transparent background\n // TODO In some platforms. the output of hit.r is always 0. In this case we use sampleCount instead.\n vec4 light = vec4(lightTexel.rgb / (hit > 0.0 ? hit : sampleCount), lightTexel.a / sampleCount);\n\n // Pixels whose primary rays mostly miss geometry have no normal (alpha 0),\n // as in the WebGPU output.\n out_normal = dot(normal, normal) > 0.1 ? vec4(normal * 0.5 + 0.5, 1.0) : vec4(0.0);\n out_albedo = vec4(albedo, 1.0);\n out_shadowCatcher = shadowCatcher;\n out_color = light;\n}\n `\n});\n\nexport default normalizeRayTraceOutput;\n"]}
1
+ {"version":3,"file":"normalizeRayTraceOutput.frag.js","sourceRoot":"","sources":["../../../src/renderer/glsl/normalizeRayTraceOutput.frag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE5D;;GAEG;AACH,MAAM,uBAAuB,GAAG,IAAI,cAAc,CAAC;IACjD,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;IAEvD,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QACtC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7C,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;QAE9C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3C;IAED,IAAI,EAAE,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCT;CACF,CAAC,CAAC;AAEH,eAAe,uBAAuB,CAAC","sourcesContent":["import { FragmentShader, glsl, Shader } from '../shader.js';\n\n/**\n * Normalize\n */\nconst normalizeRayTraceOutput = new FragmentShader({\n name: 'normalizeRayTraceOutput',\n outputs: ['color', 'albedo', 'normal', 'shadowCatcher'],\n\n uniforms: {\n colorTex: Shader.uniform('sampler2D'),\n albedoTex: Shader.uniform('sampler2D'),\n normalTex: Shader.uniform('sampler2D'),\n shadowCatcherTex: Shader.uniform('sampler2D'),\n catcherMomentsTex: Shader.uniform('sampler2D'),\n\n sampleCount: Shader.uniform('float', 1),\n lightScale: Shader.uniform('vec2', [1, 1])\n },\n\n main: glsl`\nvoid main() {\n vec2 uv = lightScale * v_Texcoord;\n vec4 albedoTexel = sample_albedoTex(uv);\n float hit = albedoTexel.a;\n vec4 normalTexel = sample_normalTex(uv);\n // Spectral WebGL rendering submits three additive wavelength passes per\n // sample. Normalize auxiliary guides by their actual contribution count,\n // not the logical sample count, or they saturate before denoising.\n float guideCount = max(normalTexel.a, 1.0);\n vec3 albedo = albedoTexel.rgb / guideCount;\n vec3 normal = normalTexel.rgb / guideCount;\n vec4 shadowCatcher = sample_shadowCatcherTex(uv);\n // Alpha sums occluded light samples and catcherMoments.w all valid ones.\n // Their ratio is the shadow opacity of catcher samples; the output alpha\n // keeps the visibility convention of non-catcher samples counting as 1.\n float sampleTotal = sample_catcherMomentsTex(uv).w;\n float opacity = sampleTotal > 0.0 ? shadowCatcher.a / sampleTotal : 0.0;\n shadowCatcher /= sampleCount;\n shadowCatcher.a = 1.0 - shadowCatcher.r * opacity;\n vec4 lightTexel = sample_colorTex(uv);\n // vec2 hit = sample_hitTex(uv).rg;\n // average the color by hit count.\n // So the antialised edge color will be correct when having transparent background\n // TODO In some platforms. the output of hit.r is always 0. In this case we use sampleCount instead.\n vec4 light = vec4(lightTexel.rgb / (hit > 0.0 ? hit : sampleCount), lightTexel.a / sampleCount);\n\n // Pixels whose primary rays mostly miss geometry have no normal (alpha 0),\n // as in the WebGPU output.\n out_normal = dot(normal, normal) > 0.1 ? vec4(normal * 0.5 + 0.5, 1.0) : vec4(0.0);\n out_albedo = vec4(albedo, 1.0);\n out_shadowCatcher = shadowCatcher;\n out_color = light;\n}\n `\n});\n\nexport default normalizeRayTraceOutput;\n"]}
@@ -32,7 +32,7 @@ return;
32
32
  // So here the code are injected separately.
33
33
  const bounceCodeOnIntelMac = glsl `
34
34
 
35
- for(int vU = 0; vU < BOUNCES; vU++) {{
35
+ for(int xK = 0; xK < BOUNCES; xK++) {{
36
36
  if (aa.abort) {
37
37
  return vec4(aa.li, aa.alpha);
38
38
  }
@@ -40,10 +40,10 @@ bounce(aa, depth, si, mat, outAux);
40
40
  }}
41
41
  `;
42
42
  const bounceCodeOnOther = glsl `
43
- bool vg = !si.isTransparency;
44
- int qO = min(BOUNCES, bounceLimit);
43
+ bool wY = !si.isTransparency;
44
+ int rT = min(BOUNCES, bounceLimit);
45
45
  for(int idx = 0; idx < min(BOUNCES * 3, ${MAX_PATH_EVENTS}); idx++) {
46
- if (vg && idx > qO) {
46
+ if (wY && idx > rT) {
47
47
  aa.abort = true;
48
48
  }
49
49
  if (aa.abort) {
@@ -93,8 +93,8 @@ ${envMap.main}
93
93
  ${samplingGlsl}
94
94
  ${openPbrBsdfGlsl}
95
95
 
96
- float mv;
97
- float bf;
96
+ float nl;
97
+ float bp;
98
98
 
99
99
  ${sampleLightGlsl}
100
100
  ${sampleMaterialGlsl}
@@ -109,8 +109,8 @@ bool isBlank;
109
109
  bool isShadowCatcher;
110
110
  };
111
111
 
112
- void bounce(inout Path aa, inout int depth, inout ad si, inout J mat, inout RayTraceAuxiliary outAux) {
113
- cF = uint(max(depth, 0));
112
+ void bounce(inout Path aa, inout int depth, inout SurfaceInteraction si, inout OpenPbrResolvedMaterial mat, inout RayTraceAuxiliary outAux) {
113
+ bT = uint(max(depth, 0));
114
114
 
115
115
 
116
116
 
@@ -135,27 +135,27 @@ if (aa.isNextRefraction) {
135
135
 
136
136
 
137
137
 
138
- vec4 bg = cx(aa.ray.o, aa.ray.d);
139
- bg.rgb = ai(bg.rgb, bf);
140
- float cT = aa.scatteringIsDelta ? 1.0
141
- : aG(aa.scatteringPdf,
142
- iB(cY(aa.ray.d)) * envLightSelectionPmf);
143
- aa.li += cT * aa.beta * bg.rgb * bg.a;
138
+ vec4 bg = cG(aa.ray.o, aa.ray.d);
139
+ bg.rgb = aj(bg.rgb, bp);
140
+ float da = aa.scatteringIsDelta ? 1.0
141
+ : aK(aa.scatteringPdf,
142
+ iT(dm(aa.ray.d)) * envLightSelectionPmf);
143
+ aa.li += da * aa.beta * bg.rgb * bg.a;
144
144
  aa.alpha = max(aa.alpha, bg.a);
145
145
  }
146
146
  else {
147
- vec2 tQ = cY(aa.ray.d);
148
- vec3 emission = textureLinear(envMap, tQ).rgb;
149
- emission = ai(emission, bf);
147
+ vec2 vo = dm(aa.ray.d);
148
+ vec3 emission = textureLinear(envMap, vo).rgb;
149
+ emission = aj(emission, bp);
150
150
  aa.li += aa.beta * emission *
151
- aG(
151
+ aK(
152
152
  aa.scatteringPdf,
153
- iB(tQ) * envLightSelectionPmf
153
+ iT(vo) * envLightSelectionPmf
154
154
  );
155
155
  }
156
156
  #else
157
- vec4 bg = cx(aa.ray.o, aa.ray.d);
158
- bg.rgb = ai(bg.rgb, bf);
157
+ vec4 bg = cG(aa.ray.o, aa.ray.d);
158
+ bg.rgb = aj(bg.rgb, bp);
159
159
  aa.li += aa.beta * bg.rgb * bg.a;
160
160
  #endif
161
161
  aa.abort = true;
@@ -165,11 +165,11 @@ return;
165
165
 
166
166
  if (!si.hit) {
167
167
 
168
- vec4 bg = cx(aa.ray.o, aa.ray.d);
168
+ vec4 bg = cG(aa.ray.o, aa.ray.d);
169
169
 
170
170
 
171
171
 
172
- bg.rgb = ai(bg.rgb, bf);
172
+ bg.rgb = aj(bg.rgb, bp);
173
173
  if (aa.fromEye) {
174
174
  aa.li = bg.rgb * bg.a;
175
175
  aa.alpha = bg.a;
@@ -177,10 +177,10 @@ aa.alpha = bg.a;
177
177
  outAux.isBlank = bg.a < 0.01;
178
178
  }
179
179
  else {
180
- Ray cam = hC(v_Texcoord + sa());
181
- bool mL = dot(cam.d, aa.ray.d) > 0.0;
180
+ Ray cam = fj(v_Texcoord + tg());
181
+ bool nK = dot(cam.d, aa.ray.d) > 0.0;
182
182
  if (transmissiveOutputAlphaMin < 1.0) {
183
- if (mL) {
183
+ if (nK) {
184
184
  aa.alpha = max(aa.alpha, bg.a);
185
185
  } else {
186
186
  aa.alpha = 1.0;
@@ -188,8 +188,8 @@ aa.alpha = 1.0;
188
188
  }
189
189
  #if !defined(USE_ENVMAP)
190
190
 
191
- if (mL) {
192
- aa.li = aa.beta * aG(aa.scatteringPdf, 1.0) * bg.rgb;
191
+ if (nK) {
192
+ aa.li = aa.beta * aK(aa.scatteringPdf, 1.0) * bg.rgb;
193
193
  }
194
194
  #endif
195
195
  }
@@ -197,7 +197,7 @@ aa.abort = true;
197
197
  return;
198
198
  }
199
199
 
200
- bool cH = false;
200
+ bool aJ = false;
201
201
  if ((mat.materialType == STANDARD || mat.materialType == UNLIT)) {
202
202
  if (transmissiveOutputAlphaMin < 1.0) {
203
203
 
@@ -209,19 +209,19 @@ if (alpha < 1.0) {
209
209
 
210
210
 
211
211
  aa.alpha = max(aa.alpha, alpha);
212
- if (eo(3u) > alpha) {
213
- cH = true;
212
+ if (eC(3u) > alpha) {
213
+ aJ = true;
214
214
  }
215
215
  }
216
- if (!cH) {
217
- mb(si, mat, aa);
216
+ if (!aJ) {
217
+ mL(si, mat, aa);
218
218
  }
219
219
  else {
220
220
  aa.ray.o = si.position + aa.ray.d * EPS;
221
221
  }
222
222
  }
223
223
 
224
- if (!si.albedoSampled && !cH) {
224
+ if (!si.albedoSampled && !aJ) {
225
225
 
226
226
  if ((mat.materialType == STANDARD || mat.materialType == UNLIT) &&
227
227
  !(mat.transmissionWeight > 0.5 ||
@@ -243,11 +243,11 @@ si.albedoSampled = true;
243
243
 
244
244
 
245
245
  #ifdef USE_RR
246
- if (depth >= RR_MAX && !cH) {
246
+ if (depth >= RR_MAX && !aJ) {
247
247
 
248
- float oy = max(max(aa.beta.x, aa.beta.y), aa.beta.z);
249
- float q = max(0.0, 1.0 - oy);
250
- if (dz(cw(RUSSIAN_ROULETTE)) < q) {
248
+ float pn = max(max(aa.beta.x, aa.beta.y), aa.beta.z);
249
+ float q = max(0.0, 1.0 - pn);
250
+ if (dp(cE(RUSSIAN_ROULETTE)) < q) {
251
251
 
252
252
 
253
253
  aa.alpha = 1.0;
@@ -264,43 +264,43 @@ return;
264
264
  }
265
265
 
266
266
 
267
- cZ(aa.ray, si, true);
268
- eX(mat, si.materialIndex, si.uv, si.uv1, si.instanceIndex, si.vertexColor);
267
+ intersectScene(aa.ray, si, true);
268
+ dg(mat, si.materialIndex, si.uv, si.uv1, si.instanceIndex, si.vertexColor);
269
269
  si.isTransparency = mat.transmissionWeight > 0.001 || mat.subsurfaceWeight > 0.001 || mat.alpha < 0.999;
270
270
 
271
271
 
272
272
 
273
273
 
274
274
  if (dispersionWavelengths == 1 && si.hit && mat.transmissionWeight > 0.001 && mat.transmissionDispersionScale > 0.001) {
275
- bf = mv;
275
+ bp = nl;
276
276
  }
277
- if (mat.transmissionWeight > 0.001 && bf > 0.0) {
278
- mat.specularIor = eN(
279
- bf,
277
+ if (mat.transmissionWeight > 0.001 && bp > 0.0) {
278
+ mat.specularIor = ee(
279
+ bp,
280
280
  mat.specularIor,
281
281
  mat.transmissionDispersionScale,
282
282
  mat.dispersionAbbeNumber
283
283
  );
284
284
  }
285
285
 
286
- if (cH) {
286
+ if (aJ) {
287
287
  return;
288
288
  }
289
289
 
290
- bool hy = eo(3u) < mat.alpha;
290
+ bool hM = eC(3u) < mat.alpha;
291
291
  #ifdef NUM_LIGHTS
292
292
 
293
293
  LightSampleRec lightSample;
294
294
  for (int i = 0; i < NUM_LIGHTS; i++) {
295
295
 
296
- Light light = qx(i);
297
- float d = my(aa.ray, light, lightSample);
298
- bool mC = si.hit && d > distance(si.position, aa.ray.o);
299
- if (d != INF && !(mC && hy)) {
296
+ Light light = rB(i);
297
+ float d = nr(aa.ray, light, lightSample);
298
+ bool lY = si.hit && d > distance(si.position, aa.ray.o);
299
+ if (d != INF && !(lY && hM)) {
300
300
  lightSample.pdf *= light.selectionPmf;
301
- float fa = aG(aa.scatteringPdf, lightSample.pdf);
302
- lightSample.emission = ai(lightSample.emission, bf);
303
- aa.li += fa * aa.beta * lightSample.emission;
301
+ float fl = aK(aa.scatteringPdf, lightSample.pdf);
302
+ lightSample.emission = aj(lightSample.emission, bp);
303
+ aa.li += fl * aa.beta * lightSample.emission;
304
304
 
305
305
  aa.alpha = 1.0;
306
306
  aa.abort = true;
@@ -309,28 +309,28 @@ aa.abort = true;
309
309
  #endif
310
310
 
311
311
  #ifdef USE_ENVMAP
312
- if (!(si.hit && hy)) {
312
+ if (!(si.hit && hM)) {
313
313
  if (aa.isNextRefraction) {
314
314
 
315
315
 
316
- vec4 bg = cx(aa.ray.o, aa.ray.d);
317
- bg.rgb = ai(bg.rgb, bf);
318
- float cT = aa.scatteringIsDelta ? 1.0
319
- : aG(aa.scatteringPdf,
320
- iB(cY(aa.ray.d)) * envLightSelectionPmf);
321
- aa.li += cT * aa.beta * bg.rgb * bg.a;
316
+ vec4 bg = cG(aa.ray.o, aa.ray.d);
317
+ bg.rgb = aj(bg.rgb, bp);
318
+ float da = aa.scatteringIsDelta ? 1.0
319
+ : aK(aa.scatteringPdf,
320
+ iT(dm(aa.ray.d)) * envLightSelectionPmf);
321
+ aa.li += da * aa.beta * bg.rgb * bg.a;
322
322
  aa.alpha = max(aa.alpha, bg.a);
323
323
  aa.abort = true;
324
324
  return;
325
325
  }
326
- vec2 uv = cY(aa.ray.d);
326
+ vec2 uv = dm(aa.ray.d);
327
327
  vec3 emission = textureLinear(envMap, uv).rgb;
328
- float fa = aG(
328
+ float fl = aK(
329
329
  aa.scatteringPdf,
330
- iB(uv) * envLightSelectionPmf
330
+ iT(uv) * envLightSelectionPmf
331
331
  );
332
- emission = ai(emission, bf);
333
- aa.li += aa.beta * emission * fa;
332
+ emission = aj(emission, bp);
333
+ aa.li += aa.beta * emission * fl;
334
334
 
335
335
 
336
336
  #if !defined(USE_BACKGROUND)
@@ -345,109 +345,109 @@ depth++;
345
345
  }
346
346
 
347
347
 
348
- vec2 kz(float radius, float xi) {
348
+ vec2 ld(float radius, float xi) {
349
349
  float x = 0.25;
350
- for (int nG = 0; nG < 10; nG++) {
350
+ for (int oD = 0; oD < 10; oD++) {
351
351
  float x2 = x * x;
352
352
  float x3 = x2 * x;
353
- float kP = 1.0 - x;
353
+ float lw = 1.0 - x;
354
354
  float value = 10.0 * x2 - 20.0 * x3 + 15.0 * x2 * x2 -
355
355
  4.0 * x2 * x3 - xi;
356
- float mj = 20.0 * x * kP * kP * kP;
357
- if (abs(value) < 1e-6 || mj == 0.0) break;
358
- x = clamp(x - value / mj, 0.0, 1.0);
356
+ float mX = 20.0 * x * lw * lw * lw;
357
+ if (abs(value) < 1e-6 || mX == 0.0) break;
358
+ x = clamp(x - value / mX, 0.0, 1.0);
359
359
  }
360
- float jo = x * radius;
360
+ float jL = x * radius;
361
361
  return vec2(
362
- jo,
363
- sqrt(max(radius * radius - jo * jo, 0.0))
362
+ jL,
363
+ sqrt(max(radius * radius - jL * jL, 0.0))
364
364
  );
365
365
  }
366
366
 
367
- float iT(float radius, float gx) {
368
- if (gx >= radius) return 0.0;
369
- float og = radius - gx;
370
- return og * og * og;
367
+ float jj(float radius, float gM) {
368
+ if (gM >= radius) return 0.0;
369
+ float pa = radius - gM;
370
+ return pa * pa * pa;
371
371
  }
372
372
 
373
373
 
374
- vec3 mt(ad source, float radius) {
374
+ vec3 nj(SurfaceInteraction source, float radius) {
375
375
  vec3 geometricNormal = source.faceNormal;
376
376
  if (dot(geometricNormal, source.vertexNormal) < 0.0) geometricNormal = -geometricNormal;
377
377
  vec3 tangent;
378
378
  vec3 bitangent;
379
- aL(geometricNormal, tangent, bitangent);
380
- vec3 iF = vec3(0.0);
381
-
382
- for (int ig = 0; ig < BEVEL_SAMPLES; ig++) {
383
- vec2 ph = fp(CAMERA_BEVEL_BASE + uint(ig));
384
- float cA = ph.x;
385
- float oF = ph.y;
386
- vec3 dj = geometricNormal;
387
- vec3 fI = tangent;
388
- vec3 ek = bitangent;
389
- float gf = 0.5;
390
- float hY = 0.25;
391
- float gH = 0.25;
392
- if (cA < 0.5) {
393
- cA *= 2.0;
394
- }
395
- else if (cA < 0.75) {
396
- vec3 mJ = dj;
397
- dj = fI;
398
- fI = mJ;
399
- gf = 0.25;
400
- hY = 0.5;
401
- cA = (cA - 0.5) * 4.0;
379
+ aP(geometricNormal, tangent, bitangent);
380
+ vec3 iW = vec3(0.0);
381
+
382
+ for (int iG = 0; iG < BEVEL_SAMPLES; iG++) {
383
+ vec2 qf = dZ(CAMERA_BEVEL_BASE + uint(iG));
384
+ float cJ = qf.x;
385
+ float pv = qf.y;
386
+ vec3 dz = geometricNormal;
387
+ vec3 fW = tangent;
388
+ vec3 eA = bitangent;
389
+ float gu = 0.5;
390
+ float iB = 0.25;
391
+ float gT = 0.25;
392
+ if (cJ < 0.5) {
393
+ cJ *= 2.0;
394
+ }
395
+ else if (cJ < 0.75) {
396
+ vec3 nI = dz;
397
+ dz = fW;
398
+ fW = nI;
399
+ gu = 0.25;
400
+ iB = 0.5;
401
+ cJ = (cJ - 0.5) * 4.0;
402
402
  }
403
403
  else {
404
- vec3 mJ = dj;
405
- dj = ek;
406
- ek = mJ;
407
- gf = 0.25;
408
- gH = 0.5;
409
- cA = (cA - 0.75) * 4.0;
410
- }
411
-
412
- vec2 gV = kz(radius, oF);
413
- float phi = TWOPI * cA;
414
- vec3 qv = gV.x *
415
- (cos(phi) * fI + sin(phi) * ek);
404
+ vec3 nI = dz;
405
+ dz = eA;
406
+ eA = nI;
407
+ gu = 0.25;
408
+ gT = 0.5;
409
+ cJ = (cJ - 0.75) * 4.0;
410
+ }
411
+
412
+ vec2 hj = ld(radius, pv);
413
+ float phi = TWOPI * cJ;
414
+ vec3 rw = hj.x *
415
+ (cos(phi) * fW + sin(phi) * eA);
416
416
  Ray ray;
417
- iC(
417
+ gC(
418
418
  ray,
419
- source.position + dj * gV.y + qv,
420
- -dj
419
+ source.position + dz * hj.y + rw,
420
+ -dz
421
421
  );
422
- ad hit;
423
- iM(
422
+ SurfaceInteraction hit;
423
+ intersectSceneBevel(
424
424
  ray,
425
425
  hit,
426
426
  source.instanceIndex,
427
- max(2.0 * gV.y, EPS)
427
+ max(2.0 * hj.y, EPS)
428
428
  );
429
429
  if (!hit.hit) continue;
430
430
 
431
- float kQ = gf * abs(dot(dj, hit.faceNormal));
432
- float mF = hY * abs(dot(fI, hit.faceNormal));
433
- float kb = gH * abs(dot(ek, hit.faceNormal));
434
- float weight = kQ / max(
435
- kQ * kQ + mF * mF +
436
- kb * kb,
431
+ float lA = gu * abs(dot(dz, hit.faceNormal));
432
+ float nC = iB * abs(dot(fW, hit.faceNormal));
433
+ float kG = gT * abs(dot(eA, hit.faceNormal));
434
+ float weight = lA / max(
435
+ lA * lA + nC * nC +
436
+ kG * kG,
437
437
  1e-8
438
438
  );
439
- weight *= iT(radius, distance(hit.position, source.position)) /
440
- max(iT(radius, gV.x), 1e-8);
441
- iF += weight * hit.vertexNormal;
439
+ weight *= jj(radius, distance(hit.position, source.position)) /
440
+ max(jj(radius, hj.x), 1e-8);
441
+ iW += weight * hit.vertexNormal;
442
442
  }
443
443
 
444
- if (dot(iF, iF) <= 1e-12) return source.normal;
445
- vec3 jH = normalize(iF);
446
- vec3 result = source.normal + jH - source.vertexNormal;
444
+ if (dot(iW, iW) <= 1e-12) return source.normal;
445
+ vec3 kg = normalize(iW);
446
+ vec3 result = source.normal + kg - source.vertexNormal;
447
447
  return dot(result, result) > 1e-12 ? normalize(result) : source.normal;
448
448
  }
449
449
 
450
- vec4 bw(ad si, Ray ray, J mat, inout RayTraceAuxiliary outAux) {
450
+ vec4 cT(SurfaceInteraction si, Ray ray, OpenPbrResolvedMaterial mat, inout RayTraceAuxiliary outAux) {
451
451
  Path aa;
452
452
  aa.ray = ray;
453
453
  aa.li = vec3(0);
@@ -463,62 +463,62 @@ ${intelMac ? bounceCodeOnIntelMac : bounceCodeOnOther}
463
463
  return vec4(aa.li, aa.alpha);
464
464
  }
465
465
 
466
- vec4 iD(ad si, Ray ray, J mat, inout RayTraceAuxiliary outAux) {
466
+ vec4 iU(SurfaceInteraction si, Ray ray, OpenPbrResolvedMaterial mat, inout RayTraceAuxiliary outAux) {
467
467
  float coverage = clamp(mat.alpha, 0.0, 1.0);
468
468
  if (!si.hit || (mat.materialType != STANDARD && mat.materialType != UNLIT) || coverage >= 1.0) {
469
- return bw(si, ray, mat, outAux);
469
+ return cT(si, ray, mat, outAux);
470
470
  }
471
471
 
472
472
 
473
473
 
474
474
 
475
475
 
476
- Ray nX = ray;
477
- nX.o = si.position + ray.d * (EPS * 0.02);
478
- ad dE = si;
479
- dE.albedoSampled = false;
480
- cZ(nX, dE, false);
481
- J nW;
482
- eX(nW, dE.materialIndex, dE.uv, dE.uv1, dE.instanceIndex, dE.vertexColor);
483
- RayTraceAuxiliary gn = outAux;
484
- if (dE.hit && (nW.materialType == STANDARD || nW.materialType == UNLIT)) {
485
- gn.albedo = nW.transmissionWeight > 0.5
476
+ Ray uG = ray;
477
+ uG.o = si.position + ray.d * (EPS * 0.02);
478
+ SurfaceInteraction kf = si;
479
+ kf.albedoSampled = false;
480
+ intersectScene(uG, kf, false);
481
+ OpenPbrResolvedMaterial oS;
482
+ dg(oS, kf.materialIndex, kf.uv, kf.uv1, kf.instanceIndex, kf.vertexColor);
483
+ RayTraceAuxiliary ez = outAux;
484
+ if (kf.hit && (oS.materialType == STANDARD || oS.materialType == UNLIT)) {
485
+ ez.albedo = oS.transmissionWeight > 0.5
486
486
  ? vec3(1.0)
487
- : nW.baseColor;
488
- gn.normal = dot(
489
- dE.normal,
490
- dE.position - vec3(viewInv[3])
487
+ : oS.baseColor;
488
+ ez.normal = dot(
489
+ kf.normal,
490
+ kf.position - vec3(viewInv[3])
491
491
  ) > 0.0
492
- ? -dE.normal
493
- : dE.normal;
494
- dE.albedoSampled = nW.transmissionWeight > 0.5;
492
+ ? -kf.normal
493
+ : kf.normal;
494
+ kf.albedoSampled = oS.transmissionWeight > 0.5;
495
495
  }
496
- vec4 back = bw(dE, nX, nW, gn);
496
+ vec4 back = cT(kf, uG, oS, ez);
497
497
  if (coverage <= 0.0) {
498
- outAux = gn;
498
+ outAux = ez;
499
499
  return back;
500
500
  }
501
501
 
502
- ad tu = si;
503
- J tR = mat;
504
- tR.alpha = 1.0;
505
- RayTraceAuxiliary iW = outAux;
506
- vec4 qY = bw(tu, ray, tR, iW);
507
- outAux.albedo = mix(gn.albedo, iW.albedo, coverage);
508
- vec3 fW = mix(gn.normal, iW.normal, coverage);
509
- outAux.normal = dot(fW, fW) > 1e-12
510
- ? normalize(fW)
502
+ SurfaceInteraction xA = si;
503
+ OpenPbrResolvedMaterial vp = mat;
504
+ vp.alpha = 1.0;
505
+ RayTraceAuxiliary se = outAux;
506
+ vec4 front = cT(xA, ray, vp, se);
507
+ outAux.albedo = mix(ez.albedo, se.albedo, coverage);
508
+ vec3 dl = mix(ez.normal, se.normal, coverage);
509
+ outAux.normal = dot(dl, dl) > 1e-12
510
+ ? normalize(dl)
511
511
  : vec3(0.0);
512
- outAux.isBlank = gn.isBlank && iW.isBlank;
513
- return mix(back, qY, coverage);
512
+ outAux.isBlank = ez.isBlank && se.isBlank;
513
+ return mix(back, front, coverage);
514
514
  }
515
515
 
516
516
 
517
517
 
518
- vec4 mx(Ray ray, out RayTraceAuxiliary outAux) {
518
+ vec4 iu(Ray ray, out RayTraceAuxiliary outAux) {
519
519
 
520
- ad si;
521
- J mat;
520
+ SurfaceInteraction si;
521
+ OpenPbrResolvedMaterial mat;
522
522
 
523
523
  si.albedoSampled = false;
524
524
  #ifdef HAS_MEDIUM
@@ -528,13 +528,13 @@ si.mediumScattering = vec3(0.0);
528
528
  si.mediumAnisotropy = 0.0;
529
529
  #endif
530
530
 
531
- cZ(ray, si, false);
532
- eX(mat, si.materialIndex, si.uv, si.uv1, si.instanceIndex, si.vertexColor);
531
+ intersectScene(ray, si, false);
532
+ dg(mat, si.materialIndex, si.uv, si.uv1, si.instanceIndex, si.vertexColor);
533
533
  si.isTransparency = mat.transmissionWeight > 0.001 || mat.subsurfaceWeight > 0.001 || mat.alpha < 0.999;
534
534
 
535
535
  #ifdef HAS_BEVEL
536
536
  if (bevelEnabled && mat.bevel > 0.0) {
537
- si.normal = mt(si, mat.bevel);
537
+ si.normal = nj(si, mat.bevel);
538
538
  }
539
539
  #endif
540
540
 
@@ -551,32 +551,32 @@ si.albedoSampled = mat.transmissionWeight > 0.5;
551
551
  }
552
552
 
553
553
  if (mat.transmissionDispersionScale > 0.001) {
554
- mat.specularIor = eN(
555
- bf,
554
+ mat.specularIor = ee(
555
+ bp,
556
556
  mat.specularIor,
557
557
  mat.transmissionDispersionScale,
558
558
  mat.dispersionAbbeNumber
559
559
  );
560
560
  }
561
- return iD(si, ray, mat, outAux);
561
+ return iU(si, ray, mat, outAux);
562
562
  }
563
563
 
564
564
  void main() {
565
565
 
566
- su();
567
- kh(v_Texcoord * viewportSize, int(uint(sampleCount) ^ eg(uint(sequenceSeed))));
566
+ rG();
567
+ gW(v_Texcoord * viewportSize, int(uint(sampleCount) ^ dG(uint(sequenceSeed))));
568
568
 
569
569
 
570
- bf = dispersionWavelengths == 1 ? 0.0 : wavelength;
571
- mv = wavelength;
570
+ bp = dispersionWavelengths == 1 ? 0.0 : wavelength;
571
+ nl = wavelength;
572
572
  if (dispersionWavelengths == 1 && wavelength > 0.0) {
573
- float channel = floor(dz(CAMERA_WAVELENGTH) * 3.0);
574
- mv = channel < 1.0 ? 650.0 : channel < 2.0 ? 510.0 : 475.0;
573
+ float channel = floor(dp(CAMERA_WAVELENGTH) * 3.0);
574
+ nl = channel < 1.0 ? 650.0 : channel < 2.0 ? 510.0 : 475.0;
575
575
  }
576
576
 
577
577
 
578
578
 
579
- Ray cam = nM();
579
+ Ray cam = oG();
580
580
 
581
581
  RayTraceAuxiliary outAux;
582
582
  outAux.albedo = vec3(0.0);
@@ -584,38 +584,38 @@ outAux.normal = vec3(0.0);
584
584
  outAux.isBlank = false;
585
585
  outAux.isShadowCatcher = false;
586
586
 
587
- vec4 aF = mx(cam, outAux);
587
+ vec4 aW = iu(cam, outAux);
588
588
 
589
589
 
590
590
 
591
591
  #ifdef CLAMPING
592
592
  float clamping = float(CLAMPING);
593
- aF.rgb = clamp(aF.rgb, -clamping, clamping);
593
+ aW.rgb = clamp(aW.rgb, -clamping, clamping);
594
594
  #endif
595
595
 
596
596
 
597
- if (bf > 0.0) {
597
+ if (bp > 0.0) {
598
598
 
599
- aF.rgb *= 3.0;
599
+ aW.rgb *= 3.0;
600
600
  if (dispersionWavelengths != 1) {
601
601
 
602
602
 
603
- aF.a /= 3.0;
603
+ aW.a /= 3.0;
604
604
  }
605
605
  }
606
- if (!(aF.x < INF && aF.x > -EPS)) {
607
- aF = vec4(0, 0, 0, 1);
606
+ if (!(aW.x < INF && aW.x > -EPS)) {
607
+ aW = vec4(0, 0, 0, 1);
608
608
  }
609
609
 
610
- out_color = aF;
610
+ out_color = aW;
611
611
  out_albedo = vec4(outAux.albedo, outAux.isBlank ? 0.0 : 1.0);
612
612
  out_normal = vec4(outAux.normal, 1.0);
613
613
 
614
614
 
615
- float jq = dot(aF.rgb, vec3(0.2126, 0.7152, 0.0722));
615
+ float jP = dot(aW.rgb, vec3(0.2126, 0.7152, 0.0722));
616
616
  out_moments = outAux.isShadowCatcher
617
617
  ? vec4(0.0)
618
- : vec4(jq, jq * jq, 1.0, 0.0);
618
+ : vec4(jP, jP * jP, 1.0, 0.0);
619
619
 
620
620
  }`
621
621
  });