Browse Source

translate CCDIKSolver;可能需要改一下路由en

wangyang65 6 years ago
parent
commit
dd1b19c377
72 changed files with 4179 additions and 0 deletions
  1. 0 0
      docs/examples/en/Lut.html
  2. 0 0
      docs/examples/en/SpriteCanvasMaterial.html
  3. 0 0
      docs/examples/en/animations/CCDIKSolver.html
  4. 0 0
      docs/examples/en/animations/MMDAnimationHelper.html
  5. 0 0
      docs/examples/en/animations/MMDPhysics.html
  6. 0 0
      docs/examples/en/controls/OrbitControls.html
  7. 0 0
      docs/examples/en/exporters/ColladaExporter.html
  8. 0 0
      docs/examples/en/exporters/GLTFExporter.html
  9. 0 0
      docs/examples/en/exporters/PLYExporter.html
  10. 0 0
      docs/examples/en/geometries/ConvexBufferGeometry.html
  11. 0 0
      docs/examples/en/geometries/ConvexGeometry.html
  12. 0 0
      docs/examples/en/geometries/DecalGeometry.html
  13. 0 0
      docs/examples/en/loaders/BabylonLoader.html
  14. 0 0
      docs/examples/en/loaders/GLTFLoader.html
  15. 0 0
      docs/examples/en/loaders/LoaderSupport.html
  16. 0 0
      docs/examples/en/loaders/MMDLoader.html
  17. 0 0
      docs/examples/en/loaders/MTLLoader.html
  18. 0 0
      docs/examples/en/loaders/OBJLoader.html
  19. 0 0
      docs/examples/en/loaders/OBJLoader2.html
  20. 0 0
      docs/examples/en/loaders/PCDLoader.html
  21. 0 0
      docs/examples/en/loaders/PDBLoader.html
  22. 0 0
      docs/examples/en/loaders/PRWMLoader.html
  23. 0 0
      docs/examples/en/loaders/SVGLoader.html
  24. 0 0
      docs/examples/en/loaders/TGALoader.html
  25. 0 0
      docs/examples/en/objects/Lensflare.html
  26. 0 0
      docs/examples/en/quickhull/Face.html
  27. 0 0
      docs/examples/en/quickhull/HalfEdge.html
  28. 0 0
      docs/examples/en/quickhull/QuickHull.html
  29. 0 0
      docs/examples/en/quickhull/VertexList.html
  30. 0 0
      docs/examples/en/quickhull/VertexNode.html
  31. 0 0
      docs/examples/en/renderers/CSS2DRenderer.html
  32. 0 0
      docs/examples/en/renderers/CSS3DRenderer.html
  33. 0 0
      docs/examples/en/renderers/CanvasRenderer.html
  34. 0 0
      docs/examples/en/renderers/SVGRenderer.html
  35. 0 0
      docs/examples/en/utils/BufferGeometryUtils.html
  36. 0 0
      docs/examples/en/utils/SceneUtils.html
  37. 143 0
      docs/examples/zh/Lut.html
  38. 57 0
      docs/examples/zh/SpriteCanvasMaterial.html
  39. 102 0
      docs/examples/zh/animations/CCDIKSolver.html
  40. 169 0
      docs/examples/zh/animations/MMDAnimationHelper.html
  41. 112 0
      docs/examples/zh/animations/MMDPhysics.html
  42. 286 0
      docs/examples/zh/controls/OrbitControls.html
  43. 81 0
      docs/examples/zh/exporters/ColladaExporter.html
  44. 97 0
      docs/examples/zh/exporters/GLTFExporter.html
  45. 64 0
      docs/examples/zh/exporters/PLYExporter.html
  46. 57 0
      docs/examples/zh/geometries/ConvexBufferGeometry.html
  47. 56 0
      docs/examples/zh/geometries/ConvexGeometry.html
  48. 57 0
      docs/examples/zh/geometries/DecalGeometry.html
  49. 91 0
      docs/examples/zh/loaders/BabylonLoader.html
  50. 174 0
      docs/examples/zh/loaders/GLTFLoader.html
  51. 532 0
      docs/examples/zh/loaders/LoaderSupport.html
  52. 118 0
      docs/examples/zh/loaders/MMDLoader.html
  53. 104 0
      docs/examples/zh/loaders/MTLLoader.html
  54. 109 0
      docs/examples/zh/loaders/OBJLoader.html
  55. 201 0
      docs/examples/zh/loaders/OBJLoader2.html
  56. 100 0
      docs/examples/zh/loaders/PCDLoader.html
  57. 94 0
      docs/examples/zh/loaders/PDBLoader.html
  58. 108 0
      docs/examples/zh/loaders/PRWMLoader.html
  59. 107 0
      docs/examples/zh/loaders/SVGLoader.html
  60. 83 0
      docs/examples/zh/loaders/TGALoader.html
  61. 71 0
      docs/examples/zh/objects/Lensflare.html
  62. 89 0
      docs/examples/zh/quickhull/Face.html
  63. 79 0
      docs/examples/zh/quickhull/HalfEdge.html
  64. 175 0
      docs/examples/zh/quickhull/QuickHull.html
  65. 91 0
      docs/examples/zh/quickhull/VertexList.html
  66. 52 0
      docs/examples/zh/quickhull/VertexNode.html
  67. 65 0
      docs/examples/zh/renderers/CSS2DRenderer.html
  68. 77 0
      docs/examples/zh/renderers/CSS3DRenderer.html
  69. 174 0
      docs/examples/zh/renderers/CanvasRenderer.html
  70. 100 0
      docs/examples/zh/renderers/SVGRenderer.html
  71. 51 0
      docs/examples/zh/utils/BufferGeometryUtils.html
  72. 53 0
      docs/examples/zh/utils/SceneUtils.html

+ 0 - 0
docs/examples/Lut.html → docs/examples/en/Lut.html


+ 0 - 0
docs/examples/SpriteCanvasMaterial.html → docs/examples/en/SpriteCanvasMaterial.html


+ 0 - 0
docs/examples/animations/CCDIKSolver.html → docs/examples/en/animations/CCDIKSolver.html


+ 0 - 0
docs/examples/animations/MMDAnimationHelper.html → docs/examples/en/animations/MMDAnimationHelper.html


+ 0 - 0
docs/examples/animations/MMDPhysics.html → docs/examples/en/animations/MMDPhysics.html


+ 0 - 0
docs/examples/controls/OrbitControls.html → docs/examples/en/controls/OrbitControls.html


+ 0 - 0
docs/examples/exporters/ColladaExporter.html → docs/examples/en/exporters/ColladaExporter.html


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


+ 0 - 0
docs/examples/exporters/PLYExporter.html → docs/examples/en/exporters/PLYExporter.html


+ 0 - 0
docs/examples/geometries/ConvexBufferGeometry.html → docs/examples/en/geometries/ConvexBufferGeometry.html


+ 0 - 0
docs/examples/geometries/ConvexGeometry.html → docs/examples/en/geometries/ConvexGeometry.html


+ 0 - 0
docs/examples/geometries/DecalGeometry.html → docs/examples/en/geometries/DecalGeometry.html


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


+ 0 - 0
docs/examples/loaders/GLTFLoader.html → docs/examples/en/loaders/GLTFLoader.html


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


+ 0 - 0
docs/examples/loaders/MMDLoader.html → docs/examples/en/loaders/MMDLoader.html


+ 0 - 0
docs/examples/loaders/MTLLoader.html → docs/examples/en/loaders/MTLLoader.html


+ 0 - 0
docs/examples/loaders/OBJLoader.html → docs/examples/en/loaders/OBJLoader.html


+ 0 - 0
docs/examples/loaders/OBJLoader2.html → docs/examples/en/loaders/OBJLoader2.html


+ 0 - 0
docs/examples/loaders/PCDLoader.html → docs/examples/en/loaders/PCDLoader.html


+ 0 - 0
docs/examples/loaders/PDBLoader.html → docs/examples/en/loaders/PDBLoader.html


+ 0 - 0
docs/examples/loaders/PRWMLoader.html → docs/examples/en/loaders/PRWMLoader.html


+ 0 - 0
docs/examples/loaders/SVGLoader.html → docs/examples/en/loaders/SVGLoader.html


+ 0 - 0
docs/examples/loaders/TGALoader.html → docs/examples/en/loaders/TGALoader.html


+ 0 - 0
docs/examples/objects/Lensflare.html → docs/examples/en/objects/Lensflare.html


+ 0 - 0
docs/examples/quickhull/Face.html → docs/examples/en/quickhull/Face.html


+ 0 - 0
docs/examples/quickhull/HalfEdge.html → docs/examples/en/quickhull/HalfEdge.html


+ 0 - 0
docs/examples/quickhull/QuickHull.html → docs/examples/en/quickhull/QuickHull.html


+ 0 - 0
docs/examples/quickhull/VertexList.html → docs/examples/en/quickhull/VertexList.html


+ 0 - 0
docs/examples/quickhull/VertexNode.html → docs/examples/en/quickhull/VertexNode.html


+ 0 - 0
docs/examples/renderers/CSS2DRenderer.html → docs/examples/en/renderers/CSS2DRenderer.html


+ 0 - 0
docs/examples/renderers/CSS3DRenderer.html → docs/examples/en/renderers/CSS3DRenderer.html


+ 0 - 0
docs/examples/renderers/CanvasRenderer.html → docs/examples/en/renderers/CanvasRenderer.html


+ 0 - 0
docs/examples/renderers/SVGRenderer.html → docs/examples/en/renderers/SVGRenderer.html


+ 0 - 0
docs/examples/utils/BufferGeometryUtils.html → docs/examples/en/utils/BufferGeometryUtils.html


+ 0 - 0
docs/examples/utils/SceneUtils.html → docs/examples/en/utils/SceneUtils.html


+ 143 - 0
docs/examples/zh/Lut.html

@@ -0,0 +1,143 @@
+<!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">
+		Represents a lookup table for colormaps. It is used to determine the color values from a range of data values.
+		</p>
+
+
+		<h2>Example</h2>
+		<code>var lut = new THREE.Lut( "rainbow", 512 );</code>
+		<code>var data = [0, 10.1, 4.2, 3.4, 63, 28];</code>
+		<code>lut.setMax(63);</code>
+		<code>color = lut.getColor(10);</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( colormap, numberOfColors )</h3>
+		<p>
+		colormap - optional argument that sets a colormap from predefined colormaps. Available colormaps are : "rainbow", "cooltowarm", "blackbody".
+		numberOfColors - optional argument that sets the number of colors used to represent the data array.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Float minV]</h3>
+		<p>
+		The minimum value to be represented with the lookup table. Default is 0.
+		</p>
+
+		<h3>[property:Float maxV]</h3>
+		<p>
+		The maximum value to be represented with the lookup table. Default is 1.
+		</p>
+
+		<h3>.[legend]</h3>
+		<p>
+		The legend of the lookup table.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null copy]( [param:Lut lut] ) [param:Lut this]</h3>
+		<p>
+		color — Lut to copy.
+		</p>
+		<p>
+		Copies given lut.
+		</p>
+
+		<h3>.setLegendOn [parameters]</h3>
+		<p>
+		parameters - { layout: value, position: { x: value, y: value, z: value }, dimensions: { width: value, height: value } }
+		layout — Horizontal or vertical layout. Default is vertical.<br />
+		position — The position x,y,z of the legend.<br />
+		dimensions — The dimensions (width and height) of the legend.<br />
+		</p>
+		<p>
+		Sets this Lut with the legend on.
+		</p>
+
+		<h3>.setLegendOff</h3>
+		<p>
+		</p>
+		<p>
+		Sets this Lut with the legend off.
+		</p>
+
+    <h3>.setLegendLabels [parameters, callback]</h3>
+		<p>
+		parameters - { fontsize: value, fontface: value, title: value, um: value, ticks: value, decimal: value, notation: value }
+		fontsize — Font size to be used for labels.<br />
+		fontface — Font type to be used for labels.<br />
+		title — The title of the legend.<br />
+		um — The unit of measurements of the legend.<br />
+		ticks — The number of ticks to be displayed.<br />
+		decimal — The number of decimals to be used for legend values.<br />
+		notation — Legend notation: standard (default) or scientific.<br />
+		callback — An optional callback to be used to format the legend labels.<br />
+		</p>
+		<p>
+		Sets the labels of the legend of this Lut.
+		</p>
+
+		<h3>[method:Lut setminV]( [param:Float minV] )</h3>
+		<p>
+		minV — The minimum value to be represented with the lookup table.<br />
+		</p>
+		<p>
+		Sets this Lut with the minimum value to be represented.
+		</p>
+
+		<h3>[method:Lut setmaxV]( [param:Float maxV] )</h3>
+		<p>
+		maxV — The maximum value to be represented with the lookup table.<br />
+		</p>
+		<p>
+		Sets this Lut with the maximum value to be represented.
+		</p>
+
+		<h3>[method:Lut changeNumberOfColors]( [param:Float numberOfColors] )</h3>
+		<p>
+		numberOfColors — The number of colors to be used to represent the data array.<br />
+		</p>
+		<p>
+		Sets this Lut with the number of colors to be used.
+		</p>
+
+		<h3>[method:Lut changeColorMap]( [param:Float colorMap] )</h3>
+		<p>
+		colorMap — The name of the color map to be used to represent the data array.<br />
+		</p>
+		<p>
+		Sets this Lut with the colormap to be used.
+		</p>
+
+		<h3>[method:Lut addColorMap]( colorMapName, arrayOfColors )</h3>
+		<p>
+		Insert a new color map into the set of available color maps.
+		</p>
+
+		<h3>[method:Lut getColor]( value ) [param:Lut this]</h3>
+		<p>
+		value -- the data value to be displayed as a color.
+		</p>
+		<p>
+		Returns a [page:Color].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/[path].js examples/js/math/[path].js]
+	</body>
+</html>

