@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
|
@@ -16,27 +16,23 @@
|
|
|
16
16
|
return this;
|
|
17
17
|
|
|
18
18
|
}
|
|
19
|
-
|
|
20
19
|
setMaxRange( value ) {
|
|
21
20
|
|
|
22
21
|
this.maxRange = value;
|
|
23
22
|
return this;
|
|
24
23
|
|
|
25
24
|
}
|
|
26
|
-
|
|
27
25
|
loadCubemap( urls, onLoad, onProgress, onError ) {
|
|
28
26
|
|
|
29
27
|
const texture = new THREE.CubeTexture();
|
|
30
28
|
let loaded = 0;
|
|
31
29
|
const scope = this;
|
|
32
|
-
|
|
33
30
|
function loadTexture( i ) {
|
|
34
31
|
|
|
35
32
|
scope.load( urls[ i ], function ( image ) {
|
|
36
33
|
|
|
37
34
|
texture.images[ i ] = image;
|
|
38
35
|
loaded ++;
|
|
39
|
-
|
|
40
36
|
if ( loaded === 6 ) {
|
|
41
37
|
|
|
42
38
|
texture.needsUpdate = true;
|
|
@@ -61,14 +57,15 @@
|
|
|
61
57
|
return texture;
|
|
62
58
|
|
|
63
59
|
}
|
|
64
|
-
|
|
65
60
|
parse( buffer ) {
|
|
66
61
|
|
|
67
62
|
const img = UPNG.decode( buffer );
|
|
68
63
|
const rgba = UPNG.toRGBA8( img )[ 0 ];
|
|
69
64
|
const data = new Uint8Array( rgba );
|
|
70
65
|
const size = img.width * img.height * 4;
|
|
71
|
-
const output = this.type === THREE.HalfFloatType ? new Uint16Array( size ) : new Float32Array( size );
|
|
66
|
+
const output = this.type === THREE.HalfFloatType ? new Uint16Array( size ) : new Float32Array( size );
|
|
67
|
+
|
|
68
|
+
// decode RGBM
|
|
72
69
|
|
|
73
70
|
for ( let i = 0; i < data.length; i += 4 ) {
|
|
74
71
|
|
|
@@ -76,7 +73,6 @@
|
|
|
76
73
|
const g = data[ i + 1 ] / 255;
|
|
77
74
|
const b = data[ i + 2 ] / 255;
|
|
78
75
|
const a = data[ i + 3 ] / 255;
|
|
79
|
-
|
|
80
76
|
if ( this.type === THREE.HalfFloatType ) {
|
|
81
77
|
|
|
82
78
|
output[ i + 0 ] = THREE.DataUtils.toHalfFloat( Math.min( r * a * this.maxRange, 65504 ) );
|
|
@@ -106,11 +102,11 @@
|
|
|
106
102
|
|
|
107
103
|
}
|
|
108
104
|
|
|
109
|
-
}
|
|
105
|
+
}
|
|
110
106
|
|
|
107
|
+
// from https://github.com/photopea/UPNG.js (MIT License)
|
|
111
108
|
|
|
112
109
|
var UPNG = {};
|
|
113
|
-
|
|
114
110
|
UPNG.toRGBA8 = function ( out ) {
|
|
115
111
|
|
|
116
112
|
var w = out.width,
|
|
@@ -122,7 +118,6 @@
|
|
|
122
118
|
img = new Uint8Array( len ),
|
|
123
119
|
empty = new Uint8Array( len ),
|
|
124
120
|
prev = new Uint8Array( len );
|
|
125
|
-
|
|
126
121
|
for ( var i = 0; i < out.frames.length; i ++ ) {
|
|
127
122
|
|
|
128
123
|
var frm = out.frames[ i ];
|
|
@@ -146,7 +141,6 @@
|
|
|
146
141
|
|
|
147
142
|
var area = w * h,
|
|
148
143
|
bpp = UPNG.decode._getBPP( out );
|
|
149
|
-
|
|
150
144
|
var bpl = Math.ceil( w * bpp / 8 ); // bytes per line
|
|
151
145
|
|
|
152
146
|
var bf = new Uint8Array( area * 4 ),
|
|
@@ -154,10 +148,10 @@
|
|
|
154
148
|
var ctype = out.ctype,
|
|
155
149
|
depth = out.depth;
|
|
156
150
|
var rs = UPNG._bin.readUshort;
|
|
157
|
-
|
|
158
151
|
if ( ctype == 6 ) {
|
|
159
152
|
|
|
160
153
|
// RGB + alpha
|
|
154
|
+
|
|
161
155
|
var qarea = area << 2;
|
|
162
156
|
if ( depth == 8 ) for ( var i = 0; i < qarea; i += 4 ) {
|
|
163
157
|
|
|
@@ -177,8 +171,8 @@
|
|
|
177
171
|
} else if ( ctype == 2 ) {
|
|
178
172
|
|
|
179
173
|
// RGB
|
|
180
|
-
var ts = out.tabs[ 'tRNS' ];
|
|
181
174
|
|
|
175
|
+
var ts = out.tabs[ 'tRNS' ];
|
|
182
176
|
if ( ts == null ) {
|
|
183
177
|
|
|
184
178
|
if ( depth == 8 ) for ( var i = 0; i < area; i ++ ) {
|
|
@@ -223,15 +217,15 @@
|
|
|
223
217
|
} else if ( ctype == 3 ) {
|
|
224
218
|
|
|
225
219
|
// palette
|
|
220
|
+
|
|
226
221
|
var p = out.tabs[ 'PLTE' ],
|
|
227
222
|
ap = out.tabs[ 'tRNS' ],
|
|
228
|
-
tl = ap ? ap.length : 0;
|
|
229
|
-
|
|
223
|
+
tl = ap ? ap.length : 0;
|
|
224
|
+
//console.log(p, ap);
|
|
230
225
|
if ( depth == 1 ) for ( var y = 0; y < h; y ++ ) {
|
|
231
226
|
|
|
232
227
|
var s0 = y * bpl,
|
|
233
228
|
t0 = y * w;
|
|
234
|
-
|
|
235
229
|
for ( var i = 0; i < w; i ++ ) {
|
|
236
230
|
|
|
237
231
|
var qi = t0 + i << 2,
|
|
@@ -250,7 +244,6 @@
|
|
|
250
244
|
|
|
251
245
|
var s0 = y * bpl,
|
|
252
246
|
t0 = y * w;
|
|
253
|
-
|
|
254
247
|
for ( var i = 0; i < w; i ++ ) {
|
|
255
248
|
|
|
256
249
|
var qi = t0 + i << 2,
|
|
@@ -269,7 +262,6 @@
|
|
|
269
262
|
|
|
270
263
|
var s0 = y * bpl,
|
|
271
264
|
t0 = y * w;
|
|
272
|
-
|
|
273
265
|
for ( var i = 0; i < w; i ++ ) {
|
|
274
266
|
|
|
275
267
|
var qi = t0 + i << 2,
|
|
@@ -299,6 +291,7 @@
|
|
|
299
291
|
} else if ( ctype == 4 ) {
|
|
300
292
|
|
|
301
293
|
// gray + alpha
|
|
294
|
+
|
|
302
295
|
if ( depth == 8 ) for ( var i = 0; i < area; i ++ ) {
|
|
303
296
|
|
|
304
297
|
var qi = i << 2,
|
|
@@ -326,8 +319,8 @@
|
|
|
326
319
|
} else if ( ctype == 0 ) {
|
|
327
320
|
|
|
328
321
|
// gray
|
|
329
|
-
var tr = out.tabs[ 'tRNS' ] ? out.tabs[ 'tRNS' ] : - 1;
|
|
330
322
|
|
|
323
|
+
var tr = out.tabs[ 'tRNS' ] ? out.tabs[ 'tRNS' ] : - 1;
|
|
331
324
|
for ( var y = 0; y < h; y ++ ) {
|
|
332
325
|
|
|
333
326
|
var off = y * bpl,
|
|
@@ -366,9 +359,9 @@
|
|
|
366
359
|
|
|
367
360
|
}
|
|
368
361
|
|
|
369
|
-
}
|
|
370
|
-
|
|
362
|
+
}
|
|
371
363
|
|
|
364
|
+
//console.log(Date.now()-time);
|
|
372
365
|
return bf;
|
|
373
366
|
|
|
374
367
|
};
|
|
@@ -386,21 +379,18 @@
|
|
|
386
379
|
};
|
|
387
380
|
var dd = new Uint8Array( data.length ),
|
|
388
381
|
doff = 0; // put all IDAT data into it
|
|
389
|
-
|
|
390
382
|
var fd,
|
|
391
383
|
foff = 0; // frames
|
|
392
|
-
|
|
393
384
|
var text, keyw, bfr;
|
|
394
385
|
var mgck = [ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a ];
|
|
395
|
-
|
|
396
386
|
for ( var i = 0; i < 8; i ++ ) if ( data[ i ] != mgck[ i ] ) throw new Error( 'The input is not a PNG file!' );
|
|
397
|
-
|
|
398
387
|
while ( offset < data.length ) {
|
|
399
388
|
|
|
400
389
|
var len = bin.readUint( data, offset );
|
|
401
390
|
offset += 4;
|
|
402
391
|
var type = bin.readASCII( data, offset, 4 );
|
|
403
|
-
offset += 4;
|
|
392
|
+
offset += 4;
|
|
393
|
+
//console.log(type,len);
|
|
404
394
|
|
|
405
395
|
if ( type == 'IHDR' ) {
|
|
406
396
|
|
|
@@ -413,7 +403,6 @@
|
|
|
413
403
|
} else if ( type == 'IDAT' ) {
|
|
414
404
|
|
|
415
405
|
for ( var i = 0; i < len; i ++ ) dd[ doff + i ] = data[ offset + i ];
|
|
416
|
-
|
|
417
406
|
doff += len;
|
|
418
407
|
|
|
419
408
|
} else if ( type == 'acTL' ) {
|
|
@@ -447,14 +436,13 @@
|
|
|
447
436
|
delay: Math.round( del * 1000 ),
|
|
448
437
|
dispose: data[ offset + 24 ],
|
|
449
438
|
blend: data[ offset + 25 ]
|
|
450
|
-
};
|
|
451
|
-
|
|
439
|
+
};
|
|
440
|
+
//console.log(frm);
|
|
452
441
|
out.frames.push( frm );
|
|
453
442
|
|
|
454
443
|
} else if ( type == 'fdAT' ) {
|
|
455
444
|
|
|
456
445
|
for ( var i = 0; i < len - 4; i ++ ) fd[ foff + i ] = data[ offset + i + 4 ];
|
|
457
|
-
|
|
458
446
|
foff += len - 4;
|
|
459
447
|
|
|
460
448
|
} else if ( type == 'pHYs' ) {
|
|
@@ -464,7 +452,6 @@
|
|
|
464
452
|
} else if ( type == 'cHRM' ) {
|
|
465
453
|
|
|
466
454
|
out.tabs[ type ] = [];
|
|
467
|
-
|
|
468
455
|
for ( var i = 0; i < 8; i ++ ) out.tabs[ type ].push( bin.readUint( data, offset + i * 4 ) );
|
|
469
456
|
|
|
470
457
|
} else if ( type == 'tEXt' || type == 'zTXt' ) {
|
|
@@ -516,12 +503,12 @@
|
|
|
516
503
|
|
|
517
504
|
var pl = out.tabs[ 'PLTE' ].length / 3;
|
|
518
505
|
out.tabs[ type ] = [];
|
|
519
|
-
|
|
520
506
|
for ( var i = 0; i < pl; i ++ ) out.tabs[ type ].push( rUs( data, offset + i * 2 ) );
|
|
521
507
|
|
|
522
508
|
} else if ( type == 'tRNS' ) {
|
|
523
509
|
|
|
524
|
-
if ( out.ctype == 3 ) out.tabs[ type ] = bin.readBytes( data, offset, len ); else if ( out.ctype == 0 ) out.tabs[ type ] = rUs( data, offset ); else if ( out.ctype == 2 ) out.tabs[ type ] = [ rUs( data, offset ), rUs( data, offset + 2 ), rUs( data, offset + 4 ) ];
|
|
510
|
+
if ( out.ctype == 3 ) out.tabs[ type ] = bin.readBytes( data, offset, len ); else if ( out.ctype == 0 ) out.tabs[ type ] = rUs( data, offset ); else if ( out.ctype == 2 ) out.tabs[ type ] = [ rUs( data, offset ), rUs( data, offset + 2 ), rUs( data, offset + 4 ) ];
|
|
511
|
+
//else console.log("tRNS for unsupported color type",out.ctype, len);
|
|
525
512
|
|
|
526
513
|
} else if ( type == 'gAMA' ) out.tabs[ type ] = bin.readUint( data, offset ) / 100000; else if ( type == 'sRGB' ) out.tabs[ type ] = data[ offset ]; else if ( type == 'bKGD' ) {
|
|
527
514
|
|
|
@@ -531,9 +518,9 @@
|
|
|
531
518
|
|
|
532
519
|
break;
|
|
533
520
|
|
|
534
|
-
}
|
|
535
|
-
|
|
521
|
+
}
|
|
536
522
|
|
|
523
|
+
//else { console.log("unknown chunk type", type, len); out.tabs[type]=data.slice(offset,offset+len); }
|
|
537
524
|
offset += len;
|
|
538
525
|
bin.readUint( data, offset );
|
|
539
526
|
offset += 4;
|
|
@@ -560,7 +547,6 @@
|
|
|
560
547
|
var bpp = UPNG.decode._getBPP( out ),
|
|
561
548
|
bpl = Math.ceil( w * bpp / 8 ),
|
|
562
549
|
buff = new Uint8Array( ( bpl + 1 + out.interlace ) * h );
|
|
563
|
-
|
|
564
550
|
if ( out.tabs[ 'CgBI' ] ) dd = UPNG.inflateRaw( dd, buff ); else dd = UPNG.decode._inflate( dd, buff );
|
|
565
551
|
if ( out.interlace == 0 ) dd = UPNG.decode._filterZero( dd, out, 0, w, h ); else if ( out.interlace == 1 ) dd = UPNG.decode._readInterlace( dd, out );
|
|
566
552
|
return dd;
|
|
@@ -578,7 +564,6 @@
|
|
|
578
564
|
|
|
579
565
|
var H = {};
|
|
580
566
|
H.H = {};
|
|
581
|
-
|
|
582
567
|
H.H.N = function ( N, W ) {
|
|
583
568
|
|
|
584
569
|
var R = Uint8Array,
|
|
@@ -604,13 +589,11 @@
|
|
|
604
589
|
b = V.m,
|
|
605
590
|
Z = W == null;
|
|
606
591
|
if ( Z ) W = new R( N.length >>> 2 << 5 );
|
|
607
|
-
|
|
608
592
|
while ( i == 0 ) {
|
|
609
593
|
|
|
610
594
|
i = n( N, d, 1 );
|
|
611
595
|
m = n( N, d + 1, 2 );
|
|
612
596
|
d += 3;
|
|
613
|
-
|
|
614
597
|
if ( m == 0 ) {
|
|
615
598
|
|
|
616
599
|
if ( ( d & 7 ) != 0 ) d += 8 - ( d & 7 );
|
|
@@ -625,7 +608,6 @@
|
|
|
625
608
|
}
|
|
626
609
|
|
|
627
610
|
if ( Z ) W = H.H.W( W, w + ( 1 << 17 ) );
|
|
628
|
-
|
|
629
611
|
if ( m == 1 ) {
|
|
630
612
|
|
|
631
613
|
v = b.J;
|
|
@@ -642,7 +624,6 @@
|
|
|
642
624
|
Q = A( N, d + 10, 4 ) + 4;
|
|
643
625
|
d += 14;
|
|
644
626
|
var j = 1;
|
|
645
|
-
|
|
646
627
|
for ( var c = 0; c < 38; c += 2 ) {
|
|
647
628
|
|
|
648
629
|
b.Q[ c ] = 0;
|
|
@@ -680,7 +661,6 @@
|
|
|
680
661
|
var T = v[ e( N, d ) & X ];
|
|
681
662
|
d += T & 15;
|
|
682
663
|
var p = T >>> 4;
|
|
683
|
-
|
|
684
664
|
if ( p >>> 8 == 0 ) {
|
|
685
665
|
|
|
686
666
|
W[ w ++ ] = p;
|
|
@@ -692,7 +672,6 @@
|
|
|
692
672
|
} else {
|
|
693
673
|
|
|
694
674
|
var z = w + p - 254;
|
|
695
|
-
|
|
696
675
|
if ( p > 264 ) {
|
|
697
676
|
|
|
698
677
|
var _ = b.q[ p - 257 ];
|
|
@@ -707,7 +686,6 @@
|
|
|
707
686
|
Y = b.c[ s ],
|
|
708
687
|
a = ( Y >>> 4 ) + n( N, d, Y & 15 );
|
|
709
688
|
d += Y & 15;
|
|
710
|
-
|
|
711
689
|
while ( w < z ) {
|
|
712
690
|
|
|
713
691
|
W[ w ] = W[ w ++ - a ];
|
|
@@ -744,13 +722,11 @@
|
|
|
744
722
|
var l = H.H.e,
|
|
745
723
|
M = H.H.Z,
|
|
746
724
|
I = 0;
|
|
747
|
-
|
|
748
725
|
while ( I < R ) {
|
|
749
726
|
|
|
750
727
|
var e = N[ M( V, n ) & W ];
|
|
751
728
|
n += e & 15;
|
|
752
729
|
var b = e >>> 4;
|
|
753
|
-
|
|
754
730
|
if ( b <= 15 ) {
|
|
755
731
|
|
|
756
732
|
A[ I ] = b;
|
|
@@ -760,7 +736,6 @@
|
|
|
760
736
|
|
|
761
737
|
var Z = 0,
|
|
762
738
|
m = 0;
|
|
763
|
-
|
|
764
739
|
if ( b == 16 ) {
|
|
765
740
|
|
|
766
741
|
m = 3 + l( V, n, 2 );
|
|
@@ -780,7 +755,6 @@
|
|
|
780
755
|
}
|
|
781
756
|
|
|
782
757
|
var J = I + m;
|
|
783
|
-
|
|
784
758
|
while ( I < J ) {
|
|
785
759
|
|
|
786
760
|
A[ I ] = Z;
|
|
@@ -801,7 +775,6 @@
|
|
|
801
775
|
var n = 0,
|
|
802
776
|
A = 0,
|
|
803
777
|
l = V.length >>> 1;
|
|
804
|
-
|
|
805
778
|
while ( A < R ) {
|
|
806
779
|
|
|
807
780
|
var M = N[ A + W ];
|
|
@@ -834,15 +807,11 @@
|
|
|
834
807
|
M,
|
|
835
808
|
I,
|
|
836
809
|
e = R.j;
|
|
837
|
-
|
|
838
810
|
for ( var M = 0; M <= W; M ++ ) e[ M ] = 0;
|
|
839
|
-
|
|
840
811
|
for ( M = 1; M < V; M += 2 ) e[ N[ M ] ] ++;
|
|
841
|
-
|
|
842
812
|
var b = R.K;
|
|
843
813
|
n = 0;
|
|
844
814
|
e[ 0 ] = 0;
|
|
845
|
-
|
|
846
815
|
for ( A = 1; A <= W; A ++ ) {
|
|
847
816
|
|
|
848
817
|
n = n + e[ A - 1 ] << 1;
|
|
@@ -853,7 +822,6 @@
|
|
|
853
822
|
for ( l = 0; l < V; l += 2 ) {
|
|
854
823
|
|
|
855
824
|
I = N[ l + 1 ];
|
|
856
|
-
|
|
857
825
|
if ( I != 0 ) {
|
|
858
826
|
|
|
859
827
|
N[ l ] = b[ I ];
|
|
@@ -870,7 +838,6 @@
|
|
|
870
838
|
var V = N.length,
|
|
871
839
|
n = H.H.m,
|
|
872
840
|
A = n.r;
|
|
873
|
-
|
|
874
841
|
for ( var l = 0; l < V; l += 2 ) if ( N[ l + 1 ] != 0 ) {
|
|
875
842
|
|
|
876
843
|
var M = l >> 1,
|
|
@@ -879,7 +846,6 @@
|
|
|
879
846
|
b = W - I,
|
|
880
847
|
Z = N[ l ] << b,
|
|
881
848
|
m = Z + ( 1 << b );
|
|
882
|
-
|
|
883
849
|
while ( Z != m ) {
|
|
884
850
|
|
|
885
851
|
var J = A[ Z ] >>> 15 - W;
|
|
@@ -896,7 +862,6 @@
|
|
|
896
862
|
|
|
897
863
|
var R = H.H.m.r,
|
|
898
864
|
V = 15 - W;
|
|
899
|
-
|
|
900
865
|
for ( var n = 0; n < N.length; n += 2 ) {
|
|
901
866
|
|
|
902
867
|
var A = N[ n ] << W - N[ n + 1 ];
|
|
@@ -984,12 +949,10 @@
|
|
|
984
949
|
};
|
|
985
950
|
|
|
986
951
|
}();
|
|
987
|
-
|
|
988
952
|
( function () {
|
|
989
953
|
|
|
990
954
|
var N = H.H.m,
|
|
991
955
|
W = 1 << 15;
|
|
992
|
-
|
|
993
956
|
for ( var R = 0; R < W; R ++ ) {
|
|
994
957
|
|
|
995
958
|
var V = R;
|
|
@@ -1035,16 +998,13 @@
|
|
|
1035
998
|
return H.H.N;
|
|
1036
999
|
|
|
1037
1000
|
}();
|
|
1038
|
-
|
|
1039
1001
|
UPNG.decode._readInterlace = function ( data, out ) {
|
|
1040
1002
|
|
|
1041
1003
|
var w = out.width,
|
|
1042
1004
|
h = out.height;
|
|
1043
|
-
|
|
1044
1005
|
var bpp = UPNG.decode._getBPP( out ),
|
|
1045
1006
|
cbpp = bpp >> 3,
|
|
1046
1007
|
bpl = Math.ceil( w * bpp / 8 );
|
|
1047
|
-
|
|
1048
1008
|
var img = new Uint8Array( h * bpl );
|
|
1049
1009
|
var di = 0;
|
|
1050
1010
|
var starting_row = [ 0, 0, 4, 0, 2, 0, 1 ];
|
|
@@ -1052,7 +1012,6 @@
|
|
|
1052
1012
|
var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];
|
|
1053
1013
|
var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];
|
|
1054
1014
|
var pass = 0;
|
|
1055
|
-
|
|
1056
1015
|
while ( pass < 7 ) {
|
|
1057
1016
|
|
|
1058
1017
|
var ri = row_increment[ pass ],
|
|
@@ -1060,7 +1019,6 @@
|
|
|
1060
1019
|
var sw = 0,
|
|
1061
1020
|
sh = 0;
|
|
1062
1021
|
var cr = starting_row[ pass ];
|
|
1063
|
-
|
|
1064
1022
|
while ( cr < h ) {
|
|
1065
1023
|
|
|
1066
1024
|
cr += ri;
|
|
@@ -1069,7 +1027,6 @@
|
|
|
1069
1027
|
}
|
|
1070
1028
|
|
|
1071
1029
|
var cc = starting_col[ pass ];
|
|
1072
|
-
|
|
1073
1030
|
while ( cc < w ) {
|
|
1074
1031
|
|
|
1075
1032
|
cc += ci;
|
|
@@ -1078,18 +1035,14 @@
|
|
|
1078
1035
|
}
|
|
1079
1036
|
|
|
1080
1037
|
var bpll = Math.ceil( sw * bpp / 8 );
|
|
1081
|
-
|
|
1082
1038
|
UPNG.decode._filterZero( data, out, di, sw, sh );
|
|
1083
|
-
|
|
1084
1039
|
var y = 0,
|
|
1085
1040
|
row = starting_row[ pass ];
|
|
1086
1041
|
var val;
|
|
1087
|
-
|
|
1088
1042
|
while ( row < h ) {
|
|
1089
1043
|
|
|
1090
1044
|
var col = starting_col[ pass ];
|
|
1091
1045
|
var cdi = di + y * bpll << 3;
|
|
1092
|
-
|
|
1093
1046
|
while ( col < w ) {
|
|
1094
1047
|
|
|
1095
1048
|
if ( bpp == 1 ) {
|
|
@@ -1119,7 +1072,6 @@
|
|
|
1119
1072
|
if ( bpp >= 8 ) {
|
|
1120
1073
|
|
|
1121
1074
|
var ii = row * bpl + col * cbpp;
|
|
1122
|
-
|
|
1123
1075
|
for ( var j = 0; j < cbpp; j ++ ) img[ ii + j ] = data[ ( cdi >> 3 ) + j ];
|
|
1124
1076
|
|
|
1125
1077
|
}
|
|
@@ -1155,7 +1107,6 @@
|
|
|
1155
1107
|
var bpp = UPNG.decode._getBPP( out ),
|
|
1156
1108
|
bpl = Math.ceil( w * bpp / 8 ),
|
|
1157
1109
|
paeth = UPNG.decode._paeth;
|
|
1158
|
-
|
|
1159
1110
|
bpp = Math.ceil( bpp / 8 );
|
|
1160
1111
|
var i,
|
|
1161
1112
|
di,
|
|
@@ -1163,7 +1114,6 @@
|
|
|
1163
1114
|
x = 0;
|
|
1164
1115
|
if ( type > 1 ) data[ off ] = [ 0, 0, 1 ][ type - 2 ];
|
|
1165
1116
|
if ( type == 3 ) for ( x = bpp; x < bpl; x ++ ) data[ x + 1 ] = data[ x + 1 ] + ( data[ x + 1 - bpp ] >>> 1 ) & 255;
|
|
1166
|
-
|
|
1167
1117
|
for ( var y = 0; y < h; y ++ ) {
|
|
1168
1118
|
|
|
1169
1119
|
i = off + y * bpl;
|
|
@@ -1173,7 +1123,6 @@
|
|
|
1173
1123
|
if ( type == 0 ) for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ]; else if ( type == 1 ) {
|
|
1174
1124
|
|
|
1175
1125
|
for ( ; x < bpp; x ++ ) data[ i + x ] = data[ di + x ];
|
|
1176
|
-
|
|
1177
1126
|
for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ] + data[ i + x - bpp ];
|
|
1178
1127
|
|
|
1179
1128
|
} else if ( type == 2 ) {
|
|
@@ -1183,13 +1132,11 @@
|
|
|
1183
1132
|
} else if ( type == 3 ) {
|
|
1184
1133
|
|
|
1185
1134
|
for ( ; x < bpp; x ++ ) data[ i + x ] = data[ di + x ] + ( data[ i + x - bpl ] >>> 1 );
|
|
1186
|
-
|
|
1187
1135
|
for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ] + ( data[ i + x - bpl ] + data[ i + x - bpp ] >>> 1 );
|
|
1188
1136
|
|
|
1189
1137
|
} else {
|
|
1190
1138
|
|
|
1191
1139
|
for ( ; x < bpp; x ++ ) data[ i + x ] = data[ di + x ] + paeth( 0, data[ i + x - bpl ], 0 );
|
|
1192
|
-
|
|
1193
1140
|
for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ] + paeth( data[ i + x - bpp ], data[ i + x - bpl ], data[ i + x - bpp - bpl ] );
|
|
1194
1141
|
|
|
1195
1142
|
}
|
|
@@ -1235,7 +1182,6 @@
|
|
|
1235
1182
|
nextZero: function ( data, p ) {
|
|
1236
1183
|
|
|
1237
1184
|
while ( data[ p ] != 0 ) p ++;
|
|
1238
|
-
|
|
1239
1185
|
return p;
|
|
1240
1186
|
|
|
1241
1187
|
},
|
|
@@ -1266,9 +1212,7 @@
|
|
|
1266
1212
|
readASCII: function ( buff, p, l ) {
|
|
1267
1213
|
|
|
1268
1214
|
var s = '';
|
|
1269
|
-
|
|
1270
1215
|
for ( var i = 0; i < l; i ++ ) s += String.fromCharCode( buff[ p + i ] );
|
|
1271
|
-
|
|
1272
1216
|
return s;
|
|
1273
1217
|
|
|
1274
1218
|
},
|
|
@@ -1280,9 +1224,7 @@
|
|
|
1280
1224
|
readBytes: function ( buff, p, l ) {
|
|
1281
1225
|
|
|
1282
1226
|
var arr = [];
|
|
1283
|
-
|
|
1284
1227
|
for ( var i = 0; i < l; i ++ ) arr.push( buff[ p + i ] );
|
|
1285
|
-
|
|
1286
1228
|
return arr;
|
|
1287
1229
|
|
|
1288
1230
|
},
|
|
@@ -1295,9 +1237,7 @@
|
|
|
1295
1237
|
|
|
1296
1238
|
var s = '',
|
|
1297
1239
|
ns;
|
|
1298
|
-
|
|
1299
1240
|
for ( var i = 0; i < l; i ++ ) s += '%' + UPNG._bin.pad( buff[ p + i ].toString( 16 ) );
|
|
1300
|
-
|
|
1301
1241
|
try {
|
|
1302
1242
|
|
|
1303
1243
|
ns = decodeURIComponent( s );
|
|
@@ -1312,14 +1252,12 @@
|
|
|
1312
1252
|
|
|
1313
1253
|
}
|
|
1314
1254
|
};
|
|
1315
|
-
|
|
1316
1255
|
UPNG._copyTile = function ( sb, sw, sh, tb, tw, th, xoff, yoff, mode ) {
|
|
1317
1256
|
|
|
1318
1257
|
var w = Math.min( sw, tw ),
|
|
1319
1258
|
h = Math.min( sh, th );
|
|
1320
1259
|
var si = 0,
|
|
1321
1260
|
ti = 0;
|
|
1322
|
-
|
|
1323
1261
|
for ( var y = 0; y < h; y ++ ) for ( var x = 0; x < w; x ++ ) {
|
|
1324
1262
|
|
|
1325
1263
|
if ( xoff >= 0 && yoff >= 0 ) {
|
|
@@ -1362,6 +1300,7 @@
|
|
|
1362
1300
|
} else if ( mode == 2 ) {
|
|
1363
1301
|
|
|
1364
1302
|
// copy only differences, otherwise zero
|
|
1303
|
+
|
|
1365
1304
|
var fa = sb[ si + 3 ],
|
|
1366
1305
|
fr = sb[ si ],
|
|
1367
1306
|
fg = sb[ si + 1 ],
|
|
@@ -1370,7 +1309,6 @@
|
|
|
1370
1309
|
br = tb[ ti ],
|
|
1371
1310
|
bg = tb[ ti + 1 ],
|
|
1372
1311
|
bb = tb[ ti + 2 ];
|
|
1373
|
-
|
|
1374
1312
|
if ( fa == ba && fr == br && fg == bg && fb == bb ) {
|
|
1375
1313
|
|
|
1376
1314
|
tb[ ti ] = 0;
|
|
@@ -1390,6 +1328,7 @@
|
|
|
1390
1328
|
} else if ( mode == 3 ) {
|
|
1391
1329
|
|
|
1392
1330
|
// check if can be blended
|
|
1331
|
+
|
|
1393
1332
|
var fa = sb[ si + 3 ],
|
|
1394
1333
|
fr = sb[ si ],
|
|
1395
1334
|
fg = sb[ si + 1 ],
|
|
@@ -1398,8 +1337,8 @@
|
|
|
1398
1337
|
br = tb[ ti ],
|
|
1399
1338
|
bg = tb[ ti + 1 ],
|
|
1400
1339
|
bb = tb[ ti + 2 ];
|
|
1401
|
-
if ( fa == ba && fr == br && fg == bg && fb == bb ) continue;
|
|
1402
|
-
|
|
1340
|
+
if ( fa == ba && fr == br && fg == bg && fb == bb ) continue;
|
|
1341
|
+
//if(fa!=255 && ba!=0) return false;
|
|
1403
1342
|
if ( fa < 220 && ba > 20 ) return false;
|
|
1404
1343
|
|
|
1405
1344
|
}
|