@needle-tools/three 0.145.4 → 0.146.2
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 +1 -1
- package/build/three.cjs +32586 -35951
- package/build/three.js +32600 -35965
- package/build/three.min.js +6 -7
- package/build/three.module.js +1547 -1154
- package/examples/js/animation/AnimationClipCreator.js +0 -8
- package/examples/js/animation/CCDIKSolver.js +49 -66
- package/examples/js/animation/MMDAnimationHelper.js +66 -137
- package/examples/js/animation/MMDPhysics.js +70 -134
- package/examples/js/cameras/CinematicCamera.js +33 -22
- package/examples/js/controls/ArcballControls.js +138 -405
- package/examples/js/controls/DragControls.js +8 -33
- package/examples/js/controls/FirstPersonControls.js +32 -54
- package/examples/js/controls/FlyControls.js +29 -55
- package/examples/js/controls/OrbitControls.js +85 -95
- package/examples/js/controls/PointerLockControls.js +5 -14
- package/examples/js/controls/TrackballControls.js +33 -86
- package/examples/js/controls/TransformControls.js +84 -169
- package/examples/js/csm/CSM.js +4 -39
- package/examples/js/csm/CSMFrustum.js +3 -9
- package/examples/js/csm/CSMHelper.js +24 -4
- package/examples/js/csm/CSMShader.js +2 -6
- package/examples/js/curves/CurveExtras.js +27 -27
- package/examples/js/curves/NURBSCurve.js +4 -16
- package/examples/js/curves/NURBSSurface.js +3 -9
- package/examples/js/curves/NURBSUtils.js +8 -45
- package/examples/js/effects/AnaglyphEffect.js +4 -18
- package/examples/js/effects/AsciiEffect.js +32 -31
- package/examples/js/effects/OutlineEffect.js +26 -30
- package/examples/js/effects/ParallaxBarrierEffect.js +0 -13
- package/examples/js/effects/PeppersGhostEffect.js +12 -39
- package/examples/js/effects/StereoEffect.js +0 -4
- package/examples/js/environments/RoomEnvironment.js +12 -10
- package/examples/js/exporters/ColladaExporter.js +48 -65
- package/examples/js/exporters/DRACOExporter.js +22 -22
- package/examples/js/exporters/EXRExporter.js +15 -18
- package/examples/js/exporters/GLTFExporter.js +143 -261
- package/examples/js/exporters/MMDExporter.js +5 -12
- package/examples/js/exporters/OBJExporter.js +42 -33
- package/examples/js/exporters/PLYExporter.js +38 -33
- package/examples/js/exporters/STLExporter.js +5 -7
- package/examples/js/exporters/USDZExporter.js +110 -25
- package/examples/js/geometries/BoxLineGeometry.js +0 -1
- package/examples/js/geometries/ConvexGeometry.js +11 -6
- package/examples/js/geometries/DecalGeometry.js +53 -20
- package/examples/js/geometries/LightningStrike.js +54 -67
- package/examples/js/geometries/ParametricGeometries.js +8 -7
- package/examples/js/geometries/ParametricGeometry.js +25 -12
- package/examples/js/geometries/RoundedBoxGeometry.js +21 -19
- package/examples/js/geometries/TeapotGeometry.js +54 -50
- package/examples/js/geometries/TextGeometry.js +6 -4
- package/examples/js/helpers/LightProbeHelper.js +1 -2
- package/examples/js/helpers/OctreeHelper.js +22 -20
- package/examples/js/helpers/PositionalAudioHelper.js +8 -6
- package/examples/js/helpers/RectAreaLightHelper.js +6 -7
- package/examples/js/helpers/VertexNormalsHelper.js +15 -13
- package/examples/js/helpers/VertexTangentsHelper.js +15 -9
- package/examples/js/helpers/ViewHelper.js +31 -16
- package/examples/js/interactive/HTMLMesh.js +22 -33
- package/examples/js/interactive/InteractiveGroup.js +6 -12
- package/examples/js/interactive/SelectionBox.js +3 -70
- package/examples/js/interactive/SelectionHelper.js +0 -8
- package/examples/js/lights/LightProbeGenerator.js +32 -39
- package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
- package/examples/js/lines/LineGeometry.js +3 -5
- package/examples/js/lines/LineMaterial.js +4 -11
- package/examples/js/lines/LineSegments2.js +38 -89
- package/examples/js/lines/LineSegmentsGeometry.js +7 -28
- package/examples/js/lines/Wireframe.js +2 -7
- package/examples/js/lines/WireframeGeometry2.js +3 -1
- package/examples/js/loaders/3DMLoader.js +58 -155
- package/examples/js/loaders/3MFLoader.js +72 -106
- package/examples/js/loaders/AMFLoader.js +0 -25
- package/examples/js/loaders/BVHLoader.js +44 -43
- package/examples/js/loaders/BasisTextureLoader.js +16 -46
- package/examples/js/loaders/ColladaLoader.js +201 -359
- package/examples/js/loaders/DDSLoader.js +24 -25
- package/examples/js/loaders/DRACOLoader.js +29 -66
- package/examples/js/loaders/EXRLoader.js +67 -164
- package/examples/js/loaders/FBXLoader.js +286 -441
- package/examples/js/loaders/FontLoader.js +6 -15
- package/examples/js/loaders/GCodeLoader.js +15 -16
- package/examples/js/loaders/GLTFLoader.js +354 -405
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -6
- package/examples/js/loaders/KMZLoader.js +3 -7
- package/examples/js/loaders/KTXLoader.js +12 -30
- package/examples/js/loaders/LDrawLoader.js +178 -289
- package/examples/js/loaders/LUT3dlLoader.js +7 -11
- package/examples/js/loaders/LUTCubeLoader.js +0 -8
- package/examples/js/loaders/LWOLoader.js +59 -124
- package/examples/js/loaders/LogLuvLoader.js +27 -77
- package/examples/js/loaders/LottieLoader.js +4 -4
- package/examples/js/loaders/MD2Loader.js +26 -27
- package/examples/js/loaders/MDDLoader.js +6 -10
- package/examples/js/loaders/MMDLoader.js +180 -189
- package/examples/js/loaders/MTLLoader.js +18 -47
- package/examples/js/loaders/MaterialXLoader.js +392 -0
- package/examples/js/loaders/NRRDLoader.js +44 -84
- package/examples/js/loaders/OBJLoader.js +50 -65
- package/examples/js/loaders/PCDLoader.js +34 -29
- package/examples/js/loaders/PDBLoader.js +17 -13
- package/examples/js/loaders/PLYLoader.js +9 -39
- package/examples/js/loaders/PRWMLoader.js +11 -22
- package/examples/js/loaders/PVRLoader.js +7 -16
- package/examples/js/loaders/RGBELoader.js +36 -61
- package/examples/js/loaders/RGBMLoader.js +26 -87
- package/examples/js/loaders/STLLoader.js +20 -27
- package/examples/js/loaders/SVGLoader.js +361 -233
- package/examples/js/loaders/TDSLoader.js +81 -118
- package/examples/js/loaders/TGALoader.js +39 -41
- package/examples/js/loaders/TIFFLoader.js +0 -1
- package/examples/js/loaders/TTFLoader.js +0 -8
- package/examples/js/loaders/TiltLoader.js +14 -15
- package/examples/js/loaders/VOXLoader.js +8 -16
- package/examples/js/loaders/VRMLLoader.js +243 -340
- package/examples/js/loaders/VTKLoader.js +101 -118
- package/examples/js/loaders/XYZLoader.js +2 -4
- package/examples/js/loaders/lwo/IFFParser.js +55 -136
- package/examples/js/loaders/lwo/LWO2Parser.js +32 -83
- package/examples/js/loaders/lwo/LWO3Parser.js +31 -73
- package/examples/js/materials/MeshGouraudMaterial.js +15 -13
- package/examples/js/math/Capsule.js +0 -17
- package/examples/js/math/ColorConverter.js +3 -3
- package/examples/js/math/ConvexHull.js +183 -139
- package/examples/js/math/ImprovedNoise.js +1 -1
- package/examples/js/math/Lut.js +8 -15
- package/examples/js/math/MeshSurfaceSampler.js +6 -28
- package/examples/js/math/OBB.js +90 -49
- package/examples/js/math/Octree.js +2 -57
- package/examples/js/math/SimplexNoise.js +74 -88
- package/examples/js/misc/ConvexObjectBreaker.js +37 -48
- package/examples/js/misc/GPUComputationRenderer.js +14 -18
- package/examples/js/misc/Gyroscope.js +5 -9
- package/examples/js/misc/MD2Character.js +14 -23
- package/examples/js/misc/MD2CharacterComplex.js +73 -54
- package/examples/js/misc/MorphAnimMesh.js +0 -6
- package/examples/js/misc/MorphBlendMesh.js +3 -30
- package/examples/js/misc/ProgressiveLightMap.js +47 -43
- package/examples/js/misc/RollerCoaster.js +17 -24
- package/examples/js/misc/TubePainter.js +18 -12
- package/examples/js/misc/Volume.js +16 -45
- package/examples/js/misc/VolumeSlice.js +14 -24
- package/examples/js/modifiers/CurveModifier.js +19 -21
- package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
- package/examples/js/modifiers/SimplifyModifier.js +56 -59
- package/examples/js/modifiers/TessellateModifier.js +2 -9
- package/examples/js/objects/GroundProjectedEnv.js +2 -14
- package/examples/js/objects/Lensflare.js +47 -38
- package/examples/js/objects/LightningStorm.js +10 -13
- package/examples/js/objects/MarchingCubes.js +80 -59
- package/examples/js/objects/Reflector.js +22 -20
- package/examples/js/objects/ReflectorForSSRPass.js +19 -23
- package/examples/js/objects/Refractor.js +52 -30
- package/examples/js/objects/ShadowMesh.js +1 -2
- package/examples/js/objects/Sky.js +2 -7
- package/examples/js/objects/Water.js +23 -18
- package/examples/js/objects/Water2.js +20 -19
- package/examples/js/physics/AmmoPhysics.js +23 -20
- package/examples/js/physics/OimoPhysics.js +19 -17
- package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
- package/examples/js/postprocessing/AfterimagePass.js +19 -12
- package/examples/js/postprocessing/BloomPass.js +38 -17
- package/examples/js/postprocessing/BokehPass.js +29 -12
- package/examples/js/postprocessing/ClearPass.js +1 -6
- package/examples/js/postprocessing/CubeTexturePass.js +12 -9
- package/examples/js/postprocessing/DotScreenPass.js +7 -5
- package/examples/js/postprocessing/EffectComposer.js +25 -32
- package/examples/js/postprocessing/FilmPass.js +7 -5
- package/examples/js/postprocessing/GlitchPass.js +10 -11
- package/examples/js/postprocessing/HalftonePass.js +9 -9
- package/examples/js/postprocessing/LUTPass.js +2 -15
- package/examples/js/postprocessing/MaskPass.js +20 -17
- package/examples/js/postprocessing/OutlinePass.js +45 -36
- package/examples/js/postprocessing/Pass.js +11 -14
- package/examples/js/postprocessing/RenderPass.js +3 -7
- package/examples/js/postprocessing/SAOPass.js +40 -32
- package/examples/js/postprocessing/SMAAPass.js +34 -17
- package/examples/js/postprocessing/SSAARenderPass.js +14 -14
- package/examples/js/postprocessing/SSAOPass.js +56 -42
- package/examples/js/postprocessing/SSRPass.js +78 -61
- package/examples/js/postprocessing/SavePass.js +14 -6
- package/examples/js/postprocessing/ShaderPass.js +9 -8
- package/examples/js/postprocessing/TAARenderPass.js +11 -9
- package/examples/js/postprocessing/TexturePass.js +7 -4
- package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
- package/examples/js/renderers/CSS2DRenderer.js +2 -21
- package/examples/js/renderers/CSS3DRenderer.js +3 -24
- package/examples/js/renderers/Projector.js +29 -85
- package/examples/js/renderers/SVGRenderer.js +4 -50
- package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
- package/examples/js/shaders/AfterimageShader.js +3 -6
- package/examples/js/shaders/BasicShader.js +3 -6
- package/examples/js/shaders/BleachBypassShader.js +3 -6
- package/examples/js/shaders/BlendShader.js +3 -6
- package/examples/js/shaders/BokehShader.js +3 -6
- package/examples/js/shaders/BokehShader2.js +4 -13
- package/examples/js/shaders/BrightnessContrastShader.js +3 -6
- package/examples/js/shaders/ColorCorrectionShader.js +2 -6
- package/examples/js/shaders/ColorifyShader.js +2 -6
- package/examples/js/shaders/ConvolutionShader.js +5 -10
- package/examples/js/shaders/CopyShader.js +3 -6
- package/examples/js/shaders/DOFMipMapShader.js +3 -6
- package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
- package/examples/js/shaders/DigitalGlitch.js +3 -6
- package/examples/js/shaders/DotScreenShader.js +2 -6
- package/examples/js/shaders/FXAAShader.js +1 -3
- package/examples/js/shaders/FilmShader.js +3 -6
- package/examples/js/shaders/FocusShader.js +3 -6
- package/examples/js/shaders/FreiChenShader.js +2 -6
- package/examples/js/shaders/GammaCorrectionShader.js +3 -6
- package/examples/js/shaders/GodRaysShader.js +11 -24
- package/examples/js/shaders/HalftoneShader.js +3 -6
- package/examples/js/shaders/HorizontalBlurShader.js +3 -6
- package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
- package/examples/js/shaders/HueSaturationShader.js +3 -6
- package/examples/js/shaders/KaleidoShader.js +3 -6
- package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
- package/examples/js/shaders/LuminosityShader.js +3 -6
- package/examples/js/shaders/MMDToonShader.js +2 -6
- package/examples/js/shaders/MirrorShader.js +3 -6
- package/examples/js/shaders/NormalMapShader.js +2 -6
- package/examples/js/shaders/RGBShiftShader.js +3 -6
- package/examples/js/shaders/SAOShader.js +2 -6
- package/examples/js/shaders/SMAAShader.js +6 -18
- package/examples/js/shaders/SSAOShader.js +2 -6
- package/examples/js/shaders/SSRShader.js +6 -18
- package/examples/js/shaders/SepiaShader.js +3 -6
- package/examples/js/shaders/SobelOperatorShader.js +2 -6
- package/examples/js/shaders/TechnicolorShader.js +3 -6
- package/examples/js/shaders/ToneMapShader.js +3 -6
- package/examples/js/shaders/ToonShader.js +8 -24
- package/examples/js/shaders/TriangleBlurShader.js +2 -6
- package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
- package/examples/js/shaders/VelocityShader.js +126 -0
- package/examples/js/shaders/VerticalBlurShader.js +3 -6
- package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
- package/examples/js/shaders/VignetteShader.js +3 -6
- package/examples/js/shaders/VolumeShader.js +2 -6
- package/examples/js/shaders/WaterRefractionShader.js +2 -6
- package/examples/js/textures/FlakesTexture.js +0 -1
- package/examples/js/utils/BufferGeometryUtils.js +234 -168
- package/examples/js/utils/CameraUtils.js +5 -20
- package/examples/js/utils/GPUStatsPanel.js +3 -12
- package/examples/js/utils/GeometryCompressionUtils.js +19 -44
- package/examples/js/utils/GeometryUtils.js +13 -18
- package/examples/js/utils/LDrawUtils.js +8 -11
- package/examples/js/utils/PackedPhongMaterial.js +6 -4
- package/examples/js/utils/SceneUtils.js +117 -6
- package/examples/js/utils/ShadowMapViewer.js +17 -14
- package/examples/js/utils/SkeletonUtils.js +13 -27
- package/examples/js/utils/UVsDebug.js +20 -12
- package/examples/js/utils/WorkerPool.js +1 -11
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/capabilities/WebGPU.js +3 -1
- package/examples/jsm/controls/OrbitControls.js +44 -4
- package/examples/jsm/exporters/GLTFExporter.js +17 -131
- package/examples/jsm/exporters/USDZExporter.js +75 -19
- package/examples/jsm/interactive/HTMLMesh.js +2 -0
- package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -2
- package/examples/jsm/loaders/ColladaLoader.js +28 -0
- package/examples/jsm/loaders/FBXLoader.js +16 -2
- package/examples/jsm/loaders/GLTFLoader.js +204 -377
- package/examples/jsm/loaders/KTX2Loader.js +68 -29
- package/examples/jsm/loaders/LDrawLoader.js +14 -13
- package/examples/jsm/loaders/LottieLoader.js +4 -2
- package/examples/jsm/loaders/MaterialXLoader.js +728 -0
- package/examples/jsm/loaders/PCDLoader.js +1 -1
- package/examples/jsm/loaders/PLYLoader.js +68 -16
- package/examples/jsm/loaders/SVGLoader.js +227 -14
- package/examples/jsm/loaders/USDZLoader.js +31 -16
- package/examples/jsm/nodes/Nodes.js +14 -2
- package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +6 -0
- package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/SkinningNode.js +1 -1
- package/examples/jsm/nodes/core/Node.js +1 -1
- package/examples/jsm/nodes/core/NodeBuilder.js +36 -4
- package/examples/jsm/nodes/core/NodeFrame.js +2 -2
- package/examples/jsm/nodes/core/NodeVarying.js +7 -4
- package/examples/jsm/nodes/core/VaryingNode.js +6 -4
- package/examples/jsm/nodes/core/constants.js +13 -13
- package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
- package/examples/jsm/nodes/display/ViewportNode.js +106 -0
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +3 -1
- package/examples/jsm/nodes/materials/Materials.js +9 -7
- package/examples/jsm/nodes/materials/NodeMaterial.js +9 -1
- package/examples/jsm/nodes/materialx/MaterialXNodes.js +6 -2
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
- package/examples/jsm/nodes/math/MathNode.js +5 -0
- package/examples/jsm/nodes/math/OperatorNode.js +6 -1
- package/examples/jsm/nodes/shadernode/ShaderNode.js +26 -13
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +2 -0
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +18 -0
- package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
- package/examples/jsm/nodes/utils/JoinNode.js +8 -2
- package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
- package/examples/jsm/nodes/utils/TimerNode.js +1 -1
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
- package/examples/jsm/postprocessing/BloomPass.js +22 -3
- package/examples/jsm/postprocessing/BokehPass.js +18 -4
- package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
- package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
- package/examples/jsm/postprocessing/EffectComposer.js +9 -0
- package/examples/jsm/postprocessing/FilmPass.js +8 -0
- package/examples/jsm/postprocessing/GlitchPass.js +13 -1
- package/examples/jsm/postprocessing/HalftonePass.js +8 -0
- package/examples/jsm/postprocessing/OutlinePass.js +10 -0
- package/examples/jsm/postprocessing/Pass.js +2 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
- package/examples/jsm/postprocessing/SAOPass.js +20 -0
- package/examples/jsm/postprocessing/SMAAPass.js +16 -0
- package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
- package/examples/jsm/postprocessing/SavePass.js +17 -1
- package/examples/jsm/postprocessing/ShaderPass.js +8 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
- package/examples/jsm/postprocessing/TexturePass.js +8 -0
- package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +39 -16
- package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +36 -7
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -12
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +35 -5
- package/examples/jsm/shaders/MMDToonShader.js +0 -2
- package/examples/jsm/shaders/VelocityShader.js +128 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +130 -6
- package/examples/jsm/utils/SceneUtils.js +129 -4
- package/examples/jsm/utils/TextureUtils.js +85 -0
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +6 -3
- package/package.json +11 -12
- package/src/Three.js +1 -0
- package/src/audio/AudioContext.js +5 -5
- package/src/cameras/CubeCamera.js +14 -14
- package/src/constants.js +1 -1
- package/src/core/InstancedBufferGeometry.js +1 -7
- package/src/extras/Earcut.js +67 -67
- package/src/helpers/DirectionalLightHelper.js +5 -1
- package/src/helpers/HemisphereLightHelper.js +4 -1
- package/src/helpers/PointLightHelper.js +2 -1
- package/src/helpers/SpotLightHelper.js +4 -2
- package/src/lights/PointLight.js +2 -2
- package/src/lights/SpotLight.js +2 -2
- package/src/loaders/FileLoader.js +4 -1
- package/src/loaders/ObjectLoader.js +5 -1
- package/src/materials/Material.js +1 -1
- package/src/math/Color.js +5 -5
- package/src/math/Matrix3.js +53 -18
- package/src/math/Ray.js +2 -5
- package/src/math/Sphere.js +19 -26
- package/src/objects/InstancedMesh.js +7 -0
- package/src/objects/LOD.js +25 -6
- package/src/renderers/WebGL3DRenderTarget.js +1 -1
- package/src/renderers/WebGLArrayRenderTarget.js +1 -1
- package/src/renderers/WebGLCubeRenderTarget.js +1 -1
- package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
- package/src/renderers/WebGLRenderTarget.js +1 -1
- package/src/renderers/WebGLRenderer.js +36 -62
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk.js +3 -0
- package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
- package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +20 -6
- package/src/renderers/shaders/UniformsLib.js +1 -1
- package/src/renderers/shaders/UniformsUtils.js +15 -0
- package/src/renderers/webgl/WebGLAttributes.js +2 -0
- package/src/renderers/webgl/WebGLBackground.js +15 -7
- package/src/renderers/webgl/WebGLLights.js +0 -4
- package/src/renderers/webgl/WebGLMaterials.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -1
- package/src/renderers/webgl/WebGLState.js +31 -1
- package/src/renderers/webgl/WebGLTextures.js +71 -18
- package/src/renderers/webgl/WebGLUniforms.js +116 -20
- package/src/renderers/webgl/WebGLUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +46 -13
- package/src/renderers/webxr/WebXRManager.js +85 -3
- package/src/scenes/Scene.js +8 -0
- package/src/textures/CompressedArrayTexture.js +18 -0
- package/examples/js/libs/lottie_canvas.js +0 -12751
- package/examples/js/shaders/PixelShader.js +0 -51
- package/examples/jsm/shaders/PixelShader.js +0 -44
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
( function () {
|
|
2
2
|
|
|
3
|
+
// https://github.com/mrdoob/three.js/issues/5552
|
|
3
4
|
// http://en.wikipedia.org/wiki/RGBE_image_format
|
|
4
5
|
|
|
5
6
|
class RGBELoader extends THREE.DataTextureLoader {
|
|
@@ -9,16 +10,15 @@
|
|
|
9
10
|
super( manager );
|
|
10
11
|
this.type = THREE.HalfFloatType;
|
|
11
12
|
|
|
12
|
-
}
|
|
13
|
+
}
|
|
13
14
|
|
|
15
|
+
// adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html
|
|
14
16
|
|
|
15
17
|
parse( buffer ) {
|
|
16
18
|
|
|
17
|
-
const
|
|
18
|
-
/* return codes for rgbe routines */
|
|
19
|
+
const /* return codes for rgbe routines */
|
|
19
20
|
//RGBE_RETURN_SUCCESS = 0,
|
|
20
21
|
RGBE_RETURN_FAILURE = - 1,
|
|
21
|
-
|
|
22
22
|
/* default error routine. change this to change error handling */
|
|
23
23
|
rgbe_read_error = 1,
|
|
24
24
|
rgbe_write_error = 2,
|
|
@@ -31,15 +31,12 @@
|
|
|
31
31
|
case rgbe_read_error:
|
|
32
32
|
console.error( 'THREE.RGBELoader Read Error: ' + ( msg || '' ) );
|
|
33
33
|
break;
|
|
34
|
-
|
|
35
34
|
case rgbe_write_error:
|
|
36
35
|
console.error( 'THREE.RGBELoader Write Error: ' + ( msg || '' ) );
|
|
37
36
|
break;
|
|
38
|
-
|
|
39
37
|
case rgbe_format_error:
|
|
40
38
|
console.error( 'THREE.RGBELoader Bad File Format: ' + ( msg || '' ) );
|
|
41
39
|
break;
|
|
42
|
-
|
|
43
40
|
default:
|
|
44
41
|
case rgbe_memory_error:
|
|
45
42
|
console.error( 'THREE.RGBELoader: Error: ' + ( msg || '' ) );
|
|
@@ -49,7 +46,6 @@
|
|
|
49
46
|
return RGBE_RETURN_FAILURE;
|
|
50
47
|
|
|
51
48
|
},
|
|
52
|
-
|
|
53
49
|
/* offsets to red, green, and blue components in a data (float) pixel */
|
|
54
50
|
//RGBE_DATA_RED = 0,
|
|
55
51
|
//RGBE_DATA_GREEN = 1,
|
|
@@ -72,7 +68,6 @@
|
|
|
72
68
|
len = 0,
|
|
73
69
|
s = '',
|
|
74
70
|
chunk = String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );
|
|
75
|
-
|
|
76
71
|
while ( 0 > ( i = chunk.indexOf( NEWLINE ) ) && len < lineLimit && p < buffer.byteLength ) {
|
|
77
72
|
|
|
78
73
|
s += chunk;
|
|
@@ -85,11 +80,11 @@
|
|
|
85
80
|
if ( - 1 < i ) {
|
|
86
81
|
|
|
87
82
|
/*for (i=l-1; i>=0; i--) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
byteCode = m.charCodeAt(i);
|
|
84
|
+
if (byteCode > 0x7f && byteCode <= 0x7ff) byteLen++;
|
|
85
|
+
else if (byteCode > 0x7ff && byteCode <= 0xffff) byteLen += 2;
|
|
86
|
+
if (byteCode >= 0xDC00 && byteCode <= 0xDFFF) i--; //trail surrogate
|
|
87
|
+
}*/
|
|
93
88
|
if ( false !== consume ) buffer.pos += len + i + 1;
|
|
94
89
|
return s + chunk.slice( 0, i );
|
|
95
90
|
|
|
@@ -98,7 +93,6 @@
|
|
|
98
93
|
return false;
|
|
99
94
|
|
|
100
95
|
},
|
|
101
|
-
|
|
102
96
|
/* minimal header reading. modify if you want to parse more information */
|
|
103
97
|
RGBE_ReadHeader = function ( buffer ) {
|
|
104
98
|
|
|
@@ -111,41 +105,38 @@
|
|
|
111
105
|
// RGBE format header struct
|
|
112
106
|
header = {
|
|
113
107
|
valid: 0,
|
|
114
|
-
|
|
115
108
|
/* indicate which fields are valid */
|
|
116
|
-
string: '',
|
|
117
109
|
|
|
110
|
+
string: '',
|
|
118
111
|
/* the actual header string */
|
|
119
|
-
comments: '',
|
|
120
112
|
|
|
113
|
+
comments: '',
|
|
121
114
|
/* comments found in header */
|
|
122
|
-
programtype: 'RGBE',
|
|
123
115
|
|
|
116
|
+
programtype: 'RGBE',
|
|
124
117
|
/* listed at beginning of file to identify it after "#?". defaults to "RGBE" */
|
|
125
|
-
format: '',
|
|
126
118
|
|
|
119
|
+
format: '',
|
|
127
120
|
/* RGBE format, default 32-bit_rle_rgbe */
|
|
128
|
-
gamma: 1.0,
|
|
129
121
|
|
|
122
|
+
gamma: 1.0,
|
|
130
123
|
/* image has already been gamma corrected with given gamma. defaults to 1.0 (no correction) */
|
|
131
|
-
exposure: 1.0,
|
|
132
124
|
|
|
125
|
+
exposure: 1.0,
|
|
133
126
|
/* a value of 1.0 in an image corresponds to <exposure> watts/steradian/m^2. defaults to 1.0 */
|
|
134
|
-
width: 0,
|
|
135
|
-
height: 0
|
|
136
|
-
/* image dimensions, width/height */
|
|
137
127
|
|
|
128
|
+
width: 0,
|
|
129
|
+
height: 0 /* image dimensions, width/height */
|
|
138
130
|
};
|
|
139
|
-
let line, match;
|
|
140
131
|
|
|
132
|
+
let line, match;
|
|
141
133
|
if ( buffer.pos >= buffer.byteLength || ! ( line = fgets( buffer ) ) ) {
|
|
142
134
|
|
|
143
135
|
return rgbe_error( rgbe_read_error, 'no header found' );
|
|
144
136
|
|
|
145
137
|
}
|
|
146
|
-
/* if you want to require the magic token then uncomment the next line */
|
|
147
|
-
|
|
148
138
|
|
|
139
|
+
/* if you want to require the magic token then uncomment the next line */
|
|
149
140
|
if ( ! ( match = line.match( magic_token_re ) ) ) {
|
|
150
141
|
|
|
151
142
|
return rgbe_error( rgbe_format_error, 'bad initial token' );
|
|
@@ -155,13 +146,11 @@
|
|
|
155
146
|
header.valid |= RGBE_VALID_PROGRAMTYPE;
|
|
156
147
|
header.programtype = match[ 1 ];
|
|
157
148
|
header.string += line + '\n';
|
|
158
|
-
|
|
159
149
|
while ( true ) {
|
|
160
150
|
|
|
161
151
|
line = fgets( buffer );
|
|
162
152
|
if ( false === line ) break;
|
|
163
153
|
header.string += line + '\n';
|
|
164
|
-
|
|
165
154
|
if ( '#' === line.charAt( 0 ) ) {
|
|
166
155
|
|
|
167
156
|
header.comments += line + '\n';
|
|
@@ -218,10 +207,11 @@
|
|
|
218
207
|
RGBE_ReadPixels_RLE = function ( buffer, w, h ) {
|
|
219
208
|
|
|
220
209
|
const scanline_width = w;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
scanline_width < 8 || scanline_width > 0x7fff ||
|
|
224
|
-
|
|
210
|
+
if (
|
|
211
|
+
// run length encoding is not allowed so read flat
|
|
212
|
+
scanline_width < 8 || scanline_width > 0x7fff ||
|
|
213
|
+
// this file is not run length encoded
|
|
214
|
+
2 !== buffer[ 0 ] || 2 !== buffer[ 1 ] || buffer[ 2 ] & 0x80 ) {
|
|
225
215
|
|
|
226
216
|
// return the flat buffer
|
|
227
217
|
return new Uint8Array( buffer );
|
|
@@ -235,7 +225,6 @@
|
|
|
235
225
|
}
|
|
236
226
|
|
|
237
227
|
const data_rgba = new Uint8Array( 4 * w * h );
|
|
238
|
-
|
|
239
228
|
if ( ! data_rgba.length ) {
|
|
240
229
|
|
|
241
230
|
return rgbe_error( rgbe_memory_error, 'unable to allocate buffer space' );
|
|
@@ -247,8 +236,9 @@
|
|
|
247
236
|
const ptr_end = 4 * scanline_width;
|
|
248
237
|
const rgbeStart = new Uint8Array( 4 );
|
|
249
238
|
const scanline_buffer = new Uint8Array( ptr_end );
|
|
250
|
-
let num_scanlines = h;
|
|
239
|
+
let num_scanlines = h;
|
|
251
240
|
|
|
241
|
+
// read in each successive scanline
|
|
252
242
|
while ( num_scanlines > 0 && pos < buffer.byteLength ) {
|
|
253
243
|
|
|
254
244
|
if ( pos + 4 > buffer.byteLength ) {
|
|
@@ -261,24 +251,21 @@
|
|
|
261
251
|
rgbeStart[ 1 ] = buffer[ pos ++ ];
|
|
262
252
|
rgbeStart[ 2 ] = buffer[ pos ++ ];
|
|
263
253
|
rgbeStart[ 3 ] = buffer[ pos ++ ];
|
|
264
|
-
|
|
265
254
|
if ( 2 != rgbeStart[ 0 ] || 2 != rgbeStart[ 1 ] || ( rgbeStart[ 2 ] << 8 | rgbeStart[ 3 ] ) != scanline_width ) {
|
|
266
255
|
|
|
267
256
|
return rgbe_error( rgbe_format_error, 'bad rgbe scanline format' );
|
|
268
257
|
|
|
269
|
-
}
|
|
270
|
-
// first red, then green, then blue, then exponent
|
|
271
|
-
|
|
258
|
+
}
|
|
272
259
|
|
|
260
|
+
// read each of the four channels for the scanline into the buffer
|
|
261
|
+
// first red, then green, then blue, then exponent
|
|
273
262
|
let ptr = 0,
|
|
274
263
|
count;
|
|
275
|
-
|
|
276
264
|
while ( ptr < ptr_end && pos < buffer.byteLength ) {
|
|
277
265
|
|
|
278
266
|
count = buffer[ pos ++ ];
|
|
279
267
|
const isEncodedRun = count > 128;
|
|
280
268
|
if ( isEncodedRun ) count -= 128;
|
|
281
|
-
|
|
282
269
|
if ( 0 === count || ptr + count > ptr_end ) {
|
|
283
270
|
|
|
284
271
|
return rgbe_error( rgbe_format_error, 'bad scanline data' );
|
|
@@ -289,12 +276,12 @@
|
|
|
289
276
|
|
|
290
277
|
// a (encoded) run of the same value
|
|
291
278
|
const byteValue = buffer[ pos ++ ];
|
|
292
|
-
|
|
293
279
|
for ( let i = 0; i < count; i ++ ) {
|
|
294
280
|
|
|
295
281
|
scanline_buffer[ ptr ++ ] = byteValue;
|
|
296
282
|
|
|
297
|
-
}
|
|
283
|
+
}
|
|
284
|
+
//ptr += count;
|
|
298
285
|
|
|
299
286
|
} else {
|
|
300
287
|
|
|
@@ -305,24 +292,20 @@
|
|
|
305
292
|
|
|
306
293
|
}
|
|
307
294
|
|
|
308
|
-
}
|
|
309
|
-
// first red, then green, then blue, then exponent (alpha)
|
|
310
|
-
|
|
295
|
+
}
|
|
311
296
|
|
|
297
|
+
// now convert data from buffer into rgba
|
|
298
|
+
// first red, then green, then blue, then exponent (alpha)
|
|
312
299
|
const l = scanline_width; //scanline_buffer.byteLength;
|
|
313
|
-
|
|
314
300
|
for ( let i = 0; i < l; i ++ ) {
|
|
315
301
|
|
|
316
302
|
let off = 0;
|
|
317
303
|
data_rgba[ offset ] = scanline_buffer[ i + off ];
|
|
318
304
|
off += scanline_width; //1;
|
|
319
|
-
|
|
320
305
|
data_rgba[ offset + 1 ] = scanline_buffer[ i + off ];
|
|
321
306
|
off += scanline_width; //1;
|
|
322
|
-
|
|
323
307
|
data_rgba[ offset + 2 ] = scanline_buffer[ i + off ];
|
|
324
308
|
off += scanline_width; //1;
|
|
325
|
-
|
|
326
309
|
data_rgba[ offset + 3 ] = scanline_buffer[ i + off ];
|
|
327
310
|
offset += 4;
|
|
328
311
|
|
|
@@ -350,8 +333,9 @@
|
|
|
350
333
|
const RGBEByteToRGBHalf = function ( sourceArray, sourceOffset, destArray, destOffset ) {
|
|
351
334
|
|
|
352
335
|
const e = sourceArray[ sourceOffset + 3 ];
|
|
353
|
-
const scale = Math.pow( 2.0, e - 128.0 ) / 255.0;
|
|
336
|
+
const scale = Math.pow( 2.0, e - 128.0 ) / 255.0;
|
|
354
337
|
|
|
338
|
+
// clamping to 65504, the maximum representable value in float16
|
|
355
339
|
destArray[ destOffset + 0 ] = THREE.DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 0 ] * scale, 65504 ) );
|
|
356
340
|
destArray[ destOffset + 1 ] = THREE.DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 1 ] * scale, 65504 ) );
|
|
357
341
|
destArray[ destOffset + 2 ] = THREE.DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 2 ] * scale, 65504 ) );
|
|
@@ -362,24 +346,20 @@
|
|
|
362
346
|
const byteArray = new Uint8Array( buffer );
|
|
363
347
|
byteArray.pos = 0;
|
|
364
348
|
const rgbe_header_info = RGBE_ReadHeader( byteArray );
|
|
365
|
-
|
|
366
349
|
if ( RGBE_RETURN_FAILURE !== rgbe_header_info ) {
|
|
367
350
|
|
|
368
351
|
const w = rgbe_header_info.width,
|
|
369
352
|
h = rgbe_header_info.height,
|
|
370
353
|
image_rgba_data = RGBE_ReadPixels_RLE( byteArray.subarray( byteArray.pos ), w, h );
|
|
371
|
-
|
|
372
354
|
if ( RGBE_RETURN_FAILURE !== image_rgba_data ) {
|
|
373
355
|
|
|
374
356
|
let data, type;
|
|
375
357
|
let numElements;
|
|
376
|
-
|
|
377
358
|
switch ( this.type ) {
|
|
378
359
|
|
|
379
360
|
case THREE.FloatType:
|
|
380
361
|
numElements = image_rgba_data.length / 4;
|
|
381
362
|
const floatArray = new Float32Array( numElements * 4 );
|
|
382
|
-
|
|
383
363
|
for ( let j = 0; j < numElements; j ++ ) {
|
|
384
364
|
|
|
385
365
|
RGBEByteToRGBFloat( image_rgba_data, j * 4, floatArray, j * 4 );
|
|
@@ -389,11 +369,9 @@
|
|
|
389
369
|
data = floatArray;
|
|
390
370
|
type = THREE.FloatType;
|
|
391
371
|
break;
|
|
392
|
-
|
|
393
372
|
case THREE.HalfFloatType:
|
|
394
373
|
numElements = image_rgba_data.length / 4;
|
|
395
374
|
const halfArray = new Uint16Array( numElements * 4 );
|
|
396
|
-
|
|
397
375
|
for ( let j = 0; j < numElements; j ++ ) {
|
|
398
376
|
|
|
399
377
|
RGBEByteToRGBHalf( image_rgba_data, j * 4, halfArray, j * 4 );
|
|
@@ -403,7 +381,6 @@
|
|
|
403
381
|
data = halfArray;
|
|
404
382
|
type = THREE.HalfFloatType;
|
|
405
383
|
break;
|
|
406
|
-
|
|
407
384
|
default:
|
|
408
385
|
console.error( 'THREE.RGBELoader: unsupported type: ', this.type );
|
|
409
386
|
break;
|
|
@@ -427,14 +404,12 @@
|
|
|
427
404
|
return null;
|
|
428
405
|
|
|
429
406
|
}
|
|
430
|
-
|
|
431
407
|
setDataType( value ) {
|
|
432
408
|
|
|
433
409
|
this.type = value;
|
|
434
410
|
return this;
|
|
435
411
|
|
|
436
412
|
}
|
|
437
|
-
|
|
438
413
|
load( url, onLoad, onProgress, onError ) {
|
|
439
414
|
|
|
440
415
|
function onLoadCallback( texture, texData ) {
|