+ 57 - 0
docs/examples/zh/SpriteCanvasMaterial.html

@@ -0,0 +1,57 @@
+<!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:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Create a material that can draw custom sprites using a 2d canvas.</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		parameters is an object that can be used to set up the default properties
+		</p>
+		<p>
+		color - the color of the sprite<br/>
+		program - the program used to draw the sprite
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+
+		<h3>[property:Color color]</h3>
+		<p>
+		The color of the sprite. The material will set up the color for the context before calling the material's program.
+		</p>
+
+		<h2>Methods</h2>
+
+
+
+		<h3>[method:null program]([param:CanvasRenderingContext2D context], [param:Color color])</h3>
+		<p>
+		context -- The canvas context <br />
+		color -- The color of the sprite
+		</p>
+		<p>
+			Define a program that will use the context to draw the sprite.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CanvasRenderer.js examples/js/renderers/CanvasRenderer.js]
+	</body>
+</html>

+ 102 - 0
docs/examples/zh/animations/CCDIKSolver.html

@@ -0,0 +1,102 @@
+<!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 href="https://sites.google.com/site/auraliusproject/ccd-algorithm"><em>CCD算法</em></a>求解IK. <br /><br />
+		[name] 用CCD算法求解逆运动学问题.
+		[name] 设计用于 用 [page:MMDLoader]加载的 [page:SkinnedMesh]但也可用于普通 [page:SkinnedMesh].
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		var ikSolver;
+
+		// Load MMD resources and instantiate CCDIKSolver
+		new THREE.MMDLoader().load(
+			'models/mmd/miku.pmd',
+			function ( mesh ) {
+
+				ikSolver = new CCDIKSolver( mesh, mesh.geometry.iks );
+				scene.add( mesh );
+
+			}
+		);
+
+		function render() {
+
+			animate(); // update bones
+			if ( ikSolver !== undefined ) ikSolver.update();
+			renderer.render( scene, camera );
+
+		}
+		</code>
+
+		[example:webgl_loader_mmd]<br />
+		[example:webgl_loader_mmd_pose]<br />
+		[example:webgl_loader_mmd_audio]<br />
+
+		<br />
+		<hr>
+
+		<h2>Constructor(构造器)</h2>
+
+		<h3>[name]( [param:SkinnedMesh mesh], [param:Array iks] )</h3>
+		<p>
+		[page:SkinnedMesh mesh] — [page:SkinnedMesh] , [name] 解决了 IK 问题.<br />
+		[page:Array iks] — 指定了 IK 参数的[page:Object]数组. target, effector, 和 link-index 是 .skeleton.bones中的索引整数.
+		骨骼关系应该是 "links[ n ], links[ n - 1 ], ..., links[ 0 ], effector" 以从父到子的顺序.<br />
+		<ul>
+			<li>[page:Integer target] — 目标骨骼.</li>
+			<li>[page:Integer effector] — 效应器骨.</li>
+			<li>[page:Array links] — 指定链接骨骼的[page:Object]数组.
+			<ul>
+				<li>[page:Integer index] — 链接骨骼.</li>
+				<li>[page:Vector3 limitation] — (可选的) 旋转轴。 默认值undefined.</li>
+				<li>[page:Vector3 rotationMin] — (可选的) 旋转最小限制. 默认值 undefined.</li>
+				<li>[page:Vector3 rotationMax] — (可选的) 旋转最最大限制. 默认值 undefined.</li>
+				<li>[page:Boolean enabled] — (可选的) 默认值 true.</li>
+			</ul>
+			</li>
+			<li>[page:Integer iteration] — (可选的) 迭代次数计算。 更小的值更快但更不精确. 默认值 1.</li>
+			<li>[page:Number minAngle] — (可选的) 步骤中的最小旋转角度. 默认值 undefined.</li>
+			<li>[page:Number maxAngle] — (可选的) 步骤中的最大旋转角度. 默认值 undefined.</li>
+		</ul>
+		</p>
+		<p>
+		创建一个新 [name].
+		</p>
+
+		<h2>Properties(属性)</h2>
+
+		<h3>[property:Array iks]</h3>
+		<p>传递给构造函数的IK参数数组.</p>
+
+		<h3>[property:SkinnedMesh mesh]</h3>
+		<p>[page:SkinnedMesh] 传递给构造函数.</p>
+
+		<h2>Methods(方法)</h2>
+
+		<h3>[method:CCDIKHelper createHelper]()</h3>
+		<p>
+		返回 [page:CCDIKHelper]. 可以通过向场景添加帮助程序来可视化IK骨骼。
+		</p>
+
+		<h3>[method:CCDIKSolver update]()</h3>
+		<p>
+			通过求解CCD算法更新骨骼四元数。
+		</p>
+
+		<h2>Source(来源)</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/CCDIKSolver.js examples/js/animation/CCDIKSolver.js]
+	</body>
+</html>

+ 169 - 0
docs/examples/zh/animations/MMDAnimationHelper.html

@@ -0,0 +1,169 @@
+<!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 animation helper for <a href="http://www.geocities.jp/higuchuu4/index_e.htm"><em>MMD</em></a> resources. <br /><br />
+		[name] handles animation of MMD assets loaded by [page:MMDLoader] with MMD special features as IK, Grant, and Physics.
+		It uses [page:CCDIKSolver] and [page:MMDPhysics] inside.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate a helper
+		var helper = new THREE.MMDAnimationHelper();
+
+		// Load MMD resources and add to helper
+		new THREE.MMDLoader().loadWithAnimation(
+			'models/mmd/miku.pmd',
+			'models/mmd/dance.vmd',
+			function ( mmd ) {
+
+				helper.add( mmd.mesh, {
+					animation: mmd.animation,
+					physics: true
+				} );
+
+				scene.add( mmd.mesh );
+
+				new THREE.AudioLoader().load(
+					'audios/mmd/song.mp3',
+					function ( buffer ) {
+
+						var listener = new THREE.AudioListener();
+						var audio = new THREE.Audio( listener )
+							.setBuffer( buffer );
+
+						listener.position.z = 1;
+
+						scene.add( audio );
+						scene.add( listener );
+
+					}
+
+				);
+
+			}
+		);
+
+		function render() {
+
+			helper.update( clock.getDelta() );
+			renderer.render( scene, camera );
+
+		}
+		</code>
+
+		[example:webgl_loader_mmd]<br />
+		[example:webgl_loader_mmd_pose]<br />
+		[example:webgl_loader_mmd_audio]<br />
+
+		<br />
+		<hr>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Object params] )</h3>
+		<p>
+		[page:Object params] — (optional)<br />
+		<ul>
+			<li> [page:Boolean sync] - Whether animation durations of added objects are synched. Default is true.</li>
+			<li> [page:Number afterglow] - Default is 0.0.</li>
+			<li> [page:Boolean resetPhysicsOnLoop] - Default is true.</li>
+		</ul>
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Audio audio]</h3>
+		<p>An [page:Audio] added to helper.</p>
+
+		<h3>[property:Camera camera]</h3>
+		<p>An [page:Camera] added to helper.</p>
+
+		<h3>[property:Array meshes]</h3>
+		<p>An array of [page:SkinnedMesh] added to helper.</p>
+
+		<h3>[property:WeakMap objects]</h3>
+		<p>A [page:WeakMap] which holds animation stuffs used in helper for objects added to helper. For example, you can access [page:AnimationMixer] for an added [page:SkinnedMesh] with "helper.objects.get( mesh ).mixer"</p>
+
+		<h3>[property:function onBeforePhysics]</h3>
+		<p>An optional callback that is executed immediately before the physicis calculation for an [page:SkinnedMesh]. This function is called with the [page:SkinnedMesh].</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:MMDAnimationHelper add]( [param:Object3D object], [param:Object params] )</h3>
+		<p>
+		[page:Object3D object] — [page:SkinnedMesh], [page:Camera], or [page:Audio]<br />
+		[page:Object params] — (optional)<br />
+		<ul>
+			<li>[page:AnimationClip animation] - an [page:AnimationClip] or an array of [page:AnimationClip] set to object. Only for [page:SkinnedMesh] and [page:Camera]. Default is undefined.</li>
+			<li>[page:Boolean physics] - Only for [page:SkinnedMesh]. A flag whether turn on physics. Default is true.</li>
+			<li>[page:Integer warmup] - Only for [page:SkinnedMesh] and physics is true. Physics parameter. Default is 60.</li>
+			<li>[page:Number unitStep] - Only for [page:SkinnedMesh] and physics is true. Physics parameter. Default is 1 / 65.</li>
+			<li>[page:Integer maxStepNum] - Only for [page:SkinnedMesh] and physics is true. Physics parameter. Default is 3.</li>
+			<li>[page:Vector3 gravity] - Only for [page:SkinnedMesh] and physics is true. Physics parameter. Default is ( 0, - 9.8 * 10, 0 ).</li>
+			<li>[page:Number delayTime] - Only for [page:Audio]. Default is 0.0.</li>
+		</ul>
+		</p>
+		<p>
+		Add an [page:SkinnedMesh], [page:Camera], or [page:Audio] to helper and setup animation. The anmation durations of added objects are synched.
+		If camera/audio has already been added, it'll be replaced with a new one.
+		</p>
+
+		<h3>[method:MMDAnimationHelper enable]( [param:string key], [param:Boolean enabled] )</h3>
+		<p>
+		[page:string key] — Allowed strings are 'animation', 'ik', 'grant', 'physics', and 'cameraAnimation'.<br />
+		[page:Boolean enabled] — true is enable, false is disable<br />
+		</p>
+		<p>
+		Enable/Disable an animation feature
+		</p>
+
+		<h3>[method:MMDAnimationHelper pose]( [param:SkinnedMesh mesh], [param:Object vpd], [param:Object params] )</h3>
+		<p>
+		[page:SkinnedMesh mesh] — [page:SkinnedMesh] which changes the posing. It doesn't need to be added to helper.<br />
+		[page:Object vpd] — VPD content obtained by [page:MMDLoader].loadVPD<br />
+		[page:Object params] — (optional)<br />
+		<ul>
+			<li>[page:Boolean resetPose] - Default is true.</li>
+			<li>[page:Boolean ik] - Default is true.</li>
+			<li>[page:Boolean grant] - Default is true.</li>
+		</ul>
+		</p>
+		<p>
+		Changes the posing of [page:SkinnedMesh] as VPD content specifies.
+		</p>
+
+		<h3>[method:MMDAnimationHelper remove]( [param:Object3D object] )</h3>
+		<p>
+		[page:Object3D object] — [page:SkinnedMesh], [page:Camera], or [page:Audio]<br />
+		</p>
+		<p>
+		Remove an [page:SkinnedMesh], [page:Camera], or [page:Audio] from helper.
+		</p>
+
+		<h3>[method:MMDAnimationHelper update]( [param:Nummber delta] )</h3>
+		<p>
+		[page:Number delta] — number in second<br />
+		</p>
+		<p>
+		Advance mixer time and update the animations of objects added to helper
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDAnimationHelper.js examples/js/animation/MMDAnimationHelper.js]
+	</body>
+</html>

+ 112 - 0
docs/examples/zh/animations/MMDPhysics.html

