super-three 0.136.0 → 0.141.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +24 -26
- package/build/three.cjs +35889 -0
- package/build/three.js +4837 -6036
- package/build/three.min.js +2 -2
- package/build/three.module.js +16548 -17930
- package/examples/js/animation/CCDIKSolver.js +3 -2
- package/examples/js/animation/MMDAnimationHelper.js +3 -1
- package/examples/js/animation/MMDPhysics.js +3 -3
- package/examples/js/cameras/CinematicCamera.js +2 -7
- package/examples/js/controls/ArcballControls.js +3 -1
- package/examples/js/controls/PointerLockControls.js +3 -2
- package/examples/js/controls/TrackballControls.js +1 -4
- package/examples/js/controls/TransformControls.js +5 -6
- package/examples/js/controls/experimental/CameraControls.js +8 -4
- package/examples/js/csm/CSMFrustum.js +1 -1
- package/examples/js/csm/CSMShader.js +51 -35
- package/examples/js/curves/CurveExtras.js +14 -18
- package/examples/js/effects/AnaglyphEffect.js +7 -4
- package/examples/js/effects/AsciiEffect.js +10 -29
- package/examples/js/exporters/ColladaExporter.js +29 -7
- package/examples/js/exporters/EXRExporter.js +458 -0
- package/examples/js/exporters/GLTFExporter.js +233 -105
- package/examples/js/exporters/MMDExporter.js +1 -1
- package/examples/js/exporters/OBJExporter.js +12 -18
- package/examples/js/exporters/PLYExporter.js +15 -20
- package/examples/js/exporters/USDZExporter.js +13 -0
- package/examples/js/geometries/ConvexGeometry.js +1 -1
- package/examples/js/geometries/DecalGeometry.js +0 -7
- package/examples/js/geometries/LightningStrike.js +2 -2
- package/examples/js/geometries/ParametricGeometries.js +3 -3
- package/examples/js/geometries/TextGeometry.js +12 -10
- package/examples/js/helpers/OctreeHelper.js +74 -0
- package/examples/js/helpers/VertexNormalsHelper.js +4 -23
- package/examples/js/helpers/VertexTangentsHelper.js +3 -13
- package/examples/js/helpers/ViewHelper.js +266 -0
- package/examples/js/interactive/HTMLMesh.js +249 -42
- package/examples/js/interactive/SelectionHelper.js +1 -1
- package/examples/js/libs/opentype.min.js +1 -118
- package/examples/js/lines/Line2.js +1 -2
- package/examples/js/lines/LineGeometry.js +10 -21
- package/examples/js/lines/LineMaterial.js +2 -3
- package/examples/js/lines/LineSegments2.js +214 -140
- package/examples/js/lines/LineSegmentsGeometry.js +3 -14
- package/examples/js/lines/Wireframe.js +2 -3
- package/examples/js/lines/WireframeGeometry2.js +1 -2
- package/examples/js/loaders/3MFLoader.js +21 -17
- package/examples/js/loaders/AMFLoader.js +1 -1
- package/examples/js/loaders/BasisTextureLoader.js +1 -0
- package/examples/js/loaders/ColladaLoader.js +33 -12
- package/examples/js/loaders/DDSLoader.js +23 -30
- package/examples/js/loaders/EXRLoader.js +314 -294
- package/examples/js/loaders/FBXLoader.js +11 -0
- package/examples/js/loaders/FontLoader.js +1 -2
- package/examples/js/loaders/GCodeLoader.js +0 -1
- package/examples/js/loaders/GLTFLoader.js +250 -61
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -2
- package/examples/js/loaders/KMZLoader.js +1 -1
- package/examples/js/loaders/KTX2Loader.js +1 -9
- package/examples/js/loaders/LDrawLoader.js +1342 -962
- package/examples/js/loaders/LUT3dlLoader.js +18 -11
- package/examples/js/loaders/LUTCubeLoader.js +4 -5
- package/examples/js/loaders/LWOLoader.js +4 -2
- package/examples/js/loaders/LogLuvLoader.js +1 -2
- package/examples/js/loaders/MD2Loader.js +5 -5
- package/examples/js/loaders/MMDLoader.js +18 -4
- package/examples/js/loaders/MTLLoader.js +10 -3
- package/examples/js/loaders/NRRDLoader.js +1 -1
- package/examples/js/loaders/OBJLoader.js +9 -5
- package/examples/js/loaders/PCDLoader.js +24 -15
- package/examples/js/loaders/PDBLoader.js +11 -11
- package/examples/js/loaders/PLYLoader.js +5 -1
- package/examples/js/loaders/RGBELoader.js +9 -17
- package/examples/js/loaders/RGBMLoader.js +13 -16
- package/examples/js/loaders/STLLoader.js +1 -1
- package/examples/js/loaders/SVGLoader.js +21 -11
- package/examples/js/loaders/VOXLoader.js +3 -4
- package/examples/js/loaders/VRMLLoader.js +9 -21
- package/examples/js/loaders/VTKLoader.js +260 -295
- package/examples/js/loaders/lwo/LWO2Parser.js +4 -4
- package/examples/js/loaders/lwo/LWO3Parser.js +4 -4
- package/examples/js/math/ConvexHull.js +13 -28
- package/examples/js/math/Lut.js +27 -26
- package/examples/js/misc/MorphAnimMesh.js +2 -2
- package/examples/js/misc/ProgressiveLightMap.js +1 -1
- package/examples/js/misc/Volume.js +39 -48
- package/examples/js/misc/VolumeSlice.js +21 -21
- package/examples/js/modifiers/CurveModifier.js +8 -7
- package/examples/js/modifiers/EdgeSplitModifier.js +0 -13
- package/examples/js/modifiers/SimplifyModifier.js +1 -18
- package/examples/js/modifiers/TessellateModifier.js +0 -7
- package/examples/js/objects/Lensflare.js +4 -4
- package/examples/js/objects/LightningStorm.js +4 -5
- package/examples/js/objects/MarchingCubes.js +6 -11
- package/examples/js/objects/Reflector.js +10 -16
- package/examples/js/objects/ReflectorForSSRPass.js +1 -11
- package/examples/js/objects/Refractor.js +10 -16
- package/examples/js/objects/ShadowMesh.js +1 -2
- package/examples/js/objects/Sky.js +1 -1
- package/examples/js/objects/Water.js +2 -15
- package/examples/js/objects/Water2.js +1 -1
- package/examples/js/postprocessing/AdaptiveToneMappingPass.js +6 -10
- package/examples/js/postprocessing/AfterimagePass.js +2 -6
- package/examples/js/postprocessing/BloomPass.js +50 -19
- package/examples/js/postprocessing/DotScreenPass.js +1 -1
- package/examples/js/postprocessing/EffectComposer.js +1 -6
- package/examples/js/postprocessing/GlitchPass.js +4 -5
- package/examples/js/postprocessing/LUTPass.js +2 -2
- package/examples/js/postprocessing/OutlinePass.js +8 -17
- package/examples/js/postprocessing/SAOPass.js +2 -7
- package/examples/js/postprocessing/SMAAPass.js +2 -9
- package/examples/js/postprocessing/SSAARenderPass.js +1 -6
- package/examples/js/postprocessing/SSAOPass.js +9 -21
- package/examples/js/postprocessing/SSRPass.js +3 -8
- package/examples/js/postprocessing/SavePass.js +1 -5
- package/examples/js/postprocessing/TAARenderPass.js +4 -4
- package/examples/js/postprocessing/UnrealBloomPass.js +3 -12
- package/examples/js/renderers/CSS2DRenderer.js +20 -19
- package/examples/js/renderers/CSS3DRenderer.js +40 -36
- package/examples/js/renderers/Projector.js +97 -124
- package/examples/js/renderers/SVGRenderer.js +3 -4
- package/examples/js/shaders/BlendShader.js +2 -1
- package/examples/js/shaders/CopyShader.js +4 -3
- package/examples/js/shaders/DigitalGlitch.js +3 -3
- package/examples/js/shaders/FXAAShader.js +239 -1069
- package/examples/js/shaders/FreiChenShader.js +1 -1
- package/examples/js/shaders/HorizontalBlurShader.js +1 -1
- package/examples/js/shaders/HorizontalTiltShiftShader.js +1 -1
- package/examples/js/shaders/MMDToonShader.js +0 -1
- package/examples/js/shaders/SSAOShader.js +1 -1
- package/examples/js/shaders/SSRShader.js +3 -3
- package/examples/js/shaders/ToneMapShader.js +1 -1
- package/examples/js/utils/BufferGeometryUtils.js +282 -22
- package/examples/js/utils/GPUStatsPanel.js +1 -1
- package/examples/js/utils/LDrawUtils.js +182 -0
- package/examples/js/utils/SceneUtils.js +59 -0
- package/examples/js/utils/SkeletonUtils.js +1 -1
- package/examples/js/utils/UVsDebug.js +23 -33
- package/examples/jsm/animation/CCDIKSolver.js +3 -9
- package/examples/jsm/animation/MMDPhysics.js +2 -2
- package/examples/jsm/cameras/CinematicCamera.js +2 -5
- package/examples/jsm/{WebGL.js → capabilities/WebGL.js} +2 -2
- package/examples/jsm/{renderers/webgpu → capabilities}/WebGPU.js +7 -1
- package/examples/jsm/controls/ArcballControls.js +3 -1
- package/examples/jsm/controls/PointerLockControls.js +4 -2
- package/examples/jsm/controls/TrackballControls.js +1 -4
- package/examples/jsm/controls/TransformControls.js +6 -6
- package/examples/jsm/controls/experimental/CameraControls.js +2 -2
- package/examples/jsm/csm/CSMFrustum.js +1 -1
- package/examples/jsm/csm/CSMShader.js +51 -35
- package/examples/jsm/curves/CurveExtras.js +15 -17
- package/examples/jsm/effects/AnaglyphEffect.js +4 -4
- package/examples/jsm/effects/AsciiEffect.js +9 -22
- package/examples/jsm/exporters/ColladaExporter.js +31 -6
- package/examples/jsm/exporters/EXRExporter.js +507 -0
- package/examples/jsm/exporters/GLTFExporter.js +261 -103
- package/examples/jsm/exporters/KTX2Exporter.js +281 -0
- package/examples/jsm/exporters/MMDExporter.js +1 -1
- package/examples/jsm/exporters/OBJExporter.js +11 -18
- package/examples/jsm/exporters/PLYExporter.js +23 -21
- package/examples/jsm/exporters/USDZExporter.js +12 -0
- package/examples/jsm/geometries/ConvexGeometry.js +1 -1
- package/examples/jsm/geometries/DecalGeometry.js +0 -7
- package/examples/jsm/geometries/LightningStrike.js +2 -2
- package/examples/jsm/geometries/ParametricGeometries.js +3 -3
- package/examples/jsm/geometries/TextGeometry.js +13 -13
- package/examples/jsm/helpers/OctreeHelper.js +58 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +4 -25
- package/examples/jsm/helpers/VertexTangentsHelper.js +3 -15
- package/examples/jsm/helpers/ViewHelper.js +295 -0
- package/examples/jsm/interactive/HTMLMesh.js +268 -36
- package/examples/jsm/interactive/SelectionHelper.js +1 -1
- package/examples/jsm/libs/flow.module.js +947 -183
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/libs/lil-gui.module.min.js +2 -2
- package/examples/jsm/libs/mikktspace.module.js +128 -0
- package/examples/jsm/libs/opentype.module.js +14568 -0
- package/examples/jsm/lines/Line2.js +2 -2
- package/examples/jsm/lines/LineGeometry.js +11 -19
- package/examples/jsm/lines/LineMaterial.js +3 -3
- package/examples/jsm/lines/LineSegments2.js +210 -145
- package/examples/jsm/lines/LineSegmentsGeometry.js +3 -12
- package/examples/jsm/lines/Wireframe.js +3 -3
- package/examples/jsm/lines/WireframeGeometry2.js +2 -2
- package/examples/jsm/loaders/3DMLoader.js +3 -2
- package/examples/jsm/loaders/3MFLoader.js +21 -17
- package/examples/jsm/loaders/AMFLoader.js +1 -1
- package/examples/jsm/loaders/BasisTextureLoader.js +7 -0
- package/examples/jsm/loaders/ColladaLoader.js +40 -12
- package/examples/jsm/loaders/DDSLoader.js +21 -28
- package/examples/jsm/loaders/EXRLoader.js +309 -293
- package/examples/jsm/loaders/FBXLoader.js +11 -0
- package/examples/jsm/loaders/FontLoader.js +2 -2
- package/examples/jsm/loaders/GCodeLoader.js +0 -1
- package/examples/jsm/loaders/GLTFLoader.js +263 -68
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -4
- package/examples/jsm/loaders/KMZLoader.js +1 -1
- package/examples/jsm/loaders/KTX2Loader.js +1 -10
- package/examples/jsm/loaders/LDrawLoader.js +1335 -988
- package/examples/jsm/loaders/LUT3dlLoader.js +19 -14
- package/examples/jsm/loaders/LUTCubeLoader.js +5 -7
- package/examples/jsm/loaders/LWOLoader.js +5 -3
- package/examples/jsm/loaders/LogLuvLoader.js +2 -2
- package/examples/jsm/loaders/MD2Loader.js +5 -5
- package/examples/jsm/loaders/MMDLoader.js +21 -3
- package/examples/jsm/loaders/MTLLoader.js +11 -4
- package/examples/jsm/loaders/NRRDLoader.js +1 -2
- package/examples/jsm/loaders/OBJLoader.js +11 -7
- package/examples/jsm/loaders/PCDLoader.js +25 -17
- package/examples/jsm/loaders/PDBLoader.js +11 -11
- package/examples/jsm/loaders/PLYLoader.js +10 -2
- package/examples/jsm/loaders/RGBELoader.js +11 -20
- package/examples/jsm/loaders/RGBMLoader.js +15 -12
- package/examples/jsm/loaders/STLLoader.js +1 -1
- package/examples/jsm/loaders/SVGLoader.js +26 -11
- package/examples/jsm/loaders/TTFLoader.js +1 -1
- package/examples/jsm/loaders/VOXLoader.js +5 -5
- package/examples/jsm/loaders/VRMLLoader.js +9 -23
- package/examples/jsm/loaders/VTKLoader.js +256 -284
- package/examples/jsm/loaders/ifc/web-ifc-api.js +9 -8
- package/examples/jsm/loaders/lwo/LWO2Parser.js +4 -4
- package/examples/jsm/loaders/lwo/LWO3Parser.js +4 -4
- package/examples/jsm/math/ConvexHull.js +13 -28
- package/examples/jsm/math/Lut.js +35 -25
- package/examples/jsm/misc/MorphAnimMesh.js +2 -2
- package/examples/jsm/misc/ProgressiveLightMap.js +1 -1
- package/examples/jsm/misc/Volume.js +39 -46
- package/examples/jsm/misc/VolumeSlice.js +21 -21
- package/examples/jsm/modifiers/CurveModifier.js +9 -8
- package/examples/jsm/modifiers/EdgeSplitModifier.js +0 -13
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -18
- package/examples/jsm/modifiers/TessellateModifier.js +0 -7
- package/examples/jsm/node-editor/NodeEditor.js +485 -163
- package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +14 -0
- package/examples/jsm/node-editor/accessors/NormalEditor.js +9 -9
- package/examples/jsm/node-editor/accessors/PositionEditor.js +9 -9
- package/examples/jsm/node-editor/accessors/UVEditor.js +7 -8
- package/examples/jsm/node-editor/core/BaseNode.js +89 -0
- package/examples/jsm/node-editor/core/DataFile.js +59 -0
- package/examples/jsm/node-editor/core/FileEditor.js +20 -0
- package/examples/jsm/node-editor/core/FileURLEditor.js +29 -0
- package/examples/jsm/node-editor/display/BlendEditor.js +10 -9
- package/examples/jsm/node-editor/display/NormalMapEditor.js +49 -0
- package/examples/jsm/node-editor/examples/animate-uv.json +1 -1
- package/examples/jsm/node-editor/examples/fake-top-light.json +1 -1
- package/examples/jsm/node-editor/examples/matcap.json +1 -0
- package/examples/jsm/node-editor/examples/oscillator-color.json +1 -1
- package/examples/jsm/node-editor/examples/rim.json +1 -1
- package/examples/jsm/node-editor/inputs/ColorEditor.js +18 -13
- package/examples/jsm/node-editor/inputs/FloatEditor.js +8 -9
- package/examples/jsm/node-editor/inputs/SliderEditor.js +6 -7
- package/examples/jsm/node-editor/inputs/TextureEditor.js +155 -0
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +9 -9
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +11 -11
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +12 -12
- package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +87 -0
- package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +102 -0
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +31 -18
- package/examples/jsm/node-editor/math/AngleEditor.js +40 -0
- package/examples/jsm/node-editor/math/DotEditor.js +8 -9
- package/examples/jsm/node-editor/math/InvertEditor.js +8 -7
- package/examples/jsm/node-editor/math/LimiterEditor.js +28 -14
- package/examples/jsm/node-editor/math/NormalizeEditor.js +9 -7
- package/examples/jsm/node-editor/math/OperatorEditor.js +29 -16
- package/examples/jsm/node-editor/math/PowerEditor.js +20 -10
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +15 -9
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +7 -6
- package/examples/jsm/node-editor/scene/MeshEditor.js +99 -0
- package/examples/jsm/node-editor/scene/Object3DEditor.js +160 -0
- package/examples/jsm/node-editor/scene/PointsEditor.js +99 -0
- package/examples/jsm/node-editor/utils/JoinEditor.js +58 -0
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +9 -8
- package/examples/jsm/node-editor/utils/PreviewEditor.js +166 -0
- package/examples/jsm/node-editor/utils/SplitEditor.js +39 -0
- package/examples/jsm/node-editor/utils/TimerEditor.js +7 -6
- package/examples/jsm/nodes/Nodes.js +283 -94
- package/examples/jsm/nodes/accessors/BufferNode.js +24 -0
- package/examples/jsm/nodes/accessors/CameraNode.js +27 -196
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +103 -0
- package/examples/jsm/nodes/accessors/InstanceNode.js +58 -0
- package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialNode.js +49 -11
- package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialReferenceNode.js +0 -0
- package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelNode.js +8 -0
- package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelViewProjectionNode.js +0 -0
- package/examples/jsm/nodes/accessors/NormalNode.js +39 -99
- package/examples/jsm/{renderers/nodes → nodes}/accessors/Object3DNode.js +34 -17
- package/examples/jsm/{renderers/nodes → nodes}/accessors/PointUVNode.js +2 -2
- package/examples/jsm/nodes/accessors/PositionNode.js +41 -110
- package/examples/jsm/nodes/accessors/ReferenceNode.js +65 -0
- package/examples/jsm/nodes/accessors/ReflectNode.js +34 -121
- package/examples/jsm/nodes/accessors/SkinningNode.js +102 -0
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +21 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +100 -0
- package/examples/jsm/nodes/accessors/UVNode.js +17 -43
- package/examples/jsm/nodes/accessors/UserDataNode.js +23 -0
- package/examples/jsm/nodes/core/ArrayUniformNode.js +23 -0
- package/examples/jsm/nodes/core/AttributeNode.js +33 -30
- package/examples/jsm/{renderers/nodes → nodes}/core/BypassNode.js +2 -2
- package/examples/jsm/{renderers/nodes → nodes}/core/CodeNode.js +2 -30
- package/examples/jsm/nodes/core/ConstNode.js +10 -106
- package/examples/jsm/{renderers/nodes → nodes}/core/ContextNode.js +17 -3
- package/examples/jsm/nodes/core/ExpressionNode.js +24 -7
- package/examples/jsm/nodes/core/FunctionCallNode.js +26 -67
- package/examples/jsm/nodes/core/FunctionNode.js +43 -216
- package/examples/jsm/nodes/core/InputNode.js +28 -60
- package/examples/jsm/nodes/core/InstanceIndexNode.js +21 -0
- package/examples/jsm/nodes/core/Node.js +228 -94
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeAttribute.js +2 -2
- package/examples/jsm/nodes/core/NodeBuilder.js +388 -560
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeCode.js +0 -0
- package/examples/jsm/nodes/core/NodeFrame.js +30 -23
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunction.js +0 -0
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunctionInput.js +0 -0
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeKeywords.js +0 -0
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeParser.js +0 -0
- package/examples/jsm/nodes/core/NodeUniform.js +8 -6
- package/examples/jsm/nodes/core/NodeUtils.js +69 -37
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeVar.js +2 -2
- package/examples/jsm/{renderers/nodes → nodes}/core/NodeVary.js +2 -2
- package/examples/jsm/{renderers/nodes → nodes}/core/PropertyNode.js +0 -0
- package/examples/jsm/nodes/core/TempNode.js +20 -112
- package/examples/jsm/nodes/core/UniformNode.js +46 -0
- package/examples/jsm/nodes/core/VarNode.js +58 -27
- package/examples/jsm/{renderers/nodes → nodes}/core/VaryNode.js +0 -0
- package/examples/jsm/{renderers/nodes → nodes}/core/constants.js +0 -0
- package/examples/jsm/nodes/display/ColorSpaceNode.js +95 -0
- package/examples/jsm/nodes/display/FrontFacingNode.js +21 -0
- package/examples/jsm/nodes/display/NormalMapNode.js +86 -0
- package/examples/jsm/nodes/display/ToneMappingNode.js +51 -0
- package/examples/jsm/nodes/fog/FogNode.js +31 -0
- package/examples/jsm/nodes/fog/FogRangeNode.js +27 -0
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +33 -0
- package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -0
- package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +27 -0
- package/examples/jsm/nodes/functions/BSDF/D_GGX.js +18 -0
- package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +18 -0
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +18 -0
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +94 -0
- package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +22 -0
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +12 -0
- package/examples/jsm/nodes/functions/material/getRoughness.js +18 -0
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +63 -0
- package/examples/jsm/nodes/lighting/AONode.js +25 -0
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +37 -0
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +65 -0
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +50 -0
- package/examples/jsm/nodes/lighting/LightingContextNode.js +75 -0
- package/examples/jsm/nodes/lighting/LightingNode.js +19 -0
- package/examples/jsm/nodes/lighting/LightsNode.js +120 -0
- package/examples/jsm/nodes/lighting/PunctualLightNode.js +68 -0
- package/examples/jsm/nodes/loaders/NodeLoader.js +107 -0
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +42 -0
- package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -0
- package/examples/jsm/{renderers/nodes → nodes}/materials/LineBasicNodeMaterial.js +11 -4
- package/examples/jsm/nodes/materials/Materials.js +65 -0
- package/examples/jsm/{renderers/nodes → nodes}/materials/MeshBasicNodeMaterial.js +13 -4
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +162 -22
- package/examples/jsm/nodes/materials/NodeMaterial.js +128 -113
- package/examples/jsm/{renderers/nodes → nodes}/materials/PointsNodeMaterial.js +13 -4
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +84 -16
- package/examples/jsm/nodes/math/CondNode.js +26 -95
- package/examples/jsm/nodes/math/MathNode.js +164 -187
- package/examples/jsm/nodes/math/OperatorNode.js +161 -41
- package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeFunction.js +2 -2
- package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeParser.js +0 -0
- package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeFunction.js +20 -5
- package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeParser.js +0 -0
- package/examples/jsm/nodes/procedural/CheckerNode.js +16 -57
- package/examples/jsm/nodes/shadernode/ShaderNode.js +262 -0
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +274 -0
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +106 -0
- package/examples/jsm/{renderers/nodes → nodes}/utils/ArrayElementNode.js +3 -3
- package/examples/jsm/{renderers/nodes → nodes}/utils/ConvertNode.js +11 -3
- package/examples/jsm/nodes/utils/JoinNode.js +17 -89
- package/examples/jsm/nodes/utils/MatcapUVNode.js +25 -0
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +32 -0
- package/examples/jsm/{renderers/nodes → nodes}/utils/OscNode.js +18 -2
- package/examples/jsm/{renderers/nodes → nodes}/utils/SplitNode.js +35 -4
- package/examples/jsm/{renderers/nodes → nodes}/utils/SpriteSheetUVNode.js +3 -3
- package/examples/jsm/nodes/utils/TimerNode.js +30 -65
- package/examples/jsm/objects/Lensflare.js +6 -6
- package/examples/jsm/objects/LightningStorm.js +4 -4
- package/examples/jsm/objects/MarchingCubes.js +5 -9
- package/examples/jsm/objects/Reflector.js +8 -19
- package/examples/jsm/objects/ReflectorForSSRPass.js +2 -14
- package/examples/jsm/objects/Refractor.js +8 -19
- package/examples/jsm/objects/ShadowMesh.js +2 -2
- package/examples/jsm/objects/Sky.js +2 -2
- package/examples/jsm/objects/Water.js +3 -18
- package/examples/jsm/objects/Water2.js +2 -2
- package/examples/jsm/offscreen/jank.js +5 -5
- package/examples/jsm/offscreen/offscreen.js +1 -1
- package/examples/jsm/offscreen/scene.js +11 -11
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +5 -7
- package/examples/jsm/postprocessing/AfterimagePass.js +0 -10
- package/examples/jsm/postprocessing/BloomPass.js +48 -20
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
- package/examples/jsm/postprocessing/EffectComposer.js +1 -9
- package/examples/jsm/postprocessing/GlitchPass.js +7 -6
- package/examples/jsm/postprocessing/LUTPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +8 -15
- package/examples/jsm/postprocessing/SAOPass.js +2 -9
- package/examples/jsm/postprocessing/SMAAPass.js +2 -11
- package/examples/jsm/postprocessing/SSAARenderPass.js +1 -4
- package/examples/jsm/postprocessing/SSAOPass.js +13 -25
- package/examples/jsm/postprocessing/SSRPass.js +3 -9
- package/examples/jsm/postprocessing/SavePass.js +1 -3
- package/examples/jsm/postprocessing/TAARenderPass.js +4 -4
- package/examples/jsm/postprocessing/UnrealBloomPass.js +3 -8
- package/examples/jsm/renderers/CSS2DRenderer.js +21 -19
- package/examples/jsm/renderers/CSS3DRenderer.js +39 -34
- package/examples/jsm/renderers/Projector.js +101 -128
- package/examples/jsm/renderers/SVGRenderer.js +4 -4
- package/examples/jsm/renderers/webgl/nodes/SlotNode.js +1 -1
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +127 -23
- package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +14 -3
- package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +5 -5
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +4 -4
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +16 -10
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +8 -7
- package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +43 -0
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +14 -7
- package/examples/jsm/renderers/webgpu/WebGPUInfo.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -6
- package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +20 -20
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +2 -1
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +66 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +49 -28
- package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +14 -14
- package/examples/jsm/renderers/webgpu/WebGPUSampler.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +5 -8
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +23 -20
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +38 -20
- package/examples/jsm/renderers/webgpu/WebGPUUniform.js +14 -14
- package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +5 -32
- package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +2 -2
- package/examples/jsm/renderers/webgpu/constants.js +3 -2
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +276 -278
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeSampledTexture.js +20 -2
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +24 -14
- package/examples/jsm/shaders/BlendShader.js +2 -1
- package/examples/jsm/shaders/CopyShader.js +4 -3
- package/examples/jsm/shaders/DigitalGlitch.js +3 -3
- package/examples/jsm/shaders/FXAAShader.js +219 -1051
- package/examples/jsm/shaders/FreiChenShader.js +1 -1
- package/examples/jsm/shaders/HorizontalBlurShader.js +1 -1
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +1 -1
- package/examples/jsm/shaders/MMDToonShader.js +0 -1
- package/examples/jsm/shaders/SSAOShader.js +1 -1
- package/examples/jsm/shaders/SSRShader.js +3 -3
- package/examples/jsm/shaders/ToneMapShader.js +1 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +292 -22
- package/examples/jsm/utils/GPUStatsPanel.js +1 -1
- package/examples/jsm/utils/LDrawUtils.js +202 -0
- package/examples/jsm/utils/SceneUtils.js +76 -2
- package/examples/jsm/utils/SkeletonUtils.js +1 -1
- package/examples/jsm/utils/UVsDebug.js +23 -32
- package/examples/jsm/webxr/ARButton.js +14 -4
- package/examples/jsm/webxr/OculusHandPointerModel.js +3 -3
- package/examples/jsm/webxr/Text2D.js +1 -1
- package/examples/jsm/webxr/VRButton.js +39 -1
- package/examples/jsm/webxr/XREstimatedLight.js +2 -0
- package/examples/jsm/webxr/XRHandMeshModel.js +3 -7
- package/examples/jsm/webxr/XRHandModelFactory.js +3 -0
- package/package.json +53 -25
- package/src/Three.Legacy.js +41 -1912
- package/src/Three.js +6 -3
- package/src/animation/AnimationClip.js +1 -1
- package/src/animation/AnimationMixer.js +6 -3
- package/src/animation/AnimationObjectGroup.js +2 -2
- package/src/animation/PropertyBinding.js +8 -18
- package/src/audio/PositionalAudio.js +8 -0
- package/src/cameras/ArrayCamera.js +2 -3
- package/src/cameras/Camera.js +2 -2
- package/src/cameras/CubeCamera.js +8 -1
- package/src/cameras/OrthographicCamera.js +2 -2
- package/src/cameras/PerspectiveCamera.js +2 -2
- package/src/constants.js +8 -18
- package/src/core/BufferAttribute.js +7 -12
- package/src/core/BufferGeometry.js +6 -6
- package/src/core/GLBufferAttribute.js +2 -2
- package/src/core/InstancedBufferAttribute.js +2 -2
- package/src/core/InstancedBufferGeometry.js +2 -2
- package/src/core/InstancedInterleavedBuffer.js +2 -2
- package/src/core/InterleavedBuffer.js +2 -2
- package/src/core/InterleavedBufferAttribute.js +5 -11
- package/src/core/Object3D.js +6 -3
- package/src/core/Raycaster.js +2 -2
- package/src/extras/DataUtils.js +127 -40
- package/src/extras/Earcut.js +2 -2
- package/src/extras/ImageUtils.js +63 -0
- package/src/extras/PMREMGenerator.js +152 -174
- package/src/extras/core/CurvePath.js +3 -3
- package/src/extras/core/ShapePath.js +5 -6
- package/src/extras/curves/ArcCurve.js +2 -2
- package/src/extras/curves/CatmullRomCurve3.js +2 -2
- package/src/extras/curves/CubicBezierCurve.js +2 -2
- package/src/extras/curves/CubicBezierCurve3.js +2 -2
- package/src/extras/curves/EllipseCurve.js +2 -2
- package/src/extras/curves/LineCurve.js +2 -2
- package/src/extras/curves/LineCurve3.js +2 -1
- package/src/extras/curves/QuadraticBezierCurve.js +2 -2
- package/src/extras/curves/QuadraticBezierCurve3.js +2 -2
- package/src/extras/curves/SplineCurve.js +2 -2
- package/src/geometries/CapsuleGeometry.js +33 -0
- package/src/geometries/ExtrudeGeometry.js +2 -0
- package/src/geometries/Geometries.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -1
- package/src/geometries/TorusKnotGeometry.js +2 -2
- package/src/geometries/WireframeGeometry.js +3 -2
- package/src/helpers/BoxHelper.js +2 -2
- package/src/helpers/PointLightHelper.js +1 -1
- package/src/helpers/SkeletonHelper.js +3 -2
- package/src/lights/AmbientLight.js +2 -2
- package/src/lights/AmbientLightProbe.js +2 -2
- package/src/lights/DirectionalLight.js +2 -2
- package/src/lights/DirectionalLightShadow.js +2 -2
- package/src/lights/HemisphereLight.js +4 -4
- package/src/lights/HemisphereLightProbe.js +2 -2
- package/src/lights/Light.js +4 -4
- package/src/lights/LightProbe.js +2 -2
- package/src/lights/PointLight.js +4 -4
- package/src/lights/PointLightShadow.js +2 -2
- package/src/lights/RectAreaLight.js +2 -2
- package/src/lights/SpotLight.js +4 -4
- package/src/lights/SpotLightShadow.js +2 -2
- package/src/loaders/FileLoader.js +23 -4
- package/src/loaders/ImageBitmapLoader.js +2 -2
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/LoaderUtils.js +1 -1
- package/src/loaders/MaterialLoader.js +8 -3
- package/src/loaders/ObjectLoader.js +23 -25
- package/src/materials/LineBasicMaterial.js +6 -13
- package/src/materials/LineDashedMaterial.js +2 -15
- package/src/materials/Material.js +49 -15
- package/src/materials/Materials.js +66 -18
- package/src/materials/MeshBasicMaterial.js +6 -31
- package/src/materials/MeshDepthMaterial.js +2 -22
- package/src/materials/MeshDistanceMaterial.js +2 -22
- package/src/materials/MeshLambertMaterial.js +6 -34
- package/src/materials/MeshMatcapMaterial.js +6 -28
- package/src/materials/MeshNormalMaterial.js +2 -26
- package/src/materials/MeshPhongMaterial.js +6 -48
- package/src/materials/MeshPhysicalMaterial.js +32 -35
- package/src/materials/MeshStandardMaterial.js +6 -54
- package/src/materials/MeshToonMaterial.js +6 -38
- package/src/materials/PointsMaterial.js +6 -15
- package/src/materials/RawShaderMaterial.js +2 -2
- package/src/materials/ShaderMaterial.js +3 -17
- package/src/materials/ShadowMaterial.js +6 -8
- package/src/materials/SpriteMaterial.js +6 -12
- package/src/math/Box2.js +2 -2
- package/src/math/Box3.js +29 -15
- package/src/math/Color.js +85 -36
- package/src/math/ColorManagement.js +74 -0
- package/src/math/Euler.js +16 -14
- package/src/math/Interpolant.js +4 -9
- package/src/math/MathUtils.js +76 -7
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +2 -3
- package/src/math/Plane.js +2 -2
- package/src/math/Quaternion.js +12 -3
- package/src/math/Spherical.js +1 -1
- package/src/math/SphericalHarmonics3.js +2 -2
- package/src/math/Vector2.js +2 -2
- package/src/math/Vector3.js +12 -3
- package/src/math/Vector4.js +2 -2
- package/src/math/interpolants/DiscreteInterpolant.js +1 -1
- package/src/objects/Bone.js +2 -2
- package/src/objects/Group.js +2 -2
- package/src/objects/InstancedMesh.js +4 -4
- package/src/objects/Line.js +76 -107
- package/src/objects/LineLoop.js +2 -2
- package/src/objects/LineSegments.js +15 -23
- package/src/objects/Mesh.js +82 -104
- package/src/objects/Points.js +32 -54
- package/src/objects/SkinnedMesh.js +5 -8
- package/src/objects/Sprite.js +4 -4
- package/src/renderers/WebGL3DRenderTarget.js +22 -0
- package/src/renderers/WebGLArrayRenderTarget.js +22 -0
- package/src/renderers/WebGLCubeRenderTarget.js +7 -16
- package/src/renderers/WebGLMultipleRenderTargets.js +8 -5
- package/src/renderers/WebGLRenderTarget.js +19 -18
- package/src/renderers/WebGLRenderer.js +112 -133
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +46 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +1 -0
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +12 -13
- package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -4
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +3 -19
- package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +107 -0
- package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -0
- package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -7
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +25 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -7
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +25 -2
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +43 -5
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +10 -3
- package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -0
- package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +7 -7
- package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +1 -9
- package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +16 -31
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +9 -8
- package/src/renderers/shaders/ShaderChunk.js +6 -0
- package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -2
- package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -3
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +1 -0
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +3 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +1 -0
- package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +2 -2
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +6 -0
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +1 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +10 -0
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +1 -0
- package/src/renderers/shaders/ShaderLib/points.glsl.js +1 -0
- package/src/renderers/shaders/ShaderLib.js +8 -2
- package/src/renderers/shaders/UniformsLib.js +2 -2
- package/src/renderers/webgl/WebGLAttributes.js +6 -6
- package/src/renderers/webgl/WebGLBackground.js +5 -2
- package/src/renderers/webgl/WebGLBindingStates.js +57 -29
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -4
- package/src/renderers/webgl/WebGLCubeUVMaps.js +29 -16
- package/src/renderers/webgl/WebGLGeometries.js +2 -2
- package/src/renderers/webgl/WebGLLights.js +0 -1
- package/src/renderers/webgl/WebGLMaterials.js +72 -187
- package/src/renderers/webgl/WebGLMorphtargets.js +59 -23
- package/src/renderers/webgl/WebGLProgram.js +56 -30
- package/src/renderers/webgl/WebGLPrograms.js +80 -130
- package/src/renderers/webgl/WebGLShaderCache.js +4 -3
- package/src/renderers/webgl/WebGLShadowMap.js +6 -8
- package/src/renderers/webgl/WebGLState.js +83 -2
- package/src/renderers/webgl/WebGLTextures.js +618 -375
- package/src/renderers/webgl/WebGLUniforms.js +79 -80
- package/src/renderers/webgl/WebGLUtils.js +97 -30
- package/src/renderers/webxr/WebXRManager.js +64 -47
- package/src/scenes/Fog.js +2 -2
- package/src/scenes/FogExp2.js +2 -2
- package/src/scenes/Scene.js +2 -2
- package/src/textures/CanvasTexture.js +2 -2
- package/src/textures/CompressedTexture.js +2 -2
- package/src/textures/CubeTexture.js +2 -2
- package/src/textures/{DataTexture3D.js → Data3DTexture.js} +4 -4
- package/src/textures/{DataTexture2DArray.js → DataArrayTexture.js} +4 -4
- package/src/textures/DataTexture.js +2 -5
- package/src/textures/DepthTexture.js +5 -5
- package/src/textures/FramebufferTexture.js +2 -2
- package/src/textures/Source.js +123 -0
- package/src/textures/Texture.js +29 -98
- package/src/textures/VideoTexture.js +2 -4
- package/src/utils.js +15 -1
- package/examples/js/WebGL.js +0 -90
- package/examples/js/csm/Frustum.js +0 -133
- package/examples/js/deprecated/Geometry.js +0 -1656
- package/examples/js/loaders/VRMLoader.js +0 -72
- package/examples/js/objects/ReflectorRTT.js +0 -16
- package/examples/js/postprocessing/SSRrPass.js +0 -494
- package/examples/js/shaders/SSRrShader.js +0 -336
- package/examples/js/utils/RoughnessMipmapper.js +0 -268
- package/examples/jsm/deprecated/Geometry.js +0 -1869
- package/examples/jsm/libs/opentype.module.min.js +0 -119
- package/examples/jsm/loaders/NodeMaterialLoader.js +0 -263
- package/examples/jsm/loaders/VRMLoader.js +0 -78
- package/examples/jsm/nodes/accessors/ColorsNode.js +0 -56
- package/examples/jsm/nodes/accessors/LightNode.js +0 -60
- package/examples/jsm/nodes/accessors/ResolutionNode.js +0 -64
- package/examples/jsm/nodes/accessors/ScreenUVNode.js +0 -64
- package/examples/jsm/nodes/core/NodeLib.js +0 -64
- package/examples/jsm/nodes/core/StructNode.js +0 -106
- package/examples/jsm/nodes/effects/BlurNode.js +0 -171
- package/examples/jsm/nodes/effects/ColorAdjustmentNode.js +0 -140
- package/examples/jsm/nodes/effects/LuminanceNode.js +0 -75
- package/examples/jsm/nodes/inputs/BoolNode.js +0 -51
- package/examples/jsm/nodes/inputs/ColorNode.js +0 -58
- package/examples/jsm/nodes/inputs/CubeTextureNode.js +0 -108
- package/examples/jsm/nodes/inputs/FloatNode.js +0 -51
- package/examples/jsm/nodes/inputs/IntNode.js +0 -51
- package/examples/jsm/nodes/inputs/Matrix3Node.js +0 -63
- package/examples/jsm/nodes/inputs/Matrix4Node.js +0 -63
- package/examples/jsm/nodes/inputs/PropertyNode.js +0 -47
- package/examples/jsm/nodes/inputs/RTTNode.js +0 -157
- package/examples/jsm/nodes/inputs/ReflectorNode.js +0 -90
- package/examples/jsm/nodes/inputs/ScreenNode.js +0 -28
- package/examples/jsm/nodes/inputs/TextureNode.js +0 -116
- package/examples/jsm/nodes/inputs/Vector2Node.js +0 -57
- package/examples/jsm/nodes/inputs/Vector3Node.js +0 -58
- package/examples/jsm/nodes/inputs/Vector4Node.js +0 -59
- package/examples/jsm/nodes/materials/BasicNodeMaterial.js +0 -26
- package/examples/jsm/nodes/materials/PhongNodeMaterial.js +0 -36
- package/examples/jsm/nodes/materials/StandardNodeMaterial.js +0 -40
- package/examples/jsm/nodes/materials/nodes/BasicNode.js +0 -154
- package/examples/jsm/nodes/materials/nodes/MeshStandardNode.js +0 -116
- package/examples/jsm/nodes/materials/nodes/PhongNode.js +0 -409
- package/examples/jsm/nodes/materials/nodes/RawNode.js +0 -62
- package/examples/jsm/nodes/materials/nodes/SpriteNode.js +0 -236
- package/examples/jsm/nodes/materials/nodes/StandardNode.js +0 -609
- package/examples/jsm/nodes/misc/BumpMapNode.js +0 -163
- package/examples/jsm/nodes/misc/NormalMapNode.js +0 -138
- package/examples/jsm/nodes/misc/TextureCubeNode.js +0 -86
- package/examples/jsm/nodes/misc/TextureCubeUVNode.js +0 -280
- package/examples/jsm/nodes/postprocessing/NodePass.js +0 -93
- package/examples/jsm/nodes/postprocessing/NodePostProcessing.js +0 -148
- package/examples/jsm/nodes/procedural/Fractal3DNode.js +0 -104
- package/examples/jsm/nodes/procedural/Noise2DNode.js +0 -149
- package/examples/jsm/nodes/procedural/Noise3DNode.js +0 -141
- package/examples/jsm/nodes/utils/BypassNode.js +0 -85
- package/examples/jsm/nodes/utils/ColorSpaceNode.js +0 -154
- package/examples/jsm/nodes/utils/MaxMIPLevelNode.js +0 -56
- package/examples/jsm/nodes/utils/RemapNode.js +0 -155
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -101
- package/examples/jsm/nodes/utils/SubSlotNode.js +0 -77
- package/examples/jsm/nodes/utils/SwitchNode.js +0 -103
- package/examples/jsm/nodes/utils/UVTransformNode.js +0 -66
- package/examples/jsm/nodes/utils/VelocityNode.js +0 -170
- package/examples/jsm/objects/ReflectorRTT.js +0 -15
- package/examples/jsm/postprocessing/SSRrPass.js +0 -579
- package/examples/jsm/renderers/nodes/Nodes.js +0 -164
- package/examples/jsm/renderers/nodes/ShaderNode.js +0 -346
- package/examples/jsm/renderers/nodes/accessors/CameraNode.js +0 -68
- package/examples/jsm/renderers/nodes/accessors/NormalNode.js +0 -63
- package/examples/jsm/renderers/nodes/accessors/PositionNode.js +0 -67
- package/examples/jsm/renderers/nodes/accessors/ReferenceNode.js +0 -91
- package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +0 -107
- package/examples/jsm/renderers/nodes/accessors/UVNode.js +0 -25
- package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +0 -23
- package/examples/jsm/renderers/nodes/core/AttributeNode.js +0 -54
- package/examples/jsm/renderers/nodes/core/ExpressionNode.js +0 -32
- package/examples/jsm/renderers/nodes/core/FunctionCallNode.js +0 -67
- package/examples/jsm/renderers/nodes/core/FunctionNode.js +0 -87
- package/examples/jsm/renderers/nodes/core/InputNode.js +0 -66
- package/examples/jsm/renderers/nodes/core/Node.js +0 -104
- package/examples/jsm/renderers/nodes/core/NodeBuilder.js +0 -633
- package/examples/jsm/renderers/nodes/core/NodeFrame.js +0 -59
- package/examples/jsm/renderers/nodes/core/NodeUniform.js +0 -28
- package/examples/jsm/renderers/nodes/core/TempNode.js +0 -43
- package/examples/jsm/renderers/nodes/core/VarNode.js +0 -51
- package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +0 -133
- package/examples/jsm/renderers/nodes/display/NormalMapNode.js +0 -87
- package/examples/jsm/renderers/nodes/functions/BSDFs.js +0 -122
- package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +0 -27
- package/examples/jsm/renderers/nodes/inputs/BufferNode.js +0 -25
- package/examples/jsm/renderers/nodes/inputs/ColorNode.js +0 -18
- package/examples/jsm/renderers/nodes/inputs/FloatNode.js +0 -17
- package/examples/jsm/renderers/nodes/inputs/IntNode.js +0 -17
- package/examples/jsm/renderers/nodes/inputs/Matrix3Node.js +0 -18
- package/examples/jsm/renderers/nodes/inputs/Matrix4Node.js +0 -18
- package/examples/jsm/renderers/nodes/inputs/TextureNode.js +0 -79
- package/examples/jsm/renderers/nodes/inputs/Vector2Node.js +0 -18
- package/examples/jsm/renderers/nodes/inputs/Vector3Node.js +0 -18
- package/examples/jsm/renderers/nodes/inputs/Vector4Node.js +0 -18
- package/examples/jsm/renderers/nodes/lights/LightContextNode.js +0 -59
- package/examples/jsm/renderers/nodes/lights/LightNode.js +0 -79
- package/examples/jsm/renderers/nodes/lights/LightsNode.js +0 -44
- package/examples/jsm/renderers/nodes/materials/Materials.js +0 -11
- package/examples/jsm/renderers/nodes/materials/MeshStandardNodeMaterial.js +0 -63
- package/examples/jsm/renderers/nodes/math/CondNode.js +0 -60
- package/examples/jsm/renderers/nodes/math/MathNode.js +0 -241
- package/examples/jsm/renderers/nodes/math/OperatorNode.js +0 -174
- package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +0 -36
- package/examples/jsm/renderers/nodes/utils/JoinNode.js +0 -42
- package/examples/jsm/renderers/nodes/utils/TimerNode.js +0 -47
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -20
- package/examples/jsm/shaders/SSRrShader.js +0 -307
- package/examples/jsm/utils/RoughnessMipmapper.js +0 -288
- package/src/renderers/WebGLMultisampleRenderTarget.js +0 -33
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
UnsignedByteType,
|
|
10
10
|
LinearEncoding,
|
|
11
11
|
NoToneMapping,
|
|
12
|
-
LinearMipmapLinearFilter
|
|
13
|
-
NearestFilter,
|
|
14
|
-
ClampToEdgeWrapping
|
|
12
|
+
LinearMipmapLinearFilter
|
|
15
13
|
} from '../constants.js';
|
|
14
|
+
import { floorPowerOfTwo } from '../math/MathUtils.js';
|
|
16
15
|
import { Frustum } from '../math/Frustum.js';
|
|
17
16
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
17
|
+
import { Vector2 } from '../math/Vector2.js';
|
|
18
18
|
import { Vector3 } from '../math/Vector3.js';
|
|
19
19
|
import { Vector4 } from '../math/Vector4.js';
|
|
20
20
|
import { WebGLAnimation } from './webgl/WebGLAnimation.js';
|
|
@@ -31,7 +31,6 @@ import { WebGLGeometries } from './webgl/WebGLGeometries.js';
|
|
|
31
31
|
import { WebGLIndexedBufferRenderer } from './webgl/WebGLIndexedBufferRenderer.js';
|
|
32
32
|
import { WebGLInfo } from './webgl/WebGLInfo.js';
|
|
33
33
|
import { WebGLMorphtargets } from './webgl/WebGLMorphtargets.js';
|
|
34
|
-
import { WebGLMultisampleRenderTarget } from './WebGLMultisampleRenderTarget.js';
|
|
35
34
|
import { WebGLObjects } from './webgl/WebGLObjects.js';
|
|
36
35
|
import { WebGLPrograms } from './webgl/WebGLPrograms.js';
|
|
37
36
|
import { WebGLProperties } from './webgl/WebGLProperties.js';
|
|
@@ -58,10 +57,11 @@ function createCanvasElement() {
|
|
|
58
57
|
|
|
59
58
|
function WebGLRenderer( parameters = {} ) {
|
|
60
59
|
|
|
60
|
+
this.isWebGLRenderer = true;
|
|
61
|
+
|
|
61
62
|
const _canvas = parameters.canvas !== undefined ? parameters.canvas : createCanvasElement(),
|
|
62
63
|
_context = parameters.context !== undefined ? parameters.context : null,
|
|
63
64
|
|
|
64
|
-
_alpha = parameters.alpha !== undefined ? parameters.alpha : false,
|
|
65
65
|
_depth = parameters.depth !== undefined ? parameters.depth : true,
|
|
66
66
|
_stencil = parameters.stencil !== undefined ? parameters.stencil : true,
|
|
67
67
|
_antialias = parameters.antialias !== undefined ? parameters.antialias : false,
|
|
@@ -70,6 +70,18 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
70
70
|
_powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default',
|
|
71
71
|
_failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false;
|
|
72
72
|
|
|
73
|
+
let _alpha;
|
|
74
|
+
|
|
75
|
+
if ( _context !== null ) {
|
|
76
|
+
|
|
77
|
+
_alpha = _context.getContextAttributes().alpha;
|
|
78
|
+
|
|
79
|
+
} else {
|
|
80
|
+
|
|
81
|
+
_alpha = parameters.alpha !== undefined ? parameters.alpha : false;
|
|
82
|
+
|
|
83
|
+
}
|
|
84
|
+
|
|
73
85
|
let currentRenderList = null;
|
|
74
86
|
let currentRenderState = null;
|
|
75
87
|
|
|
@@ -122,6 +134,28 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
122
134
|
this.toneMapping = NoToneMapping;
|
|
123
135
|
this.toneMappingExposure = 1.0;
|
|
124
136
|
|
|
137
|
+
//
|
|
138
|
+
|
|
139
|
+
Object.defineProperties( this, {
|
|
140
|
+
|
|
141
|
+
// @deprecated since r136, 0e21088102b4de7e0a0a33140620b7a3424b9e6d
|
|
142
|
+
|
|
143
|
+
gammaFactor: {
|
|
144
|
+
get: function () {
|
|
145
|
+
|
|
146
|
+
console.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );
|
|
147
|
+
return 2;
|
|
148
|
+
|
|
149
|
+
},
|
|
150
|
+
set: function () {
|
|
151
|
+
|
|
152
|
+
console.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );
|
|
153
|
+
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
} );
|
|
158
|
+
|
|
125
159
|
// internal properties
|
|
126
160
|
|
|
127
161
|
const _this = this;
|
|
@@ -154,10 +188,6 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
154
188
|
const _scissor = new Vector4( 0, 0, _width, _height );
|
|
155
189
|
let _scissorTest = false;
|
|
156
190
|
|
|
157
|
-
//
|
|
158
|
-
|
|
159
|
-
const _currentDrawBuffers = [];
|
|
160
|
-
|
|
161
191
|
// frustum
|
|
162
192
|
|
|
163
193
|
const _frustum = new Frustum();
|
|
@@ -175,6 +205,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
175
205
|
|
|
176
206
|
const _projScreenMatrix = new Matrix4();
|
|
177
207
|
|
|
208
|
+
const _vector2 = new Vector2();
|
|
178
209
|
const _vector3 = new Vector3();
|
|
179
210
|
|
|
180
211
|
const _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };
|
|
@@ -206,7 +237,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
206
237
|
try {
|
|
207
238
|
|
|
208
239
|
const contextAttributes = {
|
|
209
|
-
alpha:
|
|
240
|
+
alpha: true,
|
|
210
241
|
depth: _depth,
|
|
211
242
|
stencil: _stencil,
|
|
212
243
|
antialias: _antialias,
|
|
@@ -222,6 +253,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
222
253
|
// event listeners must be registered before WebGL context is created, see #12753
|
|
223
254
|
_canvas.addEventListener( 'webglcontextlost', onContextLost, false );
|
|
224
255
|
_canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );
|
|
256
|
+
_canvas.addEventListener( 'webglcontextcreationerror', onContextCreationError, false );
|
|
225
257
|
|
|
226
258
|
if ( _gl === null ) {
|
|
227
259
|
|
|
@@ -290,8 +322,6 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
290
322
|
|
|
291
323
|
state = new WebGLState( _gl, extensions, capabilities );
|
|
292
324
|
|
|
293
|
-
_currentDrawBuffers[ 0 ] = _gl.BACK;
|
|
294
|
-
|
|
295
325
|
info = new WebGLInfo( _gl );
|
|
296
326
|
properties = new WebGLProperties();
|
|
297
327
|
textures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );
|
|
@@ -304,10 +334,10 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
304
334
|
morphtargets = new WebGLMorphtargets( _gl, capabilities, textures );
|
|
305
335
|
clipping = new WebGLClipping( properties );
|
|
306
336
|
programCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );
|
|
307
|
-
materials = new WebGLMaterials( properties );
|
|
337
|
+
materials = new WebGLMaterials( _this, properties );
|
|
308
338
|
renderLists = new WebGLRenderLists();
|
|
309
339
|
renderStates = new WebGLRenderStates( extensions, capabilities );
|
|
310
|
-
background = new WebGLBackground( _this, cubemaps, state, objects, _premultipliedAlpha );
|
|
340
|
+
background = new WebGLBackground( _this, cubemaps, state, objects, _alpha, _premultipliedAlpha );
|
|
311
341
|
shadowMap = new WebGLShadowMap( _this, objects, capabilities );
|
|
312
342
|
|
|
313
343
|
bufferRenderer = new WebGLBufferRenderer( _gl, extensions, info, capabilities );
|
|
@@ -527,13 +557,13 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
527
557
|
|
|
528
558
|
};
|
|
529
559
|
|
|
530
|
-
this.clear = function ( color, depth, stencil ) {
|
|
560
|
+
this.clear = function ( color = true, depth = true, stencil = true ) {
|
|
531
561
|
|
|
532
562
|
let bits = 0;
|
|
533
563
|
|
|
534
|
-
if ( color
|
|
535
|
-
if ( depth
|
|
536
|
-
if ( stencil
|
|
564
|
+
if ( color ) bits |= _gl.COLOR_BUFFER_BIT;
|
|
565
|
+
if ( depth ) bits |= _gl.DEPTH_BUFFER_BIT;
|
|
566
|
+
if ( stencil ) bits |= _gl.STENCIL_BUFFER_BIT;
|
|
537
567
|
|
|
538
568
|
_gl.clear( bits );
|
|
539
569
|
|
|
@@ -563,6 +593,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
563
593
|
|
|
564
594
|
_canvas.removeEventListener( 'webglcontextlost', onContextLost, false );
|
|
565
595
|
_canvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );
|
|
596
|
+
_canvas.removeEventListener( 'webglcontextcreationerror', onContextCreationError, false );
|
|
566
597
|
|
|
567
598
|
renderLists.dispose();
|
|
568
599
|
renderStates.dispose();
|
|
@@ -623,6 +654,12 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
623
654
|
|
|
624
655
|
}
|
|
625
656
|
|
|
657
|
+
function onContextCreationError( event ) {
|
|
658
|
+
|
|
659
|
+
console.error( 'THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage );
|
|
660
|
+
|
|
661
|
+
}
|
|
662
|
+
|
|
626
663
|
function onMaterialDispose( event ) {
|
|
627
664
|
|
|
628
665
|
const material = event.target;
|
|
@@ -885,7 +922,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
885
922
|
const animation = new WebGLAnimation();
|
|
886
923
|
animation.setAnimationLoop( onAnimationFrame );
|
|
887
924
|
|
|
888
|
-
if ( typeof
|
|
925
|
+
if ( typeof self !== 'undefined' ) animation.setContext( self );
|
|
889
926
|
|
|
890
927
|
this.setAnimationLoop = function ( callback ) {
|
|
891
928
|
|
|
@@ -1015,20 +1052,11 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1015
1052
|
|
|
1016
1053
|
if ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );
|
|
1017
1054
|
|
|
1018
|
-
// Ensure depth buffer writing is enabled so it can be cleared on next render
|
|
1019
|
-
|
|
1020
|
-
state.buffers.depth.setTest( true );
|
|
1021
|
-
state.buffers.depth.setMask( true );
|
|
1022
|
-
state.buffers.color.setMask( true );
|
|
1023
|
-
|
|
1024
|
-
state.setPolygonOffset( false );
|
|
1025
|
-
|
|
1026
1055
|
if ( xr.enabled && xr.submitFrame ) {
|
|
1027
1056
|
|
|
1028
1057
|
xr.submitFrame();
|
|
1029
1058
|
|
|
1030
1059
|
}
|
|
1031
|
-
|
|
1032
1060
|
// _gl.finish();
|
|
1033
1061
|
|
|
1034
1062
|
bindingStates.resetDefaultState();
|
|
@@ -1191,27 +1219,45 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1191
1219
|
if ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );
|
|
1192
1220
|
if ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );
|
|
1193
1221
|
|
|
1222
|
+
// Ensure depth buffer writing is enabled so it can be cleared on next render
|
|
1223
|
+
|
|
1224
|
+
state.buffers.depth.setTest( true );
|
|
1225
|
+
state.buffers.depth.setMask( true );
|
|
1226
|
+
state.buffers.color.setMask( true );
|
|
1227
|
+
|
|
1228
|
+
state.setPolygonOffset( false );
|
|
1229
|
+
|
|
1194
1230
|
}
|
|
1195
1231
|
|
|
1196
1232
|
function renderTransmissionPass( opaqueObjects, scene, camera ) {
|
|
1197
1233
|
|
|
1198
|
-
|
|
1234
|
+
const isWebGL2 = capabilities.isWebGL2;
|
|
1199
1235
|
|
|
1200
|
-
|
|
1201
|
-
const renderTargetType = needsAntialias ? WebGLMultisampleRenderTarget : WebGLRenderTarget;
|
|
1236
|
+
if ( _transmissionRenderTarget === null ) {
|
|
1202
1237
|
|
|
1203
|
-
_transmissionRenderTarget = new
|
|
1238
|
+
_transmissionRenderTarget = new WebGLRenderTarget( 1, 1, {
|
|
1204
1239
|
generateMipmaps: true,
|
|
1205
|
-
type:
|
|
1240
|
+
type: extensions.has( 'EXT_color_buffer_half_float' ) ? HalfFloatType : UnsignedByteType,
|
|
1206
1241
|
minFilter: LinearMipmapLinearFilter,
|
|
1207
|
-
|
|
1208
|
-
wrapS: ClampToEdgeWrapping,
|
|
1209
|
-
wrapT: ClampToEdgeWrapping,
|
|
1210
|
-
useRenderToTexture: extensions.has( 'WEBGL_multisampled_render_to_texture' )
|
|
1242
|
+
samples: ( isWebGL2 && _antialias === true ) ? 4 : 0
|
|
1211
1243
|
} );
|
|
1212
1244
|
|
|
1213
1245
|
}
|
|
1214
1246
|
|
|
1247
|
+
_this.getDrawingBufferSize( _vector2 );
|
|
1248
|
+
|
|
1249
|
+
if ( isWebGL2 ) {
|
|
1250
|
+
|
|
1251
|
+
_transmissionRenderTarget.setSize( _vector2.x, _vector2.y );
|
|
1252
|
+
|
|
1253
|
+
} else {
|
|
1254
|
+
|
|
1255
|
+
_transmissionRenderTarget.setSize( floorPowerOfTwo( _vector2.x ), floorPowerOfTwo( _vector2.y ) );
|
|
1256
|
+
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
//
|
|
1260
|
+
|
|
1215
1261
|
const currentRenderTarget = _this.getRenderTarget();
|
|
1216
1262
|
_this.setRenderTarget( _transmissionRenderTarget );
|
|
1217
1263
|
_this.clear();
|
|
@@ -1409,6 +1455,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1409
1455
|
materialProperties.skinning = parameters.skinning;
|
|
1410
1456
|
materialProperties.morphTargets = parameters.morphTargets;
|
|
1411
1457
|
materialProperties.morphNormals = parameters.morphNormals;
|
|
1458
|
+
materialProperties.morphColors = parameters.morphColors;
|
|
1412
1459
|
materialProperties.morphTargetsCount = parameters.morphTargetsCount;
|
|
1413
1460
|
materialProperties.numClippingPlanes = parameters.numClippingPlanes;
|
|
1414
1461
|
materialProperties.numIntersection = parameters.numClipIntersection;
|
|
@@ -1426,15 +1473,18 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1426
1473
|
|
|
1427
1474
|
const fog = scene.fog;
|
|
1428
1475
|
const environment = material.isMeshStandardMaterial ? scene.environment : null;
|
|
1429
|
-
const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : _currentRenderTarget.texture.encoding;
|
|
1476
|
+
const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding );
|
|
1430
1477
|
const envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );
|
|
1431
1478
|
const vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;
|
|
1432
1479
|
const vertexTangents = !! material.normalMap && !! geometry.attributes.tangent;
|
|
1433
1480
|
const morphTargets = !! geometry.morphAttributes.position;
|
|
1434
1481
|
const morphNormals = !! geometry.morphAttributes.normal;
|
|
1435
|
-
const
|
|
1482
|
+
const morphColors = !! geometry.morphAttributes.color;
|
|
1436
1483
|
const toneMapping = material.toneMapped ? _this.toneMapping : NoToneMapping;
|
|
1437
1484
|
|
|
1485
|
+
const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;
|
|
1486
|
+
const morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;
|
|
1487
|
+
|
|
1438
1488
|
const materialProperties = properties.get( material );
|
|
1439
1489
|
const lights = currentRenderState.state.lights;
|
|
1440
1490
|
|
|
@@ -1489,7 +1539,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1489
1539
|
|
|
1490
1540
|
needsProgramChange = true;
|
|
1491
1541
|
|
|
1492
|
-
} else if ( material.fog && materialProperties.fog !== fog ) {
|
|
1542
|
+
} else if ( material.fog === true && materialProperties.fog !== fog ) {
|
|
1493
1543
|
|
|
1494
1544
|
needsProgramChange = true;
|
|
1495
1545
|
|
|
@@ -1515,6 +1565,10 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1515
1565
|
|
|
1516
1566
|
needsProgramChange = true;
|
|
1517
1567
|
|
|
1568
|
+
} else if ( materialProperties.morphColors !== morphColors ) {
|
|
1569
|
+
|
|
1570
|
+
needsProgramChange = true;
|
|
1571
|
+
|
|
1518
1572
|
} else if ( materialProperties.toneMapping !== toneMapping ) {
|
|
1519
1573
|
|
|
1520
1574
|
needsProgramChange = true;
|
|
@@ -1657,7 +1711,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1657
1711
|
|
|
1658
1712
|
} else {
|
|
1659
1713
|
|
|
1660
|
-
|
|
1714
|
+
console.warn( 'THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required.' );
|
|
1661
1715
|
|
|
1662
1716
|
}
|
|
1663
1717
|
|
|
@@ -1665,7 +1719,9 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1665
1719
|
|
|
1666
1720
|
}
|
|
1667
1721
|
|
|
1668
|
-
|
|
1722
|
+
const morphAttributes = geometry.morphAttributes;
|
|
1723
|
+
|
|
1724
|
+
if ( morphAttributes.position !== undefined || morphAttributes.normal !== undefined || ( morphAttributes.color !== undefined && capabilities.isWebGL2 === true ) ) {
|
|
1669
1725
|
|
|
1670
1726
|
morphtargets.update( object, geometry, material, program );
|
|
1671
1727
|
|
|
@@ -1700,7 +1756,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1700
1756
|
|
|
1701
1757
|
// refresh uniforms common to several materials
|
|
1702
1758
|
|
|
1703
|
-
if ( fog && material.fog ) {
|
|
1759
|
+
if ( fog && material.fog === true ) {
|
|
1704
1760
|
|
|
1705
1761
|
materials.refreshFogUniforms( m_uniforms, fog );
|
|
1706
1762
|
|
|
@@ -1821,11 +1877,10 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1821
1877
|
|
|
1822
1878
|
// The multisample_render_to_texture extension doesn't work properly if there
|
|
1823
1879
|
// are midframe flushes and an external depth buffer. Disable use of the extension.
|
|
1824
|
-
if (
|
|
1880
|
+
if ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true ) {
|
|
1825
1881
|
|
|
1826
|
-
console.warn( '
|
|
1827
|
-
|
|
1828
|
-
renderTarget.useRenderbuffer = true;
|
|
1882
|
+
console.warn( 'THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided' );
|
|
1883
|
+
renderTargetProperties.__useRenderToTexture = false;
|
|
1829
1884
|
|
|
1830
1885
|
}
|
|
1831
1886
|
|
|
@@ -1848,6 +1903,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1848
1903
|
_currentRenderTarget = renderTarget;
|
|
1849
1904
|
_currentActiveCubeFace = activeCubeFace;
|
|
1850
1905
|
_currentActiveMipmapLevel = activeMipmapLevel;
|
|
1906
|
+
|
|
1851
1907
|
let useDefaultFramebuffer = true;
|
|
1852
1908
|
|
|
1853
1909
|
if ( renderTarget ) {
|
|
@@ -1881,7 +1937,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1881
1937
|
|
|
1882
1938
|
const texture = renderTarget.texture;
|
|
1883
1939
|
|
|
1884
|
-
if ( texture.
|
|
1940
|
+
if ( texture.isData3DTexture || texture.isDataArrayTexture ) {
|
|
1885
1941
|
|
|
1886
1942
|
isRenderTarget3D = true;
|
|
1887
1943
|
|
|
@@ -1894,7 +1950,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1894
1950
|
framebuffer = __webglFramebuffer[ activeCubeFace ];
|
|
1895
1951
|
isCube = true;
|
|
1896
1952
|
|
|
1897
|
-
} else if ( renderTarget.
|
|
1953
|
+
} else if ( ( capabilities.isWebGL2 && renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {
|
|
1898
1954
|
|
|
1899
1955
|
framebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;
|
|
1900
1956
|
|
|
@@ -1920,67 +1976,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
1920
1976
|
|
|
1921
1977
|
if ( framebufferBound && capabilities.drawBuffers && useDefaultFramebuffer ) {
|
|
1922
1978
|
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
if ( renderTarget ) {
|
|
1926
|
-
|
|
1927
|
-
if ( renderTarget.isWebGLMultipleRenderTargets ) {
|
|
1928
|
-
|
|
1929
|
-
const textures = renderTarget.texture;
|
|
1930
|
-
|
|
1931
|
-
if ( _currentDrawBuffers.length !== textures.length || _currentDrawBuffers[ 0 ] !== _gl.COLOR_ATTACHMENT0 ) {
|
|
1932
|
-
|
|
1933
|
-
for ( let i = 0, il = textures.length; i < il; i ++ ) {
|
|
1934
|
-
|
|
1935
|
-
_currentDrawBuffers[ i ] = _gl.COLOR_ATTACHMENT0 + i;
|
|
1936
|
-
|
|
1937
|
-
}
|
|
1938
|
-
|
|
1939
|
-
_currentDrawBuffers.length = textures.length;
|
|
1940
|
-
|
|
1941
|
-
needsUpdate = true;
|
|
1942
|
-
|
|
1943
|
-
}
|
|
1944
|
-
|
|
1945
|
-
} else {
|
|
1946
|
-
|
|
1947
|
-
if ( _currentDrawBuffers.length !== 1 || _currentDrawBuffers[ 0 ] !== _gl.COLOR_ATTACHMENT0 ) {
|
|
1948
|
-
|
|
1949
|
-
_currentDrawBuffers[ 0 ] = _gl.COLOR_ATTACHMENT0;
|
|
1950
|
-
_currentDrawBuffers.length = 1;
|
|
1951
|
-
|
|
1952
|
-
needsUpdate = true;
|
|
1953
|
-
|
|
1954
|
-
}
|
|
1955
|
-
|
|
1956
|
-
}
|
|
1957
|
-
|
|
1958
|
-
} else {
|
|
1959
|
-
|
|
1960
|
-
if ( _currentDrawBuffers.length !== 1 || _currentDrawBuffers[ 0 ] !== _gl.BACK ) {
|
|
1961
|
-
|
|
1962
|
-
_currentDrawBuffers[ 0 ] = _gl.BACK;
|
|
1963
|
-
_currentDrawBuffers.length = 1;
|
|
1964
|
-
|
|
1965
|
-
needsUpdate = true;
|
|
1966
|
-
|
|
1967
|
-
}
|
|
1968
|
-
|
|
1969
|
-
}
|
|
1970
|
-
|
|
1971
|
-
if ( needsUpdate ) {
|
|
1972
|
-
|
|
1973
|
-
if ( capabilities.isWebGL2 ) {
|
|
1974
|
-
|
|
1975
|
-
_gl.drawBuffers( _currentDrawBuffers );
|
|
1976
|
-
|
|
1977
|
-
} else {
|
|
1978
|
-
|
|
1979
|
-
extensions.get( 'WEBGL_draw_buffers' ).drawBuffersWEBGL( _currentDrawBuffers );
|
|
1980
|
-
|
|
1981
|
-
}
|
|
1982
|
-
|
|
1983
|
-
}
|
|
1979
|
+
state.drawBuffers( renderTarget, framebuffer );
|
|
1984
1980
|
|
|
1985
1981
|
}
|
|
1986
1982
|
|
|
@@ -2050,19 +2046,11 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
2050
2046
|
|
|
2051
2047
|
}
|
|
2052
2048
|
|
|
2053
|
-
if
|
|
2054
|
-
|
|
2055
|
-
// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)
|
|
2056
|
-
|
|
2057
|
-
if ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {
|
|
2058
|
-
|
|
2059
|
-
_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );
|
|
2060
|
-
|
|
2061
|
-
}
|
|
2049
|
+
// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)
|
|
2062
2050
|
|
|
2063
|
-
|
|
2051
|
+
if ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {
|
|
2064
2052
|
|
|
2065
|
-
|
|
2053
|
+
_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );
|
|
2066
2054
|
|
|
2067
2055
|
}
|
|
2068
2056
|
|
|
@@ -2081,13 +2069,6 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
2081
2069
|
|
|
2082
2070
|
this.copyFramebufferToTexture = function ( position, texture, level = 0 ) {
|
|
2083
2071
|
|
|
2084
|
-
if ( texture.isFramebufferTexture !== true ) {
|
|
2085
|
-
|
|
2086
|
-
console.error( 'THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.' );
|
|
2087
|
-
return;
|
|
2088
|
-
|
|
2089
|
-
}
|
|
2090
|
-
|
|
2091
2072
|
const levelScale = Math.pow( 2, - level );
|
|
2092
2073
|
const width = Math.floor( texture.image.width * levelScale );
|
|
2093
2074
|
const height = Math.floor( texture.image.height * levelScale );
|
|
@@ -2156,12 +2137,12 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
2156
2137
|
const glType = utils.convert( dstTexture.type );
|
|
2157
2138
|
let glTarget;
|
|
2158
2139
|
|
|
2159
|
-
if ( dstTexture.
|
|
2140
|
+
if ( dstTexture.isData3DTexture ) {
|
|
2160
2141
|
|
|
2161
2142
|
textures.setTexture3D( dstTexture, 0 );
|
|
2162
2143
|
glTarget = _gl.TEXTURE_3D;
|
|
2163
2144
|
|
|
2164
|
-
} else if ( dstTexture.
|
|
2145
|
+
} else if ( dstTexture.isDataArrayTexture ) {
|
|
2165
2146
|
|
|
2166
2147
|
textures.setTexture2DArray( dstTexture, 0 );
|
|
2167
2148
|
glTarget = _gl.TEXTURE_2D_ARRAY;
|
|
@@ -2191,7 +2172,7 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
2191
2172
|
_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, sourceBox.min.y );
|
|
2192
2173
|
_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, sourceBox.min.z );
|
|
2193
2174
|
|
|
2194
|
-
if ( srcTexture.isDataTexture || srcTexture.
|
|
2175
|
+
if ( srcTexture.isDataTexture || srcTexture.isData3DTexture ) {
|
|
2195
2176
|
|
|
2196
2177
|
_gl.texSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image.data );
|
|
2197
2178
|
|
|
@@ -2250,6 +2231,4 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
2250
2231
|
|
|
2251
2232
|
}
|
|
2252
2233
|
|
|
2253
|
-
WebGLRenderer.prototype.isWebGLRenderer = true;
|
|
2254
|
-
|
|
2255
2234
|
export { WebGLRenderer };
|
|
@@ -19,6 +19,27 @@ vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
|
|
|
19
19
|
|
|
20
20
|
} // validated
|
|
21
21
|
|
|
22
|
+
float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
|
|
23
|
+
|
|
24
|
+
// Original approximation by Christophe Schlick '94
|
|
25
|
+
// float fresnel = pow( 1.0 - dotVH, 5.0 );
|
|
26
|
+
|
|
27
|
+
// Optimized variant (presented by Epic at SIGGRAPH '13)
|
|
28
|
+
// https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf
|
|
29
|
+
float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
|
|
30
|
+
|
|
31
|
+
return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
|
|
32
|
+
|
|
33
|
+
} // validated
|
|
34
|
+
|
|
35
|
+
vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
|
|
36
|
+
float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
|
|
37
|
+
float x2 = x * x;
|
|
38
|
+
float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
|
|
39
|
+
|
|
40
|
+
return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
|
|
41
|
+
}
|
|
42
|
+
|
|
22
43
|
// Moving Frostbite to Physically Based Rendering 3.0 - page 12, listing 2
|
|
23
44
|
// https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf
|
|
24
45
|
float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
|
|
@@ -67,6 +88,31 @@ vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 norm
|
|
|
67
88
|
|
|
68
89
|
}
|
|
69
90
|
|
|
91
|
+
#ifdef USE_IRIDESCENCE
|
|
92
|
+
|
|
93
|
+
vec3 BRDF_GGX_Iridescence( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float iridescence, const in vec3 iridescenceFresnel, const in float roughness ) {
|
|
94
|
+
|
|
95
|
+
float alpha = pow2( roughness ); // UE4's roughness
|
|
96
|
+
|
|
97
|
+
vec3 halfDir = normalize( lightDir + viewDir );
|
|
98
|
+
|
|
99
|
+
float dotNL = saturate( dot( normal, lightDir ) );
|
|
100
|
+
float dotNV = saturate( dot( normal, viewDir ) );
|
|
101
|
+
float dotNH = saturate( dot( normal, halfDir ) );
|
|
102
|
+
float dotVH = saturate( dot( viewDir, halfDir ) );
|
|
103
|
+
|
|
104
|
+
vec3 F = mix(F_Schlick( f0, f90, dotVH ), iridescenceFresnel, iridescence);
|
|
105
|
+
|
|
106
|
+
float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
|
|
107
|
+
|
|
108
|
+
float D = D_GGX( alpha, dotNH );
|
|
109
|
+
|
|
110
|
+
return F * ( V * D );
|
|
111
|
+
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
#endif
|
|
115
|
+
|
|
70
116
|
// Rect Area Light
|
|
71
117
|
|
|
72
118
|
// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines
|
|
@@ -13,6 +13,7 @@ export default /* glsl */`
|
|
|
13
13
|
#define whiteComplement( a ) ( 1.0 - saturate( a ) )
|
|
14
14
|
|
|
15
15
|
float pow2( const in float x ) { return x*x; }
|
|
16
|
+
vec3 pow2( const in vec3 x ) { return x*x; }
|
|
16
17
|
float pow3( const in float x ) { return x*x*x; }
|
|
17
18
|
float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
|
|
18
19
|
float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
export default /* glsl */`
|
|
2
2
|
#ifdef ENVMAP_TYPE_CUBE_UV
|
|
3
3
|
|
|
4
|
-
#define cubeUV_maxMipLevel 8.0
|
|
5
4
|
#define cubeUV_minMipLevel 4.0
|
|
6
|
-
#define cubeUV_maxTileSize 256.0
|
|
7
5
|
#define cubeUV_minTileSize 16.0
|
|
8
6
|
|
|
9
7
|
// These shader functions convert between the UV coordinates of a single face of
|
|
@@ -87,9 +85,7 @@ export default /* glsl */`
|
|
|
87
85
|
|
|
88
86
|
float faceSize = exp2( mipInt );
|
|
89
87
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
vec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5;
|
|
88
|
+
vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
|
|
93
89
|
|
|
94
90
|
if ( face > 2.0 ) {
|
|
95
91
|
|
|
@@ -101,19 +97,22 @@ export default /* glsl */`
|
|
|
101
97
|
|
|
102
98
|
uv.x += face * faceSize;
|
|
103
99
|
|
|
104
|
-
|
|
100
|
+
uv.x += filterInt * 3.0 * cubeUV_minTileSize;
|
|
105
101
|
|
|
106
|
-
|
|
102
|
+
uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
|
|
107
103
|
|
|
108
|
-
|
|
104
|
+
uv.x *= CUBEUV_TEXEL_WIDTH;
|
|
105
|
+
uv.y *= CUBEUV_TEXEL_HEIGHT;
|
|
106
|
+
|
|
107
|
+
#ifdef texture2DGradEXT
|
|
109
108
|
|
|
110
|
-
|
|
109
|
+
return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; // disable anisotropic filtering
|
|
111
110
|
|
|
112
|
-
|
|
111
|
+
#else
|
|
113
112
|
|
|
114
|
-
|
|
113
|
+
return texture2D( envMap, uv ).rgb;
|
|
115
114
|
|
|
116
|
-
|
|
115
|
+
#endif
|
|
117
116
|
|
|
118
117
|
}
|
|
119
118
|
|
|
@@ -166,7 +165,7 @@ export default /* glsl */`
|
|
|
166
165
|
|
|
167
166
|
vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
|
|
168
167
|
|
|
169
|
-
float mip = clamp( roughnessToMip( roughness ), m0,
|
|
168
|
+
float mip = clamp( roughnessToMip( roughness ), m0, CUBEUV_MAX_MIP );
|
|
170
169
|
|
|
171
170
|
float mipF = fract( mip );
|
|
172
171
|
|
|
@@ -9,7 +9,7 @@ export default /* glsl */`
|
|
|
9
9
|
//Shift the individual colors differently, thus making it even harder to see the dithering pattern
|
|
10
10
|
vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
|
|
11
11
|
|
|
12
|
-
//modify shift
|
|
12
|
+
//modify shift according to grid position.
|
|
13
13
|
dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
|
|
14
14
|
|
|
15
15
|
//shift the color by dither_shift
|
|
@@ -4,10 +4,6 @@ vec4 LinearToLinear( in vec4 value ) {
|
|
|
4
4
|
return value;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
vec4 sRGBToLinear( in vec4 value ) {
|
|
8
|
-
return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );
|
|
9
|
-
}
|
|
10
|
-
|
|
11
7
|
vec4 LinearTosRGB( in vec4 value ) {
|
|
12
8
|
return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
|
|
13
9
|
}
|
|
@@ -38,8 +38,6 @@ export default /* glsl */`
|
|
|
38
38
|
|
|
39
39
|
vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
|
|
40
40
|
|
|
41
|
-
envColor = envMapTexelToLinear( envColor );
|
|
42
|
-
|
|
43
41
|
#elif defined( ENVMAP_TYPE_CUBE_UV )
|
|
44
42
|
|
|
45
43
|
vec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );
|