@plastic-software/three 0.175.13 → 0.178.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/build/three.cjs +7747 -6792
- package/build/three.core.js +7371 -6576
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +190 -30
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +19 -11
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +4989 -2235
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +5082 -2469
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +0 -1
- package/examples/jsm/animation/AnimationClipCreator.js +1 -0
- package/examples/jsm/animation/CCDIKSolver.js +6 -3
- package/examples/jsm/capabilities/WebGL.js +1 -27
- package/examples/jsm/capabilities/WebGPU.js +1 -0
- package/examples/jsm/controls/ArcballControls.js +15 -4
- package/examples/jsm/controls/DragControls.js +1 -0
- package/examples/jsm/controls/FirstPersonControls.js +1 -0
- package/examples/jsm/controls/FlyControls.js +1 -0
- package/examples/jsm/controls/MapControls.js +1 -0
- package/examples/jsm/controls/OrbitControls.js +1 -0
- package/examples/jsm/controls/PointerLockControls.js +5 -3
- package/examples/jsm/controls/TrackballControls.js +1 -0
- package/examples/jsm/controls/TransformControls.js +62 -14
- package/examples/jsm/csm/CSM.js +2 -0
- package/examples/jsm/csm/CSMFrustum.js +2 -0
- package/examples/jsm/csm/CSMHelper.js +1 -0
- package/examples/jsm/csm/CSMShader.js +4 -1
- package/examples/jsm/csm/CSMShadowNode.js +18 -4
- package/examples/jsm/curves/CurveExtras.js +14 -0
- package/examples/jsm/curves/NURBSCurve.js +1 -0
- package/examples/jsm/curves/NURBSSurface.js +2 -0
- package/examples/jsm/curves/NURBSUtils.js +4 -1
- package/examples/jsm/curves/NURBSVolume.js +2 -0
- package/examples/jsm/effects/AnaglyphEffect.js +2 -0
- package/examples/jsm/effects/AsciiEffect.js +2 -0
- package/examples/jsm/effects/OutlineEffect.js +2 -0
- package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -0
- package/examples/jsm/effects/StereoEffect.js +2 -0
- package/examples/jsm/environments/DebugEnvironment.js +1 -0
- package/examples/jsm/environments/RoomEnvironment.js +49 -35
- package/examples/jsm/exporters/DRACOExporter.js +4 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -0
- package/examples/jsm/exporters/GLTFExporter.js +7 -4
- package/examples/jsm/exporters/KTX2Exporter.js +2 -0
- package/examples/jsm/exporters/OBJExporter.js +3 -1
- package/examples/jsm/exporters/PLYExporter.js +4 -2
- package/examples/jsm/exporters/STLExporter.js +2 -0
- package/examples/jsm/exporters/USDZExporter.js +12 -10
- package/examples/jsm/geometries/BoxLineGeometry.js +1 -0
- package/examples/jsm/geometries/ConvexGeometry.js +1 -0
- package/examples/jsm/geometries/DecalGeometry.js +1 -0
- package/examples/jsm/geometries/ParametricFunctions.js +4 -1
- package/examples/jsm/geometries/ParametricGeometry.js +1 -0
- package/examples/jsm/geometries/RoundedBoxGeometry.js +2 -1
- package/examples/jsm/geometries/TeapotGeometry.js +1 -0
- package/examples/jsm/geometries/TextGeometry.js +1 -0
- package/examples/jsm/helpers/LightProbeHelper.js +1 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -0
- package/examples/jsm/helpers/OctreeHelper.js +1 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +1 -0
- package/examples/jsm/helpers/RapierHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +1 -0
- package/examples/jsm/helpers/TextureHelper.js +1 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +5 -4
- package/examples/jsm/helpers/VertexNormalsHelper.js +1 -0
- package/examples/jsm/helpers/VertexTangentsHelper.js +1 -0
- package/examples/jsm/helpers/ViewHelper.js +1 -0
- package/examples/jsm/interactive/HTMLMesh.js +7 -0
- package/examples/jsm/interactive/InteractiveGroup.js +1 -0
- package/examples/jsm/interactive/SelectionBox.js +2 -0
- package/examples/jsm/interactive/SelectionHelper.js +2 -0
- package/examples/jsm/lighting/TiledLighting.js +1 -0
- package/examples/jsm/lights/LightProbeGenerator.js +1 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +1 -0
- package/examples/jsm/lines/Line2.js +1 -0
- package/examples/jsm/lines/LineGeometry.js +1 -0
- package/examples/jsm/lines/LineMaterial.js +4 -4
- package/examples/jsm/lines/LineSegments2.js +1 -0
- package/examples/jsm/lines/LineSegmentsGeometry.js +1 -0
- package/examples/jsm/lines/Wireframe.js +1 -0
- package/examples/jsm/lines/WireframeGeometry2.js +1 -0
- package/examples/jsm/lines/webgpu/Line2.js +1 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +3 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -0
- package/examples/jsm/loaders/3MFLoader.js +1 -0
- package/examples/jsm/loaders/AMFLoader.js +1 -0
- package/examples/jsm/loaders/BVHLoader.js +1 -0
- package/examples/jsm/loaders/ColladaLoader.js +6 -5
- package/examples/jsm/loaders/DDSLoader.js +1 -0
- package/examples/jsm/loaders/DRACOLoader.js +2 -1
- package/examples/jsm/loaders/EXRLoader.js +1 -0
- package/examples/jsm/loaders/FBXLoader.js +25 -23
- package/examples/jsm/loaders/FontLoader.js +1 -0
- package/examples/jsm/loaders/GCodeLoader.js +1 -0
- package/examples/jsm/loaders/GLTFLoader.js +10 -82
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -0
- package/examples/jsm/loaders/IESLoader.js +1 -0
- package/examples/jsm/loaders/KMZLoader.js +1 -0
- package/examples/jsm/loaders/KTX2Loader.js +67 -26
- package/examples/jsm/loaders/KTXLoader.js +1 -0
- package/examples/jsm/loaders/LDrawLoader.js +55 -3
- package/examples/jsm/loaders/LUT3dlLoader.js +1 -0
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -0
- package/examples/jsm/loaders/LUTImageLoader.js +1 -0
- package/examples/jsm/loaders/LWOLoader.js +1 -13
- package/examples/jsm/loaders/LottieLoader.js +15 -0
- package/examples/jsm/loaders/MD2Loader.js +1 -0
- package/examples/jsm/loaders/MDDLoader.js +1 -0
- package/examples/jsm/loaders/MTLLoader.js +4 -3
- package/examples/jsm/loaders/MaterialXLoader.js +1 -0
- package/examples/jsm/loaders/NRRDLoader.js +1 -0
- package/examples/jsm/loaders/OBJLoader.js +1 -0
- package/examples/jsm/loaders/PCDLoader.js +122 -19
- package/examples/jsm/loaders/PDBLoader.js +1 -0
- package/examples/jsm/loaders/PLYLoader.js +1 -0
- package/examples/jsm/loaders/PVRLoader.js +1 -0
- package/examples/jsm/loaders/RGBELoader.js +1 -0
- package/examples/jsm/loaders/RGBMLoader.js +1 -0
- package/examples/jsm/loaders/STLLoader.js +1 -0
- package/examples/jsm/loaders/SVGLoader.js +1 -0
- package/examples/jsm/loaders/TDSLoader.js +1 -0
- package/examples/jsm/loaders/TGALoader.js +1 -0
- package/examples/jsm/loaders/TIFFLoader.js +1 -0
- package/examples/jsm/loaders/TTFLoader.js +1 -0
- package/examples/jsm/loaders/USDZLoader.js +1 -0
- package/examples/jsm/loaders/UltraHDRLoader.js +1 -0
- package/examples/jsm/loaders/VOXLoader.js +1 -0
- package/examples/jsm/loaders/VRMLLoader.js +3 -2
- package/examples/jsm/loaders/VTKLoader.js +1 -0
- package/examples/jsm/loaders/XYZLoader.js +1 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +74 -74
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +1 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +1 -0
- package/examples/jsm/math/Capsule.js +2 -0
- package/examples/jsm/math/ColorConverter.js +1 -0
- package/examples/jsm/math/ConvexHull.js +2 -0
- package/examples/jsm/math/ImprovedNoise.js +19 -14
- package/examples/jsm/math/Lut.js +2 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +2 -0
- package/examples/jsm/math/OBB.js +2 -0
- package/examples/jsm/math/Octree.js +20 -1
- package/examples/jsm/math/SimplexNoise.js +2 -0
- package/examples/jsm/misc/ConvexObjectBreaker.js +3 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/Gyroscope.js +1 -0
- package/examples/jsm/misc/MD2Character.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +5 -3
- package/examples/jsm/misc/MorphAnimMesh.js +1 -0
- package/examples/jsm/misc/MorphBlendMesh.js +1 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +2 -0
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +2 -0
- package/examples/jsm/misc/RollerCoaster.js +5 -0
- package/examples/jsm/misc/Timer.js +2 -0
- package/examples/jsm/misc/TubePainter.js +1 -0
- package/examples/jsm/misc/Volume.js +2 -0
- package/examples/jsm/misc/VolumeSlice.js +1 -0
- package/examples/jsm/modifiers/CurveModifier.js +3 -0
- package/examples/jsm/modifiers/CurveModifierGPU.js +2 -0
- package/examples/jsm/modifiers/EdgeSplitModifier.js +2 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -0
- package/examples/jsm/modifiers/TessellateModifier.js +2 -0
- package/examples/jsm/objects/GroundedSkybox.js +1 -0
- package/examples/jsm/objects/Lensflare.js +3 -0
- package/examples/jsm/objects/LensflareMesh.js +1 -0
- package/examples/jsm/objects/MarchingCubes.js +2 -0
- package/examples/jsm/objects/Reflector.js +1 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Refractor.js +1 -0
- package/examples/jsm/objects/ShadowMesh.js +1 -0
- package/examples/jsm/objects/Sky.js +2 -1
- package/examples/jsm/objects/SkyMesh.js +20 -17
- package/examples/jsm/objects/Water.js +1 -0
- package/examples/jsm/objects/Water2.js +1 -0
- package/examples/jsm/objects/Water2Mesh.js +3 -1
- package/examples/jsm/objects/WaterMesh.js +2 -1
- package/examples/jsm/physics/AmmoPhysics.js +1 -0
- package/examples/jsm/physics/JoltPhysics.js +1 -0
- package/examples/jsm/physics/RapierPhysics.js +139 -12
- package/examples/jsm/postprocessing/AfterimagePass.js +20 -2
- package/examples/jsm/postprocessing/BloomPass.js +2 -1
- package/examples/jsm/postprocessing/BokehPass.js +2 -1
- package/examples/jsm/postprocessing/ClearPass.js +1 -0
- package/examples/jsm/postprocessing/CubeTexturePass.js +1 -0
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -0
- package/examples/jsm/postprocessing/EffectComposer.js +4 -2
- package/examples/jsm/postprocessing/FXAAPass.js +40 -0
- package/examples/jsm/postprocessing/FilmPass.js +1 -0
- package/examples/jsm/postprocessing/GTAOPass.js +4 -3
- package/examples/jsm/postprocessing/GlitchPass.js +2 -1
- package/examples/jsm/postprocessing/HalftonePass.js +2 -1
- package/examples/jsm/postprocessing/LUTPass.js +1 -0
- package/examples/jsm/postprocessing/MaskPass.js +1 -0
- package/examples/jsm/postprocessing/OutlinePass.js +5 -2
- package/examples/jsm/postprocessing/OutputPass.js +1 -0
- package/examples/jsm/postprocessing/Pass.js +3 -1
- package/examples/jsm/postprocessing/RenderPass.js +1 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +2 -1
- package/examples/jsm/postprocessing/RenderTransitionPass.js +4 -3
- package/examples/jsm/postprocessing/SAOPass.js +3 -2
- package/examples/jsm/postprocessing/SMAAPass.js +3 -2
- package/examples/jsm/postprocessing/SSAARenderPass.js +2 -1
- package/examples/jsm/postprocessing/SSAOPass.js +2 -1
- package/examples/jsm/postprocessing/SSRPass.js +4 -3
- package/examples/jsm/postprocessing/SavePass.js +2 -1
- package/examples/jsm/postprocessing/ShaderPass.js +1 -0
- package/examples/jsm/postprocessing/TAARenderPass.js +1 -0
- package/examples/jsm/postprocessing/TexturePass.js +1 -0
- package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -1
- package/examples/jsm/renderers/CSS2DRenderer.js +3 -0
- package/examples/jsm/renderers/CSS3DRenderer.js +4 -0
- package/examples/jsm/renderers/Projector.js +2 -0
- package/examples/jsm/renderers/SVGRenderer.js +3 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +4 -1
- package/examples/jsm/shaders/AfterimageShader.js +4 -1
- package/examples/jsm/shaders/BasicShader.js +4 -1
- package/examples/jsm/shaders/BleachBypassShader.js +4 -1
- package/examples/jsm/shaders/BlendShader.js +4 -1
- package/examples/jsm/shaders/BokehShader.js +4 -1
- package/examples/jsm/shaders/BokehShader2.js +4 -1
- package/examples/jsm/shaders/BrightnessContrastShader.js +4 -1
- package/examples/jsm/shaders/ColorCorrectionShader.js +4 -1
- package/examples/jsm/shaders/ColorifyShader.js +4 -1
- package/examples/jsm/shaders/ConvolutionShader.js +4 -1
- package/examples/jsm/shaders/CopyShader.js +4 -1
- package/examples/jsm/shaders/DOFMipMapShader.js +4 -1
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +4 -1
- package/examples/jsm/shaders/DigitalGlitch.js +4 -1
- package/examples/jsm/shaders/DotScreenShader.js +4 -1
- package/examples/jsm/shaders/ExposureShader.js +4 -1
- package/examples/jsm/shaders/FXAAShader.js +4 -1
- package/examples/jsm/shaders/FilmShader.js +4 -1
- package/examples/jsm/shaders/FocusShader.js +4 -1
- package/examples/jsm/shaders/FreiChenShader.js +4 -1
- package/examples/jsm/shaders/GTAOShader.js +4 -1
- package/examples/jsm/shaders/GammaCorrectionShader.js +4 -1
- package/examples/jsm/shaders/GodRaysShader.js +4 -1
- package/examples/jsm/shaders/HalftoneShader.js +4 -1
- package/examples/jsm/shaders/HorizontalBlurShader.js +4 -1
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +4 -1
- package/examples/jsm/shaders/HueSaturationShader.js +4 -1
- package/examples/jsm/shaders/KaleidoShader.js +4 -1
- package/examples/jsm/shaders/LuminosityHighPassShader.js +4 -1
- package/examples/jsm/shaders/LuminosityShader.js +4 -1
- package/examples/jsm/shaders/MirrorShader.js +4 -1
- package/examples/jsm/shaders/NormalMapShader.js +4 -1
- package/examples/jsm/shaders/OutputShader.js +4 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +4 -1
- package/examples/jsm/shaders/RGBShiftShader.js +4 -1
- package/examples/jsm/shaders/SAOShader.js +4 -1
- package/examples/jsm/shaders/SMAAShader.js +1 -0
- package/examples/jsm/shaders/SSAOShader.js +4 -1
- package/examples/jsm/shaders/SSRShader.js +1 -0
- package/examples/jsm/shaders/SepiaShader.js +4 -1
- package/examples/jsm/shaders/SobelOperatorShader.js +4 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +4 -1
- package/examples/jsm/shaders/TechnicolorShader.js +4 -1
- package/examples/jsm/shaders/ToonShader.js +2 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +4 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +4 -1
- package/examples/jsm/shaders/VelocityShader.js +4 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +4 -1
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +4 -1
- package/examples/jsm/shaders/VignetteShader.js +4 -1
- package/examples/jsm/shaders/VolumeShader.js +5 -2
- package/examples/jsm/shaders/WaterRefractionShader.js +4 -1
- package/examples/jsm/textures/FlakesTexture.js +2 -0
- package/examples/jsm/transpiler/AST.js +381 -30
- package/examples/jsm/transpiler/GLSLDecoder.js +226 -87
- package/examples/jsm/transpiler/Linker.js +327 -0
- package/examples/jsm/transpiler/TSLEncoder.js +234 -85
- package/examples/jsm/transpiler/Transpiler.js +19 -1
- package/examples/jsm/transpiler/TranspilerUtils.js +29 -0
- package/examples/jsm/transpiler/WGSLEncoder.js +788 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +2 -3
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +1 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +5 -4
- package/examples/jsm/tsl/display/BloomNode.js +1 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +206 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +33 -33
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -0
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -0
- package/examples/jsm/tsl/display/FXAANode.js +3 -2
- package/examples/jsm/tsl/display/FilmNode.js +1 -0
- package/examples/jsm/tsl/display/GTAONode.js +1 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +4 -29
- package/examples/jsm/tsl/display/LensflareNode.js +1 -0
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -0
- package/examples/jsm/tsl/display/OutlineNode.js +1 -0
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +1 -0
- package/examples/jsm/tsl/display/PixelationPassNode.js +1 -0
- package/examples/jsm/tsl/display/RGBShiftNode.js +1 -0
- package/examples/jsm/tsl/display/SMAANode.js +9 -8
- package/examples/jsm/tsl/display/SSAAPassNode.js +5 -4
- package/examples/jsm/tsl/display/SSRNode.js +1 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +1 -0
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +1 -0
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -0
- package/examples/jsm/tsl/display/TRAAPassNode.js +5 -4
- package/examples/jsm/tsl/display/TransitionNode.js +1 -0
- package/examples/jsm/tsl/display/hashBlur.js +28 -6
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +4 -3
- package/examples/jsm/tsl/math/Bayer.js +4 -1
- package/examples/jsm/tsl/shadows/TileShadowNode.js +456 -0
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +212 -0
- package/examples/jsm/tsl/utils/Raymarching.js +6 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +4 -1
- package/examples/jsm/utils/CameraUtils.js +4 -1
- package/examples/jsm/utils/GeometryCompressionUtils.js +4 -1
- package/examples/jsm/utils/GeometryUtils.js +4 -1
- package/examples/jsm/utils/LDrawUtils.js +2 -0
- package/examples/jsm/utils/SceneOptimizer.js +2 -0
- package/examples/jsm/utils/SceneUtils.js +4 -1
- package/examples/jsm/utils/ShadowMapViewer.js +2 -0
- package/examples/jsm/utils/ShadowMapViewerGPU.js +2 -0
- package/examples/jsm/utils/SkeletonUtils.js +4 -1
- package/examples/jsm/utils/SortUtils.js +4 -1
- package/examples/jsm/utils/UVsDebug.js +4 -1
- package/examples/jsm/utils/WebGLTextureUtils.js +4 -1
- package/examples/jsm/utils/WebGPUTextureUtils.js +4 -1
- package/examples/jsm/utils/WorkerPool.js +2 -0
- package/examples/jsm/webxr/ARButton.js +1 -0
- package/examples/jsm/webxr/OculusHandModel.js +1 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +1 -0
- package/examples/jsm/webxr/Text2D.js +4 -1
- package/examples/jsm/webxr/VRButton.js +1 -0
- package/examples/jsm/webxr/XRButton.js +1 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +2 -0
- package/examples/jsm/webxr/XREstimatedLight.js +1 -0
- package/examples/jsm/webxr/XRHandMeshModel.js +2 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +2 -0
- package/examples/jsm/webxr/XRPlanes.js +1 -0
- package/package.json +6 -4
- package/src/Three.Core.js +1 -1
- package/src/Three.TSL.js +18 -10
- package/src/Three.WebGPU.Nodes.js +1 -0
- package/src/Three.WebGPU.js +3 -0
- package/src/audio/AudioListener.js +13 -10
- package/src/cameras/ArrayCamera.js +9 -1
- package/src/constants.js +47 -20
- package/src/core/BufferAttribute.js +3 -3
- package/src/core/BufferGeometry.js +2 -5
- package/src/core/Clock.js +2 -8
- package/src/core/GLBufferAttribute.js +13 -1
- package/src/core/Object3D.js +23 -22
- package/src/core/RenderTarget.js +65 -21
- package/src/core/RenderTarget3D.js +1 -0
- package/src/extras/TextureUtils.js +1 -5
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +22 -22
- package/src/geometries/CapsuleGeometry.js +167 -17
- package/src/geometries/ExtrudeGeometry.js +39 -29
- package/src/helpers/ArrowHelper.js +2 -2
- package/src/helpers/SkeletonHelper.js +1 -1
- package/src/lights/LightShadow.js +14 -0
- package/src/lights/SpotLightShadow.js +9 -1
- package/src/lights/webgpu/ProjectorLight.js +46 -0
- package/src/loaders/BufferGeometryLoader.js +1 -10
- package/src/loaders/FileLoader.js +2 -2
- package/src/loaders/ImageBitmapLoader.js +25 -9
- package/src/loaders/ImageLoader.js +55 -8
- package/src/loaders/ObjectLoader.js +44 -16
- package/src/loaders/nodes/NodeObjectLoader.js +2 -2
- package/src/materials/Material.js +1 -7
- package/src/materials/nodes/MeshBasicNodeMaterial.js +4 -3
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -1
- package/src/materials/nodes/MeshSSSNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +105 -19
- package/src/materials/nodes/manager/NodeMaterialObserver.js +20 -2
- package/src/math/Box3.js +28 -0
- package/src/math/Color.js +7 -7
- package/src/math/ColorManagement.js +22 -3
- package/src/math/Frustum.js +6 -1
- package/src/math/FrustumArray.js +253 -0
- package/src/math/Quaternion.js +1 -1
- package/src/math/Ray.js +2 -0
- package/src/math/Sphere.js +28 -0
- package/src/nodes/Nodes.js +2 -3
- package/src/nodes/TSL.js +5 -3
- package/src/nodes/accessors/AccessorsUtils.js +7 -8
- package/src/nodes/accessors/Bitangent.js +54 -26
- package/src/nodes/accessors/Camera.js +31 -4
- package/src/nodes/accessors/CubeTextureNode.js +50 -2
- package/src/nodes/accessors/InstanceNode.js +5 -4
- package/src/nodes/accessors/Lights.js +2 -2
- package/src/nodes/accessors/MaterialNode.js +4 -0
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +102 -16
- package/src/nodes/accessors/Object3DNode.js +7 -8
- package/src/nodes/accessors/Position.js +14 -4
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/SkinningNode.js +3 -2
- package/src/nodes/accessors/StorageBufferNode.js +25 -0
- package/src/nodes/accessors/StorageTextureNode.js +14 -3
- package/src/nodes/accessors/Tangent.js +25 -17
- package/src/nodes/accessors/TangentUtils.js +46 -0
- package/src/nodes/accessors/TextureBicubic.js +21 -3
- package/src/nodes/accessors/TextureNode.js +59 -8
- package/src/nodes/accessors/UniformArrayNode.js +0 -16
- package/src/nodes/accessors/VelocityNode.js +1 -0
- package/src/nodes/accessors/VertexColorNode.js +4 -4
- package/src/nodes/code/CodeNode.js +8 -11
- package/src/nodes/core/AssignNode.js +27 -5
- package/src/nodes/core/AttributeNode.js +2 -2
- package/src/nodes/core/ContextNode.js +7 -3
- package/src/nodes/core/Node.js +69 -20
- package/src/nodes/core/NodeBuilder.js +248 -29
- package/src/nodes/core/NodeUtils.js +42 -0
- package/src/nodes/core/NodeVarying.js +19 -1
- package/src/nodes/core/PropertyNode.js +8 -12
- package/src/nodes/core/StackNode.js +129 -26
- package/src/nodes/core/StructTypeNode.js +26 -4
- package/src/nodes/core/SubBuildNode.js +89 -0
- package/src/nodes/core/VarNode.js +11 -2
- package/src/nodes/core/VaryingNode.js +45 -24
- package/src/nodes/display/BlendModes.js +42 -1
- package/src/nodes/display/ColorSpaceNode.js +4 -27
- package/src/nodes/display/FrontFacingNode.js +34 -2
- package/src/nodes/display/NormalMapNode.js +19 -50
- package/src/nodes/display/PassNode.js +18 -19
- package/src/nodes/display/ScreenNode.js +0 -26
- package/src/nodes/functions/BSDF/BRDF_GGX.js +2 -6
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +4 -4
- package/src/nodes/functions/PhongLightingModel.js +3 -3
- package/src/nodes/functions/PhysicalLightingModel.js +14 -14
- package/src/nodes/functions/ShadowMaskModel.js +5 -1
- package/src/nodes/functions/material/getGeometryRoughness.js +2 -2
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +28 -10
- package/src/nodes/gpgpu/BarrierNode.js +3 -3
- package/src/nodes/gpgpu/ComputeNode.js +1 -1
- package/src/nodes/lighting/AnalyticLightNode.js +7 -13
- package/src/nodes/lighting/EnvironmentNode.js +5 -5
- package/src/nodes/lighting/HemisphereLightNode.js +2 -2
- package/src/nodes/lighting/IESSpotLightNode.js +2 -1
- package/src/nodes/lighting/LightsNode.js +29 -11
- package/src/nodes/lighting/ProjectorLightNode.js +78 -0
- package/src/nodes/lighting/ShadowBaseNode.js +1 -12
- package/src/nodes/lighting/ShadowFilterNode.js +274 -0
- package/src/nodes/lighting/ShadowNode.js +174 -242
- package/src/nodes/lighting/SpotLightNode.js +44 -7
- package/src/nodes/materialx/lib/mx_noise.js +1 -1
- package/src/nodes/math/ConditionalNode.js +0 -19
- package/src/nodes/math/MathNode.js +68 -21
- package/src/nodes/math/OperatorNode.js +108 -98
- package/src/nodes/shapes/Shapes.js +5 -4
- package/src/nodes/tsl/TSLBase.js +1 -0
- package/src/nodes/tsl/TSLCore.js +160 -65
- package/src/nodes/utils/DebugNode.js +15 -3
- package/src/nodes/utils/Discard.js +2 -2
- package/src/nodes/utils/EquirectUV.js +27 -0
- package/src/nodes/utils/LoopNode.js +64 -34
- package/src/nodes/utils/MatcapUV.js +22 -0
- package/src/nodes/utils/RTTNode.js +13 -5
- package/src/nodes/utils/ReflectorNode.js +77 -7
- package/src/nodes/utils/SampleNode.js +81 -0
- package/src/nodes/utils/TriplanarTextures.js +65 -0
- package/src/objects/BatchedMesh.js +16 -4
- package/src/objects/Mesh.js +9 -0
- package/src/objects/Skeleton.js +1 -1
- package/src/objects/Sprite.js +9 -0
- package/src/renderers/WebGL3DRenderTarget.js +1 -0
- package/src/renderers/WebGLArrayRenderTarget.js +1 -0
- package/src/renderers/WebGLCubeRenderTarget.js +2 -4
- package/src/renderers/WebGLRenderer.js +25 -11
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Background.js +13 -2
- package/src/renderers/common/CubeRenderTarget.js +1 -1
- package/src/renderers/common/RenderList.js +0 -4
- package/src/renderers/common/RenderObject.js +80 -4
- package/src/renderers/common/Renderer.js +116 -8
- package/src/renderers/common/Storage3DTexture.js +79 -0
- package/src/renderers/common/StorageArrayTexture.js +63 -0
- package/src/renderers/common/Textures.js +15 -21
- package/src/renderers/common/TimestampQueryPool.js +1 -0
- package/src/renderers/common/Uniform.js +1 -1
- package/src/renderers/common/UniformsGroup.js +14 -18
- package/src/renderers/common/XRManager.js +157 -27
- package/src/renderers/common/XRRenderTarget.js +21 -4
- package/src/renderers/common/extras/PMREMGenerator.js +30 -23
- package/src/renderers/common/nodes/Nodes.js +13 -3
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -1
- package/src/renderers/webgl/WebGLAttributes.js +4 -0
- package/src/renderers/webgl/WebGLPrograms.js +4 -2
- package/src/renderers/webgl/WebGLShadowMap.js +3 -2
- package/src/renderers/webgl/WebGLState.js +4 -4
- package/src/renderers/webgl/WebGLTextures.js +144 -4
- package/src/renderers/webgl/WebGLUtils.js +1 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +244 -87
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +73 -7
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +4 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +1 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +4 -4
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +44 -29
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +22 -21
- package/src/renderers/webgpu/WebGPUBackend.js +451 -128
- package/src/renderers/webgpu/WebGPURenderer.js +7 -0
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +4 -1
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +4 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +86 -33
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +9 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +28 -5
- package/src/renderers/webgpu/utils/WebGPUConstants.js +8 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +38 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +45 -50
- package/src/renderers/webxr/WebXRController.js +1 -1
- package/src/renderers/webxr/WebXRManager.js +2 -1
- package/src/textures/DepthTexture.js +6 -10
- package/src/textures/Source.js +22 -0
- package/src/textures/Texture.js +118 -1
- package/src/textures/VideoTexture.js +1 -1
- package/examples/jsm/effects/PeppersGhostEffect.js +0 -172
- package/src/core/RenderTargetArray.js +0 -40
- package/src/nodes/utils/EquirectUVNode.js +0 -65
- package/src/nodes/utils/MatcapUVNode.js +0 -49
- package/src/nodes/utils/TriplanarTexturesNode.js +0 -148
package/src/Three.TSL.js
CHANGED
|
@@ -13,6 +13,7 @@ export const F_Schlick = TSL.F_Schlick;
|
|
|
13
13
|
export const Fn = TSL.Fn;
|
|
14
14
|
export const INFINITY = TSL.INFINITY;
|
|
15
15
|
export const If = TSL.If;
|
|
16
|
+
export const Switch = TSL.Switch;
|
|
16
17
|
export const Loop = TSL.Loop;
|
|
17
18
|
export const NodeShaderStage = TSL.NodeShaderStage;
|
|
18
19
|
export const NodeType = TSL.NodeType;
|
|
@@ -67,6 +68,7 @@ export const backgroundBlurriness = TSL.backgroundBlurriness;
|
|
|
67
68
|
export const backgroundIntensity = TSL.backgroundIntensity;
|
|
68
69
|
export const backgroundRotation = TSL.backgroundRotation;
|
|
69
70
|
export const batch = TSL.batch;
|
|
71
|
+
export const bentNormalView = TSL.bentNormalView;
|
|
70
72
|
export const billboarding = TSL.billboarding;
|
|
71
73
|
export const bitAnd = TSL.bitAnd;
|
|
72
74
|
export const bitNot = TSL.bitNot;
|
|
@@ -130,6 +132,8 @@ export const dFdx = TSL.dFdx;
|
|
|
130
132
|
export const dFdy = TSL.dFdy;
|
|
131
133
|
export const dashSize = TSL.dashSize;
|
|
132
134
|
export const debug = TSL.debug;
|
|
135
|
+
export const decrement = TSL.decrement;
|
|
136
|
+
export const decrementBefore = TSL.decrementBefore;
|
|
133
137
|
export const defaultBuildStages = TSL.defaultBuildStages;
|
|
134
138
|
export const defaultShaderStages = TSL.defaultShaderStages;
|
|
135
139
|
export const defined = TSL.defined;
|
|
@@ -183,6 +187,8 @@ export const getScreenPosition = TSL.getScreenPosition;
|
|
|
183
187
|
export const getShIrradianceAt = TSL.getShIrradianceAt;
|
|
184
188
|
export const getTextureIndex = TSL.getTextureIndex;
|
|
185
189
|
export const getViewPosition = TSL.getViewPosition;
|
|
190
|
+
export const getShadowMaterial = TSL.getShadowMaterial;
|
|
191
|
+
export const getShadowRenderObjectFunction = TSL.getShadowRenderObjectFunction;
|
|
186
192
|
export const glsl = TSL.glsl;
|
|
187
193
|
export const glslFn = TSL.glslFn;
|
|
188
194
|
export const grayscale = TSL.grayscale;
|
|
@@ -192,6 +198,8 @@ export const hash = TSL.hash;
|
|
|
192
198
|
export const highpModelNormalViewMatrix = TSL.highpModelNormalViewMatrix;
|
|
193
199
|
export const highpModelViewMatrix = TSL.highpModelViewMatrix;
|
|
194
200
|
export const hue = TSL.hue;
|
|
201
|
+
export const increment = TSL.increment;
|
|
202
|
+
export const incrementBefore = TSL.incrementBefore;
|
|
195
203
|
export const instance = TSL.instance;
|
|
196
204
|
export const instanceIndex = TSL.instanceIndex;
|
|
197
205
|
export const instancedArray = TSL.instancedArray;
|
|
@@ -217,6 +225,7 @@ export const lengthSq = TSL.lengthSq;
|
|
|
217
225
|
export const lessThan = TSL.lessThan;
|
|
218
226
|
export const lessThanEqual = TSL.lessThanEqual;
|
|
219
227
|
export const lightPosition = TSL.lightPosition;
|
|
228
|
+
export const lightShadowMatrix = TSL.lightShadowMatrix;
|
|
220
229
|
export const lightTargetDirection = TSL.lightTargetDirection;
|
|
221
230
|
export const lightTargetPosition = TSL.lightTargetPosition;
|
|
222
231
|
export const lightViewPosition = TSL.lightViewPosition;
|
|
@@ -331,7 +340,9 @@ export const normalGeometry = TSL.normalGeometry;
|
|
|
331
340
|
export const normalLocal = TSL.normalLocal;
|
|
332
341
|
export const normalMap = TSL.normalMap;
|
|
333
342
|
export const normalView = TSL.normalView;
|
|
343
|
+
export const normalViewGeometry = TSL.normalViewGeometry;
|
|
334
344
|
export const normalWorld = TSL.normalWorld;
|
|
345
|
+
export const normalWorldGeometry = TSL.normalWorldGeometry;
|
|
335
346
|
export const normalize = TSL.normalize;
|
|
336
347
|
export const not = TSL.not;
|
|
337
348
|
export const notEqual = TSL.notEqual;
|
|
@@ -377,6 +388,7 @@ export const pow = TSL.pow;
|
|
|
377
388
|
export const pow2 = TSL.pow2;
|
|
378
389
|
export const pow3 = TSL.pow3;
|
|
379
390
|
export const pow4 = TSL.pow4;
|
|
391
|
+
export const premultiplyAlpha = TSL.premultiplyAlpha;
|
|
380
392
|
export const property = TSL.property;
|
|
381
393
|
export const radians = TSL.radians;
|
|
382
394
|
export const rand = TSL.rand;
|
|
@@ -408,6 +420,7 @@ export const round = TSL.round;
|
|
|
408
420
|
export const rtt = TSL.rtt;
|
|
409
421
|
export const sRGBTransferEOTF = TSL.sRGBTransferEOTF;
|
|
410
422
|
export const sRGBTransferOETF = TSL.sRGBTransferOETF;
|
|
423
|
+
export const sample = TSL.sample;
|
|
411
424
|
export const sampler = TSL.sampler;
|
|
412
425
|
export const samplerComparison = TSL.samplerComparison;
|
|
413
426
|
export const saturate = TSL.saturate;
|
|
@@ -452,6 +465,7 @@ export const storageTexture = TSL.storageTexture;
|
|
|
452
465
|
export const string = TSL.string;
|
|
453
466
|
export const struct = TSL.struct;
|
|
454
467
|
export const sub = TSL.sub;
|
|
468
|
+
export const subBuild = TSL.subBuild;
|
|
455
469
|
export const subgroupIndex = TSL.subgroupIndex;
|
|
456
470
|
export const subgroupSize = TSL.subgroupSize;
|
|
457
471
|
export const tan = TSL.tan;
|
|
@@ -464,36 +478,27 @@ export const texture = TSL.texture;
|
|
|
464
478
|
export const texture3D = TSL.texture3D;
|
|
465
479
|
export const textureBarrier = TSL.textureBarrier;
|
|
466
480
|
export const textureBicubic = TSL.textureBicubic;
|
|
481
|
+
export const textureBicubicLevel = TSL.textureBicubicLevel;
|
|
467
482
|
export const textureCubeUV = TSL.textureCubeUV;
|
|
468
483
|
export const textureLoad = TSL.textureLoad;
|
|
469
484
|
export const textureSize = TSL.textureSize;
|
|
470
485
|
export const textureStore = TSL.textureStore;
|
|
471
486
|
export const thickness = TSL.thickness;
|
|
472
|
-
export const threshold = TSL.threshold;
|
|
473
487
|
export const time = TSL.time;
|
|
474
488
|
export const timerDelta = TSL.timerDelta;
|
|
475
489
|
export const timerGlobal = TSL.timerGlobal;
|
|
476
490
|
export const timerLocal = TSL.timerLocal;
|
|
477
|
-
export const toOutputColorSpace = TSL.toOutputColorSpace;
|
|
478
|
-
export const toWorkingColorSpace = TSL.toWorkingColorSpace;
|
|
479
491
|
export const toneMapping = TSL.toneMapping;
|
|
480
492
|
export const toneMappingExposure = TSL.toneMappingExposure;
|
|
481
493
|
export const toonOutlinePass = TSL.toonOutlinePass;
|
|
482
494
|
export const transformDirection = TSL.transformDirection;
|
|
483
495
|
export const transformNormal = TSL.transformNormal;
|
|
484
496
|
export const transformNormalToView = TSL.transformNormalToView;
|
|
485
|
-
export const transformedBentNormalView = TSL.transformedBentNormalView;
|
|
486
|
-
export const transformedBitangentView = TSL.transformedBitangentView;
|
|
487
|
-
export const transformedBitangentWorld = TSL.transformedBitangentWorld;
|
|
488
497
|
export const transformedClearcoatNormalView = TSL.transformedClearcoatNormalView;
|
|
489
498
|
export const transformedNormalView = TSL.transformedNormalView;
|
|
490
499
|
export const transformedNormalWorld = TSL.transformedNormalWorld;
|
|
491
|
-
export const transformedTangentView = TSL.transformedTangentView;
|
|
492
|
-
export const transformedTangentWorld = TSL.transformedTangentWorld;
|
|
493
500
|
export const transmission = TSL.transmission;
|
|
494
501
|
export const transpose = TSL.transpose;
|
|
495
|
-
export const tri = TSL.tri;
|
|
496
|
-
export const tri3 = TSL.tri3;
|
|
497
502
|
export const triNoise3D = TSL.triNoise3D;
|
|
498
503
|
export const triplanarTexture = TSL.triplanarTexture;
|
|
499
504
|
export const triplanarTextures = TSL.triplanarTextures;
|
|
@@ -501,9 +506,12 @@ export const trunc = TSL.trunc;
|
|
|
501
506
|
export const tslFn = TSL.tslFn;
|
|
502
507
|
export const uint = TSL.uint;
|
|
503
508
|
export const uniform = TSL.uniform;
|
|
509
|
+
export const uniformCubeTexture = TSL.uniformCubeTexture;
|
|
504
510
|
export const uniformArray = TSL.uniformArray;
|
|
505
511
|
export const uniformGroup = TSL.uniformGroup;
|
|
512
|
+
export const uniformTexture = TSL.uniformTexture;
|
|
506
513
|
export const uniforms = TSL.uniforms;
|
|
514
|
+
export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
|
|
507
515
|
export const userData = TSL.userData;
|
|
508
516
|
export const uv = TSL.uv;
|
|
509
517
|
export const uvec2 = TSL.uvec2;
|
|
@@ -14,6 +14,7 @@ export { default as StorageBufferAttribute } from './renderers/common/StorageBuf
|
|
|
14
14
|
export { default as StorageInstancedBufferAttribute } from './renderers/common/StorageInstancedBufferAttribute.js';
|
|
15
15
|
export { default as IndirectStorageBufferAttribute } from './renderers/common/IndirectStorageBufferAttribute.js';
|
|
16
16
|
export { default as IESSpotLight } from './lights/webgpu/IESSpotLight.js';
|
|
17
|
+
export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
|
|
17
18
|
export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
|
|
18
19
|
export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
|
|
19
20
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
package/src/Three.WebGPU.js
CHANGED
|
@@ -10,10 +10,13 @@ export { default as PostProcessing } from './renderers/common/PostProcessing.js'
|
|
|
10
10
|
import * as RendererUtils from './renderers/common/RendererUtils.js';
|
|
11
11
|
export { RendererUtils };
|
|
12
12
|
export { default as StorageTexture } from './renderers/common/StorageTexture.js';
|
|
13
|
+
export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
|
|
14
|
+
export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
|
|
13
15
|
export { default as StorageBufferAttribute } from './renderers/common/StorageBufferAttribute.js';
|
|
14
16
|
export { default as StorageInstancedBufferAttribute } from './renderers/common/StorageInstancedBufferAttribute.js';
|
|
15
17
|
export { default as IndirectStorageBufferAttribute } from './renderers/common/IndirectStorageBufferAttribute.js';
|
|
16
18
|
export { default as IESSpotLight } from './lights/webgpu/IESSpotLight.js';
|
|
19
|
+
export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
|
|
17
20
|
export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
|
|
18
21
|
export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
|
|
19
22
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
@@ -7,7 +7,9 @@ import { AudioContext } from './AudioContext.js';
|
|
|
7
7
|
const _position = /*@__PURE__*/ new Vector3();
|
|
8
8
|
const _quaternion = /*@__PURE__*/ new Quaternion();
|
|
9
9
|
const _scale = /*@__PURE__*/ new Vector3();
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
const _forward = /*@__PURE__*/ new Vector3();
|
|
12
|
+
const _up = /*@__PURE__*/ new Vector3();
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* The class represents a virtual listener of the all positional and non-positional audio effects
|
|
@@ -175,13 +177,14 @@ class AudioListener extends Object3D {
|
|
|
175
177
|
super.updateMatrixWorld( force );
|
|
176
178
|
|
|
177
179
|
const listener = this.context.listener;
|
|
178
|
-
const up = this.up;
|
|
179
180
|
|
|
180
181
|
this.timeDelta = this._clock.getDelta();
|
|
181
182
|
|
|
182
183
|
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
183
184
|
|
|
184
|
-
|
|
185
|
+
// the initial forward and up directions must be orthogonal
|
|
186
|
+
_forward.set( 0, 0, - 1 ).applyQuaternion( _quaternion );
|
|
187
|
+
_up.set( 0, 1, 0 ).applyQuaternion( _quaternion );
|
|
185
188
|
|
|
186
189
|
if ( listener.positionX ) {
|
|
187
190
|
|
|
@@ -192,17 +195,17 @@ class AudioListener extends Object3D {
|
|
|
192
195
|
listener.positionX.linearRampToValueAtTime( _position.x, endTime );
|
|
193
196
|
listener.positionY.linearRampToValueAtTime( _position.y, endTime );
|
|
194
197
|
listener.positionZ.linearRampToValueAtTime( _position.z, endTime );
|
|
195
|
-
listener.forwardX.linearRampToValueAtTime(
|
|
196
|
-
listener.forwardY.linearRampToValueAtTime(
|
|
197
|
-
listener.forwardZ.linearRampToValueAtTime(
|
|
198
|
-
listener.upX.linearRampToValueAtTime(
|
|
199
|
-
listener.upY.linearRampToValueAtTime(
|
|
200
|
-
listener.upZ.linearRampToValueAtTime(
|
|
198
|
+
listener.forwardX.linearRampToValueAtTime( _forward.x, endTime );
|
|
199
|
+
listener.forwardY.linearRampToValueAtTime( _forward.y, endTime );
|
|
200
|
+
listener.forwardZ.linearRampToValueAtTime( _forward.z, endTime );
|
|
201
|
+
listener.upX.linearRampToValueAtTime( _up.x, endTime );
|
|
202
|
+
listener.upY.linearRampToValueAtTime( _up.y, endTime );
|
|
203
|
+
listener.upZ.linearRampToValueAtTime( _up.z, endTime );
|
|
201
204
|
|
|
202
205
|
} else {
|
|
203
206
|
|
|
204
207
|
listener.setPosition( _position.x, _position.y, _position.z );
|
|
205
|
-
listener.setOrientation(
|
|
208
|
+
listener.setOrientation( _forward.x, _forward.y, _forward.z, _up.x, _up.y, _up.z );
|
|
206
209
|
|
|
207
210
|
}
|
|
208
211
|
|
|
@@ -31,13 +31,21 @@ class ArrayCamera extends PerspectiveCamera {
|
|
|
31
31
|
*/
|
|
32
32
|
this.isArrayCamera = true;
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Whether this camera is used with multiview rendering or not.
|
|
36
|
+
*
|
|
37
|
+
* @type {boolean}
|
|
38
|
+
* @readonly
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
this.isMultiViewCamera = false;
|
|
42
|
+
|
|
34
43
|
/**
|
|
35
44
|
* An array of perspective sub cameras.
|
|
36
45
|
*
|
|
37
46
|
* @type {Array<PerspectiveCamera>}
|
|
38
47
|
*/
|
|
39
48
|
this.cameras = array;
|
|
40
|
-
this.index = 0;
|
|
41
49
|
|
|
42
50
|
}
|
|
43
51
|
|
package/src/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const REVISION = '
|
|
1
|
+
export const REVISION = '178';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Represents mouse buttons and interaction types in context of controls.
|
|
@@ -748,25 +748,6 @@ export const RGBFormat = 1022;
|
|
|
748
748
|
*/
|
|
749
749
|
export const RGBAFormat = 1023;
|
|
750
750
|
|
|
751
|
-
/**
|
|
752
|
-
* reads each element as a single luminance component. This is then converted to a floating point,
|
|
753
|
-
* clamped to the range `[0,1]`, and then assembled into an RGBA element by placing the luminance value
|
|
754
|
-
* in the red, green and blue channels, and attaching 1.0 to the alpha channel.
|
|
755
|
-
*
|
|
756
|
-
* @type {number}
|
|
757
|
-
* @constant
|
|
758
|
-
*/
|
|
759
|
-
export const LuminanceFormat = 1024;
|
|
760
|
-
|
|
761
|
-
/**
|
|
762
|
-
* Reads each element as a luminance/alpha double. The same process occurs as for the `LuminanceFormat`,
|
|
763
|
-
* except that the alpha channel may have values other than `1.0`.
|
|
764
|
-
*
|
|
765
|
-
* @type {number}
|
|
766
|
-
* @constant
|
|
767
|
-
*/
|
|
768
|
-
export const LuminanceAlphaFormat = 1025;
|
|
769
|
-
|
|
770
751
|
/**
|
|
771
752
|
* Reads each element as a single depth value, converts it to floating point, and clamps to the range `[0,1]`.
|
|
772
753
|
*
|
|
@@ -1612,6 +1593,32 @@ export const TimestampQuery = {
|
|
|
1612
1593
|
RENDER: 'render'
|
|
1613
1594
|
};
|
|
1614
1595
|
|
|
1596
|
+
/**
|
|
1597
|
+
* Represents mouse buttons and interaction types in context of controls.
|
|
1598
|
+
*
|
|
1599
|
+
* @type {ConstantsInterpolationSamplingType}
|
|
1600
|
+
* @constant
|
|
1601
|
+
*/
|
|
1602
|
+
export const InterpolationSamplingType = {
|
|
1603
|
+
PERSPECTIVE: 'perspective',
|
|
1604
|
+
LINEAR: 'linear',
|
|
1605
|
+
FLAT: 'flat'
|
|
1606
|
+
};
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* Represents the different interpolation sampling modes.
|
|
1610
|
+
*
|
|
1611
|
+
* @type {ConstantsInterpolationSamplingMode}
|
|
1612
|
+
* @constant
|
|
1613
|
+
*/
|
|
1614
|
+
export const InterpolationSamplingMode = {
|
|
1615
|
+
NORMAL: 'normal',
|
|
1616
|
+
CENTROID: 'centroid',
|
|
1617
|
+
SAMPLE: 'sample',
|
|
1618
|
+
FIRST: 'first',
|
|
1619
|
+
EITHER: 'either'
|
|
1620
|
+
};
|
|
1621
|
+
|
|
1615
1622
|
/**
|
|
1616
1623
|
* This type represents mouse buttons and interaction types in context of controls.
|
|
1617
1624
|
*
|
|
@@ -1641,3 +1648,23 @@ export const TimestampQuery = {
|
|
|
1641
1648
|
* @property {string} COMPUTE - A `compute` timestamp query.
|
|
1642
1649
|
* @property {string} RENDER - A `render` timestamp query.
|
|
1643
1650
|
**/
|
|
1651
|
+
|
|
1652
|
+
/**
|
|
1653
|
+
* Represents the different interpolation sampling types.
|
|
1654
|
+
*
|
|
1655
|
+
* @typedef {Object} ConstantsInterpolationSamplingType
|
|
1656
|
+
* @property {string} PERSPECTIVE - Perspective-correct interpolation.
|
|
1657
|
+
* @property {string} LINEAR - Linear interpolation.
|
|
1658
|
+
* @property {string} FLAT - Flat interpolation.
|
|
1659
|
+
*/
|
|
1660
|
+
|
|
1661
|
+
/**
|
|
1662
|
+
* Represents the different interpolation sampling modes.
|
|
1663
|
+
*
|
|
1664
|
+
* @typedef {Object} ConstantsInterpolationSamplingMode
|
|
1665
|
+
* @property {string} NORMAL - Normal sampling mode.
|
|
1666
|
+
* @property {string} CENTROID - Centroid sampling mode.
|
|
1667
|
+
* @property {string} SAMPLE - Sample-specific sampling mode.
|
|
1668
|
+
* @property {string} FLAT_FIRST - Flat interpolation using the first vertex.
|
|
1669
|
+
* @property {string} FLAT_EITHER - Flat interpolation using either vertex.
|
|
1670
|
+
*/
|
|
@@ -88,7 +88,7 @@ class BufferAttribute {
|
|
|
88
88
|
/**
|
|
89
89
|
* Applies to integer data only. Indicates how the underlying data in the buffer maps to
|
|
90
90
|
* the values in the GLSL code. For instance, if `array` is an instance of `UInt16Array`,
|
|
91
|
-
* and `normalized` is `true`, the values `0
|
|
91
|
+
* and `normalized` is `true`, the values `0 - +65535` in the array data will be mapped to
|
|
92
92
|
* `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted
|
|
93
93
|
* to floats unmodified, i.e. `65535` becomes `65535.0f`.
|
|
94
94
|
*
|
|
@@ -841,8 +841,8 @@ class Uint32BufferAttribute extends BufferAttribute {
|
|
|
841
841
|
* Convenient class that can be used when creating a `Float16` buffer attribute with
|
|
842
842
|
* a plain `Array` instance.
|
|
843
843
|
*
|
|
844
|
-
* This class automatically converts to
|
|
845
|
-
*
|
|
844
|
+
* This class automatically converts to and from FP16 via `Uint16Array` since `Float16Array`
|
|
845
|
+
* browser support is still problematic.
|
|
846
846
|
*
|
|
847
847
|
* @augments BufferAttribute
|
|
848
848
|
*/
|
|
@@ -1201,7 +1201,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
1201
1201
|
|
|
1202
1202
|
const data = {
|
|
1203
1203
|
metadata: {
|
|
1204
|
-
version: 4.
|
|
1204
|
+
version: 4.7,
|
|
1205
1205
|
type: 'BufferGeometry',
|
|
1206
1206
|
generator: 'BufferGeometry.toJSON'
|
|
1207
1207
|
}
|
|
@@ -1299,10 +1299,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
1299
1299
|
|
|
1300
1300
|
if ( boundingSphere !== null ) {
|
|
1301
1301
|
|
|
1302
|
-
data.data.boundingSphere =
|
|
1303
|
-
center: boundingSphere.center.toArray(),
|
|
1304
|
-
radius: boundingSphere.radius
|
|
1305
|
-
};
|
|
1302
|
+
data.data.boundingSphere = boundingSphere.toJSON();
|
|
1306
1303
|
|
|
1307
1304
|
}
|
|
1308
1305
|
|
package/src/core/Clock.js
CHANGED
|
@@ -61,7 +61,7 @@ class Clock {
|
|
|
61
61
|
*/
|
|
62
62
|
start() {
|
|
63
63
|
|
|
64
|
-
this.startTime = now();
|
|
64
|
+
this.startTime = performance.now();
|
|
65
65
|
|
|
66
66
|
this.oldTime = this.startTime;
|
|
67
67
|
this.elapsedTime = 0;
|
|
@@ -110,7 +110,7 @@ class Clock {
|
|
|
110
110
|
|
|
111
111
|
if ( this.running ) {
|
|
112
112
|
|
|
113
|
-
const newTime = now();
|
|
113
|
+
const newTime = performance.now();
|
|
114
114
|
|
|
115
115
|
diff = ( newTime - this.oldTime ) / 1000;
|
|
116
116
|
this.oldTime = newTime;
|
|
@@ -125,10 +125,4 @@ class Clock {
|
|
|
125
125
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
function now() {
|
|
129
|
-
|
|
130
|
-
return performance.now();
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
128
|
export { Clock };
|
|
@@ -19,8 +19,9 @@ class GLBufferAttribute {
|
|
|
19
19
|
* @param {number} itemSize - The item size.
|
|
20
20
|
* @param {number} elementSize - The corresponding size (in bytes) for the given `type` parameter.
|
|
21
21
|
* @param {number} count - The expected number of vertices in VBO.
|
|
22
|
+
* @param {boolean} [normalized=false] - Whether the data are normalized or not.
|
|
22
23
|
*/
|
|
23
|
-
constructor( buffer, type, itemSize, elementSize, count ) {
|
|
24
|
+
constructor( buffer, type, itemSize, elementSize, count, normalized = false ) {
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* This flag can be used for type testing.
|
|
@@ -73,6 +74,17 @@ class GLBufferAttribute {
|
|
|
73
74
|
*/
|
|
74
75
|
this.count = count;
|
|
75
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Applies to integer data only. Indicates how the underlying data in the buffer maps to
|
|
79
|
+
* the values in the GLSL code. For instance, if `buffer` contains data of `gl.UNSIGNED_SHORT`,
|
|
80
|
+
* and `normalized` is `true`, the values `0 - +65535` in the buffer data will be mapped to
|
|
81
|
+
* `0.0f - +1.0f` in the GLSL attribute. If `normalized` is `false`, the values will be converted
|
|
82
|
+
* to floats unmodified, i.e. `65535` becomes `65535.0f`.
|
|
83
|
+
*
|
|
84
|
+
* @type {boolean}
|
|
85
|
+
*/
|
|
86
|
+
this.normalized = normalized;
|
|
87
|
+
|
|
76
88
|
/**
|
|
77
89
|
* A version number, incremented every time the `needsUpdate` is set to `true`.
|
|
78
90
|
*
|
package/src/core/Object3D.js
CHANGED
|
@@ -47,7 +47,7 @@ const _removedEvent = { type: 'removed' };
|
|
|
47
47
|
const _childaddedEvent = { type: 'childadded', child: null };
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
|
-
* Fires when a
|
|
50
|
+
* Fires when a child object has been removed.
|
|
51
51
|
*
|
|
52
52
|
* @event Object3D#childremoved
|
|
53
53
|
* @type {Object}
|
|
@@ -1246,7 +1246,7 @@ class Object3D extends EventDispatcher {
|
|
|
1246
1246
|
};
|
|
1247
1247
|
|
|
1248
1248
|
output.metadata = {
|
|
1249
|
-
version: 4.
|
|
1249
|
+
version: 4.7,
|
|
1250
1250
|
type: 'Object',
|
|
1251
1251
|
generator: 'Object3D.toJSON'
|
|
1252
1252
|
};
|
|
@@ -1294,44 +1294,45 @@ class Object3D extends EventDispatcher {
|
|
|
1294
1294
|
object.drawRanges = this._drawRanges;
|
|
1295
1295
|
object.reservedRanges = this._reservedRanges;
|
|
1296
1296
|
|
|
1297
|
-
object.
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
boxMin: bound.box.min.toArray(),
|
|
1302
|
-
boxMax: bound.box.max.toArray(),
|
|
1303
|
-
|
|
1304
|
-
sphereInitialized: bound.sphereInitialized,
|
|
1305
|
-
sphereRadius: bound.sphere.radius,
|
|
1306
|
-
sphereCenter: bound.sphere.center.toArray()
|
|
1297
|
+
object.geometryInfo = this._geometryInfo.map( info => ( {
|
|
1298
|
+
...info,
|
|
1299
|
+
boundingBox: info.boundingBox ? info.boundingBox.toJSON() : undefined,
|
|
1300
|
+
boundingSphere: info.boundingSphere ? info.boundingSphere.toJSON() : undefined
|
|
1307
1301
|
} ) );
|
|
1302
|
+
object.instanceInfo = this._instanceInfo.map( info => ( { ...info } ) );
|
|
1303
|
+
|
|
1304
|
+
object.availableInstanceIds = this._availableInstanceIds.slice();
|
|
1305
|
+
object.availableGeometryIds = this._availableGeometryIds.slice();
|
|
1306
|
+
|
|
1307
|
+
object.nextIndexStart = this._nextIndexStart;
|
|
1308
|
+
object.nextVertexStart = this._nextVertexStart;
|
|
1309
|
+
object.geometryCount = this._geometryCount;
|
|
1308
1310
|
|
|
1309
1311
|
object.maxInstanceCount = this._maxInstanceCount;
|
|
1310
1312
|
object.maxVertexCount = this._maxVertexCount;
|
|
1311
1313
|
object.maxIndexCount = this._maxIndexCount;
|
|
1312
1314
|
|
|
1313
1315
|
object.geometryInitialized = this._geometryInitialized;
|
|
1314
|
-
object.geometryCount = this._geometryCount;
|
|
1315
1316
|
|
|
1316
1317
|
object.matricesTexture = this._matricesTexture.toJSON( meta );
|
|
1317
1318
|
|
|
1318
|
-
|
|
1319
|
+
object.indirectTexture = this._indirectTexture.toJSON( meta );
|
|
1320
|
+
|
|
1321
|
+
if ( this._colorsTexture !== null ) {
|
|
1322
|
+
|
|
1323
|
+
object.colorsTexture = this._colorsTexture.toJSON( meta );
|
|
1324
|
+
|
|
1325
|
+
}
|
|
1319
1326
|
|
|
1320
1327
|
if ( this.boundingSphere !== null ) {
|
|
1321
1328
|
|
|
1322
|
-
object.boundingSphere =
|
|
1323
|
-
center: object.boundingSphere.center.toArray(),
|
|
1324
|
-
radius: object.boundingSphere.radius
|
|
1325
|
-
};
|
|
1329
|
+
object.boundingSphere = this.boundingSphere.toJSON();
|
|
1326
1330
|
|
|
1327
1331
|
}
|
|
1328
1332
|
|
|
1329
1333
|
if ( this.boundingBox !== null ) {
|
|
1330
1334
|
|
|
1331
|
-
object.boundingBox =
|
|
1332
|
-
min: object.boundingBox.min.toArray(),
|
|
1333
|
-
max: object.boundingBox.max.toArray()
|
|
1334
|
-
};
|
|
1335
|
+
object.boundingBox = this.boundingBox.toJSON();
|
|
1335
1336
|
|
|
1336
1337
|
}
|
|
1337
1338
|
|
package/src/core/RenderTarget.js
CHANGED
|
@@ -35,6 +35,8 @@ class RenderTarget extends EventDispatcher {
|
|
|
35
35
|
* @property {?Texture} [depthTexture=null] - Reference to a depth texture.
|
|
36
36
|
* @property {number} [samples=0] - The MSAA samples count.
|
|
37
37
|
* @property {number} [count=1] - Defines the number of color attachments . Must be at least `1`.
|
|
38
|
+
* @property {number} [depth=1] - The texture depth.
|
|
39
|
+
* @property {boolean} [multiview=false] - Whether this target is used for multiview rendering.
|
|
38
40
|
*/
|
|
39
41
|
|
|
40
42
|
/**
|
|
@@ -48,6 +50,21 @@ class RenderTarget extends EventDispatcher {
|
|
|
48
50
|
|
|
49
51
|
super();
|
|
50
52
|
|
|
53
|
+
options = Object.assign( {
|
|
54
|
+
generateMipmaps: false,
|
|
55
|
+
internalFormat: null,
|
|
56
|
+
minFilter: LinearFilter,
|
|
57
|
+
depthBuffer: true,
|
|
58
|
+
stencilBuffer: false,
|
|
59
|
+
resolveDepthBuffer: true,
|
|
60
|
+
resolveStencilBuffer: true,
|
|
61
|
+
depthTexture: null,
|
|
62
|
+
samples: 0,
|
|
63
|
+
count: 1,
|
|
64
|
+
depth: 1,
|
|
65
|
+
multiview: false
|
|
66
|
+
}, options );
|
|
67
|
+
|
|
51
68
|
/**
|
|
52
69
|
* This flag can be used for type testing.
|
|
53
70
|
*
|
|
@@ -79,7 +96,7 @@ class RenderTarget extends EventDispatcher {
|
|
|
79
96
|
* @type {number}
|
|
80
97
|
* @default 1
|
|
81
98
|
*/
|
|
82
|
-
this.depth =
|
|
99
|
+
this.depth = options.depth;
|
|
83
100
|
|
|
84
101
|
/**
|
|
85
102
|
* A rectangular area inside the render target's viewport. Fragments that are
|
|
@@ -107,26 +124,9 @@ class RenderTarget extends EventDispatcher {
|
|
|
107
124
|
*/
|
|
108
125
|
this.viewport = new Vector4( 0, 0, width, height );
|
|
109
126
|
|
|
110
|
-
const image = { width: width, height: height, depth:
|
|
111
|
-
|
|
112
|
-
options = Object.assign( {
|
|
113
|
-
generateMipmaps: false,
|
|
114
|
-
internalFormat: null,
|
|
115
|
-
minFilter: LinearFilter,
|
|
116
|
-
depthBuffer: true,
|
|
117
|
-
stencilBuffer: false,
|
|
118
|
-
resolveDepthBuffer: true,
|
|
119
|
-
resolveStencilBuffer: true,
|
|
120
|
-
depthTexture: null,
|
|
121
|
-
samples: 0,
|
|
122
|
-
count: 1
|
|
123
|
-
}, options );
|
|
124
|
-
|
|
125
|
-
const texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );
|
|
127
|
+
const image = { width: width, height: height, depth: options.depth };
|
|
126
128
|
|
|
127
|
-
texture
|
|
128
|
-
texture.generateMipmaps = options.generateMipmaps;
|
|
129
|
-
texture.internalFormat = options.internalFormat;
|
|
129
|
+
const texture = new Texture( image );
|
|
130
130
|
|
|
131
131
|
/**
|
|
132
132
|
* An array of textures. Each color attachment is represented as a separate texture.
|
|
@@ -145,6 +145,8 @@ class RenderTarget extends EventDispatcher {
|
|
|
145
145
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
this._setTextureOptions( options );
|
|
149
|
+
|
|
148
150
|
/**
|
|
149
151
|
* Whether to allocate a depth buffer or not.
|
|
150
152
|
*
|
|
@@ -177,7 +179,8 @@ class RenderTarget extends EventDispatcher {
|
|
|
177
179
|
*/
|
|
178
180
|
this.resolveStencilBuffer = options.resolveStencilBuffer;
|
|
179
181
|
|
|
180
|
-
this._depthTexture =
|
|
182
|
+
this._depthTexture = null;
|
|
183
|
+
this.depthTexture = options.depthTexture;
|
|
181
184
|
|
|
182
185
|
/**
|
|
183
186
|
* The number of MSAA samples.
|
|
@@ -189,6 +192,46 @@ class RenderTarget extends EventDispatcher {
|
|
|
189
192
|
*/
|
|
190
193
|
this.samples = options.samples;
|
|
191
194
|
|
|
195
|
+
/**
|
|
196
|
+
* Whether to this target is used in multiview rendering.
|
|
197
|
+
*
|
|
198
|
+
* @type {boolean}
|
|
199
|
+
* @default false
|
|
200
|
+
*/
|
|
201
|
+
this.multiview = options.multiview;
|
|
202
|
+
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
_setTextureOptions( options = {} ) {
|
|
206
|
+
|
|
207
|
+
const values = {
|
|
208
|
+
minFilter: LinearFilter,
|
|
209
|
+
generateMipmaps: false,
|
|
210
|
+
flipY: false,
|
|
211
|
+
internalFormat: null
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
if ( options.mapping !== undefined ) values.mapping = options.mapping;
|
|
215
|
+
if ( options.wrapS !== undefined ) values.wrapS = options.wrapS;
|
|
216
|
+
if ( options.wrapT !== undefined ) values.wrapT = options.wrapT;
|
|
217
|
+
if ( options.wrapR !== undefined ) values.wrapR = options.wrapR;
|
|
218
|
+
if ( options.magFilter !== undefined ) values.magFilter = options.magFilter;
|
|
219
|
+
if ( options.minFilter !== undefined ) values.minFilter = options.minFilter;
|
|
220
|
+
if ( options.format !== undefined ) values.format = options.format;
|
|
221
|
+
if ( options.type !== undefined ) values.type = options.type;
|
|
222
|
+
if ( options.anisotropy !== undefined ) values.anisotropy = options.anisotropy;
|
|
223
|
+
if ( options.colorSpace !== undefined ) values.colorSpace = options.colorSpace;
|
|
224
|
+
if ( options.flipY !== undefined ) values.flipY = options.flipY;
|
|
225
|
+
if ( options.generateMipmaps !== undefined ) values.generateMipmaps = options.generateMipmaps;
|
|
226
|
+
if ( options.internalFormat !== undefined ) values.internalFormat = options.internalFormat;
|
|
227
|
+
|
|
228
|
+
for ( let i = 0; i < this.textures.length; i ++ ) {
|
|
229
|
+
|
|
230
|
+
const texture = this.textures[ i ];
|
|
231
|
+
texture.setValues( values );
|
|
232
|
+
|
|
233
|
+
}
|
|
234
|
+
|
|
192
235
|
}
|
|
193
236
|
|
|
194
237
|
/**
|
|
@@ -251,6 +294,7 @@ class RenderTarget extends EventDispatcher {
|
|
|
251
294
|
this.textures[ i ].image.width = width;
|
|
252
295
|
this.textures[ i ].image.height = height;
|
|
253
296
|
this.textures[ i ].image.depth = depth;
|
|
297
|
+
this.textures[ i ].isArrayTexture = this.textures[ i ].image.depth > 1;
|
|
254
298
|
|
|
255
299
|
}
|
|
256
300
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AlphaFormat,
|
|
1
|
+
import { AlphaFormat, RedFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBFormat, RGBAFormat, RGBAIntegerFormat, RGB_S3TC_DXT1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_PVRTC_2BPPV1_Format, RGBA_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_BPTC_Format, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, RED_GREEN_RGTC2_Format, SIGNED_RED_GREEN_RGTC2_Format, UnsignedByteType, ByteType, UnsignedShortType, ShortType, HalfFloatType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedIntType, IntType, FloatType, UnsignedInt5999Type } from '../constants.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Scales the texture as large as possible within its surface without cropping
|
|
@@ -106,10 +106,6 @@ function getByteLength( width, height, format, type ) {
|
|
|
106
106
|
// https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml
|
|
107
107
|
case AlphaFormat:
|
|
108
108
|
return width * height;
|
|
109
|
-
case LuminanceFormat:
|
|
110
|
-
return width * height;
|
|
111
|
-
case LuminanceAlphaFormat:
|
|
112
|
-
return width * height * 2;
|
|
113
109
|
case RedFormat:
|
|
114
110
|
return ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;
|
|
115
111
|
case RedIntegerFormat:
|