@@ -0,0 +1,112 @@
+<!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 Physics handler for <a href="http://www.geocities.jp/higuchuu4/index_e.htm"><em>MMD</em></a> resources. <br /><br />
+		[name] calculates Physics for model loaded by [page:MMDLoader] with <a href="https://github.com/kripken/ammo.js/">ammo.js</a> (Bullet-based JavaScript Physics engine).
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		var physics;
+
+		// Load MMD resources and instantiate MMDPhysics
+		new THREE.MMDLoader().load(
+			'models/mmd/miku.pmd',
+			function ( mesh ) {
+
+				physics = new THREE.MMDPhysics( mesh )
+				scene.add( mesh );
+
+			}
+		);
+
+		function render() {
+
+			var delta = clock.getDelta();
+			animate( delta );  // update bones
+			if ( physics !== undefined ) physics.update( delta );
+			renderer.render( scene, camera );
+
+		}
+		</code>
+
+		[example:webgl_loader_mmd]<br />
+		[example:webgl_loader_mmd_audio]<br />
+
+		<br />
+		<hr>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:SkinnedMesh mesh], [param:Array rigidBodyParams], [param:Array constraintParams], [param:Object params] )</h3>
+		<p>
+		[page:SkinnedMesh mesh] — [page:SkinnedMesh] for which [name] calculates Physics.<br />
+		[page:Array rigidBodyParams] — An array of [page:Object] specifying Rigid Body parameters.<br />
+		[page:Array constraintParams] — (optional) An array of [page:Object] specifying Constraint parameters.<br />
+		[page:Object params] — (optional)<br />
+		<ul>
+			<li>[page:Number unitStep] - Default is 1 / 65.</li>
+			<li>[page:Integer maxStepNum] - Default is 3.</li>
+			<li>[page:Vector3 gravity] - Default is ( 0, - 9.8 * 10, 0 )</li>
+		</ul>
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array mesh]</h3>
+		<p>[page:SkinnedMesh] passed to the constructor.</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:MMDPhysicsHelper createHelper]()</h3>
+		<p>
+		Return [page:MMDPhysicsHelper]. You can visualize Rigid bodies by adding the helper to scene.
+		</p>
+
+		<h3>[method:CCDIKSolver reset]()</h3>
+		<p>
+		Resets Rigid bodies transorm to current bone's.
+		</p>
+
+		<h3>[method:CCDIKSolver setGravity]( [param:Vector3 gravity] )</h3>
+		<p>
+		[page:Vector3 gravity] — Direction and volume of gravity.
+		</p>
+		<p>
+		Set gravity.
+		</p>
+
+		<h3>[method:CCDIKSolver update]( [param:Number delta] )</h3>
+		<p>
+		[page:Number delta] — Time in second.
+		</p>
+		<p>
+		Advance Physics calculation and updates bones.
+		</p>
+
+		<h3>[method:CCDIKSolver warmup]( [param:Integer cycles] )</h3>
+		<p>
+		[page:Number delta] — Time in second.
+		</p>
+		<p>
+		Warm up Rigid bodies. Calculates cycles steps.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDPhysics.js examples/js/animation/MMDPhysics.js]
+	</body>
+</html>

+ 286 - 0
docs/examples/zh/controls/OrbitControls.html

@@ -0,0 +1,286 @@
+<!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">
+		Orbit controls allow the camera to orbit around a target.<br>
+
+		To use this, as with all files in the /examples directory, you will have to
+		include the file seperately in your HTML.
+
+		</p>
+
+
+		<h2>Example</h2>
+
+		<p>[example:misc_controls_orbit misc / controls / orbit ]</p>
+
+		<code>
+var renderer = new THREE.WebGLRenderer();
+renderer.setSize( window.innerWidth, window.innerHeight );
+document.body.appendChild( renderer.domElement );
+
+var scene = new THREE.Scene();
+
+var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
+
+var controls = new THREE.OrbitControls( camera );
+
+//controls.update() must be called after any manual changes to the camera's transform
+camera.position.set( 0, 20, 100 );
+controls.update();
+
+function animate() {
+
+	requestAnimationFrame( animate );
+
+	// required if controls.enableDamping or controls.autoRotate are set to true
+	controls.update();
+
+	renderer.render( scene, camera );
+
+}
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			[page:Camera object]: (required) The camera to be controlled.<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.
+		</p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean autoRotate]</h3>
+		<p>
+			Set to true to automatically rotate around the target.<br> Note that if this is enabled, you must call [page:.update]
+			() in your animation loop.
+		</p>
+
+		<h3>[property:Float autoRotateSpeed]</h3>
+		<p>
+			How fast to rotate around the target if [property:Boolean autoRotate] is true. Default is 2.0, which equates to 30 seconds
+			per rotation at 60fps.<br> Note that if [property:Boolean autoRotate] is enabled, you must call [page:.update]
+			() in your animation loop.
+		</p>
+
+		<h3>
+			[property:Float dampingFactor]</h3>
+		<p>
+			The damping inertia used if [property:Boolean enableDamping] is set to true.<br> Note that for this to work, you must
+			call [page:.update] () in your animation loop.
+		</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. Default is the whole document.
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			Whether or not the controls are enabled.
+		</p>
+
+		<h3>[property:Boolean enableDamping]</h3>
+		<p>
+			Set to true to enable damping (inertia), which can be used to give a sense of weight to the controls. Default is false.<br>
+			Note that if this is enabled, you must call [page:.update] () in your animation loop.
+		</p>
+
+		<h3>[property:Boolean enableKeys]</h3>
+		<p>
+			Enable or disable the use of keyboard controls.
+		</p>
+
+		<h3>[property:Boolean enablePan]</h3>
+		<p>
+			Enable or disable camera panning. Default is true.
+		</p>
+
+		<h3>[property:Boolean enableRotate]</h3>
+		<p>
+			Enable or disable horizontal and vertical rotation of the camera. Default is true.<br>
+			Note that it is possible to disable a single axis by setting the min and max of the
+			[page:.minPolarAngle polar angle] or [page:.minAzimuthAngle azimuth angle] to the same value,
+			which will cause the vertical or horizontal rotation to be fixed at that value.
+		</p>
+
+		<h3>[property:Boolean enableZoom]</h3>
+		<p>
+			Enable or disable zooming (dollying) of the camera.
+		</p>
+
+		<h3>[property:Float keyPanSpeed]</h3>
+		<p>
+			How fast to pan the camera when the keyboard is used. Default is 7.0 pixels per keypress.
+		</p>
+
+		<h3>[property:Object keys]</h3>
+		<p>
+			This object contains references to the keycodes for controlling camera panning. Default is the 4 arrow keys.
+			<code>
+controls.keys = {
+	LEFT: 37, //left arrow
+	UP: 38, // up arrow
+	RIGHT: 39, // right arrow
+	BOTTOM: 40 // down arrow
+}
+			 </code> See [link:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode this page] for a full
+			list of keycodes.
+		</p>
+
+		<h3>[property:Float maxAzimuthAngle]</h3>
+		<p>
+			How far you can orbit horizontally, upper limit. Range is - Math.PI to Math.PI ( or Infinity for no limit ) and default is
+			Infinity;
+		</p>
+
+		<h3>[property:Float maxDistance]</h3>
+		<p>
+			How far you can dolly out ( [page:PerspectiveCamera] only ). Default is Infinity.
+		</p>
+
+		<h3>[property:Float maxPolarAngle]</h3>
+		<p>
+			How far you can orbit vertically, upper limit. Range is 0 to Math.PI radians, and default is Math.PI.
+		</p>
+
+		<h3>[property:Float maxZoom]</h3>
+		<p>
+			How far you can zoom out ( [page:OrthographicCamera] only ). Default is Infinity.
+		</p>
+
+		<h3>[property:Float minAzimuthAngle]</h3>
+		<p>
+			How far you can orbit horizontally, lower limit. Range is - Math.PI to Math.PI ( or - Infinity for no limit ) and default
+			is - Infinity;
+		</p>
+
+		<h3>[property:Float minDistance]</h3>
+		<p>
+			 How far you can dolly in ( [page:PerspectiveCamera] only ). Default is 0.
+		</p>
+
+		<h3>[property:Float minPolarAngle]</h3>
+		<p>
+			How far you can orbit vertically, lower limit. Range is 0 to Math.PI radians, and default is 0.
+		</p>
+
+		<h3>[property:Float minZoom]</h3>
+		<p>
+			How far you can zoom in ( [page:OrthographicCamera] only ). Default is 0.
+		</p>
+
+		<h3>
+			[property:Object mouseButtons]</h3>
+		<p>
+			This object contains references to the mouse buttons used for the controls.
+			<code>
+controls.mouseButtons = {
+	LEFT: THREE.MOUSE.LEFT,
+	MIDDLE: THREE.MOUSE.MIDDLE,
+	RIGHT: THREE.MOUSE.RIGHT
+}
+			</code>
+		</p>
+
+		<h3>[property:Camera object]</h3>
+		<p>
+			The camera being controlled.
+		</p>
+
+		<h3>[property:Float panSpeed]</h3>
+		<p>
+			Speed of panning. Default is 1.
+		</p>
+
+		<h3>[property:Vector3 position0]</h3>
+		<p>
+			Used internally by the [method:saveState] and [method:reset] methods.
+		</p>
+
+		<h3>[property:Float rotateSpeed]</h3>
+		<p>
+			Speed of rotation. Default is 1.
+		</p>
+
+		<h3>[property:Boolean screenSpacePanning]</h3>
+		<p>
+		Defines how the camera's position is translated when panning. If true, the camera pans in screen space.
+		Otherwise, the camera pans in the plane orthogonal to the camera's up direction. Default is false.
+		</p>
+
+		<h3>[property:Vector3 target0]</h3>
+		<p>
+			Used internally by the [method:saveState] and [method:reset] methods.
+		</p>
+
+		<h3>[property:Vector3 target]</h3>
+		<p>
+			The focus point of the controls, the [page:.object] orbits around this. It can be updated manually at any point to change
+			the focus of the controls.
+		</p>
+
+		<h3>[property:Float zoom0]</h3>
+		<p>
+			Used internally by the [method:saveState] and [method:reset] methods.
+		</p>
+
+		<h3>[property:Float zoomSpeed]</h3>
+		<p>
+			Speed of zooming / dollying. Default is 1.
+		</p>
+
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null dispose] ()</h3>
+		<p>
+			Remove all the event listeners.
+		</p>
+
+		<h3>[method:radians getAzimuthalAngle] ()</h3>
+		<p>
+			Get the current horizontal rotation, in radians.
+		</p>
+
+		<h3>[method:radians getPolarAngle] ()</h3>
+		<p>
+			Get the current vertical rotation, in radians.
+		</p>
+
+		<h3>[method:null reset] ()</h3>
+		<p>
+			Reset the controls to their state from either the last time the [page:.saveState] was called, or the initial state.
+		</p>
+
+		<h3>[method:null saveState] ()</h3>
+		<p>
+			Save the current state of the controls. This can later be recovered with [page:.reset].
+		</p>
+
+		<h3>[method:Boolean update] ()</h3>
+		<p>
+			Update the controls. Must be called after any manual changes to the camera's transform,
+			or in the update loop if [page:.autoRotate] or [page:.enableDamping] are set.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+	</body>
+</html>

+ 81 - 0
docs/examples/zh/exporters/ColladaExporter.html

@@ -0,0 +1,81 @@
+<!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">
+		An exporter for *Collada*.
+		<br /><br />
+		<a href="https://www.khronos.org/collada/">Collada</a> is a
+		file format for robust representation of scenes, materials, animations, and other 3D content in an xml format.
+		This exporter only supports exporting geometry, materials, textures, and scene hierarchy.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate an exporter
+		var exporter = new THREE.ColladaExporter();
+
+		// Parse the input and generate the ply output
+		var data = exporter.parse( scene, null, options );
+		downloadFile(data);
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null parse]( [param:Object3D input], [param:Function onCompleted], [param:Object options] )</h3>
+		<p>
+		[page:Object input] — Object3D to be exported<br />
+		[page:Function onCompleted] — Will be called when the export completes. Optional. The same data is immediately returned from the function.<br />
+		[page:Options options] — Export options<br />
+		<ul>
+			<li>version - string. Which version of Collada to export. The options are "1.4.1" or "1.5.0". Defaults to "1.4.1".</li>
+			<li>author - string. The name to include in the author field. Author field is excluded by default.</li>
+			<li>textureDirectory - string. The directory relative to the Collada file to save the textures to.</li>
+		</ul>
+		</p>
+		<p>
+		Generates an object with Collada file and texture data. This object is returned from the function and passed into the "onCompleted" callback.
+		<code>
+		{
+			// Collada file content
+			data: "",
+
+			// List of referenced texures
+			textures: [{
+
+				// File directory, name, and extension of the texture data
+				directory: "",
+				name: "",
+				ext: "",
+
+				// The texture data and original texture object
+				data: [],
+				original: &ltTHREE.Texture&gt
+			}, ...]
+		}
+		</code>
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/ColladaExporter.js examples/js/exporters/ColladaExporter.js]
+	</body>
+</html>

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

