@plastic-software/three 0.174.0 → 0.175.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +10744 -1476
- package/build/three.core.js +9633 -1096
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +918 -189
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +4 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +2658 -1697
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +2654 -1709
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +1 -1
- package/examples/jsm/animation/AnimationClipCreator.js +57 -6
- package/examples/jsm/animation/CCDIKSolver.js +93 -39
- package/examples/jsm/capabilities/WebGL.js +28 -3
- package/examples/jsm/capabilities/WebGPU.js +16 -6
- package/examples/jsm/controls/ArcballControls.js +424 -154
- package/examples/jsm/controls/DragControls.js +93 -2
- package/examples/jsm/controls/FirstPersonControls.js +113 -4
- package/examples/jsm/controls/FlyControls.js +49 -2
- package/examples/jsm/controls/MapControls.js +42 -9
- package/examples/jsm/controls/OrbitControls.js +345 -42
- package/examples/jsm/controls/PointerLockControls.js +111 -9
- package/examples/jsm/controls/TrackballControls.js +159 -8
- package/examples/jsm/controls/TransformControls.js +252 -6
- package/examples/jsm/csm/CSM.js +226 -15
- package/examples/jsm/csm/CSMFrustum.js +52 -0
- package/examples/jsm/csm/CSMHelper.js +47 -0
- package/examples/jsm/csm/CSMShader.js +10 -1
- package/examples/jsm/csm/CSMShadowNode.js +156 -13
- package/examples/jsm/curves/CurveExtras.js +289 -31
- package/examples/jsm/curves/NURBSCurve.js +57 -14
- package/examples/jsm/curves/NURBSSurface.js +50 -6
- package/examples/jsm/curves/NURBSUtils.js +96 -112
- package/examples/jsm/curves/NURBSVolume.js +22 -4
- package/examples/jsm/effects/AnaglyphEffect.js +30 -0
- package/examples/jsm/effects/AsciiEffect.js +60 -15
- package/examples/jsm/effects/OutlineEffect.js +59 -111
- package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
- package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
- package/examples/jsm/effects/StereoEffect.js +29 -0
- package/examples/jsm/environments/DebugEnvironment.js +49 -0
- package/examples/jsm/environments/RoomEnvironment.js +23 -4
- package/examples/jsm/exporters/DRACOExporter.js +53 -13
- package/examples/jsm/exporters/EXRExporter.js +37 -8
- package/examples/jsm/exporters/GLTFExporter.js +171 -48
- package/examples/jsm/exporters/KTX2Exporter.js +20 -0
- package/examples/jsm/exporters/OBJExporter.js +18 -0
- package/examples/jsm/exporters/PLYExporter.js +39 -9
- package/examples/jsm/exporters/STLExporter.js +25 -5
- package/examples/jsm/exporters/USDZExporter.js +70 -3
- package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
- package/examples/jsm/geometries/ConvexGeometry.js +18 -0
- package/examples/jsm/geometries/DecalGeometry.js +20 -9
- package/examples/jsm/geometries/ParametricFunctions.js +97 -0
- package/examples/jsm/geometries/ParametricGeometry.js +37 -5
- package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
- package/examples/jsm/geometries/TeapotGeometry.js +22 -38
- package/examples/jsm/geometries/TextGeometry.js +44 -16
- package/examples/jsm/helpers/LightProbeHelper.js +35 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
- package/examples/jsm/helpers/OctreeHelper.js +35 -0
- package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
- package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
- package/examples/jsm/helpers/TextureHelper.js +27 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
- package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
- package/examples/jsm/helpers/ViewHelper.js +75 -1
- package/examples/jsm/interactive/HTMLMesh.js +25 -0
- package/examples/jsm/interactive/InteractiveGroup.js +65 -5
- package/examples/jsm/interactive/SelectionBox.js +74 -9
- package/examples/jsm/interactive/SelectionHelper.js +71 -29
- package/examples/jsm/libs/motion-controllers.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +23 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
- package/examples/jsm/lines/Line2.js +36 -0
- package/examples/jsm/lines/LineGeometry.js +52 -0
- package/examples/jsm/lines/LineMaterial.js +95 -0
- package/examples/jsm/lines/LineSegments2.js +51 -2
- package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
- package/examples/jsm/lines/Wireframe.js +38 -2
- package/examples/jsm/lines/WireframeGeometry2.js +24 -0
- package/examples/jsm/lines/webgpu/Line2.js +25 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
- package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
- package/examples/jsm/loaders/3DMLoader.js +71 -2
- package/examples/jsm/loaders/3MFLoader.js +41 -3
- package/examples/jsm/loaders/AMFLoader.js +31 -12
- package/examples/jsm/loaders/BVHLoader.js +57 -11
- package/examples/jsm/loaders/ColladaLoader.js +35 -0
- package/examples/jsm/loaders/DDSLoader.js +24 -0
- package/examples/jsm/loaders/DRACOLoader.js +73 -1
- package/examples/jsm/loaders/EXRLoader.js +40 -8
- package/examples/jsm/loaders/FBXLoader.js +42 -14
- package/examples/jsm/loaders/FontLoader.js +60 -2
- package/examples/jsm/loaders/GCodeLoader.js +33 -5
- package/examples/jsm/loaders/GLTFLoader.js +218 -5
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
- package/examples/jsm/loaders/IESLoader.js +41 -0
- package/examples/jsm/loaders/KMZLoader.js +32 -0
- package/examples/jsm/loaders/KTX2Loader.js +86 -18
- package/examples/jsm/loaders/KTXLoader.js +26 -6
- package/examples/jsm/loaders/LDrawLoader.js +115 -5
- package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
- package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
- package/examples/jsm/loaders/LUTImageLoader.js +78 -38
- package/examples/jsm/loaders/LWOLoader.js +46 -7
- package/examples/jsm/loaders/LottieLoader.js +37 -0
- package/examples/jsm/loaders/MD2Loader.js +36 -1
- package/examples/jsm/loaders/MDDLoader.js +56 -12
- package/examples/jsm/loaders/MTLLoader.js +38 -33
- package/examples/jsm/loaders/MaterialXLoader.js +33 -0
- package/examples/jsm/loaders/NRRDLoader.js +36 -5
- package/examples/jsm/loaders/OBJLoader.js +48 -1
- package/examples/jsm/loaders/PCDLoader.js +47 -0
- package/examples/jsm/loaders/PDBLoader.js +40 -2
- package/examples/jsm/loaders/PLYLoader.js +62 -32
- package/examples/jsm/loaders/PVRLoader.js +23 -5
- package/examples/jsm/loaders/RGBELoader.js +38 -5
- package/examples/jsm/loaders/RGBMLoader.js +67 -1
- package/examples/jsm/loaders/STLLoader.js +47 -38
- package/examples/jsm/loaders/SVGLoader.js +113 -20
- package/examples/jsm/loaders/TDSLoader.js +81 -61
- package/examples/jsm/loaders/TGALoader.js +22 -0
- package/examples/jsm/loaders/TIFFLoader.js +22 -0
- package/examples/jsm/loaders/TTFLoader.js +36 -2
- package/examples/jsm/loaders/USDZLoader.js +34 -1
- package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
- package/examples/jsm/loaders/VOXLoader.js +57 -0
- package/examples/jsm/loaders/VRMLLoader.js +32 -1
- package/examples/jsm/loaders/VTKLoader.js +38 -0
- package/examples/jsm/loaders/XYZLoader.js +35 -0
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
- package/examples/jsm/math/Capsule.js +89 -14
- package/examples/jsm/math/ColorConverter.js +21 -0
- package/examples/jsm/math/ColorSpaces.js +53 -0
- package/examples/jsm/math/ConvexHull.js +514 -92
- package/examples/jsm/math/ImprovedNoise.js +14 -2
- package/examples/jsm/math/Lut.js +111 -0
- package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
- package/examples/jsm/math/OBB.js +139 -46
- package/examples/jsm/math/Octree.js +132 -5
- package/examples/jsm/math/SimplexNoise.js +66 -42
- package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
- package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
- package/examples/jsm/misc/Gyroscope.js +11 -0
- package/examples/jsm/misc/MD2Character.js +115 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
- package/examples/jsm/misc/MorphAnimMesh.js +43 -0
- package/examples/jsm/misc/MorphBlendMesh.js +102 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
- package/examples/jsm/misc/RollerCoaster.js +52 -0
- package/examples/jsm/misc/Timer.js +79 -2
- package/examples/jsm/misc/TubePainter.js +53 -0
- package/examples/jsm/misc/Volume.js +108 -72
- package/examples/jsm/misc/VolumeSlice.js +88 -45
- package/examples/jsm/modifiers/CurveModifier.js +57 -34
- package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
- package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
- package/examples/jsm/modifiers/TessellateModifier.js +33 -2
- package/examples/jsm/objects/GroundedSkybox.js +23 -5
- package/examples/jsm/objects/Lensflare.js +91 -2
- package/examples/jsm/objects/LensflareMesh.js +53 -2
- package/examples/jsm/objects/MarchingCubes.js +88 -5
- package/examples/jsm/objects/Reflector.js +70 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
- package/examples/jsm/objects/Refractor.js +61 -0
- package/examples/jsm/objects/ShadowMesh.js +53 -4
- package/examples/jsm/objects/Sky.js +26 -9
- package/examples/jsm/objects/SkyMesh.js +60 -9
- package/examples/jsm/objects/Water.js +44 -5
- package/examples/jsm/objects/Water2.js +42 -3
- package/examples/jsm/objects/Water2Mesh.js +38 -3
- package/examples/jsm/objects/WaterMesh.js +94 -7
- package/examples/jsm/physics/AmmoPhysics.js +47 -0
- package/examples/jsm/physics/JoltPhysics.js +48 -0
- package/examples/jsm/physics/RapierPhysics.js +56 -0
- package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
- package/examples/jsm/postprocessing/BloomPass.js +125 -24
- package/examples/jsm/postprocessing/BokehPass.js +98 -22
- package/examples/jsm/postprocessing/ClearPass.js +53 -3
- package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
- package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
- package/examples/jsm/postprocessing/EffectComposer.js +131 -0
- package/examples/jsm/postprocessing/FilmPass.js +53 -5
- package/examples/jsm/postprocessing/GTAOPass.js +191 -48
- package/examples/jsm/postprocessing/GlitchPass.js +84 -33
- package/examples/jsm/postprocessing/HalftonePass.js +64 -10
- package/examples/jsm/postprocessing/LUTPass.js +37 -8
- package/examples/jsm/postprocessing/MaskPass.js +90 -0
- package/examples/jsm/postprocessing/OutlinePass.js +266 -133
- package/examples/jsm/postprocessing/OutputPass.js +53 -14
- package/examples/jsm/postprocessing/Pass.js +98 -4
- package/examples/jsm/postprocessing/RenderPass.js +83 -0
- package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
- package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
- package/examples/jsm/postprocessing/SAOPass.js +126 -53
- package/examples/jsm/postprocessing/SMAAPass.js +103 -71
- package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
- package/examples/jsm/postprocessing/SSAOPass.js +160 -47
- package/examples/jsm/postprocessing/SSRPass.js +230 -49
- package/examples/jsm/postprocessing/SavePass.js +68 -16
- package/examples/jsm/postprocessing/ShaderPass.js +64 -7
- package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
- package/examples/jsm/postprocessing/TexturePass.js +71 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
- package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
- package/examples/jsm/renderers/Projector.js +18 -2
- package/examples/jsm/renderers/SVGRenderer.js +124 -0
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
- package/examples/jsm/shaders/AfterimageShader.js +6 -4
- package/examples/jsm/shaders/BasicShader.js +6 -2
- package/examples/jsm/shaders/BleachBypassShader.js +8 -4
- package/examples/jsm/shaders/BlendShader.js +6 -2
- package/examples/jsm/shaders/BokehShader.js +7 -4
- package/examples/jsm/shaders/BokehShader2.js +7 -3
- package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
- package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
- package/examples/jsm/shaders/ColorifyShader.js +6 -2
- package/examples/jsm/shaders/ConvolutionShader.js +7 -39
- package/examples/jsm/shaders/CopyShader.js +6 -2
- package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
- package/examples/jsm/shaders/DigitalGlitch.js +7 -7
- package/examples/jsm/shaders/DotScreenShader.js +6 -4
- package/examples/jsm/shaders/ExposureShader.js +6 -2
- package/examples/jsm/shaders/FXAAShader.js +15 -7
- package/examples/jsm/shaders/FilmShader.js +10 -0
- package/examples/jsm/shaders/FocusShader.js +6 -4
- package/examples/jsm/shaders/FreiChenShader.js +7 -3
- package/examples/jsm/shaders/GTAOShader.js +33 -39
- package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
- package/examples/jsm/shaders/GodRaysShader.js +14 -5
- package/examples/jsm/shaders/HalftoneShader.js +11 -5
- package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
- package/examples/jsm/shaders/HueSaturationShader.js +7 -3
- package/examples/jsm/shaders/KaleidoShader.js +8 -4
- package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
- package/examples/jsm/shaders/LuminosityShader.js +6 -3
- package/examples/jsm/shaders/MirrorShader.js +7 -4
- package/examples/jsm/shaders/NormalMapShader.js +5 -3
- package/examples/jsm/shaders/OutputShader.js +11 -0
- package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
- package/examples/jsm/shaders/RGBShiftShader.js +5 -1
- package/examples/jsm/shaders/SAOShader.js +8 -2
- package/examples/jsm/shaders/SMAAShader.js +23 -1
- package/examples/jsm/shaders/SSAOShader.js +23 -5
- package/examples/jsm/shaders/SSRShader.js +25 -1
- package/examples/jsm/shaders/SepiaShader.js +6 -4
- package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
- package/examples/jsm/shaders/TechnicolorShader.js +7 -4
- package/examples/jsm/shaders/ToonShader.js +29 -7
- package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
- package/examples/jsm/shaders/VelocityShader.js +6 -2
- package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
- package/examples/jsm/shaders/VignetteShader.js +6 -4
- package/examples/jsm/shaders/VolumeShader.js +7 -1
- package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
- package/examples/jsm/textures/FlakesTexture.js +12 -0
- package/examples/jsm/transpiler/Transpiler.js +31 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
- package/examples/jsm/tsl/display/BloomNode.js +1 -1
- package/examples/jsm/tsl/display/PixelationPassNode.js +4 -4
- package/examples/jsm/tsl/display/SSRNode.js +1 -1
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +29 -3
- package/examples/jsm/tsl/math/Bayer.js +14 -1
- package/examples/jsm/tsl/utils/Raymarching.js +4 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
- package/examples/jsm/utils/CameraUtils.js +10 -7
- package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
- package/examples/jsm/utils/GeometryUtils.js +12 -13
- package/examples/jsm/utils/LDrawUtils.js +11 -4
- package/examples/jsm/utils/SceneOptimizer.js +66 -20
- package/examples/jsm/utils/SceneUtils.js +50 -3
- package/examples/jsm/utils/ShadowMapViewer.js +47 -24
- package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
- package/examples/jsm/utils/SkeletonUtils.js +45 -0
- package/examples/jsm/utils/SortUtils.js +14 -5
- package/examples/jsm/utils/UVsDebug.js +9 -4
- package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
- package/examples/jsm/utils/WorkerPool.js +65 -2
- package/examples/jsm/webxr/ARButton.js +18 -0
- package/examples/jsm/webxr/OculusHandModel.js +83 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
- package/examples/jsm/webxr/Text2D.js +11 -0
- package/examples/jsm/webxr/VRButton.js +30 -0
- package/examples/jsm/webxr/XRButton.js +22 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
- package/examples/jsm/webxr/XREstimatedLight.js +33 -3
- package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
- package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
- package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
- package/examples/jsm/webxr/XRPlanes.js +17 -0
- package/package.json +1 -1
- package/src/Three.TSL.js +3 -1
- package/src/animation/AnimationAction.js +262 -30
- package/src/animation/AnimationClip.js +141 -2
- package/src/animation/AnimationMixer.js +99 -15
- package/src/animation/AnimationObjectGroup.js +41 -18
- package/src/animation/AnimationUtils.js +168 -18
- package/src/animation/KeyframeTrack.js +144 -10
- package/src/animation/PropertyBinding.js +77 -3
- package/src/animation/PropertyMixer.js +72 -5
- package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
- package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
- package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
- package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
- package/src/animation/tracks/StringKeyframeTrack.js +33 -2
- package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
- package/src/audio/AudioAnalyser.js +1 -1
- package/src/audio/AudioListener.js +2 -2
- package/src/audio/PositionalAudio.js +5 -5
- package/src/constants.js +1432 -5
- package/src/core/BufferAttribute.js +413 -3
- package/src/core/BufferGeometry.js +337 -1
- package/src/core/Clock.js +60 -0
- package/src/core/GLBufferAttribute.js +99 -0
- package/src/core/InstancedBufferAttribute.js +29 -0
- package/src/core/InstancedBufferGeometry.js +20 -0
- package/src/core/InstancedInterleavedBuffer.js +26 -0
- package/src/core/InterleavedBuffer.js +137 -3
- package/src/core/InterleavedBufferAttribute.js +197 -0
- package/src/core/Layers.js +71 -10
- package/src/core/Object3D.js +23 -0
- package/src/core/Raycaster.js +134 -1
- package/src/core/RenderTarget.js +166 -7
- package/src/core/RenderTarget3D.js +25 -0
- package/src/core/RenderTargetArray.js +18 -0
- package/src/core/Uniform.js +29 -0
- package/src/core/UniformsGroup.js +84 -2
- package/src/extras/Controls.js +16 -1
- package/src/extras/Earcut.js +3 -781
- package/src/extras/ImageUtils.js +3 -2
- package/src/extras/PMREMGenerator.js +22 -17
- package/src/extras/core/Curve.js +1 -1
- package/src/extras/core/Path.js +1 -1
- package/src/extras/lib/earcut.js +685 -0
- package/src/geometries/ConeGeometry.js +2 -2
- package/src/geometries/CylinderGeometry.js +2 -2
- package/src/geometries/ExtrudeGeometry.js +71 -39
- package/src/geometries/LatheGeometry.js +1 -1
- package/src/lights/LightShadow.js +1 -1
- package/src/lights/webgpu/IESSpotLight.js +1 -1
- package/src/loaders/AnimationLoader.js +31 -0
- package/src/loaders/AudioLoader.js +31 -0
- package/src/loaders/BufferGeometryLoader.js +34 -0
- package/src/loaders/Cache.js +45 -0
- package/src/loaders/CompressedTextureLoader.js +36 -3
- package/src/loaders/CubeTextureLoader.js +45 -0
- package/src/loaders/DataTextureLoader.js +44 -3
- package/src/loaders/FileLoader.js +57 -1
- package/src/loaders/ImageBitmapLoader.js +57 -0
- package/src/loaders/ImageLoader.js +30 -0
- package/src/loaders/Loader.js +4 -6
- package/src/loaders/LoaderUtils.js +18 -36
- package/src/loaders/LoadingManager.js +142 -0
- package/src/loaders/MaterialLoader.js +57 -0
- package/src/loaders/ObjectLoader.js +58 -1
- package/src/loaders/TextureLoader.js +33 -0
- package/src/loaders/nodes/NodeLoader.js +6 -2
- package/src/loaders/nodes/NodeMaterialLoader.js +1 -1
- package/src/loaders/nodes/NodeObjectLoader.js +3 -3
- package/src/materials/LineBasicMaterial.js +74 -1
- package/src/materials/LineDashedMaterial.js +52 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +165 -0
- package/src/materials/MeshDepthMaterial.js +93 -0
- package/src/materials/MeshDistanceMaterial.js +76 -0
- package/src/materials/MeshLambertMaterial.js +273 -0
- package/src/materials/MeshMatcapMaterial.js +142 -0
- package/src/materials/MeshNormalMaterial.js +113 -0
- package/src/materials/MeshPhongMaterial.js +288 -0
- package/src/materials/MeshPhysicalMaterial.js +292 -1
- package/src/materials/MeshStandardMaterial.js +297 -0
- package/src/materials/MeshToonMaterial.js +218 -0
- package/src/materials/PointsMaterial.js +89 -0
- package/src/materials/RawShaderMaterial.js +25 -0
- package/src/materials/ShaderMaterial.js +215 -6
- package/src/materials/ShadowMaterial.js +54 -0
- package/src/materials/SpriteMaterial.js +82 -0
- package/src/materials/nodes/Line2NodeMaterial.js +1 -1
- package/src/materials/nodes/LineBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/LineDashedNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshLambertNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshToonNodeMaterial.js +2 -2
- package/src/materials/nodes/NodeMaterial.js +7 -3
- package/src/materials/nodes/PointsNodeMaterial.js +1 -1
- package/src/materials/nodes/ShadowNodeMaterial.js +11 -2
- package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
- package/src/materials/nodes/VolumeNodeMaterial.js +10 -1
- package/src/math/Color.js +1 -1
- package/src/math/MathUtils.js +223 -0
- package/src/nodes/Nodes.js +1 -0
- package/src/nodes/accessors/BatchNode.js +8 -8
- package/src/nodes/accessors/BuiltinNode.js +1 -1
- package/src/nodes/accessors/CubeTextureNode.js +1 -1
- package/src/nodes/accessors/InstanceNode.js +5 -5
- package/src/nodes/accessors/InstancedMeshNode.js +1 -1
- package/src/nodes/accessors/MorphNode.js +27 -23
- package/src/nodes/accessors/Normal.js +1 -1
- package/src/nodes/accessors/Object3DNode.js +12 -12
- package/src/nodes/accessors/ReferenceBaseNode.js +2 -2
- package/src/nodes/accessors/ReferenceNode.js +1 -1
- package/src/nodes/accessors/SkinningNode.js +46 -37
- package/src/nodes/accessors/StorageBufferNode.js +1 -1
- package/src/nodes/accessors/StorageTextureNode.js +3 -3
- package/src/nodes/accessors/Texture3DNode.js +1 -1
- package/src/nodes/accessors/TextureNode.js +25 -5
- package/src/nodes/accessors/TextureSizeNode.js +1 -1
- package/src/nodes/accessors/UniformArrayNode.js +2 -2
- package/src/nodes/code/CodeNode.js +4 -4
- package/src/nodes/code/ExpressionNode.js +4 -4
- package/src/nodes/code/FunctionCallNode.js +23 -3
- package/src/nodes/code/ScriptableNode.js +4 -4
- package/src/nodes/code/ScriptableValueNode.js +2 -2
- package/src/nodes/core/AssignNode.js +1 -1
- package/src/nodes/core/AttributeNode.js +1 -1
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/CacheNode.js +1 -1
- package/src/nodes/core/ContextNode.js +1 -1
- package/src/nodes/core/InputNode.js +2 -2
- package/src/nodes/core/Node.js +14 -2
- package/src/nodes/core/NodeBuilder.js +86 -14
- package/src/nodes/core/StackNode.js +5 -5
- package/src/nodes/core/StructNode.js +1 -1
- package/src/nodes/core/StructTypeNode.js +2 -2
- package/src/nodes/core/VarNode.js +2 -8
- package/src/nodes/core/VaryingNode.js +3 -3
- package/src/nodes/display/BlendModes.js +4 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/NormalMapNode.js +1 -1
- package/src/nodes/display/PosterizeNode.js +1 -1
- package/src/nodes/display/ScreenNode.js +3 -3
- package/src/nodes/display/ViewportDepthNode.js +2 -2
- package/src/nodes/display/ViewportDepthTextureNode.js +2 -2
- package/src/nodes/display/ViewportSharedTextureNode.js +2 -2
- package/src/nodes/display/ViewportTextureNode.js +4 -4
- package/src/nodes/functions/ShadowMaskModel.js +4 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +6 -6
- package/src/nodes/geometry/RangeNode.js +1 -1
- package/src/nodes/gpgpu/AtomicFunctionNode.js +16 -40
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -1
- package/src/nodes/gpgpu/ComputeNode.js +30 -2
- package/src/nodes/lighting/AnalyticLightNode.js +9 -1
- package/src/nodes/lighting/LightsNode.js +3 -3
- package/src/nodes/lighting/ShadowNode.js +1 -1
- package/src/nodes/math/ConditionalNode.js +20 -3
- package/src/nodes/math/MathNode.js +83 -78
- package/src/nodes/math/OperatorNode.js +171 -82
- package/src/nodes/pmrem/PMREMNode.js +4 -4
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/tsl/TSLBase.js +2 -1
- package/src/nodes/tsl/TSLCore.js +115 -12
- package/src/nodes/utils/ArrayElementNode.js +3 -1
- package/src/nodes/utils/CubeMapNode.js +3 -3
- package/src/nodes/utils/DebugNode.js +70 -0
- package/src/nodes/utils/EquirectUVNode.js +2 -2
- package/src/nodes/utils/JoinNode.js +27 -2
- package/src/nodes/utils/LoopNode.js +58 -28
- package/src/nodes/utils/MaxMipLevelNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +2 -2
- package/src/nodes/utils/RemapNode.js +6 -6
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUVNode.js +3 -3
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/nodes/utils/TriplanarTexturesNode.js +3 -3
- package/src/objects/BatchedMesh.js +4 -4
- package/src/objects/InstancedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- package/src/objects/Skeleton.js +1 -1
- package/src/renderers/WebGL3DRenderTarget.js +25 -0
- package/src/renderers/WebGLArrayRenderTarget.js +25 -0
- package/src/renderers/WebGLCubeRenderTarget.js +39 -1
- package/src/renderers/WebGLRenderTarget.js +19 -0
- package/src/renderers/WebGLRenderer.js +617 -79
- package/src/renderers/common/Animation.js +2 -2
- package/src/renderers/common/Attributes.js +2 -2
- package/src/renderers/common/Backend.js +12 -3
- package/src/renderers/common/Background.js +1 -0
- package/src/renderers/common/Color4.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/PostProcessing.js +2 -0
- package/src/renderers/common/QuadMesh.js +2 -0
- package/src/renderers/common/RenderList.js +2 -2
- package/src/renderers/common/RenderObject.js +1 -1
- package/src/renderers/common/RenderObjects.js +2 -2
- package/src/renderers/common/Renderer.js +52 -31
- package/src/renderers/common/XRManager.js +333 -10
- package/src/renderers/common/extras/PMREMGenerator.js +6 -0
- package/src/renderers/common/nodes/NodeBuilderState.js +3 -3
- package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +10 -1
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +8 -1
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +82 -0
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +22 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +8 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +31 -11
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -1
- package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -1
- package/src/renderers/shaders/ShaderChunk/triplanar_fragment.glsl.js +20 -0
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +52 -7
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +25 -6
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +19 -7
- package/src/renderers/shaders/ShaderChunk.js +2 -0
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -0
- package/src/renderers/shaders/UniformsLib.js +6 -5
- package/src/renderers/shaders/UniformsUtils.js +1 -3
- package/src/renderers/webgl/WebGLBackground.js +4 -2
- package/src/renderers/webgl/WebGLMaterials.js +12 -0
- package/src/renderers/webgl/WebGLProgram.js +25 -5
- package/src/renderers/webgl/WebGLPrograms.js +21 -7
- package/src/renderers/webgl/WebGLState.js +9 -9
- package/src/renderers/webgl-fallback/WebGLBackend.js +25 -26
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -12
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +67 -19
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +1 -1
- package/src/renderers/webgpu/WebGPUBackend.js +128 -87
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -11
- package/src/renderers/webgpu/WebGPURenderer.js +17 -11
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +4 -4
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +87 -2
- package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
- package/src/renderers/webxr/WebXRManager.js +173 -1
- package/src/scenes/Scene.js +2 -1
- package/src/textures/CanvasTexture.js +28 -0
- package/src/textures/CompressedArrayTexture.js +57 -0
- package/src/textures/CompressedCubeTexture.js +29 -0
- package/src/textures/CompressedTexture.js +64 -6
- package/src/textures/CubeTexture.js +52 -4
- package/src/textures/Data3DTexture.js +77 -0
- package/src/textures/DataArrayTexture.js +93 -0
- package/src/textures/DataTexture.js +65 -0
- package/src/textures/DepthTexture.js +59 -9
- package/src/textures/FramebufferTexture.js +62 -0
- package/src/textures/Source.js +69 -0
- package/src/textures/Texture.js +5 -5
- package/src/textures/VideoFrameTexture.js +43 -6
- package/src/textures/VideoTexture.js +49 -4
- package/examples/jsm/geometries/ParametricGeometries.js +0 -254
|
@@ -15,22 +15,66 @@ import {
|
|
|
15
15
|
RenderableSprite
|
|
16
16
|
} from '../renderers/Projector.js';
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Can be used to wrap SVG elements into a 3D object.
|
|
20
|
+
*
|
|
21
|
+
* @augments Object3D
|
|
22
|
+
*/
|
|
18
23
|
class SVGObject extends Object3D {
|
|
19
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Constructs a new SVG object.
|
|
27
|
+
*
|
|
28
|
+
* @param {SVGElement} node - The SVG element.
|
|
29
|
+
*/
|
|
20
30
|
constructor( node ) {
|
|
21
31
|
|
|
22
32
|
super();
|
|
23
33
|
|
|
34
|
+
/**
|
|
35
|
+
* This flag can be used for type testing.
|
|
36
|
+
*
|
|
37
|
+
* @type {boolean}
|
|
38
|
+
* @readonly
|
|
39
|
+
* @default true
|
|
40
|
+
*/
|
|
24
41
|
this.isSVGObject = true;
|
|
25
42
|
|
|
43
|
+
/**
|
|
44
|
+
* This SVG element.
|
|
45
|
+
*
|
|
46
|
+
* @type {SVGElement}
|
|
47
|
+
*/
|
|
26
48
|
this.node = node;
|
|
27
49
|
|
|
28
50
|
}
|
|
29
51
|
|
|
30
52
|
}
|
|
31
53
|
|
|
54
|
+
/**
|
|
55
|
+
* This renderer an be used to render geometric data using SVG. The produced vector
|
|
56
|
+
* graphics are particular useful in the following use cases:
|
|
57
|
+
*
|
|
58
|
+
* - Animated logos or icons.
|
|
59
|
+
* - Interactive 2D/3D diagrams or graphs.
|
|
60
|
+
* - Interactive maps.
|
|
61
|
+
* - Complex or animated user interfaces.
|
|
62
|
+
*
|
|
63
|
+
* `SVGRenderer` has various advantages. It produces crystal-clear and sharp output which
|
|
64
|
+
* is independent of the actual viewport resolution.SVG elements can be styled via CSS.
|
|
65
|
+
* And they have good accessibility since it's possible to add metadata like title or description
|
|
66
|
+
* (useful for search engines or screen readers).
|
|
67
|
+
*
|
|
68
|
+
* There are, however, some important limitations:
|
|
69
|
+
* - No advanced shading.
|
|
70
|
+
* - No texture support.
|
|
71
|
+
* - No shadow support.
|
|
72
|
+
*/
|
|
32
73
|
class SVGRenderer {
|
|
33
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Constructs a new SVG renderer.
|
|
77
|
+
*/
|
|
34
78
|
constructor() {
|
|
35
79
|
|
|
36
80
|
let _renderData, _elements, _lights,
|
|
@@ -70,16 +114,60 @@ class SVGRenderer {
|
|
|
70
114
|
_projector = new Projector(),
|
|
71
115
|
_svg = document.createElementNS( 'http://www.w3.org/2000/svg', 'svg' );
|
|
72
116
|
|
|
117
|
+
/**
|
|
118
|
+
* The DOM where the renderer appends its child-elements.
|
|
119
|
+
*
|
|
120
|
+
* @type {DOMElement}
|
|
121
|
+
*/
|
|
73
122
|
this.domElement = _svg;
|
|
74
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Whether to automatically perform a clear before a render call or not.
|
|
126
|
+
*
|
|
127
|
+
* @type {boolean}
|
|
128
|
+
* @default true
|
|
129
|
+
*/
|
|
75
130
|
this.autoClear = true;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Whether to sort 3D objects or not.
|
|
134
|
+
*
|
|
135
|
+
* @type {boolean}
|
|
136
|
+
* @default true
|
|
137
|
+
*/
|
|
76
138
|
this.sortObjects = true;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Whether to sort elements or not.
|
|
142
|
+
*
|
|
143
|
+
* @type {boolean}
|
|
144
|
+
* @default true
|
|
145
|
+
*/
|
|
77
146
|
this.sortElements = true;
|
|
78
147
|
|
|
148
|
+
/**
|
|
149
|
+
* Number of fractional pixels to enlarge polygons in order to
|
|
150
|
+
* prevent anti-aliasing gaps. Range is `[0,1]`.
|
|
151
|
+
*
|
|
152
|
+
* @type {number}
|
|
153
|
+
* @default 0.5
|
|
154
|
+
*/
|
|
79
155
|
this.overdraw = 0.5;
|
|
80
156
|
|
|
157
|
+
/**
|
|
158
|
+
* The output color space.
|
|
159
|
+
*
|
|
160
|
+
* @type {(SRGBColorSpace|LinearSRGBColorSpace)}
|
|
161
|
+
* @default SRGBColorSpace
|
|
162
|
+
*/
|
|
81
163
|
this.outputColorSpace = SRGBColorSpace;
|
|
82
164
|
|
|
165
|
+
/**
|
|
166
|
+
* Provides information about the number of
|
|
167
|
+
* rendered vertices and faces.
|
|
168
|
+
*
|
|
169
|
+
* @type {Object}
|
|
170
|
+
*/
|
|
83
171
|
this.info = {
|
|
84
172
|
|
|
85
173
|
render: {
|
|
@@ -91,6 +179,12 @@ class SVGRenderer {
|
|
|
91
179
|
|
|
92
180
|
};
|
|
93
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Sets the render quality. Setting to `high` means This value indicates that the browser
|
|
184
|
+
* tries to improve the SVG quality over rendering speed and geometric precision.
|
|
185
|
+
*
|
|
186
|
+
* @param {('low'|'high')} quality - The quality.
|
|
187
|
+
*/
|
|
94
188
|
this.setQuality = function ( quality ) {
|
|
95
189
|
|
|
96
190
|
switch ( quality ) {
|
|
@@ -102,6 +196,11 @@ class SVGRenderer {
|
|
|
102
196
|
|
|
103
197
|
};
|
|
104
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Sets the clear color.
|
|
201
|
+
*
|
|
202
|
+
* @param {(number|Color|string)} color - The clear color to set.
|
|
203
|
+
*/
|
|
105
204
|
this.setClearColor = function ( color ) {
|
|
106
205
|
|
|
107
206
|
_clearColor.set( color );
|
|
@@ -110,6 +209,12 @@ class SVGRenderer {
|
|
|
110
209
|
|
|
111
210
|
this.setPixelRatio = function () {};
|
|
112
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Resizes the renderer to the given width and height.
|
|
214
|
+
*
|
|
215
|
+
* @param {number} width - The width of the renderer.
|
|
216
|
+
* @param {number} height - The height of the renderer.
|
|
217
|
+
*/
|
|
113
218
|
this.setSize = function ( width, height ) {
|
|
114
219
|
|
|
115
220
|
_svgWidth = width; _svgHeight = height;
|
|
@@ -124,6 +229,11 @@ class SVGRenderer {
|
|
|
124
229
|
|
|
125
230
|
};
|
|
126
231
|
|
|
232
|
+
/**
|
|
233
|
+
* Returns an object containing the width and height of the renderer.
|
|
234
|
+
*
|
|
235
|
+
* @return {{width:number,height:number}} The size of the renderer.
|
|
236
|
+
*/
|
|
127
237
|
this.getSize = function () {
|
|
128
238
|
|
|
129
239
|
return {
|
|
@@ -133,6 +243,11 @@ class SVGRenderer {
|
|
|
133
243
|
|
|
134
244
|
};
|
|
135
245
|
|
|
246
|
+
/**
|
|
247
|
+
* Sets the precision of the data used to create a paths.
|
|
248
|
+
*
|
|
249
|
+
* @param {number} precision - The precision to set.
|
|
250
|
+
*/
|
|
136
251
|
this.setPrecision = function ( precision ) {
|
|
137
252
|
|
|
138
253
|
_precision = precision;
|
|
@@ -157,6 +272,9 @@ class SVGRenderer {
|
|
|
157
272
|
|
|
158
273
|
}
|
|
159
274
|
|
|
275
|
+
/**
|
|
276
|
+
* Performs a manual clear with the defined clear color.
|
|
277
|
+
*/
|
|
160
278
|
this.clear = function () {
|
|
161
279
|
|
|
162
280
|
removeChildNodes();
|
|
@@ -164,6 +282,12 @@ class SVGRenderer {
|
|
|
164
282
|
|
|
165
283
|
};
|
|
166
284
|
|
|
285
|
+
/**
|
|
286
|
+
* Renders the given scene using the given camera.
|
|
287
|
+
*
|
|
288
|
+
* @param {Object3D} scene - A scene or any other type of 3D object.
|
|
289
|
+
* @param {Camera} camera - The camera.
|
|
290
|
+
*/
|
|
167
291
|
this.render = function ( scene, camera ) {
|
|
168
292
|
|
|
169
293
|
if ( camera instanceof Camera === false ) {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
/** @module ACESFilmicToneMappingShader */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* ACES Filmic Tone Mapping Shader by Stephen Hill
|
|
3
|
-
*
|
|
4
|
+
* ACES Filmic Tone Mapping Shader by Stephen Hill.
|
|
5
|
+
* Reference: [ltc_blit.fs]{@link https://github.com/selfshadow/ltc_code/blob/master/webgl/shaders/ltc/ltc_blit.fs}
|
|
6
|
+
*
|
|
7
|
+
* This implementation of ACES is modified to accommodate a brighter viewing environment.
|
|
8
|
+
* The scale factor of 1/0.6 is subjective. See discussion in #19621.
|
|
4
9
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
10
|
+
* @constant
|
|
11
|
+
* @type {ShaderMaterial~Shader}
|
|
7
12
|
*/
|
|
8
|
-
|
|
9
13
|
const ACESFilmicToneMappingShader = {
|
|
10
14
|
|
|
11
15
|
name: 'ACESFilmicToneMappingShader',
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
/** @module AfterimageShader */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* Inspired by [Three.js FBO motion trails]{@link https://codepen.io/brunoimbrizi/pen/MoRJaN?page=1&}.
|
|
5
|
+
*
|
|
6
|
+
* @constant
|
|
7
|
+
* @type {ShaderMaterial~Shader}
|
|
5
8
|
*/
|
|
6
|
-
|
|
7
9
|
const AfterimageShader = {
|
|
8
10
|
|
|
9
11
|
name: 'AfterimageShader',
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
/** @module BleachBypassShader */
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
|
-
* Bleach bypass shader [http://en.wikipedia.org/wiki/Bleach_bypass]
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
+
* Bleach bypass shader [http://en.wikipedia.org/wiki/Bleach_bypass] based on
|
|
6
|
+
* [Nvidia Shader library]{@link http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html#post_bleach_bypass}.
|
|
7
|
+
*
|
|
8
|
+
* @constant
|
|
9
|
+
* @type {ShaderMaterial~Shader}
|
|
5
10
|
*/
|
|
6
|
-
|
|
7
11
|
const BleachBypassShader = {
|
|
8
12
|
|
|
9
13
|
name: 'BleachBypassShader',
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
/** @module BokehShader */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* Depth-of-field shader with bokeh
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* Depth-of-field shader with bokeh ported from
|
|
5
|
+
* [GLSL shader by Martins Upitis]{@link http://artmartinsh.blogspot.com/2010/02/glsl-lens-blur-filter-with-bokeh.html}.
|
|
6
|
+
*
|
|
7
|
+
* @constant
|
|
8
|
+
* @type {ShaderMaterial~Shader}
|
|
5
9
|
*/
|
|
6
|
-
|
|
7
10
|
const BokehShader = {
|
|
8
11
|
|
|
9
12
|
name: 'BokehShader',
|
|
@@ -2,12 +2,16 @@ import {
|
|
|
2
2
|
Vector2
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module BokehShader2 */
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
|
-
* Depth-of-field shader with bokeh
|
|
7
|
-
*
|
|
8
|
-
* http://blenderartists.org/forum/showthread.php?237488-GLSL-depth-of-field-with-bokeh-v2-4-(update)
|
|
8
|
+
* Depth-of-field shader with bokeh ported from
|
|
9
|
+
* [GLSL shader by Martins Upitis]{@link http://blenderartists.org/forum/showthread.php?237488-GLSL-depth-of-field-with-bokeh-v2-4-(update)}.
|
|
9
10
|
*
|
|
10
11
|
* Requires #define RINGS and SAMPLES integers
|
|
12
|
+
*
|
|
13
|
+
* @constant
|
|
14
|
+
* @type {ShaderMaterial~Shader}
|
|
11
15
|
*/
|
|
12
16
|
const BokehShader = {
|
|
13
17
|
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
/** @module BrightnessContrastShader */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* Brightness and contrast adjustment
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Brightness and contrast adjustment {@link https://github.com/evanw/glfx.js}.
|
|
5
|
+
* Brightness: -1 to 1 (-1 is solid black, 0 is no change, and 1 is solid white)
|
|
6
|
+
* Contrast: -1 to 1 (-1 is solid gray, 0 is no change, and 1 is maximum contrast)
|
|
7
|
+
*
|
|
8
|
+
* @constant
|
|
9
|
+
* @type {ShaderMaterial~Shader}
|
|
6
10
|
*/
|
|
7
|
-
|
|
8
11
|
const BrightnessContrastShader = {
|
|
9
12
|
|
|
10
13
|
name: 'BrightnessContrastShader',
|
|
@@ -2,10 +2,14 @@ import {
|
|
|
2
2
|
Vector3
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module ColorCorrectionShader */
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
|
-
* Color correction
|
|
8
|
+
* Color correction shader.
|
|
9
|
+
*
|
|
10
|
+
* @constant
|
|
11
|
+
* @type {ShaderMaterial~Shader}
|
|
7
12
|
*/
|
|
8
|
-
|
|
9
13
|
const ColorCorrectionShader = {
|
|
10
14
|
|
|
11
15
|
name: 'ColorCorrectionShader',
|
|
@@ -2,11 +2,14 @@ import {
|
|
|
2
2
|
Vector2
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module ConvolutionShader */
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
|
-
* Convolution shader
|
|
7
|
-
*
|
|
8
|
+
* Convolution shader ported from o3d sample to WebGL / GLSL.
|
|
9
|
+
*
|
|
10
|
+
* @constant
|
|
11
|
+
* @type {ShaderMaterial~Shader}
|
|
8
12
|
*/
|
|
9
|
-
|
|
10
13
|
const ConvolutionShader = {
|
|
11
14
|
|
|
12
15
|
name: 'ConvolutionShader',
|
|
@@ -62,42 +65,7 @@ const ConvolutionShader = {
|
|
|
62
65
|
|
|
63
66
|
gl_FragColor = sum;
|
|
64
67
|
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
buildKernel: function ( sigma ) {
|
|
68
|
-
|
|
69
|
-
// We lop off the sqrt(2 * pi) * sigma term, since we're going to normalize anyway.
|
|
70
|
-
|
|
71
|
-
const kMaxKernelSize = 25;
|
|
72
|
-
let kernelSize = 2 * Math.ceil( sigma * 3.0 ) + 1;
|
|
73
|
-
|
|
74
|
-
if ( kernelSize > kMaxKernelSize ) kernelSize = kMaxKernelSize;
|
|
75
|
-
|
|
76
|
-
const halfWidth = ( kernelSize - 1 ) * 0.5;
|
|
77
|
-
|
|
78
|
-
const values = new Array( kernelSize );
|
|
79
|
-
let sum = 0.0;
|
|
80
|
-
for ( let i = 0; i < kernelSize; ++ i ) {
|
|
81
|
-
|
|
82
|
-
values[ i ] = gauss( i - halfWidth, sigma );
|
|
83
|
-
sum += values[ i ];
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// normalize the kernel
|
|
88
|
-
|
|
89
|
-
for ( let i = 0; i < kernelSize; ++ i ) values[ i ] /= sum;
|
|
90
|
-
|
|
91
|
-
return values;
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
68
|
+
}`
|
|
95
69
|
};
|
|
96
70
|
|
|
97
|
-
function gauss( x, sigma ) {
|
|
98
|
-
|
|
99
|
-
return Math.exp( - ( x * x ) / ( 2.0 * sigma * sigma ) );
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
71
|
export { ConvolutionShader };
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
/** @module DOFMipMapShader */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* Depth-of-field shader using mipmaps
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* Depth-of-field shader using mipmaps from Matt Handley @applmak.
|
|
5
|
+
*
|
|
6
|
+
* Requires power-of-2 sized render target with enabled mipmaps.
|
|
7
|
+
*
|
|
8
|
+
* @constant
|
|
9
|
+
* @type {ShaderMaterial~Shader}
|
|
5
10
|
*/
|
|
6
|
-
|
|
7
11
|
const DOFMipMapShader = {
|
|
8
12
|
|
|
9
13
|
name: 'DOFMipMapShader',
|
|
@@ -2,10 +2,16 @@ import {
|
|
|
2
2
|
Vector2
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module DepthLimitedBlurShader */
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* TODO
|
|
9
|
+
*
|
|
10
|
+
* Used by {@link SAOPass}.
|
|
11
|
+
*
|
|
12
|
+
* @constant
|
|
13
|
+
* @type {ShaderMaterial~Shader}
|
|
7
14
|
*/
|
|
8
|
-
|
|
9
15
|
const DepthLimitedBlurShader = {
|
|
10
16
|
|
|
11
17
|
name: 'DepthLimitedBlurShader',
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
/** @module DigitalGlitch */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Shifts red and blue channels from center in opposite directions
|
|
4
|
-
* Ported from http://kriss.cx/tom/2009/05/rgb-shift/
|
|
5
|
-
* by Tom Butterworth / http://kriss.cx/tom/
|
|
4
|
+
* Digital glitch shader.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* @constant
|
|
7
|
+
* @type {ShaderMaterial~Shader}
|
|
9
8
|
*/
|
|
10
|
-
|
|
11
9
|
const DigitalGlitch = {
|
|
12
10
|
|
|
11
|
+
name: 'DigitalGlitch',
|
|
12
|
+
|
|
13
13
|
uniforms: {
|
|
14
14
|
|
|
15
15
|
'tDiffuse': { value: null }, //diffuse texture
|
|
@@ -2,12 +2,14 @@ import {
|
|
|
2
2
|
Vector2
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module DotScreenShader */
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
|
-
* Dot screen shader
|
|
7
|
-
*
|
|
8
|
-
*
|
|
8
|
+
* Dot screen shader based on [glfx.js sepia shader]{@link https://github.com/evanw/glfx.js}.
|
|
9
|
+
*
|
|
10
|
+
* @constant
|
|
11
|
+
* @type {ShaderMaterial~Shader}
|
|
9
12
|
*/
|
|
10
|
-
|
|
11
13
|
const DotScreenShader = {
|
|
12
14
|
|
|
13
15
|
name: 'DotScreenShader',
|
|
@@ -2,6 +2,18 @@ import {
|
|
|
2
2
|
Vector2
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module FXAAShader */
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* FXAA algorithm from NVIDIA, C# implementation by Jasper Flick, GLSL port by Dave Hoskins.
|
|
9
|
+
*
|
|
10
|
+
* References:
|
|
11
|
+
* - {@link http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf}.
|
|
12
|
+
* - {@link https://catlikecoding.com/unity/tutorials/advanced-rendering/fxaa/}.
|
|
13
|
+
*
|
|
14
|
+
* @constant
|
|
15
|
+
* @type {ShaderMaterial~Shader}
|
|
16
|
+
*/
|
|
5
17
|
const FXAAShader = {
|
|
6
18
|
|
|
7
19
|
name: 'FXAAShader',
|
|
@@ -26,10 +38,6 @@ const FXAAShader = {
|
|
|
26
38
|
|
|
27
39
|
fragmentShader: /* glsl */`
|
|
28
40
|
|
|
29
|
-
// FXAA algorithm from NVIDIA, C# implementation by Jasper Flick, GLSL port by Dave Hoskins
|
|
30
|
-
// http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
|
|
31
|
-
// https://catlikecoding.com/unity/tutorials/advanced-rendering/fxaa/
|
|
32
|
-
|
|
33
41
|
uniform sampler2D tDiffuse;
|
|
34
42
|
uniform vec2 resolution;
|
|
35
43
|
varying vec2 vUv;
|
|
@@ -138,7 +146,7 @@ const FXAAShader = {
|
|
|
138
146
|
float nGradient = abs( nLuminance - l.m );
|
|
139
147
|
|
|
140
148
|
e.pixelStep = e.isHorizontal ? texSize.y : texSize.x;
|
|
141
|
-
|
|
149
|
+
|
|
142
150
|
if (pGradient < nGradient) {
|
|
143
151
|
|
|
144
152
|
e.pixelStep = -e.pixelStep;
|
|
@@ -218,7 +226,7 @@ const FXAAShader = {
|
|
|
218
226
|
nDistance = uv.x - nuv.x;
|
|
219
227
|
|
|
220
228
|
} else {
|
|
221
|
-
|
|
229
|
+
|
|
222
230
|
pDistance = puv.y - uv.y;
|
|
223
231
|
nDistance = uv.y - nuv.y;
|
|
224
232
|
|
|
@@ -279,7 +287,7 @@ const FXAAShader = {
|
|
|
279
287
|
void main() {
|
|
280
288
|
|
|
281
289
|
gl_FragColor = ApplyFXAA( tDiffuse, resolution.xy, vUv );
|
|
282
|
-
|
|
290
|
+
|
|
283
291
|
}`
|
|
284
292
|
|
|
285
293
|
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
/** @module FocusShader */
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* Focus shader
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* Focus shader based on [PaintEffect postprocess from ro.me]{@link http://code.google.com/p/3-dreams-of-black/source/browse/deploy/js/effects/PaintEffect.js}.
|
|
5
|
+
*
|
|
6
|
+
* @constant
|
|
7
|
+
* @type {ShaderMaterial~Shader}
|
|
5
8
|
*/
|
|
6
|
-
|
|
7
9
|
const FocusShader = {
|
|
8
10
|
|
|
9
11
|
name: 'FocusShader',
|
|
@@ -2,13 +2,17 @@ import {
|
|
|
2
2
|
Vector2
|
|
3
3
|
} from 'three';
|
|
4
4
|
|
|
5
|
+
/** @module FreiChenShader */
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
|
-
* Edge Detection Shader using Frei-Chen filter
|
|
7
|
-
* Based on http://rastergrid.com/blog/2011/01/frei-chen-edge-detector
|
|
8
|
+
* Edge Detection Shader using Frei-Chen filter.
|
|
9
|
+
* Based on {@link http://rastergrid.com/blog/2011/01/frei-chen-edge-detector}.
|
|
8
10
|
*
|
|
9
11
|
* aspect: vec2 of (1/width, 1/height)
|
|
12
|
+
*
|
|
13
|
+
* @constant
|
|
14
|
+
* @type {ShaderMaterial~Shader}
|
|
10
15
|
*/
|
|
11
|
-
|
|
12
16
|
const FreiChenShader = {
|
|
13
17
|
|
|
14
18
|
name: 'FreiChenShader',
|