2
0
Эх сурвалжийг харах

Docs: Refactor examples directory.

Mugen87 6 жил өмнө
parent
commit
00b712024b
76 өөрчлөгдсөн 4589 нэмэгдсэн , 109 устгасан
  1. 1 1
      docs/examples/en/Lut.html
  2. 1 1
      docs/examples/en/animations/CCDIKSolver.html
  3. 1 1
      docs/examples/en/animations/MMDAnimationHelper.html
  4. 1 1
      docs/examples/en/animations/MMDPhysics.html
  5. 2 2
      docs/examples/en/controls/OrbitControls.html
  6. 1 1
      docs/examples/en/exporters/ColladaExporter.html
  7. 1 1
      docs/examples/en/exporters/GLTFExporter.html
  8. 1 1
      docs/examples/en/exporters/PLYExporter.html
  9. 1 1
      docs/examples/en/geometries/ConvexBufferGeometry.html
  10. 1 1
      docs/examples/en/geometries/ConvexGeometry.html
  11. 1 1
      docs/examples/en/geometries/DecalGeometry.html
  12. 1 1
      docs/examples/en/loaders/BabylonLoader.html
  13. 1 1
      docs/examples/en/loaders/BasisTextureLoader.html
  14. 1 1
      docs/examples/en/loaders/DRACOLoader.html
  15. 1 1
      docs/examples/en/loaders/GLTFLoader.html
  16. 1 1
      docs/examples/en/loaders/LoaderSupport.html
  17. 1 1
      docs/examples/en/loaders/MMDLoader.html
  18. 1 1
      docs/examples/en/loaders/MTLLoader.html
  19. 1 1
      docs/examples/en/loaders/OBJLoader.html
  20. 1 1
      docs/examples/en/loaders/OBJLoader2.html
  21. 1 1
      docs/examples/en/loaders/PCDLoader.html
  22. 1 1
      docs/examples/en/loaders/PDBLoader.html
  23. 1 1
      docs/examples/en/loaders/PRWMLoader.html
  24. 1 1
      docs/examples/en/loaders/SVGLoader.html
  25. 1 1
      docs/examples/en/loaders/TGALoader.html
  26. 0 0
      docs/examples/en/math/convexhull/ConvexHull.html
  27. 0 0
      docs/examples/en/math/convexhull/Face.html
  28. 0 0
      docs/examples/en/math/convexhull/HalfEdge.html
  29. 0 0
      docs/examples/en/math/convexhull/VertexList.html
  30. 0 0
      docs/examples/en/math/convexhull/VertexNode.html
  31. 1 1
      docs/examples/en/objects/Lensflare.html
  32. 2 2
      docs/examples/en/renderers/CSS2DRenderer.html
  33. 2 2
      docs/examples/en/renderers/CSS3DRenderer.html
  34. 2 2
      docs/examples/en/renderers/SVGRenderer.html
  35. 1 1
      docs/examples/en/utils/BufferGeometryUtils.html
  36. 1 1
      docs/examples/en/utils/SceneUtils.html
  37. 1 1
      docs/examples/en/utils/SkeletonUtils.html
  38. 143 0
      docs/examples/zh/Lut.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. 111 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. 99 0
      docs/examples/zh/loaders/BabylonLoader.html
  50. 141 0
      docs/examples/zh/loaders/BasisTextureLoader.html
  51. 145 0
      docs/examples/zh/loaders/DRACOLoader.html
  52. 225 0
      docs/examples/zh/loaders/GLTFLoader.html
  53. 541 0
      docs/examples/zh/loaders/LoaderSupport.html
  54. 141 0
      docs/examples/zh/loaders/MMDLoader.html
  55. 105 0
      docs/examples/zh/loaders/MTLLoader.html
  56. 109 0
      docs/examples/zh/loaders/OBJLoader.html
  57. 210 0
      docs/examples/zh/loaders/OBJLoader2.html
  58. 108 0
      docs/examples/zh/loaders/PCDLoader.html
  59. 102 0
      docs/examples/zh/loaders/PDBLoader.html
  60. 116 0
      docs/examples/zh/loaders/PRWMLoader.html
  61. 115 0
      docs/examples/zh/loaders/SVGLoader.html
  62. 91 0
      docs/examples/zh/loaders/TGALoader.html
  63. 191 0
      docs/examples/zh/math/convexhull/ConvexHull.html
  64. 89 0
      docs/examples/zh/math/convexhull/Face.html
  65. 79 0
      docs/examples/zh/math/convexhull/HalfEdge.html
  66. 91 0
      docs/examples/zh/math/convexhull/VertexList.html
  67. 52 0
      docs/examples/zh/math/convexhull/VertexNode.html
  68. 70 0
      docs/examples/zh/objects/Lensflare.html
  69. 65 0
      docs/examples/zh/renderers/CSS2DRenderer.html
  70. 77 0
      docs/examples/zh/renderers/CSS3DRenderer.html
  71. 107 0
      docs/examples/zh/renderers/SVGRenderer.html
  72. 80 0
      docs/examples/zh/utils/BufferGeometryUtils.html
  73. 33 0
      docs/examples/zh/utils/SceneUtils.html
  74. 60 0
      docs/examples/zh/utils/SkeletonUtils.html
  75. 3 3
      docs/index.html
  76. 70 70
      docs/list.js

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../" />
+		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
@@ -281,6 +281,6 @@ controls.mouseButtons = {
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/OrbitControls.js examples/js/controls/OrbitControls.js]
 	</body>
 </html>

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