@@ -0,0 +1,97 @@
+<!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">
+		An exporter for *glTF* 2.0.
+		<br /><br />
+		<a href="https://www.khronos.org/gltf">glTF</a> (GL Transmission Format) is an
+		<a href="https://github.com/KhronosGroup/glTF/tree/master/specification/2.0">open format specification</a>
+		for efficient delivery and loading of 3D content. Assets may be provided either in JSON (.gltf)
+		or binary (.glb) format. External files store textures (.jpg, .png) and additional binary
+		data (.bin). A glTF asset may deliver one or more scenes, including meshes, materials,
+		textures, skins, skeletons, morph targets, animations, lights, and/or cameras.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate a exporter
+		var exporter = new THREE.GLTFExporter();
+
+		// Parse the input and generate the glTF output
+		exporter.parse( scene, function ( gltf ) {
+			console.log( gltf );
+			downloadJSON( gltf );
+		}, options );
+		</code>
+
+		[example:misc_exporter_gltf]
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null parse]( [param:Object3D input], [param:Function onCompleted], [param:Object options] )</h3>
+		<p>
+		[page:Object input] — Scenes or objects to export. Valid options:<br />
+		<ul>
+			<li>
+				Export scenes
+				<code>
+				exporter.parse( scene1, ... )
+		exporter.parse( [ scene1, scene2 ], ... )
+				</code>
+			</li>
+			<li>
+				Export objects (It will create a new Scene to hold all the objects)
+				<code>
+				exporter.parse( object1, ... )
+		exporter.parse( [ object1, object2 ], ... )
+				</code>
+			</li>
+			<li>
+				Mix scenes and objects (It will export the scenes as usual but it will create a new scene to hold all the single objects).
+				<code>
+				exporter.parse( [ scene1, object1, object2, scene2 ], ... )
+				</code>
+			</li>
+		</ul>
+
+		[page:Function onCompleted] — Will be called when the export completes. The argument will be the generated glTF JSON or binary ArrayBuffer.<br />
+		[page:Options options] — Export options<br />
+		<ul>
+			<li>trs - bool. Export position, rotation and scale instead of matrix per node. Default is false</li>
+			<li>onlyVisible - bool. Export only visible objects. 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>embedImages - bool. Export with images embedded into the glTF asset. Default is true.</li>
+			<li>animations - Array<[page:AnimationClip AnimationClip]>. List of animations to be included in the export.</li>
+			<li>forceIndices - bool. Generate indices for non-index geometry and export with them. Default is false.</li>
+			<li>forcePowerOfTwoTextures - bool. Export with images resized to POT size. This option works only if embedImages is true. Default is false.</li>
+		</ul>
+		</p>
+		<p>
+		Generates a .gltf (JSON) or .glb (binary) output from the input (Scenes or Objects)
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/GLTFExporter.js examples/js/exporters/GLTFExporter.js]
+	</body>
+</html>

+ 64 - 0
docs/examples/zh/exporters/PLYExporter.html

@@ -0,0 +1,64 @@
+<!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">
+		An exporter for *PLY*.
+		<br /><br />
+		<a href="https://en.wikipedia.org/wiki/PLY_(file_format)">PLY</a> (Polygon or Stanford Triangle Format) is a
+		file format for efficient delivery and loading of simple, static 3D content in a dense format.
+		Both binary and ascii formats are supported. PLY can store vertex positions, colors, normals and
+		uv coordinates. No textures or texture references are saved.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate an exporter
+		var exporter = new THREE.PLYExporter();
+
+		// Parse the input and generate the ply output
+		var data = exporter.parse( scene, options );
+		downloadFile(data);
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null parse]( [param:Object3D input], [param:Function onDone], [param:Object options] )</h3>
+		<p>
+		[page:Object input] — Object3D<br />
+		[page:Function onCompleted] — Will be called when the export completes. The argument will be the generated ply ascii or binary ArrayBuffer.<br />
+		[page:Options options] — Export options<br />
+		<ul>
+			<li>excludeAttributes - array. Which properties to explicitly exclude from the exported PLY file. Valid values are 'color', 'normal', 'uv', and 'index'. If triangle indices are excluded, then a point cloud is exported. Default is an empty array.</li>
+			<li>binary - bool. Export in binary format, returning an ArrayBuffer. Default is false.</li>
+		</ul>
+		</p>
+		<p>
+		Generates ply file data as string or ArrayBuffer (ascii or binary) output from the input object. The data that is returned is the same
+		that is passed into the "onCompleted" function.
+		If the object is composed of multiple children and geometry, they are merged into a single mesh in the file.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/PLYExporter.js examples/js/exporters/PLYExporter.js]
+	</body>
+</html>

+ 57 - 0
docs/examples/zh/geometries/ConvexBufferGeometry.html

@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">[name] can be used to generate a convex hull for a given array of 3D points.
+			The average time complexity for this task is considered to be O(nlog(n)).</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Example</h2>
+
+		<p>[example:webgl_geometry_convex geometry / convex ]</p>
+
+		<code>var geometry = new THREE.ConvexBufferGeometry( points );
+		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		var mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+		points — Array of [page:Vector3 Vector3s] that the resulting convex hull will contain.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/ConvexGeometry.js examples/js/geometries/ConvexGeometry.js]
+	</body>
+</html>

+ 56 - 0
docs/examples/zh/geometries/ConvexGeometry.html

@@ -0,0 +1,56 @@
+<!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:Geometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">[name] can be used to generate a convex hull for a given array of 3D points.
+			The average time complexity for this task is considered to be O(nlog(n)).</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Example</h2>
+
+		<p>[example:webgl_geometry_convex geometry / convex ]</p>
+
+		<code>var geometry = new THREE.ConvexGeometry( points );
+		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		var mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+		points — Array of [page:Vector3 Vector3s] that the resulting convex hull will contain.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/ConvexGeometry.js examples/js/geometries/ConvexGeometry.js]
+	</body>
+</html>

+ 57 - 0
docs/examples/zh/geometries/DecalGeometry.html

@@ -0,0 +1,57 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">[name] can be used to create a decal mesh that serves different kinds of purposes e.g. adding unique details to models, performing dynamic visual environmental changes or covering seams.</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Example</h2>
+
+		<p>[example:webgl_decals decals ]</p>
+
+		<code>var geometry =  new THREE.DecalGeometry( mesh, position, orientation, size );
+		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		var mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Mesh mesh], [param:Vector3 position], [param:Euler orientation], [param:Vector3 size] )</h3>
+		<p>
+		mesh — Any mesh object.<br />
+		position — Position of the decal projector.<br />
+		orientation — Orientation of the decal projector.<br />
+		size — Size of the decal projector.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/DecalGeometry.js examples/js/geometries/DecalGeometry.js]
+	</body>
+</html>

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

@@ -0,0 +1,91 @@
+<!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>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BabylonLoader.js examples/js/loaders/BabylonLoader.js]
+	</body>
+</html>

+ 174 - 0
docs/examples/zh/loaders/GLTFLoader.html

