瀏覽代碼

Merge branch 'dev' of https://github.com/mrdoob/three.js into zh_doc

gogoend 5 年之前
父節點
當前提交
111c53d2a0
共有 100 個文件被更改,包括 3664 次插入2163 次删除
  1. 3 5
      .github/ISSUE_TEMPLATE.md
  2. 278 250
      build/three.js
  3. 328 335
      build/three.min.js
  4. 281 276
      build/three.module.js
  5. 7 0
      docs/api/en/animation/AnimationMixer.html
  6. 15 0
      docs/api/en/audio/Audio.html
  7. 12 18
      docs/api/en/constants/DrawModes.html
  8. 1 1
      docs/api/en/constants/Renderer.html
  9. 9 20
      docs/api/en/core/BufferAttribute.html
  10. 6 6
      docs/api/en/core/BufferGeometry.html
  11. 7 13
      docs/api/en/core/InterleavedBuffer.html
  12. 9 2
      docs/api/en/core/Object3D.html
  13. 4 2
      docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html
  14. 0 25
      docs/api/en/loaders/Loader.html
  15. 33 8
      docs/api/en/loaders/managers/LoadingManager.html
  16. 0 3
      docs/api/en/materials/LineBasicMaterial.html
  17. 0 3
      docs/api/en/materials/LineDashedMaterial.html
  18. 14 9
      docs/api/en/materials/Material.html
  19. 0 3
      docs/api/en/materials/MeshBasicMaterial.html
  20. 0 3
      docs/api/en/materials/MeshDepthMaterial.html
  21. 0 3
      docs/api/en/materials/MeshDistanceMaterial.html
  22. 0 3
      docs/api/en/materials/MeshNormalMaterial.html
  23. 3 3
      docs/api/en/materials/MeshStandardMaterial.html
  24. 11 0
      docs/api/en/materials/PointsMaterial.html
  25. 1 1
      docs/api/en/materials/RawShaderMaterial.html
  26. 0 3
      docs/api/en/materials/ShaderMaterial.html
  27. 0 3
      docs/api/en/materials/ShadowMaterial.html
  28. 11 3
      docs/api/en/materials/SpriteMaterial.html
  29. 10 1
      docs/api/en/math/Color.html
  30. 1 1
      docs/api/en/math/Matrix4.html
  31. 3 3
      docs/api/en/math/Vector3.html
  32. 73 0
      docs/api/en/objects/InstancedMesh.html
  33. 7 3
      docs/api/en/objects/Mesh.html
  34. 2 2
      docs/api/en/objects/SkinnedMesh.html
  35. 8 0
      docs/api/en/renderers/WebGLRenderTargetCube.html
  36. 7 1
      docs/api/en/renderers/WebGLRenderer.html
  37. 0 1
      docs/api/en/textures/DataTexture.html
  38. 5 5
      docs/api/en/textures/DataTexture3D.html
  39. 11 1
      docs/api/zh/audio/Audio.html
  40. 2 2
      docs/api/zh/cameras/CubeCamera.html
  41. 11 15
      docs/api/zh/constants/DrawModes.html
  42. 9 19
      docs/api/zh/core/BufferAttribute.html
  43. 4 4
      docs/api/zh/core/BufferGeometry.html
  44. 7 13
      docs/api/zh/core/InterleavedBuffer.html
  45. 0 25
      docs/api/zh/loaders/Loader.html
  46. 36 10
      docs/api/zh/loaders/managers/LoadingManager.html
  47. 0 3
      docs/api/zh/materials/LineBasicMaterial.html
  48. 0 3
      docs/api/zh/materials/LineDashedMaterial.html
  49. 13 8
      docs/api/zh/materials/Material.html
  50. 0 3
      docs/api/zh/materials/MeshBasicMaterial.html
  51. 0 3
      docs/api/zh/materials/MeshDepthMaterial.html
  52. 0 3
      docs/api/zh/materials/MeshDistanceMaterial.html
  53. 0 3
      docs/api/zh/materials/MeshNormalMaterial.html
  54. 1 1
      docs/api/zh/materials/MeshStandardMaterial.html
  55. 0 3
      docs/api/zh/materials/ShadowMaterial.html
  56. 0 3
      docs/api/zh/materials/SpriteMaterial.html
  57. 1 1
      docs/api/zh/math/Matrix4.html
  58. 73 0
      docs/api/zh/objects/InstancedMesh.html
  59. 4 1
      docs/api/zh/objects/Mesh.html
  60. 2 2
      docs/api/zh/objects/SkinnedMesh.html
  61. 8 0
      docs/api/zh/renderers/WebGLRenderTargetCube.html
  62. 7 1
      docs/api/zh/renderers/WebGLRenderer.html
  63. 1 1
      docs/api/zh/textures/DataTexture3D.html
  64. 89 0
      docs/examples/en/controls/DeviceOrientationControls.html
  65. 119 0
      docs/examples/en/controls/DragControls.html
  66. 165 0
      docs/examples/en/controls/FirstPersonControls.html
  67. 94 0
      docs/examples/en/controls/FlyControls.html
  68. 2 3
      docs/examples/en/controls/OrbitControls.html
  69. 149 0
      docs/examples/en/controls/PointerLockControls.html
  70. 207 0
      docs/examples/en/controls/TrackballControls.html
  71. 224 0
      docs/examples/en/controls/TransformControls.html
  72. 1 0
      docs/examples/en/exporters/GLTFExporter.html
  73. 0 101
      docs/examples/en/loaders/BabylonLoader.html
  74. 7 10
      docs/examples/en/loaders/BasisTextureLoader.html
  75. 4 13
      docs/examples/en/loaders/DRACOLoader.html
  76. 3 22
      docs/examples/en/loaders/GLTFLoader.html
  77. 0 543
      docs/examples/en/loaders/LoaderSupport.html
  78. 3 22
      docs/examples/en/loaders/MMDLoader.html
  79. 3 31
      docs/examples/en/loaders/MTLLoader.html
  80. 3 6
      docs/examples/en/loaders/OBJLoader.html
  81. 61 67
      docs/examples/en/loaders/OBJLoader2.html
  82. 109 0
      docs/examples/en/loaders/OBJLoader2Parallel.html
  83. 3 8
      docs/examples/en/loaders/PCDLoader.html
  84. 3 9
      docs/examples/en/loaders/PDBLoader.html
  85. 3 15
      docs/examples/en/loaders/PRWMLoader.html
  86. 3 9
      docs/examples/en/loaders/SVGLoader.html
  87. 6 9
      docs/examples/en/loaders/TGALoader.html
  88. 89 0
      docs/examples/zh/controls/DeviceOrientationControls.html
  89. 119 0
      docs/examples/zh/controls/DragControls.html
  90. 165 0
      docs/examples/zh/controls/FirstPersonControls.html
  91. 94 0
      docs/examples/zh/controls/FlyControls.html
  92. 2 3
      docs/examples/zh/controls/OrbitControls.html
  93. 149 0
      docs/examples/zh/controls/PointerLockControls.html
  94. 207 0
      docs/examples/zh/controls/TrackballControls.html
  95. 224 0
      docs/examples/zh/controls/TransformControls.html
  96. 1 0
      docs/examples/zh/exporters/GLTFExporter.html
  97. 0 101
      docs/examples/zh/loaders/BabylonLoader.html
  98. 7 10
      docs/examples/zh/loaders/BasisTextureLoader.html
  99. 4 13
      docs/examples/zh/loaders/DRACOLoader.html
  100. 3 22
      docs/examples/zh/loaders/GLTFLoader.html

+ 3 - 5
.github/ISSUE_TEMPLATE.md

@@ -11,15 +11,13 @@ Always include a code snippet, screenshots, and any relevant models or textures
 
 Please also include a live example if possible. You can start from these templates:
 
-* [jsfiddle](https://jsfiddle.net/3foLr7sn/) (latest release branch)
-* [jsfiddle](https://jsfiddle.net/qgu17w5o/) (dev branch)
-* [codepen](https://codepen.io/anon/pen/aEBKxR) (latest release branch)
-* [codepen](https://codepen.io/anon/pen/BJWzaN) (dev branch)
+* [jsfiddle](https://jsfiddle.net/hyok6tvj/) (latest release branch)
+* [jsfiddle](https://jsfiddle.net/c5m1kazu/) (dev branch)
 
 ##### Three.js version
 
 - [ ] Dev
-- [ ] r108
+- [ ] r109
 - [ ] ...
 
 ##### Browser

文件差異過大導致無法顯示
+ 278 - 250
build/three.js


文件差異過大導致無法顯示
+ 328 - 335
build/three.min.js


文件差異過大導致無法顯示
+ 281 - 276
build/three.module.js


+ 7 - 0
docs/api/en/animation/AnimationMixer.html

@@ -85,6 +85,13 @@
 			This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
 		</p>
 
+		<h3>[method:AnimationMixer setTime]([param:Number timeInSeconds]) </h3>
+		<p>
+			Sets the global mixer to a specific time and updates the animation accordingly.<br /><br />
+
+			This is useful when you need to jump to an exact time in an animation. The input parameter will be scaled by the mixer's [page:.timeScale timeScale].
+		</p>
+
 		<h3>[method:null uncacheClip]([param:AnimationClip clip])</h3>
 
 		<p>

+ 15 - 0
docs/api/en/audio/Audio.html

@@ -188,11 +188,26 @@
 		(whether playback should loop).
 		</p>
 
+		<h3>[method:Audio setLoopStart]( [param:Float value] )</h3>
+		<p>
+		Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart] to *value*.
+		</p>
+
+		<h3>[method:Audio setLoopEnd]( [param:Float value] )</h3>
+		<p>
+		Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd] to *value*.
+		</p>
+
 		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
 		<p>
 		Applies the given object of type [link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement] as the source of this audio.<br />
 		Also sets [page:Audio.hasPlaybackControl hasPlaybackControl] to false.
+		</p>
 
+		<h3>[method:Audio setMediaStreamSource]( mediaStream )</h3>
+		<p>
+		Applies the given object of type [link:https://developer.mozilla.org/en-US/docs/Web/API/MediaStream MediaStream] as the source of this audio.<br />
+		Also sets [page:Audio.hasPlaybackControl hasPlaybackControl] to false.
 		</p>
 
 		<h3>[method:Audio setNodeSource]( audioNode )</h3>

+ 12 - 18
docs/api/en/constants/DrawModes.html

@@ -11,13 +11,7 @@
 		<h1>Draw Mode Constants</h1>
 
 		<p class="desc">
-			These are valid values for [page:Mesh.drawMode], and control how the list of vertices is interpeted once sent to the GPU.<br /><br />
-
-			Note that these only work when [page:Mesh.geometry] is a [page:BufferGeometry]. Changing this
-			when [page:Mesh.geometry] is a [page:Geometry] will have no effect.<br /><br />
-
-
-
+			These are valid values for [page:Mesh.drawMode], and control how the list of vertices is interpeted once sent to the GPU.
 		</p>
 
 		<h2>Draw Modes</h2>
@@ -26,7 +20,7 @@
 			THREE.TrianglesDrawMode
 		</code>
 		<p>
-			This is the default, and results in every three consecutive vertices (v0, v1, v2), (v2, v3, v5), ...
+			This is the default, and results in every three consecutive vertices (v0, v1, v2), (v3, v4, v5), ...
 			being interpreted as a separate triangle. <br />
 			If the number of vertices is not a multiple of 3, excess vertices are ignored.
 		</p>
@@ -56,15 +50,17 @@
 		<h2>Usage</h2>
 
 		<code>
-		var geometry = new THREE.Geometry();
+		var geometry = new THREE.BufferGeometry();
+
+		var vertices = [];
 
-		geometry.vertices.push(
-			new THREE.Vector3( -10,  10, 0 ),
-			new THREE.Vector3( -10, -10, 0 ),
-			new THREE.Vector3(  10, -10, 0 ),
-			...
-		);
-		geometry.faces.push( new THREE.Face3( 0, 1, 2 ), ... );
+		vertices.push( -10,  10, 0 );
+		vertices.push( -10, -10, 0 );
+		vertices.push(  10, -10, 0 );
+
+		// ...
+
+		geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
 
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
 
@@ -74,8 +70,6 @@
 		scene.add( mesh );
 		</code>
 
-
-
 		<h2>Source</h2>
 
 		<p>

+ 1 - 1
docs/api/en/constants/Renderer.html

@@ -47,7 +47,7 @@
 		[page:constant BasicShadowMap] gives unfiltered shadow maps - fastest, but lowest quality.<br />
 		[page:constant PCFShadowMap] filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm (default).<br />
 		[page:constant PCFSoftShadowMap] filters shadow maps using the Percentage-Closer Soft Shadows (PCSS) algorithm.<br />
-		[page:constant VSMShadowMap] filters shadow maps using the Variance Shadow Map (VSM) algorithm.
+		[page:constant VSMShadowMap] filters shadow maps using the Variance Shadow Map (VSM) algorithm. When using VSMShadowMap all shadow receivers will also cast shadows.
 		</p>
 
 		<h2>Tone Mapping</h2>

+ 9 - 20
docs/api/en/core/BufferAttribute.html

@@ -58,16 +58,6 @@
 		then this will count the number of such vectors stored.
 		</p>
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-			Whether the buffer is dynamic or not. Default is *false*.<br />
-
-			If false, the GPU is informed that contents of the buffer are likely to be used often and not change often.
-			This corresponds to the  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.STATIC_DRAW] flag.<br />
-			if true, the GPU is informed that contents of the buffer are likely to be used often and change often.
-			This corresponds to the  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.DYNAMIC_DRAW] flag.
-		</p>
-
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<p>
 			Used to check whether this or derived classes are BufferAttributes. Default is *true*.<br /><br />
@@ -111,10 +101,16 @@
 			related to color).
 		</p>
 
+		<h3>[property:Usage usage]</h3>
+		<p>
+			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
+			Default is *THREE.StaticDrawUsage*.
+		</p>
+
 		<h3>[property:Integer version]</h3>
 		<p>A version number, incremented every time the [page:BufferAttribute.needsUpdate needsUpdate] property is set to true.</p>
 
-
 		<h2>Methods</h2>
 
 		<h3>[method:BufferAttribute clone]() </h3>
@@ -178,15 +174,8 @@
 		being a [page:TypedArray].
 		</p>
 
-		<h3>[method:BufferAttribute setArray] ( [param:TypedArray array] ) </h3>
-		<p>
-		[page:BufferAttribute.array array] to the TypedArray passed in here.<br /><br />
-
-		After setting the array, [page:BufferAttribute.needsUpdate needsUpdate] should be set to true.
-		</p>
-
-		<h3>[method:BufferAttribute setDynamic] ( [param:Boolean value] ) </h3>
-		<p>Set [page:BufferAttribute.dynamic dynamic] to value.</p>
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
 
 		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
 		<p>Sets the x component of the vector at the given index.</p>

+ 6 - 6
docs/api/en/core/BufferGeometry.html

@@ -38,7 +38,7 @@
 		] );
 
 		// itemSize = 3 because there are 3 values (components) per vertex
-		geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
 		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		var mesh = new THREE.Mesh( geometry, material );
 		</code>
@@ -65,7 +65,7 @@
 		<h3>[property:Object attributes]</h3>
 		<p>
 		This hashmap has as id the name of the attribute to be set and as value the [page:BufferAttribute buffer] to set it to.
-		Rather than accessing this property directly, use [page:.addAttribute] and [page:.getAttribute] to access attributes of this geometry.
+		Rather than accessing this property directly, use [page:.setAttribute] and [page:.getAttribute] to access attributes of this geometry.
 		</p>
 
 		<h3>[property:Box3 boundingBox]</h3>
@@ -165,9 +165,9 @@
 
 		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
 