+ 1 - 1
docs/examples/loaders/BasisTextureLoader.html → docs/examples/en/loaders/BasisTextureLoader.html

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

+ 1 - 1
docs/examples/loaders/DRACOLoader.html → docs/examples/en/loaders/DRACOLoader.html

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

+ 0 - 0
docs/examples/math/convexhull/ConvexHull.html → docs/examples/en/math/convexhull/ConvexHull.html


+ 0 - 0
docs/examples/math/convexhull/Face.html → docs/examples/en/math/convexhull/Face.html


+ 0 - 0
docs/examples/math/convexhull/HalfEdge.html → docs/examples/en/math/convexhull/HalfEdge.html


+ 0 - 0
docs/examples/math/convexhull/VertexList.html → docs/examples/en/math/convexhull/VertexList.html


+ 0 - 0
docs/examples/math/convexhull/VertexNode.html → docs/examples/en/math/convexhull/VertexNode.html


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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
@@ -60,6 +60,6 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CSS2DRenderer.js examples/js/renderers/CSS2DRenderer.js]
 	</body>
 </html>

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
@@ -72,6 +72,6 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CSS3DRenderer.js examples/js/renderers/CSS3DRenderer.js]
 	</body>
 </html>

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
@@ -102,6 +102,6 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/[path].js examples/js/[path].js]
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/SVGRenderer.js examples/js/renderers/SVGRenderer.js]
 	</body>
 </html>

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

@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="utf-8" />
-    <base href="../../" />
+    <base href="../../../" />
     <script src="list.js"></script>
     <script src="page.js"></script>
     <link type="text/css" rel="stylesheet" href="page.css" />

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

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

+ 1 - 1
docs/examples/utils/SkeletonUtils.html → docs/examples/en/utils/SkeletonUtils.html

@@ -2,7 +2,7 @@
 <html lang="en">
 	<head>
 		<meta charset="utf-8" />
-		<base href="../../" />
+		<base href="../../../" />
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />

+ 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 setMin]( [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 setMax]( [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>

+ 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 solver for IK with <a href="https://sites.google.com/site/auraliusproject/ccd-algorithm"><em>CCD Algorithm</em></a>. <br /><br />
+		[name] solves Inverse Kinematics Problem with CCD Algorithm.
+		[name] is designed to work with [page:SkinnedMesh] loaded by [page:MMDLoader] but also can be used for generic [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] for which [name] solves IK problem.<br />
+		[page:Array iks] — An array of [page:Object] specifying IK parameter. target, effector, and link-index are index integers in .skeleton.bones.
+		The bones relation should be "links[ n ], links[ n - 1 ], ..., links[ 0 ], effector" in order from parent to child.<br />
+		<ul>
+			<li>[page:Integer target] — Target bone.</li>
+			<li>[page:Integer effector] — Effector bone.</li>
+			<li>[page:Array links] — An array of [page: Object] specifying link bones.
+			<ul>
+				<li>[page:Integer index] — Link bone.</li>
+				<li>[page:Vector3 limitation] — (optional) Rotation axis. Default is undefined.</li>
+				<li>[page:Vector3 rotationMin] — (optional) Rotation minimum limit. Default is undefined.</li>
+				<li>[page:Vector3 rotationMax] — (optional) Rotation maximum limit. Default is undefined.</li>
+				<li>[page:Boolean enabled] — (optional) Default is true.</li>
+			</ul>
+			</li>
+			<li>[page:Integer iteration] — (optional) Iteration number of calculation. Smaller is faster but less precise. Default is 1.</li>
+			<li>[page:Number minAngle] — (optional) Minimum rotation angle in a step. Default is undefined.</li>
+			<li>[page:Number maxAngle] — (optional) Maximum rotation angle in a step. Default is undefined.</li>
+		</ul>
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array iks]</h3>
+		<p>An array of IK parameter passed to the constructor.</p>
+
+		<h3>[property:SkinnedMesh mesh]</h3>
+		<p>[page:SkinnedMesh] passed to the constructor.</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:CCDIKHelper createHelper]()</h3>
+		<p>
+		Return [page:CCDIKHelper]. You can visualize IK bones by adding the helper to scene.
+		</p>
+
+		<h3>[method:CCDIKSolver update]()</h3>
+		<p>
+		Update bones quaternion by solving CCD algorithm.
+		</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, renderer.domElement );
+
+//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. The camera must not be a child of another object, unless that object is the scene itself.<br><br>
+
+			[page:HTMLDOMElement domElement]: (optional) The HTML element used for event listeners. By default this is the whole document,
+			however if you only want the controls to work over a specific element (e.g. the canvas) you can specify that here.
+		</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/controls/OrbitControls.js examples/js/controls/OrbitControls.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>

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