@@ -0,0 +1,174 @@
+<!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:Loader] &rarr;
+		<h1>[name]</h1>
+
+		<p class="desc"> A loader for <em>glTF 2.0</em> resources. <br /><br />
+		[link:https://www.khronos.org/gltf glTF] (GL Transmission Format) is an
+		[link:https://github.com/KhronosGroup/glTF/tree/master/specification/2.0 open format specification]
+		for efficient delivery and loading of 3D content. Assets may be provided either in JSON (.gltf)
+		or binary (.glb) format. External files store textures (.jpg, .png) and additional binary
+		data (.bin). A glTF asset may deliver one or more scenes, including meshes, materials,
+		textures, skins, skeletons, morph targets, animations, lights, and/or cameras.
+		</p>
+
+		<h2>Extensions</h2>
+
+		<p>
+			GLTFLoader supports the following
+			[link:https://github.com/KhronosGroup/glTF/tree/master/extensions/ glTF 2.0 extensions]:
+		</p>
+
+		<ul>
+			<li>KHR_draco_mesh_compression</li>
+			<li>KHR_materials_pbrSpecularGlossiness</li>
+			<li>KHR_materials_unlit</li>
+			<li>KHR_lights_punctual (experimental)</li>
+		</ul>
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate a loader
+		var loader = new THREE.GLTFLoader();
+
+		// Optional: Provide a DRACOLoader instance to decode compressed mesh data
+		THREE.DRACOLoader.setDecoderPath( '/examples/js/libs/draco' );
+		loader.setDRACOLoader( new THREE.DRACOLoader() );
+
+		// Load a glTF resource
+		loader.load(
+			// resource URL
+			'models/gltf/duck/duck.gltf',
+			// called when the resource is loaded
+			function ( gltf ) {
+
+				scene.add( gltf.scene );
+
+				gltf.animations; // Array&lt;THREE.AnimationClip&gt;
+				gltf.scene; // THREE.Scene
+				gltf.scenes; // Array&lt;THREE.Scene&gt;
+				gltf.cameras; // Array&lt;THREE.Camera&gt;
+				gltf.asset; // Object
+
+			},
+			// called while loading is progressing
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_gltf]
+
+		<h2>Browser compatibility</h2>
+
+		<p>GLTFLoader relies on ES6 [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise Promises],
+		which are not supported in IE11. To use the loader in IE11, you must
+		[link:https://github.com/stefanpenner/es6-promise include a polyfill]
+		providing a Promise replacement.</p>
+
+		<h2>Custom extensions</h2>
+
+		<p>
+			Metadata from unknown extensions is preserved as “.userData.gltfExtensions” on Object3D, Scene, and Material instances,
+			or attached to the response “gltf” object. Example:
+		</p>
+
+		<code>
+		loader.load('foo.gltf', function ( gltf ) {
+
+			var scene = gltf.scene;
+
+			var mesh = scene.children[ 3 ];
+
+			var fooExtension = mesh.userData.gltfExtensions.EXT_foo;
+
+			gltf.parser.getDependency( 'bufferView', fooExtension.bufferView )
+				.then( function ( fooBuffer ) { ... } );
+
+		} );
+		</code>
+
+		<br>
+		<hr>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+
+
+		<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>.gltf</em> or <em>.glb</em> file.<br />
+		[page:Function onLoad] — A function to be called after the loading is successfully completed. The function receives the loaded JSON response returned from [page:Function parse].<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
+		</p>
+		<p>
+		Begin loading from url and call the callback function with the parsed response content.
+		</p>
+
+		<h3>[method:null setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path for loading additional resources e.g. textures and .bin data.
+		</p>
+		<p>
+		Set the base path for additional resources.
+		</p>
+
+		<h3>[method:null setCrossOrigin]( [param:String value] )</h3>
+		<p>
+		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
+		</p>
+
+		<h3>[method:null setDRACOLoader]( [param:DRACOLoader dracoLoader] )</h3>
+		<p>
+		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.
+		</p>
+		<p>
+		Refer to this [link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/draco#readme readme] for the details of Draco and its decoder.
+		</p>
+
+		<h3>[method:null parse]( [param:ArrayBuffer data], [param:String path], [param:Function onLoad], [param:Function onError] )</h3>
+		<p>
+		[page:ArrayBuffer data] — glTF asset to parse, as an ArrayBuffer or <em>JSON</em> string.<br />
+		[page:String path] — The base path from which to find subsequent glTF resources such as textures and .bin data files.<br />
+		[page:Function onLoad] — A function to be called when parse completes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during parsing. The function receives error as an argument.<br />
+		</p>
+		<p>
+		Parse a glTF-based ArrayBuffer or <em>JSON</em> String and fire [page:Function onLoad] callback when complete. The argument to [page:Function onLoad] will be an [page:object] that contains loaded parts: .[page:Scene scene], .[page:Array scenes], .[page:Array cameras], .[page:Array animations], and .[page:Object asset].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/GLTFLoader.js examples/js/loaders/GLTFLoader.js]
+	</body>
+</html>

+ 532 - 0
docs/examples/zh/loaders/LoaderSupport.html

@@ -0,0 +1,532 @@
+<!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>
+		<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>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/LoaderSupport.js examples/js/loaders/LoaderSupport.js]
+
+	</body>
+</html>

+ 118 - 0
docs/examples/zh/loaders/MMDLoader.html

@@ -0,0 +1,118 @@
+<!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:Loader] &rarr;
+		<h1>[name]</h1>
+
+		<p class="desc"> A loader for <a href="http://www.geocities.jp/higuchuu4/index_e.htm"><em>MMD</em></a> resources. <br /><br />
+		[name] creates Three.js Objects from MMD resources as PMD, PMX, VMD, and VPD files.
+		See [page:MMDAnimationHelper] for MMD animation handling as IK, Grant, and Physics.<br /><br />
+
+		If you want raw content of MMD resources, use .loadPMD/PMX/VMD/VPD methods.
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate a loader
+		var loader = new THREE.MMDLoader();
+
+		// Load a MMD model
+		loader.load(
+			// path to PMD/PMX file
+			'models/mmd/miku.pmd',
+			// called when the resource is loaded
+			function ( mesh ) {
+
+				scene.add( mesh );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_mmd]<br />
+		[example:webgl_loader_mmd_pose]<br />
+		[example:webgl_loader_mmd_audio]<br />
+
+		<br />
+		<hr>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+
+
+		<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>.pmd</em> or <em>.pmx</em> file.<br />
+		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
+		</p>
+		<p>
+		Begin loading PMD/PMX model file from url and fire the callback function with the parsed [page:SkinnedMesh] containing [page:BufferGeometry] and an array of [page:MeshToonMaterial].
+		</p>
+
+		<h3>[method:null loadAnimation]( [param:String url], [param:Object3D object], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<p>
+		[page:String url] — A string or an array of string containing the path/URL of the <em>.vmd</em> file(s).If two or more files are specified, they'll be merged.<br />
+		[page:Object3D object] — [page:SkinnedMesh] or [page:Camera]. Clip and its tacks will be fitting to this object.<br />
+		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
+		</p>
+		<p>
+		Begin loading VMD motion file(s) from url(s) and fire the callback function with the parsed [page:AnimatioinClip].
+		</p>
+
+		<h3>[method:null loadWithAnimation]( [param:String modelUrl], [param:String vmdUrl], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<p>
+		[page:String modelUrl] — A string containing the path/URL of the <em>.pmd</em> or <em>.pmx</em> file.<br />
+		[page:String vmdUrl] — A string or an array of string containing the path/URL of the <em>.vmd</em> file(s).<br />
+		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
+		</p>
+		<p>
+		Begin loading PMD/PMX model file and VMD motion file(s) from urls and fire the callback function with an [page:Object] containing parsed [page:SkinnedMesh] and [page:AnimationClip] fitting to the [page:SkinnedMesh].
+		</p>
+
+		<h3>[method:MMDLoader setCrossOrigin]( [param:String crossOrigin] )</h3>
+		<p>
+		[page:String crossOrigin] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MMDLoader.js examples/js/loaders/MMDLoader.js]
+	</body>
+</html>

+ 104 - 0
docs/examples/zh/loaders/MTLLoader.html

@@ -0,0 +1,104 @@
+<!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 an <em>.mtl</em> resource, used internaly by [page:OBJLoader].<br />
+		The Material Template Library format (MTL) or .MTL File Format is a companion file format to .OBJ that describes surface shading
+		(material) properties of objects within one or more .OBJ files.
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:LoadingManager loadingManager] )</h3>
+		<p>
+			[page:LoadingManager loadingManager] — LoadingManager to use. Defaults to [page:DefaultLoadingManager DefaultLoadingManager]<br />
+		</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>.mtl</em> file.<br />
+			[page:Function onLoad] — (optional) A function to be called after the loading is successfully completed. The function receives the loaded [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator] instance.<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 return the loaded material.
+		</p>
+
+
+		<h3>[method:MTLLoader setPath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — required<br />
+		</p>
+		<p>
+			 Set base path for resolving references. If set this path will be prepended to each loaded and found reference.
+		</p>
+
+
+		<h3>[method:MTLLoader setTexturePath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — required<br />
+		</p>
+		<p>
+			Set base path for resolving texture references. If set this path will be prepended found texture reference. If not set and setPath is, it will be used as texture base path.
+		</p>
+
+
+		<h3>[method:MTLLoader setCrossOrigin]( [param:String value] )</h3>
+		<p>
+			[page:String value] — required<br />
+		</p>
+		<p>
+			If set, assigns the [link:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes crossOrigin]
+		 attribute of the image to the value of *crossOrigin*, prior to starting the load. Default is *"anonymous"*.
+		</p>
+
+
+		<h3>[method:MTLLoader setMaterialOptions]( [param:Object options] )</h3>
+		<p>
+			[page:Object options] — required
+			<ul>
+				<li>side: Which side to apply the material. THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide</li>
+				<li>wrap: What type of wrapping to apply for textures. THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping</li>
+				<li>normalizeRGB: RGBs need to be normalized to 0-1 from 0-255. Default: false, assumed to be already normalized</li>
+				<li>ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's. Default: false</li>
+				<li>invertTrProperty: Use values 1 of Tr field for fully opaque. This option is useful for obj exported from 3ds MAX, vcglib or meshlab. Default: false</li>
+			</ul>
+		</p>
+		<p>
+			Set of options on how to construct the materials
+		</p>
+
+
+		<h3>[method:MTLLoaderMaterialCreator parse]( [param:String text] )</h3>
+		<p>
+			[page:String text] — The textual <em>mtl</em> structure to parse.
+		</p>
+		<p>
+			Parse a <em>mtl</em> text structure and return a [page:MTLLoaderMaterialCreator] instance.<br />
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/[name].js examples/js/loaders/[name].js]
+	</body>
+</html>

+ 109 - 0
docs/examples/zh/loaders/OBJLoader.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>Example</h2>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.OBJLoader();
+
+		// load a resource
+		loader.load(
+			// resource URL
+			'models/monster.obj',
+			// called when resource is loaded
+			function ( object ) {
+
+				scene.add( object );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_obj]
+
+
+		<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>.obj</em> file.<br />
+		[page:Function onLoad] — (optional) A function to be called after the 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 function receives a 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 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:String text] )</h3>
+		<p>
+		[page:String text] — The textual <em>obj</em> structure to parse.
+		</p>
+		<p>
+		Returns an [page:Object3D]. It contains the parsed meshes as [page:Mesh] and lines as [page:LineSegments].<br />
+		All geometry is created as [page:BufferGeometry]. Default materials are created as [page:MeshPhongMaterial].<br />
+		If an <em>obj</em> object or group uses multiple materials while declaring faces, geometry groups and an array of materials are used.
+		</p>
+
+		<h3>[method:OBJLoader setMaterials]( [param:Array materials] )</h3>
+		<p>
+		[page:Array materials] - Array of [page:Material Materials].
+		</p>
+		<p>
+		Sets materials loaded by MTLLoader or any other supplier of an Array of [page:Material Materials].
+		</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>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJLoader.js examples/js/loaders/OBJLoader.js]
+	</body>
+</html>

+ 201 - 0
docs/examples/zh/loaders/OBJLoader2.html

@@ -0,0 +1,201 @@
+<!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 redeable 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
+		var loader = new THREE.OBJLoader2();
+
+		// function called on successful load
+		var callbackOnLoad = function ( event ) {
+			scene.add( event.detail.loaderRootNode );
+		};
+
+		// load a resource from provided URL synchronously
+		loader.load( 'obj/female02/female02.obj', callbackOnLoad, null, null, null, false );
+		</code>
+
+		[example:webgl_loader_obj2] - Simple example <br>
+		[example:webgl_loader_obj2_options] - Example for multiple use-cases (parse, load and run with instructions (sync and async)<br>
+		[example:webgl_loader_obj2_run_director] - Advanced example using [page:LoaderSupport.LoaderWorkerDirector] for orchestration of multiple workers.
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:LoadingManager manager], [param:LoaderSupport.ConsoleLogger logger] )</h3>
+		<p>
+			[page:LoadingManager manager] - The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].<br>
+			[page:LoaderSupport.ConsoleLogger logger] - logger to be used
+		</p>
+		<p>
+			Use [name] to load OBJ data from files or to parse OBJ data from arraybuffer or text.
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:Object3D parse]( {[param:arraybuffer content]|[param:String content]] )</h3>
+		<p>
+			[[page:arraybuffer content]|[page:String content]] OBJ data as Uint8Array or String
+		</p>
+		<p>
+			Parses OBJ data synchronously from arraybuffer or string and returns the [page:Object3D loaderRoorNode].
+		</p>
+
+
+		<h3>[method:Object3D parseAsync]( [param:arraybuffer content], [param:Function onLoad] )</h3>
+		<p>
+			[page:arraybuffer content] - OBJ data as Uint8Array<br>
+			[page:Function onLoad] - Called after worker successfully completed loading<br>
+		</p>
+		<p>
+			Parses OBJ content asynchronously from arraybuffer.
+		</p>
+
+
+		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError], [param:Function onMeshAlter], [param:boolean useAsync] )</h3>
+		<p>
+			[page:String url] - A string containing the path/URL of the file to be loaded.<br>
+			[page:Function onLoad] - A function to be called after loading is successfully completed. The function receives loaded [page:Object3D] as an argument.<br>
+			[page:Function onProgress] - (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br>
+			[page:Function onError] - (optional) A function to be called if an error occurs during loading. The function receives the error as an argument.<br>
+			[page:Function onMeshAlter] - (optional) A function to be called after a new mesh raw data becomes available for alteration.<br>
+			[page:boolean useAsync] - (optional) If true, uses async loading with worker, if false loads data synchronously.
+		</p>
+		<p>
+			Use this convenient method to load a file at the given URL. By default the fileLoader uses an ArrayBuffer.
+		</p>
+
+
+		<h3>[method:null run]( [param:LoaderSupport.PrepData params], [param:LoaderSupport.WorkerSupport workerSupportExternal] )</h3>
+		<p>
+			[page:LoaderSupport.PrepData params] - prepData All parameters and resources required for execution<br>
+			[page:LoaderSupport.WorkerSupport workerSupportExternal] - Use pre-existing WorkerSupport
+		</p>
+		<p>
+			Run the loader according the provided instructions.
+		</p>
+
+
+		<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 setModelName] ( [param:String modelName] )</h3>
+		<p>
+			[page:String modelName]
+		</p>
+		<p>
+			Set the name of the model.
+		</p>
+
+
+		<h3>[method:null setPath] ( [param:String path] )</h3>
+		<p>
+			[page:String path] - URL
+		</p>
+		<p>
+			The URL of the base path.
+		</p>
+
+
+		<h3>[method:null setStreamMeshesTo] ( [param:Object3D streamMeshesTo] )</h3>
+		<p>
+			[page:Object3D streamMeshesTo] - Object already attached to scenegraph where new meshes will be attached to
+		</p>
+		<p>
+			Set the node where the loaded objects will be attached directly.
+		</p>
+
+
+		<h3>[method:null setMaterials] ( Array of [param:Material materials] )</h3>
+		<p>
+			Array of [page:Material materials] - Array of [page:Material Materials]
+		</p>
+		<p>
+			Set materials loaded by MTLLoader or any other supplier of an Array of [page:Material Materials].
+		</p>
+
+
+		<h3>[method:null setUseIndices]( [param:Boolean useIndices] )</h3>
+		<p>
+			[page:Boolean useIndices]
+		</p>
+		<p>
+			Instructs loaders to create indexed [page:BufferGeometry].
+		</p>
+
+
+		<h3>[method:null setDisregardNormals]( [param:Boolean disregardNormals] )</h3>
+		<p>
+			[page:Boolean disregardNormals]
+		</p>
+		<p>
+			Tells whether normals should be completely disregarded and regenerated.
+		</p>
+
+
+		<h3>[method:null setMaterialPerSmoothingGroup] ( [param:boolean materialPerSmoothingGroup] )</h3>
+		<p>
+			[page:boolean materialPerSmoothingGroup]
+		</p>
+		<p>
+			Tells whether a material shall be created per smoothing group.
+		</p>
+
+
+		<h3>[method:null onProgress]( [param:String type], [param:String text], [param:Number numericalValue] )</h3>
+		<p>
+			[page:String type] - The type of event<br>
+			[page:String text] - Textual description of the event<br>
+			[page:Number numericalValue] - Numerical value describing the progress
+		</p>
+		<p>
+			Announce feedback which is give to the registered [page:LoaderSupport.Callbacks].
+		</p>
+
+
+		<h3>[method:null loadMtl]( [param:String url], [param:Object content], [param:Function callbackOnLoad], [param:String crossOrigin], [param:Object materialOptions]) </h3>
+		<p>
+			[page:String url] - URL to the file<br>
+			[page:Object content] - The file content as arraybuffer or text<br>
+			[page:Function onLoad] - Callback to be called after successful load<br>
+			[page:Function onProgress] - (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br>
+			[page:Function onError] - (optional) A function to be called if an error occurs during loading. The function receives the error as an argument.<br>
+			[page:String crossOrigin] - (optional) CORS value<br>
+			[page:Function materialOptions] - (optional) Set material loading options for MTLLoader
+		</p>
+		<p>
+			Utility method for loading an mtl file according resource description. Provide url or content.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJLoader2.js examples/js/loaders/OBJLoader2.js]
+	</body>
+</html>

+ 100 - 0
docs/examples/zh/loaders/PCDLoader.html

