super-three 0.141.0 → 0.144.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.
Files changed (353) hide show
  1. package/README.md +8 -8
  2. package/build/three.cjs +1558 -1034
  3. package/build/three.js +1558 -1034
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2012 -1243
  6. package/examples/js/animation/MMDPhysics.js +1 -16
  7. package/examples/js/controls/ArcballControls.js +16 -3
  8. package/examples/js/controls/FirstPersonControls.js +0 -7
  9. package/examples/js/controls/FlyControls.js +0 -8
  10. package/examples/js/controls/OrbitControls.js +0 -4
  11. package/examples/js/controls/PointerLockControls.js +0 -8
  12. package/examples/js/controls/TrackballControls.js +0 -2
  13. package/examples/js/controls/TransformControls.js +20 -16
  14. package/examples/js/effects/AnaglyphEffect.js +2 -2
  15. package/examples/js/effects/OutlineEffect.js +4 -24
  16. package/examples/js/effects/ParallaxBarrierEffect.js +2 -2
  17. package/examples/js/effects/PeppersGhostEffect.js +2 -2
  18. package/examples/js/effects/StereoEffect.js +2 -2
  19. package/examples/js/environments/RoomEnvironment.js +22 -0
  20. package/examples/js/exporters/ColladaExporter.js +4 -13
  21. package/examples/js/exporters/DRACOExporter.js +0 -12
  22. package/examples/js/exporters/GLTFExporter.js +28 -29
  23. package/examples/js/exporters/OBJExporter.js +2 -23
  24. package/examples/js/exporters/PLYExporter.js +12 -24
  25. package/examples/js/exporters/STLExporter.js +0 -7
  26. package/examples/js/exporters/USDZExporter.js +6 -0
  27. package/examples/js/geometries/ConvexGeometry.js +1 -1
  28. package/examples/js/geometries/ParametricGeometry.js +1 -8
  29. package/examples/js/interactive/SelectionHelper.js +2 -0
  30. package/examples/js/libs/ktx-parse.umd.js +1 -0
  31. package/examples/js/libs/meshopt_decoder.js +98 -32
  32. package/examples/js/loaders/ColladaLoader.js +1 -0
  33. package/examples/js/loaders/DRACOLoader.js +2 -25
  34. package/examples/js/loaders/EXRLoader.js +2 -13
  35. package/examples/js/loaders/FBXLoader.js +10 -3
  36. package/examples/js/loaders/FontLoader.js +3 -16
  37. package/examples/js/loaders/GLTFLoader.js +52 -36
  38. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -11
  39. package/examples/js/loaders/LDrawLoader.js +139 -74
  40. package/examples/js/loaders/OBJLoader.js +7 -13
  41. package/examples/js/loaders/PCDLoader.js +59 -14
  42. package/examples/js/loaders/PLYLoader.js +3 -3
  43. package/examples/js/loaders/SVGLoader.js +4 -3
  44. package/examples/js/loaders/TIFFLoader.js +31 -0
  45. package/examples/js/loaders/VRMLLoader.js +33 -24
  46. package/examples/js/loaders/VTKLoader.js +1 -1
  47. package/examples/js/loaders/lwo/LWO2Parser.js +8 -7
  48. package/examples/js/loaders/lwo/LWO3Parser.js +8 -7
  49. package/examples/js/materials/MeshGouraudMaterial.js +385 -0
  50. package/examples/js/math/ColorConverter.js +0 -50
  51. package/examples/js/misc/GPUComputationRenderer.js +23 -0
  52. package/examples/js/misc/Volume.js +198 -190
  53. package/examples/js/misc/VolumeSlice.js +90 -88
  54. package/examples/js/modifiers/SimplifyModifier.js +1 -1
  55. package/examples/js/objects/GroundProjectedEnv.js +193 -0
  56. package/examples/js/objects/Reflector.js +9 -2
  57. package/examples/js/objects/ReflectorForSSRPass.js +3 -4
  58. package/examples/js/objects/Refractor.js +10 -4
  59. package/examples/js/objects/ShadowMesh.js +5 -1
  60. package/examples/js/postprocessing/OutlinePass.js +5 -3
  61. package/examples/js/renderers/CSS2DRenderer.js +2 -2
  62. package/examples/js/renderers/CSS3DRenderer.js +2 -2
  63. package/examples/js/renderers/Projector.js +2 -23
  64. package/examples/js/shaders/LuminosityShader.js +1 -1
  65. package/examples/js/shaders/MMDToonShader.js +6 -2
  66. package/examples/js/shaders/ToneMapShader.js +1 -1
  67. package/examples/js/utils/BufferGeometryUtils.js +1 -1
  68. package/examples/js/utils/GeometryUtils.js +2 -18
  69. package/examples/js/utils/PackedPhongMaterial.js +1 -1
  70. package/examples/js/utils/SceneUtils.js +0 -16
  71. package/examples/jsm/animation/MMDPhysics.js +3 -22
  72. package/examples/jsm/controls/ArcballControls.js +17 -2
  73. package/examples/jsm/controls/FirstPersonControls.js +0 -7
  74. package/examples/jsm/controls/FlyControls.js +0 -7
  75. package/examples/jsm/controls/OrbitControls.js +0 -5
  76. package/examples/jsm/controls/PointerLockControls.js +0 -7
  77. package/examples/jsm/controls/TrackballControls.js +0 -3
  78. package/examples/jsm/controls/TransformControls.js +18 -16
  79. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  80. package/examples/jsm/effects/OutlineEffect.js +4 -25
  81. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  82. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  83. package/examples/jsm/effects/StereoEffect.js +2 -2
  84. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  85. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  86. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  87. package/examples/jsm/exporters/GLTFExporter.js +29 -31
  88. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  89. package/examples/jsm/exporters/OBJExporter.js +0 -18
  90. package/examples/jsm/exporters/PLYExporter.js +14 -22
  91. package/examples/jsm/exporters/STLExporter.js +1 -9
  92. package/examples/jsm/exporters/USDZExporter.js +14 -3
  93. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  94. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  95. package/examples/jsm/interactive/HTMLMesh.js +9 -9
  96. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  97. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  98. package/examples/jsm/libs/utif.module.js +1579 -0
  99. package/examples/jsm/libs/zstddec.module.js +1 -0
  100. package/examples/jsm/loaders/ColladaLoader.js +1 -0
  101. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  102. package/examples/jsm/loaders/EXRLoader.js +3 -13
  103. package/examples/jsm/loaders/FBXLoader.js +10 -3
  104. package/examples/jsm/loaders/FontLoader.js +3 -16
  105. package/examples/jsm/loaders/GLTFLoader.js +52 -36
  106. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  107. package/examples/jsm/loaders/KTX2Loader.js +192 -30
  108. package/examples/jsm/loaders/LDrawLoader.js +135 -74
  109. package/examples/jsm/loaders/OBJLoader.js +6 -14
  110. package/examples/jsm/loaders/PCDLoader.js +59 -13
  111. package/examples/jsm/loaders/PLYLoader.js +3 -3
  112. package/examples/jsm/loaders/RGBELoader.js +1 -1
  113. package/examples/jsm/loaders/SVGLoader.js +4 -3
  114. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  115. package/examples/jsm/loaders/USDZLoader.js +393 -0
  116. package/examples/jsm/loaders/VRMLLoader.js +23 -25
  117. package/examples/jsm/loaders/VTKLoader.js +1 -1
  118. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  119. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  120. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  121. package/examples/jsm/math/ColorConverter.js +1 -49
  122. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  123. package/examples/jsm/misc/Volume.js +169 -171
  124. package/examples/jsm/misc/VolumeSlice.js +78 -80
  125. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  126. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  127. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  128. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  129. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  130. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  131. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  132. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  133. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  134. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  135. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  136. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  137. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  138. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  139. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +1 -1
  140. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  141. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +1 -1
  142. package/examples/jsm/node-editor/math/AngleEditor.js +1 -1
  143. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  144. package/examples/jsm/node-editor/math/InvertEditor.js +1 -1
  145. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  146. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  147. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  148. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  149. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  150. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  151. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  152. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  153. package/examples/jsm/node-editor/utils/PreviewEditor.js +3 -3
  154. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  155. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  156. package/examples/jsm/nodes/Nodes.js +43 -13
  157. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  158. package/examples/jsm/nodes/accessors/NormalNode.js +4 -4
  159. package/examples/jsm/nodes/accessors/PositionNode.js +5 -5
  160. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  161. package/examples/jsm/nodes/core/AttributeNode.js +3 -3
  162. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  163. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  164. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  165. package/examples/jsm/nodes/core/Node.js +14 -12
  166. package/examples/jsm/nodes/core/NodeBuilder.js +12 -12
  167. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  168. package/examples/jsm/nodes/core/{NodeVary.js → NodeVarying.js} +3 -3
  169. package/examples/jsm/nodes/core/{VaryNode.js → VaryingNode.js} +7 -7
  170. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +94 -0
  171. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  172. package/examples/jsm/nodes/gpgpu/ComputeNode.js +2 -0
  173. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  174. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  175. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  176. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +31 -0
  177. package/examples/jsm/nodes/materials/Materials.js +13 -25
  178. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  179. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  180. package/examples/jsm/nodes/materials/NodeMaterial.js +2 -2
  181. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  182. package/examples/jsm/nodes/materialx/Disclaimer.md +199 -0
  183. package/examples/jsm/nodes/materialx/functions/lib/mx_hsv.js +56 -0
  184. package/examples/jsm/nodes/materialx/functions/lib/mx_noise.js +607 -0
  185. package/examples/jsm/nodes/math/MathNode.js +2 -12
  186. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  187. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  188. package/examples/jsm/nodes/shadernode/ShaderNode.js +5 -5
  189. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +8 -5
  190. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +20 -6
  191. package/examples/jsm/nodes/utils/ConvertNode.js +8 -3
  192. package/examples/jsm/nodes/utils/JoinNode.js +7 -7
  193. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +2 -1
  194. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  195. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  196. package/examples/jsm/nodes/utils/TimerNode.js +2 -2
  197. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  198. package/examples/jsm/objects/Reflector.js +12 -5
  199. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  200. package/examples/jsm/objects/Refractor.js +12 -6
  201. package/examples/jsm/objects/ShadowMesh.js +8 -2
  202. package/examples/jsm/postprocessing/OutlinePass.js +5 -3
  203. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  204. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  205. package/examples/jsm/renderers/Projector.js +2 -24
  206. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  207. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +329 -218
  208. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  209. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +39 -3
  210. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  211. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  212. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  213. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  214. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  215. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  216. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +66 -81
  217. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  218. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  219. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  220. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +25 -30
  221. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  222. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  223. package/examples/jsm/shaders/MMDToonShader.js +2 -2
  224. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  225. package/examples/jsm/utils/BufferGeometryUtils.js +2 -1
  226. package/examples/jsm/utils/GeometryUtils.js +17 -25
  227. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  228. package/examples/jsm/utils/SceneUtils.js +1 -21
  229. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  230. package/examples/jsm/webxr/VRButton.js +1 -7
  231. package/package.json +18 -14
  232. package/src/Three.Legacy.js +262 -36
  233. package/src/Three.js +3 -2
  234. package/src/animation/AnimationAction.js +6 -5
  235. package/src/animation/AnimationClip.js +1 -1
  236. package/src/animation/AnimationMixer.js +1 -1
  237. package/src/animation/AnimationUtils.js +204 -199
  238. package/src/animation/KeyframeTrack.js +1 -1
  239. package/src/animation/PropertyBinding.js +24 -5
  240. package/src/cameras/CubeCamera.js +0 -7
  241. package/src/constants.js +2 -4
  242. package/src/core/BufferAttribute.js +81 -111
  243. package/src/core/BufferGeometry.js +3 -41
  244. package/src/core/InstancedBufferAttribute.js +0 -10
  245. package/src/core/InterleavedBuffer.js +1 -1
  246. package/src/core/InterleavedBufferAttribute.js +56 -7
  247. package/src/core/Object3D.js +22 -5
  248. package/src/core/Uniform.js +0 -7
  249. package/src/core/UniformsGroup.js +92 -0
  250. package/src/extras/DataUtils.js +104 -88
  251. package/src/extras/core/Path.js +1 -0
  252. package/src/extras/core/ShapePath.js +1 -4
  253. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  254. package/src/geometries/BoxGeometry.js +1 -1
  255. package/src/geometries/CapsuleGeometry.js +1 -1
  256. package/src/geometries/CircleGeometry.js +1 -1
  257. package/src/geometries/ConeGeometry.js +1 -1
  258. package/src/geometries/CylinderGeometry.js +2 -1
  259. package/src/geometries/DodecahedronGeometry.js +1 -1
  260. package/src/geometries/EdgesGeometry.js +5 -4
  261. package/src/geometries/ExtrudeGeometry.js +2 -11
  262. package/src/geometries/IcosahedronGeometry.js +1 -1
  263. package/src/geometries/LatheGeometry.js +2 -2
  264. package/src/geometries/OctahedronGeometry.js +1 -1
  265. package/src/geometries/PlaneGeometry.js +2 -1
  266. package/src/geometries/PolyhedronGeometry.js +1 -1
  267. package/src/geometries/RingGeometry.js +1 -1
  268. package/src/geometries/ShapeGeometry.js +2 -1
  269. package/src/geometries/SphereGeometry.js +2 -1
  270. package/src/geometries/TetrahedronGeometry.js +1 -1
  271. package/src/geometries/TorusGeometry.js +2 -1
  272. package/src/geometries/TorusKnotGeometry.js +2 -1
  273. package/src/geometries/TubeGeometry.js +2 -1
  274. package/src/geometries/WireframeGeometry.js +1 -0
  275. package/src/helpers/CameraHelper.js +97 -38
  276. package/src/helpers/DirectionalLightHelper.js +1 -0
  277. package/src/helpers/HemisphereLightHelper.js +1 -0
  278. package/src/helpers/PlaneHelper.js +6 -9
  279. package/src/helpers/PolarGridHelper.js +18 -14
  280. package/src/helpers/SpotLightHelper.js +1 -0
  281. package/src/lights/SpotLight.js +2 -0
  282. package/src/loaders/FileLoader.js +12 -1
  283. package/src/loaders/LoadingManager.js +1 -1
  284. package/src/loaders/MaterialLoader.js +49 -7
  285. package/src/loaders/ObjectLoader.js +4 -41
  286. package/src/materials/Material.js +1 -33
  287. package/src/materials/Materials.js +0 -27
  288. package/src/materials/MeshLambertMaterial.js +28 -1
  289. package/src/materials/ShaderMaterial.js +3 -7
  290. package/src/math/Color.js +3 -13
  291. package/src/math/MathUtils.js +1 -7
  292. package/src/math/Matrix3.js +1 -7
  293. package/src/math/Matrix4.js +3 -27
  294. package/src/math/Quaternion.js +1 -21
  295. package/src/math/Vector2.js +4 -24
  296. package/src/math/Vector3.js +7 -46
  297. package/src/math/Vector4.js +4 -24
  298. package/src/renderers/WebGLRenderer.js +84 -8
  299. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  300. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  301. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  302. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  303. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  304. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  305. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  306. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  307. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -12
  308. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  309. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +30 -0
  310. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  311. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  312. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  313. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  314. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  315. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  316. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  317. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  318. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  319. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  320. package/src/renderers/shaders/ShaderChunk.js +4 -2
  321. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  322. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  323. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  324. package/src/renderers/shaders/ShaderLib.js +31 -31
  325. package/src/renderers/shaders/UniformsLib.js +12 -11
  326. package/src/renderers/shaders/UniformsUtils.js +14 -0
  327. package/src/renderers/webgl/WebGLBackground.js +2 -2
  328. package/src/renderers/webgl/WebGLLights.js +37 -13
  329. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  330. package/src/renderers/webgl/WebGLProgram.js +6 -11
  331. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  332. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  333. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  334. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  335. package/src/renderers/webgl/WebGLShadowMap.js +10 -15
  336. package/src/renderers/webgl/WebGLState.js +47 -0
  337. package/src/renderers/webgl/WebGLUniforms.js +4 -4
  338. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  339. package/src/renderers/webgl/WebGLUtils.js +2 -0
  340. package/src/renderers/webvr/WebVRManager.js +42 -9
  341. package/src/renderers/webvr/WebVRUtils.js +1 -1
  342. package/src/renderers/webxr/WebXRController.js +45 -37
  343. package/src/renderers/webxr/WebXRManager.js +58 -33
  344. package/src/scenes/Scene.js +16 -3
  345. package/src/textures/Source.js +1 -1
  346. package/src/utils.js +1 -1
  347. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  348. package/examples/js/loaders/KTX2Loader.js +0 -558
  349. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  350. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  351. package/examples/jsm/package.json +0 -3
  352. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  353. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -28,72 +28,64 @@ class CameraHelper extends LineSegments {
28
28
 
29
29
  const pointMap = {};
30
30
 
31
- // colors
32
-
33
- const colorFrustum = new Color( 0xffaa00 );
34
- const colorCone = new Color( 0xff0000 );
35
- const colorUp = new Color( 0x00aaff );
36
- const colorTarget = new Color( 0xffffff );
37
- const colorCross = new Color( 0x333333 );
38
-
39
31
  // near
40
32
 
41
- addLine( 'n1', 'n2', colorFrustum );
42
- addLine( 'n2', 'n4', colorFrustum );
43
- addLine( 'n4', 'n3', colorFrustum );
44
- addLine( 'n3', 'n1', colorFrustum );
33
+ addLine( 'n1', 'n2' );
34
+ addLine( 'n2', 'n4' );
35
+ addLine( 'n4', 'n3' );
36
+ addLine( 'n3', 'n1' );
45
37
 
46
38
  // far
47
39
 
48
- addLine( 'f1', 'f2', colorFrustum );
49
- addLine( 'f2', 'f4', colorFrustum );
50
- addLine( 'f4', 'f3', colorFrustum );
51
- addLine( 'f3', 'f1', colorFrustum );
40
+ addLine( 'f1', 'f2' );
41
+ addLine( 'f2', 'f4' );
42
+ addLine( 'f4', 'f3' );
43
+ addLine( 'f3', 'f1' );
52
44
 
53
45
  // sides
54
46
 
55
- addLine( 'n1', 'f1', colorFrustum );
56
- addLine( 'n2', 'f2', colorFrustum );
57
- addLine( 'n3', 'f3', colorFrustum );
58
- addLine( 'n4', 'f4', colorFrustum );
47
+ addLine( 'n1', 'f1' );
48
+ addLine( 'n2', 'f2' );
49
+ addLine( 'n3', 'f3' );
50
+ addLine( 'n4', 'f4' );
59
51
 
60
52
  // cone
61
53
 
62
- addLine( 'p', 'n1', colorCone );
63
- addLine( 'p', 'n2', colorCone );
64
- addLine( 'p', 'n3', colorCone );
65
- addLine( 'p', 'n4', colorCone );
54
+ addLine( 'p', 'n1' );
55
+ addLine( 'p', 'n2' );
56
+ addLine( 'p', 'n3' );
57
+ addLine( 'p', 'n4' );
66
58
 
67
59
  // up
68
60
 
69
- addLine( 'u1', 'u2', colorUp );
70
- addLine( 'u2', 'u3', colorUp );
71
- addLine( 'u3', 'u1', colorUp );
61
+ addLine( 'u1', 'u2' );
62
+ addLine( 'u2', 'u3' );
63
+ addLine( 'u3', 'u1' );
72
64
 
73
65
  // target
74
66
 
75
- addLine( 'c', 't', colorTarget );
76
- addLine( 'p', 'c', colorCross );
67
+ addLine( 'c', 't' );
68
+ addLine( 'p', 'c' );
77
69
 
78
70
  // cross
79
71
 
80
- addLine( 'cn1', 'cn2', colorCross );
81
- addLine( 'cn3', 'cn4', colorCross );
72
+ addLine( 'cn1', 'cn2' );
73
+ addLine( 'cn3', 'cn4' );
82
74
 
83
- addLine( 'cf1', 'cf2', colorCross );
84
- addLine( 'cf3', 'cf4', colorCross );
75
+ addLine( 'cf1', 'cf2' );
76
+ addLine( 'cf3', 'cf4' );
85
77
 
86
- function addLine( a, b, color ) {
78
+ function addLine( a, b ) {
87
79
 
88
- addPoint( a, color );
89
- addPoint( b, color );
80
+ addPoint( a );
81
+ addPoint( b );
90
82
 
91
83
  }
92
84
 
93
- function addPoint( id, color ) {
85
+ function addPoint( id ) {
94
86
 
95
87
  vertices.push( 0, 0, 0 );
96
- colors.push( color.r, color.g, color.b );
88
+ colors.push( 0, 0, 0 );
97
89
 
98
90
  if ( pointMap[ id ] === undefined ) {
99
91
 
@@ -122,6 +114,73 @@ class CameraHelper extends LineSegments {
122
114
 
123
115
  this.update();
124
116
 
117
+ // colors
118
+
119
+ const colorFrustum = new Color( 0xffaa00 );
120
+ const colorCone = new Color( 0xff0000 );
121
+ const colorUp = new Color( 0x00aaff );
122
+ const colorTarget = new Color( 0xffffff );
123
+ const colorCross = new Color( 0x333333 );
124
+
125
+ this.setColors( colorFrustum, colorCone, colorUp, colorTarget, colorCross );
126
+
127
+ }
128
+
129
+ setColors( frustum, cone, up, target, cross ) {
130
+
131
+ const geometry = this.geometry;
132
+
133
+ const colorAttribute = geometry.getAttribute( 'color' );
134
+
135
+ // near
136
+
137
+ colorAttribute.setXYZ( 0, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 1, frustum.r, frustum.g, frustum.b ); // n1, n2
138
+ colorAttribute.setXYZ( 2, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 3, frustum.r, frustum.g, frustum.b ); // n2, n4
139
+ colorAttribute.setXYZ( 4, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 5, frustum.r, frustum.g, frustum.b ); // n4, n3
140
+ colorAttribute.setXYZ( 6, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 7, frustum.r, frustum.g, frustum.b ); // n3, n1
141
+
142
+ // far
143
+
144
+ colorAttribute.setXYZ( 8, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 9, frustum.r, frustum.g, frustum.b ); // f1, f2
145
+ colorAttribute.setXYZ( 10, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 11, frustum.r, frustum.g, frustum.b ); // f2, f4
146
+ colorAttribute.setXYZ( 12, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 13, frustum.r, frustum.g, frustum.b ); // f4, f3
147
+ colorAttribute.setXYZ( 14, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 15, frustum.r, frustum.g, frustum.b ); // f3, f1
148
+
149
+ // sides
150
+
151
+ colorAttribute.setXYZ( 16, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 17, frustum.r, frustum.g, frustum.b ); // n1, f1
152
+ colorAttribute.setXYZ( 18, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 19, frustum.r, frustum.g, frustum.b ); // n2, f2
153
+ colorAttribute.setXYZ( 20, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 21, frustum.r, frustum.g, frustum.b ); // n3, f3
154
+ colorAttribute.setXYZ( 22, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 23, frustum.r, frustum.g, frustum.b ); // n4, f4
155
+
156
+ // cone
157
+
158
+ colorAttribute.setXYZ( 24, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 25, cone.r, cone.g, cone.b ); // p, n1
159
+ colorAttribute.setXYZ( 26, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 27, cone.r, cone.g, cone.b ); // p, n2
160
+ colorAttribute.setXYZ( 28, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 29, cone.r, cone.g, cone.b ); // p, n3
161
+ colorAttribute.setXYZ( 30, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 31, cone.r, cone.g, cone.b ); // p, n4
162
+
163
+ // up
164
+
165
+ colorAttribute.setXYZ( 32, up.r, up.g, up.b ); colorAttribute.setXYZ( 33, up.r, up.g, up.b ); // u1, u2
166
+ colorAttribute.setXYZ( 34, up.r, up.g, up.b ); colorAttribute.setXYZ( 35, up.r, up.g, up.b ); // u2, u3
167
+ colorAttribute.setXYZ( 36, up.r, up.g, up.b ); colorAttribute.setXYZ( 37, up.r, up.g, up.b ); // u3, u1
168
+
169
+ // target
170
+
171
+ colorAttribute.setXYZ( 38, target.r, target.g, target.b ); colorAttribute.setXYZ( 39, target.r, target.g, target.b ); // c, t
172
+ colorAttribute.setXYZ( 40, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 41, cross.r, cross.g, cross.b ); // p, c
173
+
174
+ // cross
175
+
176
+ colorAttribute.setXYZ( 42, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 43, cross.r, cross.g, cross.b ); // cn1, cn2
177
+ colorAttribute.setXYZ( 44, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 45, cross.r, cross.g, cross.b ); // cn3, cn4
178
+
179
+ colorAttribute.setXYZ( 46, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 47, cross.r, cross.g, cross.b ); // cf1, cf2
180
+ colorAttribute.setXYZ( 48, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 49, cross.r, cross.g, cross.b ); // cf3, cf4
181
+
182
+ colorAttribute.needsUpdate = true;
183
+
125
184
  }
126
185
 
127
186
  update() {
@@ -14,6 +14,7 @@ class DirectionalLightHelper extends Object3D {
14
14
  constructor( light, size, color ) {
15
15
 
16
16
  super();
17
+
17
18
  this.light = light;
18
19
  this.light.updateMatrixWorld();
19
20
 
@@ -15,6 +15,7 @@ class HemisphereLightHelper extends Object3D {
15
15
  constructor( light, size, color ) {
16
16
 
17
17
  super();
18
+
18
19
  this.light = light;
19
20
  this.light.updateMatrixWorld();
20
21
 
@@ -4,7 +4,6 @@ import { LineBasicMaterial } from '../materials/LineBasicMaterial.js';
4
4
  import { MeshBasicMaterial } from '../materials/MeshBasicMaterial.js';
5
5
  import { Float32BufferAttribute } from '../core/BufferAttribute.js';
6
6
  import { BufferGeometry } from '../core/BufferGeometry.js';
7
- import { FrontSide, BackSide } from '../constants.js';
8
7
 
9
8
  class PlaneHelper extends Line {
10
9
 
@@ -12,7 +11,7 @@ class PlaneHelper extends Line {
12
11
 
13
12
  const color = hex;
14
13
 
15
- const positions = [ 1, - 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0 ];
14
+ const positions = [ 1, - 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, - 1, 0, 1, 1, 0 ];
16
15
 
17
16
  const geometry = new BufferGeometry();
18
17
  geometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );
@@ -26,7 +25,7 @@ class PlaneHelper extends Line {
26
25
 
27
26
  this.size = size;
28
27
 
29
- const positions2 = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, 1, 1, - 1, - 1, 1, 1, - 1, 1 ];
28
+ const positions2 = [ 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, - 1, 0, 1, - 1, 0 ];
30
29
 
31
30
  const geometry2 = new BufferGeometry();
32
31
  geometry2.setAttribute( 'position', new Float32BufferAttribute( positions2, 3 ) );
@@ -38,16 +37,14 @@ class PlaneHelper extends Line {
38
37
 
39
38
  updateMatrixWorld( force ) {
40
39
 
41
- let scale = - this.plane.constant;
40
+ this.position.set( 0, 0, 0 );
42
41
 
43
- if ( Math.abs( scale ) < 1e-8 ) scale = 1e-8; // sign does not matter
44
-
45
- this.scale.set( 0.5 * this.size, 0.5 * this.size, scale );
46
-
47
- this.children[ 0 ].material.side = ( scale < 0 ) ? BackSide : FrontSide; // renderer flips side when determinant < 0; flipping not wanted here
42
+ this.scale.set( 0.5 * this.size, 0.5 * this.size, 1 );
48
43
 
49
44
  this.lookAt( this.plane.normal );
50
45
 
46
+ this.translateZ( - this.plane.constant );
47
+
51
48
  super.updateMatrixWorld( force );
52
49
 
53
50
  }
@@ -6,7 +6,7 @@ import { Color } from '../math/Color.js';
6
6
 
7
7
  class PolarGridHelper extends LineSegments {
8
8
 
9
- constructor( radius = 10, radials = 16, circles = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {
9
+ constructor( radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {
10
10
 
11
11
  color1 = new Color( color1 );
12
12
  color2 = new Color( color2 );
@@ -14,32 +14,36 @@ class PolarGridHelper extends LineSegments {
14
14
  const vertices = [];
15
15
  const colors = [];
16
16
 
17
- // create the radials
17
+ // create the sectors
18
18
 
19
- for ( let i = 0; i <= radials; i ++ ) {
19
+ if ( sectors > 1 ) {
20
20
 
21
- const v = ( i / radials ) * ( Math.PI * 2 );
21
+ for ( let i = 0; i < sectors; i ++ ) {
22
22
 
23
- const x = Math.sin( v ) * radius;
24
- const z = Math.cos( v ) * radius;
23
+ const v = ( i / sectors ) * ( Math.PI * 2 );
25
24
 
26
- vertices.push( 0, 0, 0 );
27
- vertices.push( x, 0, z );
25
+ const x = Math.sin( v ) * radius;
26
+ const z = Math.cos( v ) * radius;
28
27
 
29
- const color = ( i & 1 ) ? color1 : color2;
28
+ vertices.push( 0, 0, 0 );
29
+ vertices.push( x, 0, z );
30
30
 
31
- colors.push( color.r, color.g, color.b );
32
- colors.push( color.r, color.g, color.b );
31
+ const color = ( i & 1 ) ? color1 : color2;
32
+
33
+ colors.push( color.r, color.g, color.b );
34
+ colors.push( color.r, color.g, color.b );
35
+
36
+ }
33
37
 
34
38
  }
35
39
 
36
- // create the circles
40
+ // create the rings
37
41
 
38
- for ( let i = 0; i <= circles; i ++ ) {
42
+ for ( let i = 0; i < rings; i ++ ) {
39
43
 
40
44
  const color = ( i & 1 ) ? color1 : color2;
41
45
 
42
- const r = radius - ( radius / circles * i );
46
+ const r = radius - ( radius / rings * i );
43
47
 
44
48
  for ( let j = 0; j < divisions; j ++ ) {
45
49
 
@@ -12,6 +12,7 @@ class SpotLightHelper extends Object3D {
12
12
  constructor( light, color ) {
13
13
 
14
14
  super();
15
+
15
16
  this.light = light;
16
17
  this.light.updateMatrixWorld();
17
18
 
@@ -22,6 +22,8 @@ class SpotLight extends Light {
22
22
  this.penumbra = penumbra;
23
23
  this.decay = decay; // for physically correct lights, should be 2.
24
24
 
25
+ this.map = null;
26
+
25
27
  this.shadow = new SpotLightShadow();
26
28
 
27
29
  }
@@ -3,6 +3,17 @@ import { Loader } from './Loader.js';
3
3
 
4
4
  const loading = {};
5
5
 
6
+ class HttpError extends Error {
7
+
8
+ constructor( message, response ) {
9
+
10
+ super( message );
11
+ this.response = response;
12
+
13
+ }
14
+
15
+ }
16
+
6
17
  class FileLoader extends Loader {
7
18
 
8
19
  constructor( manager ) {
@@ -146,7 +157,7 @@ class FileLoader extends Loader {
146
157
 
147
158
  } else {
148
159
 
149
- throw Error( `fetch for "${response.url}" responded with ${response.status}: ${response.statusText}` );
160
+ throw new HttpError( `fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`, response );
150
161
 
151
162
  }
152
163
 
@@ -137,6 +137,6 @@ class LoadingManager {
137
137
 
138
138
  }
139
139
 
140
- const DefaultLoadingManager = new LoadingManager();
140
+ const DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();
141
141
 
142
142
  export { DefaultLoadingManager, LoadingManager };
@@ -6,7 +6,26 @@ import { Matrix3 } from '../math/Matrix3.js';
6
6
  import { Matrix4 } from '../math/Matrix4.js';
7
7
  import { FileLoader } from './FileLoader.js';
8
8
  import { Loader } from './Loader.js';
9
- import { Material } from '../materials/Material.js';
9
+ import {
10
+ ShadowMaterial,
11
+ SpriteMaterial,
12
+ RawShaderMaterial,
13
+ ShaderMaterial,
14
+ PointsMaterial,
15
+ MeshPhysicalMaterial,
16
+ MeshStandardMaterial,
17
+ MeshPhongMaterial,
18
+ MeshToonMaterial,
19
+ MeshNormalMaterial,
20
+ MeshLambertMaterial,
21
+ MeshDepthMaterial,
22
+ MeshDistanceMaterial,
23
+ MeshBasicMaterial,
24
+ MeshMatcapMaterial,
25
+ LineDashedMaterial,
26
+ LineBasicMaterial,
27
+ Material,
28
+ } from '../materials/Materials.js';
10
29
 
11
30
  class MaterialLoader extends Loader {
12
31
 
@@ -67,7 +86,7 @@ class MaterialLoader extends Loader {
67
86
 
68
87
  }
69
88
 
70
- const material = Material.fromType( json.type );
89
+ const material = MaterialLoader.createMaterialFromType( json.type );
71
90
 
72
91
  if ( json.uuid !== undefined ) material.uuid = json.uuid;
73
92
  if ( json.name !== undefined ) material.name = json.name;
@@ -206,6 +225,7 @@ class MaterialLoader extends Loader {
206
225
  if ( json.defines !== undefined ) material.defines = json.defines;
207
226
  if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;
208
227
  if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;
228
+ if ( json.glslVersion !== undefined ) material.glslVersion = json.glslVersion;
209
229
 
210
230
  if ( json.extensions !== undefined ) {
211
231
 
@@ -217,10 +237,6 @@ class MaterialLoader extends Loader {
217
237
 
218
238
  }
219
239
 
220
- // Deprecated
221
-
222
- if ( json.shading !== undefined ) material.flatShading = json.shading === 1; // THREE.FlatShading
223
-
224
240
  // for PointsMaterial
225
241
 
226
242
  if ( json.size !== undefined ) material.size = json.size;
@@ -307,7 +323,33 @@ class MaterialLoader extends Loader {
307
323
 
308
324
  }
309
325
 
310
- }
326
+ static createMaterialFromType( type ) {
327
+
328
+ const materialLib = {
329
+ ShadowMaterial,
330
+ SpriteMaterial,
331
+ RawShaderMaterial,
332
+ ShaderMaterial,
333
+ PointsMaterial,
334
+ MeshPhysicalMaterial,
335
+ MeshStandardMaterial,
336
+ MeshPhongMaterial,
337
+ MeshToonMaterial,
338
+ MeshNormalMaterial,
339
+ MeshLambertMaterial,
340
+ MeshDepthMaterial,
341
+ MeshDistanceMaterial,
342
+ MeshBasicMaterial,
343
+ MeshMatcapMaterial,
344
+ LineDashedMaterial,
345
+ LineBasicMaterial,
346
+ Material
347
+ };
348
+
349
+ return new materialLib[ type ]();
311
350
 
351
+ }
352
+
353
+ }
312
354
 
313
355
  export { MaterialLoader };
@@ -275,7 +275,6 @@ class ObjectLoader extends Loader {
275
275
  case 'InstancedBufferGeometry':
276
276
 
277
277
  geometry = bufferGeometryLoader.parse( data );
278
-
279
278
  break;
280
279
 
281
280
  case 'Geometry':
@@ -291,7 +290,6 @@ class ObjectLoader extends Loader {
291
290
  console.error( 'THREE.ObjectLoader: You have to import LegacyJSONLoader in order load geometry data of type "Geometry".' );
292
291
 
293
292
  }
294
-
295
293
  break;
296
294
 
297
295
  default:
@@ -337,40 +335,14 @@ class ObjectLoader extends Loader {
337
335
 
338
336
  const data = json[ i ];
339
337
 
340
- if ( data.type === 'MultiMaterial' ) {
341
-
342
- // Deprecated
343
-
344
- const array = [];
345
-
346
- for ( let j = 0; j < data.materials.length; j ++ ) {
347
-
348
- const material = data.materials[ j ];
349
-
350
- if ( cache[ material.uuid ] === undefined ) {
351
-
352
- cache[ material.uuid ] = loader.parse( material );
353
-
354
- }
355
-
356
- array.push( cache[ material.uuid ] );
357
-
358
- }
359
-
360
- materials[ data.uuid ] = array;
361
-
362
- } else {
363
-
364
- if ( cache[ data.uuid ] === undefined ) {
365
-
366
- cache[ data.uuid ] = loader.parse( data );
367
-
368
- }
338
+ if ( cache[ data.uuid ] === undefined ) {
369
339
 
370
- materials[ data.uuid ] = cache[ data.uuid ];
340
+ cache[ data.uuid ] = loader.parse( data );
371
341
 
372
342
  }
373
343
 
344
+ materials[ data.uuid ] = cache[ data.uuid ];
345
+
374
346
  }
375
347
 
376
348
  }
@@ -1095,15 +1067,6 @@ class ObjectLoader extends Loader {
1095
1067
 
1096
1068
  }
1097
1069
 
1098
- /* DEPRECATED */
1099
-
1100
- setTexturePath( value ) {
1101
-
1102
- console.warn( 'THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().' );
1103
- return this.setResourcePath( value );
1104
-
1105
- }
1106
-
1107
1070
  }
1108
1071
 
1109
1072
  const TEXTURE_MAPPING = {
@@ -1,5 +1,5 @@
1
1
  import { EventDispatcher } from '../core/EventDispatcher.js';
2
- import { FrontSide, FlatShading, NormalBlending, LessEqualDepth, AddEquation, OneMinusSrcAlphaFactor, SrcAlphaFactor, AlwaysStencilFunc, KeepStencilOp } from '../constants.js';
2
+ import { FrontSide, NormalBlending, LessEqualDepth, AddEquation, OneMinusSrcAlphaFactor, SrcAlphaFactor, AlwaysStencilFunc, KeepStencilOp } from '../constants.js';
3
3
  import * as MathUtils from '../math/MathUtils.js';
4
4
 
5
5
  let materialId = 0;
@@ -122,15 +122,6 @@ class Material extends EventDispatcher {
122
122
 
123
123
  }
124
124
 
125
- // for backward compatibility if shading is set in the constructor
126
- if ( key === 'shading' ) {
127
-
128
- console.warn( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );
129
- this.flatShading = ( newValue === FlatShading ) ? true : false;
130
- continue;
131
-
132
- }
133
-
134
125
  const currentValue = this[ key ];
135
126
 
136
127
  if ( currentValue === undefined ) {
@@ -497,29 +488,6 @@ class Material extends EventDispatcher {
497
488
 
498
489
  }
499
490
 
500
- // @deprecated since r131, f5803c62cc4a29d90744e9dc7811d086e354c1d8
501
-
502
- get vertexTangents() {
503
-
504
- console.warn( 'THREE.' + this.type + ': .vertexTangents has been removed.' );
505
- return false;
506
-
507
- }
508
-
509
- set vertexTangents( value ) {
510
-
511
- console.warn( 'THREE.' + this.type + ': .vertexTangents has been removed.' );
512
-
513
- }
514
-
515
491
  }
516
492
 
517
- Material.fromType = function ( /*type*/ ) {
518
-
519
- // TODO: Behavior added in Materials.js
520
-
521
- return null;
522
-
523
- };
524
-
525
493
  export { Material };
@@ -37,30 +37,3 @@ export {
37
37
  LineBasicMaterial,
38
38
  Material
39
39
  };
40
-
41
- const materialLib = {
42
- ShadowMaterial,
43
- SpriteMaterial,
44
- RawShaderMaterial,
45
- ShaderMaterial,
46
- PointsMaterial,
47
- MeshPhysicalMaterial,
48
- MeshStandardMaterial,
49
- MeshPhongMaterial,
50
- MeshToonMaterial,
51
- MeshNormalMaterial,
52
- MeshLambertMaterial,
53
- MeshDepthMaterial,
54
- MeshDistanceMaterial,
55
- MeshBasicMaterial,
56
- MeshMatcapMaterial,
57
- LineDashedMaterial,
58
- LineBasicMaterial,
59
- Material
60
- };
61
-
62
- Material.fromType = function ( type ) {
63
-
64
- return new materialLib[ type ]();
65
-
66
- };
@@ -1,5 +1,6 @@
1
+ import { MultiplyOperation, TangentSpaceNormalMap } from '../constants.js';
1
2
  import { Material } from './Material.js';
2
- import { MultiplyOperation } from '../constants.js';
3
+ import { Vector2 } from '../math/Vector2.js';
3
4
  import { Color } from '../math/Color.js';
4
5
 
5
6
  class MeshLambertMaterial extends Material {
@@ -26,6 +27,17 @@ class MeshLambertMaterial extends Material {
26
27
  this.emissiveIntensity = 1.0;
27
28
  this.emissiveMap = null;
28
29
 
30
+ this.bumpMap = null;
31
+ this.bumpScale = 1;
32
+
33
+ this.normalMap = null;
34
+ this.normalMapType = TangentSpaceNormalMap;
35
+ this.normalScale = new Vector2( 1, 1 );
36
+
37
+ this.displacementMap = null;
38
+ this.displacementScale = 1;
39
+ this.displacementBias = 0;
40
+
29
41
  this.specularMap = null;
30
42
 
31
43
  this.alphaMap = null;
@@ -40,6 +52,8 @@ class MeshLambertMaterial extends Material {
40
52
  this.wireframeLinecap = 'round';
41
53
  this.wireframeLinejoin = 'round';
42
54
 
55
+ this.flatShading = false;
56
+
43
57
  this.fog = true;
44
58
 
45
59
  this.setValues( parameters );
@@ -64,6 +78,17 @@ class MeshLambertMaterial extends Material {
64
78
  this.emissiveMap = source.emissiveMap;
65
79
  this.emissiveIntensity = source.emissiveIntensity;
66
80
 
81
+ this.bumpMap = source.bumpMap;
82
+ this.bumpScale = source.bumpScale;
83
+
84
+ this.normalMap = source.normalMap;
85
+ this.normalMapType = source.normalMapType;
86
+ this.normalScale.copy( source.normalScale );
87
+
88
+ this.displacementMap = source.displacementMap;
89
+ this.displacementScale = source.displacementScale;
90
+ this.displacementBias = source.displacementBias;
91
+
67
92
  this.specularMap = source.specularMap;
68
93
 
69
94
  this.alphaMap = source.alphaMap;
@@ -78,6 +103,8 @@ class MeshLambertMaterial extends Material {
78
103
  this.wireframeLinecap = source.wireframeLinecap;
79
104
  this.wireframeLinejoin = source.wireframeLinejoin;
80
105
 
106
+ this.flatShading = source.flatShading;
107
+
81
108
  this.fog = source.fog;
82
109
 
83
110
  return this;