-		<h3>[method:BufferGeometry addAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<h3>[method:BufferGeometry setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
 		<p>
-		Adds an attribute to this geometry. Use this rather than the attributes property,
+		Sets an attribute to this geometry. Use this rather than the attributes property,
 		because an internal hashmap of [page:.attributes] is maintained to speed up iterating over
 		attributes.
 		</p>
@@ -249,8 +249,8 @@
 		This will correct lighting on the geometry surfaces.
 		</p>
 
-		<h3>[method:BufferAttribute removeAttribute]( [param:String name] )</h3>
-		<p>Removes the [page:BufferAttribute attribute] with the specified name.</p>
+		<h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
+		<p>Deletes the [page:BufferAttribute attribute] with the specified name.</p>
 
 		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>
 		<p>

+ 7 - 13
docs/api/en/core/InterleavedBuffer.html

@@ -44,11 +44,6 @@
 		Gives the total number of elements in the array.
 		</p>
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-		Default is *false*.
-		</p>
-
 		<h3>[property:Object updateRange]</h3>
 		<p>
 		Object containing offset and count.
@@ -79,17 +74,13 @@
 		Default is *false*. Setting this to true increments [page:InterleavedBuffer.version version].
 		</p>
 
-		<h2>Methods</h2>
-
-		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<h3>[property:Usage usage]</h3>
 		<p>
-		 array - must be  a Typed Array.
+			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
 		</p>
 
-		<h3>[method:InterleavedBuffer setDynamic] ( [param:Boolean value] ) </h3>
-		<p>
-			Set [page:InterleavedBuffer.dynamic dynamic] to value.
-		</p>
+		<h2>Methods</h2>
 
 		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
 		<p>
@@ -112,6 +103,9 @@
 			Creates a clone of this [name].
 		</p>
 
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
+
 		<h2>Source</h2>
 
 		<p>

+ 9 - 2
docs/api/en/core/Object3D.html

@@ -438,11 +438,18 @@
 		</p>
 
 		<h3>[method:null updateMatrix]()</h3>
-		<p>Update the local transform.</p>
+		<p>Updates the local transform.</p>
 
 		<h3>[method:null updateMatrixWorld]( [param:Boolean force] )</h3>
-		<p>Update the global transform of the object and its children.</p>
+		<p>Updates the global transform of the object and its descendants.</p>
 
+		<h3>[method:null updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
+		<p>
+		updateParents - recursively updates global transform of ancestors.<br />
+		updateChildren - recursively updates global transform of descendants.<br /><br />
+
+		Updates the global transform of the object.
+		</p>
 
 		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
 		<p>

+ 4 - 2
docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -33,9 +33,11 @@
 
 		<p>All of the above are called in the same way.</p>
 
-		<h3>TypedBufferAttribute( [param:Array array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<h3>TypedBufferAttribute( [param:Array_or_Integer array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
 		<p>
-			array -- this can be a typed or untyped (normal) array. It will be converted to the Type specified.<br /><br />
+			array -- this can be a typed or untyped (normal) array or an integer length.
+			An array value will be converted to the Type specified.
+			If a length is given a new TypedArray will created, initialized with all elements set to zero.<br /><br />
 
 			itemSize -- the number of values of the array that should be associated with a particular vertex.<br /><br />
 

+ 0 - 25
docs/api/en/loaders/Loader.html

@@ -77,31 +77,6 @@
 			[page:String resourcePath] — Set the base path for dependent resources like textures.
 		</p>
 
-		<h2>Handlers</h2>
-
-		<p>
-		*[name].Handlers* is a special object normally used by other loaders like [page:GLTFLoader] or [page:MTLLoader]. It provides an
-		API that allows the definition of special mappings: What loaders should be used in order to load specific files. A typical use case
-		is to overwrite the default loader for textures.<br /><br />
-
-		Note: It's only possible to use *[name].Handlers* if the respective loader support the usage.
-		</p>
-
-		<h3>[method:null add]( [param:Object regex], [param:Loader loader] )</h3>
-		<p>
-		[page:Object regex] — A regular expression.<br />
-		[page:Loader loader] — The loader.
-		<p>
-		Registers a loader with the given regular expression.
-		</p>
-
-		<h3>[method:null get]( [param:String file] )</h3>
-		<p>
-		[page:String file] — The file path.
-		<p>
-		Can be used to retrieve the registered loader for the given file path.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 33 - 8
docs/api/en/loaders/managers/LoadingManager.html

@@ -23,7 +23,6 @@
 		<h2>Example</h2>
 
 		<p>
-			[example:webgl_loader_babylon WebGL / loader / babylon]<br />
 			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_materials_reflectivity WebGL / materials / reflectivity]<br />
@@ -160,14 +159,31 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:null setURLModifier]( [param:Function callback] )</h3>
+		<h3>[method:LoadingManager addHandler]( [param:Object regex], [param:Loader loader] )</h3>
 		<p>
-		[page:Function callback] — URL modifier callback. Called with [page:String url] argument, and
-		must return [page:String resolvedURL].<br /><br />
+		[page:Object regex] — A regular expression.<br />
+		[page:Loader loader] — The loader.
+		<p>
+		Registers a loader with the given regular expression. Can be used to define what loader should be used in
+		order to load specific files. A typical use case is to overwrite the default loader for textures.
+		</p>
+		<code>
+// add handler for TGA textures
+manager.addHandler( /\.tga$/i, new TGALoader() );
+		</code>
 
-		If provided, the callback will be passed each resource URL before a request is sent. The
-		callback may return the original URL, or a new URL to override loading behavior. This
-		behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs.
+		<h3>[method:null getHandler]( [param:String file] )</h3>
+		<p>
+		[page:String file] — The file path.
+		<p>
+		Can be used to retrieve the registered loader for the given file path.
+		</p>
+
+		<h3>[method:LoadingManager removeHandler]( [param:Object regex] )</h3>
+		<p>
+		[page:Object regex] — A regular expression.
+		<p>
+		Removes the loader for the given regular expression.
 		</p>
 
 		<h3>[method:String resolveURL]( [param:String url] )</h3>
@@ -178,6 +194,16 @@
 		URL modifier is set, returns the original URL.
 		</p>
 
+		<h3>[method:null setURLModifier]( [param:Function callback] )</h3>
+		<p>
+		[page:Function callback] — URL modifier callback. Called with [page:String url] argument, and
+		must return [page:String resolvedURL].<br /><br />
+
+		If provided, the callback will be passed each resource URL before a request is sent. The
+		callback may return the original URL, or a new URL to override loading behavior. This
+		behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs.
+		</p>
+
 		<br /><br />
 		<p>
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
@@ -198,7 +224,6 @@
 		This should be called by any loader using the manager when the loader ended loading an url.
 		</p>
 
-
 		<h3>[method:null itemError]( [param:String url] )</h3>
 		<p>
 		[page:String url] — the loaded url<br /><br />

+ 0 - 3
docs/api/en/materials/LineBasicMaterial.html

@@ -67,9 +67,6 @@ var material = new THREE.LineBasicMaterial( {
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<p>
 			Controls line thickness. Default is *1*.<br /><br />

+ 0 - 3
docs/api/en/materials/LineDashedMaterial.html

@@ -62,9 +62,6 @@ var material = new THREE.LineDashedMaterial( {
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<p>
 			Controls line thickness. Default is *1*.<br /><br />

+ 14 - 9
docs/api/en/materials/Material.html

@@ -128,7 +128,12 @@
 		Whether rendering this material has any effect on the stencil buffer. Default is *false*.
 		</p>
 
-		<h3>[property:Boolean stencilFunc]</h3>
+		<h3>[property:Integer stencilWriteMask]</h3>
+		<p>
+		The bit mask to use when writing to the stencil buffer. Default is *0xFF*.
+		</p>
+
+		<h3>[property:Integer stencilFunc]</h3>
 		<p>
 		The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
 		</p>
@@ -138,9 +143,9 @@
 		The value to use when performing stencil comparisons or stencil operations. Default is *0*.
 		</p>
 
-		<h3>[property:Boolean stencilMask]</h3>
+		<h3>[property:Integer stencilFuncMask]</h3>
 		<p>
-		The bit mask to use when comparing against or writing to the stencil buffer. Default is *0xFF*.
+		The bit mask to use when comparing against the stencil buffer. Default is *0xFF*.
 		</p>
 
 		<h3>[property:Integer stencilFail]</h3>
@@ -148,12 +153,12 @@
 		Which stencil operation to perform when the comparison function returns false. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
 		</p>
 
-		<h3>[property:Boolean stencilZFail]</h3>
+		<h3>[property:Integer stencilZFail]</h3>
 		<p>
 		Which stencil operation to perform when the comparison function returns true but the depth test fails. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
 		</p>
 
-		<h3>[property:Boolean stencilZPass]</h3>
+		<h3>[property:Integer stencilZPass]</h3>
 		<p>
 		Which stencil operation to perform when the comparison function returns true and the depth test passes. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
 		</p>
@@ -176,9 +181,6 @@
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *true*.</p>
-
 		<h3>[property:String name]</h3>
 		<p>Optional name of the object (doesn't need to be unique). Default is an empty string.</p>
 
@@ -278,7 +280,7 @@
 		as transparent objects need special treatment and are rendered after
 		non-transparent objects. <br />
 		When set to true, the extent to which the material is transparent is
-		controlled by setting it's [page:Float opacity] property. <br />
+		controlled by setting its [page:Float opacity] property. <br />
 		Default is *false*.
 		</p>
 
@@ -340,6 +342,9 @@
 		An optional callback that is executed immediately before the shader program is compiled.
 		This function is called with the shader source code as a parameter. Useful for the modification of built-in materials.
 		</p>
+		<p>
+		Unlike properties, the callback is not supported by [page:Material.clone .clone](), [page:Material.copy .copy]() and [page:Material.toJSON .toJSON]().
+		</p>
 
 		<h3>[method:null setValues]( [param:object values] )</h3>
 		<p>

+ 0 - 3
docs/api/en/materials/MeshBasicMaterial.html

@@ -100,9 +100,6 @@
 		<h3>[property:Float lightMapIntensity]</h3>
 		<p>Intensity of the baked light. Default is 1.</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>The color map. Default is  null.</p>
 

+ 0 - 3
docs/api/en/materials/MeshDepthMaterial.html

@@ -89,9 +89,6 @@
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>The color map. Default is  null.</p>
 

+ 0 - 3
docs/api/en/materials/MeshDistanceMaterial.html

@@ -98,9 +98,6 @@
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>The color map. Default is  null.</p>
 

+ 0 - 3
docs/api/en/materials/MeshNormalMaterial.html

@@ -86,9 +86,6 @@
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:boolean morphNormals]</h3>
 		<p>
 			Defines whether the material uses morphNormals. Set as true to pass morphNormal

+ 3 - 3
docs/api/en/materials/MeshStandardMaterial.html

@@ -173,9 +173,9 @@
 		if adjusting texture parameters manually, ensure minFilter is set to one of the MipMap options,
 		and that mip maps have not been otherwise forcibly disabled.</p>
 		<p>
-		Note: only [link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps] are supported 
-		for MeshStandardMaterial. If you want to use an equirectangular map you will need to use the 
-		[link:https://github.com/mrdoob/three.js/blob/dev/examples/js/loaders/EquirectangularToCubeGenerator.js EquirectangularToCubeGenerator]. 
+		Note: only [link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps] are supported
+		for MeshStandardMaterial. If you want to use an equirectangular map you will need to use
+		[page:WebGLRenderTargetCube.fromEquirectangularTexture WebGLRenderTargetCube.fromEquirectangularTexture]().
 		See this [link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example] for details.
 		</p>
 

+ 11 - 0
docs/api/en/materials/PointsMaterial.html

@@ -65,6 +65,17 @@ scene.add( starField );
 		<h2>Properties</h2>
 		<p>See the base [page:Material] class for common properties.</p>
 
+		<h3>[property:Texture alphaMap]</h3>
+		<p>The alpha map is a grayscale texture that controls the opacity across the surface
+			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
+
+			Only the color of the texture is used, ignoring the alpha channel if one exists.
+			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
+			green channel when sampling this texture due to the extra bit of precision provided
+			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
+			luminance/alpha textures will also still work as expected.
+		</p>
+
 		<h3>[property:Color color]</h3>
 		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
 

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

@@ -50,7 +50,7 @@ var material = new THREE.RawShaderMaterial( {
 
 
 		<h2>Properties</h2>
-		<p>See the base [page:Material] and [page:ShaderMaterial] classes for common methods.</p>
+		<p>See the base [page:Material] and [page:ShaderMaterial] classes for common properties.</p>
 
 		<h3>[property:Boolean isRawShaderMaterial]</h3>
 		<p>

+ 0 - 3
docs/api/en/materials/ShaderMaterial.html

@@ -359,9 +359,6 @@ this.extensions = {
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-
-
-
 		<h3>[property:Boolean lights]</h3>
 		<p>
 		Defines whether this material uses lighting; true to pass uniform data related to lighting to this shader. Default is false.

+ 0 - 3
docs/api/en/materials/ShadowMaterial.html

@@ -51,9 +51,6 @@ scene.add( plane );
 			You should not change this, as it used internally for optimisation.
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *true*.</p>
-
 		<h3>[property:Boolean transparent]</h3>
 		<p>Defines whether this material is transparent. Default is *true*.</p>
 

+ 11 - 3
docs/api/en/materials/SpriteMaterial.html

@@ -50,15 +50,23 @@ scene.add( sprite );
 		<h2>Properties</h2>
 		<p>See the base [page:Material] class for common properties.</p>
 
+		<h3>[property:Texture alphaMap]</h3>
+		<p>The alpha map is a grayscale texture that controls the opacity across the surface
+			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
+
+			Only the color of the texture is used, ignoring the alpha channel if one exists.
+			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
+			green channel when sampling this texture due to the extra bit of precision provided
+			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
+			luminance/alpha textures will also still work as expected.
+		</p>
+
 		<h3>[property:Color color]</h3>
 		<p>[page:Color] of the material, by default set to white (0xffffff). The [page:.map] is mutiplied by the color.</p>
 
 		<h3>[property:boolean fog]</h3>
 		<p>Whether or not this material affected by the scene's fog. Default is false</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>The texture map. Default is null.</p>
 

+ 10 - 1
docs/api/en/math/Color.html

@@ -126,7 +126,7 @@ var color = new THREE.Color( 1, 0, 0 );
 		[page:Float gammaFactor] - (optional). Default is *2.0*.<br /><br />
 		Converts this color from gamma space to linear space by taking [page:.r r], [page:.g g] and [page:.b b] to the power of [page:Float gammaFactor].
 		</p>
-		
+
 		<h3>[method:Color convertLinearToGamma]( [param:Float gammaFactor] ) </h3>
 		<p>
 		[page:Float gammaFactor] - (optional). Default is *2.0*.<br /><br />
@@ -302,6 +302,15 @@ var color = new THREE.Color( 1, 0, 0 );
 		Note that for X11 color names, multiple words such as Dark Orange become the string 'darkorange' (all lowercase).
 		</p>
 
+		<h3>[method:Color setColorName]( [param:String style] ) </h3>
+		<p>
+		[page:String style] — color name ( from [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart X11 color names] ).<br /><br />
+
+		Sets this color from a color name. Faster than [page:.setStyle] method if you don't need the other CSS-style formats.<br/><br/>
+
+		For convenience, the list of names is exposed in Color.NAMES as a hash: <code>Color.NAMES.aliceblue // returns 0xF0F8FF</code>
+		</p>
+
 		<h3>[method:Color sub]( [param:Color color] ) </h3>
 		<p>
 		Subtracts the RGB components of the given color from the RGB components of this color.

+ 1 - 1
docs/api/en/math/Matrix4.html

@@ -219,7 +219,7 @@ zAxis = (c, g, k)
 		Sets this matrix as rotation transform around [page:Vector3 axis] by [page:Float theta] radians.<br />
 
 		This is a somewhat controversial but mathematically sound alternative to rotating via [page:Quaternions].
-		See the discussion [link:http://www.gamedev.net/reference/articles/article1199.asp here].
+		See the discussion [link:https://www.gamedev.net/articles/programming/math-and-physics/do-we-really-need-quaternions-r1199 here].
 		</p>
 
 		<h3>[method:this makeBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )</h3>

+ 3 - 3
docs/api/en/math/Vector3.html

@@ -121,7 +121,7 @@ var d = a.distanceTo( b );
 
 		<h3>[method:Float angleTo]( [param:Vector3 v] )</h3>
 		<p>
-		Returns the angle between this vector and vector [page:Vector3 v] in radians.
+		Returns the angle between this vector and vector [page:Vector3 v] in radians. Neither this vector nor [page:Vector3 v] can be the zero vector.
 		</p>
 
 		<h3>[method:this ceil]()</h3>
@@ -320,8 +320,8 @@ var d = a.distanceTo( b );
 		normal from this vector.
 		</p>
 
-		<h3>[method:this projectOnVector]( [param:Vector3] )</h3>
-		<p>[link:https://en.wikipedia.org/wiki/Vector_projection Projects] this vector onto another vector.</p>
+		<h3>[method:this projectOnVector]( [param:Vector3 v] )</h3>
+		<p>[link:https://en.wikipedia.org/wiki/Vector_projection Projects] this vector onto [page:Vector3 v]. [page:Vector3 v] cannot be the zero vector.</p>
 
 		<h3>[method:this reflect]( [param:Vector3 normal] )</h3>
 		<p>

+ 73 - 0
docs/api/en/objects/InstancedMesh.html

@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Mesh] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		A special version of [page:Mesh] with instanced rendering support. Use [name] if you have to render a large number of
+		objects with the same geometry and material but with different world transformations. The usage of [name] will help you
+		to reduce the number of draw calls and thus improve the overall rendering performance in your application.
+		</p>
+
+		<h3>Example</h3>
+
+		<p>
+			[example:webgl_instancing_suzanne WebGL / instancing / suzanne]<br />
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:BufferGeometry geometry], [param:Material material], [param:Integer count] )</h3>
+		<p>
+		[page:Geometry geometry] - an instance of [page:BufferGeometry].<br />
+		[page:Material material] - an instance of [page:Material]. Default is a new [page:MeshBasicMaterial].<br />
+		[page:Integer count] - the number of instances.<br />
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Mesh] class for common properties.</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The number of instances. The *count* value passed into the constructor represents the maximum number of
+			instances of this mesh. You can change the number of instances at runtime to an integer value
+			in the range [0, count].
+		</p>
+		<p>
+			If you need more instances than the original count value, you have to create a new [name].
+		</p>
+
+		<h3>[property:BufferAttribute instanceMatrix]</h3>
+		<p>
+			Represents the local transformation of all instances. For internal use only.
+		</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Mesh] class for common methods.</p>
+
+		<h3>[method:null setMatrixAt]( [param:Integer index], [param:Matrix4 matrix] )</h3>
+		<p>
+			[page:Integer index]: The index of an instance. Values have to be in the range [0, count].
+		</p>
+		<p>
+			[page:Matrix4 matrix]: A 4x4 matrix representing the local transformation of a single instance.
+		</p>
+		<p>
+			Sets the given local transformation matrix to the defined instance.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 7 - 3
docs/api/en/objects/Mesh.html

@@ -43,9 +43,13 @@
 
 		<h3>[property:Integer drawMode]</h3>
 		<p>
-		Determines how the mesh triangles are constructed from the vertices.
-		See the draw mode [page:DrawModes constants] for all possible values.
-		Default is [page:DrawModes TrianglesDrawMode].
+			Determines how the mesh triangles are constructed from the vertices.
+			See the draw mode [page:DrawModes constants] for all possible values.
+			Default is [page:DrawModes TrianglesDrawMode].
+		</p>
+		<p>
+			A sensible usage of this property is only possible when [page:Mesh.geometry] is of type [page:BufferGeometry BufferGeometry]
+			since the engine always assumes *THREE.TrianglesDrawMode* for [page:Geometry Geometry].
 		</p>
 
 

+ 2 - 2
docs/api/en/objects/SkinnedMesh.html

@@ -65,8 +65,8 @@
 
 		}
 
-		geometry.addAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
-		geometry.addAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
+		geometry.setAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
+		geometry.setAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
 
 		// create skinned mesh and skeleton
 

+ 8 - 0
docs/api/en/renderers/WebGLRenderTargetCube.html

@@ -57,6 +57,14 @@
 
 		<h3>See [page:WebGLRenderTarget] for inherited methods</h3>
 
+		<h3>[method:WebGLRenderTargetCube fromEquirectangularTexture]( [param:WebGLRenderer renderer], [param:Texture texture] )</h3>
+		<p>
+			[page:WebGLRenderer renderer] — the renderer.<br/>
+			[page:Texture texture] — the equirectangular texture.
+		</p>
+		<p>
+			Use this method if you want to convert an equirectangular panorama to the cubemap format.
+		</p>
 
 		<h2>Source</h2>
 

+ 7 - 1
docs/api/en/renderers/WebGLRenderer.html

@@ -65,7 +65,9 @@
 		Default is *true*.<br />
 
 		[page:Boolean logarithmicDepthBuffer] -  whether to use a logarithmic depth buffer. It may
-		be neccesary to use this if dealing with huge differences in scale in a single scene.
+		be neccesary to use this if dealing with huge differences in scale in a single scene. Note that this setting
+		uses gl_FragDepth if available which disables the [link:https://www.khronos.org/opengl/wiki/Early_Fragment_Test Early Fragment Test]
+		optimization and can cause a decrease in performance.
 		Default is *false*. See the [example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer] example.
 		</p>
 
@@ -186,6 +188,7 @@
 					<li>triangles</li>
 					<li>points</li>
 					<li>lines</li>
+					<li>frame</li>
 				</ul>
 			</li>
 			<li>programs
@@ -391,6 +394,9 @@
 		Returns the viewport.
 		</p>
 
+		<h3>[method:null 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>
+
 		<h3>[method:null resetGLState]( )</h3>
 		<p>Reset the GL state to default. Called internally if the WebGL context is lost.</p>
 

+ 0 - 1
docs/api/en/textures/DataTexture.html

@@ -57,7 +57,6 @@
 		// used the buffer to create a [name]
 
 		var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
-		texture.needsUpdate = true
 		</code>
 
 		<h2>Properties</h2>

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

@@ -30,15 +30,15 @@
 		<h2>Example</h2>
 
 		<div>[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]</div>
-		<div>[example:webgl2_materials_texture3d_volume WebGL2 / materials / texture3d / volume]</div>
+		<div>[example:webgl2_materials_texture2darray WebGL2 / materials / texture2darray]</div>
 
-    <h2>Properties</h2>
+		<h2>Properties</h2>
 
 		<p>
-    See the base [page:Texture Texture] class for common properties.
-    </p>
+		See the base [page:Texture Texture] class for common properties.
+		</p>
 
-    <h3>[property:number wrapR]</h3>
+		<h3>[property:number wrapR]</h3>
 		<p>
 		This defines how the texture is wrapped in the depth direction.<br />
 		The default is [page:Textures THREE.ClampToEdgeWrapping], where the edge is clamped to the outer edge texels.

+ 11 - 1
docs/api/zh/audio/Audio.html

@@ -180,10 +180,20 @@
 
 		<h3>[method:Audio setLoop]( [param:Boolean value] )</h3>
 		<p>
-		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop] 的值
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop]的值
 		(是否循环播放).
 		</p>
 
+		<h3>[method:Audio setLoopStart]( [param:Float value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart]的值
+		</p>
+
+		<h3>[method:Audio setLoopEnd]( [param:Float value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd]的值
+		</p>
+
 		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
 		<p>
 		应用[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement]类型对象作为音源.<br />

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

@@ -49,8 +49,8 @@
 		<h3>[name]( [param:Number near], [param:Number far], [param:Number cubeResolution] )</h3>
 		<p>
 
-		near -- 剪切面的距离<br />
-		far -- 剪切面的距离<br />
+		near -- 剪切面的距离<br />
+		far -- 剪切面的距离<br />
 		cubeResolution -- 设置立方体边缘的长度
 		</p>
 		<p>

+ 11 - 15
docs/api/zh/constants/DrawModes.html

@@ -12,12 +12,6 @@
 
 		<p class="desc">
 			这些是[page:Mesh.drawMode]的有效值,控制着顶点列表一旦被发送到GPU中将如何被解释。
-			请注意,只有当[page:Mesh.geometry]是一个[page:BufferGeometry]的时候,这些值才会生效。当[page:Mesh.geometry]是一个
-			[page:Geometry]的时候,改变这个值不会有任何效果。
-<br /><br />
-
-
-
 		</p>
 
 
@@ -54,15 +48,17 @@
 		<h2>用法</h2>
 
 		<code>
-		var geometry = new THREE.Geometry();
-
-		geometry.vertices.push(
-			new THREE.Vector3( -10,  10, 0 ),
-			new THREE.Vector3( -10, -10, 0 ),
-			new THREE.Vector3(  10, -10, 0 ),
-			...
-		);
-		geometry.faces.push( new THREE.Face3( 0, 1, 2 ), ... );
+		var geometry = new THREE.BufferGeometry();
+
+		var vertices = [];
+
+		vertices.push( -10,  10, 0 );
+		vertices.push( -10, -10, 0 );
+		vertices.push(  10, -10, 0 );
+
+		// ...
+
+		geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
 
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
 

+ 9 - 19
docs/api/zh/core/BufferAttribute.html

@@ -52,16 +52,6 @@
 			若缓存存储三元组(例如顶点位置、法向量、颜色值),则该值应等于队列中三元组的个数。
 		</p>
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-			不论缓存是否是动态的,默认值都将是 *false*<br />
-
-			如果该值为 false,即告知 GPU 缓存中的数据会经常使用但不经常变化。
-			该值与 [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.STATIC_DRAW] 标志位相一致。<br />
-			如果该值为 true,即告知 GPU 缓存中的数据会经常使用且经常变化。
-			该值与 [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.DYNAMIC_DRAW] 标志位相一致。
-		</p>
-
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<p>
 			指示当前类或派生类是 BufferAttributes. 默认值为 *true*.<br /><br />
@@ -101,6 +91,13 @@
 			该值只可以被用于更新某些矢量数据(例如,颜色相关数据)。
 		</p>
 
+		<h3>[property:Usage usage]</h3>
+		<p>
+			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
+			Default is *THREE.StaticDrawUsage*.
+		</p>
+
 		<h3>[property:Integer version]</h3>
 		<p>版本号,当 [page:BufferAttribute.needsUpdate needsUpdate] 被设置为 true 时,该值会自增。</p>
 
@@ -158,15 +155,8 @@
 		特别的, 对将 [page:Array value] 转为  [page:TypedArray] 的要求详见上述链接。
 		</p>
 
-		<h3>[method:BufferAttribute setArray] ( [param:TypedArray array] ) </h3>
-		<p>
-		[page:BufferAttribute.array array] 被赋值的 TypedArray 队列。<br /><br />
-
-		队列被复制后,[page:BufferAttribute.needsUpdate needsUpdate] 应当被设置为 true。
-		</p>
-
-		<h3>[method:BufferAttribute setDynamic] ( [param:Boolean value] ) </h3>
-		<p>将 [page:BufferAttribute.dynamic dynamic] 设置为 value.</p>
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
 
 		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
 		<p>设置给定索引的矢量的第一维数据(设置 X 值)。</p>

+ 4 - 4
docs/api/zh/core/BufferGeometry.html

@@ -37,7 +37,7 @@
 		] );
 
 		// itemSize = 3 因为每个顶点都是一个三元组。
-		geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
 		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		var mesh = new THREE.Mesh( geometry, material );
 		</code>
@@ -64,7 +64,7 @@
 		<h3>[property:Object attributes]</h3>
 		<p>
 			通过 hashmap 存储该几何体相关的属性,hashmap 的 id 是当前 attribute 的名称,值是相应的 [page:BufferAttribute buffer]。
-			你可以通过 [page:.addAttribute] 和 [page:.getAttribute] 添加和访问与当前几何体有关的 attribute。
+			你可以通过 [page:.setAttribute] 和 [page:.getAttribute] 添加和访问与当前几何体有关的 attribute。
 		</p>
 
 		<h3>[property:Box3 boundingBox]</h3>
@@ -156,7 +156,7 @@
 
 		<h3>[page:EventDispatcher EventDispatcher] 在该类上可用的所有方法。</h3>
 
-		<h3>[method:BufferGeometry addAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<h3>[method:BufferGeometry setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
 		<p>
 			为当前几何体增加一个 attribute。 的属性,在类的内部,有一个存储 [page:.attributes] 的 hashmap,
 			通过该 hashmap,遍历 attributes 的速度会更快。而使用该方法,可以向 hashmap 内部增加 attribute。
@@ -236,7 +236,7 @@
 			几何体中的每个法向量长度将会为 1。这样操作会更正光线在表面的效果。
 		</p>
 
-		<h3>[method:BufferAttribute removeAttribute]( [param:String name] )</h3>
+		<h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
 		<p>删除具有指定名称的 [page:BufferAttribute attribute]。</p>
 
 		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>

+ 7 - 13
docs/api/zh/core/InterleavedBuffer.html

@@ -44,11 +44,6 @@
 			类型化队列中,所有元素的数目。
 		</p>
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-			默认值为 *false*。
-		</p>
-
 		<h3>[property:Object updateRange]</h3>
 		<p>
 			对象存储着需要更新的数据的偏移量和数量。
@@ -79,17 +74,13 @@
 			默认值为 *false*。该值被设置为 true 时,会导致 [page:InterleavedBuffer.version version] 增加。
 		</p>
 
-		<h2>方法</h2>
-
-		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<h3>[property:Usage usage]</h3>
 		<p>
-		 array - 必须是一个类型化的队列。
+			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
 		</p>
 
-		<h3>[method:InterleavedBuffer setDynamic] ( [param:Boolean value] ) </h3>
-		<p>
-			根据输入参数设置 [page:InterleavedBuffer.dynamic dynamic] 的值。
-		</p>
+		<h2>方法</h2>
 
 		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
 		<p>
@@ -112,6 +103,9 @@
 			克隆当前 [name]。
 		</p>
 
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
+
 		<h2>源代码</h2>
 
 		<p>

+ 0 - 25
docs/api/zh/loaders/Loader.html

@@ -77,31 +77,6 @@
 			[page:String resourcePath] — Set the base path for dependent resources like textures.
 		</p>
 
-		<h2>Handlers</h2>
-
-		<p>
-		*[name].Handlers* is a special object normally used by other loaders like [page:GLTFLoader] or [page:MTLLoader]. It provides an
-		API that allows the definition of special mappings: What loaders should be used in order to load specific files. A typical use case
-		is to overwrite the default loader for textures.<br /><br />
-
-		Note: It's only possible to use *[name].Handlers* if the respective loader support the usage.
-		</p>
-
-		<h3>[method:null add]( [param:Object regex], [param:Loader loader] )</h3>
-		<p>
-		[page:Object regex] — A regular expression.<br />
-		[page:Loader loader] — The loader.
-		<p>
-		Registers a loader with the given regular expression.
-		</p>
-
-		<h3>[method:null get]( [param:String file] )</h3>
-		<p>
-		[page:String file] — The file path.
-		<p>
-		Can be used to retrieve the registered loader for the given file path.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 36 - 10
docs/api/zh/loaders/managers/LoadingManager.html

@@ -23,7 +23,6 @@
 		<h2>例子</h2>
 
 		<p>
-			[example:webgl_loader_babylon WebGL / loader / babylon]<br />
 			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_materials_reflectivity WebGL / materials / reflectivity]<br />
@@ -158,22 +157,49 @@
 
 		<h2>方法</h2>
 
-		<h3>[method:null setURLModifier]( [param:Function callback] )</h3>
+		<h3>[method:LoadingManager addHandler]( [param:Object regex], [param:Loader loader] )</h3>
+		<p>
+		[page:Object regex] — A regular expression.<br />
+		[page:Loader loader] — The loader.
 		<p>
-		[page:Function callback] —
-            设置URL修饰符成功时回调。使用url参数进行回调,并且必须返回 [page:String resolvedURL] 。<br /><br />
+		Registers a loader with the given regular expression. Can be used to define what loader should be used in
+		order to load specific files. A typical use case is to overwrite the default loader for textures.
+		</p>
+		<code>
+// add handler for TGA textures
+manager.addHandler( /\.tga$/i, new TGALoader() );
+		</code>
 
-            如果设置了回调,则在发送请求之前将向每个资源URL传递回调。回调可以返回最初的URL,也可以返回新URL以覆盖加载行为。
-            此行为可用于从.ZIP、拖拽API和数据URI中加载资源文件。
+		<h3>[method:LoadingManager removeHandler]( [param:Object regex] )</h3>
+		<p>
+		[page:Object regex] — A regular expression.
+		<p>
+		Removes the loader for the given regular expression.
+		</p>
+
+		<h3>[method:null getHandler]( [param:String file] )</h3>
+		<p>
+		[page:String file] — The file path.
+		<p>
+		Can be used to retrieve the registered loader for the given file path.
 		</p>
 
 		<h3>[method:String resolveURL]( [param:String url] )</h3>
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 
-            给定URL,使用URL修饰符回调(如果有)并返回已解析的URL。如果未设置URL修饰符,则返回原始URL。
+		给定URL,使用URL修饰符回调(如果有)并返回已解析的URL。如果未设置URL修饰符,则返回原始URL。
+		</p>
+
+		<h3>[method:null setURLModifier]( [param:Function callback] )</h3>
+		<p>
+		[page:Function callback] — 设置URL修饰符成功时回调。使用url参数进行回调,并且必须返回 [page:String resolvedURL] 。<br /><br />
+
+		如果设置了回调,则在发送请求之前将向每个资源URL传递回调。回调可以返回最初的URL,也可以返回新URL以覆盖加载行为。
+		此行为可用于从.ZIP、拖拽API和数据URI中加载资源文件。
 		</p>
 
+
 		<br /><br />
 		<p>
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
@@ -184,14 +210,14 @@
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 
-           任何使用管理器的加载器都会调用此方法, 当加载器需要开始加载URL时。
+		任何使用管理器的加载器都会调用此方法, 当加载器需要开始加载URL时。
 		</p>
 
 		<h3>[method:null itemEnd]( [param:String url] )</h3>
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 
-            任何使用管理器的加载器都会调用此方法, 当加载器需要加载URL结束时。
+		任何使用管理器的加载器都会调用此方法, 当加载器需要加载URL结束时。
 		</p>
 
 
@@ -199,7 +225,7 @@
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 
-            任何使用管理器的加载器都会调用此方法, 当加载器出现加载错误时。
+		任何使用管理器的加载器都会调用此方法, 当加载器出现加载错误时。
 		</p>
 
 		<h2>源</h2>

+ 0 - 3
docs/api/zh/materials/LineBasicMaterial.html

@@ -63,9 +63,6 @@ var material = new THREE.LineBasicMaterial( {
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<p> 控制线宽。默认值为 *1*。<br /><br />
 			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与

+ 0 - 3
docs/api/zh/materials/LineDashedMaterial.html

@@ -58,9 +58,6 @@ var material = new THREE.LineDashedMaterial( {
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<p>
 			控制线宽。默认值为 *1*。<br /><br />

+ 13 - 8
docs/api/zh/materials/Material.html

@@ -108,7 +108,12 @@
 Whether rendering this material has any effect on the stencil buffer. Default is *false*.
 </p>
 
-<h3>[property:Boolean stencilFunc]</h3>
+<h3>[property:Integer stencilWriteMask]</h3>
+<p>
+The bit mask to use when writing to the stencil buffer. Default is *0xFF*.
+</p>
+
+<h3>[property:Integer stencilFunc]</h3>
 <p>
 The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
 </p>
@@ -118,9 +123,9 @@ The stencil comparison function to use. Default is [page:Materials AlwaysStencil
 The value to use when performing stencil comparisons or stencil operations. Default is *0*.
 </p>
 
-<h3>[property:Boolean stencilMask]</h3>
+<h3>[property:Integer stencilFuncMask]</h3>
 <p>
-The bit mask to use when comparing against or writing to the stencil buffer. Default is *0xFF*.
+The bit mask to use when comparing against the stencil buffer. Default is *0xFF*.
 </p>
 
 <h3>[property:Integer stencilFail]</h3>
@@ -128,12 +133,12 @@ The bit mask to use when comparing against or writing to the stencil buffer. Def
 Which stencil operation to perform when the comparison function returns false. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
 </p>
 
-<h3>[property:Boolean stencilZFail]</h3>
+<h3>[property:Integer stencilZFail]</h3>
 <p>
 Which stencil operation to perform when the comparison function returns true but the depth test fails. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
 </p>
 
-<h3>[property:Boolean stencilZPass]</h3>
+<h3>[property:Integer stencilZPass]</h3>
 <p>
 Which stencil operation to perform when the comparison function returns true and the depth test passes. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
 </p>
@@ -154,9 +159,6 @@ Which stencil operation to perform when the comparison function returns true and
     因为其通常用在内部优化,所以不应该更改该属性值。
 </p>
 
-<h3>[property:Boolean lights]</h3>
-<p>材质是否受到光照的影响。默认为*true*。</p>
-
 <h3>[property:String name]</h3>
 <p>对象的可选名称(不必是唯一的)。默认值为空字符串。</p>
 
@@ -289,6 +291,9 @@ Defines whether this material is tone mapped according to the renderer's [page:W
 <h3>[method:null onBeforeCompile]( [param:Shader shader], [param:WebGLRenderer renderer] )</h3>
 <p> 在编译shader程序之前立即执行的可选回调。此函数使用shader源码作为参数。用于修改内置材质。
 </p>
+<p>
+Unlike properties, the callback is not supported by [page:Material.clone .clone](), [page:Material.copy .copy]() and [page:Material.toJSON .toJSON]().
+</p>
 
 <h3>[method:null setValues]( [param:object values] )</h3>
 <p> values -- 具有参数的容器。

+ 0 - 3
docs/api/zh/materials/MeshBasicMaterial.html

@@ -82,9 +82,6 @@
 		<h3>[property:Float lightMapIntensity]</h3>
 		<p>烘焙光的强度。默认值为1。</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Texture map]</h3>
 		<p> 颜色贴图。默认为null。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshDepthMaterial.html

@@ -73,9 +73,6 @@
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>颜色贴图。默认为null。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshDistanceMaterial.html

@@ -82,9 +82,6 @@
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>颜色贴图。默认为null。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshNormalMaterial.html

@@ -72,9 +72,6 @@
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:boolean morphNormals]</h3>
 		<p> 定义是否使用morphNormals。设置为true可将morphNormal属性从[page:Geometry]传递到shader。默认值为*false*。
 		</p>

+ 1 - 1
docs/api/zh/materials/MeshStandardMaterial.html

@@ -136,7 +136,7 @@
 			请确保将minFilter设置为其中一个MipMap选项,并且未强制禁用mip贴图。</p>
 		<p>
 			注意:MeshStandardMaterial 仅支持[link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps]。
-			如果要使用equirectangular贴图,则需要使用 [link:https://github.com/mrdoob/three.js/blob/dev/examples/js/loaders/EquirectangularToCubeGenerator.js EquirectangularToCubeGenerator]
+			如果要使用equirectangular贴图,则需要使用 [page:WebGLRenderTargetCube.fromEquirectangularTexture WebGLRenderTargetCube.fromEquirectangularTexture]().
 			详细信息请参阅此示例[link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example]。
 		</p>
 

+ 0 - 3
docs/api/zh/materials/ShadowMaterial.html

@@ -48,9 +48,6 @@ scene.add( plane );
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p> 材质是否受到光照的影响。默认值为 *true*。</p>
-
 		<h3>[property:Boolean transparent]</h3>
 		<p>定义此材质是否透明。默认值为 *true*。</p>
 

+ 0 - 3
docs/api/zh/materials/SpriteMaterial.html

@@ -55,9 +55,6 @@ scene.add( sprite );
 		<h3>[property:boolean fog]</h3>
 		<p>材质是否受场景雾的影响。默认值为*false*。</p>
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Texture map]</h3>
 		<p>颜色贴图。默认为null。</p>
 

+ 1 - 1
docs/api/zh/math/Matrix4.html

@@ -203,7 +203,7 @@ zAxis = (c, g, k)
 
 		设置当前矩阵为围绕轴 [page:Vector3 axis] 旋转量为 [page:Float theta]弧度。<br />
 
-		这是一种有点争议但在数学上可以替代通过四元数[page:Quaternions]旋转的办法。 请参阅此处[link:http://www.gamedev.net/reference/articles/article1199.asp here]的讨论。
+		这是一种有点争议但在数学上可以替代通过四元数[page:Quaternions]旋转的办法。 请参阅此处[link:https://www.gamedev.net/articles/programming/math-and-physics/do-we-really-need-quaternions-r1199 here]的讨论。
 		</p>
 
 		<h3>[method:this makeBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )</h3>

+ 73 - 0
docs/api/zh/objects/InstancedMesh.html

@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Mesh] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		A special version of [page:Mesh] with instanced rendering support. Use [name] if you have to render a large number of
+		objects with the same geometry and material but with different world transformations. The usage of [name] will help you
+		to reduce the number of draw calls and thus improve the overall rendering performance in your application.
+		</p>
+
+		<h3>Example</h3>
+
+		<p>
+			[example:webgl_instancing_suzanne WebGL / instancing / suzanne]<br />
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:BufferGeometry geometry], [param:Material material], [param:Integer count] )</h3>
+		<p>
+		[page:Geometry geometry] - an instance of [page:BufferGeometry].<br />
+		[page:Material material] - an instance of [page:Material]. Default is a new [page:MeshBasicMaterial].<br />
+		[page:Integer count] - the number of instances.<br />
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Mesh] class for common properties.</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The number of instances. The *count* value passed into the constructor represents the maximum number of
+			instances of this mesh. You can change the number of instances at runtime to an integer value
+			in the range [0, count].
+		</p>
+		<p>
+			If you need more instances than the original count value, you have to create a new [name].
+		</p>
+
+		<h3>[property:BufferAttribute instanceMatrix]</h3>
+		<p>
+			Represents the local transformation of all instances. For internal use only.
+		</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Mesh] class for common methods.</p>
+
+		<h3>[method:null setMatrixAt]( [param:Integer index], [param:Matrix4 matrix] )</h3>
+		<p>
+			[page:Integer index]: The index of an instance. Values have to be in the range [0, count].
+		</p>
+		<p>
+			[page:Matrix4 matrix]: A 4x4 matrix representing the local transformation of a single instance.
+		</p>
+		<p>
+			Sets the given local transformation matrix to the defined instance.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 4 - 1
docs/api/zh/objects/Mesh.html

@@ -46,7 +46,10 @@
 			请参阅draw mode [page:DrawModes constants](绘图模式常量)来查看其所有可能的值。
 			其默认值是[page:DrawModes TrianglesDrawMode]。
 		</p>
-
+		<p>
+			A sensible usage of this property is only possible when [page:Mesh.geometry] is of type [page:BufferGeometry BufferGeometry]
+			since the engine always assumes *THREE.TrianglesDrawMode* for [page:Geometry Geometry].
+		</p>
 
 		<h3>[property:Boolean isMesh]</h3>
 		<p>

+ 2 - 2
docs/api/zh/objects/SkinnedMesh.html

@@ -65,8 +65,8 @@
 
 		}
 
-		geometry.addAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
-		geometry.addAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
+		geometry.setAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
+		geometry.setAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
 
 		// create skinned mesh and skeleton
 

+ 8 - 0
docs/api/zh/renderers/WebGLRenderTargetCube.html

@@ -54,6 +54,14 @@
 
 		<h3>继承方法,请参阅[page:WebGLRenderTarget]</h3>
 
+		<h3>[method:WebGLRenderTargetCube fromEquirectangularTexture]( [param:WebGLRenderer renderer], [param:Texture texture] )</h3>
+		<p>
+			[page:WebGLRenderer renderer] — the renderer.<br/>
+			[page:Texture texture] — the equirectangular texture.
+		</p>
+		<p>
+			Use this method if you want to convert an equirectangular panorama to the cubemap format.
+		</p>
 
 		<h2>源码</h2>
 

+ 7 - 1
docs/api/zh/renderers/WebGLRenderer.html

@@ -46,7 +46,7 @@
 		[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 />
 
@@ -54,6 +54,8 @@
 		默认是*true*.<br />
 
 		[page:Boolean logarithmicDepthBuffer] -  是否使用对数深度缓存。如果要在单个场景中处理巨大的比例差异,就有必要使用。
+		Note that this setting uses gl_FragDepth if available which disables the [link:https://www.khronos.org/opengl/wiki/Early_Fragment_Test Early Fragment Test]
+		optimization and can cause a decrease in performance.
 		默认是*false*。 示例:[example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer]
 		</p>
 
@@ -165,6 +167,7 @@
 					<li>triangles</li>
 					<li>points</li>
 					<li>lines</li>
+					<li>frame</li>
 				</ul>
 			</li>
 			<li>programs
@@ -349,6 +352,9 @@
 		<h3>[method:Object getSize]()</h3>
 		<p>返回包含渲染器输出canvas的宽度和高度(单位像素)的对象。</p>
 
+		<h3>[method:null 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>
+
 		<h3>[method:null resetGLState]( )</h3>
 		<p>将GL状态重置为默认值。WebGL环境丢失时会内部调用</p>
 

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

@@ -30,7 +30,7 @@
 		<h2>示例</h2>
 
 		<div>[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]</div>
-		<div>[example:webgl2_materials_texture3d_volume WebGL2 / materials / texture3d / volume]</div>
+		<div>[example:webgl2_materials_texture2darray WebGL2 / materials / texture2darray]</div>
 
 		<h2>属性</h2>
 

+ 89 - 0
docs/examples/en/controls/DeviceOrientationControls.html

@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Can be used to orient the camera based on the mobile device's orientation.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_deviceorientation misc / controls / deviceorientation ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object] )</h3>
+		<p>
+			<p>
+				[page:Camera object]: The camera to be controlled.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Number alphaOffset]</h3>
+		<p>
+			The alpha offset in radians. Default is *0*.
+		</p>
+
+		<h3>[property:Object deviceOrientation]</h3>
+		<p>
+			The current *deviceorientation* event object.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera to be controlled.
+		</p>
+
+		<h3>[property:Number screenOrientation]</h3>
+		<p>
+			The orientation in degrees (in 90-degree increments) of the viewport relative to the device's natural orientation. Default is *0*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null connect] ()</h3>
+		<p>
+			Adds the event listeners of the controls and enables it.
+		</p>
+
+		<h3>[method:null disconnect] ()</h3>
+		<p>
+			Removes the event listeners of the controls and disables it.
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null update] ()</h3>
+		<p>
+			Updates the controls. Usually called in the animation loop.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DeviceOrientationControls.js examples/js/controls/DeviceOrientationControls.js]
+		</p>
+	</body>
+</html>

+ 119 - 0
docs/examples/en/controls/DragControls.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:EventDispatcher] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		This class can be used to provide a drag'n'drop interaction.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_drag misc / controls / drag ]</p>
+
+		<code>
+var controls = new THREE.DragControls( objects, camera, renderer.domElement );
+
+// add event listener to highlight dragged objects
+
+controls.addEventListener( 'dragstart', function ( event ) {
+
+	event.object.material.emissive.set( 0xaaaaaa );
+
+} );
+
+controls.addEventListener( 'dragend', function ( event ) {
+
+	event.object.material.emissive.set( 0x000000 );
+
+} );
+
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Array objects], [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Array objects]: An array of draggable 3D objects.
+			</p>
+			<p>
+			[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>dragstart</h3>
+		<p>
+			Fires when the user starts to drag a 3D object.
+		</p>
+
+		<h3>drag</h3>
+		<p>
+			Fires when the user drags a 3D object.
+		</p>
+
+		<h3>dragend</h3>
+		<p>
+			Fires when the user has finished dragging a 3D object.
+		</p>
+
+		<h3>hoveron</h3>
+		<p>
+			Fires when the pointer is moved onto a 3D object, or onto one of its children.
+		</p>
+
+		<h3>hoveroff</h3>
+		<p>
+			Fires when the pointer is moved out of a 3D object.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:EventDispatcher] class for common methods.</p>
+
+		<h3>[method:null activate] ()</h3>
+		<p>
+			Adds the event listeners of the controls.
+		</p>
+
+		<h3>[method:null deactivate] ()</h3>
+		<p>
+			Removes the event listeners of the controls.
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DragControls.js examples/js/controls/DragControls.js]
+		</p>
+	</body>
+</html>

+ 165 - 0
docs/examples/en/controls/FirstPersonControls.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			This class is an alternative implementation of [page:FlyControls].
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:webgl_geometry_terrain webgl / geometry / terrain ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera object]: The camera to be controlled.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean activeLook]</h3>
+		<p>
+			Whether or not it's possible to look around. Default is *true*.
+		</p>
+
+		<h3>[property:Boolean autoForward]</h3>
+		<p>
+			Whether or not the camera is automatically moved forward. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean constrainVertical]</h3>
+		<p>
+			Whether or not looking around is vertically constrained by [[page:.verticalMin], [page:.verticalMax]]. Default is *false*.
+		</p>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled. Default is *true*.
+		</p>
+
+		<h3>[property:Number heightCoef]</h3>
+		<p>
+			Determines how much faster the camera moves when it's y-component is near [page:.heightMax]. Default is *1*.
+		</p>
+
+		<h3>[property:Number heightMax]</h3>
+		<p>
+			Upper camera height limit used for movement speed adjusment. Default is *1*.
+		</p>
+
+		<h3>[property:Number heightMin]</h3>
+		<p>
+			Lower camera height limit used for movement speed adjusment. Default is *0*.
+		</p>
+
+		<h3>[property:Boolean heightSpeed]</h3>
+		<p>
+			Whether or not the camera's height influences the forward movement speed. Default is *false*.
+			Use the properties [page:.heightCoef], [page:.heightMin] and [page:.heightMax] for configuration.
+		</p>
+
+		<h3>[property:Boolean lookVertical]</h3>
+		<p>
+			Whether or not it's possible to vertically look around. Default is *true*.
+		</p>
+
+		<h3>[property:Number lookSpeed]</h3>
+		<p>
+			The look around speed. Default is *0.005*.
+		</p>
+
+		<h3>[property:Boolean mouseDragOn]</h3>
+		<p>
+			Whether or not the mouse is pressed down. Read-only property.
+		</p>
+
+		<h3>[property:Number movementSpeed]</h3>
+		<p>
+			The movement speed. Default is *1*.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera to be controlled.
+		</p>
+
+		<h3>[property:Number verticalMax]</h3>
+		<p>
+			How far you can vertically look around, upper limit. Range is 0 to Math.PI radians. Default is *Math.PI*.
+		</p>
+
+		<h3>[property:Number verticalMin]</h3>
+		<p>
+			How far you can vertically look around, lower limit. Range is 0 to Math.PI radians. Default is *0*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null handleResize] ()</h3>
+		<p>
+			Should be called if the application window is resized.
+		</p>
+
+		<h3>[method:FirstPersonControls lookAt]( [param:Vector3 vector] )<br />
+		[method:FirstPersonControls lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			<p>
+				<p>
+					vector - A vector representing the target position.
+				</p>
+				<p>
+					Optionally, the x, y, z components of the world space position.
+				</p>
+			</p>
+			<p>
+				Ensures the controls orient the camera towards the defined target position.
+			</p>
+		</p>
+
+		<h3>[method:null update] ( [param:Number delta] )</h3>
+		<p>
+			<p>
+				[page:Number delta]: Time delta value.
+			</p>
+			<p>
+				Updates the controls. Usually called in the animation loop.
+			</p>
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FirstPersonControls.js examples/js/controls/FirstPersonControls.js]
+		</p>
+	</body>
+</html>

+ 94 - 0
docs/examples/en/controls/FlyControls.html

@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] enables a navigation similar to fly modes in DCC tools like Blender. You can arbitrarily transform the camera in
+			3D space without any limitations (e.g. focus on a specific target).
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_fly misc / controls / fly ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera object]: The camera to be controlled.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean autoForward]</h3>
+		<p>
+			If set to *true*, the camera automatically moves forward (and does not stop) when initially translated. Default is *false*.
+		</p>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Boolean dragToLook]</h3>
+		<p>
+			If set to *true*, you can only look around by performing a drag interaction. Default is *false*.
+		</p>
+
+		<h3>[property:Number movementSpeed]</h3>
+		<p>
+			The movement speed. Default is *1*.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera to be controlled.
+		</p>
+
+		<h3>[property:Number rollSpeed]</h3>
+		<p>
+			The rotation speed. Default is *0.005*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null update] ( [param:Number delta] )</h3>
+		<p>
+			<p>
+				[page:Number delta]: Time delta value.
+			</p>
+			<p>
+				Updates the controls. Usually called in the animation loop.
+			</p>
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FlyControls.js examples/js/controls/FlyControls.js]
+		</p>
+	</body>
+</html>

