@meimu/mutracer 0.2.0 → 0.3.1

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 (372) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/LICENSES/FidelityFX-FSR.txt +19 -0
  3. package/LICENSES/pbrt-v4-Apache-2.0.txt +202 -0
  4. package/README.md +3 -0
  5. package/THIRD_PARTY_NOTICES.md +18 -4
  6. package/dist/assets/bvh.worker.js +1 -1
  7. package/dist/mutracer.umd.js +9328 -7614
  8. package/docs/api.md +83 -35
  9. package/docs/caustics.md +80 -0
  10. package/docs/materials.md +9 -6
  11. package/docs/performance.md +7 -0
  12. package/docs/post-processing.md +62 -9
  13. package/docs/progressive-rendering.md +53 -9
  14. package/docs/sampling.md +4 -0
  15. package/docs/technical/acceleration.md +52 -0
  16. package/docs/technical/aovs.md +79 -0
  17. package/docs/technical/caustics.md +109 -0
  18. package/docs/technical/continuous-spectrum.md +122 -0
  19. package/docs/technical/display-upscale.md +82 -0
  20. package/docs/technical/openpbr.md +99 -0
  21. package/docs/technical/pbrt-import.md +168 -0
  22. package/docs/technical/tiling.md +74 -0
  23. package/docs/technical/webgl.md +53 -0
  24. package/docs/updates.md +3 -1
  25. package/docs/viewer-checklist.md +65 -0
  26. package/docs/viewer.md +18 -6
  27. package/lib/Display.d.ts +19 -5
  28. package/lib/Display.js +10 -7
  29. package/lib/Display.js.map +1 -1
  30. package/lib/Engine.d.ts +4 -1
  31. package/lib/Engine.js +77 -14
  32. package/lib/Engine.js.map +1 -1
  33. package/lib/Render.d.ts +81 -24
  34. package/lib/Render.js +201 -26
  35. package/lib/Render.js.map +1 -1
  36. package/lib/RenderLoop.d.ts +7 -3
  37. package/lib/RenderLoop.js +68 -44
  38. package/lib/RenderLoop.js.map +1 -1
  39. package/lib/main.d.ts +4 -2
  40. package/lib/main.js +1 -0
  41. package/lib/main.js.map +1 -1
  42. package/lib/oidn.d.ts +1 -1
  43. package/lib/renderer/AovPrimitiveCache.js +39 -8
  44. package/lib/renderer/AovPrimitiveCache.js.map +1 -1
  45. package/lib/renderer/DisplayPostProcess.d.ts +8 -3
  46. package/lib/renderer/DisplayPostProcess.js +51 -18
  47. package/lib/renderer/DisplayPostProcess.js.map +1 -1
  48. package/lib/renderer/GPUTraceQueue.d.ts +2 -1
  49. package/lib/renderer/GPUTraceQueue.js +3 -1
  50. package/lib/renderer/GPUTraceQueue.js.map +1 -1
  51. package/lib/renderer/MaterialData.js +7 -2
  52. package/lib/renderer/MaterialData.js.map +1 -1
  53. package/lib/renderer/RenderingPipeline.d.ts +11 -1
  54. package/lib/renderer/RenderingPipeline.js.map +1 -1
  55. package/lib/renderer/TileRender.d.ts +2 -2
  56. package/lib/renderer/TileRender.js +128 -7
  57. package/lib/renderer/TileRender.js.map +1 -1
  58. package/lib/renderer/WGPUAov.d.ts +6 -1
  59. package/lib/renderer/WGPUAov.js +108 -14
  60. package/lib/renderer/WGPUAov.js.map +1 -1
  61. package/lib/renderer/WGPUCanvasSurface.js +12 -1
  62. package/lib/renderer/WGPUCanvasSurface.js.map +1 -1
  63. package/lib/renderer/WGPUCausticLightPass.d.ts +48 -0
  64. package/lib/renderer/WGPUCausticLightPass.js +217 -0
  65. package/lib/renderer/WGPUCausticLightPass.js.map +1 -0
  66. package/lib/renderer/WGPUEnvMapDistribution.js +19 -19
  67. package/lib/renderer/WGPUFullQuadPass.js +3 -3
  68. package/lib/renderer/WGPUPhotonMap.d.ts +37 -0
  69. package/lib/renderer/WGPUPhotonMap.js +191 -0
  70. package/lib/renderer/WGPUPhotonMap.js.map +1 -0
  71. package/lib/renderer/WGPURayTraceOutput.d.ts +13 -1
  72. package/lib/renderer/WGPURayTraceOutput.js +122 -28
  73. package/lib/renderer/WGPURayTraceOutput.js.map +1 -1
  74. package/lib/renderer/WGPURayTracePass.d.ts +65 -21
  75. package/lib/renderer/WGPURayTracePass.js +730 -409
  76. package/lib/renderer/WGPURayTracePass.js.map +1 -1
  77. package/lib/renderer/WGPURenderingPipeline.js +110 -68
  78. package/lib/renderer/WGPURenderingPipeline.js.map +1 -1
  79. package/lib/renderer/WebGLAov.js +3 -3
  80. package/lib/renderer/WebGLAov.js.map +1 -1
  81. package/lib/renderer/WebGLFullQuadPass.d.ts +2 -1
  82. package/lib/renderer/WebGLFullQuadPass.js +10 -0
  83. package/lib/renderer/WebGLFullQuadPass.js.map +1 -1
  84. package/lib/renderer/WebGLJNLMDenoiser.js +66 -66
  85. package/lib/renderer/WebGLJNLMDenoiser.js.map +1 -1
  86. package/lib/renderer/WebGLRayTraceOutputPass.js +4 -4
  87. package/lib/renderer/WebGLRayTracePass.d.ts +20 -11
  88. package/lib/renderer/WebGLRayTracePass.js +157 -116
  89. package/lib/renderer/WebGLRayTracePass.js.map +1 -1
  90. package/lib/renderer/WebGLRenderingPipeline.js +17 -14
  91. package/lib/renderer/WebGLRenderingPipeline.js.map +1 -1
  92. package/lib/renderer/WebGLSkyBaker.js +60 -60
  93. package/lib/renderer/accumulationTarget.d.ts +2 -1
  94. package/lib/renderer/accumulationTarget.js.map +1 -1
  95. package/lib/renderer/aov.d.ts +13 -1
  96. package/lib/renderer/aov.js +21 -2
  97. package/lib/renderer/aov.js.map +1 -1
  98. package/lib/renderer/aovDisplay.js +2 -2
  99. package/lib/renderer/aovDisplay.js.map +1 -1
  100. package/lib/renderer/binnedSahBvh.d.ts +2 -1
  101. package/lib/renderer/binnedSahBvh.js +24 -17
  102. package/lib/renderer/binnedSahBvh.js.map +1 -1
  103. package/lib/renderer/bvhAccel.d.ts +3 -1
  104. package/lib/renderer/bvhAccel.js +36 -6
  105. package/lib/renderer/bvhAccel.js.map +1 -1
  106. package/lib/renderer/cameraUniform.d.ts +1 -1
  107. package/lib/renderer/cameraUniform.js +6 -2
  108. package/lib/renderer/cameraUniform.js.map +1 -1
  109. package/lib/renderer/causticDiagnostics.d.ts +31 -0
  110. package/lib/renderer/causticDiagnostics.js +5 -0
  111. package/lib/renderer/causticDiagnostics.js.map +1 -0
  112. package/lib/renderer/causticEmission.d.ts +10 -0
  113. package/lib/renderer/causticEmission.js +40 -0
  114. package/lib/renderer/causticEmission.js.map +1 -0
  115. package/lib/renderer/causticUniform.d.ts +12 -0
  116. package/lib/renderer/causticUniform.js +22 -0
  117. package/lib/renderer/causticUniform.js.map +1 -0
  118. package/lib/renderer/caustics.d.ts +16 -0
  119. package/lib/renderer/caustics.js +93 -0
  120. package/lib/renderer/caustics.js.map +1 -0
  121. package/lib/renderer/compactVertices.d.ts +14 -0
  122. package/lib/renderer/compactVertices.js +124 -0
  123. package/lib/renderer/compactVertices.js.map +1 -0
  124. package/lib/renderer/easu.d.ts +11 -0
  125. package/lib/renderer/easu.js +156 -0
  126. package/lib/renderer/easu.js.map +1 -0
  127. package/lib/renderer/geometryUpdateState.d.ts +1 -0
  128. package/lib/renderer/geometryUpdateState.js.map +1 -1
  129. package/lib/renderer/geometryUpdates.js +3 -2
  130. package/lib/renderer/geometryUpdates.js.map +1 -1
  131. package/lib/renderer/glsl/aovDisplay.frag.js +5 -5
  132. package/lib/renderer/glsl/aovReflectance.glsl.js +53 -53
  133. package/lib/renderer/glsl/aovReflectanceSamples.glsl.js +1 -1
  134. package/lib/renderer/glsl/aovTrace.frag.js +45 -37
  135. package/lib/renderer/glsl/aovTrace.frag.js.map +1 -1
  136. package/lib/renderer/glsl/chunks/cameraProjection.glsl.d.ts +2 -0
  137. package/lib/renderer/glsl/chunks/cameraProjection.glsl.js +16 -0
  138. package/lib/renderer/glsl/chunks/cameraProjection.glsl.js.map +1 -0
  139. package/lib/renderer/glsl/chunks/cameraRay.glsl.d.ts +1 -1
  140. package/lib/renderer/glsl/chunks/cameraRay.glsl.js +9 -16
  141. package/lib/renderer/glsl/chunks/cameraRay.glsl.js.map +1 -1
  142. package/lib/renderer/glsl/chunks/emissiveLight.glsl.d.ts +2 -0
  143. package/lib/renderer/glsl/chunks/emissiveLight.glsl.js +35 -0
  144. package/lib/renderer/glsl/chunks/emissiveLight.glsl.js.map +1 -0
  145. package/lib/renderer/glsl/chunks/envMap.glsl.js +73 -73
  146. package/lib/renderer/glsl/chunks/intersect.glsl.js +478 -465
  147. package/lib/renderer/glsl/chunks/intersect.glsl.js.map +1 -1
  148. package/lib/renderer/glsl/chunks/materialBuffer.glsl.d.ts +1 -0
  149. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js +156 -153
  150. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js.map +1 -1
  151. package/lib/renderer/glsl/chunks/openPbrBsdf.glsl.js +771 -771
  152. package/lib/renderer/glsl/chunks/rand.glsl.js +3 -3
  153. package/lib/renderer/glsl/chunks/random.glsl.js +6 -6
  154. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.d.ts +1 -0
  155. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js +70 -63
  156. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js.map +1 -1
  157. package/lib/renderer/glsl/chunks/sampleLight.glsl.js +89 -75
  158. package/lib/renderer/glsl/chunks/sampleLight.glsl.js.map +1 -1
  159. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.d.ts +1 -0
  160. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js +160 -118
  161. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js.map +1 -1
  162. package/lib/renderer/glsl/chunks/sampleShadowCatcher.glsl.js +14 -14
  163. package/lib/renderer/glsl/chunks/sampling.glsl.js +88 -91
  164. package/lib/renderer/glsl/chunks/sampling.glsl.js.map +1 -1
  165. package/lib/renderer/glsl/chunks/sobol.glsl.js +79 -79
  166. package/lib/renderer/glsl/chunks/spectralPrefix.glsl.d.ts +6 -0
  167. package/lib/renderer/glsl/chunks/spectralPrefix.glsl.js +47 -0
  168. package/lib/renderer/glsl/chunks/spectralPrefix.glsl.js.map +1 -0
  169. package/lib/renderer/glsl/chunks/textureLinear.glsl.js +5 -5
  170. package/lib/renderer/glsl/chunks/uvProjection.glsl.js +11 -11
  171. package/lib/renderer/glsl/depthQuery.frag.js +13 -7
  172. package/lib/renderer/glsl/depthQuery.frag.js.map +1 -1
  173. package/lib/renderer/glsl/normalizeRayTraceOutput.frag.js +10 -10
  174. package/lib/renderer/glsl/rayTrace.frag.d.ts +1 -1
  175. package/lib/renderer/glsl/rayTrace.frag.js +338 -252
  176. package/lib/renderer/glsl/rayTrace.frag.js.map +1 -1
  177. package/lib/renderer/glsl/shadowCatcher.frag.js +27 -26
  178. package/lib/renderer/glsl/shadowCatcher.frag.js.map +1 -1
  179. package/lib/renderer/glsl/webglPipeline.frag.js +59 -59
  180. package/lib/renderer/gpuMemory.js +1 -1
  181. package/lib/renderer/gpuMemory.js.map +1 -1
  182. package/lib/renderer/lightSampling.d.ts +3 -2
  183. package/lib/renderer/lightSampling.js +14 -8
  184. package/lib/renderer/lightSampling.js.map +1 -1
  185. package/lib/renderer/openPbrEnergyLut.d.ts +2 -1
  186. package/lib/renderer/openPbrEnergyLut.js +18 -1
  187. package/lib/renderer/openPbrEnergyLut.js.map +1 -1
  188. package/lib/renderer/pathLimits.d.ts +5 -4
  189. package/lib/renderer/pathLimits.js +6 -5
  190. package/lib/renderer/pathLimits.js.map +1 -1
  191. package/lib/renderer/prepareMeshBVH.d.ts +2 -0
  192. package/lib/renderer/prepareMeshBVH.js +5 -3
  193. package/lib/renderer/prepareMeshBVH.js.map +1 -1
  194. package/lib/renderer/progressiveScheduler.js +5 -4
  195. package/lib/renderer/progressiveScheduler.js.map +1 -1
  196. package/lib/renderer/renderPipeline.d.ts +5 -0
  197. package/lib/renderer/renderPipeline.js +1 -0
  198. package/lib/renderer/renderPipeline.js.map +1 -1
  199. package/lib/renderer/researchTransport.d.ts +31 -0
  200. package/lib/renderer/researchTransport.js +5 -0
  201. package/lib/renderer/researchTransport.js.map +1 -0
  202. package/lib/renderer/sceneAssembly.d.ts +1 -1
  203. package/lib/renderer/sceneAssembly.js +4 -3
  204. package/lib/renderer/sceneAssembly.js.map +1 -1
  205. package/lib/renderer/sceneChangeDetector.d.ts +1 -1
  206. package/lib/renderer/sceneChangeDetector.js +3 -1
  207. package/lib/renderer/sceneChangeDetector.js.map +1 -1
  208. package/lib/renderer/sceneLayoutSchema.d.ts +2 -0
  209. package/lib/renderer/sceneLayoutSchema.js +3 -3
  210. package/lib/renderer/sceneLayoutSchema.js.map +1 -1
  211. package/lib/renderer/scenePreparation.d.ts +3 -2
  212. package/lib/renderer/scenePreparation.js +18 -2
  213. package/lib/renderer/scenePreparation.js.map +1 -1
  214. package/lib/renderer/scratchSampling.js +6 -6
  215. package/lib/renderer/spectrum.d.ts +21 -0
  216. package/lib/renderer/spectrum.js +154 -0
  217. package/lib/renderer/spectrum.js.map +1 -0
  218. package/lib/renderer/staticBvhPreparation.d.ts +9 -0
  219. package/lib/renderer/staticBvhPreparation.js +8 -2
  220. package/lib/renderer/staticBvhPreparation.js.map +1 -1
  221. package/lib/renderer/surfaceHit.d.ts +10 -0
  222. package/lib/renderer/surfaceHit.js +22 -0
  223. package/lib/renderer/surfaceHit.js.map +1 -0
  224. package/lib/renderer/tangentRequirements.d.ts +2 -0
  225. package/lib/renderer/tangentRequirements.js +7 -0
  226. package/lib/renderer/tangentRequirements.js.map +1 -0
  227. package/lib/renderer/textureAtlas.d.ts +4 -0
  228. package/lib/renderer/textureAtlas.js +48 -2
  229. package/lib/renderer/textureAtlas.js.map +1 -1
  230. package/lib/renderer/webgl.js +4 -0
  231. package/lib/renderer/webgl.js.map +1 -1
  232. package/lib/renderer/webglLightSampling.d.ts +39 -0
  233. package/lib/renderer/webglLightSampling.js +15 -0
  234. package/lib/renderer/webglLightSampling.js.map +1 -0
  235. package/lib/renderer/webglVertexAttributes.d.ts +17 -0
  236. package/lib/renderer/webglVertexAttributes.js +44 -0
  237. package/lib/renderer/webglVertexAttributes.js.map +1 -0
  238. package/lib/renderer/wgpuBindlessSource.js +3 -3
  239. package/lib/renderer/wgpuMaterialConstants.js +4 -3
  240. package/lib/renderer/wgpuMaterialConstants.js.map +1 -1
  241. package/lib/renderer/wgpuSceneUniform.js +2 -2
  242. package/lib/renderer/wgpuSceneUniform.js.map +1 -1
  243. package/lib/renderer/wgpuShaderSource.d.ts +22 -0
  244. package/lib/renderer/wgpuShaderSource.js +3 -1
  245. package/lib/renderer/wgpuShaderSource.js.map +1 -1
  246. package/lib/renderer/wgsl/aovCompact.wgsl.d.ts +4 -0
  247. package/lib/renderer/wgsl/aovCompact.wgsl.js +26 -0
  248. package/lib/renderer/wgsl/aovCompact.wgsl.js.map +1 -0
  249. package/lib/renderer/wgsl/aovDisplay.wgsl.js +9 -9
  250. package/lib/renderer/wgsl/aovReflectance.wgsl.js +55 -55
  251. package/lib/renderer/wgsl/aovReflectanceSamples.wgsl.js +1 -1
  252. package/lib/renderer/wgsl/aovResolve.wgsl.d.ts +4 -0
  253. package/lib/renderer/wgsl/aovResolve.wgsl.js +21 -2
  254. package/lib/renderer/wgsl/aovResolve.wgsl.js.map +1 -1
  255. package/lib/renderer/wgsl/aovSnapshot.wgsl.js +2 -2
  256. package/lib/renderer/wgsl/aovSnapshot.wgsl.js.map +1 -1
  257. package/lib/renderer/wgsl/aovTrace.wgsl.js +33 -33
  258. package/lib/renderer/wgsl/aovTraceDisplay.wgsl.d.ts +2 -0
  259. package/lib/renderer/wgsl/aovTraceDisplay.wgsl.js +56 -0
  260. package/lib/renderer/wgsl/aovTraceDisplay.wgsl.js.map +1 -0
  261. package/lib/renderer/wgsl/bloom.wgsl.js +18 -18
  262. package/lib/renderer/wgsl/causticLight.compute.d.ts +6 -0
  263. package/lib/renderer/wgsl/causticLight.compute.js +539 -0
  264. package/lib/renderer/wgsl/causticLight.compute.js.map +1 -0
  265. package/lib/renderer/wgsl/chunks/background.wgsl.d.ts +2 -0
  266. package/lib/renderer/wgsl/chunks/background.wgsl.js +102 -0
  267. package/lib/renderer/wgsl/chunks/background.wgsl.js.map +1 -0
  268. package/lib/renderer/wgsl/chunks/causticAdjoint.wgsl.d.ts +2 -0
  269. package/lib/renderer/wgsl/chunks/causticAdjoint.wgsl.js +12 -0
  270. package/lib/renderer/wgsl/chunks/causticAdjoint.wgsl.js.map +1 -0
  271. package/lib/renderer/wgsl/chunks/causticAtomic.wgsl.d.ts +2 -0
  272. package/lib/renderer/wgsl/chunks/causticAtomic.wgsl.js +16 -0
  273. package/lib/renderer/wgsl/chunks/causticAtomic.wgsl.js.map +1 -0
  274. package/lib/renderer/wgsl/chunks/caustics.wgsl.d.ts +1 -0
  275. package/lib/renderer/wgsl/chunks/caustics.wgsl.js +62 -0
  276. package/lib/renderer/wgsl/chunks/caustics.wgsl.js.map +1 -0
  277. package/lib/renderer/wgsl/chunks/common.wgsl.js +4 -4
  278. package/lib/renderer/wgsl/chunks/envMap.wgsl.js +37 -37
  279. package/lib/renderer/wgsl/chunks/intersect.wgsl.d.ts +6 -2
  280. package/lib/renderer/wgsl/chunks/intersect.wgsl.js +634 -620
  281. package/lib/renderer/wgsl/chunks/intersect.wgsl.js.map +1 -1
  282. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.d.ts +1 -1
  283. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.js +23 -21
  284. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.js.map +1 -1
  285. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.d.ts +3 -1
  286. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js +77 -74
  287. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js.map +1 -1
  288. package/lib/renderer/wgsl/chunks/openPbrBsdf.wgsl.js +795 -795
  289. package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js +139 -139
  290. package/lib/renderer/wgsl/chunks/rand.wgsl.js +3 -3
  291. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.d.ts +5 -1
  292. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js +45 -29
  293. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js.map +1 -1
  294. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.d.ts +1 -1
  295. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js +142 -138
  296. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js.map +1 -1
  297. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.d.ts +1 -1
  298. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js +228 -189
  299. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js.map +1 -1
  300. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.d.ts +1 -1
  301. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.js +11 -11
  302. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.js.map +1 -1
  303. package/lib/renderer/wgsl/chunks/sampling.wgsl.d.ts +1 -1
  304. package/lib/renderer/wgsl/chunks/sampling.wgsl.js +88 -92
  305. package/lib/renderer/wgsl/chunks/sampling.wgsl.js.map +1 -1
  306. package/lib/renderer/wgsl/chunks/sobol.wgsl.js +83 -83
  307. package/lib/renderer/wgsl/chunks/spectralPrefix.wgsl.d.ts +6 -0
  308. package/lib/renderer/wgsl/chunks/spectralPrefix.wgsl.js +66 -0
  309. package/lib/renderer/wgsl/chunks/spectralPrefix.wgsl.js.map +1 -0
  310. package/lib/renderer/wgsl/chunks/uvProjection.wgsl.js +11 -11
  311. package/lib/renderer/wgsl/chunks/vertexAttributes.wgsl.d.ts +2 -0
  312. package/lib/renderer/wgsl/chunks/vertexAttributes.wgsl.js +61 -0
  313. package/lib/renderer/wgsl/chunks/vertexAttributes.wgsl.js.map +1 -0
  314. package/lib/renderer/wgsl/compose.frag.wgsl.d.ts +2 -0
  315. package/lib/renderer/wgsl/compose.frag.wgsl.js +100 -98
  316. package/lib/renderer/wgsl/compose.frag.wgsl.js.map +1 -1
  317. package/lib/renderer/wgsl/customDenoise.wgsl.js +10 -10
  318. package/lib/renderer/wgsl/depthQuery.wgsl.d.ts +1 -1
  319. package/lib/renderer/wgsl/depthQuery.wgsl.js +12 -3
  320. package/lib/renderer/wgsl/depthQuery.wgsl.js.map +1 -1
  321. package/lib/renderer/wgsl/easu.wgsl.d.ts +2 -0
  322. package/lib/renderer/wgsl/easu.wgsl.js +80 -0
  323. package/lib/renderer/wgsl/easu.wgsl.js.map +1 -0
  324. package/lib/renderer/wgsl/easuDetail.wgsl.d.ts +21 -0
  325. package/lib/renderer/wgsl/easuDetail.wgsl.js +230 -0
  326. package/lib/renderer/wgsl/easuDetail.wgsl.js.map +1 -0
  327. package/lib/renderer/wgsl/jnlm.compute.js +74 -74
  328. package/lib/renderer/wgsl/jnlm.compute.js.map +1 -1
  329. package/lib/renderer/wgsl/offlineAdaptive.compute.js +26 -26
  330. package/lib/renderer/wgsl/oidnAuxiliary.wgsl.js +3 -3
  331. package/lib/renderer/wgsl/photonMap.compute.d.ts +29 -0
  332. package/lib/renderer/wgsl/photonMap.compute.js +352 -0
  333. package/lib/renderer/wgsl/photonMap.compute.js.map +1 -0
  334. package/lib/renderer/wgsl/proceduralSky.compute.js +64 -64
  335. package/lib/renderer/wgsl/rayTrace.compute.d.ts +23 -1
  336. package/lib/renderer/wgsl/rayTrace.compute.js +531 -543
  337. package/lib/renderer/wgsl/rayTrace.compute.js.map +1 -1
  338. package/lib/scene/MaterialState.d.ts +2 -2
  339. package/lib/scene/MaterialState.js +2 -2
  340. package/lib/scene/MaterialState.js.map +1 -1
  341. package/lib/scene/Scene.js.map +1 -1
  342. package/lib/settings/render.d.ts +22 -0
  343. package/lib/settings/render.js +2 -0
  344. package/lib/settings/render.js.map +1 -1
  345. package/lib/util/fromTHREE.js +23 -16
  346. package/lib/util/fromTHREE.js.map +1 -1
  347. package/lib/version.d.ts +1 -1
  348. package/lib/version.js +1 -1
  349. package/lib/version.js.map +1 -1
  350. package/llms.txt +2 -1
  351. package/package.json +7 -4
  352. package/lib/oidnBundledWeights.cdn.d.ts +0 -2
  353. package/lib/oidnBundledWeights.cdn.js +0 -5
  354. package/lib/oidnBundledWeights.cdn.js.map +0 -1
  355. package/lib/renderer/bvh.worker.d.ts +0 -1
  356. package/lib/renderer/bvh.worker.js +0 -16
  357. package/lib/renderer/bvh.worker.js.map +0 -1
  358. package/lib/renderer/bvhWorkerBuild.d.ts +0 -13
  359. package/lib/renderer/bvhWorkerBuild.js +0 -17
  360. package/lib/renderer/bvhWorkerBuild.js.map +0 -1
  361. package/lib/renderer/lightCore.d.ts +0 -12
  362. package/lib/renderer/lightCore.js +0 -13
  363. package/lib/renderer/lightCore.js.map +0 -1
  364. package/lib/renderer/materialCore.d.ts +0 -8
  365. package/lib/renderer/materialCore.js +0 -9
  366. package/lib/renderer/materialCore.js.map +0 -1
  367. package/lib/scene/PixelTexture.d.ts +0 -6
  368. package/lib/scene/PixelTexture.js +0 -10
  369. package/lib/scene/PixelTexture.js.map +0 -1
  370. package/lib/util/studioLighting.d.ts +0 -18
  371. package/lib/util/studioLighting.js +0 -36
  372. package/lib/util/studioLighting.js.map +0 -1
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Library version. Kept in sync with package.json by a unit test. */
2
- export declare const VERSION = "0.2.0";
2
+ export declare const VERSION = "0.3.1";
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Library version. Kept in sync with package.json by a unit test. */
2
- export const VERSION = '0.2.0';
2
+ export const VERSION = '0.3.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC","sourcesContent":["/** Library version. Kept in sync with package.json by a unit test. */\nexport const VERSION = '0.2.0';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC","sourcesContent":["/** Library version. Kept in sync with package.json by a unit test. */\nexport const VERSION = '0.3.1';\n"]}
package/llms.txt CHANGED
@@ -10,7 +10,8 @@
10
10
  - Install: `npm install @meimu/mutracer` (+ `three` for Three.js integration). ESM and TypeScript; [quick start](docs/getting-started.md).
