Browse Source

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

gogoend 5 years ago
parent
commit
111c53d2a0
100 changed files with 3664 additions and 2163 deletions
  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:
 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
 ##### Three.js version
 
 
 - [ ] Dev
 - [ ] Dev
-- [ ] r108
+- [ ] r109
 - [ ] ...
 - [ ] ...
 
 
 ##### Browser
 ##### Browser

File diff suppressed because it is too large
+ 278 - 250
build/three.js


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


File diff suppressed because it is too large
+ 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]).
 			This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
 		</p>
 		</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>
 		<h3>[method:null uncacheClip]([param:AnimationClip clip])</h3>
 
 
 		<p>
 		<p>

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

@@ -188,11 +188,26 @@
 		(whether playback should loop).
 		(whether playback should loop).
 		</p>
 		</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>
 		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
 		<p>
 		<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 />
 		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.
 		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>
 		</p>
 
 
 		<h3>[method:Audio setNodeSource]( audioNode )</h3>
 		<h3>[method:Audio setNodeSource]( audioNode )</h3>

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

@@ -11,13 +11,7 @@
 		<h1>Draw Mode Constants</h1>
 		<h1>Draw Mode Constants</h1>
 
 
 		<p class="desc">
 		<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>
 		</p>
 
 
 		<h2>Draw Modes</h2>
 		<h2>Draw Modes</h2>
@@ -26,7 +20,7 @@
 			THREE.TrianglesDrawMode
 			THREE.TrianglesDrawMode
 		</code>
 		</code>
 		<p>
 		<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 />
 			being interpreted as a separate triangle. <br />
 			If the number of vertices is not a multiple of 3, excess vertices are ignored.
 			If the number of vertices is not a multiple of 3, excess vertices are ignored.
 		</p>
 		</p>
@@ -56,15 +50,17 @@
 		<h2>Usage</h2>
 		<h2>Usage</h2>
 
 
 		<code>
 		<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 } );
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
 
 
@@ -74,8 +70,6 @@
 		scene.add( mesh );
 		scene.add( mesh );
 		</code>
 		</code>
 
 
-
-
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<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 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 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 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>
 		</p>
 
 
 		<h2>Tone Mapping</h2>
 		<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.
 		then this will count the number of such vectors stored.
 		</p>
 		</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>
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<p>
 		<p>
 			Used to check whether this or derived classes are BufferAttributes. Default is *true*.<br /><br />
 			Used to check whether this or derived classes are BufferAttributes. Default is *true*.<br /><br />
@@ -111,10 +101,16 @@
 			related to color).
 			related to color).
 		</p>
 		</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>
 		<h3>[property:Integer version]</h3>
 		<p>A version number, incremented every time the [page:BufferAttribute.needsUpdate needsUpdate] property is set to true.</p>
 		<p>A version number, incremented every time the [page:BufferAttribute.needsUpdate needsUpdate] property is set to true.</p>
 
 
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 		<h3>[method:BufferAttribute clone]() </h3>
 		<h3>[method:BufferAttribute clone]() </h3>
@@ -178,15 +174,8 @@
 		being a [page:TypedArray].
 		being a [page:TypedArray].
 		</p>
 		</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>
 		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
 		<p>Sets the x component of the vector at the given index.</p>
 		<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
 		// 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 material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		var mesh = new THREE.Mesh( geometry, material );
 		var mesh = new THREE.Mesh( geometry, material );
 		</code>
 		</code>
@@ -65,7 +65,7 @@
 		<h3>[property:Object attributes]</h3>
 		<h3>[property:Object attributes]</h3>
 		<p>
 		<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.
 		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>
 		</p>
 
 
 		<h3>[property:Box3 boundingBox]</h3>
 		<h3>[property:Box3 boundingBox]</h3>
@@ -165,9 +165,9 @@
 
 
 		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
 		<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>
 		<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
 		because an internal hashmap of [page:.attributes] is maintained to speed up iterating over
 		attributes.
 		attributes.
 		</p>
 		</p>
@@ -249,8 +249,8 @@
 		This will correct lighting on the geometry surfaces.
 		This will correct lighting on the geometry surfaces.
 		</p>
 		</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>
 		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>
 		<p>
 		<p>

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

@@ -44,11 +44,6 @@
 		Gives the total number of elements in the array.
 		Gives the total number of elements in the array.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-		Default is *false*.
-		</p>
-
 		<h3>[property:Object updateRange]</h3>
 		<h3>[property:Object updateRange]</h3>
 		<p>
 		<p>
 		Object containing offset and count.
 		Object containing offset and count.
@@ -79,17 +74,13 @@
 		Default is *false*. Setting this to true increments [page:InterleavedBuffer.version version].
 		Default is *false*. Setting this to true increments [page:InterleavedBuffer.version version].
 		</p>
 		</p>
 
 
-		<h2>Methods</h2>
-
-		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<h3>[property:Usage usage]</h3>
 		<p>
 		<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>
 		</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>
 		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
 		<p>
 		<p>