+ 2 - 3
docs/examples/en/controls/OrbitControls.html

@@ -56,8 +56,7 @@ function animate() {
 		<p>
 			[page:Camera object]: (required) The camera to be controlled. The camera must not be a child of another object, unless that object is the scene itself.<br><br>
 
-			[page:HTMLDOMElement domElement]: (optional) The HTML element used for event listeners. By default this is the whole document,
-			however if you only want the controls to work over a specific element (e.g. the canvas) you can specify that here.
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
 		</p>
 
 
@@ -86,7 +85,7 @@ function animate() {
 		<h3>[property:HTMLDOMElement domElement]</h3>
 		<p>
 			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
-			not set up new event listeners. Default is the whole document.
+			not set up new event listeners.
 		</p>
 
 		<h3>[property:Boolean enabled]</h3>

+ 149 - 0
docs/examples/en/controls/PointerLockControls.html

@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:EventDispatcher] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		The implementation of this class is based on the [link:https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API Pointer Lock API].
+		[name] is a perfect choice for first person 3D games.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_pointerlock misc / controls / pointerlock ]</p>
+
+		<code>
+var controls = new PointerLockControls( camera, document.body );
+
+// add event listener to show/hide a UI (e.g. the game's menu)
+
+controls.addEventListener( 'lock', function () {
+
+	menu.style.display = 'none';
+
+} );
+
+controls.addEventListener( 'unlock', function () {
+
+	menu.style.display = 'block';
+
+} );
+
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+			[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires when the user moves the mouse.
+		</p>
+
+		<h3>lock</h3>
+		<p>
+			Fires when the pointer lock status is "locked" (in other words: the mouse is captured).
+		</p>
+
+		<h3>unlock</h3>
+		<p>
+			Fires when the pointer lock status is "unlocked" (in other words: the mouse is not captured anymore).
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+
+		<h3>[property:Boolean isLocked]</h3>
+		<p>
+			Whether or not the controls are locked.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:EventDispatcher] class for common methods.</p>
+
+		<h3>[method:null connect] ()</h3>
+		<p>
+			Adds the event listeners of the controls.
+		</p>
+
+		<h3>[method:null disconnect] ()</h3>
+		<p>
+			Removes the event listeners of the controls.
+		</p>
+
+		<h3>[method:Vector3 getDirection] ( [param:Vector3 target] )</h3>
+		<p>
+			<p>
+				[page:Vector3 target]: The target vector.
+			</p>
+			<p>
+				Returns the look direction of the camera.
+			</p>
+		</p>
+
+		<h3>[method:null lock] ()</h3>
+		<p>
+			Activates the pointer lock.
+		</p>
+
+		<h3>[method:null moveForward] ( [param:Number distance] )</h3>
+		<p>
+			<p>
+				[page:Number distance]: The signed distance.
+			</p>
+			<p>
+				Moves the camera forward parallel to the xz-plane. Assumes camera.up is y-up.
+			</p>
+		</p>
+
+		<h3>[method:null moveRight] ( [param:Number distance] )</h3>
+		<p>
+			<p>
+				[page:Number distance]: The signed distance.
+			</p>
+			<p>
+				Moves the camera sidewards parallel to the xz-plane.
+			</p>
+		</p>
+
+		<h3>[method:null unlock] ()</h3>
+		<p>
+			Exits the pointer lock.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/PointerLockControls.js examples/js/controls/PointerLockControls.js]
+		</p>
+	</body>
+</html>

