rayzee 9.4.2 → 9.5.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 (144) hide show
  1. package/README.md +223 -21
  2. package/dist/ActiveColor-YvuQq44O.js +13 -0
  3. package/dist/ArchiveImporter-xuUJiklP.js +4301 -0
  4. package/dist/AssetConfig-DSEntE65.js +30 -0
  5. package/dist/BidirectionalIntegrator-C5PKjJoT.js +934 -0
  6. package/dist/ColorManagement-CheBCPaW.js +1488 -0
  7. package/dist/EngineDefaults-DH3bI5t-.js +844 -0
  8. package/dist/EngineEvents-Ci8dVWCP.js +73 -0
  9. package/dist/EngineIssues-CIZnXHsF.js +72 -0
  10. package/dist/FileFormats-sPGJeCRc.js +102 -0
  11. package/dist/Logger-BnHghprG.js +97 -0
  12. package/dist/{NeuralRetouch-vkdXXyK2.js → NeuralRetouch-CW11yLZ_.js} +8 -6
  13. package/dist/{NeuralSuperRes-FVqRJKQV.js → NeuralSuperRes-BekaecYg.js} +55 -120
  14. package/dist/PathTracer-Ccl9KOuF.js +29729 -0
  15. package/dist/PhysicalSky-Dv2PMFGW.js +1219 -0
  16. package/dist/RayzeeRenderer-BQxnzCTD.js +3542 -0
  17. package/dist/SolarLimb-ken-JbDK.js +721 -0
  18. package/dist/ToneMapGPU-BHi5JzIq.js +177 -0
  19. package/dist/ViewTransforms-D0rTLBsX.js +255 -0
  20. package/dist/WorkingMatrix-C6y233hT.js +27 -0
  21. package/dist/ZipReader-gDSWr0I5.js +98 -0
  22. package/dist/addons/archives.es.js +3 -0
  23. package/dist/addons/bidirectional.es.js +2 -0
  24. package/dist/addons/color.es.js +3 -0
  25. package/dist/addons/formats.es.js +2 -0
  26. package/dist/addons/physical-sky.es.js +2 -0
  27. package/dist/addons/storage.es.js +3 -0
  28. package/dist/archiveFormats-BZw7TiDp.js +75 -0
  29. package/dist/identity-DrQsGT2o.js +39 -0
  30. package/dist/openStorage-DwcBRUj7.js +820 -0
  31. package/dist/rayzee-core.es.js +12 -0
  32. package/dist/rayzee.es.js +2266 -44079
  33. package/dist/rayzee.umd.js +485 -473
  34. package/dist/sceneCachePolicy-BmwYOYDu.js +183 -0
  35. package/dist/shared-BGBcSxBQ.js +17 -0
  36. package/package.json +23 -2
  37. package/src/Color/ActiveColor.js +34 -0
  38. package/src/Color/BasicColor.js +147 -0
  39. package/src/Color/ColorManagement.js +7 -31
  40. package/src/EngineDefaults.js +22 -8
  41. package/src/EngineEvents.js +2 -0
  42. package/src/EngineIssues.js +1 -0
  43. package/src/PathTracerApp.js +617 -4016
  44. package/src/Pipeline/PipelineContext.js +0 -4
  45. package/src/Platform.js +36 -0
  46. package/src/Processor/ArchiveCache.js +1 -1
  47. package/src/Processor/ArchiveImporter.js +1259 -0
  48. package/src/Processor/AssetLoader.js +322 -1746
  49. package/src/Processor/AtmosphereModel.js +1 -2
  50. package/src/Processor/BVHBuilder.js +4 -95
  51. package/src/Processor/EnvironmentExactTable.js +187 -0
  52. package/src/Processor/EquirectHDRInfo.js +30 -223
  53. package/src/Processor/FileFormats.js +116 -0
  54. package/src/Processor/GLTFDecoders.js +85 -0
  55. package/src/Processor/GLTFDiffuseTransmission.js +63 -0
  56. package/src/Processor/GeometryExtractor.js +12 -1
  57. package/src/Processor/IESParser.js +47 -35
  58. package/src/Processor/KernelManager.js +35 -2
  59. package/src/Processor/MaterialPacking.js +8 -7
  60. package/src/Processor/PBRT/PBRTMaterials.js +129 -41
  61. package/src/Processor/PBRT/PBRTParser.js +30 -17
  62. package/src/Processor/PBRT/PBRTSceneBuilder.js +548 -37
  63. package/src/Processor/PBRT/PBRTTextureBake.js +154 -0
  64. package/src/Processor/PBRT/PFM.js +59 -0
  65. package/src/Processor/PackedRayBuffer.js +116 -9
  66. package/src/Processor/ParallelBVHBuilder.js +3 -6
  67. package/src/Processor/PhysicalSky.js +5 -4
  68. package/src/Processor/PlatformImageLoader.js +50 -6
  69. package/src/Processor/QueueManager.js +12 -3
  70. package/src/Processor/ReinsertionOptimizer.js +2 -2
  71. package/src/Processor/SceneProcessor.js +15 -55
  72. package/src/Processor/ShaderBuilder.js +6 -16
  73. package/src/Processor/SolarLimb.js +3 -0
  74. package/src/Processor/TextureCreator.js +1 -1
  75. package/src/Processor/Workers/BVHSubtreeWorker.js +1 -34
  76. package/src/Processor/Workers/BVHWorker.js +5 -18
  77. package/src/Processor/Workers/CDFWorker.js +6 -183
  78. package/src/Processor/archiveFormats.js +7 -0
  79. package/src/Processor/utils.js +2 -1
  80. package/src/RayzeeRenderer.js +3902 -0
  81. package/src/RenderSettings.js +49 -41
  82. package/src/Stages/ASVGF.js +5 -7
  83. package/src/Stages/AutoExposure.js +3 -12
  84. package/src/Stages/Compositor.js +8 -23
  85. package/src/Stages/NRD.js +9 -2
  86. package/src/Stages/NormalDepth.js +9 -6
  87. package/src/Stages/PathTracer.js +254 -38
  88. package/src/Stages/PathTracerStage.js +11 -16
  89. package/src/Storage/BLASCache.js +1 -1
  90. package/src/Storage/CDFCache.js +18 -17
  91. package/src/Storage/DownloadCache.js +1 -1
  92. package/src/Storage/SceneGraphCodec.js +46 -3
  93. package/src/Storage/SpillStore.js +1 -1
  94. package/src/Storage/StorageManager.js +2 -4
  95. package/src/Storage/areas.js +4 -0
  96. package/src/TSL/BVHTraversal.js +62 -24
  97. package/src/TSL/Bidirectional.js +204 -0
  98. package/src/TSL/BidirectionalLamps.js +132 -0
  99. package/src/TSL/Clearcoat.js +15 -6
  100. package/src/TSL/Common.js +19 -14
  101. package/src/TSL/ConnectKernel.js +147 -0
  102. package/src/TSL/Debugger.js +1 -1
  103. package/src/TSL/Displacement.js +4 -3
  104. package/src/TSL/EmissiveSampling.js +64 -17
  105. package/src/TSL/Environment.js +77 -106
  106. package/src/TSL/EnvironmentCDF.js +85 -39
  107. package/src/TSL/ExtendKernel.js +8 -3
  108. package/src/TSL/FinalWriteKernel.js +4 -4
  109. package/src/TSL/GenerateKernel.js +18 -4
  110. package/src/TSL/HitFacet.js +35 -5
  111. package/src/TSL/LightBVHSampling.js +40 -9
  112. package/src/TSL/LightGenerateKernel.js +293 -0
  113. package/src/TSL/LightGuide.js +198 -0
  114. package/src/TSL/LightSplatKernel.js +165 -0
  115. package/src/TSL/LightsCore.js +13 -38
  116. package/src/TSL/LightsDirect.js +28 -29
  117. package/src/TSL/LightsIndirect.js +3 -1
  118. package/src/TSL/LightsSampling.js +90 -38
  119. package/src/TSL/MaterialEvaluation.js +113 -31
  120. package/src/TSL/MaterialProperties.js +44 -17
  121. package/src/TSL/MaterialTransmission.js +52 -47
  122. package/src/TSL/MergeKernel.js +218 -0
  123. package/src/TSL/PathTracerCore.js +65 -29
  124. package/src/TSL/Random.js +4 -0
  125. package/src/TSL/SceneResources.js +51 -0
  126. package/src/TSL/ShadeKernel.js +881 -103
  127. package/src/TSL/Struct.js +10 -0
  128. package/src/TSL/Sun.js +1 -1
  129. package/src/TSL/TextureSampling.js +65 -60
  130. package/src/addons/archives.js +14 -0
  131. package/src/addons/bidirectional.js +13 -0
  132. package/src/addons/color.js +32 -0
  133. package/src/addons/formats.js +16 -0
  134. package/src/addons/physicalSky.js +14 -0
  135. package/src/addons/storage.js +19 -0
  136. package/src/core.js +35 -0
  137. package/src/index.js +3 -1
  138. package/src/integrators/BidirectionalIntegrator.js +832 -0
  139. package/src/managers/EnvironmentManager.js +85 -33
  140. package/src/managers/MaterialDataManager.js +42 -0
  141. package/src/managers/UniformManager.js +0 -1
  142. package/dist/ToneMapGPU-DKQM1pMd.js +0 -552
  143. package/dist/rolldown-runtime-CAFD8bLK.js +0 -11
  144. package/src/Processor/TreeletOptimizer.js +0 -574
