super-three 0.147.1 → 0.154.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/LICENSE +1 -1
- package/build/three.cjs +37190 -21678
- package/build/three.js +37182 -21669
- package/build/three.min.js +4 -2
- package/build/three.module.js +7656 -6548
- package/build/three.module.min.js +7 -0
- package/examples/jsm/animation/AnimationClipCreator.js +5 -3
- package/examples/jsm/cameras/CinematicCamera.js +1 -2
- package/examples/jsm/capabilities/WebGPU.js +17 -5
- package/examples/jsm/controls/ArcballControls.js +1835 -1827
- package/examples/jsm/controls/FlyControls.js +25 -9
- package/examples/jsm/controls/MapControls.js +28 -0
- package/examples/jsm/controls/OrbitControls.js +25 -46
- package/examples/jsm/controls/PointerLockControls.js +70 -65
- package/examples/jsm/controls/TrackballControls.js +18 -4
- package/examples/jsm/controls/TransformControls.js +0 -1
- package/examples/jsm/csm/CSM.js +12 -6
- package/examples/jsm/csm/CSMShader.js +7 -6
- package/examples/jsm/effects/AnaglyphEffect.js +6 -20
- package/examples/jsm/effects/AsciiEffect.js +3 -6
- package/examples/jsm/effects/OutlineEffect.js +2 -16
- package/examples/jsm/effects/ParallaxBarrierEffect.js +3 -0
- package/examples/jsm/environments/RoomEnvironment.js +6 -2
- package/examples/jsm/exporters/DRACOExporter.js +53 -11
- package/examples/jsm/exporters/EXRExporter.js +3 -9
- package/examples/jsm/exporters/GLTFExporter.js +597 -112
- package/examples/jsm/exporters/KTX2Exporter.js +34 -23
- package/examples/jsm/exporters/MMDExporter.js +1 -1
- package/examples/jsm/exporters/PLYExporter.js +8 -1
- package/examples/jsm/exporters/STLExporter.js +8 -4
- package/examples/jsm/exporters/USDZExporter.js +184 -124
- package/examples/jsm/geometries/ConvexGeometry.js +0 -6
- package/examples/jsm/geometries/ParametricGeometry.js +10 -0
- package/examples/jsm/helpers/OctreeHelper.js +1 -0
- package/examples/jsm/helpers/ViewHelper.js +71 -57
- package/examples/jsm/interactive/HTMLMesh.js +16 -3
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/{js → jsm}/libs/basis/README.md +4 -4
- package/examples/jsm/libs/draco/draco_decoder.js +34 -0
- package/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
- package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
- package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -0
- package/examples/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
- package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/examples/jsm/libs/lil-gui.module.min.js +2 -2
- package/examples/jsm/libs/tween.module.js +803 -0
- package/examples/jsm/lights/IESSpotLight.js +25 -0
- package/examples/jsm/lights/LightProbeGenerator.js +11 -9
- package/examples/jsm/lines/LineMaterial.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +12 -10
- package/examples/jsm/loaders/3DMLoader.js +9 -6
- package/examples/jsm/loaders/3MFLoader.js +17 -12
- package/examples/jsm/loaders/AMFLoader.js +7 -4
- package/examples/jsm/loaders/BVHLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +19 -17
- package/examples/jsm/loaders/DRACOLoader.js +69 -18
- package/examples/jsm/loaders/EXRLoader.js +23 -24
- package/examples/jsm/loaders/FBXLoader.js +41 -52
- package/examples/jsm/loaders/GCodeLoader.js +1 -2
- package/examples/jsm/loaders/GLTFLoader.js +452 -282
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +4 -4
- package/examples/jsm/loaders/IESLoader.js +337 -0
- package/examples/jsm/loaders/KMZLoader.js +4 -4
- package/examples/jsm/loaders/KTX2Loader.js +145 -69
- package/examples/jsm/loaders/LDrawLoader.js +24 -25
- package/examples/jsm/loaders/LWOLoader.js +12 -29
- package/examples/jsm/loaders/LottieLoader.js +3 -1
- package/examples/jsm/loaders/MMDLoader.js +49 -18
- package/examples/jsm/loaders/MTLLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +9 -3
- package/examples/jsm/loaders/NRRDLoader.js +33 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +26 -12
- package/examples/jsm/loaders/PDBLoader.js +7 -2
- package/examples/jsm/loaders/PLYLoader.js +261 -106
- package/examples/jsm/loaders/RGBELoader.js +3 -3
- package/examples/jsm/loaders/STLLoader.js +9 -5
- package/examples/jsm/loaders/SVGLoader.js +36 -27
- package/examples/jsm/loaders/TTFLoader.js +1 -8
- package/examples/jsm/loaders/TiltLoader.js +13 -7
- package/examples/jsm/loaders/USDZLoader.js +5 -5
- package/examples/jsm/loaders/VOXLoader.js +8 -2
- package/examples/jsm/loaders/VRMLLoader.js +60 -20
- package/examples/jsm/loaders/VTKLoader.js +19 -10
- package/examples/jsm/loaders/XYZLoader.js +9 -3
- package/examples/jsm/loaders/lwo/IFFParser.js +19 -19
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -5
- package/examples/jsm/math/Lut.js +5 -4
- package/examples/jsm/math/MeshSurfaceSampler.js +82 -43
- package/examples/jsm/misc/ConvexObjectBreaker.js +2 -8
- package/examples/jsm/misc/GPUComputationRenderer.js +6 -5
- package/examples/jsm/misc/MD2Character.js +2 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +2 -2
- package/examples/jsm/misc/ProgressiveLightMap.js +12 -10
- package/examples/jsm/misc/RollerCoaster.js +7 -1
- package/examples/jsm/misc/Volume.js +20 -5
- package/examples/jsm/misc/VolumeSlice.js +3 -1
- package/examples/jsm/modifiers/CurveModifier.js +1 -0
- package/examples/jsm/modifiers/TessellateModifier.js +19 -19
- package/examples/jsm/nodes/Nodes.js +149 -335
- package/examples/jsm/nodes/accessors/BitangentNode.js +43 -16
- package/examples/jsm/nodes/accessors/BufferAttributeNode.js +99 -0
- package/examples/jsm/nodes/accessors/BufferNode.js +6 -0
- package/examples/jsm/nodes/accessors/CameraNode.js +36 -5
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +27 -33
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +64 -0
- package/examples/jsm/nodes/accessors/InstanceNode.js +39 -26
- package/examples/jsm/nodes/accessors/MaterialNode.js +164 -39
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +16 -0
- package/examples/jsm/nodes/accessors/ModelNode.js +13 -0
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +13 -14
- package/examples/jsm/nodes/accessors/MorphNode.js +70 -0
- package/examples/jsm/nodes/accessors/NormalNode.js +36 -19
- package/examples/jsm/nodes/accessors/Object3DNode.js +40 -12
- package/examples/jsm/nodes/accessors/PointUVNode.js +6 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +38 -23
- package/examples/jsm/nodes/accessors/ReferenceNode.js +21 -14
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +11 -7
- package/examples/jsm/nodes/accessors/SceneNode.js +46 -0
- package/examples/jsm/nodes/accessors/SkinningNode.js +55 -71
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +6 -0
- package/examples/jsm/nodes/accessors/TangentNode.js +28 -20
- package/examples/jsm/nodes/accessors/TextureBicubicNode.js +94 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +143 -13
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +35 -0
- package/examples/jsm/nodes/accessors/UVNode.js +7 -1
- package/examples/jsm/nodes/accessors/UserDataNode.js +6 -0
- package/examples/jsm/nodes/code/CodeNode.js +78 -0
- package/examples/jsm/nodes/code/ExpressionNode.js +37 -0
- package/examples/jsm/nodes/{core → code}/FunctionCallNode.js +15 -1
- package/examples/jsm/nodes/{core → code}/FunctionNode.js +31 -9
- package/examples/jsm/nodes/code/ScriptableNode.js +488 -0
- package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -0
- package/examples/jsm/nodes/core/ArrayUniformNode.js +3 -0
- package/examples/jsm/nodes/core/AttributeNode.js +17 -9
- package/examples/jsm/nodes/core/BypassNode.js +11 -4
- package/examples/jsm/nodes/core/CacheNode.js +46 -0
- package/examples/jsm/nodes/core/ConstNode.js +3 -0
- package/examples/jsm/nodes/core/ContextNode.js +10 -1
- package/examples/jsm/nodes/core/IndexNode.js +66 -0
- package/examples/jsm/nodes/core/InputNode.js +26 -5
- package/examples/jsm/nodes/core/LightingModel.js +17 -0
- package/examples/jsm/nodes/core/Node.js +128 -37
- package/examples/jsm/nodes/core/NodeAttribute.js +2 -1
- package/examples/jsm/nodes/core/NodeBuilder.js +287 -118
- package/examples/jsm/nodes/core/NodeCache.js +26 -0
- package/examples/jsm/nodes/core/NodeFrame.js +56 -5
- package/examples/jsm/nodes/core/NodeUtils.js +115 -28
- package/examples/jsm/nodes/core/PropertyNode.js +23 -2
- package/examples/jsm/nodes/core/StackNode.js +99 -0
- package/examples/jsm/nodes/core/TempNode.js +11 -3
- package/examples/jsm/nodes/core/UniformNode.js +16 -1
- package/examples/jsm/nodes/core/VarNode.js +19 -29
- package/examples/jsm/nodes/core/VaryingNode.js +15 -2
- package/examples/jsm/nodes/core/constants.js +6 -0
- package/examples/jsm/nodes/display/BlendModeNode.js +33 -19
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +36 -20
- package/examples/jsm/nodes/display/ColorSpaceNode.js +60 -47
- package/examples/jsm/nodes/display/FrontFacingNode.js +7 -1
- package/examples/jsm/nodes/display/NormalMapNode.js +33 -20
- package/examples/jsm/nodes/display/PosterizeNode.js +10 -3
- package/examples/jsm/nodes/display/ToneMappingNode.js +101 -11
- package/examples/jsm/nodes/display/ViewportDepthNode.js +69 -0
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +34 -0
- package/examples/jsm/nodes/display/ViewportNode.js +27 -18
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +31 -0
- package/examples/jsm/nodes/display/ViewportTextureNode.js +75 -0
- package/examples/jsm/nodes/fog/FogExp2Node.js +35 -0
- package/examples/jsm/nodes/fog/FogNode.js +12 -6
- package/examples/jsm/nodes/fog/FogRangeNode.js +12 -5
- package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +30 -0
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +15 -16
- package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +3 -3
- package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +43 -0
- package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +9 -7
- package/examples/jsm/nodes/functions/BSDF/D_GGX.js +5 -5
- package/examples/jsm/nodes/functions/BSDF/EnvironmentBRDF.js +13 -0
- package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +4 -6
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +8 -6
- package/examples/jsm/nodes/functions/PhongLightingModel.js +28 -0
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +155 -45
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +5 -4
- package/examples/jsm/nodes/functions/material/getRoughness.js +6 -6
- package/examples/jsm/nodes/geometry/RangeNode.js +50 -55
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +9 -2
- package/examples/jsm/nodes/lighting/AONode.js +5 -3
- package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -0
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +114 -5
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +43 -0
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +153 -38
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +15 -10
- package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -0
- package/examples/jsm/nodes/lighting/LightNode.js +57 -0
- package/examples/jsm/nodes/lighting/LightUtils.js +17 -0
- package/examples/jsm/nodes/lighting/LightingContextNode.js +41 -17
- package/examples/jsm/nodes/lighting/LightingNode.js +3 -1
- package/examples/jsm/nodes/lighting/LightsNode.js +18 -10
- package/examples/jsm/nodes/lighting/PointLightNode.js +71 -0
- package/examples/jsm/nodes/lighting/SpotLightNode.js +92 -0
- package/examples/jsm/nodes/loaders/NodeLoader.js +5 -4
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +4 -20
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +6 -24
- package/examples/jsm/nodes/materials/Materials.js +11 -55
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +5 -26
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +38 -0
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +65 -0
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +47 -6
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +22 -110
- package/examples/jsm/nodes/materials/NodeMaterial.js +340 -67
- package/examples/jsm/nodes/materials/PointsNodeMaterial.js +7 -10
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +29 -32
- package/examples/jsm/nodes/materialx/MaterialXNodes.js +31 -22
- package/examples/jsm/nodes/materialx/lib/mx_hsv.js +3 -3
- package/examples/jsm/nodes/materialx/lib/mx_noise.js +14 -13
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +4 -3
- package/examples/jsm/nodes/math/CondNode.js +43 -17
- package/examples/jsm/nodes/math/MathNode.js +184 -73
- package/examples/jsm/nodes/math/OperatorNode.js +53 -3
- package/examples/jsm/nodes/procedural/CheckerNode.js +16 -8
- package/examples/jsm/nodes/shadernode/ShaderNode.js +206 -63
- package/examples/jsm/nodes/utils/ArrayElementNode.js +4 -2
- package/examples/jsm/nodes/utils/ConvertNode.js +19 -1
- package/examples/jsm/nodes/utils/DiscardNode.js +26 -0
- package/examples/jsm/nodes/utils/EquirectUVNode.js +10 -4
- package/examples/jsm/nodes/utils/JoinNode.js +4 -1
- package/examples/jsm/nodes/utils/LoopNode.js +186 -0
- package/examples/jsm/nodes/utils/MatcapUVNode.js +11 -4
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +18 -5
- package/examples/jsm/nodes/utils/OscNode.js +21 -14
- package/examples/jsm/nodes/utils/PackingNode.js +55 -0
- package/examples/jsm/nodes/utils/RemapNode.js +13 -5
- package/examples/jsm/nodes/utils/RotateUVNode.js +18 -7
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -0
- package/examples/jsm/nodes/utils/SplitNode.js +7 -5
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +15 -30
- package/examples/jsm/nodes/utils/TimerNode.js +16 -6
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +21 -10
- package/examples/jsm/objects/GroundProjectedSkybox.js +172 -0
- package/examples/jsm/objects/Lensflare.js +3 -4
- package/examples/jsm/objects/MarchingCubes.js +5 -1
- package/examples/jsm/objects/Reflector.js +8 -5
- package/examples/jsm/objects/Refractor.js +5 -5
- package/examples/jsm/objects/ShadowMesh.js +3 -3
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/Water.js +2 -1
- package/examples/jsm/objects/Water2.js +1 -1
- package/examples/jsm/offscreen/scene.js +1 -0
- package/examples/jsm/physics/AmmoPhysics.js +27 -28
- package/examples/jsm/physics/RapierPhysics.js +199 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +3 -2
- package/examples/jsm/postprocessing/BloomPass.js +7 -4
- package/examples/jsm/postprocessing/BokehPass.js +3 -8
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -2
- package/examples/jsm/postprocessing/EffectComposer.js +7 -95
- package/examples/jsm/postprocessing/FilmPass.js +1 -2
- package/examples/jsm/postprocessing/GlitchPass.js +0 -2
- package/examples/jsm/postprocessing/HalftonePass.js +0 -6
- package/examples/jsm/postprocessing/OutlinePass.js +8 -10
- package/examples/jsm/postprocessing/OutputPass.js +72 -0
- package/examples/jsm/postprocessing/Pass.js +2 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +4 -3
- package/examples/jsm/postprocessing/SAOPass.js +4 -26
- package/examples/jsm/postprocessing/SMAAPass.js +5 -8
- package/examples/jsm/postprocessing/SSAARenderPass.js +5 -5
- package/examples/jsm/postprocessing/SSAOPass.js +4 -14
- package/examples/jsm/postprocessing/SSRPass.js +3 -7
- package/examples/jsm/postprocessing/SavePass.js +5 -4
- package/examples/jsm/postprocessing/ShaderPass.js +1 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +17 -4
- package/examples/jsm/postprocessing/TexturePass.js +2 -3
- package/examples/jsm/postprocessing/UnrealBloomPass.js +13 -21
- package/examples/jsm/renderers/CSS2DRenderer.js +6 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +27 -5
- package/examples/jsm/renderers/{webgpu/WebGPUAnimation.js → common/Animation.js} +4 -4
- package/examples/jsm/renderers/common/Attributes.js +75 -0
- package/examples/jsm/renderers/common/Backend.js +162 -0
- package/examples/jsm/renderers/common/Background.js +134 -0
- package/examples/jsm/renderers/common/Binding.js +11 -0
- package/examples/jsm/renderers/common/Bindings.js +169 -0
- package/examples/jsm/renderers/common/Buffer.js +38 -0
- package/examples/jsm/renderers/{webgpu/WebGPUBufferUtils.js → common/BufferUtils.js} +2 -2
- package/examples/jsm/renderers/common/ChainMap.js +89 -0
- package/examples/jsm/renderers/common/ComputePipeline.js +17 -0
- package/examples/jsm/renderers/common/Constants.js +14 -0
- package/examples/jsm/renderers/common/CubeRenderTarget.js +65 -0
- package/examples/jsm/renderers/common/DataMap.js +54 -0
- package/examples/jsm/renderers/common/Geometries.js +215 -0
- package/examples/jsm/renderers/{webgpu/WebGPUInfo.js → common/Info.js} +2 -3
- package/examples/jsm/renderers/common/Pipeline.js +13 -0
- package/examples/jsm/renderers/common/Pipelines.js +321 -0
- package/examples/jsm/renderers/common/ProgrammableStage.js +18 -0
- package/examples/jsm/renderers/common/RenderContext.js +37 -0
- package/examples/jsm/renderers/common/RenderContexts.js +38 -0
- package/examples/jsm/renderers/{webgpu/WebGPURenderLists.js → common/RenderList.js} +26 -47
- package/examples/jsm/renderers/common/RenderLists.js +38 -0
- package/examples/jsm/renderers/common/RenderObject.js +113 -0
- package/examples/jsm/renderers/common/RenderObjects.js +92 -0
- package/examples/jsm/renderers/common/RenderPipeline.js +16 -0
- package/examples/jsm/renderers/common/RenderTarget.js +15 -0
- package/examples/jsm/renderers/common/Renderer.js +864 -0
- package/examples/jsm/renderers/common/SampledTexture.js +80 -0
- package/examples/jsm/renderers/common/Sampler.js +18 -0
- package/examples/jsm/renderers/common/StorageBuffer.js +17 -0
- package/examples/jsm/renderers/common/Textures.js +206 -0
- package/examples/jsm/renderers/{webgpu/WebGPUUniform.js → common/Uniform.js} +13 -9
- package/examples/jsm/renderers/common/UniformBuffer.js +15 -0
- package/examples/jsm/renderers/{webgpu/WebGPUUniformsGroup.js → common/UniformsGroup.js} +13 -13
- package/examples/jsm/renderers/common/nodes/NodeRender.js +302 -0
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampledTexture.js → common/nodes/NodeSampledTexture.js} +4 -4
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeSampler.js → common/nodes/NodeSampler.js} +3 -3
- package/examples/jsm/renderers/{webgpu/nodes/WebGPUNodeUniform.js → common/nodes/NodeUniform.js} +1 -1
- package/examples/jsm/renderers/common/nodes/Nodes.js +319 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +340 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +58 -50
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +847 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +15 -987
- package/examples/jsm/renderers/webgpu/nodes/{WebGPUNodeBuilder.js → WGSLNodeBuilder.js} +139 -92
- package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeFunction.js +2 -2
- package/examples/jsm/{nodes/parsers → renderers/webgpu/nodes}/WGSLNodeParser.js +1 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +255 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +145 -0
- package/examples/jsm/renderers/webgpu/{constants.js → utils/WebGPUConstants.js} +73 -12
- package/examples/jsm/renderers/webgpu/{WebGPURenderPipeline.js → utils/WebGPUPipelineUtils.js} +141 -296
- package/examples/jsm/renderers/webgpu/{WebGPUTextureUtils.js → utils/WebGPUTextureMipmapUtils.js} +5 -25
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +937 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +92 -0
- package/examples/jsm/shaders/BleachBypassShader.js +2 -0
- package/examples/jsm/shaders/BlendShader.js +1 -2
- package/examples/jsm/shaders/BokehShader2.js +3 -0
- package/examples/jsm/shaders/ColorifyShader.js +2 -0
- package/examples/jsm/shaders/ConvolutionShader.js +2 -0
- package/examples/jsm/shaders/CopyShader.js +4 -2
- package/examples/jsm/shaders/DotScreenShader.js +2 -0
- package/examples/jsm/shaders/ExposureShader.js +44 -0
- package/examples/jsm/shaders/FilmShader.js +2 -0
- package/examples/jsm/shaders/GammaCorrectionShader.js +2 -0
- package/examples/jsm/shaders/HorizontalBlurShader.js +2 -0
- package/examples/jsm/shaders/MMDToonShader.js +15 -4
- package/examples/jsm/shaders/OutputShader.js +61 -0
- package/examples/jsm/shaders/RGBShiftShader.js +4 -2
- package/examples/jsm/shaders/SepiaShader.js +2 -0
- package/examples/jsm/shaders/ToonShader.js +13 -5
- package/examples/jsm/shaders/VelocityShader.js +1 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +2 -0
- package/examples/jsm/shaders/VignetteShader.js +2 -0
- package/examples/jsm/shaders/WaterRefractionShader.js +5 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +54 -36
- package/examples/jsm/utils/LDrawUtils.js +4 -4
- package/examples/jsm/utils/PackedPhongMaterial.js +5 -78
- package/examples/jsm/utils/SceneUtils.js +8 -4
- package/examples/jsm/utils/SkeletonUtils.js +27 -210
- package/examples/jsm/utils/TextureUtils.js +86 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +34 -13
- package/examples/jsm/webxr/VRButton.js +1 -2
- package/examples/jsm/webxr/XRButton.js +198 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +1 -0
- package/examples/jsm/webxr/XRPlanes.js +100 -0
- package/package.json +35 -87
- package/src/Three.Legacy.js +0 -319
- package/src/Three.js +4 -3
- package/src/animation/AnimationUtils.js +13 -1
- package/src/animation/PropertyBinding.js +2 -2
- package/src/audio/Audio.js +7 -2
- package/src/audio/PositionalAudio.js +8 -0
- package/src/cameras/Camera.js +5 -0
- package/src/cameras/CubeCamera.js +76 -13
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/constants.js +22 -2
- package/src/core/BufferAttribute.js +146 -29
- package/src/core/BufferGeometry.js +2 -15
- package/src/core/GLBufferAttribute.js +2 -0
- package/src/core/InterleavedBufferAttribute.js +1 -1
- package/src/core/Object3D.js +37 -8
- package/src/extras/DataUtils.js +7 -1
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +5 -5
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/curves/LineCurve.js +6 -4
- package/src/extras/curves/LineCurve3.js +13 -0
- package/src/geometries/BoxGeometry.js +10 -0
- package/src/geometries/CircleGeometry.js +11 -1
- package/src/geometries/ConeGeometry.js +1 -1
- package/src/geometries/CylinderGeometry.js +11 -1
- package/src/geometries/EdgesGeometry.js +10 -0
- package/src/geometries/ExtrudeGeometry.js +11 -1
- package/src/geometries/LatheGeometry.js +10 -0
- package/src/geometries/PlaneGeometry.js +10 -0
- package/src/geometries/PolyhedronGeometry.js +10 -0
- package/src/geometries/RingGeometry.js +11 -1
- package/src/geometries/ShapeGeometry.js +10 -0
- package/src/geometries/SphereGeometry.js +12 -2
- package/src/geometries/TorusGeometry.js +11 -1
- package/src/geometries/TorusKnotGeometry.js +10 -0
- package/src/geometries/TubeGeometry.js +10 -0
- package/src/geometries/WireframeGeometry.js +10 -0
- package/src/helpers/Box3Helper.js +1 -2
- package/src/lights/DirectionalLight.js +1 -1
- package/src/lights/HemisphereLight.js +1 -1
- package/src/lights/SpotLight.js +1 -1
- package/src/loaders/AudioLoader.js +14 -8
- package/src/loaders/CubeTextureLoader.js +2 -0
- package/src/loaders/DataTextureLoader.js +5 -1
- package/src/loaders/Loader.js +2 -0
- package/src/loaders/MaterialLoader.js +9 -0
- package/src/loaders/ObjectLoader.js +10 -2
- package/src/materials/LineBasicMaterial.js +4 -0
- package/src/materials/Material.js +19 -4
- package/src/materials/MeshDistanceMaterial.js +0 -9
- package/src/materials/MeshPhysicalMaterial.js +32 -6
- package/src/materials/ShaderMaterial.js +6 -1
- package/src/math/Box2.js +3 -2
- package/src/math/Box3.js +49 -64
- package/src/math/Color.js +88 -66
- package/src/math/ColorManagement.js +75 -16
- package/src/math/Euler.js +2 -11
- package/src/math/Frustum.js +29 -5
- package/src/math/MathUtils.js +43 -1
- package/src/math/Matrix3.js +26 -6
- package/src/math/Matrix4.js +74 -19
- package/src/math/Plane.js +2 -2
- package/src/math/Quaternion.js +6 -0
- package/src/math/Ray.js +7 -7
- package/src/math/Triangle.js +37 -7
- package/src/math/Vector2.js +16 -0
- package/src/math/Vector3.js +10 -0
- package/src/math/interpolants/CubicInterpolant.js +1 -2
- package/src/objects/InstancedMesh.js +82 -1
- package/src/objects/Mesh.js +108 -76
- package/src/objects/Skeleton.js +1 -3
- package/src/objects/SkinnedMesh.js +123 -8
- package/src/objects/Sprite.js +1 -1
- package/src/renderers/WebGLCubeRenderTarget.js +12 -3
- package/src/renderers/WebGLMultipleRenderTargets.js +4 -2
- package/src/renderers/WebGLRenderTarget.js +14 -2
- package/src/renderers/WebGLRenderer.js +1439 -1252
- package/src/renderers/shaders/ShaderChunk/alphahash_fragment.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/alphahash_pars_fragment.glsl.js +68 -0
- package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/begin_vertex.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -271
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +5 -5
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +2 -10
- package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +5 -5
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +38 -0
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +26 -3
- package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +10 -2
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -11
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +39 -13
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +306 -10
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +1 -11
- package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +9 -1
- package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +10 -2
- package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +40 -10
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -13
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +7 -7
- package/src/renderers/shaders/ShaderChunk/{output_fragment.glsl.js → opaque_fragment.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +11 -5
- package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +4 -11
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +39 -34
- package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +5 -5
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +101 -16
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +113 -1
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +135 -7
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +117 -2
- package/src/renderers/shaders/ShaderChunk.js +10 -12
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -9
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/cube.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/distanceRGBA.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +7 -2
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +5 -6
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +4 -5
- package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +3 -3
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +4 -5
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +20 -14
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +4 -5
- package/src/renderers/shaders/ShaderLib/points.glsl.js +17 -2
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +6 -1
- package/src/renderers/shaders/ShaderLib/sprite.glsl.js +4 -2
- package/src/renderers/shaders/ShaderLib.js +18 -4
- package/src/renderers/shaders/UniformsLib.js +27 -15
- package/src/renderers/shaders/UniformsUtils.js +12 -3
- package/src/renderers/webgl/WebGLBackground.js +23 -12
- package/src/renderers/webgl/WebGLBindingStates.js +13 -5
- package/src/renderers/webgl/WebGLCapabilities.js +1 -2
- package/src/renderers/webgl/WebGLClipping.js +7 -3
- package/src/renderers/webgl/WebGLGeometries.js +12 -0
- package/src/renderers/webgl/WebGLInfo.js +0 -1
- package/src/renderers/webgl/WebGLLights.js +2 -2
- package/src/renderers/webgl/WebGLMaterials.js +123 -234
- package/src/renderers/webgl/WebGLMorphtargets.js +1 -1
- package/src/renderers/webgl/WebGLObjects.js +23 -3
- package/src/renderers/webgl/WebGLProgram.js +154 -53
- package/src/renderers/webgl/WebGLPrograms.js +213 -130
- package/src/renderers/webgl/WebGLRenderStates.js +2 -2
- package/src/renderers/webgl/WebGLShadowMap.js +40 -27
- package/src/renderers/webgl/WebGLState.js +23 -9
- package/src/renderers/webgl/WebGLTextures.js +39 -19
- package/src/renderers/webgl/WebGLUniformsGroups.js +74 -33
- package/src/renderers/webgl/WebGLUtils.js +41 -29
- package/src/renderers/webvr/WebVRManager.js +12 -0
- package/src/renderers/webxr/WebXRController.js +3 -0
- package/src/renderers/webxr/WebXRManager.js +96 -134
- package/src/scenes/Scene.js +2 -18
- package/src/textures/CompressedTexture.js +2 -2
- package/src/textures/CubeTexture.js +2 -2
- package/src/textures/DataTexture.js +2 -2
- package/src/textures/DepthTexture.js +22 -0
- package/src/textures/FramebufferTexture.js +1 -3
- package/src/textures/Source.js +4 -0
- package/src/textures/Texture.js +42 -13
- package/src/utils.js +13 -1
- package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
- package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
- package/examples/fonts/open-sans/open-sans.css +0 -9
- package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +0 -3966
- package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
- package/examples/fonts/tabler-icons/tabler-icons.min.css +0 -4
- package/examples/js/animation/AnimationClipCreator.js +0 -89
- package/examples/js/animation/CCDIKSolver.js +0 -416
- package/examples/js/animation/MMDAnimationHelper.js +0 -1046
- package/examples/js/animation/MMDPhysics.js +0 -1174
- package/examples/js/cameras/CinematicCamera.js +0 -168
- package/examples/js/controls/ArcballControls.js +0 -2770
- package/examples/js/controls/DragControls.js +0 -205
- package/examples/js/controls/FirstPersonControls.js +0 -312
- package/examples/js/controls/FlyControls.js +0 -321
- package/examples/js/controls/OrbitControls.js +0 -1101
- package/examples/js/controls/PointerLockControls.js +0 -144
- package/examples/js/controls/TrackballControls.js +0 -729
- package/examples/js/controls/TransformControls.js +0 -1301
- package/examples/js/csm/CSM.js +0 -347
- package/examples/js/csm/CSMFrustum.js +0 -127
- package/examples/js/csm/CSMHelper.js +0 -165
- package/examples/js/csm/CSMShader.js +0 -253
- package/examples/js/curves/CurveExtras.js +0 -348
- package/examples/js/curves/NURBSCurve.js +0 -63
- package/examples/js/curves/NURBSSurface.js +0 -48
- package/examples/js/curves/NURBSUtils.js +0 -439
- package/examples/js/effects/AnaglyphEffect.js +0 -86
- package/examples/js/effects/AsciiEffect.js +0 -260
- package/examples/js/effects/OutlineEffect.js +0 -450
- package/examples/js/effects/ParallaxBarrierEffect.js +0 -62
- package/examples/js/effects/PeppersGhostEffect.js +0 -139
- package/examples/js/effects/StereoEffect.js +0 -46
- package/examples/js/environments/DebugEnvironment.js +0 -53
- package/examples/js/environments/RoomEnvironment.js +0 -124
- package/examples/js/exporters/ColladaExporter.js +0 -487
- package/examples/js/exporters/DRACOExporter.js +0 -212
- package/examples/js/exporters/EXRExporter.js +0 -455
- package/examples/js/exporters/GLTFExporter.js +0 -2367
- package/examples/js/exporters/MMDExporter.js +0 -187
- package/examples/js/exporters/OBJExporter.js +0 -260
- package/examples/js/exporters/PLYExporter.js +0 -427
- package/examples/js/exporters/STLExporter.js +0 -188
- package/examples/js/exporters/USDZExporter.js +0 -608
- package/examples/js/geometries/BoxLineGeometry.js +0 -59
- package/examples/js/geometries/ConvexGeometry.js +0 -53
- package/examples/js/geometries/DecalGeometry.js +0 -324
- package/examples/js/geometries/LightningStrike.js +0 -861
- package/examples/js/geometries/ParametricGeometries.js +0 -216
- package/examples/js/geometries/ParametricGeometry.js +0 -121
- package/examples/js/geometries/RoundedBoxGeometry.js +0 -142
- package/examples/js/geometries/TeapotGeometry.js +0 -335
- package/examples/js/geometries/TextGeometry.js +0 -53
- package/examples/js/helpers/LightProbeHelper.js +0 -48
- package/examples/js/helpers/OctreeHelper.js +0 -76
- package/examples/js/helpers/PositionalAudioHelper.js +0 -91
- package/examples/js/helpers/RectAreaLightHelper.js +0 -73
- package/examples/js/helpers/VertexNormalsHelper.js +0 -74
- package/examples/js/helpers/VertexTangentsHelper.js +0 -68
- package/examples/js/helpers/ViewHelper.js +0 -281
- package/examples/js/interactive/HTMLMesh.js +0 -497
- package/examples/js/interactive/InteractiveGroup.js +0 -95
- package/examples/js/interactive/SelectionBox.js +0 -195
- package/examples/js/interactive/SelectionHelper.js +0 -83
- package/examples/js/libs/chevrotain.min.js +0 -3
- package/examples/js/libs/draco/draco_decoder.js +0 -52
- package/examples/js/libs/draco/draco_decoder.wasm +0 -0
- package/examples/js/libs/draco/draco_wasm_wrapper.js +0 -104
- package/examples/js/libs/draco/gltf/draco_decoder.js +0 -48
- package/examples/js/libs/draco/gltf/draco_decoder.wasm +0 -0
- package/examples/js/libs/draco/gltf/draco_wasm_wrapper.js +0 -104
- package/examples/js/libs/fflate.min.js +0 -7
- package/examples/js/libs/ktx-parse.umd.js +0 -1
- package/examples/js/libs/meshopt_decoder.js +0 -188
- package/examples/js/libs/opentype.min.js +0 -1
- package/examples/js/libs/stats.min.js +0 -5
- package/examples/js/lights/LightProbeGenerator.js +0 -221
- package/examples/js/lights/RectAreaLightUniformsLib.js +0 -60
- package/examples/js/lines/Line2.js +0 -19
- package/examples/js/lines/LineGeometry.js +0 -69
- package/examples/js/lines/LineMaterial.js +0 -635
- package/examples/js/lines/LineSegments2.js +0 -313
- package/examples/js/lines/LineSegmentsGeometry.js +0 -198
- package/examples/js/lines/Wireframe.js +0 -47
- package/examples/js/lines/WireframeGeometry2.js +0 -20
- package/examples/js/loaders/3DMLoader.js +0 -1273
- package/examples/js/loaders/3MFLoader.js +0 -1306
- package/examples/js/loaders/AMFLoader.js +0 -504
- package/examples/js/loaders/BVHLoader.js +0 -395
- package/examples/js/loaders/BasisTextureLoader.js +0 -706
- package/examples/js/loaders/ColladaLoader.js +0 -3690
- package/examples/js/loaders/DDSLoader.js +0 -244
- package/examples/js/loaders/DRACOLoader.js +0 -511
- package/examples/js/loaders/EXRLoader.js +0 -2039
- package/examples/js/loaders/FBXLoader.js +0 -3681
- package/examples/js/loaders/FontLoader.js +0 -160
- package/examples/js/loaders/GCodeLoader.js +0 -255
- package/examples/js/loaders/GLTFLoader.js +0 -3862
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -87
- package/examples/js/loaders/KMZLoader.js +0 -121
- package/examples/js/loaders/KTXLoader.js +0 -159
- package/examples/js/loaders/LDrawLoader.js +0 -2263
- package/examples/js/loaders/LUT3dlLoader.js +0 -135
- package/examples/js/loaders/LUTCubeLoader.js +0 -132
- package/examples/js/loaders/LWOLoader.js +0 -901
- package/examples/js/loaders/LogLuvLoader.js +0 -715
- package/examples/js/loaders/LottieLoader.js +0 -62
- package/examples/js/loaders/MD2Loader.js +0 -248
- package/examples/js/loaders/MDDLoader.js +0 -91
- package/examples/js/loaders/MMDLoader.js +0 -1915
- package/examples/js/loaders/MTLLoader.js +0 -472
- package/examples/js/loaders/NRRDLoader.js +0 -609
- package/examples/js/loaders/OBJLoader.js +0 -789
- package/examples/js/loaders/PCDLoader.js +0 -413
- package/examples/js/loaders/PDBLoader.js +0 -317
- package/examples/js/loaders/PLYLoader.js +0 -576
- package/examples/js/loaders/PRWMLoader.js +0 -249
- package/examples/js/loaders/PVRLoader.js +0 -218
- package/examples/js/loaders/RGBELoader.js +0 -442
- package/examples/js/loaders/RGBMLoader.js +0 -1354
- package/examples/js/loaders/STLLoader.js +0 -364
- package/examples/js/loaders/SVGLoader.js +0 -2783
- package/examples/js/loaders/TDSLoader.js +0 -992
- package/examples/js/loaders/TGALoader.js +0 -484
- package/examples/js/loaders/TIFFLoader.js +0 -30
- package/examples/js/loaders/TTFLoader.js +0 -203
- package/examples/js/loaders/TiltLoader.js +0 -459
- package/examples/js/loaders/VOXLoader.js +0 -240
- package/examples/js/loaders/VRMLLoader.js +0 -3140
- package/examples/js/loaders/VTKLoader.js +0 -1078
- package/examples/js/loaders/XYZLoader.js +0 -89
- package/examples/js/loaders/lwo/IFFParser.js +0 -1067
- package/examples/js/loaders/lwo/LWO2Parser.js +0 -397
- package/examples/js/loaders/lwo/LWO3Parser.js +0 -360
- package/examples/js/materials/MeshGouraudMaterial.js +0 -387
- package/examples/js/math/Capsule.js +0 -103
- package/examples/js/math/ColorConverter.js +0 -33
- package/examples/js/math/ConvexHull.js +0 -1154
- package/examples/js/math/ImprovedNoise.js +0 -66
- package/examples/js/math/Lut.js +0 -164
- package/examples/js/math/MeshSurfaceSampler.js +0 -171
- package/examples/js/math/OBB.js +0 -382
- package/examples/js/math/Octree.js +0 -410
- package/examples/js/math/SimplexNoise.js +0 -445
- package/examples/js/misc/ConvexObjectBreaker.js +0 -474
- package/examples/js/misc/GPUComputationRenderer.js +0 -393
- package/examples/js/misc/Gyroscope.js +0 -56
- package/examples/js/misc/MD2Character.js +0 -235
- package/examples/js/misc/MD2CharacterComplex.js +0 -513
- package/examples/js/misc/MorphAnimMesh.js +0 -63
- package/examples/js/misc/MorphBlendMesh.js +0 -265
- package/examples/js/misc/ProgressiveLightMap.js +0 -335
- package/examples/js/misc/RollerCoaster.js +0 -430
- package/examples/js/misc/TubePainter.js +0 -167
- package/examples/js/misc/Volume.js +0 -437
- package/examples/js/misc/VolumeSlice.js +0 -214
- package/examples/js/modifiers/CurveModifier.js +0 -309
- package/examples/js/modifiers/EdgeSplitModifier.js +0 -228
- package/examples/js/modifiers/SimplifyModifier.js +0 -465
- package/examples/js/modifiers/TessellateModifier.js +0 -276
- package/examples/js/objects/GroundProjectedEnv.js +0 -181
- package/examples/js/objects/Lensflare.js +0 -356
- package/examples/js/objects/LightningStorm.js +0 -206
- package/examples/js/objects/MarchingCubes.js +0 -759
- package/examples/js/objects/Reflector.js +0 -216
- package/examples/js/objects/ReflectorForSSRPass.js +0 -315
- package/examples/js/objects/Refractor.js +0 -283
- package/examples/js/objects/ShadowMesh.js +0 -59
- package/examples/js/objects/Sky.js +0 -218
- package/examples/js/objects/Water.js +0 -292
- package/examples/js/objects/Water2.js +0 -307
- package/examples/js/physics/AmmoPhysics.js +0 -259
- package/examples/js/physics/OimoPhysics.js +0 -217
- package/examples/js/postprocessing/AdaptiveToneMappingPass.js +0 -335
- package/examples/js/postprocessing/AfterimagePass.js +0 -77
- package/examples/js/postprocessing/BloomPass.js +0 -135
- package/examples/js/postprocessing/BokehPass.js +0 -120
- package/examples/js/postprocessing/ClearPass.js +0 -39
- package/examples/js/postprocessing/CubeTexturePass.js +0 -60
- package/examples/js/postprocessing/DotScreenPass.js +0 -51
- package/examples/js/postprocessing/EffectComposer.js +0 -272
- package/examples/js/postprocessing/FilmPass.js +0 -52
- package/examples/js/postprocessing/GlitchPass.js +0 -104
- package/examples/js/postprocessing/HalftonePass.js +0 -75
- package/examples/js/postprocessing/LUTPass.js +0 -171
- package/examples/js/postprocessing/MaskPass.js +0 -95
- package/examples/js/postprocessing/OutlinePass.js +0 -598
- package/examples/js/postprocessing/Pass.js +0 -72
- package/examples/js/postprocessing/RenderPass.js +0 -70
- package/examples/js/postprocessing/RenderPixelatedPass.js +0 -215
- package/examples/js/postprocessing/SAOPass.js +0 -374
- package/examples/js/postprocessing/SMAAPass.js +0 -170
- package/examples/js/postprocessing/SSAARenderPass.js +0 -156
- package/examples/js/postprocessing/SSAOPass.js +0 -365
- package/examples/js/postprocessing/SSRPass.js +0 -567
- package/examples/js/postprocessing/SavePass.js +0 -59
- package/examples/js/postprocessing/ShaderPass.js +0 -64
- package/examples/js/postprocessing/TAARenderPass.js +0 -130
- package/examples/js/postprocessing/TexturePass.js +0 -49
- package/examples/js/postprocessing/UnrealBloomPass.js +0 -375
- package/examples/js/renderers/CSS2DRenderer.js +0 -178
- package/examples/js/renderers/CSS3DRenderer.js +0 -237
- package/examples/js/renderers/Projector.js +0 -818
- package/examples/js/renderers/SVGRenderer.js +0 -491
- package/examples/js/shaders/ACESFilmicToneMappingShader.js +0 -89
- package/examples/js/shaders/AfterimageShader.js +0 -60
- package/examples/js/shaders/BasicShader.js +0 -27
- package/examples/js/shaders/BleachBypassShader.js +0 -62
- package/examples/js/shaders/BlendShader.js +0 -54
- package/examples/js/shaders/BokehShader.js +0 -156
- package/examples/js/shaders/BokehShader2.js +0 -419
- package/examples/js/shaders/BrightnessContrastShader.js +0 -58
- package/examples/js/shaders/ColorCorrectionShader.js +0 -52
- package/examples/js/shaders/ColorifyShader.js +0 -47
- package/examples/js/shaders/ConvolutionShader.js +0 -92
- package/examples/js/shaders/CopyShader.js +0 -45
- package/examples/js/shaders/DOFMipMapShader.js +0 -60
- package/examples/js/shaders/DepthLimitedBlurShader.js +0 -173
- package/examples/js/shaders/DigitalGlitch.js +0 -127
- package/examples/js/shaders/DotScreenShader.js +0 -72
- package/examples/js/shaders/FXAAShader.js +0 -284
- package/examples/js/shaders/FilmShader.js +0 -110
- package/examples/js/shaders/FocusShader.js +0 -95
- package/examples/js/shaders/FreiChenShader.js +0 -93
- package/examples/js/shaders/GammaCorrectionShader.js +0 -41
- package/examples/js/shaders/GodRaysShader.js +0 -284
- package/examples/js/shaders/HalftoneShader.js +0 -336
- package/examples/js/shaders/HorizontalBlurShader.js +0 -59
- package/examples/js/shaders/HorizontalTiltShiftShader.js +0 -65
- package/examples/js/shaders/HueSaturationShader.js +0 -69
- package/examples/js/shaders/KaleidoShader.js +0 -60
- package/examples/js/shaders/LuminosityHighPassShader.js +0 -67
- package/examples/js/shaders/LuminosityShader.js +0 -46
- package/examples/js/shaders/MMDToonShader.js +0 -94
- package/examples/js/shaders/MirrorShader.js +0 -56
- package/examples/js/shaders/NormalMapShader.js +0 -55
- package/examples/js/shaders/RGBShiftShader.js +0 -56
- package/examples/js/shaders/SAOShader.js +0 -209
- package/examples/js/shaders/SMAAShader.js +0 -454
- package/examples/js/shaders/SSAOShader.js +0 -295
- package/examples/js/shaders/SSRShader.js +0 -381
- package/examples/js/shaders/SepiaShader.js +0 -52
- package/examples/js/shaders/SobelOperatorShader.js +0 -88
- package/examples/js/shaders/SubsurfaceScatteringShader.js +0 -49
- package/examples/js/shaders/TechnicolorShader.js +0 -43
- package/examples/js/shaders/ToneMapShader.js +0 -84
- package/examples/js/shaders/ToonShader.js +0 -335
- package/examples/js/shaders/TriangleBlurShader.js +0 -70
- package/examples/js/shaders/UnpackDepthRGBAShader.js +0 -47
- package/examples/js/shaders/VelocityShader.js +0 -126
- package/examples/js/shaders/VerticalBlurShader.js +0 -59
- package/examples/js/shaders/VerticalTiltShiftShader.js +0 -65
- package/examples/js/shaders/VignetteShader.js +0 -53
- package/examples/js/shaders/VolumeShader.js +0 -296
- package/examples/js/shaders/WaterRefractionShader.js +0 -84
- package/examples/js/textures/FlakesTexture.js +0 -40
- package/examples/js/utils/BufferGeometryUtils.js +0 -1160
- package/examples/js/utils/CameraUtils.js +0 -71
- package/examples/js/utils/GPUStatsPanel.js +0 -125
- package/examples/js/utils/GeometryCompressionUtils.js +0 -549
- package/examples/js/utils/GeometryUtils.js +0 -168
- package/examples/js/utils/LDrawUtils.js +0 -179
- package/examples/js/utils/PackedPhongMaterial.js +0 -109
- package/examples/js/utils/SceneUtils.js +0 -214
- package/examples/js/utils/ShadowMapViewer.js +0 -183
- package/examples/js/utils/SkeletonUtils.js +0 -493
- package/examples/js/utils/UVsDebug.js +0 -143
- package/examples/js/utils/WorkerPool.js +0 -105
- package/examples/jsm/exporters/ColladaExporter.js +0 -713
- package/examples/jsm/geometries/LightningStrike.js +0 -1017
- package/examples/jsm/libs/OimoPhysics/OimoPhysics.js +0 -37071
- package/examples/jsm/libs/OimoPhysics/index.js +0 -43
- package/examples/jsm/libs/flow.module.js +0 -4552
- package/examples/jsm/libs/tween.module.min.js +0 -3
- package/examples/jsm/loaders/BasisTextureLoader.js +0 -790
- package/examples/jsm/loaders/IFCLoader.js +0 -2431
- package/examples/jsm/loaders/PRWMLoader.js +0 -299
- package/examples/jsm/loaders/ifc/web-ifc-api.js +0 -47504
- package/examples/jsm/loaders/ifc/web-ifc.wasm +0 -0
- package/examples/jsm/node-editor/NodeEditor.js +0 -857
- package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +0 -14
- package/examples/jsm/node-editor/accessors/NormalEditor.js +0 -30
- package/examples/jsm/node-editor/accessors/PositionEditor.js +0 -30
- package/examples/jsm/node-editor/accessors/UVEditor.js +0 -25
- package/examples/jsm/node-editor/core/BaseNode.js +0 -96
- package/examples/jsm/node-editor/core/DataFile.js +0 -59
- package/examples/jsm/node-editor/core/FileEditor.js +0 -20
- package/examples/jsm/node-editor/core/FileURLEditor.js +0 -29
- package/examples/jsm/node-editor/display/BlendEditor.js +0 -44
- package/examples/jsm/node-editor/display/NormalMapEditor.js +0 -49
- package/examples/jsm/node-editor/examples/animate-uv.json +0 -1
- package/examples/jsm/node-editor/examples/fake-top-light.json +0 -1
- package/examples/jsm/node-editor/examples/matcap.json +0 -1
- package/examples/jsm/node-editor/examples/oscillator-color.json +0 -1
- package/examples/jsm/node-editor/examples/rim.json +0 -1
- package/examples/jsm/node-editor/inputs/ColorEditor.js +0 -96
- package/examples/jsm/node-editor/inputs/FloatEditor.js +0 -23
- package/examples/jsm/node-editor/inputs/SliderEditor.js +0 -67
- package/examples/jsm/node-editor/inputs/TextureEditor.js +0 -155
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +0 -28
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +0 -30
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +0 -37
- package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +0 -84
- package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +0 -102
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +0 -118
- package/examples/jsm/node-editor/math/AngleEditor.js +0 -40
- package/examples/jsm/node-editor/math/DotEditor.js +0 -35
- package/examples/jsm/node-editor/math/InvertEditor.js +0 -39
- package/examples/jsm/node-editor/math/LimiterEditor.js +0 -62
- package/examples/jsm/node-editor/math/NormalizeEditor.js +0 -28
- package/examples/jsm/node-editor/math/OperatorEditor.js +0 -63
- package/examples/jsm/node-editor/math/PowerEditor.js +0 -44
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +0 -45
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +0 -27
- package/examples/jsm/node-editor/scene/MeshEditor.js +0 -102
- package/examples/jsm/node-editor/scene/Object3DEditor.js +0 -160
- package/examples/jsm/node-editor/scene/PointsEditor.js +0 -99
- package/examples/jsm/node-editor/utils/JoinEditor.js +0 -58
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +0 -43
- package/examples/jsm/node-editor/utils/PreviewEditor.js +0 -170
- package/examples/jsm/node-editor/utils/SplitEditor.js +0 -39
- package/examples/jsm/node-editor/utils/TimerEditor.js +0 -58
- package/examples/jsm/nodes/core/CodeNode.js +0 -50
- package/examples/jsm/nodes/core/ExpressionNode.js +0 -32
- package/examples/jsm/nodes/core/InstanceIndexNode.js +0 -21
- package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +0 -22
- package/examples/jsm/nodes/lighting/PunctualLightNode.js +0 -68
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +0 -301
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +0 -149
- package/examples/jsm/objects/GroundProjectedEnv.js +0 -186
- package/examples/jsm/objects/LightningStorm.js +0 -245
- package/examples/jsm/physics/OimoPhysics.js +0 -231
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -369
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +0 -187
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +0 -173
- package/examples/jsm/renderers/webgpu/WebGPUBinding.js +0 -22
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +0 -255
- package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +0 -43
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +0 -78
- package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +0 -82
- package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -36
- package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +0 -22
- package/examples/jsm/renderers/webgpu/WebGPUProperties.js +0 -38
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +0 -296
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +0 -66
- package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +0 -73
- package/examples/jsm/renderers/webgpu/WebGPUSampler.js +0 -29
- package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +0 -20
- package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +0 -40
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +0 -794
- package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +0 -18
- package/examples/jsm/renderers/webgpu/WebGPUUtils.js +0 -81
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +0 -83
- package/examples/jsm/shaders/ToneMapShader.js +0 -73
- package/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
- package/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
- package/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
- /package/examples/{js → jsm}/libs/ammo.wasm.js +0 -0
- /package/examples/{js → jsm}/libs/ammo.wasm.wasm +0 -0
- /package/examples/{js → jsm}/libs/basis/basis_transcoder.js +0 -0
- /package/examples/{js → jsm}/libs/basis/basis_transcoder.wasm +0 -0
- /package/examples/{js → jsm}/libs/draco/README.md +0 -0
- /package/examples/{js → jsm}/libs/draco/draco_encoder.js +0 -0
- /package/examples/{js → jsm}/libs/draco/gltf/draco_encoder.js +0 -0
- /package/src/renderers/shaders/ShaderChunk/{encodings_fragment.glsl.js → colorspace_fragment.glsl.js} +0 -0
- /package/src/renderers/shaders/ShaderChunk/{encodings_pars_fragment.glsl.js → colorspace_pars_fragment.glsl.js} +0 -0
|
@@ -9,10 +9,13 @@ import {
|
|
|
9
9
|
Shape,
|
|
10
10
|
ShapePath,
|
|
11
11
|
ShapeUtils,
|
|
12
|
+
SRGBColorSpace,
|
|
12
13
|
Vector2,
|
|
13
14
|
Vector3
|
|
14
15
|
} from 'three';
|
|
15
16
|
|
|
17
|
+
const COLOR_SPACE_SVG = SRGBColorSpace;
|
|
18
|
+
|
|
16
19
|
class SVGLoader extends Loader {
|
|
17
20
|
|
|
18
21
|
constructor( manager ) {
|
|
@@ -155,7 +158,7 @@ class SVGLoader extends Loader {
|
|
|
155
158
|
|
|
156
159
|
if ( style.fill !== undefined && style.fill !== 'none' ) {
|
|
157
160
|
|
|
158
|
-
path.color.setStyle( style.fill );
|
|
161
|
+
path.color.setStyle( style.fill, COLOR_SPACE_SVG );
|
|
159
162
|
|
|
160
163
|
}
|
|
161
164
|
|
|
@@ -218,6 +221,8 @@ class SVGLoader extends Loader {
|
|
|
218
221
|
|
|
219
222
|
const d = node.getAttribute( 'd' );
|
|
220
223
|
|
|
224
|
+
if ( d === '' || d === 'none' ) return null;
|
|
225
|
+
|
|
221
226
|
// console.log( d );
|
|
222
227
|
|
|
223
228
|
const commands = d.match( /[a-df-z][^a-df-z]*/ig );
|
|
@@ -866,7 +871,7 @@ class SVGLoader extends Loader {
|
|
|
866
871
|
|
|
867
872
|
}
|
|
868
873
|
|
|
869
|
-
const regex = /(
|
|
874
|
+
const regex = /([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g;
|
|
870
875
|
|
|
871
876
|
const path = new ShapePath();
|
|
872
877
|
|
|
@@ -901,7 +906,7 @@ class SVGLoader extends Loader {
|
|
|
901
906
|
|
|
902
907
|
}
|
|
903
908
|
|
|
904
|
-
const regex = /(
|
|
909
|
+
const regex = /([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g;
|
|
905
910
|
|
|
906
911
|
const path = new ShapePath();
|
|
907
912
|
|
|
@@ -1600,7 +1605,7 @@ class SVGLoader extends Loader {
|
|
|
1600
1605
|
const sinTheta = Math.sin( curve.aRotation );
|
|
1601
1606
|
|
|
1602
1607
|
const v1 = new Vector3( a * cosTheta, a * sinTheta, 0 );
|
|
1603
|
-
const v2 = new Vector3( -b * sinTheta, b * cosTheta, 0 );
|
|
1608
|
+
const v2 = new Vector3( - b * sinTheta, b * cosTheta, 0 );
|
|
1604
1609
|
|
|
1605
1610
|
const f1 = v1.applyMatrix3( m );
|
|
1606
1611
|
const f2 = v2.applyMatrix3( m );
|
|
@@ -1608,7 +1613,7 @@ class SVGLoader extends Loader {
|
|
|
1608
1613
|
const mF = tempTransform0.set(
|
|
1609
1614
|
f1.x, f2.x, 0,
|
|
1610
1615
|
f1.y, f2.y, 0,
|
|
1611
|
-
0,
|
|
1616
|
+
0, 0, 1,
|
|
1612
1617
|
);
|
|
1613
1618
|
|
|
1614
1619
|
const mFInv = tempTransform1.copy( mF ).invert();
|
|
@@ -1616,7 +1621,7 @@ class SVGLoader extends Loader {
|
|
|
1616
1621
|
const mQ = mFInvT.multiply( mFInv );
|
|
1617
1622
|
const mQe = mQ.elements;
|
|
1618
1623
|
|
|
1619
|
-
const ed = eigenDecomposition( mQe[0], mQe[1], mQe[4] );
|
|
1624
|
+
const ed = eigenDecomposition( mQe[ 0 ], mQe[ 1 ], mQe[ 4 ] );
|
|
1620
1625
|
const rt1sqrt = Math.sqrt( ed.rt1 );
|
|
1621
1626
|
const rt2sqrt = Math.sqrt( ed.rt2 );
|
|
1622
1627
|
|
|
@@ -1630,18 +1635,18 @@ class SVGLoader extends Loader {
|
|
|
1630
1635
|
// Do not touch angles of a full ellipse because after transformation they
|
|
1631
1636
|
// would converge to a sinle value effectively removing the whole curve
|
|
1632
1637
|
|
|
1633
|
-
if ( !isFullEllipse ) {
|
|
1638
|
+
if ( ! isFullEllipse ) {
|
|
1634
1639
|
|
|
1635
1640
|
const mDsqrt = tempTransform1.set(
|
|
1636
1641
|
rt1sqrt, 0, 0,
|
|
1637
1642
|
0, rt2sqrt, 0,
|
|
1638
|
-
0, 0,
|
|
1643
|
+
0, 0, 1,
|
|
1639
1644
|
);
|
|
1640
1645
|
|
|
1641
1646
|
const mRT = tempTransform2.set(
|
|
1642
|
-
ed.cs,
|
|
1643
|
-
-ed.sn, ed.cs, 0,
|
|
1644
|
-
0,
|
|
1647
|
+
ed.cs, ed.sn, 0,
|
|
1648
|
+
- ed.sn, ed.cs, 0,
|
|
1649
|
+
0, 0, 1,
|
|
1645
1650
|
);
|
|
1646
1651
|
|
|
1647
1652
|
const mDRF = mDsqrt.multiply( mRT ).multiply( mF );
|
|
@@ -1653,14 +1658,14 @@ class SVGLoader extends Loader {
|
|
|
1653
1658
|
|
|
1654
1659
|
return Math.atan2( sinR, cosR );
|
|
1655
1660
|
|
|
1656
|
-
}
|
|
1661
|
+
};
|
|
1657
1662
|
|
|
1658
1663
|
curve.aStartAngle = transformAngle( curve.aStartAngle );
|
|
1659
1664
|
curve.aEndAngle = transformAngle( curve.aEndAngle );
|
|
1660
1665
|
|
|
1661
1666
|
if ( isTransformFlipped( m ) ) {
|
|
1662
1667
|
|
|
1663
|
-
curve.aClockwise = !curve.aClockwise;
|
|
1668
|
+
curve.aClockwise = ! curve.aClockwise;
|
|
1664
1669
|
|
|
1665
1670
|
}
|
|
1666
1671
|
|
|
@@ -1688,16 +1693,16 @@ class SVGLoader extends Loader {
|
|
|
1688
1693
|
// `sx`, `sy`, or both might be zero.
|
|
1689
1694
|
const theta =
|
|
1690
1695
|
sx > Number.EPSILON
|
|
1691
|
-
|
|
1692
|
-
|
|
1696
|
+
? Math.atan2( m.elements[ 1 ], m.elements[ 0 ] )
|
|
1697
|
+
: Math.atan2( - m.elements[ 3 ], m.elements[ 4 ] );
|
|
1693
1698
|
|
|
1694
1699
|
curve.aRotation += theta;
|
|
1695
1700
|
|
|
1696
1701
|
if ( isTransformFlipped( m ) ) {
|
|
1697
1702
|
|
|
1698
|
-
curve.aStartAngle *= -1;
|
|
1699
|
-
curve.aEndAngle *= -1;
|
|
1700
|
-
curve.aClockwise = !curve.aClockwise;
|
|
1703
|
+
curve.aStartAngle *= - 1;
|
|
1704
|
+
curve.aEndAngle *= - 1;
|
|
1705
|
+
curve.aClockwise = ! curve.aClockwise;
|
|
1701
1706
|
|
|
1702
1707
|
}
|
|
1703
1708
|
|
|
@@ -1829,7 +1834,7 @@ class SVGLoader extends Loader {
|
|
|
1829
1834
|
// This case needs to be treated separately to avoid div by 0
|
|
1830
1835
|
|
|
1831
1836
|
rt1 = 0.5 * rt;
|
|
1832
|
-
rt2 = -0.5 * rt;
|
|
1837
|
+
rt2 = - 0.5 * rt;
|
|
1833
1838
|
|
|
1834
1839
|
}
|
|
1835
1840
|
|
|
@@ -1847,7 +1852,7 @@ class SVGLoader extends Loader {
|
|
|
1847
1852
|
|
|
1848
1853
|
if ( Math.abs( cs ) > 2 * Math.abs( B ) ) {
|
|
1849
1854
|
|
|
1850
|
-
t = -2 * B / cs;
|
|
1855
|
+
t = - 2 * B / cs;
|
|
1851
1856
|
sn = 1 / Math.sqrt( 1 + t * t );
|
|
1852
1857
|
cs = t * sn;
|
|
1853
1858
|
|
|
@@ -1858,7 +1863,7 @@ class SVGLoader extends Loader {
|
|
|
1858
1863
|
|
|
1859
1864
|
} else {
|
|
1860
1865
|
|
|
1861
|
-
t = -0.5 * cs / B;
|
|
1866
|
+
t = - 0.5 * cs / B;
|
|
1862
1867
|
cs = 1 / Math.sqrt( 1 + t * t );
|
|
1863
1868
|
sn = t * cs;
|
|
1864
1869
|
|
|
@@ -1867,7 +1872,7 @@ class SVGLoader extends Loader {
|
|
|
1867
1872
|
if ( df > 0 ) {
|
|
1868
1873
|
|
|
1869
1874
|
t = cs;
|
|
1870
|
-
cs = -sn;
|
|
1875
|
+
cs = - sn;
|
|
1871
1876
|
sn = t;
|
|
1872
1877
|
|
|
1873
1878
|
}
|
|
@@ -2255,8 +2260,6 @@ class SVGLoader extends Loader {
|
|
|
2255
2260
|
// TODO
|
|
2256
2261
|
|
|
2257
2262
|
// prepare paths for hole detection
|
|
2258
|
-
let identifier = 0;
|
|
2259
|
-
|
|
2260
2263
|
let scanlineMinX = BIGNUMBER;
|
|
2261
2264
|
let scanlineMaxX = - BIGNUMBER;
|
|
2262
2265
|
|
|
@@ -2313,14 +2316,20 @@ class SVGLoader extends Loader {
|
|
|
2313
2316
|
|
|
2314
2317
|
}
|
|
2315
2318
|
|
|
2316
|
-
return { curves: p.curves, points: points, isCW: ShapeUtils.isClockWise( points ), identifier:
|
|
2319
|
+
return { curves: p.curves, points: points, isCW: ShapeUtils.isClockWise( points ), identifier: - 1, boundingBox: new Box2( new Vector2( minX, minY ), new Vector2( maxX, maxY ) ) };
|
|
2317
2320
|
|
|
2318
2321
|
} );
|
|
2319
2322
|
|
|
2320
2323
|
simplePaths = simplePaths.filter( sp => sp.points.length > 1 );
|
|
2321
2324
|
|
|
2325
|
+
for ( let identifier = 0; identifier < simplePaths.length; identifier ++ ) {
|
|
2326
|
+
|
|
2327
|
+
simplePaths[ identifier ].identifier = identifier;
|
|
2328
|
+
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2322
2331
|
// check if path is solid or a hole
|
|
2323
|
-
const isAHole = simplePaths.map( p => isHoleTo( p, simplePaths, scanlineMinX, scanlineMaxX, shapePath.userData
|
|
2332
|
+
const isAHole = simplePaths.map( p => isHoleTo( p, simplePaths, scanlineMinX, scanlineMaxX, ( shapePath.userData ? shapePath.userData.style.fillRule : undefined ) ) );
|
|
2324
2333
|
|
|
2325
2334
|
|
|
2326
2335
|
const shapesToReturn = [];
|
|
@@ -2378,7 +2387,7 @@ class SVGLoader extends Loader {
|
|
|
2378
2387
|
|
|
2379
2388
|
static pointsToStroke( points, style, arcDivisions, minDistance ) {
|
|
2380
2389
|
|
|
2381
|
-
// Generates a stroke with some
|
|
2390
|
+
// Generates a stroke with some width around the given path.
|
|
2382
2391
|
// The path can be open or closed (last point equals to first point)
|
|
2383
2392
|
// Param points: Array of Vector2D (the path). Minimum 2 points.
|
|
2384
2393
|
// Param style: Object with SVG properties as returned by SVGLoader.getStrokeStyle(), or SVGLoader.parse() in the path.userData.style object
|
|
@@ -205,14 +205,7 @@ class TTFLoader extends Loader {
|
|
|
205
205
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
console.warn( 'THREE.TTFLoader: The loader requires opentype.js. Make sure it\'s included before using the loader.' );
|
|
211
|
-
return null;
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return convert( opentype.parse( arraybuffer ), this.reversed ); // eslint-disable-line no-undef
|
|
208
|
+
return convert( opentype.parse( arraybuffer ), this.reversed );
|
|
216
209
|
|
|
217
210
|
}
|
|
218
211
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BufferAttribute,
|
|
3
3
|
BufferGeometry,
|
|
4
|
+
Color,
|
|
4
5
|
DoubleSide,
|
|
5
6
|
FileLoader,
|
|
6
7
|
Group,
|
|
@@ -182,6 +183,8 @@ class StrokeGeometry extends BufferGeometry {
|
|
|
182
183
|
const vector3 = new Vector3();
|
|
183
184
|
const vector4 = new Vector3();
|
|
184
185
|
|
|
186
|
+
const color = new Color();
|
|
187
|
+
|
|
185
188
|
// size = size / 2;
|
|
186
189
|
|
|
187
190
|
for ( const k in strokes ) {
|
|
@@ -190,7 +193,10 @@ class StrokeGeometry extends BufferGeometry {
|
|
|
190
193
|
const positions = stroke[ 0 ];
|
|
191
194
|
const quaternions = stroke[ 1 ];
|
|
192
195
|
const size = stroke[ 2 ];
|
|
193
|
-
const
|
|
196
|
+
const rgba = stroke[ 3 ];
|
|
197
|
+
const alpha = stroke[ 3 ][ 3 ];
|
|
198
|
+
|
|
199
|
+
color.fromArray( rgba ).convertSRGBToLinear();
|
|
194
200
|
|
|
195
201
|
prevPosition.fromArray( positions, 0 );
|
|
196
202
|
prevQuaternion.fromArray( quaternions, 0 );
|
|
@@ -227,13 +233,13 @@ class StrokeGeometry extends BufferGeometry {
|
|
|
227
233
|
prevPosition.copy( position );
|
|
228
234
|
prevQuaternion.copy( quaternion );
|
|
229
235
|
|
|
230
|
-
colors.push( ...color );
|
|
231
|
-
colors.push( ...color );
|
|
232
|
-
colors.push( ...color );
|
|
236
|
+
colors.push( ...color, alpha );
|
|
237
|
+
colors.push( ...color, alpha );
|
|
238
|
+
colors.push( ...color, alpha );
|
|
233
239
|
|
|
234
|
-
colors.push( ...color );
|
|
235
|
-
colors.push( ...color );
|
|
236
|
-
colors.push( ...color );
|
|
240
|
+
colors.push( ...color, alpha );
|
|
241
|
+
colors.push( ...color, alpha );
|
|
242
|
+
colors.push( ...color, alpha );
|
|
237
243
|
|
|
238
244
|
const p1 = i / l;
|
|
239
245
|
const p2 = ( i - 3 ) / l;
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
MeshStandardMaterial,
|
|
10
10
|
MirroredRepeatWrapping,
|
|
11
11
|
RepeatWrapping,
|
|
12
|
-
|
|
12
|
+
SRGBColorSpace,
|
|
13
13
|
TextureLoader,
|
|
14
14
|
Object3D,
|
|
15
15
|
} from 'three';
|
|
@@ -205,7 +205,7 @@ class USDZLoader extends Loader {
|
|
|
205
205
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
const zip = fflate.unzipSync( new Uint8Array( buffer ) );
|
|
208
|
+
const zip = fflate.unzipSync( new Uint8Array( buffer ) );
|
|
209
209
|
|
|
210
210
|
// console.log( zip );
|
|
211
211
|
|
|
@@ -254,7 +254,7 @@ class USDZLoader extends Loader {
|
|
|
254
254
|
|
|
255
255
|
if ( id !== undefined ) {
|
|
256
256
|
|
|
257
|
-
const def = `def "
|
|
257
|
+
const def = `def "${id}"`;
|
|
258
258
|
|
|
259
259
|
if ( def in data ) {
|
|
260
260
|
|
|
@@ -457,7 +457,7 @@ class USDZLoader extends Loader {
|
|
|
457
457
|
const sampler = findTexture( root, /(\w+).output/.exec( path )[ 1 ] );
|
|
458
458
|
|
|
459
459
|
material.map = buildTexture( sampler );
|
|
460
|
-
material.map.
|
|
460
|
+
material.map.colorSpace = SRGBColorSpace;
|
|
461
461
|
|
|
462
462
|
} else if ( 'color3f inputs:diffuseColor' in surface ) {
|
|
463
463
|
|
|
@@ -494,7 +494,7 @@ class USDZLoader extends Loader {
|
|
|
494
494
|
const sampler = data[ 'def Shader "diffuseColor_texture"' ];
|
|
495
495
|
|
|
496
496
|
material.map = buildTexture( sampler );
|
|
497
|
-
material.map.
|
|
497
|
+
material.map.colorSpace = SRGBColorSpace;
|
|
498
498
|
|
|
499
499
|
}
|
|
500
500
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BufferGeometry,
|
|
3
|
+
Color,
|
|
3
4
|
Data3DTexture,
|
|
4
5
|
FileLoader,
|
|
5
6
|
Float32BufferAttribute,
|
|
@@ -8,7 +9,8 @@ import {
|
|
|
8
9
|
Mesh,
|
|
9
10
|
MeshStandardMaterial,
|
|
10
11
|
NearestFilter,
|
|
11
|
-
RedFormat
|
|
12
|
+
RedFormat,
|
|
13
|
+
SRGBColorSpace
|
|
12
14
|
} from 'three';
|
|
13
15
|
|
|
14
16
|
class VOXLoader extends Loader {
|
|
@@ -184,6 +186,8 @@ class VOXMesh extends Mesh {
|
|
|
184
186
|
const nz = [ 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0 ];
|
|
185
187
|
const pz = [ 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1 ];
|
|
186
188
|
|
|
189
|
+
const _color = new Color();
|
|
190
|
+
|
|
187
191
|
function add( tile, x, y, z, r, g, b ) {
|
|
188
192
|
|
|
189
193
|
x -= size.x / 2;
|
|
@@ -192,8 +196,10 @@ class VOXMesh extends Mesh {
|
|
|
192
196
|
|
|
193
197
|
for ( let i = 0; i < 18; i += 3 ) {
|
|
194
198
|
|
|
199
|
+
_color.setRGB( r, g, b, SRGBColorSpace );
|
|
200
|
+
|
|
195
201
|
vertices.push( tile[ i + 0 ] + x, tile[ i + 1 ] + y, tile[ i + 2 ] + z );
|
|
196
|
-
colors.push( r, g, b );
|
|
202
|
+
colors.push( _color.r, _color.g, _color.b );
|
|
197
203
|
|
|
198
204
|
}
|
|
199
205
|
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
Scene,
|
|
29
29
|
ShapeUtils,
|
|
30
30
|
SphereGeometry,
|
|
31
|
+
SRGBColorSpace,
|
|
31
32
|
TextureLoader,
|
|
32
33
|
Vector2,
|
|
33
34
|
Vector3
|
|
@@ -41,14 +42,6 @@ class VRMLLoader extends Loader {
|
|
|
41
42
|
|
|
42
43
|
super( manager );
|
|
43
44
|
|
|
44
|
-
// dependency check
|
|
45
|
-
|
|
46
|
-
if ( typeof chevrotain === 'undefined' ) { // eslint-disable-line no-undef
|
|
47
|
-
|
|
48
|
-
throw Error( 'THREE.VRMLLoader: External library chevrotain.min.js required.' );
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
45
|
}
|
|
53
46
|
|
|
54
47
|
load( url, onLoad, onProgress, onError ) {
|
|
@@ -128,7 +121,7 @@ class VRMLLoader extends Loader {
|
|
|
128
121
|
|
|
129
122
|
function createTokens() {
|
|
130
123
|
|
|
131
|
-
const createToken = chevrotain.createToken;
|
|
124
|
+
const createToken = chevrotain.createToken;
|
|
132
125
|
|
|
133
126
|
// from http://gun.teipir.gr/VRML-amgem/spec/part1/concepts.html#SyntaxBasics
|
|
134
127
|
|
|
@@ -203,7 +196,7 @@ class VRMLLoader extends Loader {
|
|
|
203
196
|
const Comment = createToken( {
|
|
204
197
|
name: 'Comment',
|
|
205
198
|
pattern: /#.*/,
|
|
206
|
-
group: chevrotain.Lexer.SKIPPED
|
|
199
|
+
group: chevrotain.Lexer.SKIPPED
|
|
207
200
|
} );
|
|
208
201
|
|
|
209
202
|
// commas, blanks, tabs, newlines and carriage returns are whitespace characters wherever they appear outside of string fields
|
|
@@ -211,7 +204,7 @@ class VRMLLoader extends Loader {
|
|
|
211
204
|
const WhiteSpace = createToken( {
|
|
212
205
|
name: 'WhiteSpace',
|
|
213
206
|
pattern: /[ ,\s]/,
|
|
214
|
-
group: chevrotain.Lexer.SKIPPED
|
|
207
|
+
group: chevrotain.Lexer.SKIPPED
|
|
215
208
|
} );
|
|
216
209
|
|
|
217
210
|
const tokens = [
|
|
@@ -926,6 +919,7 @@ class VRMLLoader extends Loader {
|
|
|
926
919
|
} else {
|
|
927
920
|
|
|
928
921
|
skyMaterial.color.setRGB( skyColor[ 0 ], skyColor[ 1 ], skyColor[ 2 ] );
|
|
922
|
+
skyMaterial.color.convertSRGBToLinear();
|
|
929
923
|
|
|
930
924
|
}
|
|
931
925
|
|
|
@@ -966,7 +960,10 @@ class VRMLLoader extends Loader {
|
|
|
966
960
|
|
|
967
961
|
// if the appearance field is NULL or unspecified, lighting is off and the unlit object color is (0, 0, 0)
|
|
968
962
|
|
|
969
|
-
let material = new MeshBasicMaterial( {
|
|
963
|
+
let material = new MeshBasicMaterial( {
|
|
964
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
965
|
+
color: 0x000000
|
|
966
|
+
} );
|
|
970
967
|
let geometry;
|
|
971
968
|
|
|
972
969
|
for ( let i = 0, l = fields.length; i < l; i ++ ) {
|
|
@@ -1013,7 +1010,10 @@ class VRMLLoader extends Loader {
|
|
|
1013
1010
|
|
|
1014
1011
|
if ( type === 'points' ) { // points
|
|
1015
1012
|
|
|
1016
|
-
const pointsMaterial = new PointsMaterial( {
|
|
1013
|
+
const pointsMaterial = new PointsMaterial( {
|
|
1014
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
1015
|
+
color: 0xffffff
|
|
1016
|
+
} );
|
|
1017
1017
|
|
|
1018
1018
|
if ( geometry.attributes.color !== undefined ) {
|
|
1019
1019
|
|
|
@@ -1035,7 +1035,10 @@ class VRMLLoader extends Loader {
|
|
|
1035
1035
|
|
|
1036
1036
|
} else if ( type === 'line' ) { // lines
|
|
1037
1037
|
|
|
1038
|
-
const lineMaterial = new LineBasicMaterial( {
|
|
1038
|
+
const lineMaterial = new LineBasicMaterial( {
|
|
1039
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
1040
|
+
color: 0xffffff
|
|
1041
|
+
} );
|
|
1039
1042
|
|
|
1040
1043
|
if ( geometry.attributes.color !== undefined ) {
|
|
1041
1044
|
|
|
@@ -1122,7 +1125,10 @@ class VRMLLoader extends Loader {
|
|
|
1122
1125
|
|
|
1123
1126
|
// if the material field is NULL or unspecified, lighting is off and the unlit object color is (0, 0, 0)
|
|
1124
1127
|
|
|
1125
|
-
material = new MeshBasicMaterial( {
|
|
1128
|
+
material = new MeshBasicMaterial( {
|
|
1129
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
1130
|
+
color: 0x000000
|
|
1131
|
+
} );
|
|
1126
1132
|
|
|
1127
1133
|
}
|
|
1128
1134
|
|
|
@@ -1231,10 +1237,12 @@ class VRMLLoader extends Loader {
|
|
|
1231
1237
|
|
|
1232
1238
|
case 'diffuseColor':
|
|
1233
1239
|
materialData.diffuseColor = new Color( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
|
|
1240
|
+
materialData.diffuseColor.convertSRGBToLinear();
|
|
1234
1241
|
break;
|
|
1235
1242
|
|
|
1236
1243
|
case 'emissiveColor':
|
|
1237
1244
|
materialData.emissiveColor = new Color( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
|
|
1245
|
+
materialData.emissiveColor.convertSRGBToLinear();
|
|
1238
1246
|
break;
|
|
1239
1247
|
|
|
1240
1248
|
case 'shininess':
|
|
@@ -1242,7 +1250,8 @@ class VRMLLoader extends Loader {
|
|
|
1242
1250
|
break;
|
|
1243
1251
|
|
|
1244
1252
|
case 'specularColor':
|
|
1245
|
-
materialData.
|
|
1253
|
+
materialData.specularColor = new Color( fieldValues[ 0 ], fieldValues[ 1 ], fieldValues[ 2 ] );
|
|
1254
|
+
materialData.specularColor.convertSRGBToLinear();
|
|
1246
1255
|
break;
|
|
1247
1256
|
|
|
1248
1257
|
case 'transparency':
|
|
@@ -1378,6 +1387,7 @@ class VRMLLoader extends Loader {
|
|
|
1378
1387
|
}
|
|
1379
1388
|
|
|
1380
1389
|
texture = new DataTexture( data, width, height );
|
|
1390
|
+
texture.colorSpace = SRGBColorSpace;
|
|
1381
1391
|
texture.needsUpdate = true;
|
|
1382
1392
|
texture.__type = textureType; // needed for material modifications
|
|
1383
1393
|
break;
|
|
@@ -1450,6 +1460,7 @@ class VRMLLoader extends Loader {
|
|
|
1450
1460
|
|
|
1451
1461
|
texture.wrapS = wrapS;
|
|
1452
1462
|
texture.wrapT = wrapT;
|
|
1463
|
+
texture.colorSpace = SRGBColorSpace;
|
|
1453
1464
|
|
|
1454
1465
|
}
|
|
1455
1466
|
|
|
@@ -1708,6 +1719,8 @@ class VRMLLoader extends Loader {
|
|
|
1708
1719
|
|
|
1709
1720
|
}
|
|
1710
1721
|
|
|
1722
|
+
convertColorsToLinearSRGB( colorAttribute );
|
|
1723
|
+
|
|
1711
1724
|
}
|
|
1712
1725
|
|
|
1713
1726
|
if ( normal ) {
|
|
@@ -1909,6 +1922,8 @@ class VRMLLoader extends Loader {
|
|
|
1909
1922
|
|
|
1910
1923
|
}
|
|
1911
1924
|
|
|
1925
|
+
convertColorsToLinearSRGB( colorAttribute );
|
|
1926
|
+
|
|
1912
1927
|
}
|
|
1913
1928
|
|
|
1914
1929
|
//
|
|
@@ -1974,7 +1989,15 @@ class VRMLLoader extends Loader {
|
|
|
1974
1989
|
const geometry = new BufferGeometry();
|
|
1975
1990
|
|
|
1976
1991
|
geometry.setAttribute( 'position', new Float32BufferAttribute( coord, 3 ) );
|
|
1977
|
-
|
|
1992
|
+
|
|
1993
|
+
if ( color ) {
|
|
1994
|
+
|
|
1995
|
+
const colorAttribute = new Float32BufferAttribute( color, 3 );
|
|
1996
|
+
convertColorsToLinearSRGB( colorAttribute );
|
|
1997
|
+
|
|
1998
|
+
geometry.setAttribute( 'color', colorAttribute );
|
|
1999
|
+
|
|
2000
|
+
}
|
|
1978
2001
|
|
|
1979
2002
|
geometry._type = 'points';
|
|
1980
2003
|
|
|
@@ -2388,6 +2411,8 @@ class VRMLLoader extends Loader {
|
|
|
2388
2411
|
|
|
2389
2412
|
}
|
|
2390
2413
|
|
|
2414
|
+
convertColorsToLinearSRGB( colorAttribute );
|
|
2415
|
+
|
|
2391
2416
|
}
|
|
2392
2417
|
|
|
2393
2418
|
// normal attribute
|
|
@@ -3075,6 +3100,21 @@ class VRMLLoader extends Loader {
|
|
|
3075
3100
|
|
|
3076
3101
|
}
|
|
3077
3102
|
|
|
3103
|
+
function convertColorsToLinearSRGB( attribute ) {
|
|
3104
|
+
|
|
3105
|
+
const color = new Color();
|
|
3106
|
+
|
|
3107
|
+
for ( let i = 0; i < attribute.count; i ++ ) {
|
|
3108
|
+
|
|
3109
|
+
color.fromBufferAttribute( attribute, i );
|
|
3110
|
+
color.convertSRGBToLinear();
|
|
3111
|
+
|
|
3112
|
+
attribute.setXYZ( i, color.r, color.g, color.b );
|
|
3113
|
+
|
|
3114
|
+
}
|
|
3115
|
+
|
|
3116
|
+
}
|
|
3117
|
+
|
|
3078
3118
|
/**
|
|
3079
3119
|
* Vertically paints the faces interpolating between the
|
|
3080
3120
|
* specified colors at the specified angels. This is used for the Background
|
|
@@ -3172,7 +3212,7 @@ class VRMLLoader extends Loader {
|
|
|
3172
3212
|
const colorA = colors[ thresholdIndexA ];
|
|
3173
3213
|
const colorB = colors[ thresholdIndexB ];
|
|
3174
3214
|
|
|
3175
|
-
color.copy( colorA ).lerp( colorB, t );
|
|
3215
|
+
color.copy( colorA ).lerp( colorB, t ).convertSRGBToLinear();
|
|
3176
3216
|
|
|
3177
3217
|
colorAttribute.setXYZ( index, color.r, color.g, color.b );
|
|
3178
3218
|
|
|
@@ -3213,7 +3253,7 @@ class VRMLLexer {
|
|
|
3213
3253
|
|
|
3214
3254
|
constructor( tokens ) {
|
|
3215
3255
|
|
|
3216
|
-
this.lexer = new chevrotain.Lexer( tokens );
|
|
3256
|
+
this.lexer = new chevrotain.Lexer( tokens );
|
|
3217
3257
|
|
|
3218
3258
|
}
|
|
3219
3259
|
|
|
@@ -3235,7 +3275,7 @@ class VRMLLexer {
|
|
|
3235
3275
|
|
|
3236
3276
|
}
|
|
3237
3277
|
|
|
3238
|
-
const CstParser = chevrotain.CstParser
|
|
3278
|
+
const CstParser = chevrotain.CstParser;
|
|
3239
3279
|
|
|
3240
3280
|
class VRMLParser extends CstParser {
|
|
3241
3281
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BufferAttribute,
|
|
3
3
|
BufferGeometry,
|
|
4
|
+
Color,
|
|
4
5
|
FileLoader,
|
|
5
6
|
Float32BufferAttribute,
|
|
6
|
-
Loader
|
|
7
|
-
LoaderUtils
|
|
7
|
+
Loader
|
|
8
8
|
} from 'three';
|
|
9
9
|
import * as fflate from '../libs/fflate.module.js';
|
|
10
10
|
|
|
@@ -108,6 +108,8 @@ class VTKLoader extends Loader {
|
|
|
108
108
|
let inColorSection = false;
|
|
109
109
|
let inNormalsSection = false;
|
|
110
110
|
|
|
111
|
+
const color = new Color();
|
|
112
|
+
|
|
111
113
|
const lines = data.split( '\n' );
|
|
112
114
|
|
|
113
115
|
for ( const i in lines ) {
|
|
@@ -208,7 +210,10 @@ class VTKLoader extends Loader {
|
|
|
208
210
|
const r = parseFloat( result[ 1 ] );
|
|
209
211
|
const g = parseFloat( result[ 2 ] );
|
|
210
212
|
const b = parseFloat( result[ 3 ] );
|
|
211
|
-
|
|
213
|
+
|
|
214
|
+
color.set( r, g, b ).convertSRGBToLinear();
|
|
215
|
+
|
|
216
|
+
colors.push( color.r, color.g, color.b );
|
|
212
217
|
|
|
213
218
|
}
|
|
214
219
|
|
|
@@ -320,9 +325,11 @@ class VTKLoader extends Loader {
|
|
|
320
325
|
const g = colors[ 3 * i + 1 ];
|
|
321
326
|
const b = colors[ 3 * i + 2 ];
|
|
322
327
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
newColors.push( r, g, b );
|
|
328
|
+
color.set( r, g, b ).convertSRGBToLinear();
|
|
329
|
+
|
|
330
|
+
newColors.push( color.r, color.g, color.b );
|
|
331
|
+
newColors.push( color.r, color.g, color.b );
|
|
332
|
+
newColors.push( color.r, color.g, color.b );
|
|
326
333
|
|
|
327
334
|
}
|
|
328
335
|
|
|
@@ -780,7 +787,7 @@ class VTKLoader extends Loader {
|
|
|
780
787
|
|
|
781
788
|
for ( let i = 0; i < dataOffsets.length - 1; i ++ ) {
|
|
782
789
|
|
|
783
|
-
const data = fflate.unzlibSync( byteData.slice( dataOffsets[ i ], dataOffsets[ i + 1 ] ) );
|
|
790
|
+
const data = fflate.unzlibSync( byteData.slice( dataOffsets[ i ], dataOffsets[ i + 1 ] ) );
|
|
784
791
|
content = data.buffer;
|
|
785
792
|
|
|
786
793
|
if ( ele.attributes.type === 'Float32' ) {
|
|
@@ -1130,16 +1137,18 @@ class VTKLoader extends Loader {
|
|
|
1130
1137
|
|
|
1131
1138
|
}
|
|
1132
1139
|
|
|
1140
|
+
const textDecoder = new TextDecoder();
|
|
1141
|
+
|
|
1133
1142
|
// get the 5 first lines of the files to check if there is the key word binary
|
|
1134
|
-
const meta =
|
|
1143
|
+
const meta = textDecoder.decode( new Uint8Array( data, 0, 250 ) ).split( '\n' );
|
|
1135
1144
|
|
|
1136
1145
|
if ( meta[ 0 ].indexOf( 'xml' ) !== - 1 ) {
|
|
1137
1146
|
|
|
1138
|
-
return parseXML(
|
|
1147
|
+
return parseXML( textDecoder.decode( data ) );
|
|
1139
1148
|
|
|
1140
1149
|
} else if ( meta[ 2 ].includes( 'ASCII' ) ) {
|
|
1141
1150
|
|
|
1142
|
-
return parseASCII(
|
|
1151
|
+
return parseASCII( textDecoder.decode( data ) );
|
|
1143
1152
|
|
|
1144
1153
|
} else {
|
|
1145
1154
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BufferGeometry,
|
|
3
|
+
Color,
|
|
3
4
|
FileLoader,
|
|
4
5
|
Float32BufferAttribute,
|
|
5
6
|
Loader
|
|
@@ -47,6 +48,7 @@ class XYZLoader extends Loader {
|
|
|
47
48
|
|
|
48
49
|
const vertices = [];
|
|
49
50
|
const colors = [];
|
|
51
|
+
const color = new Color();
|
|
50
52
|
|
|
51
53
|
for ( let line of lines ) {
|
|
52
54
|
|
|
@@ -74,9 +76,13 @@ class XYZLoader extends Loader {
|
|
|
74
76
|
vertices.push( parseFloat( lineValues[ 1 ] ) );
|
|
75
77
|
vertices.push( parseFloat( lineValues[ 2 ] ) );
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
const r = parseFloat( lineValues[ 3 ] ) / 255;
|
|
80
|
+
const g = parseFloat( lineValues[ 4 ] ) / 255;
|
|
81
|
+
const b = parseFloat( lineValues[ 5 ] ) / 255;
|
|
82
|
+
|
|
83
|
+
color.set( r, g, b ).convertSRGBToLinear();
|
|
84
|
+
|
|
85
|
+
colors.push( color.r, color.g, color.b );
|
|
80
86
|
|
|
81
87
|
}
|
|
82
88
|
|