+ 207 - 0
docs/examples/en/controls/TrackballControls.html

@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:EventDispatcher] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			<p>
+				[name] is similar to [page:OrbitControls]. However, it does not maintain a constant camera [page:Object3D.up up] vector.
+				That means if the camera orbits over the “north” and “south” poles, it does not flip to stay "right side up".
+			</p>
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_trackball misc / controls / trackball ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires when the camera has been transformed by the controls.
+		</p>
+
+		<h3>start</h3>
+		<p>
+			Fires when an interaction (e.g. touch) was initiated.
+		</p>
+
+		<h3>end</h3>
+		<p>
+			Fires when an interaction has finished.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Number dynamicDampingFactor]</h3>
+		<p>
+			Defines the intensity of damping. Only considered if [page:.staticMoving staticMoving] is set to *false*. Default is *0.2*.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:Array keys]</h3>
+		<p>
+			This array holds keycodes for controlling interactions.
+			<ul>
+				<li>When the first defined key is pressed, all mouse interactions (left, middle, right) performs orbiting.</li>
+				<li>When the second defined key is pressed, all mouse interactions (left, middle, right) performs zooming.</li>
+				<li>When the third defined key is pressed, all mouse interactions (left, middle, right) performs panning.</li>
+			</ul>
+			Default is *65, 83, 68* which represents A, S, D.
+		</p>
+
+		<h3>[property:Number maxDistance]</h3>
+		<p>
+			 How far you can zoom in. Default is *Infinity*.
+		</p>
+
+		<h3>[property:Number minDistance]</h3>
+		<p>
+			 How far you can zoom in. Default is *0*.
+		</p>
+
+		<h3>
+			[property:Object mouseButtons]</h3>
+		<p>
+			This object contains references to the mouse actions used by the controls.
+			<ul>
+				<li>.LEFT is assinged with *THREE.MOUSE.ROTATE*</li>
+				<li>.MIDDLE is assinged with *THREE.MOUSE.ZOOM*</li>
+				<li>.RIGHT is assinged with *THREE.MOUSE.PAN*</li>
+			</ul>
+		</p>
+
+		<h3>[property:Boolean noPan]</h3>
+		<p>
+			Whether or not panning is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean noRotate]</h3>
+		<p>
+			Whether or not rotation is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean noZoom]</h3>
+		<p>
+			Whether or not zooming is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera being controlled.
+		</p>
+
+		<h3>[property:Number panSpeed]</h3>
+		<p>
+			The zoom speed. Default is *0.3*.
+		</p>
+
+		<h3>[property:Number rotateSpeed]</h3>
+		<p>
+			The rotation speed. Default is *1.0*.
+		</p>
+
+		<h3>[property:Object screen]</h3>
+		<p>
+			Represents the properties of the screen. Automatically set when [page:.handleResize handleResize]() is called.
+			<ul>
+				<li>left: Represents the offset in pixels to the screen's left boundary.</li>
+				<li>top: Represents the offset in pixels to the screen's top boundary.</li>
+				<li>width: Represents the screen width in pixels.</li>
+				<li>height: Represents the screen height in pixels.</li>
+			</ul>
+		</p>
+
+		<h3>[property:Boolean staticMoving]</h3>
+		<p>
+			Whether or not damping is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Number zoomSpeed]</h3>
+		<p>
+			The zoom speed. Default is *1.2*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null checkDistances] ()</h3>
+		<p>
+			Ensures the controls stay in the range [minDistance, maxDistance]. Called by [page:.update update]().
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null handleResize] ()</h3>
+		<p>
+			Should be called if the application window is resized.
+		</p>
+
+		<h3>[method:null panCamera] ()</h3>
+		<p>
+			Performs panning if necessary. Called by [page:.update update]().
+		</p>
+
+		<h3>[method:null reset] ()</h3>
+		<p>
+			Resets the controls to its initial state.
+		</p>
+
+		<h3>[method:null rotateCamera] ()</h3>
+		<p>
+			Rotates the camera if necessary. Called by [page:.update update]().
+		</p>
+
+		<h3>[method:null update] ()</h3>
+		<p>
+			Updates the controls. Usually called in the animation loop.
+		</p>
+
+		<h3>[method:null zoomCamera] ()</h3>
+		<p>
+			Performs zooming if necessary. Called by [page:.update update]().
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TrackballControls.js examples/js/controls/TrackballControls.js]
+		</p>
+	</body>
+</html>

