@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
|
@@ -7,14 +7,12 @@
|
|
|
7
7
|
this.IFF = IFFParser;
|
|
8
8
|
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
parseBlock() {
|
|
12
11
|
|
|
13
12
|
this.IFF.debugger.offset = this.IFF.reader.offset;
|
|
14
13
|
this.IFF.debugger.closeForms();
|
|
15
14
|
const blockID = this.IFF.reader.getIDTag();
|
|
16
15
|
let length = this.IFF.reader.getUint32(); // size of data in bytes
|
|
17
|
-
|
|
18
16
|
if ( length > this.IFF.reader.dv.byteLength - this.IFF.reader.offset ) {
|
|
19
17
|
|
|
20
18
|
this.IFF.reader.offset -= 4;
|
|
@@ -23,35 +21,36 @@
|
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
this.IFF.debugger.dataOffset = this.IFF.reader.offset;
|
|
26
|
-
this.IFF.debugger.length = length;
|
|
24
|
+
this.IFF.debugger.length = length;
|
|
27
25
|
|
|
26
|
+
// Data types may be found in either LWO2 OR LWO3 spec
|
|
28
27
|
switch ( blockID ) {
|
|
29
28
|
|
|
30
29
|
case 'FORM':
|
|
31
30
|
// form blocks may consist of sub -chunks or sub-forms
|
|
32
31
|
this.IFF.parseForm( length );
|
|
33
32
|
break;
|
|
33
|
+
|
|
34
34
|
// SKIPPED CHUNKS
|
|
35
35
|
// if break; is called directly, the position in the lwoTree is not created
|
|
36
36
|
// any sub chunks and forms are added to the parent form instead
|
|
37
37
|
// MISC skipped
|
|
38
|
-
|
|
39
38
|
case 'ICON': // Thumbnail Icon Image
|
|
40
|
-
|
|
41
39
|
case 'VMPA': // Vertex Map Parameter
|
|
42
|
-
|
|
43
40
|
case 'BBOX': // bounding box
|
|
44
41
|
// case 'VMMD':
|
|
45
42
|
// case 'VTYP':
|
|
46
|
-
// normal maps can be specified, normally on models imported from other applications. Currently ignored
|
|
47
43
|
|
|
48
|
-
|
|
44
|
+
// normal maps can be specified, normally on models imported from other applications. Currently ignored
|
|
45
|
+
case 'NORM':
|
|
49
46
|
|
|
47
|
+
// ENVL FORM skipped
|
|
50
48
|
case 'PRE ':
|
|
51
49
|
case 'POST':
|
|
52
50
|
case 'KEY ':
|
|
53
|
-
case 'SPAN':
|
|
51
|
+
case 'SPAN':
|
|
54
52
|
|
|
53
|
+
// CLIP FORM skipped
|
|
55
54
|
case 'TIME':
|
|
56
55
|
case 'CLRS':
|
|
57
56
|
case 'CLRA':
|
|
@@ -64,46 +63,47 @@
|
|
|
64
63
|
case 'GAMM':
|
|
65
64
|
case 'NEGA':
|
|
66
65
|
case 'IFLT':
|
|
67
|
-
case 'PFLT':
|
|
66
|
+
case 'PFLT':
|
|
68
67
|
|
|
68
|
+
// Image Map Layer skipped
|
|
69
69
|
case 'PROJ':
|
|
70
70
|
case 'AXIS':
|
|
71
71
|
case 'AAST':
|
|
72
72
|
case 'PIXB':
|
|
73
73
|
case 'AUVO':
|
|
74
|
-
case 'STCK':
|
|
74
|
+
case 'STCK':
|
|
75
75
|
|
|
76
|
+
// Procedural Textures skipped
|
|
76
77
|
case 'PROC':
|
|
77
78
|
case 'VALU':
|
|
78
|
-
case 'FUNC':
|
|
79
|
+
case 'FUNC':
|
|
79
80
|
|
|
81
|
+
// Gradient Textures skipped
|
|
80
82
|
case 'PNAM':
|
|
81
83
|
case 'INAM':
|
|
82
84
|
case 'GRST':
|
|
83
85
|
case 'GREN':
|
|
84
86
|
case 'GRPT':
|
|
85
87
|
case 'FKEY':
|
|
86
|
-
case 'IKEY':
|
|
88
|
+
case 'IKEY':
|
|
87
89
|
|
|
88
|
-
|
|
90
|
+
// Texture Mapping Form skipped
|
|
91
|
+
case 'CSYS':
|
|
89
92
|
|
|
93
|
+
// Surface CHUNKs skipped
|
|
90
94
|
case 'OPAQ': // top level 'opacity' checkbox
|
|
91
|
-
|
|
92
95
|
case 'CMAP': // clip map
|
|
96
|
+
|
|
93
97
|
// Surface node CHUNKS skipped
|
|
94
98
|
// These mainly specify the node editor setup in LW
|
|
95
|
-
|
|
96
99
|
case 'NLOC':
|
|
97
100
|
case 'NZOM':
|
|
98
101
|
case 'NVER':
|
|
99
102
|
case 'NSRV':
|
|
100
103
|
case 'NVSK': // unknown
|
|
101
|
-
|
|
102
104
|
case 'NCRD':
|
|
103
105
|
case 'WRPW': // image wrap w ( for cylindrical and spherical projections)
|
|
104
|
-
|
|
105
106
|
case 'WRPH': // image wrap h
|
|
106
|
-
|
|
107
107
|
case 'NMOD':
|
|
108
108
|
case 'NSEL':
|
|
109
109
|
case 'NPRW':
|
|
@@ -112,8 +112,9 @@
|
|
|
112
112
|
case 'VERS':
|
|
113
113
|
case 'ENUM':
|
|
114
114
|
case 'TAG ':
|
|
115
|
-
case 'OPAC':
|
|
115
|
+
case 'OPAC':
|
|
116
116
|
|
|
117
|
+
// Car Material CHUNKS
|
|
117
118
|
case 'CGMD':
|
|
118
119
|
case 'CGTY':
|
|
119
120
|
case 'CGST':
|
|
@@ -127,7 +128,6 @@
|
|
|
127
128
|
case 'TRNL':
|
|
128
129
|
case 'GLOW':
|
|
129
130
|
case 'GVAL': // glow intensity
|
|
130
|
-
|
|
131
131
|
case 'SHRP':
|
|
132
132
|
case 'RFOP':
|
|
133
133
|
case 'RSAN':
|
|
@@ -144,34 +144,23 @@
|
|
|
144
144
|
this.IFF.debugger.skipped = true;
|
|
145
145
|
this.IFF.reader.skip( length );
|
|
146
146
|
break;
|
|
147
|
-
|
|
148
147
|
case 'SURF':
|
|
149
148
|
this.IFF.parseSurfaceLwo2( length );
|
|
150
149
|
break;
|
|
151
|
-
|
|
152
150
|
case 'CLIP':
|
|
153
151
|
this.IFF.parseClipLwo2( length );
|
|
154
152
|
break;
|
|
155
|
-
// Texture node chunks (not in spec)
|
|
156
153
|
|
|
154
|
+
// Texture node chunks (not in spec)
|
|
157
155
|
case 'IPIX': // usePixelBlending
|
|
158
|
-
|
|
159
156
|
case 'IMIP': // useMipMaps
|
|
160
|
-
|
|
161
157
|
case 'IMOD': // imageBlendingMode
|
|
162
|
-
|
|
163
158
|
case 'AMOD': // unknown
|
|
164
|
-
|
|
165
159
|
case 'IINV': // imageInvertAlpha
|
|
166
|
-
|
|
167
160
|
case 'INCR': // imageInvertColor
|
|
168
|
-
|
|
169
161
|
case 'IAXS': // imageAxis ( for non-UV maps)
|
|
170
|
-
|
|
171
162
|
case 'IFOT': // imageFallofType
|
|
172
|
-
|
|
173
163
|
case 'ITIM': // timing for animated textures
|
|
174
|
-
|
|
175
164
|
case 'IWRL':
|
|
176
165
|
case 'IUTI':
|
|
177
166
|
case 'IINX':
|
|
@@ -181,245 +170,205 @@
|
|
|
181
170
|
// possibly a VX for reused texture nodes
|
|
182
171
|
if ( length === 4 ) this.IFF.currentNode[ blockID ] = this.IFF.reader.getInt32(); else this.IFF.reader.skip( length );
|
|
183
172
|
break;
|
|
184
|
-
|
|
185
173
|
case 'OTAG':
|
|
186
174
|
this.IFF.parseObjectTag();
|
|
187
175
|
break;
|
|
188
|
-
|
|
189
176
|
case 'LAYR':
|
|
190
177
|
this.IFF.parseLayer( length );
|
|
191
178
|
break;
|
|
192
|
-
|
|
193
179
|
case 'PNTS':
|
|
194
180
|
this.IFF.parsePoints( length );
|
|
195
181
|
break;
|
|
196
|
-
|
|
197
182
|
case 'VMAP':
|
|
198
183
|
this.IFF.parseVertexMapping( length );
|
|
199
184
|
break;
|
|
200
|
-
|
|
201
185
|
case 'AUVU':
|
|
202
186
|
case 'AUVN':
|
|
203
187
|
this.IFF.reader.skip( length - 1 );
|
|
204
188
|
this.IFF.reader.getVariableLengthIndex(); // VX
|
|
205
|
-
|
|
206
189
|
break;
|
|
207
|
-
|
|
208
190
|
case 'POLS':
|
|
209
191
|
this.IFF.parsePolygonList( length );
|
|
210
192
|
break;
|
|
211
|
-
|
|
212
193
|
case 'TAGS':
|
|
213
194
|
this.IFF.parseTagStrings( length );
|
|
214
195
|
break;
|
|
215
|
-
|
|
216
196
|
case 'PTAG':
|
|
217
197
|
this.IFF.parsePolygonTagMapping( length );
|
|
218
198
|
break;
|
|
219
|
-
|
|
220
199
|
case 'VMAD':
|
|
221
200
|
this.IFF.parseVertexMapping( length, true );
|
|
222
201
|
break;
|
|
223
|
-
// Misc CHUNKS
|
|
224
202
|
|
|
203
|
+
// Misc CHUNKS
|
|
225
204
|
case 'DESC':
|
|
226
205
|
// Description Line
|
|
227
206
|
this.IFF.currentForm.description = this.IFF.reader.getString();
|
|
228
207
|
break;
|
|
229
|
-
|
|
230
208
|
case 'TEXT':
|
|
231
209
|
case 'CMNT':
|
|
232
210
|
case 'NCOM':
|
|
233
211
|
this.IFF.currentForm.comment = this.IFF.reader.getString();
|
|
234
212
|
break;
|
|
235
|
-
// Envelope Form
|
|
236
213
|
|
|
214
|
+
// Envelope Form
|
|
237
215
|
case 'NAME':
|
|
238
216
|
this.IFF.currentForm.channelName = this.IFF.reader.getString();
|
|
239
217
|
break;
|
|
240
|
-
// Image Map Layer
|
|
241
218
|
|
|
219
|
+
// Image Map Layer
|
|
242
220
|
case 'WRAP':
|
|
243
221
|
this.IFF.currentForm.wrap = {
|
|
244
222
|
w: this.IFF.reader.getUint16(),
|
|
245
223
|
h: this.IFF.reader.getUint16()
|
|
246
224
|
};
|
|
247
225
|
break;
|
|
248
|
-
|
|
249
226
|
case 'IMAG':
|
|
250
227
|
const index = this.IFF.reader.getVariableLengthIndex();
|
|
251
228
|
this.IFF.currentForm.imageIndex = index;
|
|
252
229
|
break;
|
|
253
|
-
// Texture Mapping Form
|
|
254
230
|
|
|
231
|
+
// Texture Mapping Form
|
|
255
232
|
case 'OREF':
|
|
256
233
|
this.IFF.currentForm.referenceObject = this.IFF.reader.getString();
|
|
257
234
|
break;
|
|
258
|
-
|
|
259
235
|
case 'ROID':
|
|
260
236
|
this.IFF.currentForm.referenceObjectID = this.IFF.reader.getUint32();
|
|
261
237
|
break;
|
|
262
|
-
// Surface Blocks
|
|
263
238
|
|
|
239
|
+
// Surface Blocks
|
|
264
240
|
case 'SSHN':
|
|
265
241
|
this.IFF.currentSurface.surfaceShaderName = this.IFF.reader.getString();
|
|
266
242
|
break;
|
|
267
|
-
|
|
268
243
|
case 'AOVN':
|
|
269
244
|
this.IFF.currentSurface.surfaceCustomAOVName = this.IFF.reader.getString();
|
|
270
245
|
break;
|
|
271
|
-
// Nodal Blocks
|
|
272
246
|
|
|
247
|
+
// Nodal Blocks
|
|
273
248
|
case 'NSTA':
|
|
274
249
|
this.IFF.currentForm.disabled = this.IFF.reader.getUint16();
|
|
275
250
|
break;
|
|
276
|
-
|
|
277
251
|
case 'NRNM':
|
|
278
252
|
this.IFF.currentForm.realName = this.IFF.reader.getString();
|
|
279
253
|
break;
|
|
280
|
-
|
|
281
254
|
case 'NNME':
|
|
282
255
|
this.IFF.currentForm.refName = this.IFF.reader.getString();
|
|
283
256
|
this.IFF.currentSurface.nodes[ this.IFF.currentForm.refName ] = this.IFF.currentForm;
|
|
284
257
|
break;
|
|
285
|
-
// Nodal Blocks : connections
|
|
286
258
|
|
|
259
|
+
// Nodal Blocks : connections
|
|
287
260
|
case 'INME':
|
|
288
261
|
if ( ! this.IFF.currentForm.nodeName ) this.IFF.currentForm.nodeName = [];
|
|
289
262
|
this.IFF.currentForm.nodeName.push( this.IFF.reader.getString() );
|
|
290
263
|
break;
|
|
291
|
-
|
|
292
264
|
case 'IINN':
|
|
293
265
|
if ( ! this.IFF.currentForm.inputNodeName ) this.IFF.currentForm.inputNodeName = [];
|
|
294
266
|
this.IFF.currentForm.inputNodeName.push( this.IFF.reader.getString() );
|
|
295
267
|
break;
|
|
296
|
-
|
|
297
268
|
case 'IINM':
|
|
298
269
|
if ( ! this.IFF.currentForm.inputName ) this.IFF.currentForm.inputName = [];
|
|
299
270
|
this.IFF.currentForm.inputName.push( this.IFF.reader.getString() );
|
|
300
271
|
break;
|
|
301
|
-
|
|
302
272
|
case 'IONM':
|
|
303
273
|
if ( ! this.IFF.currentForm.inputOutputName ) this.IFF.currentForm.inputOutputName = [];
|
|
304
274
|
this.IFF.currentForm.inputOutputName.push( this.IFF.reader.getString() );
|
|
305
275
|
break;
|
|
306
|
-
|
|
307
276
|
case 'FNAM':
|
|
308
277
|
this.IFF.currentForm.fileName = this.IFF.reader.getString();
|
|
309
278
|
break;
|
|
310
|
-
|
|
311
279
|
case 'CHAN':
|
|
312
280
|
// NOTE: ENVL Forms may also have CHAN chunk, however ENVL is currently ignored
|
|
313
281
|
if ( length === 4 ) this.IFF.currentForm.textureChannel = this.IFF.reader.getIDTag(); else this.IFF.reader.skip( length );
|
|
314
282
|
break;
|
|
315
|
-
// LWO2 Spec chunks: these are needed since the SURF FORMs are often in LWO2 format
|
|
316
283
|
|
|
284
|
+
// LWO2 Spec chunks: these are needed since the SURF FORMs are often in LWO2 format
|
|
317
285
|
case 'SMAN':
|
|
318
286
|
const maxSmoothingAngle = this.IFF.reader.getFloat32();
|
|
319
287
|
this.IFF.currentSurface.attributes.smooth = maxSmoothingAngle < 0 ? false : true;
|
|
320
288
|
break;
|
|
321
|
-
// LWO2: Basic Surface Parameters
|
|
322
289
|
|
|
290
|
+
// LWO2: Basic Surface Parameters
|
|
323
291
|
case 'COLR':
|
|
324
292
|
this.IFF.currentSurface.attributes.Color = {
|
|
325
293
|
value: this.IFF.reader.getFloat32Array( 3 )
|
|
326
294
|
};
|
|
327
295
|
this.IFF.reader.skip( 2 ); // VX: envelope
|
|
328
|
-
|
|
329
296
|
break;
|
|
330
|
-
|
|
331
297
|
case 'LUMI':
|
|
332
298
|
this.IFF.currentSurface.attributes.Luminosity = {
|
|
333
299
|
value: this.IFF.reader.getFloat32()
|
|
334
300
|
};
|
|
335
301
|
this.IFF.reader.skip( 2 );
|
|
336
302
|
break;
|
|
337
|
-
|
|
338
303
|
case 'SPEC':
|
|
339
304
|
this.IFF.currentSurface.attributes.Specular = {
|
|
340
305
|
value: this.IFF.reader.getFloat32()
|
|
341
306
|
};
|
|
342
307
|
this.IFF.reader.skip( 2 );
|
|
343
308
|
break;
|
|
344
|
-
|
|
345
309
|
case 'DIFF':
|
|
346
310
|
this.IFF.currentSurface.attributes.Diffuse = {
|
|
347
311
|
value: this.IFF.reader.getFloat32()
|
|
348
312
|
};
|
|
349
313
|
this.IFF.reader.skip( 2 );
|
|
350
314
|
break;
|
|
351
|
-
|
|
352
315
|
case 'REFL':
|
|
353
316
|
this.IFF.currentSurface.attributes.Reflection = {
|
|
354
317
|
value: this.IFF.reader.getFloat32()
|
|
355
318
|
};
|
|
356
319
|
this.IFF.reader.skip( 2 );
|
|
357
320
|
break;
|
|
358
|
-
|
|
359
321
|
case 'GLOS':
|
|
360
322
|
this.IFF.currentSurface.attributes.Glossiness = {
|
|
361
323
|
value: this.IFF.reader.getFloat32()
|
|
362
324
|
};
|
|
363
325
|
this.IFF.reader.skip( 2 );
|
|
364
326
|
break;
|
|
365
|
-
|
|
366
327
|
case 'TRAN':
|
|
367
328
|
this.IFF.currentSurface.attributes.opacity = this.IFF.reader.getFloat32();
|
|
368
329
|
this.IFF.reader.skip( 2 );
|
|
369
330
|
break;
|
|
370
|
-
|
|
371
331
|
case 'BUMP':
|
|
372
332
|
this.IFF.currentSurface.attributes.bumpStrength = this.IFF.reader.getFloat32();
|
|
373
333
|
this.IFF.reader.skip( 2 );
|
|
374
334
|
break;
|
|
375
|
-
|
|
376
335
|
case 'SIDE':
|
|
377
336
|
this.IFF.currentSurface.attributes.side = this.IFF.reader.getUint16();
|
|
378
337
|
break;
|
|
379
|
-
|
|
380
338
|
case 'RIMG':
|
|
381
339
|
this.IFF.currentSurface.attributes.reflectionMap = this.IFF.reader.getVariableLengthIndex();
|
|
382
340
|
break;
|
|
383
|
-
|
|
384
341
|
case 'RIND':
|
|
385
342
|
this.IFF.currentSurface.attributes.refractiveIndex = this.IFF.reader.getFloat32();
|
|
386
343
|
this.IFF.reader.skip( 2 );
|
|
387
344
|
break;
|
|
388
|
-
|
|
389
345
|
case 'TIMG':
|
|
390
346
|
this.IFF.currentSurface.attributes.refractionMap = this.IFF.reader.getVariableLengthIndex();
|
|
391
347
|
break;
|
|
392
|
-
|
|
393
348
|
case 'IMAP':
|
|
394
349
|
this.IFF.reader.skip( 2 );
|
|
395
350
|
break;
|
|
396
|
-
|
|
397
351
|
case 'TMAP':
|
|
398
352
|
this.IFF.debugger.skipped = true;
|
|
399
353
|
this.IFF.reader.skip( length ); // needs implementing
|
|
400
|
-
|
|
401
354
|
break;
|
|
402
|
-
|
|
403
355
|
case 'IUVI':
|
|
404
356
|
// uv channel name
|
|
405
357
|
this.IFF.currentNode.UVChannel = this.IFF.reader.getString( length );
|
|
406
358
|
break;
|
|
407
|
-
|
|
408
359
|
case 'IUTL':
|
|
409
360
|
// widthWrappingMode: 0 = Reset, 1 = Repeat, 2 = Mirror, 3 = Edge
|
|
410
361
|
this.IFF.currentNode.widthWrappingMode = this.IFF.reader.getUint32();
|
|
411
362
|
break;
|
|
412
|
-
|
|
413
363
|
case 'IVTL':
|
|
414
364
|
// heightWrappingMode
|
|
415
365
|
this.IFF.currentNode.heightWrappingMode = this.IFF.reader.getUint32();
|
|
416
366
|
break;
|
|
417
|
-
// LWO2 USE
|
|
418
367
|
|
|
368
|
+
// LWO2 USE
|
|
419
369
|
case 'BLOK':
|
|
420
370
|
// skip
|
|
421
371
|
break;
|
|
422
|
-
|
|
423
372
|
default:
|
|
424
373
|
this.IFF.parseUnknownCHUNK( blockID, length );
|
|
425
374
|
|