Mr.doob 3 years ago
parent
commit
9e5e6a14a9
100 changed files with 15354 additions and 5131 deletions
  1. 9674 0
      build/three.cjs
  2. 814 248
      build/three.js
  3. 1 1
      build/three.min.js
  4. 4308 4245
      build/three.module.js
  5. 2 2
      docs/api/ar/cameras/CubeCamera.html
  6. 2 2
      docs/api/en/cameras/CubeCamera.html
  7. 0 23
      docs/api/en/constants/Textures.html
  8. 1 1
      docs/api/en/core/BufferAttribute.html
  9. 8 8
      docs/api/en/core/Raycaster.html
  10. 2 2
      docs/api/en/loaders/AnimationLoader.html
  11. 2 2
      docs/api/en/loaders/AudioLoader.html
  12. 2 2
      docs/api/en/loaders/BufferGeometryLoader.html
  13. 4 4
      docs/api/en/loaders/CompressedTextureLoader.html
  14. 4 4
      docs/api/en/loaders/CubeTextureLoader.html
  15. 4 4
      docs/api/en/loaders/DataTextureLoader.html
  16. 2 3
      docs/api/en/loaders/FileLoader.html
  17. 2 2
      docs/api/en/loaders/ImageBitmapLoader.html
  18. 2 2
      docs/api/en/loaders/ImageLoader.html
  19. 1 1
      docs/api/en/loaders/Loader.html
  20. 2 2
      docs/api/en/loaders/MaterialLoader.html
  21. 2 2
      docs/api/en/loaders/ObjectLoader.html
  22. 3 3
      docs/api/en/loaders/TextureLoader.html
  23. 0 1
      docs/api/en/loaders/managers/LoadingManager.html
  24. 0 5
      docs/api/en/materials/Material.html
  25. 1 1
      docs/api/en/materials/MeshPhongMaterial.html
  26. 21 0
      docs/api/en/materials/MeshPhysicalMaterial.html
  27. 8 6
      docs/api/en/math/Box3.html
  28. 6 5
      docs/api/en/textures/DataTexture.html
  29. 5 5
      docs/api/en/textures/DataTexture2DArray.html
  30. 1 2
      docs/api/en/textures/Texture.html
  31. 3 4
      docs/api/en/textures/VideoTexture.html
  32. 2 2
      docs/api/ko/cameras/CubeCamera.html
  33. 0 23
      docs/api/ko/constants/Textures.html
  34. 1 1
      docs/api/ko/core/BufferAttribute.html
  35. 8 8
      docs/api/ko/core/Raycaster.html
  36. 2 2
      docs/api/zh/cameras/CubeCamera.html
  37. 0 23
      docs/api/zh/constants/Textures.html
  38. 1 1
      docs/api/zh/core/BufferAttribute.html
  39. 6 6
      docs/api/zh/core/Raycaster.html
  40. 0 5
      docs/api/zh/materials/Material.html
  41. 20 0
      docs/api/zh/materials/MeshPhysicalMaterial.html
  42. 1 1
      docs/api/zh/renderers/WebGL1Renderer.html
  43. 8 22
      docs/api/zh/renderers/WebGLRenderer.html
  44. 6 5
      docs/api/zh/textures/DataTexture.html
  45. 5 5
      docs/api/zh/textures/DataTexture2DArray.html
  46. 1 2
      docs/api/zh/textures/Texture.html
  47. 1 1
      docs/api/zh/textures/VideoTexture.html
  48. 0 143
      docs/examples/en/loaders/BasisTextureLoader.html
  49. 2 3
      docs/examples/en/loaders/KTX2Loader.html
  50. 220 0
      docs/examples/en/loaders/LDrawLoader.html
  51. 1 1
      docs/examples/en/objects/Lensflare.html
  52. 0 143
      docs/examples/zh/loaders/BasisTextureLoader.html
  53. 1 1
      docs/examples/zh/objects/Lensflare.html
  54. 20 25
      docs/examples/zh/utils/BufferGeometryUtils.html
  55. 10 10
      docs/examples/zh/utils/SceneUtils.html
  56. 5 9
      docs/examples/zh/utils/SkeletonUtils.html
  57. 1 1
      docs/index.html
  58. 1 2
      docs/list.json
  59. 2 2
      docs/manual/ar/introduction/Installation.html
  60. 3 3
      docs/manual/ar/introduction/WebGL-compatibility-check.html
  61. 2 2
      docs/manual/en/introduction/Installation.html
  62. 3 3
      docs/manual/en/introduction/WebGL-compatibility-check.html
  63. 3 3
      docs/manual/ja/introduction/Installation.html
  64. 3 3
      docs/manual/ja/introduction/WebGL-compatibility-check.html
  65. 2 2
      docs/manual/ko/introduction/Installation.html
  66. 3 3
      docs/manual/ko/introduction/WebGL-compatibility-check.html
  67. 2 2
      docs/manual/zh/introduction/Installation.html
  68. 3 3
      docs/manual/zh/introduction/WebGL-compatibility-check.html
  69. 9 9
      docs/page.js
  70. 13 2
      docs/scenes/bones-browser.html
  71. 20 2
      docs/scenes/geometry-browser.html
  72. 13 3
      docs/scenes/material-browser.html
  73. 16 4
      editor/index.html
  74. 1 1
      editor/js/Editor.js
  75. 17 17
      editor/js/EditorControls.js
  76. 1 2
      editor/js/Loader.js
  77. 1 1
      editor/js/Menubar.Add.js
  78. 1 1
      editor/js/Menubar.Edit.js
  79. 1 1
      editor/js/Menubar.Examples.js
  80. 3 3
      editor/js/Menubar.File.js
  81. 1 1
      editor/js/Menubar.Status.js
  82. 3 3
      editor/js/Resizer.js
  83. 1 1
      editor/js/Sidebar.Geometry.BoxGeometry.js
  84. 1 1
      editor/js/Sidebar.Geometry.CircleGeometry.js
  85. 1 1
      editor/js/Sidebar.Geometry.CylinderGeometry.js
  86. 1 1
      editor/js/Sidebar.Geometry.DodecahedronGeometry.js
  87. 1 1
      editor/js/Sidebar.Geometry.ExtrudeGeometry.js
  88. 1 1
      editor/js/Sidebar.Geometry.IcosahedronGeometry.js
  89. 1 1
      editor/js/Sidebar.Geometry.LatheGeometry.js
  90. 1 1
      editor/js/Sidebar.Geometry.OctahedronGeometry.js
  91. 1 1
      editor/js/Sidebar.Geometry.PlaneGeometry.js
  92. 1 1
      editor/js/Sidebar.Geometry.RingGeometry.js
  93. 1 1
      editor/js/Sidebar.Geometry.ShapeGeometry.js
  94. 1 1
      editor/js/Sidebar.Geometry.SphereGeometry.js
  95. 1 1
      editor/js/Sidebar.Geometry.TetrahedronGeometry.js
  96. 1 1
      editor/js/Sidebar.Geometry.TorusGeometry.js
  97. 1 1
      editor/js/Sidebar.Geometry.TorusKnotGeometry.js
  98. 1 1
      editor/js/Sidebar.Geometry.TubeGeometry.js
  99. 1 1
      editor/js/Sidebar.Geometry.js
  100. 1 1
      editor/js/Sidebar.Material.MapProperty.js

File diff suppressed because it is too large
+ 9674 - 0
build/three.cjs


File diff suppressed because it is too large
+ 814 - 248
build/three.js


File diff suppressed because it is too large
+ 1 - 1
build/three.min.js


File diff suppressed because it is too large
+ 4308 - 4245
build/three.module.js


+ 2 - 2
docs/api/ar/cameras/CubeCamera.html

@@ -17,7 +17,7 @@
 
 		<code>
 		// Create cube render target
-		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
 
 		// Create cube camera
 		const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
@@ -25,7 +25,7 @@
 
 		// Create car
 		const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
-		const car = new Mesh( carGeometry, chromeMaterial );
+		const car = new THREE.Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
 		// Update the render target cube

+ 2 - 2
docs/api/en/cameras/CubeCamera.html

@@ -17,7 +17,7 @@
 
 		<code>
 		// Create cube render target
-		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
 
 		// Create cube camera
 		const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
@@ -25,7 +25,7 @@
 
 		// Create car
 		const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
-		const car = new Mesh( carGeometry, chromeMaterial );
+		const car = new THREE.Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
 		// Update the render target cube

+ 0 - 23
docs/api/en/constants/Textures.html

@@ -129,7 +129,6 @@
 		THREE.HalfFloatType
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
-		THREE.UnsignedShort565Type
 		THREE.UnsignedInt248Type
 		</code>
 		<p>
@@ -145,8 +144,6 @@
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
-		THREE.RGBFormat
-		THREE.RGBIntegerFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
@@ -176,12 +173,6 @@
 		(can only be used with a WebGL 2 rendering context).
 		<br /><br />
 
-		[page:constant RGBFormat] discards the alpha components and reads the red, green and blue components.<br /><br />
-
-		[page:constant RGBIntegerFormat] discards the alpha components and reads the red, green and blue components.
-		(can only be used with a WebGL 2 rendering context).
-		<br /><br />
-
 		[page:constant RGBAFormat] is the default and reads the red, green, blue and alpha components.<br /><br />
 
 		[page:constant RGBAIntegerFormat] is the default and reads the red, green, blue and alpha components.
@@ -279,20 +270,6 @@
 		THREE.RGBA_ASTC_10x10_Format
 		THREE.RGBA_ASTC_12x10_Format
 		THREE.RGBA_ASTC_12x12_Format
-		THREE.SRGB8_ALPHA8_ASTC_4x4_Format
-		THREE.SRGB8_ALPHA8_ASTC_5x4_Format
-		THREE.SRGB8_ALPHA8_ASTC_5x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_6x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_6x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x8_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x8_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x10_Format
-		THREE.SRGB8_ALPHA8_ASTC_12x10_Format
-		THREE.SRGB8_ALPHA8_ASTC_12x12_Format
 		</code>
 		<p>
 		For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,

+ 1 - 1
docs/api/en/core/BufferAttribute.html

@@ -38,7 +38,7 @@
 		in the buffer maps to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance
 		of UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array
 		 data will be mapped to 0.0f - +1.0f in the GLSL attribute. An Int16Array (signed) would map
-		 from -32767 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values
+		 from -32768 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values
 		 will be converted to floats unmodified, i.e. 32767 becomes 32767.0f.
 		</p>
 

+ 8 - 8
docs/api/en/core/Raycaster.html

@@ -18,22 +18,22 @@
 		<h2>Code Example</h2>
 		<code>
 		const raycaster = new THREE.Raycaster();
-		const mouse = new THREE.Vector2();
+		const pointer = new THREE.Vector2();
 
-		function onMouseMove( event ) {
+		function onPointerMove( event ) {
 
-			// calculate mouse position in normalized device coordinates
+			// calculate pointer position in normalized device coordinates
 			// (-1 to +1) for both components
 
-			mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
-			mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+			pointer.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+			pointer.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
 
 		}
 
 		function render() {
 
-			// update the picking ray with the camera and mouse position
-			raycaster.setFromCamera( mouse, camera );
+			// update the picking ray with the camera and pointer position
+			raycaster.setFromCamera( pointer, camera );
 
 			// calculate objects intersecting the picking ray
 			const intersects = raycaster.intersectObjects( scene.children );
@@ -48,7 +48,7 @@
 
 		}
 
-		window.addEventListener( 'mousemove', onMouseMove, false );
+		window.addEventListener( 'pointermove', onPointerMove );
 
 		window.requestAnimationFrame(render);
 

+ 2 - 2
docs/api/en/loaders/AnimationLoader.html

@@ -64,8 +64,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:AnimationClip animation clips].<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called if load errors.<br /><br />
+		[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called if load errors.<br /><br />
 
 		Begin loading from url and pass the loaded animation to onLoad.
 		</p>

+ 2 - 2
docs/api/en/loaders/AudioLoader.html

@@ -81,8 +81,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded text response.<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
 		Begin loading from url and pass the loaded [page:String AudioBuffer] to onLoad.

+ 2 - 2
docs/api/en/loaders/BufferGeometryLoader.html

@@ -73,8 +73,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].d<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:BufferGeometry].<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
 		Begin loading from url and call onLoad with the parsed response content.

