@unikia/upe-renderer 0.186.110 → 0.187.11
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 +5 -7
- package/UPSTREAM.md +4 -4
- package/build/three.core.js +853 -277
- package/build/three.module.js +1098 -1280
- package/build/three.tsl.js +41938 -686
- package/build/three.webgpu.js +10604 -49055
- package/build/three.webgpu.nodes.js +9249 -5788
- package/examples/jsm/Addons.js +2 -0
- package/examples/jsm/animation/CCDIKSolver.js +17 -5
- package/examples/jsm/controls/FirstPersonControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +27 -14
- package/examples/jsm/csm/CSMShader.js +74 -3
- package/examples/jsm/curves/CurveExtras.js +4 -4
- package/examples/jsm/curves/NURBSCurve.js +14 -0
- package/examples/jsm/exporters/EXRExporter.js +673 -16
- package/examples/jsm/exporters/GLTFExporter.js +4 -4
- package/examples/jsm/exporters/KTX2Exporter.js +1 -1
- package/examples/jsm/exporters/OBJExporter.js +48 -5
- package/examples/jsm/exporters/PLYExporter.js +22 -11
- package/examples/jsm/generators/CityGenerator.js +3 -2
- package/examples/jsm/generators/city/SkyscraperGenerator.js +63 -21
- package/examples/jsm/gpgpu/BitonicSort.js +30 -23
- package/examples/jsm/helpers/VertexTangentsHelper.js +1 -1
- package/examples/jsm/inspector/Extension.js +1 -1
- package/examples/jsm/inspector/Inspector.js +6 -46
- package/examples/jsm/inspector/RendererInspector.js +43 -8
- package/examples/jsm/inspector/Storage.js +49 -0
- package/examples/jsm/inspector/extensions/color-grading/ColorGrading.js +32 -27
- package/examples/jsm/inspector/tabs/Parameters.js +5 -1
- package/examples/jsm/inspector/tabs/Performance.js +22 -7
- package/examples/jsm/inspector/tabs/Settings.js +1 -1
- package/examples/jsm/inspector/tabs/Timeline.js +83 -7
- package/examples/jsm/inspector/tabs/Viewer.js +25 -10
- package/examples/jsm/inspector/ui/Profiler.js +1 -1
- package/examples/jsm/inspector/ui/Style.js +21 -53
- package/examples/jsm/inspector/ui/Values.js +28 -3
- package/examples/jsm/libs/fflate.module.js +83 -56
- package/examples/jsm/libs/mikktspace.README.md +27 -0
- package/examples/jsm/libs/mikktspace.module.js +721 -109
- package/examples/jsm/lighting/ClusteredLighting.js +100 -2
- package/examples/jsm/lighting/LightMapper.js +295 -0
- package/examples/jsm/lighting/LightProbeGrid.js +242 -139
- package/examples/jsm/lighting/LightProbeGridWebGL.js +30 -14
- package/examples/jsm/lighting/vxgi/VXGIConeTracer.js +54 -5
- package/examples/jsm/lighting/vxgi/VXGIIrradiance.js +43 -0
- package/examples/jsm/lighting/vxgi/VXGINode.js +13 -56
- package/examples/jsm/lighting/vxgi/VXGISceneCollector.js +316 -1
- package/examples/jsm/lighting/vxgi/VXGIVolume.js +69 -59
- package/examples/jsm/lights/SunLight.js +9 -4
- package/examples/jsm/lights/SunLightNode.js +3 -3
- package/examples/jsm/lines/LineMaterial.js +26 -10
- package/examples/jsm/loaders/3DMLoader.js +10 -1
- package/examples/jsm/loaders/3MFLoader.js +5 -1
- package/examples/jsm/loaders/AMFLoader.js +2 -0
- package/examples/jsm/loaders/BVHLoader.js +2 -0
- package/examples/jsm/loaders/ColladaLoader.js +8 -0
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +5 -1
- package/examples/jsm/loaders/EXRLoader.js +120 -104
- package/examples/jsm/loaders/FBXLoader.js +4 -0
- package/examples/jsm/loaders/FontLoader.js +2 -0
- package/examples/jsm/loaders/GCodeLoader.js +5 -9
- package/examples/jsm/loaders/GLTFLoader.js +112 -31
- package/examples/jsm/loaders/GaussianSplatPLYLoader.js +2 -0
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +3 -0
- package/examples/jsm/loaders/IESLoader.js +46 -12
- package/examples/jsm/loaders/JXLLoader.js +159 -0
- package/examples/jsm/loaders/KMZLoader.js +6 -0
- package/examples/jsm/loaders/KSPLATLoader.js +2 -0
- package/examples/jsm/loaders/KTX2Loader.js +49 -4
- package/examples/jsm/loaders/KTXLoader.js +5 -3
- package/examples/jsm/loaders/LDrawLoader.js +15 -22
- package/examples/jsm/loaders/LUT3dlLoader.js +5 -1
- package/examples/jsm/loaders/LUTCubeLoader.js +6 -2
- package/examples/jsm/loaders/LUTImageLoader.js +2 -0
- package/examples/jsm/loaders/LWOLoader.js +6 -0
- package/examples/jsm/loaders/MD2Loader.js +2 -0
- package/examples/jsm/loaders/MDDLoader.js +4 -0
- package/examples/jsm/loaders/MTLLoader.js +8 -0
- package/examples/jsm/loaders/MaterialXLoader.js +57 -5
- package/examples/jsm/loaders/NRRDLoader.js +4 -2
- package/examples/jsm/loaders/OBJLoader.js +10 -4
- package/examples/jsm/loaders/PCDLoader.js +6 -2
- package/examples/jsm/loaders/PDBLoader.js +5 -3
- package/examples/jsm/loaders/PLYLoader.js +39 -15
- package/examples/jsm/loaders/PVRLoader.js +2 -2
- package/examples/jsm/loaders/SPLATLoader.js +2 -0
- package/examples/jsm/loaders/SPZLoader.js +2 -0
- package/examples/jsm/loaders/STLLoader.js +3 -1
- package/examples/jsm/loaders/SVGLoader.js +27 -49
- package/examples/jsm/loaders/TDSLoader.js +4 -0
- package/examples/jsm/loaders/TGALoader.js +6 -5
- package/examples/jsm/loaders/TTFLoader.js +2 -0
- package/examples/jsm/loaders/USDLoader.js +14 -0
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -0
- package/examples/jsm/loaders/VOXLoader.js +3 -0
- package/examples/jsm/loaders/VRMLLoader.js +4 -0
- package/examples/jsm/loaders/VTKLoader.js +2 -0
- package/examples/jsm/loaders/XYZLoader.js +2 -0
- package/examples/jsm/loaders/collada/ColladaComposer.js +15 -8
- package/examples/jsm/loaders/materialx/MaterialXDocument.js +610 -138
- package/examples/jsm/loaders/materialx/MaterialXInterfaceValidation.js +12 -95
- package/examples/jsm/loaders/materialx/MaterialXLog.js +4 -0
- package/examples/jsm/loaders/materialx/MaterialXNodeDefs.js +99 -0
- package/examples/jsm/loaders/materialx/MaterialXNodeInterfaceRegistry.js +760 -1
- package/examples/jsm/loaders/materialx/MaterialXNodeLibrary.js +222 -372
- package/examples/jsm/loaders/materialx/MaterialXSurfaceMappings.js +163 -259
- package/examples/jsm/loaders/materialx/MaterialXUtils.js +25 -0
- package/examples/jsm/loaders/materialx/compile/MaterialXCompileRegistry.js +161 -159
- package/examples/jsm/loaders/usd/USDAParser.js +56 -47
- package/examples/jsm/loaders/usd/USDComposer.js +25 -30
- package/examples/jsm/math/ColorConverter.js +7 -3
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/OBB.js +3 -3
- package/examples/jsm/math/Octree.js +20 -17
- package/examples/jsm/objects/GaussianSplat.js +5 -4
- package/examples/jsm/objects/Reflector.js +5 -0
- package/examples/jsm/objects/SkyMesh.js +14 -7
- package/examples/jsm/objects/Water2Mesh.js +2 -2
- package/examples/jsm/physics/RapierPhysics.js +2 -2
- package/examples/jsm/pipelines/MeshletDrawingPipeline.js +5571 -0
- package/examples/jsm/pipelines/VisibilityBufferDrawingPipeline.js +954 -0
- package/examples/jsm/postprocessing/BokehPass.js +1 -1
- package/examples/jsm/postprocessing/GTAOPass.js +26 -18
- package/examples/jsm/renderers/SVGRenderer.js +3 -2
- package/examples/jsm/shaders/GTAOShader.js +7 -4
- package/examples/jsm/shaders/PoissonDenoiseShader.js +1 -10
- package/examples/jsm/tsl/WebGLNodesHandler.js +21 -9
- package/examples/jsm/tsl/display/AfterImageNode.js +3 -3
- package/examples/jsm/tsl/display/BilateralBlurNode.js +3 -3
- package/examples/jsm/tsl/display/BloomNode.js +3 -3
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +8 -19
- package/examples/jsm/tsl/display/DenoiseNode.js +5 -5
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +3 -3
- package/examples/jsm/tsl/display/DotScreenNode.js +3 -3
- package/examples/jsm/tsl/display/FSR1Node.js +3 -3
- package/examples/jsm/tsl/display/FXAANode.js +3 -10
- package/examples/jsm/tsl/display/FilmNode.js +3 -3
- package/examples/jsm/tsl/display/GTAONode.js +33 -25
- package/examples/jsm/tsl/display/GaussianBlurNode.js +3 -3
- package/examples/jsm/tsl/display/GodraysNode.js +5 -19
- package/examples/jsm/tsl/display/ImportanceSampledEnvironment.js +8 -4
- package/examples/jsm/tsl/display/LensflareNode.js +3 -3
- package/examples/jsm/tsl/display/Lut3DNode.js +3 -3
- package/examples/jsm/tsl/display/OITPassNode.js +0 -11
- package/examples/jsm/tsl/display/OutlineNode.js +107 -5
- package/examples/jsm/tsl/display/PixelationPassNode.js +85 -193
- package/examples/jsm/tsl/display/RGBShiftNode.js +3 -3
- package/examples/jsm/tsl/display/RecurrentDenoiseNode.js +23 -126
- package/examples/jsm/tsl/display/SMAANode.js +3 -3
- package/examples/jsm/tsl/display/SSAONode.js +6 -20
- package/examples/jsm/tsl/display/SSGINode.js +36 -29
- package/examples/jsm/tsl/display/SSRNode.js +135 -63
- package/examples/jsm/tsl/display/SSSNode.js +6 -20
- package/examples/jsm/tsl/display/SharpenNode.js +3 -3
- package/examples/jsm/tsl/display/SobelOperatorNode.js +3 -3
- package/examples/jsm/tsl/display/TAAUNode.js +10 -42
- package/examples/jsm/tsl/display/TRAANode.js +11 -43
- package/examples/jsm/tsl/display/TemporalReprojectNode.js +42 -47
- package/examples/jsm/tsl/display/TransitionNode.js +3 -3
- package/examples/jsm/tsl/display/lensDirt.js +30 -0
- package/examples/jsm/tsl/lighting/ClusteredLightsNode.js +482 -121
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +41 -140
- package/examples/jsm/tsl/lighting/LightProbeGridNode.js +72 -25
- package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +6 -0
- package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +6 -0
- package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +6 -0
- package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +6 -0
- package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +6 -0
- package/examples/jsm/tsl/shadows/TileShadowNode.js +102 -14
- package/examples/jsm/tsl/utils/Raymarching.js +1 -1
- package/examples/jsm/tsl/utils/SoftParticles.js +5 -12
- package/examples/jsm/tsl/utils/SpecularHelpers.js +47 -70
- package/examples/jsm/tsl/utils/TAAUtils.js +6 -17
- package/examples/jsm/utils/BufferGeometryUtils.js +110 -88
- package/examples/jsm/utils/MeshletGeometryUtils.js +417 -0
- package/examples/jsm/utils/SceneOptimizer.js +2 -1
- package/examples/jsm/utils/SceneUtils.js +1 -1
- package/examples/jsm/utils/unwrapUVs.js +865 -0
- package/examples/jsm/webxr/XREstimatedLight.js +11 -4
- package/package.json +3 -3
- package/src/Three.TSL.js +2 -683
- package/src/Three.WebGPU.Nodes.js +2 -1
- package/src/Three.WebGPU.js +2 -1
- package/src/animation/AnimationAction.js +1 -1
- package/src/animation/AnimationUtils.js +1 -3
- package/src/animation/KeyframeTrack.js +19 -0
- package/src/cameras/ArrayCamera.js +12 -0
- package/src/cameras/CubeCamera.js +3 -3
- package/src/constants.js +1 -9
- package/src/core/BufferAttribute.js +57 -21
- package/src/core/BufferGeometry.js +5 -13
- package/src/core/Clock.js +1 -1
- package/src/core/InterleavedBuffer.js +28 -18
- package/src/core/InterleavedBufferAttribute.js +54 -20
- package/src/core/Object3D.js +19 -9
- package/src/core/Raycaster.js +2 -0
- package/src/core/RenderTarget.js +11 -5
- package/src/core/UniformsGroup.js +7 -3
- package/src/extras/PMREMGenerator.js +392 -685
- package/src/extras/core/Curve.js +4 -0
- package/src/extras/core/CurvePath.js +13 -0
- package/src/extras/core/ShapePath.js +1 -1
- package/src/geometries/EdgesGeometry.js +12 -10
- package/src/geometries/LatheGeometry.js +2 -0
- package/src/helpers/PolarGridHelper.js +1 -1
- package/src/lights/Light.js +11 -0
- package/src/lights/LightProbe.js +2 -0
- package/src/lights/LightShadow.js +2 -0
- package/src/loaders/AnimationLoader.js +2 -0
- package/src/loaders/AudioLoader.js +2 -0
- package/src/loaders/BufferGeometryLoader.js +2 -0
- package/src/loaders/CompressedTextureLoader.js +2 -0
- package/src/loaders/CubeTextureLoader.js +2 -0
- package/src/loaders/DataTextureLoader.js +2 -0
- package/src/loaders/FileLoader.js +2 -0
- package/src/loaders/ImageBitmapLoader.js +3 -1
- package/src/loaders/ImageLoader.js +1 -0
- package/src/loaders/Loader.js +47 -0
- package/src/loaders/MaterialLoader.js +2 -0
- package/src/loaders/ObjectLoader.js +27 -8
- package/src/loaders/TextureLoader.js +5 -3
- package/src/loaders/nodes/NodeLoader.js +2 -0
- package/src/materials/Material.js +21 -2
- package/src/materials/MeshDepthMaterial.js +1 -1
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +1 -1
- package/src/materials/MeshMatcapMaterial.js +1 -1
- package/src/materials/MeshNormalMaterial.js +1 -1
- package/src/materials/MeshPhongMaterial.js +1 -1
- package/src/materials/MeshPhysicalMaterial.js +90 -11
- package/src/materials/MeshStandardMaterial.js +1 -1
- package/src/materials/MeshToonMaterial.js +1 -1
- package/src/materials/nodes/Line2NodeMaterial.js +32 -10
- package/src/materials/nodes/MeshLambertNodeMaterial.js +13 -0
- package/src/materials/nodes/MeshPhongNodeMaterial.js +13 -0
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +40 -5
- package/src/materials/nodes/MeshToonNodeMaterial.js +13 -0
- package/src/materials/nodes/NodeMaterial.js +36 -16
- package/src/materials/nodes/NodeMaterialInstance.js +193 -0
- package/src/materials/nodes/NodeMaterials.js +1 -0
- package/src/materials/nodes/PointsNodeMaterial.js +1 -1
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -3
- package/src/materials/nodes/manager/NodeMaterialObserver.js +191 -22
- package/src/math/Box3.js +2 -2
- package/src/math/Color.js +8 -8
- package/src/math/ColorManagement.js +2 -21
- package/src/math/FrustumArray.js +12 -0
- package/src/math/Interpolant.js +1 -1
- package/src/math/Line3.js +2 -4
- package/src/math/MathUtils.js +33 -46
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +1 -1
- package/src/math/Matrix4.js +1 -1
- package/src/math/Triangle.js +2 -1
- package/src/math/Vector2.js +1 -1
- package/src/math/Vector3.js +1 -1
- package/src/math/Vector4.js +1 -1
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/TSL.js +2 -0
- package/src/nodes/accessors/Arrays.js +1 -1
- package/src/nodes/accessors/Batch.js +29 -23
- package/src/nodes/accessors/BufferAttributeNode.js +21 -1
- package/src/nodes/accessors/BuiltinNode.js +6 -0
- package/src/nodes/accessors/Camera.js +100 -93
- package/src/nodes/accessors/ClippingNode.js +17 -6
- package/src/nodes/accessors/CubeTextureNode.js +12 -24
- package/src/nodes/accessors/Instance.js +198 -160
- package/src/nodes/accessors/Lights.js +19 -6
- package/src/nodes/accessors/MaterialNode.js +33 -4
- package/src/nodes/accessors/Morph.js +81 -22
- package/src/nodes/accessors/Normal.js +0 -42
- package/src/nodes/accessors/Object3DNode.js +6 -0
- package/src/nodes/accessors/PointUVNode.js +6 -0
- package/src/nodes/accessors/ReferenceAttributeNode.js +279 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +6 -0
- package/src/nodes/accessors/ReferenceNode.js +6 -0
- package/src/nodes/accessors/Skinning.js +57 -52
- package/src/nodes/accessors/StorageBufferNode.js +3 -12
- package/src/nodes/accessors/TextureBicubic.js +30 -27
- package/src/nodes/accessors/TextureNode.js +164 -78
- package/src/nodes/accessors/TextureSizeNode.js +6 -0
- package/src/nodes/accessors/UniformArrayNode.js +8 -15
- package/src/nodes/accessors/VelocityNode.js +13 -8
- package/src/nodes/code/CodeNode.js +6 -0
- package/src/nodes/code/ExpressionNode.js +6 -0
- package/src/nodes/code/FunctionCallNode.js +3 -3
- package/src/nodes/code/FunctionNode.js +15 -13
- package/src/nodes/core/ArrayNode.js +3 -3
- package/src/nodes/core/AssignNode.js +10 -9
- package/src/nodes/core/AttributeNode.js +39 -0
- package/src/nodes/core/BypassNode.js +6 -0
- package/src/nodes/core/ConstNode.js +31 -1
- package/src/nodes/core/ContextNode.js +11 -6
- package/src/nodes/core/IndexNode.js +6 -0
- package/src/nodes/core/InputNode.js +6 -0
- package/src/nodes/core/InspectorNode.js +17 -31
- package/src/nodes/core/IsolateNode.js +8 -0
- package/src/nodes/core/Node.js +367 -67
- package/src/nodes/core/NodeBuilder.js +664 -222
- package/src/nodes/core/NodeUtils.js +25 -0
- package/src/nodes/core/NodeVar.js +10 -1
- package/src/nodes/core/OutputStructNode.js +6 -0
- package/src/nodes/core/OverrideContextNode.js +38 -37
- package/src/nodes/core/PropertyNode.js +14 -0
- package/src/nodes/core/StackNode.js +33 -21
- package/src/nodes/core/StructNode.js +6 -0
- package/src/nodes/core/StructTypeNode.js +6 -0
- package/src/nodes/core/SubBuildNode.js +8 -0
- package/src/nodes/core/TempNode.js +10 -35
- package/src/nodes/core/UniformGroupNode.js +6 -0
- package/src/nodes/core/VarNode.js +43 -135
- package/src/nodes/core/VaryingNode.js +33 -2
- package/src/nodes/display/BlendModes.js +5 -40
- package/src/nodes/display/BumpMapNode.js +17 -7
- package/src/nodes/display/ColorAdjustment.js +22 -10
- package/src/nodes/display/ColorSpaceFunctions.js +2 -14
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +6 -0
- package/src/nodes/display/NormalMapNode.js +3 -3
- package/src/nodes/display/PassNode.js +75 -16
- package/src/nodes/display/RenderOutputNode.js +22 -5
- package/src/nodes/display/ScreenNode.js +6 -0
- package/src/nodes/display/ToneMappingFunctions.js +9 -51
- package/src/nodes/display/ToneMappingNode.js +3 -3
- package/src/nodes/display/ToonOutlinePassNode.js +66 -2
- package/src/nodes/display/ViewportDepthNode.js +34 -4
- package/src/nodes/functions/BSDF/BRDF_EON.js +65 -0
- package/src/nodes/functions/BSDF/BRDF_GGX.js +5 -3
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +2 -16
- package/src/nodes/functions/BSDF/D_GGX.js +1 -8
- package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +7 -10
- package/src/nodes/functions/BSDF/LTC.js +20 -47
- package/src/nodes/functions/BSDF/Schlick_to_F0.js +1 -9
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +1 -9
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +10 -13
- package/src/nodes/functions/PhysicalLightingModel.js +84 -51
- package/src/nodes/functions/VolumetricLightingModel.js +1 -1
- package/src/nodes/functions/material/getAlphaHashThreshold.js +3 -9
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +10 -11
- package/src/nodes/functions/material/getRoughness.js +3 -1
- package/src/nodes/geometry/RangeNode.js +52 -69
- package/src/nodes/gpgpu/AtomicFunctionNode.js +11 -6
- package/src/nodes/gpgpu/BarrierNode.js +6 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +6 -0
- package/src/nodes/gpgpu/ComputeNode.js +6 -0
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +38 -29
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +6 -0
- package/src/nodes/lighting/AnalyticLightNode.js +7 -14
- package/src/nodes/lighting/BasicEnvironmentNode.js +5 -1
- package/src/nodes/lighting/EnvironmentNode.js +58 -8
- package/src/nodes/lighting/IESSpotLightNode.js +19 -4
- package/src/nodes/lighting/LightProbeNode.js +2 -1
- package/src/nodes/lighting/LightUtils.js +2 -2
- package/src/nodes/lighting/LightingNode.js +6 -0
- package/src/nodes/lighting/LightsNode.js +26 -32
- package/src/nodes/lighting/PointShadowNode.js +92 -48
- package/src/nodes/lighting/ProjectorLightNode.js +1 -1
- package/src/nodes/lighting/RectAreaLightNode.js +13 -14
- package/src/nodes/lighting/ShadowBaseNode.js +9 -17
- package/src/nodes/lighting/ShadowFilterNode.js +26 -3
- package/src/nodes/lighting/ShadowNode.js +13 -11
- package/src/nodes/materialx/MaterialXColor.js +2 -14
- package/src/nodes/materialx/MaterialXColorTransform.js +1 -7
- package/src/nodes/materialx/MaterialXNodes.js +8 -11
- package/src/nodes/materialx/MaterialXNoise.js +195 -454
- package/src/nodes/math/BitcastNode.js +5 -5
- package/src/nodes/math/BitcountNode.js +18 -46
- package/src/nodes/math/ConditionalNode.js +92 -22
- package/src/nodes/math/Hash.js +1 -1
- package/src/nodes/math/MathNode.js +86 -64
- package/src/nodes/math/MathUtils.js +2 -2
- package/src/nodes/math/OperatorNode.js +42 -59
- package/src/nodes/math/PackFloatNode.js +9 -9
- package/src/nodes/math/Packed4x8IntegerNode.js +20 -52
- package/src/nodes/math/TriNoise3D.js +3 -23
- package/src/nodes/math/UnpackFloatNode.js +9 -9
- package/src/nodes/pmrem/PMREMNode.js +38 -75
- package/src/nodes/pmrem/PMREMUtils.js +108 -272
- package/src/nodes/procedural/Checker.js +1 -1
- package/src/nodes/tsl/TSLCore.js +199 -74
- package/src/nodes/utils/ArrayElementNode.js +19 -1
- package/src/nodes/utils/CubeMapNode.js +3 -3
- package/src/nodes/utils/DebugNode.js +2 -2
- package/src/nodes/utils/EventNode.js +6 -0
- package/src/nodes/utils/FlipNode.js +3 -3
- package/src/nodes/utils/FunctionOverloadingNode.js +7 -1
- package/src/nodes/utils/JoinNode.js +3 -3
- package/src/nodes/utils/LoopNode.js +14 -9
- package/src/nodes/utils/MemberNode.js +18 -0
- package/src/nodes/utils/PostProcessingUtils.js +20 -25
- package/src/nodes/utils/RTTNode.js +2 -0
- package/src/nodes/utils/ReflectorNode.js +24 -0
- package/src/nodes/utils/RotateNode.js +3 -3
- package/src/nodes/utils/SampleNode.js +6 -0
- package/src/nodes/utils/SetNode.js +3 -3
- package/src/nodes/utils/SplitNode.js +6 -0
- package/src/nodes/utils/UVUtils.js +2 -2
- package/src/objects/BatchedMesh.js +146 -15
- package/src/objects/InstancedMesh.js +12 -4
- package/src/objects/Line.js +20 -0
- package/src/objects/Mesh.js +8 -0
- package/src/objects/Points.js +20 -0
- package/src/objects/Skeleton.js +26 -0
- package/src/objects/SkinnedMesh.js +3 -3
- package/src/objects/Sprite.js +10 -0
- package/src/renderers/WebGLRenderer.js +104 -70
- package/src/renderers/common/Animation.js +5 -1
- package/src/renderers/common/Attributes.js +67 -57
- package/src/renderers/common/Backend.js +78 -3
- package/src/renderers/common/BindGroup.js +11 -0
- package/src/renderers/common/Binding.js +0 -11
- package/src/renderers/common/Bindings.js +116 -10
- package/src/renderers/common/Buffer.js +1 -1
- package/src/renderers/common/ClippingContext.js +12 -1
- package/src/renderers/common/ComputePipeline.js +17 -1
- package/src/renderers/common/DirectRenderPipeline.js +7 -3
- package/src/renderers/common/Geometries.js +170 -132
- package/src/renderers/common/Info.js +1 -1
- package/src/renderers/common/InspectorBase.js +5 -5
- package/src/renderers/common/Lighting.js +59 -0
- package/src/renderers/common/Pipelines.js +26 -12
- package/src/renderers/common/ProgrammableStage.js +1 -17
- package/src/renderers/common/RenderContext.js +21 -0
- package/src/renderers/common/RenderContexts.js +13 -4
- package/src/renderers/common/RenderObject.js +111 -35
- package/src/renderers/common/RenderObjects.js +37 -19
- package/src/renderers/common/Renderer.js +537 -295
- package/src/renderers/common/RendererUtils.js +15 -0
- package/src/renderers/common/StandardDrawingPipeline.js +343 -0
- package/src/renderers/common/Storage3DTexture.js +11 -0
- package/src/renderers/common/StorageArrayTexture.js +10 -0
- package/src/renderers/common/StorageTexture.js +0 -9
- package/src/renderers/common/Textures.js +144 -37
- package/src/renderers/common/UniformsGroup.js +19 -0
- package/src/renderers/common/XRManager.js +10 -91
- package/src/renderers/common/extras/PMREMGenerator.js +298 -576
- package/src/renderers/common/nodes/NodeBuilderState.js +7 -5
- package/src/renderers/common/nodes/NodeLibrary.js +11 -35
- package/src/renderers/common/nodes/NodeManager.js +80 -31
- package/src/renderers/common/nodes/NodeSampledTexture.js +14 -0
- package/src/renderers/common/nodes/NodeSampler.js +14 -0
- package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
- package/src/renderers/common/nodes/NodeUniformBuffer.js +1 -14
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +13 -4
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +8 -8
- package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +23 -11
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +21 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +18 -2
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +104 -7
- package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +11 -2
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +36 -20
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +5 -0
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +5 -0
- package/src/renderers/shaders/ShaderChunk.js +0 -2
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +4 -18
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +8 -1
- package/src/renderers/shaders/ShaderLib.js +3 -0
- package/src/renderers/shaders/UniformsLib.js +4 -5
- package/src/renderers/webgl/WebGLBackground.js +3 -3
- package/src/renderers/webgl/WebGLBindingStates.js +4 -2
- package/src/renderers/webgl/WebGLCapabilities.js +7 -1
- package/src/renderers/webgl/WebGLEnvironments.js +2 -2
- package/src/renderers/webgl/WebGLGeometries.js +42 -14
- package/src/renderers/webgl/WebGLMaterials.js +15 -2
- package/src/renderers/webgl/WebGLOutput.js +37 -1
- package/src/renderers/webgl/WebGLProgram.js +13 -54
- package/src/renderers/webgl/WebGLPrograms.js +22 -8
- package/src/renderers/webgl/WebGLRenderStates.js +11 -8
- package/src/renderers/webgl/WebGLShadowMap.js +6 -4
- package/src/renderers/webgl/WebGLState.js +10 -6
- package/src/renderers/webgl/WebGLTextures.js +129 -77
- package/src/renderers/webgl/WebGLUniforms.js +44 -6
- package/src/renderers/webgl/WebGLUniformsGroups.js +75 -69
- package/src/renderers/webgl-fallback/WebGLBackend.js +206 -278
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +154 -20
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +45 -42
- package/src/renderers/webgl-fallback/utils/WebGLState.js +29 -4
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +129 -49
- package/src/renderers/webgl-fallback/utils/WebGLVertexArrayUtils.js +346 -0
- package/src/renderers/webgpu/WebGPUBackend.js +140 -82
- package/src/renderers/webgpu/WebGPURenderer.js +1 -1
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +10 -10
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +10 -10
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +135 -60
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +128 -55
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +15 -12
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +55 -19
- package/src/renderers/webgpu/utils/WebGPUUtils.js +20 -3
- package/src/renderers/webxr/WebXRController.js +3 -3
- package/src/renderers/webxr/WebXRManager.js +5 -90
- package/src/scenes/Scene.js +4 -4
- package/src/textures/CompressedTexture.js +2 -2
- package/src/textures/DepthTexture.js +2 -2
- package/src/textures/FramebufferTexture.js +11 -0
- package/src/textures/Texture.js +29 -1
- package/src/textures/TextureSource.js +1 -1
- package/src/upe.js +1 -1
- package/src/utils.js +4 -4
- package/examples/jsm/libs/surfaceNet.js +0 -201
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +0 -186
package/src/extras/core/Curve.js
CHANGED
|
@@ -470,6 +470,8 @@ class Curve {
|
|
|
470
470
|
|
|
471
471
|
this.arcLengthDivisions = source.arcLengthDivisions;
|
|
472
472
|
|
|
473
|
+
this.cacheArcLengths = null;
|
|
474
|
+
|
|
473
475
|
return this;
|
|
474
476
|
|
|
475
477
|
}
|
|
@@ -507,6 +509,8 @@ class Curve {
|
|
|
507
509
|
|
|
508
510
|
this.arcLengthDivisions = json.arcLengthDivisions;
|
|
509
511
|
|
|
512
|
+
this.cacheArcLengths = null;
|
|
513
|
+
|
|
510
514
|
return this;
|
|
511
515
|
|
|
512
516
|
}
|
|
@@ -35,6 +35,15 @@ class CurvePath extends Curve {
|
|
|
35
35
|
*/
|
|
36
36
|
this.autoClose = false;
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* An internal cache that holds precomputed curve length values.
|
|
40
|
+
*
|
|
41
|
+
* @private
|
|
42
|
+
* @type {?Array<number>}
|
|
43
|
+
* @default null
|
|
44
|
+
*/
|
|
45
|
+
this.cacheLengths = null;
|
|
46
|
+
|
|
38
47
|
}
|
|
39
48
|
|
|
40
49
|
/**
|
|
@@ -250,6 +259,8 @@ class CurvePath extends Curve {
|
|
|
250
259
|
|
|
251
260
|
this.autoClose = source.autoClose;
|
|
252
261
|
|
|
262
|
+
this.cacheLengths = null;
|
|
263
|
+
|
|
253
264
|
return this;
|
|
254
265
|
|
|
255
266
|
}
|
|
@@ -286,6 +297,8 @@ class CurvePath extends Curve {
|
|
|
286
297
|
|
|
287
298
|
}
|
|
288
299
|
|
|
300
|
+
this.cacheLengths = null;
|
|
301
|
+
|
|
289
302
|
return this;
|
|
290
303
|
|
|
291
304
|
}
|
|
@@ -64,7 +64,7 @@ class EdgesGeometry extends BufferGeometry {
|
|
|
64
64
|
const vertKeys = [ 'a', 'b', 'c' ];
|
|
65
65
|
const hashes = new Array( 3 );
|
|
66
66
|
|
|
67
|
-
const edgeData =
|
|
67
|
+
const edgeData = new Map();
|
|
68
68
|
const vertices = [];
|
|
69
69
|
for ( let i = 0; i < indexCount; i += 3 ) {
|
|
70
70
|
|
|
@@ -113,29 +113,31 @@ class EdgesGeometry extends BufferGeometry {
|
|
|
113
113
|
const hash = `${ vecHash0 }_${ vecHash1 }`;
|
|
114
114
|
const reverseHash = `${ vecHash1 }_${ vecHash0 }`;
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
const sibling = edgeData.get( reverseHash );
|
|
117
|
+
|
|
118
|
+
if ( sibling ) {
|
|
117
119
|
|
|
118
120
|
// if we found a sibling edge add it into the vertex array if
|
|
119
121
|
// it meets the angle threshold and delete the edge from the map.
|
|
120
|
-
if ( _normal.dot(
|
|
122
|
+
if ( _normal.dot( sibling.normal ) <= thresholdDot ) {
|
|
121
123
|
|
|
122
124
|
vertices.push( v0.x, v0.y, v0.z );
|
|
123
125
|
vertices.push( v1.x, v1.y, v1.z );
|
|
124
126
|
|
|
125
127
|
}
|
|
126
128
|
|
|
127
|
-
edgeData
|
|
129
|
+
edgeData.set( reverseHash, null );
|
|
128
130
|
|
|
129
|
-
} else if ( ! ( hash
|
|
131
|
+
} else if ( ! edgeData.has( hash ) ) {
|
|
130
132
|
|
|
131
133
|
// if we've already got an edge here then skip adding a new one
|
|
132
|
-
edgeData
|
|
134
|
+
edgeData.set( hash, {
|
|
133
135
|
|
|
134
136
|
index0: indexArr[ j ],
|
|
135
137
|
index1: indexArr[ jNext ],
|
|
136
138
|
normal: _normal.clone(),
|
|
137
139
|
|
|
138
|
-
};
|
|
140
|
+
} );
|
|
139
141
|
|
|
140
142
|
}
|
|
141
143
|
|
|
@@ -144,11 +146,11 @@ class EdgesGeometry extends BufferGeometry {
|
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
// iterate over all remaining, unmatched edges and add them to the vertex array
|
|
147
|
-
for ( const
|
|
149
|
+
for ( const edge of edgeData.values() ) {
|
|
148
150
|
|
|
149
|
-
if (
|
|
151
|
+
if ( edge ) {
|
|
150
152
|
|
|
151
|
-
const { index0, index1 } =
|
|
153
|
+
const { index0, index1 } = edge;
|
|
152
154
|
_v0.fromBufferAttribute( positionAttr, index0 );
|
|
153
155
|
_v1.fromBufferAttribute( positionAttr, index1 );
|
|
154
156
|
|
|
@@ -27,7 +27,7 @@ class PolarGridHelper extends LineSegments {
|
|
|
27
27
|
*
|
|
28
28
|
* @param {number} [radius=10] - The radius of the polar grid. This can be any positive number.
|
|
29
29
|
* @param {number} [sectors=16] - The number of sectors the grid will be divided into. This can be any positive integer.
|
|
30
|
-
* @param {number} [rings=
|
|
30
|
+
* @param {number} [rings=8] - The number of rings. This can be any positive integer.
|
|
31
31
|
* @param {number} [divisions=64] - The number of line segments used for each circle. This can be any positive integer.
|
|
32
32
|
* @param {number|Color|string} [color1=0x444444] - The first color used for grid elements.
|
|
33
33
|
* @param {number|Color|string} [color2=0x888888] - The second color used for grid elements.
|
package/src/lights/Light.js
CHANGED
|
@@ -10,6 +10,17 @@ import { Color } from '../math/Color.js';
|
|
|
10
10
|
*/
|
|
11
11
|
class Light extends Object3D {
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Registers the node class that `WebGPURenderer` uses to shade lights of this type.
|
|
15
|
+
*
|
|
16
|
+
* @param {AnalyticLightNode.constructor} lightNodeClass - The light node class.
|
|
17
|
+
*/
|
|
18
|
+
static registerNode( lightNodeClass ) {
|
|
19
|
+
|
|
20
|
+
this.prototype._lightNode = lightNodeClass;
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
13
24
|
/**
|
|
14
25
|
* Constructs a new light.
|
|
15
26
|
*
|
package/src/lights/LightProbe.js
CHANGED
|
@@ -331,6 +331,7 @@ class LightShadow {
|
|
|
331
331
|
this.blurSamples = source.blurSamples;
|
|
332
332
|
|
|
333
333
|
this.mapSize.copy( source.mapSize );
|
|
334
|
+
this.mapType = source.mapType;
|
|
334
335
|
|
|
335
336
|
this.biasNode = source.biasNode;
|
|
336
337
|
|
|
@@ -365,6 +366,7 @@ class LightShadow {
|
|
|
365
366
|
object.radius = this.radius;
|
|
366
367
|
object.blurSamples = this.blurSamples;
|
|
367
368
|
object.mapSize = this.mapSize.toArray();
|
|
369
|
+
object.mapType = this.mapType;
|
|
368
370
|
|
|
369
371
|
object.camera = this.camera.toJSON( false ).object;
|
|
370
372
|
delete object.camera.matrix;
|
|
@@ -41,6 +41,8 @@ class AnimationLoader extends Loader {
|
|
|
41
41
|
const scope = this;
|
|
42
42
|
|
|
43
43
|
const loader = new FileLoader( this.manager );
|
|
44
|
+
loader.setPriority( this.priority );
|
|
45
|
+
loader.setCache( this.cache );
|
|
44
46
|
loader.setPath( this.path );
|
|
45
47
|
loader.setRequestHeader( this.requestHeader );
|
|
46
48
|
loader.setWithCredentials( this.withCredentials );
|
|
@@ -47,6 +47,8 @@ class AudioLoader extends Loader {
|
|
|
47
47
|
const scope = this;
|
|
48
48
|
|
|
49
49
|
const loader = new FileLoader( this.manager );
|
|
50
|
+
loader.setPriority( this.priority );
|
|
51
|
+
loader.setCache( this.cache );
|
|
50
52
|
loader.setResponseType( 'arraybuffer' );
|
|
51
53
|
loader.setPath( this.path );
|
|
52
54
|
loader.setRequestHeader( this.requestHeader );
|
|
@@ -50,6 +50,8 @@ class BufferGeometryLoader extends Loader {
|
|
|
50
50
|
const scope = this;
|
|
51
51
|
|
|
52
52
|
const loader = new FileLoader( scope.manager );
|
|
53
|
+
loader.setPriority( scope.priority );
|
|
54
|
+
loader.setCache( scope.cache );
|
|
53
55
|
loader.setPath( scope.path );
|
|
54
56
|
loader.setRequestHeader( scope.requestHeader );
|
|
55
57
|
loader.setWithCredentials( scope.withCredentials );
|
|
@@ -47,6 +47,8 @@ class CompressedTextureLoader extends Loader {
|
|
|
47
47
|
const texture = new CompressedTexture();
|
|
48
48
|
|
|
49
49
|
const loader = new FileLoader( this.manager );
|
|
50
|
+
loader.setPriority( this.priority );
|
|
51
|
+
loader.setCache( this.cache );
|
|
50
52
|
loader.setPath( this.path );
|
|
51
53
|
loader.setResponseType( 'arraybuffer' );
|
|
52
54
|
loader.setRequestHeader( this.requestHeader );
|
|
@@ -62,6 +62,8 @@ class CubeTextureLoader extends Loader {
|
|
|
62
62
|
texture.colorSpace = SRGBColorSpace;
|
|
63
63
|
|
|
64
64
|
const loader = new ImageLoader( this.manager );
|
|
65
|
+
loader.setPriority( this.priority );
|
|
66
|
+
loader.setCache( this.cache );
|
|
65
67
|
loader.setCrossOrigin( this.crossOrigin );
|
|
66
68
|
loader.setPath( this.path );
|
|
67
69
|
|
|
@@ -46,6 +46,8 @@ class DataTextureLoader extends Loader {
|
|
|
46
46
|
const texture = new DataTexture();
|
|
47
47
|
|
|
48
48
|
const loader = new FileLoader( this.manager );
|
|
49
|
+
loader.setPriority( this.priority );
|
|
50
|
+
loader.setCache( this.cache );
|
|
49
51
|
loader.setResponseType( 'arraybuffer' );
|
|
50
52
|
loader.setRequestHeader( this.requestHeader );
|
|
51
53
|
loader.setPath( this.path );
|
|
@@ -130,6 +130,8 @@ class FileLoader extends Loader {
|
|
|
130
130
|
const req = new Request( url, {
|
|
131
131
|
headers: new Headers( this.requestHeader ),
|
|
132
132
|
credentials: this.withCredentials ? 'include' : 'same-origin',
|
|
133
|
+
priority: this.priority,
|
|
134
|
+
cache: this.cache,
|
|
133
135
|
signal: ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal
|
|
134
136
|
} );
|
|
135
137
|
|
|
@@ -166,8 +166,10 @@ class ImageBitmapLoader extends Loader {
|
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
const fetchOptions = {};
|
|
169
|
-
fetchOptions.credentials = ( this.crossOrigin
|
|
169
|
+
fetchOptions.credentials = ( this.withCredentials || this.crossOrigin !== 'anonymous' ) ? 'include' : 'same-origin';
|
|
170
170
|
fetchOptions.headers = this.requestHeader;
|
|
171
|
+
fetchOptions.priority = this.priority;
|
|
172
|
+
fetchOptions.cache = this.cache;
|
|
171
173
|
fetchOptions.signal = ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal;
|
|
172
174
|
|
|
173
175
|
const promise = fetch( url, fetchOptions ).then( function ( res ) {
|
package/src/loaders/Loader.js
CHANGED
|
@@ -61,6 +61,23 @@ class Loader {
|
|
|
61
61
|
*/
|
|
62
62
|
this.requestHeader = {};
|
|
63
63
|
|
|
64
|
+
/**
|
|
65
|
+
* The request priority hint. Image loaders use `HTMLImageElement.fetchPriority`.
|
|
66
|
+
*
|
|
67
|
+
* @type {('high'|'low'|'auto')}
|
|
68
|
+
* @default 'auto'
|
|
69
|
+
*/
|
|
70
|
+
this.priority = 'auto';
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The HTTP cache mode passed to `fetch()`. This does not affect {@link Cache}
|
|
74
|
+
* or loaders using `HTMLImageElement`.
|
|
75
|
+
*
|
|
76
|
+
* @type {('default'|'no-store'|'reload'|'no-cache'|'force-cache')}
|
|
77
|
+
* @default 'default'
|
|
78
|
+
*/
|
|
79
|
+
this.cache = 'default';
|
|
80
|
+
|
|
64
81
|
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
65
82
|
|
|
66
83
|
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );
|
|
@@ -179,6 +196,36 @@ class Loader {
|
|
|
179
196
|
|
|
180
197
|
}
|
|
181
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Sets a browser scheduling hint. Browsers may ignore this hint.
|
|
201
|
+
* Internally created loaders inherit it. Loaders supplied by the application
|
|
202
|
+
* (for example decoder loaders or loading manager handlers) retain their own settings.
|
|
203
|
+
*
|
|
204
|
+
* @param {('high'|'low'|'auto')} value - The request priority hint.
|
|
205
|
+
* @return {Loader} A reference to this instance.
|
|
206
|
+
*/
|
|
207
|
+
setPriority( value ) {
|
|
208
|
+
|
|
209
|
+
this.priority = value;
|
|
210
|
+
return this;
|
|
211
|
+
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Sets the HTTP cache mode for fetch requests. `no-cache` revalidates cached
|
|
216
|
+
* responses; `no-store` bypasses the HTTP cache. This does not affect
|
|
217
|
+
* {@link Cache} or image element requests.
|
|
218
|
+
*
|
|
219
|
+
* @param {('default'|'no-store'|'reload'|'no-cache'|'force-cache')} value - The HTTP cache mode.
|
|
220
|
+
* @return {Loader} A reference to this instance.
|
|
221
|
+
*/
|
|
222
|
+
setCache( value ) {
|
|
223
|
+
|
|
224
|
+
this.cache = value;
|
|
225
|
+
return this;
|
|
226
|
+
|
|
227
|
+
}
|
|
228
|
+
|
|
182
229
|
/**
|
|
183
230
|
* This method can be implemented in loaders for aborting ongoing requests.
|
|
184
231
|
*
|
|
@@ -69,6 +69,8 @@ class MaterialLoader extends Loader {
|
|
|
69
69
|
const scope = this;
|
|
70
70
|
|
|
71
71
|
const loader = new FileLoader( scope.manager );
|
|
72
|
+
loader.setPriority( scope.priority );
|
|
73
|
+
loader.setCache( scope.cache );
|
|
72
74
|
loader.setPath( scope.path );
|
|
73
75
|
loader.setRequestHeader( scope.requestHeader );
|
|
74
76
|
loader.setWithCredentials( scope.withCredentials );
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
CubeRefractionMapping,
|
|
5
5
|
EquirectangularReflectionMapping,
|
|
6
6
|
EquirectangularRefractionMapping,
|
|
7
|
-
CubeUVReflectionMapping,
|
|
8
7
|
|
|
9
8
|
RepeatWrapping,
|
|
10
9
|
ClampToEdgeWrapping,
|
|
@@ -112,6 +111,8 @@ class ObjectLoader extends Loader {
|
|
|
112
111
|
this.resourcePath = this.resourcePath || path;
|
|
113
112
|
|
|
114
113
|
const loader = new FileLoader( this.manager );
|
|
114
|
+
loader.setPriority( this.priority );
|
|
115
|
+
loader.setCache( this.cache );
|
|
115
116
|
loader.setPath( this.path );
|
|
116
117
|
loader.setRequestHeader( this.requestHeader );
|
|
117
118
|
loader.setWithCredentials( this.withCredentials );
|
|
@@ -166,6 +167,8 @@ class ObjectLoader extends Loader {
|
|
|
166
167
|
this.resourcePath = this.resourcePath || path;
|
|
167
168
|
|
|
168
169
|
const loader = new FileLoader( this.manager );
|
|
170
|
+
loader.setPriority( this.priority );
|
|
171
|
+
loader.setCache( this.cache );
|
|
169
172
|
loader.setPath( this.path );
|
|
170
173
|
loader.setRequestHeader( this.requestHeader );
|
|
171
174
|
loader.setWithCredentials( this.withCredentials );
|
|
@@ -511,6 +514,8 @@ class ObjectLoader extends Loader {
|
|
|
511
514
|
const manager = new LoadingManager( onLoad );
|
|
512
515
|
|
|
513
516
|
loader = new ImageLoader( manager );
|
|
517
|
+
loader.setPriority( this.priority );
|
|
518
|
+
loader.setCache( this.cache );
|
|
514
519
|
loader.setCrossOrigin( this.crossOrigin );
|
|
515
520
|
|
|
516
521
|
for ( let i = 0, il = json.length; i < il; i ++ ) {
|
|
@@ -608,6 +613,8 @@ class ObjectLoader extends Loader {
|
|
|
608
613
|
if ( json !== undefined && json.length > 0 ) {
|
|
609
614
|
|
|
610
615
|
loader = new ImageLoader( this.manager );
|
|
616
|
+
loader.setPriority( this.priority );
|
|
617
|
+
loader.setCache( this.cache );
|
|
611
618
|
loader.setCrossOrigin( this.crossOrigin );
|
|
612
619
|
|
|
613
620
|
for ( let i = 0, il = json.length; i < il; i ++ ) {
|
|
@@ -756,6 +763,7 @@ class ObjectLoader extends Loader {
|
|
|
756
763
|
if ( data.flipY !== undefined ) texture.flipY = data.flipY;
|
|
757
764
|
|
|
758
765
|
if ( data.generateMipmaps !== undefined ) texture.generateMipmaps = data.generateMipmaps;
|
|
766
|
+
if ( data.mipmapsAutoUpdate !== undefined ) texture.mipmapsAutoUpdate = data.mipmapsAutoUpdate;
|
|
759
767
|
if ( data.premultiplyAlpha !== undefined ) texture.premultiplyAlpha = data.premultiplyAlpha;
|
|
760
768
|
if ( data.unpackAlignment !== undefined ) texture.unpackAlignment = data.unpackAlignment;
|
|
761
769
|
if ( data.compareFunction !== undefined ) texture.compareFunction = data.compareFunction;
|
|
@@ -945,6 +953,8 @@ class ObjectLoader extends Loader {
|
|
|
945
953
|
object = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );
|
|
946
954
|
object.target = data.target || '';
|
|
947
955
|
|
|
956
|
+
if ( data.map !== undefined ) object.map = getTexture( data.map );
|
|
957
|
+
|
|
948
958
|
break;
|
|
949
959
|
|
|
950
960
|
case 'HemisphereLight':
|
|
@@ -1034,8 +1044,8 @@ class ObjectLoader extends Loader {
|
|
|
1034
1044
|
} );
|
|
1035
1045
|
object._instanceInfo = data.instanceInfo;
|
|
1036
1046
|
|
|
1037
|
-
object._availableInstanceIds = data.
|
|
1038
|
-
object._availableGeometryIds = data.
|
|
1047
|
+
object._availableInstanceIds = data.availableInstanceIds;
|
|
1048
|
+
object._availableGeometryIds = data.availableGeometryIds;
|
|
1039
1049
|
|
|
1040
1050
|
object._nextIndexStart = data.nextIndexStart;
|
|
1041
1051
|
object._nextVertexStart = data.nextVertexStart;
|
|
@@ -1106,6 +1116,8 @@ class ObjectLoader extends Loader {
|
|
|
1106
1116
|
|
|
1107
1117
|
object = new Sprite( getMaterial( data.material ) );
|
|
1108
1118
|
|
|
1119
|
+
if ( data.center !== undefined ) object.center.fromArray( data.center );
|
|
1120
|
+
|
|
1109
1121
|
break;
|
|
1110
1122
|
|
|
1111
1123
|
case 'Group':
|
|
@@ -1130,12 +1142,21 @@ class ObjectLoader extends Loader {
|
|
|
1130
1142
|
|
|
1131
1143
|
if ( data.name !== undefined ) object.name = data.name;
|
|
1132
1144
|
|
|
1145
|
+
if ( data.pivot !== undefined ) object.pivot = new Vector3().fromArray( data.pivot );
|
|
1146
|
+
|
|
1133
1147
|
if ( data.matrix !== undefined ) {
|
|
1134
1148
|
|
|
1135
1149
|
object.matrix.fromArray( data.matrix );
|
|
1136
1150
|
|
|
1137
1151
|
if ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;
|
|
1138
|
-
|
|
1152
|
+
|
|
1153
|
+
if ( object.matrixAutoUpdate ) {
|
|
1154
|
+
|
|
1155
|
+
object.matrix.decompose( object.position, object.quaternion, object.scale );
|
|
1156
|
+
|
|
1157
|
+
if ( object.pivot !== null ) object.position.copy( object.pivot ).applyMatrix4( object.matrix ).sub( object.pivot );
|
|
1158
|
+
|
|
1159
|
+
}
|
|
1139
1160
|
|
|
1140
1161
|
} else {
|
|
1141
1162
|
|
|
@@ -1148,8 +1169,6 @@ class ObjectLoader extends Loader {
|
|
|
1148
1169
|
|
|
1149
1170
|
if ( data.up !== undefined ) object.up.fromArray( data.up );
|
|
1150
1171
|
|
|
1151
|
-
if ( data.pivot !== undefined ) object.pivot = new Vector3().fromArray( data.pivot );
|
|
1152
|
-
|
|
1153
1172
|
if ( data.morphTargetDictionary !== undefined ) object.morphTargetDictionary = Object.assign( {}, data.morphTargetDictionary );
|
|
1154
1173
|
if ( data.morphTargetInfluences !== undefined ) object.morphTargetInfluences = data.morphTargetInfluences.slice();
|
|
1155
1174
|
|
|
@@ -1166,6 +1185,7 @@ class ObjectLoader extends Loader {
|
|
|
1166
1185
|
if ( data.shadow.focus !== undefined ) object.shadow.focus = data.shadow.focus;
|
|
1167
1186
|
if ( data.shadow.aspect !== undefined ) object.shadow.aspect = data.shadow.aspect;
|
|
1168
1187
|
if ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize );
|
|
1188
|
+
if ( data.shadow.mapType !== undefined ) object.shadow.mapType = data.shadow.mapType;
|
|
1169
1189
|
if ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera );
|
|
1170
1190
|
|
|
1171
1191
|
}
|
|
@@ -1287,8 +1307,7 @@ const TEXTURE_MAPPING = {
|
|
|
1287
1307
|
CubeReflectionMapping: CubeReflectionMapping,
|
|
1288
1308
|
CubeRefractionMapping: CubeRefractionMapping,
|
|
1289
1309
|
EquirectangularReflectionMapping: EquirectangularReflectionMapping,
|
|
1290
|
-
EquirectangularRefractionMapping: EquirectangularRefractionMapping
|
|
1291
|
-
CubeUVReflectionMapping: CubeUVReflectionMapping
|
|
1310
|
+
EquirectangularRefractionMapping: EquirectangularRefractionMapping
|
|
1292
1311
|
};
|
|
1293
1312
|
|
|
1294
1313
|
const TEXTURE_WRAPPING = {
|
|
@@ -38,9 +38,9 @@ class TextureLoader extends Loader {
|
|
|
38
38
|
* may pop up in your scene once the respective loading process is finished.
|
|
39
39
|
*
|
|
40
40
|
* @param {string} url - The path/URL of the file to be loaded. This can also be a data URI.
|
|
41
|
-
* @param {function(Texture)} onLoad - Executed when the loading process has been finished.
|
|
42
|
-
* @param {onProgressCallback} onProgress - Unsupported in this loader.
|
|
43
|
-
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
41
|
+
* @param {function(Texture)} [onLoad] - Executed when the loading process has been finished.
|
|
42
|
+
* @param {onProgressCallback} [onProgress] - Unsupported in this loader.
|
|
43
|
+
* @param {onErrorCallback} [onError] - Executed when errors occur.
|
|
44
44
|
* @return {Texture} The texture.
|
|
45
45
|
*/
|
|
46
46
|
load( url, onLoad, onProgress, onError ) {
|
|
@@ -48,6 +48,8 @@ class TextureLoader extends Loader {
|
|
|
48
48
|
const texture = new Texture();
|
|
49
49
|
|
|
50
50
|
const loader = new ImageLoader( this.manager );
|
|
51
|
+
loader.setPriority( this.priority );
|
|
52
|
+
loader.setCache( this.cache );
|
|
51
53
|
loader.setCrossOrigin( this.crossOrigin );
|
|
52
54
|
loader.setPath( this.path );
|
|
53
55
|
|
|
@@ -47,6 +47,8 @@ class NodeLoader extends Loader {
|
|
|
47
47
|
load( url, onLoad, onProgress, onError ) {
|
|
48
48
|
|
|
49
49
|
const loader = new FileLoader( this.manager );
|
|
50
|
+
loader.setPriority( this.priority );
|
|
51
|
+
loader.setCache( this.cache );
|
|
50
52
|
loader.setPath( this.path );
|
|
51
53
|
loader.setRequestHeader( this.requestHeader );
|
|
52
54
|
loader.setWithCredentials( this.withCredentials );
|
|
@@ -702,6 +702,13 @@ class Material extends EventDispatcher {
|
|
|
702
702
|
if ( this.shininess !== undefined ) data.shininess = this.shininess;
|
|
703
703
|
if ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;
|
|
704
704
|
if ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;
|
|
705
|
+
if ( this.diffuseRoughness !== undefined ) data.diffuseRoughness = this.diffuseRoughness;
|
|
706
|
+
|
|
707
|
+
if ( this.diffuseRoughnessMap && this.diffuseRoughnessMap.isTexture ) {
|
|
708
|
+
|
|
709
|
+
data.diffuseRoughnessMap = this.diffuseRoughnessMap.toJSON( meta ).uuid;
|
|
710
|
+
|
|
711
|
+
}
|
|
705
712
|
|
|
706
713
|
if ( this.clearcoatMap && this.clearcoatMap.isTexture ) {
|
|
707
714
|
|
|
@@ -739,7 +746,8 @@ class Material extends EventDispatcher {
|
|
|
739
746
|
|
|
740
747
|
if ( this.iridescence !== undefined ) data.iridescence = this.iridescence;
|
|
741
748
|
if ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;
|
|
742
|
-
if ( this.
|
|
749
|
+
if ( this.iridescenceThicknessMinimum !== undefined ) data.iridescenceThicknessMinimum = this.iridescenceThicknessMinimum;
|
|
750
|
+
if ( this.iridescenceThicknessMaximum !== undefined ) data.iridescenceThicknessMaximum = this.iridescenceThicknessMaximum;
|
|
743
751
|
|
|
744
752
|
if ( this.iridescenceMap && this.iridescenceMap.isTexture ) {
|
|
745
753
|
|
|
@@ -926,11 +934,21 @@ class Material extends EventDispatcher {
|
|
|
926
934
|
if ( json.shininess !== undefined ) this.shininess = json.shininess;
|
|
927
935
|
if ( json.clearcoat !== undefined ) this.clearcoat = json.clearcoat;
|
|
928
936
|
if ( json.clearcoatRoughness !== undefined ) this.clearcoatRoughness = json.clearcoatRoughness;
|
|
937
|
+
if ( json.diffuseRoughness !== undefined ) this.diffuseRoughness = json.diffuseRoughness;
|
|
929
938
|
if ( json.dispersion !== undefined ) this.dispersion = json.dispersion;
|
|
930
939
|
if ( json.retroreflectivity !== undefined ) this.retroreflectivity = json.retroreflectivity;
|
|
931
940
|
if ( json.iridescence !== undefined ) this.iridescence = json.iridescence;
|
|
932
941
|
if ( json.iridescenceIOR !== undefined ) this.iridescenceIOR = json.iridescenceIOR;
|
|
933
|
-
if ( json.
|
|
942
|
+
if ( json.iridescenceThicknessMinimum !== undefined ) this.iridescenceThicknessMinimum = json.iridescenceThicknessMinimum;
|
|
943
|
+
if ( json.iridescenceThicknessMaximum !== undefined ) this.iridescenceThicknessMaximum = json.iridescenceThicknessMaximum;
|
|
944
|
+
|
|
945
|
+
if ( json.iridescenceThicknessRange !== undefined ) { // @deprecated r187
|
|
946
|
+
|
|
947
|
+
this.iridescenceThicknessMinimum = json.iridescenceThicknessRange[ 0 ];
|
|
948
|
+
this.iridescenceThicknessMaximum = json.iridescenceThicknessRange[ 1 ];
|
|
949
|
+
|
|
950
|
+
}
|
|
951
|
+
|
|
934
952
|
if ( json.transmission !== undefined ) this.transmission = json.transmission;
|
|
935
953
|
if ( json.thickness !== undefined ) this.thickness = json.thickness;
|
|
936
954
|
if ( json.attenuationDistance !== undefined ) this.attenuationDistance = json.attenuationDistance;
|
|
@@ -1083,6 +1101,7 @@ class Material extends EventDispatcher {
|
|
|
1083
1101
|
if ( json.clearcoatRoughnessMap !== undefined ) this.clearcoatRoughnessMap = textures[ json.clearcoatRoughnessMap ] || null;
|
|
1084
1102
|
if ( json.clearcoatNormalMap !== undefined ) this.clearcoatNormalMap = textures[ json.clearcoatNormalMap ] || null;
|
|
1085
1103
|
if ( json.clearcoatNormalScale !== undefined ) this.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );
|
|
1104
|
+
if ( json.diffuseRoughnessMap !== undefined ) this.diffuseRoughnessMap = textures[ json.diffuseRoughnessMap ] || null;
|
|
1086
1105
|
|
|
1087
1106
|
if ( json.iridescenceMap !== undefined ) this.iridescenceMap = textures[ json.iridescenceMap ] || null;
|
|
1088
1107
|
if ( json.iridescenceThicknessMap !== undefined ) this.iridescenceThicknessMap = textures[ json.iridescenceThicknessMap ] || null;
|