11
11
  - First layer: `new Engine({canvas})`, set `engine.scene` / `engine.camera`, then create `new Render(engine, options?)`; [independent renders](docs/progressive-rendering.md).
12
12
  - Frame: update controls/source adapters, call `engine.update()` once, `current.refine()`, then `engine.display.present(current)`. Only update detects/commits external edits; rendering compares revisions.
13
- - Sample batching: `batchSamples` (default false) lets one refine submit several samples; with `final: {batchSamples: true}`, RenderLoop also refines between display frames. [Two levels](docs/progressive-rendering.md#sample-batching).
13
+ - Sample batching: `batchSamples` (default false) lets one refine submit several samples; with `final: {batchSamples: true}`, RenderLoop also refines between display frames. Custom loops use `render.refineUntil(deadline, {signal})` before `present()`. [Two levels](docs/progressive-rendering.md#sample-batching).
14
+ - Caustics: `render.caustics = {lightTracing:true, photonMapping:true}`; experimental, off by default and WebGPU only. [Guide](docs/caustics.md), [options](docs/api.md#caustics).
14
15
  - Batch settings: `Object.assign(render, settings)` / `Object.assign(engine.display, settings)` with `RenderSettings` / `DisplaySettings`; constructor options configure Render. [Defaults](docs/api.md).
15
16
  - Ownership: Engine owns shared scene/device/BVH/atlas; Display owns tone mapping, bloom, HDR and channel; Render owns resolution, quality, samples, fallback and denoiser. `transmissiveOutputAlphaMin` is a Render option; [API](docs/api.md).
16
17
  - Initialization: optional `await engine.init()` gives backend, adapter and limits; `backend: 'auto'` defaults to WebGPU with WebGL fallback. `webgpu` requires WebGPU and `webgl` forces WebGL 2.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meimu/mutracer",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "MuTracer: a physically based WebGPU path tracer with WebGL 2 fallback, OpenPBR materials, TinyBVH and OIDN denoising.",
5
5
  "keywords": [
6
6
  "path tracing",
@@ -57,6 +57,7 @@
57
57
  "LICENSES",
58
58
  "THIRD_PARTY_NOTICES.md",
59
59
  "README.md",
60
+ "CHANGELOG.md",
60
61
  "docs",
61
62
  "llms.txt"
62
63
  ],
@@ -65,7 +66,7 @@
65
66
  "native:browser-reference": "node native/validation/reference-server.mjs",
66
67
  "native:check": "node native/validation/compiler/check.mjs",
67
68
  "dev": "vite",
68
- "build": "npm run typecheck && vite build",
69
+ "build": "npm run typecheck && vite build && node scripts/check-research-artifacts.mjs dist",
69
70
  "typecheck": "node scripts/generate-aov-reflectance-samples.mjs --check && node native/scripts/generate-layout-schema.mjs --check && node native/scripts/generate-display.mjs --check && node native/scripts/generate-sky.mjs --check && node native/scripts/generate-viewer-spheres.mjs --check && npm run check:material-comparison && tsc --noEmit",
70
71
  "test": "vitest run",
71
72
  "test:watch": "vitest",
@@ -81,7 +82,7 @@
81
82
  "build:lib": "npm run check:material-comparison && node scripts/build-lib.mjs",
82
83
  "watch:lib": "tsc --watch",
83
84
  "viewer": "vite --config viewer/vite.config.ts",
84
- "build:viewer": "vite build --config viewer/vite.config.ts",
85
+ "build:viewer": "vite build --config viewer/vite.config.ts && node scripts/check-research-artifacts.mjs dist-viewer",
85
86
  "typecheck:viewer": "tsc --noEmit -p viewer/tsconfig.json",
86
87
  "site": "vite --config site/vite.config.ts",
87
88
  "build:site": "node scripts/build-site.mjs",
@@ -112,7 +113,9 @@
112
113
  "native:ci": "node native/scripts/ci.mjs",
113
114
  "native:ci:gpu": "node native/scripts/ci.mjs --gpu",
114
115
  "native:ci:hosts": "node native/scripts/ci.mjs --gpu --hosts",
115
- "test:parity": "node scripts/test-parity.mjs"
116
+ "test:parity": "node scripts/test-parity.mjs",
117
+ "pbrt:inspect": "node scripts/pbrt-inspect.mjs",
118
+ "pbrt:compare": "node scripts/pbrt-compare.mjs"
116
119
  },
117
120
  "dependencies": {
118
121
  "@webgpu/types": "^0.1.40",
@@ -1,2 +0,0 @@
1
- export declare const standardWeightsUrl = "https://cdn.jsdelivr.net/npm/@meimu/mutracer@0.2.0/oidn/weights/rt_hdr_alb_nrm.tza";
2
- export declare const smallWeightsUrl = "https://cdn.jsdelivr.net/npm/@meimu/mutracer@0.2.0/oidn/weights/rt_hdr_alb_nrm_small.tza";
@@ -1,5 +0,0 @@
1
- import { VERSION } from './version.js';
2
- // Library bundles cannot carry package-relative assets; use the published copy.
3
- export const standardWeightsUrl = `https://cdn.jsdelivr.net/npm/@meimu/mutracer@${VERSION}/oidn/weights/rt_hdr_alb_nrm.tza`;
4
- export const smallWeightsUrl = `https://cdn.jsdelivr.net/npm/@meimu/mutracer@${VERSION}/oidn/weights/rt_hdr_alb_nrm_small.tza`;
5
- //# sourceMappingURL=oidnBundledWeights.cdn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oidnBundledWeights.cdn.js","sourceRoot":"","sources":["../src/oidnBundledWeights.cdn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAG,gDAAgD,OAAO,kCAAkC,CAAC;AAC5H,MAAM,CAAC,MAAM,eAAe,GAAG,gDAAgD,OAAO,wCAAwC,CAAC","sourcesContent":["import { VERSION } from './version.js';\n\n// Library bundles cannot carry package-relative assets; use the published copy.\nexport const standardWeightsUrl = `https://cdn.jsdelivr.net/npm/@meimu/mutracer@${VERSION}/oidn/weights/rt_hdr_alb_nrm.tza`;\nexport const smallWeightsUrl = `https://cdn.jsdelivr.net/npm/@meimu/mutracer@${VERSION}/oidn/weights/rt_hdr_alb_nrm_small.tza`;\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,16 +0,0 @@
1
- import { executeBvhBuild } from './bvhWorkerBuild.js';
2
- const scope = self;
3
- // Serialize builds to reuse TinyBVH's WASM instance and bound working memory.
4
- let queue = Promise.resolve();
5
- scope.onmessage = ({ data }) => {
6
- queue = queue.then(async () => {
7
- try {
8
- const bvh = await executeBvhBuild(data);
9
- scope.postMessage({ id: data.id, bvh }, [bvh.buffer]);
10
- }
11
- catch (error) {
12
- scope.postMessage({ id: data.id, error: error instanceof Error ? error.message : String(error) });
13
- }
14
- });
15
- };
16
- //# sourceMappingURL=bvh.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bvh.worker.js","sourceRoot":"","sources":["../../src/renderer/bvh.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,KAAK,GAAG,IAGb,CAAC;AACF,8EAA8E;AAC9E,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC9B,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { executeBvhBuild } from './bvhWorkerBuild.js';\nimport type { BvhBuildRequest, BvhBuildResponse } from './bvhWorkerClient.js';\n\nconst scope = self as unknown as {\n onmessage: (event: MessageEvent<BvhBuildRequest>) => void;\n postMessage: (response: BvhBuildResponse, transfers?: Transferable[]) => void;\n};\n// Serialize builds to reuse TinyBVH's WASM instance and bound working memory.\nlet queue = Promise.resolve();\nscope.onmessage = ({ data }) => {\n queue = queue.then(async () => {\n try {\n const bvh = await executeBvhBuild(data);\n scope.postMessage({ id: data.id, bvh }, [bvh.buffer]);\n } catch (error) {\n scope.postMessage({ id: data.id, error: error instanceof Error ? error.message : String(error) });\n }\n });\n};\n"]}
@@ -1,13 +0,0 @@
1
- import type { BvhBuildRequest } from './bvhWorkerClient.js';
2
- /** Shared worker operation, also executable without browser globals in tests. */
3
- export declare function executeBvhBuild(request: BvhBuildRequest): Promise<{
4
- bvhTimeMs: number;
5
- builder?: "builtin" | "tinybvh";
6
- buildSurfaceArea?: number;
7
- maxDepth: number;
8
- maxLeafPrimitives?: number;
9
- buffer: ArrayBuffer;
10
- triangleIds?: Uint32Array;
11
- layout?: import("./bvhAccel.js").BvhLayout;
12
- instancesBuffer?: ArrayBuffer;
13
- }>;
@@ -1,17 +0,0 @@
1
- import { buildTinyBvh } from '../tinybvh/TinyBvhBuilder.js';
2
- import Geometry from '../scene/Geometry.js';
3
- import { buildBLAS } from './bvhAccel.js';
4
- /** Shared worker operation, also executable without browser globals in tests. */
5
- export async function executeBvhBuild(request) {
6
- const geometry = new Geometry({
7
- position: request.position, normal: request.normal, indices: request.indices
8
- });
9
- geometry.dynamic = request.dynamic;
10
- if (request.builder === 'tinybvh' && !geometry.dynamic) {
11
- return buildTinyBvh(geometry, request.displacementScale, request.trianglesDisplacement, request.layout, request.spatialSplits);
12
- }
13
- const start = performance.now();
14
- return { ...buildBLAS(geometry, request.displacementScale, request.trianglesDisplacement),
15
- bvhTimeMs: performance.now() - start };
16
- }
17
- //# sourceMappingURL=bvhWorkerBuild.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bvhWorkerBuild.js","sourceRoot":"","sources":["../../src/renderer/bvhWorkerBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAwB;IAC5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;KAC7E,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,qBAAqB,EACpF,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,qBAAqB,CAAC;QACvF,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3C,CAAC","sourcesContent":["import { buildTinyBvh } from '../tinybvh/TinyBvhBuilder.js';\nimport Geometry from '../scene/Geometry.js';\nimport { buildBLAS } from './bvhAccel.js';\nimport type { BvhBuildRequest } from './bvhWorkerClient.js';\n\n/** Shared worker operation, also executable without browser globals in tests. */\nexport async function executeBvhBuild(request: BvhBuildRequest) {\n const geometry = new Geometry({\n position: request.position, normal: request.normal, indices: request.indices\n });\n geometry.dynamic = request.dynamic;\n if (request.builder === 'tinybvh' && !geometry.dynamic) {\n return buildTinyBvh(geometry, request.displacementScale, request.trianglesDisplacement,\n request.layout, request.spatialSplits);\n }\n const start = performance.now();\n return { ...buildBLAS(geometry, request.displacementScale, request.trianglesDisplacement),\n bvhTimeMs: performance.now() - start };\n}\n"]}
@@ -1,12 +0,0 @@
1
- export { default as MeshState } from '../scene/MeshState.js';
2
- export { default as InstanceState } from '../scene/InstanceState.js';
3
- export { default as MaterialState } from '../scene/MaterialState.js';
4
- export { default as TextureState } from '../scene/TextureState.js';
5
- export { default as RectLightState } from '../scene/RectLightState.js';
6
- export { default as EnvironmentLightState } from '../scene/EnvironmentLightState.js';
7
- export { default as DirectionalLight } from '../scene/DirectionalLight.js';
8
- export { default as SphereLight } from '../scene/SphereLight.js';
9
- export { default as SpotLight } from '../scene/SpotLight.js';
10
- export { default as AmbientLight } from '../scene/AmbientLight.js';
11
- export * from './lightSampling.js';
12
- export * from './lightsData.js';
@@ -1,13 +0,0 @@
1
- export { default as MeshState } from '../scene/MeshState.js';
2
- export { default as InstanceState } from '../scene/InstanceState.js';
3
- export { default as MaterialState } from '../scene/MaterialState.js';
4
- export { default as TextureState } from '../scene/TextureState.js';
5
- export { default as RectLightState } from '../scene/RectLightState.js';
6
- export { default as EnvironmentLightState } from '../scene/EnvironmentLightState.js';
7
- export { default as DirectionalLight } from '../scene/DirectionalLight.js';
8
- export { default as SphereLight } from '../scene/SphereLight.js';
9
- export { default as SpotLight } from '../scene/SpotLight.js';
10
- export { default as AmbientLight } from '../scene/AmbientLight.js';
11
- export * from './lightSampling.js';
12
- export * from './lightsData.js';
13
- //# sourceMappingURL=lightCore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lightCore.js","sourceRoot":"","sources":["../../src/renderer/lightCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,OAAO,IAAI,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACjE,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC","sourcesContent":["export {default as MeshState} from '../scene/MeshState.js';\nexport {default as InstanceState} from '../scene/InstanceState.js';\nexport {default as MaterialState} from '../scene/MaterialState.js';\nexport {default as TextureState} from '../scene/TextureState.js';\nexport {default as RectLightState} from '../scene/RectLightState.js';\nexport {default as EnvironmentLightState} from '../scene/EnvironmentLightState.js';\nexport {default as DirectionalLight} from '../scene/DirectionalLight.js';\nexport {default as SphereLight} from '../scene/SphereLight.js';\nexport {default as SpotLight} from '../scene/SpotLight.js';\nexport {default as AmbientLight} from '../scene/AmbientLight.js';\nexport * from './lightSampling.js';\nexport * from './lightsData.js';\n"]}
@@ -1,8 +0,0 @@
1
- export { default as MaterialData } from './MaterialData.js';
2
- export { default as MaterialState } from '../scene/MaterialState.js';
3
- export { default as TextureState } from '../scene/TextureState.js';
4
- export { default as PixelTexture } from '../scene/PixelTexture.js';
5
- export * from './materialParams.js';
6
- export * from './materialTextures.js';
7
- export * from './textureAtlas.js';
8
- export * from './textureAtlasPixels.js';
@@ -1,9 +0,0 @@
1
- export { default as MaterialData } from './MaterialData.js';
2
- export { default as MaterialState } from '../scene/MaterialState.js';
3
- export { default as TextureState } from '../scene/TextureState.js';
4
- export { default as PixelTexture } from '../scene/PixelTexture.js';
5
- export * from './materialParams.js';
6
- export * from './materialTextures.js';
7
- export * from './textureAtlas.js';
8
- export * from './textureAtlasPixels.js';
9
- //# sourceMappingURL=materialCore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"materialCore.js","sourceRoot":"","sources":["../../src/renderer/materialCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACjE,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC","sourcesContent":["export {default as MaterialData} from './MaterialData.js';\nexport {default as MaterialState} from '../scene/MaterialState.js';\nexport {default as TextureState} from '../scene/TextureState.js';\nexport {default as PixelTexture} from '../scene/PixelTexture.js';\nexport * from './materialParams.js';\nexport * from './materialTextures.js';\nexport * from './textureAtlas.js';\nexport * from './textureAtlasPixels.js';\n"]}
@@ -1,6 +0,0 @@
1
- import TextureState from './TextureState.js';
2
- import type { TextureDataSource } from './textureData.js';
3
- export default class PixelTexture extends TextureState {
4
- readonly pixels: TextureDataSource;
5
- constructor(pixels: TextureDataSource);
6
- }
@@ -1,10 +0,0 @@
1
- import TextureState from './TextureState.js';
2
- // Separate native pixel ownership from the portable image-dimension record.
3
- export default class PixelTexture extends TextureState {
4
- pixels;
5
- constructor(pixels) {
6
- super({ width: pixels.width, height: pixels.height });
7
- this.pixels = pixels;
8
- }
9
- }
10
- //# sourceMappingURL=PixelTexture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PixelTexture.js","sourceRoot":"","sources":["../../src/scene/PixelTexture.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAG7C,4EAA4E;AAC5E,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAC3C,MAAM,CAAoB;IACnC,YAAY,MAAyB;QACnC,KAAK,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF","sourcesContent":["import TextureState from './TextureState.js';\nimport type { TextureDataSource } from './textureData.js';\n\n// Separate native pixel ownership from the portable image-dimension record.\nexport default class PixelTexture extends TextureState {\n readonly pixels: TextureDataSource;\n constructor(pixels: TextureDataSource) {\n super({width: pixels.width, height: pixels.height});\n this.pixels = pixels;\n }\n}\n"]}
@@ -1,18 +0,0 @@
1
- export declare function studioPanel(cx: number, cy: number, cz: number, radius: number, azimuthDegrees: number, elevationDegrees: number, panelDistance: number, panelWidth: number, panelHeight: number, power: number, intensity: number, rotation: number, size: number, ground: number): [
2
- number,
3
- number,
4
- number,
5
- number,
6
- number,
7
- number,
8
- number,
9
- number,
10
- number,
11
- number,
12
- number,
13
- number,
14
- number,
15
- number,
16
- number
17
- ];
18
- export declare function studioAmbientValue(row: number, height: number): number;
@@ -1,36 +0,0 @@
1
- // Shared studio placement and ambient gradient, independent of Three.js.
2
- export function studioPanel(cx, cy, cz, radius, azimuthDegrees, elevationDegrees, panelDistance, panelWidth, panelHeight, power, intensity, rotation, size, ground) {
3
- const r = Math.max(radius, 1e-3);
4
- const azimuth = (azimuthDegrees + rotation) * (Math.PI / 180);
5
- const width = panelWidth * size * r;
6
- const height = panelHeight * size * r;
7
- const distance = panelDistance * r;
8
- const xx = Math.cos(azimuth);
9
- const xz = -Math.sin(azimuth);
10
- let elevation = elevationDegrees * (Math.PI / 180);
11
- let zx = Math.sin(azimuth) * Math.cos(elevation);
12
- let zy = Math.sin(elevation);
13
- let zz = Math.cos(azimuth) * Math.cos(elevation);
14
- let yy = zz * xx - zx * xz;
15
- let py = cy + zy * distance;
16
- for (let i = 0; i < 16; i++) {
17
- if (py - Math.abs(yy) * height / 2 >= ground + 0.02 * r) {
18
- break;
19
- }
20
- elevation += 2 * (Math.PI / 180);
21
- zx = Math.sin(azimuth) * Math.cos(elevation);
22
- zy = Math.sin(elevation);
23
- zz = Math.cos(azimuth) * Math.cos(elevation);
24
- yy = zz * xx - zx * xz;
25
- py = cy + zy * distance;
26
- }
27
- const radiance = (Math.PI * 2 * intensity * power * panelDistance ** 2)
28
- / (panelWidth * panelHeight * size * size);
29
- return [width, height, radiance, xx, 0, xz, zy * xz, yy, -zy * xx,
30
- zx, zy, zz, cx + zx * distance, py, cz + zz * distance];
31
- }
32
- export function studioAmbientValue(row, height) {
33
- const y = Math.cos(((row + 0.5) / height) * Math.PI);
34
- return y >= 0 ? 0.6 + 0.4 * y : 0.6 + 0.35 * y;
35
- }
36
- //# sourceMappingURL=studioLighting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"studioLighting.js","sourceRoot":"","sources":["../../src/util/studioLighting.ts"],"names":[],"mappings":"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","sourcesContent":["// Shared studio placement and ambient gradient, independent of Three.js.\nexport function studioPanel(cx: number, cy: number, cz: number, radius: number,\n azimuthDegrees: number, elevationDegrees: number, panelDistance: number,\n panelWidth: number, panelHeight: number, power: number, intensity: number,\n rotation: number, size: number, ground: number): [number, number, number,\n number, number, number, number, number, number, number, number, number, number, number, number] {\n const r = Math.max(radius, 1e-3);\n const azimuth = (azimuthDegrees + rotation) * (Math.PI / 180);\n const width = panelWidth * size * r;\n const height = panelHeight * size * r;\n const distance = panelDistance * r;\n const xx = Math.cos(azimuth);\n const xz = -Math.sin(azimuth);\n let elevation = elevationDegrees * (Math.PI / 180);\n let zx = Math.sin(azimuth) * Math.cos(elevation);\n let zy = Math.sin(elevation);\n let zz = Math.cos(azimuth) * Math.cos(elevation);\n let yy = zz * xx - zx * xz;\n let py = cy + zy * distance;\n for (let i = 0; i < 16; i++) {\n if (py - Math.abs(yy) * height / 2 >= ground + 0.02 * r) { break; }\n elevation += 2 * (Math.PI / 180);\n zx = Math.sin(azimuth) * Math.cos(elevation);\n zy = Math.sin(elevation);\n zz = Math.cos(azimuth) * Math.cos(elevation);\n yy = zz * xx - zx * xz;\n py = cy + zy * distance;\n }\n const radiance = (Math.PI * 2 * intensity * power * panelDistance ** 2)\n / (panelWidth * panelHeight * size * size);\n return [width, height, radiance, xx, 0, xz, zy * xz, yy, -zy * xx,\n zx, zy, zz, cx + zx * distance, py, cz + zz * distance];\n}\nexport function studioAmbientValue(row: number, height: number): number {\n const y = Math.cos(((row + 0.5) / height) * Math.PI);\n return y >= 0 ? 0.6 + 0.4 * y : 0.6 + 0.35 * y;\n}\n"]}