+ 4 - 4
docs/api/en/loaders/CompressedTextureLoader.html

@@ -44,12 +44,12 @@
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded texture.<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onLoad] (optional) — Will be called when load completes. The argument will be the loaded texture.<br />
+		[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
-		Begin loading from url and pass the loaded texture to onLoad.
+		Begin loading from url and pass the loaded texture to onLoad. The method also returns a new texture object which can directly be used for material creation.
 		</p>
 
 		<h2>Source</h2>

+ 4 - 4
docs/api/en/loaders/CubeTextureLoader.html

@@ -63,12 +63,12 @@ scene.background = new THREE.CubeTextureLoader()
 		Note that, by convention, cube maps are specified in a coordinate system in which positive-x is to the right
 		when looking up the positive-z axis -- in other words, using a left-handed coordinate system.
 		Since three.js uses a right-handed coordinate system, environment maps used in three.js will have pos-x and neg-x swapped.<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onLoad] (optional) — Will be called when load completes. The argument will be the loaded [page:CubeTexture texture].<br />
+		[page:Function onProgress] (optional) — This callback function is currently not supported.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
-		Begin loading from url and pass the loaded [page:CubeTexture texture] to onLoad.
+		Begin loading from url and pass the loaded [page:CubeTexture texture] to onLoad. The method also returns a new texture object which can directly be used for material creation.
 		</p>
 
 		<h2>Source</h2>

+ 4 - 4
docs/api/en/loaders/DataTextureLoader.html

@@ -44,12 +44,12 @@
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded texture.<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onLoad] (optional) — Will be called when load completes. The argument will be the loaded texture.<br />
+		[page:Function onProgress] (optional) — Will be called while load progresses.The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
-		Begin loading from url and pass the loaded texture to onLoad.
+		Begin loading from url and pass the loaded texture to onLoad. The method also returns a new texture object which can directly be used for material creation.
 		</p>
 
 		<h2>Source</h2>

+ 2 - 3
docs/api/en/loaders/FileLoader.html

@@ -12,7 +12,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			A low level class for loading resources with XMLHttpRequest, used internaly by most loaders.
+			A low level class for loading resources with Fetch, used internaly by most loaders.
 			It can also be used directly to load any file type that does not have a loader.
 		</p>
 
@@ -79,8 +79,7 @@
 			[page:String url] — the path or URL to the file. This can also be a
 				[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 			[page:Function onLoad] (optional) — Will be called when loading completes. The argument will be the loaded response.<br />
-			[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the XMLHttpRequest instance,
-				which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+			[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
 			[page:Function onError] (optional) — Will be called if an error occurs.<br /><br />
 
 			Load the URL and pass the response to the onLoad function.

+ 2 - 2
docs/api/en/loaders/ImageBitmapLoader.html

@@ -83,8 +83,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Image image].<br />
-		[page:Function onProgress] — This callback function is currently not supported.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onProgress] (optional) — This callback function is currently not supported.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
 		Begin loading from url and return the [page:ImageBitmap image] object that will contain the data.

+ 2 - 2
docs/api/en/loaders/ImageLoader.html

@@ -78,8 +78,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Image image].<br />
-		[page:Function onProgress] — This callback function is currently not supported.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onProgress] (optional) — This callback function is currently not supported.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
 		Begin loading from url and return the [page:Image image] object that will contain the data.

+ 1 - 1
docs/api/en/loaders/Loader.html

@@ -70,7 +70,7 @@
 		<h3>[method:Promise loadAsync]( [param:String url], [param:Function onProgress] )</h3>
 		<p>
 		[page:String url] — A string containing the path/URL of the file to be loaded.<br />
-		[page:Function onProgress] (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onProgress] (optional) A function to be called while the loading is in progress. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
 		</p>
 		<p>
 		This method is equivalent to [page:.load], but returns a [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise Promise].

+ 2 - 2
docs/api/en/loaders/MaterialLoader.html

@@ -67,8 +67,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Material].<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br /><br />
+		[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br /><br />
 
 		Begin loading from url.
 		</p>

+ 2 - 2
docs/api/en/loaders/ObjectLoader.html

@@ -77,8 +77,8 @@
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Object3D object].<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br />
+		[page:Function onProgress] (optional) — Will be called while load progresses. The argument will be the ProgressEvent instance, which contains .[page:Boolean lengthComputable], .[page:Integer total] and .[page:Integer loaded]. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br />
 		</p>
 		<p>
 		Begin loading from url and call onLoad with the parsed response content.

+ 3 - 3
docs/api/en/loaders/TextureLoader.html

@@ -84,9 +84,9 @@
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].<br />
-		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — Will be called when load errors.<br /><br />
+		[page:Function onLoad] (optional) — Will be called when load completes. The argument will be the loaded [page:Texture texture].<br />
+		[page:Function onProgress] (optional) — This callback function is currently not supported.<br />
+		[page:Function onError] (optional) — Will be called when load errors.<br /><br />
 
 		Begin loading from the given URL and pass the fully loaded [page:Texture texture] to onLoad. The method also returns a new texture object which can directly be used for material creation.
 		If you do it this way, the texture may pop up in your scene once the respective loading process is finished.

+ 0 - 1
docs/api/en/loaders/managers/LoadingManager.html

@@ -99,7 +99,6 @@
 		<h2>Examples</h2>
 
 		<p>
-			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_materials_physical_reflectivity WebGL / materials / physical / reflectivity]<br />
 			[example:webgl_postprocessing_outline WebGL / postprocesing / outline]

+ 0 - 5
docs/api/en/materials/Material.html

@@ -128,11 +128,6 @@
 		When drawing 2D overlays it can be useful to disable the depth writing in order to layer several things together without creating z-index artifacts.
 		</p>
 
-		<h3>[property:Number format]</h3>
-		<p>
-		When this property is set to [page:Textures THREE.RGBFormat], the material is considered to be opaque and alpha values are ignored. Default is [page:Textures THREE.RGBAFormat].
-		</p>
-
 		<h3>[property:Boolean stencilWrite]</h3>
 		<p>
 		Whether stencil operations are performed against the stencil buffer. In order to perform writes or comparisons against the stencil buffer this value must be *true*. Default is *false*.

+ 1 - 1
docs/api/en/materials/MeshPhongMaterial.html

@@ -96,7 +96,7 @@
 		<p>
 			How to combine the result of the surface's color with the environment map, if any.<br /><br />
 
-			Options are [page:Materials THREE.Multiply] (default), [page:Materials THREE.MixOperation],
+			Options are [page:Materials THREE.MultiplyOperation] (default), [page:Materials THREE.MixOperation],
 			[page:Materials THREE.AddOperation]. If mix is chosen, the [page:.reflectivity] is used to
 			blend between the two colors.
 		</p>

+ 21 - 0
docs/api/en/materials/MeshPhysicalMaterial.html

@@ -159,6 +159,27 @@
 			over sheen tint. Default is *null*.
 		</p>
 
+		<h3>[property:Float specularIntensity]</h3>
+		<p>
+			A float that scales the amount of specular reflection for non-metals only. When set to zero, the model is effectively Lambertian. From *0.0* to *1.0*. Default is *0.0*.
+		</p>
+
+		<h3>[property:Texture specularIntensityMap]</h3>
+		<p>
+			The alpha channel of this texture is multiplied against [page:.specularIntensity], for per-pixel control over specular intensity. Default is *null*.
+		</p>
+
+		<h3>[property:Color specularColor]</h3>
+		<p>
+			A [page:Color] that tints the specular reflection at normal incidence for non-metals only.
+			Default is *0xffffff*, white.
+		</p>
+
+		<h3>[property:Texture specularColorMap]</h3>
+		<p>
+			The RGB channels of this teture are multiplied against [page:.specularColor], for per-pixel control over specular color. Default is *null*.
+		</p>
+
 		<h3>[property:Float transmission]</h3>
 		<p>
 		Degree of transmission (or optical transparency), from *0.0* to *1.0*. Default is *0.0*.<br />

+ 8 - 6
docs/api/en/math/Box3.html

@@ -121,13 +121,14 @@
 		Returns true if this box and [page:Box3 box] share the same lower and upper bounds.
 		</p>
 
-		<h3>[method:this expandByObject]( [param:Object3D object] )</h3>
+		<h3>[method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )</h3>
 		<p>
-		[page:Object3D object] - [page:Object3D] to expand the box by.<br /><br />
+		[page:Object3D object] - [page:Object3D] to expand the box by.<br />
+		precise - (optional) expand the bounding box as little as necessary at the expense of more computation. Default is false.<br /><br />
 
 		Expands the boundaries of this box to include [page:Object3D object] and its children,
 		accounting for the object's, and children's, world transforms.
-		The function may result in a larger box than strictly necessary.
+		The function may result in a larger box than strictly necessary (unless the precise parameter is set to true).
 
 		</p>
 
@@ -235,7 +236,7 @@
 		<h3>[method:this set]( [param:Vector3 min], [param:Vector3 max] )</h3>
 		<p>
 		[page:Vector3 min] - [page:Vector3] representing the lower (x, y, z) boundary of the box.<br />
-		[page:Vector3 max] - [page:Vector3] representing the lower upper (x, y, z) boundary of the box.<br /><br />
+		[page:Vector3 max] - [page:Vector3] representing the upper (x, y, z) boundary of the box.<br /><br />
 
 		Sets the lower and upper (x, y, z) boundaries of this box.<br>
 		Please note that this method only copies the values from the given objects.
@@ -264,9 +265,10 @@
 		in [page:Vector3 size]
 		</p>
 
-		<h3>[method:this setFromObject]( [param:Object3D object] )</h3>
+		<h3>[method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )</h3>
 		<p>
-		[page:Object3D object] - [page:Object3D] to compute the bounding box of.<br /><br />
+		[page:Object3D object] - [page:Object3D] to compute the bounding box of.<br />
+		precise - (optional) compute the smallest world-axis-aligned bounding box at the expense of more computation. Default is false.<br /><br />
 
 		Computes the world-axis-aligned bounding box of an [page:Object3D] (including its children),
 		accounting for the object's, and children's, world transforms.

+ 6 - 5
docs/api/en/textures/DataTexture.html

@@ -24,9 +24,9 @@
 		<p>
 			The interpretation of the data depends on type and format:
 			If the type is THREE.UnsignedByteType, a Uint8Array will be useful for addressing the texel data.
-			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity). Similarly, THREE.RGBFormat specifies a format where only three values are used for each texel.<br />
+			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity).<br />
 
-			For the packed types, THREE.UnsignedShort4444Type, THREE.UnsignedShort5551Type or THREE.UnsignedShort565Type, all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
+			For the packed types, THREE.UnsignedShort4444Type and THREE.UnsignedShort5551Type all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
 
 			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
 		</p>
@@ -40,7 +40,7 @@
 		const height = 512;
 
 		const size = width * height;
-		const data = new Uint8Array( 3 * size );
+		const data = new Uint8Array( 4 * size );
 		const color = new THREE.Color( 0xffffff );
 
 		const r = Math.floor( color.r * 255 );
@@ -49,17 +49,18 @@
 
 		for ( let i = 0; i < size; i ++ ) {
 
-			const stride = i * 3;
+			const stride = i * 4;
 
 			data[ stride ] = r;
 			data[ stride + 1 ] = g;
 			data[ stride + 2 ] = b;
+			data[ stride + 3 ] = 255;
 
 		}
 
 		// used the buffer to create a [name]
 
-		const texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
+		const texture = new THREE.DataTexture( data, width, height );
 		texture.needsUpdate = true;
 		</code>
 

+ 5 - 5
docs/api/en/textures/DataTexture2DArray.html

@@ -24,9 +24,9 @@
 		<p>
 			The interpretation of the data depends on type and format:
 			If the type is THREE.UnsignedByteType, a Uint8Array will be useful for addressing the texel data.