+ 224 - 0
docs/examples/en/controls/TransformControls.html

@@ -0,0 +1,224 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			This class can be used to transform objects in 3D space by adapting a similar interaction model of DCC tools like Blender.
+			Unlike other controls, it is not intended to transform the scene's camera.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_transform misc / controls / transform ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires if any type of change (object or property change) is performed. Property changes
+			are separate events you can add event listeners to. The event type is "propertyname-changed".
+		</p>
+
+		<h3>mouseDown</h3>
+		<p>
+			Fires if a pointer (mouse/touch) becomes active.
+		</p>
+
+		<h3>mouseUp</h3>
+		<p>
+			Fires if a pointer (mouse/touch) is no longer active.
+		</p>
+
+		<h3>objectChange</h3>
+		<p>
+			Fires if the controlled 3D object is changed.
+		</p>
+
+		<h2>Properties</h2>
+
+		<p>See the base [page:Object3D] class for common properties.</p>
+
+		<h3>[property:String axis]</h3>
+		<p>
+			The current transformation axis.
+		</p>
+
+		<h3>[property:Camera camera]</h3>
+		<p>
+			The camera of the rendered scene.
+		</p>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Boolean dragging]</h3>
+		<p>
+			Whether or not dragging is currently performed. Read-only property.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:String mode]</h3>
+		<p>
+			The current transformation mode. Possible values are "translate", "rotate" and "scale". Default is *translate*.
+		</p>
+
+		<h3>[property:Object3D object]</h3>
+		<p>
+			The 3D object being controlled.
+		</p>
+
+		<h3>[property:Number rotationSnap]</h3>
+		<p>
+			By default, 3D objects are continously rotated. If you set this property to a numeric value (radians), you can define in which
+			steps the 3D object should be rotated. Deault is *null*.
+		</p>
+
+		<h3>[property:Boolean showX]</h3>
+		<p>
+			Whether or not the x-axis helper should be visible. Default is *true*.
+		</p>
+
+		<h3>[property:Boolean showY]</h3>
+		<p>
+			Whether or not the y-axis helper should be visible. Default is *true*.
+		</p>
+
+		<h3>[property:Boolean showZ]</h3>
+		<p>
+			Whether or not the z-axis helper should be visible. Default is *true*.
+		</p>
+
+		<h3>[property:Number size]</h3>
+		<p>
+			The size of the helper UI (axes/planes). Default is *1*.
+		</p>
+
+		<h3>[property:String space]</h3>
+		<p>
+			Defines in which coordinate space transformations should be performed. Possible values are "world" and "local". Default is *world*.
+		</p>
+
+		<h3>[property:Number translationSnap]</h3>
+		<p>
+			By default, 3D objects are continously translated. If you set this property to a numeric value (world units), you can define in which
+			steps the 3D object should be translated. Deault is *null*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:Object3D] class for common methods.</p>
+
+		<h3>[method:TransformControls attach] ( [param:Object3D object] )</h3>
+		<p>
+			<p>
+				[page:Object3D object]: The 3D object that should be transformed.
+			</p>
+			<p>
+				Sets the 3D object that should be transformed and ensures the controls UI is visible.
+			</p>
+		</p>
+
+		<h3>[method:TransformControls detach] ()</h3>
+		<p>
+			Removes the current 3D object from the controls and makes the helper UI is invisible.
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:String getMode] ()</h3>
+		<p>
+			Returns the transformation mode.
+		</p>
+
+		<h3>[method:null setMode] ( [param:String mode] )</h3>
+		<p>
+			<p>
+				[page:String mode]: The transformation mode.
+			</p>
+			<p>
+				Sets the transformation mode.
+			</p>
+		</p>
+
+		<h3>[method:null setRotationSnap] ( [param:Number rotationSnap] )</h3>
+		<p>
+			<p>
+				[page:Number rotationSnap]: The rotation snap.
+			</p>
+			<p>
+				Sets the rotation snap.
+			</p>
+		</p>
+
+		<h3>[method:null setSize] ( [param:Number size] )</h3>
+		<p>
+			<p>
+				[page:Number size]: The size of the helper UI.
+			</p>
+			<p>
+				Sets the size of the helper UI.
+			</p>
+		</p>
+
+		<h3>[method:null setSpace] ( [param:String space] )</h3>
+		<p>
+			<p>
+				[page:String space]: The coordinate space in which transformations are applied.
+			</p>
+			<p>
+				Sets the coordinate space in which transformations are applied.
+			</p>
+		</p>
+
+		<h3>[method:null setTranslationSnap] ( [param:Number translationSnap] )</h3>
+		<p>
+			<p>
+				[page:Number translationSnap]: The translation snap.
+			</p>
+			<p>
+				Sets the translation snap.
+			</p>
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TransformControls.js examples/js/controls/TransformControls.js]
+		</p>
+	</body>
+</html>

+ 1 - 0
docs/examples/en/exporters/GLTFExporter.html

@@ -94,6 +94,7 @@
 			<li>truncateDrawRange - bool. Export just the attributes within the drawRange, if defined, instead of exporting the whole array. Default is true.</li>
 			<li>binary - bool. Export in binary (.glb) format, returning an ArrayBuffer. Default is false.</li>
 			<li>embedImages - bool. Export with images embedded into the glTF asset. Default is true.</li>
+			<li>maxTextureSize - int. Restricts the image maximum size (both width and height) to the given value. This option works only if embedImages is true. Default is Infinity.</li>
 			<li>animations - Array<[page:AnimationClip AnimationClip]>. List of animations to be included in the export.</li>
 			<li>forceIndices - bool. Generate indices for non-index geometry and export with them. Default is false.</li>
 			<li>forcePowerOfTwoTextures - bool. Export with images resized to POT size. This option works only if embedImages is true. Default is false.</li>

+ 0 - 101
docs/examples/en/loaders/BabylonLoader.html