@@ -0,0 +1,111 @@
+<!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>Extensions</h2>
+
+		<p>
+			GLTFExporter supports the following
+			[link:https://github.com/KhronosGroup/glTF/tree/master/extensions/ glTF 2.0 extensions]:
+		</p>
+
+		<ul>
+			<li>KHR_lights_punctual</li>
+			<li>KHR_materials_unlit</li>
+			<li>KHR_texture_transform</li>
+		</ul>
+
+		<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>
+			<li>includeCustomExtensions - bool. Export custom glTF extensions defined on an object's <em>userData.gltfExtensions</em> property. 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>

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

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

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

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

+ 145 - 0
docs/examples/zh/loaders/DRACOLoader.html

@@ -0,0 +1,145 @@
+<!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 geometry compressed with the Draco library. <br /><br />
+			[link:https://google.github.io/draco/ Draco] is an open source library for compressing and
+			decompressing 3D meshes and point clouds. Compressed geometry can be significantly smaller,
+			at the cost of additional decoding time on the client device.
+		</p>
+
+		<p>
+			Standalone Draco files have a <em>.drc</em> extension, and contain vertex positions,
+			normals, colors, and other attributes. Draco files <em>do not</em> contain materials,
+			textures, animation, or node hierarchies – to use these features, embed Draco geometry
+			inside of a glTF file. A normal glTF file can be converted to a Draco-compressed glTF file
+			using [link:https://github.com/AnalyticalGraphicsInc/gltf-pipeline glTF-Pipeline]. When
+			using Draco with glTF, an instance of DRACOLoader will be used internally by [page:GLTFLoader].
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+		// Instantiate a loader
+		var loader = new THREE.DRACOLoader();
+
+		// Specify path to a folder containing WASM/JS decoding libraries.
+		THREE.DRACOLoader.setDecoderPath( '/examples/js/libs/draco' );
+
+		// Optional: Pre-fetch Draco WASM/JS module.
+		THREE.DRACOLoader.getDecoderModule();
+
+		// Load a Draco geometry
+		loader.load(
+			// resource URL
+			'model.drc',
+			// called when the resource is loaded
+			function ( geometry ) {
+
+				var material = new THREE.MeshStandardMaterial( { color: 0x606060 } );
+				var mesh = new THREE.Mesh( geometry, material );
+				scene.add( mesh );
+
+			},
+			// called as loading 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_draco]
+
+		<h2>Browser compatibility</h2>
+
+		<p>DRACOLoader 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. DRACOLoader will automatically use
+		either the JS or the WASM decoding library, based on browser
+		capabilities.</p>
+
+		<br>
+		<hr>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
+		</p>
+		<p>
+		Creates a new [name].
+		</p>
+
+		<h2>Static Methods</h2>
+
+		<h3>[method:null setDecoderPath]( [param:String value] )</h3>
+		<p>
+		[page:String value] — Path to folder containing the JS and WASM decoder libraries.
+		</p>
+
+		<h3>[method:null setDecoderConfig]( [param:Object config] )</h3>
+		<p>
+			[page:String config.type] - (Optional) <em>"js"</em> or <em>"wasm"</em>.<br />
+		</p>
+		<p>
+		Provides configuration for the decoder libraries. Configuration cannot be changed
+		after loading the decoders.
+		</p>
+
+		<h3>[method:Promise getDecoderModule]()</h3>
+		<p>
+		Requests the decoder libraries, if not already loaded.
+		</p>
+
+		<h3>[method:null releaseDecoderModule]()</h3>
+		<p>
+		Disposes of the decoder library and deallocates memory. The decoder
+		[link:https://github.com/google/draco/issues/349 cannot be reloaded afterward].
+		</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>.drc</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 from url and call the <em>onLoad</em> function with the decompressed geometry.
+		</p>
+
+		<h3>[method:DRACOLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the <em>.drc</em> file.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/DRACOLoader.js examples/js/loaders/DRACOLoader.js]
+	</body>
+</html>

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

@@ -0,0 +1,225 @@
+<!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<sup>1</sup></li>
+			<li>KHR_texture_transform<sup>2</sup></li>
+			<li>MSFT_texture_dds</li>
+		</ul>
+
+		<p><i>
+			<sup>1</sup>Requires [link:https://threejs.org/docs/#api/en/renderers/WebGLRenderer.physicallyCorrectLights physicallyCorrectLights] to be enabled.
+		</i></p>
+		<p><i>
+			<sup>2</sup>UV transforms are supported, with several key limitations. Transforms applied to
+			a texture using the first UV slot (all textures except aoMap and lightMap) must share the same
+			transform, or no transfor at all. The aoMap and lightMap textures cannot be transformed. No
+			more than one transform may be used per material. Each use of a texture with a unique
+			transform will result in an additional GPU texture upload. See
+			#[link:https://github.com/mrdoob/three.js/pull/13831 13831] and
+			#[link:https://github.com/mrdoob/three.js/issues/12788 12788].
+		</i></p>
+
+		<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() );
+			
+		// Optional: Pre-fetch Draco WASM/JS module, to save time while parsing.
+		THREE.DRACOLoader.getDecoderModule();
+
+		// 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>Textures</h2>
+
+		<p>Textures containing color information (.map, .emissiveMap, and .specularMap) always use sRGB colorspace in
+		glTF, while vertex colors and material properties (.color, .emissive, .specular) use linear colorspace. In a
+		typical rendering workflow, textures are converted to linear colorspace by the renderer, lighting calculations
+		are made, then final output is converted back to sRGB and displayed on screen. Unless you need post-processing
+		in linear colorspace, always configure [page:WebGLRenderer] as follows when using glTF:</p>
+
+		<code>
+		renderer.gammaOutput = true;
+		renderer.gammaFactor = 2.2;
+		</code>
+
+		<p>GLTFLoader will automatically configure textures referenced from a .gltf or .glb file correctly, with the
+		assumption that the renderer is set up as shown above. When loading textures externally (e.g., using
+		[page:TextureLoader]) and applying them to a glTF model, colorspace and orientation must be given:</p>
+
+		<code>
+		// If texture is used for color information, set colorspace.
+		texture.encoding = THREE.sRGBEncoding;
+
+		// UVs use the convention that (0, 0) corresponds to the upper left corner of a texture.
+		texture.flipY = false;
+		</code>
+
+		<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:GLTFLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the .gltf/.glb file.
+		</p>
+
+		<h3>[method:GLTFLoader setResourcePath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path for loading additional resources e.g. textures and .bin data.
+		</p>
+		<p>
+		Set the base path for additional resources.
+		</p>
+
+		<h3>[method:null setCrossOrigin]( [param:String value] )</h3>
+		<p>
+		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
+		</p>
+
+		<h3>[method:null setDRACOLoader]( [param:DRACOLoader dracoLoader] )</h3>
+		<p>
+		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.
+		</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>

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

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

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

@@ -0,0 +1,141 @@
+<!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>
+
+		<h3>[method:MMDLoader setAnimationPath]( [param:String animationPath] )</h3>
+		<p>
+		[page:String animationPath] — Base path for loading animation data (VMD/VPD files).
+		</p>
+		<p>
+		Set the base path for additional resources like textures.
+		</p>
+
+		<h3>[method:MMDLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Sets the base path or URL from which to load files.
+		</p>
+
+		<h3>[method:MMDLoader setResourcePath]( [param:String resourcePath] )</h3>
+		<p>
+		[page:String resourcePath] — Base path for loading additional resources e.g. textures.
+		</p>
+		<p>
+		Set the base path for additional resources like textures.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MMDLoader.js examples/js/loaders/MMDLoader.js]
+	</body>
+</html>

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

@@ -0,0 +1,105 @@
+<!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 MTL file.
+		</p>
+
+
+		<h3>[method:MTLLoader setResourcePath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — required<br />
+		</p>
+		<p>
+			Set base path for additional resources like textures. If set, this path will be used as the base path.
+		</p>
+
+
+		<h3>[method:MTLLoader setCrossOrigin]( [param:String value] )</h3>
+		<p>
+			[page:String value] — required<br />
+		</p>
+		<p>
+			If set, assigns the [link:https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes crossOrigin]
+		 attribute of the image to the value of *crossOrigin*, prior to starting the load. Default is *"anonymous"*.
+		</p>
+
+
+		<h3>[method:MTLLoader setMaterialOptions]( [param:Object options] )</h3>
+		<p>
+			[page:Object options] — required
+			<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, param:String path] )</h3>
+		<p>
+			[page:String text] — The textual <em>mtl</em> structure to parse.
+			[page:String path] — The path to the MTL file.
+		</p>
+		<p>
+			Parse a <em>mtl</em> text structure and return a [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator] 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:MTLLoader.MaterialCreator materials] )</h3>
+		<p>
+		[page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator materials] - A MaterialCreator instance.
+		</p>
+		<p>
+		Sets materials loaded by MTLLoader or any other supplier of a [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator].
+		</p>
+
+		<h3>[method:OBJLoader setPath]( [param:String path] )</h3>
+		<p>
+		Sets the base path or URL from which to load files. This can be useful to avoid repetition if you are calling [page:OBJLoader.load .load] multiple times on the same directory.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJLoader.js examples/js/loaders/OBJLoader.js]
+	</body>
+</html>

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

@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">A loader for loading a <em>.obj</em> resource.<br />
+			The <a href="https://en.wikipedia.org/wiki/Wavefront_.obj_file">OBJ file format</a> is a simple data-format
+			that represents 3D geometry in a human readable format as, the position of each vertex, the UV position of
+			each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of
+			vertices, and texture vertices.
+		</p>
+
+		<h2>Examples</h2>
+
+		<code>
+		// instantiate the loader
+		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 setResourcePath] ( [param:String resourcePath] )</h3>
+		<p>
+			[page:String resourcePath] - URL
+		</p>
+		<p>
+			Allows to specify resourcePath for dependencies of specified resource.
+		</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>

+ 108 - 0
docs/examples/zh/loaders/PCDLoader.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>.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>
+
+		<h3>[method:PCDLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PCDLoader.js examples/js/loaders/PCDLoader.js]
+	</body>
+</html>

+ 102 - 0
docs/examples/zh/loaders/PDBLoader.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 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>
+
+		<h3>[method:PDBLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PDBLoader.js examples/js/loaders/PDBLoader.js]
+	</body>
+</html>

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

@@ -0,0 +1,116 @@
+<!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>
+
+		<h3>[method:PRWMLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
+		<h2>Source</h2>
+
+		[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>

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

@@ -0,0 +1,115 @@
+<!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 ( data ) {
+
+				var paths = data.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 an array of [page:ShapePath] 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>
+
+		<h3>[method:SVGLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js examples/js/loaders/SVGLoader.js]
+	</body>
+</html>

+ 91 - 0
docs/examples/zh/loaders/TGALoader.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>.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>
+
+		<h3>[method:TGALoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/TGALoader.js examples/js/loaders/TGALoader.js]
+	</body>
+</html>

+ 191 - 0
docs/examples/zh/math/convexhull/ConvexHull.html

@@ -0,0 +1,191 @@
+<!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 convex hull class. Implements the Quickhull algorithm by: 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: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: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: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: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: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:ConvexHull 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:ConvexHull 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:ConvexHull 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:ConvexHull cleanup]()</h3>
+
+		<p>Cleans up internal properties after computing the convex hull.</p>
+
+		<h3>[method:ConvexHull compute]()</h3>
+
+		<p>Starts the execution of the quick hull algorithm.</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:ConvexHull 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:ConvexHull 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:ConvexHull containsPoint]( [param:Vector3 point] )</h3>
+		[page:Vector3 point] - A point in 3D space.<br /><br />
+
+		<p>Returns *true* if the given point is inside this convex hull.</p>
+
+		<h3>[method:ConvexHull 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:Vector3 intersectRay]( [param:Ray ray], [param:Vector3 target] )</h3>
+		[page:Ray ray] - The given ray.<br /><br />
+		[page:Vector3 target] - The target vector representing the intersection point.<br /><br />
+
+		<p>Performs a ray intersection test with this convext hull. If no intersection is found, *null* is returned.</p>
+
+		<h3>[method:Boolean intersectsRay]( [param:Ray ray] )</h3>
+		[page:Ray ray] - The given ray.<br /><br />
+
+		<p>Returns *true* if the given ray intersects with this convex hull.</p>
+
+		<h3>[method:ConvexHull makeEmpty]()</h3>
+
+		<p>Makes this convex hull empty.</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:ConvexHull reindexFaces]()</h3>
+
+		<p>Removes inactive (e.g. deleted) faces from the internal face list.</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:ConvexHull 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:ConvexHull 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:ConvexHull 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:ConvexHull 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>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/ConvexHull.js examples/js/ConvexHull.js]
+	</body>
+</html>

