super-three 0.141.0 → 0.147.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/build/three.cjs +2441 -1569
- package/build/three.js +2441 -1569
- package/build/three.min.js +1 -1
- package/build/three.module.js +2847 -1576
- package/examples/js/animation/AnimationClipCreator.js +0 -8
- package/examples/js/animation/CCDIKSolver.js +50 -67
- package/examples/js/animation/MMDAnimationHelper.js +66 -137
- package/examples/js/animation/MMDPhysics.js +71 -150
- package/examples/js/cameras/CinematicCamera.js +33 -22
- package/examples/js/controls/ArcballControls.js +149 -403
- package/examples/js/controls/DragControls.js +8 -33
- package/examples/js/controls/FirstPersonControls.js +32 -61
- package/examples/js/controls/FlyControls.js +29 -63
- package/examples/js/controls/OrbitControls.js +125 -103
- package/examples/js/controls/PointerLockControls.js +5 -22
- package/examples/js/controls/TrackballControls.js +33 -88
- package/examples/js/controls/TransformControls.js +101 -182
- 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 +6 -20
- package/examples/js/effects/AsciiEffect.js +32 -31
- package/examples/js/effects/OutlineEffect.js +30 -54
- package/examples/js/effects/ParallaxBarrierEffect.js +2 -15
- package/examples/js/effects/PeppersGhostEffect.js +14 -41
- package/examples/js/effects/StereoEffect.js +2 -6
- package/examples/js/environments/RoomEnvironment.js +32 -8
- package/examples/js/exporters/ColladaExporter.js +52 -78
- package/examples/js/exporters/DRACOExporter.js +22 -34
- package/examples/js/exporters/EXRExporter.js +15 -18
- package/examples/js/exporters/GLTFExporter.js +168 -345
- package/examples/js/exporters/MMDExporter.js +5 -12
- package/examples/js/exporters/OBJExporter.js +40 -52
- package/examples/js/exporters/PLYExporter.js +50 -57
- package/examples/js/exporters/STLExporter.js +5 -14
- package/examples/js/exporters/USDZExporter.js +119 -27
- package/examples/js/geometries/BoxLineGeometry.js +0 -1
- package/examples/js/geometries/ConvexGeometry.js +12 -7
- 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 +23 -17
- 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 +25 -39
- package/examples/js/interactive/InteractiveGroup.js +9 -14
- package/examples/js/interactive/SelectionBox.js +3 -70
- package/examples/js/interactive/SelectionHelper.js +2 -8
- package/examples/js/libs/ktx-parse.umd.js +1 -0
- package/examples/js/libs/meshopt_decoder.js +98 -32
- 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 +40 -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 +229 -359
- package/examples/js/loaders/DDSLoader.js +24 -25
- package/examples/js/loaders/DRACOLoader.js +30 -90
- package/examples/js/loaders/EXRLoader.js +69 -177
- package/examples/js/loaders/FBXLoader.js +294 -441
- package/examples/js/loaders/FontLoader.js +9 -31
- package/examples/js/loaders/GCodeLoader.js +15 -16
- package/examples/js/loaders/GLTFLoader.js +458 -739
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -17
- package/examples/js/loaders/KMZLoader.js +3 -7
- package/examples/js/loaders/KTXLoader.js +12 -30
- package/examples/js/loaders/LDrawLoader.js +309 -355
- 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/NRRDLoader.js +44 -84
- package/examples/js/loaders/OBJLoader.js +56 -77
- package/examples/js/loaders/PCDLoader.js +92 -42
- package/examples/js/loaders/PDBLoader.js +17 -13
- package/examples/js/loaders/PLYLoader.js +65 -51
- 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 +365 -236
- package/examples/js/loaders/TDSLoader.js +81 -118
- package/examples/js/loaders/TGALoader.js +39 -41
- package/examples/js/loaders/TIFFLoader.js +30 -0
- 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 +266 -354
- package/examples/js/loaders/VTKLoader.js +102 -119
- package/examples/js/loaders/XYZLoader.js +2 -4
- package/examples/js/loaders/lwo/IFFParser.js +55 -136
- package/examples/js/loaders/lwo/LWO2Parser.js +39 -89
- package/examples/js/loaders/lwo/LWO3Parser.js +38 -79
- package/examples/js/materials/MeshGouraudMaterial.js +387 -0
- package/examples/js/math/Capsule.js +0 -17
- package/examples/js/math/ColorConverter.js +3 -53
- package/examples/js/math/ConvexHull.js +185 -141
- 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 +47 -14
- 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 +173 -194
- package/examples/js/misc/VolumeSlice.js +91 -99
- package/examples/js/modifiers/CurveModifier.js +19 -21
- package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
- package/examples/js/modifiers/SimplifyModifier.js +57 -60
- package/examples/js/modifiers/TessellateModifier.js +2 -9
- package/examples/js/objects/GroundProjectedEnv.js +181 -0
- 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 +31 -22
- package/examples/js/objects/ReflectorForSSRPass.js +20 -25
- package/examples/js/objects/Refractor.js +61 -33
- package/examples/js/objects/ShadowMesh.js +6 -3
- 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 +49 -38
- package/examples/js/postprocessing/Pass.js +11 -14
- package/examples/js/postprocessing/RenderPass.js +3 -7
- package/examples/js/postprocessing/RenderPixelatedPass.js +215 -0
- 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 +4 -23
- package/examples/js/renderers/CSS3DRenderer.js +5 -26
- package/examples/js/renderers/Projector.js +31 -108
- 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 +4 -7
- package/examples/js/shaders/MMDToonShader.js +2 -4
- 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 +4 -7
- 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 +237 -171
- 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 +15 -36
- package/examples/js/utils/LDrawUtils.js +8 -11
- package/examples/js/utils/PackedPhongMaterial.js +6 -4
- package/examples/js/utils/SceneUtils.js +109 -14
- 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 +27 -3
- package/examples/jsm/animation/MMDPhysics.js +28 -22
- package/examples/jsm/capabilities/WebGPU.js +3 -1
- package/examples/jsm/controls/ArcballControls.js +17 -2
- package/examples/jsm/controls/FirstPersonControls.js +20 -27
- package/examples/jsm/controls/FlyControls.js +16 -24
- package/examples/jsm/controls/OrbitControls.js +44 -9
- package/examples/jsm/controls/PointerLockControls.js +0 -7
- package/examples/jsm/controls/TrackballControls.js +14 -5
- package/examples/jsm/controls/TransformControls.js +18 -16
- package/examples/jsm/csm/CSM.js +1 -0
- package/examples/jsm/csm/CSMHelper.js +30 -0
- package/examples/jsm/effects/AnaglyphEffect.js +2 -2
- package/examples/jsm/effects/OutlineEffect.js +4 -25
- package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
- package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
- package/examples/jsm/effects/StereoEffect.js +2 -2
- package/examples/jsm/environments/RoomEnvironment.js +23 -0
- package/examples/jsm/exporters/ColladaExporter.js +4 -13
- package/examples/jsm/exporters/DRACOExporter.js +0 -13
- package/examples/jsm/exporters/GLTFExporter.js +29 -110
- package/examples/jsm/exporters/KTX2Exporter.js +29 -29
- package/examples/jsm/exporters/OBJExporter.js +0 -18
- package/examples/jsm/exporters/PLYExporter.js +14 -22
- package/examples/jsm/exporters/STLExporter.js +1 -9
- package/examples/jsm/exporters/USDZExporter.js +107 -4
- package/examples/jsm/geometries/ConvexGeometry.js +1 -1
- package/examples/jsm/geometries/ParametricGeometry.js +0 -6
- package/examples/jsm/helpers/OctreeHelper.js +22 -8
- package/examples/jsm/helpers/VertexNormalsHelper.js +7 -1
- package/examples/jsm/helpers/VertexTangentsHelper.js +7 -0
- package/examples/jsm/helpers/ViewHelper.js +24 -0
- package/examples/jsm/interactive/HTMLMesh.js +14 -15
- package/examples/jsm/interactive/InteractiveGroup.js +4 -2
- package/examples/jsm/interactive/SelectionHelper.js +5 -3
- package/examples/jsm/libs/flow.module.js +610 -160
- package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
- package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
- package/examples/jsm/libs/utif.module.js +1579 -0
- package/examples/jsm/libs/zstddec.module.js +1 -0
- package/examples/jsm/lines/LineSegments2.js +4 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -2
- package/examples/jsm/loaders/ColladaLoader.js +29 -0
- package/examples/jsm/loaders/DRACOLoader.js +2 -28
- package/examples/jsm/loaders/EXRLoader.js +3 -13
- package/examples/jsm/loaders/FBXLoader.js +26 -3
- package/examples/jsm/loaders/FontLoader.js +3 -16
- package/examples/jsm/loaders/GLTFLoader.js +321 -464
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
- package/examples/jsm/loaders/KTX2Loader.js +254 -53
- package/examples/jsm/loaders/LDrawLoader.js +149 -87
- package/examples/jsm/loaders/LottieLoader.js +4 -2
- package/examples/jsm/loaders/MaterialXLoader.js +728 -0
- package/examples/jsm/loaders/OBJLoader.js +6 -14
- package/examples/jsm/loaders/PCDLoader.js +60 -14
- package/examples/jsm/loaders/PLYLoader.js +71 -19
- package/examples/jsm/loaders/RGBELoader.js +1 -1
- package/examples/jsm/loaders/SVGLoader.js +231 -17
- package/examples/jsm/loaders/TIFFLoader.js +36 -0
- package/examples/jsm/loaders/USDZLoader.js +633 -0
- package/examples/jsm/loaders/VRMLLoader.js +36 -26
- package/examples/jsm/loaders/VTKLoader.js +1 -1
- package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
- package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
- package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
- package/examples/jsm/math/ColorConverter.js +1 -49
- package/examples/jsm/math/ConvexHull.js +4 -4
- package/examples/jsm/math/Octree.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
- package/examples/jsm/misc/Volume.js +169 -171
- package/examples/jsm/misc/VolumeSlice.js +78 -80
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/node-editor/NodeEditor.js +91 -12
- package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
- package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
- package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
- package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
- package/examples/jsm/node-editor/core/BaseNode.js +10 -3
- package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
- package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
- package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +7 -10
- package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +7 -10
- package/examples/jsm/node-editor/math/AngleEditor.js +4 -4
- package/examples/jsm/node-editor/math/DotEditor.js +1 -1
- package/examples/jsm/node-editor/math/InvertEditor.js +3 -3
- package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
- package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
- package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
- package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
- package/examples/jsm/node-editor/scene/MeshEditor.js +11 -8
- package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
- package/examples/jsm/node-editor/utils/PreviewEditor.js +7 -3
- package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
- package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
- package/examples/jsm/nodes/Nodes.js +70 -13
- package/examples/jsm/nodes/accessors/BitangentNode.js +62 -0
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
- package/examples/jsm/nodes/accessors/NormalNode.js +8 -8
- package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +11 -5
- package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
- package/examples/jsm/nodes/accessors/SkinningNode.js +8 -1
- package/examples/jsm/nodes/accessors/TangentNode.js +95 -0
- package/examples/jsm/nodes/core/AttributeNode.js +32 -9
- package/examples/jsm/nodes/core/CodeNode.js +3 -3
- package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
- package/examples/jsm/nodes/core/FunctionNode.js +2 -2
- package/examples/jsm/nodes/core/Node.js +15 -13
- package/examples/jsm/nodes/core/NodeBuilder.js +67 -18
- package/examples/jsm/nodes/core/NodeFrame.js +2 -2
- package/examples/jsm/nodes/core/NodeUtils.js +23 -1
- package/examples/jsm/nodes/core/NodeVarying.js +17 -0
- package/examples/jsm/nodes/core/VaryingNode.js +56 -0
- package/examples/jsm/nodes/core/constants.js +13 -13
- package/examples/jsm/nodes/display/BlendModeNode.js +85 -0
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +84 -0
- package/examples/jsm/nodes/display/NormalMapNode.js +19 -12
- package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
- package/examples/jsm/nodes/display/ViewportNode.js +106 -0
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +5 -5
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +3 -3
- package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +2 -2
- package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +3 -1
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
- package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
- package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +33 -0
- package/examples/jsm/nodes/materials/Materials.js +21 -31
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
- package/examples/jsm/nodes/materials/NodeMaterial.js +11 -3
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
- package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -0
- package/examples/jsm/nodes/materialx/MaterialXNodes.js +59 -0
- package/examples/jsm/nodes/materialx/lib/mx_hsv.js +56 -0
- package/examples/jsm/nodes/materialx/lib/mx_noise.js +617 -0
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
- package/examples/jsm/nodes/math/MathNode.js +7 -17
- package/examples/jsm/nodes/math/OperatorNode.js +16 -3
- package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
- package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
- package/examples/jsm/nodes/shadernode/ShaderNode.js +40 -25
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +95 -68
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +49 -6
- package/examples/jsm/nodes/utils/ConvertNode.js +18 -12
- package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
- package/examples/jsm/nodes/utils/JoinNode.js +15 -9
- package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +3 -2
- package/examples/jsm/nodes/utils/OscNode.js +2 -2
- package/examples/jsm/nodes/utils/RemapNode.js +34 -0
- package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
- package/examples/jsm/nodes/utils/SplitNode.js +21 -5
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
- package/examples/jsm/nodes/utils/TimerNode.js +23 -3
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
- package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
- package/examples/jsm/objects/Reflector.js +12 -5
- package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
- package/examples/jsm/objects/Refractor.js +12 -6
- package/examples/jsm/objects/ShadowMesh.js +8 -2
- 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 +25 -3
- 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/CSS2DRenderer.js +2 -2
- package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
- package/examples/jsm/renderers/Projector.js +2 -24
- package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +363 -231
- package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
- 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 +68 -3
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
- package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
- package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +113 -93
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +63 -36
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
- package/examples/jsm/shaders/LuminosityShader.js +1 -1
- package/examples/jsm/shaders/MMDToonShader.js +2 -4
- package/examples/jsm/shaders/ToneMapShader.js +1 -1
- package/examples/jsm/shaders/VelocityShader.js +128 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +176 -43
- package/examples/jsm/utils/GeometryUtils.js +17 -25
- package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
- package/examples/jsm/utils/SceneUtils.js +117 -12
- package/examples/jsm/webxr/OculusHandModel.js +3 -2
- package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
- package/examples/jsm/webxr/VRButton.js +1 -7
- package/examples/jsm/webxr/XRHandMeshModel.js +8 -3
- package/package.json +22 -18
- package/src/Three.Legacy.js +262 -36
- package/src/Three.js +4 -2
- package/src/animation/AnimationAction.js +6 -5
- package/src/animation/AnimationClip.js +1 -1
- package/src/animation/AnimationMixer.js +1 -1
- package/src/animation/AnimationUtils.js +204 -199
- package/src/animation/KeyframeTrack.js +1 -1
- package/src/animation/PropertyBinding.js +31 -5
- package/src/audio/AudioContext.js +5 -5
- package/src/cameras/CubeCamera.js +14 -21
- package/src/constants.js +2 -4
- package/src/core/BufferAttribute.js +81 -111
- package/src/core/BufferGeometry.js +3 -41
- package/src/core/InstancedBufferAttribute.js +0 -10
- package/src/core/InstancedBufferGeometry.js +1 -7
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +57 -8
- package/src/core/Object3D.js +22 -5
- package/src/core/Uniform.js +0 -7
- package/src/core/UniformsGroup.js +92 -0
- package/src/extras/DataUtils.js +104 -88
- package/src/extras/Earcut.js +67 -67
- package/src/extras/core/Path.js +1 -0
- package/src/extras/core/ShapePath.js +1 -4
- package/src/extras/curves/CatmullRomCurve3.js +4 -2
- package/src/geometries/BoxGeometry.js +1 -1
- package/src/geometries/CapsuleGeometry.js +1 -1
- package/src/geometries/CircleGeometry.js +1 -1
- package/src/geometries/ConeGeometry.js +1 -1
- package/src/geometries/CylinderGeometry.js +2 -1
- package/src/geometries/DodecahedronGeometry.js +1 -1
- package/src/geometries/EdgesGeometry.js +5 -4
- package/src/geometries/ExtrudeGeometry.js +2 -11
- package/src/geometries/IcosahedronGeometry.js +1 -1
- package/src/geometries/LatheGeometry.js +2 -2
- package/src/geometries/OctahedronGeometry.js +1 -1
- package/src/geometries/PlaneGeometry.js +2 -1
- package/src/geometries/PolyhedronGeometry.js +2 -2
- package/src/geometries/RingGeometry.js +1 -1
- package/src/geometries/ShapeGeometry.js +3 -2
- package/src/geometries/SphereGeometry.js +2 -1
- package/src/geometries/TetrahedronGeometry.js +1 -1
- package/src/geometries/TorusGeometry.js +2 -1
- package/src/geometries/TorusKnotGeometry.js +2 -1
- package/src/geometries/TubeGeometry.js +2 -1
- package/src/geometries/WireframeGeometry.js +1 -0
- package/src/helpers/ArrowHelper.js +9 -0
- package/src/helpers/Box3Helper.js +7 -0
- package/src/helpers/BoxHelper.js +7 -1
- package/src/helpers/CameraHelper.js +97 -38
- package/src/helpers/DirectionalLightHelper.js +6 -1
- package/src/helpers/GridHelper.js +7 -0
- package/src/helpers/HemisphereLightHelper.js +5 -1
- package/src/helpers/PlaneHelper.js +15 -9
- package/src/helpers/PointLightHelper.js +2 -1
- package/src/helpers/PolarGridHelper.js +25 -14
- package/src/helpers/SkeletonHelper.js +7 -0
- package/src/helpers/SpotLightHelper.js +5 -2
- package/src/lights/LightShadow.js +1 -2
- package/src/lights/PointLight.js +2 -2
- package/src/lights/SpotLight.js +4 -2
- package/src/loaders/FileLoader.js +16 -2
- package/src/loaders/LoadingManager.js +1 -1
- package/src/loaders/MaterialLoader.js +49 -7
- package/src/loaders/ObjectLoader.js +9 -42
- package/src/materials/Material.js +2 -34
- package/src/materials/Materials.js +0 -27
- package/src/materials/MeshLambertMaterial.js +28 -1
- package/src/materials/MeshPhysicalMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +3 -7
- package/src/math/Color.js +8 -18
- package/src/math/MathUtils.js +1 -7
- package/src/math/Matrix3.js +54 -25
- package/src/math/Matrix4.js +3 -27
- package/src/math/Quaternion.js +1 -21
- package/src/math/Ray.js +2 -5
- package/src/math/Sphere.js +36 -21
- package/src/math/Vector2.js +4 -24
- package/src/math/Vector3.js +7 -46
- package/src/math/Vector4.js +4 -24
- 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 +119 -69
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
- package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
- package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -13
- package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
- package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -0
- package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
- package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -4
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
- package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk.js +7 -2
- 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/meshbasic.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +0 -3
- package/src/renderers/shaders/ShaderLib.js +50 -36
- package/src/renderers/shaders/UniformsLib.js +13 -12
- package/src/renderers/shaders/UniformsUtils.js +29 -0
- package/src/renderers/webgl/WebGLAttributes.js +2 -0
- package/src/renderers/webgl/WebGLBackground.js +17 -9
- package/src/renderers/webgl/WebGLLights.js +37 -17
- package/src/renderers/webgl/WebGLMaterials.js +2 -1
- package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
- package/src/renderers/webgl/WebGLProgram.js +6 -11
- package/src/renderers/webgl/WebGLPrograms.js +30 -26
- package/src/renderers/webgl/WebGLRenderLists.js +5 -4
- package/src/renderers/webgl/WebGLRenderStates.js +5 -4
- package/src/renderers/webgl/WebGLShaderCache.js +9 -6
- package/src/renderers/webgl/WebGLShadowMap.js +13 -16
- package/src/renderers/webgl/WebGLState.js +125 -41
- package/src/renderers/webgl/WebGLTextures.js +94 -39
- package/src/renderers/webgl/WebGLUniforms.js +156 -28
- package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
- package/src/renderers/webgl/WebGLUtils.js +3 -1
- package/src/renderers/webvr/WebVRManager.js +42 -9
- package/src/renderers/webvr/WebVRUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +91 -50
- package/src/renderers/webxr/WebXRManager.js +127 -34
- package/src/scenes/Scene.js +24 -3
- package/src/textures/CompressedArrayTexture.js +18 -0
- package/src/textures/Source.js +1 -1
- package/src/textures/Texture.js +2 -1
- package/src/utils.js +1 -1
- package/examples/js/controls/experimental/CameraControls.js +0 -1048
- package/examples/js/libs/lottie_canvas.js +0 -12751
- package/examples/js/loaders/KTX2Loader.js +0 -558
- package/examples/js/shaders/PixelShader.js +0 -51
- package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
- package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
- package/examples/jsm/nodes/core/NodeVary.js +0 -14
- package/examples/jsm/nodes/core/VaryNode.js +0 -54
- package/examples/jsm/package.json +0 -3
- package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
- package/examples/jsm/shaders/PixelShader.js +0 -44
- package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
super( manager );
|
|
8
8
|
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
parse( buffer, loadMipmaps ) {
|
|
12
11
|
|
|
13
12
|
const dds = {
|
|
@@ -16,19 +15,25 @@
|
|
|
16
15
|
height: 0,
|
|
17
16
|
format: null,
|
|
18
17
|
mipmapCount: 1
|
|
19
|
-
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// Adapted from @toji's DDS utils
|
|
20
21
|
// https://github.com/toji/webgl-texture-utils/blob/master/texture-util/dds.js
|
|
22
|
+
|
|
21
23
|
// All values and structures referenced from:
|
|
22
24
|
// http://msdn.microsoft.com/en-us/library/bb943991.aspx/
|
|
23
25
|
|
|
24
|
-
const DDS_MAGIC = 0x20534444;
|
|
26
|
+
const DDS_MAGIC = 0x20534444;
|
|
27
|
+
|
|
28
|
+
// const DDSD_CAPS = 0x1;
|
|
25
29
|
// const DDSD_HEIGHT = 0x2;
|
|
26
30
|
// const DDSD_WIDTH = 0x4;
|
|
27
31
|
// const DDSD_PITCH = 0x8;
|
|
28
32
|
// const DDSD_PIXELFORMAT = 0x1000;
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
const DDSD_MIPMAPCOUNT = 0x20000;
|
|
34
|
+
// const DDSD_LINEARSIZE = 0x80000;
|
|
31
35
|
// const DDSD_DEPTH = 0x800000;
|
|
36
|
+
|
|
32
37
|
// const DDSCAPS_COMPLEX = 0x8;
|
|
33
38
|
// const DDSCAPS_MIPMAP = 0x400000;
|
|
34
39
|
// const DDSCAPS_TEXTURE = 0x1000;
|
|
@@ -39,7 +44,9 @@
|
|
|
39
44
|
const DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000;
|
|
40
45
|
const DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000;
|
|
41
46
|
const DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000;
|
|
42
|
-
const DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000;
|
|
47
|
+
const DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000;
|
|
48
|
+
// const DDSCAPS2_VOLUME = 0x200000;
|
|
49
|
+
|
|
43
50
|
// const DDPF_ALPHAPIXELS = 0x1;
|
|
44
51
|
// const DDPF_ALPHA = 0x2;
|
|
45
52
|
// const DDPF_FOURCC = 0x4;
|
|
@@ -66,7 +73,6 @@
|
|
|
66
73
|
const byteArray = new Uint8Array( dataLength );
|
|
67
74
|
let dst = 0;
|
|
68
75
|
let src = 0;
|
|
69
|
-
|
|
70
76
|
for ( let y = 0; y < height; y ++ ) {
|
|
71
77
|
|
|
72
78
|
for ( let x = 0; x < width; x ++ ) {
|
|
@@ -81,13 +87,10 @@
|
|
|
81
87
|
src ++;
|
|
82
88
|
byteArray[ dst ] = r;
|
|
83
89
|
dst ++; //r
|
|
84
|
-
|
|
85
90
|
byteArray[ dst ] = g;
|
|
86
91
|
dst ++; //g
|
|
87
|
-
|
|
88
92
|
byteArray[ dst ] = b;
|
|
89
93
|
dst ++; //b
|
|
90
|
-
|
|
91
94
|
byteArray[ dst ] = a;
|
|
92
95
|
dst ++; //a
|
|
93
96
|
|
|
@@ -104,6 +107,7 @@
|
|
|
104
107
|
const FOURCC_DXT5 = fourCCToInt32( 'DXT5' );
|
|
105
108
|
const FOURCC_ETC1 = fourCCToInt32( 'ETC1' );
|
|
106
109
|
const headerLengthInt = 31; // The header length in 32 bit ints
|
|
110
|
+
|
|
107
111
|
// Offsets into the header array
|
|
108
112
|
|
|
109
113
|
const off_magic = 0;
|
|
@@ -111,21 +115,24 @@
|
|
|
111
115
|
const off_flags = 2;
|
|
112
116
|
const off_height = 3;
|
|
113
117
|
const off_width = 4;
|
|
114
|
-
const off_mipmapCount = 7;
|
|
118
|
+
const off_mipmapCount = 7;
|
|
115
119
|
|
|
120
|
+
// const off_pfFlags = 20;
|
|
116
121
|
const off_pfFourCC = 21;
|
|
117
122
|
const off_RGBBitCount = 22;
|
|
118
123
|
const off_RBitMask = 23;
|
|
119
124
|
const off_GBitMask = 24;
|
|
120
125
|
const off_BBitMask = 25;
|
|
121
|
-
const off_ABitMask = 26;
|
|
126
|
+
const off_ABitMask = 26;
|
|
122
127
|
|
|
123
|
-
|
|
128
|
+
// const off_caps = 27;
|
|
129
|
+
const off_caps2 = 28;
|
|
130
|
+
// const off_caps3 = 29;
|
|
124
131
|
// const off_caps4 = 30;
|
|
132
|
+
|
|
125
133
|
// Parse header
|
|
126
134
|
|
|
127
135
|
const header = new Int32Array( buffer, 0, headerLengthInt );
|
|
128
|
-
|
|
129
136
|
if ( header[ off_magic ] !== DDS_MAGIC ) {
|
|
130
137
|
|
|
131
138
|
console.error( 'THREE.DDSLoader.parse: Invalid magic number in DDS header.' );
|
|
@@ -136,29 +143,24 @@
|
|
|
136
143
|
let blockBytes;
|
|
137
144
|
const fourCC = header[ off_pfFourCC ];
|
|
138
145
|
let isRGBAUncompressed = false;
|
|
139
|
-
|
|
140
146
|
switch ( fourCC ) {
|
|
141
147
|
|
|
142
148
|
case FOURCC_DXT1:
|
|
143
149
|
blockBytes = 8;
|
|
144
150
|
dds.format = THREE.RGB_S3TC_DXT1_Format;
|
|
145
151
|
break;
|
|
146
|
-
|
|
147
152
|
case FOURCC_DXT3:
|
|
148
153
|
blockBytes = 16;
|
|
149
154
|
dds.format = THREE.RGBA_S3TC_DXT3_Format;
|
|
150
155
|
break;
|
|
151
|
-
|
|
152
156
|
case FOURCC_DXT5:
|
|
153
157
|
blockBytes = 16;
|
|
154
158
|
dds.format = THREE.RGBA_S3TC_DXT5_Format;
|
|
155
159
|
break;
|
|
156
|
-
|
|
157
160
|
case FOURCC_ETC1:
|
|
158
161
|
blockBytes = 8;
|
|
159
162
|
dds.format = THREE.RGB_ETC1_Format;
|
|
160
163
|
break;
|
|
161
|
-
|
|
162
164
|
default:
|
|
163
165
|
if ( header[ off_RGBBitCount ] === 32 && header[ off_RBitMask ] & 0xff0000 && header[ off_GBitMask ] & 0xff00 && header[ off_BBitMask ] & 0xff && header[ off_ABitMask ] & 0xff000000 ) {
|
|
164
166
|
|
|
@@ -176,7 +178,6 @@
|
|
|
176
178
|
}
|
|
177
179
|
|
|
178
180
|
dds.mipmapCount = 1;
|
|
179
|
-
|
|
180
181
|
if ( header[ off_flags ] & DDSD_MIPMAPCOUNT && loadMipmaps !== false ) {
|
|
181
182
|
|
|
182
183
|
dds.mipmapCount = Math.max( 1, header[ off_mipmapCount ] );
|
|
@@ -185,7 +186,6 @@
|
|
|
185
186
|
|
|
186
187
|
const caps2 = header[ off_caps2 ];
|
|
187
188
|
dds.isCubemap = caps2 & DDSCAPS2_CUBEMAP ? true : false;
|
|
188
|
-
|
|
189
189
|
if ( dds.isCubemap && ( ! ( caps2 & DDSCAPS2_CUBEMAP_POSITIVEX ) || ! ( caps2 & DDSCAPS2_CUBEMAP_NEGATIVEX ) || ! ( caps2 & DDSCAPS2_CUBEMAP_POSITIVEY ) || ! ( caps2 & DDSCAPS2_CUBEMAP_NEGATIVEY ) || ! ( caps2 & DDSCAPS2_CUBEMAP_POSITIVEZ ) || ! ( caps2 & DDSCAPS2_CUBEMAP_NEGATIVEZ ) ) ) {
|
|
190
190
|
|
|
191
191
|
console.error( 'THREE.DDSLoader.parse: Incomplete cubemap faces' );
|
|
@@ -195,19 +195,18 @@
|
|
|
195
195
|
|
|
196
196
|
dds.width = header[ off_width ];
|
|
197
197
|
dds.height = header[ off_height ];
|
|
198
|
-
let dataOffset = header[ off_size ] + 4;
|
|
198
|
+
let dataOffset = header[ off_size ] + 4;
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
// Extract mipmaps buffers
|
|
201
201
|
|
|
202
|
+
const faces = dds.isCubemap ? 6 : 1;
|
|
202
203
|
for ( let face = 0; face < faces; face ++ ) {
|
|
203
204
|
|
|
204
205
|
let width = dds.width;
|
|
205
206
|
let height = dds.height;
|
|
206
|
-
|
|
207
207
|
for ( let i = 0; i < dds.mipmapCount; i ++ ) {
|
|
208
208
|
|
|
209
209
|
let byteArray, dataLength;
|
|
210
|
-
|
|
211
210
|
if ( isRGBAUncompressed ) {
|
|
212
211
|
|
|
213
212
|
byteArray = loadARGBMip( buffer, dataOffset, width, height );
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
( function () {
|
|
2
2
|
|
|
3
3
|
const _taskCache = new WeakMap();
|
|
4
|
-
|
|
5
4
|
class DRACOLoader extends THREE.Loader {
|
|
6
5
|
|
|
7
6
|
constructor( manager ) {
|
|
@@ -29,28 +28,24 @@
|
|
|
29
28
|
};
|
|
30
29
|
|
|
31
30
|
}
|
|
32
|
-
|
|
33
31
|
setDecoderPath( path ) {
|
|
34
32
|
|
|
35
33
|
this.decoderPath = path;
|
|
36
34
|
return this;
|
|
37
35
|
|
|
38
36
|
}
|
|
39
|
-
|
|
40
37
|
setDecoderConfig( config ) {
|
|
41
38
|
|
|
42
39
|
this.decoderConfig = config;
|
|
43
40
|
return this;
|
|
44
41
|
|
|
45
42
|
}
|
|
46
|
-
|
|
47
43
|
setWorkerLimit( workerLimit ) {
|
|
48
44
|
|
|
49
45
|
this.workerLimit = workerLimit;
|
|
50
46
|
return this;
|
|
51
47
|
|
|
52
48
|
}
|
|
53
|
-
|
|
54
49
|
load( url, onLoad, onProgress, onError ) {
|
|
55
50
|
|
|
56
51
|
const loader = new THREE.FileLoader( this.manager );
|
|
@@ -60,19 +55,11 @@
|
|
|
60
55
|
loader.setWithCredentials( this.withCredentials );
|
|
61
56
|
loader.load( url, buffer => {
|
|
62
57
|
|
|
63
|
-
|
|
64
|
-
attributeIDs: this.defaultAttributeIDs,
|
|
65
|
-
attributeTypes: this.defaultAttributeTypes,
|
|
66
|
-
useUniqueIDs: false
|
|
67
|
-
};
|
|
68
|
-
this.decodeGeometry( buffer, taskConfig ).then( onLoad ).catch( onError );
|
|
58
|
+
this.decodeDracoFile( buffer, onLoad ).catch( onError );
|
|
69
59
|
|
|
70
60
|
}, onProgress, onError );
|
|
71
61
|
|
|
72
62
|
}
|
|
73
|
-
/** @deprecated Kept for backward-compatibility with previous DRACOLoader versions. */
|
|
74
|
-
|
|
75
|
-
|
|
76
63
|
decodeDracoFile( buffer, callback, attributeIDs, attributeTypes ) {
|
|
77
64
|
|
|
78
65
|
const taskConfig = {
|
|
@@ -80,35 +67,18 @@
|
|
|
80
67
|
attributeTypes: attributeTypes || this.defaultAttributeTypes,
|
|
81
68
|
useUniqueIDs: !! attributeIDs
|
|
82
69
|
};
|
|
83
|
-
this.decodeGeometry( buffer, taskConfig ).then( callback );
|
|
70
|
+
return this.decodeGeometry( buffer, taskConfig ).then( callback );
|
|
84
71
|
|
|
85
72
|
}
|
|
86
|
-
|
|
87
73
|
decodeGeometry( buffer, taskConfig ) {
|
|
88
74
|
|
|
89
|
-
|
|
90
|
-
// references (rather than names) to typed array constructors. These must be
|
|
91
|
-
// serialized before sending them to the worker.
|
|
92
|
-
for ( const attribute in taskConfig.attributeTypes ) {
|
|
93
|
-
|
|
94
|
-
const type = taskConfig.attributeTypes[ attribute ];
|
|
75
|
+
const taskKey = JSON.stringify( taskConfig );
|
|
95
76
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
taskConfig.attributeTypes[ attribute ] = type.name;
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
} //
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const taskKey = JSON.stringify( taskConfig ); // Check for an existing task using this buffer. A transferred buffer cannot be transferred
|
|
77
|
+
// Check for an existing task using this buffer. A transferred buffer cannot be transferred
|
|
106
78
|
// again from this thread.
|
|
107
|
-
|
|
108
79
|
if ( _taskCache.has( buffer ) ) {
|
|
109
80
|
|
|
110
81
|
const cachedTask = _taskCache.get( buffer );
|
|
111
|
-
|
|
112
82
|
if ( cachedTask.key === taskKey ) {
|
|
113
83
|
|
|
114
84
|
return cachedTask.promise;
|
|
@@ -123,14 +93,16 @@
|
|
|
123
93
|
|
|
124
94
|
}
|
|
125
95
|
|
|
126
|
-
}
|
|
96
|
+
}
|
|
127
97
|
|
|
98
|
+
//
|
|
128
99
|
|
|
129
100
|
let worker;
|
|
130
101
|
const taskID = this.workerNextTaskID ++;
|
|
131
|
-
const taskCost = buffer.byteLength;
|
|
132
|
-
// when the task completes.
|
|
102
|
+
const taskCost = buffer.byteLength;
|
|
133
103
|
|
|
104
|
+
// Obtain a worker and assign a task, and construct a geometry instance
|
|
105
|
+
// when the task completes.
|
|
134
106
|
const geometryPending = this._getWorker( taskID, taskCost ).then( _worker => {
|
|
135
107
|
|
|
136
108
|
worker = _worker;
|
|
@@ -145,37 +117,39 @@
|
|
|
145
117
|
id: taskID,
|
|
146
118
|
taskConfig,
|
|
147
119
|
buffer
|
|
148
|
-
}, [ buffer ] );
|
|
120
|
+
}, [ buffer ] );
|
|
149
121
|
|
|
150
|
-
|
|
122
|
+
// this.debug();
|
|
151
123
|
|
|
152
|
-
|
|
153
|
-
// Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)
|
|
124
|
+
} );
|
|
154
125
|
|
|
126
|
+
} ).then( message => this._createGeometry( message.geometry ) );
|
|
155
127
|
|
|
128
|
+
// Remove task from the task list.
|
|
129
|
+
// Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)
|
|
156
130
|
geometryPending.catch( () => true ).then( () => {
|
|
157
131
|
|
|
158
132
|
if ( worker && taskID ) {
|
|
159
133
|
|
|
160
|
-
this._releaseTask( worker, taskID );
|
|
134
|
+
this._releaseTask( worker, taskID );
|
|
135
|
+
|
|
136
|
+
// this.debug();
|
|
161
137
|
|
|
162
138
|
}
|
|
163
139
|
|
|
164
|
-
} );
|
|
140
|
+
} );
|
|
165
141
|
|
|
142
|
+
// Cache the task result.
|
|
166
143
|
_taskCache.set( buffer, {
|
|
167
144
|
key: taskKey,
|
|
168
145
|
promise: geometryPending
|
|
169
146
|
} );
|
|
170
|
-
|
|
171
147
|
return geometryPending;
|
|
172
148
|
|
|
173
149
|
}
|
|
174
|
-
|
|
175
150
|
_createGeometry( geometryData ) {
|
|
176
151
|
|
|
177
152
|
const geometry = new THREE.BufferGeometry();
|
|
178
|
-
|
|
179
153
|
if ( geometryData.index ) {
|
|
180
154
|
|
|
181
155
|
geometry.setIndex( new THREE.BufferAttribute( geometryData.index.array, 1 ) );
|
|
@@ -195,7 +169,6 @@
|
|
|
195
169
|
return geometry;
|
|
196
170
|
|
|
197
171
|
}
|
|
198
|
-
|
|
199
172
|
_loadLibrary( url, responseType ) {
|
|
200
173
|
|
|
201
174
|
const loader = new THREE.FileLoader( this.manager );
|
|
@@ -209,21 +182,17 @@
|
|
|
209
182
|
} );
|
|
210
183
|
|
|
211
184
|
}
|
|
212
|
-
|
|
213
185
|
preload() {
|
|
214
186
|
|
|
215
187
|
this._initDecoder();
|
|
216
|
-
|
|
217
188
|
return this;
|
|
218
189
|
|
|
219
190
|
}
|
|
220
|
-
|
|
221
191
|
_initDecoder() {
|
|
222
192
|
|
|
223
193
|
if ( this.decoderPending ) return this.decoderPending;
|
|
224
194
|
const useJS = typeof WebAssembly !== 'object' || this.decoderConfig.type === 'js';
|
|
225
195
|
const librariesPending = [];
|
|
226
|
-
|
|
227
196
|
if ( useJS ) {
|
|
228
197
|
|
|
229
198
|
librariesPending.push( this._loadLibrary( 'draco_decoder.js', 'text' ) );
|
|
@@ -238,7 +207,6 @@
|
|
|
238
207
|
this.decoderPending = Promise.all( librariesPending ).then( libraries => {
|
|
239
208
|
|
|
240
209
|
const jsContent = libraries[ 0 ];
|
|
241
|
-
|
|
242
210
|
if ( ! useJS ) {
|
|
243
211
|
|
|
244
212
|
this.decoderConfig.wasmBinary = libraries[ 1 ];
|
|
@@ -253,7 +221,6 @@
|
|
|
253
221
|
return this.decoderPending;
|
|
254
222
|
|
|
255
223
|
}
|
|
256
|
-
|
|
257
224
|
_getWorker( taskID, taskCost ) {
|
|
258
225
|
|
|
259
226
|
return this._initDecoder().then( () => {
|
|
@@ -268,23 +235,17 @@
|
|
|
268
235
|
type: 'init',
|
|
269
236
|
decoderConfig: this.decoderConfig
|
|
270
237
|
} );
|
|
271
|
-
|
|
272
238
|
worker.onmessage = function ( e ) {
|
|
273
239
|
|
|
274
240
|
const message = e.data;
|
|
275
|
-
|
|
276
241
|
switch ( message.type ) {
|
|
277
242
|
|
|
278
243
|
case 'decode':
|
|
279
244
|
worker._callbacks[ message.id ].resolve( message );
|
|
280
|
-
|
|
281
245
|
break;
|
|
282
|
-
|
|
283
246
|
case 'error':
|
|
284
247
|
worker._callbacks[ message.id ].reject( message );
|
|
285
|
-
|
|
286
248
|
break;
|
|
287
|
-
|
|
288
249
|
default:
|
|
289
250
|
console.error( 'THREE.DRACOLoader: Unexpected message, "' + message.type + '"' );
|
|
290
251
|
|
|
@@ -312,7 +273,6 @@
|
|
|
312
273
|
} );
|
|
313
274
|
|
|
314
275
|
}
|
|
315
|
-
|
|
316
276
|
_releaseTask( worker, taskID ) {
|
|
317
277
|
|
|
318
278
|
worker._taskLoad -= worker._taskCosts[ taskID ];
|
|
@@ -320,13 +280,11 @@
|
|
|
320
280
|
delete worker._taskCosts[ taskID ];
|
|
321
281
|
|
|
322
282
|
}
|
|
323
|
-
|
|
324
283
|
debug() {
|
|
325
284
|
|
|
326
285
|
console.log( 'Task load: ', this.workerPool.map( worker => worker._taskLoad ) );
|
|
327
286
|
|
|
328
287
|
}
|
|
329
|
-
|
|
330
288
|
dispose() {
|
|
331
289
|
|
|
332
290
|
for ( let i = 0; i < this.workerPool.length; ++ i ) {
|
|
@@ -341,25 +299,21 @@
|
|
|
341
299
|
}
|
|
342
300
|
|
|
343
301
|
}
|
|
344
|
-
/* WEB WORKER */
|
|
345
302
|
|
|
303
|
+
/* WEB WORKER */
|
|
346
304
|
|
|
347
305
|
function DRACOWorker() {
|
|
348
306
|
|
|
349
307
|
let decoderConfig;
|
|
350
308
|
let decoderPending;
|
|
351
|
-
|
|
352
309
|
onmessage = function ( e ) {
|
|
353
310
|
|
|
354
311
|
const message = e.data;
|
|
355
|
-
|
|
356
312
|
switch ( message.type ) {
|
|
357
313
|
|
|
358
314
|
case 'init':
|
|
359
315
|
decoderConfig = message.decoderConfig;
|
|
360
|
-
decoderPending = new Promise( function ( resolve
|
|
361
|
-
/*, reject*/
|
|
362
|
-
) {
|
|
316
|
+
decoderPending = new Promise( function ( resolve /*, reject*/ ) {
|
|
363
317
|
|
|
364
318
|
decoderConfig.onModuleLoaded = function ( draco ) {
|
|
365
319
|
|
|
@@ -373,8 +327,8 @@
|
|
|
373
327
|
DracoDecoderModule( decoderConfig ); // eslint-disable-line no-undef
|
|
374
328
|
|
|
375
329
|
} );
|
|
376
|
-
break;
|
|
377
330
|
|
|
331
|
+
break;
|
|
378
332
|
case 'decode':
|
|
379
333
|
const buffer = message.buffer;
|
|
380
334
|
const taskConfig = message.taskConfig;
|
|
@@ -384,7 +338,6 @@
|
|
|
384
338
|
const decoder = new draco.Decoder();
|
|
385
339
|
const decoderBuffer = new draco.DecoderBuffer();
|
|
386
340
|
decoderBuffer.Init( new Int8Array( buffer ), buffer.byteLength );
|
|
387
|
-
|
|
388
341
|
try {
|
|
389
342
|
|
|
390
343
|
const geometry = decodeGeometry( draco, decoder, decoderBuffer, taskConfig );
|
|
@@ -426,7 +379,6 @@
|
|
|
426
379
|
let dracoGeometry;
|
|
427
380
|
let decodingStatus;
|
|
428
381
|
const geometryType = decoder.GetEncodedGeometryType( decoderBuffer );
|
|
429
|
-
|
|
430
382
|
if ( geometryType === draco.TRIANGULAR_MESH ) {
|
|
431
383
|
|
|
432
384
|
dracoGeometry = new draco.Mesh();
|
|
@@ -452,17 +404,19 @@
|
|
|
452
404
|
const geometry = {
|
|
453
405
|
index: null,
|
|
454
406
|
attributes: []
|
|
455
|
-
};
|
|
407
|
+
};
|
|
456
408
|
|
|
409
|
+
// Gather all vertex attributes.
|
|
457
410
|
for ( const attributeName in attributeIDs ) {
|
|
458
411
|
|
|
459
412
|
const attributeType = self[ attributeTypes[ attributeName ] ];
|
|
460
413
|
let attribute;
|
|
461
|
-
let attributeID;
|
|
414
|
+
let attributeID;
|
|
415
|
+
|
|
416
|
+
// A Draco file may be created with default vertex attributes, whose attribute IDs
|
|
462
417
|
// are mapped 1:1 from their semantic name (POSITION, NORMAL, ...). Alternatively,
|
|
463
418
|
// a Draco file may contain a custom set of attributes, identified by known unique
|
|
464
419
|
// IDs. glTF files always do the latter, and `.drc` files typically do the former.
|
|
465
|
-
|
|
466
420
|
if ( taskConfig.useUniqueIDs ) {
|
|
467
421
|
|
|
468
422
|
attributeID = attributeIDs[ attributeName ];
|
|
@@ -478,9 +432,9 @@
|
|
|
478
432
|
|
|
479
433
|
geometry.attributes.push( decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute ) );
|
|
480
434
|
|
|
481
|
-
}
|
|
482
|
-
|
|
435
|
+
}
|
|
483
436
|
|
|
437
|
+
// Add index.
|
|
484
438
|
if ( geometryType === draco.TRIANGULAR_MESH ) {
|
|
485
439
|
|
|
486
440
|
geometry.index = decodeIndex( draco, decoder, dracoGeometry );
|
|
@@ -497,14 +451,10 @@
|
|
|
497
451
|
const numFaces = dracoGeometry.num_faces();
|
|
498
452
|
const numIndices = numFaces * 3;
|
|
499
453
|
const byteLength = numIndices * 4;
|
|
500
|
-
|
|
501
454
|
const ptr = draco._malloc( byteLength );
|
|
502
|
-
|
|
503
455
|
decoder.GetTrianglesUInt32Array( dracoGeometry, byteLength, ptr );
|
|
504
456
|
const index = new Uint32Array( draco.HEAPF32.buffer, ptr, numIndices ).slice();
|
|
505
|
-
|
|
506
457
|
draco._free( ptr );
|
|
507
|
-
|
|
508
458
|
return {
|
|
509
459
|
array: index,
|
|
510
460
|
itemSize: 1
|
|
@@ -519,14 +469,10 @@
|
|
|
519
469
|
const numValues = numPoints * numComponents;
|
|
520
470
|
const byteLength = numValues * attributeType.BYTES_PER_ELEMENT;
|
|
521
471
|
const dataType = getDracoDataType( draco, attributeType );
|
|
522
|
-
|
|
523
472
|
const ptr = draco._malloc( byteLength );
|
|
524
|
-
|
|
525
473
|
decoder.GetAttributeDataArrayForAllPoints( dracoGeometry, attribute, dataType, byteLength, ptr );
|
|
526
474
|
const array = new attributeType( draco.HEAPF32.buffer, ptr, numValues ).slice();
|
|
527
|
-
|
|
528
475
|
draco._free( ptr );
|
|
529
|
-
|
|
530
476
|
return {
|
|
531
477
|
name: attributeName,
|
|
532
478
|
array: array,
|
|
@@ -541,22 +487,16 @@
|
|
|
541
487
|
|
|
542
488
|
case Float32Array:
|
|
543
489
|
return draco.DT_FLOAT32;
|
|
544
|
-
|
|
545
490
|
case Int8Array:
|
|
546
491
|
return draco.DT_INT8;
|
|
547
|
-
|
|
548
492
|
case Int16Array:
|
|
549
493
|
return draco.DT_INT16;
|
|
550
|
-
|
|
551
494
|
case Int32Array:
|
|
552
495
|
return draco.DT_INT32;
|
|
553
|
-
|
|
554
496
|
case Uint8Array:
|
|
555
497
|
return draco.DT_UINT8;
|
|
556
|
-
|
|
557
498
|
case Uint16Array:
|
|
558
499
|
return draco.DT_UINT16;
|
|
559
|
-
|
|
560
500
|
case Uint32Array:
|
|
561
501
|
return draco.DT_UINT32;
|
|
562
502
|
|