rayzee 11.14.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 +37 -19
- package/dist/{ActiveColor-7CZdmrsz.js → ActiveColor-DakLCifA.js} +1 -1
- package/dist/{ArchiveImporter-DBMmDG98.js → ArchiveImporter-DuWqpbXf.js} +260 -260
- package/dist/{BidirectionalIntegrator-D6rcU7N1.js → BidirectionalIntegrator-BEXXxmZH.js} +99 -99
- package/dist/{BufferLayout-SvkefbAs.js → BufferLayout-ny3WneEc.js} +1 -1
- package/dist/{ColorManagement-D9eYhssc.js → ColorManagement-CKN2pTRS.js} +88 -60
- package/dist/{DepthPass-D4Zh108s.js → DepthPass-u5g7hr7J.js} +4 -4
- package/dist/{EngineEvents-CLckhYbL.js → EngineEvents-oQGofgRf.js} +16 -2
- package/dist/{EngineIssues-B14FGIHX.js → EngineIssues-t5p7TEjb.js} +1 -0
- package/dist/{FileFormats-B_VqIVDq.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-Cyh0AwUT.js → NeuralRetouch-CLtoW6Vt.js} +5 -5
- package/dist/{NeuralSuperRes-BPp05Ipu.js → NeuralSuperRes-PlLjWpMF.js} +14 -14
- package/dist/{PackedRayBuffer-BtJJxs43.js → PackedRayBuffer-DwhV931f.js} +6 -6
- package/dist/{PathTracer-BLV2bVqi.js → PathTracer-BMtUFjdP.js} +4532 -3349
- package/dist/{PhysicalSky-VonV_lAD.js → PhysicalSky-DqanSS2m.js} +7 -7
- package/dist/PictureView-DpHE_jDr.js +96 -0
- package/dist/RayzeeRenderer-C9zGAMJo.js +3281 -0
- package/dist/{sceneCachePolicy-DcEWCTKO.js → SceneMetadata-BUfzHMSj.js} +334 -301
- package/dist/{SolarLimb-DSig_M0f.js → SolarLimb-BiVdxxmL.js} +1 -1
- package/dist/{TextureBuckets-CcSAhgVc.js → TextureBuckets-D09iX9_y.js} +1 -1
- package/dist/{TextureSampling-C4Sg4Yw_.js → TextureSampling-CvMi8LNc.js} +19 -16
- package/dist/{ToneMapGPU-l_79riZd.js → ToneMapGPU-tJZo_-7S.js} +2 -2
- package/dist/{ViewTransforms-Crdom11t.js → ViewTransforms-Bh7hSjSb.js} +1 -1
- package/dist/{WorkingMatrix-DWJV2JM2.js → WorkingMatrix-CDGicYGE.js} +1 -1
- package/dist/{ZipReader-Bva4oiva.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 +1 -1
- package/dist/identity-x_UfobDa.js +65 -0
- package/dist/{openStorage-D6DBv9_I.js → openStorage-CxLMw2_a.js} +61 -62
- package/dist/rayzee-core.es.js +13 -13
- package/dist/rayzee.es.js +769 -1030
- package/dist/rayzee.umd.js +121 -115
- package/package.json +2 -2
- package/src/AssetConfig.js +1 -1
- package/src/EngineDefaults.js +1 -1
- package/src/EngineEvents.js +26 -0
- package/src/EngineIssues.js +1 -0
- package/src/Platform.js +40 -0
- package/src/RayzeeRenderer.js +186 -1343
- 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}/ColorManagement.js +87 -41
- package/src/{Color → color}/OcioRuntime.js +1 -1
- 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 +6 -6
- package/src/{Processor/Workers → materials}/TexturesWorker.js +1 -1
- 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/Pictures.js +460 -0
- package/src/{Processor → output}/ToneMapCPU.js +2 -2
- package/src/{Processor → output}/ToneMapGPU.js +2 -2
- 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 +272 -180
- package/src/{Stages → pathtracer}/PathTracerStage.js +21 -25
- 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 +23 -10
- 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 +64 -1105
- 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/{TSL → shaders/kernels}/DepthPass.js +10 -10
- 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/{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 +4 -4
- 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/RayzeeRenderer-D1NeGoVA.js +0 -4051
- package/dist/SceneMetadata-BBx6k2EY.js +0 -183
- package/dist/identity-CtOwEU7N.js +0 -49
- package/dist/shared-ubP8eJlr.js +0 -17
- package/src/Processor/generateMaterialSpheres.js +0 -71
- package/src/Processor/utils.js +0 -613
- /package/dist/{AssetConfig-BY4jDfTH.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}/BakedViews.js +0 -0
- /package/src/{Color → color}/BasicColor.js +0 -0
- /package/src/{Color → color}/BuiltinViews.js +0 -0
- /package/src/{Color → color}/ColorSpaces.js +0 -0
- /package/src/{Color → color}/Displays.js +0 -0
- /package/src/{Color → color}/InputColorSpaces.js +0 -0
- /package/src/{Color → color}/LutBake.js +0 -0
- /package/src/{Color → color}/OcioViews.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}/ImageEncoders.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}/SceneGraphCodec.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;
|
|
@@ -746,7 +746,7 @@ async function Ht(e, t, { loadTexture: n }) {
|
|
|
746
746
|
};
|
|
747
747
|
}
|
|
748
748
|
//#endregion
|
|
749
|
-
//#region src/
|
|
749
|
+
//#region src/loaders/pbrt/buffers.js
|
|
750
750
|
var Ut = (e) => e.byteOffset === 0 && e.byteLength === e.buffer.byteLength && typeof e.buffer.transfer == "function" && !(typeof SharedArrayBuffer < "u" && e.buffer instanceof SharedArrayBuffer);
|
|
751
751
|
function R(e) {
|
|
752
752
|
e && Ut(e) && e.buffer.transfer(0);
|
|
@@ -758,7 +758,7 @@ function z(e, t) {
|
|
|
758
758
|
return r.set(t < e.length ? e.subarray(0, t) : e), r;
|
|
759
759
|
}
|
|
760
760
|
//#endregion
|
|
761
|
-
//#region src/
|
|
761
|
+
//#region src/loaders/pbrt/PBRTTokenizer.js
|
|
762
762
|
var B = {
|
|
763
763
|
STRING: "string",
|
|
764
764
|
NUMBER: "number",
|
|
@@ -861,7 +861,7 @@ var mn = class {
|
|
|
861
861
|
}
|
|
862
862
|
};
|
|
863
863
|
//#endregion
|
|
864
|
-
//#region src/
|
|
864
|
+
//#region src/loaders/pbrt/PBRTMath.js
|
|
865
865
|
function hn() {
|
|
866
866
|
return [
|
|
867
867
|
1,
|
|
@@ -1043,7 +1043,7 @@ function Tn(e) {
|
|
|
1043
1043
|
];
|
|
1044
1044
|
}
|
|
1045
1045
|
//#endregion
|
|
1046
|
-
//#region src/
|
|
1046
|
+
//#region src/loaders/pbrt/PBRTParser.js
|
|
1047
1047
|
var En = 8, Dn = 1, On = 2, kn = 3, An = new Set([
|
|
1048
1048
|
"Identity",
|
|
1049
1049
|
"Transform",
|
|
@@ -2104,7 +2104,7 @@ function zn(e, t) {
|
|
|
2104
2104
|
return (r + i) / 2;
|
|
2105
2105
|
}
|
|
2106
2106
|
//#endregion
|
|
2107
|
-
//#region src/
|
|
2107
|
+
//#region src/loaders/pbrt/PBRTMaterials.js
|
|
2108
2108
|
var Bn = {
|
|
2109
2109
|
au: [
|
|
2110
2110
|
1,
|
|
@@ -2471,7 +2471,7 @@ async function tr(e, t) {
|
|
|
2471
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;
|
|
2472
2472
|
}
|
|
2473
2473
|
//#endregion
|
|
2474
|
-
//#region src/
|
|
2474
|
+
//#region src/loaders/pbrt/PBRTTextureBake.js
|
|
2475
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;
|
|
2476
2476
|
function or(e, { channels: t, decode: n = null, scale: r = 1, invert: i = !1, mapping: a = null }) {
|
|
2477
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;
|
|
@@ -2650,7 +2650,7 @@ function hr(e, t, n, r) {
|
|
|
2650
2650
|
};
|
|
2651
2651
|
}
|
|
2652
2652
|
//#endregion
|
|
2653
|
-
//#region src/
|
|
2653
|
+
//#region src/loaders/pbrt/LoopSubdivision.js
|
|
2654
2654
|
function gr(e) {
|
|
2655
2655
|
return e === 3 ? 3 / 16 : 3 / (8 * e);
|
|
2656
2656
|
}
|
|
@@ -2738,7 +2738,7 @@ function xr(e, t, n, r = 2e6) {
|
|
|
2738
2738
|
};
|
|
2739
2739
|
}
|
|
2740
2740
|
//#endregion
|
|
2741
|
-
//#region src/
|
|
2741
|
+
//#region src/loaders/pbrt/EqualAreaOctahedral.js
|
|
2742
2742
|
function Sr(e, t, n) {
|
|
2743
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);
|
|
2744
2744
|
r < i && (c = 1 - c);
|
|
@@ -2791,7 +2791,7 @@ function Tr(e, t, n = 1, r = 0) {
|
|
|
2791
2791
|
};
|
|
2792
2792
|
}
|
|
2793
2793
|
//#endregion
|
|
2794
|
-
//#region src/
|
|
2794
|
+
//#region src/loaders/pbrt/PBRTCurves.js
|
|
2795
2795
|
var Er = 2;
|
|
2796
2796
|
function Dr(e, t) {
|
|
2797
2797
|
let n = e * e, r = n * e;
|
|
@@ -3086,7 +3086,7 @@ async function Hr(e, t = null) {
|
|
|
3086
3086
|
};
|
|
3087
3087
|
}
|
|
3088
3088
|
//#endregion
|
|
3089
|
-
//#region src/
|
|
3089
|
+
//#region src/loaders/pbrt/PBRTSceneBuilder.js
|
|
3090
3090
|
var Ur = new Set([
|
|
3091
3091
|
"distant",
|
|
3092
3092
|
"point",
|
|
@@ -3506,27 +3506,27 @@ var Ri = class {
|
|
|
3506
3506
|
return this._countedGeometries.has(e) || (this._countedGeometries.add(e), this.triangleCount += t), t;
|
|
3507
3507
|
}
|
|
3508
3508
|
async _buildInstances(e, t) {
|
|
3509
|
-
let
|
|
3509
|
+
let n = 0;
|
|
3510
3510
|
e.skippedInstances > 0 && (this.skippedForBudget += e.skippedInstances);
|
|
3511
|
-
let
|
|
3511
|
+
let r = new Float64Array(16), i = new M(), o = /* @__PURE__ */ new Map(), s = (e, s, c, l, u, d, f) => {
|
|
3512
3512
|
let p = l ? Array.prototype.join.call(l, ",") : "", m = o.get(e);
|
|
3513
3513
|
m || o.set(e, m = /* @__PURE__ */ new Map());
|
|
3514
3514
|
let h = m.get(p), g = Math.max(0, this.maxPlacements - this.placementCount), _ = h ? h.count : Math.min(e.count, g);
|
|
3515
3515
|
if (!h && _ < e.count && (this.skippedForBudget += e.count - _), _ === 0) return;
|
|
3516
3516
|
let v = new de(s, c, _);
|
|
3517
|
-
if (v.name = `instance_${
|
|
3517
|
+
if (v.name = `instance_${n++}`, v.frustumCulled = !1, h) v.instanceMatrix = h.attribute;
|
|
3518
3518
|
else {
|
|
3519
3519
|
for (let t = 0; t < _; t++) {
|
|
3520
|
-
if (l) _n(
|
|
3521
|
-
else for (let n = 0; n < 16; n++)
|
|
3522
|
-
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));
|
|
3523
3523
|
}
|
|
3524
3524
|
v.instanceMatrix.needsUpdate = !0, m.set(p, {
|
|
3525
3525
|
attribute: v.instanceMatrix,
|
|
3526
3526
|
count: _
|
|
3527
3527
|
}), this.placementCount += _;
|
|
3528
3528
|
}
|
|
3529
|
-
|
|
3529
|
+
a(v), t.add(v), this.reportedMeshes += _, this.report.length < Xr && this.report.push({
|
|
3530
3530
|
mesh: `${v.name} ×${_}`,
|
|
3531
3531
|
shape: u,
|
|
3532
3532
|
material: d,
|
|
@@ -3825,26 +3825,26 @@ var Ri = class {
|
|
|
3825
3825
|
return a && a.length && n.setIndex(qr(a)), r || n.computeVertexNormals(), n;
|
|
3826
3826
|
}
|
|
3827
3827
|
_curve(e) {
|
|
3828
|
-
let
|
|
3829
|
-
if (!
|
|
3830
|
-
let
|
|
3831
|
-
if (
|
|
3832
|
-
let
|
|
3833
|
-
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,
|
|
3834
3834
|
basis: K(e, "basis", "bezier"),
|
|
3835
|
-
width0: G(e, "width0",
|
|
3836
|
-
width1: G(e, "width1",
|
|
3835
|
+
width0: G(e, "width0", i),
|
|
3836
|
+
width1: G(e, "width1", i),
|
|
3837
3837
|
N: U(e, "N")?.value || null,
|
|
3838
3838
|
steps: this.curveSteps,
|
|
3839
|
-
sides: this.curveSides ?? ii[
|
|
3839
|
+
sides: this.curveSides ?? ii[r] ?? 1,
|
|
3840
3840
|
tolerance: this.curveTolerance
|
|
3841
3841
|
});
|
|
3842
|
-
if (!
|
|
3843
|
-
let
|
|
3844
|
-
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;
|
|
3845
3845
|
}
|
|
3846
3846
|
async _curves(e) {
|
|
3847
|
-
let
|
|
3847
|
+
let t = await Hr({
|
|
3848
3848
|
P: U(e, "P").value,
|
|
3849
3849
|
counts: U(e, "counts").value,
|
|
3850
3850
|
widths: U(e, "widths")?.value ?? null,
|
|
@@ -3858,10 +3858,10 @@ var Ri = class {
|
|
|
3858
3858
|
sides: this.curveSides ?? 1,
|
|
3859
3859
|
tolerance: this.curveTolerance
|
|
3860
3860
|
}, () => this._tick());
|
|
3861
|
-
if (!
|
|
3862
|
-
|
|
3863
|
-
let
|
|
3864
|
-
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;
|
|
3865
3865
|
}
|
|
3866
3866
|
_loopSubdiv(e) {
|
|
3867
3867
|
let t = U(e, "P")?.value, n = U(e, "indices")?.value;
|
|
@@ -4830,7 +4830,7 @@ function ea(e) {
|
|
|
4830
4830
|
}, e;
|
|
4831
4831
|
}
|
|
4832
4832
|
//#endregion
|
|
4833
|
-
//#region src/
|
|
4833
|
+
//#region src/loaders/pbrt/index.js
|
|
4834
4834
|
var ta = 2e6, na = new TextDecoder();
|
|
4835
4835
|
function ra(e) {
|
|
4836
4836
|
let t = e.replace(/\\/g, "/").split("/"), n = [];
|
|
@@ -5040,7 +5040,7 @@ function ya(e) {
|
|
|
5040
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}`;
|
|
5041
5041
|
}
|
|
5042
5042
|
//#endregion
|
|
5043
|
-
//#region src/
|
|
5043
|
+
//#region src/loaders/usd/USDLayer.js
|
|
5044
5044
|
var ba = class {
|
|
5045
5045
|
constructor(e, t) {
|
|
5046
5046
|
this.asset = e, this.path = t;
|
|
@@ -5687,7 +5687,7 @@ function Ga(e, t = "") {
|
|
|
5687
5687
|
return r;
|
|
5688
5688
|
}
|
|
5689
5689
|
//#endregion
|
|
5690
|
-
//#region src/
|
|
5690
|
+
//#region src/loaders/usd/USDText.js
|
|
5691
5691
|
var Ka = new Set([
|
|
5692
5692
|
"prepend",
|
|
5693
5693
|
"append",
|
|
@@ -6054,7 +6054,7 @@ function fo(e, t = "") {
|
|
|
6054
6054
|
return new uo(e).parse(t);
|
|
6055
6055
|
}
|
|
6056
6056
|
//#endregion
|
|
6057
|
-
//#region src/
|
|
6057
|
+
//#region src/loaders/usd/USDStage.js
|
|
6058
6058
|
var po = {
|
|
6059
6059
|
local: 0,
|
|
6060
6060
|
inherit: 1,
|
|
@@ -8132,7 +8132,7 @@ async function ds(e) {
|
|
|
8132
8132
|
};
|
|
8133
8133
|
}
|
|
8134
8134
|
//#endregion
|
|
8135
|
-
//#region src/
|
|
8135
|
+
//#region src/loaders/pbrt/PFM.js
|
|
8136
8136
|
function fs(e) {
|
|
8137
8137
|
let t = 0, n = () => {
|
|
8138
8138
|
for (; t < e.length && e[t] <= 32;) t++;
|
|
@@ -8162,7 +8162,7 @@ function ps(e) {
|
|
|
8162
8162
|
return i.minFilter = fe, i.magFilter = fe, i.needsUpdate = !0, i;
|
|
8163
8163
|
}
|
|
8164
8164
|
//#endregion
|
|
8165
|
-
//#region src/
|
|
8165
|
+
//#region src/loaders/archives/ArchiveImporter.js
|
|
8166
8166
|
var ms = /* @__PURE__ */ e({
|
|
8167
8167
|
ARCHIVE_ELEMENT_PROMPT_BYTES: () => Ss,
|
|
8168
8168
|
ArchiveImporter: () => ws,
|
|
@@ -8184,7 +8184,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8184
8184
|
let t = await vs(e);
|
|
8185
8185
|
return t.byteOffset === 0 && t.byteLength === t.buffer.byteLength ? t.buffer : t.slice().buffer;
|
|
8186
8186
|
}, Ss = 4e9, Cs = 1e9, ws = class {
|
|
8187
|
-
static FORMATS =
|
|
8187
|
+
static FORMATS = b;
|
|
8188
8188
|
constructor(e) {
|
|
8189
8189
|
this.loader = e, this._store = null, this.lastPBRTStats = null, this.lastUSDStats = null;
|
|
8190
8190
|
}
|
|
@@ -8195,7 +8195,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8195
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));
|
|
8196
8196
|
}
|
|
8197
8197
|
async inspectArchive(e) {
|
|
8198
|
-
let t = Ue(await this._readHead(e)), n = (e) =>
|
|
8198
|
+
let t = Ue(await this._readHead(e)), n = (e) => y({
|
|
8199
8199
|
isLoading: !0,
|
|
8200
8200
|
status: `Scanning archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
|
|
8201
8201
|
progress: 4
|
|
@@ -8210,11 +8210,11 @@ var ms = /* @__PURE__ */ e({
|
|
|
8210
8210
|
path: e.name,
|
|
8211
8211
|
size: e.size
|
|
8212
8212
|
}));
|
|
8213
|
-
let { root: i, elements:
|
|
8213
|
+
let { root: i, elements: a } = lt(r);
|
|
8214
8214
|
return {
|
|
8215
8215
|
kind: t ?? "zip",
|
|
8216
8216
|
root: i,
|
|
8217
|
-
elements:
|
|
8217
|
+
elements: a,
|
|
8218
8218
|
entryCount: r.length,
|
|
8219
8219
|
totalBytes: r.reduce((e, t) => e + t.size, 0)
|
|
8220
8220
|
};
|
|
@@ -8229,7 +8229,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8229
8229
|
filter: ct(r),
|
|
8230
8230
|
part: [...r].sort().join(",")
|
|
8231
8231
|
} : {},
|
|
8232
|
-
onProgress: (e) =>
|
|
8232
|
+
onProgress: (e) => y({
|
|
8233
8233
|
isLoading: !0,
|
|
8234
8234
|
status: `Unpacking archive… ${(e / 1e9).toFixed(1)} GB`,
|
|
8235
8235
|
progress: 4
|
|
@@ -8241,7 +8241,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8241
8241
|
}
|
|
8242
8242
|
async loadArchiveFromFile(e, t, { pbrtEntry: n = null, element: r = null, byteBudget: i, promptBytes: a, ...o } = {}) {
|
|
8243
8243
|
try {
|
|
8244
|
-
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 = {
|
|
8245
8245
|
element: r,
|
|
8246
8246
|
promptBytes: a,
|
|
8247
8247
|
pbrtEntry: n,
|
|
@@ -8275,7 +8275,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8275
8275
|
async loadFolder(e, { pbrtEntry: t = null, element: n = null, promptBytes: r, ...i } = {}) {
|
|
8276
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);
|
|
8277
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.` : "."));
|
|
8278
|
-
let c = this.loader.storage ? m(await
|
|
8278
|
+
let c = this.loader.storage ? m(await v(e)) : null;
|
|
8279
8279
|
return await this._loadSource(o, e.name, {
|
|
8280
8280
|
element: n,
|
|
8281
8281
|
pbrtEntry: t,
|
|
@@ -8313,25 +8313,25 @@ var ms = /* @__PURE__ */ e({
|
|
|
8313
8313
|
}) : await this._loadNonPBRTArchive(c, t);
|
|
8314
8314
|
return this.loader._sourceKey = this.loader._keyed(s, a), l;
|
|
8315
8315
|
}
|
|
8316
|
-
async _loadStoredGraph(e,
|
|
8317
|
-
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
8318
|
if (!o) return null;
|
|
8319
8319
|
let s = performance.now(), c = null;
|
|
8320
8320
|
try {
|
|
8321
|
-
|
|
8321
|
+
y({
|
|
8322
8322
|
isLoading: !0,
|
|
8323
8323
|
status: "Opening the stored scene...",
|
|
8324
8324
|
progress: 6
|
|
8325
8325
|
});
|
|
8326
|
-
let e = await o.json("graph.json"),
|
|
8327
|
-
let
|
|
8328
|
-
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;
|
|
8329
8329
|
} });
|
|
8330
8330
|
return {
|
|
8331
|
-
...
|
|
8332
|
-
group:
|
|
8333
|
-
environment:
|
|
8334
|
-
animations:
|
|
8331
|
+
...c.stats,
|
|
8332
|
+
group: c.root,
|
|
8333
|
+
environment: c.environment ? { texture: c.environment } : null,
|
|
8334
|
+
animations: c.animations,
|
|
8335
8335
|
report: null,
|
|
8336
8336
|
parseMs: 0,
|
|
8337
8337
|
buildMs: performance.now() - s,
|
|
@@ -8340,11 +8340,11 @@ var ms = /* @__PURE__ */ e({
|
|
|
8340
8340
|
} catch (e) {
|
|
8341
8341
|
return c = e, null;
|
|
8342
8342
|
} finally {
|
|
8343
|
-
o.release(), c && (console.warn(`The stored scene could not be used, parsing the archive instead: ${c.message}`), this.loader._issues?.warn(
|
|
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(() => {}));
|
|
8344
8344
|
}
|
|
8345
8345
|
}
|
|
8346
8346
|
_storeGraph(e, t, n) {
|
|
8347
|
-
let r = this.loader.storage?.area(
|
|
8347
|
+
let r = this.loader.storage?.area(h.SCENES);
|
|
8348
8348
|
if (!r) return;
|
|
8349
8349
|
let i;
|
|
8350
8350
|
try {
|
|
@@ -8370,29 +8370,29 @@ var ms = /* @__PURE__ */ e({
|
|
|
8370
8370
|
e instanceof Et ? console.info(`Scene not stored for next time: ${e.message}`) : console.warn("Scene not stored for next time:", e);
|
|
8371
8371
|
return;
|
|
8372
8372
|
}
|
|
8373
|
-
let a,
|
|
8373
|
+
let a, o = new AbortController(), s = {
|
|
8374
8374
|
key: e,
|
|
8375
8375
|
encoded: i,
|
|
8376
8376
|
label: n,
|
|
8377
8377
|
model: t.group,
|
|
8378
8378
|
writing: !1,
|
|
8379
|
-
signal:
|
|
8379
|
+
signal: o.signal,
|
|
8380
8380
|
parseMs: (t.parseMs ?? 0) + (t.buildMs ?? 0),
|
|
8381
8381
|
triangles: t.triangleCount ?? null,
|
|
8382
8382
|
accepted: new Promise((e) => {
|
|
8383
8383
|
a = e;
|
|
8384
8384
|
}),
|
|
8385
8385
|
decide: (e) => {
|
|
8386
|
-
a(e), e ||
|
|
8386
|
+
a(e), e || o.abort();
|
|
8387
8387
|
}
|
|
8388
8388
|
};
|
|
8389
|
-
this._store =
|
|
8389
|
+
this._store = s, l(s.parseMs, i.byteLength) && this._writeGraph(r, s);
|
|
8390
8390
|
}
|
|
8391
8391
|
flushPendingGraph(e) {
|
|
8392
8392
|
let t = this._store;
|
|
8393
8393
|
if (!t || t.writing) return;
|
|
8394
|
-
let n = this.loader.storage?.area(
|
|
8395
|
-
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;
|
|
8396
8396
|
}
|
|
8397
8397
|
commitPendingGraph(e) {
|
|
8398
8398
|
let t = this._store;
|
|
@@ -8417,66 +8417,66 @@ var ms = /* @__PURE__ */ e({
|
|
|
8417
8417
|
}
|
|
8418
8418
|
})();
|
|
8419
8419
|
}
|
|
8420
|
-
async _openSeekableArchive(e, t, n, r, { index: i = null, zip:
|
|
8421
|
-
let
|
|
8422
|
-
if (
|
|
8420
|
+
async _openSeekableArchive(e, t, n, r, { index: i = null, zip: a = !1 } = {}) {
|
|
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 });
|
|
8423
8423
|
else {
|
|
8424
8424
|
let t = i ?? await mt(e, this.loader.storage);
|
|
8425
|
-
|
|
8425
|
+
c = await ot(e, {
|
|
8426
8426
|
index: t,
|
|
8427
8427
|
headersOnly: !0,
|
|
8428
|
-
filter:
|
|
8429
|
-
onProgress: (e) =>
|
|
8428
|
+
filter: s,
|
|
8429
|
+
onProgress: (e) => y({
|
|
8430
8430
|
isLoading: !0,
|
|
8431
8431
|
status: `Indexing archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
|
|
8432
8432
|
progress: 4
|
|
8433
8433
|
})
|
|
8434
|
-
}), t || ht(e, this.loader.storage,
|
|
8434
|
+
}), t || ht(e, this.loader.storage, c.index).catch(() => {});
|
|
8435
8435
|
}
|
|
8436
|
-
let
|
|
8437
|
-
return
|
|
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;
|
|
8438
8438
|
}
|
|
8439
|
-
_requireElementChoice(e,
|
|
8440
|
-
if (
|
|
8441
|
-
let { root:
|
|
8442
|
-
if (
|
|
8443
|
-
let
|
|
8444
|
-
throw
|
|
8445
|
-
root:
|
|
8446
|
-
elements:
|
|
8447
|
-
totalBytes:
|
|
8448
|
-
},
|
|
8449
|
-
}
|
|
8450
|
-
async _readStreamedArchive(e,
|
|
8451
|
-
let
|
|
8452
|
-
filter:
|
|
8453
|
-
...
|
|
8454
|
-
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({
|
|
8455
8455
|
isLoading: !0,
|
|
8456
8456
|
status: `Reading archive… ${(e.bytes / 1e9).toFixed(1)} GB`,
|
|
8457
8457
|
progress: 4
|
|
8458
8458
|
})
|
|
8459
8459
|
});
|
|
8460
|
-
if (
|
|
8461
|
-
let { root: e, elements:
|
|
8462
|
-
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`, {
|
|
8463
8463
|
root: e,
|
|
8464
|
-
elements:
|
|
8465
|
-
totalBytes:
|
|
8466
|
-
},
|
|
8467
|
-
}
|
|
8468
|
-
if (
|
|
8469
|
-
let e = ct(
|
|
8470
|
-
this.loader._issues?.record(
|
|
8471
|
-
elements:
|
|
8472
|
-
missing:
|
|
8473
|
-
retainedBytes:
|
|
8474
|
-
},
|
|
8475
|
-
}
|
|
8476
|
-
return
|
|
8477
|
-
}
|
|
8478
|
-
async loadPBRTFromZip(e,
|
|
8479
|
-
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({
|
|
8480
8480
|
isLoading: !0,
|
|
8481
8481
|
status: "Parsing PBRT scene...",
|
|
8482
8482
|
progress: 5
|
|
@@ -8484,34 +8484,34 @@ var ms = /* @__PURE__ */ e({
|
|
|
8484
8484
|
let { PLYLoader: e } = await import("three/examples/jsm/loaders/PLYLoader.js");
|
|
8485
8485
|
this.loader.loaderCache.ply = new e();
|
|
8486
8486
|
}
|
|
8487
|
-
let
|
|
8488
|
-
animation:
|
|
8489
|
-
maxTriangles:
|
|
8490
|
-
maxPlacements:
|
|
8491
|
-
mergeShapesAbove:
|
|
8492
|
-
curveSteps:
|
|
8493
|
-
curveSides:
|
|
8494
|
-
curveTolerance:
|
|
8495
|
-
instanceIncludes:
|
|
8496
|
-
},
|
|
8497
|
-
imageFromBytes:
|
|
8498
|
-
envFromBytes:
|
|
8499
|
-
}) : 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({
|
|
8500
8500
|
vfs: e,
|
|
8501
8501
|
source: o,
|
|
8502
|
-
entryPath:
|
|
8503
|
-
plyParser:
|
|
8504
|
-
imageFromBytes:
|
|
8505
|
-
envFromBytes:
|
|
8506
|
-
...
|
|
8507
|
-
pause: this._buildPause(
|
|
8502
|
+
entryPath: i,
|
|
8503
|
+
plyParser: s,
|
|
8504
|
+
imageFromBytes: c,
|
|
8505
|
+
envFromBytes: l,
|
|
8506
|
+
...p,
|
|
8507
|
+
pause: this._buildPause(u())
|
|
8508
8508
|
});
|
|
8509
8509
|
this.loader._throwDeferred();
|
|
8510
|
-
let { group:
|
|
8511
|
-
|
|
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 = {
|
|
8512
8512
|
parseMs: D,
|
|
8513
8513
|
buildMs: ee,
|
|
8514
|
-
loaderMs: performance.now() -
|
|
8514
|
+
loaderMs: performance.now() - f,
|
|
8515
8515
|
triangleCount: te,
|
|
8516
8516
|
placementCount: O,
|
|
8517
8517
|
mergedShapes: ne,
|
|
@@ -8521,37 +8521,37 @@ var ms = /* @__PURE__ */ e({
|
|
|
8521
8521
|
frames: E?.length ?? 1
|
|
8522
8522
|
};
|
|
8523
8523
|
let A = new Set(E ?? [w]), ae = T.filter((e) => !A.has(e));
|
|
8524
|
-
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}"`, {
|
|
8525
8525
|
loaded: w,
|
|
8526
8526
|
alternatives: ae
|
|
8527
|
-
},
|
|
8527
|
+
}, n.WARNING)), ie && this._reportParameters(ie, w), x && x.length && typeof console.table == "function") {
|
|
8528
8528
|
let e = x.length < C ? ` (first ${x.length} of ${C})` : "";
|
|
8529
8529
|
console.groupCollapsed(`PBRT loader: ${C} mesh(es) from "${w}"${e}`), console.table(x), console.groupEnd();
|
|
8530
8530
|
}
|
|
8531
|
-
return S && S.length && (console.warn(`PBRT loader: ${S.length} warning(s) parsing "${w}"`), S.forEach((e) => console.warn(" •", e))),
|
|
8532
|
-
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 ? {
|
|
8533
8533
|
rotation: 0,
|
|
8534
8534
|
intensity: 1
|
|
8535
8535
|
} : { enabled: !1 },
|
|
8536
|
-
...
|
|
8537
|
-
},
|
|
8536
|
+
...g.render ? { render: { ...g.render } } : {}
|
|
8537
|
+
}, y({
|
|
8538
8538
|
isLoading: !0,
|
|
8539
8539
|
status: "Processing PBRT geometry...",
|
|
8540
8540
|
progress: 10
|
|
8541
8541
|
}), await this.loader.onModelLoad(this.loader.targetModel), this.loader.dispatchEvent({
|
|
8542
8542
|
type: "load",
|
|
8543
|
-
model:
|
|
8544
|
-
filename: `${w} (from ${
|
|
8545
|
-
}),
|
|
8546
|
-
}
|
|
8547
|
-
_reportParameters({ unused: e, approximated:
|
|
8548
|
-
let
|
|
8549
|
-
if (
|
|
8550
|
-
let
|
|
8551
|
-
console.warn(`PBRT loader: ${
|
|
8552
|
-
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,
|
|
8553
8553
|
unused: e,
|
|
8554
|
-
approximated:
|
|
8554
|
+
approximated: n
|
|
8555
8555
|
});
|
|
8556
8556
|
}
|
|
8557
8557
|
async _archiveImage(e, t) {
|
|
@@ -8559,7 +8559,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8559
8559
|
try {
|
|
8560
8560
|
n = await this._pbrtTextureFromBytes(e, t);
|
|
8561
8561
|
} catch (e) {
|
|
8562
|
-
if (e instanceof
|
|
8562
|
+
if (e instanceof r) throw e;
|
|
8563
8563
|
return this.loader._reportImageFailure(t, e), null;
|
|
8564
8564
|
}
|
|
8565
8565
|
return n && (n.userData[_t] = t), n;
|
|
@@ -8571,38 +8571,38 @@ var ms = /* @__PURE__ */ e({
|
|
|
8571
8571
|
loader: n === "exr" ? this._exrLoader() : null,
|
|
8572
8572
|
quiet: !0
|
|
8573
8573
|
}) : ps(e);
|
|
8574
|
-
return a.mapping = ae,
|
|
8574
|
+
return a.mapping = ae, p(a, `bytes:${await _(r)}`), a.userData[_t] = t, a.userData[vt] = "environment", a;
|
|
8575
8575
|
} finally {
|
|
8576
8576
|
i && URL.revokeObjectURL(i);
|
|
8577
8577
|
}
|
|
8578
8578
|
}
|
|
8579
|
-
async loadUSDScene(e,
|
|
8580
|
-
|
|
8579
|
+
async loadUSDScene(e, r, i = {}) {
|
|
8580
|
+
y({
|
|
8581
8581
|
isLoading: !0,
|
|
8582
8582
|
status: "Reading USD scene...",
|
|
8583
8583
|
progress: 5
|
|
8584
8584
|
});
|
|
8585
|
-
let
|
|
8586
|
-
if (s.length === 0) throw Error(`No USD layer found in ${
|
|
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
8587
|
let c = s[0];
|
|
8588
|
-
s.length > 1 && (console.warn(`${
|
|
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}"`, {
|
|
8589
8589
|
loaded: c,
|
|
8590
8590
|
alternatives: s.slice(1)
|
|
8591
|
-
},
|
|
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) => ({
|
|
8592
8592
|
path: t,
|
|
8593
8593
|
size: e[t]?.size ?? e[t]?.byteLength ?? 0
|
|
8594
|
-
})),
|
|
8595
|
-
let l = performance.now(),
|
|
8594
|
+
})), i.promptBytes);
|
|
8595
|
+
let l = performance.now(), d = u(), f = await ds({
|
|
8596
8596
|
files: o,
|
|
8597
8597
|
entryPath: c,
|
|
8598
8598
|
pauseRead: (e, t) => {
|
|
8599
|
-
let n =
|
|
8600
|
-
return n &&
|
|
8599
|
+
let n = d();
|
|
8600
|
+
return n && y({
|
|
8601
8601
|
status: `${t ? "Counting" : "Reading"} USD scene... ${e.toLocaleString()} prims`,
|
|
8602
8602
|
progress: t ? 5 : 6
|
|
8603
8603
|
}), n;
|
|
8604
8604
|
},
|
|
8605
|
-
pauseBuild: this._buildPause(
|
|
8605
|
+
pauseBuild: this._buildPause(d),
|
|
8606
8606
|
resolveImage: async (e) => {
|
|
8607
8607
|
let t = await o.read(e);
|
|
8608
8608
|
return t ? this._archiveImage(t, e) : null;
|
|
@@ -8611,63 +8611,63 @@ var ms = /* @__PURE__ */ e({
|
|
|
8611
8611
|
let t = await o.read(e);
|
|
8612
8612
|
return t ? this._archiveEnvironment(t, e) : null;
|
|
8613
8613
|
},
|
|
8614
|
-
maxTriangles:
|
|
8615
|
-
maxPlacements:
|
|
8616
|
-
mergeShapesAbove:
|
|
8617
|
-
curveSteps:
|
|
8618
|
-
curveSides:
|
|
8619
|
-
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
|
|
8620
8620
|
});
|
|
8621
8621
|
this.loader._throwDeferred();
|
|
8622
|
-
let { group:
|
|
8622
|
+
let { group: p, environment: m, warnings: h, triangleCount: g, placementCount: _, skippedForBudget: v, meshCount: b, parseMs: x, buildMs: S, fitNote: C } = f;
|
|
8623
8623
|
return this.lastUSDStats = {
|
|
8624
8624
|
parseMs: x,
|
|
8625
8625
|
buildMs: S,
|
|
8626
8626
|
loaderMs: performance.now() - l,
|
|
8627
|
-
triangleCount:
|
|
8628
|
-
placementCount:
|
|
8629
|
-
skippedForBudget:
|
|
8627
|
+
triangleCount: g,
|
|
8628
|
+
placementCount: _,
|
|
8629
|
+
skippedForBudget: v,
|
|
8630
8630
|
meshCount: b,
|
|
8631
8631
|
fitNote: C
|
|
8632
|
-
}, (C ||
|
|
8633
|
-
triangleCount:
|
|
8634
|
-
placementCount:
|
|
8635
|
-
skippedForBudget:
|
|
8636
|
-
},
|
|
8637
|
-
rotation:
|
|
8638
|
-
intensity:
|
|
8639
|
-
} } : 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({
|
|
8640
8640
|
isLoading: !0,
|
|
8641
8641
|
status: "Processing USD geometry...",
|
|
8642
8642
|
progress: 10
|
|
8643
|
-
}), await this.loader.onModelLoad(
|
|
8643
|
+
}), await this.loader.onModelLoad(p), this.loader.dispatchEvent({
|
|
8644
8644
|
type: "load",
|
|
8645
|
-
model:
|
|
8646
|
-
filename: `${c} (from ${
|
|
8647
|
-
}),
|
|
8645
|
+
model: p,
|
|
8646
|
+
filename: `${c} (from ${r})`
|
|
8647
|
+
}), p;
|
|
8648
8648
|
}
|
|
8649
8649
|
_buildPause(e) {
|
|
8650
8650
|
return (t, n) => {
|
|
8651
8651
|
let r = e();
|
|
8652
|
-
return r &&
|
|
8652
|
+
return r && y({
|
|
8653
8653
|
status: `Building scene... ${t.toLocaleString()} of ${n.toLocaleString()} shapes`,
|
|
8654
8654
|
progress: 8
|
|
8655
8655
|
}), r;
|
|
8656
8656
|
};
|
|
8657
8657
|
}
|
|
8658
|
-
async _requireUSDPartChoice(e,
|
|
8659
|
-
let
|
|
8660
|
-
if (
|
|
8661
|
-
let
|
|
8662
|
-
await
|
|
8663
|
-
let
|
|
8664
|
-
if (
|
|
8665
|
-
let
|
|
8666
|
-
throw
|
|
8667
|
-
root:
|
|
8668
|
-
elements:
|
|
8669
|
-
totalBytes:
|
|
8670
|
-
},
|
|
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;
|
|
8671
8671
|
}
|
|
8672
8672
|
_exrLoader() {
|
|
8673
8673
|
return this.loader.loaderCache.exr ??= new Ie().setDataType(se);
|
|
@@ -8685,7 +8685,7 @@ var ms = /* @__PURE__ */ e({
|
|
|
8685
8685
|
}
|
|
8686
8686
|
r = await this._loadViaObjectURL(this.loader.loaderCache.tga, e), r.colorSpace = P;
|
|
8687
8687
|
} else {
|
|
8688
|
-
if (
|
|
8688
|
+
if (i().decodeImage) r = await c(e, t);
|
|
8689
8689
|
else if (typeof createImageBitmap == "function") r = new je(await createImageBitmap(new Blob([e])));
|
|
8690
8690
|
else throw Error("no image decoder in this runtime: configurePlatform( nodePlatform( { decodeImage } ) ) — see \"Running in Node\"");
|
|
8691
8691
|
r.colorSpace = P;
|
|
@@ -8748,39 +8748,39 @@ var ms = /* @__PURE__ */ e({
|
|
|
8748
8748
|
usd: !o && cs.test(s)
|
|
8749
8749
|
};
|
|
8750
8750
|
}
|
|
8751
|
-
async findAndLoadModelFromZip(e,
|
|
8752
|
-
let
|
|
8753
|
-
if (!
|
|
8754
|
-
if (
|
|
8755
|
-
let { path:
|
|
8756
|
-
return
|
|
8757
|
-
loaded:
|
|
8758
|
-
alternatives:
|
|
8759
|
-
},
|
|
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);
|
|
8760
8760
|
}
|
|
8761
8761
|
async loadModelFromZipEntry(e, t, n, r, i = "ZIP") {
|
|
8762
8762
|
try {
|
|
8763
|
-
|
|
8763
|
+
y({
|
|
8764
8764
|
isLoading: !0,
|
|
8765
8765
|
status: `Processing ${n.toUpperCase()} from ${i}...`,
|
|
8766
8766
|
progress: 5
|
|
8767
8767
|
});
|
|
8768
|
-
let
|
|
8768
|
+
let a;
|
|
8769
8769
|
switch (n) {
|
|
8770
8770
|
case "glb":
|
|
8771
8771
|
case "gltf":
|
|
8772
|
-
|
|
8772
|
+
a = await this.handleGltfFromZip(n, e, t, r);
|
|
8773
8773
|
break;
|
|
8774
8774
|
case "obj":
|
|
8775
|
-
|
|
8775
|
+
a = await this.handleObjFromZip(e, t, r);
|
|
8776
8776
|
break;
|
|
8777
|
-
default:
|
|
8777
|
+
default: a = await this.loader._loadModelFileByExtension(new File([e], t), t);
|
|
8778
8778
|
}
|
|
8779
8779
|
return this.loader.dispatchEvent({
|
|
8780
8780
|
type: "load",
|
|
8781
8781
|
model: this.loader.targetModel,
|
|
8782
8782
|
filename: `${t} (from ${i})`
|
|
8783
|
-
}),
|
|
8783
|
+
}), a;
|
|
8784
8784
|
} catch (e) {
|
|
8785
8785
|
throw console.error(`Error loading ${n} from ${i}:`, e), this.loader.dispatchEvent({
|
|
8786
8786
|
type: "error",
|
|
@@ -8791,13 +8791,13 @@ var ms = /* @__PURE__ */ e({
|
|
|
8791
8791
|
}
|
|
8792
8792
|
async handleGltfFromZip(e, t, n, r) {
|
|
8793
8793
|
if (e === "gltf") {
|
|
8794
|
-
let e = await ys(t),
|
|
8795
|
-
|
|
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));
|
|
8796
8796
|
let s = await this.loader.createGLTFLoader();
|
|
8797
|
-
s.manager =
|
|
8797
|
+
s.manager = i;
|
|
8798
8798
|
try {
|
|
8799
|
-
let t = await
|
|
8800
|
-
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;
|
|
8801
8801
|
} finally {
|
|
8802
8802
|
this.loader._disposeGLTFLoader(s);
|
|
8803
8803
|
}
|
|
@@ -8812,17 +8812,17 @@ var ms = /* @__PURE__ */ e({
|
|
|
8812
8812
|
return c.name = t, this.loader.releaseTargetModel(), this.loader.targetModel = c, await this.loader.onModelLoad(this.loader.targetModel), c;
|
|
8813
8813
|
}
|
|
8814
8814
|
async preloadMtlTextures(e) {
|
|
8815
|
-
let
|
|
8816
|
-
if (e.loadTexture = (e,
|
|
8815
|
+
let n = [], r = e.loadTexture.bind(e);
|
|
8816
|
+
if (e.loadTexture = (e, t, i, a, o) => {
|
|
8817
8817
|
let s;
|
|
8818
|
-
return
|
|
8818
|
+
return n.push(new Promise((e) => s = e)), r(e, t, (e) => {
|
|
8819
8819
|
s(), i?.(e);
|
|
8820
8820
|
}, a, (e) => {
|
|
8821
8821
|
s(), o?.(e);
|
|
8822
8822
|
});
|
|
8823
|
-
}, e.preload(),
|
|
8824
|
-
let
|
|
8825
|
-
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;
|
|
8826
8826
|
}
|
|
8827
8827
|
async loadMtlFromZip(e, t, n) {
|
|
8828
8828
|
let r = t.split("/").slice(0, -1).join("/"), i = [
|