+ 89 - 0
docs/examples/zh/math/convexhull/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/math/ConvexHull.js examples/js/math/ConvexHull.js]
+	</body>
+</html>

+ 79 - 0
docs/examples/zh/math/convexhull/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/math/ConvexHull.js examples/js/math/ConvexHull.js]
+	</body>
+</html>

+ 91 - 0
docs/examples/zh/math/convexhull/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/math/ConvexHull.js examples/js/math/ConvexHull.js]
+	</body>
+</html>

+ 52 - 0
docs/examples/zh/math/convexhull/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/math/ConvexHull.js examples/js/math/ConvexHull.js]
+	</body>
+</html>

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

@@ -0,0 +1,70 @@
+<!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] )</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
+		</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>

+ 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/renderers/CSS2DRenderer.js examples/js/renderers/CSS2DRenderer.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/renderers/CSS3DRenderer.js examples/js/renderers/CSS3DRenderer.js]
+	</body>
+</html>

+ 107 - 0
docs/examples/zh/renderers/SVGRenderer.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>
+
+		<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>Properties</h2>
+
+		<h3>[property:Number overdraw]</h3>
+		<p>
+		Number of fractional pixels to enlarge polygons in order to prevent anti-aliasing gaps. Range is [0..1]. Default is *0.5*.
+		</p>
+
+		<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/renderers/SVGRenderer.js examples/js/renderers/SVGRenderer.js]
+	</body>
+</html>

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

