super-three 0.179.0 → 0.184.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/README.md +3 -4
- package/build/three.cjs +14522 -12207
- package/build/three.core.js +12005 -10954
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +2270 -1005
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +63 -18
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +16573 -7890
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +16533 -7888
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +12 -4
- package/examples/jsm/animation/CCDIKSolver.js +8 -4
- package/examples/jsm/controls/ArcballControls.js +15 -12
- package/examples/jsm/controls/DragControls.js +9 -59
- package/examples/jsm/controls/FirstPersonControls.js +61 -57
- package/examples/jsm/controls/FlyControls.js +5 -1
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +113 -10
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +9 -9
- package/examples/jsm/controls/TransformControls.js +35 -3
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMShadowNode.js +6 -2
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -2
- package/examples/jsm/exporters/GLTFExporter.js +185 -34
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +31 -5
- package/examples/jsm/geometries/DecalGeometry.js +3 -3
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +21 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +110 -13
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +542 -0
- package/examples/jsm/inspector/RendererInspector.js +425 -0
- package/examples/jsm/inspector/extensions/extensions.json +6 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
- package/examples/jsm/inspector/tabs/Console.js +238 -0
- package/examples/jsm/inspector/tabs/Memory.js +128 -0
- package/examples/jsm/inspector/tabs/Parameters.js +380 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Settings.js +264 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
- package/examples/jsm/inspector/tabs/Viewer.js +268 -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 +2072 -0
- package/examples/jsm/inspector/ui/Style.js +1667 -0
- package/examples/jsm/inspector/ui/Tab.js +265 -0
- package/examples/jsm/inspector/ui/Values.js +476 -0
- package/examples/jsm/inspector/ui/utils.js +69 -0
- package/examples/jsm/interaction/InteractionManager.js +226 -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/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +651 -0
- 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/LineMaterial.js +7 -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/3DMLoader.js +5 -4
- package/examples/jsm/loaders/3MFLoader.js +3 -3
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +27 -4029
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +692 -53
- package/examples/jsm/loaders/FBXLoader.js +237 -39
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +159 -185
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +485 -0
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +162 -53
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +41 -50
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +9 -41
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +4 -4
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +287 -162
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +79 -2
- package/examples/jsm/loaders/VTKLoader.js +42 -25
- package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +450 -363
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- 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/Octree.js +131 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- 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/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -2
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +73 -25
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +91 -7
- package/examples/jsm/objects/SkyMesh.js +151 -17
- package/examples/jsm/objects/Water.js +7 -6
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +11 -13
- package/examples/jsm/physics/AmmoPhysics.js +12 -7
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +9 -5
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/OutputPass.js +9 -0
- package/examples/jsm/postprocessing/RenderPass.js +10 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +56 -24
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +8 -7
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +175 -61
- 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 +21 -8
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +8 -4
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +7 -6
- 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 +3 -5
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +85 -25
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +52 -10
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +51 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +36 -24
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +40 -5
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +23 -9
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +5 -37
- package/examples/jsm/tsl/display/DenoiseNode.js +3 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
- package/examples/jsm/tsl/display/FSR1Node.js +477 -0
- package/examples/jsm/tsl/display/FXAANode.js +2 -2
- package/examples/jsm/tsl/display/GTAONode.js +59 -9
- package/examples/jsm/tsl/display/GaussianBlurNode.js +68 -35
- package/examples/jsm/tsl/display/GodraysNode.js +615 -0
- package/examples/jsm/tsl/display/LensflareNode.js +1 -1
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
- package/examples/jsm/tsl/display/OutlineNode.js +81 -20
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
- package/examples/jsm/tsl/display/SMAANode.js +2 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
- package/examples/jsm/tsl/display/SSGINode.js +638 -0
- package/examples/jsm/tsl/display/SSRNode.js +186 -69
- package/examples/jsm/tsl/display/SSSNode.js +490 -0
- package/examples/jsm/tsl/display/Shape.js +29 -0
- package/examples/jsm/tsl/display/SharpenNode.js +283 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
- package/examples/jsm/tsl/display/TAAUNode.js +835 -0
- package/examples/jsm/tsl/display/TRAANode.js +381 -75
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
- package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
- package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
- package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
- package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
- package/examples/jsm/tsl/math/Bayer.js +53 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +3 -4
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +13 -6
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -7
- package/package.json +27 -38
- package/src/Three.Core.js +7 -3
- package/src/Three.TSL.js +61 -16
- package/src/Three.WebGPU.Nodes.js +7 -0
- package/src/Three.WebGPU.js +11 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +12 -2
- package/src/animation/AnimationClip.js +21 -5
- package/src/animation/AnimationMixer.js +9 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +54 -14
- package/src/animation/PropertyBinding.js +12 -11
- package/src/animation/PropertyMixer.js +4 -4
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
- package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
- package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +11 -10
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- 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 +100 -7
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +24 -12
- package/src/core/Clock.js +7 -0
- 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 +55 -6
- package/src/core/Raycaster.js +4 -3
- package/src/core/RenderTarget.js +14 -5
- 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 +259 -57
- package/src/extras/TextureUtils.js +6 -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/curves/CatmullRomCurve3.js +3 -2
- 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 +10 -8
- 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/PolyhedronGeometry.js +1 -1
- 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 +9 -3
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +4 -1
- package/src/helpers/DirectionalLightHelper.js +4 -1
- package/src/helpers/HemisphereLightHelper.js +3 -0
- package/src/helpers/PointLightHelper.js +1 -25
- package/src/helpers/SpotLightHelper.js +3 -0
- package/src/lights/DirectionalLight.js +13 -0
- package/src/lights/HemisphereLight.js +10 -0
- package/src/lights/Light.js +1 -11
- package/src/lights/LightProbe.js +0 -15
- package/src/lights/LightShadow.js +15 -6
- package/src/lights/PointLight.js +15 -0
- package/src/lights/PointLightShadow.js +0 -86
- package/src/lights/SpotLight.js +22 -1
- package/src/lights/webgpu/IESSpotLight.js +2 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +13 -2
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +30 -2
- package/src/loaders/DataTextureLoader.js +6 -4
- package/src/loaders/FileLoader.js +4 -4
- package/src/loaders/ImageBitmapLoader.js +17 -13
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +9 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +6 -4
- package/src/loaders/ObjectLoader.js +57 -17
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +5 -4
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/Material.js +18 -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 +11 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +11 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +2 -1
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +22 -3
- package/src/materials/nodes/Line2NodeMaterial.js +36 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +95 -35
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +194 -88
- 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/Line3.js +6 -5
- package/src/math/MathUtils.js +23 -21
- package/src/math/Matrix2.js +14 -10
- package/src/math/Matrix3.js +15 -11
- package/src/math/Matrix4.js +94 -81
- package/src/math/Plane.js +5 -4
- package/src/math/Quaternion.js +60 -84
- package/src/math/Sphere.js +1 -1
- package/src/math/Spherical.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +11 -7
- package/src/math/Vector3.js +15 -13
- package/src/math/Vector4.js +13 -9
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/nodes/Nodes.js +86 -65
- package/src/nodes/TSL.js +11 -8
- package/src/nodes/accessors/Arrays.js +1 -1
- package/src/nodes/accessors/BatchNode.js +10 -10
- package/src/nodes/accessors/Bitangent.js +5 -5
- package/src/nodes/accessors/BufferAttributeNode.js +107 -15
- package/src/nodes/accessors/BufferNode.js +30 -3
- package/src/nodes/accessors/Camera.js +260 -13
- package/src/nodes/accessors/ClippingNode.js +10 -9
- package/src/nodes/accessors/CubeTextureNode.js +32 -6
- package/src/nodes/accessors/InstanceNode.js +164 -39
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/MaterialNode.js +9 -1
- package/src/nodes/accessors/MaterialProperties.js +2 -5
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +16 -15
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +51 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +7 -7
- package/src/nodes/accessors/ReferenceNode.js +11 -10
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/SkinningNode.js +27 -26
- package/src/nodes/accessors/StorageBufferNode.js +14 -24
- package/src/nodes/accessors/StorageTextureNode.js +62 -9
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +41 -31
- package/src/nodes/accessors/TextureNode.js +193 -63
- package/src/nodes/accessors/UniformArrayNode.js +6 -4
- package/src/nodes/accessors/UserDataNode.js +1 -2
- package/src/nodes/accessors/VertexColorNode.js +1 -2
- package/src/nodes/code/FunctionCallNode.js +25 -5
- package/src/nodes/code/FunctionNode.js +25 -3
- package/src/nodes/core/ArrayNode.js +22 -2
- package/src/nodes/core/AssignNode.js +6 -5
- package/src/nodes/core/AttributeNode.js +5 -4
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +133 -15
- package/src/nodes/core/IndexNode.js +4 -3
- package/src/nodes/core/InputNode.js +3 -2
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +41 -8
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +264 -46
- package/src/nodes/core/NodeBuilder.js +453 -87
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +31 -23
- 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 +25 -97
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +34 -3
- package/src/nodes/core/PropertyNode.js +26 -3
- package/src/nodes/core/StackNode.js +99 -23
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +22 -8
- package/src/nodes/core/StructTypeNode.js +13 -18
- package/src/nodes/core/SubBuildNode.js +4 -4
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +37 -13
- package/src/nodes/core/VarNode.js +96 -34
- package/src/nodes/core/VaryingNode.js +2 -18
- package/src/nodes/display/BlendModes.js +0 -63
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +18 -1
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +41 -5
- package/src/nodes/display/PassNode.js +175 -25
- package/src/nodes/display/RenderOutputNode.js +35 -9
- package/src/nodes/display/ScreenNode.js +47 -15
- package/src/nodes/display/ToneMappingNode.js +32 -5
- package/src/nodes/display/ToonOutlinePassNode.js +10 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +14 -6
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +72 -14
- package/src/nodes/fog/Fog.js +18 -34
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +128 -46
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +44 -6
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +76 -38
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +34 -9
- package/src/nodes/lighting/LightsNode.js +10 -32
- package/src/nodes/lighting/PointShadowNode.js +167 -148
- package/src/nodes/lighting/ShadowFilterNode.js +55 -65
- package/src/nodes/lighting/ShadowNode.js +189 -44
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +25 -8
- package/src/nodes/math/MathNode.js +98 -57
- package/src/nodes/math/OperatorNode.js +8 -5
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/pmrem/PMREMNode.js +1 -1
- package/src/nodes/pmrem/PMREMUtils.js +111 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -3
- package/src/nodes/tsl/TSLCore.js +488 -166
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +14 -13
- package/src/nodes/utils/EventNode.js +67 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +7 -4
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +60 -8
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +60 -1
- package/src/nodes/utils/RTTNode.js +14 -4
- package/src/nodes/utils/ReflectorNode.js +61 -11
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +12 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +46 -18
- package/src/objects/InstancedMesh.js +30 -3
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +3 -2
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +12 -2
- package/src/objects/SkinnedMesh.js +29 -10
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +372 -179
- package/src/renderers/common/Animation.js +16 -4
- package/src/renderers/common/Attributes.js +16 -2
- package/src/renderers/common/Backend.js +137 -35
- package/src/renderers/common/Background.js +28 -14
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +83 -12
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +40 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +55 -3
- package/src/renderers/common/Info.js +337 -6
- package/src/renderers/common/InspectorBase.js +151 -0
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +41 -8
- package/src/renderers/common/PostProcessing.js +9 -226
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/ReadbackBuffer.js +78 -0
- package/src/renderers/common/RenderBundle.js +3 -1
- package/src/renderers/common/RenderBundles.js +7 -3
- package/src/renderers/common/RenderContext.js +18 -2
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +32 -6
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +22 -6
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +927 -335
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +52 -14
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +208 -47
- package/src/renderers/common/TimestampQueryPool.js +70 -6
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +64 -2
- package/src/renderers/common/XRManager.js +79 -51
- package/src/renderers/common/extras/PMREMGenerator.js +176 -79
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +260 -95
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
- package/src/renderers/shaders/DFGLUTData.js +49 -0
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +2 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +152 -59
- 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/normal_fragment_maps.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +221 -190
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk.js +5 -3
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +4 -1
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +7 -6
- package/src/renderers/shaders/UniformsLib.js +8 -5
- package/src/renderers/shaders/UniformsUtils.js +52 -9
- package/src/renderers/webgl/WebGLAnimation.js +2 -1
- package/src/renderers/webgl/WebGLBackground.js +15 -15
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLCapabilities.js +11 -5
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +24 -13
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +270 -0
- package/src/renderers/webgl/WebGLProgram.js +63 -122
- package/src/renderers/webgl/WebGLPrograms.js +65 -52
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShadowMap.js +191 -26
- package/src/renderers/webgl/WebGLState.js +79 -40
- package/src/renderers/webgl/WebGLTextures.js +234 -68
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +24 -3
- package/src/renderers/webgl/WebGLUtils.js +8 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +438 -235
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +339 -84
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +229 -11
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +237 -72
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +56 -27
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +8 -3
- package/src/renderers/webgpu/WebGPUBackend.js +403 -253
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +5 -3
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +491 -123
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +108 -34
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +360 -201
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +111 -54
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +155 -205
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +407 -149
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +36 -13
- package/src/renderers/webgpu/utils/WebGPUUtils.js +55 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +45 -29
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +5 -4
- package/src/textures/Texture.js +19 -7
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +344 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
- package/examples/jsm/shaders/GodRaysShader.js +0 -333
- package/src/nodes/accessors/SceneNode.js +0 -144
- package/src/nodes/code/ScriptableNode.js +0 -726
- package/src/nodes/code/ScriptableValueNode.js +0 -253
- package/src/nodes/display/PosterizeNode.js +0 -65
- package/src/nodes/functions/BSDF/DFGApprox.js +0 -30
- package/src/nodes/utils/RemapNode.js +0 -125
- package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InterpolateLinear,
|
|
3
3
|
InterpolateSmooth,
|
|
4
|
-
InterpolateDiscrete
|
|
4
|
+
InterpolateDiscrete,
|
|
5
|
+
InterpolateBezier
|
|
5
6
|
} from '../constants.js';
|
|
6
7
|
import { CubicInterpolant } from '../math/interpolants/CubicInterpolant.js';
|
|
7
8
|
import { LinearInterpolant } from '../math/interpolants/LinearInterpolant.js';
|
|
8
9
|
import { DiscreteInterpolant } from '../math/interpolants/DiscreteInterpolant.js';
|
|
10
|
+
import { BezierInterpolant } from '../math/interpolants/BezierInterpolant.js';
|
|
9
11
|
import * as AnimationUtils from './AnimationUtils.js';
|
|
12
|
+
import { warn, error } from '../utils.js';
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
|
-
* Represents
|
|
15
|
+
* Represents a timed sequence of keyframes, which are composed of lists of
|
|
13
16
|
* times and related values, and which are used to animate a specific property
|
|
14
17
|
* of an object.
|
|
15
18
|
*/
|
|
@@ -21,7 +24,7 @@ class KeyframeTrack {
|
|
|
21
24
|
* @param {string} name - The keyframe track's name.
|
|
22
25
|
* @param {Array<number>} times - A list of keyframe times.
|
|
23
26
|
* @param {Array<number|string|boolean>} values - A list of keyframe values.
|
|
24
|
-
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} [interpolation] - The interpolation type.
|
|
27
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} [interpolation] - The interpolation type.
|
|
25
28
|
*/
|
|
26
29
|
constructor( name, times, values, interpolation ) {
|
|
27
30
|
|
|
@@ -139,10 +142,37 @@ class KeyframeTrack {
|
|
|
139
142
|
|
|
140
143
|
}
|
|
141
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Factory method for creating a new Bezier interpolant.
|
|
147
|
+
*
|
|
148
|
+
* The Bezier interpolant requires tangent data to be set via the `settings` property
|
|
149
|
+
* on the track before creating the interpolant. The settings should contain:
|
|
150
|
+
* - `inTangents`: Float32Array with [time, value] pairs per keyframe per component
|
|
151
|
+
* - `outTangents`: Float32Array with [time, value] pairs per keyframe per component
|
|
152
|
+
*
|
|
153
|
+
* @static
|
|
154
|
+
* @param {TypedArray} [result] - The result buffer.
|
|
155
|
+
* @return {BezierInterpolant} The new interpolant.
|
|
156
|
+
*/
|
|
157
|
+
InterpolantFactoryMethodBezier( result ) {
|
|
158
|
+
|
|
159
|
+
const interpolant = new BezierInterpolant( this.times, this.values, this.getValueSize(), result );
|
|
160
|
+
|
|
161
|
+
// Pass tangent data from track settings to interpolant
|
|
162
|
+
if ( this.settings ) {
|
|
163
|
+
|
|
164
|
+
interpolant.settings = this.settings;
|
|
165
|
+
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return interpolant;
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
142
172
|
/**
|
|
143
173
|
* Defines the interpolation factor method for this keyframe track.
|
|
144
174
|
*
|
|
145
|
-
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} interpolation - The interpolation type.
|
|
175
|
+
* @param {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} interpolation - The interpolation type.
|
|
146
176
|
* @return {KeyframeTrack} A reference to this keyframe track.
|
|
147
177
|
*/
|
|
148
178
|
setInterpolation( interpolation ) {
|
|
@@ -169,6 +199,12 @@ class KeyframeTrack {
|
|
|
169
199
|
|
|
170
200
|
break;
|
|
171
201
|
|
|
202
|
+
case InterpolateBezier:
|
|
203
|
+
|
|
204
|
+
factoryMethod = this.InterpolantFactoryMethodBezier;
|
|
205
|
+
|
|
206
|
+
break;
|
|
207
|
+
|
|
172
208
|
}
|
|
173
209
|
|
|
174
210
|
if ( factoryMethod === undefined ) {
|
|
@@ -191,7 +227,7 @@ class KeyframeTrack {
|
|
|
191
227
|
|
|
192
228
|
}
|
|
193
229
|
|
|
194
|
-
|
|
230
|
+
warn( 'KeyframeTrack:', message );
|
|
195
231
|
return this;
|
|
196
232
|
|
|
197
233
|
}
|
|
@@ -205,7 +241,7 @@ class KeyframeTrack {
|
|
|
205
241
|
/**
|
|
206
242
|
* Returns the current interpolation type.
|
|
207
243
|
*
|
|
208
|
-
* @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)} The interpolation type.
|
|
244
|
+
* @return {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)} The interpolation type.
|
|
209
245
|
*/
|
|
210
246
|
getInterpolation() {
|
|
211
247
|
|
|
@@ -223,6 +259,10 @@ class KeyframeTrack {
|
|
|
223
259
|
|
|
224
260
|
return InterpolateSmooth;
|
|
225
261
|
|
|
262
|
+
case this.InterpolantFactoryMethodBezier:
|
|
263
|
+
|
|
264
|
+
return InterpolateBezier;
|
|
265
|
+
|
|
226
266
|
}
|
|
227
267
|
|
|
228
268
|
}
|
|
@@ -351,7 +391,7 @@ class KeyframeTrack {
|
|
|
351
391
|
const valueSize = this.getValueSize();
|
|
352
392
|
if ( valueSize - Math.floor( valueSize ) !== 0 ) {
|
|
353
393
|
|
|
354
|
-
|
|
394
|
+
error( 'KeyframeTrack: Invalid value size in track.', this );
|
|
355
395
|
valid = false;
|
|
356
396
|
|
|
357
397
|
}
|
|
@@ -363,7 +403,7 @@ class KeyframeTrack {
|
|
|
363
403
|
|
|
364
404
|
if ( nKeys === 0 ) {
|
|
365
405
|
|
|
366
|
-
|
|
406
|
+
error( 'KeyframeTrack: Track is empty.', this );
|
|
367
407
|
valid = false;
|
|
368
408
|
|
|
369
409
|
}
|
|
@@ -376,7 +416,7 @@ class KeyframeTrack {
|
|
|
376
416
|
|
|
377
417
|
if ( typeof currTime === 'number' && isNaN( currTime ) ) {
|
|
378
418
|
|
|
379
|
-
|
|
419
|
+
error( 'KeyframeTrack: Time is not a valid number.', this, i, currTime );
|
|
380
420
|
valid = false;
|
|
381
421
|
break;
|
|
382
422
|
|
|
@@ -384,7 +424,7 @@ class KeyframeTrack {
|
|
|
384
424
|
|
|
385
425
|
if ( prevTime !== null && prevTime > currTime ) {
|
|
386
426
|
|
|
387
|
-
|
|
427
|
+
error( 'KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );
|
|
388
428
|
valid = false;
|
|
389
429
|
break;
|
|
390
430
|
|
|
@@ -404,7 +444,7 @@ class KeyframeTrack {
|
|
|
404
444
|
|
|
405
445
|
if ( isNaN( value ) ) {
|
|
406
446
|
|
|
407
|
-
|
|
447
|
+
error( 'KeyframeTrack: Value is not a valid number.', this, i, value );
|
|
408
448
|
valid = false;
|
|
409
449
|
break;
|
|
410
450
|
|
|
@@ -424,7 +464,7 @@ class KeyframeTrack {
|
|
|
424
464
|
* Optimizes this keyframe track by removing equivalent sequential keys (which are
|
|
425
465
|
* common in morph target sequences).
|
|
426
466
|
*
|
|
427
|
-
* @return {
|
|
467
|
+
* @return {KeyframeTrack} A reference to this keyframe track.
|
|
428
468
|
*/
|
|
429
469
|
optimize() {
|
|
430
470
|
|
|
@@ -564,7 +604,7 @@ class KeyframeTrack {
|
|
|
564
604
|
/**
|
|
565
605
|
* The value type name.
|
|
566
606
|
*
|
|
567
|
-
* @type {
|
|
607
|
+
* @type {string}
|
|
568
608
|
* @default ''
|
|
569
609
|
*/
|
|
570
610
|
KeyframeTrack.prototype.ValueTypeName = '';
|
|
@@ -588,7 +628,7 @@ KeyframeTrack.prototype.ValueBufferType = Float32Array;
|
|
|
588
628
|
/**
|
|
589
629
|
* The default interpolation type of this keyframe track.
|
|
590
630
|
*
|
|
591
|
-
* @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth)}
|
|
631
|
+
* @type {(InterpolateLinear|InterpolateDiscrete|InterpolateSmooth|InterpolateBezier)}
|
|
592
632
|
* @default InterpolateLinear
|
|
593
633
|
*/
|
|
594
634
|
KeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { warn, error } from '../utils.js';
|
|
1
2
|
// Characters [].:/ are reserved for track binding syntax.
|
|
2
3
|
const _RESERVED_CHARS_RE = '\\[\\]\\.:\\/';
|
|
3
4
|
const _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );
|
|
@@ -507,7 +508,7 @@ class PropertyBinding {
|
|
|
507
508
|
// ensure there is a value node
|
|
508
509
|
if ( ! targetObject ) {
|
|
509
510
|
|
|
510
|
-
|
|
511
|
+
warn( 'PropertyBinding: No target node found for track: ' + this.path + '.' );
|
|
511
512
|
return;
|
|
512
513
|
|
|
513
514
|
}
|
|
@@ -523,14 +524,14 @@ class PropertyBinding {
|
|
|
523
524
|
|
|
524
525
|
if ( ! targetObject.material ) {
|
|
525
526
|
|
|
526
|
-
|
|
527
|
+
error( 'PropertyBinding: Can not bind to material as node does not have a material.', this );
|
|
527
528
|
return;
|
|
528
529
|
|
|
529
530
|
}
|
|
530
531
|
|
|
531
532
|
if ( ! targetObject.material.materials ) {
|
|
532
533
|
|
|
533
|
-
|
|
534
|
+
error( 'PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );
|
|
534
535
|
return;
|
|
535
536
|
|
|
536
537
|
}
|
|
@@ -543,7 +544,7 @@ class PropertyBinding {
|
|
|
543
544
|
|
|
544
545
|
if ( ! targetObject.skeleton ) {
|
|
545
546
|
|
|
546
|
-
|
|
547
|
+
error( 'PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );
|
|
547
548
|
return;
|
|
548
549
|
|
|
549
550
|
}
|
|
@@ -578,14 +579,14 @@ class PropertyBinding {
|
|
|
578
579
|
|
|
579
580
|
if ( ! targetObject.material ) {
|
|
580
581
|
|
|
581
|
-
|
|
582
|
+
error( 'PropertyBinding: Can not bind to material as node does not have a material.', this );
|
|
582
583
|
return;
|
|
583
584
|
|
|
584
585
|
}
|
|
585
586
|
|
|
586
587
|
if ( ! targetObject.material.map ) {
|
|
587
588
|
|
|
588
|
-
|
|
589
|
+
error( 'PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );
|
|
589
590
|
return;
|
|
590
591
|
|
|
591
592
|
}
|
|
@@ -597,7 +598,7 @@ class PropertyBinding {
|
|
|
597
598
|
|
|
598
599
|
if ( targetObject[ objectName ] === undefined ) {
|
|
599
600
|
|
|
600
|
-
|
|
601
|
+
error( 'PropertyBinding: Can not bind to objectName of node undefined.', this );
|
|
601
602
|
return;
|
|
602
603
|
|
|
603
604
|
}
|
|
@@ -611,7 +612,7 @@ class PropertyBinding {
|
|
|
611
612
|
|
|
612
613
|
if ( targetObject[ objectIndex ] === undefined ) {
|
|
613
614
|
|
|
614
|
-
|
|
615
|
+
error( 'PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );
|
|
615
616
|
return;
|
|
616
617
|
|
|
617
618
|
}
|
|
@@ -629,7 +630,7 @@ class PropertyBinding {
|
|
|
629
630
|
|
|
630
631
|
const nodeName = parsedPath.nodeName;
|
|
631
632
|
|
|
632
|
-
|
|
633
|
+
error( 'PropertyBinding: Trying to update property for track: ' + nodeName +
|
|
633
634
|
'.' + propertyName + ' but it wasn\'t found.', targetObject );
|
|
634
635
|
return;
|
|
635
636
|
|
|
@@ -664,14 +665,14 @@ class PropertyBinding {
|
|
|
664
665
|
// support resolving morphTarget names into indices.
|
|
665
666
|
if ( ! targetObject.geometry ) {
|
|
666
667
|
|
|
667
|
-
|
|
668
|
+
error( 'PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );
|
|
668
669
|
return;
|
|
669
670
|
|
|
670
671
|
}
|
|
671
672
|
|
|
672
673
|
if ( ! targetObject.geometry.morphAttributes ) {
|
|
673
674
|
|
|
674
|
-
|
|
675
|
+
error( 'PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );
|
|
675
676
|
return;
|
|
676
677
|
|
|
677
678
|
}
|
|
@@ -88,7 +88,7 @@ class PropertyMixer {
|
|
|
88
88
|
this._addIndex = 4;
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
91
|
+
* Accumulated weight of the property binding.
|
|
92
92
|
*
|
|
93
93
|
* @type {number}
|
|
94
94
|
* @default 0
|
|
@@ -96,7 +96,7 @@ class PropertyMixer {
|
|
|
96
96
|
this.cumulativeWeight = 0;
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Accumulated additive weight of the property binding.
|
|
100
100
|
*
|
|
101
101
|
* @type {number}
|
|
102
102
|
* @default 0
|
|
@@ -104,7 +104,7 @@ class PropertyMixer {
|
|
|
104
104
|
this.cumulativeWeightAdditive = 0;
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
|
-
*
|
|
107
|
+
* Number of active keyframe tracks currently using this property binding.
|
|
108
108
|
*
|
|
109
109
|
* @type {number}
|
|
110
110
|
* @default 0
|
|
@@ -112,7 +112,7 @@ class PropertyMixer {
|
|
|
112
112
|
this.useCount = 0;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
*
|
|
115
|
+
* Number of keyframe tracks referencing this property binding.
|
|
116
116
|
*
|
|
117
117
|
* @type {number}
|
|
118
118
|
* @default 0
|
package/src/audio/Audio.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Object3D } from '../core/Object3D.js';
|
|
2
|
+
import { warn } from '../utils.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Represents a non-positional ( global ) audio object.
|
|
5
6
|
*
|
|
6
|
-
* This and related audio modules make use of the [Web Audio API]
|
|
7
|
+
* This and related audio modules make use of the [Web Audio API](https://www.w3.org/TR/webaudio-1.1/).
|
|
7
8
|
*
|
|
8
9
|
* ```js
|
|
9
10
|
* // create an AudioListener and add it to the camera
|
|
@@ -190,7 +191,7 @@ class Audio extends Object3D {
|
|
|
190
191
|
/**
|
|
191
192
|
* Defines the source type.
|
|
192
193
|
*
|
|
193
|
-
* The property is automatically by one of the `set*()` methods.
|
|
194
|
+
* The property is automatically set by one of the `set*()` methods.
|
|
194
195
|
*
|
|
195
196
|
* @type {('empty'|'audioNode'|'mediaNode'|'mediaStreamNode'|'buffer')}
|
|
196
197
|
* @readonly
|
|
@@ -314,14 +315,14 @@ class Audio extends Object3D {
|
|
|
314
315
|
|
|
315
316
|
if ( this.isPlaying === true ) {
|
|
316
317
|
|
|
317
|
-
|
|
318
|
+
warn( 'Audio: Audio is already playing.' );
|
|
318
319
|
return;
|
|
319
320
|
|
|
320
321
|
}
|
|
321
322
|
|
|
322
323
|
if ( this.hasPlaybackControl === false ) {
|
|
323
324
|
|
|
324
|
-
|
|
325
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
325
326
|
return;
|
|
326
327
|
|
|
327
328
|
}
|
|
@@ -358,7 +359,7 @@ class Audio extends Object3D {
|
|
|
358
359
|
|
|
359
360
|
if ( this.hasPlaybackControl === false ) {
|
|
360
361
|
|
|
361
|
-
|
|
362
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
362
363
|
return;
|
|
363
364
|
|
|
364
365
|
}
|
|
@@ -400,7 +401,7 @@ class Audio extends Object3D {
|
|
|
400
401
|
|
|
401
402
|
if ( this.hasPlaybackControl === false ) {
|
|
402
403
|
|
|
403
|
-
|
|
404
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
404
405
|
return;
|
|
405
406
|
|
|
406
407
|
}
|
|
@@ -593,7 +594,7 @@ class Audio extends Object3D {
|
|
|
593
594
|
|
|
594
595
|
if ( this.hasPlaybackControl === false ) {
|
|
595
596
|
|
|
596
|
-
|
|
597
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
597
598
|
return;
|
|
598
599
|
|
|
599
600
|
}
|
|
@@ -642,7 +643,7 @@ class Audio extends Object3D {
|
|
|
642
643
|
|
|
643
644
|
if ( this.hasPlaybackControl === false ) {
|
|
644
645
|
|
|
645
|
-
|
|
646
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
646
647
|
return false;
|
|
647
648
|
|
|
648
649
|
}
|
|
@@ -663,7 +664,7 @@ class Audio extends Object3D {
|
|
|
663
664
|
|
|
664
665
|
if ( this.hasPlaybackControl === false ) {
|
|
665
666
|
|
|
666
|
-
|
|
667
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
667
668
|
return;
|
|
668
669
|
|
|
669
670
|
}
|
|
@@ -741,7 +742,7 @@ class Audio extends Object3D {
|
|
|
741
742
|
|
|
742
743
|
if ( source.sourceType !== 'buffer' ) {
|
|
743
744
|
|
|
744
|
-
|
|
745
|
+
warn( 'Audio: Audio source type cannot be copied.' );
|
|
745
746
|
|
|
746
747
|
return this;
|
|
747
748
|
|
|
@@ -10,7 +10,7 @@ class AudioContext {
|
|
|
10
10
|
/**
|
|
11
11
|
* Returns the global native audio context.
|
|
12
12
|
*
|
|
13
|
-
* @return {AudioContext} The native audio context.
|
|
13
|
+
* @return {Window.AudioContext} The native audio context.
|
|
14
14
|
*/
|
|
15
15
|
static getContext() {
|
|
16
16
|
|
|
@@ -27,7 +27,7 @@ class AudioContext {
|
|
|
27
27
|
/**
|
|
28
28
|
* Allows to set the global native audio context from outside.
|
|
29
29
|
*
|
|
30
|
-
* @param {AudioContext} value - The native context to set.
|
|
30
|
+
* @param {Window.AudioContext} value - The native context to set.
|
|
31
31
|
*/
|
|
32
32
|
static setContext( value ) {
|
|
33
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector3 } from '../math/Vector3.js';
|
|
2
2
|
import { Quaternion } from '../math/Quaternion.js';
|
|
3
|
-
import {
|
|
3
|
+
import { Timer } from '../core/Timer.js';
|
|
4
4
|
import { Object3D } from '../core/Object3D.js';
|
|
5
5
|
import { AudioContext } from './AudioContext.js';
|
|
6
6
|
|
|
@@ -71,7 +71,7 @@ class AudioListener extends Object3D {
|
|
|
71
71
|
|
|
72
72
|
// private
|
|
73
73
|
|
|
74
|
-
this.
|
|
74
|
+
this._timer = new Timer();
|
|
75
75
|
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -176,9 +176,11 @@ class AudioListener extends Object3D {
|
|
|
176
176
|
|
|
177
177
|
super.updateMatrixWorld( force );
|
|
178
178
|
|
|
179
|
+
this._timer.update();
|
|
180
|
+
|
|
179
181
|
const listener = this.context.listener;
|
|
180
182
|
|
|
181
|
-
this.timeDelta = this.
|
|
183
|
+
this.timeDelta = this._timer.getDelta();
|
|
182
184
|
|
|
183
185
|
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
184
186
|
|
|
@@ -154,7 +154,7 @@ class PositionalAudio extends Audio {
|
|
|
154
154
|
* Defines which algorithm to use to reduce the volume of the audio source
|
|
155
155
|
* as it moves away from the listener.
|
|
156
156
|
*
|
|
157
|
-
* Read [the spec]
|
|
157
|
+
* Read [the spec](https://www.w3.org/TR/webaudio-1.1/#enumdef-distancemodeltype)
|
|
158
158
|
* for more details.
|
|
159
159
|
*
|
|
160
160
|
* @param {('linear'|'inverse'|'exponential')} value - The distance model to set.
|
package/src/cameras/Camera.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { WebGLCoordinateSystem } from '../constants.js';
|
|
2
2
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
3
3
|
import { Object3D } from '../core/Object3D.js';
|
|
4
|
+
import { Vector3 } from '../math/Vector3.js';
|
|
5
|
+
import { Quaternion } from '../math/Quaternion.js';
|
|
6
|
+
|
|
7
|
+
const _position = /*@__PURE__*/ new Vector3();
|
|
8
|
+
const _quaternion = /*@__PURE__*/ new Quaternion();
|
|
9
|
+
const _scale = /*@__PURE__*/ new Vector3();
|
|
4
10
|
|
|
5
11
|
/**
|
|
6
12
|
* Abstract base class for cameras. This class should always be inherited
|
|
@@ -107,7 +113,19 @@ class Camera extends Object3D {
|
|
|
107
113
|
|
|
108
114
|
super.updateMatrixWorld( force );
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
// exclude scale from view matrix to be glTF conform
|
|
117
|
+
|
|
118
|
+
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
119
|
+
|
|
120
|
+
if ( _scale.x === 1 && _scale.y === 1 && _scale.z === 1 ) {
|
|
121
|
+
|
|
122
|
+
this.matrixWorldInverse.copy( this.matrixWorld ).invert();
|
|
123
|
+
|
|
124
|
+
} else {
|
|
125
|
+
|
|
126
|
+
this.matrixWorldInverse.compose( _position, _quaternion, _scale.set( 1, 1, 1 ) ).invert();
|
|
127
|
+
|
|
128
|
+
}
|
|
111
129
|
|
|
112
130
|
}
|
|
113
131
|
|
|
@@ -115,7 +133,19 @@ class Camera extends Object3D {
|
|
|
115
133
|
|
|
116
134
|
super.updateWorldMatrix( updateParents, updateChildren );
|
|
117
135
|
|
|
118
|
-
|
|
136
|
+
// exclude scale from view matrix to be glTF conform
|
|
137
|
+
|
|
138
|
+
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
139
|
+
|
|
140
|
+
if ( _scale.x === 1 && _scale.y === 1 && _scale.z === 1 ) {
|
|
141
|
+
|
|
142
|
+
this.matrixWorldInverse.copy( this.matrixWorld ).invert();
|
|
143
|
+
|
|
144
|
+
} else {
|
|
145
|
+
|
|
146
|
+
this.matrixWorldInverse.compose( _position, _quaternion, _scale.set( 1, 1, 1 ) ).invert();
|
|
147
|
+
|
|
148
|
+
}
|
|
119
149
|
|
|
120
150
|
}
|
|
121
151
|
|
|
@@ -203,19 +203,38 @@ class CubeCamera extends Object3D {
|
|
|
203
203
|
|
|
204
204
|
renderTarget.texture.generateMipmaps = false;
|
|
205
205
|
|
|
206
|
+
// https://github.com/mrdoob/three.js/issues/31413#issuecomment-3095966812
|
|
207
|
+
|
|
208
|
+
let reversedDepthBuffer = false;
|
|
209
|
+
|
|
210
|
+
if ( renderer.isWebGLRenderer === true ) {
|
|
211
|
+
|
|
212
|
+
reversedDepthBuffer = renderer.state.buffers.depth.getReversed();
|
|
213
|
+
|
|
214
|
+
} else {
|
|
215
|
+
|
|
216
|
+
reversedDepthBuffer = renderer.reversedDepthBuffer;
|
|
217
|
+
|
|
218
|
+
}
|
|
219
|
+
|
|
206
220
|
renderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );
|
|
221
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
207
222
|
renderer.render( scene, cameraPX );
|
|
208
223
|
|
|
209
224
|
renderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );
|
|
225
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
210
226
|
renderer.render( scene, cameraNX );
|
|
211
227
|
|
|
212
228
|
renderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );
|
|
229
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
213
230
|
renderer.render( scene, cameraPY );
|
|
214
231
|
|
|
215
232
|
renderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );
|
|
233
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
216
234
|
renderer.render( scene, cameraNY );
|
|
217
235
|
|
|
218
236
|
renderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );
|
|
237
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
219
238
|
renderer.render( scene, cameraPZ );
|
|
220
239
|
|
|
221
240
|
// mipmaps are generated during the last call of render()
|
|
@@ -224,6 +243,7 @@ class CubeCamera extends Object3D {
|
|
|
224
243
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
225
244
|
|
|
226
245
|
renderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );
|
|
246
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
227
247
|
renderer.render( scene, cameraNZ );
|
|
228
248
|
|
|
229
249
|
renderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Camera } from './Camera.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Camera that uses [orthographic projection]
|
|
4
|
+
* Camera that uses [orthographic projection](https://en.wikipedia.org/wiki/Orthographic_projection).
|
|
5
5
|
*
|
|
6
6
|
* In this projection mode, an object's size in the rendered image stays
|
|
7
7
|
* constant regardless of its distance from the camera. This can be useful
|
|
@@ -8,7 +8,7 @@ const _minTarget = /*@__PURE__*/ new Vector2();
|
|
|
8
8
|
const _maxTarget = /*@__PURE__*/ new Vector2();
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Camera that uses [perspective projection]
|
|
11
|
+
* Camera that uses [perspective projection](https://en.wikipedia.org/wiki/Perspective_(graphical)).
|
|
12
12
|
*
|
|
13
13
|
* This projection mode is designed to mimic the way the human eye sees. It
|
|
14
14
|
* is the most common projection mode used for rendering a 3D scene.
|
|
@@ -9,8 +9,8 @@ const _projectionMatrix = /*@__PURE__*/ new Matrix4();
|
|
|
9
9
|
/**
|
|
10
10
|
* A special type of camera that uses two perspective cameras with
|
|
11
11
|
* stereoscopic projection. Can be used for rendering stereo effects
|
|
12
|
-
* like [3D Anaglyph]
|
|
13
|
-
* [Parallax Barrier]
|
|
12
|
+
* like [3D Anaglyph](https://en.wikipedia.org/wiki/Anaglyph_3D) or
|
|
13
|
+
* [Parallax Barrier](https://en.wikipedia.org/wiki/parallax_barrier).
|
|
14
14
|
*/
|
|
15
15
|
class StereoCamera {
|
|
16
16
|
|