super-three 0.167.0 → 0.168.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/build/three.cjs +165 -44
- package/build/three.module.js +165 -45
- package/build/three.module.min.js +1 -1
- package/build/three.webgpu.js +23600 -21931
- package/build/three.webgpu.min.js +1 -1
- package/examples/jsm/Addons.js +3 -1
- package/examples/jsm/animation/AnimationClipCreator.js +1 -1
- package/examples/jsm/capabilities/WebGL.js +27 -21
- package/examples/jsm/controls/ArcballControls.js +174 -158
- package/examples/jsm/controls/DragControls.js +260 -132
- package/examples/jsm/controls/FirstPersonControls.js +175 -163
- package/examples/jsm/controls/FlyControls.js +194 -188
- package/examples/jsm/controls/OrbitControls.js +777 -786
- package/examples/jsm/controls/PointerLockControls.js +24 -15
- package/examples/jsm/controls/TrackballControls.js +453 -452
- package/examples/jsm/effects/AnaglyphEffect.js +6 -13
- package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
- package/examples/jsm/effects/StereoEffect.js +6 -1
- package/examples/jsm/environments/RoomEnvironment.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +6 -1
- package/examples/jsm/exporters/USDZExporter.js +29 -8
- package/examples/jsm/helpers/LightProbeHelper.js +42 -43
- package/examples/jsm/loaders/KTX2Loader.js +19 -7
- package/examples/jsm/loaders/MaterialXLoader.js +11 -4
- package/examples/jsm/loaders/PCDLoader.js +9 -9
- package/examples/jsm/objects/SkyMesh.js +188 -0
- package/examples/jsm/objects/Water2Mesh.js +159 -0
- package/examples/jsm/objects/WaterMesh.js +102 -0
- package/examples/jsm/physics/RapierPhysics.js +20 -0
- package/examples/jsm/postprocessing/OutlinePass.js +31 -46
- package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -2
- package/examples/jsm/shaders/OutputShader.js +1 -1
- package/examples/jsm/transpiler/TSLEncoder.js +8 -8
- package/examples/jsm/utils/TextureUtils.js +1 -1
- package/package.json +2 -1
- package/src/Three.WebGPU.js +6 -0
- package/src/Three.js +1 -0
- package/src/constants.js +1 -1
- package/src/extras/Controls.js +32 -0
- package/src/loaders/ObjectLoader.js +3 -3
- package/src/{nodes/loaders → loaders/nodes}/NodeLoader.js +4 -4
- package/src/{nodes/loaders → loaders/nodes}/NodeMaterialLoader.js +1 -2
- package/src/materials/Material.js +4 -7
- package/src/{nodes/materials → materials/nodes}/InstancedPointsNodeMaterial.js +33 -24
- package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +34 -37
- package/src/{nodes/materials → materials/nodes}/LineBasicNodeMaterial.js +3 -4
- package/src/{nodes/materials → materials/nodes}/LineDashedNodeMaterial.js +7 -9
- package/src/{nodes/materials → materials/nodes}/MeshBasicNodeMaterial.js +11 -11
- package/src/{nodes/materials → materials/nodes}/MeshLambertNodeMaterial.js +5 -5
- package/src/{nodes/materials → materials/nodes}/MeshMatcapNodeMaterial.js +8 -8
- package/src/materials/nodes/MeshNormalNodeMaterial.js +40 -0
- package/src/{nodes/materials → materials/nodes}/MeshPhongNodeMaterial.js +9 -8
- package/src/{nodes/materials → materials/nodes}/MeshPhysicalNodeMaterial.js +18 -17
- package/src/{nodes/materials → materials/nodes}/MeshSSSNodeMaterial.js +6 -6
- package/src/{nodes/materials → materials/nodes}/MeshStandardNodeMaterial.js +17 -11
- package/src/{nodes/materials → materials/nodes}/MeshToonNodeMaterial.js +4 -4
- package/src/{nodes/materials → materials/nodes}/NodeMaterial.js +67 -86
- package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +1 -1
- package/src/{nodes/materials → materials/nodes}/PointsNodeMaterial.js +3 -4
- package/src/{nodes/materials → materials/nodes}/ShadowNodeMaterial.js +4 -4
- package/src/{nodes/materials → materials/nodes}/SpriteNodeMaterial.js +11 -11
- package/src/{nodes/materials → materials/nodes}/VolumeNodeMaterial.js +14 -16
- package/src/nodes/Nodes.js +103 -159
- package/src/nodes/TSL.js +176 -0
- package/src/nodes/accessors/AccessorsUtils.js +8 -8
- package/src/nodes/accessors/BatchNode.js +48 -20
- package/src/nodes/accessors/{BitangentNode.js → Bitangent.js} +9 -9
- package/src/nodes/accessors/BufferAttributeNode.js +5 -5
- package/src/nodes/accessors/BufferNode.js +4 -4
- package/src/nodes/accessors/{CameraNode.js → Camera.js} +10 -10
- package/src/nodes/accessors/ClippingNode.js +16 -14
- package/src/nodes/accessors/CubeTextureNode.js +5 -7
- package/src/nodes/accessors/InstanceNode.js +17 -13
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +4 -4
- package/src/nodes/accessors/MaterialNode.js +52 -55
- package/src/nodes/accessors/MaterialProperties.js +3 -0
- package/src/nodes/accessors/MaterialReferenceNode.js +6 -4
- package/src/nodes/accessors/ModelNode.js +11 -11
- package/src/nodes/accessors/ModelViewProjectionNode.js +6 -7
- package/src/nodes/accessors/MorphNode.js +12 -12
- package/src/nodes/accessors/Normal.js +62 -0
- package/src/nodes/accessors/Object3DNode.js +10 -10
- package/src/nodes/accessors/PointUVNode.js +4 -4
- package/src/nodes/accessors/Position.js +10 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +143 -0
- package/src/nodes/accessors/ReferenceNode.js +13 -7
- package/src/nodes/accessors/ReflectVector.js +10 -0
- package/src/nodes/accessors/RendererReferenceNode.js +6 -6
- package/src/nodes/accessors/SceneNode.js +5 -6
- package/src/nodes/accessors/SkinningNode.js +84 -21
- package/src/nodes/accessors/StorageBufferNode.js +4 -5
- package/src/nodes/accessors/StorageTextureNode.js +5 -5
- package/src/nodes/accessors/Tangent.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +11 -11
- package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +3 -32
- package/src/nodes/accessors/TextureNode.js +16 -21
- package/src/nodes/accessors/TextureSizeNode.js +4 -6
- package/src/nodes/accessors/{UniformsNode.js → UniformArrayNode.js} +17 -8
- package/src/nodes/accessors/UserDataNode.js +4 -4
- package/src/nodes/accessors/VelocityNode.js +83 -0
- package/src/nodes/accessors/VertexColorNode.js +4 -4
- package/src/nodes/code/CodeNode.js +5 -5
- package/src/nodes/code/ExpressionNode.js +4 -4
- package/src/nodes/code/FunctionCallNode.js +5 -5
- package/src/nodes/code/FunctionNode.js +5 -23
- package/src/nodes/code/ScriptableNode.js +4 -6
- package/src/nodes/code/ScriptableValueNode.js +4 -6
- package/src/nodes/core/AssignNode.js +5 -5
- package/src/nodes/core/AttributeNode.js +7 -20
- package/src/nodes/core/BypassNode.js +5 -5
- package/src/nodes/core/CacheNode.js +5 -5
- package/src/nodes/core/ConstNode.js +2 -2
- package/src/nodes/core/ContextNode.js +17 -11
- package/src/nodes/core/IndexNode.js +12 -7
- package/src/nodes/core/InputNode.js +2 -2
- package/src/nodes/core/MRTNode.js +12 -6
- package/src/nodes/core/Node.js +39 -19
- package/src/nodes/core/NodeBuilder.js +46 -33
- package/src/nodes/core/NodeUtils.js +1 -0
- package/src/nodes/core/OutputStructNode.js +4 -4
- package/src/nodes/core/ParameterNode.js +4 -4
- package/src/nodes/core/PropertyNode.js +32 -32
- package/src/nodes/core/StackNode.js +26 -10
- package/src/nodes/core/StructTypeNode.js +2 -2
- package/src/nodes/core/TempNode.js +2 -2
- package/src/nodes/core/UniformGroupNode.js +8 -9
- package/src/nodes/core/UniformNode.js +4 -4
- package/src/nodes/core/VarNode.js +6 -6
- package/src/nodes/core/VaryingNode.js +5 -5
- package/src/nodes/display/AfterImageNode.js +9 -9
- package/src/nodes/display/AnaglyphPassNode.js +61 -0
- package/src/nodes/display/AnamorphicNode.js +11 -11
- package/src/nodes/display/BleachBypass.js +26 -0
- package/src/nodes/display/BlendMode.js +54 -0
- package/src/nodes/display/BloomNode.js +21 -19
- package/src/nodes/display/BumpMapNode.js +7 -12
- package/src/nodes/display/ColorAdjustment.js +46 -0
- package/src/nodes/display/ColorSpaceFunctions.js +38 -0
- package/src/nodes/display/ColorSpaceNode.js +40 -63
- package/src/nodes/display/DenoiseNode.js +20 -17
- package/src/nodes/display/DepthOfFieldNode.js +8 -6
- package/src/nodes/display/DotScreenNode.js +10 -22
- package/src/nodes/display/FXAANode.js +17 -15
- package/src/nodes/display/FilmNode.js +7 -6
- package/src/nodes/display/FrontFacingNode.js +5 -5
- package/src/nodes/display/GTAONode.js +19 -15
- package/src/nodes/display/GaussianBlurNode.js +11 -8
- package/src/nodes/display/Lut3DNode.js +6 -5
- package/src/nodes/display/MotionBlur.js +25 -0
- package/src/nodes/display/NormalMapNode.js +8 -10
- package/src/nodes/display/ParallaxBarrierPassNode.js +55 -0
- package/src/nodes/display/PassNode.js +84 -8
- package/src/nodes/display/PixelationPassNode.js +12 -7
- package/src/nodes/display/PosterizeNode.js +4 -6
- package/src/nodes/display/RGBShiftNode.js +8 -7
- package/src/nodes/display/RenderOutputNode.js +9 -9
- package/src/nodes/display/SSAAPassNode.js +284 -0
- package/src/nodes/display/Sepia.js +17 -0
- package/src/nodes/display/SobelOperatorNode.js +9 -7
- package/src/nodes/display/StereoCompositePassNode.js +107 -0
- package/src/nodes/display/StereoPassNode.js +80 -0
- package/src/nodes/display/ToneMappingFunctions.js +190 -0
- package/src/nodes/display/ToneMappingNode.js +12 -173
- package/src/nodes/display/TransitionNode.js +9 -8
- package/src/nodes/display/ViewportDepthNode.js +30 -29
- package/src/nodes/display/ViewportDepthTextureNode.js +6 -8
- package/src/nodes/display/ViewportNode.js +26 -25
- package/src/nodes/display/ViewportSharedTextureNode.js +6 -8
- package/src/nodes/display/ViewportTextureNode.js +7 -10
- package/src/nodes/fog/FogExp2Node.js +4 -6
- package/src/nodes/fog/FogNode.js +5 -7
- package/src/nodes/fog/FogRangeNode.js +4 -6
- package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
- package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
- package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +6 -6
- package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +1 -1
- package/src/nodes/functions/PhongLightingModel.js +5 -5
- package/src/nodes/functions/PhysicalLightingModel.js +32 -31
- package/src/nodes/functions/ShadowMaskModel.js +1 -1
- package/src/nodes/functions/ToonLightingModel.js +3 -3
- package/src/nodes/functions/material/getGeometryRoughness.js +4 -4
- package/src/nodes/functions/material/getRoughness.js +2 -2
- package/src/nodes/geometry/RangeNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +5 -5
- package/src/nodes/lighting/AONode.js +2 -2
- package/src/nodes/lighting/AmbientLightNode.js +2 -7
- package/src/nodes/lighting/AnalyticLightNode.js +34 -13
- package/src/nodes/lighting/BasicEnvironmentNode.js +4 -3
- package/src/nodes/lighting/BasicLightMapNode.js +3 -3
- package/src/nodes/lighting/DirectionalLightNode.js +2 -7
- package/src/nodes/lighting/EnvironmentNode.js +20 -19
- package/src/nodes/lighting/HemisphereLightNode.js +3 -7
- package/src/nodes/lighting/IESSpotLightNode.js +3 -8
- package/src/nodes/lighting/IrradianceNode.js +2 -2
- package/src/nodes/lighting/LightNode.js +5 -5
- package/src/nodes/lighting/LightProbeNode.js +76 -0
- package/src/nodes/lighting/LightUtils.js +3 -3
- package/src/nodes/lighting/LightingContextNode.js +15 -17
- package/src/nodes/lighting/LightingNode.js +2 -2
- package/src/nodes/lighting/LightsNode.js +94 -76
- package/src/nodes/lighting/PointLightNode.js +3 -8
- package/src/nodes/lighting/RectAreaLightNode.js +2 -6
- package/src/nodes/lighting/SpotLightNode.js +3 -8
- package/src/nodes/materialx/MaterialXNodes.js +2 -2
- package/src/nodes/materialx/lib/mx_hsv.js +36 -31
- package/src/nodes/materialx/lib/mx_noise.js +96 -96
- package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
- package/src/nodes/math/{CondNode.js → ConditionalNode.js} +18 -7
- package/src/nodes/math/Hash.js +13 -0
- package/src/nodes/math/MathNode.js +124 -124
- package/src/nodes/math/MathUtils.js +0 -7
- package/src/nodes/math/OperatorNode.js +94 -52
- package/src/nodes/math/TriNoise3D.js +19 -29
- package/src/nodes/pmrem/PMREMNode.js +58 -15
- package/src/nodes/pmrem/PMREMUtils.js +46 -46
- package/src/nodes/procedural/Checker.js +14 -0
- package/src/nodes/tsl/TSLBase.js +30 -0
- package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +105 -97
- package/src/nodes/utils/ArrayElementNode.js +2 -2
- package/src/nodes/utils/ConvertNode.js +2 -2
- package/src/nodes/utils/CubeMapNode.js +157 -0
- package/src/nodes/utils/Discard.js +8 -0
- package/src/nodes/utils/EquirectUVNode.js +5 -5
- package/src/nodes/utils/FlipNode.js +65 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +5 -5
- package/src/nodes/utils/JoinNode.js +2 -2
- package/src/nodes/utils/LoopNode.js +12 -6
- package/src/nodes/utils/MatcapUVNode.js +6 -6
- package/src/nodes/utils/MaxMipLevelNode.js +4 -4
- package/src/nodes/utils/OscNode.js +7 -7
- package/src/nodes/utils/Packing.js +4 -0
- package/src/nodes/utils/RTTNode.js +8 -8
- package/src/nodes/utils/ReflectorNode.js +8 -3
- package/src/nodes/utils/RemapNode.js +7 -7
- package/src/nodes/utils/RotateNode.js +4 -12
- package/src/nodes/utils/SetNode.js +2 -2
- package/src/nodes/utils/SplitNode.js +2 -2
- package/src/nodes/utils/SpriteSheetUVNode.js +5 -5
- package/src/nodes/utils/SpriteUtils.js +47 -0
- package/src/nodes/utils/StorageArrayElementNode.js +4 -6
- package/src/nodes/utils/TimerNode.js +5 -5
- package/src/nodes/utils/TriplanarTexturesNode.js +7 -9
- package/src/nodes/utils/UVUtils.js +19 -0
- package/src/nodes/utils/ViewportUtils.js +14 -0
- package/src/objects/BatchedMesh.js +2 -3
- package/src/renderers/WebGLRenderer.js +24 -0
- package/src/renderers/common/Backend.js +2 -2
- package/src/renderers/common/Background.js +3 -1
- package/src/renderers/common/BindGroup.js +3 -1
- package/src/renderers/common/Bindings.js +13 -15
- package/src/renderers/common/ClippingContext.js +14 -5
- package/src/renderers/common/CubeRenderTarget.js +9 -3
- package/src/renderers/common/PostProcessing.js +4 -1
- package/src/renderers/common/QuadMesh.js +2 -0
- package/src/renderers/common/RenderContext.js +24 -0
- package/src/renderers/common/RenderList.js +1 -1
- package/src/renderers/common/RenderObject.js +2 -2
- package/src/renderers/common/Renderer.js +75 -49
- package/src/renderers/common/SampledTexture.js +12 -3
- package/src/renderers/common/StandardRenderer.js +18 -0
- package/src/renderers/common/Textures.js +8 -12
- package/src/renderers/common/extras/PMREMGenerator.js +12 -13
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +118 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +2 -2
- package/src/renderers/common/nodes/Nodes.js +36 -9
- package/src/renderers/common/nodes/StandardNodeLibrary.js +105 -0
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
- package/src/renderers/webgl/WebGLProgram.js +1 -1
- package/src/renderers/webgl/WebGLProperties.js +7 -0
- package/src/renderers/webgl/WebGLTextures.js +61 -4
- package/src/renderers/webgl-fallback/WebGLBackend.js +88 -68
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +57 -9
- package/src/renderers/webgl-fallback/utils/WebGLState.js +21 -0
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +28 -21
- package/src/renderers/webgpu/WebGPUBackend.js +86 -68
- package/src/renderers/webgpu/WebGPURenderer.js +8 -8
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +99 -63
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +45 -21
- package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +6 -15
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +36 -21
- package/src/renderers/webgpu/utils/WebGPUUtils.js +18 -1
- package/src/renderers/webxr/WebXRManager.js +32 -25
- package/examples/jsm/loaders/LogLuvLoader.js +0 -606
- package/src/nodes/accessors/NormalNode.js +0 -14
- package/src/nodes/accessors/PositionNode.js +0 -10
- package/src/nodes/accessors/ReflectVectorNode.js +0 -10
- package/src/nodes/accessors/TangentNode.js +0 -23
- package/src/nodes/core/NodeKeywords.js +0 -80
- package/src/nodes/display/BlendModeNode.js +0 -128
- package/src/nodes/display/ColorAdjustmentNode.js +0 -104
- package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
- package/src/nodes/math/HashNode.js +0 -34
- package/src/nodes/procedural/CheckerNode.js +0 -42
- package/src/nodes/utils/DiscardNode.js +0 -28
- package/src/nodes/utils/PackingNode.js +0 -55
- package/src/nodes/utils/RotateUVNode.js +0 -35
- /package/src/{nodes/loaders → loaders/nodes}/NodeObjectLoader.js +0 -0
- /package/src/nodes/accessors/{UVNode.js → UV.js} +0 -0
package/build/three.cjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
-
const REVISION = '
|
|
8
|
+
const REVISION = '168';
|
|
9
9
|
|
|
10
10
|
const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
|
|
11
11
|
const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
|
|
@@ -9200,6 +9200,10 @@ class Material extends EventDispatcher {
|
|
|
9200
9200
|
|
|
9201
9201
|
}
|
|
9202
9202
|
|
|
9203
|
+
// onBeforeRender and onBeforeCompile only supported in WebGLRenderer
|
|
9204
|
+
|
|
9205
|
+
onBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}
|
|
9206
|
+
|
|
9203
9207
|
onBeforeCompile( /* shaderobject, renderer */ ) {}
|
|
9204
9208
|
|
|
9205
9209
|
customProgramCacheKey() {
|
|
@@ -9622,13 +9626,6 @@ class Material extends EventDispatcher {
|
|
|
9622
9626
|
|
|
9623
9627
|
}
|
|
9624
9628
|
|
|
9625
|
-
onBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {
|
|
9626
|
-
|
|
9627
|
-
console.warn( 'Material: onBeforeRender() has been removed.' ); // @deprecated, r166
|
|
9628
|
-
|
|
9629
|
-
}
|
|
9630
|
-
|
|
9631
|
-
|
|
9632
9629
|
}
|
|
9633
9630
|
|
|
9634
9631
|
class MeshBasicMaterial extends Material {
|
|
@@ -14024,7 +14021,7 @@ var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D spe
|
|
|
14024
14021
|
|
|
14025
14022
|
var tonemapping_fragment = "#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif";
|
|
14026
14023
|
|
|
14027
|
-
var tonemapping_pars_fragment = "#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3
|
|
14024
|
+
var tonemapping_pars_fragment = "#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tconst float StartCompression = 0.8 - 0.04;\n\tconst float Desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min( color.r, min( color.g, color.b ) );\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max( color.r, max( color.g, color.b ) );\n\tif ( peak < StartCompression ) return color;\n\tfloat d = 1. - StartCompression;\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n\treturn mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }";
|
|
14028
14025
|
|
|
14029
14026
|
var transmission_fragment = "#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif";
|
|
14030
14027
|
|
|
@@ -19466,7 +19463,7 @@ function getToneMappingFunction( functionName, toneMapping ) {
|
|
|
19466
19463
|
break;
|
|
19467
19464
|
|
|
19468
19465
|
case CineonToneMapping:
|
|
19469
|
-
toneMappingName = '
|
|
19466
|
+
toneMappingName = 'Cineon';
|
|
19470
19467
|
break;
|
|
19471
19468
|
|
|
19472
19469
|
case ACESFilmicToneMapping:
|
|
@@ -21265,6 +21262,12 @@ function WebGLProperties() {
|
|
|
21265
21262
|
|
|
21266
21263
|
let properties = new WeakMap();
|
|
21267
21264
|
|
|
21265
|
+
function has( object ) {
|
|
21266
|
+
|
|
21267
|
+
return properties.has( object );
|
|
21268
|
+
|
|
21269
|
+
}
|
|
21270
|
+
|
|
21268
21271
|
function get( object ) {
|
|
21269
21272
|
|
|
21270
21273
|
let map = properties.get( object );
|
|
@@ -21299,6 +21302,7 @@ function WebGLProperties() {
|
|
|
21299
21302
|
}
|
|
21300
21303
|
|
|
21301
21304
|
return {
|
|
21305
|
+
has: has,
|
|
21302
21306
|
get: get,
|
|
21303
21307
|
remove: remove,
|
|
21304
21308
|
update: update,
|
|
@@ -25907,6 +25911,37 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25907
25911
|
const renderTargetProperties = properties.get( renderTarget );
|
|
25908
25912
|
const isCube = ( renderTarget.isWebGLCubeRenderTarget === true );
|
|
25909
25913
|
|
|
25914
|
+
// if the bound depth texture has changed
|
|
25915
|
+
if ( renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture ) {
|
|
25916
|
+
|
|
25917
|
+
// fire the dispose event to get rid of stored state associated with the previously bound depth buffer
|
|
25918
|
+
const depthTexture = renderTarget.depthTexture;
|
|
25919
|
+
if ( renderTargetProperties.__depthDisposeCallback ) {
|
|
25920
|
+
|
|
25921
|
+
renderTargetProperties.__depthDisposeCallback();
|
|
25922
|
+
|
|
25923
|
+
}
|
|
25924
|
+
|
|
25925
|
+
// set up dispose listeners to track when the currently attached buffer is implicitly unbound
|
|
25926
|
+
if ( depthTexture ) {
|
|
25927
|
+
|
|
25928
|
+
const disposeEvent = () => {
|
|
25929
|
+
|
|
25930
|
+
delete renderTargetProperties.__boundDepthTexture;
|
|
25931
|
+
delete renderTargetProperties.__depthDisposeCallback;
|
|
25932
|
+
depthTexture.removeEventListener( 'dispose', disposeEvent );
|
|
25933
|
+
|
|
25934
|
+
};
|
|
25935
|
+
|
|
25936
|
+
depthTexture.addEventListener( 'dispose', disposeEvent );
|
|
25937
|
+
renderTargetProperties.__depthDisposeCallback = disposeEvent;
|
|
25938
|
+
|
|
25939
|
+
}
|
|
25940
|
+
|
|
25941
|
+
renderTargetProperties.__boundDepthTexture = depthTexture;
|
|
25942
|
+
|
|
25943
|
+
}
|
|
25944
|
+
|
|
25910
25945
|
if ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {
|
|
25911
25946
|
|
|
25912
25947
|
if ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );
|
|
@@ -25922,16 +25957,42 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25922
25957
|
for ( let i = 0; i < 6; i ++ ) {
|
|
25923
25958
|
|
|
25924
25959
|
state.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] );
|
|
25925
|
-
|
|
25926
|
-
|
|
25960
|
+
|
|
25961
|
+
if ( renderTargetProperties.__webglDepthbuffer[ i ] === undefined ) {
|
|
25962
|
+
|
|
25963
|
+
renderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();
|
|
25964
|
+
setupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );
|
|
25965
|
+
|
|
25966
|
+
} else {
|
|
25967
|
+
|
|
25968
|
+
// attach buffer if it's been created already
|
|
25969
|
+
const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;
|
|
25970
|
+
const renderbuffer = renderTargetProperties.__webglDepthbuffer[ i ];
|
|
25971
|
+
_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );
|
|
25972
|
+
_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );
|
|
25973
|
+
|
|
25974
|
+
}
|
|
25927
25975
|
|
|
25928
25976
|
}
|
|
25929
25977
|
|
|
25930
25978
|
} else {
|
|
25931
25979
|
|
|
25932
25980
|
state.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );
|
|
25933
|
-
|
|
25934
|
-
|
|
25981
|
+
|
|
25982
|
+
if ( renderTargetProperties.__webglDepthbuffer === undefined ) {
|
|
25983
|
+
|
|
25984
|
+
renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();
|
|
25985
|
+
setupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );
|
|
25986
|
+
|
|
25987
|
+
} else {
|
|
25988
|
+
|
|
25989
|
+
// attach buffer if it's been created already
|
|
25990
|
+
const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;
|
|
25991
|
+
const renderbuffer = renderTargetProperties.__webglDepthbuffer;
|
|
25992
|
+
_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );
|
|
25993
|
+
_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );
|
|
25994
|
+
|
|
25995
|
+
}
|
|
25935
25996
|
|
|
25936
25997
|
}
|
|
25937
25998
|
|
|
@@ -28245,18 +28306,31 @@ class WebXRManager extends EventDispatcher {
|
|
|
28245
28306
|
camera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );
|
|
28246
28307
|
camera.matrixWorldInverse.copy( camera.matrixWorld ).invert();
|
|
28247
28308
|
|
|
28248
|
-
//
|
|
28249
|
-
|
|
28250
|
-
|
|
28251
|
-
|
|
28252
|
-
|
|
28253
|
-
|
|
28254
|
-
|
|
28255
|
-
|
|
28256
|
-
|
|
28309
|
+
// Check if the projection uses an infinite far plane.
|
|
28310
|
+
if ( projL[ 10 ] === - 1.0 ) {
|
|
28311
|
+
|
|
28312
|
+
// Use the projection matrix from the left eye.
|
|
28313
|
+
// The camera offset is sufficient to include the view volumes
|
|
28314
|
+
// of both eyes (assuming symmetric projections).
|
|
28315
|
+
camera.projectionMatrix.copy( cameraL.projectionMatrix );
|
|
28316
|
+
camera.projectionMatrixInverse.copy( cameraL.projectionMatrixInverse );
|
|
28317
|
+
|
|
28318
|
+
} else {
|
|
28319
|
+
|
|
28320
|
+
// Find the union of the frustum values of the cameras and scale
|
|
28321
|
+
// the values so that the near plane's position does not change in world space,
|
|
28322
|
+
// although must now be relative to the new union camera.
|
|
28323
|
+
const near2 = near + zOffset;
|
|
28324
|
+
const far2 = far + zOffset;
|
|
28325
|
+
const left2 = left - xOffset;
|
|
28326
|
+
const right2 = right + ( ipd - xOffset );
|
|
28327
|
+
const top2 = topFov * far / far2 * near2;
|
|
28328
|
+
const bottom2 = bottomFov * far / far2 * near2;
|
|
28257
28329
|
|
|
28258
|
-
|
|
28259
|
-
|
|
28330
|
+
camera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );
|
|
28331
|
+
camera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();
|
|
28332
|
+
|
|
28333
|
+
}
|
|
28260
28334
|
|
|
28261
28335
|
}
|
|
28262
28336
|
|
|
@@ -28286,15 +28360,18 @@ class WebXRManager extends EventDispatcher {
|
|
|
28286
28360
|
|
|
28287
28361
|
if ( session === null ) return;
|
|
28288
28362
|
|
|
28363
|
+
let depthNear = camera.near;
|
|
28364
|
+
let depthFar = camera.far;
|
|
28365
|
+
|
|
28289
28366
|
if ( depthSensing.texture !== null ) {
|
|
28290
28367
|
|
|
28291
|
-
|
|
28292
|
-
|
|
28368
|
+
if ( depthSensing.depthNear > 0 ) depthNear = depthSensing.depthNear;
|
|
28369
|
+
if ( depthSensing.depthFar > 0 ) depthFar = depthSensing.depthFar;
|
|
28293
28370
|
|
|
28294
28371
|
}
|
|
28295
28372
|
|
|
28296
|
-
cameraXR.near = cameraR.near = cameraL.near =
|
|
28297
|
-
cameraXR.far = cameraR.far = cameraL.far =
|
|
28373
|
+
cameraXR.near = cameraR.near = cameraL.near = depthNear;
|
|
28374
|
+
cameraXR.far = cameraR.far = cameraL.far = depthFar;
|
|
28298
28375
|
|
|
28299
28376
|
if ( _currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far ) {
|
|
28300
28377
|
|
|
@@ -28308,15 +28385,6 @@ class WebXRManager extends EventDispatcher {
|
|
|
28308
28385
|
_currentDepthNear = cameraXR.near;
|
|
28309
28386
|
_currentDepthFar = cameraXR.far;
|
|
28310
28387
|
|
|
28311
|
-
cameraL.near = _currentDepthNear;
|
|
28312
|
-
cameraL.far = _currentDepthFar;
|
|
28313
|
-
cameraR.near = _currentDepthNear;
|
|
28314
|
-
cameraR.far = _currentDepthFar;
|
|
28315
|
-
|
|
28316
|
-
cameraL.updateProjectionMatrix();
|
|
28317
|
-
cameraR.updateProjectionMatrix();
|
|
28318
|
-
camera.updateProjectionMatrix();
|
|
28319
|
-
|
|
28320
28388
|
}
|
|
28321
28389
|
|
|
28322
28390
|
const cameras = cameraXR.cameras;
|
|
@@ -31115,6 +31183,8 @@ class WebGLRenderer {
|
|
|
31115
31183
|
object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
|
|
31116
31184
|
object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
|
|
31117
31185
|
|
|
31186
|
+
material.onBeforeRender( _this, scene, camera, geometry, object, group );
|
|
31187
|
+
|
|
31118
31188
|
if ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {
|
|
31119
31189
|
|
|
31120
31190
|
material.side = BackSide;
|
|
@@ -31831,6 +31901,28 @@ class WebGLRenderer {
|
|
|
31831
31901
|
// Color and depth texture must be rebound in order for the swapchain to update.
|
|
31832
31902
|
textures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );
|
|
31833
31903
|
|
|
31904
|
+
} else if ( renderTarget.depthBuffer ) {
|
|
31905
|
+
|
|
31906
|
+
// check if the depth texture is already bound to the frame buffer and that it's been initialized
|
|
31907
|
+
const depthTexture = renderTarget.depthTexture;
|
|
31908
|
+
if ( renderTargetProperties.__boundDepthTexture !== depthTexture ) {
|
|
31909
|
+
|
|
31910
|
+
// check if the depth texture is compatible
|
|
31911
|
+
if (
|
|
31912
|
+
depthTexture !== null &&
|
|
31913
|
+
properties.has( depthTexture ) &&
|
|
31914
|
+
( renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height )
|
|
31915
|
+
) {
|
|
31916
|
+
|
|
31917
|
+
throw new Error( 'WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.' );
|
|
31918
|
+
|
|
31919
|
+
}
|
|
31920
|
+
|
|
31921
|
+
// Swap the depth buffer to the currently attached one
|
|
31922
|
+
textures.setupDepthRenderbuffer( renderTarget );
|
|
31923
|
+
|
|
31924
|
+
}
|
|
31925
|
+
|
|
31834
31926
|
}
|
|
31835
31927
|
|
|
31836
31928
|
const texture = renderTarget.texture;
|
|
@@ -34503,7 +34595,7 @@ class BatchedMesh extends Mesh {
|
|
|
34503
34595
|
|
|
34504
34596
|
_initColorsTexture() {
|
|
34505
34597
|
|
|
34506
|
-
let size = Math.sqrt( this.
|
|
34598
|
+
let size = Math.sqrt( this._maxInstanceCount );
|
|
34507
34599
|
size = Math.ceil( size );
|
|
34508
34600
|
|
|
34509
34601
|
// 4 floats per RGBA pixel initialized to white
|
|
@@ -34597,12 +34689,11 @@ class BatchedMesh extends Mesh {
|
|
|
34597
34689
|
|
|
34598
34690
|
}
|
|
34599
34691
|
|
|
34600
|
-
const geometryCount = this._geometryCount;
|
|
34601
34692
|
const boundingBox = this.boundingBox;
|
|
34602
34693
|
const drawInfo = this._drawInfo;
|
|
34603
34694
|
|
|
34604
34695
|
boundingBox.makeEmpty();
|
|
34605
|
-
for ( let i = 0; i <
|
|
34696
|
+
for ( let i = 0, l = drawInfo.length; i < l; i ++ ) {
|
|
34606
34697
|
|
|
34607
34698
|
if ( drawInfo[ i ].active === false ) continue;
|
|
34608
34699
|
|
|
@@ -48153,7 +48244,7 @@ class ObjectLoader extends Loader {
|
|
|
48153
48244
|
case 'DirectionalLight':
|
|
48154
48245
|
|
|
48155
48246
|
object = new DirectionalLight( data.color, data.intensity );
|
|
48156
|
-
object.target = data.target ||
|
|
48247
|
+
object.target = data.target || '';
|
|
48157
48248
|
|
|
48158
48249
|
break;
|
|
48159
48250
|
|
|
@@ -48172,7 +48263,7 @@ class ObjectLoader extends Loader {
|
|
|
48172
48263
|
case 'SpotLight':
|
|
48173
48264
|
|
|
48174
48265
|
object = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );
|
|
48175
|
-
object.target = data.target ||
|
|
48266
|
+
object.target = data.target || '';
|
|
48176
48267
|
|
|
48177
48268
|
break;
|
|
48178
48269
|
|
|
@@ -48449,7 +48540,7 @@ class ObjectLoader extends Loader {
|
|
|
48449
48540
|
|
|
48450
48541
|
object.traverse( function ( child ) {
|
|
48451
48542
|
|
|
48452
|
-
if ( child.isDirectionalLight ||
|
|
48543
|
+
if ( child.isDirectionalLight || child.isSpotLight ) {
|
|
48453
48544
|
|
|
48454
48545
|
const uuid = child.target;
|
|
48455
48546
|
|
|
@@ -54809,6 +54900,35 @@ class ShapePath {
|
|
|
54809
54900
|
|
|
54810
54901
|
}
|
|
54811
54902
|
|
|
54903
|
+
class Controls extends EventDispatcher {
|
|
54904
|
+
|
|
54905
|
+
constructor( object, domElement ) {
|
|
54906
|
+
|
|
54907
|
+
super();
|
|
54908
|
+
|
|
54909
|
+
this.object = object;
|
|
54910
|
+
this.domElement = domElement;
|
|
54911
|
+
|
|
54912
|
+
this.enabled = true;
|
|
54913
|
+
|
|
54914
|
+
this.state = - 1;
|
|
54915
|
+
|
|
54916
|
+
this.keys = {};
|
|
54917
|
+
this.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };
|
|
54918
|
+
this.touches = { ONE: null, TWO: null };
|
|
54919
|
+
|
|
54920
|
+
}
|
|
54921
|
+
|
|
54922
|
+
connect() {}
|
|
54923
|
+
|
|
54924
|
+
disconnect() {}
|
|
54925
|
+
|
|
54926
|
+
dispose() {}
|
|
54927
|
+
|
|
54928
|
+
update( /* delta */ ) {}
|
|
54929
|
+
|
|
54930
|
+
}
|
|
54931
|
+
|
|
54812
54932
|
class WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162
|
|
54813
54933
|
|
|
54814
54934
|
constructor( width = 1, height = 1, count = 1, options = {} ) {
|
|
@@ -54913,6 +55033,7 @@ exports.CompressedTextureLoader = CompressedTextureLoader;
|
|
|
54913
55033
|
exports.ConeGeometry = ConeGeometry;
|
|
54914
55034
|
exports.ConstantAlphaFactor = ConstantAlphaFactor;
|
|
54915
55035
|
exports.ConstantColorFactor = ConstantColorFactor;
|
|
55036
|
+
exports.Controls = Controls;
|
|
54916
55037
|
exports.CubeCamera = CubeCamera;
|
|
54917
55038
|
exports.CubeReflectionMapping = CubeReflectionMapping;
|
|
54918
55039
|
exports.CubeRefractionMapping = CubeRefractionMapping;
|