@@ -0,0 +1,80 @@
+<!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], [param:Boolean useGroups] )</h3>
+    <p>
+    geometries -- Array of [page:BufferGeometry BufferGeometry] instances.<br />
+    useGroups -- Whether groups should be generated for the merged geometry or not.<br /><br />
+
+    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>
+
+    <h3>[method:InterleavedBufferAttribute interleaveAttributes]( [param:Array attributes] )</h3>
+    <p>
+    attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
+
+    Interleaves a set of attributes and returns a new array of corresponding attributes that share
+    a single InterleavedBuffer instance. All attributes must have compatible types. If merge does not
+    succeed, the method returns null.
+
+    </p>
+
+    <h3>[method:Number estimateBytesUsed]( [param:BufferGeometry geometry] )</h3>
+    <p>
+    geometry -- Instance of [page:BufferGeometry BufferGeometry] to estimate the memory use of.<br /><br />
+
+    Returns the amount of bytes used by all attributes to represent the geometry.
+
+    </p>
+
+    <h3>[method:BufferGeometry mergeVertices]( [param:BufferGeometry geometry], [param:Number tolerance] )</h3>
+    <p>
+    geometry -- Instance of [page:BufferGeometry BufferGeometry] to merge the vertices of.<br />
+    tolerance -- The maximum allowable difference between vertex attributes to merge. Defaults to 1e-4.<br /><br />
+
+    Returns a new [page:BufferGeometry BufferGeometry] with vertices for which all similar vertex attributes
+    (within tolerance) are merged.
+
+    </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>

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

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