@@ -0,0 +1,100 @@
+<!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>.pcd</em> resource. <br />
+		Point Cloud Data is a file format for <a href="https://en.wikipedia.org/wiki/Point_Cloud_Library">Point Cloud Library</a>. <br />
+		Loader support ascii and binary. Compressed binary files are not supported.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+
+		// instantiate a loader
+		var loader = new THREE.PCDLoader();
+
+		// load a resource
+		loader.load(
+			// resource URL
+			'pointcloud.pcd',
+			// called when the resource is loaded
+			function ( mesh ) {
+
+				scene.add( mesh );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_pcd]
+
+
+		<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>
+
+		<h3>[page:Boolean littleEndian]</h3>
+		<p>
+		Default value is true.
+		</p>
+
+		<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>.pcd</em> file.<br />
+		[page:Function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives loaded [page:Object3D] as an argument.<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives the error as an argument.<br />
+		</p>
+		<p>
+		Begin loading from url and call onLoad with the parsed response content.
+		</p>
+
+		<h3>[method:Object3D parse]( [param:Arraybuffer data],[param:String url] )</h3>
+		<p>
+		[page:Arraybuffer data] — The binary structure to parse.
+		</p>
+		<p>
+		[page:String url] — The file name or file url.
+		</p>
+		<p>
+		Parse an <em>pcd</em> binary structure and return an [page:Object3D].<br />
+		The object is converted to [page:Points] with a [page:BufferGeometry] and a [page:PointsMaterial].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PCDLoader.js examples/js/loaders/PCDLoader.js]
+	</body>
+</html>

+ 94 - 0
docs/examples/zh/loaders/PDBLoader.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">A loader for loading a <em>.pdb</em> resource.<br>
+		The <a href="http://en.wikipedia.org/wiki/Protein_Data_Bank_(file_format)">Protein Data Bank</a> file format is a textual file describing the three-dimensional structures of molecules.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.PDBLoader();
+
+		// load a PDB resource
+		loader.load(
+			// resource URL
+			'models/molecules/caffeine.pdb',
+			// called when the resource is loaded
+			function ( pdb ) {
+
+				var geometryAtoms = pdb.geometryAtoms;
+				var geometryBonds = pdb.geometryBonds;
+				var json = pdb.json;
+
+				console.log( 'This molecule has ' + json.atoms.length + ' atoms' );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_pdb]
+
+
+		<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>.pdb</em> file.<br />
+		[page:Function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives the object having the following properties. [page:BufferGeometry geometryAtoms], [page:BufferGeometry geometryBonds] and the [page:Object JSON] structure.<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:Object parse]( [param:String text] )</h3>
+		<p>
+		[page:String text] — The textual <em>pdb</em> structure to parse.
+		</p>
+		<p>
+		Parse a <em>pdb</em> text and return a <em>JSON</em> structure.<br />
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PDBLoader.js examples/js/loaders/PDBLoader.js]
+	</body>
+</html>

+ 108 - 0
docs/examples/zh/loaders/PRWMLoader.html

@@ -0,0 +1,108 @@
+<!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>.prwm</em> resource.<br />
+		Packed Raw WebGL Model is an open-source binary file format for nD geometries specifically designed for
+		JavaScript and WebGL with a strong focus on fast parsing (from 1ms to 0.1ms in Chrome 59
+		on a MBP Late 2013). The parsing of PRWM file is especially fast when the endianness of the file is
+		the same as the endianness of the client platform. More information
+		on this <a href="https://github.com/kchapelier/PRWM">here</a>.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.PRWMLoader();
+
+		// load a resource
+		loader.load(
+			// resource URL
+			'models/nefertiti.le.prwm',
+			// called when resource is loaded
+			function ( bufferGeometry ) {
+
+				var object = new THREE.Mesh( bufferGeometry, new THREE.MeshNormalMaterial() );
+				scene.add( object );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_prwm]
+
+
+		<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>.prwm</em> file. Any <em>*</em> character in the URL will be automatically replaced by <em>le</em> or <em>be</em> depending on the platform endianness.<br />
+		[page:Function onLoad] — (optional) A function to be called after the loading is successfully completed. The function receives the loaded [page:BufferGeometry] as an argument.<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The function receives a 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 error as an argument.<br />
+		</p>
+		<p>
+		Begin loading from url and call onLoad with the parsed response content.
+		</p>
+
+		<h3>[method:BufferGeometry parse]( [param:ArrayBuffer arrayBuffer] )</h3>
+		<p>
+		[page:ArrayBuffer arrayBuffer] — ArrayBuffer containing the <em>prwm</em> data.
+		</p>
+		<p>
+		Parse a <em>prwm</em> file passed as an ArrayBuffer and directly return an instance of [page:BufferGeometry].
+		</p>
+
+		<h3>PRWMLoader.isBigEndianPlatform( )</h3>
+
+		<p>
+		Return true if the endianness of the platform is Big Endian, false otherwise.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
+
+		<h2>Additional notes</h2>
+
+		<p>
+		This loader is additionally available on npm as <a href="https://www.npmjs.com/package/three-prwm-loader">three-prwm-loader</a>.
+		</p>
+
+	</body>
+</html>

+ 107 - 0
docs/examples/zh/loaders/SVGLoader.html

@@ -0,0 +1,107 @@
+<!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>.svg</em> resource.<br >
+		<a href="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics">Scalable Vector Graphics</a> is an XML-based vector image format for two-dimensional graphics with support for interactivity and animation.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.SVGLoader();
+
+		// load a SVG resource
+		loader.load(
+			// resource URL
+			'data/svgSample.svg',
+			// called when the resource is loaded
+			function ( paths ) {
+
+				var group = new THREE.Group();
+
+				for ( var i = 0; i < paths.length; i ++ ) {
+
+					var path = paths[ i ];
+
+					var material = new THREE.MeshBasicMaterial( {
+						color: path.color,
+						side: THREE.DoubleSide,
+						depthWrite: false
+					} );
+
+					var shapes = path.toShapes( true );
+
+					for ( var j = 0; j < shapes.length; j ++ ) {
+
+						var shape = shapes[ j ];
+						var geometry = new THREE.ShapeBufferGeometry( shape );
+						var mesh = new THREE.Mesh( geometry, material );
+						group.add( mesh );
+
+					}
+
+				}
+
+				scene.add( group );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_svg]
+
+		<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>.svg</em> file.<br />
+		[page:Function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives the loaded [page:SVGDocument] 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 response content.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js examples/js/loaders/SVGLoader.js]
+	</body>
+</html>

+ 83 - 0
docs/examples/zh/loaders/TGALoader.html

@@ -0,0 +1,83 @@
+<!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>.tga</em> resource. <br />
+		<a href="https://en.wikipedia.org/wiki/Truevision_TGA">TGA</a> is a raster graphics, image file format.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.TGALoader();
+
+		// load a resource
+		var texture = loader.load(
+			// resource URL
+			'textures/crate_grey8.tga'
+			// called when loading is completed
+			function ( texture ) {
+
+				console.log( 'Texture is loaded' );
+
+			},
+			// called when the loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when the loading failes
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+
+		var material = new THREE.MeshPhongMaterial( {
+			color: 0xffffff,
+			map: texture
+		} );
+		</code>
+
+		[example:webgl_materials_texture_tga]
+
+		<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>Methods</h2>
+
+		<h3>[method:DataTexture 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>.tga</em> file. <br />
+		[page:Function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives loaded [page:DataTexture] 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 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>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/TGALoader.js examples/js/loaders/TGALoader.js]
+	</body>
+</html>

+ 71 - 0
docs/examples/zh/objects/Lensflare.html

@@ -0,0 +1,71 @@
+<!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">
+			Creates a simulated lens flare that tracks a light.<br /><br />
+		</p>
+
+		<h2>Example</h2>
+
+		<p>
+			[example:webgl_lensflares lensflares]
+
+			<code>
+var light = new THREE.PointLight( 0xffffff, 1.5, 2000 );
+
+var textureLoader = new THREE.TextureLoader();
+
+var textureFlare0 = textureLoader.load( "textures/lensflare/lensflare0.png" );
+var textureFlare1 = textureLoader.load( "textures/lensflare/lensflare2.png" );
+var textureFlare2 = textureLoader.load( "textures/lensflare/lensflare3.png" );
+
+var lensflare = new THREE.Lensflare();
+
+lensflare.addElement( new THREE.LensflareElement( textureFlare0, 512, 0 ) );
+lensflare.addElement( new THREE.LensflareElement( textureFlare1, 512, 0 ) );
+lensflare.addElement( new THREE.LensflareElement( textureFlare2, 60, 0.6 ) );
+
+light.add( lensflare );
+			</code>
+
+		</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>LensflareElement( [param:Texture texture], [param:Float size], [param:Float distance], [param:Color color], [param:Materials blending] )</h3>
+		<p>
+		[page:Texture texture] - THREE.Texture to use for the flare. <br />
+		[page:Float size] - (optional) size in pixels <br />
+		[page:Float distance] - (optional) (0-1) from light source (0 = at light source) <br />
+		[page:Color color] - (optional) the [page:Color] of the lens flare<br />
+		[page:Materials blending] - (optional) [page:Materials Blending Mode] - Defaults to THREE.NormalBlending
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Mesh] class for common properties.</p>
+
+		<h3>[property:Boolean isLensflare]</h3>
+		<p>
+			Used to check whether this or derived classes are lensflares. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/Lensflare.js examples/js/objects/Lensflare.js]
+	</body>
+</html>

+ 89 - 0
docs/examples/zh/quickhull/Face.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">
+			Represents a section bounded by a specific amount of half-edges. The current implmentation assumes that a face always consist of three edges.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Vector3 normal]</h3>
+		<p>
+			The normal vector of the face. Default is a [page:Vector3] at (0, 0, 0).
+		</p>
+
+		<h3>[property:Vector3 midpoint]</h3>
+		<p>
+			The midpoint or centroid of the face. Default is a [page:Vector3] at (0, 0, 0).
+		</p>
+
+		<h3>[property:Float area]</h3>
+		<p>
+			The area of the face. Default is 0.
+		</p>
+
+		<h3>[property:Float constant]</h3>
+		<p>
+			Signed distance from face to the origin. Default is 0.
+		</p>
+
+		<h3>[property:VertexNode outside]</h3>
+		<p>
+			Reference to a vertex in a vertex list this face can see. Default is null.
+		</p>
+
+		<h3>[property:Integer mark]</h3>
+		<p>
+			Marks if a face is visible or deleted. Default is 'Visible'.
+		</p>
+
+		<h3>[property:HalfEdge edge]</h3>
+		<p>
+			Reference to the base edge of a face. To retrieve all edges, you can use the 'next' reference of the current edge. Default is null.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Face create]( [param:VertexNode a], [param:VertexNode b], [param:VertexNode c] )</h3>
+		[page:VertexNode a] - First vertex of the face.<br /><br />
+		[page:VertexNode b] - Second vertex of the face.<br /><br />
+		[page:VertexNode c] - Third vertex of the face.<br /><br />
+
+		<p>Creates a face.</p>
+
+		<h3>[method:HalfEdge getEdge]( [param:Integer i] )</h3>
+		[page:Integer i] - The index of the edge.<br /><br />
+
+		<p>Returns an edge by the given index.</p>
+
+		<h3>[method:Face compute] ()</h3>
+
+		<p>Computes all properties of the face.</p>
+
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		[page:Vector3 point] - Any point in 3D space.<br /><br />
+
+		<p>Returns the signed distance from a given point to the plane representation of this face.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/QuickHull.js examples/js/QuickHull.js]
+	</body>
+</html>

+ 79 - 0
docs/examples/zh/quickhull/HalfEdge.html

@@ -0,0 +1,79 @@
+<!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">
+			The basis for a half-edge data structure, also known as doubly connected edge list (DCEL).<br />
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:VertexNode vertex], [param:Face face] )</h3>
+		<p>
+		[page:VertexNode vertex] - [page:VertexNode] A reference to its destination vertex.<br /><br />
+		[page:Face face] - [page:Face] A reference to its face.<br />
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:VertexNode vertex]</h3>
+		<p>
+			Reference to the destination vertex. The origin vertex can be obtained by querying the destination of its twin, or of the previous half-edge. Default is undefined.
+		</p>
+
+		<h3>[property:HalfEdge prev]</h3>
+		<p>
+			Reference to the previous half-edge of the same face. Default is null.
+		</p>
+
+		<h3>[property:HalfEdge next]</h3>
+		<p>
+			Reference to the next half-edge of the same face. Default is null.
+		</p>
+
+		<h3>[property:HalfEdge twin]</h3>
+		<p>
+			Reference to the twin half-edge to reach the opposite face. Default is null.
+		</p>
+
+		<h3>[property:Face face]</h3>
+		<p>
+			 Each half-edge bounds a single face and thus has a reference to that face. Default is undefined.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:VertexNode head]()</h3>
+		<p>Returns the destintation vertex.</p>
+
+		<h3>[method:VertexNode tail]()</h3>
+		<p>Returns the origin vertex.</p>
+
+		<h3>[method:Float length]()</h3>
+		<p>Returns the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
+		(straight-line length) of the edge.</p>
+
+		<h3>[method:Float lengthSquared]()</h3>
+		<p>Returns the square of the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
+		(straight-line length) of the edge.</p>
+
+		<h3>[method:HalfEdge setTwin]( [param:HalfEdge edge] )</h3>
+		[page:HalfEdge edge] - Any half-edge.<br /><br />
+
+		<p>Sets the twin edge of this half-edge. It also ensures that the twin reference of the given half-edge is correctly set.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/QuickHull.js examples/js/QuickHull.js]
+	</body>
+</html>