@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-
-		<p class="desc">A loader for loading a <em>.babylon</em> resource. <br />
-		The <a href="https://doc.babylonjs.com/generals/file_format_map_(.babylon)"> .babylon </a> file format used by
-		<a href="https://www.babylonjs.com/">Babylon.js</a>.
-		</p>
-
-		<h2>Example</h2>
-
-		<code>
-		// instantiate a loader
-		var loader = new THREE.BabylonLoader();
-
-		// load a Babylon resource
-		loader.load(
-			// resource URL
-			'models/babylon/skull.babylon',
-			// called when resource is loaded
-			function ( object ) {
-
-				scene.add( object );
-
-			},
-			// called when loading is in progress
-			function ( xhr ) {
-
-				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
-
-			},
-			// called when loading has errors
-			function ( xhr ) {
-
-				console.log( 'An error happened' );
-
-			}
-		);
-		</code>
-
-		[example:webgl_loader_babylon]
-
-		<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>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null 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>.babylon</em> file.<br />
-		[page:function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives the loaded [page:Object3D] as an argument.<br />
-		[page:function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which 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 the error as an argument.<br />
-		</p>
-		<p>
-		Begin loading from url and call onLoad with the parsed response content.
-		</p>
-
-		<h3>[method:Object3D parse]( [param:Object json] )</h3>
-		<p>
-		[page:Object json] — The <em>JSON</em> structure to parse.
-		</p>
-		<p>
-		Parse a <em>JSON</em> structure and return an [page:Object3D object] or a [page:Scene scene].<br />
-		Found objects are converted to [page:Mesh] with a [page:BufferGeometry] and a default [page:MeshPhongMaterial].<br />
-		Lights are parsed accordingly.
-		</p>
-
-		<h3>[method:BabylonLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BabylonLoader.js examples/js/loaders/BabylonLoader.js]
-		</p>
-	</body>
-</html>

+ 7 - 10
docs/examples/en/loaders/BasisTextureLoader.html

@@ -9,6 +9,7 @@
 	</head>
 	<body>
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc">
@@ -57,8 +58,8 @@
 			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 DXT, ETC1, or
-			PVRTC1. Other output formats may be supported in the future.
+			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.
@@ -81,7 +82,11 @@
 		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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -103,14 +108,6 @@
 		the output format for the transcoder. Must be called before loading a texture.
 		</p>
 
-		<h3>[method:this setCrossOrigin]( [param:String crossOrigin] )</h3>
-		<p>
-		[page:String crossOrigin] — Options are '', 'anonymous', or 'use-credentials'. Default is 'anonymous'.
-		</p>
-		<p>
-		Sets options for CORS requests.
-		</p>
-
 		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
 		<p>
 		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.

+ 4 - 13
docs/examples/en/loaders/DRACOLoader.html

@@ -87,7 +87,11 @@
 		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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -100,19 +104,6 @@
 		Begin loading from url and call the <em>onLoad</em> function with the decompressed geometry.
 		</p>
 
-		<h3>[method:this setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the <em>.drc</em> file.
-		</p>
-
-		<h3>[method:this setCrossOrigin]( [param:String value] )</h3>
-		<p>
-		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
-		</p>
-
 		<h3>[method:this setDecoderPath]( [param:String value] )</h3>
 		<p>
 		[page:String value] — Path to folder containing the JS and WASM decoder libraries.

+ 3 - 22
docs/examples/en/loaders/GLTFLoader.html

@@ -9,6 +9,7 @@
 	</head>
 	<body>
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
@@ -161,9 +162,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -176,27 +178,6 @@
 		Begin loading from url and call the callback function with the parsed response content.
 		</p>
 
-		<h3>[method:GLTFLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the .gltf/.glb file.
-		</p>
-
-		<h3>[method:GLTFLoader setResourcePath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path for loading additional resources e.g. textures and .bin data.
-		</p>
-		<p>
-		Set the base path for additional resources.
-		</p>
-
-		<h3>[method:null setCrossOrigin]( [param:String value] )</h3>
-		<p>
-		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
-		</p>
-
 		<h3>[method:null setDRACOLoader]( [param:DRACOLoader dracoLoader] )</h3>
 		<p>
 		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.

+ 0 - 543
docs/examples/en/loaders/LoaderSupport.html

@@ -1,543 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-
-		<h1>[name]</h1>
-
-		<p class="desc">Supporting classes for file loaders and web worker based loaders.</p>
-
-		<h2>Sub-Classes</h2>
-		[page:LoaderSupport.Builder]<br>
-		[page:LoaderSupport.LoadedMeshUserOverride]<br>
-		[page:LoaderSupport.WorkerSupport]<br>
-		[page:LoaderSupport.WorkerRunnerRefImpl]<br>
-		[page:LoaderSupport.WorkerDirector]<br>
-		[page:LoaderSupport.ResourceDescriptor]<br>
-		[page:LoaderSupport.PrepData]<br>
-		[page:LoaderSupport.Callbacks]<br>
-		[page:LoaderSupport.Validator]<br>
-
-
-		<h2>Example</h2>
-
-		[example:webgl_loader_obj2_meshspray] - Example using [page:LoaderSupport.LoaderWorkerDirector] and [page:LoaderSupport.LoaderWorkerSupport].<br>
-
-		<h2>Classes</h2>
-		<br>
-
-		<a name="Builder"></a><h1>Builder</h1>
-		<h2>Constructor</h2>
-
-		<h3>Builder()</h3>
-		<p>
-			Builds one or many [page:Mesh] from one raw set of Arraybuffers, materialGroup descriptions and further parameters.
-			Supports vertex, vertexColor, normal, uv and index buffers.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setLogging] ( [param:Boolean enabled], [param:Boolean debug] )</h3>
-		<p>
-			[page:Boolean enabled] True or false.<br>
-			[page:Boolean debug] True or false.
-		</p>
-		<p>
-			Enable or disable logging in general (except warn and error), plus enable or disable debug logging.
-		</p>
-
-
-		<h3>[method:null init] ()</h3>
-		<p>
-			Initializes the Builder (currently only default material initialisation).
-		</p>
-
-
-		<h3>[method:null setMaterials] ( Array of [param:Material materials] )</h3>
-		<p>
-			Array of [page:Material materials] - Array of [page:Material Materials]
-		</p>
-		<p>
-			Set materials loaded by any supplier of an Array of [page:Material Materials].
-		</p>
-
-
-		<h3>[method:Array processPayload] ( Object payload )</h3>
-		<p>
-			[page:Object payload] - Raw Mesh or Material descriptions.
-		</p>
-		<p>
-			Delegates processing of the payload (mesh building or material update) to the corresponding functions (BW-compatibility).
-		</p>
-
-
-		<h3>[method:Array buildMeshes] ( Object meshPayload )</h3>
-		<p>
-			[page:Object meshPayload] - Raw mesh description (buffers, params, materials) used to build one to many meshes.
-		</p>
-		<p>
-			Builds one or multiple meshes from the data described in the payload (buffers, params, material info).
-		</p>
-
-
-		<h3>[method:null updateMaterials] ( Object materialPayload )</h3>
-		<p>
-			[page:Object materialPayload] - Material update instructions
-		</p>
-		<p>
-			Updates the materials with contained material objects (sync) or from alteration instructions (async).
-		</p>
-
-
-		<h3>[method:Object getMaterialsJSON] ()</h3>
-		<p>
-			Returns the mapping object of material name and corresponding jsonified material.
-		</p>
-
-
-		<h3>[method:Object getMaterials] ()</h3>
-		<p>
-			Returns the mapping object of material name and corresponding material.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="LoadedMeshUserOverride"></a><h1>LoadedMeshUserOverride</h1>
-		<h2>Constructor</h2>
-
-		<h3>LoadedMeshUserOverride( [param:Boolean disregardMesh], [param:BufferGeometry bufferGeometry] )</h3>
-		<p>
-			[page:Boolean disregardMesh] - Tell implementation to completely disregard this mesh<br>
-			[page:Boolean alteredMesh] - Tell implementation that mesh(es) have been altered or added
-		</p>
-		<p>
-			Object to return by callback onMeshAlter. Used to disregard a certain mesh or to return one to many meshes.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null addMesh] ( [param:Mesh mesh] )</h3>
-		<p>
-			[page:Mesh mesh] - Mesh
-		</p>
-		<p>
-			Add a mesh created within callback.
-		</p>
-
-
-		<h3>[method:boolean isDisregardMesh] ()</h3>
-		<p>
-			Answers if mesh shall be disregarded completely.
-		</p>
-
-
-		<h3>[method:boolean providesAlteredMeshes] ()</h3>
-		<p>
-			Answers if new mesh(es) were created.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="WorkerSupport"></a><h1>WorkerSupport</h1>
-		<h2>Constructor</h2>
-
-		<h3>WorkerSupport()</h3>
-		<p>
-			This class provides means to transform existing parser code into a web worker.
-			It defines a simple communication protocol which allows to configure the worker and receive raw mesh data during execution.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setLogging]( [param:Boolean enabled], [param:Boolean debug] )</h3>
-		<p>
-			[page:Boolean enabled] True or false.<br>
-			[page:Boolean debug] True or false.
-		</p>
-		<p>
-			Enable or disable logging in general (except warn and error), plus enable or disable debug logging.
-		</p>
-
-
-		<h3>[method:null setForceWorkerDataCopy]( [param:Boolean forceWorkerDataCopy] )</h3>
-		<p>
-			[page:Boolean forceWorkerDataCopy] True or false.
-		</p>
-		<p>
-			Forces all ArrayBuffers to be transferred to worker to be copied.
-		</p>
-
-
-		<h3>[method:null validate] ( [param:Function functionCodeBuilder], Array of [param:String libLocations], [param:String libPath], [param:LoaderSupport.WorkerRunnerRefImpl runnerImpl] )</h3>
-		<p>
-			[page:Function functionCodeBuilder] - Function that is invoked with funcBuildObject and funcBuildSingleton that allows stringification of objects and singletons.<br>
-			Array of [page:String libLocations] - URL of libraries that shall be added to worker code relative to libPath.<br>
-			[page:String libPath] - Base path used for loading libraries.<br>
-			[page:LoaderSupport.WorkerRunnerRefImpl runnerImpl] - The default worker parser wrapper implementation (communication and execution). An extended class could be passed here.
-		</p>
-		<p>
-			Validate the status of worker code and the derived worker.
-		</p>
-
-
-		<h3>[method:null setTerminateRequested] ( [param:Boolean terminateRequested] )</h3>
-		<p>
-			[page:Boolean terminateRequested] - True or false.
-		</p>
-		<p>
-			Request termination of worker once parser is finished.
-		</p>
-
-
-		<h3>[method:null setCallbacks] ( [param:Function builder], [param:Function onLoad] )</h3>
-		<p>
-			[page:Function builder] - The builder function. Default is [page:LoaderSupport.Builder].<br>
-			[page:Function onLoad] - The function that is called when parsing is complete.
-		</p>
-		<p>
-			Specify functions that should be build when new raw mesh data becomes available and when the parser is finished.
-		</p>
-
-
-		<h3>[method:null run] ( [param:Object payload] )</h3>
-		<p>
-			[page:Object payload] - Raw mesh description (buffers, params, materials) used to build one to many meshes.
-		</p>
-		<p>
-			Runs the parser with the provided configuration.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="WorkerRunnerRefImpl"></a><h1>WorkerRunnerRefImpl</h1>
-		<h2>Constructor</h2>
-
-		<h3>WorkerRunnerRefImpl()</h3>
-		<p>
-			Default implementation of the WorkerRunner responsible for creation and configuration of the parser within the worker.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null applyProperties] ( [param:Object parser], [param:Object params] )</h3>
-		<p>
-			[page:Object parser] - The parser instance<br>
-			[page:Object params] - The parameter object
-		</p>
-		<p>
-			Applies values from parameter object via set functions or via direct assignment.
-		</p>
-
-
-		<h3>[method:null run] ( [param:Object payload] )</h3>
-		<p>
-			[page:Object payload] - Raw mesh description (buffers, params, materials) used to build one to many meshes.
-		</p>
-		<p>
-			Configures the Parser implementation according the supplied configuration object.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="WorkerDirector"></a><h1>WorkerDirector</h1>
-		<h2>Constructor</h2>
-
-		<h3>WorkerDirector( [param:String classDef] )</h3>
-		<p>
-			[page:String classDef] - Class definition to be used for construction
-		</p>
-		<p>
-			Orchestrate loading of multiple OBJ files/data from an instruction queue with a configurable amount of workers (1-16).<br>
-			- Workflow:<br>
-			- prepareWorkers<br>
-			- enqueueForRun<br>
-			- processQueue<br>
-			- tearDown
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setLogging]( [param:Boolean enabled], [param:Boolean debug] )</h3>
-		<p>
-			[page:Boolean enabled] True or false.<br>
-			[page:Boolean debug] True or false.
-		</p>
-		<p>
-			Enable or disable logging in general (except warn and error), plus enable or disable debug logging.
-		</p>
-
-
-		<h3>[method:null setForceWorkerDataCopy]( [param:Boolean forceWorkerDataCopy] )</h3>
-		<p>
-			[page:Boolean forceWorkerDataCopy] True or false.
-		</p>
-		<p>
-			Forces all ArrayBuffers to be transferred to worker to be copied.
-		</p>
-
-
-		<h3>[method:null prepareWorkers]( [param:WWOBJLoader2.Callbacks globalCallbacks], [param:Number maxQueueSize], [param:Number maxWebWorkers] )</h3>
-		<p>
-			[page:LoaderSupport.Callbacks globalCallbacks] - Register global callbacks used by all web workers<br>
-			[page:Number maxQueueSize] - Set the maximum size of the instruction queue (1-1024)<br>
-			[page:Number maxWebWorkers] - Set the maximum amount of workers (1-16)
-		</p>
-		<p>
-			Create or destroy workers according limits. Set the name and register callbacks for dynamically created web workers.
-		</p>
-
-
-		<h3>[method:null enqueueForRun]( [param:LoaderSupport.PrepData runParams] )</h3>
-		<p>
-			[page:LoaderSupport.PrepData runParams]
-		</p>
-		<p>
-			Store run instructions in internal instructionQueue.
-		</p>
-
-
-		<h3>[method:null processQueue]()</h3>
-		<p>
-			Process the instructionQueue until it is depleted.
-		</p>
-
-
-		<h3>[method:null tearDown]( [param:Function callbackOnFinishedProcessing] )</h3>
-		<p>
-			[page:Function callbackOnFinishedProcessing] - Function called once all workers finished processing.
-		</p>
-		<p>
-			Terminate all workers.
-		</p>
-
-
-		<h3>[method:null getMaxQueueSize]()</h3>
-		<p>
-			Returns the maximum length of the instruction queue.
-		</p>
-
-
-		<h3>[method:null getMaxWebWorkers]()</h3>
-		<p>
-			Returns the maximum number of workers.
-		</p>
-
-		<h3>[method:Boolean isRunning]()</h3>
-		<p>
-			Returns if any workers are running.
-		</p>
-
-
-		<h3>[method:null setCrossOrigin]( [param:String crossOrigin] )</h3>
-		<p>
-			[page:String crossOrigin] - CORS value
-		</p>
-		<p>
-			Sets the CORS string to be used.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="ResourceDescriptor"></a><h1>ResourceDescriptor</h1>
-		<h2>Constructor</h2>
-
-		<h3>ResourceDescriptor( [param:String url], [param:String extension] )</h3>
-		<p>
-			[page:String url] - URL to the file<br>
-			[page:String extension] - The file extension (type)
-		</p>
-		<p>
-			A resource description used by [page:LoaderSupport.PrepData] and others.
-		</p>
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setContent]( [param:Object content )</h3>
-		<p>
-			[page:Object content] - The file content as ArrayBuffer or text
-		</p>
-		<p>
-			Set the content of this resource
-		</p>
-
-
-		<h3>[method:null setResourcePath] ( [param:String resourcePath] )</h3>
-		<p>
-			[page:String resourcePath] - URL
-		</p>
-		<p>
-			Allows to specify resourcePath for dependencies of specified resource.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="PrepData"></a><h1>PrepData</h1>
-		<h2>Constructor</h2>
-
-		<h3>PrepData( [param:String modelName] )</h3>
-		<p>
-			[page:String modelName] - Overall name of the model
-		</p>
-		<p>
-			Configuration instructions to be used by run method.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setLogging]( [param:Boolean enabled], [param:Boolean debug] )</h3>
-		<p>
-			[page:Boolean enabled] True or false.<br>
-			[page:Boolean debug] True or false.
-		</p>
-		<p>
-			Enable or disable logging in general (except warn and error), plus enable or disable debug logging.
-		</p>
-
-
-		<h3>[method:Callbacks getCallbacks]()</h3>
-		<p>
-			Returns all callbacks as [page:LoaderSupport.Callbacks].
-		</p>
-
-
-		<h3>[method:null addResource]( [param:LoaderSupport.ResourceDescriptor resource] )</h3>
-		<p>
-			[page:LoaderSupport.ResourceDescriptor resource] Adds a [page:LoaderSupport.ResourceDescriptor]
-		</p>
-		<p>
-			Add a resource description.
-		</p>
-
-
-		<h3>[method:null checkResourceDescriptorFiles] ( [param:LoaderSupport.ResourceDescriptor resources], [param:Object fileDesc] )</h3>
-		<p>
-			[page:LoaderSupport.ResourceDescriptor resources] - Array of [page:LoaderSupport.ResourceDescriptor]<br>
-			[page:Object fileDesc] - Object describing which resources are of interest (ext, type (string or UInt8Array) and ignore (boolean))
-		</p>
-		<p>
-			Identify files or content of interest from an Array of [page:LoaderSupport.ResourceDescriptor].
-			Returns Object with each "ext" and the corresponding [page:LoaderSupport.ResourceDescriptor]
-		</p>
-
-
-		<h3>[method:PrepData clone] ()</h3>
-		<p>
-			Clones this object and returns it afterwards. Callbacks and resources are not cloned deep (references!).
-		</p>
-		<br>
-		<br>
-
-
-		<a name="Callbacks"></a><h1>Callbacks</h1>
-		<h2>Constructor</h2>
-
-		<h3>Callbacks()</h3>
-		<p>
-			Callbacks utilized by loaders and builder.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setCallbackOnProgress]( [param:Function callbackOnProgress] )</h3>
-		<p>
-			[page:Function callbackOnProgress] - Callback function for described functionality
-		</p>
-		<p>
-			Register callback function that is invoked by internal function "announceProgress" to print feedback.
-		</p>
-
-		<h3>[method:null setCallbackOnReportError]( [param:Function callbackOnReportError] )</h3>
-		<p>
-			[page:Function callbackOnReportError] - Callback function for described functionality
-		</p>
-		<p>
-			Register callback function that is invoked when an error is reported.
-		</p>
-
-		<h3>[method:null setCallbackOnMeshAlter]( [param:Function callbackOnMeshAlter] )</h3>
-		<p>
-			[page:Function callbackOnMeshAlter] - Callback function for described functionality
-		</p>
-		<p>
-			Register callback function that is called every time a mesh was loaded.
-			Use [page:LoadedMeshUserOverride] for alteration instructions (geometry, material or disregard mesh).
-		</p>
-
-
-		<h3>[method:null setCallbackOnLoad]( [param:Function callbackOnLoad] )</h3>
-		<p>
-			[page:Function callbackOnLoad] - Callback function for described functionality
-		</p>
-		<p>
-			Register callback function that is called once loading of the complete OBJ file is completed.
-		</p>
-
-		<h3>[method:null setCallbackOnLoadMaterials]( [param:Function callbackOnLoadMaterials] )</h3>
-		<p>
-			[page:Function callbackOnLoadMaterials] - Callback function for described functionality
-		</p>
-		<p>
-			Register callback function that is called when materials have been loaded.
-		</p>
-		<br>
-		<br>
-
-
-		<a name="Validator"></a><h1>Validator</h1>
-		<h2>Constructor</h2>
-
-		<h3>Validator()</h3>
-		<p>
-			Validation functions.
-		</p>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:Boolean isValid]( [param:Object input] )</h3>
-		<p>
-			[page:Object input] - Can be anything
-		</p>
-		<p>
-			If given input is null or undefined, false is returned otherwise true.
-		</p>
-
-
-		<h3>[method:null verifyInput]( [param:Object input], [param:Object defaultValue] )</h3>
-		<p>
-			[page:Object input] - Can be anything<br>
-			[page:Object defaultValue] - Can be anything
-		</p>
-		<p>
-			If given input is null or undefined, the defaultValue is returned otherwise the given input.
-		</p>
-		<br>
-		<br>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/LoaderSupport.js examples/js/loaders/LoaderSupport.js]
-		</p>
-
-	</body>
-</html>

+ 3 - 22
docs/examples/en/loaders/MMDLoader.html

@@ -9,6 +9,7 @@
 	</head>
 	<body>
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc"> A loader for <a href="http://www.geocities.jp/higuchuu4/index_e.htm"><em>MMD</em></a> resources. <br /><br />
@@ -66,9 +67,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -105,11 +107,6 @@
 		Begin loading PMD/PMX model file and VMD motion file(s) from urls and fire the callback function with an [page:Object] containing parsed [page:SkinnedMesh] and [page:AnimationClip] fitting to the [page:SkinnedMesh].
 		</p>
 
-		<h3>[method:MMDLoader setCrossOrigin]( [param:String crossOrigin] )</h3>
-		<p>
-		[page:String crossOrigin] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
-		</p>
-
 		<h3>[method:MMDLoader setAnimationPath]( [param:String animationPath] )</h3>
 		<p>
 		[page:String animationPath] — Base path for loading animation data (VMD/VPD files).
@@ -118,22 +115,6 @@
 		Set the base path for additional resources like textures.
 		</p>
 
-		<h3>[method:MMDLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Sets the base path or URL from which to load files.
-		</p>
-
-		<h3>[method:MMDLoader setResourcePath]( [param:String resourcePath] )</h3>
-		<p>
-		[page:String resourcePath] — Base path for loading additional resources e.g. textures.
-		</p>
-		<p>
-		Set the base path for additional resources like textures.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 3 - 31
docs/examples/en/loaders/MTLLoader.html

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
 
 		<h1>[name]</h1>
 
@@ -27,10 +28,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -43,35 +44,6 @@
 			Begin loading from url and return the loaded material.
 		</p>
 
-
-		<h3>[method:MTLLoader setPath]( [param:String path] )</h3>
-		<p>
-			[page:String path] — required<br />
-		</p>
-		<p>
-			 Set base path for MTL file.
-		</p>
-
-
-		<h3>[method:MTLLoader setResourcePath]( [param:String path] )</h3>
-		<p>
-			[page:String path] — required<br />
-		</p>
-		<p>
-			Set base path for additional resources like textures. If set, this path will be used as the base path.
-		</p>
-
-
-		<h3>[method:MTLLoader setCrossOrigin]( [param:String value] )</h3>
-		<p>
-			[page:String value] — required<br />
-		</p>
-		<p>
-			If set, assigns the [link:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes crossOrigin]
-		 attribute of the image to the value of *crossOrigin*, prior to starting the load. Default is *"anonymous"*.
-		</p>
-
-
 		<h3>[method:MTLLoader setMaterialOptions]( [param:Object options] )</h3>
 		<p>
 			[page:Object options] — required

+ 3 - 6
docs/examples/en/loaders/OBJLoader.html

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
 
 		<h1>[name]</h1>
 
@@ -64,9 +65,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -97,11 +99,6 @@
 		Sets materials loaded by MTLLoader or any other supplier of a [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator].
 		</p>
 
-		<h3>[method:OBJLoader setPath]( [param:String path] )</h3>
-		<p>
-		Sets the base path or URL from which to load files. This can be useful to avoid repetition if you are calling [page:OBJLoader.load .load] multiple times on the same directory.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 61 - 67
docs/examples/en/loaders/OBJLoader2.html

@@ -22,183 +22,177 @@
 
 		<code>
 		// instantiate the loader
-		var loader = new THREE.OBJLoader2();
+		let loader = new THREE.OBJLoader2();
 
 		// function called on successful load
-		var callbackOnLoad = function ( event ) {
-			scene.add( event.detail.loaderRootNode );
-		};
+		function callbackOnLoad ( object3d ) {
+			scene.add( object3d );
+		}
 
 		// load a resource from provided URL synchronously
-		loader.load( 'obj/female02/female02.obj', callbackOnLoad, null, null, null, false );
+		loader.load( 'obj/female02/female02.obj', callbackOnLoad, null, null, null );
 		</code>
 
 		[example:webgl_loader_obj2] - Simple example <br>
-		[example:webgl_loader_obj2_options] - Example for multiple use-cases (parse, load and run with instructions (sync and async)<br>
+		[example:webgl_loader_obj2_options] - Example for multiple use-cases (parse and load, sync or in parallel to main (see [page:OBJLoader2Parallel]))<br>
 
 
 		<h2>Constructor</h2>
 
-		<h3>[name]( [param:LoadingManager manager], [param:LoaderSupport.ConsoleLogger logger] )</h3>
+		<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].<br>
-			[page:LoaderSupport.ConsoleLogger logger] - logger to be used
 		</p>
 		<p>
-			Use [name] to load OBJ data from files or to parse OBJ data from arraybuffer or text.
+			Creates a new [name]. Use it to load OBJ data from files or to parse OBJ data from arraybuffer or text.
 		</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:Object3D parse]( [param:arraybuffer content]|[param:String content] )</h3>
 		<p>
 			[[page:arraybuffer content]|[page:String content]] OBJ data as Uint8Array or String
 		</p>
 		<p>
-			Parses OBJ data synchronously from arraybuffer or string and returns the [page:Object3D loaderRoorNode].
-		</p>
-
-
-		<h3>[method:Object3D parseAsync]( [param:arraybuffer content], [param:Function onLoad] )</h3>
-		<p>
-			[page:arraybuffer content] - OBJ data as Uint8Array<br>
-			[page:Function onLoad] - Called after worker successfully completed loading<br>
-		</p>
-		<p>
-			Parses OBJ content asynchronously from arraybuffer.
+			Parses OBJ data synchronously from arraybuffer or string and returns the [page:Object3D baseObject3d].
 		</p>
 
 