-			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity). Similarly, THREE.RGBFormat specifies a format where only three values are used for each texel.<br />
+			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity).<br />
 
-			For the packed types, THREE.UnsignedShort4444Type, THREE.UnsignedShort5551Type or THREE.UnsignedShort565Type, all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
+			For the packed types, THREE.UnsignedShort4444Type and THREE.UnsignedShort5551Type all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
 
 			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
 		</p>
@@ -43,7 +43,7 @@
 		const depth = 100;
 
 		const size = width * height;
-		const data = new Uint8Array( 3 * size * depth );
+		const data = new Uint8Array( 4 * size * depth );
 
 		for ( let i = 0; i < depth; i ++ ) {
 
@@ -54,11 +54,12 @@
 
 			for ( let j = 0; j < size; j ++ ) {
 
-				const stride = ( i * size + j ) * 3;
+				const stride = ( i * size + j ) * 4;
 
 				data[ stride ] = r;
 				data[ stride + 1 ] = g;
 				data[ stride + 2 ] = b;
+				data[ stride + 3 ] = 255;
 
 			}
 		}
@@ -66,7 +67,6 @@
 		// used the buffer to create a [name]
 
 		const texture = new THREE.DataTexture2DArray( data, width, height, depth );
-		texture.format = THREE.RGBFormat;
 		texture.needsUpdate = true;
 		</code>
 

+ 1 - 2
docs/api/en/textures/Texture.html

@@ -117,8 +117,7 @@
 
 		<h3>[property:number format]</h3>
 		<p>
-		The default is [page:Textures THREE.RGBAFormat], although the [page:TextureLoader TextureLoader] will automatically
-		set this to [page:Textures THREE.RGBFormat] for JPG images. <br /><br />
+		The default is [page:Textures THREE.RGBAFormat].<br /><br />
 
 		See the [page:Textures texture constants] page for details of other formats.
 		</p>

+ 3 - 4
docs/api/en/textures/VideoTexture.html

@@ -49,10 +49,9 @@
 		[page:Constant minFilter] -- How the texture is sampled when a texel covers less than one pixel.
 		The default is [page:Textures THREE.LinearMipmapLinearFilter]. See [page:Textures minification filter constants] for other choices.<br />
 
-		[page:Constant format] -- The default is [page:Textures THREE.RGBFormat].
-		See [page:Textures format constants] for other choices.
-		Note that a bug has been reported with Firefox's WebGL implementation where use of [page:Textures THREE.RGBFormat] on a VideoTexture can result in a significant performance penalty, if you encounter this issue it is recommended to pass in [page:Textures THREE.RGBAFormat] instead.<br />
-
+		[page:Constant format] -- The default is [page:Textures THREE.RGBAFormat].
+		See [page:Textures format constants] for other choices.<br />
+	
 		[page:Constant type] -- Default is [page:Textures THREE.UnsignedByteType].
 		See [page:Textures type constants] for other choices.<br />
 

+ 2 - 2
docs/api/ko/cameras/CubeCamera.html

@@ -17,7 +17,7 @@
 
 		<code>
 		// Create cube render target
-		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
 
 		// Create cube camera
 		const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
@@ -25,7 +25,7 @@
 
 		// Create car
 		const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
-		const car = new Mesh( carGeometry, chromeMaterial );
+		const car = new THREE.Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
 		// Update the render target cube

+ 0 - 23
docs/api/ko/constants/Textures.html

@@ -126,7 +126,6 @@
 		THREE.HalfFloatType
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
-		THREE.UnsignedShort565Type
 		THREE.UnsignedInt248Type
 		</code>
 		<p>
@@ -142,8 +141,6 @@
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
-		THREE.RGBFormat
-		THREE.RGBIntegerFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
@@ -173,12 +170,6 @@
 		(WebGL 2 렌더링 시에만 사용 가능).
 		<br /><br />
 
-		[page:constant RGBFormat] alpha 요소를 버리고 red, green 및 blue 요소를 읽어들입니다.<br /><br />
-
-		[page:constant RGBIntegerFormat] alpha 요소를 버리고 red, green 및 blue 요소를 읽어들입니다.
-		(WebGL 2 렌더링 시에만 사용 가능).
-		<br /><br />
-
 		[page:constant RGBAFormat]는 기본값이며 red, green, blue 및 alpha 요소를 읽어들입니다.<br /><br />
 
 		[page:constant RGBAIntegerFormat]는 기본값이며 red, green, blue 및 alpha 요소를 읽어들입니다.
@@ -274,20 +265,6 @@
 		THREE.RGBA_ASTC_10x10_Format
 		THREE.RGBA_ASTC_12x10_Format
 		THREE.RGBA_ASTC_12x12_Format
-		THREE.SRGB8_ALPHA8_ASTC_4x4_Format
-		THREE.SRGB8_ALPHA8_ASTC_5x4_Format
-		THREE.SRGB8_ALPHA8_ASTC_5x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_6x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_6x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x8_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x8_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x10_Format
-		THREE.SRGB8_ALPHA8_ASTC_12x10_Format
-		THREE.SRGB8_ALPHA8_ASTC_12x12_Format
 		</code>
 		<p>
 		[page:CompressedTexture CompressedTexture]'s [page:Texture.format format] 프로퍼티와 함께 사용되며,

+ 1 - 1
docs/api/ko/core/BufferAttribute.html

@@ -34,7 +34,7 @@
 
 		[page:Boolean normalized] -- (생략가능) 정수 데이터에만 적용됩니다. 버퍼에 있는 기저 데이터가 GLSL 코드에서 값으로 맵핑되는 방식입니다.
 		예를 들어 [page:TypedArray array]가 UInt16Array의 인스턴스이고, [page:Boolean normalized]가 true면 배열에 있는 0 - +65535 값들은
-		GLSL 속성에서 0.0f - +1.0f로 매핑될 것입니다. Int16Array (기호 있는)는 -32767 - +32767 가 -1.0f - +1.0f 로 매핑될 것입니다.
+		GLSL 속성에서 0.0f - +1.0f로 매핑될 것입니다. Int16Array (기호 있는)는 -32768 - +32767 가 -1.0f - +1.0f 로 매핑될 것입니다.
 		[page:Boolean normalized]가 false라면, 값은 수정 없이 floats로 변환될 것입니다. 예) 32767은 32767.0f로 변환.
 		</p>
 

+ 8 - 8
docs/api/ko/core/Raycaster.html

@@ -17,22 +17,22 @@
 		<h2>코드 예제</h2>
 		<code>
 		const raycaster = new THREE.Raycaster();
-		const mouse = new THREE.Vector2();
+		const pointer = new THREE.Vector2();
 
