@plastic-software/three 0.179.0 → 0.181.1
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/build/three.cjs +1108 -591
- package/build/three.core.js +616 -345
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +488 -250
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +37 -6
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +6576 -2152
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6575 -2151
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +8 -8
- package/examples/jsm/controls/DragControls.js +7 -57
- package/examples/jsm/controls/FirstPersonControls.js +3 -3
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +1 -1
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +33 -25
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +9 -2
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +3 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/ViewHelper.js +43 -5
- package/examples/jsm/inspector/Inspector.js +427 -0
- package/examples/jsm/inspector/RendererInspector.js +415 -0
- package/examples/jsm/inspector/tabs/Console.js +204 -0
- package/examples/jsm/inspector/tabs/Parameters.js +332 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +170 -0
- package/examples/jsm/inspector/ui/Style.js +654 -0
- package/examples/jsm/inspector/ui/Tab.js +46 -0
- package/examples/jsm/inspector/ui/Values.js +423 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +3 -3
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +5 -5
- package/examples/jsm/loaders/FBXLoader.js +2 -2
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +14 -8
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +486 -0
- package/examples/jsm/loaders/KTX2Loader.js +136 -49
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +1 -1
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
- package/examples/jsm/renderers/SVGRenderer.js +1 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +2 -2
- package/examples/jsm/shaders/GodRaysShader.js +1 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +1 -1
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +22 -19
- package/examples/jsm/transpiler/TSLEncoder.js +9 -10
- package/examples/jsm/transpiler/WGSLEncoder.js +24 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +28 -4
- package/examples/jsm/tsl/display/BloomNode.js +7 -3
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +2 -1
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/GTAONode.js +53 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +49 -35
- package/examples/jsm/tsl/display/OutlineNode.js +13 -2
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +182 -65
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +124 -7
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
- package/package.json +5 -10
- package/src/Three.Core.js +4 -2
- package/src/Three.TSL.js +36 -5
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +2 -0
- package/src/animation/AnimationClip.js +20 -4
- package/src/animation/AnimationMixer.js +3 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/KeyframeTrack.js +7 -6
- package/src/animation/PropertyBinding.js +12 -11
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +11 -3
- package/src/core/BufferGeometry.js +10 -10
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +3 -2
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +268 -55
- package/src/extras/TextureUtils.js +2 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +8 -6
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +1 -0
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +1 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +2 -1
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +2 -2
- package/src/loaders/DataTextureLoader.js +1 -1
- package/src/loaders/FileLoader.js +3 -2
- package/src/loaders/ImageBitmapLoader.js +5 -4
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +3 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +13 -13
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +3 -2
- package/src/materials/Material.js +16 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +2 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +2 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +1 -0
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/NodeMaterial.js +62 -22
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +3 -2
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/MathUtils.js +13 -11
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +7 -7
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +68 -66
- package/src/math/Spherical.js +1 -1
- package/src/nodes/Nodes.js +4 -1
- package/src/nodes/TSL.js +4 -1
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +133 -7
- package/src/nodes/accessors/ClippingNode.js +6 -5
- package/src/nodes/accessors/CubeTextureNode.js +5 -4
- package/src/nodes/accessors/InstanceNode.js +25 -5
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +5 -4
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +18 -2
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +3 -2
- package/src/nodes/accessors/SceneNode.js +2 -1
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +14 -1
- package/src/nodes/accessors/TextureNode.js +130 -44
- package/src/nodes/code/FunctionCallNode.js +24 -4
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/ArrayNode.js +1 -0
- package/src/nodes/core/AssignNode.js +4 -3
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +29 -10
- package/src/nodes/core/IndexNode.js +2 -2
- package/src/nodes/core/InputNode.js +2 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
- package/src/nodes/core/Node.js +152 -31
- package/src/nodes/core/NodeBuilder.js +183 -35
- package/src/nodes/core/NodeFrame.js +21 -21
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +17 -91
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +43 -16
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformNode.js +18 -10
- package/src/nodes/core/VarNode.js +70 -33
- package/src/nodes/core/VaryingNode.js +3 -2
- package/src/nodes/display/BlendModes.js +5 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +2 -1
- package/src/nodes/display/PassNode.js +52 -11
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +44 -14
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +42 -12
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +3 -2
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +17 -5
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
- package/src/nodes/lighting/EnvironmentNode.js +6 -6
- package/src/nodes/lighting/LightsNode.js +3 -4
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ShadowFilterNode.js +2 -0
- package/src/nodes/lighting/ShadowNode.js +75 -8
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +24 -7
- package/src/nodes/math/MathNode.js +25 -19
- package/src/nodes/math/OperatorNode.js +7 -5
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +5 -2
- package/src/nodes/tsl/TSLCore.js +460 -159
- package/src/nodes/utils/DebugNode.js +2 -1
- package/src/nodes/utils/EventNode.js +36 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +6 -3
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +59 -7
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +13 -3
- package/src/nodes/utils/ReflectorNode.js +58 -7
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/objects/BatchedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +2 -1
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Skeleton.js +3 -2
- package/src/objects/SkinnedMesh.js +3 -1
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +48 -41
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Attributes.js +1 -1
- package/src/renderers/common/Backend.js +108 -27
- package/src/renderers/common/Background.js +2 -1
- package/src/renderers/common/Bindings.js +58 -2
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +26 -0
- package/src/renderers/common/Info.js +4 -2
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/Pipelines.js +1 -1
- package/src/renderers/common/PostProcessing.js +6 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderContext.js +2 -2
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +16 -2
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +473 -245
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +50 -12
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +121 -45
- package/src/renderers/common/TimestampQueryPool.js +65 -3
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +42 -22
- package/src/renderers/common/extras/PMREMGenerator.js +160 -65
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/Nodes.js +38 -16
- package/src/renderers/shaders/DFGLUTData.js +64 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -15
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +1 -1
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLCapabilities.js +2 -1
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +15 -14
- package/src/renderers/webgl/WebGLPrograms.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -2
- package/src/renderers/webgl/WebGLState.js +15 -14
- package/src/renderers/webgl/WebGLTextures.js +19 -14
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +199 -167
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +181 -25
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +7 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +169 -19
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +51 -22
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
- package/src/renderers/webgpu/WebGPUBackend.js +153 -123
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +142 -50
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +7 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +53 -34
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +260 -99
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
- package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
- package/src/renderers/webxr/WebXRManager.js +42 -26
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/Source.js +3 -2
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +67 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
|
@@ -5,6 +5,7 @@ import { Vector2 } from '../math/Vector2.js';
|
|
|
5
5
|
import { Vector3 } from '../math/Vector3.js';
|
|
6
6
|
import { Shape } from '../extras/core/Shape.js';
|
|
7
7
|
import { ShapeUtils } from '../extras/ShapeUtils.js';
|
|
8
|
+
import { error } from '../utils.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Creates extruded geometry from a path shape.
|
|
@@ -26,6 +27,7 @@ import { ShapeUtils } from '../extras/ShapeUtils.js';
|
|
|
26
27
|
* ```
|
|
27
28
|
*
|
|
28
29
|
* @augments BufferGeometry
|
|
30
|
+
* @demo scenes/geometry-browser.html#ExtrudeGeometry
|
|
29
31
|
*/
|
|
30
32
|
class ExtrudeGeometry extends BufferGeometry {
|
|
31
33
|
|
|
@@ -114,7 +116,7 @@ class ExtrudeGeometry extends BufferGeometry {
|
|
|
114
116
|
|
|
115
117
|
splineTube = extrudePath.computeFrenetFrames( steps, false );
|
|
116
118
|
|
|
117
|
-
//
|
|
119
|
+
// log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);
|
|
118
120
|
|
|
119
121
|
binormal = new Vector3();
|
|
120
122
|
normal = new Vector3();
|
|
@@ -219,7 +221,7 @@ class ExtrudeGeometry extends BufferGeometry {
|
|
|
219
221
|
|
|
220
222
|
function scalePt2( pt, vec, size ) {
|
|
221
223
|
|
|
222
|
-
if ( ! vec )
|
|
224
|
+
if ( ! vec ) error( 'ExtrudeGeometry: vec does not exist' );
|
|
223
225
|
|
|
224
226
|
return pt.clone().addScaledVector( vec, size );
|
|
225
227
|
|
|
@@ -334,14 +336,14 @@ class ExtrudeGeometry extends BufferGeometry {
|
|
|
334
336
|
|
|
335
337
|
if ( direction_eq ) {
|
|
336
338
|
|
|
337
|
-
//
|
|
339
|
+
// log("Warning: lines are a straight sequence");
|
|
338
340
|
v_trans_x = - v_prev_y;
|
|
339
341
|
v_trans_y = v_prev_x;
|
|
340
342
|
shrink_by = Math.sqrt( v_prev_lensq );
|
|
341
343
|
|
|
342
344
|
} else {
|
|
343
345
|
|
|
344
|
-
//
|
|
346
|
+
// log("Warning: lines are a straight spike");
|
|
345
347
|
v_trans_x = v_prev_x;
|
|
346
348
|
v_trans_y = v_prev_y;
|
|
347
349
|
shrink_by = Math.sqrt( v_prev_lensq / 2 );
|
|
@@ -363,7 +365,7 @@ class ExtrudeGeometry extends BufferGeometry {
|
|
|
363
365
|
if ( k === il ) k = 0;
|
|
364
366
|
|
|
365
367
|
// (j)---(i)---(k)
|
|
366
|
-
//
|
|
368
|
+
// log('i,j,k', i, j , k)
|
|
367
369
|
|
|
368
370
|
contourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );
|
|
369
371
|
|
|
@@ -660,7 +662,7 @@ class ExtrudeGeometry extends BufferGeometry {
|
|
|
660
662
|
let k = i - 1;
|
|
661
663
|
if ( k < 0 ) k = contour.length - 1;
|
|
662
664
|
|
|
663
|
-
//
|
|
665
|
+
//log('b', i,j, i-1, k,vertices.length);
|
|
664
666
|
|
|
665
667
|
for ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {
|
|
666
668
|
|
|
@@ -14,7 +14,7 @@ const _camera = /*@__PURE__*/ new Camera();
|
|
|
14
14
|
* This helps with visualizing what a camera contains in its frustum. It
|
|
15
15
|
* visualizes the frustum of a camera using a line segments.
|
|
16
16
|
*
|
|
17
|
-
* Based on frustum visualization in [lightgl.js shadowmap example]
|
|
17
|
+
* Based on frustum visualization in [lightgl.js shadowmap example](https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html).
|
|
18
18
|
*
|
|
19
19
|
* `CameraHelper` must be a child of the scene.
|
|
20
20
|
*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnimationClip } from '../animation/AnimationClip.js';
|
|
2
2
|
import { FileLoader } from './FileLoader.js';
|
|
3
3
|
import { Loader } from './Loader.js';
|
|
4
|
+
import { error } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Class for loading animation clips in the JSON format. The files are internally
|
|
@@ -57,7 +58,7 @@ class AnimationLoader extends Loader {
|
|
|
57
58
|
|
|
58
59
|
} else {
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
error( e );
|
|
61
62
|
|
|
62
63
|
}
|
|
63
64
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AudioContext } from '../audio/AudioContext.js';
|
|
2
2
|
import { FileLoader } from './FileLoader.js';
|
|
3
3
|
import { Loader } from './Loader.js';
|
|
4
|
+
import { error } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Class for loading audio buffers. Audios are internally
|
|
@@ -81,7 +82,7 @@ class AudioLoader extends Loader {
|
|
|
81
82
|
|
|
82
83
|
} else {
|
|
83
84
|
|
|
84
|
-
|
|
85
|
+
error( e );
|
|
85
86
|
|
|
86
87
|
}
|
|
87
88
|
|
|
@@ -7,7 +7,7 @@ import { InstancedBufferGeometry } from '../core/InstancedBufferGeometry.js';
|
|
|
7
7
|
import { InstancedBufferAttribute } from '../core/InstancedBufferAttribute.js';
|
|
8
8
|
import { InterleavedBufferAttribute } from '../core/InterleavedBufferAttribute.js';
|
|
9
9
|
import { InterleavedBuffer } from '../core/InterleavedBuffer.js';
|
|
10
|
-
import { getTypedArray } from '../utils.js';
|
|
10
|
+
import { getTypedArray, error } from '../utils.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Class for loading geometries. The files are internally
|
|
@@ -67,7 +67,7 @@ class BufferGeometryLoader extends Loader {
|
|
|
67
67
|
|
|
68
68
|
} else {
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
error( e );
|
|
71
71
|
|
|
72
72
|
}
|
|
73
73
|
|
package/src/loaders/Cache.js
CHANGED
|
@@ -35,7 +35,7 @@ const Cache = {
|
|
|
35
35
|
|
|
36
36
|
if ( this.enabled === false ) return;
|
|
37
37
|
|
|
38
|
-
//
|
|
38
|
+
// log( 'Cache', 'Adding key:', key );
|
|
39
39
|
|
|
40
40
|
this.files[ key ] = file;
|
|
41
41
|
|
|
@@ -52,7 +52,7 @@ const Cache = {
|
|
|
52
52
|
|
|
53
53
|
if ( this.enabled === false ) return;
|
|
54
54
|
|
|
55
|
-
//
|
|
55
|
+
// log( 'Cache', 'Checking key:', key );
|
|
56
56
|
|
|
57
57
|
return this.files[ key ];
|
|
58
58
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Cache } from './Cache.js';
|
|
2
2
|
import { Loader } from './Loader.js';
|
|
3
|
+
import { warn } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
const loading = {};
|
|
5
6
|
|
|
@@ -42,7 +43,7 @@ class FileLoader extends Loader {
|
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
45
|
* The expected mime type. Valid values can be found
|
|
45
|
-
* [here]
|
|
46
|
+
* [here](hhttps://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#mimetype)
|
|
46
47
|
*
|
|
47
48
|
* @type {string}
|
|
48
49
|
*/
|
|
@@ -148,7 +149,7 @@ class FileLoader extends Loader {
|
|
|
148
149
|
|
|
149
150
|
if ( response.status === 0 ) {
|
|
150
151
|
|
|
151
|
-
|
|
152
|
+
warn( 'FileLoader: HTTP Status 0 received.' );
|
|
152
153
|
|
|
153
154
|
}
|
|
154
155
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Cache } from './Cache.js';
|
|
2
2
|
import { Loader } from './Loader.js';
|
|
3
|
+
import { warn } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
const _errorMap = new WeakMap();
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
|
-
* A loader for loading images as an [ImageBitmap]
|
|
8
|
+
* A loader for loading images as an [ImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap).
|
|
8
9
|
* An `ImageBitmap` provides an asynchronous and resource efficient pathway to prepare
|
|
9
10
|
* textures for rendering.
|
|
10
11
|
*
|
|
@@ -48,13 +49,13 @@ class ImageBitmapLoader extends Loader {
|
|
|
48
49
|
|
|
49
50
|
if ( typeof createImageBitmap === 'undefined' ) {
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
warn( 'ImageBitmapLoader: createImageBitmap() not supported.' );
|
|
52
53
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
if ( typeof fetch === 'undefined' ) {
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
warn( 'ImageBitmapLoader: fetch() not supported.' );
|
|
58
59
|
|
|
59
60
|
}
|
|
60
61
|
|
|
@@ -78,7 +79,7 @@ class ImageBitmapLoader extends Loader {
|
|
|
78
79
|
|
|
79
80
|
/**
|
|
80
81
|
* Sets the given loader options. The structure of the object must match the `options` parameter of
|
|
81
|
-
* [createImageBitmap]
|
|
82
|
+
* [createImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap).
|
|
82
83
|
*
|
|
83
84
|
* @param {Object} options - The loader options to set.
|
|
84
85
|
* @return {ImageBitmapLoader} A reference to this image bitmap loader.
|
|
@@ -13,7 +13,7 @@ const _loading = new WeakMap();
|
|
|
13
13
|
* ```
|
|
14
14
|
* Please note that `ImageLoader` has dropped support for progress
|
|
15
15
|
* events in `r84`. For an `ImageLoader` that supports progress events, see
|
|
16
|
-
* [this thread]
|
|
16
|
+
* [this thread](https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639).
|
|
17
17
|
*
|
|
18
18
|
* @augments Loader
|
|
19
19
|
*/
|
package/src/loaders/Loader.js
CHANGED
|
@@ -54,7 +54,7 @@ class Loader {
|
|
|
54
54
|
this.resourcePath = '';
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* The [request header]
|
|
57
|
+
* The [request header](https://developer.mozilla.org/en-US/docs/Glossary/Request_header)
|
|
58
58
|
* used in HTTP request.
|
|
59
59
|
*
|
|
60
60
|
* @type {Object<string, any>}
|
|
@@ -119,7 +119,7 @@ class Loader {
|
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
121
|
* Whether the XMLHttpRequest uses credentials such as cookies, authorization
|
|
122
|
-
* headers or TLS client certificates, see [XMLHttpRequest.withCredentials]
|
|
122
|
+
* headers or TLS client certificates, see [XMLHttpRequest.withCredentials](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials).
|
|
123
123
|
*
|
|
124
124
|
* Note: This setting has no effect if you are loading files locally or from the same domain.
|
|
125
125
|
*
|
|
@@ -162,7 +162,7 @@ class Loader {
|
|
|
162
162
|
/**
|
|
163
163
|
* Sets the given request header.
|
|
164
164
|
*
|
|
165
|
-
* @param {Object} requestHeader - A [request header]
|
|
165
|
+
* @param {Object} requestHeader - A [request header](https://developer.mozilla.org/en-US/docs/Glossary/Request_header)
|
|
166
166
|
* for configuring the HTTP request.
|
|
167
167
|
* @return {Loader} A reference to this instance.
|
|
168
168
|
*/
|
|
@@ -72,9 +72,10 @@ class LoadingManager {
|
|
|
72
72
|
/**
|
|
73
73
|
* Used for aborting ongoing requests in loaders using this manager.
|
|
74
74
|
*
|
|
75
|
-
* @
|
|
75
|
+
* @private
|
|
76
|
+
* @type {AbortController | null}
|
|
76
77
|
*/
|
|
77
|
-
this.
|
|
78
|
+
this._abortController = null;
|
|
78
79
|
|
|
79
80
|
/**
|
|
80
81
|
* This should be called by any loader using the manager when the loader
|
|
@@ -285,8 +286,9 @@ class LoadingManager {
|
|
|
285
286
|
*/
|
|
286
287
|
this.abort = function () {
|
|
287
288
|
|
|
289
|
+
|
|
288
290
|
this.abortController.abort();
|
|
289
|
-
this.
|
|
291
|
+
this._abortController = null;
|
|
290
292
|
|
|
291
293
|
return this;
|
|
292
294
|
|
|
@@ -294,6 +296,26 @@ class LoadingManager {
|
|
|
294
296
|
|
|
295
297
|
}
|
|
296
298
|
|
|
299
|
+
// TODO: Revert this back to a single member variable once this issue has been fixed
|
|
300
|
+
// https://github.com/cloudflare/workerd/issues/3657
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Used for aborting ongoing requests in loaders using this manager.
|
|
304
|
+
*
|
|
305
|
+
* @type {AbortController}
|
|
306
|
+
*/
|
|
307
|
+
get abortController() {
|
|
308
|
+
|
|
309
|
+
if ( ! this._abortController ) {
|
|
310
|
+
|
|
311
|
+
this._abortController = new AbortController();
|
|
312
|
+
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return this._abortController;
|
|
316
|
+
|
|
317
|
+
}
|
|
318
|
+
|
|
297
319
|
}
|
|
298
320
|
|
|
299
321
|
/**
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
LineBasicMaterial,
|
|
27
27
|
Material,
|
|
28
28
|
} from '../materials/Materials.js';
|
|
29
|
+
import { error, warn } from '../utils.js';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Class for loading geometries. The files are internally
|
|
@@ -89,7 +90,7 @@ class MaterialLoader extends Loader {
|
|
|
89
90
|
|
|
90
91
|
} else {
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
error( e );
|
|
93
94
|
|
|
94
95
|
}
|
|
95
96
|
|
|
@@ -115,7 +116,7 @@ class MaterialLoader extends Loader {
|
|
|
115
116
|
|
|
116
117
|
if ( textures[ name ] === undefined ) {
|
|
117
118
|
|
|
118
|
-
|
|
119
|
+
warn( 'MaterialLoader: Undefined texture', name );
|
|
119
120
|
|
|
120
121
|
}
|
|
121
122
|
|
|
@@ -61,12 +61,12 @@ import { BufferGeometryLoader } from './BufferGeometryLoader.js';
|
|
|
61
61
|
import { Loader } from './Loader.js';
|
|
62
62
|
import { FileLoader } from './FileLoader.js';
|
|
63
63
|
import * as Geometries from '../geometries/Geometries.js';
|
|
64
|
-
import { getTypedArray } from '../utils.js';
|
|
64
|
+
import { getTypedArray, error, warn } from '../utils.js';
|
|
65
65
|
import { Box3 } from '../math/Box3.js';
|
|
66
66
|
import { Sphere } from '../math/Sphere.js';
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
-
* A loader for loading a JSON resource in the [JSON Object/Scene format]
|
|
69
|
+
* A loader for loading a JSON resource in the [JSON Object/Scene format](https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4).
|
|
70
70
|
* The files are internally loaded via {@link FileLoader}.
|
|
71
71
|
*
|
|
72
72
|
* ```js
|
|
@@ -125,7 +125,7 @@ class ObjectLoader extends Loader {
|
|
|
125
125
|
|
|
126
126
|
if ( onError !== undefined ) onError( error );
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
error( 'ObjectLoader: Can\'t parse ' + url + '.', error.message );
|
|
129
129
|
|
|
130
130
|
return;
|
|
131
131
|
|
|
@@ -137,7 +137,7 @@ class ObjectLoader extends Loader {
|
|
|
137
137
|
|
|
138
138
|
if ( onError !== undefined ) onError( new Error( 'THREE.ObjectLoader: Can\'t load ' + url ) );
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
error( 'ObjectLoader: Can\'t load ' + url );
|
|
141
141
|
return;
|
|
142
142
|
|
|
143
143
|
}
|
|
@@ -347,7 +347,7 @@ class ObjectLoader extends Loader {
|
|
|
347
347
|
|
|
348
348
|
} else {
|
|
349
349
|
|
|
350
|
-
|
|
350
|
+
warn( `ObjectLoader: Unsupported geometry type "${ data.type }"` );
|
|
351
351
|
|
|
352
352
|
}
|
|
353
353
|
|
|
@@ -638,7 +638,7 @@ class ObjectLoader extends Loader {
|
|
|
638
638
|
|
|
639
639
|
if ( typeof value === 'number' ) return value;
|
|
640
640
|
|
|
641
|
-
|
|
641
|
+
warn( 'ObjectLoader.parseTexture: Constant should be in numeric form.', value );
|
|
642
642
|
|
|
643
643
|
return type[ value ];
|
|
644
644
|
|
|
@@ -654,13 +654,13 @@ class ObjectLoader extends Loader {
|
|
|
654
654
|
|
|
655
655
|
if ( data.image === undefined ) {
|
|
656
656
|
|
|
657
|
-
|
|
657
|
+
warn( 'ObjectLoader: No "image" specified for', data.uuid );
|
|
658
658
|
|
|
659
659
|
}
|
|
660
660
|
|
|
661
661
|
if ( images[ data.image ] === undefined ) {
|
|
662
662
|
|
|
663
|
-
|
|
663
|
+
warn( 'ObjectLoader: Undefined image', data.image );
|
|
664
664
|
|
|
665
665
|
}
|
|
666
666
|
|
|
@@ -748,7 +748,7 @@ class ObjectLoader extends Loader {
|
|
|
748
748
|
|
|
749
749
|
if ( geometries[ name ] === undefined ) {
|
|
750
750
|
|
|
751
|
-
|
|
751
|
+
warn( 'ObjectLoader: Undefined geometry', name );
|
|
752
752
|
|
|
753
753
|
}
|
|
754
754
|
|
|
@@ -770,7 +770,7 @@ class ObjectLoader extends Loader {
|
|
|
770
770
|
|
|
771
771
|
if ( materials[ uuid ] === undefined ) {
|
|
772
772
|
|
|
773
|
-
|
|
773
|
+
warn( 'ObjectLoader: Undefined material', uuid );
|
|
774
774
|
|
|
775
775
|
}
|
|
776
776
|
|
|
@@ -784,7 +784,7 @@ class ObjectLoader extends Loader {
|
|
|
784
784
|
|
|
785
785
|
if ( materials[ name ] === undefined ) {
|
|
786
786
|
|
|
787
|
-
|
|
787
|
+
warn( 'ObjectLoader: Undefined material', name );
|
|
788
788
|
|
|
789
789
|
}
|
|
790
790
|
|
|
@@ -796,7 +796,7 @@ class ObjectLoader extends Loader {
|
|
|
796
796
|
|
|
797
797
|
if ( textures[ uuid ] === undefined ) {
|
|
798
798
|
|
|
799
|
-
|
|
799
|
+
warn( 'ObjectLoader: Undefined texture', uuid );
|
|
800
800
|
|
|
801
801
|
}
|
|
802
802
|
|
|
@@ -1197,7 +1197,7 @@ class ObjectLoader extends Loader {
|
|
|
1197
1197
|
|
|
1198
1198
|
if ( skeleton === undefined ) {
|
|
1199
1199
|
|
|
1200
|
-
|
|
1200
|
+
warn( 'ObjectLoader: No skeleton found with UUID:', child.skeleton );
|
|
1201
1201
|
|
|
1202
1202
|
} else {
|
|
1203
1203
|
|
|
@@ -14,7 +14,7 @@ import { Loader } from './Loader.js';
|
|
|
14
14
|
* ```
|
|
15
15
|
* Please note that `TextureLoader` has dropped support for progress
|
|
16
16
|
* events in `r84`. For a `TextureLoader` that supports progress events, see
|
|
17
|
-
* [this thread]
|
|
17
|
+
* [this thread](https://github.com/mrdoob/three.js/issues/10439#issuecomment-293260145).
|
|
18
18
|
*
|
|
19
19
|
* @augments Loader
|
|
20
20
|
*/
|
|
@@ -2,6 +2,7 @@ import { nodeObject, float } from '../../nodes/tsl/TSLBase.js';
|
|
|
2
2
|
|
|
3
3
|
import { Loader } from '../Loader.js';
|
|
4
4
|
import { FileLoader } from '../../loaders/FileLoader.js';
|
|
5
|
+
import { error } from '../../utils.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* A loader for loading node objects in the three.js JSON Object/Scene format.
|
|
@@ -63,7 +64,7 @@ class NodeLoader extends Loader {
|
|
|
63
64
|
|
|
64
65
|
} else {
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
error( e );
|
|
67
68
|
|
|
68
69
|
}
|
|
69
70
|
|
|
@@ -179,7 +180,7 @@ class NodeLoader extends Loader {
|
|
|
179
180
|
|
|
180
181
|
if ( this.nodes[ type ] === undefined ) {
|
|
181
182
|
|
|
182
|
-
|
|
183
|
+
error( 'NodeLoader: Node type not found:', type );
|
|
183
184
|
return float();
|
|
184
185
|
|
|
185
186
|
}
|
|
@@ -2,6 +2,7 @@ import { Color } from '../math/Color.js';
|
|
|
2
2
|
import { EventDispatcher } from '../core/EventDispatcher.js';
|
|
3
3
|
import { FrontSide, NormalBlending, LessEqualDepth, AddEquation, OneMinusSrcAlphaFactor, SrcAlphaFactor, AlwaysStencilFunc, KeepStencilOp } from '../constants.js';
|
|
4
4
|
import { generateUUID } from '../math/MathUtils.js';
|
|
5
|
+
import { warn } from '../utils.js';
|
|
5
6
|
|
|
6
7
|
let _materialId = 0;
|
|
7
8
|
|
|
@@ -522,7 +523,7 @@ class Material extends EventDispatcher {
|
|
|
522
523
|
*
|
|
523
524
|
* This method can only be used when rendering with {@link WebGLRenderer}. The
|
|
524
525
|
* recommended approach when customizing materials is to use `WebGPURenderer` with the new
|
|
525
|
-
* Node Material system and [TSL]
|
|
526
|
+
* Node Material system and [TSL](https://github.com/mrdoob/three.js/wiki/Three.js-Shading-Language).
|
|
526
527
|
*
|
|
527
528
|
* @param {{vertexShader:string,fragmentShader:string,uniforms:Object}} shaderobject - The object holds the uniforms and the vertex and fragment shader source.
|
|
528
529
|
* @param {WebGLRenderer} renderer - A reference to the renderer.
|
|
@@ -561,7 +562,7 @@ class Material extends EventDispatcher {
|
|
|
561
562
|
|
|
562
563
|
if ( newValue === undefined ) {
|
|
563
564
|
|
|
564
|
-
|
|
565
|
+
warn( `Material: parameter '${ key }' has value of undefined.` );
|
|
565
566
|
continue;
|
|
566
567
|
|
|
567
568
|
}
|
|
@@ -570,7 +571,7 @@ class Material extends EventDispatcher {
|
|
|
570
571
|
|
|
571
572
|
if ( currentValue === undefined ) {
|
|
572
573
|
|
|
573
|
-
|
|
574
|
+
warn( `Material: '${ key }' is not a property of THREE.${ this.type }.` );
|
|
574
575
|
continue;
|
|
575
576
|
|
|
576
577
|
}
|
|
@@ -664,6 +665,18 @@ class Material extends EventDispatcher {
|
|
|
664
665
|
|
|
665
666
|
}
|
|
666
667
|
|
|
668
|
+
if ( this.sheenColorMap && this.sheenColorMap.isTexture ) {
|
|
669
|
+
|
|
670
|
+
data.sheenColorMap = this.sheenColorMap.toJSON( meta ).uuid;
|
|
671
|
+
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
if ( this.sheenRoughnessMap && this.sheenRoughnessMap.isTexture ) {
|
|
675
|
+
|
|
676
|
+
data.sheenRoughnessMap = this.sheenRoughnessMap.toJSON( meta ).uuid;
|
|
677
|
+
|
|
678
|
+
}
|
|
679
|
+
|
|
667
680
|
if ( this.dispersion !== undefined ) data.dispersion = this.dispersion;
|
|
668
681
|
|
|
669
682
|
if ( this.iridescence !== undefined ) data.iridescence = this.iridescence;
|