@@ -112,6 +103,9 @@
 			Creates a clone of this [name].
 			Creates a clone of this [name].
 		</p>
 		</p>
 
 
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

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

@@ -438,11 +438,18 @@
 		</p>
 		</p>
 
 
 		<h3>[method:null updateMatrix]()</h3>
 		<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>
 		<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>
 		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
 		<p>
 		<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>
 		<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>
 		<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 />
 			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.
 			[page:String resourcePath] — Set the base path for dependent resources like textures.
 		</p>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

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

@@ -23,7 +23,6 @@
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
 		<p>
 		<p>
-			[example:webgl_loader_babylon WebGL / loader / babylon]<br />
 			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_materials_reflectivity WebGL / materials / reflectivity]<br />
 			[example:webgl_materials_reflectivity WebGL / materials / reflectivity]<br />
@@ -160,14 +159,31 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:null setURLModifier]( [param:Function callback] )</h3>
+		<h3>[method:LoadingManager addHandler]( [param:Object regex], [param:Loader loader] )</h3>
 		<p>
 		<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>
 		</p>
 
 
 		<h3>[method:String resolveURL]( [param:String url] )</h3>
 		<h3>[method:String resolveURL]( [param:String url] )</h3>
@@ -178,6 +194,16 @@
 		URL modifier is set, returns the original URL.
 		URL modifier is set, returns the original URL.
 		</p>
 		</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 />
 		<br /><br />
 		<p>
 		<p>
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
 			<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.
 		This should be called by any loader using the manager when the loader ended loading an url.
 		</p>
 		</p>
 
 
-
 		<h3>[method:null itemError]( [param:String url] )</h3>
 		<h3>[method:null itemError]( [param:String url] )</h3>
 		<p>
 		<p>
 		[page:String url] — the loaded url<br /><br />
 		[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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<h3>[property:Float linewidth]</h3>
 		<p>
 		<p>
 			Controls line thickness. Default is *1*.<br /><br />
 			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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<h3>[property:Float linewidth]</h3>
 		<p>
 		<p>
 			Controls line thickness. Default is *1*.<br /><br />
 			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*.
 		Whether rendering this material has any effect on the stencil buffer. Default is *false*.
 		</p>
 		</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>
 		<p>
 		The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
 		The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
 		</p>
 		</p>
@@ -138,9 +143,9 @@
 		The value to use when performing stencil comparisons or stencil operations. Default is *0*.
 		The value to use when performing stencil comparisons or stencil operations. Default is *0*.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean stencilMask]</h3>
+		<h3>[property:Integer stencilFuncMask]</h3>
 		<p>
 		<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>
 		</p>
 
 
 		<h3>[property:Integer stencilFail]</h3>
 		<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.
 		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>
 		</p>
 
 
-		<h3>[property:Boolean stencilZFail]</h3>
+		<h3>[property:Integer stencilZFail]</h3>
 		<p>
 		<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.
 		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>
 		</p>
 
 
-		<h3>[property:Boolean stencilZPass]</h3>
+		<h3>[property:Integer stencilZPass]</h3>
 		<p>
 		<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.
 		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>
 		</p>
@@ -176,9 +181,6 @@
 			You should not change this, as it used internally for optimisation.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *true*.</p>