+ 175 - 0
docs/examples/zh/quickhull/QuickHull.html

@@ -0,0 +1,175 @@
+<!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">
+			General information about the Quickhull algorithm: Dirk Gregorius. March 2014, Game Developers Conference: [link:http://media.steampowered.com/apps/valve/2014/DirkGregorius_ImplementingQuickHull.pdf Implementing QuickHull].
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Float tolerance]</h3>
+		<p>
+			The epsilon value that is used for internal comparative operations. The calculation of this value depends on the size of the geometry. Default is -1.
+		</p>
+
+		<h3>[property:Array faces]</h3>
+		<p>
+			The generated faces of the convex hull. Default is an empty array.
+		</p>
+
+		<h3>[property:Array newFaces]</h3>
+		<p>
+			This array holds the faces that are generated within a single iteration. Default is an empty array.
+		</p>
+
+		<h3>[property:VertexList assigned]</h3>
+		<p>
+			This [page:VertexList vertex list] holds all vertices that are assigned to a face. Default is an empty vertex list.
+		</p>
+
+		<h3>[property:VertexList unassigned]</h3>
+		<p>
+			This [page:VertexList vertex list] holds all vertices that are not assigned to a face. Default is an empty vertex list.
+		</p>
+
+		<h3>[property:Array vertices]</h3>
+		<p>
+			The internal representation of the given geometry data (an array of [page:VertexNode vertices]).
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:QuickHull setFromPoints]( [param:Array points] )</h3>
+		[page:Array points] - Array of [page:Vector3 Vector3s] that the resulting convex hull will contain.<br /><br />
+
+		<p>Computes to convex hull for the given array of points.</p>
+
+		<h3>[method:QuickHull setFromObject]( [param:Object3D object] )</h3>
+		[page:Object3D object] - [page:Object3D] to compute the convex hull of.<br /><br />
+
+		<p>Computes the convex hull of an [page:Object3D] (including its children),
+		accounting for the world transforms of both the object and its childrens.</p>
+
+		<h3>[method:QuickHull makeEmpty]()</h3>
+
+		<p>Makes this convex hull empty.</p>
+
+		<h3>[method:QuickHull addVertexToFace]( [param:VertexNode vertex], [param:Face face]	)</h3>
+		[page:VertexNodeNode vertex] - The vertex to add.<br /><br />
+		[page:Face face] - The target face.<br /><br />
+
+		<p>Adds a vertex to the 'assigned' list of vertices and assigns it to the given face.</p>
+
+		<h3>[method:QuickHull removeVertexFromFace]( [param:VertexNode vertex], [param:Face face]	)</h3>
+		[page:VertexNode vertex] - The vertex to remove.<br /><br />
+		[page:Face face] - The target face.<br /><br />
+
+		<p>Removes a vertex from the 'assigned' list of vertices and from the given face. It also makes sure that the link from 'face' to the first vertex it sees in 'assigned' is linked correctly after the removal.</p>
+
+		<h3>[method:VertexNode removeAllVerticesFromFace]( [param:Face face]	)</h3>
+		[page:Face face] - The given face.<br /><br />
+
+		<p>Removes all the visible vertices that a given face is able to see which are stored in the 'assigned' vertext list.</p>
+
+		<h3>[method:QuickHull deleteFaceVertices]( [param:Face face], [param:Face absorbingFace]	)</h3>
+		[page:Face face] - The given face.<br /><br />
+		[page:Face absorbingFace] - An optional face that tries to absorb the vertices of the first face.<br /><br />
+
+		<p>Removes all the visible vertices that 'face' is able to see.
+			<ul>
+				<li>If 'absorbingFace' doesn't exist, then all the removed vertices will be added to the 'unassigned' vertex list.</li>
+				<li>If 'absorbingFace' exists, then this method will assign all the vertices of 'face' that can see 'absorbingFace'.</li>
+				<li>If a vertex cannot see 'absorbingFace', it's added to the 'unassigned' vertex list.</li>
+			</ul>
+		</p>
+
+		<h3>[method:QuickHull resolveUnassignedPoints]( [param:Array newFaces]	)</h3>
+		[page:Face newFaces] - An array of new faces.<br /><br />
+
+		<p>Reassigns as many vertices as possible from the unassigned list to the new faces.</p>
+
+		<h3>[method:Object computeExtremes]()</h3>
+
+		<p>Computes the extremes values (min/max vectors) which will be used to compute the inital hull.</p>
+
+		<h3>[method:QuickHull computeInitialHull]()</h3>
+
+		<p>Computes the initial simplex assigning to its faces all the points that are candidates to form part of the hull.</p>
+
+		<h3>[method:QuickHull reindexFaces]()</h3>
+
+		<p>Removes inactive (e.g. deleted) faces from the internal face list.</p>
+
+		<h3>[method:VertexNode nextVertexToAdd]()</h3>
+
+		<p>Finds the next vertex to create faces with the current hull.
+			<ul>
+				<li>Let the initial face be the first face existing in the 'assigned' vertex list.</li>
+				<li>If a face doesn't exist then return since there're no vertices left.</li>
+				<li>Otherwise for each vertex that face sees find the one furthest away from it.</li>
+			</ul>
+		</p>
+
+		<h3>[method:QuickHull computeHorizon]( [param:Vector3 eyePoint], [param:HalfEdge crossEdge], [param:Face face], [param:Array horizon]	)</h3>
+		[page:Vector3 eyePoint] - The 3D-coordinates of a point.<br /><br />
+		[page:HalfEdge crossEdge] - The edge used to jump to the current face.<br /><br />
+		[page:Face face] - The current face being tested.<br /><br />
+		[page:Array horizon] - The edges that form part of the horizon in CCW order.<br /><br />
+
+		<p>Computes a chain of half edges in CCW order called the 'horizon'. For an edge to be part of the horizon it must join a face that can see 'eyePoint' and a face that cannot see 'eyePoint'.</p>
+
+		<h3>[method:HalfEdge addAdjoiningFace]( [param:VertexNode eyeVertex], [param:HalfEdge horizonEdge] )</h3>
+		[page:VertexNode eyeVertex] - The vertex that is added to the hull.<br /><br />
+		[page:HalfEdge horizonEdge] - A single edge of the horizon.<br /><br />
+
+		<p>Creates a face with the vertices 'eyeVertex.point', 'horizonEdge.tail' and 'horizonEdge.head' in CCW order.
+			All the half edges are created in CCW order thus the face is always pointing outside the hull</p>
+
+		<h3>[method:QuickHull addNewFaces]( [param:VertexNode eyeVertex], [param:HalfEdge horizonEdge] )</h3>
+		[page:VertexNode eyeVertex] - The vertex that is added to the hull.<br /><br />
+		[page:HalfEdge horizon] - An array of half-edges that form the horizon.<br /><br />
+
+		<p>Adds 'horizon.length' faces to the hull, each face will be linked with the horizon opposite face and the face on the left/right.</p>
+
+		<h3>[method:QuickHull addVertexToHull]( [param:VertexNode eyeVertex] )</h3>
+		[page:VertexNode eyeVertex] - The vertex that is added to the hull.<br /><br />
+
+		<p>Adds a vertex to the hull with the following algorithm
+			<ul>
+				<li>Compute the 'horizon' which is a chain of half edges. For an edge to belong to this group it must be the edge connecting a face that can see 'eyeVertex' and a face which cannot see 'eyeVertex'.</li>
+				<li>All the faces that can see 'eyeVertex' have its visible vertices removed from the assigned vertex list.</li>
+				<li>A new set of faces is created with each edge of the 'horizon' and 'eyeVertex'. Each face is connected with the opposite horizon face and the face on the left/right.</li>
+				<li>The vertices removed from all the visible faces are assigned to the new faces if possible.</li>
+			</ul>
+		</p>
+
+		<h3>[method:QuickHull cleanup]()</h3>
+
+		<p>Cleans up internal properties after computing the convex hull.</p>
+
+		<h3>[method:QuickHull compute]()</h3>
+
+		<p>Starts the execution of the quick hull algorithm.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/QuickHull.js examples/js/QuickHull.js]
+	</body>
+</html>

+ 91 - 0
docs/examples/zh/quickhull/VertexList.html

@@ -0,0 +1,91 @@
+<!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 doubly linked list of vertices.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:VertexNode head]</h3>
+		<p>
+			Reference to the first vertex of the linked list. Default is null.
+		</p>
+
+		<h3>[property:VertexNode tail]</h3>
+		<p>
+			Reference to the last vertex of the linked list. Default is null.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:VertexNode first]()</h3>
+		<p>Returns the head reference.</p>
+
+		<h3>[method:VertexNode last]()</h3>
+		<p>Returns the tail reference.</p>
+
+		<h3>[method:VertexList clear]()</h3>
+		<p>Clears the linked list.</p>
+
+		<h3>[method:VertexList insertBefore]( [param:Vertex target], [param:Vertex vertex] )</h3>
+		<p>
+		[page:Vertex target] - The target vertex. It's assumed that this vertex belongs to the linked list.<br /><br />
+		[page:Vertex vertex] - The vertex to insert.<br /><br />
+		</p>
+
+		<p>Inserts a vertex <strong>before</strong> a target vertex.</p>
+
+		<h3>[method:VertexList insertAfter]( [param:Vertex target], [param:Vertex vertex] )</h3>
+		[page:Vertex target] - The target vertex. It's assumed that this vertex belongs to the linked list.<br /><br />
+		[page:Vertex vertex] - The vertex to insert.<br /><br />
+
+		<p>Inserts a vertex <strong>after</strong> a target vertex.</p>
+
+		<h3>[method:VertexList append]( [param:Vertex vertex] )</h3>
+		[page:Vertex vertex] - The vertex to append.<br /><br />
+
+		<p>Appends a vertex to the end of the linked list.</p>
+
+		<h3>[method:VertexList appendChain]( [param:Vertex vertex] )</h3>
+		[page:Vertex vertex] - The head vertex of a chain of vertices.<br /><br />
+
+		<p>Appends a chain of vertices where the given vertex is the head.</p>
+
+		<h3>[method:VertexList remove]( [param:Vertex vertex] )</h3>
+		[page:Vertex vertex] - The vertex to remove.<br /><br />
+
+		<p>Removes a vertex from the linked list.</p>
+
+		<h3>[method:VertexList removeSubList]( [param:Vertex a], [param:Vertex b] )</h3>
+		[page:Vertex a] - The head of the sublist.<br /><br />
+		[page:Vertex b] - The tail of the sublist.<br /><br />
+
+		<p>Removes a sublist of vertices from the linked list.</p>
+
+		<h3>[method:Boolean isEmpty]()</h3>
+
+		<p>Returns true if the linked list is empty.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/QuickHull.js examples/js/QuickHull.js]
+	</body>
+</html>

+ 52 - 0
docs/examples/zh/quickhull/VertexNode.html

@@ -0,0 +1,52 @@
+<!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 vertex as a double linked list node.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] A point (x, y, z) in 3D space.<br /><br />
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Vector3 point]</h3>
+		<p>
+			A point (x, y, z) in 3D space. Default is undefined.
+		</p>
+
+		<h3>[property:VertexNode prev]</h3>
+		<p>
+			Reference to the previous vertex in the double linked list. Default is null.
+		</p>
+
+		<h3>[property:VertexNode next]</h3>
+		<p>
+			Reference to the next vertex in the double linked list. Default is null.
+		</p>
+
+		<h3>[property:Face face]</h3>
+		<p>
+			Reference to the face that is able to see this vertex. Default is undefined.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/QuickHull.js examples/js/QuickHull.js]
+	</body>
+</html>

+ 65 - 0
docs/examples/zh/renderers/CSS2DRenderer.html

@@ -0,0 +1,65 @@
+<!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] is a simplified version of [page:CSS3DRenderer]. The only transformation that is supported is translation.<br /><br />
+			The renderer is very useful if you want to combine HTML based labels with 3D objects. Here too, the respective DOM elements are wrapped into an instance of *CSS2DObject* and added to the scene graph.<br />
+		</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:css2d_label]<br>
+			[example:webgl_loader_pdb molecules]
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Object getSize]()</h3>
+		<p>
+			Returns an object containing the width and height of the renderer.
+		</p>
+
+		<h3>[method:null render]( [param:Scene scene], [param:Camera camera] )</h3>
+		<p>
+			Renders a [page:Scene scene] using a [page:Camera camera].<br />
+		</p>
+
+		<h3>[method:null setSize]([param:Number width], [param:Number height])</h3>
+		<p>
+			Resizes the renderer to (width, height).
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+	</body>
+</html>