+ 60 - 0
docs/examples/zh/utils/SkeletonUtils.html

@@ -0,0 +1,60 @@
+<!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">Utility functions for [page:Skeleton], [page:SkinnedMesh], and [page:Bone] manipulation.</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:Object3D clone]( [param:Object3D object] )</h3>
+		<p>
+			Clones the given object and its descendants, ensuring that any [page:SkinnedMesh] instances
+			are correctly associated with their bones. Bones are also cloned, and must be descendants of
+			the object passed to this method. Other data, like geometries and materials, are reused by
+			reference.
+		</p>
+
+		<h3>[method:Object findBoneTrackData]( [param:String name], [param:Array tracks] )</h3>
+		<p></p>
+
+		<h3>[method:Bone getBoneByName]( [param:String name], [param:Skeleton skeleton] )</h3>
+		<p></p>
+
+		<h3>[method:Array getBones]( [param:Skeleton skeleton] )</h3>
+		<p></p>
+
+		<h3>[method:Array getEqualsBonesNames]( [param:Skeleton skeleton], [param:Skeleton targetSkeleton] )</h3>
+		<p></p>
+
+		<h3>[method:SkeletonHelper getHelperFromSkeleton]( [param:Skeleton skeleton] )</h3>
+		<p></p>
+
+		<h3>[method:Bone getNearestBone]( [param:Bone bone], [param:Array names] )</h3>
+		<p></p>
+
+		<h3>[method:Object getSkeletonOffsets]( [param:SkeletonHelper target], [param:SkeletonHelper source], [param:Object options] )</h3>
+		<p></p>
+
+		<h3>[method:this renameBones]( [param:Skeleton skeleton], [param:Array names] )</h3>
+		<p></p>
+
+		<h3>[method:null retarget]( [param:SkeletonHelper target], [param:SkeletonHelper source], [param:Object options] )</h3>
+		<p></p>
+
+		<h3>[method:AnimationClip retargetClip]( [param:SkeletonHelper target], [param:SkeletonHelper source], [param:AnimationClip clip], [param:Object options] )</h3>
+		<p></p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/SkeletonUtils.js examples/js/utils/SkeletonUtils.js]
+	</body>
+</html>

+ 3 - 3
docs/index.html

@@ -51,15 +51,15 @@
 
 			var language = 'en';
 