@@ -0,0 +1,844 @@
1
+ //#region src/Processor/SunPosition.js
2
+ var e = Math.PI / 180;
3
+ function t(e) {
4
+ let t = 2 * Math.PI * (e - 1) / 365;
5
+ return .006918 - .399912 * Math.cos(t) + .070257 * Math.sin(t) - .006758 * Math.cos(2 * t) + 907e-6 * Math.sin(2 * t) - .002697 * Math.cos(3 * t) + .00148 * Math.sin(3 * t);
6
+ }
7
+ function n({ hours: n, dayOfYear: r, latitude: i }) {
8
+ let a = t(r), o = (n - 12) * 15 * e, s = i * e, c = Math.sin(s) * Math.sin(a) + Math.cos(s) * Math.cos(a) * Math.cos(o), l = Math.asin(Math.min(1, Math.max(-1, c))) / e;
9
+ return {
10
+ azimuth: (Math.atan2(Math.sin(o), Math.cos(o) * Math.sin(s) - Math.tan(a) * Math.cos(s)) / e + 540) % 360,
11
+ elevation: l
12
+ };
13
+ }
14
+ function r({ elevation: n, dayOfYear: r, latitude: i, afternoon: a = !1 }) {
15
+ let o = t(r), s = i * e, c = (Math.sin(n * e) - Math.sin(s) * Math.sin(o)) / (Math.cos(s) * Math.cos(o)), l = Math.acos(Math.min(1, Math.max(-1, c))) / e / 15;
16
+ return a ? 12 + l : 12 - l;
17
+ }
18
+ var i = (e) => [
19
+ 0,
20
+ 31,
21
+ 59,
22
+ 90,
23
+ 120,
24
+ 151,
25
+ 181,
26
+ 212,
27
+ 243,
28
+ 273,
29
+ 304,
30
+ 334
31
+ ][e - 1] + 21, a = Object.freeze({
32
+ time: 10,
33
+ month: 3,
34
+ latitude: 40
35
+ }), o = n({
36
+ hours: a.time,
37
+ dayOfYear: i(a.month),
38
+ latitude: a.latitude
39
+ }), s = Object.freeze({
40
+ viewer: Object.freeze({
41
+ areaLightIntensityScale: .1,
42
+ environmentRotation: 0,
43
+ toneMapping: 6,
44
+ saturation: 1,
45
+ dofMode: "look"
46
+ }),
47
+ physical: Object.freeze({
48
+ areaLightIntensityScale: 1,
49
+ environmentRotation: 0,
50
+ toneMapping: 6,
51
+ saturation: 1,
52
+ dofMode: "physical"
53
+ })
54
+ });
55
+ function c(e = "viewer") {
56
+ let t = s[e];
57
+ if (!t) throw Error(`unknown render profile "${e}" — expected one of ${Object.keys(s).join(", ")}`);
58
+ return t;
59
+ }
60
+ var l = 6e7, u = 8e6, d = {
61
+ resolution: 512,
62
+ canvasWidth: 512,
63
+ canvasHeight: 512,
64
+ maxTextureSize: 4096,
65
+ toneMapping: s.viewer.toneMapping,
66
+ exposure: 1,
67
+ saturation: s.viewer.saturation,
68
+ enableEnvironment: !0,
69
+ showBackground: !0,
70
+ transparentBackground: !1,
71
+ environmentIntensity: 1,
72
+ backgroundIntensity: 1,
73
+ backgroundColor: "#000000",
74
+ backgroundBlurriness: 0,
75
+ backgroundBlurSamples: 8,
76
+ environmentRotation: s.viewer.environmentRotation,
77
+ groundProjectionEnabled: !1,
78
+ groundProjectionRadius: 100,
79
+ groundProjectionHeight: 15,
80
+ groundProjectionLevel: 0,
81
+ enableGroundCatcher: !1,
82
+ groundCatcherHeight: 0,
83
+ globalIlluminationIntensity: 1,
84
+ environmentMode: "hdri",
85
+ solidSkyColor: "#87CEEB",
86
+ skySunAzimuth: 180 - o.azimuth,
87
+ skySunElevation: o.elevation,
88
+ skySunStrength: 1,
89
+ skySunSize: .53,
90
+ skyTurbidity: 2,
91
+ skyOzone: 300,
92
+ skyAirDensity: 1,
93
+ skyGroundAlbedo: "#959595",
94
+ skyAltitude: 50,
95
+ skyPreset: "clearDay",
96
+ cameraProjection: "perspective",
97
+ panoramaLonRange: [-180, 180],
98
+ panoramaLatRange: [-90, 90],
99
+ panoramaLevelHorizon: !0,
100
+ enableDOF: !1,
101
+ fov: 55,
102
+ focusDistance: .8,
103
+ aperture: 5.6,
104
+ focalLength: 50,
105
+ apertureScale: 1,
106
+ anamorphicRatio: 1,
107
+ unitsPerMetre: 1,
108
+ dofMode: s.viewer.dofMode,
109
+ dofBlur: .05,
110
+ autoFocusMode: "auto",
111
+ afScreenPoint: {
112
+ x: .5,
113
+ y: .5
114
+ },
115
+ afSmoothingFactor: .15,
116
+ enablePathTracer: !0,
117
+ enableAccumulation: !0,
118
+ pauseRendering: !1,
119
+ maxSamples: 60,
120
+ bounces: 3,
121
+ transmissiveBounces: 5,
122
+ maxSubsurfaceSteps: 8,
123
+ maxTransparentBounces: 32,
124
+ useAdaptiveSampling: !0,
125
+ noiseThreshold: .1,
126
+ adaptiveMinSamples: 8,
127
+ adaptiveStopFraction: .9,
128
+ usePixelFreeze: !0,
129
+ pixelFreezeThreshold: .02,
130
+ pixelFreezeStability: 8,
131
+ convergenceOverlay: !1,
132
+ samplingTechnique: 2,
133
+ integrator: "path",
134
+ enableEmissiveTriangleSampling: !1,
135
+ emissiveBoost: 1,
136
+ fireflyThreshold: 3,
137
+ shadowTerminatorOffset: .1,
138
+ wavefrontSortMaterials: !0,
139
+ renderLimitMode: "frames",
140
+ renderTimeLimit: 30,
141
+ renderMode: 0,
142
+ enableAlphaShadows: !1,
143
+ tilesHelper: !0,
144
+ showLightHelper: !1,
145
+ directionalLightIntensity: 0,
146
+ directionalLightColor: "#ffffff",
147
+ directionalLightPosition: [
148
+ 1,
149
+ 1,
150
+ 1
151
+ ],
152
+ directionalLightAngle: 0,
153
+ filterStrength: 1,
154
+ edgeAtrousIterations: 5,
155
+ edgePhiLuminance: 4,
156
+ edgePhiNormal: 64,
157
+ edgePhiDepth: .1,
158
+ enableOIDN: !1,
159
+ oidnQuality: "fast",
160
+ continuousDenoise: !1,
161
+ continuousDenoiseInterval: 8,
162
+ oidnTemporalHistory: !0,
163
+ enableUpscaler: !1,
164
+ upscalerScale: 2,
165
+ upscalerQuality: "fast",
166
+ upscalerHdr: !0,
167
+ debugMode: 0,
168
+ debugThreshold: 100,
169
+ debugModel: 0,
170
+ enableBloom: !1,
171
+ bloomStrength: .2,
172
+ bloomRadius: .15,
173
+ bloomThreshold: .85,
174
+ interactionModeEnabled: !0,
175
+ interactionRenderScale: .5,
176
+ debugVisScale: 100,
177
+ denoiserStrategy: "none",
178
+ enableASVGF: !1,
179
+ asvgfTemporalAlpha: .1,
180
+ asvgfAtrousIterations: 8,
181
+ asvgfPhiColor: 10,
182
+ asvgfPhiNormal: 128,
183
+ asvgfPhiDepth: 1,
184
+ asvgfVarianceBoost: 1,
185
+ asvgfMaxAccumFrames: 32,
186
+ asvgfGradientStrength: 1,
187
+ asvgfGradientSigmaScale: 2,
188
+ asvgfGradientNoiseFloor: 0,
189
+ asvgfDebugMode: 0,
190
+ asvgfQualityPreset: "medium",
191
+ showAsvgfHeatmap: !1,
192
+ nrdQualityPreset: "medium",
193
+ nrdDebugMode: 0,
194
+ autoExposure: !1,
195
+ autoExposureKeyValue: .18,
196
+ autoExposureMinExposure: .1,
197
+ autoExposureMaxExposure: 20,
198
+ autoExposureAdaptSpeedBright: 3,
199
+ autoExposureAdaptSpeedDark: .5
200
+ }, f = Object.freeze({
201
+ perspective: 0,
202
+ equirectangular: 1,
203
+ orthographic: 2
204
+ }), p = 6e4, m = 3, h = .1, g = .01, _ = 4096, v = 2048;
205
+ function y(e) {
206
+ return v = Math.max(256, Math.min(_, Math.floor(e) || 256)), v;
207
+ }
208
+ var b = {
209
+ low: {
210
+ temporalAlpha: .1,
211
+ gradientStrength: .8,
212
+ gradientSigmaScale: 2.5,
213
+ gradientNoiseFloor: .05,
214
+ atrousIterations: 3,
215
+ phiColor: 1,
216
+ phiNormal: 64,
217
+ phiDepth: .1,
218
+ phiLuminance: 6,
219
+ maxAccumFrames: 16,
220
+ varianceBoost: .5
221
+ },
222
+ medium: {
223
+ temporalAlpha: .03,
224
+ gradientStrength: 1,
225
+ gradientSigmaScale: 2.5,
226
+ gradientNoiseFloor: .05,
227
+ atrousIterations: 4,
228
+ phiColor: .5,
229
+ phiNormal: 128,
230
+ phiDepth: .05,
231
+ phiLuminance: 4,
232
+ maxAccumFrames: 64,
233
+ varianceBoost: 1
234
+ },
235
+ high: {
236
+ temporalAlpha: 0,
237
+ gradientStrength: 1,
238
+ gradientSigmaScale: 2.5,
239
+ gradientNoiseFloor: .05,
240
+ atrousIterations: 6,
241
+ phiColor: .3,
242
+ phiNormal: 256,
243
+ phiDepth: .02,
244
+ phiLuminance: 2,
245
+ maxAccumFrames: 128,
246
+ varianceBoost: 1.5
247
+ }
248
+ }, x = {
249
+ maxAccumulatedFrameNum: 30,
250
+ maxFastAccumulatedFrameNum: 6,
251
+ maxStabilizedFrameNum: 63,
252
+ historyFixFrameNum: 3,
253
+ historyFixBasePixelStride: 14,
254
+ prepassBlurRadius: 30,
255
+ minBlurRadius: 1,
256
+ maxBlurRadius: 30,
257
+ lobeAngleFraction: .15,
258
+ roughnessFraction: .15,
259
+ planeDistanceSensitivity: .02,
260
+ minHitDistanceWeight: .1,
261
+ fastHistoryClampingSigmaScale: 2,
262
+ fireflySuppressorMinRelativeScale: 2,
263
+ enableAntiFirefly: !0,
264
+ antilagLuminanceSigmaScale: 2,
265
+ antilagLuminanceSensitivity: 3,
266
+ disocclusionThreshold: .01,
267
+ convergenceS: 1,
268
+ convergenceB: .2,
269
+ convergenceP: .8,
270
+ lobeVolumePercent: .1,
271
+ handoverFrames: 0
272
+ }, S = [
273
+ "maxAccumulatedFrameNum",
274
+ "maxFastAccumulatedFrameNum",
275
+ "maxStabilizedFrameNum",
276
+ "historyFixFrameNum",
277
+ "prepassBlurRadius",
278
+ "maxBlurRadius",
279
+ "enableAntiFirefly"
280
+ ], C = {
281
+ low: {
282
+ maxAccumulatedFrameNum: 16,
283
+ maxFastAccumulatedFrameNum: 4,
284
+ maxStabilizedFrameNum: 16,
285
+ historyFixFrameNum: 2,
286
+ prepassBlurRadius: 0,
287
+ maxBlurRadius: 20,
288
+ enableAntiFirefly: !1
289
+ },
290
+ medium: {},
291
+ high: {
292
+ maxAccumulatedFrameNum: 45,
293
+ maxFastAccumulatedFrameNum: 8,
294
+ historyFixFrameNum: 4,
295
+ prepassBlurRadius: 40,
296
+ maxBlurRadius: 40
297
+ }
298
+ }, w = {
299
+ fov: {
300
+ min: 10,
301
+ max: 90,
302
+ default: d.fov
303
+ },
304
+ focusDistance: {
305
+ min: .3,
306
+ max: 100,
307
+ default: d.focusDistance
308
+ },
309
+ aperture: {
310
+ options: [
311
+ 1.4,
312
+ 2,
313
+ 2.8,
314
+ 4,
315
+ 5.6,
316
+ 8,
317
+ 11,
318
+ 16
319
+ ],
320
+ default: d.aperture
321
+ },
322
+ focalLength: {
323
+ min: 0,
324
+ max: 200,
325
+ default: d.focalLength
326
+ }
327
+ }, T = {
328
+ clearDay: {
329
+ name: "Clear Day",
330
+ sunAzimuth: 180 - o.azimuth,
331
+ sunElevation: o.elevation,
332
+ turbidity: 2,
333
+ exposure: 0
334
+ },
335
+ clearMorning: {
336
+ name: "Clear Morning",
337
+ sunAzimuth: 90,
338
+ sunElevation: 15,
339
+ turbidity: 2,
340
+ exposure: 1.4
341
+ },
342
+ clearNoon: {
343
+ name: "Clear Noon",
344
+ sunAzimuth: 180,
345
+ sunElevation: 70,
346
+ turbidity: 2,
347
+ exposure: 0
348
+ },
349
+ hazyAfternoon: {
350
+ name: "Hazy Afternoon",
351
+ sunAzimuth: 225,
352
+ sunElevation: 35,
353
+ turbidity: 4.5,
354
+ exposure: .4
355
+ },
356
+ goldenHour: {
357
+ name: "Golden Hour",
358
+ sunAzimuth: 270,
359
+ sunElevation: 6,
360
+ turbidity: 2.5,
361
+ exposure: 2.7
362
+ },
363
+ sunset: {
364
+ name: "Sunset",
365
+ sunAzimuth: 270,
366
+ sunElevation: 1,
367
+ turbidity: 3,
368
+ exposure: 4.2
369
+ },
370
+ blueHour: {
371
+ name: "Blue Hour",
372
+ sunAzimuth: 270,
373
+ sunElevation: -4,
374
+ turbidity: 2,
375
+ exposure: 7
376
+ },
377
+ mountain: {
378
+ name: "Mountain Air",
379
+ sunAzimuth: 135,
380
+ sunElevation: 40,
381
+ turbidity: 1.3,
382
+ altitude: 3e3,
383
+ exposure: 0
384
+ }
385
+ }, E = {
386
+ portrait: {
387
+ name: "Portrait",
388
+ description: "Shallow depth of field, background blur",
389
+ dofBlur: .1,
390
+ aperture: 1.4,
391
+ focalLength: 135,
392
+ apertureScale: 1
393
+ },
394
+ landscape: {
395
+ name: "Landscape",
396
+ description: "Maximum depth of field, everything in focus",
397
+ dofBlur: .001,
398
+ aperture: 16,
399
+ focalLength: 24,
400
+ apertureScale: .5
401
+ },
402
+ macro: {
403
+ name: "Macro",
404
+ description: "Very thin focus plane for close-ups",
405
+ dofBlur: .14,
406
+ aperture: 1.4,
407
+ focalLength: 100,
408
+ apertureScale: 2
409
+ },
410
+ product: {
411
+ name: "Product",
412
+ description: "Sharp detail with subtle background separation",
413
+ dofBlur: .013,
414
+ aperture: 2.8,
415
+ focalLength: 85,
416
+ apertureScale: .4
417
+ },
418
+ architectural: {
419
+ name: "Architectural",
420
+ description: "Deep focus for rooms and buildings",
421
+ dofBlur: .001,
422
+ aperture: 11,
423
+ focalLength: 16,
424
+ apertureScale: .5
425
+ },
426
+ cinematic: {
427
+ name: "Cinematic",
428
+ description: "Dramatic depth separation with anamorphic bokeh",
429
+ dofBlur: .13,
430
+ aperture: 1.4,
431
+ focalLength: 200,
432
+ apertureScale: 1,
433
+ anamorphicRatio: 1.5
434
+ }
435
+ }, D = {
436
+ MANUAL: "manual",
437
+ AUTO: "auto"
438
+ }, O = {
439
+ SMOOTHING_FACTOR: .15,
440
+ RESET_THRESHOLD: .05,
441
+ FALLBACK_DISTANCE: 10,
442
+ SNAP_THRESHOLD: .5
443
+ }, k = {
444
+ FLOATS_PER_TRIANGLE: 20,
445
+ POSITION_A_OFFSET: 0,
446
+ POSITION_B_OFFSET: 4,
447
+ POSITION_C_OFFSET: 8,
448
+ NORMAL_A_PACKED_OFFSET: 3,
449
+ NORMAL_B_PACKED_OFFSET: 7,
450
+ NORMAL_C_PACKED_OFFSET: 11,
451
+ UV_AB_OFFSET: 12,
452
+ UV_C_OFFSET: 16,
453
+ MATERIAL_FLAGS_OFFSET: 18,
454
+ MESH_INDEX_OFFSET: 19
455
+ }, A = 16777215;
456
+ function j(e) {
457
+ return !e || !((e.transmission || 0) === 0 && (!(e.transparent | 0) || (e.opacity ?? 1) >= 1)) ? 0 : e.alphaMode | 0 ? 2 : 1;
458
+ }
459
+ function M(e, t) {
460
+ return (e & A | (t?.side ?? 0) << 24 | j(t) << 26) >>> 0;
461
+ }
462
+ function N(e, t, n) {
463
+ let r = Math.sqrt(e * e + t * t + n * n);
464
+ r > 0 ? (e /= r, t /= r, n /= r) : (e = 0, t = 0, n = 1);
465
+ let i = Math.abs(e) + Math.abs(t) + Math.abs(n), a = e / i, o = t / i;
466
+ if (n < 0) {
467
+ let e = a, t = o;
468
+ a = (1 - Math.abs(t)) * (e >= 0 ? 1 : -1), o = (1 - Math.abs(e)) * (t >= 0 ? 1 : -1);
469
+ }
470
+ let s = Math.round(Math.min(1, Math.max(-1, a)) * 32767) & 65535;
471
+ return ((Math.round(Math.min(1, Math.max(-1, o)) * 32767) & 65535) << 16 | s) >>> 0;
472
+ }
473
+ var P = {
474
+ SLOTS_PER_MATERIAL: 34,
475
+ FLOATS_PER_MATERIAL: 136,
476
+ IOR: 0,
477
+ TRANSMISSION: 1,
478
+ THICKNESS: 2,
479
+ EMISSIVE_INTENSITY: 3,
480
+ ATTENUATION_COLOR: 4,
481
+ ATTENUATION_DISTANCE: 7,
482
+ OPACITY: 8,
483
+ SIDE: 9,
484
+ TRANSPARENT: 10,
485
+ ALPHA_TEST: 11,
486
+ ALPHA_MODE: 12,
487
+ DEPTH_WRITE: 13,
488
+ NORMAL_SCALE: 14,
489
+ COLOR: 16,
490
+ METALNESS: 19,
491
+ EMISSIVE: 20,
492
+ ROUGHNESS: 23,
493
+ ALBEDO_MAP_INDEX: 24,
494
+ NORMAL_MAP_INDEX: 25,
495
+ ROUGHNESS_MAP_INDEX: 26,
496
+ METALNESS_MAP_INDEX: 27,
497
+ EMISSIVE_MAP_INDEX: 28,
498
+ BUMP_MAP_INDEX: 29,
499
+ CLEARCOAT: 30,
500
+ CLEARCOAT_ROUGHNESS: 31,
501
+ DISPERSION: 32,
502
+ VISIBLE: 33,
503
+ SHEEN: 34,
504
+ SHEEN_ROUGHNESS: 35,
505
+ SHEEN_COLOR: 36,
506
+ DIFFUSE_TRANSMISSION: 39,
507
+ SPECULAR_INTENSITY: 40,
508
+ SPECULAR_COLOR: 41,
509
+ IRIDESCENCE: 44,
510
+ IRIDESCENCE_IOR: 45,
511
+ IRIDESCENCE_THICKNESS_RANGE: 46,
512
+ BUMP_SCALE: 48,
513
+ DISPLACEMENT_SCALE: 49,
514
+ DISPLACEMENT_MAP_INDEX: 50,
515
+ ALBEDO_TRANSFORM: 52,
516
+ NORMAL_TRANSFORM: 60,
517
+ ROUGHNESS_TRANSFORM: 68,
518
+ METALNESS_TRANSFORM: 76,
519
+ EMISSIVE_TRANSFORM: 84,
520
+ BUMP_TRANSFORM: 92,
521
+ DISPLACEMENT_TRANSFORM: 100,
522
+ SUBSURFACE_COLOR: 108,
523
+ SUBSURFACE: 111,
524
+ SUBSURFACE_RADIUS: 112,
525
+ SUBSURFACE_RADIUS_SCALE: 115,
526
+ SUBSURFACE_ANISOTROPY: 116,
527
+ ANISOTROPY: 117,
528
+ ANISOTROPY_ROTATION: 118,
529
+ ANISOTROPY_MAP_INDEX: 119,
530
+ TRANSMISSION_MAP_INDEX: 120,
531
+ CLEARCOAT_MAP_INDEX: 121,
532
+ CLEARCOAT_ROUGHNESS_MAP_INDEX: 122,
533
+ SHEEN_COLOR_MAP_INDEX: 123,
534
+ SHEEN_ROUGHNESS_MAP_INDEX: 124,
535
+ IRIDESCENCE_MAP_INDEX: 125,
536
+ IRIDESCENCE_THICKNESS_MAP_INDEX: 126,
537
+ SPECULAR_INTENSITY_MAP_INDEX: 127,
538
+ SPECULAR_COLOR_MAP_INDEX: 128,
539
+ DIFFUSE_TRANSMISSION_COLOR: 129,
540
+ DIFFUSE_TRANSMISSION_MAP_INDEX: 132,
541
+ DIFFUSE_TRANSMISSION_COLOR_MAP_INDEX: 133,
542
+ SLOT: {
543
+ IOR_TRANSMISSION: 0,
544
+ ATTENUATION: 1,
545
+ OPACITY_ALPHA: 2,
546
+ ALPHA_MODE: 3,
547
+ COLOR_METALNESS: 4,
548
+ EMISSIVE_ROUGHNESS: 5,
549
+ MAP_INDICES_A: 6,
550
+ MAP_INDICES_B: 7,
551
+ DISPERSION_SHEEN: 8,
552
+ SHEEN_COLOR: 9,
553
+ SPECULAR: 10,
554
+ IRIDESCENCE: 11,
555
+ BUMP_DISPLACEMENT: 12,
556
+ ALBEDO_TRANSFORM_A: 13,
557
+ ALBEDO_TRANSFORM_B: 14,
558
+ NORMAL_TRANSFORM_A: 15,
559
+ NORMAL_TRANSFORM_B: 16,
560
+ ROUGHNESS_TRANSFORM_A: 17,
561
+ ROUGHNESS_TRANSFORM_B: 18,
562
+ METALNESS_TRANSFORM_A: 19,
563
+ METALNESS_TRANSFORM_B: 20,
564
+ EMISSIVE_TRANSFORM_A: 21,
565
+ EMISSIVE_TRANSFORM_B: 22,
566
+ BUMP_TRANSFORM_A: 23,
567
+ BUMP_TRANSFORM_B: 24,
568
+ DISPLACEMENT_TRANSFORM_A: 25,
569
+ DISPLACEMENT_TRANSFORM_B: 26,
570
+ SUBSURFACE_A: 27,
571
+ SUBSURFACE_B: 28,
572
+ SUBSURFACE_C: 29,
573
+ EXT_MAP_INDICES_A: 30,
574
+ EXT_MAP_INDICES_B: 31,
575
+ EXT_MAP_INDICES_C: 32,
576
+ EXT_MAP_INDICES_D: 33
577
+ }
578
+ }, F = (e) => Number.isFinite(e) && e > 0 ? e : 0, I = L({
579
+ color: [
580
+ 1,
581
+ 1,
582
+ 1
583
+ ],
584
+ emissive: [
585
+ 0,
586
+ 0,
587
+ 0
588
+ ],
589
+ emissiveIntensity: 1,
590
+ roughness: 1,
591
+ metalness: 0,
592
+ ior: 1.5,
593
+ opacity: 1,
594
+ transmission: 0,
595
+ thickness: 0,
596
+ attenuationColor: [
597
+ 1,
598
+ 1,
599
+ 1
600
+ ],
601
+ attenuationDistance: Infinity,
602
+ dispersion: 0,
603
+ sheen: 0,
604
+ sheenRoughness: 1,
605
+ sheenColor: [
606
+ 0,
607
+ 0,
608
+ 0
609
+ ],
610
+ specularIntensity: 1,
611
+ specularColor: [
612
+ 1,
613
+ 1,
614
+ 1
615
+ ],
616
+ clearcoat: 0,
617
+ clearcoatRoughness: 0,
618
+ iridescence: 0,
619
+ iridescenceIOR: 1.3,
620
+ iridescenceThicknessRange: [100, 400],
621
+ normalScale: [1, 1],
622
+ bumpScale: 1,
623
+ displacementScale: 1,
624
+ transparent: 0,
625
+ alphaTest: 0,
626
+ alphaMode: 0,
627
+ side: 0,
628
+ depthWrite: 1,
629
+ subsurface: 0,
630
+ subsurfaceColor: [
631
+ 1,
632
+ 1,
633
+ 1
634
+ ],
635
+ subsurfaceRadius: [
636
+ 1,
637
+ .2,
638
+ .1
639
+ ],
640
+ subsurfaceRadiusScale: 1,
641
+ subsurfaceAnisotropy: 0,
642
+ anisotropy: 0,
643
+ anisotropyRotation: 0,
644
+ diffuseTransmission: 0,
645
+ diffuseTransmissionColor: [
646
+ 1,
647
+ 1,
648
+ 1
649
+ ]
650
+ });
651
+ function L(e) {
652
+ for (let t of Object.values(e)) typeof t == "object" && Object.freeze(t);
653
+ return Object.freeze(e);
654
+ }
655
+ var R = 1073741824, ee = 1073741824, z = 1073741823, B = {
656
+ TRIANGLE_LEAF: 1073741824,
657
+ BLAS_POINTER_LEAF: 1073741825,
658
+ FRONTIER: 1073741826
659
+ }, V = 1 << 27;
660
+ function H(e) {
661
+ return new Uint32Array(e.buffer, e.byteOffset, e.length);
662
+ }
663
+ function U(e, t) {
664
+ if (e >= 1073741824) throw RangeError(`${t} is ${e.toLocaleString()}, at or past the BVH index limit of ${R.toLocaleString()}. Node indices are stored as u32 bit patterns and the leaf tags occupy everything above that.`);
665
+ return e;
666
+ }
667
+ var W = {
668
+ PIXELS_PER_MATERIAL: 30,
669
+ RGBA_COMPONENTS: 4,
670
+ VEC4_PER_TRIANGLE: 8,
671
+ VEC4_PER_BVH_NODE: 4,
672
+ FLOATS_PER_VEC4: 4,
673
+ MIN_TEXTURE_WIDTH: 4,
674
+ MAX_CONCURRENT_WORKERS: Math.min(typeof navigator < "u" && navigator.hardwareConcurrency || 4, 6),
675
+ BUFFER_POOL_SIZE: 20,
676
+ CANVAS_POOL_SIZE: 12,
677
+ CACHE_SIZE_LIMIT: 50,
678
+ MAX_TEXTURE_SIZE: 8192,
679
+ DEFAULT_MAX_TEXTURE_SIZE: 4096,
680
+ MAX_TEXTURES_LIMIT: 4 * 256,
681
+ MATERIAL_BUCKET_COUNT: 4,
682
+ BUCKET_LAYER_STRIDE: 256
683
+ }, G = 64;
684
+ function K(e, t) {
685
+ let n = Math.ceil(Math.max(1, e) / G) * G;
686
+ return Math.min(t, Math.max(W.MIN_TEXTURE_WIDTH, n));
687
+ }
688
+ function q(e) {
689
+ let t = 0, n = 0, r = 0;
690
+ for (let i of e) t = Math.max(t, i.width), n = Math.max(n, i.height), r += i.count;
691
+ return {
692
+ units: e,
693
+ width: t,
694
+ height: n,
695
+ count: r
696
+ };
697
+ }
698
+ function J(e, t) {
699
+ return K(e.width, t) * e.height * e.count * 4;
700
+ }
701
+ function Y(e, t) {
702
+ return e.reduce((e, n) => e + J(n, t), 0);
703
+ }
704
+ function X(e, t, n) {
705
+ let r = e.slice();
706
+ for (; r.length > t;) {
707
+ let e = null;
708
+ for (let t = 0; t < r.length; t++) for (let i = t + 1; i < r.length; i++) {
709
+ let a = q(r[t].units.concat(r[i].units)), o = J(a, n) - J(r[t], n) - J(r[i], n);
710
+ (!e || o < e.delta) && (e = {
711
+ i: t,
712
+ j: i,
713
+ delta: o,
714
+ fused: a
715
+ });
716
+ }
717
+ r = r.filter((t, n) => n !== e.i && n !== e.j).concat([e.fused]);
718
+ }
719
+ return r;
720
+ }
721
+ function Z(e, t, n) {
722
+ let r = [];
723
+ for (let e = t - 1; e >= 0; e--) r.push(Math.max(W.MIN_TEXTURE_WIDTH, Math.round(n / 2 ** e)));
724
+ let i = r.map(() => []);
725
+ for (let t of e) {
726
+ let e = 2 ** Math.ceil(Math.log2(Math.max(t.width, t.height))), n = r.findIndex((t) => e <= t);
727
+ n < 0 && (n = r.length - 1), i[n].push(t);
728
+ }
729
+ return i.filter((e) => e.length).map(q);
730
+ }
731
+ function Q(e, t) {
732
+ let n = e;
733
+ for (let e = 0; e < 8; e++) {
734
+ let e = !1;
735
+ for (let r of n.flatMap((e) => e.units)) {
736
+ let i = n.findIndex((e) => e.units.includes(r));
737
+ if (!(i < 0)) for (let a = 0; a < n.length; a++) {
738
+ if (a === i) continue;
739
+ let o = [];
740
+ for (let e = 0; e < n.length; e++) if (e === i) {
741
+ let t = n[e].units.filter((e) => e !== r);
742
+ t.length && o.push(q(t));
743
+ } else e === a ? o.push(q(n[e].units.concat([r]))) : o.push(n[e]);
744
+ if (Y(o, t) < Y(n, t)) {
745
+ n = o, e = !0;
746
+ break;
747
+ }
748
+ }
749
+ }
750
+ if (!e) break;
751
+ }
752
+ return n;
753
+ }
754
+ function $(e, t, n = W.MATERIAL_BUCKET_COUNT) {
755
+ let r = /* @__PURE__ */ new Map();
756
+ for (let { width: n, height: i } of e) {
757
+ let e = Math.min(t, Math.max(1, n || 1)), a = Math.min(t, Math.max(1, i || 1)), o = `${e}x${a}`, s = r.get(o);
758
+ s ? s.count++ : r.set(o, {
759
+ width: e,
760
+ height: a,
761
+ count: 1
762
+ });
763
+ }
764
+ let i = [...r.values()], a = i.map((e) => q([e]));
765
+ if (a.length > n) {
766
+ let e = Z(i, n, t), r = X(a, n, t);
767
+ a = Y(e, t) < Y(r, t) ? e : r, a = Q(a, t);
768
+ }
769
+ return a.map((e) => ({
770
+ width: K(e.width, t),
771
+ height: e.height
772
+ })).sort((e, t) => e.width * e.height - t.width * t.height);
773
+ }
774
+ function te(e, t, n) {
775
+ let r = Math.max(1, e || 1), i = Math.max(1, t || 1);
776
+ for (let e = 0; e < n.length; e++) if (n[e].width >= r && n[e].height >= i) return e;
777
+ return Math.max(0, n.length - 1);
778
+ }
779
+ function ne(e, t) {
780
+ return e * W.BUCKET_LAYER_STRIDE + t;
781
+ }
782
+ var re = [
783
+ 0,
784
+ 0,
785
+ 1,
786
+ 1,
787
+ 0,
788
+ 0,
789
+ 0,
790
+ 1
791
+ ], ie = {
792
+ maxSamples: 30,
793
+ bounces: 20,
794
+ transmissiveBounces: 24,
795
+ maxSubsurfaceSteps: 64,
796
+ renderMode: 1,
797
+ enableAlphaShadows: !0,
798
+ enableOIDN: !0,
799
+ oidnQuality: "high",
800
+ interactionModeEnabled: !1,
801
+ useAdaptiveSampling: !0,
802
+ noiseThreshold: .02,
803
+ adaptiveStopFraction: .94,
804
+ usePixelFreeze: !0
805
+ }, ae = {
806
+ maxSamples: d.maxSamples,
807
+ bounces: d.bounces,
808
+ renderMode: d.renderMode,
809
+ enableAlphaShadows: d.enableAlphaShadows,
810
+ transmissiveBounces: 12,
811
+ maxSubsurfaceSteps: d.maxSubsurfaceSteps,
812
+ enableOIDN: !0,
813
+ oidnQuality: "fast",
814
+ interactionModeEnabled: !0,
815
+ useAdaptiveSampling: !0,
816
+ noiseThreshold: .1,
817
+ usePixelFreeze: !0
818
+ };
819
+ function oe(e) {
820
+ return {
821
+ maxSamples: e.maxSamples,
822
+ maxBounces: e.bounces,
823
+ transmissiveBounces: e.transmissiveBounces,
824
+ maxSubsurfaceSteps: e.maxSubsurfaceSteps,
825
+ enableAlphaShadows: e.enableAlphaShadows ?? !1,
826
+ useAdaptiveSampling: e.useAdaptiveSampling ?? !1,
827
+ noiseThreshold: e.noiseThreshold ?? d.noiseThreshold,
828
+ adaptiveStopFraction: e.adaptiveStopFraction ?? d.adaptiveStopFraction,
829
+ adaptiveMinSamples: e.adaptiveMinSamples ?? d.adaptiveMinSamples,
830
+ usePixelFreeze: e.usePixelFreeze ?? !1,
831
+ pixelFreezeThreshold: e.pixelFreezeThreshold ?? d.pixelFreezeThreshold,
832
+ pixelFreezeStability: e.pixelFreezeStability ?? d.pixelFreezeStability,
833
+ interactionModeEnabled: e.interactionModeEnabled ?? d.interactionModeEnabled
834
+ };
835
+ }
836
+ var se = {
837
+ MAX_BUFFER_MEMORY: 1024 * 1024 * 1024,
838
+ MAX_TEXTURE_MEMORY: 2048 * 1024 * 1024,
839
+ CLEANUP_THRESHOLD: .8,
840
+ CHUNK_SIZE_THRESHOLD: 64 * 1024 * 1024,
841
+ STREAM_BATCH_SIZE: 4
842
+ };
843
+ //#endregion
844
+ export { l as A, te as B, h as C, s as D, ie as E, A as F, M as G, F as H, K as I, j as J, $ as K, U as L, ee as M, z as N, T as O, k as P, H as R, m as S, C as T, N as U, oe as V, ne as W, n as X, i as Y, r as Z, I as _, V as a, se as b, E as c, a as d, re as f, P as g, ae as h, D as i, W as j, u as k, f as l, p as m, g as n, B as o, d as p, y as q, b as r, R as s, O as t, w as u, _ as v, S as w, x, v as y, c as z };