+ 77 - 0
docs/examples/zh/renderers/CSS3DRenderer.html

@@ -0,0 +1,77 @@
+<!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] can be used to apply hierarchical 3D transformations to DOM elements
+			via the CSS3 [link:https://www.w3schools.com/cssref/css3_pr_transform.asp transform] property.
+			This renderer is particular interesting if you want to apply 3D effects to a website without
+			canvas based rendering. It can also be used in order to combine DOM elements with WebGL
+			content.<br /><br />
+			There are, however, some important limitations:
+			<ul>
+				<li>It's not possible to use the material system of *three.js*.</li>
+				<li>It's also not possible to use geometries.</li>
+			</ul>
+			So [name] is just focused on ordinary DOM elements. These elements are wrapped into special objects (*CSS3DObject* or *CSS3DSprite*) and then added to the scene graph.
+		</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:css3d_molecules molecules]<br />
+			[example:css3d_orthographic orthographic camera]<br />
+			[example:css3d_panorama panorama]<br />
+			[example:css3d_periodictable periodictable]<br />
+			[example:css3d_sprites sprites]<br />
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Object getSize]()</h3>
+		<p>
+			Returns an object containing the width and height of the renderer.
+		</p>
+
+		<h3>[method:null render]( [param:Scene scene], [param:PerspectiveCamera camera] )</h3>
+		<p>
+			Renders a [page:Scene scene] using a [page:PerspectiveCamera perspective camera].<br />
+		</p>
+
+		<h3>[method:null setSize]([param:Number width], [param:Number height])</h3>
+		<p>
+			Resizes the renderer to (width, height).
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+	</body>
+</html>

+ 174 - 0
docs/examples/zh/renderers/CanvasRenderer.html

@@ -0,0 +1,174 @@
+<!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">
+			The Canvas renderer displays your beautifully crafted scenes <em>not</em> using WebGL,
+			but draws it using the (slower) <a href="http://drafts.htmlwg.org/2dcontext/html5_canvas_CR/Overview.html">Canvas 2D Context</a>
+			API.<br /><br />
+
+			<b>
+			NOTE: The Canvas renderer has been deprecated and is no longer part of the three.js core.
+			</b>
+			If you still need to use it you can find it here: [link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js].<br /><br />
+
+			This renderer can be a nice fallback from [page:WebGLRenderer] for simple scenes:
+
+			<code>
+			function webglAvailable() {
+				try {
+					var canvas = document.createElement( 'canvas' );
+					return !!( window.WebGLRenderingContext && (
+						canvas.getContext( 'webgl' ) ||
+						canvas.getContext( 'experimental-webgl' ) )
+					);
+				} catch ( e ) {
+					return false;
+				}
+			}
+
+			if ( webglAvailable() ) {
+				renderer = new THREE.WebGLRenderer();
+			} else {
+				renderer = new THREE.CanvasRenderer();
+			}
+			</code>
+
+			Note: both WebGLRenderer and CanvasRenderer are embedded in the web page using an HTML5 &lt;canvas&gt; tag.
+			The "Canvas" in CanvasRenderer means it uses Canvas 2D instead of WebGL.<br /><br />
+
+			Don't confuse either CanvasRenderer with the SoftwareRenderer example, which simulates a screen buffer in a Javascript array.
+		</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([param:object parameters])</h3>
+		<p>parameters is an optional object with properties defining the renderer's behaviour. The constructor also accepts no parameters at all. In all cases, it will assume sane defaults when parameters are missing.</p>
+
+		<p>
+		[page:DOMElement canvas] - A [link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas]
+		where the renderer draws its output.
+		This corresponds to the [page:CanvasRenderer.domElement domElement] property below.
+		If not passed in here, a new canvas element will be created.<br />
+
+		[page:Boolean alpha] - whether the canvas contains an alpha (transparency) buffer or not.
+	  Default is *false*.
+		</p>
+
+
+		<h2>Properties</h2>
+
+    <h3>[property:Object info]</h3>
+
+		<p>
+			An object with a series of statistical information about the graphics board memory and the rendering process. Useful for debugging or just for the sake of curiosity. The object contains the following fields:
+			<ul>
+				<li>render:
+					<ul>
+						<li>vertices</li>
+						<li>faces</li>
+					</ul>
+				</li>
+			</ul>
+		</p>
+
+    <h3>[property:DOMElement domElement]</h3>
+
+		<p>
+			A [page:Canvas] where the renderer draws its output.<br />
+			This is automatically created by the renderer in the constructor (if not provided already); you just need to add it to your page.
+		</p>
+
+		<h3>[property:Boolean autoClear]</h3>
+		<p>
+      Defines whether the renderer should automatically clear its output before rendering.
+    </p>
+
+		<h3>[property:Boolean sortObjects]</h3>
+		<p>
+      Defines whether the renderer should sort objects. Default is true.<br />
+      Note: Sorting is used to attempt to properly render objects that have some degree of transparency.  By definition, sorting objects may not work in all cases.  Depending on the needs of application, it may be neccessary to turn off sorting and use other methods to deal with transparency rendering e.g. manually determining the object rendering order.
+    </p>
+
+		<h3>[property:boolean sortElements]</h3>
+		<p>
+			Defines whether the renderer should sort the face of each object. Default is true.
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null render]([param:Scene scene], [param:Camera camera])</h3>
+		<p>
+			scene -- The scene to render. <br />
+			camera -- the camera to view the scene.
+		</p>
+		<p>
+        Render a scene using a camera.
+		</p>
+
+		<h3>[method:null clear]()</h3>
+		<p>
+			Tells the renderer to clear its color drawing buffer with the clearcolor.
+		</p>
+
+		<h3>[method:null setClearColor]([param:Color color], [param:number alpha])</h3>
+		<p>
+			color -- The color to clear the canvas with. <br />
+			alpha -- The alpha channel to clear the canvas with.
+		</p>
+		<p>
+			This set the clearColor and the clearAlpha.
+		</p>
+
+
+		<h3>[method:null setSize]([param:Number width], [param:Number height])</h3>
+		<p>
+			width -- The width of the drawing canvas. <br />
+			height -- The height of the drawing canvas.
+		</p>
+		<p>
+			This set the size of the drawing canvas and if updateStyle is set, then the css of the canvas is updated too.
+		</p>
+
+		<h3>[method:null setClearColorHex]([param:number hex], [param:number alpha])</h3>
+		<p>
+			hex -- The the hexadecimal value of the color to clear the canvas with. <br />
+	    alpha -- The alpha channel to clear the canvas with.
+		</p>
+		<p>
+			This set the clearColor and the clearAlpha.
+		</p>
+
+		<h3>[method:number getClearColorHex]()</h3>
+		<p>
+			Returns the [page:number hex] color.
+		</p>
+
+		<h3>[method:number getClearAlpha]()</h3>
+		<p>
+			Returns the alpha value.
+		</p>
+
+		<h2>Empty Methods to Maintain Compatibility with [page:WebglRenderer]</h2>
+		<p>
+			[method:null clearColor]()<br/>
+			[method:null clearDepth]()<br/>
+			[method:null clearStencil]()<br/>
+			[method:number getMaxAnisotropy]() - returns 1 <br/>
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+	</body>
+</html>

+ 100 - 0
docs/examples/zh/renderers/SVGRenderer.html

@@ -0,0 +1,100 @@
+<!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>
+
+		<div class="desc">
+			<p>
+				[name] can be used to render geometric data using SVG. The produced vector graphics are particular useful in the following use cases:
+			</p>
+			<ul>
+				<li>Animated logos or icons</li>
+				<li>Interactive 2D/3D diagrams or graphs</li>
+				<li>Interactive maps</li>
+				<li>Complex or animated user interfaces</li>
+			</ul>
+			<p>
+				[name] has various advantages. It produces crystal-clear and sharp output which is independent of the actual viewport resolution.<br />
+				SVG elements can be styled via CSS. And they have good accessibility since it's possible to add metadata like title or description (useful for search engines or screen readers).
+			</p>
+			<p>
+				There are, however, some important limitations:
+			</p>
+			<ul>
+				<li>No advanced shading</li>
+				<li>No texture support</li>
+				<li>No shadow support</li>
+			</ul>
+		</div>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:svg_lines lines]<br />
+			[example:svg_sandbox sandbox]
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null clear]()</h3>
+		<p>
+			Tells the renderer to clear its drawing surface.
+		</p>
+
+		<h3>[method:null render]( [param:Scene scene], [param:Camera camera] )</h3>
+		<p>
+			Renders a [page:Scene scene] using a [page:Camera camera].
+		</p>
+
+		<h3>[method:null setClearColor]( [param:Color color], [param:number alpha] )</h3>
+		<p>
+			Sets the clearColor and the clearAlpha.
+		</p>
+
+		<h3>[method:null setPrecision]( [param:Number precision] )</h3>
+		<p>
+			Sets the precision of the data used to create a path.
+		</p>
+
+		<h3>[method:null setQuality]()</h3>
+		<p>
+			Sets the render quality. Possible values are *low* and *high* (default).
+		</p>
+
+		<h3>[method:null setSize]( [param:Number width], [param:Number height] )</h3>
+		<p>
+			Resizes the renderer to (width, height).
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+	</body>
+</html>

+ 51 - 0
docs/examples/zh/utils/BufferGeometryUtils.html

@@ -0,0 +1,51 @@
+<!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 class containing utility functions for [page:BufferGeometry BufferGeometry] instances.<br /><br />
+    </p>
+
+
+    <h2>Methods</h2>
+
+    <h3>[method:null computeTangents]( [param:BufferGeometry geometry] )</h3>
+    <p>
+    geometry -- A [page:BufferGeometry BufferGeometry] instance, which must have index, position, normal, and uv attributes.<br /><br />
+
+    Calculates and adds tangent attribute to a geometry.<br /><br />
+
+    </p>
+
+    <h3>[method:BufferGeometry mergeBufferGeometries]( [param:Array geometries] )</h3>
+    <p>
+    geometries -- Array of [page:BufferGeometry BufferGeometry] instances.<br /><br />
+
+    Merges a set of geometries into a single instance. All geometries must have compatible attributes.
+    If merge does not succeed, the method returns null.<br /><br />
+
+    </p>
+
+    <h3>[method:BufferAttribute mergeBufferAttributes]( [param:Array attributes] )</h3>
+    <p>
+    attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
+
+    Merges a set of attributes into a single instance. All attributes must have compatible properties
+    and types, and [page:InterleavedBufferAttribute InterleavedBufferAttributes] are not supported. If merge does not succeed, the method
+    returns null.
+
+    </p>
+
+    <h2>Source</h2>
+
+    [link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/BufferGeometryUtils.js examples/js/utils/BufferGeometryUtils.js]
+  </body>
+</html>

+ 53 - 0
docs/examples/zh/utils/SceneUtils.html

@@ -0,0 +1,53 @@
+<!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 class containing useful utility functions for scene manipulation.</p>
+
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:Group createMultiMaterialObject]( [param:Geometry geometry], [param:Array materials] )</h3>
+		<p>
+		geometry -- The geometry for the set of materials. <br />
+		materials -- The materials for the object.
+		</p>
+		<p>
+		Creates a new Group that contains a new mesh for each material defined in materials. Beware that this is not the same as an array of materials which defines multiple materials for 1 mesh.<br />
+		This is mostly useful for objects that need both a material and a wireframe implementation.
+		</p>
+
+		<h3>[method:null attach]( [param:Object3D child], [param:Object3D scene], [param:Object3D parent] )</h3>
+		<p>
+		child -- The object to add to the parent  <br />
+		scene -- The scene to detach the object on. <br />
+		parent -- The parent to attach the object from.
+		</p>
+		<p>
+		Attaches the object to the parent without the moving the object in the worldspace. Beware that to do this the matrixWorld needs to be updated, this can be done by calling the updateMatrixWorld method on the parent object.
+		</p>
+
+		<h3>[method:null detach]( [param:Object3D child], [param:Object3D parent], [param:Object3D scene] )</h3>
+		<p>
+		child -- The object to remove from the parent  <br />
+		scene -- The scene to attach the object on. <br />
+		parent -- The parent to detach the object from.
+		</p>
+		<p>
+		Detaches the object from the parent and adds it back to the scene without moving in worldspace. Beware that to do this the matrixWorld needs to be updated, this can be done by calling the updateMatrixWorld method on the parent object.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/SceneUtils.js examples/js/utils/SceneUtils.js]
+	</body>
+</html>