-		function onMouseMove( event ) {
+		function onPointerMove( event ) {
 
-			// calculate mouse position in normalized device coordinates
+			// calculate pointer position in normalized device coordinates
 			// (-1 to +1) for both components
 
-			mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
-			mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+			pointer.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+			pointer.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
 
 		}
 
 		function render() {
 
-			// update the picking ray with the camera and mouse position
-			raycaster.setFromCamera( mouse, camera );
+			// update the picking ray with the camera and pointer position
+			raycaster.setFromCamera( pointer, camera );
 
 			// calculate objects intersecting the picking ray
 			const intersects = raycaster.intersectObjects( scene.children );
@@ -47,7 +47,7 @@
 
 		}
 
-		window.addEventListener( 'mousemove', onMouseMove, false );
+		window.addEventListener( 'pointermove', onPointerMove );
 
 		window.requestAnimationFrame(render);
 

+ 2 - 2
docs/api/zh/cameras/CubeCamera.html

@@ -17,7 +17,7 @@
 
 		<code>
 		// Create cube render target
-		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
 
 		// Create cube camera
 		const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
@@ -25,7 +25,7 @@
 
 		// Create car
 		const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
-		const car = new Mesh( carGeometry, chromeMaterial );
+		const car = new THREE.Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
 		// Update the render target cube

+ 0 - 23
docs/api/zh/constants/Textures.html

@@ -119,7 +119,6 @@
 		THREE.HalfFloatType
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
-		THREE.UnsignedShort565Type
 		THREE.UnsignedInt248Type
 		</code>
 	<p>
@@ -135,8 +134,6 @@
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
-		THREE.RGBFormat
-		THREE.RGBIntegerFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
@@ -165,12 +162,6 @@
 		(can only be used with a WebGL 2 rendering context).
 		<br /><br />
 
-		[page:constant RGBFormat] 丢弃Alpha分量,仅读取红、绿、蓝分量。<br /><br />
-
-		[page:constant RGBIntegerFormat] discards the alpha components and reads the red, green and blue components.
-		(can only be used with a WebGL 2 rendering context).
-		<br /><br />
-
 		[page:constant RGBAFormat] 是默认值,它将读取红、绿、蓝和Alpha分量。<br /><br />
 
 		[page:constant RGBAIntegerFormat] is the default and reads the red, green, blue and alpha components.
@@ -268,20 +259,6 @@
 		THREE.RGBA_ASTC_10x10_Format
 		THREE.RGBA_ASTC_12x10_Format
 		THREE.RGBA_ASTC_12x12_Format
-		THREE.SRGB8_ALPHA8_ASTC_4x4_Format
-		THREE.SRGB8_ALPHA8_ASTC_5x4_Format
-		THREE.SRGB8_ALPHA8_ASTC_5x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_6x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_6x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_8x8_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x5_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x6_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x8_Format
-		THREE.SRGB8_ALPHA8_ASTC_10x10_Format
-		THREE.SRGB8_ALPHA8_ASTC_12x10_Format
-		THREE.SRGB8_ALPHA8_ASTC_12x12_Format
 	</code>
 	<p>
 	For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,

+ 1 - 1
docs/api/zh/core/BufferAttribute.html

@@ -33,7 +33,7 @@
 
 			[page:Boolean normalized] -- (可选) 指明缓存中的数据如何与GLSL代码中的数据对应。例如,如果[page:TypedArray array]是
 			UInt16Array类型,且[page:Boolean normalized]的值是 true,则队列中的值将会从 0 - +65535 映射为 GLSL 中的 0.0f - +1.0f。
-			如果[page:TypedArray array]是 Int16Array (有符号),则值将会从 -32767 - +32767 映射为 -1.0f - +1.0f。若 [page:Boolean normalized]
+			如果[page:TypedArray array]是 Int16Array (有符号),则值将会从 -32768 - +32767 映射为 -1.0f - +1.0f。若 [page:Boolean normalized]
 			的值为 false,则数据映射不会归一化,而会直接映射为 float 值,例如,32767 将会映射为 32767.0f.
 		</p>
 

+ 6 - 6
docs/api/zh/core/Raycaster.html

@@ -17,21 +17,21 @@
 		<h2>代码示例</h2>
 		<code>
 		const raycaster = new THREE.Raycaster();
-		const mouse = new THREE.Vector2();
+		const pointer = new THREE.Vector2();
 
-		function onMouseMove( event ) {
+		function onPointerMove( event ) {
 
 			// 将鼠标位置归一化为设备坐标。x 和 y 方向的取值范围是 (-1 to +1)
 
-			mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
-			mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+			pointer.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+			pointer.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
 
 		}
 
 		function render() {
 
 			// 通过摄像机和鼠标位置更新射线
-			raycaster.setFromCamera( mouse, camera );
+			raycaster.setFromCamera( pointer, camera );
 
 			// 计算物体和射线的焦点
 			const intersects = raycaster.intersectObjects( scene.children );
@@ -46,7 +46,7 @@
 
 		}
 
-		window.addEventListener( 'mousemove', onMouseMove, false );
+		window.addEventListener( 'pointermove', onPointerMove );
 
 		window.requestAnimationFrame(render);
 

+ 0 - 5
docs/api/zh/materials/Material.html

@@ -107,11 +107,6 @@ Default is *false*.
 	在绘制2D叠加时,将多个事物分层在一起而不创建z-index时,禁用深度写入会很有用。
 </p>
 
-<h3>[property:Number format]</h3>
-<p>
-When this property is set to [page:Textures THREE.RGBFormat], the material is considered to be opaque and alpha values are ignored. Default is [page:Textures THREE.RGBAFormat].
-</p>
-
 <h3>[property:Boolean stencilWrite]</h3>
 <p>
 Whether stencil operations are performed against the stencil buffer. In order to perform writes or comparisons against the stencil buffer this value must be *true*. Default is *false*.

+ 20 - 0
docs/api/zh/materials/MeshPhysicalMaterial.html

@@ -156,6 +156,26 @@
 			over sheen tint. Default is *null*.
 		</p>
 
+		<h3>[property:Float specularIntensity]</h3>
+		<p>
+			用于控制非金属材质高光反射强度的浮点值。漫反射材质对应的值为0。范围从*0.0*到*1.0*。 默认值为*0.0*。
+		</p>
+
+		<h3>[property:Texture specularIntensityMap]</h3>
+		<p>
+			此纹理的alpha通道将与[page:.specularIntensity]相乘,用于逐像素地控制高光强度。默认值为*null*。
+		</p>
+
+		<h3>[property:Color specularColor]</h3>
+		<p>
+			非金属材质在垂直于法线方向观看时的高光反射颜色。默认值为*0xffffff*,白色。
+		</p>
+
+		<h3>[property:Texture specularColorMap]</h3>
+		<p>
+			此纹理的alpha通道将与[page:.specularColor]相乘,用于逐像素地控制高光颜色。默认值为*null*。
+		</p>
+
 		<h3>[property:Float transmission]</h3>
 		<p>
 		Degree of transmission (or optical transparency), from *0.0* to *1.0*. Default is *0.0*.<br />

+ 1 - 1
docs/api/zh/renderers/WebGL1Renderer.html

@@ -17,7 +17,7 @@
 
 		<ul>
 			<li>自定义着色器代码必须符合GLSL 3.0。</li>
-			<li>WebGL 1 extension checks have to be changed.</li>
+			<li>WebGL 1扩展检查到被更改</li>
 		</ul>
 
 		如果你不能够花时间来升级你的代码,但仍然想要使用最新版本,那你就可以使用[name]。

+ 8 - 22
docs/api/zh/renderers/WebGLRenderer.html

@@ -44,10 +44,8 @@
 
 		[page:String powerPreference] - 提示用户代理怎样的配置更适用于当前WebGL环境。 可能是*"high-performance"*, *"low-power"* 或 *"default"*。默认是*"default"*.
 		详见[link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.12 WebGL spec]<br />
-
-
-		[page:Boolean failIfMajorPerformanceCaveat] - whether the renderer creation will fail upon low perfomance is detected. Default is *false*.
-		See [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.12 WebGL spec] for details.<br />
+			
+		[page:Boolean failIfMajorPerformanceCaveat] - 检测渲染器是否会因性能过差而创建失败。默认为false。详见 [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.12 WebGL spec] for details.<br />
 
 		[page:Boolean depth] - 绘图缓存是否有一个至少6位的深度缓存([link:https://en.wikipedia.org/wiki/Z-buffering depth buffer] )。
 		默认是*true*.<br />
@@ -143,7 +141,7 @@
 		<p>查看[page:Textures texture constants]页面以获取其他格式细节</p>
 
 		<h3>[property:Object info]</h3>
-		<p>一个对象,包含有关图形板内存和渲染过程的一系列统计信息。这些信息可用于调试或仅仅满足下好奇心。对象包含以下字段:</p>
+		<p>一个对象,包含有关图形板内存和渲染过程的一系列统计信息。这些信息可用于调试或仅仅满足下好奇心。对象包含以下字段:</p>
 		<p>
 		<ul>
 			<li>memory:
@@ -165,12 +163,11 @@
 			</li>
 		</ul>
 		</p>
-		<p>By default these data are reset at each render call but when having multiple render passes per frame (e.g. when using post processing) it can be preferred to reset with a custom pattern.
-			First, set *autoReset* to *false*.
+		<p>默认情况下,这些字段在每次渲染调用时都会重置,但是当每帧有多个渲染通道时(例如,使用后处理时),最好使用自定义模式重置。先将 autoReset 设置为 false.
 		<code>
 		renderer.info.autoReset = false;
 		</code>
-		Call *reset()* whenever you have finished to render a single frame.
+		然后在单个帧时渲染完成后调用 reset().
 		<code>
 		renderer.info.reset();
 		</code>
@@ -220,7 +217,7 @@
 		定义渲染器是否应对对象进行排序。默认是*true*.<br /><br />
 
 		说明: 排序用于尝试正确渲染出具有一定透明度的对象。根据定义,排序可能不总是有用。根据应用的需求,可能需要关闭排序并使其他方法来处理透明度的渲染,例如,
-		手动确定每个对象的显然顺序。
+		手动确定每个对象的渲染顺序。
 		</p>
 
 		<h3>[property:Object state]</h3>
@@ -260,17 +257,6 @@
 		<h3>[method:undefined clearStencil]( )</h3>
 		<p>清除模板缓存。相当于调用[page:WebGLRenderer.clear .clear]( false, false, true )</p>
 
-		<h3>[method:undefined clearTarget]([param:WebGLRenderTarget renderTarget], [param:Boolean color], [param:Boolean depth], [param:Boolean stencil])</h3>
-		<p>
-		renderTarget -- 需要被清除的[page:WebGLRenderTarget renderTarget]<br />
-		color -- 如果设置, 颜色会被清除 <br />
-		depth -- 如果设置, 深度缓存会被清除 <br />
-		stencil -- 如果设置, 模板缓存会被清除
-		</p>
-		<p>
-		该方法清楚了一个rendertarget。为此它会激活此endertarget
-		</p>
-
 		<h3>[method:undefined compile]( [param:Object3D scene], [param:Camera camera] )</h3>
 		<p>使用相机编译场景中的所有材质。这对于在首次渲染之前预编译着色器很有用。</p>
 
@@ -341,7 +327,7 @@
 		<p>返回包含渲染器输出canvas的宽度和高度(单位像素)的对象。</p>
 
 		<h3>[method:undefined initTexture]( [param:Texture texture] )</h3>
-		<p> Initializes the given texture. Useful for preloading a texture rather than waiting until first render (which can cause noticeable lags due to decode and GPU upload overhead).</p>
+		<p>初始化给定的纹理。用于预加载纹理而不是等到第一次渲染(可能会由于解码和 GPU 上传的开销而导致明显的延迟).</p>
 
 		<h3>[method:undefined resetGLState]( )</h3>
 		<p>将GL状态重置为默认值。WebGL环境丢失时会内部调用</p>
@@ -364,7 +350,7 @@
 		</p>
 
 		<h3>[method:undefined resetState]()</h3>
-		<p>Can be used to reset the internal WebGL state. This method is mostly relevant for applications which share a single WebGL context across multiple WebGL libraries.</p>
+		<p>可用于重置内部 WebGL 状态。此方法主要与跨多个 WebGL 库共享单个 WebGL 上下文的应用程序相关。</p>
 
 		<h3>[method:undefined setAnimationLoop]( [param:Function callback] )</h3>
 		<p>[page:Function callback] — 每个可用帧都会调用的函数。 如果传入‘null’,所有正在进行的动画都会停止。</p>

+ 6 - 5
docs/api/zh/textures/DataTexture.html

@@ -24,9 +24,9 @@
 		<p>
 			数据的解释取决于type与format:
 			If the type is THREE.UnsignedByteType, a Uint8Array will be useful for addressing the texel data.
-			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity). Similarly, THREE.RGBFormat specifies a format where only three values are used for each texel.<br />
+			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity).<br />
 
-			For the packed types, THREE.UnsignedShort4444Type, THREE.UnsignedShort5551Type or THREE.UnsignedShort565Type, all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
+			For the packed types, THREE.UnsignedShort4444Type and THREE.UnsignedShort5551Type all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
 
 			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
 		</p>
@@ -40,7 +40,7 @@
 		const height = 512;
 
 		const size = width * height;
-		const data = new Uint8Array( 3 * size );
+		const data = new Uint8Array( 4 * size );
 		const color = new THREE.Color( 0xffffff );
 
 		const r = Math.floor( color.r * 255 );
@@ -49,17 +49,18 @@
 
 		for ( let i = 0; i < size; i ++ ) {
 
-			const stride = i * 3;
+			const stride = i * 4;
 
 			data[ stride ] = r;
 			data[ stride + 1 ] = g;
 			data[ stride + 2 ] = b;
+			data[ stride + 3 ] = 255;
 
 		}
 
 		// used the buffer to create a [name]
 
-		const texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
+		const texture = new THREE.DataTexture( data, width, height );
 		texture.needsUpdate = true;
 		</code>
 

+ 5 - 5
docs/api/zh/textures/DataTexture2DArray.html

@@ -24,9 +24,9 @@
 		<p>
 			The interpretation of the data depends on type and format:
 			If the type is THREE.UnsignedByteType, a Uint8Array will be useful for addressing the texel data.
-			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity). Similarly, THREE.RGBFormat specifies a format where only three values are used for each texel.<br />
+			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity).<br />
 
-			For the packed types, THREE.UnsignedShort4444Type, THREE.UnsignedShort5551Type or THREE.UnsignedShort565Type, all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
+			For the packed types, THREE.UnsignedShort4444Type and THREE.UnsignedShort5551Type all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
 
 			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
 		</p>
@@ -43,7 +43,7 @@
 		const depth = 100;
 
 		const size = width * height;
-		const data = new Uint8Array( 3 * size * depth );
+		const data = new Uint8Array( 4 * size * depth );
 
 		for ( let i = 0; i < depth; i ++ ) {
 
@@ -54,11 +54,12 @@
 
 			for ( let j = 0; j < size; j ++ ) {
 
-				const stride = ( i * size + j ) * 3;
+				const stride = ( i * size + j ) * 4;
 
 				data[ stride ] = r;
 				data[ stride + 1 ] = g;
 				data[ stride + 2 ] = b;
+				data[ stride + 3 ] = 255;
 
 			}
 		}
@@ -66,7 +67,6 @@
 		// used the buffer to create a [name]
 
 		const texture = new THREE.DataTexture2DArray( data, width, height, depth );
-		texture.format = THREE.RGBFormat;
 		texture.needsUpdate = true;
 		</code>
 

+ 1 - 2
docs/api/zh/textures/Texture.html

@@ -110,8 +110,7 @@
 
 		<h3>[property:number format]</h3>
 		<p>
-		默认值为[page:Textures THREE.RGBAFormat],
-		但[page:TextureLoader TextureLoader]将会在载入JPG图片时自动将这个值设置为[page:Textures THREE.RGBFormat]。<br /><br />
+		默认值为[page:Textures THREE.RGBAFormat]。<br /><br />
 
 		请参阅[page:Textures texture constants]页面来了解其它格式。
 		</p>

+ 1 - 1
docs/api/zh/textures/VideoTexture.html

@@ -49,7 +49,7 @@ const texture = new THREE.VideoTexture( video );
 		[page:Constant minFilter] -- 当一个纹素覆盖小于一个像素时,贴图将如何采样。
 		其默认值为[page:Textures THREE.LinearMipmapLinearFilter]。请参阅[page:Textures minification filter constants](缩小滤镜常量)来了解其它选项。<br />
 
-		[page:Constant format] -- 在纹理贴图中使用的格式。
+		[page:Constant format] -- The default is [page:Textures THREE.RGBAFormat].
 	 	请参阅[page:Textures format constants](格式常量)来了解各个选项。<br />
 
 		[page:Constant type] -- 默认值是[page:Textures THREE.UnsignedByteType].

+ 0 - 143
docs/examples/en/loaders/BasisTextureLoader.html