-
 		<h3>[property:String name]</h3>
 		<h3>[property:String name]</h3>
 		<p>Optional name of the object (doesn't need to be unique). Default is an empty string.</p>
 		<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
 		as transparent objects need special treatment and are rendered after
 		non-transparent objects. <br />
 		non-transparent objects. <br />
 		When set to true, the extent to which the material is transparent is
 		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*.
 		Default is *false*.
 		</p>
 		</p>
 
 
@@ -340,6 +342,9 @@
 		An optional callback that is executed immediately before the shader program is compiled.
 		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.
 		This function is called with the shader source code as a parameter. Useful for the modification of built-in materials.
 		</p>
 		</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>
 		<h3>[method:null setValues]( [param:object values] )</h3>
 		<p>
 		<p>

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

@@ -100,9 +100,6 @@
 		<h3>[property:Float lightMapIntensity]</h3>
 		<h3>[property:Float lightMapIntensity]</h3>
 		<p>Intensity of the baked light. Default is 1.</p>
 		<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>
 		<h3>[property:Texture map]</h3>
 		<p>The color map. Default is  null.</p>
 		<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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
 		<p>The color map. Default is  null.</p>
 		<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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
 		<p>The color map. Default is  null.</p>
 		<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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
-
 		<h3>[property:boolean morphNormals]</h3>
 		<h3>[property:boolean morphNormals]</h3>
 		<p>
 		<p>
 			Defines whether the material uses morphNormals. Set as true to pass morphNormal
 			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,
 		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>
 		and that mip maps have not been otherwise forcibly disabled.</p>
 		<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.
 		See this [link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example] for details.
 		</p>
 		</p>
 
 

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

@@ -65,6 +65,17 @@ scene.add( starField );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<p>See the base [page:Material] class for common properties.</p>
 		<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>
 		<h3>[property:Color color]</h3>
 		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
 		<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>
 		<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>
 		<h3>[property:Boolean isRawShaderMaterial]</h3>
 		<p>
 		<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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-
-
-
 		<h3>[property:Boolean lights]</h3>
 		<h3>[property:Boolean lights]</h3>
 		<p>
 		<p>
 		Defines whether this material uses lighting; true to pass uniform data related to lighting to this shader. Default is false.
 		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.
 			You should not change this, as it used internally for optimisation.
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *true*.</p>
-
 		<h3>[property:Boolean transparent]</h3>
 		<h3>[property:Boolean transparent]</h3>
 		<p>Defines whether this material is transparent. Default is *true*.</p>
 		<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>
 		<h2>Properties</h2>
 		<p>See the base [page:Material] class for common properties.</p>
 		<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>
 		<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>
 		<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>
 		<h3>[property:boolean fog]</h3>
 		<p>Whether or not this material affected by the scene's fog. Default is false</p>
 		<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>
 		<h3>[property:Texture map]</h3>
 		<p>The texture map. Default is null.</p>
 		<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 />
 		[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].
 		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>
 		</p>
-		
+
 		<h3>[method:Color convertLinearToGamma]( [param:Float gammaFactor] ) </h3>
 		<h3>[method:Color convertLinearToGamma]( [param:Float gammaFactor] ) </h3>
 		<p>
 		<p>
 		[page:Float gammaFactor] - (optional). Default is *2.0*.<br /><br />
 		[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).
 		Note that for X11 color names, multiple words such as Dark Orange become the string 'darkorange' (all lowercase).
 		</p>
 		</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>
 		<h3>[method:Color sub]( [param:Color color] ) </h3>
 		<p>
 		<p>
 		Subtracts the RGB components of the given color from the RGB components of this color.
 		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 />
 		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].
 		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>
 		</p>
 
 
 		<h3>[method:this makeBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )</h3>
 		<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>
 		<h3>[method:Float angleTo]( [param:Vector3 v] )</h3>
 		<p>
 		<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>
 		</p>
 
 
 		<h3>[method:this ceil]()</h3>
 		<h3>[method:this ceil]()</h3>
@@ -320,8 +320,8 @@ var d = a.distanceTo( b );
 		normal from this vector.
 		normal from this vector.
 		</p>
 		</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>
 		<h3>[method:this reflect]( [param:Vector3 normal] )</h3>
 		<p>
 		<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>
 		<h3>[property:Integer drawMode]</h3>
 		<p>
 		<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>
 		</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
 		// 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>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>
 		<h2>Source</h2>
 
 

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

@@ -65,7 +65,9 @@
 		Default is *true*.<br />
 		Default is *true*.<br />
 
 
 		[page:Boolean logarithmicDepthBuffer] -  whether to use a logarithmic depth buffer. It may
 		[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.
 		Default is *false*. See the [example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer] example.
 		</p>
 		</p>
 
 
@@ -186,6 +188,7 @@
 					<li>triangles</li>
 					<li>triangles</li>
 					<li>points</li>
 					<li>points</li>
 					<li>lines</li>
 					<li>lines</li>
+					<li>frame</li>
 				</ul>
 				</ul>
 			</li>
 			</li>
 			<li>programs
 			<li>programs
@@ -391,6 +394,9 @@
 		Returns the viewport.
 		Returns the viewport.
 		</p>
 		</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>
 		<h3>[method:null resetGLState]( )</h3>
 		<p>Reset the GL state to default. Called internally if the WebGL context is lost.</p>
 		<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]
 		// used the buffer to create a [name]
 
 
 		var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
 		var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
-		texture.needsUpdate = true
 		</code>
 		</code>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>

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

