super-three 0.157.1 → 0.158.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/build/three.cjs +1013 -790
- package/build/three.js +1013 -790
- package/build/three.min.js +1 -1
- package/build/three.module.js +1008 -791
- package/build/three.module.min.js +1 -1
- package/examples/jsm/Addons.js +290 -0
- package/examples/jsm/controls/FlyControls.js +26 -0
- package/examples/jsm/controls/OrbitControls.js +12 -1
- package/examples/jsm/controls/TransformControls.js +27 -11
- package/examples/jsm/csm/CSMShader.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +72 -2
- package/examples/jsm/geometries/InstancedPointsGeometry.js +174 -0
- package/examples/jsm/geometries/SDFGeometryGenerator.js +144 -0
- package/examples/jsm/libs/lottie_canvas.module.js +6 -1
- package/examples/jsm/libs/opentype.module.js +13 -75
- package/examples/jsm/libs/surfaceNet.js +201 -0
- package/examples/jsm/loaders/GLTFLoader.js +12 -3
- package/examples/jsm/loaders/LUTImageLoader.js +162 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +89 -93
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
- package/examples/jsm/math/Capsule.js +0 -55
- package/examples/jsm/math/Octree.js +70 -3
- package/examples/jsm/modifiers/SimplifyModifier.js +103 -11
- package/examples/jsm/modifiers/TessellateModifier.js +3 -3
- package/examples/jsm/nodes/Nodes.js +6 -6
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +3 -3
- package/examples/jsm/nodes/accessors/InstanceNode.js +3 -3
- package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +21 -0
- package/examples/jsm/nodes/accessors/MaterialNode.js +68 -31
- package/examples/jsm/nodes/accessors/ModelNode.js +1 -2
- package/examples/jsm/nodes/accessors/MorphNode.js +5 -5
- package/examples/jsm/nodes/accessors/NormalNode.js +1 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +1 -1
- package/examples/jsm/nodes/accessors/SkinningNode.js +13 -3
- package/examples/jsm/nodes/accessors/TextureNode.js +3 -3
- package/examples/jsm/nodes/code/FunctionNode.js +1 -1
- package/examples/jsm/nodes/core/AssignNode.js +72 -0
- package/examples/jsm/nodes/core/LightingModel.js +3 -1
- package/examples/jsm/nodes/core/Node.js +7 -12
- package/examples/jsm/nodes/core/NodeBuilder.js +126 -16
- package/examples/jsm/nodes/core/NodeUtils.js +4 -2
- package/examples/jsm/nodes/core/OutputStructNode.js +1 -1
- package/examples/jsm/nodes/core/ParameterNode.js +33 -0
- package/examples/jsm/nodes/core/PropertyNode.js +4 -10
- package/examples/jsm/nodes/core/StackNode.js +7 -17
- package/examples/jsm/nodes/core/TempNode.js +1 -1
- package/examples/jsm/nodes/core/VarNode.js +6 -35
- package/examples/jsm/nodes/core/VaryingNode.js +2 -0
- package/examples/jsm/nodes/display/BumpMapNode.js +35 -13
- package/examples/jsm/nodes/display/NormalMapNode.js +3 -1
- package/examples/jsm/nodes/display/ViewportNode.js +14 -4
- package/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.js +20 -6
- package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +8 -7
- package/examples/jsm/nodes/functions/BSDF/D_GGX.js +8 -3
- package/examples/jsm/nodes/functions/BSDF/Schlick_to_F0.js +8 -0
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +8 -0
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +93 -43
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +2 -2
- package/examples/jsm/nodes/lighting/AmbientLightNode.js +1 -1
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +19 -5
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +1 -1
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +0 -6
- package/examples/jsm/nodes/lighting/LightingContextNode.js +21 -57
- package/examples/jsm/nodes/lighting/LightsNode.js +62 -4
- package/examples/jsm/nodes/lighting/PointLightNode.js +1 -1
- package/examples/jsm/nodes/lighting/SpotLightNode.js +1 -1
- package/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +162 -0
- package/examples/jsm/nodes/materials/Line2NodeMaterial.js +70 -71
- package/examples/jsm/nodes/materials/LineDashedNodeMaterial.js +5 -5
- package/examples/jsm/nodes/materials/Materials.js +1 -0
- 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 +47 -20
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +6 -6
- package/examples/jsm/nodes/materials/NodeMaterial.js +17 -20
- package/examples/jsm/nodes/materialx/lib/mx_noise.js +5 -5
- package/examples/jsm/nodes/math/OperatorNode.js +5 -21
- package/examples/jsm/nodes/shadernode/ShaderNode.js +128 -9
- package/examples/jsm/nodes/utils/ArrayElementNode.js +2 -0
- package/examples/jsm/nodes/utils/DiscardNode.js +3 -2
- package/examples/jsm/nodes/utils/JoinNode.js +11 -1
- package/examples/jsm/nodes/utils/LoopNode.js +36 -24
- package/examples/jsm/nodes/utils/SplitNode.js +2 -0
- package/examples/jsm/objects/BatchedMesh.js +586 -0
- package/examples/jsm/objects/InstancedPoints.js +21 -0
- package/examples/jsm/objects/Lensflare.js +20 -0
- package/examples/jsm/objects/ReflectorForSSRPass.js +3 -0
- package/examples/jsm/objects/Refractor.js +3 -0
- package/examples/jsm/objects/Sky.js +5 -3
- package/examples/jsm/objects/Water.js +5 -2
- package/examples/jsm/objects/Water2.js +3 -0
- package/examples/jsm/physics/AmmoPhysics.js +21 -0
- package/examples/jsm/physics/RapierPhysics.js +21 -0
- package/examples/jsm/postprocessing/BokehPass.js +3 -2
- package/examples/jsm/postprocessing/LUTPass.js +2 -1
- package/examples/jsm/postprocessing/OutputPass.js +1 -0
- package/examples/jsm/postprocessing/Pass.js +14 -3
- package/examples/jsm/postprocessing/SAOPass.js +0 -1
- package/examples/jsm/postprocessing/SMAAPass.js +0 -2
- package/examples/jsm/postprocessing/TAARenderPass.js +1 -2
- package/examples/jsm/renderers/CSS3DRenderer.js +3 -9
- package/examples/jsm/renderers/SVGRenderer.js +9 -6
- package/examples/jsm/renderers/common/Bindings.js +1 -1
- package/examples/jsm/renderers/common/RenderObject.js +8 -1
- package/examples/jsm/renderers/common/RenderObjects.js +1 -1
- package/examples/jsm/renderers/common/Textures.js +4 -36
- package/examples/jsm/renderers/common/nodes/Nodes.js +53 -18
- package/examples/jsm/renderers/webgl/WebGLBackend.js +291 -50
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +88 -12
- package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +40 -5
- package/examples/jsm/renderers/webgl/utils/WebGLState.js +14 -2
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +2 -0
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +36 -4
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +2 -0
- package/examples/jsm/shaders/AfterimageShader.js +2 -0
- package/examples/jsm/shaders/BasicShader.js +2 -0
- package/examples/jsm/shaders/BlendShader.js +2 -0
- package/examples/jsm/shaders/BokehShader.js +2 -0
- package/examples/jsm/shaders/BokehShader2.js +4 -0
- package/examples/jsm/shaders/BrightnessContrastShader.js +2 -0
- package/examples/jsm/shaders/ColorCorrectionShader.js +2 -0
- package/examples/jsm/shaders/DOFMipMapShader.js +2 -0
- package/examples/jsm/shaders/DepthLimitedBlurShader.js +5 -0
- package/examples/jsm/shaders/FXAAShader.js +2 -0
- package/examples/jsm/shaders/FilmShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +2 -0
- package/examples/jsm/shaders/FreiChenShader.js +2 -0
- package/examples/jsm/shaders/GodRaysShader.js +8 -0
- package/examples/jsm/shaders/HalftoneShader.js +2 -0
- package/examples/jsm/shaders/HorizontalTiltShiftShader.js +2 -0
- package/examples/jsm/shaders/HueSaturationShader.js +2 -0
- package/examples/jsm/shaders/KaleidoShader.js +2 -0
- package/examples/jsm/shaders/LuminosityHighPassShader.js +2 -0
- package/examples/jsm/shaders/LuminosityShader.js +2 -0
- package/examples/jsm/shaders/MMDToonShader.js +2 -0
- package/examples/jsm/shaders/MirrorShader.js +2 -0
- package/examples/jsm/shaders/NormalMapShader.js +2 -0
- package/examples/jsm/shaders/OutputShader.js +4 -5
- package/examples/jsm/shaders/SAOShader.js +5 -0
- package/examples/jsm/shaders/SMAAShader.js +6 -0
- package/examples/jsm/shaders/SSAOShader.js +6 -0
- package/examples/jsm/shaders/SSRShader.js +6 -0
- package/examples/jsm/shaders/SobelOperatorShader.js +2 -0
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +2 -0
- package/examples/jsm/shaders/TechnicolorShader.js +2 -0
- package/examples/jsm/shaders/TriangleBlurShader.js +2 -0
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -0
- package/examples/jsm/shaders/VelocityShader.js +2 -0
- package/examples/jsm/shaders/VerticalTiltShiftShader.js +2 -0
- package/examples/jsm/shaders/WaterRefractionShader.js +2 -0
- package/examples/jsm/transpiler/AST.js +231 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +899 -0
- package/examples/jsm/transpiler/ShaderToyDecoder.js +49 -0
- package/examples/jsm/transpiler/TSLEncoder.js +611 -0
- package/examples/jsm/transpiler/Transpiler.js +18 -0
- package/examples/jsm/webxr/VRButton.js +1 -1
- package/examples/jsm/webxr/XRButton.js +7 -5
- package/examples/jsm/webxr/XREstimatedLight.js +1 -1
- package/package.json +4 -1
- package/src/constants.js +7 -1
- package/src/extras/PMREMGenerator.js +7 -1
- package/src/loaders/MaterialLoader.js +10 -2
- package/src/materials/Material.js +27 -13
- package/src/math/Box3.js +35 -18
- package/src/math/Vector3.js +11 -12
- package/src/objects/SkinnedMesh.js +6 -7
- package/src/renderers/WebGLRenderer.js +142 -25
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +8 -6
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +2 -2
- package/src/renderers/webgl/WebGLProgram.js +80 -50
- package/src/renderers/webgl/WebGLPrograms.js +3 -0
- package/src/renderers/webgl/WebGLState.js +25 -4
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +0 -76
- package/examples/jsm/nodes/accessors/LineMaterialNode.js +0 -29
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
export * from './animation/AnimationClipCreator.js';
|
|
2
|
+
export * from './animation/CCDIKSolver.js';
|
|
3
|
+
export * from './animation/MMDAnimationHelper.js';
|
|
4
|
+
export * from './animation/MMDPhysics.js';
|
|
5
|
+
|
|
6
|
+
export * from './cameras/CinematicCamera.js';
|
|
7
|
+
|
|
8
|
+
export { default as WebGL } from './capabilities/WebGL.js';
|
|
9
|
+
|
|
10
|
+
export * from './controls/ArcballControls.js';
|
|
11
|
+
export * from './controls/DragControls.js';
|
|
12
|
+
export * from './controls/FirstPersonControls.js';
|
|
13
|
+
export * from './controls/FlyControls.js';
|
|
14
|
+
export * from './controls/MapControls.js';
|
|
15
|
+
export * from './controls/OrbitControls.js';
|
|
16
|
+
export * from './controls/PointerLockControls.js';
|
|
17
|
+
export * from './controls/TrackballControls.js';
|
|
18
|
+
export * from './controls/TransformControls.js';
|
|
19
|
+
|
|
20
|
+
export * from './csm/CSM.js';
|
|
21
|
+
export * from './csm/CSMFrustum.js';
|
|
22
|
+
export * from './csm/CSMHelper.js';
|
|
23
|
+
export * from './csm/CSMShader.js';
|
|
24
|
+
|
|
25
|
+
export * as Curves from './curves/CurveExtras.js';
|
|
26
|
+
export * from './curves/NURBSCurve.js';
|
|
27
|
+
export * from './curves/NURBSSurface.js';
|
|
28
|
+
export * as NURBSUtils from './curves/NURBSUtils.js';
|
|
29
|
+
|
|
30
|
+
export * from './effects/AnaglyphEffect.js';
|
|
31
|
+
export * from './effects/AsciiEffect.js';
|
|
32
|
+
export * from './effects/OutlineEffect.js';
|
|
33
|
+
export * from './effects/ParallaxBarrierEffect.js';
|
|
34
|
+
export * from './effects/PeppersGhostEffect.js';
|
|
35
|
+
export * from './effects/StereoEffect.js';
|
|
36
|
+
|
|
37
|
+
export * from './environments/DebugEnvironment.js';
|
|
38
|
+
export * from './environments/RoomEnvironment.js';
|
|
39
|
+
|
|
40
|
+
export * from './exporters/DRACOExporter.js';
|
|
41
|
+
export * from './exporters/EXRExporter.js';
|
|
42
|
+
export * from './exporters/GLTFExporter.js';
|
|
43
|
+
export * from './exporters/KTX2Exporter.js';
|
|
44
|
+
export * from './exporters/MMDExporter.js';
|
|
45
|
+
export * from './exporters/OBJExporter.js';
|
|
46
|
+
export * from './exporters/PLYExporter.js';
|
|
47
|
+
export * from './exporters/STLExporter.js';
|
|
48
|
+
export * from './exporters/USDZExporter.js';
|
|
49
|
+
|
|
50
|
+
export * from './geometries/BoxLineGeometry.js';
|
|
51
|
+
export * from './geometries/ConvexGeometry.js';
|
|
52
|
+
export * from './geometries/DecalGeometry.js';
|
|
53
|
+
export * from './geometries/ParametricGeometries.js';
|
|
54
|
+
export * from './geometries/ParametricGeometry.js';
|
|
55
|
+
export * from './geometries/RoundedBoxGeometry.js';
|
|
56
|
+
export * from './geometries/TeapotGeometry.js';
|
|
57
|
+
export * from './geometries/TextGeometry.js';
|
|
58
|
+
|
|
59
|
+
export * from './helpers/LightProbeHelper.js';
|
|
60
|
+
export * from './helpers/OctreeHelper.js';
|
|
61
|
+
export * from './helpers/PositionalAudioHelper.js';
|
|
62
|
+
export * from './helpers/RectAreaLightHelper.js';
|
|
63
|
+
export * from './helpers/VertexNormalsHelper.js';
|
|
64
|
+
export * from './helpers/VertexTangentsHelper.js';
|
|
65
|
+
export * from './helpers/ViewHelper.js';
|
|
66
|
+
|
|
67
|
+
export * from './interactive/HTMLMesh.js';
|
|
68
|
+
export * from './interactive/InteractiveGroup.js';
|
|
69
|
+
export * from './interactive/SelectionBox.js';
|
|
70
|
+
export * from './interactive/SelectionHelper.js';
|
|
71
|
+
|
|
72
|
+
export { default as IESSpotLight } from './lights/IESSpotLight.js';
|
|
73
|
+
export * from './lights/LightProbeGenerator.js';
|
|
74
|
+
export * from './lights/RectAreaLightUniformsLib.js';
|
|
75
|
+
|
|
76
|
+
export * from './lines/Line2.js';
|
|
77
|
+
export * from './lines/LineGeometry.js';
|
|
78
|
+
export * from './lines/LineMaterial.js';
|
|
79
|
+
export * from './lines/LineSegments2.js';
|
|
80
|
+
export * from './lines/LineSegmentsGeometry.js';
|
|
81
|
+
export * from './lines/Wireframe.js';
|
|
82
|
+
export * from './lines/WireframeGeometry2.js';
|
|
83
|
+
|
|
84
|
+
export * from './loaders/3DMLoader.js';
|
|
85
|
+
export * from './loaders/3MFLoader.js';
|
|
86
|
+
export * from './loaders/AMFLoader.js';
|
|
87
|
+
export * from './loaders/BVHLoader.js';
|
|
88
|
+
export * from './loaders/ColladaLoader.js';
|
|
89
|
+
export * from './loaders/DDSLoader.js';
|
|
90
|
+
export * from './loaders/DRACOLoader.js';
|
|
91
|
+
export * from './loaders/EXRLoader.js';
|
|
92
|
+
export * from './loaders/FBXLoader.js';
|
|
93
|
+
export * from './loaders/FontLoader.js';
|
|
94
|
+
export * from './loaders/GCodeLoader.js';
|
|
95
|
+
export * from './loaders/GLTFLoader.js';
|
|
96
|
+
export * from './loaders/HDRCubeTextureLoader.js';
|
|
97
|
+
export * from './loaders/IESLoader.js';
|
|
98
|
+
export * from './loaders/KMZLoader.js';
|
|
99
|
+
export * from './loaders/KTX2Loader.js';
|
|
100
|
+
export * from './loaders/KTXLoader.js';
|
|
101
|
+
export * from './loaders/LDrawLoader.js';
|
|
102
|
+
export * from './loaders/LUT3dlLoader.js';
|
|
103
|
+
export * from './loaders/LUTCubeLoader.js';
|
|
104
|
+
export * from './loaders/LWOLoader.js';
|
|
105
|
+
export * from './loaders/LogLuvLoader.js';
|
|
106
|
+
export * from './loaders/LottieLoader.js';
|
|
107
|
+
export * from './loaders/MD2Loader.js';
|
|
108
|
+
export * from './loaders/MDDLoader.js';
|
|
109
|
+
export * from './loaders/MMDLoader.js';
|
|
110
|
+
export * from './loaders/MTLLoader.js';
|
|
111
|
+
export * from './loaders/NRRDLoader.js';
|
|
112
|
+
export * from './loaders/OBJLoader.js';
|
|
113
|
+
export * from './loaders/PCDLoader.js';
|
|
114
|
+
export * from './loaders/PDBLoader.js';
|
|
115
|
+
export * from './loaders/PLYLoader.js';
|
|
116
|
+
export * from './loaders/PVRLoader.js';
|
|
117
|
+
export * from './loaders/RGBELoader.js';
|
|
118
|
+
export * from './loaders/RGBMLoader.js';
|
|
119
|
+
export * from './loaders/STLLoader.js';
|
|
120
|
+
export * from './loaders/SVGLoader.js';
|
|
121
|
+
export * from './loaders/TDSLoader.js';
|
|
122
|
+
export * from './loaders/TGALoader.js';
|
|
123
|
+
export * from './loaders/TIFFLoader.js';
|
|
124
|
+
export * from './loaders/TTFLoader.js';
|
|
125
|
+
export * from './loaders/TiltLoader.js';
|
|
126
|
+
export * from './loaders/USDZLoader.js';
|
|
127
|
+
export * from './loaders/VOXLoader.js';
|
|
128
|
+
export * from './loaders/VRMLLoader.js';
|
|
129
|
+
export * from './loaders/VTKLoader.js';
|
|
130
|
+
export * from './loaders/XYZLoader.js';
|
|
131
|
+
|
|
132
|
+
export * from './materials/MeshGouraudMaterial.js';
|
|
133
|
+
|
|
134
|
+
export * from './math/Capsule.js';
|
|
135
|
+
export * from './math/ColorConverter.js';
|
|
136
|
+
export * from './math/ConvexHull.js';
|
|
137
|
+
export * from './math/ImprovedNoise.js';
|
|
138
|
+
export * from './math/Lut.js';
|
|
139
|
+
export * from './math/MeshSurfaceSampler.js';
|
|
140
|
+
export * from './math/OBB.js';
|
|
141
|
+
export * from './math/Octree.js';
|
|
142
|
+
export * from './math/SimplexNoise.js';
|
|
143
|
+
|
|
144
|
+
export * from './misc/ConvexObjectBreaker.js';
|
|
145
|
+
export * from './misc/GPUComputationRenderer.js';
|
|
146
|
+
export * from './misc/Gyroscope.js';
|
|
147
|
+
export * from './misc/MD2Character.js';
|
|
148
|
+
export * from './misc/MD2CharacterComplex.js';
|
|
149
|
+
export * from './misc/MorphAnimMesh.js';
|
|
150
|
+
export * from './misc/MorphBlendMesh.js';
|
|
151
|
+
export * from './misc/ProgressiveLightMap.js';
|
|
152
|
+
export * from './misc/RollerCoaster.js';
|
|
153
|
+
export * from './misc/TubePainter.js';
|
|
154
|
+
export * from './misc/Volume.js';
|
|
155
|
+
export * from './misc/VolumeSlice.js';
|
|
156
|
+
|
|
157
|
+
export * from './modifiers/CurveModifier.js';
|
|
158
|
+
export * from './modifiers/EdgeSplitModifier.js';
|
|
159
|
+
export * from './modifiers/SimplifyModifier.js';
|
|
160
|
+
export * from './modifiers/TessellateModifier.js';
|
|
161
|
+
|
|
162
|
+
export * from './objects/BatchedMesh.js';
|
|
163
|
+
export * from './objects/GroundProjectedSkybox.js';
|
|
164
|
+
export * from './objects/Lensflare.js';
|
|
165
|
+
export * from './objects/MarchingCubes.js';
|
|
166
|
+
export * from './objects/Reflector.js';
|
|
167
|
+
export * from './objects/ReflectorForSSRPass.js';
|
|
168
|
+
export * from './objects/Refractor.js';
|
|
169
|
+
export * from './objects/ShadowMesh.js';
|
|
170
|
+
export * from './objects/Sky.js';
|
|
171
|
+
export * from './objects/Water.js';
|
|
172
|
+
export { Water as Water2 } from './objects/Water2.js';
|
|
173
|
+
|
|
174
|
+
export * from './physics/AmmoPhysics.js';
|
|
175
|
+
export * from './physics/RapierPhysics.js';
|
|
176
|
+
|
|
177
|
+
export * from './postprocessing/AfterimagePass.js';
|
|
178
|
+
export * from './postprocessing/BloomPass.js';
|
|
179
|
+
export * from './postprocessing/BokehPass.js';
|
|
180
|
+
export * from './postprocessing/ClearPass.js';
|
|
181
|
+
export * from './postprocessing/CubeTexturePass.js';
|
|
182
|
+
export * from './postprocessing/DotScreenPass.js';
|
|
183
|
+
export * from './postprocessing/EffectComposer.js';
|
|
184
|
+
export * from './postprocessing/FilmPass.js';
|
|
185
|
+
export * from './postprocessing/GlitchPass.js';
|
|
186
|
+
export * from './postprocessing/HalftonePass.js';
|
|
187
|
+
export * from './postprocessing/LUTPass.js';
|
|
188
|
+
export * from './postprocessing/MaskPass.js';
|
|
189
|
+
export * from './postprocessing/OutlinePass.js';
|
|
190
|
+
export * from './postprocessing/OutputPass.js';
|
|
191
|
+
export * from './postprocessing/Pass.js';
|
|
192
|
+
export * from './postprocessing/RenderPass.js';
|
|
193
|
+
export * from './postprocessing/RenderPixelatedPass.js';
|
|
194
|
+
export * from './postprocessing/SAOPass.js';
|
|
195
|
+
export * from './postprocessing/SMAAPass.js';
|
|
196
|
+
export * from './postprocessing/SSAARenderPass.js';
|
|
197
|
+
export * from './postprocessing/SSAOPass.js';
|
|
198
|
+
export * from './postprocessing/SSRPass.js';
|
|
199
|
+
export * from './postprocessing/SavePass.js';
|
|
200
|
+
export * from './postprocessing/ShaderPass.js';
|
|
201
|
+
export * from './postprocessing/TAARenderPass.js';
|
|
202
|
+
export * from './postprocessing/TexturePass.js';
|
|
203
|
+
export * from './postprocessing/UnrealBloomPass.js';
|
|
204
|
+
|
|
205
|
+
export * from './renderers/CSS2DRenderer.js';
|
|
206
|
+
export * from './renderers/CSS3DRenderer.js';
|
|
207
|
+
export * from './renderers/Projector.js';
|
|
208
|
+
export * from './renderers/SVGRenderer.js';
|
|
209
|
+
|
|
210
|
+
export * from './shaders/ACESFilmicToneMappingShader.js';
|
|
211
|
+
export * from './shaders/AfterimageShader.js';
|
|
212
|
+
export * from './shaders/BasicShader.js';
|
|
213
|
+
export * from './shaders/BleachBypassShader.js';
|
|
214
|
+
export * from './shaders/BlendShader.js';
|
|
215
|
+
export * from './shaders/BokehShader.js';
|
|
216
|
+
export { BokehShader as BokehShader2 } from './shaders/BokehShader2.js';
|
|
217
|
+
export * from './shaders/BrightnessContrastShader.js';
|
|
218
|
+
export * from './shaders/ColorCorrectionShader.js';
|
|
219
|
+
export * from './shaders/ColorifyShader.js';
|
|
220
|
+
export * from './shaders/ConvolutionShader.js';
|
|
221
|
+
export * from './shaders/CopyShader.js';
|
|
222
|
+
export * from './shaders/DOFMipMapShader.js';
|
|
223
|
+
export * from './shaders/DepthLimitedBlurShader.js';
|
|
224
|
+
export * from './shaders/DigitalGlitch.js';
|
|
225
|
+
export * from './shaders/DotScreenShader.js';
|
|
226
|
+
export * from './shaders/ExposureShader.js';
|
|
227
|
+
export * from './shaders/FXAAShader.js';
|
|
228
|
+
export * from './shaders/FilmShader.js';
|
|
229
|
+
export * from './shaders/FocusShader.js';
|
|
230
|
+
export * from './shaders/FreiChenShader.js';
|
|
231
|
+
export * from './shaders/GammaCorrectionShader.js';
|
|
232
|
+
export * from './shaders/GodRaysShader.js';
|
|
233
|
+
export * from './shaders/HalftoneShader.js';
|
|
234
|
+
export * from './shaders/HorizontalBlurShader.js';
|
|
235
|
+
export * from './shaders/HorizontalTiltShiftShader.js';
|
|
236
|
+
export * from './shaders/HueSaturationShader.js';
|
|
237
|
+
export * from './shaders/KaleidoShader.js';
|
|
238
|
+
export * from './shaders/LuminosityHighPassShader.js';
|
|
239
|
+
export * from './shaders/LuminosityShader.js';
|
|
240
|
+
export * from './shaders/MMDToonShader.js';
|
|
241
|
+
export * from './shaders/MirrorShader.js';
|
|
242
|
+
export * from './shaders/NormalMapShader.js';
|
|
243
|
+
export * from './shaders/OutputShader.js';
|
|
244
|
+
export * from './shaders/RGBShiftShader.js';
|
|
245
|
+
export * from './shaders/SAOShader.js';
|
|
246
|
+
export * from './shaders/SMAAShader.js';
|
|
247
|
+
export * from './shaders/SSAOShader.js';
|
|
248
|
+
export * from './shaders/SSRShader.js';
|
|
249
|
+
export * from './shaders/SepiaShader.js';
|
|
250
|
+
export * from './shaders/SobelOperatorShader.js';
|
|
251
|
+
export * from './shaders/SubsurfaceScatteringShader.js';
|
|
252
|
+
export * from './shaders/TechnicolorShader.js';
|
|
253
|
+
export * from './shaders/ToonShader.js';
|
|
254
|
+
export * from './shaders/TriangleBlurShader.js';
|
|
255
|
+
export * from './shaders/UnpackDepthRGBAShader.js';
|
|
256
|
+
export * from './shaders/VelocityShader.js';
|
|
257
|
+
export * from './shaders/VerticalBlurShader.js';
|
|
258
|
+
export * from './shaders/VerticalTiltShiftShader.js';
|
|
259
|
+
export * from './shaders/VignetteShader.js';
|
|
260
|
+
export * from './shaders/VolumeShader.js';
|
|
261
|
+
export * from './shaders/WaterRefractionShader.js';
|
|
262
|
+
|
|
263
|
+
export * from './textures/FlakesTexture.js';
|
|
264
|
+
|
|
265
|
+
export * as BufferGeometryUtils from './utils/BufferGeometryUtils.js';
|
|
266
|
+
export * as CameraUtils from './utils/CameraUtils.js';
|
|
267
|
+
export * from './utils/GPUStatsPanel.js';
|
|
268
|
+
export * as GeometryCompressionUtils from './utils/GeometryCompressionUtils.js';
|
|
269
|
+
export * as GeometryUtils from './utils/GeometryUtils.js';
|
|
270
|
+
export * from './utils/LDrawUtils.js';
|
|
271
|
+
export * from './utils/PackedPhongMaterial.js';
|
|
272
|
+
export * as SceneUtils from './utils/SceneUtils.js';
|
|
273
|
+
export * from './utils/ShadowMapViewer.js';
|
|
274
|
+
export * as SkeletonUtils from './utils/SkeletonUtils.js';
|
|
275
|
+
export * from './utils/TextureUtils.js';
|
|
276
|
+
export * from './utils/UVsDebug.js';
|
|
277
|
+
export * from './utils/WorkerPool.js';
|
|
278
|
+
|
|
279
|
+
export * from './webxr/ARButton.js';
|
|
280
|
+
export * from './webxr/OculusHandModel.js';
|
|
281
|
+
export * from './webxr/OculusHandPointerModel.js';
|
|
282
|
+
export * from './webxr/Text2D.js';
|
|
283
|
+
export * from './webxr/VRButton.js';
|
|
284
|
+
export * from './webxr/XRButton.js';
|
|
285
|
+
export * from './webxr/XRControllerModelFactory.js';
|
|
286
|
+
export * from './webxr/XREstimatedLight.js';
|
|
287
|
+
export * from './webxr/XRHandMeshModel.js';
|
|
288
|
+
export * from './webxr/XRHandModelFactory.js';
|
|
289
|
+
export * from './webxr/XRHandPrimitiveModel.js';
|
|
290
|
+
export * from './webxr/XRPlanes.js';
|
|
@@ -186,6 +186,29 @@ class FlyControls extends EventDispatcher {
|
|
|
186
186
|
|
|
187
187
|
};
|
|
188
188
|
|
|
189
|
+
this.pointercancel = function () {
|
|
190
|
+
|
|
191
|
+
if ( this.enabled === false ) return;
|
|
192
|
+
|
|
193
|
+
if ( this.dragToLook ) {
|
|
194
|
+
|
|
195
|
+
this.status = 0;
|
|
196
|
+
|
|
197
|
+
this.moveState.yawLeft = this.moveState.pitchDown = 0;
|
|
198
|
+
|
|
199
|
+
} else {
|
|
200
|
+
|
|
201
|
+
this.moveState.forward = 0;
|
|
202
|
+
this.moveState.back = 0;
|
|
203
|
+
|
|
204
|
+
this.updateMovementVector();
|
|
205
|
+
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
this.updateRotationVector();
|
|
209
|
+
|
|
210
|
+
};
|
|
211
|
+
|
|
189
212
|
this.contextMenu = function ( event ) {
|
|
190
213
|
|
|
191
214
|
if ( this.enabled === false ) return;
|
|
@@ -269,6 +292,7 @@ class FlyControls extends EventDispatcher {
|
|
|
269
292
|
this.domElement.removeEventListener( 'pointerdown', _pointerdown );
|
|
270
293
|
this.domElement.removeEventListener( 'pointermove', _pointermove );
|
|
271
294
|
this.domElement.removeEventListener( 'pointerup', _pointerup );
|
|
295
|
+
this.domElement.removeEventListener( 'pointercancel', _pointercancel );
|
|
272
296
|
|
|
273
297
|
window.removeEventListener( 'keydown', _keydown );
|
|
274
298
|
window.removeEventListener( 'keyup', _keyup );
|
|
@@ -279,6 +303,7 @@ class FlyControls extends EventDispatcher {
|
|
|
279
303
|
const _pointermove = this.pointermove.bind( this );
|
|
280
304
|
const _pointerdown = this.pointerdown.bind( this );
|
|
281
305
|
const _pointerup = this.pointerup.bind( this );
|
|
306
|
+
const _pointercancel = this.pointercancel.bind( this );
|
|
282
307
|
const _keydown = this.keydown.bind( this );
|
|
283
308
|
const _keyup = this.keyup.bind( this );
|
|
284
309
|
|
|
@@ -286,6 +311,7 @@ class FlyControls extends EventDispatcher {
|
|
|
286
311
|
this.domElement.addEventListener( 'pointerdown', _pointerdown );
|
|
287
312
|
this.domElement.addEventListener( 'pointermove', _pointermove );
|
|
288
313
|
this.domElement.addEventListener( 'pointerup', _pointerup );
|
|
314
|
+
this.domElement.addEventListener( 'pointercancel', _pointercancel );
|
|
289
315
|
|
|
290
316
|
window.addEventListener( 'keydown', _keydown );
|
|
291
317
|
window.addEventListener( 'keyup', _keyup );
|
|
@@ -41,6 +41,9 @@ class OrbitControls extends EventDispatcher {
|
|
|
41
41
|
// "target" sets the location of focus, where the object orbits around
|
|
42
42
|
this.target = new Vector3();
|
|
43
43
|
|
|
44
|
+
// Sets the 3D cursor (similar to Blender), from which the maxTargetRadius takes effect
|
|
45
|
+
this.cursor = new Vector3();
|
|
46
|
+
|
|
44
47
|
// How far you can dolly in and out ( PerspectiveCamera only )
|
|
45
48
|
this.minDistance = 0;
|
|
46
49
|
this.maxDistance = Infinity;
|
|
@@ -49,6 +52,10 @@ class OrbitControls extends EventDispatcher {
|
|
|
49
52
|
this.minZoom = 0;
|
|
50
53
|
this.maxZoom = Infinity;
|
|
51
54
|
|
|
55
|
+
// Limit camera target within a spherical area around the cursor
|
|
56
|
+
this.minTargetRadius = 0;
|
|
57
|
+
this.maxTargetRadius = Infinity;
|
|
58
|
+
|
|
52
59
|
// How far you can orbit vertically, upper and lower limits.
|
|
53
60
|
// Range is 0 to Math.PI radians.
|
|
54
61
|
this.minPolarAngle = 0; // radians
|
|
@@ -249,6 +256,11 @@ class OrbitControls extends EventDispatcher {
|
|
|
249
256
|
|
|
250
257
|
}
|
|
251
258
|
|
|
259
|
+
// Limit the target distance from the cursor to create a sphere around the center of interest
|
|
260
|
+
scope.target.sub( scope.cursor );
|
|
261
|
+
scope.target.clampLength( scope.minTargetRadius, scope.maxTargetRadius );
|
|
262
|
+
scope.target.add( scope.cursor );
|
|
263
|
+
|
|
252
264
|
// adjust the camera position based on zoom only if we're not zooming to the cursor or if it's an ortho camera
|
|
253
265
|
// we adjust zoom later in these cases
|
|
254
266
|
if ( scope.zoomToCursor && performCursorZoom || scope.object.isOrthographicCamera ) {
|
|
@@ -261,7 +273,6 @@ class OrbitControls extends EventDispatcher {
|
|
|
261
273
|
|
|
262
274
|
}
|
|
263
275
|
|
|
264
|
-
|
|
265
276
|
offset.setFromSpherical( spherical );
|
|
266
277
|
|
|
267
278
|
// rotate offset back to "camera-up-vector-is-up" space
|
|
@@ -465,17 +465,9 @@ class TransformControls extends Object3D {
|
|
|
465
465
|
|
|
466
466
|
const ROTATION_SPEED = 20 / this.worldPosition.distanceTo( _tempVector.setFromMatrixPosition( this.camera.matrixWorld ) );
|
|
467
467
|
|
|
468
|
-
|
|
468
|
+
let _inPlaneRotation = false;
|
|
469
469
|
|
|
470
|
-
|
|
471
|
-
this.rotationAngle = this.pointEnd.angleTo( this.pointStart );
|
|
472
|
-
|
|
473
|
-
this._startNorm.copy( this.pointStart ).normalize();
|
|
474
|
-
this._endNorm.copy( this.pointEnd ).normalize();
|
|
475
|
-
|
|
476
|
-
this.rotationAngle *= ( this._endNorm.cross( this._startNorm ).dot( this.eye ) < 0 ? 1 : - 1 );
|
|
477
|
-
|
|
478
|
-
} else if ( axis === 'XYZE' ) {
|
|
470
|
+
if ( axis === 'XYZE' ) {
|
|
479
471
|
|
|
480
472
|
this.rotationAxis.copy( this._offset ).cross( this.eye ).normalize();
|
|
481
473
|
this.rotationAngle = this._offset.dot( _tempVector.copy( this.rotationAxis ).cross( this.eye ) ) * ROTATION_SPEED;
|
|
@@ -492,7 +484,31 @@ class TransformControls extends Object3D {
|
|
|
492
484
|
|
|
493
485
|
}
|
|
494
486
|
|
|
495
|
-
|
|
487
|
+
_tempVector.cross( this.eye );
|
|
488
|
+
|
|
489
|
+
// When _tempVector is 0 after cross with this.eye the vectors are parallel and should use in-plane rotation logic.
|
|
490
|
+
if ( _tempVector.length() === 0 ) {
|
|
491
|
+
|
|
492
|
+
_inPlaneRotation = true;
|
|
493
|
+
|
|
494
|
+
} else {
|
|
495
|
+
|
|
496
|
+
this.rotationAngle = this._offset.dot( _tempVector.normalize() ) * ROTATION_SPEED;
|
|
497
|
+
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
if ( axis === 'E' || _inPlaneRotation ) {
|
|
504
|
+
|
|
505
|
+
this.rotationAxis.copy( this.eye );
|
|
506
|
+
this.rotationAngle = this.pointEnd.angleTo( this.pointStart );
|
|
507
|
+
|
|
508
|
+
this._startNorm.copy( this.pointStart ).normalize();
|
|
509
|
+
this._endNorm.copy( this.pointEnd ).normalize();
|
|
510
|
+
|
|
511
|
+
this.rotationAngle *= ( this._endNorm.cross( this._startNorm ).dot( this.eye ) < 0 ? 1 : - 1 );
|
|
496
512
|
|
|
497
513
|
}
|
|
498
514
|
|
|
@@ -6,7 +6,7 @@ vec3 geometryPosition = - vViewPosition;
|
|
|
6
6
|
vec3 geometryNormal = normal;
|
|
7
7
|
vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
|
|
8
8
|
|
|
9
|
-
vec3 geometryClearcoatNormal;
|
|
9
|
+
vec3 geometryClearcoatNormal = vec3( 0.0 );
|
|
10
10
|
|
|
11
11
|
#ifdef USE_CLEARCOAT
|
|
12
12
|
|
|
@@ -22,7 +22,8 @@ import {
|
|
|
22
22
|
Source,
|
|
23
23
|
SRGBColorSpace,
|
|
24
24
|
CompressedTexture,
|
|
25
|
-
Vector3
|
|
25
|
+
Vector3,
|
|
26
|
+
Quaternion,
|
|
26
27
|
} from 'three';
|
|
27
28
|
import { decompress } from './../utils/TextureUtils.js';
|
|
28
29
|
|
|
@@ -134,6 +135,12 @@ class GLTFExporter {
|
|
|
134
135
|
|
|
135
136
|
} );
|
|
136
137
|
|
|
138
|
+
this.register( function ( writer ) {
|
|
139
|
+
|
|
140
|
+
return new GLTFMeshGpuInstancing( writer );
|
|
141
|
+
|
|
142
|
+
} );
|
|
143
|
+
|
|
137
144
|
}
|
|
138
145
|
|
|
139
146
|
register( callback ) {
|
|
@@ -1165,7 +1172,7 @@ class GLTFWriter {
|
|
|
1165
1172
|
}
|
|
1166
1173
|
|
|
1167
1174
|
if ( start === undefined ) start = 0;
|
|
1168
|
-
if ( count === undefined ) count = attribute.count;
|
|
1175
|
+
if ( count === undefined || count === Infinity ) count = attribute.count;
|
|
1169
1176
|
|
|
1170
1177
|
// Skip creating an accessor if the attribute doesn't have data to export
|
|
1171
1178
|
if ( count === 0 ) return null;
|
|
@@ -1639,6 +1646,8 @@ class GLTFWriter {
|
|
|
1639
1646
|
const nameConversion = {
|
|
1640
1647
|
uv: 'TEXCOORD_0',
|
|
1641
1648
|
uv1: 'TEXCOORD_1',
|
|
1649
|
+
uv2: 'TEXCOORD_2',
|
|
1650
|
+
uv3: 'TEXCOORD_3',
|
|
1642
1651
|
color: 'COLOR_0',
|
|
1643
1652
|
skinWeight: 'WEIGHTS_0',
|
|
1644
1653
|
skinIndex: 'JOINTS_0'
|
|
@@ -2962,6 +2971,67 @@ class GLTFMaterialsEmissiveStrengthExtension {
|
|
|
2962
2971
|
|
|
2963
2972
|
}
|
|
2964
2973
|
|
|
2974
|
+
/**
|
|
2975
|
+
* GPU Instancing Extension
|
|
2976
|
+
*
|
|
2977
|
+
* Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing
|
|
2978
|
+
*/
|
|
2979
|
+
class GLTFMeshGpuInstancing {
|
|
2980
|
+
|
|
2981
|
+
constructor( writer ) {
|
|
2982
|
+
|
|
2983
|
+
this.writer = writer;
|
|
2984
|
+
this.name = 'EXT_mesh_gpu_instancing';
|
|
2985
|
+
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
writeNode( object, nodeDef ) {
|
|
2989
|
+
|
|
2990
|
+
if ( ! object.isInstancedMesh ) return;
|
|
2991
|
+
|
|
2992
|
+
const writer = this.writer;
|
|
2993
|
+
|
|
2994
|
+
const mesh = object;
|
|
2995
|
+
|
|
2996
|
+
const translationAttr = new Float32Array( mesh.count * 3 );
|
|
2997
|
+
const rotationAttr = new Float32Array( mesh.count * 4 );
|
|
2998
|
+
const scaleAttr = new Float32Array( mesh.count * 3 );
|
|
2999
|
+
|
|
3000
|
+
const matrix = new Matrix4();
|
|
3001
|
+
const position = new Vector3();
|
|
3002
|
+
const quaternion = new Quaternion();
|
|
3003
|
+
const scale = new Vector3();
|
|
3004
|
+
|
|
3005
|
+
for ( let i = 0; i < mesh.count; i ++ ) {
|
|
3006
|
+
|
|
3007
|
+
mesh.getMatrixAt( i, matrix );
|
|
3008
|
+
matrix.decompose( position, quaternion, scale );
|
|
3009
|
+
|
|
3010
|
+
position.toArray( translationAttr, i * 3 );
|
|
3011
|
+
quaternion.toArray( rotationAttr, i * 4 );
|
|
3012
|
+
scale.toArray( scaleAttr, i * 3 );
|
|
3013
|
+
|
|
3014
|
+
}
|
|
3015
|
+
|
|
3016
|
+
const attributes = {
|
|
3017
|
+
TRANSLATION: writer.processAccessor( new BufferAttribute( translationAttr, 3 ) ),
|
|
3018
|
+
ROTATION: writer.processAccessor( new BufferAttribute( rotationAttr, 4 ) ),
|
|
3019
|
+
SCALE: writer.processAccessor( new BufferAttribute( scaleAttr, 3 ) ),
|
|
3020
|
+
};
|
|
3021
|
+
|
|
3022
|
+
if ( mesh.instanceColor )
|
|
3023
|
+
attributes._COLOR_0 = writer.processAccessor( mesh.instanceColor );
|
|
3024
|
+
|
|
3025
|
+
nodeDef.extensions = nodeDef.extensions || {};
|
|
3026
|
+
nodeDef.extensions[ this.name ] = { attributes };
|
|
3027
|
+
|
|
3028
|
+
writer.extensionsUsed[ this.name ] = true;
|
|
3029
|
+
writer.extensionsRequired[ this.name ] = true;
|
|
3030
|
+
|
|
3031
|
+
}
|
|
3032
|
+
|
|
3033
|
+
}
|
|
3034
|
+
|
|
2965
3035
|
/**
|
|
2966
3036
|
* Static utility functions
|
|
2967
3037
|
*/
|