-		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError], [param:Function onMeshAlter], [param:boolean useAsync] )</h3>
+		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError], [param:Function onMeshAlter] )</h3>
 		<p>
 			[page:String url] - A string containing the path/URL of the file to be loaded.<br>
 			[page:Function onLoad] - A function to be called after loading is successfully completed. The function receives loaded [page:Object3D] as an argument.<br>
 			[page:Function onProgress] - (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which 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 the error as an argument.<br>
 			[page:Function onMeshAlter] - (optional) A function to be called after a new mesh raw data becomes available for alteration.<br>
-			[page:boolean useAsync] - (optional) If true, uses async loading with worker, if false loads data synchronously.
 		</p>
 		<p>
 			Use this convenient method to load a file at the given URL. By default the fileLoader uses an ArrayBuffer.
 		</p>
 
 
-		<h3>[method:null run]( [param:LoaderSupport.PrepData params], [param:LoaderSupport.WorkerSupport workerSupportExternal] )</h3>
+		<h3>[method:OBJLoader2 setLogging]( [param:Boolean enabled], [param:Boolean debug] )</h3>
 		<p>
-			[page:LoaderSupport.PrepData params] - prepData All parameters and resources required for execution<br>
-			[page:LoaderSupport.WorkerSupport workerSupportExternal] - Use pre-existing WorkerSupport
+			[page:Boolean enabled] True or false.<br>
+			[page:Boolean debug] True or false.
 		</p>
 		<p>
-			Run the loader according the provided instructions.
+			Enable or disable logging in general (except warn and error), plus enable or disable debug logging.
 		</p>
 
 
-		<h3>[method:null setLogging]( [param:Boolean enabled], [param:Boolean debug] )</h3>
+		<h3>[method:OBJLoader2 addMaterialPerSmoothingGroup] ( [param:boolean materialPerSmoothingGroup] )</h3>
 		<p>
-			[page:Boolean enabled] True or false.<br>
-			[page:Boolean debug] True or false.
+			[page:boolean materialPerSmoothingGroup]
 		</p>
 		<p>
-			Enable or disable logging in general (except warn and error), plus enable or disable debug logging.
+			Tells whether a material shall be created per smoothing group.
 		</p>
 
 
-		<h3>[method:null setModelName] ( [param:String modelName] )</h3>
+		<h3>[method:OBJLoader2 setUseOAsMesh] ( [param:boolean useOAsMesh] )</h3>
 		<p>
-			[page:String modelName]
+			[page:boolean useOAsMesh]
 		</p>
 		<p>
-			Set the name of the model.
+			Usually 'o' is meta-information and does not result in creation of new meshes, but mesh creation on occurrence of "o" can be enforced.
 		</p>
 
 
-		<h3>[method:null setPath] ( [param:String path] )</h3>
+		<h3>[method:OBJLoader2 setUseIndices]( [param:Boolean useIndices] )</h3>
 		<p>
-			[page:String path] - URL
+			[page:Boolean useIndices]
 		</p>
 		<p>
-			The URL of the base path.
+			Instructs loaders to create indexed [page:BufferGeometry].
 		</p>
 
 
-		<h3>[method:null setResourcePath] ( [param:String resourcePath] )</h3>
+		<h3>[method:OBJLoader2 setDisregardNormals]( [param:Boolean disregardNormals] )</h3>
 		<p>
-			[page:String resourcePath] - URL
+			[page:Boolean disregardNormals]
 		</p>
 		<p>
-			Allows to specify resourcePath for dependencies of specified resource.
+			Tells whether normals should be completely disregarded and regenerated.
 		</p>
 
 
-		<h3>[method:null setStreamMeshesTo] ( [param:Object3D streamMeshesTo] )</h3>
+		<h3>[method:OBJLoader2 setModelName] ( [param:String modelName] )</h3>
+		<p>
+			[page:String modelName]
+		</p>
 		<p>
-			[page:Object3D streamMeshesTo] - Object already attached to scenegraph where new meshes will be attached to
+			Set the name of the model.
+		</p>
+
+
+		<h3>[method:OBJLoader2 setBaseObject3d] ( [param:Object3d baseObject3d] )</h3>
+		<p>
+			[page:Object3D baseObject3d - Object already attached to scenegraph where new meshes will be attached to
 		</p>
 		<p>
 			Set the node where the loaded objects will be attached directly.
 		</p>
 
 
-		<h3>[method:null setMaterials] ( Array of [param:Material materials] )</h3>
+		<h3>[method:OBJLoader2 setMaterials] ( [param:Object materials] )</h3>
 		<p>
-			Array of [page:Material materials] - Array of [page:Material Materials]
+			[page:Object materials] -  materials Object with named [page:Material Materials]
 		</p>
 		<p>
-			Set materials loaded by MTLLoader or any other supplier of an Array of [page:Material Materials].
+			Add materials as associated array.
 		</p>
 
 
-		<h3>[method:null setUseIndices]( [param:Boolean useIndices] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnLoad] ( [param:Function onLoad] )</h3>
 		<p>
-			[page:Boolean useIndices]
+			[page:Function onLoad]
 		</p>
 		<p>
-			Instructs loaders to create indexed [page:BufferGeometry].
+			Register a function that is called when parsing was completed.
 		</p>
 
 
-		<h3>[method:null setDisregardNormals]( [param:Boolean disregardNormals] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnAssetAvailable] ( [param:Function onAssetAvailable] )</h3>
 		<p>
-			[page:Boolean disregardNormals]
+			[page:Function onAssetAvailable]
 		</p>
 		<p>
-			Tells whether normals should be completely disregarded and regenerated.
+			Register a function that is called once an asset (mesh/material) becomes available.
 		</p>
 
 
-		<h3>[method:null setMaterialPerSmoothingGroup] ( [param:boolean materialPerSmoothingGroup] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnProgress] ( [param:Function onProgress] )</h3>
 		<p>
-			[page:boolean materialPerSmoothingGroup]
+			[page:Function onProgress]
 		</p>
 		<p>
-			Tells whether a material shall be created per smoothing group.
+			Register a function that is used to report overall processing progress.
 		</p>
 
 
-		<h3>[method:null onProgress]( [param:String type], [param:String text], [param:Number numericalValue] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnError] ( [param:Function onError] )</h3>
 		<p>
-			[page:String type] - The type of event<br>
-			[page:String text] - Textual description of the event<br>
-			[page:Number numericalValue] - Numerical value describing the progress
+			[page:Function onError]
 		</p>
 		<p>
-			Announce feedback which is give to the registered [page:LoaderSupport.Callbacks].
+			Register an error handler function that is called if errors occur. It can decide to just log or to throw an exception.
 		</p>
 
 
-		<h3>[method:null loadMtl]( [param:String url], [param:Object content], [param:Function callbackOnLoad], [param:String crossOrigin], [param:Object materialOptions]) </h3>
+		<h3>[method:OBJLoader2 setCallbackOnMeshAlter] ( [param:Function onMeshAlter] )</h3>
 		<p>
-			[page:String url] - URL to the file<br>
-			[page:Object content] - The file content as arraybuffer or text<br>
-			[page:Function onLoad] - Callback to be called after successful load<br>
-			[page:Function onProgress] - (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which 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 the error as an argument.<br>
-			[page:String crossOrigin] - (optional) CORS value<br>
-			[page:Function materialOptions] - (optional) Set material loading options for MTLLoader
+			[page:Function onMeshAlter]
 		</p>
 		<p>
-			Utility method for loading an mtl file according resource description. Provide url or content.
+			Register a function that is called once a single mesh is available and it could be altered by the supplied function.
 		</p>
 
 

+ 109 - 0
docs/examples/en/loaders/OBJLoader2Parallel.html

@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">A loader for loading a <em>.obj</em> resource.<br />
+			The <a href="https://en.wikipedia.org/wiki/Wavefront_.obj_file">OBJ file format</a> is a simple data-format
+			that represents 3D geometry in a human readable format as, the position of each vertex, the UV position of
+			each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of
+			vertices, and texture vertices.
+		</p>
+
+		<h2>Examples</h2>
+
+		<code>
+		// instantiate the loader
+		let objLoader2Parallel = new OBJLoader2Parallel();
+
+		// define where to attach the data
+		let local = new THREE.Object3D();
+
+		// function called on successful completion of parsing
+		function callbackOnLoad( object3d, message ) {
+			local.add( object3d );
+		}
+
+		// load a resource from provided URL in parallel to Main
+		objLoader2Parallel.load( 'models/obj/walt/WaltHead.obj', callbackOnLoad, null, null, null );
+		</code>
+
+		[example:webgl_loader_obj2_options] - Example for multiple use-cases (parse and load, sync (see [page:OBJLoader2]) or in parallel to main)<br>
+
+
+		<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].<br>
+		</p>
+		<p>
+			Creates a new [name]. Use it to load OBJ data from files or to parse OBJ data from arraybuffer.
+			It extends [page:OBJLoader2]  with the capability to run the parser in a web worker.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:OBJLoader2] class for common properties.</p>
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:OBJLoader2] class for common methods. </p>
+
+
+		<h3>[method:Object3D parse]</h3>
+		<p>See [page:OBJLoader2.parse].<br>
+			The callback [page:OBJLoader2.setCallbackOnLoad OBJLoader2.onLoad] needs to be set to be able to receive the content if used in parallel mode.
+			Fallback is possible via [page:OBJLoader2Parallel.setExecuteParallel].
+		</p>
+
+
+		<h3>[method:null load]</h3>
+		<p>See [page:OBJLoader2.load].</p>
+
+
+		<h3>[method:OBJLoader2Parallel setExecuteParallel] ( [param:boolean executeParallel] )</h3>
+		<p>
+			[page:boolean executeParallel] - True or False
+		</p>
+		<p>
+			Execution of parse in parallel via Worker is default, but synchronous [page:OBJLoader2] parsing can be enforced via false here.
+		</p>
+
+
+		<h3>[method:OBJLoader2Parallel setPreferJsmWorker] ( [param:boolean preferJsmWorker] )</h3>
+		<p>
+			[page:boolean preferJsmWorker] - True or False
+		</p>
+		<p>
+			Set whether jsm modules in workers should be used. This requires browser support which is currently only experimental.
+		</p>
+
+
+		<h3>[method:WorkerExecutionSupport getWorkerExecutionSupport] ()</h3>
+		<p>
+			Allow to get hold of [page:WorkerExecutionSupport] for configuration purposes.
+		</p>
+
+
+		<h3>[method:CodeBuilderInstructions buildWorkerCode] ()</h3>
+		<p>
+			Provide instructions on what is to be contained in the worker.
+		</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/OBJLoader2Parallel.js examples/jsm/loaders/OBJLoader2Parallel.js]
+		</p>
+	</body>
+</html>

+ 3 - 8
docs/examples/en/loaders/PCDLoader.html

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
 
 		<h1>[name]</h1>
 
@@ -62,6 +63,7 @@
 		</p>
 
 		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
 
 		<h3>[page:Boolean littleEndian]</h3>
 		<p>
@@ -69,6 +71,7 @@
 		</p>
 
 		<h2>Methods</h2>
+		<p>See the base [page:Loader] class for common methods.</p>
 
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -93,14 +96,6 @@
 		The object is converted to [page:Points] with a [page:BufferGeometry] and a [page:PointsMaterial].
 		</p>
 
-		<h3>[method:PCDLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 3 - 9
docs/examples/en/loaders/PDBLoader.html

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
 
 		<h1>[name]</h1>
 
@@ -64,9 +65,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -87,14 +89,6 @@
 		Parse a <em>pdb</em> text and return a <em>JSON</em> structure.<br />
 		</p>
 
-		<h3>[method:PDBLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 3 - 15
docs/examples/en/loaders/PRWMLoader.html

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
 
 		<h1>[name]</h1>
 
@@ -65,9 +66,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -94,25 +96,11 @@
 		Return true if the endianness of the platform is Big Endian, false otherwise.
 		</p>
 
-		<h3>[method:PRWMLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
 		</p>
 
-		<h2>Additional notes</h2>
-
-		<p>
-		This loader is additionally available on npm as <a href="https://www.npmjs.com/package/three-prwm-loader">three-prwm-loader</a>.
-		</p>
-
 	</body>
 </html>

+ 3 - 9
docs/examples/en/loaders/SVGLoader.html

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
 
 		<h1>[name]</h1>
 
@@ -85,9 +86,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -100,14 +102,6 @@
 		Begin loading from url and call onLoad with the response content.
 		</p>
 
-		<h3>[method:SVGLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 6 - 9
docs/examples/en/loaders/TGALoader.html

@@ -8,6 +8,8 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc">A loader for loading a <em>.tga</em> resource. <br />
@@ -50,7 +52,7 @@
 		} );
 		</code>
 
-		[example:webgl_materials_texture_tga]
+		[example:webgl_loader_texture_tga]
 
 		<h2>Constructor</h2>
 
@@ -62,8 +64,11 @@
 		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:DataTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -76,14 +81,6 @@
 		Begin loading from url and pass the loaded [page:DataTexture texture] to onLoad. The [page:DataTexture texture] is also directly returned for immediate use (but may not be fully loaded).
 		</p>
 
-		<h3>[method:TGALoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 89 - 0
docs/examples/zh/controls/DeviceOrientationControls.html

@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Can be used to orient the camera based on the mobile device's orientation.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_deviceorientation misc / controls / deviceorientation ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object] )</h3>
+		<p>
+			<p>
+				[page:Camera object]: The camera to be controlled.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Number alphaOffset]</h3>
+		<p>
+			The alpha offset in radians. Default is *0*.
+		</p>
+
+		<h3>[property:Object deviceOrientation]</h3>
+		<p>
+			The current *deviceorientation* event object.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera to be controlled.
+		</p>
+
+		<h3>[property:Number screenOrientation]</h3>
+		<p>
+			The orientation in degrees (in 90-degree increments) of the viewport relative to the device's natural orientation. Default is *0*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null connect] ()</h3>
+		<p>
+			Adds the event listeners of the controls and enables it.
+		</p>
+
+		<h3>[method:null disconnect] ()</h3>
+		<p>
+			Removes the event listeners of the controls and disables it.
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null update] ()</h3>
+		<p>
+			Updates the controls. Usually called in the animation loop.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DeviceOrientationControls.js examples/js/controls/DeviceOrientationControls.js]
+		</p>
+	</body>
+</html>

+ 119 - 0
docs/examples/zh/controls/DragControls.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:EventDispatcher] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		This class can be used to provide a drag'n'drop interaction.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_drag misc / controls / drag ]</p>
+
+		<code>
+var controls = new THREE.DragControls( objects, camera, renderer.domElement );
+
+// add event listener to highlight dragged objects
+
+controls.addEventListener( 'dragstart', function ( event ) {
+
+	event.object.material.emissive.set( 0xaaaaaa );
+
+} );
+
+controls.addEventListener( 'dragend', function ( event ) {
+
+	event.object.material.emissive.set( 0x000000 );
+
+} );
+
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Array objects], [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Array objects]: An array of draggable 3D objects.
+			</p>
+			<p>
+			[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>dragstart</h3>
+		<p>
+			Fires when the user starts to drag a 3D object.
+		</p>
+
+		<h3>drag</h3>
+		<p>
+			Fires when the user drags a 3D object.
+		</p>
+
+		<h3>dragend</h3>
+		<p>
+			Fires when the user has finished dragging a 3D object.
+		</p>
+
+		<h3>hoveron</h3>
+		<p>
+			Fires when the pointer is moved onto a 3D object, or onto one of its children.
+		</p>
+
+		<h3>hoveroff</h3>
+		<p>
+			Fires when the pointer is moved out of a 3D object.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:EventDispatcher] class for common methods.</p>
+
+		<h3>[method:null activate] ()</h3>
+		<p>
+			Adds the event listeners of the controls.
+		</p>
+
+		<h3>[method:null deactivate] ()</h3>
+		<p>
+			Removes the event listeners of the controls.
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DragControls.js examples/js/controls/DragControls.js]
+		</p>
+	</body>
+</html>

+ 165 - 0
docs/examples/zh/controls/FirstPersonControls.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			This class is an alternative implementation of [page:FlyControls].
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:webgl_geometry_terrain webgl / geometry / terrain ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera object]: The camera to be controlled.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean activeLook]</h3>
+		<p>
+			Whether or not it's possible to look around. Default is *true*.
+		</p>
+
+		<h3>[property:Boolean autoForward]</h3>
+		<p>
+			Whether or not the camera is automatically moved forward. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean constrainVertical]</h3>
+		<p>
+			Whether or not looking around is vertically constrained by [[page:.verticalMin], [page:.verticalMax]]. Default is *false*.
+		</p>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled. Default is *true*.
+		</p>
+
+		<h3>[property:Number heightCoef]</h3>
+		<p>
+			Determines how much faster the camera moves when it's y-component is near [page:.heightMax]. Default is *1*.
+		</p>
+
+		<h3>[property:Number heightMax]</h3>
+		<p>
+			Upper camera height limit used for movement speed adjusment. Default is *1*.
+		</p>
+
+		<h3>[property:Number heightMin]</h3>
+		<p>
+			Lower camera height limit used for movement speed adjusment. Default is *0*.
+		</p>
+
+		<h3>[property:Boolean heightSpeed]</h3>
+		<p>
+			Whether or not the camera's height influences the forward movement speed. Default is *false*.
+			Use the properties [page:.heightCoef], [page:.heightMin] and [page:.heightMax] for configuration.
+		</p>
+
+		<h3>[property:Boolean lookVertical]</h3>
+		<p>
+			Whether or not it's possible to vertically look around. Default is *true*.
+		</p>
+
+		<h3>[property:Number lookSpeed]</h3>
+		<p>
+			The look around speed. Default is *0.005*.
+		</p>
+
+		<h3>[property:Boolean mouseDragOn]</h3>
+		<p>
+			Whether or not the mouse is pressed down. Read-only property.
+		</p>
+
+		<h3>[property:Number movementSpeed]</h3>
+		<p>
+			The movement speed. Default is *1*.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera to be controlled.
+		</p>
+
+		<h3>[property:Number verticalMax]</h3>
+		<p>
+			How far you can vertically look around, upper limit. Range is 0 to Math.PI radians. Default is *Math.PI*.
+		</p>
+
+		<h3>[property:Number verticalMin]</h3>
+		<p>
+			How far you can vertically look around, lower limit. Range is 0 to Math.PI radians. Default is *0*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null handleResize] ()</h3>
+		<p>
+			Should be called if the application window is resized.
+		</p>
+
+		<h3>[method:FirstPersonControls lookAt]( [param:Vector3 vector] )<br />
+		[method:FirstPersonControls lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			<p>
+				<p>
+					vector - A vector representing the target position.
+				</p>
+				<p>
+					Optionally, the x, y, z components of the world space position.
+				</p>
+			</p>
+			<p>
+				Ensures the controls orient the camera towards the defined target position.
+			</p>
+		</p>
+
+		<h3>[method:null update] ( [param:Number delta] )</h3>
+		<p>
+			<p>
+				[page:Number delta]: Time delta value.
+			</p>
+			<p>
+				Updates the controls. Usually called in the animation loop.
+			</p>
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FirstPersonControls.js examples/js/controls/FirstPersonControls.js]
+		</p>
+	</body>
+</html>

+ 94 - 0
docs/examples/zh/controls/FlyControls.html

@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] enables a navigation similar to fly modes in DCC tools like Blender. You can arbitrarily transform the camera in
+			3D space without any limitations (e.g. focus on a specific target).
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_fly misc / controls / fly ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera object]: The camera to be controlled.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean autoForward]</h3>
+		<p>
+			If set to *true*, the camera automatically moves forward (and does not stop) when initially translated. Default is *false*.
+		</p>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Boolean dragToLook]</h3>
+		<p>
+			If set to *true*, you can only look around by performing a drag interaction. Default is *false*.
+		</p>
+
+		<h3>[property:Number movementSpeed]</h3>
+		<p>
+			The movement speed. Default is *1*.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera to be controlled.
+		</p>
+
+		<h3>[property:Number rollSpeed]</h3>
+		<p>
+			The rotation speed. Default is *0.005*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null update] ( [param:Number delta] )</h3>
+		<p>
+			<p>
+				[page:Number delta]: Time delta value.
+			</p>
+			<p>
+				Updates the controls. Usually called in the animation loop.
+			</p>
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FlyControls.js examples/js/controls/FlyControls.js]
+		</p>
+	</body>
+</html>