@@ -30,15 +30,15 @@
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
 		<div>[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]</div>
 		<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>
 		<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>
 		<p>
 		This defines how the texture is wrapped in the depth direction.<br />
 		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.
 		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>
 		<h3>[method:Audio setLoop]( [param:Boolean value] )</h3>
 		<p>
 		<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>
 		</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>
 		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
 		<p>
 		<p>
 		应用[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement]类型对象作为音源.<br />
 		应用[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>
 		<h3>[name]( [param:Number near], [param:Number far], [param:Number cubeResolution] )</h3>
 		<p>
 		<p>
 
 
-		near -- 剪切面的距离<br />
-		far -- 剪切面的距离<br />
+		near -- 剪切面的距离<br />
+		far -- 剪切面的距离<br />
 		cubeResolution -- 设置立方体边缘的长度
 		cubeResolution -- 设置立方体边缘的长度
 		</p>
 		</p>
 		<p>
 		<p>

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

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

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

@@ -52,16 +52,6 @@
 			若缓存存储三元组(例如顶点位置、法向量、颜色值),则该值应等于队列中三元组的个数。
 			若缓存存储三元组(例如顶点位置、法向量、颜色值),则该值应等于队列中三元组的个数。
 		</p>
 		</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>
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<p>
 		<p>
 			指示当前类或派生类是 BufferAttributes. 默认值为 *true*.<br /><br />
 			指示当前类或派生类是 BufferAttributes. 默认值为 *true*.<br /><br />
@@ -101,6 +91,13 @@
 			该值只可以被用于更新某些矢量数据(例如,颜色相关数据)。
 			该值只可以被用于更新某些矢量数据(例如,颜色相关数据)。
 		</p>
 		</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>
 		<h3>[property:Integer version]</h3>
 		<p>版本号,当 [page:BufferAttribute.needsUpdate needsUpdate] 被设置为 true 时,该值会自增。</p>
 		<p>版本号,当 [page:BufferAttribute.needsUpdate needsUpdate] 被设置为 true 时,该值会自增。</p>
 
 
@@ -158,15 +155,8 @@
 		特别的, 对将 [page:Array value] 转为  [page:TypedArray] 的要求详见上述链接。
 		特别的, 对将 [page:Array value] 转为  [page:TypedArray] 的要求详见上述链接。
 		</p>
 		</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>
 		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
 		<p>设置给定索引的矢量的第一维数据(设置 X 值)。</p>
 		<p>设置给定索引的矢量的第一维数据(设置 X 值)。</p>

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

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

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

@@ -44,11 +44,6 @@
 			类型化队列中,所有元素的数目。
 			类型化队列中,所有元素的数目。
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-			默认值为 *false*。
-		</p>
-
 		<h3>[property:Object updateRange]</h3>
 		<h3>[property:Object updateRange]</h3>
 		<p>
 		<p>
 			对象存储着需要更新的数据的偏移量和数量。
 			对象存储着需要更新的数据的偏移量和数量。
@@ -79,17 +74,13 @@
 			默认值为 *false*。该值被设置为 true 时,会导致 [page:InterleavedBuffer.version version] 增加。
 			默认值为 *false*。该值被设置为 true 时,会导致 [page:InterleavedBuffer.version version] 增加。
 		</p>
 		</p>
 
 
-		<h2>方法</h2>
-
-		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<h3>[property:Usage usage]</h3>
 		<p>
 		<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>
 		</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>
 		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
 		<p>
 		<p>
@@ -112,6 +103,9 @@
 			克隆当前 [name]。
 			克隆当前 [name]。
 		</p>
 		</p>
 
 
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
+
 		<h2>源代码</h2>
 		<h2>源代码</h2>
 
 
 		<p>
 		<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.
 			[page:String resourcePath] — Set the base path for dependent resources like textures.
 		</p>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

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

@@ -23,7 +23,6 @@
 		<h2>例子</h2>
 		<h2>例子</h2>
 
 
 		<p>
 		<p>
-			[example:webgl_loader_babylon WebGL / loader / babylon]<br />
 			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_fbx WebGL / loader / fbx]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
 			[example:webgl_materials_reflectivity WebGL / materials / reflectivity]<br />
 			[example:webgl_materials_reflectivity WebGL / materials / reflectivity]<br />
