super-three 0.155.0 → 0.157.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 +361 -324
- package/build/three.js +361 -324
- package/build/three.min.js +2 -2
- package/build/three.module.js +354 -323
- package/build/three.module.min.js +1 -1
- package/examples/jsm/capabilities/WebGL.js +17 -0
- package/examples/jsm/controls/DragControls.js +3 -2
- package/examples/jsm/controls/OrbitControls.js +13 -5
- package/examples/jsm/csm/CSMShader.js +59 -21
- package/examples/jsm/exporters/EXRExporter.js +102 -24
- package/examples/jsm/exporters/GLTFExporter.js +1 -1
- package/examples/jsm/libs/rhino3dm/rhino3dm.js +8726 -4
- package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +8737 -4
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/libs/tween.module.js +790 -735
- package/examples/jsm/libs/utif.module.js +1644 -1558
- package/examples/jsm/lights/LightProbeGenerator.js +37 -3
- package/examples/jsm/lines/LineMaterial.js +90 -156
- package/examples/jsm/loaders/3DMLoader.js +378 -104
- package/examples/jsm/loaders/DDSLoader.js +46 -3
- package/examples/jsm/loaders/EXRLoader.js +4 -4
- package/examples/jsm/loaders/FBXLoader.js +2 -0
- package/examples/jsm/loaders/GLTFLoader.js +18 -8
- package/examples/jsm/loaders/KTX2Loader.js +126 -77
- package/examples/jsm/loaders/LDrawLoader.js +22 -16
- package/examples/jsm/loaders/LogLuvLoader.js +2 -2
- package/examples/jsm/loaders/MMDLoader.js +10 -7
- package/examples/jsm/loaders/RGBELoader.js +48 -66
- package/examples/jsm/loaders/STLLoader.js +7 -0
- package/examples/jsm/loaders/USDZLoader.js +215 -12
- package/examples/jsm/materials/MeshGouraudMaterial.js +22 -18
- package/examples/jsm/nodes/Nodes.js +8 -1
- package/examples/jsm/nodes/accessors/BitangentNode.js +1 -1
- package/examples/jsm/nodes/accessors/BufferAttributeNode.js +30 -4
- package/examples/jsm/nodes/accessors/BufferNode.js +1 -1
- package/examples/jsm/nodes/accessors/CameraNode.js +1 -1
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +19 -4
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +4 -5
- package/examples/jsm/nodes/accessors/InstanceNode.js +2 -2
- package/examples/jsm/nodes/accessors/LineMaterialNode.js +29 -0
- package/examples/jsm/nodes/accessors/MaterialNode.js +23 -13
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +12 -9
- package/examples/jsm/nodes/accessors/ModelNode.js +1 -1
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +5 -4
- package/examples/jsm/nodes/accessors/MorphNode.js +4 -4
- package/examples/jsm/nodes/accessors/NormalNode.js +1 -1
- package/examples/jsm/nodes/accessors/Object3DNode.js +3 -3
- package/examples/jsm/nodes/accessors/PointUVNode.js +1 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +1 -1
- package/examples/jsm/nodes/accessors/ReferenceNode.js +13 -7
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +2 -2
- package/examples/jsm/nodes/accessors/SceneNode.js +2 -2
- package/examples/jsm/nodes/accessors/SkinningNode.js +2 -2
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +1 -1
- package/examples/jsm/nodes/accessors/TangentNode.js +1 -1
- package/examples/jsm/nodes/accessors/TextureBicubicNode.js +2 -2
- package/examples/jsm/nodes/accessors/TextureNode.js +18 -8
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +2 -2
- package/examples/jsm/nodes/accessors/TextureStoreNode.js +29 -0
- package/examples/jsm/nodes/accessors/UVNode.js +1 -1
- package/examples/jsm/nodes/accessors/UserDataNode.js +2 -2
- package/examples/jsm/nodes/code/CodeNode.js +1 -1
- package/examples/jsm/nodes/code/ExpressionNode.js +1 -1
- package/examples/jsm/nodes/code/FunctionCallNode.js +1 -1
- package/examples/jsm/nodes/code/FunctionNode.js +18 -7
- package/examples/jsm/nodes/code/ScriptableNode.js +2 -2
- package/examples/jsm/nodes/code/ScriptableValueNode.js +2 -2
- package/examples/jsm/nodes/core/ArrayUniformNode.js +1 -1
- package/examples/jsm/nodes/core/AttributeNode.js +3 -3
- package/examples/jsm/nodes/core/BypassNode.js +1 -1
- package/examples/jsm/nodes/core/CacheNode.js +1 -1
- package/examples/jsm/nodes/core/ConstNode.js +1 -1
- package/examples/jsm/nodes/core/ContextNode.js +2 -2
- package/examples/jsm/nodes/core/IndexNode.js +1 -1
- package/examples/jsm/nodes/core/InputNode.js +1 -1
- package/examples/jsm/nodes/core/Node.js +45 -14
- package/examples/jsm/nodes/core/NodeBuilder.js +83 -15
- package/examples/jsm/nodes/core/NodeFrame.js +37 -14
- package/examples/jsm/nodes/core/NodeUniform.js +1 -1
- package/examples/jsm/nodes/core/OutputStructNode.js +62 -0
- package/examples/jsm/nodes/core/PropertyNode.js +3 -1
- package/examples/jsm/nodes/core/StackNode.js +5 -5
- package/examples/jsm/nodes/core/StructTypeNode.js +24 -0
- package/examples/jsm/nodes/core/TempNode.js +1 -1
- package/examples/jsm/nodes/core/UniformNode.js +3 -1
- package/examples/jsm/nodes/core/VarNode.js +1 -1
- package/examples/jsm/nodes/core/VaryingNode.js +1 -1
- package/examples/jsm/nodes/core/constants.js +1 -1
- package/examples/jsm/nodes/display/BlendModeNode.js +2 -2
- package/examples/jsm/nodes/display/BumpMapNode.js +2 -2
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +2 -2
- package/examples/jsm/nodes/display/ColorSpaceNode.js +2 -2
- package/examples/jsm/nodes/display/FrontFacingNode.js +1 -1
- package/examples/jsm/nodes/display/NormalMapNode.js +2 -2
- package/examples/jsm/nodes/display/PosterizeNode.js +2 -2
- package/examples/jsm/nodes/display/ToneMappingNode.js +2 -2
- package/examples/jsm/nodes/display/ViewportDepthNode.js +2 -2
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportNode.js +21 -7
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportTextureNode.js +1 -1
- package/examples/jsm/nodes/fog/FogExp2Node.js +2 -2
- package/examples/jsm/nodes/fog/FogNode.js +2 -2
- package/examples/jsm/nodes/fog/FogRangeNode.js +2 -2
- package/examples/jsm/nodes/geometry/RangeNode.js +2 -2
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
- package/examples/jsm/nodes/lighting/AONode.js +2 -2
- package/examples/jsm/nodes/lighting/AmbientLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +4 -4
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +4 -4
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +2 -2
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/IESSpotLightNode.js +2 -2
- package/examples/jsm/nodes/lighting/LightNode.js +2 -2
- package/examples/jsm/nodes/lighting/LightingContextNode.js +3 -3
- package/examples/jsm/nodes/lighting/LightingNode.js +1 -1
- package/examples/jsm/nodes/lighting/LightsNode.js +4 -4
- package/examples/jsm/nodes/lighting/PointLightNode.js +3 -3
- package/examples/jsm/nodes/lighting/SpotLightNode.js +4 -4
- package/examples/jsm/nodes/materials/Line2NodeMaterial.js +449 -0
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +54 -0
- package/examples/jsm/nodes/materials/Materials.js +2 -0
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +3 -3
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +3 -3
- package/examples/jsm/nodes/materials/NodeMaterial.js +39 -29
- package/examples/jsm/nodes/materials/PointsNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +2 -2
- package/examples/jsm/nodes/math/CondNode.js +1 -1
- package/examples/jsm/nodes/math/HashNode.js +34 -0
- package/examples/jsm/nodes/math/MathNode.js +2 -2
- package/examples/jsm/nodes/math/OperatorNode.js +1 -1
- package/examples/jsm/nodes/procedural/CheckerNode.js +3 -3
- package/examples/jsm/nodes/shadernode/ShaderNode.js +85 -28
- package/examples/jsm/nodes/utils/ArrayElementNode.js +1 -1
- package/examples/jsm/nodes/utils/ConvertNode.js +1 -1
- package/examples/jsm/nodes/utils/DiscardNode.js +1 -1
- package/examples/jsm/nodes/utils/EquirectUVNode.js +2 -2
- package/examples/jsm/nodes/utils/JoinNode.js +1 -1
- package/examples/jsm/nodes/utils/LoopNode.js +11 -11
- package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -2
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
- package/examples/jsm/nodes/utils/OscNode.js +2 -2
- package/examples/jsm/nodes/utils/PackingNode.js +2 -2
- package/examples/jsm/nodes/utils/RemapNode.js +2 -2
- package/examples/jsm/nodes/utils/RotateUVNode.js +2 -2
- package/examples/jsm/nodes/utils/SetNode.js +62 -0
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +2 -2
- package/examples/jsm/nodes/utils/SplitNode.js +2 -2
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +2 -2
- package/examples/jsm/nodes/utils/TimerNode.js +2 -2
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +2 -2
- package/examples/jsm/objects/Sky.js +1 -3
- package/examples/jsm/postprocessing/FilmPass.js +3 -5
- package/examples/jsm/postprocessing/OutputPass.js +3 -2
- package/examples/jsm/postprocessing/RenderPass.js +30 -12
- package/examples/jsm/postprocessing/SAOPass.js +23 -98
- package/examples/jsm/postprocessing/SSAOPass.js +10 -30
- package/examples/jsm/renderers/common/Backend.js +11 -8
- package/examples/jsm/renderers/common/Background.js +2 -2
- package/examples/jsm/renderers/common/Binding.js +6 -0
- package/examples/jsm/renderers/common/Bindings.js +4 -5
- package/examples/jsm/renderers/common/Pipelines.js +9 -9
- package/examples/jsm/renderers/common/RenderContext.js +3 -0
- package/examples/jsm/renderers/common/RenderContexts.js +26 -1
- package/examples/jsm/renderers/common/RenderList.js +12 -4
- package/examples/jsm/renderers/common/RenderObject.js +43 -15
- package/examples/jsm/renderers/common/RenderObjects.js +8 -14
- package/examples/jsm/renderers/common/Renderer.js +52 -16
- package/examples/jsm/renderers/common/SampledTexture.js +6 -3
- package/examples/jsm/renderers/common/Sampler.js +1 -1
- package/examples/jsm/renderers/common/StorageBuffer.js +1 -1
- package/examples/jsm/renderers/common/StorageTexture.js +19 -0
- package/examples/jsm/renderers/common/Textures.js +166 -21
- package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +35 -0
- package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +21 -11
- package/examples/jsm/renderers/common/nodes/NodeSampler.js +1 -7
- package/examples/jsm/renderers/common/nodes/Nodes.js +79 -18
- package/examples/jsm/renderers/webgl/WebGLBackend.js +702 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +207 -20
- package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +84 -0
- package/examples/jsm/renderers/webgl/utils/WebGLExtensions.js +26 -0
- package/examples/jsm/renderers/webgl/utils/WebGLState.js +529 -0
- package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +212 -0
- package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +242 -0
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +340 -0
- package/examples/jsm/renderers/{webgl → webgl-legacy}/nodes/WebGLNodeBuilder.js +4 -4
- package/examples/jsm/renderers/{webgl → webgl-legacy}/nodes/WebGLNodes.js +14 -2
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +282 -43
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +18 -2
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +93 -60
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +2 -2
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +15 -2
- package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +39 -14
- package/examples/jsm/renderers/webgpu/utils/WebGPUTexturePassUtils.js +285 -0
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +205 -284
- package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +6 -5
- package/examples/jsm/shaders/FilmShader.js +11 -54
- package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
- package/examples/jsm/shaders/MMDToonShader.js +4 -4
- package/examples/jsm/shaders/OutputShader.js +2 -2
- package/examples/jsm/shaders/SAOShader.js +0 -13
- package/examples/jsm/shaders/SSAOShader.js +33 -26
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +6 -6
- package/examples/jsm/utils/BufferGeometryUtils.js +6 -4
- package/package.json +1 -1
- package/src/Three.js +1 -2
- package/src/animation/AnimationUtils.js +3 -20
- package/src/animation/KeyframeTrack.js +8 -8
- package/src/audio/Audio.js +6 -0
- package/src/cameras/Camera.js +1 -5
- package/src/cameras/CubeCamera.js +14 -8
- package/src/constants.js +10 -1
- package/src/core/Object3D.js +1 -14
- package/src/core/RenderTarget.js +16 -7
- package/src/core/UniformsGroup.js +2 -2
- package/src/extras/core/CurvePath.js +4 -1
- package/src/loaders/DataTextureLoader.js +0 -2
- package/src/loaders/MaterialLoader.js +1 -1
- package/src/loaders/ObjectLoader.js +6 -0
- package/src/materials/Material.js +10 -10
- package/src/math/Color.js +1 -5
- package/src/math/ColorManagement.js +82 -60
- package/src/math/Vector2.js +2 -2
- package/src/math/Vector3.js +3 -3
- package/src/math/Vector4.js +4 -4
- package/src/objects/Line.js +1 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Sprite.js +2 -2
- package/src/renderers/WebGLRenderer.js +42 -51
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +35 -2
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -9
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +19 -15
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +4 -4
- package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -6
- package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +4 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +16 -16
- package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +11 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -1
- package/src/renderers/shaders/UniformsUtils.js +2 -2
- package/src/renderers/webgl/WebGLBackground.js +9 -17
- package/src/renderers/webgl/WebGLLights.js +14 -3
- package/src/renderers/webgl/WebGLProgram.js +36 -5
- package/src/renderers/webgl/WebGLPrograms.js +9 -1
- package/src/renderers/webgl/WebGLTextures.js +19 -8
- package/src/renderers/webgl/WebGLUtils.js +25 -20
- package/src/scenes/Fog.js +1 -0
- package/src/scenes/FogExp2.js +1 -0
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +2 -2
- package/src/utils.js +9 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureMipmapUtils.js +0 -163
- package/src/lights/AmbientLightProbe.js +0 -21
- package/src/lights/HemisphereLightProbe.js +0 -30
- /package/examples/jsm/renderers/{webgl → webgl-legacy}/nodes/SlotNode.js +0 -0
|
@@ -40,9 +40,10 @@ class WebGPUUtils {
|
|
|
40
40
|
|
|
41
41
|
let format;
|
|
42
42
|
|
|
43
|
-
if ( renderContext.
|
|
43
|
+
if ( renderContext.textures !== null ) {
|
|
44
|
+
|
|
45
|
+
format = this.getTextureFormatGPU( renderContext.textures[ 0 ] );
|
|
44
46
|
|
|
45
|
-
format = this.getTextureFormatGPU( renderContext.texture );
|
|
46
47
|
|
|
47
48
|
} else {
|
|
48
49
|
|
|
@@ -56,9 +57,9 @@ class WebGPUUtils {
|
|
|
56
57
|
|
|
57
58
|
getCurrentColorSpace( renderContext ) {
|
|
58
59
|
|
|
59
|
-
if ( renderContext.
|
|
60
|
+
if ( renderContext.textures !== null ) {
|
|
60
61
|
|
|
61
|
-
return renderContext.
|
|
62
|
+
return renderContext.textures[ 0 ].colorSpace;
|
|
62
63
|
|
|
63
64
|
}
|
|
64
65
|
|
|
@@ -77,7 +78,7 @@ class WebGPUUtils {
|
|
|
77
78
|
|
|
78
79
|
getSampleCount( renderContext ) {
|
|
79
80
|
|
|
80
|
-
if ( renderContext.
|
|
81
|
+
if ( renderContext.textures !== null ) {
|
|
81
82
|
|
|
82
83
|
return renderContext.sampleCount;
|
|
83
84
|
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Film grain & scanlines shader
|
|
3
|
-
*
|
|
4
|
-
* - ported from HLSL to WebGL / GLSL
|
|
5
|
-
* https://web.archive.org/web/20210226214859/http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
|
|
6
|
-
*
|
|
7
|
-
* Screen Space Static Postprocessor
|
|
8
|
-
*
|
|
9
|
-
* Produces an analogue noise overlay similar to a film grain / TV static
|
|
10
|
-
*
|
|
11
|
-
* Original implementation and noise algorithm
|
|
12
|
-
* Pat 'Hawthorne' Shearon
|
|
13
|
-
*
|
|
14
|
-
* Optimized scanlines + noise version with intensity scaling
|
|
15
|
-
* Georg 'Leviathan' Steinrohder
|
|
16
|
-
*
|
|
17
|
-
* This version is provided under a Creative Commons Attribution 3.0 License
|
|
18
|
-
* http://creativecommons.org/licenses/by/3.0/
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
1
|
const FilmShader = {
|
|
22
2
|
|
|
23
3
|
name: 'FilmShader',
|
|
@@ -26,10 +6,8 @@ const FilmShader = {
|
|
|
26
6
|
|
|
27
7
|
'tDiffuse': { value: null },
|
|
28
8
|
'time': { value: 0.0 },
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'sCount': { value: 4096 },
|
|
32
|
-
'grayscale': { value: 1 }
|
|
9
|
+
'intensity': { value: 0.5 },
|
|
10
|
+
'grayscale': { value: false }
|
|
33
11
|
|
|
34
12
|
},
|
|
35
13
|
|
|
@@ -48,19 +26,9 @@ const FilmShader = {
|
|
|
48
26
|
|
|
49
27
|
#include <common>
|
|
50
28
|
|
|
51
|
-
|
|
52
|
-
uniform float time;
|
|
53
|
-
|
|
29
|
+
uniform float intensity;
|
|
54
30
|
uniform bool grayscale;
|
|
55
|
-
|
|
56
|
-
// noise effect intensity value (0 = no effect, 1 = full effect)
|
|
57
|
-
uniform float nIntensity;
|
|
58
|
-
|
|
59
|
-
// scanlines effect intensity value (0 = no effect, 1 = full effect)
|
|
60
|
-
uniform float sIntensity;
|
|
61
|
-
|
|
62
|
-
// scanlines effect count value (0 = no effect, 4096 = full effect)
|
|
63
|
-
uniform float sCount;
|
|
31
|
+
uniform float time;
|
|
64
32
|
|
|
65
33
|
uniform sampler2D tDiffuse;
|
|
66
34
|
|
|
@@ -68,32 +36,21 @@ const FilmShader = {
|
|
|
68
36
|
|
|
69
37
|
void main() {
|
|
70
38
|
|
|
71
|
-
|
|
72
|
-
vec4 cTextureScreen = texture2D( tDiffuse, vUv );
|
|
73
|
-
|
|
74
|
-
// make some noise
|
|
75
|
-
float dx = rand( vUv + time );
|
|
76
|
-
|
|
77
|
-
// add noise
|
|
78
|
-
vec3 cResult = cTextureScreen.rgb + cTextureScreen.rgb * clamp( 0.1 + dx, 0.0, 1.0 );
|
|
39
|
+
vec4 base = texture2D( tDiffuse, vUv );
|
|
79
40
|
|
|
80
|
-
|
|
81
|
-
vec2 sc = vec2( sin( vUv.y * sCount ), cos( vUv.y * sCount ) );
|
|
41
|
+
float noise = rand( vUv + time );
|
|
82
42
|
|
|
83
|
-
|
|
84
|
-
cResult += cTextureScreen.rgb * vec3( sc.x, sc.y, sc.x ) * sIntensity;
|
|
43
|
+
vec3 color = base.rgb + base.rgb * clamp( 0.1 + noise, 0.0, 1.0 );
|
|
85
44
|
|
|
86
|
-
|
|
87
|
-
cResult = cTextureScreen.rgb + clamp( nIntensity, 0.0,1.0 ) * ( cResult - cTextureScreen.rgb );
|
|
45
|
+
color = mix( base.rgb, color, intensity );
|
|
88
46
|
|
|
89
|
-
|
|
90
|
-
if( grayscale ) {
|
|
47
|
+
if ( grayscale ) {
|
|
91
48
|
|
|
92
|
-
|
|
49
|
+
color = vec3( luminance( color ) ); // assuming linear-srgb
|
|
93
50
|
|
|
94
51
|
}
|
|
95
52
|
|
|
96
|
-
gl_FragColor =
|
|
53
|
+
gl_FragColor = vec4( color, base.a );
|
|
97
54
|
|
|
98
55
|
}`,
|
|
99
56
|
|
|
@@ -27,17 +27,17 @@ struct BlinnPhongMaterial {
|
|
|
27
27
|
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in
|
|
30
|
+
void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
|
|
31
31
|
|
|
32
|
-
vec3 irradiance = getGradientIrradiance(
|
|
32
|
+
vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
|
|
33
33
|
|
|
34
34
|
reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
35
35
|
|
|
36
|
-
reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction,
|
|
36
|
+
reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
|
|
37
37
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in
|
|
40
|
+
void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
|
|
41
41
|
|
|
42
42
|
reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
|
|
43
43
|
|
|
@@ -11,9 +11,7 @@ const SAOShader = {
|
|
|
11
11
|
defines: {
|
|
12
12
|
'NUM_SAMPLES': 7,
|
|
13
13
|
'NUM_RINGS': 4,
|
|
14
|
-
'NORMAL_TEXTURE': 0,
|
|
15
14
|
'DIFFUSE_TEXTURE': 0,
|
|
16
|
-
'DEPTH_PACKING': 1,
|
|
17
15
|
'PERSPECTIVE_CAMERA': 1
|
|
18
16
|
},
|
|
19
17
|
uniforms: {
|
|
@@ -56,10 +54,7 @@ const SAOShader = {
|
|
|
56
54
|
#endif
|
|
57
55
|
|
|
58
56
|
uniform sampler2D tDepth;
|
|
59
|
-
|
|
60
|
-
#if NORMAL_TEXTURE == 1
|
|
61
57
|
uniform sampler2D tNormal;
|
|
62
|
-
#endif
|
|
63
58
|
|
|
64
59
|
uniform float cameraNear;
|
|
65
60
|
uniform float cameraFar;
|
|
@@ -87,11 +82,7 @@ const SAOShader = {
|
|
|
87
82
|
}
|
|
88
83
|
|
|
89
84
|
float getDepth( const in vec2 screenPosition ) {
|
|
90
|
-
#if DEPTH_PACKING == 1
|
|
91
|
-
return unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );
|
|
92
|
-
#else
|
|
93
85
|
return texture2D( tDepth, screenPosition ).x;
|
|
94
|
-
#endif
|
|
95
86
|
}
|
|
96
87
|
|
|
97
88
|
float getViewZ( const in float depth ) {
|
|
@@ -111,11 +102,7 @@ const SAOShader = {
|
|
|
111
102
|
}
|
|
112
103
|
|
|
113
104
|
vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {
|
|
114
|
-
#if NORMAL_TEXTURE == 1
|
|
115
105
|
return unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );
|
|
116
|
-
#else
|
|
117
|
-
return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );
|
|
118
|
-
#endif
|
|
119
106
|
}
|
|
120
107
|
|
|
121
108
|
float scaleDividedByCameraFar;
|
|
@@ -19,7 +19,6 @@ const SSAOShader = {
|
|
|
19
19
|
|
|
20
20
|
uniforms: {
|
|
21
21
|
|
|
22
|
-
'tDiffuse': { value: null },
|
|
23
22
|
'tNormal': { value: null },
|
|
24
23
|
'tDepth': { value: null },
|
|
25
24
|
'tNoise': { value: null },
|
|
@@ -49,7 +48,6 @@ const SSAOShader = {
|
|
|
49
48
|
|
|
50
49
|
fragmentShader: /* glsl */`
|
|
51
50
|
|
|
52
|
-
uniform sampler2D tDiffuse;
|
|
53
51
|
uniform sampler2D tNormal;
|
|
54
52
|
uniform sampler2D tDepth;
|
|
55
53
|
uniform sampler2D tNoise;
|
|
@@ -128,47 +126,56 @@ const SSAOShader = {
|
|
|
128
126
|
void main() {
|
|
129
127
|
|
|
130
128
|
float depth = getDepth( vUv );
|
|
131
|
-
float viewZ = getViewZ( depth );
|
|
132
129
|
|
|
133
|
-
|
|
134
|
-
|
|
130
|
+
if ( depth == 1.0 ) {
|
|
131
|
+
|
|
132
|
+
gl_FragColor = vec4( 1.0 ); // don't influence background
|
|
133
|
+
|
|
134
|
+
} else {
|
|
135
|
+
|
|
136
|
+
float viewZ = getViewZ( depth );
|
|
137
|
+
|
|
138
|
+
vec3 viewPosition = getViewPosition( vUv, depth, viewZ );
|
|
139
|
+
vec3 viewNormal = getViewNormal( vUv );
|
|
135
140
|
|
|
136
|
-
|
|
137
|
-
|
|
141
|
+
vec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );
|
|
142
|
+
vec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );
|
|
138
143
|
|
|
139
|
-
|
|
144
|
+
// compute matrix used to reorient a kernel vector
|
|
140
145
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
vec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );
|
|
147
|
+
vec3 bitangent = cross( viewNormal, tangent );
|
|
148
|
+
mat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );
|
|
144
149
|
|
|
145
|
-
|
|
150
|
+
float occlusion = 0.0;
|
|
146
151
|
|
|
147
|
-
|
|
152
|
+
for ( int i = 0; i < KERNEL_SIZE; i ++ ) {
|
|
148
153
|
|
|
149
|
-
|
|
150
|
-
|
|
154
|
+
vec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space
|
|
155
|
+
vec3 samplePoint = viewPosition + ( sampleVector * kernelRadius ); // calculate sample point
|
|
151
156
|
|
|
152
|
-
|
|
153
|
-
|
|
157
|
+
vec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC
|
|
158
|
+
samplePointNDC /= samplePointNDC.w;
|
|
154
159
|
|
|
155
|
-
|
|
160
|
+
vec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates
|
|
156
161
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
162
|
+
float realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture
|
|
163
|
+
float sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar ); // compute linear depth of the sample view Z value
|
|
164
|
+
float delta = sampleDepth - realDepth;
|
|
160
165
|
|
|
161
|
-
|
|
166
|
+
if ( delta > minDistance && delta < maxDistance ) { // if fragment is before sample point, increase occlusion
|
|
162
167
|
|
|
163
|
-
|
|
168
|
+
occlusion += 1.0;
|
|
169
|
+
|
|
170
|
+
}
|
|
164
171
|
|
|
165
172
|
}
|
|
166
173
|
|
|
167
|
-
|
|
174
|
+
occlusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );
|
|
168
175
|
|
|
169
|
-
|
|
176
|
+
gl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );
|
|
170
177
|
|
|
171
|
-
|
|
178
|
+
}
|
|
172
179
|
|
|
173
180
|
}`
|
|
174
181
|
|
|
@@ -57,10 +57,10 @@ const SubsurfaceScatteringShader = {
|
|
|
57
57
|
'uniform float thicknessAttenuation;',
|
|
58
58
|
'uniform vec3 thicknessColor;',
|
|
59
59
|
|
|
60
|
-
'void RE_Direct_Scattering(const in IncidentLight directLight, const in vec2 uv, const in
|
|
60
|
+
'void RE_Direct_Scattering(const in IncidentLight directLight, const in vec2 uv, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, inout ReflectedLight reflectedLight) {',
|
|
61
61
|
' vec3 thickness = thicknessColor * texture2D(thicknessMap, uv).r;',
|
|
62
|
-
' vec3 scatteringHalf = normalize(directLight.direction + (
|
|
63
|
-
' float scatteringDot = pow(saturate(dot(
|
|
62
|
+
' vec3 scatteringHalf = normalize(directLight.direction + (geometryNormal * thicknessDistortion));',
|
|
63
|
+
' float scatteringDot = pow(saturate(dot(geometryViewDir, -scatteringHalf)), thicknessPower) * thicknessScale;',
|
|
64
64
|
' vec3 scatteringIllu = (scatteringDot + thicknessAmbient) * thickness;',
|
|
65
65
|
' reflectedLight.directDiffuse += scatteringIllu * thicknessAttenuation * directLight.color;',
|
|
66
66
|
'}',
|
|
@@ -69,12 +69,12 @@ const SubsurfaceScatteringShader = {
|
|
|
69
69
|
|
|
70
70
|
replaceAll(
|
|
71
71
|
ShaderChunk[ 'lights_fragment_begin' ],
|
|
72
|
-
'RE_Direct( directLight,
|
|
72
|
+
'RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );',
|
|
73
73
|
[
|
|
74
|
-
'RE_Direct( directLight,
|
|
74
|
+
'RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );',
|
|
75
75
|
|
|
76
76
|
'#if defined( SUBSURFACE ) && defined( USE_UV )',
|
|
77
|
-
' RE_Direct_Scattering(directLight, vUv,
|
|
77
|
+
' RE_Direct_Scattering(directLight, vUv, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, reflectedLight);',
|
|
78
78
|
'#endif',
|
|
79
79
|
].join( '\n' )
|
|
80
80
|
),
|
|
@@ -555,7 +555,7 @@ export function deinterleaveGeometry( geometry ) {
|
|
|
555
555
|
}
|
|
556
556
|
|
|
557
557
|
/**
|
|
558
|
-
* @param {
|
|
558
|
+
* @param {BufferGeometry} geometry
|
|
559
559
|
* @return {number}
|
|
560
560
|
*/
|
|
561
561
|
function estimateBytesUsed( geometry ) {
|
|
@@ -631,8 +631,10 @@ function mergeVertices( geometry, tolerance = 1e-4 ) {
|
|
|
631
631
|
}
|
|
632
632
|
|
|
633
633
|
// convert the error tolerance to an amount of decimal places to truncate to
|
|
634
|
-
const
|
|
635
|
-
const
|
|
634
|
+
const halfTolerance = tolerance * 0.5;
|
|
635
|
+
const exponent = Math.log10( 1 / tolerance );
|
|
636
|
+
const hashMultiplier = Math.pow( 10, exponent );
|
|
637
|
+
const hashAdditive = halfTolerance * hashMultiplier;
|
|
636
638
|
for ( let i = 0; i < vertexCount; i ++ ) {
|
|
637
639
|
|
|
638
640
|
const index = indices ? indices.getX( i ) : i;
|
|
@@ -648,7 +650,7 @@ function mergeVertices( geometry, tolerance = 1e-4 ) {
|
|
|
648
650
|
for ( let k = 0; k < itemSize; k ++ ) {
|
|
649
651
|
|
|
650
652
|
// double tilde truncates the decimal value
|
|
651
|
-
hash += `${ ~ ~ ( attribute[ getters[ k ] ]( index ) *
|
|
653
|
+
hash += `${ ~ ~ ( attribute[ getters[ k ] ]( index ) * hashMultiplier + hashAdditive ) },`;
|
|
652
654
|
|
|
653
655
|
}
|
|
654
656
|
|
package/package.json
CHANGED
package/src/Three.js
CHANGED
|
@@ -61,10 +61,8 @@ export { SpotLight } from './lights/SpotLight.js';
|
|
|
61
61
|
export { PointLight } from './lights/PointLight.js';
|
|
62
62
|
export { RectAreaLight } from './lights/RectAreaLight.js';
|
|
63
63
|
export { HemisphereLight } from './lights/HemisphereLight.js';
|
|
64
|
-
export { HemisphereLightProbe } from './lights/HemisphereLightProbe.js';
|
|
65
64
|
export { DirectionalLight } from './lights/DirectionalLight.js';
|
|
66
65
|
export { AmbientLight } from './lights/AmbientLight.js';
|
|
67
|
-
export { AmbientLightProbe } from './lights/AmbientLightProbe.js';
|
|
68
66
|
export { Light } from './lights/Light.js';
|
|
69
67
|
export { LightProbe } from './lights/LightProbe.js';
|
|
70
68
|
export { StereoCamera } from './cameras/StereoCamera.js';
|
|
@@ -158,6 +156,7 @@ export { ImageUtils } from './extras/ImageUtils.js';
|
|
|
158
156
|
export { ShapeUtils } from './extras/ShapeUtils.js';
|
|
159
157
|
export { PMREMGenerator } from './extras/PMREMGenerator.js';
|
|
160
158
|
export { WebGLUtils } from './renderers/webgl/WebGLUtils.js';
|
|
159
|
+
export { createCanvasElement } from './utils.js';
|
|
161
160
|
export * from './constants.js';
|
|
162
161
|
export * from './Three.Legacy.js';
|
|
163
162
|
|
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
import { Quaternion } from '../math/Quaternion.js';
|
|
2
2
|
import { AdditiveAnimationBlendMode } from '../constants.js';
|
|
3
3
|
|
|
4
|
-
// same as Array.prototype.slice, but also works on typed arrays
|
|
5
|
-
function arraySlice( array, from, to ) {
|
|
6
|
-
|
|
7
|
-
if ( isTypedArray( array ) ) {
|
|
8
|
-
|
|
9
|
-
// in ios9 array.subarray(from, undefined) will return empty array
|
|
10
|
-
// but array.subarray(from) or array.subarray(from, len) is correct
|
|
11
|
-
return new array.constructor( array.subarray( from, to !== undefined ? to : array.length ) );
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return array.slice( from, to );
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
4
|
// converts an array to a specific type
|
|
20
5
|
function convertArray( array, type, forceClone ) {
|
|
21
6
|
|
|
@@ -279,14 +264,14 @@ function makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targe
|
|
|
279
264
|
// Reference frame is earlier than the first keyframe, so just use the first keyframe
|
|
280
265
|
const startIndex = referenceOffset;
|
|
281
266
|
const endIndex = referenceValueSize - referenceOffset;
|
|
282
|
-
referenceValue =
|
|
267
|
+
referenceValue = referenceTrack.values.slice( startIndex, endIndex );
|
|
283
268
|
|
|
284
269
|
} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {
|
|
285
270
|
|
|
286
271
|
// Reference frame is after the last keyframe, so just use the last keyframe
|
|
287
272
|
const startIndex = lastIndex * referenceValueSize + referenceOffset;
|
|
288
273
|
const endIndex = startIndex + referenceValueSize - referenceOffset;
|
|
289
|
-
referenceValue =
|
|
274
|
+
referenceValue = referenceTrack.values.slice( startIndex, endIndex );
|
|
290
275
|
|
|
291
276
|
} else {
|
|
292
277
|
|
|
@@ -295,7 +280,7 @@ function makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targe
|
|
|
295
280
|
const startIndex = referenceOffset;
|
|
296
281
|
const endIndex = referenceValueSize - referenceOffset;
|
|
297
282
|
interpolant.evaluate( referenceTime );
|
|
298
|
-
referenceValue =
|
|
283
|
+
referenceValue = interpolant.resultBuffer.slice( startIndex, endIndex );
|
|
299
284
|
|
|
300
285
|
}
|
|
301
286
|
|
|
@@ -350,7 +335,6 @@ function makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targe
|
|
|
350
335
|
}
|
|
351
336
|
|
|
352
337
|
const AnimationUtils = {
|
|
353
|
-
arraySlice: arraySlice,
|
|
354
338
|
convertArray: convertArray,
|
|
355
339
|
isTypedArray: isTypedArray,
|
|
356
340
|
getKeyframeOrder: getKeyframeOrder,
|
|
@@ -361,7 +345,6 @@ const AnimationUtils = {
|
|
|
361
345
|
};
|
|
362
346
|
|
|
363
347
|
export {
|
|
364
|
-
arraySlice,
|
|
365
348
|
convertArray,
|
|
366
349
|
isTypedArray,
|
|
367
350
|
getKeyframeOrder,
|
|
@@ -239,8 +239,8 @@ class KeyframeTrack {
|
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
const stride = this.getValueSize();
|
|
242
|
-
this.times =
|
|
243
|
-
this.values =
|
|
242
|
+
this.times = times.slice( from, to );
|
|
243
|
+
this.values = this.values.slice( from * stride, to * stride );
|
|
244
244
|
|
|
245
245
|
}
|
|
246
246
|
|
|
@@ -330,8 +330,8 @@ class KeyframeTrack {
|
|
|
330
330
|
optimize() {
|
|
331
331
|
|
|
332
332
|
// times or values may be shared with other tracks, so overwriting is unsafe
|
|
333
|
-
const times =
|
|
334
|
-
values =
|
|
333
|
+
const times = this.times.slice(),
|
|
334
|
+
values = this.values.slice(),
|
|
335
335
|
stride = this.getValueSize(),
|
|
336
336
|
|
|
337
337
|
smoothInterpolation = this.getInterpolation() === InterpolateSmooth,
|
|
@@ -424,8 +424,8 @@ class KeyframeTrack {
|
|
|
424
424
|
|
|
425
425
|
if ( writeIndex !== times.length ) {
|
|
426
426
|
|
|
427
|
-
this.times =
|
|
428
|
-
this.values =
|
|
427
|
+
this.times = times.slice( 0, writeIndex );
|
|
428
|
+
this.values = values.slice( 0, writeIndex * stride );
|
|
429
429
|
|
|
430
430
|
} else {
|
|
431
431
|
|
|
@@ -440,8 +440,8 @@ class KeyframeTrack {
|
|
|
440
440
|
|
|
441
441
|
clone() {
|
|
442
442
|
|
|
443
|
-
const times =
|
|
444
|
-
const values =
|
|
443
|
+
const times = this.times.slice();
|
|
444
|
+
const values = this.values.slice();
|
|
445
445
|
|
|
446
446
|
const TypedKeyframeTrack = this.constructor;
|
|
447
447
|
const track = new TypedKeyframeTrack( this.name, times, values );
|
package/src/audio/Audio.js
CHANGED
package/src/cameras/Camera.js
CHANGED
|
@@ -38,11 +38,7 @@ class Camera extends Object3D {
|
|
|
38
38
|
|
|
39
39
|
getWorldDirection( target ) {
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const e = this.matrixWorld.elements;
|
|
44
|
-
|
|
45
|
-
return target.set( - e[ 8 ], - e[ 9 ], - e[ 10 ] ).normalize();
|
|
41
|
+
return super.getWorldDirection( target ).negate();
|
|
46
42
|
|
|
47
43
|
}
|
|
48
44
|
|
|
@@ -15,6 +15,7 @@ class CubeCamera extends Object3D {
|
|
|
15
15
|
|
|
16
16
|
this.renderTarget = renderTarget;
|
|
17
17
|
this.coordinateSystem = null;
|
|
18
|
+
this.activeMipmapLevel = 0;
|
|
18
19
|
|
|
19
20
|
const cameraPX = new PerspectiveCamera( fov, aspect, near, far );
|
|
20
21
|
cameraPX.layers = this.layers;
|
|
@@ -112,7 +113,7 @@ class CubeCamera extends Object3D {
|
|
|
112
113
|
|
|
113
114
|
if ( this.parent === null ) this.updateMatrixWorld();
|
|
114
115
|
|
|
115
|
-
const renderTarget = this
|
|
116
|
+
const { renderTarget, activeMipmapLevel } = this;
|
|
116
117
|
|
|
117
118
|
if ( this.coordinateSystem !== renderer.coordinateSystem ) {
|
|
118
119
|
|
|
@@ -125,6 +126,8 @@ class CubeCamera extends Object3D {
|
|
|
125
126
|
const [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;
|
|
126
127
|
|
|
127
128
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
129
|
+
const currentActiveCubeFace = renderer.getActiveCubeFace();
|
|
130
|
+
const currentActiveMipmapLevel = renderer.getActiveMipmapLevel();
|
|
128
131
|
|
|
129
132
|
const currentXrEnabled = renderer.xr.enabled;
|
|
130
133
|
|
|
@@ -134,27 +137,30 @@ class CubeCamera extends Object3D {
|
|
|
134
137
|
|
|
135
138
|
renderTarget.texture.generateMipmaps = false;
|
|
136
139
|
|
|
137
|
-
renderer.setRenderTarget( renderTarget, 0 );
|
|
140
|
+
renderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );
|
|
138
141
|
renderer.render( scene, cameraPX );
|
|
139
142
|
|
|
140
|
-
renderer.setRenderTarget( renderTarget, 1 );
|
|
143
|
+
renderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );
|
|
141
144
|
renderer.render( scene, cameraNX );
|
|
142
145
|
|
|
143
|
-
renderer.setRenderTarget( renderTarget, 2 );
|
|
146
|
+
renderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );
|
|
144
147
|
renderer.render( scene, cameraPY );
|
|
145
148
|
|
|
146
|
-
renderer.setRenderTarget( renderTarget, 3 );
|
|
149
|
+
renderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );
|
|
147
150
|
renderer.render( scene, cameraNY );
|
|
148
151
|
|
|
149
|
-
renderer.setRenderTarget( renderTarget, 4 );
|
|
152
|
+
renderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );
|
|
150
153
|
renderer.render( scene, cameraPZ );
|
|
151
154
|
|
|
155
|
+
// mipmaps are generated during the last call of render()
|
|
156
|
+
// at this point, all sides of the cube render target are defined
|
|
157
|
+
|
|
152
158
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
153
159
|
|
|
154
|
-
renderer.setRenderTarget( renderTarget, 5 );
|
|
160
|
+
renderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );
|
|
155
161
|
renderer.render( scene, cameraNZ );
|
|
156
162
|
|
|
157
|
-
renderer.setRenderTarget( currentRenderTarget );
|
|
163
|
+
renderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );
|
|
158
164
|
|
|
159
165
|
renderer.xr.enabled = currentXrEnabled;
|
|
160
166
|
|
package/src/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const REVISION = '
|
|
1
|
+
export const REVISION = '157';
|
|
2
2
|
|
|
3
3
|
export const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
|
|
4
4
|
export const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
|
|
@@ -122,6 +122,8 @@ export const RGBA_ASTC_10x10_Format = 37819;
|
|
|
122
122
|
export const RGBA_ASTC_12x10_Format = 37820;
|
|
123
123
|
export const RGBA_ASTC_12x12_Format = 37821;
|
|
124
124
|
export const RGBA_BPTC_Format = 36492;
|
|
125
|
+
export const RGB_BPTC_SIGNED_Format = 36494;
|
|
126
|
+
export const RGB_BPTC_UNSIGNED_Format = 36495;
|
|
125
127
|
export const RED_RGTC1_Format = 36283;
|
|
126
128
|
export const SIGNED_RED_RGTC1_Format = 36284;
|
|
127
129
|
export const RED_GREEN_RGTC2_Format = 36285;
|
|
@@ -154,6 +156,13 @@ export const NoColorSpace = '';
|
|
|
154
156
|
export const SRGBColorSpace = 'srgb';
|
|
155
157
|
export const LinearSRGBColorSpace = 'srgb-linear';
|
|
156
158
|
export const DisplayP3ColorSpace = 'display-p3';
|
|
159
|
+
export const LinearDisplayP3ColorSpace = 'display-p3-linear';
|
|
160
|
+
|
|
161
|
+
export const LinearTransfer = 'linear';
|
|
162
|
+
export const SRGBTransfer = 'srgb';
|
|
163
|
+
|
|
164
|
+
export const Rec709Primaries = 'rec709';
|
|
165
|
+
export const P3Primaries = 'p3';
|
|
157
166
|
|
|
158
167
|
export const ZeroStencilOp = 0;
|
|
159
168
|
export const KeepStencilOp = 7680;
|
package/src/core/Object3D.js
CHANGED
|
@@ -392,20 +392,7 @@ class Object3D extends EventDispatcher {
|
|
|
392
392
|
|
|
393
393
|
clear() {
|
|
394
394
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
const object = this.children[ i ];
|
|
398
|
-
|
|
399
|
-
object.parent = null;
|
|
400
|
-
|
|
401
|
-
object.dispatchEvent( _removedEvent );
|
|
402
|
-
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
this.children.length = 0;
|
|
406
|
-
|
|
407
|
-
return this;
|
|
408
|
-
|
|
395
|
+
return this.remove( ... this.children );
|
|
409
396
|
|
|
410
397
|
}
|
|
411
398
|
|