@@ -1,143 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Loader] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-			Loader for Basis Universal GPU Texture Codec.<br><br>
-
-			[link:https://github.com/BinomialLLC/basis_universal/ Basis Universal] is a
-			"supercompressed" GPU texture and texture video compression system that
-			outputs a highly compressed intermediate file format (.basis) that can be
-			quickly transcoded to a wide variety of GPU texture compression formats.
-		</p>
-
-		<p>
-			This loader parallelizes the transcoding process across a configurable number
-			of web workers, before transferring the transcoded compressed texture back
-			to the main thread. The required WASM transcoder and JS wrapper are available from the
-			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-			directory.
-		</p>
-
-		<h2>Code Example</h2>
-
-		<code>
-		const basisLoader = new BasisTextureLoader();
-		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
-		basisLoader.detectSupport( renderer );
-		basisLoader.load( 'diffuse.basis', function ( texture ) {
-
-			const material = new THREE.MeshStandardMaterial( { map: texture } );
-
-		}, function () {
-
-			console.log( 'onProgress' );
-
-		}, function ( e ) {
-
-			console.error( e );
-
-		} );
-		</code>
-
-		<h2>Examples</h2>
-
-		<p>
-			[example:webgl_loader_texture_basis]
-		</p>
-
-		<h2>Browser compatibility</h2>
-
-		<p>
-			BasisTextureLoader transcodes input textures in '.basis' format to an
-			appropriate compressed texture format for the target device, where
-			possible. This allows the same source texture to be served across
-			desktop, Android, and iOS devices, and transcoded into ASTC, DXT, ETC1,
-			or PVRTC1. Other output formats may be supported in the future.
-		</p>
-		<p>
-			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
-		</p>
-		<p>
-			This loader relies on ES6 Promises and Web Assembly, which are not
-			supported in IE11.
-		</p>
-
-		<br>
-		<hr>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [param:LoadingManager manager] )</h3>
-		<p>
-		[page:LoadingManager manager] — The [page:LoadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
-		</p>
-		<p>
-		Creates a new [name].
-		</p>
-
-		<h2>Properties</h2>
-		<p>See the base [page:Loader] class for common properties.</p>
-
-		<h2>Methods</h2>
-		<p>See the base [page:Loader] class for common methods.</p>
-
-		<h3>[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
-		<p>
-		[page:String url] — A string containing the path/URL of the <em>.basis</em> file.<br />
-		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
-		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
-		</p>
-		<p>
-		Load from url and call the <em>onLoad</em> function with the transcoded [page:CompressedTexture].
-		</p>
-
-		<h3>[method:this detectSupport]( [param:WebGLRenderer renderer] )</h3>
-		<p>
-		[page:WebGLRenderer renderer] — A renderer instance.
-		</p>
-		<p>
-		Detects hardware support for available compressed texture formats, to determine
-		the output format for the transcoder. Must be called before loading a texture.
-		</p>
-
-		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
-		</p>
-		<p>
-		The WASM transcoder and JS wrapper are available from the
-		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-		directory.
-		</p>
-
-		<h3>[method:this setWorkerLimit]( [param:Number limit] )</h3>
-		<p>
-		[page:Number limit] — Maximum number of workers. Default is '4'.
-		</p>
-		<p>
-		Sets the maximum number of web workers to be allocated by this instance.
-		</p>
-
-		<h3>[method:this dispose]()</h3>
-		<p>
-		Disposes the loader object, de-allocating any Web Workers created.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/BasisTextureLoader.js examples/jsm/loaders/BasisTextureLoader.js]
-		</p>
-	</body>
-</html>

+ 2 - 3
docs/examples/en/loaders/KTX2Loader.html

@@ -21,9 +21,8 @@
 		</p>
 
 		<p>
-			This loader parses the KTX 2.0 container and then relies on
-			[page:BasisTextureLoader] to complete the transcoding process. 
-			The required WASM transcoder and JS wrapper are available from the 
+			This loader parses the KTX 2.0 container and transcodes to a supported GPU compressed
+			texture format. The required WASM transcoder and JS wrapper are available from the
 			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
 			directory.
 		</p>

+ 220 - 0
docs/examples/en/loaders/LDrawLoader.html

@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc"> A loader for <em>LDraw</em> resources. <br /><br />
+		[link:https://ldraw.org LDraw] (LEGO Draw) is an
+		[link:https://ldraw.org/article/218.html open format specification] for describing LEGO
+		and other construction set 3D models.</p>
+
+		<p>An LDraw asset (a text file usually with extension .ldr, .dat or .txt) can describe
+		just a single construction piece, or an entire model.
+		In the case of a model the LDraw file can reference other LDraw files, which are loaded
+		from a library path set with [page:Function setPartsLibraryPath]. You usually download
+		the LDraw official parts library, extract to a folder and point setPartsLibraryPath to it.
+		</p>
+
+		<p>Library parts will be loaded by trial and error in subfolders 'parts', 'p' and 'models'.
+		These file accesses are not optimal for web environment, so a script tool has been made
+		to pack an LDraw file with all its dependencies into a single file, which loads much faster.
+		See section 'Packing LDraw models'. The LDrawLoader example loads several packed files.
+		The official parts library is not included due to its large size.</p>
+
+
+		<h2>Extensions</h2>
+
+		<p>
+			LDrawLoader supports the following extensions:
+		</p>
+
+		<ul>
+			<li>!COLOUR: Color and surface finish declarations.</li>
+			<li>BFC: Back Face Culling specification.</li>
+			<li>!CATEGORY: Model/part category declarations.</li>
+			<li>!KEYWORDS: Model/part keywords declarations.</li>
+		</ul>
+
+		<h2>Code Example</h2>
+
+		<code>
+		// Instantiate a loader
+		const loader = new LDrawLoader();
+
+		// Optionally set library parts path
+		// loader.setPartsLibraryPath( path to library );
+
+		// Load a LDraw resource
+		loader.load(
+			// resource URL
+			'models/car.ldr_Packed.mpd',
+			// called when the resource is loaded
+			function ( group ) {
+
+				// Optionally, use LDrawUtils.mergeObject() from
+				// 'examples/jsm/utils/LDrawUtils.js' to merge all
+				// geometries by material (it gives better runtime
+				// performance, but construction steps are lost)
+				// group = LDrawUtils.mergeObject( group );
+
+				scene.add( group );
+
+			},
+			// called while loading is progressing
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_loader_ldraw]
+		</p>
+
+		<h2>Packing LDraw models</h2>
+
+		<p>To pack a model with all its referenced files, download the
+		[link:https://www.ldraw.org/parts/latest-parts.html Official LDraw parts library]
+		and use the following Node script:
+		[link:https://github.com/mrdoob/three.js/blob/master/utils/packLDrawModel.js utils/packLDrawModel.js]
+		It contains instructions on how to setup the files and execute it.</p>
+
+		<h2>Metadata in .userData</h2>
+
+		<p>LDrawLoader returns a [page:Group] object which contains an object hierarchy. Depending of each subobject
+		type, its .userData member will contain the following members: <br />
+		In a [page:Group], the userData member will contain: <br />
+		<ul>
+			<li>.numConstructionSteps: Only in the root [page:Group], Indicates total number of construction steps in
+			the model. These can be used to set visibility of objects to show different construction steps, which is
+			done in the example.</li>
+			<li>.constructionStep: Indicates the construction index of this step.</li>
+			<li>.category: Contains, if not null, the [page:String] category for this piece or model.</li>
+			<li>.keywords: Contains, if not null, an array of [page:String] keywords for this piece or model.</li>
+		</ul>
+		</p>
+		<p>In a [page:Material], the userData member will contain:
+		<ul>
+			<li>.code: Indicates the LDraw code for this material.</li>
+			<li>.edgeMaterial: Only in a [page:Mesh] material, indicates the [page:LineBasicMaterial] belonging to edges
+			of the same color code (in the LDraw format, each surface material is also related to an edge material)</li>
+			<li>.conditionalEdgeMaterial: Only in a [page:LineSegments] material, indicates the [page:Material] belonging
+			to conditional edges of the same color code.</li>
+		</ul>
+		</p>
+
+		<br>
+		<hr>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Loader] class for common methods.</p>
+
+		<h3>[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<p>
+		[page:String url] — A string containing the path/URL of the LDraw file.<br />
+		[page:Function onLoad] — A function to be called after the loading is successfully completed. The function receives the loaded JSON response returned from [page:Function parse].<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
+		</p>
+		<p>
+		Begin loading from url and call the callback function with the parsed response content.
+		</p>
+
+		<h3>[method:this setPartsLibraryPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] —  Path to library parts files to load referenced parts from. This is different from [page:Loader.setPath], which indicates the path to load the main asset from.<br />
+		</p>
+		<p>
+		This method must be called prior to [page:.load] unless the model to load does not reference library parts (usually it will be a model with all its parts packed in a single file)
+		</p>
+
+		<h3>[method:this setFileMap]( [param:Map fileMap] )</h3>
+		<p>
+		[page:Map map] — Set a map from [page:String] to [page:String] which maps referenced library filenames to new filenames. If a fileMap is not specified (the default), library parts will be accessed by trial and error in subfolders 'parts', 'p' and 'models'.
+		</p>
+
+		<h3>[method:undefined parse]( [param:String text], [param:String path], [param:Function onLoad], [param:Function onError] )</h3>
+		<p>
+		[page:String text] — LDraw asset to parse, as string.<br />
+		[page:String path] — The base path from which to find other referenced LDraw asset files.<br />
+		[page:Function onLoad] — A function to be called when parse completes.<br />
+		</p>
+		<p>
+		Parse a LDraw file contents as a String and fire [page:Function onLoad] callback when complete. The argument to [page:Function onLoad] will be an [page:Group] that contains hierarchy of [page:Group], [page:Mesh] and [page:LineSegments] (with other part data in .userData fields).
+		</p>
+
+		<h3>[method:Material getMaterial]( [param:String colourCode] )</h3>
+		<p>
+		[page:String colourCode] — Color code to get the associated [page:Material].
+		</p>
+
+		<h3>[method:String getMainMaterial]()</h3>
+		<p>
+		Returns the [page:Material] for the main LDraw color.
+		</p>
+
+		<p>For an already loaded LDraw asset, returns the [page:Material] associated with the main color code.
+		This method can be useful to modify the main material of a model or part that exposes it.
+		</p>
+
+		<p>
+		The main color code is the standard way to color an LDraw part. It is '16' for triangles and '24' for edges. Usually
+		a complete model will not expose the main color (that is, no part uses the code '16' at the top level, because they
+		are assigned other specific colors) An LDraw part file on the other hand will expose the code '16' to be colored, and
+		can have additional fixed colors.
+		</p>
+
+		<h3>[method:String getMainEdgeMaterial]()</h3>
+		<p>
+		Returns the [page:Material] for the edges main LDraw color.
+		</p>
+
+		<h3>[method:void preloadMaterials]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Path of the LDraw materials asset.
+		</p>
+
+		<p>This async method preloads materials from a single LDraw file. In the official parts library there is a special
+		file which is loaded always the first (LDConfig.ldr) and contains all the standard color codes. This method is
+		intended to be used with not packed files, for example in an editor where materials are preloaded and parts are
+		loaded on demand.</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/LDrawLoader.js examples/jsm/loaders/LDrawLoader.js]
+		</p>
+	</body>
+</html>

+ 1 - 1
docs/examples/en/objects/Lensflare.html

@@ -12,7 +12,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			Creates a simulated lens flare that tracks a light.
+			Creates a simulated lens flare that tracks a light. [name] can only be used when setting the *alpha* context parameter of [page:WebGLRenderer] to *true*.
 		</p>
 
 		<h2>Code Example</h2>

+ 0 - 143
docs/examples/zh/loaders/BasisTextureLoader.html

@@ -1,143 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Loader] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-			Loader for Basis Universal GPU Texture Codec.<br><br>
-
-			[link:https://github.com/BinomialLLC/basis_universal/ Basis Universal] is a
-			"supercompressed" GPU texture and texture video compression system that
-			outputs a highly compressed intermediate file format (.basis) that can be
-			quickly transcoded to a wide variety of GPU texture compression formats.
-		</p>
-
-		<p>
-			This loader parallelizes the transcoding process across a configurable number
-			of web workers, before transferring the transcoded compressed texture back
-			to the main thread. The required WASM transcoder and JS wrapper are available from the
-			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-			directory.
-		</p>
-
-		<h2>代码示例</h2>
-
-		<code>
-		const basisLoader = new BasisTextureLoader();
-		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
-		basisLoader.detectSupport( renderer );
-		basisLoader.load( 'diffuse.basis', function ( texture ) {
-
-			const material = new THREE.MeshStandardMaterial( { map: texture } );
-
-		}, function () {
-
-			console.log( 'onProgress' );
-
-		}, function ( e ) {
-
-			console.error( e );
-
-		} );
-		</code>
-
-		<h2>例子</h2>
-
-		<p>
-			[example:webgl_loader_texture_basis]
-		</p>
-
-		<h2>Browser compatibility</h2>
-
-		<p>
-			BasisTextureLoader transcodes input textures in '.basis' format to an
-			appropriate compressed texture format for the target device, where
-			possible. This allows the same source texture to be served across
-			desktop, Android, and iOS devices, and transcoded into ASTC, DXT, ETC1,
-			or PVRTC1. Other output formats may be supported in the future.
-		</p>
-		<p>
-			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
-		</p>
-		<p>
-			This loader relies on ES6 Promises and Web Assembly, which are not
-			supported in IE11.
-		</p>
-
-		<br>
-		<hr>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [param:LoadingManager manager] )</h3>
-		<p>
-		[page:LoadingManager manager] — The [page:LoadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
-		</p>
-		<p>
-		Creates a new [name].
-		</p>
-
-		<h2>Properties</h2>
-		<p>See the base [page:Loader] class for common properties.</p>
-
-		<h2>Methods</h2>
-		<p>See the base [page:Loader] class for common methods.</p>
-
-		<h3>[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
-		<p>
-		[page:String url] — A string containing the path/URL of the <em>.basis</em> file.<br />
-		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
-		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
-		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
-		</p>
-		<p>
-		Load from url and call the <em>onLoad</em> function with the transcoded [page:CompressedTexture].
-		</p>
-
-		<h3>[method:this detectSupport]( [param:WebGLRenderer renderer] )</h3>
-		<p>
-		[page:WebGLRenderer renderer] — A renderer instance.
-		</p>
-		<p>
-		Detects hardware support for available compressed texture formats, to determine
-		the output format for the transcoder. Must be called before loading a texture.
-		</p>
-
-		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
-		</p>
-		<p>
-		The WASM transcoder and JS wrapper are available from the
-		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-		directory.
-		</p>
-
-		<h3>[method:this setWorkerLimit]( [param:Number limit] )</h3>
-		<p>
-		[page:Number limit] — Maximum number of workers. Default is '4'.
-		</p>
-		<p>
-		Sets the maximum number of web workers to be allocated by this instance.
-		</p>
-
-		<h3>[method:this dispose]()</h3>
-		<p>
-		Disposes the loader object, de-allocating any Web Workers created.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/BasisTextureLoader.js examples/jsm/loaders/BasisTextureLoader.js]
-		</p>
-	</body>
-</html>

+ 1 - 1
docs/examples/zh/objects/Lensflare.html

@@ -12,7 +12,7 @@
 		<h1>镜头光晕([name])</h1>
 
 		<p class="desc">
-			创建一个模拟追踪着灯光的镜头光晕。
+			创建一个模拟追踪着灯光的镜头光晕。 [name] can only be used when setting the *alpha* context parameter of [page:WebGLRenderer] to *true*.
 		</p>
 
 		<h2>代码示例</h2>

+ 20 - 25
docs/examples/zh/utils/BufferGeometryUtils.html

@@ -10,71 +10,66 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-		A class containing utility functions for [page:BufferGeometry BufferGeometry] instances.
+		一个包含 [page:BufferGeometry BufferGeometry] 实例的实用方法的类。
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:BufferGeometry mergeBufferGeometries]( [param:Array geometries], [param:Boolean useGroups] )</h3>
 		<p>
-		geometries -- Array of [page:BufferGeometry BufferGeometry] instances.<br />
-		useGroups -- Whether groups should be generated for the merged geometry or not.<br /><br />
+		geometries -- 由 [page:BufferGeometry BufferGeometry] 实例的数组。<br />
+		useGroups -- 是否要为了合并几何体而产生组。<br /><br />
 
-		Merges a set of geometries into a single instance. All geometries must have compatible attributes.
-		If merge does not succeed, the method returns null.
+		将一组几何体合并到一个实例中。所有几何体都必须兼容该属性。
+		如果合并不成功,则该方法返回 null。
 
 		</p>
 
 		<h3>[method:BufferAttribute mergeBufferAttributes]( [param:Array attributes] )</h3>
 		<p>
-		attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
+		attributes -- 由 [page:BufferAttribute BufferAttribute] 实例组成的数组。<br /><br />
 
-		Merges a set of attributes into a single instance. All attributes must have compatible properties
-		and types, and [page:InterleavedBufferAttribute InterleavedBufferAttributes] are not supported. If merge does not succeed, the method
-		returns null.
+		将一组属性合并为一个单一的实例。所有几何体都必须兼容该属性,不支持 [page:InterleavedBufferAttribute InterleavedBufferAttributes] 。
+		如果合并不成功,则该方法返回 null 。
 
 		</p>
 
 		<h3>[method:InterleavedBufferAttribute interleaveAttributes]( [param:Array attributes] )</h3>
 		<p>
-		attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
+		attributes -- 由 [page:BufferAttribute BufferAttribute] 实例组成的数组。<br /><br />
 
-		Interleaves a set of attributes and returns a new array of corresponding attributes that share
-		a single InterleavedBuffer instance. All attributes must have compatible types. If merge does not
-		succeed, the method returns null.
+		交叉存储一组属性并返回一个新的对应属性数组,这些属性共享一个 InterleavedBuffer 实例。所有属性都必须兼容的该类型。如果合并不成功,则该方法返回 null 。
 
 		</p>
 
 		<h3>[method:Number estimateBytesUsed]( [param:BufferGeometry geometry] )</h3>
 		<p>
-		geometry -- Instance of [page:BufferGeometry BufferGeometry] to estimate the memory use of.<br /><br />
+		geometry -- 通过 [page:BufferGeometry BufferGeometry] 的实例来估计内存使用情况。<br /><br />
 
-		Returns the amount of bytes used by all attributes to represent the geometry.
+		返回所有用于表示几何体的属性所占用的字节数。
 
 		</p>
 
 		<h3>[method:BufferGeometry mergeVertices]( [param:BufferGeometry geometry], [param:Number tolerance] )</h3>
 		<p>
-		geometry -- Instance of [page:BufferGeometry BufferGeometry] to merge the vertices of.<br />
-		tolerance -- The maximum allowable difference between vertex attributes to merge. Defaults to 1e-4.<br /><br />
+		geometry -- 用于合并顶点的 [page:BufferGeometry BufferGeometry] 实例。<br />
+		tolerance -- 要合并的顶点属性之间允许的最大差异。 默认为 1e-4。<br /><br />
 
-		Returns a new [page:BufferGeometry BufferGeometry] with vertices for which all similar vertex attributes
-		(within tolerance) are merged.
+		返回一个新的 [page:BufferGeometry BufferGeometry] ,其中包含将所有(在容差范围内的)具有相似属性的顶点合并而成的顶点。
 
 		</p>
 
 		<h3>[method:BufferGeometry toTrianglesDrawMode]( [param:BufferGeometry geometry], [param:TrianglesDrawMode drawMode] )</h3>
 		<p>
-		geometry -- Instance of [page:BufferGeometry BufferGeometry].<br />
-		drawMode -- The draw mode of the given geometry.<br /><br />
+		geometry -- [page:BufferGeometry BufferGeometry] 实例。<br />
+		drawMode -- 给定几何体的绘制模式。<br /><br />
 
-		Returns a new indexed [page:BufferGeometry BufferGeometry] based on the [page:DrawModes THREE.TrianglesDrawMode] draw mode. This mode
-		corresponds to the *gl.TRIANGLES* WebGL primitive.
+		基于 [page:DrawModes THREE.TrianglesDrawMode] 绘制模式,返回一个新的有索引值的 [page:BufferGeometry BufferGeometry]。 此模式对应于 WebGL 的原始术语 *gl.TRIANGLES* 。
 
 		</p>
 
-		<h2>Source</h2>
+		<h2></h2>
 
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/BufferGeometryUtils.js examples/jsm/utils/BufferGeometryUtils.js]

+ 10 - 10
docs/examples/zh/utils/SceneUtils.html

@@ -7,32 +7,32 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>场景工具([name]</h1>
 
-		<p class="desc">A class containing useful utility functions for scene manipulation.</p>
+		<p class="desc">一个用于操控场景的实用类。</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Group createMeshesFromInstancedMesh]( [param:InstancedMesh instancedMesh] )</h3>
 		<p>
-		instancedMesh -- The instanced mesh.
+			instancedMesh -- 实例化网格。
 		</p>
 		<p>
-		Creates a new group object that contains a new mesh for each instance of the given instanced mesh.
+			为给定的实例化网格的每个实例,创建一个包含新网格的新物体组(Object Group)。
 		</p>
 
 		<h3>[method:Group createMultiMaterialObject]( [param:BufferGeometry geometry], [param:Array materials] )</h3>
 		<p>
-		geometry -- The geometry for the set of materials. <br />
-		materials -- The materials for the object.
+			geometry -- 材料集的几何形状。 <br />
+			materials -- 为物体准备的材料。
 		</p>
 		<p>
-		Creates a new Group that contains a new mesh for each material defined in materials. Beware that this is not the same as an array of materials which defines multiple materials for 1 mesh.<br />
-		This is mostly useful for objects that need both a material and a wireframe implementation.
+			创建一个新组,囊括了在材质中定义的每种材质的新网格。请注意,这和为一个网格定义多种材质的材质数组不同。<br />
+			该方法对于同时需要材质和线框绘制的物体非常有用。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/SceneUtils.js examples/jsm/utils/SceneUtils.js]

+ 5 - 9
docs/examples/zh/utils/SkeletonUtils.html

@@ -7,19 +7,15 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>骨架工具([name]</h1>
 
-		<p class="desc">Utility functions for [page:Skeleton], [page:SkinnedMesh], and [page:Bone] manipulation.</p>
+		<p class="desc">用于操控 [page:Skeleton]、 [page:SkinnedMesh]、和 [page:Bone] 的实用方法。</p>
 
-
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Object3D clone]( [param:Object3D object] )</h3>
 		<p>
-			Clones the given object and its descendants, ensuring that any [page:SkinnedMesh] instances
-			are correctly associated with their bones. Bones are also cloned, and must be descendants of
-			the object passed to this method. Other data, like geometries and materials, are reused by
-			reference.
+		克隆给定对象及其后代,确保任何 [page:SkinnedMesh] 实例都与其骨骼正确关联。同时,骨骼也会被克隆,且必须是传递给此方法的物体的后代。而其他数据,如几何形状和材料,是通过引用来实现重复使用的。
 		</p>
 
 		<h3>[method:Object findBoneTrackData]( [param:String name], [param:Array tracks] )</h3>
@@ -52,7 +48,7 @@
 		<h3>[method:AnimationClip retargetClip]( [param:SkeletonHelper target], [param:SkeletonHelper source], [param:AnimationClip clip], [param:Object options] )</h3>
 		<p></p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/SkeletonUtils.js examples/jsm/utils/SkeletonUtils.js]