+ 2 - 3
docs/examples/zh/controls/OrbitControls.html

@@ -56,8 +56,7 @@ function animate() {
 		<p>
 			[page:Camera object]: (必须)将要被控制的相机。该相机不允许是其他任何对象的子级,除非该对象是场景自身。<br><br>
 
-			[page:HTMLDOMElement domElement]: (可选)用于事件监听的HTML元素,其默认值为整个文档,
-			但是如果你只希望在特定的元素上(例如Canvas上)进行控制,在这里进行指定即可。
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
 		</p>
 
 
@@ -85,7 +84,7 @@ function animate() {
 		<h3>[property:HTMLDOMElement domElement]</h3>
 		<p>
 			用于监听鼠标事件或触摸事件的HTMLDOMElement(DOM元素)。该值必须在构造函数中进行传入;
-			在此更改它将不会设置新的事件监听器。默认值是整个文档。
+			在此更改它将不会设置新的事件监听器
 		</p>
 
 		<h3>[property:Boolean enabled]</h3>

+ 149 - 0
docs/examples/zh/controls/PointerLockControls.html

@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:EventDispatcher] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		The implementation of this class is based on the [link:https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_API Pointer Lock API].
+		[name] is a perfect choice for first person 3D games.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_pointerlock misc / controls / pointerlock ]</p>
+
+		<code>
+var controls = new PointerLockControls( camera, document.body );
+
+// add event listener to show/hide a UI (e.g. the game's menu)
+
+controls.addEventListener( 'lock', function () {
+
+	menu.style.display = 'none';
+
+} );
+
+controls.addEventListener( 'unlock', function () {
+
+	menu.style.display = 'block';
+
+} );
+
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+			[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires when the user moves the mouse.
+		</p>
+
+		<h3>lock</h3>
+		<p>
+			Fires when the pointer lock status is "locked" (in other words: the mouse is captured).
+		</p>
+
+		<h3>unlock</h3>
+		<p>
+			Fires when the pointer lock status is "unlocked" (in other words: the mouse is not captured anymore).
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+
+		<h3>[property:Boolean isLocked]</h3>
+		<p>
+			Whether or not the controls are locked.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:EventDispatcher] class for common methods.</p>
+
+		<h3>[method:null connect] ()</h3>
+		<p>
+			Adds the event listeners of the controls.
+		</p>
+
+		<h3>[method:null disconnect] ()</h3>
+		<p>
+			Removes the event listeners of the controls.
+		</p>
+
+		<h3>[method:Vector3 getDirection] ( [param:Vector3 target] )</h3>
+		<p>
+			<p>
+				[page:Vector3 target]: The target vector.
+			</p>
+			<p>
+				Returns the look direction of the camera.
+			</p>
+		</p>
+
+		<h3>[method:null lock] ()</h3>
+		<p>
+			Activates the pointer lock.
+		</p>
+
+		<h3>[method:null moveForward] ( [param:Number distance] )</h3>
+		<p>
+			<p>
+				[page:Number distance]: The signed distance.
+			</p>
+			<p>
+				Moves the camera forward parallel to the xz-plane. Assumes camera.up is y-up.
+			</p>
+		</p>
+
+		<h3>[method:null moveRight] ( [param:Number distance] )</h3>
+		<p>
+			<p>
+				[page:Number distance]: The signed distance.
+			</p>
+			<p>
+				Moves the camera sidewards parallel to the xz-plane.
+			</p>
+		</p>
+
+		<h3>[method:null unlock] ()</h3>
+		<p>
+			Exits the pointer lock.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/PointerLockControls.js examples/js/controls/PointerLockControls.js]
+		</p>
+	</body>
+</html>

+ 207 - 0
docs/examples/zh/controls/TrackballControls.html

@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:EventDispatcher] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			<p>
+				[name] is similar to [page:OrbitControls]. However, it does not maintain a constant camera [page:Object3D.up up] vector.
+				That means if the camera orbits over the “north” and “south” poles, it does not flip to stay "right side up".
+			</p>
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_trackball misc / controls / trackball ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires when the camera has been transformed by the controls.
+		</p>
+
+		<h3>start</h3>
+		<p>
+			Fires when an interaction (e.g. touch) was initiated.
+		</p>
+
+		<h3>end</h3>
+		<p>
+			Fires when an interaction has finished.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Number dynamicDampingFactor]</h3>
+		<p>
+			Defines the intensity of damping. Only considered if [page:.staticMoving staticMoving] is set to *false*. Default is *0.2*.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:Array keys]</h3>
+		<p>
+			This array holds keycodes for controlling interactions.
+			<ul>
+				<li>When the first defined key is pressed, all mouse interactions (left, middle, right) performs orbiting.</li>
+				<li>When the second defined key is pressed, all mouse interactions (left, middle, right) performs zooming.</li>
+				<li>When the third defined key is pressed, all mouse interactions (left, middle, right) performs panning.</li>
+			</ul>
+			Default is *65, 83, 68* which represents A, S, D.
+		</p>
+
+		<h3>[property:Number maxDistance]</h3>
+		<p>
+			 How far you can zoom in. Default is *Infinity*.
+		</p>
+
+		<h3>[property:Number minDistance]</h3>
+		<p>
+			 How far you can zoom in. Default is *0*.
+		</p>
+
+		<h3>
+			[property:Object mouseButtons]</h3>
+		<p>
+			This object contains references to the mouse actions used by the controls.
+			<ul>
+				<li>.LEFT is assinged with *THREE.MOUSE.ROTATE*</li>
+				<li>.MIDDLE is assinged with *THREE.MOUSE.ZOOM*</li>
+				<li>.RIGHT is assinged with *THREE.MOUSE.PAN*</li>
+			</ul>
+		</p>
+
+		<h3>[property:Boolean noPan]</h3>
+		<p>
+			Whether or not panning is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean noRotate]</h3>
+		<p>
+			Whether or not rotation is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean noZoom]</h3>
+		<p>
+			Whether or not zooming is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera being controlled.
+		</p>
+
+		<h3>[property:Number panSpeed]</h3>
+		<p>
+			The zoom speed. Default is *0.3*.
+		</p>
+
+		<h3>[property:Number rotateSpeed]</h3>
+		<p>
+			The rotation speed. Default is *1.0*.
+		</p>
+
+		<h3>[property:Object screen]</h3>
+		<p>
+			Represents the properties of the screen. Automatically set when [page:.handleResize handleResize]() is called.
+			<ul>
+				<li>left: Represents the offset in pixels to the screen's left boundary.</li>
+				<li>top: Represents the offset in pixels to the screen's top boundary.</li>
+				<li>width: Represents the screen width in pixels.</li>
+				<li>height: Represents the screen height in pixels.</li>
+			</ul>
+		</p>
+
+		<h3>[property:Boolean staticMoving]</h3>
+		<p>
+			Whether or not damping is disabled. Default is *false*.
+		</p>
+
+		<h3>[property:Number zoomSpeed]</h3>
+		<p>
+			The zoom speed. Default is *1.2*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null checkDistances] ()</h3>
+		<p>
+			Ensures the controls stay in the range [minDistance, maxDistance]. Called by [page:.update update]().
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:null handleResize] ()</h3>
+		<p>
+			Should be called if the application window is resized.
+		</p>
+
+		<h3>[method:null panCamera] ()</h3>
+		<p>
+			Performs panning if necessary. Called by [page:.update update]().
+		</p>
+
+		<h3>[method:null reset] ()</h3>
+		<p>
+			Resets the controls to its initial state.
+		</p>
+
+		<h3>[method:null rotateCamera] ()</h3>
+		<p>
+			Rotates the camera if necessary. Called by [page:.update update]().
+		</p>
+
+		<h3>[method:null update] ()</h3>
+		<p>
+			Updates the controls. Usually called in the animation loop.
+		</p>
+
+		<h3>[method:null zoomCamera] ()</h3>
+		<p>
+			Performs zooming if necessary. Called by [page:.update update]().
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TrackballControls.js examples/js/controls/TrackballControls.js]
+		</p>
+	</body>
+</html>

+ 224 - 0
docs/examples/zh/controls/TransformControls.html

@@ -0,0 +1,224 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			This class can be used to transform objects in 3D space by adapting a similar interaction model of DCC tools like Blender.
+			Unlike other controls, it is not intended to transform the scene's camera.
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_transform misc / controls / transform ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera camera], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			<p>
+				[page:Camera camera]: The camera of the rendered scene.
+			</p>
+			<p>
+				[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+			</p>
+			<p>
+				Creates a new instance of [name].
+			</p>
+		</p>
+
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires if any type of change (object or property change) is performed. Property changes
+			are separate events you can add event listeners to. The event type is "propertyname-changed".
+		</p>
+
+		<h3>mouseDown</h3>
+		<p>
+			Fires if a pointer (mouse/touch) becomes active.
+		</p>
+
+		<h3>mouseUp</h3>
+		<p>
+			Fires if a pointer (mouse/touch) is no longer active.
+		</p>
+
+		<h3>objectChange</h3>
+		<p>
+			Fires if the controlled 3D object is changed.
+		</p>
+
+		<h2>Properties</h2>
+
+		<p>See the base [page:Object3D] class for common properties.</p>
+
+		<h3>[property:String axis]</h3>
+		<p>
+			The current transformation axis.
+		</p>
+
+		<h3>[property:Camera camera]</h3>
+		<p>
+			The camera of the rendered scene.
+		</p>
+
+		<h3>[property:HTMLDOMElement domElement]</h3>
+		<p>
+			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
+			not set up new event listeners.
+		</p>
+
+		<h3>[property:Boolean dragging]</h3>
+		<p>
+			Whether or not dragging is currently performed. Read-only property.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:String mode]</h3>
+		<p>
+			The current transformation mode. Possible values are "translate", "rotate" and "scale". Default is *translate*.
+		</p>
+
+		<h3>[property:Object3D object]</h3>
+		<p>
+			The 3D object being controlled.
+		</p>
+
+		<h3>[property:Number rotationSnap]</h3>
+		<p>
+			By default, 3D objects are continously rotated. If you set this property to a numeric value (radians), you can define in which
+			steps the 3D object should be rotated. Deault is *null*.
+		</p>
+
+		<h3>[property:Boolean showX]</h3>
+		<p>
+			Whether or not the x-axis helper should be visible. Default is *true*.
+		</p>
+
+		<h3>[property:Boolean showY]</h3>
+		<p>
+			Whether or not the y-axis helper should be visible. Default is *true*.
+		</p>
+
+		<h3>[property:Boolean showZ]</h3>
+		<p>
+			Whether or not the z-axis helper should be visible. Default is *true*.
+		</p>
+
+		<h3>[property:Number size]</h3>
+		<p>
+			The size of the helper UI (axes/planes). Default is *1*.
+		</p>
+
+		<h3>[property:String space]</h3>
+		<p>
+			Defines in which coordinate space transformations should be performed. Possible values are "world" and "local". Default is *world*.
+		</p>
+
+		<h3>[property:Number translationSnap]</h3>
+		<p>
+			By default, 3D objects are continously translated. If you set this property to a numeric value (world units), you can define in which
+			steps the 3D object should be translated. Deault is *null*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:Object3D] class for common methods.</p>
+
+		<h3>[method:TransformControls attach] ( [param:Object3D object] )</h3>
+		<p>
+			<p>
+				[page:Object3D object]: The 3D object that should be transformed.
+			</p>
+			<p>
+				Sets the 3D object that should be transformed and ensures the controls UI is visible.
+			</p>
+		</p>
+
+		<h3>[method:TransformControls detach] ()</h3>
+		<p>
+			Removes the current 3D object from the controls and makes the helper UI is invisible.
+		</p>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Should be called if the controls is no longer required.
+		</p>
+
+		<h3>[method:String getMode] ()</h3>
+		<p>
+			Returns the transformation mode.
+		</p>
+
+		<h3>[method:null setMode] ( [param:String mode] )</h3>
+		<p>
+			<p>
+				[page:String mode]: The transformation mode.
+			</p>
+			<p>
+				Sets the transformation mode.
+			</p>
+		</p>
+
+		<h3>[method:null setRotationSnap] ( [param:Number rotationSnap] )</h3>
+		<p>
+			<p>
+				[page:Number rotationSnap]: The rotation snap.
+			</p>
+			<p>
+				Sets the rotation snap.
+			</p>
+		</p>
+
+		<h3>[method:null setSize] ( [param:Number size] )</h3>
+		<p>
+			<p>
+				[page:Number size]: The size of the helper UI.
+			</p>
+			<p>
+				Sets the size of the helper UI.
+			</p>
+		</p>
+
+		<h3>[method:null setSpace] ( [param:String space] )</h3>
+		<p>
+			<p>
+				[page:String space]: The coordinate space in which transformations are applied.
+			</p>
+			<p>
+				Sets the coordinate space in which transformations are applied.
+			</p>
+		</p>
+
+		<h3>[method:null setTranslationSnap] ( [param:Number translationSnap] )</h3>
+		<p>
+			<p>
+				[page:Number translationSnap]: The translation snap.
+			</p>
+			<p>
+				Sets the translation snap.
+			</p>
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TransformControls.js examples/js/controls/TransformControls.js]
+		</p>
+	</body>
+</html>

+ 1 - 0
docs/examples/zh/exporters/GLTFExporter.html

@@ -94,6 +94,7 @@
 			<li>truncateDrawRange - bool. Export just the attributes within the drawRange, if defined, instead of exporting the whole array. Default is true.</li>
 			<li>binary - bool. Export in binary (.glb) format, returning an ArrayBuffer. Default is false.</li>
 			<li>embedImages - bool. Export with images embedded into the glTF asset. Default is true.</li>
+			<li>maxTextureSize - int. Restricts the image maximum size (both width and height) to the given value. This option works only if embedImages is true. Default is Infinity.</li>
 			<li>animations - Array<[page:AnimationClip AnimationClip]>. List of animations to be included in the export.</li>
 			<li>forceIndices - bool. Generate indices for non-index geometry and export with them. Default is false.</li>
 			<li>forcePowerOfTwoTextures - bool. Export with images resized to POT size. This option works only if embedImages is true. Default is false.</li>

+ 0 - 101
docs/examples/zh/loaders/BabylonLoader.html

@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-
-		<p class="desc">A loader for loading a <em>.babylon</em> resource. <br />
-		The <a href="https://doc.babylonjs.com/generals/file_format_map_(.babylon)"> .babylon </a> file format used by
-		<a href="https://www.babylonjs.com/">Babylon.js</a>.
-		</p>
-
-		<h2>Example</h2>
-
-		<code>
-		// instantiate a loader
-		var loader = new THREE.BabylonLoader();
-
-		// load a Babylon resource
-		loader.load(
-			// resource URL
-			'models/babylon/skull.babylon',
-			// called when resource is loaded
-			function ( object ) {
-
-				scene.add( object );
-
-			},
-			// called when loading is in progress
-			function ( xhr ) {
-
-				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
-
-			},
-			// called when loading has errors
-			function ( xhr ) {
-
-				console.log( 'An error happened' );
-
-			}
-		);
-		</code>
-
-		[example:webgl_loader_babylon]
-
-		<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>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null 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>.babylon</em> file.<br />
-		[page:function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives the loaded [page:Object3D] as an argument.<br />
-		[page:function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which 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 the error as an argument.<br />
-		</p>
-		<p>
-		Begin loading from url and call onLoad with the parsed response content.
-		</p>
-
-		<h3>[method:Object3D parse]( [param:Object json] )</h3>
-		<p>
-		[page:Object json] — The <em>JSON</em> structure to parse.
-		</p>
-		<p>
-		Parse a <em>JSON</em> structure and return an [page:Object3D object] or a [page:Scene scene].<br />
-		Found objects are converted to [page:Mesh] with a [page:BufferGeometry] and a default [page:MeshPhongMaterial].<br />
-		Lights are parsed accordingly.
-		</p>
-
-		<h3>[method:BabylonLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the file.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BabylonLoader.js examples/js/loaders/BabylonLoader.js]
-		</p>
-	</body>
-</html>

+ 7 - 10
docs/examples/zh/loaders/BasisTextureLoader.html

@@ -9,6 +9,7 @@
 	</head>
 	<body>
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc">
@@ -57,8 +58,8 @@
 			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 DXT, ETC1, or
-			PVRTC1. Other output formats may be supported in the future.
+			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.
@@ -81,7 +82,11 @@
 		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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -103,14 +108,6 @@
 		the output format for the transcoder. Must be called before loading a texture.
 		</p>
 
-		<h3>[method:this setCrossOrigin]( [param:String crossOrigin] )</h3>
-		<p>
-		[page:String crossOrigin] — Options are '', 'anonymous', or 'use-credentials'. Default is 'anonymous'.
-		</p>
-		<p>
-		Sets options for CORS requests.
-		</p>
-
 		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
 		<p>
 		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.

+ 4 - 13
docs/examples/zh/loaders/DRACOLoader.html

@@ -87,7 +87,11 @@
 		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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -100,19 +104,6 @@
 		Begin loading from url and call the <em>onLoad</em> function with the decompressed geometry.
 		</p>
 
-		<h3>[method:this setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the <em>.drc</em> file.
-		</p>
-
-		<h3>[method:this setCrossOrigin]( [param:String value] )</h3>
-		<p>
-		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
-		</p>
-
 		<h3>[method:this setDecoderPath]( [param:String value] )</h3>
 		<p>
 		[page:String value] — Path to folder containing the JS and WASM decoder libraries.

+ 3 - 22
docs/examples/zh/loaders/GLTFLoader.html

@@ -9,6 +9,7 @@
 	</head>
 	<body>
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
@@ -161,9 +162,10 @@
 		</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:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
@@ -176,27 +178,6 @@
 		Begin loading from url and call the callback function with the parsed response content.
 		</p>
 
-		<h3>[method:GLTFLoader setPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path.
-		</p>
-		<p>
-		Set the base path for the .gltf/.glb file.
-		</p>
-
-		<h3>[method:GLTFLoader setResourcePath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Base path for loading additional resources e.g. textures and .bin data.
-		</p>
-		<p>
-		Set the base path for additional resources.
-		</p>
-
-		<h3>[method:null setCrossOrigin]( [param:String value] )</h3>
-		<p>
-		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
-		</p>
-
 		<h3>[method:null setDRACOLoader]( [param:DRACOLoader dracoLoader] )</h3>
 		<p>
 		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.

部分文件因文件數量過多而無法顯示