rayzee 11.13.0 → 11.15.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.
- package/README.md +95 -22
- package/dist/{ActiveColor-YvuQq44O.js → ActiveColor-DakLCifA.js} +1 -1
- package/dist/{ArchiveImporter-DQU55mit.js → ArchiveImporter-DuWqpbXf.js} +282 -277
- package/dist/{BidirectionalIntegrator-CLmFjSN3.js → BidirectionalIntegrator-BEXXxmZH.js} +199 -198
- package/dist/{BufferLayout-BROyMqO1.js → BufferLayout-ny3WneEc.js} +1 -1
- package/dist/ColorManagement-CKN2pTRS.js +2537 -0
- package/dist/DepthPass-u5g7hr7J.js +68 -0
- package/dist/{EngineEvents-CLckhYbL.js → EngineEvents-oQGofgRf.js} +16 -2
- package/dist/{EngineIssues-CfJiBaNj.js → EngineIssues-t5p7TEjb.js} +2 -0
- package/dist/{FileFormats-sPGJeCRc.js → FileFormats-C91JE5DM.js} +1 -1
- package/dist/LocalExposure-Cw1g8rdU.js +344 -0
- package/dist/{Logger-dDDGj9Av.js → Logger-CH-TZ1co.js} +1 -1
- package/dist/{NeuralRetouch-CEkBhI1M.js → NeuralRetouch-CLtoW6Vt.js} +5 -5
- package/dist/{NeuralSuperRes-Drjws9nE.js → NeuralSuperRes-PlLjWpMF.js} +14 -14
- package/dist/{SolarLimb-ZYl-Pwl0.js → PackedRayBuffer-DwhV931f.js} +8 -12
- package/dist/{PathTracer-7a7L3cGF.js → PathTracer-BMtUFjdP.js} +5263 -4868
- package/dist/{PhysicalSky-DUIbTE93.js → PhysicalSky-DqanSS2m.js} +49 -48
- package/dist/PictureView-DpHE_jDr.js +96 -0
- package/dist/RayzeeRenderer-C9zGAMJo.js +3281 -0
- package/dist/{sceneCachePolicy-DavHt6Ii.js → SceneMetadata-BUfzHMSj.js} +335 -608
- package/dist/SolarLimb-BiVdxxmL.js +8 -0
- package/dist/TextureBuckets-D09iX9_y.js +308 -0
- package/dist/TextureSampling-CvMi8LNc.js +904 -0
- package/dist/{ToneMapGPU-4GPwoG_c.js → ToneMapGPU-tJZo_-7S.js} +22 -12
- package/dist/{ViewTransforms-CYN7bq2w.js → ViewTransforms-Bh7hSjSb.js} +1 -1
- package/dist/{WorkingMatrix-C6y233hT.js → WorkingMatrix-CDGicYGE.js} +1 -1
- package/dist/{ZipReader-gDSWr0I5.js → ZipReader-KPFbIuOs.js} +1 -1
- package/dist/addons/archives.es.js +2 -2
- package/dist/addons/bidirectional.es.js +1 -1
- package/dist/addons/color.es.js +3 -3
- package/dist/addons/formats.es.js +1 -1
- package/dist/addons/physical-sky.es.js +1 -1
- package/dist/addons/storage.es.js +3 -3
- package/dist/archiveFormats-j39rQeKs.js +37 -0
- package/dist/encoders.es.js +942 -0
- package/dist/identity-x_UfobDa.js +65 -0
- package/dist/{openStorage-CdyVjmps.js → openStorage-CxLMw2_a.js} +61 -62
- package/dist/rayzee-core.es.js +13 -12
- package/dist/rayzee.es.js +795 -1053
- package/dist/rayzee.umd.js +163 -115
- package/package.json +5 -2
- package/src/AssetConfig.js +1 -1
- package/src/EngineDefaults.js +1 -1
- package/src/EngineEvents.js +26 -0
- package/src/EngineIssues.js +2 -0
- package/src/Platform.js +40 -0
- package/src/RayzeeRenderer.js +221 -1111
- package/src/RenderSettings.js +3 -3
- package/src/addons/archives.js +2 -2
- package/src/addons/bidirectional.js +1 -1
- package/src/addons/color.js +6 -6
- package/src/addons/formats.js +1 -1
- package/src/addons/physicalSky.js +1 -1
- package/src/addons/storage.js +3 -3
- package/src/{Processor → bvh}/BVHBuilder.js +2 -2
- package/src/{Processor → bvh}/BVHLeafFold.js +1 -1
- package/src/{Processor/Workers → bvh}/BVHRefitWorker.js +2 -2
- package/src/{Processor → bvh}/BVHRefitter.js +1 -1
- package/src/{Processor/Workers → bvh}/BVHSubtreeWorker.js +2 -2
- package/src/{Processor/Workers → bvh}/BVHWorker.js +3 -3
- package/src/{Processor → bvh}/ParallelBVHBuilder.js +3 -3
- package/src/{Processor → bvh}/SplitBLAS.js +2 -2
- package/src/{Processor → bvh}/TLASBuilder.js +4 -4
- package/src/{Processor/Workers → bvh}/TLASWorker.js +2 -2
- package/src/{Color → color}/BakedViews.js +5 -1
- package/src/{Color → color}/BasicColor.js +7 -0
- package/src/{Color → color}/ColorManagement.js +132 -64
- package/src/{Color → color}/Displays.js +35 -0
- package/src/{Color → color}/LutBake.js +163 -9
- package/src/{Color → color}/OcioRuntime.js +1 -1
- package/src/color/OcioViews.js +1086 -0
- package/src/core.js +8 -8
- package/src/{Processor/Workers → environment}/CDFWorker.js +1 -1
- package/src/{Processor → environment}/EnvironmentExactTable.js +2 -2
- package/src/{managers → environment}/EnvironmentManager.js +10 -10
- package/src/{Processor → environment}/EquirectHDRInfo.js +1 -1
- package/src/{Processor → environment}/PhysicalSky.js +5 -5
- package/src/{Processor → environment}/SolarLimb.js +1 -1
- package/src/index.js +46 -46
- package/src/{Processor → lights}/EmissiveTriangleBuilder.js +5 -5
- package/src/{managers → lights}/LightManager.js +3 -3
- package/src/{Processor → lights}/LightSerializer.js +1 -1
- package/src/{Processor → loaders}/AssetLoader.js +115 -11
- package/src/loaders/SceneLoading.js +730 -0
- package/src/{Processor → loaders/archives}/ArchiveCache.js +3 -3
- package/src/{Processor → loaders/archives}/ArchiveImporter.js +15 -15
- package/src/{Processor/PBRT → loaders/pbrt}/PBRTSceneBuilder.js +2 -3
- package/src/{Processor/USD → loaders/usd}/USDScene.js +1 -1
- package/src/{Processor/USD → loaders/usd}/index.js +1 -1
- package/src/{managers → materials}/MaterialDataManager.js +8 -8
- package/src/{Processor → materials}/MaterialPacking.js +1 -1
- package/src/{Processor/Workers → materials}/PackWorker.js +1 -1
- package/src/{Processor → materials}/TextureCreator.js +160 -54
- package/src/{Processor/Workers → materials}/TexturesWorker.js +11 -14
- package/src/{Processor → memory}/HostMemory.js +1 -1
- package/src/memory/SceneSpill.js +477 -0
- package/src/node/nodePlatform.js +4 -2
- package/src/output/ImageEncoders.js +1306 -0
- package/src/output/Pictures.js +460 -0
- package/src/{Processor → output}/ToneMapCPU.js +37 -11
- package/src/{Processor → output}/ToneMapGPU.js +54 -8
- package/src/{integrators → pathtracer}/BidirectionalIntegrator.js +16 -16
- package/src/{Processor → pathtracer}/KernelManager.js +29 -4
- package/src/{Processor → pathtracer}/PackedRayBuffer.js +3 -3
- package/src/{Stages → pathtracer}/PathTracer.js +294 -180
- package/src/{Stages → pathtracer}/PathTracerStage.js +84 -26
- package/src/{Processor → pathtracer}/QueueManager.js +42 -13
- package/src/{Processor → pathtracer}/ShaderBuilder.js +1 -1
- package/src/{Processor → pathtracer}/StorageTexturePool.js +2 -2
- package/src/{managers → pathtracer}/UniformManager.js +2 -2
- package/src/{Pipeline → pipeline}/CompletionTracker.js +8 -1
- package/src/{Stages → pipeline}/Compositor.js +128 -21
- package/src/{Processor → scene}/BuildTimer.js +1 -1
- package/src/{Processor → scene}/GeometryExtractor.js +46 -6
- package/src/scene/SceneEdits.js +260 -0
- package/src/{Processor → scene}/SceneProcessor.js +65 -1106
- package/src/scene/SceneRefit.js +823 -0
- package/src/{TSL → shaders}/Atmosphere.js +1 -1
- package/src/{TSL → shaders}/BVHTraversal.js +1 -1
- package/src/{TSL → shaders}/CameraRay.js +1 -1
- package/src/{TSL → shaders}/Common.js +1 -1
- package/src/{TSL → shaders}/EmissiveSampling.js +1 -1
- package/src/{TSL → shaders}/Environment.js +1 -1
- package/src/{TSL → shaders}/LightGuide.js +1 -1
- package/src/{TSL → shaders}/LightVisibility.js +1 -1
- package/src/{TSL → shaders}/Sun.js +1 -1
- package/src/{TSL → shaders}/TextureSampling.js +1 -1
- package/src/{TSL → shaders/kernels}/CompactKernel.js +2 -2
- package/src/{TSL → shaders/kernels}/ConnectKernel.js +10 -10
- package/src/{TSL → shaders/kernels}/DebugKernel.js +4 -4
- package/src/shaders/kernels/DepthPass.js +146 -0
- package/src/{TSL → shaders/kernels}/ExtendKernel.js +5 -5
- package/src/{TSL → shaders/kernels}/FinalWriteKernel.js +14 -4
- package/src/{TSL → shaders/kernels}/GenerateKernel.js +5 -5
- package/src/{TSL → shaders/kernels}/LightGenerateKernel.js +14 -14
- package/src/{TSL → shaders/kernels}/LightSplatKernel.js +9 -9
- package/src/{TSL → shaders/kernels}/MergeKernel.js +7 -7
- package/src/{TSL → shaders/kernels}/ShadeKernel.js +27 -27
- package/src/{TSL → shaders/kernels}/SortGlobalKernels.js +2 -2
- package/src/{TSL → shaders}/patches.js +1 -1
- package/src/{Storage → storage}/BLASCache.js +1 -1
- package/src/{Storage → storage}/DownloadCache.js +10 -0
- package/src/{Storage → storage}/SceneGraphCodec.js +17 -2
- package/src/{Headless.js → viewer/Headless.js} +15 -3
- package/src/{PathTracerApp.js → viewer/PathTracerApp.js} +54 -32
- package/src/{SceneState → viewer}/SceneState.js +3 -3
- package/src/{managers → viewer/animation}/AnimationManager.js +1 -1
- package/src/{managers/timeline → viewer/animation}/CameraTrack.js +1 -1
- package/src/{managers/timeline → viewer/animation}/TimelineManager.js +1 -1
- package/src/{managers → viewer/animation}/VideoRenderManager.js +10 -6
- package/src/{managers → viewer/camera}/CameraManager.js +10 -10
- package/src/{managers → viewer/camera}/InteractionManager.js +4 -4
- package/src/{Stages → viewer/denoise}/DenoiserSettings.js +1 -1
- package/src/{managers → viewer/denoise}/DenoisingManager.js +27 -17
- package/src/{Stages → viewer/denoise}/MotionVector.js +3 -3
- package/src/{Stages → viewer/denoise}/NRD.js +4 -4
- package/src/{Stages → viewer/denoise}/NormalDepth.js +8 -8
- package/src/{Passes → viewer/denoise}/OIDNDenoiser.js +94 -25
- package/src/{Passes → viewer/denoise}/OIDNTemporalHistory.js +1 -1
- package/src/{managers → viewer/lights}/GoboManager.js +3 -3
- package/src/{managers → viewer/lights}/IESManager.js +4 -4
- package/src/{Processor → viewer/lights}/IESParser.js +1 -1
- package/src/{managers → viewer/overlays}/OverlayManager.js +10 -10
- package/src/{managers/helpers → viewer/overlays}/TransformGizmoHelper.js +1 -1
- package/src/{managers → viewer/overlays}/TransformManager.js +1 -1
- package/src/{managers/helpers → viewer/overlays}/ViewOverlayRenderer.js +2 -12
- package/src/{Passes → viewer/picture}/AIUpscaler.js +3 -3
- package/src/{Processor/Workers → viewer/picture}/AIUpscalerWorker.js +2 -2
- package/src/{Stages → viewer/picture}/AutoExposure.js +2 -2
- package/src/{Stages → viewer/picture}/LocalExposure.js +2 -2
- package/src/{neural → viewer/picture}/NeuralRetouch.js +3 -3
- package/src/{neural → viewer/picture}/NeuralSuperRes.js +5 -5
- package/src/viewer/picture/PictureView.js +205 -0
- package/dist/ColorManagement-3xw0xXRg.js +0 -1973
- package/dist/RayzeeRenderer-CjjGT2e0.js +0 -3717
- package/dist/SceneMetadata-CoAHTAmo.js +0 -183
- package/dist/identity-C1cLD1C0.js +0 -49
- package/dist/shared-BGBcSxBQ.js +0 -17
- package/src/Color/OcioViews.js +0 -633
- package/src/Processor/generateMaterialSpheres.js +0 -71
- package/src/Processor/utils.js +0 -613
- /package/dist/{AssetConfig-DSEntE65.js → AssetConfig-C8BsprCp.js} +0 -0
- /package/src/{utils/Logger.js → Logger.js} +0 -0
- /package/src/{Processor → bvh}/ReinsertionOptimizer.js +0 -0
- /package/src/{Color → color}/ActiveColor.js +0 -0
- /package/src/{Color → color}/BuiltinViews.js +0 -0
- /package/src/{Color → color}/ColorSpaces.js +0 -0
- /package/src/{Color → color}/InputColorSpaces.js +0 -0
- /package/src/{Color → color}/ViewTransforms.js +0 -0
- /package/src/{Color → color}/WorkingMatrix.js +0 -0
- /package/src/{Processor → environment}/AtmosphereModel.js +0 -0
- /package/src/{Processor → environment}/SimpleSky.js +0 -0
- /package/src/{Processor → environment}/SunPosition.js +0 -0
- /package/src/{Processor → lights}/LightBVHBuilder.js +0 -0
- /package/src/{Processor → lights}/blackbody.js +0 -0
- /package/src/{Processor → loaders}/FileFormats.js +0 -0
- /package/src/{Processor → loaders}/GLTFDecoders.js +0 -0
- /package/src/{Processor → loaders}/GLTFDiffuseTransmission.js +0 -0
- /package/src/{Processor → loaders}/PlatformImageLoader.js +0 -0
- /package/src/{Processor → loaders}/SceneMetadata.js +0 -0
- /package/src/{Processor → loaders/archives}/ArchiveReader.js +0 -0
- /package/src/{Processor → loaders/archives}/ZipReader.js +0 -0
- /package/src/{Processor → loaders/archives}/archiveFormats.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/EqualAreaOctahedral.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/LoopSubdivision.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTAnimation.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTCurves.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTMaterials.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTMath.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTParser.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTScattering.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTTextureBake.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PBRTTokenizer.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/PFM.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/buffers.js +0 -0
- /package/src/{Processor/PBRT → loaders/pbrt}/index.js +0 -0
- /package/src/{Processor/USD → loaders/usd}/USDLayer.js +0 -0
- /package/src/{Processor/USD → loaders/usd}/USDStage.js +0 -0
- /package/src/{Processor/USD → loaders/usd}/USDText.js +0 -0
- /package/src/{Processor → materials}/ResampleRGBA8.js +0 -0
- /package/src/{Processor → materials}/TextureBuckets.js +0 -0
- /package/src/{Processor → memory}/ChunkedRecords.js +0 -0
- /package/src/{Processor → memory}/VRAMTracker.js +0 -0
- /package/src/{Processor → output}/TextureReadback.js +0 -0
- /package/src/{Processor → pathtracer}/CameraOptimizer.js +0 -0
- /package/src/{Pipeline → pipeline}/BindingAudit.js +0 -0
- /package/src/{Pipeline → pipeline}/EventDispatcher.js +0 -0
- /package/src/{Pipeline → pipeline}/PipelineContext.js +0 -0
- /package/src/{Pipeline → pipeline}/RenderPipeline.js +0 -0
- /package/src/{Pipeline → pipeline}/RenderStage.js +0 -0
- /package/src/{SceneState/portable.js → portable.js} +0 -0
- /package/src/{Processor → scene}/BufferLayout.js +0 -0
- /package/src/{Processor → scene}/InstanceTable.js +0 -0
- /package/src/{SceneHelpers.js → scene/SceneHelpers.js} +0 -0
- /package/src/{managers → scene}/ViewCamera.js +0 -0
- /package/src/{TSL → shaders}/Bidirectional.js +0 -0
- /package/src/{TSL → shaders}/BidirectionalLamps.js +0 -0
- /package/src/{TSL → shaders}/Clearcoat.js +0 -0
- /package/src/{TSL → shaders}/Debugger.js +0 -0
- /package/src/{TSL → shaders}/Displacement.js +0 -0
- /package/src/{TSL → shaders}/EnvironmentCDF.js +0 -0
- /package/src/{TSL → shaders}/Fresnel.js +0 -0
- /package/src/{TSL → shaders}/HitFacet.js +0 -0
- /package/src/{TSL → shaders}/LightBVHSampling.js +0 -0
- /package/src/{TSL → shaders}/LightsCore.js +0 -0
- /package/src/{TSL → shaders}/LightsDirect.js +0 -0
- /package/src/{TSL → shaders}/LightsIndirect.js +0 -0
- /package/src/{TSL → shaders}/LightsSampling.js +0 -0
- /package/src/{TSL → shaders}/MaterialEvaluation.js +0 -0
- /package/src/{TSL → shaders}/MaterialProperties.js +0 -0
- /package/src/{TSL → shaders}/MaterialSampling.js +0 -0
- /package/src/{TSL → shaders}/MaterialTransmission.js +0 -0
- /package/src/{TSL → shaders}/PathTracerCore.js +0 -0
- /package/src/{TSL → shaders}/Random.js +0 -0
- /package/src/{TSL → shaders}/SceneResources.js +0 -0
- /package/src/{TSL → shaders}/ShadowTerminator.js +0 -0
- /package/src/{TSL → shaders}/Struct.js +0 -0
- /package/src/{TSL → shaders}/Subsurface.js +0 -0
- /package/src/{Storage → storage}/CDFCache.js +0 -0
- /package/src/{Storage → storage}/GeometrySpill.js +0 -0
- /package/src/{Storage → storage}/SpillStore.js +0 -0
- /package/src/{Storage → storage}/StorageManager.js +0 -0
- /package/src/{Storage → storage}/StorageOps.js +0 -0
- /package/src/{Storage → storage}/StorageWorker.js +0 -0
- /package/src/{Storage → storage}/areas.js +0 -0
- /package/src/{Storage → storage}/events.js +0 -0
- /package/src/{Storage → storage}/identity.js +0 -0
- /package/src/{Storage → storage}/index.js +0 -0
- /package/src/{Storage → storage}/inlineTransport.js +0 -0
- /package/src/{Storage → storage}/locks.js +0 -0
- /package/src/{Storage → storage}/openStorage.js +0 -0
- /package/src/{Storage → storage}/sceneCachePolicy.js +0 -0
- /package/src/{Storage → storage}/shared.js +0 -0
- /package/src/{Storage → storage}/transport.js +0 -0
- /package/src/{managers → viewer/camera}/WalkControls.js +0 -0
- /package/src/{managers/helpers → viewer/overlays}/OutlineHelper.js +0 -0
- /package/src/{managers/helpers → viewer/overlays}/TileHelper.js +0 -0
- /package/src/{managers/helpers → viewer/overlays}/overlaySurface.js +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { n as e } from "./BidirectionalIntegrator-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { r as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { n as x, t as S } from "./ZipReader-
|
|
1
|
+
import { n as e } from "./BidirectionalIntegrator-BEXXxmZH.js";
|
|
2
|
+
import { n as t, r as n, t as r } from "./EngineIssues-t5p7TEjb.js";
|
|
3
|
+
import { D as i, F as a, M as o, R as s, a as c, c as l, j as u, l as d, t as f, w as p } from "./SceneMetadata-BUfzHMSj.js";
|
|
4
|
+
import { i as m, l as h, n as g, o as _, r as v } from "./identity-x_UfobDa.js";
|
|
5
|
+
import { a as y } from "./EngineEvents-oQGofgRf.js";
|
|
6
|
+
import { t as b } from "./archiveFormats-j39rQeKs.js";
|
|
7
|
+
import { n as x, t as S } from "./ZipReader-KPFbIuOs.js";
|
|
8
8
|
import { AnimationClip as C, BooleanKeyframeTrack as w, BoxGeometry as T, BufferAttribute as E, BufferGeometry as D, CapsuleGeometry as ee, ClampToEdgeWrapping as te, Color as O, ConeGeometry as ne, CylinderGeometry as re, DataTexture as k, DirectionalLight as ie, DoubleSide as A, EquirectangularReflectionMapping as ae, Euler as oe, Float32BufferAttribute as j, FloatType as se, FrontSide as ce, Group as le, InstancedBufferAttribute as ue, InstancedMesh as de, LinearFilter as fe, LoadingManager as pe, MaterialLoader as me, Matrix4 as M, Mesh as he, MeshPhysicalMaterial as N, MirroredRepeatWrapping as ge, NoColorSpace as _e, NumberKeyframeTrack as ve, Object3D as ye, OrthographicCamera as be, PerspectiveCamera as xe, PlaneGeometry as Se, PointLight as Ce, Quaternion as we, QuaternionKeyframeTrack as Te, RGBAFormat as Ee, RectAreaLight as De, RepeatWrapping as Oe, SRGBColorSpace as P, SphereGeometry as ke, SpotLight as Ae, Texture as je, Uint32BufferAttribute as F, Vector3 as I, VectorKeyframeTrack as Me } from "three";
|
|
9
9
|
import { HDRLoader as Ne } from "three/addons/loaders/HDRLoader.js";
|
|
10
10
|
import { Gunzip as Pe, strFromU8 as Fe } from "three/addons/libs/fflate.module.js";
|
|
11
11
|
import { EXRLoader as Ie } from "three/addons/loaders/EXRLoader.js";
|
|
12
|
-
//#region src/
|
|
12
|
+
//#region src/loaders/archives/ArchiveReader.js
|
|
13
13
|
var L = 512, Le = 4 << 20, Re = 15e8, ze = new TextDecoder();
|
|
14
14
|
function Be(e) {
|
|
15
15
|
return e.length >= 2 && e[0] === 31 && e[1] === 139;
|
|
@@ -331,59 +331,59 @@ function lt(e) {
|
|
|
331
331
|
};
|
|
332
332
|
}
|
|
333
333
|
//#endregion
|
|
334
|
-
//#region src/
|
|
334
|
+
//#region src/loaders/archives/ArchiveCache.js
|
|
335
335
|
var ut = 1, dt = 3;
|
|
336
336
|
async function ft(e, t) {
|
|
337
|
-
return `${e}:${m(await
|
|
338
|
-
}
|
|
339
|
-
async function pt(e, { storage:
|
|
340
|
-
if (!
|
|
341
|
-
let
|
|
342
|
-
!
|
|
343
|
-
let d = !!
|
|
344
|
-
if (!
|
|
345
|
-
let
|
|
346
|
-
label:
|
|
337
|
+
return `${e}:${m(await g(t))}`;
|
|
338
|
+
}
|
|
339
|
+
async function pt(e, { storage: n, label: r = e.name, onProgress: i = null, filter: a = null, part: o = null }) {
|
|
340
|
+
if (!n || typeof DecompressionStream > "u") return null;
|
|
341
|
+
let s = n.area(h.ARCHIVES), c = await ft("gunzip", e), l = c, u = await s.open(c);
|
|
342
|
+
!u && a && (u = await s.open(l = `${c}|${o}`));
|
|
343
|
+
let d = !!u;
|
|
344
|
+
if (!u) {
|
|
345
|
+
let c = await s.create(l, a ? { label: `${r} (${o})` } : {
|
|
346
|
+
label: r,
|
|
347
347
|
expectedBytes: e.size * dt
|
|
348
348
|
});
|
|
349
|
-
if (!
|
|
350
|
-
let d = null, f = at(
|
|
351
|
-
filter:
|
|
349
|
+
if (!c) return null;
|
|
350
|
+
let d = null, f = at(a ? {
|
|
351
|
+
filter: a,
|
|
352
352
|
sink: (e) => d.enqueue(e)
|
|
353
|
-
} : {}),
|
|
353
|
+
} : {}), p = new TransformStream({
|
|
354
354
|
start(e) {
|
|
355
355
|
d = e;
|
|
356
356
|
},
|
|
357
357
|
transform(e, t) {
|
|
358
|
-
f.push(e),
|
|
358
|
+
f.push(e), a || t.enqueue(e);
|
|
359
359
|
}
|
|
360
360
|
});
|
|
361
361
|
try {
|
|
362
|
-
let t = e.stream().pipeThrough(new DecompressionStream("gzip")).pipeThrough(
|
|
363
|
-
await
|
|
362
|
+
let t = e.stream().pipeThrough(new DecompressionStream("gzip")).pipeThrough(p), n = await c.writeStream("data.tar", t, { onProgress: i });
|
|
363
|
+
await c.writeJSON("index.json", {
|
|
364
364
|
v: ut,
|
|
365
365
|
listing: f.finish()
|
|
366
|
-
}), await
|
|
366
|
+
}), await c.commit({
|
|
367
367
|
compressedBytes: e.size,
|
|
368
368
|
tarBytes: n
|
|
369
369
|
});
|
|
370
370
|
} catch (e) {
|
|
371
|
-
if (await
|
|
372
|
-
return
|
|
371
|
+
if (await c.abort(), e?.name !== "QuotaExceededError") throw e;
|
|
372
|
+
return n._issue(t.STORAGE_QUOTA_EXCEEDED, `ran out of room unpacking ${r}; reading it in memory instead`, { area: h.ARCHIVES }), null;
|
|
373
373
|
}
|
|
374
|
-
if (
|
|
374
|
+
if (u = await s.open(l, { wait: !0 }), !u) return null;
|
|
375
375
|
}
|
|
376
|
-
let f = await
|
|
377
|
-
return !f ||
|
|
376
|
+
let f = await u.file("data.tar"), p = await u.json("index.json");
|
|
377
|
+
return !f || p?.v !== ut ? (u.release(), null) : {
|
|
378
378
|
file: f,
|
|
379
|
-
index:
|
|
380
|
-
release: () =>
|
|
379
|
+
index: p,
|
|
380
|
+
release: () => u.release(),
|
|
381
381
|
cached: d
|
|
382
382
|
};
|
|
383
383
|
}
|
|
384
384
|
async function mt(e, t) {
|
|
385
385
|
if (!t) return null;
|
|
386
|
-
let n = await t.area(
|
|
386
|
+
let n = await t.area(h.ARCHIVES).open(await ft("tarindex", e));
|
|
387
387
|
if (!n) return null;
|
|
388
388
|
try {
|
|
389
389
|
let e = await n.json("index.json");
|
|
@@ -394,7 +394,7 @@ async function mt(e, t) {
|
|
|
394
394
|
}
|
|
395
395
|
async function ht(e, t, n) {
|
|
396
396
|
if (!t || !n) return !1;
|
|
397
|
-
let r = await t.area(
|
|
397
|
+
let r = await t.area(h.ARCHIVES).create(await ft("tarindex", e), { label: `${e.name} (index)` });
|
|
398
398
|
if (!r) return !1;
|
|
399
399
|
try {
|
|
400
400
|
return await r.writeJSON("index.json", n), await r.commit(), !0;
|
|
@@ -646,44 +646,49 @@ function Vt(e, t) {
|
|
|
646
646
|
}
|
|
647
647
|
async function Ht(e, t, { loadTexture: n }) {
|
|
648
648
|
if (e?.v !== 2) throw Error("scene graph: unknown format");
|
|
649
|
-
let r = await Rt(t, zt(e)), i = (e) => r.get(e.offset), a = /* @__PURE__ */ new Map(), o = {};
|
|
649
|
+
let r = await Rt(t, zt(e)), i = (e) => r.get(e.offset), a = /* @__PURE__ */ new Map(), o = {}, s = /* @__PURE__ */ new Map();
|
|
650
650
|
for (let t of e.textures) {
|
|
651
651
|
let e;
|
|
652
652
|
if (t.path) {
|
|
653
|
-
|
|
653
|
+
let r = `${t.loader}|${t.path}`, i = s.get(r);
|
|
654
|
+
if (i) e = i.clone(), e.userData = {};
|
|
655
|
+
else {
|
|
656
|
+
if (e = await n(t.path, t.loader), !e) throw Error(`scene graph: "${t.path}" is missing from the archive`);
|
|
657
|
+
s.set(r, e);
|
|
658
|
+
}
|
|
654
659
|
e.userData[_t] = t.path, e.userData[vt] = t.loader;
|
|
655
660
|
} else e = new k(i(t.data.section), t.data.width, t.data.height);
|
|
656
661
|
Vt(e, t), o[t.uuid] = e;
|
|
657
662
|
}
|
|
658
|
-
let
|
|
663
|
+
let c = new me().setTextures(o), l = {};
|
|
659
664
|
for (let t of e.materials) {
|
|
660
|
-
let e =
|
|
665
|
+
let e = c.parse(t);
|
|
661
666
|
for (let [n, r] of Object.entries(t.exactColors ?? {})) n === "diffuseTransmissionColor" && (e[n] = new O()), e[n]?.setRGB(r[0], r[1], r[2]);
|
|
662
667
|
t.exactIor !== void 0 && (e.ior = t.exactIor), t.diffuseTransmission !== void 0 && (e.diffuseTransmission = t.diffuseTransmission), t.diffuseRoughness !== void 0 && (e.diffuseRoughness = t.diffuseRoughness);
|
|
663
668
|
for (let [n, r] of Object.entries(t.engineTextures ?? {})) o[r] && (e[n] = o[r]);
|
|
664
|
-
|
|
669
|
+
l[t.uuid] = e;
|
|
665
670
|
}
|
|
666
|
-
let
|
|
671
|
+
let u = {};
|
|
667
672
|
for (let t of e.geometries) {
|
|
668
673
|
let e = new D();
|
|
669
674
|
e.uuid = t.uuid, e.name = t.name;
|
|
670
675
|
for (let [n, i] of Object.entries(t.attributes)) e.setAttribute(n, Bt(r, i));
|
|
671
676
|
t.index && e.setIndex(Bt(r, t.index));
|
|
672
677
|
for (let n of t.groups) e.addGroup(n.start, n.count, n.materialIndex);
|
|
673
|
-
e.setDrawRange(t.drawRange.start, t.drawRange.count), e.userData = t.userData,
|
|
678
|
+
e.setDrawRange(t.drawRange.start, t.drawRange.count), e.userData = t.userData, u[t.uuid] = e;
|
|
674
679
|
}
|
|
675
|
-
let
|
|
680
|
+
let d = [];
|
|
676
681
|
for (let t of e.nodes) {
|
|
677
|
-
let e = Array.isArray(t.material) ? t.material.map((e) =>
|
|
682
|
+
let e = Array.isArray(t.material) ? t.material.map((e) => l[e]) : l[t.material], n;
|
|
678
683
|
switch (t.type) {
|
|
679
684
|
case "InstancedMesh": {
|
|
680
|
-
n = new de(
|
|
685
|
+
n = new de(u[t.geometry], e, 1);
|
|
681
686
|
let r = a.get(t.instanceMatrix.offset);
|
|
682
687
|
r || a.set(t.instanceMatrix.offset, r = new ue(i(t.instanceMatrix), 16)), n.instanceMatrix = r, n.count = t.count, t.instanceColor && (n.instanceColor = new ue(i(t.instanceColor), 3));
|
|
683
688
|
break;
|
|
684
689
|
}
|
|
685
690
|
case "Mesh":
|
|
686
|
-
n = new he(
|
|
691
|
+
n = new he(u[t.geometry], e);
|
|
687
692
|
break;
|
|
688
693
|
case "PerspectiveCamera":
|
|
689
694
|
n = new xe();
|
|
@@ -728,20 +733,20 @@ async function Ht(e, t, { loadTexture: n }) {
|
|
|
728
733
|
n.color.fromArray(t.color);
|
|
729
734
|
for (let e of wt) t[e] !== void 0 && (n[e] = t[e]);
|
|
730
735
|
}
|
|
731
|
-
|
|
736
|
+
d.push(n), t.parent >= 0 && d[t.parent].add(n);
|
|
732
737
|
}
|
|
733
|
-
let
|
|
738
|
+
let f = new Map(d.map((e) => [e.uuid, e]));
|
|
734
739
|
return e.nodes.forEach((e, t) => {
|
|
735
|
-
e.target &&
|
|
740
|
+
e.target && f.has(e.target) && (d[t].target = f.get(e.target));
|
|
736
741
|
}), {
|
|
737
|
-
root:
|
|
742
|
+
root: d[0],
|
|
738
743
|
environment: e.environment ? o[e.environment] : null,
|
|
739
744
|
animations: e.animations.map((e) => C.parse(e)),
|
|
740
745
|
stats: e.stats
|
|
741
746
|
};
|
|
742
747
|
}
|
|
743
748
|
//#endregion
|
|
744
|
-
//#region src/
|
|
749
|
+
//#region src/loaders/pbrt/buffers.js
|
|
745
750
|
var Ut = (e) => e.byteOffset === 0 && e.byteLength === e.buffer.byteLength && typeof e.buffer.transfer == "function" && !(typeof SharedArrayBuffer < "u" && e.buffer instanceof SharedArrayBuffer);
|
|
746
751
|
function R(e) {
|
|
747
752
|
e && Ut(e) && e.buffer.transfer(0);
|
|
@@ -753,7 +758,7 @@ function z(e, t) {
|
|
|
753
758
|
return r.set(t < e.length ? e.subarray(0, t) : e), r;
|
|
754
759
|
}
|
|
755
760
|
//#endregion
|
|
756
|
-
//#region src/
|
|
761
|
+
//#region src/loaders/pbrt/PBRTTokenizer.js
|
|
757
762
|
var B = {
|
|
758
763
|
STRING: "string",
|
|
759
764
|
NUMBER: "number",
|
|
@@ -856,7 +861,7 @@ var mn = class {
|
|
|
856
861
|
}
|
|
857
862
|
};
|
|
858
863
|
//#endregion
|
|
859
|
-
//#region src/
|
|
864
|
+
//#region src/loaders/pbrt/PBRTMath.js
|
|
860
865
|
function hn() {
|
|
861
866
|
return [
|
|
862
867
|
1,
|
|
@@ -1038,7 +1043,7 @@ function Tn(e) {
|
|
|
1038
1043
|
];
|
|
1039
1044
|
}
|
|
1040
1045
|
//#endregion
|
|
1041
|
-
//#region src/
|
|
1046
|
+
//#region src/loaders/pbrt/PBRTParser.js
|
|
1042
1047
|
var En = 8, Dn = 1, On = 2, kn = 3, An = new Set([
|
|
1043
1048
|
"Identity",
|
|
1044
1049
|
"Transform",
|
|
@@ -2099,7 +2104,7 @@ function zn(e, t) {
|
|
|
2099
2104
|
return (r + i) / 2;
|
|
2100
2105
|
}
|
|
2101
2106
|
//#endregion
|
|
2102
|
-
//#region src/
|
|
2107
|
+
//#region src/loaders/pbrt/PBRTMaterials.js
|
|
2103
2108
|
var Bn = {
|
|
2104
2109
|
au: [
|
|
2105
2110
|
1,
|
|
@@ -2466,7 +2471,7 @@ async function tr(e, t) {
|
|
|
2466
2471
|
return s && t.resolveNormalMap && (i.normalMap = await t.resolveNormalMap(s)), i.clearcoat > 0 && i.normalMap && (i.clearcoatNormalMap = i.normalMap), i.roughness = Math.max(0, Math.min(1, i.roughness)), i;
|
|
2467
2472
|
}
|
|
2468
2473
|
//#endregion
|
|
2469
|
-
//#region src/
|
|
2474
|
+
//#region src/loaders/pbrt/PBRTTextureBake.js
|
|
2470
2475
|
var nr = 4096, rr = (e) => e?.key ?? "", ir = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, ar = (e) => e <= .0031308 ? e * 12.92 : 1.055 * e ** (1 / 2.4) - .055;
|
|
2471
2476
|
function or(e, { channels: t, decode: n = null, scale: r = 1, invert: i = !1, mapping: a = null }) {
|
|
2472
2477
|
let { width: o, height: s } = e, c = e.channels ?? 4, l = new Float32Array(o * s * t), u = e.topDown !== !1, d = n && (e.data instanceof Uint8Array || e.data instanceof Uint8ClampedArray) ? Float64Array.from({ length: 256 }, (e, t) => n(t / 255)) : null, f = d ? (t) => d[e.data[t]] : (t) => n ? n(e.data[t] / 255) : e.data[t], p = t === 1 && c === 4 && sr(e), m = t === 1 && c >= 3 && !p;
|
|
@@ -2645,7 +2650,7 @@ function hr(e, t, n, r) {
|
|
|
2645
2650
|
};
|
|
2646
2651
|
}
|
|
2647
2652
|
//#endregion
|
|
2648
|
-
//#region src/
|
|
2653
|
+
//#region src/loaders/pbrt/LoopSubdivision.js
|
|
2649
2654
|
function gr(e) {
|
|
2650
2655
|
return e === 3 ? 3 / 16 : 3 / (8 * e);
|
|
2651
2656
|
}
|
|
@@ -2733,7 +2738,7 @@ function xr(e, t, n, r = 2e6) {
|
|
|
2733
2738
|
};
|
|
2734
2739
|
}
|
|
2735
2740
|
//#endregion
|
|
2736
|
-
//#region src/
|
|
2741
|
+
//#region src/loaders/pbrt/EqualAreaOctahedral.js
|
|
2737
2742
|
function Sr(e, t, n) {
|
|
2738
2743
|
let r = Math.abs(e), i = Math.abs(t), a = Math.sqrt(Math.max(0, 1 - Math.abs(n))), o = Math.max(r, i), s = o === 0 ? 0 : Math.min(r, i) / o, c = 2 / Math.PI * Math.atan(s);
|
|
2739
2744
|
r < i && (c = 1 - c);
|
|
@@ -2786,7 +2791,7 @@ function Tr(e, t, n = 1, r = 0) {
|
|
|
2786
2791
|
};
|
|
2787
2792
|
}
|
|
2788
2793
|
//#endregion
|
|
2789
|
-
//#region src/
|
|
2794
|
+
//#region src/loaders/pbrt/PBRTCurves.js
|
|
2790
2795
|
var Er = 2;
|
|
2791
2796
|
function Dr(e, t) {
|
|
2792
2797
|
let n = e * e, r = n * e;
|
|
@@ -3081,7 +3086,7 @@ async function Hr(e, t = null) {
|
|
|
3081
3086
|
};
|
|
3082
3087
|
}
|
|
3083
3088
|
//#endregion
|
|
3084
|
-
//#region src/
|
|
3089
|
+
//#region src/loaders/pbrt/PBRTSceneBuilder.js
|
|
3085
3090
|
var Ur = new Set([
|
|
3086
3091
|
"distant",
|
|
3087
3092
|
"point",
|
|
@@ -3503,7 +3508,7 @@ var Ri = class {
|
|
|
3503
3508
|
async _buildInstances(e, t) {
|
|
3504
3509
|
let n = 0;
|
|
3505
3510
|
e.skippedInstances > 0 && (this.skippedForBudget += e.skippedInstances);
|
|
3506
|
-
let
|
|
3511
|
+
let r = new Float64Array(16), i = new M(), o = /* @__PURE__ */ new Map(), s = (e, s, c, l, u, d, f) => {
|
|
3507
3512
|
let p = l ? Array.prototype.join.call(l, ",") : "", m = o.get(e);
|
|
3508
3513
|
m || o.set(e, m = /* @__PURE__ */ new Map());
|
|
3509
3514
|
let h = m.get(p), g = Math.max(0, this.maxPlacements - this.placementCount), _ = h ? h.count : Math.min(e.count, g);
|
|
@@ -3512,16 +3517,16 @@ var Ri = class {
|
|
|
3512
3517
|
if (v.name = `instance_${n++}`, v.frustumCulled = !1, h) v.instanceMatrix = h.attribute;
|
|
3513
3518
|
else {
|
|
3514
3519
|
for (let t = 0; t < _; t++) {
|
|
3515
|
-
if (l) _n(
|
|
3516
|
-
else for (let n = 0; n < 16; n++)
|
|
3517
|
-
v.setMatrixAt(t,
|
|
3520
|
+
if (l) _n(r, e.matrices, t * 16, l);
|
|
3521
|
+
else for (let n = 0; n < 16; n++) r[n] = e.matrices[t * 16 + n];
|
|
3522
|
+
v.setMatrixAt(t, i.fromArray(this.convertHandedness ? V(Gr, r) : r));
|
|
3518
3523
|
}
|
|
3519
3524
|
v.instanceMatrix.needsUpdate = !0, m.set(p, {
|
|
3520
3525
|
attribute: v.instanceMatrix,
|
|
3521
3526
|
count: _
|
|
3522
3527
|
}), this.placementCount += _;
|
|
3523
3528
|
}
|
|
3524
|
-
|
|
3529
|
+
a(v), t.add(v), this.reportedMeshes += _, this.report.length < Xr && this.report.push({
|
|
3525
3530
|
mesh: `${v.name} ×${_}`,
|
|
3526
3531
|
shape: u,
|
|
3527
3532
|
material: d,
|
|
@@ -3820,26 +3825,26 @@ var Ri = class {
|
|
|
3820
3825
|
return a && a.length && n.setIndex(qr(a)), r || n.computeVertexNormals(), n;
|
|
3821
3826
|
}
|
|
3822
3827
|
_curve(e) {
|
|
3823
|
-
let
|
|
3824
|
-
if (!
|
|
3825
|
-
let
|
|
3826
|
-
if (
|
|
3827
|
-
let
|
|
3828
|
-
P:
|
|
3828
|
+
let t = U(e, "P")?.value;
|
|
3829
|
+
if (!t || t.length < 12) return this.warn("curve needs at least 4 control points"), null;
|
|
3830
|
+
let n = Math.round(G(e, "degree", 3));
|
|
3831
|
+
if (n !== 3) return this.warn(`curve degree ${n} not supported — only cubic`), null;
|
|
3832
|
+
let r = K(e, "type", "flat"), i = G(e, "width", 1), a = Lr({
|
|
3833
|
+
P: t,
|
|
3829
3834
|
basis: K(e, "basis", "bezier"),
|
|
3830
|
-
width0: G(e, "width0",
|
|
3831
|
-
width1: G(e, "width1",
|
|
3835
|
+
width0: G(e, "width0", i),
|
|
3836
|
+
width1: G(e, "width1", i),
|
|
3832
3837
|
N: U(e, "N")?.value || null,
|
|
3833
3838
|
steps: this.curveSteps,
|
|
3834
|
-
sides: this.curveSides ?? ii[
|
|
3839
|
+
sides: this.curveSides ?? ii[r] ?? 1,
|
|
3835
3840
|
tolerance: this.curveTolerance
|
|
3836
3841
|
});
|
|
3837
|
-
if (!
|
|
3838
|
-
let
|
|
3839
|
-
return
|
|
3842
|
+
if (!a) return this.warn("curve could not be tessellated"), null;
|
|
3843
|
+
let o = new D();
|
|
3844
|
+
return o.setAttribute("position", new E(a.positions, 3)), o.setIndex(new E(a.indices, 1)), o.computeVertexNormals(), s(o, "normal"), o;
|
|
3840
3845
|
}
|
|
3841
3846
|
async _curves(e) {
|
|
3842
|
-
let
|
|
3847
|
+
let t = await Hr({
|
|
3843
3848
|
P: U(e, "P").value,
|
|
3844
3849
|
counts: U(e, "counts").value,
|
|
3845
3850
|
widths: U(e, "widths")?.value ?? null,
|
|
@@ -3853,10 +3858,10 @@ var Ri = class {
|
|
|
3853
3858
|
sides: this.curveSides ?? 1,
|
|
3854
3859
|
tolerance: this.curveTolerance
|
|
3855
3860
|
}, () => this._tick());
|
|
3856
|
-
if (!
|
|
3857
|
-
|
|
3858
|
-
let
|
|
3859
|
-
return
|
|
3861
|
+
if (!t) return this.warn("curves could not be tessellated"), null;
|
|
3862
|
+
t.skipped > 0 && this.warn(`${t.skipped} curve(s) of an unsupported basis or too few points skipped`);
|
|
3863
|
+
let n = new D();
|
|
3864
|
+
return n.setAttribute("position", new E(t.positions, 3)), n.setIndex(new E(t.indices, 1)), n.computeVertexNormals(), s(n, "normal"), n;
|
|
3860
3865
|
}
|
|
3861
3866
|
_loopSubdiv(e) {
|
|
3862
3867
|
let t = U(e, "P")?.value, n = U(e, "indices")?.value;
|
|
@@ -4825,7 +4830,7 @@ function ea(e) {
|
|
|
4825
4830
|
}, e;
|
|
4826
4831
|
}
|
|
4827
4832
|
//#endregion
|
|
4828
|
-
//#region src/
|
|
4833
|
+
//#region src/loaders/pbrt/index.js
|
|
4829
4834
|
var ta = 2e6, na = new TextDecoder();
|
|
4830
4835
|
function ra(e) {
|
|
4831
4836
|
let t = e.replace(/\\/g, "/").split("/"), n = [];
|
|
@@ -5035,7 +5040,7 @@ function ya(e) {
|
|
|
5035
5040
|
return `${t.length > 1 ? t[t.length - 2] : t[0].replace(/\d+\.pbrt$/i, "") || "frames"} · frames ${e[0].number}–${e[e.length - 1].number}`;
|
|
5036
5041
|
}
|
|
5037
5042
|
//#endregion
|
|
5038
|
-
//#region src/
|
|
5043
|
+
//#region src/loaders/usd/USDLayer.js
|
|
5039
5044
|
var ba = class {
|
|
5040
5045
|
constructor(e, t) {
|
|
5041
5046
|
this.asset = e, this.path = t;
|
|
@@ -5682,7 +5687,7 @@ function Ga(e, t = "") {
|
|
|
5682
5687
|
return r;
|
|
5683
5688
|
}
|
|
5684
5689
|
//#endregion
|
|
5685
|
-
//#region src/
|
|
5690
|
+
//#region src/loaders/usd/USDText.js
|
|
5686
5691
|
var Ka = new Set([
|
|
5687
5692
|
"prepend",
|
|
5688
5693
|
"append",
|
|
@@ -6049,7 +6054,7 @@ function fo(e, t = "") {
|
|
|
6049
6054
|
return new uo(e).parse(t);
|
|
6050
6055
|
}
|
|
6051
6056
|
//#endregion
|
|
6052
|
-
//#region src/
|
|
6057
|
+
//#region src/loaders/usd/USDStage.js
|
|
6053
6058
|
var po = {
|
|
6054
6059
|
local: 0,
|
|
6055
6060
|
inherit: 1,
|
|
@@ -8127,7 +8132,7 @@ async function ds(e) {
|
|
|
8127
8132
|
};
|
|
8128
8133
|
}
|
|
8129
8134
|
//#endregion
|
|
8130
|
-
//#region src/
|
|
8135
|
+
//#region src/loaders/pbrt/PFM.js
|
|
8131
8136
|
function fs(e) {
|
|
8132
8137
|
let t = 0, n = () => {
|
|
8133
8138
|
for (; t < e.length && e[t] <= 32;) t++;
|
|
@@ -8157,7 +8162,7 @@ function ps(e) {
|
|
|
8157
8162
|
return i.minFilter = fe, i.magFilter = fe, i.needsUpdate = !0, i;
|
|
8158
8163
|
}
|
|
8159
8164
|
//#endregion
|
|
8160
|
-
//#region src/
|
|
8165
|
+
//#region src/loaders/archives/ArchiveImporter.js
|
|
8161
8166
|
var ms = /* @__PURE__ */ e({
|
|
8162
8167
|
ARCHIVE_ELEMENT_PROMPT_BYTES: () => Ss,
|
|
8163
8168
|
ArchiveImporter: () => ws,
|
|
@@ -8179,7 +8184,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8179
8184
|
let t = await vs(e);
|
|
8180
8185
|
return t.byteOffset === 0 && t.byteLength === t.buffer.byteLength ? t.buffer : t.slice().buffer;
|
|
8181
8186
|
}, Ss = 4e9, Cs = 1e9, ws = class {
|
|
8182
|
-
static FORMATS =
|
|
8187
|
+
static FORMATS = b;
|
|
8183
8188
|
constructor(e) {
|
|
8184
8189
|
this.loader = e, this._store = null, this.lastPBRTStats = null, this.lastUSDStats = null;
|
|
8185
8190
|
}
|
|
@@ -8190,7 +8195,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8190
8195
|
return e instanceof Uint8Array ? e.subarray(0, t) : typeof e.slice == "function" && typeof e.arrayBuffer == "function" ? new Uint8Array(await e.slice(0, t).arrayBuffer()) : new Uint8Array((await this.loader.readFileAsArrayBuffer(e)).slice(0, t));
|
|
8191
8196
|
}
|
|
8192
8197
|
async inspectArchive(e) {
|
|
8193
|
-
let t = Ue(await this._readHead(e)), n = (e) =>
|
|
8198
|
+
let t = Ue(await this._readHead(e)), n = (e) => y({
|
|
8194
8199
|
isLoading: !0,
|
|
8195
8200
|
status: `Scanning archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
|
|
8196
8201
|
progress: 4
|
|
@@ -8224,7 +8229,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8224
8229
|
filter: ct(r),
|
|
8225
8230
|
part: [...r].sort().join(",")
|
|
8226
8231
|
} : {},
|
|
8227
|
-
onProgress: (e) =>
|
|
8232
|
+
onProgress: (e) => y({
|
|
8228
8233
|
isLoading: !0,
|
|
8229
8234
|
status: `Unpacking archive… ${(e / 1e9).toFixed(1)} GB`,
|
|
8230
8235
|
progress: 4
|
|
@@ -8236,7 +8241,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8236
8241
|
}
|
|
8237
8242
|
async loadArchiveFromFile(e, t, { pbrtEntry: n = null, element: r = null, byteBudget: i, promptBytes: a, ...o } = {}) {
|
|
8238
8243
|
try {
|
|
8239
|
-
let s = Ue(await this._readHead(e)), c = this.loader.storage ? m(await
|
|
8244
|
+
let s = Ue(await this._readHead(e)), c = this.loader.storage ? m(await g(e)) : null, l = {
|
|
8240
8245
|
element: r,
|
|
8241
8246
|
promptBytes: a,
|
|
8242
8247
|
pbrtEntry: n,
|
|
@@ -8270,7 +8275,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8270
8275
|
async loadFolder(e, { pbrtEntry: t = null, element: n = null, promptBytes: r, ...i } = {}) {
|
|
8271
8276
|
let a = (Array.isArray(n) ? n : [n]).filter(Boolean), o = st(e, { filter: a.length ? ct(a) : null }), s = o.listing.reduce((e, t) => e + t.size, 0);
|
|
8272
8277
|
a.length === 0 && this._requireElementChoice(e.name, o.listing, s, r), console.info(`Folder "${e.name}": ${o.listing.length} files, ${(s / 1e9).toFixed(1)} GB` + (a.length ? `, ${a.length} part${a.length > 1 ? "s" : ""} selected.` : "."));
|
|
8273
|
-
let c = this.loader.storage ? m(await
|
|
8278
|
+
let c = this.loader.storage ? m(await v(e)) : null;
|
|
8274
8279
|
return await this._loadSource(o, e.name, {
|
|
8275
8280
|
element: n,
|
|
8276
8281
|
pbrtEntry: t,
|
|
@@ -8308,38 +8313,38 @@ var ms = /* @__PURE__ */ e({
|
|
|
8308
8313
|
}) : await this._loadNonPBRTArchive(c, t);
|
|
8309
8314
|
return this.loader._sourceKey = this.loader._keyed(s, a), l;
|
|
8310
8315
|
}
|
|
8311
|
-
async _loadStoredGraph(e,
|
|
8312
|
-
let
|
|
8313
|
-
if (!
|
|
8314
|
-
let
|
|
8316
|
+
async _loadStoredGraph(e, n, { imageFromBytes: r, envFromBytes: i }) {
|
|
8317
|
+
let a = this.loader.storage?.area(h.SCENES), o = a ? await a.open(e) : null;
|
|
8318
|
+
if (!o) return null;
|
|
8319
|
+
let s = performance.now(), c = null;
|
|
8315
8320
|
try {
|
|
8316
|
-
|
|
8321
|
+
y({
|
|
8317
8322
|
isLoading: !0,
|
|
8318
8323
|
status: "Opening the stored scene...",
|
|
8319
8324
|
progress: 6
|
|
8320
8325
|
});
|
|
8321
|
-
let e = await
|
|
8322
|
-
let
|
|
8323
|
-
return
|
|
8326
|
+
let e = await o.json("graph.json"), t = await o.file("data.bin"), a = new aa({}, n), c = await Ht(e, t, { loadTexture: async (e, t) => {
|
|
8327
|
+
let n = await a.readPath(e);
|
|
8328
|
+
return n ? t === "environment" ? i(n, e) : r(n, e) : null;
|
|
8324
8329
|
} });
|
|
8325
8330
|
return {
|
|
8326
|
-
...
|
|
8327
|
-
group:
|
|
8328
|
-
environment:
|
|
8329
|
-
animations:
|
|
8331
|
+
...c.stats,
|
|
8332
|
+
group: c.root,
|
|
8333
|
+
environment: c.environment ? { texture: c.environment } : null,
|
|
8334
|
+
animations: c.animations,
|
|
8330
8335
|
report: null,
|
|
8331
8336
|
parseMs: 0,
|
|
8332
|
-
buildMs: performance.now() -
|
|
8337
|
+
buildMs: performance.now() - s,
|
|
8333
8338
|
fromStorage: !0
|
|
8334
8339
|
};
|
|
8335
8340
|
} catch (e) {
|
|
8336
8341
|
return c = e, null;
|
|
8337
8342
|
} finally {
|
|
8338
|
-
|
|
8343
|
+
o.release(), c && (console.warn(`The stored scene could not be used, parsing the archive instead: ${c.message}`), this.loader._issues?.warn(t.STORAGE_ENTRY_CORRUPT, `stored scene unusable: ${c.message}`, { key: e }), a.remove(e).catch(() => {}));
|
|
8339
8344
|
}
|
|
8340
8345
|
}
|
|
8341
8346
|
_storeGraph(e, t, n) {
|
|
8342
|
-
let r = this.loader.storage?.area(
|
|
8347
|
+
let r = this.loader.storage?.area(h.SCENES);
|
|
8343
8348
|
if (!r) return;
|
|
8344
8349
|
let i;
|
|
8345
8350
|
try {
|
|
@@ -8365,29 +8370,29 @@ var ms = /* @__PURE__ */ e({
|
|
|
8365
8370
|
e instanceof Et ? console.info(`Scene not stored for next time: ${e.message}`) : console.warn("Scene not stored for next time:", e);
|
|
8366
8371
|
return;
|
|
8367
8372
|
}
|
|
8368
|
-
let
|
|
8373
|
+
let a, o = new AbortController(), s = {
|
|
8369
8374
|
key: e,
|
|
8370
8375
|
encoded: i,
|
|
8371
8376
|
label: n,
|
|
8372
8377
|
model: t.group,
|
|
8373
8378
|
writing: !1,
|
|
8374
|
-
signal:
|
|
8379
|
+
signal: o.signal,
|
|
8375
8380
|
parseMs: (t.parseMs ?? 0) + (t.buildMs ?? 0),
|
|
8376
8381
|
triangles: t.triangleCount ?? null,
|
|
8377
8382
|
accepted: new Promise((e) => {
|
|
8378
|
-
|
|
8383
|
+
a = e;
|
|
8379
8384
|
}),
|
|
8380
8385
|
decide: (e) => {
|
|
8381
|
-
|
|
8386
|
+
a(e), e || o.abort();
|
|
8382
8387
|
}
|
|
8383
8388
|
};
|
|
8384
|
-
this._store =
|
|
8389
|
+
this._store = s, l(s.parseMs, i.byteLength) && this._writeGraph(r, s);
|
|
8385
8390
|
}
|
|
8386
8391
|
flushPendingGraph(e) {
|
|
8387
8392
|
let t = this._store;
|
|
8388
8393
|
if (!t || t.writing) return;
|
|
8389
|
-
let n = this.loader.storage?.area(
|
|
8390
|
-
n &&
|
|
8394
|
+
let n = this.loader.storage?.area(h.SCENES);
|
|
8395
|
+
n && l(t.parseMs + e, t.encoded.byteLength) ? this._writeGraph(n, t) : this._store = null;
|
|
8391
8396
|
}
|
|
8392
8397
|
commitPendingGraph(e) {
|
|
8393
8398
|
let t = this._store;
|
|
@@ -8413,65 +8418,65 @@ var ms = /* @__PURE__ */ e({
|
|
|
8413
8418
|
})();
|
|
8414
8419
|
}
|
|
8415
8420
|
async _openSeekableArchive(e, t, n, r, { index: i = null, zip: a = !1 } = {}) {
|
|
8416
|
-
let o = Array.isArray(n) ? n.filter(Boolean) : n ? [n] : [],
|
|
8417
|
-
if (a)
|
|
8421
|
+
let o = Array.isArray(n) ? n.filter(Boolean) : n ? [n] : [], s = o.length ? ct(o) : null, c;
|
|
8422
|
+
if (a) c = await S(e, { filter: s });
|
|
8418
8423
|
else {
|
|
8419
8424
|
let t = i ?? await mt(e, this.loader.storage);
|
|
8420
|
-
|
|
8425
|
+
c = await ot(e, {
|
|
8421
8426
|
index: t,
|
|
8422
8427
|
headersOnly: !0,
|
|
8423
|
-
filter:
|
|
8424
|
-
onProgress: (e) =>
|
|
8428
|
+
filter: s,
|
|
8429
|
+
onProgress: (e) => y({
|
|
8425
8430
|
isLoading: !0,
|
|
8426
8431
|
status: `Indexing archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
|
|
8427
8432
|
progress: 4
|
|
8428
8433
|
})
|
|
8429
|
-
}), t || ht(e, this.loader.storage,
|
|
8434
|
+
}), t || ht(e, this.loader.storage, c.index).catch(() => {});
|
|
8430
8435
|
}
|
|
8431
|
-
let
|
|
8432
|
-
return o.length === 0 && this._requireElementChoice(t,
|
|
8436
|
+
let l = c.listing.reduce((e, t) => e + t.size, 0);
|
|
8437
|
+
return o.length === 0 && this._requireElementChoice(t, c.listing, l, r), console.info(`Archive "${t}": indexed ${c.indexed} entries, ${(l / 1e9).toFixed(1)} GB, none resident` + (o.length ? `, ${o.length} part${o.length > 1 ? "s" : ""} selected.` : ".")), c;
|
|
8433
8438
|
}
|
|
8434
|
-
_requireElementChoice(e,
|
|
8435
|
-
if (
|
|
8436
|
-
let { root:
|
|
8437
|
-
if (
|
|
8438
|
-
let
|
|
8439
|
-
throw
|
|
8440
|
-
root:
|
|
8441
|
-
elements:
|
|
8442
|
-
totalBytes:
|
|
8443
|
-
},
|
|
8444
|
-
}
|
|
8445
|
-
async _readStreamedArchive(e,
|
|
8446
|
-
let
|
|
8447
|
-
filter:
|
|
8448
|
-
...
|
|
8449
|
-
onProgress: (e) =>
|
|
8439
|
+
_requireElementChoice(e, r, i, a = Ss) {
|
|
8440
|
+
if (i < a) return;
|
|
8441
|
+
let { root: o, elements: s } = lt(r);
|
|
8442
|
+
if (s.length < 2) return;
|
|
8443
|
+
let c = /* @__PURE__ */ Error(`"${e}" holds ${(i / 1e9).toFixed(1)} GB across ${s.length} parts. Choose which to load — loading all of them at once may exhaust memory.`);
|
|
8444
|
+
throw c.code = "ARCHIVE_NEEDS_ELEMENT", c.root = o, c.elements = s, c.totalBytes = i, this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `archive holds ${(i / 1e9).toFixed(1)} GB across ${s.length} parts; choose which to load`, {
|
|
8445
|
+
root: o,
|
|
8446
|
+
elements: s.map((e) => e.prefix),
|
|
8447
|
+
totalBytes: i
|
|
8448
|
+
}, n.WARNING), c;
|
|
8449
|
+
}
|
|
8450
|
+
async _readStreamedArchive(e, r, i, a, o) {
|
|
8451
|
+
let s = Array.isArray(a) ? a.filter(Boolean) : a ? [a] : [], { entries: c, listing: l, retainedBytes: u, truncated: d } = await nt(e, {
|
|
8452
|
+
filter: s.length ? ct(s) : null,
|
|
8453
|
+
...o === void 0 ? {} : { byteBudget: o },
|
|
8454
|
+
onProgress: (e) => y({
|
|
8450
8455
|
isLoading: !0,
|
|
8451
8456
|
status: `Reading archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
|
|
8452
8457
|
progress: 4
|
|
8453
8458
|
})
|
|
8454
8459
|
});
|
|
8455
|
-
if (
|
|
8456
|
-
let { root: e, elements:
|
|
8457
|
-
throw
|
|
8460
|
+
if (d && s.length === 0) {
|
|
8461
|
+
let { root: e, elements: i } = lt(l), a = l.reduce((e, t) => e + t.size, 0), o = /* @__PURE__ */ Error(`"${r}" unpacks to ${(a / 1e9).toFixed(1)} GB, past the load budget. Load one of its ${i.length} parts instead.`);
|
|
8462
|
+
throw o.code = "ARCHIVE_NEEDS_ELEMENT", o.root = e, o.elements = i, o.totalBytes = a, this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `archive unpacks to ${(a / 1e9).toFixed(1)} GB; choose one of ${i.length} parts`, {
|
|
8458
8463
|
root: e,
|
|
8459
|
-
elements:
|
|
8460
|
-
totalBytes:
|
|
8461
|
-
},
|
|
8462
|
-
}
|
|
8463
|
-
if (
|
|
8464
|
-
let e = ct(
|
|
8465
|
-
this.loader._issues?.record(
|
|
8466
|
-
elements:
|
|
8467
|
-
missing:
|
|
8468
|
-
retainedBytes:
|
|
8469
|
-
},
|
|
8470
|
-
}
|
|
8471
|
-
return
|
|
8472
|
-
}
|
|
8473
|
-
async loadPBRTFromZip(e,
|
|
8474
|
-
if (
|
|
8464
|
+
elements: i.map((e) => e.prefix),
|
|
8465
|
+
totalBytes: a
|
|
8466
|
+
}, n.WARNING), o;
|
|
8467
|
+
}
|
|
8468
|
+
if (d) {
|
|
8469
|
+
let e = ct(s), r = l.filter((t) => e(t.path, t.size) && !c[t.path]).length;
|
|
8470
|
+
this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `${r} files of the chosen parts were left out: they did not fit the ${((o ?? 15e8) / 1e9).toFixed(1)} GB in-memory read budget`, {
|
|
8471
|
+
elements: s,
|
|
8472
|
+
missing: r,
|
|
8473
|
+
retainedBytes: u
|
|
8474
|
+
}, n.WARNING);
|
|
8475
|
+
}
|
|
8476
|
+
return s.length && console.info(`Archive "${r}": loaded ${s.map((e) => `"${e}"`).join(", ")} — ${Object.keys(c).length} of ${l.length} files, ${(u / 1048576).toFixed(1)} MB.`), c;
|
|
8477
|
+
}
|
|
8478
|
+
async loadPBRTFromZip(e, r, i = null, a = {}, o = null) {
|
|
8479
|
+
if (y({
|
|
8475
8480
|
isLoading: !0,
|
|
8476
8481
|
status: "Parsing PBRT scene...",
|
|
8477
8482
|
progress: 5
|
|
@@ -8479,34 +8484,34 @@ var ms = /* @__PURE__ */ e({
|
|
|
8479
8484
|
let { PLYLoader: e } = await import("three/examples/jsm/loaders/PLYLoader.js");
|
|
8480
8485
|
this.loader.loaderCache.ply = new e();
|
|
8481
8486
|
}
|
|
8482
|
-
let
|
|
8483
|
-
animation:
|
|
8484
|
-
maxTriangles:
|
|
8485
|
-
maxPlacements:
|
|
8486
|
-
mergeShapesAbove:
|
|
8487
|
-
curveSteps:
|
|
8488
|
-
curveSides:
|
|
8489
|
-
curveTolerance:
|
|
8490
|
-
instanceIncludes:
|
|
8491
|
-
},
|
|
8492
|
-
imageFromBytes:
|
|
8493
|
-
envFromBytes:
|
|
8494
|
-
}) : null,
|
|
8487
|
+
let s = (e) => this.loader.loaderCache.ply.parse(e), c = (e, t) => this._archiveImage(e, t), l = (e, t) => this._archiveEnvironment(e, t), f = performance.now(), p = {
|
|
8488
|
+
animation: a.animation,
|
|
8489
|
+
maxTriangles: a.maxTriangles,
|
|
8490
|
+
maxPlacements: a.maxPlacements,
|
|
8491
|
+
mergeShapesAbove: a.mergeShapesAbove,
|
|
8492
|
+
curveSteps: a.curveSteps,
|
|
8493
|
+
curveSides: a.curveSides,
|
|
8494
|
+
curveTolerance: a.curveTolerance,
|
|
8495
|
+
instanceIncludes: a.instanceIncludes
|
|
8496
|
+
}, m = o?.archiveId ? this.loader._keyed(`pbrt:2.14:${d}`, `${o.archiveId}|${i ?? ""}|${[...o.elements ?? []].sort().join(",")}|${JSON.stringify(p)}`) : null, h = m ? await this._loadStoredGraph(m, o, {
|
|
8497
|
+
imageFromBytes: c,
|
|
8498
|
+
envFromBytes: l
|
|
8499
|
+
}) : null, g = h ?? await va({
|
|
8495
8500
|
vfs: e,
|
|
8496
|
-
source:
|
|
8497
|
-
entryPath:
|
|
8498
|
-
plyParser:
|
|
8499
|
-
imageFromBytes:
|
|
8500
|
-
envFromBytes:
|
|
8501
|
-
...
|
|
8502
|
-
pause: this._buildPause(
|
|
8501
|
+
source: o,
|
|
8502
|
+
entryPath: i,
|
|
8503
|
+
plyParser: s,
|
|
8504
|
+
imageFromBytes: c,
|
|
8505
|
+
envFromBytes: l,
|
|
8506
|
+
...p,
|
|
8507
|
+
pause: this._buildPause(u())
|
|
8503
8508
|
});
|
|
8504
8509
|
this.loader._throwDeferred();
|
|
8505
|
-
let { group:
|
|
8506
|
-
|
|
8510
|
+
let { group: _, environment: v, animations: b, report: x, warnings: S, meshCount: C, entryPath: w, candidates: T, frames: E, parseMs: D, buildMs: ee, triangleCount: te, placementCount: O, mergedShapes: ne, skippedForBudget: re, droppedNoTemplate: k, parameters: ie } = g;
|
|
8511
|
+
h && console.info(`PBRT scene "${w}" opened from storage in ${(ee / 1e3).toFixed(1)} s, skipping the parse`), this.lastPBRTStats = {
|
|
8507
8512
|
parseMs: D,
|
|
8508
8513
|
buildMs: ee,
|
|
8509
|
-
loaderMs: performance.now() -
|
|
8514
|
+
loaderMs: performance.now() - f,
|
|
8510
8515
|
triangleCount: te,
|
|
8511
8516
|
placementCount: O,
|
|
8512
8517
|
mergedShapes: ne,
|
|
@@ -8516,37 +8521,37 @@ var ms = /* @__PURE__ */ e({
|
|
|
8516
8521
|
frames: E?.length ?? 1
|
|
8517
8522
|
};
|
|
8518
8523
|
let A = new Set(E ?? [w]), ae = T.filter((e) => !A.has(e));
|
|
8519
|
-
if (ae.length > 0 && (console.warn(`PBRT archive holds ${T.length} scenes; loaded "${w}". Others: ${ae.join(", ")}`), this.loader._issues?.record(
|
|
8524
|
+
if (ae.length > 0 && (console.warn(`PBRT archive holds ${T.length} scenes; loaded "${w}". Others: ${ae.join(", ")}`), this.loader._issues?.record(t.ASSET_AMBIGUOUS_ENTRY, `archive holds ${T.length} pbrt scenes; loaded "${w}"`, {
|
|
8520
8525
|
loaded: w,
|
|
8521
8526
|
alternatives: ae
|
|
8522
|
-
},
|
|
8527
|
+
}, n.WARNING)), ie && this._reportParameters(ie, w), x && x.length && typeof console.table == "function") {
|
|
8523
8528
|
let e = x.length < C ? ` (first ${x.length} of ${C})` : "";
|
|
8524
8529
|
console.groupCollapsed(`PBRT loader: ${C} mesh(es) from "${w}"${e}`), console.table(x), console.groupEnd();
|
|
8525
8530
|
}
|
|
8526
|
-
return S && S.length && (console.warn(`PBRT loader: ${S.length} warning(s) parsing "${w}"`), S.forEach((e) => console.warn(" •", e))),
|
|
8527
|
-
environment:
|
|
8531
|
+
return S && S.length && (console.warn(`PBRT loader: ${S.length} warning(s) parsing "${w}"`), S.forEach((e) => console.warn(" •", e))), v?.texture && (v.texture.generateMipmaps = !0, this.loader.applyEnvironmentToScene(v.texture)), _.name = w || r, this.loader.releaseTargetModel(), this.loader._sourceKey = m, m && !h && this._storeGraph(m, g, r), this.loader.targetModel = _, this.loader.animations = b ?? [], this.loader.sceneMetadata = {
|
|
8532
|
+
environment: v?.texture ? {
|
|
8528
8533
|
rotation: 0,
|
|
8529
8534
|
intensity: 1
|
|
8530
8535
|
} : { enabled: !1 },
|
|
8531
|
-
...
|
|
8532
|
-
},
|
|
8536
|
+
...g.render ? { render: { ...g.render } } : {}
|
|
8537
|
+
}, y({
|
|
8533
8538
|
isLoading: !0,
|
|
8534
8539
|
status: "Processing PBRT geometry...",
|
|
8535
8540
|
progress: 10
|
|
8536
8541
|
}), await this.loader.onModelLoad(this.loader.targetModel), this.loader.dispatchEvent({
|
|
8537
8542
|
type: "load",
|
|
8538
|
-
model:
|
|
8539
|
-
filename: `${w} (from ${
|
|
8540
|
-
}),
|
|
8541
|
-
}
|
|
8542
|
-
_reportParameters({ unused: e, approximated:
|
|
8543
|
-
let
|
|
8544
|
-
if (
|
|
8545
|
-
let
|
|
8546
|
-
console.warn(`PBRT loader: ${
|
|
8547
|
-
entry:
|
|
8543
|
+
model: _,
|
|
8544
|
+
filename: `${w} (from ${r})`
|
|
8545
|
+
}), _;
|
|
8546
|
+
}
|
|
8547
|
+
_reportParameters({ unused: e, approximated: n }, r) {
|
|
8548
|
+
let i = Object.keys(e).length, a = Object.keys(n).length;
|
|
8549
|
+
if (i + a === 0) return;
|
|
8550
|
+
let o = `${i} pbrt parameter(s) ignored and ${a} approximated in "${r}"`, s = [...Object.entries(e).map(([e, t]) => ` ignored ${e} ×${t}`), ...Object.entries(n).map(([e, t]) => ` approximated ${e} ×${t}`)];
|
|
8551
|
+
console.warn(`PBRT loader: ${o} (× directives that set it)\n${s.join("\n")}`), this.loader._issues?.warn(t.ASSET_PARAMETERS_IGNORED, o, {
|
|
8552
|
+
entry: r,
|
|
8548
8553
|
unused: e,
|
|
8549
|
-
approximated:
|
|
8554
|
+
approximated: n
|
|
8550
8555
|
});
|
|
8551
8556
|
}
|
|
8552
8557
|
async _archiveImage(e, t) {
|
|
@@ -8554,7 +8559,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8554
8559
|
try {
|
|
8555
8560
|
n = await this._pbrtTextureFromBytes(e, t);
|
|
8556
8561
|
} catch (e) {
|
|
8557
|
-
if (e instanceof
|
|
8562
|
+
if (e instanceof r) throw e;
|
|
8558
8563
|
return this.loader._reportImageFailure(t, e), null;
|
|
8559
8564
|
}
|
|
8560
8565
|
return n && (n.userData[_t] = t), n;
|
|
@@ -8566,103 +8571,103 @@ var ms = /* @__PURE__ */ e({
|
|
|
8566
8571
|
loader: n === "exr" ? this._exrLoader() : null,
|
|
8567
8572
|
quiet: !0
|
|
8568
8573
|
}) : ps(e);
|
|
8569
|
-
return a.mapping = ae,
|
|
8574
|
+
return a.mapping = ae, p(a, `bytes:${await _(r)}`), a.userData[_t] = t, a.userData[vt] = "environment", a;
|
|
8570
8575
|
} finally {
|
|
8571
8576
|
i && URL.revokeObjectURL(i);
|
|
8572
8577
|
}
|
|
8573
8578
|
}
|
|
8574
|
-
async loadUSDScene(e,
|
|
8575
|
-
|
|
8579
|
+
async loadUSDScene(e, r, i = {}) {
|
|
8580
|
+
y({
|
|
8576
8581
|
isLoading: !0,
|
|
8577
8582
|
status: "Reading USD scene...",
|
|
8578
8583
|
progress: 5
|
|
8579
8584
|
});
|
|
8580
|
-
let
|
|
8581
|
-
if (
|
|
8582
|
-
let c =
|
|
8583
|
-
|
|
8585
|
+
let a = Object.keys(e), o = new vo(a, async (t) => e[t] ? vs(e[t]) : null, { omitted: (i.listing ?? []).filter((t) => !(t.path in e)).map((e) => e.path) }), s = ls(a);
|
|
8586
|
+
if (s.length === 0) throw Error(`No USD layer found in ${r}`);
|
|
8587
|
+
let c = s[0];
|
|
8588
|
+
s.length > 1 && (console.warn(`${r} holds ${s.length} top-level USD layers; loaded "${c}". Others: ${s.slice(1).join(", ")}`), this.loader._issues?.record(t.ASSET_AMBIGUOUS_ENTRY, `${r} holds ${s.length} top-level USD layers; loaded "${c}"`, {
|
|
8584
8589
|
loaded: c,
|
|
8585
|
-
alternatives:
|
|
8586
|
-
},
|
|
8590
|
+
alternatives: s.slice(1)
|
|
8591
|
+
}, n.WARNING)), (Array.isArray(i.element) ? i.element : [i.element]).filter(Boolean).length === 0 && await this._requireUSDPartChoice(r, o, c, i.listing ?? a.map((t) => ({
|
|
8587
8592
|
path: t,
|
|
8588
8593
|
size: e[t]?.size ?? e[t]?.byteLength ?? 0
|
|
8589
|
-
})),
|
|
8590
|
-
let l = performance.now(),
|
|
8591
|
-
files:
|
|
8594
|
+
})), i.promptBytes);
|
|
8595
|
+
let l = performance.now(), d = u(), f = await ds({
|
|
8596
|
+
files: o,
|
|
8592
8597
|
entryPath: c,
|
|
8593
8598
|
pauseRead: (e, t) => {
|
|
8594
|
-
let n =
|
|
8595
|
-
return n &&
|
|
8599
|
+
let n = d();
|
|
8600
|
+
return n && y({
|
|
8596
8601
|
status: `${t ? "Counting" : "Reading"} USD scene... ${e.toLocaleString()} prims`,
|
|
8597
8602
|
progress: t ? 5 : 6
|
|
8598
8603
|
}), n;
|
|
8599
8604
|
},
|
|
8600
|
-
pauseBuild: this._buildPause(
|
|
8605
|
+
pauseBuild: this._buildPause(d),
|
|
8601
8606
|
resolveImage: async (e) => {
|
|
8602
|
-
let t = await
|
|
8607
|
+
let t = await o.read(e);
|
|
8603
8608
|
return t ? this._archiveImage(t, e) : null;
|
|
8604
8609
|
},
|
|
8605
8610
|
resolveEnvironment: async (e) => {
|
|
8606
|
-
let t = await
|
|
8611
|
+
let t = await o.read(e);
|
|
8607
8612
|
return t ? this._archiveEnvironment(t, e) : null;
|
|
8608
8613
|
},
|
|
8609
|
-
maxTriangles:
|
|
8610
|
-
maxPlacements:
|
|
8611
|
-
mergeShapesAbove:
|
|
8612
|
-
curveSteps:
|
|
8613
|
-
curveSides:
|
|
8614
|
-
curveTolerance:
|
|
8614
|
+
maxTriangles: i.maxTriangles,
|
|
8615
|
+
maxPlacements: i.maxPlacements,
|
|
8616
|
+
mergeShapesAbove: i.mergeShapesAbove,
|
|
8617
|
+
curveSteps: i.curveSteps,
|
|
8618
|
+
curveSides: i.curveSides,
|
|
8619
|
+
curveTolerance: i.curveTolerance
|
|
8615
8620
|
});
|
|
8616
8621
|
this.loader._throwDeferred();
|
|
8617
|
-
let { group:
|
|
8622
|
+
let { group: p, environment: m, warnings: h, triangleCount: g, placementCount: _, skippedForBudget: v, meshCount: b, parseMs: x, buildMs: S, fitNote: C } = f;
|
|
8618
8623
|
return this.lastUSDStats = {
|
|
8619
8624
|
parseMs: x,
|
|
8620
8625
|
buildMs: S,
|
|
8621
8626
|
loaderMs: performance.now() - l,
|
|
8622
|
-
triangleCount:
|
|
8623
|
-
placementCount:
|
|
8624
|
-
skippedForBudget:
|
|
8627
|
+
triangleCount: g,
|
|
8628
|
+
placementCount: _,
|
|
8629
|
+
skippedForBudget: v,
|
|
8625
8630
|
meshCount: b,
|
|
8626
8631
|
fitNote: C
|
|
8627
|
-
}, (C ||
|
|
8628
|
-
triangleCount:
|
|
8629
|
-
placementCount:
|
|
8630
|
-
skippedForBudget:
|
|
8631
|
-
},
|
|
8632
|
-
rotation:
|
|
8633
|
-
intensity:
|
|
8634
|
-
} } : null,
|
|
8632
|
+
}, (C || v > 0) && this.loader._issues?.record(t.SCENE_MEMORY_BUDGET, C ?? `${v.toLocaleString()} placements past the scene budgets left out`, {
|
|
8633
|
+
triangleCount: g,
|
|
8634
|
+
placementCount: _,
|
|
8635
|
+
skippedForBudget: v
|
|
8636
|
+
}, n.WARNING), h.length && (console.warn(`USD loader: ${h.length} warning(s) loading "${c}"`), h.forEach((e) => console.warn(" •", e))), m?.texture && (m.texture.generateMipmaps = !0, this.loader.applyEnvironmentToScene(m.texture)), p.name = c.split("/").pop(), this.loader.releaseTargetModel(), this.loader.targetModel = p, this.loader.animations = [], this.loader.sceneMetadata = m?.texture ? { environment: {
|
|
8637
|
+
rotation: m.rotation,
|
|
8638
|
+
intensity: m.intensity
|
|
8639
|
+
} } : null, y({
|
|
8635
8640
|
isLoading: !0,
|
|
8636
8641
|
status: "Processing USD geometry...",
|
|
8637
8642
|
progress: 10
|
|
8638
|
-
}), await this.loader.onModelLoad(
|
|
8643
|
+
}), await this.loader.onModelLoad(p), this.loader.dispatchEvent({
|
|
8639
8644
|
type: "load",
|
|
8640
|
-
model:
|
|
8641
|
-
filename: `${c} (from ${
|
|
8642
|
-
}),
|
|
8645
|
+
model: p,
|
|
8646
|
+
filename: `${c} (from ${r})`
|
|
8647
|
+
}), p;
|
|
8643
8648
|
}
|
|
8644
8649
|
_buildPause(e) {
|
|
8645
8650
|
return (t, n) => {
|
|
8646
8651
|
let r = e();
|
|
8647
|
-
return r &&
|
|
8652
|
+
return r && y({
|
|
8648
8653
|
status: `Building scene... ${t.toLocaleString()} of ${n.toLocaleString()} shapes`,
|
|
8649
8654
|
progress: 8
|
|
8650
8655
|
}), r;
|
|
8651
8656
|
};
|
|
8652
8657
|
}
|
|
8653
|
-
async _requireUSDPartChoice(e,
|
|
8654
|
-
let
|
|
8655
|
-
if (
|
|
8656
|
-
let
|
|
8657
|
-
await
|
|
8658
|
-
let
|
|
8659
|
-
if (
|
|
8660
|
-
let
|
|
8661
|
-
throw
|
|
8662
|
-
root:
|
|
8663
|
-
elements:
|
|
8664
|
-
totalBytes:
|
|
8665
|
-
},
|
|
8658
|
+
async _requireUSDPartChoice(e, r, i, a, o = Cs) {
|
|
8659
|
+
let s = a.reduce((e, t) => e + (cs.test(t.path) ? t.size : 0), 0);
|
|
8660
|
+
if (s < o) return;
|
|
8661
|
+
let c = new Eo(r);
|
|
8662
|
+
await c.open(i);
|
|
8663
|
+
let l = await us(c, a);
|
|
8664
|
+
if (l.length < 2) return;
|
|
8665
|
+
let u = a.reduce((e, t) => e + t.size, 0), d = /* @__PURE__ */ Error(`"${e}" holds ${(s / 1e9).toFixed(1)} GB of USD across ${l.length} parts. Choose which to load — loading all of them at once may exhaust memory.`);
|
|
8666
|
+
throw d.code = "ARCHIVE_NEEDS_ELEMENT", d.root = i.includes("/") ? i.slice(0, i.lastIndexOf("/")) : "", d.elements = l, d.totalBytes = u, this.loader._issues?.record(t.ASSET_ARCHIVE_TOO_LARGE, `USD scene holds ${(s / 1e9).toFixed(1)} GB of layers across ${l.length} parts; choose which to load`, {
|
|
8667
|
+
root: d.root,
|
|
8668
|
+
elements: l.map((e) => e.prefix),
|
|
8669
|
+
totalBytes: u
|
|
8670
|
+
}, n.WARNING), d;
|
|
8666
8671
|
}
|
|
8667
8672
|
_exrLoader() {
|
|
8668
8673
|
return this.loader.loaderCache.exr ??= new Ie().setDataType(se);
|
|
@@ -8680,7 +8685,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8680
8685
|
}
|
|
8681
8686
|
r = await this._loadViaObjectURL(this.loader.loaderCache.tga, e), r.colorSpace = P;
|
|
8682
8687
|
} else {
|
|
8683
|
-
if (
|
|
8688
|
+
if (i().decodeImage) r = await c(e, t);
|
|
8684
8689
|
else if (typeof createImageBitmap == "function") r = new je(await createImageBitmap(new Blob([e])));
|
|
8685
8690
|
else throw Error("no image decoder in this runtime: configurePlatform( nodePlatform( { decodeImage } ) ) — see \"Running in Node\"");
|
|
8686
8691
|
r.colorSpace = P;
|
|
@@ -8743,19 +8748,19 @@ var ms = /* @__PURE__ */ e({
|
|
|
8743
8748
|
usd: !o && cs.test(s)
|
|
8744
8749
|
};
|
|
8745
8750
|
}
|
|
8746
|
-
async findAndLoadModelFromZip(e,
|
|
8747
|
-
let
|
|
8748
|
-
if (!
|
|
8749
|
-
if (
|
|
8750
|
-
let { path:
|
|
8751
|
-
return
|
|
8752
|
-
loaded:
|
|
8753
|
-
alternatives:
|
|
8754
|
-
},
|
|
8751
|
+
async findAndLoadModelFromZip(e, r = "the ZIP archive") {
|
|
8752
|
+
let i = this._mainModelPath(Object.keys(e));
|
|
8753
|
+
if (!i) throw Error(`No supported model files found in ${r}`);
|
|
8754
|
+
if (i.usd) return await this.loadUSDScene(e, r);
|
|
8755
|
+
let { path: a, models: o } = i, s = o.filter((e) => e !== a && !cs.test(e));
|
|
8756
|
+
return s.length > 0 && (console.warn(`${r} holds ${s.length + 1} models; loaded "${a}". Others: ${s.join(", ")}`), this.loader._issues?.record(t.ASSET_AMBIGUOUS_ENTRY, `${r} holds ${s.length + 1} models; loaded "${a}"`, {
|
|
8757
|
+
loaded: a,
|
|
8758
|
+
alternatives: s.slice(0, 50)
|
|
8759
|
+
}, n.WARNING)), console.log(`Loading model file from ${r}: ${a}`), await this.loadModelFromZipEntry(e[a], a, a.split(".").pop().toLowerCase(), e, r);
|
|
8755
8760
|
}
|
|
8756
8761
|
async loadModelFromZipEntry(e, t, n, r, i = "ZIP") {
|
|
8757
8762
|
try {
|
|
8758
|
-
|
|
8763
|
+
y({
|
|
8759
8764
|
isLoading: !0,
|
|
8760
8765
|
status: `Processing ${n.toUpperCase()} from ${i}...`,
|
|
8761
8766
|
progress: 5
|
|
@@ -8784,19 +8789,19 @@ var ms = /* @__PURE__ */ e({
|
|
|
8784
8789
|
}), e;
|
|
8785
8790
|
}
|
|
8786
8791
|
}
|
|
8787
|
-
async handleGltfFromZip(e, t,
|
|
8792
|
+
async handleGltfFromZip(e, t, n, r) {
|
|
8788
8793
|
if (e === "gltf") {
|
|
8789
|
-
let e = await ys(t),
|
|
8790
|
-
|
|
8794
|
+
let e = await ys(t), i = new pe(), a = n.split("/").slice(0, -1).join("/");
|
|
8795
|
+
i.setURLModifier((e) => this.resolveZipResource(e, a, r));
|
|
8791
8796
|
let s = await this.loader.createGLTFLoader();
|
|
8792
|
-
s.manager =
|
|
8797
|
+
s.manager = i;
|
|
8793
8798
|
try {
|
|
8794
|
-
let t = await
|
|
8795
|
-
return this.loader._throwDeferred(), this.loader.releaseTargetModel(), this.loader.targetModel = t.scene, this.loader.sceneMetadata =
|
|
8799
|
+
let t = await o(() => new Promise((t, n) => s.parse(e, "", t, n)));
|
|
8800
|
+
return this.loader._throwDeferred(), this.loader.releaseTargetModel(), this.loader.targetModel = t.scene, this.loader.sceneMetadata = f(t), await this.loader.onModelLoad(this.loader.targetModel), t;
|
|
8796
8801
|
} finally {
|
|
8797
8802
|
this.loader._disposeGLTFLoader(s);
|
|
8798
8803
|
}
|
|
8799
|
-
} else return await this.loader.loadGLBFromArrayBuffer(await xs(t),
|
|
8804
|
+
} else return await this.loader.loadGLBFromArrayBuffer(await xs(t), n);
|
|
8800
8805
|
}
|
|
8801
8806
|
async handleObjFromZip(e, t, n) {
|
|
8802
8807
|
let r = await ys(e), i = r.match(/mtllib\s+([^\s]+)/), a = null;
|
|
@@ -8807,17 +8812,17 @@ var ms = /* @__PURE__ */ e({
|
|
|
8807
8812
|
return c.name = t, this.loader.releaseTargetModel(), this.loader.targetModel = c, await this.loader.onModelLoad(this.loader.targetModel), c;
|
|
8808
8813
|
}
|
|
8809
8814
|
async preloadMtlTextures(e) {
|
|
8810
|
-
let
|
|
8811
|
-
if (e.loadTexture = (e,
|
|
8815
|
+
let n = [], r = e.loadTexture.bind(e);
|
|
8816
|
+
if (e.loadTexture = (e, t, i, a, o) => {
|
|
8812
8817
|
let s;
|
|
8813
|
-
return
|
|
8818
|
+
return n.push(new Promise((e) => s = e)), r(e, t, (e) => {
|
|
8814
8819
|
s(), i?.(e);
|
|
8815
8820
|
}, a, (e) => {
|
|
8816
8821
|
s(), o?.(e);
|
|
8817
8822
|
});
|
|
8818
|
-
}, e.preload(),
|
|
8819
|
-
let
|
|
8820
|
-
return clearTimeout(
|
|
8823
|
+
}, e.preload(), n.length === 0) return e;
|
|
8824
|
+
let i, a = await Promise.race([Promise.all(n).then(() => !0), new Promise((e) => i = setTimeout(() => e(!1), hs))]);
|
|
8825
|
+
return clearTimeout(i), a || this.loader._issues?.record(t.TEXTURE_BUILD_FAILED, `MTL textures did not decode within ${hs}ms; affected materials render untextured`, { pending: n.length }), e;
|
|
8821
8826
|
}
|
|
8822
8827
|
async loadMtlFromZip(e, t, n) {
|
|
8823
8828
|
let r = t.split("/").slice(0, -1).join("/"), i = [
|