@@ -158,22 +157,49 @@
 
 
 		<h2>方法</h2>
 		<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>
 		<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>
 		</p>
 
 
 		<h3>[method:String resolveURL]( [param:String url] )</h3>
 		<h3>[method:String resolveURL]( [param:String url] )</h3>
 		<p>
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 		[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>
 		</p>
 
 
+
 		<br /><br />
 		<br /><br />
 		<p>
 		<p>
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
@@ -184,14 +210,14 @@
 		<p>
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 		[page:String url] — 所要加载的url<br /><br />
 
 
-           任何使用管理器的加载器都会调用此方法, 当加载器需要开始加载URL时。
+		任何使用管理器的加载器都会调用此方法, 当加载器需要开始加载URL时。
 		</p>
 		</p>
 
 
 		<h3>[method:null itemEnd]( [param:String url] )</h3>
 		<h3>[method:null itemEnd]( [param:String url] )</h3>
 		<p>
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 		[page:String url] — 所要加载的url<br /><br />
 
 
-            任何使用管理器的加载器都会调用此方法, 当加载器需要加载URL结束时。
+		任何使用管理器的加载器都会调用此方法, 当加载器需要加载URL结束时。
 		</p>
 		</p>
 
 
 
 
@@ -199,7 +225,7 @@
 		<p>
 		<p>
 		[page:String url] — 所要加载的url<br /><br />
 		[page:String url] — 所要加载的url<br /><br />
 
 
-            任何使用管理器的加载器都会调用此方法, 当加载器出现加载错误时。
+		任何使用管理器的加载器都会调用此方法, 当加载器出现加载错误时。
 		</p>
 		</p>
 
 
 		<h2>源</h2>
 		<h2>源</h2>

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

@@ -63,9 +63,6 @@ var material = new THREE.LineBasicMaterial( {
 			因为其通常用在内部优化,所以不应该更改该属性值。
 			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<h3>[property:Float linewidth]</h3>
 		<p> 控制线宽。默认值为 *1*。<br /><br />
 		<p> 控制线宽。默认值为 *1*。<br /><br />
 			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与
 			由于[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>
 		</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Float linewidth]</h3>
 		<h3>[property:Float linewidth]</h3>
 		<p>
 		<p>
 			控制线宽。默认值为 *1*。<br /><br />
 			控制线宽。默认值为 *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*.
 Whether rendering this material has any effect on the stencil buffer. Default is *false*.
 </p>
 </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>
 <p>
 The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
 The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
 </p>
 </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*.
 The value to use when performing stencil comparisons or stencil operations. Default is *0*.
 </p>
 </p>
 
 
-<h3>[property:Boolean stencilMask]</h3>
+<h3>[property:Integer stencilFuncMask]</h3>
 <p>
 <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>
 </p>
 
 
 <h3>[property:Integer stencilFail]</h3>
 <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.
 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>
 </p>
 
 
-<h3>[property:Boolean stencilZFail]</h3>
+<h3>[property:Integer stencilZFail]</h3>
 <p>
 <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.
 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>
 </p>
 
 
-<h3>[property:Boolean stencilZPass]</h3>
+<h3>[property:Integer stencilZPass]</h3>
 <p>
 <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.
 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>
 </p>
@@ -154,9 +159,6 @@ Which stencil operation to perform when the comparison function returns true and
     因为其通常用在内部优化,所以不应该更改该属性值。
     因为其通常用在内部优化,所以不应该更改该属性值。
 </p>
 </p>
 
 
-<h3>[property:Boolean lights]</h3>
-<p>材质是否受到光照的影响。默认为*true*。</p>
-
 <h3>[property:String name]</h3>
 <h3>[property:String name]</h3>
 <p>对象的可选名称(不必是唯一的)。默认值为空字符串。</p>
 <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>
 <h3>[method:null onBeforeCompile]( [param:Shader shader], [param:WebGLRenderer renderer] )</h3>
 <p> 在编译shader程序之前立即执行的可选回调。此函数使用shader源码作为参数。用于修改内置材质。
 <p> 在编译shader程序之前立即执行的可选回调。此函数使用shader源码作为参数。用于修改内置材质。
 </p>
 </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>
 <h3>[method:null setValues]( [param:object values] )</h3>
 <p> values -- 具有参数的容器。
 <p> values -- 具有参数的容器。

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

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

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

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

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

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

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

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

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

@@ -136,7 +136,7 @@
 			请确保将minFilter设置为其中一个MipMap选项,并且未强制禁用mip贴图。</p>
 			请确保将minFilter设置为其中一个MipMap选项,并且未强制禁用mip贴图。</p>
 		<p>
 		<p>
 			注意:MeshStandardMaterial 仅支持[link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps]。
 			注意: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]。
 			详细信息请参阅此示例[link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example]。
 		</p>
 		</p>
 
 

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

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

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

@@ -55,9 +55,6 @@ scene.add( sprite );
 		<h3>[property:boolean fog]</h3>
 		<h3>[property:boolean fog]</h3>
 		<p>材质是否受场景雾的影响。默认值为*false*。</p>
 		<p>材质是否受场景雾的影响。默认值为*false*。</p>
 
 
-		<h3>[property:Boolean lights]</h3>
-		<p>材质是否受到光照的影响。默认值为 *false*。</p>
-
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
 		<p>颜色贴图。默认为null。</p>
 		<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: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>
 		</p>
 
 
 		<h3>[method:this makeBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )</h3>
 		<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](绘图模式常量)来查看其所有可能的值。
 			请参阅draw mode [page:DrawModes constants](绘图模式常量)来查看其所有可能的值。
 			其默认值是[page:DrawModes TrianglesDrawMode]。
 			其默认值是[page:DrawModes TrianglesDrawMode]。
 		</p>
 		</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>
 		<h3>[property:Boolean isMesh]</h3>
 		<p>
 		<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
 		// create skinned mesh and skeleton
 
 

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

@@ -54,6 +54,14 @@
 
 
 		<h3>继承方法,请参阅[page:WebGLRenderTarget]</h3>
 		<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>
 		<h2>源码</h2>
 
 

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

@@ -46,7 +46,7 @@
 		[page:String powerPreference] - 提示用户代理怎样的配置更适用于当前WebGL环境。 可能是*"high-performance"*, *"low-power"* 或 *"default"*。默认是*"default"*.
 		[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 />
 		详见[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*.
 		[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 />
 		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 />
 		默认是*true*.<br />
 
 
 		[page:Boolean logarithmicDepthBuffer] -  是否使用对数深度缓存。如果要在单个场景中处理巨大的比例差异,就有必要使用。
 		[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]
 		默认是*false*。 示例:[example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer]
 		</p>
 		</p>
 
 
@@ -165,6 +167,7 @@
 					<li>triangles</li>
 					<li>triangles</li>
 					<li>points</li>
 					<li>points</li>
 					<li>lines</li>
 					<li>lines</li>
+					<li>frame</li>
 				</ul>
 				</ul>
 			</li>
 			</li>
 			<li>programs
 			<li>programs
@@ -349,6 +352,9 @@
 		<h3>[method:Object getSize]()</h3>
 		<h3>[method:Object getSize]()</h3>
 		<p>返回包含渲染器输出canvas的宽度和高度(单位像素)的对象。</p>
 		<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>
 		<h3>[method:null resetGLState]( )</h3>
 		<p>将GL状态重置为默认值。WebGL环境丢失时会内部调用</p>
 		<p>将GL状态重置为默认值。WebGL环境丢失时会内部调用</p>
 
 

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

@@ -30,7 +30,7 @@
 		<h2>示例</h2>
 		<h2>示例</h2>
 
 
 		<div>[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]</div>
 		<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>
 		<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>
 		<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: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>
 		</p>
 
 
 
 
@@ -86,7 +85,7 @@ function animate() {
 		<h3>[property:HTMLDOMElement domElement]</h3>
 		<h3>[property:HTMLDOMElement domElement]</h3>
 		<p>
 		<p>
 			The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will
 			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>
 		</p>
 
 
 		<h3>[property:Boolean enabled]</h3>
 		<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>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>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>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>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>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>
 			<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>
 	</head>
 	<body>
 	<body>
 		[page:Loader] &rarr;
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
@@ -57,8 +58,8 @@
 			BasisTextureLoader transcodes input textures in '.basis' format to an
 			BasisTextureLoader transcodes input textures in '.basis' format to an
 			appropriate compressed texture format for the target device, where
 			appropriate compressed texture format for the target device, where
 			possible. This allows the same source texture to be served across
 			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>
 		<p>
 		<p>
 			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
 			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
@@ -81,7 +82,11 @@
 		Creates a new [name].
 		Creates a new [name].
 		</p>
 		</p>
 
 
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
+
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -103,14 +108,6 @@
 		the output format for the transcoder. Must be called before loading a texture.
 		the output format for the transcoder. Must be called before loading a texture.
 		</p>
 		</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>
 		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
 		<p>
 		<p>
 		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
 		[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].
 		Creates a new [name].
 		</p>
 		</p>
 
 
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
+
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -100,19 +104,6 @@
 		Begin loading from url and call the <em>onLoad</em> function with the decompressed geometry.
 		Begin loading from url and call the <em>onLoad</em> function with the decompressed geometry.
 		</p>
 		</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>
 		<h3>[method:this setDecoderPath]( [param:String value] )</h3>
 		<p>
 		<p>
 		[page:String value] — Path to folder containing the JS and WASM decoder libraries.
 		[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>
 	</head>
 	<body>
 	<body>
 		[page:Loader] &rarr;
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
 		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
@@ -161,9 +162,10 @@
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -176,27 +178,6 @@
 		Begin loading from url and call the callback function with the parsed response content.
 		Begin loading from url and call the callback function with the parsed response content.
 		</p>
 		</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>
 		<h3>[method:null setDRACOLoader]( [param:DRACOLoader dracoLoader] )</h3>
 		<p>
 		<p>
 		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.
 		[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>
 	</head>
 	<body>
 	<body>
 		[page:Loader] &rarr;
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 		<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 />
 		<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>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<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].
 		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>
 		</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>
 		<h3>[method:MMDLoader setAnimationPath]( [param:String animationPath] )</h3>
 		<p>
 		<p>
 		[page:String animationPath] — Base path for loading animation data (VMD/VPD files).
 		[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.
 		Set the base path for additional resources like textures.
 		</p>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

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

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
+		[page:Loader] &rarr;
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
@@ -27,10 +28,10 @@
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -43,35 +44,6 @@
 			Begin loading from url and return the loaded material.
 			Begin loading from url and return the loaded material.
 		</p>
 		</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>
 		<h3>[method:MTLLoader setMaterialOptions]( [param:Object options] )</h3>
 		<p>
 		<p>
 			[page:Object options] — required
 			[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" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
+		[page:Loader] &rarr;
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
@@ -64,9 +65,10 @@
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -97,11 +99,6 @@
 		Sets materials loaded by MTLLoader or any other supplier of a [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator].
 		Sets materials loaded by MTLLoader or any other supplier of a [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator].
 		</p>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

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

@@ -22,183 +22,177 @@
 
 
 		<code>
 		<code>
 		// instantiate the loader
 		// instantiate the loader
-		var loader = new THREE.OBJLoader2();
+		let loader = new THREE.OBJLoader2();
 
 
 		// function called on successful load
 		// 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
 		// 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>
 		</code>
 
 
 		[example:webgl_loader_obj2] - Simple example <br>
 		[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>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [param:LoadingManager manager], [param:LoaderSupport.ConsoleLogger logger] )</h3>
+		<h3>[name]( [param:LoadingManager manager] )</h3>
 		<p>
 		<p>
 			[page:LoadingManager manager] - The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].<br>
 			[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>
 		<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>
 		</p>
 
 
 
 
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
+
+
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:Object3D parse]( [param:arraybuffer content]|[param:String content] )</h3>
 		<p>
 		<p>
 			[[page:arraybuffer content]|[page:String content]] OBJ data as Uint8Array or String
 			[[page:arraybuffer content]|[page:String content]] OBJ data as Uint8Array or String
 		</p>
 		</p>
 		<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>
 		</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>
 		<p>
 			[page:String url] - A string containing the path/URL of the file to be loaded.<br>
 			[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 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 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 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: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>
 		<p>
 		<p>
 			Use this convenient method to load a file at the given URL. By default the fileLoader uses an ArrayBuffer.
 			Use this convenient method to load a file at the given URL. By default the fileLoader uses an ArrayBuffer.
 		</p>
 		</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>
 		<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>
 		<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>
 		</p>
 
 
 
 
-		<h3>[method:null setLogging]( [param:Boolean enabled], [param:Boolean debug] )</h3>
+		<h3>[method:OBJLoader2 addMaterialPerSmoothingGroup] ( [param:boolean materialPerSmoothingGroup] )</h3>
 		<p>
 		<p>
-			[page:Boolean enabled] True or false.<br>
-			[page:Boolean debug] True or false.
+			[page:boolean materialPerSmoothingGroup]
 		</p>
 		</p>
 		<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>
 		</p>
 
 
 
 
-		<h3>[method:null setModelName] ( [param:String modelName] )</h3>
+		<h3>[method:OBJLoader2 setUseOAsMesh] ( [param:boolean useOAsMesh] )</h3>
 		<p>
 		<p>
-			[page:String modelName]
+			[page:boolean useOAsMesh]
 		</p>
 		</p>
 		<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>
 		</p>
 
 
 
 
-		<h3>[method:null setPath] ( [param:String path] )</h3>
+		<h3>[method:OBJLoader2 setUseIndices]( [param:Boolean useIndices] )</h3>
 		<p>
 		<p>
-			[page:String path] - URL
+			[page:Boolean useIndices]
 		</p>
 		</p>
 		<p>
 		<p>
-			The URL of the base path.
+			Instructs loaders to create indexed [page:BufferGeometry].
 		</p>
 		</p>
 
 
 
 
-		<h3>[method:null setResourcePath] ( [param:String resourcePath] )</h3>
+		<h3>[method:OBJLoader2 setDisregardNormals]( [param:Boolean disregardNormals] )</h3>
 		<p>
 		<p>
-			[page:String resourcePath] - URL
+			[page:Boolean disregardNormals]
 		</p>
 		</p>
 		<p>
 		<p>
-			Allows to specify resourcePath for dependencies of specified resource.
+			Tells whether normals should be completely disregarded and regenerated.
 		</p>
 		</p>
 
 
 
 
-		<h3>[method:null setStreamMeshesTo] ( [param:Object3D streamMeshesTo] )</h3>
+		<h3>[method:OBJLoader2 setModelName] ( [param:String modelName] )</h3>
+		<p>
+			[page:String modelName]
+		</p>
 		<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>
 		<p>
 		<p>
 			Set the node where the loaded objects will be attached directly.
 			Set the node where the loaded objects will be attached directly.
 		</p>
 		</p>
 
 
 
 
-		<h3>[method:null setMaterials] ( Array of [param:Material materials] )</h3>
+		<h3>[method:OBJLoader2 setMaterials] ( [param:Object materials] )</h3>
 		<p>
 		<p>
-			Array of [page:Material materials] - Array of [page:Material Materials]
+			[page:Object materials] -  materials Object with named [page:Material Materials]
 		</p>
 		</p>
 		<p>
 		<p>
-			Set materials loaded by MTLLoader or any other supplier of an Array of [page:Material Materials].
+			Add materials as associated array.
 		</p>
 		</p>
 
 
 
 
-		<h3>[method:null setUseIndices]( [param:Boolean useIndices] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnLoad] ( [param:Function onLoad] )</h3>
 		<p>
 		<p>
-			[page:Boolean useIndices]
+			[page:Function onLoad]
 		</p>
 		</p>
 		<p>
 		<p>
-			Instructs loaders to create indexed [page:BufferGeometry].
+			Register a function that is called when parsing was completed.
 		</p>
 		</p>
 
 
 
 
-		<h3>[method:null setDisregardNormals]( [param:Boolean disregardNormals] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnAssetAvailable] ( [param:Function onAssetAvailable] )</h3>
 		<p>
 		<p>
-			[page:Boolean disregardNormals]
+			[page:Function onAssetAvailable]
 		</p>
 		</p>
 		<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>
 		</p>
 
 
 
 
-		<h3>[method:null setMaterialPerSmoothingGroup] ( [param:boolean materialPerSmoothingGroup] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnProgress] ( [param:Function onProgress] )</h3>
 		<p>
 		<p>
-			[page:boolean materialPerSmoothingGroup]
+			[page:Function onProgress]
 		</p>
 		</p>
 		<p>
 		<p>
-			Tells whether a material shall be created per smoothing group.
+			Register a function that is used to report overall processing progress.
 		</p>
 		</p>
 
 
 
 
-		<h3>[method:null onProgress]( [param:String type], [param:String text], [param:Number numericalValue] )</h3>
+		<h3>[method:OBJLoader2 setCallbackOnError] ( [param:Function onError] )</h3>
 		<p>
 		<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>
 		<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>
 		</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>
 		<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>
 		<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>
 		</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" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
+		[page:Loader] &rarr;
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
@@ -62,6 +63,7 @@
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h3>[page:Boolean littleEndian]</h3>
 		<h3>[page:Boolean littleEndian]</h3>
 		<p>
 		<p>
@@ -69,6 +71,7 @@
 		</p>
 		</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -93,14 +96,6 @@
 		The object is converted to [page:Points] with a [page:BufferGeometry] and a [page:PointsMaterial].
 		The object is converted to [page:Points] with a [page:BufferGeometry] and a [page:PointsMaterial].
 		</p>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

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

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

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

@@ -8,6 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
+		[page:Loader] &rarr;
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
@@ -65,9 +66,10 @@
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -94,25 +96,11 @@
 		Return true if the endianness of the platform is Big Endian, false otherwise.
 		Return true if the endianness of the platform is Big Endian, false otherwise.
 		</p>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
 		</p>
 		</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>
 	</body>
 </html>
 </html>

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

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

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

@@ -8,6 +8,8 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
+		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">A loader for loading a <em>.tga</em> resource. <br />
 		<p class="desc">A loader for loading a <em>.tga</em> resource. <br />
@@ -50,7 +52,7 @@
 		} );
 		} );
 		</code>
 		</code>
 
 
-		[example:webgl_materials_texture_tga]
+		[example:webgl_loader_texture_tga]
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
@@ -62,8 +64,11 @@
 		Creates a new [name].
 		Creates a new [name].
 		</p>
 		</p>
 
 
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:DataTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<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).
 		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>
 		</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>
 		<h2>Source</h2>
 
 
 		<p>
 		<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>
 		<p>
 			[page:Camera object]: (必须)将要被控制的相机。该相机不允许是其他任何对象的子级,除非该对象是场景自身。<br><br>
 			[page:Camera object]: (必须)将要被控制的相机。该相机不允许是其他任何对象的子级,除非该对象是场景自身。<br><br>
 
 
-			[page:HTMLDOMElement domElement]: (可选)用于事件监听的HTML元素,其默认值为整个文档,
-			但是如果你只希望在特定的元素上(例如Canvas上)进行控制,在这里进行指定即可。
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
 		</p>
 		</p>
 
 
 
 
@@ -85,7 +84,7 @@ function animate() {
 		<h3>[property:HTMLDOMElement domElement]</h3>
 		<h3>[property:HTMLDOMElement domElement]</h3>
 		<p>
 		<p>
 			用于监听鼠标事件或触摸事件的HTMLDOMElement(DOM元素)。该值必须在构造函数中进行传入;
 			用于监听鼠标事件或触摸事件的HTMLDOMElement(DOM元素)。该值必须在构造函数中进行传入;
-			在此更改它将不会设置新的事件监听器。默认值是整个文档。
+			在此更改它将不会设置新的事件监听器
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean enabled]</h3>
 		<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>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>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>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>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>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>
 			<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>
 	</head>
 	<body>
 	<body>
 		[page:Loader] &rarr;
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
@@ -57,8 +58,8 @@
 			BasisTextureLoader transcodes input textures in '.basis' format to an
 			BasisTextureLoader transcodes input textures in '.basis' format to an
 			appropriate compressed texture format for the target device, where
 			appropriate compressed texture format for the target device, where
 			possible. This allows the same source texture to be served across
 			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>
 		<p>
 		<p>
 			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
 			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
@@ -81,7 +82,11 @@
 		Creates a new [name].
 		Creates a new [name].
 		</p>
 		</p>
 
 
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
+
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -103,14 +108,6 @@
 		the output format for the transcoder. Must be called before loading a texture.
 		the output format for the transcoder. Must be called before loading a texture.
 		</p>
 		</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>
 		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
 		<p>
 		<p>
 		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
 		[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].
 		Creates a new [name].
 		</p>
 		</p>
 
 
+		<h2>Properties</h2>
+		<p>See the base [page:Loader] class for common properties.</p>
+
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -100,19 +104,6 @@
 		Begin loading from url and call the <em>onLoad</em> function with the decompressed geometry.
 		Begin loading from url and call the <em>onLoad</em> function with the decompressed geometry.
 		</p>
 		</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>
 		<h3>[method:this setDecoderPath]( [param:String value] )</h3>
 		<p>
 		<p>
 		[page:String value] — Path to folder containing the JS and WASM decoder libraries.
 		[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>
 	</head>
 	<body>
 	<body>
 		[page:Loader] &rarr;
 		[page:Loader] &rarr;
+
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
 		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
@@ -161,9 +162,10 @@
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<p>See the base [page:Loader] class for common properties.</p>
 
 
 		<h2>Methods</h2>
 		<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>
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		<p>
@@ -176,27 +178,6 @@
 		Begin loading from url and call the callback function with the parsed response content.
 		Begin loading from url and call the callback function with the parsed response content.
 		</p>
 		</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>
 		<h3>[method:null setDRACOLoader]( [param:DRACOLoader dracoLoader] )</h3>
 		<p>
 		<p>
 		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.
 		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.

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