+ 1 - 1
docs/index.html

@@ -512,7 +512,7 @@
 			const oldIframe = iframe;
 			iframe = oldIframe.cloneNode();
 
-			if ( hash ) {
+			if ( hash && titles[ splitHash[ 0 ] ] ) {
 
 				iframe.src = splitHash[ 0 ] + '.html' + splitHash[ 1 ];
 				subtitle = titles[ splitHash[ 0 ] ] + splitHash[ 1 ] + ' – ';

+ 1 - 2
docs/list.json

@@ -362,11 +362,11 @@
 
 			"Loaders": {
 				"3DMLoader": "examples/en/loaders/3DMLoader",
-				"BasisTextureLoader": "examples/en/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/en/loaders/DRACOLoader",
 				"FontLoader": "examples/en/loaders/FontLoader",
 				"GLTFLoader": "examples/en/loaders/GLTFLoader",
 				"KTX2Loader": "examples/en/loaders/KTX2Loader",
+				"LDrawLoader": "examples/en/loaders/LDrawLoader",
 				"MMDLoader": "examples/en/loaders/MMDLoader",
 				"MTLLoader": "examples/en/loaders/MTLLoader",
 				"OBJLoader": "examples/en/loaders/OBJLoader",
@@ -859,7 +859,6 @@
 			},
 
 			"加载器": {
-				"BasisTextureLoader": "examples/zh/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/zh/loaders/DRACOLoader",
 				"FontLoader": "examples/zh/loaders/FontLoader",
 				"GLTFLoader": "examples/zh/loaders/GLTFLoader",

+ 2 - 2
docs/manual/ar/introduction/Installation.html

@@ -115,7 +115,7 @@
 		<code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
 
-		const controls = new OrbitControls();
+		const controls = new OrbitControls( camera, renderer.domElement );
 		</code>
 
 		<p>
@@ -129,7 +129,7 @@
 
 		  import { OrbitControls } from 'https://cdn.skypack.dev/three@&lt;version&gt;/examples/jsm/controls/OrbitControls.js';
 
-		  const controls = new OrbitControls();
+		  const controls = new OrbitControls( camera, renderer.domElement );
 
 		&lt;/script>
 		</code>

+ 3 - 3
docs/manual/ar/introduction/WebGL-compatibility-check.html

@@ -14,18 +14,18 @@
 		</p>
 
 		<p>
-			أضف [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/WebGL.js] إلى جافا سكريبت الخاص بك وقم بتشغيل ما يلي قبل محاولة تقديم أي شيء.
+			أضف [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js] إلى جافا سكريبت الخاص بك وقم بتشغيل ما يلي قبل محاولة تقديم أي شيء.
 		</p>
 
 		<code>
-		if ( WEBGL.isWebGLAvailable() ) {
+		if ( WebGL.isWebGLAvailable() ) {
 
 			// Initiate function or other initializations here
 			animate();
 
 		} else {
 
-			const warning = WEBGL.getWebGLErrorMessage();
+			const warning = WebGL.getWebGLErrorMessage();
 			document.getElementById( 'container' ).appendChild( warning );
 
 		}

+ 2 - 2
docs/manual/en/introduction/Installation.html

@@ -97,7 +97,7 @@
 		<code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
 
-		const controls = new OrbitControls();
+		const controls = new OrbitControls( camera, renderer.domElement );
 		</code>
 
 		<p>
@@ -111,7 +111,7 @@
 
 		  import { OrbitControls } from 'https://cdn.skypack.dev/three@&lt;version&gt;/examples/jsm/controls/OrbitControls.js';
 
-		  const controls = new OrbitControls();
+		  const controls = new OrbitControls( camera, renderer.domElement );
 
 		&lt;/script>
 		</code>

+ 3 - 3
docs/manual/en/introduction/WebGL-compatibility-check.html

@@ -14,19 +14,19 @@
 		</p>
 
 		<p>
-			Add	[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/WebGL.js]
+			Add	[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js]
 			to your javascript and run the following before attempting to render anything.
 		</p>
 
 		<code>
-		if ( WEBGL.isWebGLAvailable() ) {
+		if ( WebGL.isWebGLAvailable() ) {
 
 			// Initiate function or other initializations here
 			animate();
 
 		} else {
 
-			const warning = WEBGL.getWebGLErrorMessage();
+			const warning = WebGL.getWebGLErrorMessage();
 			document.getElementById( 'container' ).appendChild( warning );
 
 		}

+ 3 - 3
docs/manual/ja/introduction/Installation.html

@@ -99,7 +99,7 @@
     <code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
 
-		const controls = new OrbitControls();
+		const controls = new OrbitControls( camera, renderer.domElement );
 		</code>
 
     <p>
@@ -113,7 +113,7 @@
 		  // redirect to the newest stable release.
 		  import { OrbitControls } from 'https://cdn.skypack.dev/three/examples/jsm/controls/OrbitControls.js';
 
-		  const controls = new OrbitControls();
+		  const controls = new OrbitControls( camera, renderer.domElement );
 
 		&lt;/script>
 		</code>
@@ -159,4 +159,4 @@
 
 </body>
 
-</html>
+</html>

+ 3 - 3
docs/manual/ja/introduction/WebGL-compatibility-check.html

@@ -13,18 +13,18 @@
 		</p>
 
 		<p>
-			javascriptのコードに[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/WebGL.js]を付け加えて、何かを描画する前に以下のコードを実行してください。
+			javascriptのコードに[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js]を付け加えて、何かを描画する前に以下のコードを実行してください。
 		</p>
 
 		<code>
-		if ( WEBGL.isWebGLAvailable() ) {
+		if ( WebGL.isWebGLAvailable() ) {
 
 			// Initiate function or other initializations here
 			animate();
 
 		} else {
 
-			const warning = WEBGL.getWebGLErrorMessage();
+			const warning = WebGL.getWebGLErrorMessage();
 			document.getElementById( 'container' ).appendChild( warning );
 
 		}

+ 2 - 2
docs/manual/ko/introduction/Installation.html

@@ -112,7 +112,7 @@
     <code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
 
-		const controls = new OrbitControls();
+		const controls = new OrbitControls( camera, renderer.domElement );
 		</code>
 
     <p>
@@ -126,7 +126,7 @@
 
 		  import { OrbitControls } from 'https://cdn.skypack.dev/three@&lt;version&gt;/examples/jsm/controls/OrbitControls.js';
 
-		  const controls = new OrbitControls();
+		  const controls = new OrbitControls( camera, renderer.domElement );
 
 		&lt;/script>
 		</code>

+ 3 - 3
docs/manual/ko/introduction/WebGL-compatibility-check.html

@@ -14,18 +14,18 @@
 		</p>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/WebGL.js]를 스크립트에 추가하고 무언가를 렌더링하기 전에 아래 코드를 실행해보세요.
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js]를 스크립트에 추가하고 무언가를 렌더링하기 전에 아래 코드를 실행해보세요.
 		</p>
 
 		<code>
-		if ( WEBGL.isWebGLAvailable() ) {
+		if ( WebGL.isWebGLAvailable() ) {
 
 			// Initiate function or other initializations here
 			animate();
 
 		} else {
 
-			const warning = WEBGL.getWebGLErrorMessage();
+			const warning = WebGL.getWebGLErrorMessage();
 			document.getElementById( 'container' ).appendChild( warning );
 
 		}

+ 2 - 2
docs/manual/zh/introduction/Installation.html

@@ -97,7 +97,7 @@
 		<code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
 
-		const controls = new OrbitControls();
+		const controls = new OrbitControls( camera, renderer.domElement );
 		</code>
 
 		<p>
@@ -111,7 +111,7 @@
 
 		  import { OrbitControls } from 'https://cdn.skypack.dev/three@&lt;version&gt;/examples/jsm/controls/OrbitControls.js';
 
-		  const controls = new OrbitControls();
+		  const controls = new OrbitControls( camera, renderer.domElement );
 
 		&lt;/script>
 		</code>

+ 3 - 3
docs/manual/zh/introduction/WebGL-compatibility-check.html

@@ -13,15 +13,15 @@
 		</p>
 
 		<p>
-			请将[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/WebGL.js]引入到你的文件,并在尝试开始渲染之前先运行该文件。
+			请将[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js]引入到你的文件,并在尝试开始渲染之前先运行该文件。
         	</p>
 
 <code>
-if (WEBGL.isWebGLAvailable()) {
+if (WebGL.isWebGLAvailable()) {
     // Initiate function or other initializations here
     animate();
 } else {
-    const warning = WEBGL.getWebGLErrorMessage();
+    const warning = WebGL.getWebGLErrorMessage();
     document.getElementById('container').appendChild(warning);
 }
 </code>

+ 9 - 9
docs/page.js

@@ -31,27 +31,27 @@ function onDocumentLoad() {
 	let path, localizedPath;
 	const pathname = window.location.pathname;
 	const section = /\/(manual|api|examples)\//.exec( pathname )[ 1 ].toString().split( '.html' )[ 0 ];
-	let name = /[\-A-z0-9]+\.html/.exec( pathname ).toString().split( '.html' )[ 0 ];
+	let name = /[\-A-Za-z0-9]+\.html/.exec( pathname ).toString().split( '.html' )[ 0 ];
 
 	switch ( section ) {
 
 		case 'api':
-			localizedPath = /\/api\/[A-z0-9\/]+/.exec( pathname ).toString().substr( 5 );
+			localizedPath = /\/api\/[A-Za-z0-9\/]+/.exec( pathname ).toString().substr( 5 );
 
 			// Remove localized part of the path (e.g. 'en/' or 'es-MX/'):
-			path = localizedPath.replace( /^[A-z0-9-]+\//, '' );
+			path = localizedPath.replace( /^[A-Za-z0-9-]+\//, '' );
 
 			break;
 
 		case 'examples':
-			path = localizedPath = /\/examples\/[A-z0-9\/]+/.exec( pathname ).toString().substr( 10 );
+			path = localizedPath = /\/examples\/[A-Za-z0-9\/]+/.exec( pathname ).toString().substr( 10 );
 			break;
 
 		case 'manual':
 			name = name.replace( /\-/g, ' ' );
 
 			path = pathname.replace( /\ /g, '-' );
-			path = localizedPath = /\/manual\/[-A-z0-9\/]+/.exec( path ).toString().substr( 8 );
+			path = localizedPath = /\/manual\/[-A-Za-z0-9\/]+/.exec( path ).toString().substr( 8 );
 			break;
 
 	}
@@ -69,12 +69,12 @@ function onDocumentLoad() {
 	text = text.replace( /\[(?:member|property|method):([\w]+) ([\w\.\s]+)\]\s*(\(.*\))?/gi, '<a onclick="window.parent.setUrlFragment(\'' + name + '.$2\')" target="_parent" title="' + name + '.$2" class="permalink">#</a> .<a onclick="window.parent.setUrlFragment(\'' + name + '.$2\')" id="$2">$2</a> $3 : <a class="param" onclick="window.parent.setUrlFragment(\'$1\')">$1</a>' );
 	text = text.replace( /\[param:([\w\.]+) ([\w\.\s]+)\]/gi, '$2 : <a class="param" onclick="window.parent.setUrlFragment(\'$1\')">$1</a>' ); // [param:name title]
 
-	text = text.replace( /\[link:([\w|\:|\/|\.|\-|\_|\(|\)|\?|\#|\=|\!|\~]+)\]/gi, '<a href="$1"  target="_blank">$1</a>' ); // [link:url]
-	text = text.replace( /\[link:([\w|\:|\/|\.|\-|\_|\(|\)|\?|\#|\=|\!|\~]+) ([\w|\:|\/|\.|\-|\_|\'|\s]+)\]/gi, '<a href="$1"  target="_blank">$2</a>' ); // [link:url title]
-	text = text.replace( /\*([\w|\d|\"|\-|\(][\w|\d|\ |\-|\/|\+|\-|\(|\)|\=|\,|\.\"]*[\w|\d|\"|\)]|\w)\*/gi, '<strong>$1</strong>' ); // *
+	text = text.replace( /\[link:([\w\:\/\.\-\_\(\)\?\#\=\!\~]+)\]/gi, '<a href="$1" target="_blank">$1</a>' ); // [link:url]
+	text = text.replace( /\[link:([\w\:\/\.\-\_\(\)\?\#\=\!\~]+) ([\w\:\/\.\-\_\'\s]+)\]/gi, '<a href="$1" target="_blank">$2</a>' ); // [link:url title]
+	text = text.replace( /\*([\w\d\"\-\(][\w\d\ \/\+\-\(\)\=\,\."]*[\w\d\"\)]|\w)\*/gi, '<strong>$1</strong>' ); // *text*
 
 	text = text.replace( /\[example:([\w\_]+)\]/gi, '[example:$1 $1]' ); // [example:name] to [example:name title]
-	text = text.replace( /\[example:([\w\_]+) ([\w\:\/\.\-\_ \s]+)\]/gi, '<a href="../examples/#$1"  target="_blank">$2</a>' ); // [example:name title]
+	text = text.replace( /\[example:([\w\_]+) ([\w\:\/\.\-\_ \s]+)\]/gi, '<a href="../examples/#$1" target="_blank">$2</a>' ); // [example:name title]
 
 	text = text.replace( /<a class="param" onclick="window.parent.setUrlFragment\('\w+'\)">(null|this|Boolean|Object|Array|Number|String|Integer|Float|TypedArray|ArrayBuffer)<\/a>/gi, '<span class="param">$1</span>' ); // remove links to primitive types
 

+ 13 - 2
docs/scenes/bones-browser.html

@@ -23,6 +23,18 @@
 	</head>
 	<body>
 
+		<!-- Import maps polyfill -->
+		<!-- Remove this when import maps will be widely supported -->
+		<script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js"></script>
+
+		<script type="importmap">
+			{
+				"imports": {
+					"three": "../../build/three.module.js"
+				}
+			}
+		</script>
+
 		<a id='newWindow' href='./bones-browser.html' target='_blank'>Open in New Window</a>
 
 		<script type="module">
@@ -42,7 +54,7 @@
 				Vector3,
 				Uint16BufferAttribute,
 				WebGLRenderer
-			} from '../../build/three.module.js';
+			} from 'three';
 
 			import { GUI } from '../../examples/jsm/libs/lil-gui.module.min.js';
 			import { OrbitControls } from '../../examples/jsm/controls/OrbitControls.js';
@@ -52,7 +64,6 @@
 			const state = {
 				animateBones: false
 			};
-			
 
 			function initScene() {
 

+ 20 - 2
docs/scenes/geometry-browser.html

@@ -23,6 +23,18 @@
 	</head>
 	<body>
 
+		<!-- Import maps polyfill -->
+		<!-- Remove this when import maps will be widely supported -->
+		<script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js"></script>
+
+		<script type="importmap">
+			{
+				"imports": {
+					"three": "../../build/three.module.js"
+				}
+			}
+		</script>
+
 		<a id='newWindow' href='./geometry-browser.html' target='_blank'>Open in New Window</a>
 
 		<script type="module">
@@ -62,7 +74,7 @@
 				Vector3,
 				WireframeGeometry,
 				WebGLRenderer
-			} from '../../build/three.module.js';
+			} from 'three';
 
 			import { GUI } from '../../examples/jsm/libs/lil-gui.module.min.js';
 			import { OrbitControls } from '../../examples/jsm/controls/OrbitControls.js';
@@ -697,7 +709,13 @@
 
 			//
 
-			document.getElementById( 'newWindow' ).href += window.location.hash;
+			const selectedGeometry = window.location.hash.substring( 1 );
+
+			if ( guis[ selectedGeometry ] !== undefined ) {
+
+				document.getElementById( 'newWindow' ).href += '#' + selectedGeometry;
+
+			}
 
 			const gui = new GUI();
 

+ 13 - 3
docs/scenes/material-browser.html

@@ -23,11 +23,23 @@
 	</head>
 	<body>
 
+		<!-- Import maps polyfill -->
+		<!-- Remove this when import maps will be widely supported -->
+		<script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js"></script>
+
+		<script type="importmap">
+			{
+				"imports": {
+					"three": "../../build/three.module.js"
+				}
+			}
+		</script>
+
 		<a id='newWindow' href='./material-browser.html' target='_blank'>Open in New Window</a>
 
 		<script type="module">
 
-			import * as THREE from '../../build/three.module.js';
+			import * as THREE from 'three';
 			import { GUI } from '../../examples/jsm/libs/lil-gui.module.min.js';
 			import { RoomEnvironment } from '../../examples/jsm/environments/RoomEnvironment.js';
 
@@ -123,11 +135,9 @@
 				];
 
 				const reflectionCube = cubeTextureLoader.load( urls );
-				reflectionCube.format = THREE.RGBFormat;
 
 				const refractionCube = cubeTextureLoader.load( urls );
 				refractionCube.mapping = THREE.CubeRefractionMapping;
-				refractionCube.format = THREE.RGBFormat;
 
 				return {
 					none: null,

+ 16 - 4
editor/index.html

@@ -59,9 +59,21 @@
 		<script src="js/libs/tern-threejs/threejs.js"></script>
 		<script src="js/libs/signals.min.js"></script>
 
+		<!-- Import maps polyfill -->
+		<!-- Remove this when import maps will be widely supported -->
+		<script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js"></script>
+
+		<script type="importmap">
+			{
+				"imports": {
+					"three": "../build/three.module.js"
+				}
+			}
+		</script>
+
 		<script type="module">
 
-			import * as THREE from '../build/three.module.js';
+			import * as THREE from 'three';
 
 			import { Editor } from './js/Editor.js';
 			import { Viewport } from './js/Viewport.js';
@@ -188,7 +200,7 @@
 				event.preventDefault();
 				event.dataTransfer.dropEffect = 'copy';
 
-			}, false );
+			});
 
 			document.addEventListener( 'drop', function ( event ) {
 
@@ -208,7 +220,7 @@
 
 				}
 
-			}, false );
+			} );
 
 			function onWindowResize() {
 
@@ -216,7 +228,7 @@
 
 			}
 
-			window.addEventListener( 'resize', onWindowResize, false );
+			window.addEventListener( 'resize', onWindowResize );
 
 			onWindowResize();
 

+ 1 - 1
editor/js/Editor.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { Config } from './Config.js';
 import { Loader } from './Loader.js';

+ 17 - 17
editor/js/EditorControls.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 function EditorControls( object, domElement ) {
 
@@ -129,8 +129,8 @@ function EditorControls( object, domElement ) {
 
 		}
 
-		domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
-		domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
+		domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove );
+		domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp );
 
 	}
 
@@ -164,8 +164,8 @@ function EditorControls( object, domElement ) {
 
 		}
 
-		domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove, false );
-		domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp, false );
+		domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove );
+		domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp );
 
 	}
 
@@ -241,22 +241,22 @@ function EditorControls( object, domElement ) {
 
 	this.dispose = function () {
 
-		domElement.removeEventListener( 'contextmenu', contextmenu, false );
-		domElement.removeEventListener( 'dblclick', onMouseUp, false );
-		domElement.removeEventListener( 'wheel', onMouseWheel, false );
+		domElement.removeEventListener( 'contextmenu', contextmenu );
+		domElement.removeEventListener( 'dblclick', onMouseUp );
+		domElement.removeEventListener( 'wheel', onMouseWheel );
 
-		domElement.removeEventListener( 'pointerdown', onPointerDown, false );
+		domElement.removeEventListener( 'pointerdown', onPointerDown );
 
-		domElement.removeEventListener( 'touchstart', touchStart, false );
-		domElement.removeEventListener( 'touchmove', touchMove, false );
+		domElement.removeEventListener( 'touchstart', touchStart );
+		domElement.removeEventListener( 'touchmove', touchMove );
 
 	};
 
-	domElement.addEventListener( 'contextmenu', contextmenu, false );
-	domElement.addEventListener( 'dblclick', onMouseUp, false );
-	domElement.addEventListener( 'wheel', onMouseWheel, false );
+	domElement.addEventListener( 'contextmenu', contextmenu );
+	domElement.addEventListener( 'dblclick', onMouseUp );
+	domElement.addEventListener( 'wheel', onMouseWheel );
 
-	domElement.addEventListener( 'pointerdown', onPointerDown, false );
+	domElement.addEventListener( 'pointerdown', onPointerDown );
 
 	// touch
 
@@ -343,8 +343,8 @@ function EditorControls( object, domElement ) {
 
 	}
 
-	domElement.addEventListener( 'touchstart', touchStart, false );
-	domElement.addEventListener( 'touchmove', touchMove, false );
+	domElement.addEventListener( 'touchstart', touchStart );
+	domElement.addEventListener( 'touchmove', touchMove );
 
 }
 

+ 1 - 2
editor/js/Loader.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { TGALoader } from '../../examples/jsm/loaders/TGALoader.js';
 
@@ -392,7 +392,6 @@ function Loader( editor ) {
 					var { LDrawLoader } = await import( '../../examples/jsm/loaders/LDrawLoader.js' );
 
 					var loader = new LDrawLoader();
-					loader.fileMap = {}; // TODO Uh...
 					loader.setPath( '../../examples/models/ldraw/officialLibrary/' );
 					loader.parse( event.target.result, undefined, function ( group ) {
 

+ 1 - 1
editor/js/Menubar.Add.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIPanel, UIRow, UIHorizontalRule } from './libs/ui.js';
 

+ 1 - 1
editor/js/Menubar.Edit.js

@@ -1,4 +1,4 @@
-import { Box3, Vector3 } from '../../build/three.module.js';
+import { Box3, Vector3 } from 'three';
 
 import { UIPanel, UIRow, UIHorizontalRule } from './libs/ui.js';
 

+ 1 - 1
editor/js/Menubar.Examples.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIPanel, UIRow } from './libs/ui.js';
 

+ 3 - 3
editor/js/Menubar.File.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { zipSync, strToU8 } from '../../examples/jsm/libs/fflate.module.js';
 
@@ -253,7 +253,7 @@ function MenubarFile( editor ) {
 
 			saveArrayBuffer( result, 'scene.glb' );
 
-		}, { binary: true, animations: animations } );
+		}, undefined, { binary: true, animations: animations } );
 
 	} );
 	options.add( option );
@@ -276,7 +276,7 @@ function MenubarFile( editor ) {
 
 			saveString( JSON.stringify( result, null, 2 ), 'scene.gltf' );
 
-		}, { animations: animations } );
+		}, undefined, { animations: animations } );
 
 
 	} );

+ 1 - 1
editor/js/Menubar.Status.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIPanel, UIText } from './libs/ui.js';
 import { UIBoolean } from './libs/ui.three.js';

+ 3 - 3
editor/js/Resizer.js

@@ -11,8 +11,8 @@ function Resizer( editor ) {
 
 		if ( event.isPrimary === false ) return;
 
-		dom.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
-		dom.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
+		dom.ownerDocument.addEventListener( 'pointermove', onPointerMove );
+		dom.ownerDocument.addEventListener( 'pointerup', onPointerUp );
 
 	}
 
@@ -49,7 +49,7 @@ function Resizer( editor ) {
 
 	}
 
-	dom.addEventListener( 'pointerdown', onPointerDown, false );
+	dom.addEventListener( 'pointerdown', onPointerDown );
 
 	return new UIElement( dom );
 

+ 1 - 1
editor/js/Sidebar.Geometry.BoxGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UINumber, UIInteger } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.CircleGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.CylinderGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UICheckbox, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.DodecahedronGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.ExtrudeGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UICheckbox, UIButton, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.IcosahedronGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.LatheGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 import { UIPoints2 } from './libs/ui.three.js';

+ 1 - 1
editor/js/Sidebar.Geometry.OctahedronGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.PlaneGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.RingGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.ShapeGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UIButton } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.SphereGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.TetrahedronGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.TorusGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.TorusKnotGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UINumber } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Geometry.TubeGeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIRow, UIText, UIInteger, UISelect, UICheckbox, UINumber } from './libs/ui.js';
 import { UIPoints3 } from './libs/ui.three.js';

+ 1 - 1
editor/js/Sidebar.Geometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UIPanel, UIRow, UIText, UIInput, UIButton, UISpan } from './libs/ui.js';
 

+ 1 - 1
editor/js/Sidebar.Material.MapProperty.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../build/three.module.js';
+import * as THREE from 'three';
 
 import { UICheckbox, UINumber, UIRow, UIText } from './libs/ui.js';
 import { UITexture } from './libs/ui.three.js';

Some files were not shown because too many files changed in this diff