-			if ( /^(api|manual)/.test( hash ) ) {
+			if ( /^(api|manual|examples)/.test( hash ) ) {
 
-				var hashLanguage = /^(api|manual)\/(en|zh)\//.exec( hash );
+				var hashLanguage = /^(api|manual|examples)\/(en|zh)\//.exec( hash );
 
 				if ( hashLanguage === null ) {
 
 					// Route old non-localised api links
 
-					window.location.hash = hash.replace( /^(api|manual)/, '$1/en' );
+					window.location.hash = hash.replace( /^(api|manual|examples)/, '$1/en' );
 
 				} else {
 

+ 70 - 70
docs/list.js

@@ -348,71 +348,71 @@ var list = {
 		"Examples": {
 
 			"Animations": {
-				"CCDIKSolver": "examples/animations/CCDIKSolver",
-				"MMDAnimationHelper": "examples/animations/MMDAnimationHelper",
-				"MMDPhysics": "examples/animations/MMDPhysics"
+				"CCDIKSolver": "examples/en/animations/CCDIKSolver",
+				"MMDAnimationHelper": "examples/en/animations/MMDAnimationHelper",
+				"MMDPhysics": "examples/en/animations/MMDPhysics"
 			},
 
 			"Controls": {
-				"OrbitControls": "examples/controls/OrbitControls"
+				"OrbitControls": "examples/en/controls/OrbitControls"
 			},
 
 			"Geometries": {
-				"ConvexBufferGeometry": "examples/geometries/ConvexBufferGeometry",
-				"ConvexGeometry": "examples/geometries/ConvexGeometry",
-				"DecalGeometry": "examples/geometries/DecalGeometry"
+				"ConvexBufferGeometry": "examples/en/geometries/ConvexBufferGeometry",
+				"ConvexGeometry": "examples/en/geometries/ConvexGeometry",
+				"DecalGeometry": "examples/en/geometries/DecalGeometry"
 			},
 
 			"Loaders": {
-				"BabylonLoader": "examples/loaders/BabylonLoader",
-				"BasisTextureLoader": "examples/loaders/BasisTextureLoader",
-				"DRACOLoader": "examples/loaders/DRACOLoader",
-				"GLTFLoader": "examples/loaders/GLTFLoader",
-				"MMDLoader": "examples/loaders/MMDLoader",
-				"MTLLoader": "examples/loaders/MTLLoader",
-				"OBJLoader": "examples/loaders/OBJLoader",
-				"OBJLoader2": "examples/loaders/OBJLoader2",
-				"LoaderSupport": "examples/loaders/LoaderSupport",
-				"PCDLoader": "examples/loaders/PCDLoader",
-				"PDBLoader": "examples/loaders/PDBLoader",
-				"SVGLoader": "examples/loaders/SVGLoader",
-				"TGALoader": "examples/loaders/TGALoader",
-				"PRWMLoader": "examples/loaders/PRWMLoader"
+				"BabylonLoader": "examples/en/loaders/BabylonLoader",
+				"BasisTextureLoader": "examples/en/loaders/BasisTextureLoader",
+				"DRACOLoader": "examples/en/loaders/DRACOLoader",
+				"GLTFLoader": "examples/en/loaders/GLTFLoader",
+				"MMDLoader": "examples/en/loaders/MMDLoader",
+				"MTLLoader": "examples/en/loaders/MTLLoader",
+				"OBJLoader": "examples/en/loaders/OBJLoader",
+				"OBJLoader2": "examples/en/loaders/OBJLoader2",
+				"LoaderSupport": "examples/en/loaders/LoaderSupport",
+				"PCDLoader": "examples/en/loaders/PCDLoader",
+				"PDBLoader": "examples/en/loaders/PDBLoader",
+				"SVGLoader": "examples/en/loaders/SVGLoader",
+				"TGALoader": "examples/en/loaders/TGALoader",
+				"PRWMLoader": "examples/en/loaders/PRWMLoader"
 			},
 
 			"Objects": {
-				"Lensflare": "examples/objects/Lensflare",
+				"Lensflare": "examples/en/objects/Lensflare",
 			},
 
 			"Exporters": {
-				"GLTFExporter": "examples/exporters/GLTFExporter",
-				"PLYExporter": "examples/exporters/PLYExporter",
-				"ColladaExporter": "examples/exporters/ColladaExporter"
+				"GLTFExporter": "examples/en/exporters/GLTFExporter",
+				"PLYExporter": "examples/en/exporters/PLYExporter",
+				"ColladaExporter": "examples/en/exporters/ColladaExporter"
 			},
 
 			"Plugins": {
-				"LookupTable": "examples/Lut",
+				"LookupTable": "examples/en/Lut",
 			},
 
 			"ConvexHull": {
-				"Face": "examples/math/convexhull/Face",
-				"HalfEdge": "examples/math/convexhull/HalfEdge",
-				"ConvexHull": "examples/math/convexhull/ConvexHull",
-				"VertexNode": "examples/math/convexhull/VertexNode",
-				"VertexList": "examples/math/convexhull/VertexList"
+				"Face": "examples/en/math/convexhull/Face",
+				"HalfEdge": "examples/en/math/convexhull/HalfEdge",
+				"ConvexHull": "examples/en/math/convexhull/ConvexHull",
+				"VertexNode": "examples/en/math/convexhull/VertexNode",
+				"VertexList": "examples/en/math/convexhull/VertexList"
 			},
 
 			"Renderers": {
-				"CSS2DRenderer": "examples/renderers/CSS2DRenderer",
-				"CSS3DRenderer": "examples/renderers/CSS3DRenderer",
-				"SVGRenderer": "examples/renderers/SVGRenderer"
+				"CSS2DRenderer": "examples/en/renderers/CSS2DRenderer",
+				"CSS3DRenderer": "examples/en/renderers/CSS3DRenderer",
+				"SVGRenderer": "examples/en/renderers/SVGRenderer"
 
 			},
 
 			"Utils": {
-				"BufferGeometryUtils": "examples/utils/BufferGeometryUtils",
-				"SceneUtils": "examples/utils/SceneUtils",
-				"SkeletonUtils": "examples/utils/SkeletonUtils"
+				"BufferGeometryUtils": "examples/en/utils/BufferGeometryUtils",
+				"SceneUtils": "examples/en/utils/SceneUtils",
+				"SkeletonUtils": "examples/en/utils/SkeletonUtils"
 			}
 
 		},
@@ -781,67 +781,67 @@ var list = {
 		"示例": {
 
 			"动画": {
-				"CCDIKSolver": "examples/animations/CCDIKSolver",
-				"MMDAnimationHelper": "examples/animations/MMDAnimationHelper",
-				"MMDPhysics": "examples/animations/MMDPhysics"
+				"CCDIKSolver": "examples/zh/animations/CCDIKSolver",
+				"MMDAnimationHelper": "examples/zh/animations/MMDAnimationHelper",
+				"MMDPhysics": "examples/zh/animations/MMDPhysics"
 			},
 
 			"控制": {
-				"OrbitControls": "examples/controls/OrbitControls"
+				"OrbitControls": "examples/zh/controls/OrbitControls"
 			},
 
 			"几何体": {
-				"ConvexBufferGeometry": "examples/geometries/ConvexBufferGeometry",
-				"ConvexGeometry": "examples/geometries/ConvexGeometry",
-				"DecalGeometry": "examples/geometries/DecalGeometry"
+				"ConvexBufferGeometry": "examples/zh/geometries/ConvexBufferGeometry",
+				"ConvexGeometry": "examples/zh/geometries/ConvexGeometry",
+				"DecalGeometry": "examples/zh/geometries/DecalGeometry"
 			},
 
 			"加载器": {
-				"BabylonLoader": "examples/loaders/BabylonLoader",
-				"GLTFLoader": "examples/loaders/GLTFLoader",
-				"MMDLoader": "examples/loaders/MMDLoader",
-				"MTLLoader": "examples/loaders/MTLLoader",
-				"OBJLoader": "examples/loaders/OBJLoader",
-				"OBJLoader2": "examples/loaders/OBJLoader2",
-				"LoaderSupport": "examples/loaders/LoaderSupport",
-				"PCDLoader": "examples/loaders/PCDLoader",
-				"PDBLoader": "examples/loaders/PDBLoader",
-				"SVGLoader": "examples/loaders/SVGLoader",
-				"TGALoader": "examples/loaders/TGALoader",
-				"PRWMLoader": "examples/loaders/PRWMLoader"
+				"BabylonLoader": "examples/zh/loaders/BabylonLoader",
+				"GLTFLoader": "examples/zh/loaders/GLTFLoader",
+				"MMDLoader": "examples/zh/loaders/MMDLoader",
+				"MTLLoader": "examples/zh/loaders/MTLLoader",
+				"OBJLoader": "examples/zh/loaders/OBJLoader",
+				"OBJLoader2": "examples/zh/loaders/OBJLoader2",
+				"LoaderSupport": "examples/zh/loaders/LoaderSupport",
+				"PCDLoader": "examples/zh/loaders/PCDLoader",
+				"PDBLoader": "examples/zh/loaders/PDBLoader",
+				"SVGLoader": "examples/zh/loaders/SVGLoader",
+				"TGALoader": "examples/zh/loaders/TGALoader",
+				"PRWMLoader": "examples/zh/loaders/PRWMLoader"
 			},
 
 			"物体": {
-				"Lensflare": "examples/objects/Lensflare",
+				"Lensflare": "examples/zh/objects/Lensflare",
 			},
 
 			"导出器": {
-				"GLTFExporter": "examples/exporters/GLTFExporter",
-				"PLYExporter": "examples/exporters/PLYExporter"
+				"GLTFExporter": "examples/zh/exporters/GLTFExporter",
+				"PLYExporter": "examples/zh/exporters/PLYExporter"
 			},
 
 			"插件": {
-				"LookupTable": "examples/Lut",
+				"LookupTable": "examples/zh/Lut",
 			},
 
 			"QuickHull": {
-				"Face": "examples/quickhull/Face",
-				"HalfEdge": "examples/quickhull/HalfEdge",
-				"QuickHull": "examples/quickhull/QuickHull",
-				"VertexNode": "examples/quickhull/VertexNode",
-				"VertexList": "examples/quickhull/VertexList"
+				"Face": "examples/zh/quickhull/Face",
+				"HalfEdge": "examples/zh/quickhull/HalfEdge",
+				"QuickHull": "examples/zh/quickhull/QuickHull",
+				"VertexNode": "examples/zh/quickhull/VertexNode",
+				"VertexList": "examples/zh/quickhull/VertexList"
 			},
 
 			"渲染器": {
-				"CSS2DRenderer": "examples/renderers/CSS2DRenderer",
-				"CSS3DRenderer": "examples/renderers/CSS3DRenderer",
-				"SVGRenderer": "examples/renderers/SVGRenderer"
+				"CSS2DRenderer": "examples/zh/renderers/CSS2DRenderer",
+				"CSS3DRenderer": "examples/zh/renderers/CSS3DRenderer",
+				"SVGRenderer": "examples/zh/renderers/SVGRenderer"
 
 			},
 
 			"实用工具": {
-				"BufferGeometryUtils": "examples/utils/BufferGeometryUtils",
-				"SceneUtils": "examples/utils/SceneUtils"
+				"BufferGeometryUtils": "examples/zh/utils/BufferGeometryUtils",
+				"SceneUtils": "examples/zh/utils/SceneUtils"
 			}
 
 		},