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

Merge branch 'dev' into GLTFLoaderEfficientLoad

Takahiro 6 жил өмнө
parent
commit
5ae96fa935
100 өөрчлөгдсөн 9434 нэмэгдсэн , 391 устгасан
  1. 1 1
      .github/ISSUE_TEMPLATE.md
  2. 1 1
      .travis.yml
  3. 1 1
      README.md
  4. 5 2
      build/three.js
  5. 350 344
      build/three.min.js
  6. 5 2
      build/three.module.js
  7. 10 7
      docs/api/en/core/BufferAttribute.html
  8. 1 1
      docs/api/en/core/Face3.html
  9. 1 1
      docs/api/en/core/InstancedBufferAttribute.html
  10. 5 0
      docs/api/en/core/Layers.html
  11. 2 2
      docs/api/en/core/Raycaster.html
  12. 1 1
      docs/api/en/core/Uniform.html
  13. 14 4
      docs/api/en/lights/PointLight.html
  14. 14 4
      docs/api/en/lights/SpotLight.html
  15. 12 8
      docs/api/en/loaders/JSONLoader.html
  16. 0 11
      docs/api/en/renderers/WebGLRenderer.html
  17. 1 1
      docs/api/en/textures/Texture.html
  18. 46 0
      docs/api/zh/Polyfills.html
  19. 48 0
      docs/api/zh/Template.html
  20. 317 0
      docs/api/zh/animation/AnimationAction.html
  21. 134 0
      docs/api/zh/animation/AnimationClip.html
  22. 101 0
      docs/api/zh/animation/AnimationMixer.html
  23. 82 0
      docs/api/zh/animation/AnimationObjectGroup.html
  24. 59 0
      docs/api/zh/animation/AnimationUtils.html
  25. 231 0
      docs/api/zh/animation/KeyframeTrack.html
  26. 130 0
      docs/api/zh/animation/PropertyBinding.html
  27. 97 0
      docs/api/zh/animation/PropertyMixer.html
  28. 78 0
      docs/api/zh/animation/tracks/BooleanKeyframeTrack.html
  29. 62 0
      docs/api/zh/animation/tracks/ColorKeyframeTrack.html
  30. 62 0
      docs/api/zh/animation/tracks/NumberKeyframeTrack.html
  31. 73 0
      docs/api/zh/animation/tracks/QuaternionKeyframeTrack.html
  32. 81 0
      docs/api/zh/animation/tracks/StringKeyframeTrack.html
  33. 61 0
      docs/api/zh/animation/tracks/VectorKeyframeTrack.html
  34. 212 0
      docs/api/zh/audio/Audio.html
  35. 99 0
      docs/api/zh/audio/AudioAnalyser.html
  36. 42 0
      docs/api/zh/audio/AudioContext.html
  37. 108 0
      docs/api/zh/audio/AudioListener.html
  38. 135 0
      docs/api/zh/audio/PositionalAudio.html
  39. 47 0
      docs/api/zh/cameras/ArrayCamera.html
  40. 83 0
      docs/api/zh/cameras/Camera.html
  41. 89 0
      docs/api/zh/cameras/CubeCamera.html
  42. 145 0
      docs/api/zh/cameras/OrthographicCamera.html
  43. 201 0
      docs/api/zh/cameras/PerspectiveCamera.html
  44. 64 0
      docs/api/zh/cameras/StereoCamera.html
  45. 39 0
      docs/api/zh/constants/Animation.html
  46. 37 0
      docs/api/zh/constants/Core.html
  47. 63 0
      docs/api/zh/constants/CustomBlendingEquations.html
  48. 81 0
      docs/api/zh/constants/DrawModes.html
  49. 102 0
      docs/api/zh/constants/Materials.html
  50. 76 0
      docs/api/zh/constants/Renderer.html
  51. 262 0
      docs/api/zh/constants/Textures.html
  52. 215 0
      docs/api/zh/core/BufferAttribute.html
  53. 362 0
      docs/api/zh/core/BufferGeometry.html
  54. 87 0
      docs/api/zh/core/Clock.html
  55. 108 0
      docs/api/zh/core/DirectGeometry.html
  56. 100 0
      docs/api/zh/core/EventDispatcher.html
  57. 134 0
      docs/api/zh/core/Face3.html
  58. 345 0
      docs/api/zh/core/Geometry.html
  59. 44 0
      docs/api/zh/core/InstancedBufferAttribute.html
  60. 50 0
      docs/api/zh/core/InstancedBufferGeometry.html
  61. 48 0
      docs/api/zh/core/InstancedInterleavedBuffer.html
  62. 119 0
      docs/api/zh/core/InterleavedBuffer.html
  63. 104 0
      docs/api/zh/core/InterleavedBufferAttribute.html
  64. 82 0
      docs/api/zh/core/Layers.html
  65. 438 0
      docs/api/zh/core/Object3D.html
  66. 189 0
      docs/api/zh/core/Raycaster.html
  67. 213 0
      docs/api/zh/core/Uniform.html
  68. 56 0
      docs/api/zh/core/bufferAttributeTypes/BufferAttributeTypes.html
  69. 607 0
      docs/api/zh/deprecated/DeprecatedList.html
  70. 31 0
      docs/api/zh/extras/Earcut.html
  71. 54 0
      docs/api/zh/extras/ShapeUtils.html
  72. 116 0
      docs/api/zh/extras/core/Curve.html
  73. 60 0
      docs/api/zh/extras/core/CurvePath.html
  74. 61 0
      docs/api/zh/extras/core/Font.html
  75. 47 0
      docs/api/zh/extras/core/Interpolations.html
  76. 145 0
      docs/api/zh/extras/core/Path.html
  77. 101 0
      docs/api/zh/extras/core/Shape.html
  78. 91 0
      docs/api/zh/extras/core/ShapePath.html
  79. 32 0
      docs/api/zh/extras/curves/ArcCurve.html
  80. 81 0
      docs/api/zh/extras/curves/CatmullRomCurve3.html
  81. 81 0
      docs/api/zh/extras/curves/CubicBezierCurve.html
  82. 82 0
      docs/api/zh/extras/curves/CubicBezierCurve3.html
  83. 105 0
      docs/api/zh/extras/curves/EllipseCurve.html
  84. 51 0
      docs/api/zh/extras/curves/LineCurve.html
  85. 50 0
      docs/api/zh/extras/curves/LineCurve3.html
  86. 77 0
      docs/api/zh/extras/curves/QuadraticBezierCurve.html
  87. 77 0
      docs/api/zh/extras/curves/QuadraticBezierCurve3.html
  88. 72 0
      docs/api/zh/extras/curves/SplineCurve.html
  89. 42 0
      docs/api/zh/extras/objects/ImmediateRenderObject.html
  90. 75 0
      docs/api/zh/geometries/BoxBufferGeometry.html
  91. 75 0
      docs/api/zh/geometries/BoxGeometry.html
  92. 65 0
      docs/api/zh/geometries/CircleBufferGeometry.html
  93. 66 0
      docs/api/zh/geometries/CircleGeometry.html
  94. 67 0
      docs/api/zh/geometries/ConeBufferGeometry.html
  95. 67 0
      docs/api/zh/geometries/ConeGeometry.html
  96. 68 0
      docs/api/zh/geometries/CylinderBufferGeometry.html
  97. 68 0
      docs/api/zh/geometries/CylinderGeometry.html
  98. 54 0
      docs/api/zh/geometries/DodecahedronBufferGeometry.html
  99. 54 0
      docs/api/zh/geometries/DodecahedronGeometry.html
  100. 47 0
      docs/api/zh/geometries/EdgesGeometry.html

+ 1 - 1
.github/ISSUE_TEMPLATE.md

@@ -19,7 +19,7 @@ Please also include a live example if possible. You can start from these templat
 ##### Three.js version
 ##### Three.js version
 
 
 - [ ] Dev
 - [ ] Dev
-- [ ] r95
+- [ ] r96
 - [ ] ...
 - [ ] ...
 
 
 ##### Browser
 ##### Browser

+ 1 - 1
.travis.yml

@@ -1,5 +1,5 @@
 language: node_js
 language: node_js
 node_js:
 node_js:
-  - "8.9.4"
+  - node
 script:
 script:
   - npm run travis
   - npm run travis

+ 1 - 1
README.md

@@ -10,7 +10,7 @@ three.js
 
 
 #### JavaScript 3D library ####
 #### JavaScript 3D library ####
 
 
-The aim of the project is to create an easy to use, lightweight, 3D library. The library provides <canvas>, <svg>, CSS3D and WebGL renderers.
+The aim of the project is to create an easy to use, lightweight, 3D library. The library provides Canvas 2D, SVG, CSS3D and WebGL renderers.
 
 
 [Examples](http://threejs.org/examples/) —
 [Examples](http://threejs.org/examples/) —
 [Documentation](http://threejs.org/docs/) —
 [Documentation](http://threejs.org/docs/) —

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 5 - 2
build/three.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 350 - 344
build/three.min.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 5 - 2
build/three.module.js


+ 10 - 7
docs/api/en/core/BufferAttribute.html

@@ -35,12 +35,12 @@
 		attribute is storing a 3-component vector (such as a position, normal, or color), then itemSize should be 3.
 		attribute is storing a 3-component vector (such as a position, normal, or color), then itemSize should be 3.
 		<br /><br />
 		<br /><br />
 
 
-		[page:Boolean normalized] -- (optional) Indicates how the underlying data in the buffer maps
-		to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance of
-		UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array
+		[page:Boolean normalized] -- (optional) Applies to integer data only. Indicates how the underlying data
+		in the buffer maps to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance
+		of UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array
 		 data will be mapped to 0.0f - +1.0f in the GLSL attribute. An Int16Array (signed) would map
 		 data will be mapped to 0.0f - +1.0f in the GLSL attribute. An Int16Array (signed) would map
 		 from -32767 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values
 		 from -32767 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values
-		 will be converted to floats which contain the exact value, i.e. 32767 becomes 32767.0f.
+		 will be converted to floats unmodified, i.e. 32767 becomes 32767.0f.
 		</p>
 		</p>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
@@ -99,12 +99,12 @@
 
 
 		<h3>[property:Function onUploadCallback]</h3>
 		<h3>[property:Function onUploadCallback]</h3>
 		<p>
 		<p>
-		A callback function that is executed after the Renderer has transfered the attribute array data to the GPU.
+		A callback function that is executed after the Renderer has transferred the attribute array data to the GPU.
 		</p>
 		</p>
 
 
 		<h3>[property:Object updateRange]</h3>
 		<h3>[property:Object updateRange]</h3>
 		<p>Object containing:<br />
 		<p>Object containing:<br />
-			[page:Integer offset]: Default is *0*. Position at whcih to start update.<br />
+			[page:Integer offset]: Default is *0*. Position at which to start update.<br />
 			[page:Integer count]: Default is *-1*, which means don't use update ranges. <br /><br />
 			[page:Integer count]: Default is *-1*, which means don't use update ranges. <br /><br />
 
 
 			This can be used to only update some components of stored vectors (for example, just the component
 			This can be used to only update some components of stored vectors (for example, just the component
@@ -120,6 +120,9 @@
 		<h3>[method:BufferAttribute clone]() </h3>
 		<h3>[method:BufferAttribute clone]() </h3>
 		<p>Return a copy of this bufferAttribute.</p>
 		<p>Return a copy of this bufferAttribute.</p>
 
 
+		<h3>[method:BufferAttribute copy]( [param:BufferAttribute bufferAttribute] )</h3>
+		<p>Copies another BufferAttribute to this BufferAttribute.</p>
+
 		<h3>[method:BufferAttribute copyArray]( array ) </h3>
 		<h3>[method:BufferAttribute copyArray]( array ) </h3>
 		<p>Copy the array given here (which can be a normal array or TypedArray) into
 		<p>Copy the array given here (which can be a normal array or TypedArray) into
 			[page:BufferAttribute.array array].<br /><br />
 			[page:BufferAttribute.array array].<br /><br />
@@ -160,7 +163,7 @@
 		Sets the value of the onUploadCallback property.<br /><br />
 		Sets the value of the onUploadCallback property.<br /><br />
 
 
 		In the [example:webgl_buffergeometry WebGL / Buffergeometry] this is used to free memory
 		In the [example:webgl_buffergeometry WebGL / Buffergeometry] this is used to free memory
-		after the buffer has been	transfered to the GPU.
+		after the buffer has been	transferred to the GPU.
 		</p>
 		</p>
 
 
 		<h3>[method:BufferAttribute set] ( [param:Array value], [param:Integer offset] ) </h3>
 		<h3>[method:BufferAttribute set] ( [param:Array value], [param:Integer offset] ) </h3>

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

@@ -124,7 +124,7 @@ scene.add( new THREE.Mesh( geometry, material ) );
 		<p>Creates a new clone of the Face3 object.</p>
 		<p>Creates a new clone of the Face3 object.</p>
 
 
 		<h3>[method:Face3 copy]( [param:Face3 face3] )</h3>
 		<h3>[method:Face3 copy]( [param:Face3 face3] )</h3>
-		<p>Copy the paramaters of another Face3 into this.</p>
+		<p>Copy the parameters of another Face3 into this.</p>
 
 
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

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

@@ -17,7 +17,7 @@
 		</p>
 		</p>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
-		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Boolean normalized], [param:Number meshPerAttribute] )</h3>
 		<p>
 		<p>
 		</p>
 		</p>
 
 

+ 5 - 0
docs/api/en/core/Layers.html

@@ -21,6 +21,11 @@
 			All classes that inherit from [page:Object3D] have an [page:Object3D.layers] property which is an instance of this class.
 			All classes that inherit from [page:Object3D] have an [page:Object3D.layers] property which is an instance of this class.
 		</p>
 		</p>
 
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_layers WebGL / layers]
+		</p>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 

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

@@ -147,7 +147,7 @@
 		<h3>[method:Array intersectObject]( [param:Object3D object], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
 		<h3>[method:Array intersectObject]( [param:Object3D object], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
 		<p>
 		<p>
 		[page:Object3D object] — The object to check for intersection with the ray.<br />
 		[page:Object3D object] — The object to check for intersection with the ray.<br />
-		[page:Boolean recursive] — If true, it also checks all descendants. Otherwise it only checks intersecton with the object. Default is false.<br />
+		[page:Boolean recursive] — If true, it also checks all descendants. Otherwise it only checks intersection with the object. Default is false.<br />
 		[page:Array optionalTarget] — (optional) target to set the result. Otherwise a new [page:Array] is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
 		[page:Array optionalTarget] — (optional) target to set the result. Otherwise a new [page:Array] is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
 		</p>
 		</p>
 		<p>
 		<p>
@@ -174,7 +174,7 @@
 		<h3>[method:Array intersectObjects]( [param:Array objects], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
 		<h3>[method:Array intersectObjects]( [param:Array objects], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
 		<p>
 		<p>
 		[page:Array objects] — The objects to check for intersection with the ray.<br />
 		[page:Array objects] — The objects to check for intersection with the ray.<br />
-		[page:Boolean recursive] — If true, it also checks all descendants of the objects. Otherwise it only checks intersecton with the objects. Default is false.<br />
+		[page:Boolean recursive] — If true, it also checks all descendants of the objects. Otherwise it only checks intersection with the objects. Default is false.<br />
 		[page:Array optionalTarget] — (optional) target to set the result. Otherwise a new [page:Array] is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
 		[page:Array optionalTarget] — (optional) target to set the result. Otherwise a new [page:Array] is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
 		</p>
 		</p>
 		<p>
 		<p>

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

@@ -201,7 +201,7 @@
 		<h3>[method:Uniform clone]()</h3>
 		<h3>[method:Uniform clone]()</h3>
 		<p>
 		<p>
 		Returns a clone of this uniform.<br />
 		Returns a clone of this uniform.<br />
-		If the uniform's value property is an [page:Object] with a clone() method, this is used, otherwise the value is copied by assigment.
+		If the uniform's value property is an [page:Object] with a clone() method, this is used, otherwise the value is copied by assignment.
 		Array values are shared between cloned [page:Uniform]s.<br /><br />
 		Array values are shared between cloned [page:Uniform]s.<br /><br />
 		See [example:webgldeferred_animation WebGL deferred animation] for an example of this method in use.
 		See [example:webgldeferred_animation WebGL deferred animation] for an example of this method in use.
 		</p>
 		</p>

+ 14 - 4
docs/api/en/lights/PointLight.html

@@ -45,8 +45,7 @@ scene.add( light );
 		<p>
 		<p>
 			[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).<br />
 			[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).<br />
 			[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.<br /><br />
 			[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.<br /><br />
-			[page:Number distance] - The distance from the light where the intensity is 0.
-			When set to 0, then the light never stops. Default is 0.<br />
+			[page:Number distance] - Maximum range of the light. Default is 0 (no limit).<br />
 			[page:Float decay] - The amount the light dims along the distance of the light. Default is 1.
 			[page:Float decay] - The amount the light dims along the distance of the light. Default is 1.
 			For [page:WebGLRenderer.physicallyCorrectLights physically correct] lighting, set this to 2.<br /><br />
 			For [page:WebGLRenderer.physicallyCorrectLights physically correct] lighting, set this to 2.<br /><br />
 
 
@@ -67,8 +66,19 @@ scene.add( light );
 
 
 		<h3>[property:Float distance]</h3>
 		<h3>[property:Float distance]</h3>
 		<p>
 		<p>
-			If non-zero, light will attenuate linearly from maximum intensity at the light's
-			position down to zero at this distance from the light. Default is *0.0*.
+			<em>Default mode</em> — When distance is zero, light does not attenuate. When distance is
+			non-zero, light will attenuate linearly from maximum intensity at the light's position down to
+			zero at this distance from the light.
+		</p>
+		<p>
+			<em>[page:WebGLRenderer.physicallyCorrectLights Physically correct] mode</em> — When distance
+			is zero, light will attenuate according to inverse-square law to infinite distance. When
+			distance is non-zero, light will attenuate according to inverse-square law until near the
+			distance cutoff, where it will then attenuate quickly and smoothly to 0. Inherently, cutoffs
+			are not physically correct.
+		</p>
+		<p>
+			Default is *0.0*.
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean isPointLight]</h3>
 		<h3>[property:Boolean isPointLight]</h3>

+ 14 - 4
docs/api/en/lights/SpotLight.html

@@ -71,8 +71,7 @@
 		<p>
 		<p>
 			[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).<br />
 			[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).<br />
 			[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.<br /><br />
 			[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.<br /><br />
-			[page:Float distance] - Maximum distance from origin where light will shine whose intensity
-			is attenuated linearly based on distance from origin. <br />
+			[page:Float distance] - Maximum range of the light. Default is 0 (no limit).<br />
 			[page:Radians angle] - Maximum angle of light dispersion from its direction whose upper
 			[page:Radians angle] - Maximum angle of light dispersion from its direction whose upper
 			bound is Math.PI/2.<br />
 			bound is Math.PI/2.<br />
 			[page:Float penumbra] - Percent of the spotlight cone that is attenuated due to penumbra.
 			[page:Float penumbra] - Percent of the spotlight cone that is attenuated due to penumbra.
@@ -109,8 +108,19 @@
 
 
 		<h3>[property:Float distance]</h3>
 		<h3>[property:Float distance]</h3>
 		<p>
 		<p>
-			If non-zero, light will attenuate linearly from maximum intensity at the light's
-			position down to zero at this distance from the light. Default is *0.0*.
+			<em>Default mode</em> — When distance is zero, light does not attenuate. When distance is
+			non-zero, light will attenuate linearly from maximum intensity at the light's position down to
+			zero at this distance from the light.
+		</p>
+		<p>
+			<em>[page:WebGLRenderer.physicallyCorrectLights Physically correct] mode</em> — When distance
+			is zero, light will attenuate according to inverse-square law to infinite distance. When
+			distance is non-zero, light will attenuate according to inverse-square law until near the
+			distance cutoff, where it will then attenuate quickly and smoothly to 0. Inherently, cutoffs
+			are not physically correct.
+		</p>
+		<p>
+			Default is *0.0*.
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean isSpotLight]</h3>
 		<h3>[property:Boolean isSpotLight]</h3>

+ 12 - 8
docs/api/en/loaders/JSONLoader.html

@@ -93,23 +93,27 @@
 		Begin loading from url and pass the <em>JSON</em> to onLoad.
 		Begin loading from url and pass the <em>JSON</em> to onLoad.
 		</p>
 		</p>
 
 
+		<h3>[method:Object3D parse]( [param:Object json], [param:String path] )</h3>
+		<p>
+		[page:String json] — JSON object to parse.<br />
+		[page:String path] — Base path for resources if no resource path is defined.<br /><br />
+
+		Parse a <em>JSON</em> structure and return an [page:object] containing the parsed [page:Geometry geometry] and [page:Array materials].
+		</p>
+
 		<h3>[method:JSONLoader setCrossOrigin]( [param:String value] )</h3>
 		<h3>[method:JSONLoader setCrossOrigin]( [param:String value] )</h3>
 		<p>
 		<p>
 			Set the [page:.crossOrigin] attribute.
 			Set the [page:.crossOrigin] attribute.
 		</p>
 		</p>
 
 
-		<h3>[method:JSONLoader setTexturePath]( [param:String texturePath] )</h3>
+		<h3>[method:JSONLoader setPath]( [param:String value] )</h3>
 		<p>
 		<p>
-			Set the base path or URL from which to load files. This can be useful if
-			you are loading many files from the same directory.
+			Set the base path for the original file.
 		</p>
 		</p>
 
 
-		<h3>[method:Object3D parse]( [param:Object json], [param:String texturePath] )</h3>
+		<h3>[method:JSONLoader setResourcePath]( [param:String value] )</h3>
 		<p>
 		<p>
-		[page:String json] — JSON object to parse.<br />
-		[page:String texturePath] — Base path for textures.<br /><br />
-
-		Parse a <em>JSON</em> structure and return an [page:object] containing the parsed [page:Geometry geometry] and [page:Array materials].
+			Set the base path for dependent resources like textures.
 		</p>
 		</p>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 0 - 11
docs/api/en/renderers/WebGLRenderer.html

@@ -302,17 +302,6 @@
 		<h3>[method:null clearStencil]( )</h3>
 		<h3>[method:null clearStencil]( )</h3>
 		<p>Clear the stencil buffers. Equivalent to calling [page:WebGLRenderer.clear .clear]( false, false, true ).</p>
 		<p>Clear the stencil buffers. Equivalent to calling [page:WebGLRenderer.clear .clear]( false, false, true ).</p>
 
 
-		<h3>[method:null clearTarget]([param:WebGLRenderTarget renderTarget], [param:boolean color], [param:boolean depth], [param:boolean stencil])</h3>
-		<p>
-		renderTarget -- The [page:WebGLRenderTarget renderTarget] that needs to be cleared.<br />
-		color -- If set, then the color gets cleared. <br />
-		depth -- If set, then the depth gets cleared. <br />
-		stencil -- If set, then the stencil gets cleared.
-		</p>
-		<p>
-		This method clears a rendertarget. To do this, it activates the rendertarget.
-		</p>
-
 		<h3>[method:null compile]( [param:Scene scene], [param:Camera camera] )</h3>
 		<h3>[method:null compile]( [param:Scene scene], [param:Camera camera] )</h3>
 		<p>Compiles all materials in the scene with the camera. This is useful to precompile shaders before the first rendering.</p>
 		<p>Compiles all materials in the scene with the camera. This is useful to precompile shaders before the first rendering.</p>
 
 

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

@@ -149,7 +149,7 @@
 
 
 		<h3>[property:number rotation]</h3>
 		<h3>[property:number rotation]</h3>
 		<p>
 		<p>
-		How much the texture is rotated around the center point, in radians. Postive values are counter-clockwise. Default is *0*.
+		How much the texture is rotated around the center point, in radians. Positive values are counter-clockwise. Default is *0*.
 		</p>
 		</p>
 
 
 		<h3>[property:Vector2 center]</h3>
 		<h3>[property:Vector2 center]</h3>

+ 46 - 0
docs/api/zh/Polyfills.html

@@ -0,0 +1,46 @@
+<!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>Polyfills</h1>
+
+		<p class="desc">Three.js includes polyfills for the following functions and constants.</p>
+
+		<h3>[page:Number.EPSILON Number.EPSILON]</h3>
+		<p>
+			 The difference between one and the smallest value greater than one that can be represented as a Number.
+			 [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON MDN reference].
+		</p>
+
+		<h3>[page:Math.sign Math.sign]( [page:Number x] )</h3>
+		<p>
+			If the argument is a positive number, negative number, positive zero or negative zero,
+			the function will return 1, -1, 0 or -0 respectively. Otherwise, NaN is returned.
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign MDN reference].
+		</p>
+
+		<h3>[page:Function.prototype.name Function.prototype.name]( [page:Number x] )</h3>
+		<p>
+			Returns the name of a function, or (before ES6 implementations) an empty string for anonymous functions.
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name MDN reference].
+		</p>
+
+		<h3>[page:Object.assign Object.assign]( [page:Object target], [page:Object ...sources] )</h3>
+		<p>
+			The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object.
+			It will return the target object.
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign MDN reference].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/polyfills.js src/polyfills.js]
+	</body>
+</html>

+ 48 - 0
docs/api/zh/Template.html

@@ -0,0 +1,48 @@
+<!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">todo</p>
+
+
+		<h2>Example</h2>
+
+		<code>todo</code>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Number todo])</h3>
+		<p></p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Number todo]</h3>
+		<p>
+		todo
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null todo]()</h3>
+		<p>todo</p>
+		<p>todo</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 317 - 0
docs/api/zh/animation/AnimationAction.html

@@ -0,0 +1,317 @@
+<!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">
+			AnimationActions 用来调度存储在[page:AnimationClip AnimationClips]中的动画。<br /><br />
+
+			说明: AnimationAction的大多数方法都可以链式调用<br /><br />
+
+			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述。
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:AnimationMixer mixer], [param:AnimationClip clip], [param:Object3D localRoot] )</h3>
+		<p>
+			[page:AnimationMixer mixer] - 被此动作控制的 *动画混合器* <br />
+			[page:AnimationClip clip] - *动画剪辑* 保存了此动作当中的动画数据 <br />
+			[page:Object3D localRoot] - 动作执行的根对象 <br /><br />
+
+			说明: 不要直接调用这个构造函数,而应该先用[page:AnimationMixer.clipAction]实例化一个AnimationAction,因为这个方法提供了缓存以提高性能。
+		</p>
+
+
+		<h2>属性</h2>
+
+
+		<h3>[property:Boolean clampWhenFinished]</h3>
+		<p>
+			如果 *clampWhenFinished* 值设为true, 那么动画将在最后一帧之后自动暂停([page:.paused paused])<br /><br />
+
+			如果 *clampWhenFinished* 值为false, [page:.enabled enabled] 属性值将在动作的最后一次循环完成之后自动改为false, 那么这个动作以后就不会再执行。 <br /><br />
+
+			默认值为false <br /><br />
+
+			说明: 动作如果被中断了,*clampWhenFinished*将无效 (只有当最后一次循环执行完毕之后才能起效)
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			*enabled* 值设为*false*会禁用动作, 也就是无效.默认值是*true* <br /><br />
+
+			当*enabled*被重新置为*true*, 动画将从当前时间([page:.time time])继续
+			(将 *enabled* 置为 *false* 不会重置此次动作) <br /><br />
+
+			说明: 将*enabled*置为*true*不会让动画自动重新开始。只有满足以下条件时才会马上重新开始:
+            暂停([page:.paused paused])值为*false*, 同时动作没有失效 (执行停止([page:.stop stop])命令或重置([page:.reset reset])命令,
+            且权重([page:.weight weight])和时间比例([page:.timeScale timeScale])都不能为0
+
+		</p>
+
+		<h3>[property:Number loop]</h3>
+		<p>
+			循环模式 (可以通过[page:.setLoop setLoop]改变)。默认值是
+			[page:Animation THREE.LoopRepeat] (重复[page:.repetitions repetitions]次数无穷)<br /><br />
+
+		    必须是以下值之一:<br /><br />
+			[page:Animation THREE.LoopOnce] - 只执行一次 <br />
+			[page:Animation THREE.LoopRepeat] - 重复次数为*repetitions*的值, 且每次循环结束时候将回到起始动作开始下一次循环。 <br />
+			[page:Animation THREE.LoopPingPong] - 重复次数为*repetitions*的值, 且像乒乓球一样在起始点与结束点之间来回循环。
+		</p>
+
+		<h3>[property:Boolean paused]</h3>
+		<p>
+			*paused*置为*true*会通过将动作的有效时间比例改为0来使动作暂停执行。默认值是*false*<br /><br />
+		</p>
+
+		<h3>[property:Number repetitions]</h3>
+		<p>
+			整个动作过程动画剪辑([page:AnimationClip])执行的次数,可以通过[page:.setLoop setLoop]修改。默认值是*Infinity*<br /><br />
+			如果循环模式([page:.loop loop mode])值被设置为[page:Animation THREE.LoopOnce],repetitions值将会无效。
+
+		</p>
+
+		<h3>[property:Number time]</h3>
+		<p>
+			动作开始的时间点 (单位是秒, 从0开始计时).<br /><br />
+
+			这个值被限定在 0到clip.duration(根据循环状态)范围之内. 可以通过改变时间比例([page:.timeScale timeScale]) (使用
+			[page:.setEffectiveTimeScale setEffectiveTimeScale] 或者 [page:.setDuration setDuration])来将它相对于全局的混合器缩放.<br />
+		</p>
+
+		<h3>[property:Number timeScale]</h3>
+		<p>
+			时间([page:.time time])的比例因子. 值为0时会使动画暂停。值为负数时动画会反向执行。默认值是1。<br /><br />
+			关于*timeScale*属性/方法 (不同于 *time*) 有:
+			[page:.getEffectiveTimeScale getEffectiveTimeScale],
+			[page:.halt halt],
+			[page:.paused paused],
+			[page:.setDuration setDuration],
+			[page:.setEffectiveTimeScale setEffectiveTimeScale],
+			[page:.stopWarping stopWarping],
+			[page:.syncWith syncWith],
+			[page:.warp warp].
+		</p>
+
+		<h3>[property:Number weight]</h3>
+		<p>
+			动作的影响程度 (取值范围[0, 1]). 0 (无影响)到1(完全影响)之间的值可以用来混合多个动作。默认值是1<br /><br />
+			关于*weight*的属性/方法有:
+			[page:.crossFadeFrom crossFadeFrom],
+			[page:.crossFadeTo crossFadeTo],
+			[page:.enabled enabled],
+			[page:.fadeIn fadeIn],
+			[page:.fadeOut fadeOut],
+			[page:.getEffectiveWeight getEffectiveWeight],
+			[page:.setEffectiveWeight setEffectiveWeight],
+			[page:.stopFading stopFading].
+		</p>
+
+		<h3>[property:Boolean zeroSlopeAtEnd]</h3>
+		<p>
+            启用平滑插值,无须单独剪辑开始、循环和结束。默认值是*true*
+		</p>
+
+		<h3>[property:Boolean zeroSlopeAtStart]</h3>
+		<p>
+            启用平滑插值,无须单独剪辑开始、循环和结束。默认值是*true*
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:AnimationAction crossFadeFrom]( [param:AnimationAction fadeOutAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
+		<p>
+			在传入的时间段内,让此动作淡入([page:.fadeIn fade in]),同时让另一个动作淡出。此方法可链式调用。<br /><br />
+
+			如果warpBoolean值是true, 额外的 [page:.warp warping] (时间比例的渐变)将会被应用。 <br /><br />
+
+			说明: 与 *fadeIn*/*fadeOut*一样, 淡入淡出动作开始/结束时的权重是1.
+
+		</p>
+
+		<h3>[method:AnimationAction crossFadeTo]( [param:AnimationAction fadeInAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
+		<p>
+            在传入的时间段内, 让此动作淡出([page:.fadeOut fade out]),同时让另一个动作淡入。此方法可链式调用。<br /><br />
+			如果warpBoolean值是true, 额外的 [page:.warp warping] (时间比例的渐变)将会被应用。<br /><br />
+
+			说明: 与 *fadeIn*/*fadeOut*一样, 淡入淡出动作开始/结束时的权重是1.
+		</p>
+
+		<h3>[method:AnimationAction fadeIn]( [param:Number durationInSeconds] )</h3>
+		<p>
+            在传入的时间间隔内,逐渐将此动作的权重([page:.weight weight])由0升到1。此方法可链式调用。
+		</p>
+
+		<h3>[method:AnimationAction fadeOut]( [param:Number durationInSeconds] )</h3>
+		<p>
+            在传入的时间间隔内,逐渐将此动作的权重([page:.weight weight])由1降至0。此方法可链式调用。
+		</p>
+
+		<h3>[method:Number getEffectiveTimeScale]()</h3>
+		<p>
+			返回有效时间比例(考虑当前的变形状态和[page:.paused paused]值).
+		</p>
+
+		<h3>[method:number getEffectiveWeight]()</h3>
+		<p>
+			返回影响权重(考虑当前淡入淡出状态和[page:.enabled enabled]的值).
+		</p>
+
+		<h3>[method:AnimationClip getClip]()</h3>
+		<p>
+			返回存有此动作的动画数据的剪辑
+		</p>
+
+		<h3>[method:AnimationMixer getMixer]()</h3>
+		<p>
+            返回负责完成此动作的混合器
+		</p>
+
+		<h3>[method:Object3D getRoot]()</h3>
+		<p>
+			返回执行此动作的根对象
+		</p>
+
+		<h3>[method:AnimationAction halt]( [param:Number durationInSeconds] )</h3>
+		<p>
+			在传入的时间间隔内,通过从当前值开始逐渐降低时间比例([page:.timeScale timeScale])使动画逐渐减速至0。此方法可链式调用。
+		</p>
+
+		<h3>[method:Boolean isRunning]()</h3>
+		<p>
+			返回当前此动作的时间([page:.time time])是否正在流逝 <br /><br />
+
+			除了在混合器中被激活之外 (参见[page:.isScheduled isScheduled])必须满足以下条件才会返回true:
+			[page:.paused paused]值等于false, [page:.enabled enabled]值为true,
+			[page:.timeScale timeScale]值不为0, 而且没有安排延时启动([page:.startAt startAt]).<br /><br />
+
+			说明 *isRunning* 为true并不意味着此动画一定会切实地被看到。仅当权重([page:.weight weight])被设置为非零值时才是这种情况。
+		</p>
+
+		<h3>[method:Boolean isScheduled]()</h3>
+		<p>
+			如果动作是在混合器中被激活的,返回true。<br /><br />
+			说明: 这并不意味着动画正在执行中 (需要额外判断[page:.isRunning isRunning]值)
+		</p>
+
+		<h3>[method:AnimationAction play]()</h3>
+		<p>
+			让混合器激活动作。此方法可链式调用。<br /><br />
+
+			说明: 激活动作并不意味着动画会立刻开始: 如果动作在此之前已经完成(到达最后一次循环的结尾),或者如果已经设置了延时
+			启动(通过 [page:.startAt startAt]),则必须先执行重置操作([page:.reset reset])。 一些其它的设置项 ([page:.paused paused]=true, [page:.enabled enabled]=false,
+			[page:.weight weight]=0, [page:.timeScale timeScale]=0) 也可以阻止动画的开始。
+		</p>
+
+		<h3>[method:AnimationAction reset]()</h3>
+		<p>
+			重置动作。此方法可链式调用。<br /><br />
+
+			该方法会将暂停值 [page:.paused paused] 设为false, 启用值[page:.enabled enabled] 设为true,时间值
+			[page:.time time]设为0, 中断任何预定的淡入淡出和变形, 以及移除内部循环次数以及延迟启动。<br /><br />
+
+			说明: 停止方法[page:.stop stop]内调用了重置方法(reset), 但是 .*reset*不会调用 .*stop*。
+            这就表示: 如果你想要这两者, 重置并且停止, 不要调用*reset*; 而应该调用*stop*。
+		</p>
+
+		<h3>[method:AnimationAction setDuration]( [param:Number durationInSeconds] )</h3>
+		<p>
+			设置单此循环的持续时间(通过调整时间比例([page:.timeScale timeScale])以及停用所有的变形)。此方法可以链式调用。
+		</p>
+
+		<h3>[method:AnimationAction setEffectiveTimeScale]( [param:Number timeScale] )</h3>
+		<p>
+			设置时间比例([page:.timeScale timeScale])以及停用所有的变形)。 此方法可以链式调用。<br /><br />
+
+			如果暂停 ([page:.paused paused])值为false, 有效的时间比例(一个内部属性) 也会被设为该值; 否则有效时间比例 (直接影响当前动画
+			将会被设为0.<br /><br />
+
+			说明: 如果时间比例.*timeScale* 被此方法设为0,暂停值*paused*不会被自动改为*true*。
+		</p>
+
+		<h3>[method:AnimationAction setEffectiveWeight]( [param:Number weight] )</h3>
+		<p>
+			设置权重([page:.weight weight])以及停止所有淡入淡出。该方法可以链式调用。<br /><br />
+
+			如果启用属性([page:.enabled enabled])为true, 那么有效权重(一个内部属性) 也会被设为该值; 否则有效权重 (直接影响当前动画)将会被设为0.<br /><br />
+
+			说明: 如果该方法将权重*weight*值设为0,启用值*enabled*不会被自动改为*false*。
+		</p>
+
+		<h3>[method:AnimationAction setLoop]( [param:Number loopMode], [param:Number repetitions] )</h3>
+		<p>
+			设置循环([page:.loop loop mode])及循环重复次数([page:.repetitions repetitions])。改方法可被链式调用。
+		</p>
+
+		<h3>[method:AnimationAction startAt]( [param:Number startTimeInSeconds] )</h3>
+		<p>
+			定义延时启动的事件 (通常会传入[page:AnimationMixer.time] +
+			deltaTimeInSeconds)。 该方法可以链式调用。<br /><br />
+
+			说明: 如果 *startAt*方法是和[page:.play play]方法一起链式调用, 或者动画已经在混合器中被激活 (通过先行调用*play*, 同时没有停止或重置),动画将仅在给定时间开始.
+		</p>
+
+		<h3>[method:AnimationAction stop]()</h3>
+		<p>
+			让混合器停止动作。该方法可以被链式调用。<br /><br />
+
+			动作会马上停止以及完全[page:.reset 重置].<br /><br />
+
+			说明: 你可以通过[page:AnimationMixer.stopAllAction mixer.stopAllAction]在一个混合器中一举停止所有处于激活态的动作。
+		</p>
+
+		<h3>[method:AnimationAction stopFading]()</h3>
+		<p>
+			停止动作中所有预定的淡入淡出([page:.fadeIn fading])。该方法可以被链式调用。
+		</p>
+
+		<h3>[method:AnimationAction stopWarping]()</h3>
+		<p>
+			停用动作中所有预定的变形[page:.warp warping]。该方法可被链式调用。
+		</p>
+
+		<h3>[method:AnimationAction syncWith]( [param:AnimationAction otherAction] )</h3>
+		<p>
+			将此动作与传入的其它动作同步。此方法可被链式调用。<br /><br />
+
+			同步是通过将动作的时间([page:.time time])或时间比例([page:.timeScale timeScale])与另一动作设置一致来实现的
+			(停用所有预定的变形)。<br /><br />
+
+			说明: 另一动作的 *time* 和 *timeScale*未来变化将不会被检测到.
+		</p>
+
+		<h3>[method:AnimationAction warp]( [param:Number startTimeScale], [param:Number endTimeScale], [param:Number durationInSeconds] )</h3>
+		<p>
+            在传入的事件间隔内,通过逐渐将时间比例[page:.timeScale timeScale]由*startTimeScale*修改至*endTimeScale*来改变回放速度。该方法可被链式调用。
+		</p>
+
+
+		<h2>事件</h2>
+
+
+		<p class="desc">
+			有两个事件分别表示了单次循环的结束和全部动作的结束,你可以这样对它们做出响应:
+		</p>
+		<code>
+		mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta
+		mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction
+		</code>
+
+		<h2>源码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 134 - 0
docs/api/zh/animation/AnimationClip.html

@@ -0,0 +1,134 @@
+<!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">
+			动画剪辑(AnimationClip)是一个可重用的关键帧轨道集,它代表动画。<br /><br />
+
+			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:String name], [param:Number duration], [param:Array tracks] )</h3>
+		<p>
+			[page:String name] - 此剪辑的名称<br />
+			[page:Number duration] - 持续时间 (单位秒). 如果传入负数, 持续时间将会从传入的数组中计算得到。<br />
+			[page:Array tracks] - 一个由关键帧轨道([page:KeyframeTrack KeyframeTracks])组成的数组。<br /><br />
+
+			说明: 与其直接调用构造函数实例化一个动画剪辑, 不如使用其静态方法中的一个来创建:
+			用JSON ([page:.parse parse]), 用变形目标序列([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence],
+			[page:.CreateClipsFromMorphTargetSequences CreateClipsFromMorphTargetSequences])或者用动画层级 ([page:.parseAnimation parseAnimation])来创建 - 如果你的模型中几何体的动画数组中还没有保存动画剪辑的话。
+
+		</p>
+
+
+		<h2>属性</h2>
+
+
+		<h3>[property:Number duration]</h3>
+		<p>
+			剪辑的持续时间 (单位秒). 可以通过[page:.resetDuration resetDuration]从轨道数组([page:.tracks tracks])计算出来。
+
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+			剪辑的名称. 调用[page:.findByName findByName]根据名称搜索某个剪辑
+		</p>
+
+		<h3>[property:Array tracks]</h3>
+		<p>
+            一个包含该剪辑中有动画的所有属性的关键帧轨道([page:KeyframeTrack])的数组。
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+			剪辑实例的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID],自动分配且不可编辑。
+
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:this optimize]()</h3>
+		<p>
+            通过移除等效的顺序键(在变形目标序列中很常见)来优化每一个轨道
+
+		</p>
+
+		<h3>[method:this resetDuration]()</h3>
+		<p>
+			将剪辑的持续时间([page:.duration duration])设为最长的关键帧轨道([page:KeyframeTrack])的持续时间。
+			.
+		</p>
+
+		<h3>[method:this trim]()</h3>
+		<p>
+			修剪所有的轨道到该剪辑的持续时间。
+		</p>
+
+		<h3>[method:Boolean validate]()</h3>
+		<p>
+            对剪辑中的每个轨道执行最小验证。如果所有轨道都有效,返回true。
+		</p>
+
+
+		<h2>静态方法</h2>
+
+
+		<h3>[method:Array CreateClipsFromMorphTargetSequences]( [param:String name], [param:Array morphTargetSequence], [param:Number fps], [param:Boolean noLoop] )</h3>
+		<p>
+			返回从几何体的变形目标序列([page:Geometry.morphTargets morph
+			target sequences])创建的新动画剪辑(AnimationClip)数组,并尝试将变形目标名称分类为基于动画组的模式,如“Walk_001、Walk_002、Run_001、Run_002……”。<br /><br />
+
+			该方法被[page:JSONLoader]内部调用, 并且它使用了
+			[page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence].
+		</p>
+
+		<h3>[method:AnimationClip CreateFromMorphTargetSequence]( [param:String name], [param:Array morphTargetSequence], [param:Number fps], [param:Boolean noLoop] )</h3>
+		<p>
+            返回一个由几何体变形目标数组([page:Geometry.morphTargets morph targets array])得到的新动画剪辑,接收名称和帧率参数。<br /><br />
+
+			说明: 帧率是必须参数, 但是动画速度可能会在*AnimationAction*中被[page:AnimationAction.setDuration animationAction.setDuration]方法重写。
+
+		</p>
+
+		<h3>[method:AnimationClip findByName]( [param:Object objectOrClipArray], [param:String name] )</h3>
+		<p>
+			根据名称搜索动画剪辑(AnimationClip), 接收一个动画剪辑数组或者一个包含名为"animation"的数组的网格(或几何体)作为第一个参数。
+		</p>
+
+		<h3>[method:AnimationClip parse]( [param:Object json] )</h3>
+		<p>
+			解析剪辑的JSON表示,并返回一个动画剪辑(AnimationClip)。
+		</p>
+
+		<h3>[method:AnimationClip parseAnimation]( [param:Object animation], [param:Array bones] )</h3>
+		<p>
+            解析动画层级格式并返回动画剪辑。
+		</p>
+
+		<h3>[method:Object toJSON]( [param:AnimationClip clip] )</h3>
+		<p>
+			接收一个动画剪辑为参数并返回一个JSON对象.
+		</p>
+
+
+		<h2>源码</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 101 - 0
docs/api/zh/animation/AnimationMixer.html

@@ -0,0 +1,101 @@
+<!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">
+            动画混合器是用于场景中特定对象的动画的播放器。当场景中的多个对象独立动画时,每个对象都可以使用同一个动画混合器。<br /><br />
+
+			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:Object3D rootObject] )</h3>
+		<p>
+			[page:Object3D rootObject] - 混合器播放的动画所属的对象<br />
+		</p>
+
+
+		<h2>属性</h2>
+
+
+		<h3>[property:Number time]</h3>
+		<p>
+			全局的混合器时间(单位秒; 混合器创建的时刻记作0时刻)
+		</p>
+
+		<h3>[property:Number timeScale]</h3>
+		<p>
+			全局时间([page:.time mixer time])的比例因子<br /><br />
+
+			说明: 将混合器的时间比例设为0, 稍后再设置为1,可以暂停/取消暂停由该混合器控制的所有动作。
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:AnimationAction clipAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
+		<p>
+			返回所传入的剪辑参数的[page:AnimationAction], 根对象参数可选,默认值为混合器的默认根对象。第一个参数可以是动画剪辑([page:AnimationClip])对象或者动画剪辑的名称。<br /><br />
+
+			如果不存在符合传入的剪辑和根对象这两个参数的动作, 该方法将会创建一个。传入相同的参数多次调用将会返回同一个剪辑实例。
+		</p>
+
+		<h3>[method:AnimationAction existingAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
+		<p>
+			返回传入剪辑的已有[page:AnimationAction], 根对象参数可选,默认值为混合器的默认根对象。<br /><br />
+
+			第一个参数可以是动画剪辑([page:AnimationClip])对象或者动画剪辑的名称。
+		</p>
+
+		<h3>[method:Object3D getRoot]()</h3>
+		<p>
+			返回混合器的根对象
+		</p>
+
+		<h3>[method:AnimationMixer stopAllAction]()</h3>
+		<p>
+			停用混合器上所有预定的动作
+		</p>
+
+		<h3>[method:AnimationMixer update]([param:Number deltaTimeInSeconds]) </h3>
+		<p>
+			推进混合器时间并更新动画 <br /><br />
+
+			通常在渲染循环中完成, 传入按照混合器的时间比例([page:.timeScale timeScale])缩放过的[page:Clock.getDelta clock.getDelta]
+		</p>
+
+		<h3>[method:null uncacheClip]([param:AnimationClip clip])</h3>
+
+		<p>
+			释放剪辑的所有内存资源
+		</p>
+
+		<h3>[method:null uncacheRoot]([param:Object3D root]) </h3>
+		<p>
+			释放根对象的所有内存资源
+		</p>
+
+		<h3>[method:null uncacheAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
+		<p>
+			释放动作的所有内存资源
+		</p>
+
+
+		<h2>源码</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 82 - 0
docs/api/zh/animation/AnimationObjectGroup.html

@@ -0,0 +1,82 @@
+<!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">接收共享动画状态的一组对象。<br /><br />
+
+			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
+		</p>
+
+		<h2>用法:</h2>
+
+		<p class="desc">
+            将本来要作为根对象传入构造器或者动画混合器([page:AnimationMixer AnimationMixer])的[page:AnimationMixer.clipAction clipAction]方法中的对象加入组中,并将这个组对象作为根对象传递。
+			<br /><br />
+
+		    注意,这个类的实例作为混合器中的一个对象,因此,必须对组内的单个对象做缓存控制。
+		</p>
+
+
+		<h2>限制</h2>
+		<p class="desc">
+			动画属性必须在组中的所有对象之间兼容。<br /><br />
+
+			单个属性可以通过目标组控制或者直接控制,但不能两者同时。
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		[page:object obj] - 共享同一动画状态的任意数量的网格<br />
+
+
+		<h2>属性</h2>
+
+
+		<h3>[property:object stats]</h3>
+		<p>
+			一个包含此动画对象组(AnimationObjectGroup)的一些信息的对象 (总数, 使用中的数量,绑定到每个对象上的数量)
+
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+			这个动画对象组(AnimationObjectGroup)的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]。它是自动分配的,不可被编辑。
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:null add]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<p>
+			将任意数量的对象添加到这个动画对象组(AnimationObjectGroup)。
+		</p>
+
+		<h3>[method:null remove]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<p>
+			将任意数量的对象从这个动画对象组(AnimationObjectGroup)中删除。
+		</p>
+
+		<h3>[method:null uncache]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<p>
+			释放此动画对象组(AnimationObjectGroup)传递的对象的所有内存资源
+		</p>
+
+
+		<h2>源码</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 59 - 0
docs/api/zh/animation/AnimationUtils.html

@@ -0,0 +1,59 @@
+<!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">
+            一个提供各种动画辅助方法的对象,内部使用。
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:Array arraySlice]( array, from, to )</h3>
+		<p>
+		和Array.prototype.slice作用一样, 但也适用于类型化数组.
+		</p>
+
+		<h3>[method:Array convertArray]( array, type, forceClone )</h3>
+		<p>
+            将数组转换为某种特定类型。
+		</p>
+
+		<h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName  )</h3>
+		<p>
+            用于解析AOS关键帧格式。
+		</p>
+
+		<h3>[method:Array getKeyframeOrder]( times )</h3>
+		<p>
+            返回一个数组,时间和值可以根据此数组排序。
+		</p>
+
+		<h3>[method:Boolean isTypedArray]( object )</h3>
+		<p>
+            如果该对象是类型化数组,返回*true*
+
+		</p>
+
+		<h3>[method:Array sortedArray]( values, stride, order )</h3>
+		<p>
+            将[page:AnimationUtils.getKeyframeOrder getKeyframeOrder]方法返回的数组排序。
+
+		</p>
+
+
+		<h2>源码</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 231 - 0
docs/api/zh/animation/KeyframeTrack.html

@@ -0,0 +1,231 @@
+<!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">
+			关键帧轨道(KeyframeTrack)是关键帧([link:https://en.wikipedia.org/wiki/Key_frame keyframes])的定时序列,
+			它由时间和相关值的列表组成, 用来让一个对象的某个特定属性动起来。
+		</p>
+
+		<p>
+            在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
+		</p>
+
+		<p>
+            和[link:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3 JSON model format]的动画层级相反,
+            关键帧轨道(KeyframeTrack)不会将单帧作为对象存储在“key”数组(一个存有每一帧的时间和值的地方)中。
+
+		</p>
+
+		<p>
+            关键帧轨道(KeyframeTrack)中总是存在两个数组:[page:.times times]数组按顺序存储该轨道的所有关键帧的时间值,而[page:.values values]数组包含动画属性的相应更改值。
+		</p>
+
+		<p>
+            值数组中的每一个成员,属于某一特定时间点,不仅可以是一个简单的数字,还可以是(比如)一个向量(如果是位置动画)或者是一个四元数(如果是旋转动画)。
+            因此,值数组(也是一个平面阵列)的长度可能是时间数组的三四倍。
+		</p>
+
+		<p>
+            与不同类型的动画值对应,存在若干关键帧轨道(KeyframeTrack)的子类,继承了它大多数属性和方法:
+		</p>
+
+		<ul>
+			<li>[page:BooleanKeyframeTrack]</li>
+			<li>[page:ColorKeyframeTrack]</li>
+			<li>[page:NumberKeyframeTrack]</li>
+			<li>[page:QuaternionKeyframeTrack]</li>
+			<li>[page:StringKeyframeTrack]</li>
+			<li>[page:VectorKeyframeTrack]</li>
+		</ul>
+
+		<p>
+            可以在[link:https://threejs.org/examples/js/AnimationClipCreator.js]文件中找到用不同类型的关键帧轨道创建动画剪辑([page:AnimationClip AnimationClips])的示例。
+		</p>
+
+		<p>
+            由于显式值仅针对存储在时间数组中的离散时间点指定,因此必须在两个时间点之间进行插值
+		</p>
+
+		<p>
+            轨道的名称对于这个轨道与动画节点的特定属性的连接(由[page:PropertyBinding]完成)很重要。
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values], [param:Constant interpolation] )</h3>
+		<p>
+			[page:String name] - 关键帧轨道(KeyframeTrack)的标识符.<br />
+			[page:Array times] - 关键帧的时间数组, 被内部转化为
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
+			[page:Array values] - 与时间数组中的时间点相关的值组成的数组, 被内部转化为
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
+			[page:Constant interpolation] - 使用的插值类型。 参见
+			[page:Animation Animation Constants] for possible values. Default is [page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>属性</h2>
+
+
+		<h3>[property:String name]</h3>
+		<p>
+            轨道的名称可以指动画对象中的变形目标([page:Geometry.morphTargets morph targets])、骨骼([page:SkinnedMesh bones])或可能的其他值
+			查看[page:PropertyBinding.parseTrackName]可获知哪些形式的字符串可以解析出绑定的属性:
+		</p>
+		<p>
+            可以使用节点名称或uuid(尽管它需要位于传递到混合器的场景图节点的子树中)引用到某节点。或者, 如果轨道名称的首字符是点,
+			该轨道会应用到传入到混合器的根节点上。
+		</p>
+
+		<p>
+			通常,在该节点之后会直接指定一个属性。 但是也可以再指定一个子属性, 例如 如果只是想通过浮动轨道使X组件旋转,可使用 .rotation[x]。
+		</p>
+
+		<p>
+            还可以使用对象名称来指定骨骼或多材质,例如:.bones[R_hand].scale;再比如,材料数组中的第四个材料的漫反射颜色的红通道可以通过 .materials[3].diffuse[r]访问到。
+		</p>
+
+		<p>
+			属性绑定也会解析变形目标名称, 例如: .morphTargetInfluences[run]
+		</p>
+
+		<p>
+			说明: 轨道名称不一定得唯一。 多个轨道可驱动统一属性, 此时结果应该基于多个轨道之间根据其各自动作的权重的加权混合。
+		</p>
+
+		<h3>[property:Float32Array times]</h3>
+		<p>
+			一个[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array]类型的值,由传入构造器中时间数组参数转化而来。
+		</p>
+
+		<h3>[property:Float32Array values]</h3>
+		<p>
+			一个[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array]类型的值,
+			由传入构造器中值数组参数转化而来
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			默认的参数插值类型: [page:Animation InterpolateLinear].
+		</p>
+
+		<h3>[property:Constant TimeBufferType ]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			内部用于时间数组的缓冲区的类型
+		</p>
+
+		<h3>[property:Constant ValueBufferType ]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			内部用于值数组的缓冲区的类型
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:null createInterpolant]()</h3>
+		<p>
+			根据传入构造器中的插值类型参数,创建线性插值([page:LinearInterpolant LinearInterpolant]),立方插值([page:CubicInterpolant CubicInterpolant])或离散插值
+			([page:DiscreteInterpolant DiscreteInterpolant])
+		</p>
+
+		<h3>[method:null getInterpolation]()</h3>
+		<p>
+			返回插值类型
+		</p>
+
+		<h3>[method:Number getValueSize]()</h3>
+		<p>
+			返回每个值的大小(即[page:.values values]数组的长度除以[page:.times times]数组的长度
+
+		</p>
+
+		<h3>[method:DiscreteInterpolant InterpolantFactoryMethodDiscrete]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<p>
+            根据时间([page:KeyframeTrack.times times])和值([page:KeyframeTrack.times values])创建一个新的离散插值([page:DiscreteInterpolant DiscreteInterpolant])。
+            可传入一个Float32Array类型的变量来接收结果, 否则会自动创建一个长度适宜的新数组。
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<p>
+            根据时间([page:KeyframeTrack.times times])和值([page:KeyframeTrack.times values])创建一个新的线性插值([page:LinearInterpolant LinearInterpolant])。
+            可传入一个Float32Array类型的变量来接收结果, 否则会自动创建一个长度适宜的新数组。
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<p>
+            根据时间([page:KeyframeTrack.times times])和值([page:KeyframeTrack.times values])创建一个新的立方插值([page:CubicInterpolant CubicInterpolant])。
+            可传入一个Float32Array类型的变量来接收结果, 否则会自动创建一个长度适宜的新数组。
+		</p>
+
+		<h3>[method:this optimize]()</h3>
+		<p>
+            删除等效的顺序键,这些键在变形目标序列中很常见。
+		</p>
+
+		<h3>[method:this scale]()</h3>
+		<p>
+            缩放所有关键帧的时间。<br /><br />
+
+			说明: 这个方法很有用,例如, 可用于转化为某一特定帧率(正如[page:AnimationClip.CreateFromMorphTargetSequence animationClip.CreateFromMorphTargetSequence]内部所做的一样)。
+		</p>
+
+		<h3>[method:this setInterpolation]( [param:Constant interpolationType] )</h3>
+		<p>
+			设置插值类型。 参阅[page:Animation Animation Constants]以供选择。
+		</p>
+
+		<h3>[method:this shift]( [param:Number timeOffsetInSeconds] )</h3>
+		<p>
+            及时删除之前或之后的所有关键帧。
+		</p>
+
+
+		<h3>[method:this trim]( [param:Number startTimeInSeconds], [param:Number endTimeInSeconds] )</h3>
+		<p>
+			删除开始时间(startTime)之前以及结束时间(endTime)之后的关键帧,不改变[*startTime*, *endTime*]范围内的任何值。
+		</p>
+
+		<h3>[method:Boolean validate]()</h3>
+		<p>
+            在轨道上执行最小验证,有效则返回true
+		</p>
+
+		<p>
+			如果出现以下情况,该方法会在控制台输出错误日志: 轨道为空; [page:.valueSize value size]值不可靠;
+			[page:.times times]数组或[page:.values values]数组中的元素不是数字;*times*数组中的元素乱序。
+		</p>
+
+		<h2>静态方法</h2>
+
+		<h3>[method:KeyframeTrack parse]( [param:JSON json] )</h3>
+		<p>
+            解析JSON对象并返回一个正确类型的新关键帧轨道。
+		</p>
+
+		<h3>[method:JSON toJSON]( [param:KeyframeTrack track] )</h3>
+		<p>
+		    将该轨道转化为JSON
+		</p>
+
+
+		<h2>源码</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 130 - 0
docs/api/zh/animation/PropertyBinding.html

@@ -0,0 +1,130 @@
+<!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">
+            对场景图中某一真实属性的引用,内部使用。
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:Object3D rootNode], path, parsedPath )</h3>
+		<p>
+			-- [page:Object3D rootNode]:
+			-- path
+			-- parsedPath (可选)
+
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:Number path]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number parsedPath]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number node]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number rootNode]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Object BindingType]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Object Versioning]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Array GetterByBindingType]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Array SetterByBindingTypeAndVersioning]</h3>
+		<p>
+
+		</p>
+
+
+
+		<h2>方法</h2>
+
+		<h3>[method:null getValue]( [param:Array targetArray], [param:Number offset] )</h3>
+		<p>
+		</p>
+
+		<h3>[method:null setValue]( [param:Array sourceArray], [param:Number offset] )</h3>
+		<p>
+		</p>
+
+		<h3>[method:null bind]( )</h3>
+		<p>
+			为场景图中的属性创建 getter / setter对。 被[page:PropertyBinding.getValue getValue]和[page:PropertyBinding.setValue setValue]方法内部使用。
+		</p>
+
+		<h3>[method:null unbind]( )</h3>
+		<p>
+			解绑场景图中某属性的getter / setter对。
+		</p>
+
+		<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
+		<p>
+			创建一个新的复合属性绑定(Composite PropertyBinding)
+		</p>
+
+		<h3>[method:Constructor create]( root, path, parsedPath )</h3>
+		<p>
+            创建一个新的复合属性绑定(Composite PropertyBinding) (如果根对象是[page:AnimationObjectGroup])或普通属性绑定
+		</p>
+
+		<h3>[method:Constructor parseTrackName]( trackName )</h3>
+		<p>
+			匹配以下形式的字符串:<br />
+			-- nodeName.property<br />
+			-- nodeName.property[accessor]<br />
+			-- nodeName.material.property[accessor]<br />
+			-- uuid.property[accessor]<br />
+			-- uuid.objectName[objectIndex].propertyName[propertyIndex]<br />
+			-- parentName/nodeName.property<br />
+			-- parentName/parentName/nodeName.property[index]<br />
+			-- .bone[Armature.DEF_cog].position<br />
+			-- scene:helium_balloon_model:helium_balloon_model.position
+		</p>
+
+		<h3>[method:Constructor findNode]( root, nodeName )</h3>
+		<p>
+            从节点树或骨骼([page:Skeleton Skeleton])中找出某节点
+		</p>
+
+
+
+
+		<h2>源码</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 97 - 0
docs/api/zh/animation/PropertyMixer.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+        允许加权累加的缓冲场景图属性,内部使用
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:PropertyBinding binding], [param:String typeName], [param:Number valueSize] )</h3>
+		<p>
+			-- binding <br />
+			-- typeName <br />
+			-- valueSize <br />
+		</p>
+
+
+		<h2>属性</h2>
+
+
+		<h3>[property:PropertyBinding binding]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:TypedArray buffer]</h3>
+		<p>
+			大小为 4 * [page:PropertyMixer valueSize] 的缓冲区 <br /><br />
+			布局为: [ incoming | accu0 | accu1 | orig ]<br /><br />
+			插值器可使用 .buffer 作为 .result 且数据会进入'incoming'区.
+			'accu0'和'accu1'用于按帧交错累加‘incoming’中的数据并进行比较以侦测变化。'orig'存储着属性的原始状态。
+		</p>
+
+		<h3>[property:Number cumulativeWeight]</h3>
+		<p>
+			默认值是0
+		</p>
+
+		<h3>[property:Number valueSize]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number referenceCount]</h3>
+		<p>
+            默认值是0
+		</p>
+
+		<h3>[property:Number useCount]</h3>
+		<p>
+           默认值是0
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:null accumulate]( [param:Number accuIndex], [param:Number weight] )</h3>
+		<p>
+			将[page:PropertyMixer.buffer buffer][accuIndex]中'incoming'区的数据累加到'accu[i]'区中。<br />
+
+			如果权值为0,则什么都不做。
+		</p>
+
+		<h3>[method:null apply]( [param:Number accuIndex] )</h3>
+		<p>
+			当累加值不同时,将[page:PropertyMixer.buffer buffer] 'accu[i]区的状态应用于绑定.
+		</p>
+
+		<h3>[method:null saveOriginalState]( )</h3>
+		<p>
+			记住绑定属性的状态并复制到两个'accu'区中.
+		</p>
+
+		<h3>[method:null restoreOriginalState](  )</h3>
+		<p>
+            将预先通过'saveOriginalState'方法取得的状态应用于绑定。
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 78 - 0
docs/api/zh/animation/tracks/BooleanKeyframeTrack.html

@@ -0,0 +1,78 @@
+<!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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A Track of boolean keyframe values.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			The default interpolation type to use, [page:Animation InterpolateDiscrete].
+		</p>
+
+		<h3>[property:Array ValueBufferType]</h3>
+		<p>
+			A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'bool'.
+		</p>
+
+
+		<h2>Methods</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear ]()</h3>
+		<p>
+			The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth ]()</h3>
+		<p>
+			The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</p>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 62 - 0
docs/api/zh/animation/tracks/ColorKeyframeTrack.html

@@ -0,0 +1,62 @@
+<!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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A Track of keyframe values that represent color changes.<br /><br />
+			The very basic implementation of this subclass has nothing special yet. However, this is the place
+			for color space parameterization.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'color'.
+		</p>
+
+
+		<h2>Methods</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</p>
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 62 - 0
docs/api/zh/animation/tracks/NumberKeyframeTrack.html

@@ -0,0 +1,62 @@
+<!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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A Track of numeric keyframe values.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</p>
+
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'number'.
+		</p>
+
+
+		<h2>Methods</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</p>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 73 - 0
docs/api/zh/animation/tracks/QuaternionKeyframeTrack.html

@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		[page:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A Track of quaternion keyframe values.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] (required) array of keyframe times.<br />
+			[page:Array values] values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			The default interpolation type to use, [page:Animation InterpolateLinear].
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'quaternion'.
+		</p>
+
+
+		<h2>Methods</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
+		<p>
+			Returns a new [page:QuaternionLinearInterpolant QuaternionLinearInterpolant] based on the
+			[page:KeyframeTrack.values values], [page:KeyframeTrack.times times] and
+			[page:KeyframeTrack.valueSize valueSize] of the keyframes.
+		</p>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 81 - 0
docs/api/zh/animation/tracks/StringKeyframeTrack.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>
+
+		[page:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A Track of string keyframe values.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateDiscrete].
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			The default interpolation type to use, [page:Animation InterpolateDiscrete].
+		</p>
+
+		<h3>[property:Array ValueBufferType]</h3>
+		<p>
+			A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'string'.
+		</p>
+
+
+		<h2>Methods</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
+		<p>
+		  The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth]()</h3>
+		<p>
+		  The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</p>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 61 - 0
docs/api/zh/animation/tracks/VectorKeyframeTrack.html

@@ -0,0 +1,61 @@
+<!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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A Track of vector keyframe values.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>Properties</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'vector'.
+		</p>
+
+
+		<h2>Methods</h2>
+
+
+		<p class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</p>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 212 - 0
docs/api/zh/audio/Audio.html

@@ -0,0 +1,212 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			创建一个( 全局 ) audio对象.<br /><br />
+
+			使用 [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+		</p>
+
+
+		<h2>例子</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		var listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create a global audio source
+		var sound = new THREE.Audio( listener );
+
+		// load a sound and set it as the Audio object's buffer
+		var audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setLoop( true );
+			sound.setVolume( 0.5 );
+			sound.play();
+		});
+		</code>
+
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name]( [param:AudioListener listener] )</h3>
+		<p>
+		listener — (必须) [page:AudioListener AudioListener] 的实例.
+		</p>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:Boolean autoplay]</h3>
+		<p>是否自动开始播放. 默认为 *false*.</p>
+
+		<h3>[property:AudioContext context]</h3>
+		<p>构造函数中传入[page:AudioListener listener]的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].</p>
+
+		<h3>[property:Array filters]</h3>
+		<p>表示[link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes]的数组. 可以使用多种不同的低阶filters去创建复杂的音效. filters可以通过 [page:Audio.setFilter] 或者 [page:Audio.setFilters]设置.</p>
+
+		<h3>[property:GainNode gain]</h3>
+		<p>使用[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]()创建的[link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode].</p>
+
+		<h3>[property:Boolean hasPlaybackControl]</h3>
+		<p>是否可以使用 [page:Audio.play play](),
+			[page:Audio.pause pause]()等方法控制播放. 默认为 *true*.</p>
+
+		<h3>[property:Number playbackRate]</h3>
+		<p>播放速率. 默认为 *1*.</p>
+
+		<h3>[property:Boolean isPlaying]</h3>
+		<p>是否正在播放</p>
+
+		<h3>[property:Number startTime]</h3>
+		<p>开始播放的时间. 和[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start]()的*when*参数一样. 默认为 *0*.</p>
+
+		<h3>[property:Number offset]</h3>
+		<p>音频开始播放的偏移时间. 和[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start]()的*offset*参数一样. 默认为 *0*.</p>
+
+		<h3>[property:String source]</h3>
+		<p>使用 [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createBufferSource AudioContext.createBufferSource]()创建的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode].</p>
+
+		<h3>[property:String sourceType]</h3>
+		<p>音源的类型. 默认为 'empty'.</p>
+
+		<h3>[property:String type]</h3>
+		<p>表示类型的字符串, 设置为'Audio'.</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:Audio connect]()</h3>
+		<p>
+		连接[page:Audio.source]. 在初始化和设置/删除filters时使用.
+		</p>
+
+		<h3>[method:Audio disconnect]()</h3>
+		<p>
+		断开连接[page:Audio.source]. 在设置/删除filters时使用.
+		</p>
+
+		<h3>[method:BiquadFilterNode getFilter]()</h3>
+		<p>
+		返回 [page:Audio.filters filters] 数组的第一个元素.
+		</p>
+
+		<h3>[method:Array getFilters]()</h3>
+		<p>
+		返回[page:Audio.filters filters] 数组.
+		</p>
+
+		<h3>[method:Boolean getLoop]()</h3>
+		<p>
+		返回[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop]
+		 (是否循环播放)的值.
+		</p>
+
+		<h3>[method:GainNode getOutput]()</h3>
+		<p>
+		返回[page:Audio.gain gainNode].
+		</p>
+
+		<h3>[method:Float getPlaybackRate]()</h3>
+		<p>
+		返回[page:Audio.playbackRate playbackRate]的值.
+		</p>
+
+		<h3>[method:Float getVolume]( value )</h3>
+		<p>
+		返回音量.
+		</p>
+
+		<h3>[method:Audio play]()</h3>
+		<p>
+		如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 开始播放.
+		</p>
+
+		<h3>[method:Audio pause]()</h3>
+		<p>
+		如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 暂停播放.
+		</p>
+
+		<h3>[method:null onEnded]()</h3>
+		<p>
+		播放完成后自动调用. 如果[page:Audio.isPlaying isPlaying]设置为false.
+		</p>
+
+		<h3>[method:Audio setBuffer]( audioBuffer )</h3>
+		<p>
+		设置[page:Audio.source source]给audioBuffer, 和设置[page:Audio.sourceType sourceType]给'buffer'.<br />
+		如果[page:Audio.autoplay autoplay]为true, 也开始播放.
+		</p>
+
+		<h3>[method:Audio setFilter]( filter )</h3>
+		<p>
+		设置一个[link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNode]给Audio.
+		</p>
+
+		<h3>[method:Audio setFilters]( [param:Array value] )</h3>
+		<p>
+		value--filters数组.<br />
+		应用[link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes]数组给Audio.
+		</p>
+
+		<h3>[method:Audio setLoop]( [param:Boolean value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop] 的值
+		(是否循环播放).
+		</p>
+
+		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
+		<p>
+		应用[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement]类型对象作为音源.<br />
+		并且设置[page:Audio.hasPlaybackControl hasPlaybackControl]为false.
+
+		</p>
+
+		<h3>[method:Audio setNodeSource]( audioNode )</h3>
+		<p>
+		设置[page:Audio.source source]给audioBuffer, 和设置[page:Audio.sourceType sourceType]给 'audioNode'.<br />
+		并且设置[page:Audio.hasPlaybackControl hasPlaybackControl]为false.
+
+		</p>
+
+		<h3>[method:Audio setPlaybackRate]( [param:Float value] )</h3>
+		<p>
+		如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 设置[page:Audio.playbackRate playbackRate](播放速率) 的值.
+		</p>
+
+		<h3>[method:Audio setVolume]( [param:Float value] )</h3>
+		<p>
+		设置音量.
+		</p>
+
+		<h3>[method:Audio stop]()</h3>
+		<p>
+		如果[page:Audio.hasPlaybackControl hasPlaybackControl]是true, 停止播放,
+		重新设置[page:Audio.startTime startTime]为 *0* 和 设置 [page:Audio.isPlaying isPlaying]为false.
+		</p>
+
+		<h2>源码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 99 - 0
docs/api/zh/audio/AudioAnalyser.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">
+			创建AudioAnalyser对象, 使用[link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode AnalyserNode]
+			去分析音频数据.<br /><br />
+
+			使用了 [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+
+		</p>
+
+
+		<h2>示例</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		var listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create an Audio source
+		var sound = new THREE.Audio( listener );
+
+		// load a sound and set it as the Audio object's buffer
+		var audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setLoop(true);
+			sound.setVolume(0.5);
+			sound.play();
+		});
+
+		// create an AudioAnalyser, passing in the sound and desired fftSize
+		var analyser = new THREE.AudioAnalyser( sound, 32 );
+
+		// get the average frequency of the sound
+		var data = analyser.getAverageFrequency();
+		</code>
+
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name]( audio, [link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/fftSize fftSize] )</h3>
+		<p>
+		创建[page:AudioAnalyser AudioAnalyser].
+		</p>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:AnalyserNode analyser]</h3>
+		<p>[link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode AnalyserNode]用来分析音频数据.</p>
+
+		<h3>[property:Integer fftSize]</h3>
+		<p>
+		2的幂次方最高为2048, 用来表示确定频域的FFT (傅立叶变换)大小.
+		这个[link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/fftSize page]有详细信息.
+		</p>
+
+		<h3>[property:Uint8Array data]</h3>
+		<p>
+		用来分析数据的Uint8Array的大小由[link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/frequencyBinCount analyser.frequencyBinCount]
+		确定.
+		</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:Uint8Array getFrequencyData]()</h3>
+		<p>
+		使用网络音频的[link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData getByteFrequencyData] 方法.
+		看这个页面.
+		</p>
+
+		<h3>[method:Number getAverageFrequency]()</h3>
+		<p>
+		通过方法[page:AudioAnalyser.getFrequencyData getFrequencyData]获取平均频率.
+		</p>
+
+		<h2>源码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 42 - 0
docs/api/zh/audio/AudioContext.html

@@ -0,0 +1,42 @@
+<!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">
+		包含用来设置[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext]的方法.<br /><br />
+
+		在[page:AudioListener AudioListener]和[page:AudioLoader AudioLoader] 类中被使用.<br /><br />
+
+		使用了 [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+		</p>
+
+
+
+		<h2>方法</h2>
+
+		<h3>[method:AudioContext getContext]()</h3>
+		<p>
+		如果定义了,返回给外部*context*的值,
+		否则创建一个新的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].
+		</p>
+
+		<h3>[method:AudioContext setContext]( [param:AudioConetxt value] )</h3>
+		<p>
+		 外部用来设置 *context* 的值.
+		</p>
+
+
+		<h2>源码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 108 - 0
docs/api/zh/audio/AudioListener.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>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] 用一个虚拟的[link:https://developer.mozilla.org/de/docs/Web/API/AudioListener listener]表示在场景中所有的位置和非位置相关的音效.</br>
+			一个three.js程序通常创建一个[name]. 它是音频实体构造函数的必须参数,比如 [page:Audio Audio] and [page:PositionalAudio PositionalAudio].</br>
+			大多数情况下, listener对象是camera的子对象. Camera的3D变换表示了listener的3D变换.
+		</p>
+
+
+		<h2>示例</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_timing webaudio / timing ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		var listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create a global audio source
+		var sound = new THREE.Audio( listener );
+
+		// load a sound and set it as the Audio object's buffer
+		var audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setLoop(true);
+			sound.setVolume(0.5);
+			sound.play();
+		});
+		</code>
+
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name](  )</h3>
+		<p>
+		创建一个新的AudioListener.
+		</p>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:AudioContext context]</h3>
+		<p>[page:AudioListener listener]构造函数中的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].</p>
+
+		<h3>[property:GainNode gain]</h3>
+		<p>使用[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]()创建 [link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode].</p>
+
+		<h3>[property:AudioNode filter]</h3>
+		<p>默认为*null*.</p>
+
+
+		<h2>方法</h2>
+
+
+		<h3>[method:GainNode getInput]()</h3>
+		<p>
+		返回[page:AudioListener.gain gainNode].
+		</p>
+
+		<h3>[method:AudioListener removeFilter]()</h3>
+		<p>
+		设置[page:AudioListener.filter filter]属性为*null*.
+		</p>
+
+		<h3>[method:AudioNode getFilter]()</h3>
+		<p>
+		返回[page:AudioListener.filter filter]属性的值.
+		</p>
+
+		<h3>[method:AudioListener setFilter]( [param:AudioNode value] )</h3>
+		<p>
+		设置[page:AudioListener.filter filter] 属性的值.
+		</p>
+
+		<h3>[method:Float getMasterVolume]()</h3>
+		<p>
+		返回音量.
+		</p>
+
+		<h3>[method:AudioListener setMasterVolume]( [param:Number value] )</h3>
+		<p>
+		设置音量.
+		</p>
+
+
+		<h2>源码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 135 - 0
docs/api/zh/audio/PositionalAudio.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr; [page:Audio] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			创建一个位置相关的音频对象.<br /><br />
+
+			使用了[link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+		</p>
+
+
+		<h2>示例</h2>
+
+		<p>
+			[example:webaudio_orientation webaudio / orientation ]</br>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_timing webaudio / timing ]
+		</p>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		var listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create the PositionalAudio object (passing in the listener)
+		var sound = new THREE.PositionalAudio( listener );
+
+		// load a sound and set it as the PositionalAudio object's buffer
+		var audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/song.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setRefDistance( 20 );
+			sound.play();
+		});
+
+		// create an object for the sound to play from
+		var sphere = new THREE.SphereGeometry( 20, 32, 16 );
+		var material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
+		var mesh = new THREE.Mesh( sphere, material );
+		scene.add( mesh );
+
+		// finally add the sound to the mesh
+		mesh.add( sound );
+		</code>
+
+
+		<h2>构造函数</h2>
+
+		<h3>[name]( [param:AudioListener listener] )</h3>
+		<p>
+		listener — (必须) [page:AudioListener AudioListener] 实例.
+		</p>
+
+
+		<h2>属性</h2>
+
+		<p>
+			[page:Audio Audio]类的继承属性.
+		</p>
+
+		<h3>[property:PannerNode panner]</h3>
+		<p>位置相关音频的[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode PannerNode].</p>
+
+
+		<h2>方法</h2>
+
+		<p>
+			[page:Audio Audio]类的继承方法.
+		</p>
+
+		<h3>[method:PannerNode getOutput]()</h3>
+		<p>
+		返回[page:PositionalAudio.panner panner].
+		</p>
+
+		<h3>[method:Float getRefDistance]()</h3>
+		<p>
+		返回[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/refDistance panner.refDistance]的值.
+		</p>
+
+		<h3>[method:PositionalAudio setRefDistance]( [param:Float value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/refDistance panner.refDistance]的值.
+		</p>
+
+		<h3>[method:Float getRolloffFactor]()</h3>
+		<p>
+		返回[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/rolloffFactor panner.rolloffFactor]的值.
+		</p>
+
+		<h3>[method:PositionalAudio setRolloffFactor]( [param:Float value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/rolloffFactor panner.rolloffFactor]的值.
+		</p>
+
+		<h3>[method:String getDistanceModel]()</h3>
+		<p>
+		返回[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel panner.distanceModel]的值.
+		</p>
+
+		<h3>[method:PositionalAudio setDistanceModel]( [param:String value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel panner.distanceModel]的值.
+		</p>
+
+		<h3>[method:Float getMaxDistance]()</h3>
+		<p>
+		返回[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance]的值.
+		</p>
+
+		<h3>[method:PositionalAudio setMaxDistance]( [param:Float value] )</h3>
+		<p>
+		设置[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance]的值.
+		</p>
+
+		<h3>[method:PositionalAudio setDirectionalCone]( [param:Float coneInnerAngle], [param:Float coneOuterAngle], [param:Float coneOuterGain] )</h3>
+		<p>
+		这个方法用来把环绕声音转换为定向声音[link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode directional sound].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 47 - 0
docs/api/zh/cameras/ArrayCamera.html

@@ -0,0 +1,47 @@
+<!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:PerspectiveCamera] &rarr;
+
+		<h1>阵列摄像机([name])</h1>
+
+		<p class="desc">
+			[name] 可以被用来更加高效地用一组已经预定义好的摄像机来渲染一个场景。 这对于VR场景的渲染来说,是非常重要的一个性能体现。<br />
+			一个 [name] 的实例中总是包含着一组子摄像机,应当为每一个子摄像机定义*bound*(边界)这个属性,该属性决定了由该子摄像机所渲染的视口区域的大小。
+		</p>
+
+		<h2>示例</h2>
+
+		<p>[example:webgl_camera_array camera / array ]</p>
+
+		<h2>构造器</h2>
+
+		<h3>[name]( [param:Array array] )</h3>
+		<p>
+			一个包含多个摄像机的数组。
+		</p>
+
+
+		<h2>属性</h2>
+		<p>请参阅其基类 [page:PerspectiveCamera] 来查看共有属性。</p>
+
+		<h3>[property:Array cameras]</h3>
+		<p>
+			一个包含多个摄像机的数组。
+		</p>
+
+		<h2>方法</h2>
+		<p>请参阅其基类 [page:PerspectiveCamera] 来查看共有方法。</p>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 83 - 0
docs/api/zh/cameras/Camera.html

@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>摄像机([name])</h1>
+
+		<p class="desc">
+			摄像机的抽象基类,你创建一个摄像机总会继承这个类。
+		</p>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+			创建一个新的[name](摄像机)。注意:这个类并不是被直接调用的;你所想要的或许是一个 [page:PerspectiveCamera](透视摄像机)或者 [page:OrthographicCamera](正交摄像机)。
+		</p>
+
+
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Object3D]来查看共有属性。</p>
+
+		<h3>[property:Boolean isCamera]</h3>
+		<p>
+			用于来检查这个类或者派生的类是否为摄像机,默认为*true*。
+			<br /><br />
+
+			你不应当对这个属性进行改变,因为它在内部由渲染器使用,以用于优化。
+		</p>
+
+		<h3>[property:Layers layers]</h3>
+		<p>
+		摄像机是一个[page:Layers layers]的成员. 这是一个从[page:Object3D]继承而来的属性。<br /><br />
+			 当摄像机的视点被渲染的时候,物体必须和当前被看到的摄像机共享至少一个层。
+		</p>
+
+		<h3>[property:Matrix4 matrixWorldInverse]</h3>
+		<p>
+			这是matrixWorld矩阵的逆矩阵。 MatrixWorld包含了相机的世界变换矩阵。
+		</p>
+
+		<h3>[property:Matrix4 projectionMatrix]</h3>
+		<p>这是投影变换矩阵。</p>
+
+		<h3>[property:Matrix4 projectionMatrixInverse]</h3>
+		<p>这是投影变换矩阵的逆矩阵。</p>
+
+
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Object3D]来查看其共有方法。</p>
+
+		<h3>[method:Camera clone]( )</h3>
+		<p>
+			 返回一个具有和当前相机的属性一样的新的相机。
+		</p>
+
+		<h3>[method:Camera copy]( [param:Camera source], [param:Boolean recursive] )</h3>
+		<p>
+		将源摄像机的属性复制到新摄像机中。
+		</p>
+
+		<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — 调用该函数的结果将复制给该Vector3对象。<br /><br />
+
+		返回一个能够表示当前摄像机所正视的世界空间方向的[page:Vector3]对象。
+		(注意:摄像机俯视时,其Z轴坐标为负。)<br /><br />
+		</p>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 89 - 0
docs/api/zh/cameras/CubeCamera.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>
+		[page:Object3D] &rarr;
+
+		<h1>立方相机([name])</h1>
+
+		<p class="desc">创建6个摄像机,并将它们所拍摄的场景渲染到[page:WebGLRenderTargetCube]上。</p>
+
+		<h2>示例</h2>
+
+		<p>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</p>
+		<p>[example:webgl_materials_cubemap_dynamic2 materials / cubemap / dynamic2 ]</p>
+		<p>[example:webgl_shading_physical shading / physical ]</p>
+
+		<code>// Create cube camera
+		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
+		scene.add( cubeCamera );
+
+		// Create car
+		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget } );
+		var car = new Mesh( carGeometry, chromeMaterial );
+		scene.add( car );
+
+		// Update the render target cube
+		car.setVisible( false );
+		cubeCamera.position.copy( car.position );
+		cubeCamera.update( renderer, scene );
+
+		// Render the scene
+		car.setVisible( true );
+		renderer.render( scene, camera );
+		</code>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:Number near], [param:Number far], [param:Number cubeResolution] )</h3>
+		<p>
+		near -- 远剪切面的距离<br />
+		far -- 近剪切面的距离<br />
+		cubeResolution -- 设置立方体边缘的长度
+		</p>
+		<p>
+			构造一个包含6个[page:PerspectiveCamera PerspectiveCameras](透视摄像机)的立方摄像机,并将其拍摄的场景渲染到一个[page:WebGLRenderTargetCube]上。
+		</p>
+
+
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Object3D]来查看共有属性。</p>
+
+		<h3>[property:WebGLRenderTargetCube renderTarget]</h3>
+		<p>
+			生成的立方体纹理<br>
+			(译注:生成的立方体纹理保存在其中的.texture对象中,可作为贴图赋值给其他材质)
+		</p>
+
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Object3D]来查看其共有方法。</p>
+
+
+		<h3>[method:null update]( [param:WebGLRenderer renderer], [param:Scene scene] )</h3>
+		<p>
+		renderer -- 当前的WebGL渲染器<br />
+		scene -- 当前的场景
+		</p>
+		<p>
+			这个方法用来更新[page:CubeCamera.renderTarget renderTarget](渲染目标对象)。
+		</p>
+
+		<h3>[method:null clear]( [param:WebGLRenderer renderer], [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )</h3>
+		<p>
+			这个方法用来来清除[page:CubeCamera.renderTarget renderTarget]的颜色、深度和/或模板缓冲区。
+			颜色缓冲区设置为渲染器当前的“清除”色。参数默认值均为*true*。
+		</p>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 145 - 0
docs/api/zh/cameras/OrthographicCamera.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:Object3D] &rarr; [page:Camera] &rarr;
+
+		<h1>正交相机([name])</h1>
+
+		<p class="desc">
+			这一摄像机使用[link:https://en.wikipedia.org/wiki/Orthographic_projection orthographic projection](正交投影)来进行投影。<br /><br />
+
+			在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。
+			<br /><br />
+
+
+			这对于渲染2D场景或者UI元素是非常有用的。
+		</p>
+
+
+		<h2>示例</h2>
+
+		<p>[example:canvas_camera_orthographic camera / orthographic ]</p>
+		<p>[example:webgl_camera camera ]</p>
+		<p>[example:webgl_interactive_cubes_ortho interactive / cubes / ortho ]</p>
+		<p>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</p>
+		<p>[example:webgl_postprocessing_advanced postprocessing / advanced ]</p>
+		<p>[example:webgl_postprocessing_dof2 postprocessing / dof2 ]</p>
+		<p>[example:webgl_postprocessing_godrays postprocessing / godrays ]</p>
+		<p>[example:webgl_rtt rtt ]</p>
+		<p>[example:webgl_shaders_tonemapping shaders / tonemapping ]</p>
+		<p>[example:webgl_shadowmap shadowmap ]</p>
+		<p>[example:webgl_terrain_dynamic terrain / dynamic ]</p>
+
+		<code>var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
+scene.add( camera );</code>
+
+
+		<h2>构造器</h2>
+
+
+		<h3>[name]( [param:Number left], [param:Number right], [param:Number top], [param:Number bottom], [param:Number near], [param:Number far] )</h3>
+		<p>
+		left — 摄像机视锥体左侧面。<br />
+		right — 摄像机视锥体右侧面。<br />
+		top — 摄像机视锥体上侧面。<br />
+		bottom — 摄像机视锥体下侧面。<br />
+		near — 摄像机视锥体近端面。<br />
+		far — 摄像机视锥体远端面。<br /><br />
+
+		这些参数一起定义了摄像机的[link:https://en.wikipedia.org/wiki/Viewing_frustum viewing frustum](视锥体)。
+		</p>
+
+
+		<h2>属性</h2>
+		<p>
+			请参阅其基类[page:Camera]来查看其共有属性。
+			<br>
+			请注意,在大多数属性发生改变之后,你将需要调用[page:OrthographicCamera.updateProjectionMatrix .updateProjectionMatrix]来使得这些改变生效。
+		</p>
+
+		<h3>[property:Float bottom]</h3>
+		<p>摄像机视锥体下侧面。</p>
+
+		<h3>[property:Float far]</h3>
+		<p>
+			摄像机视锥体远端面,其默认值为*2000*。<br /><br />
+			其值的有效范围介于[page:.near near](摄像机视锥体近端面)和无穷大之间。
+		</p>
+
+		<h3>[property:Boolean isOrthographicCamera]</h3>
+		<p>
+			用于测试这个类或者派生类是否为OrthographicCameras,默认为*true*。<br /><br />
+			你不应当对这个属性进行改变,因为它在内部由渲染器使用,以用于优化。
+		</p>
+
+		<h3>[property:Float left]</h3>
+		<p>摄像机视锥体左侧面。</p>
+
+		<h3>[property:Float near]</h3>
+		<p>
+			摄像机视锥体近端面。其默认值为*0.1*.<br /><br />
+
+			其值的有效范围介于0和[page:.far far](摄像机视锥体远端面)之间。
+			<br>
+			请注意,和[page:PerspectiveCamera]不同,*0*对于OrthographicCamera的近端面来说是一个有效值。
+
+		</p>
+
+		<h3>[property:Float right]</h3>
+		<p>摄像机视锥体右侧面。</p>
+
+		<h3>[property:Float top]</h3>
+		<p>摄像机视锥体上侧面。</p>
+
+		<h3>[property:Object view]</h3>
+		<p>这个值是由[page:OrthographicCamera.setViewOffset setViewOffset]来设置的,其默认值为*null*。</p>
+
+		<h3>[property:number zoom]</h3>
+		<p>
+			获取或者设置摄像机的缩放倍数,其默认值为*1*。</p>
+
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Camera]来查看其共有方法。</p>
+
+		<h3>[method:null setViewOffset]( [param:Float fullWidth], [param:Float fullHeight], [param:Float x], [param:Float y], [param:Float width], [param:Float height] )</h3>
+		<p>
+		fullWidth — 多视图的全宽设置<br />
+		fullHeight — 多视图的全高设置<br />
+		x — 副摄像机的水平偏移<br />
+		y — 副摄像机的垂直偏移<br />
+		width — 副摄像机的宽度<br />
+		height — 副摄像机的高度<br /><br />
+
+			在较大的[link:https://en.wikipedia.org/wiki/Viewing_frustum viewing frustum](视锥体)中设置偏移量,对于多窗口或者多显示器的设置是很有用的。
+			对于如何使用它,请查看[page:PerspectiveCamera.setViewOffset PerspectiveCamera]中的示例。
+
+		</p>
+
+		<h3>[method:null clearViewOffset]()</h3>
+		<p>
+			清除任何由.setViewOffset设置的偏移量。
+		</p>
+
+		<h3>[method:null updateProjectionMatrix]()</h3>
+		<p>
+			更新摄像机投影矩阵。在任何参数被改变以后必须被调用。
+		</p>
+
+		<h3>[method:JSON toJSON]()</h3>
+		<p>
+		使用JSON格式来返回摄像机数据。
+		</p>
+
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 201 - 0
docs/api/zh/cameras/PerspectiveCamera.html

@@ -0,0 +1,201 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr; [page:Camera] &rarr;
+
+		<h1>透视相机([name])</h1>
+
+		<p class="desc">
+			这一摄像机使用[link:https://en.wikipedia.org/wiki/Perspective_(graphical) perspective projection](透视投影)来进行投影。<br /><br />
+
+			这一投影模式被用来模拟人眼所看到的景象,它是3D场景的渲染中使用得最普遍的投影模式。
+
+		</p>
+
+
+		<h2>示例</h2>
+
+		<p>[example:canvas_geometry_birds geometry / birds ]</p>
+		<p>[example:canvas_geometry_cube geometry / cube ]</p>
+		<p>[example:webgl_animation_skinning_blending animation / skinning / blending ]</p>
+		<p>[example:webgl_animation_skinning_morph animation / skinning / blending ]</p>
+		<p>[example:webgl_effects_stereo effects / stereo ]</p>
+		<p>[example:webgl_interactive_cubes interactive / cubes ]</p>
+		<p>[example:webgl_loader_collada_skinning loader / collada / skinning ]</p>
+
+		<code>var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
+scene.add( camera );</code>
+
+
+		<h2>构造器</h2>
+
+		<h3>[name]( [param:Number fov], [param:Number aspect], [param:Number near], [param:Number far] )</h3>
+		<p>
+		fov — 摄像机视锥体垂直视野角度<br />
+		aspect — 摄像机视锥体长宽比<br />
+		near — 摄像机视锥体近端面<br />
+		far — 摄像机视锥体远端面<br /><br />
+
+		这些参数一起定义了摄像机的[link:https://en.wikipedia.org/wiki/Viewing_frustum viewing frustum](视锥体)。
+		</p>
+
+
+		<h2>属性</h2>
+		<p>
+			请参阅其基类 [page:Camera] 来查看共有属性。<br>
+			请注意,在大多数属性发生改变之后,你将需要调用[page:PerspectiveCamera.updateProjectionMatrix .updateProjectionMatrix]来使得这些改变生效。
+		</p>
+
+		<h3>[property:Float aspect]</h3>
+		<p>摄像机视锥体的长宽比,通常是使用画布的宽/画布的高。默认值是*1*(正方形画布)。</p>
+
+		<h3>[property:Float far]</h3>
+		<p>
+			摄像机的远端面,默认值是*2000*。
+			<br /><br />
+			其有效值范围是在当前摄像机[page:.near near] plane(近端面)的值到无穷远之间。
+		</p>
+
+		<h3>[property:Float filmGauge]</h3>
+		<p>胶片尺寸,其默认值为35(毫米)。
+			这个参数不会影响摄像机的投影矩阵,除非.filmOffset被设置为了一个非零的值。</p>
+
+		<h3>[property:Float filmOffset]</h3>
+		<p>水平偏离中心偏移量,和.filmGauge单位相同。默认值为*0*。</p>
+
+		<h3>[property:Float focus]</h3>
+		<p>用于立体视觉和景深效果的物体的距离。
+		   这个参数不会影响摄像机的投影矩阵,除非使用了[page:StereoCamera]。
+			默认值是*10*。
+		</p>
+
+		<h3>[property:Float fov]</h3>
+		<p>摄像机视锥体垂直视野角度,从视图的底部到顶部,以角度来表示。默认值是*50*。</p>
+
+		<h3>[property:Boolean isPerspectiveCamera]</h3>
+		<p>
+
+			用于测试这个类或者派生类是否为PerspectiveCameras,默认为true。
+			<br /><br />
+
+			你不应当对这个属性进行改变,因为它在内部由渲染器使用,以用于优化。
+		</p>
+
+
+		<h3>[property:Float near]</h3>
+		<p>
+			摄像机的近端面,默认值是*0.1*。<br /><br />
+			其有效值范围是0到当前摄像机[page:.far far] plane(远端面)的值之间。
+			请注意,和[page:OrthographicCamera]不同,*0*对于PerspectiveCamera的近端面来说<em>不是</em>一个有效值。
+		</p>
+
+		<h3>[property:Object view]</h3>
+		<p>
+			Frustum window specification or null.
+			这个值使用[page:PerspectiveCamera.setViewOffset .setViewOffset]方法来进行设置,使用[page:PerspectiveCamera.clearViewOffset .clearViewOffset]方法来进行清除。
+		</p>
+
+		<h3>[property:number zoom]</h3>
+		<p>获取或者设置摄像机的缩放倍数,其默认值为*1*。</p>
+
+
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Camera]来查看共有属性。</p>
+
+		<h3>[method:null clearViewOffset]()</h3>
+		<p>清除任何由[page:PerspectiveCamera.setViewOffset .setViewOffset]设置的偏移量。</p>
+
+		<h3>[method:Float getEffectiveFOV]()</h3>
+		<p>结合.zoom(缩放倍数),以角度返回当前垂直视野角度。</p>
+
+		<h3>[method:Float getFilmHeight]()</h3>
+		<p>
+			返回当前胶片上图像的高,如果.aspect小于或等于1(肖像格式、纵向构图),则结果等于.filmGauge。
+
+		</p>
+
+		<h3>[method:Float getFilmWidth]()</h3>
+		<p>
+			返回当前胶片上图像的宽,如果.aspect大于或等于1(景观格式、横向构图),则结果等于.filmGauge。
+		</p>
+
+		<h3>[method:Float getFocalLength]()</h3>
+		<p>返回当前.fov(视野角度)相对于.filmGauge(胶片尺寸)的焦距。
+
+		<h3>[method:null setFocalLength]( [param:Float focalLength] )</h3>
+		<p>
+			通过相对于当前[page:PerspectiveCamera.filmGauge .filmGauge]的焦距,设置FOV。
+		<br /><br />
+			默认情况下,焦距是为35mm(全画幅)摄像机而指定的。</p>
+
+		<h3>[method:null setViewOffset]( [param:Float fullWidth], [param:Float fullHeight], [param:Float x], [param:Float y], [param:Float width], [param:Float height] )</h3>
+		<p>
+		fullWidth — 多视图的全宽设置<br />
+		fullHeight — 多视图的全高设置<br />
+		x — 副摄像机的水平偏移<br />
+		y — 副摄像机的垂直偏移<br />
+		width — 副摄像机的宽度<br />
+		height — 副摄像机的高度
+		</p>
+
+		<p>
+				在较大的viewing frustum(视锥体)中设置偏移量,对于多窗口或者多显示器的设置是很有用的。
+		</p>
+
+		<p>
+			例如,如果你有一个3x2的显示器阵列,每个显示器分辨率都是1920x1080,且这些显示器排列成像这样的网格:<br />
+
+		<pre>
++---+---+---+
+| A | B | C |
++---+---+---+
+| D | E | F |
++---+---+---+
+		</pre>
+		那对于每个显示器,你可以这样来设置、调用:<br />
+
+		<code>var w = 1920;
+var h = 1080;
+var fullWidth = w * 3;
+var fullHeight = h * 2;
+
+// A
+camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );
+// B
+camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );
+// C
+camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );
+// D
+camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );
+// E
+camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
+// F
+camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
+</code>
+		请注意,显示器的不必具有相同的大小,或者不必在网格中。
+		</p>
+
+		<h3>[method:null updateProjectionMatrix]()</h3>
+		<p>
+
+		更新摄像机投影矩阵。在任何参数被改变以后必须被调用。
+
+		</p>
+
+		<h3>[method:JSON toJSON]()</h3>
+		<p>
+				使用JSON格式来返回摄像机数据。
+			</p>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 64 - 0
docs/api/zh/cameras/StereoCamera.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">
+			双透视摄像机(立体相机)常被用于创建[link:https://en.wikipedia.org/wiki/Anaglyph_3D 3D Anaglyph](3D立体影像)或者[link:https://en.wikipedia.org/wiki/parallax_barrier Parallax Barrier](视差效果)。
+
+		</p>
+
+
+		<h2>示例</h2>
+
+		<p>[example:webgl_effects_anaglyph effects / anaglyph ]</p>
+		<p>[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]</p>
+		<p>[example:webgl_effects_stereo effects / stereo ]</p>
+
+		<p>
+			这些类在以上示例中的文件内部使用:<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/AnaglyphEffect.js examples/js/effects/AnaglyphEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/ParallaxBarrierEffect.js examples/js/effects/ParallaxBarrierEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/StereoEffect.js examples/js/effects/StereoEffect.js]<br /><br />
+		</p>
+
+
+		<h2>构造器</h2>
+
+		<h3>[name]( )</h3>
+
+		<h2>属性</h2>
+
+		<h3>[property:Float aspect]</h3>
+		<p>默认值是*1*.</p>
+
+		<h3>[property:Float eyeSep]</h3>
+		<p>默认值是*0.064*.</p>
+
+		<h3>[property:PerspectiveCamera cameraL]</h3>
+		<p>左摄像机,它被加入到了[page:Layers layer 1]中 —— 需要被左摄像机渲染的物体也应当要加入到这一层中。</p>
+
+		<h3>[property:PerspectiveCamera cameraR]</h3>
+		<p>右摄像机,它被加入到了[page:Layers layer 2]中 —— 需要被右摄像机渲染的物体也应当要加入到这一层中。</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:null update]( [param:PerspectiveCamera camera] )</h3>
+		<p>
+			基于摄像机通过场景,更新立体摄像机。
+		</p>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 39 - 0
docs/api/zh/constants/Animation.html

@@ -0,0 +1,39 @@
+<!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>动画常量(Animation Constants)</h1>
+
+		<h2>循环模式</h2>
+    
+		<code>
+THREE.LoopOnce
+THREE.LoopRepeat
+THREE.LoopPingPong
+		</code>
+
+    <h2>插值模式</h2>
+    <code>
+THREE.InterpolateDiscrete
+THREE.InterpolateLinear
+THREE.InterpolateSmooth
+    </code>
+
+    <h2>结束模式</h2>
+    <code>
+THREE.ZeroCurvatureEnding
+THREE.ZeroSlopeEnding
+THREE.WrapAroundEnding
+    </code>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+	</body>
+</html>

+ 37 - 0
docs/api/zh/constants/Core.html

@@ -0,0 +1,37 @@
+<!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>核心常量(Core Constants)</h1>
+
+		<h2>修订版本号</h2>
+
+		<code>
+		THREE.REV
+		</code>
+
+		<div id="rev">
+			当前three.js的修订版本号( [link:https://github.com/mrdoob/three.js/releases revision number])。
+		</div>
+
+    <h2>鼠标按钮</h2>
+    <code>
+		THREE.MOUSE.LEFT
+		THREE.MOUSE.MIDDLE
+		THREE.MOUSE.RIGHT
+    </code>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+
+	</body>
+
+
+</html>

+ 63 - 0
docs/api/zh/constants/CustomBlendingEquations.html

@@ -0,0 +1,63 @@
+<!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>自定义混合方程常量(Custom Blending Equation Constants)</h1>
+
+
+		<h2>示例</h2>
+		<p>[example:webgl_materials_blending_custom materials / blending / custom ]</p>
+
+		<h2>用法</h2>
+		<p>
+			这个常量可以用于所有的材质类型。首先将材质的混合模式设置为THREE.CustomBlending,然后设置所需要的混合方程、源因子和目标因子。
+		</p>
+
+		<code>
+		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		material.blending = THREE.CustomBlending;
+		material.blendEquation = THREE.AddEquation; //default
+		material.blendSrc = THREE.SrcAlphaFactor; //default
+		material.blendDst = THREE.OneMinusSrcAlphaFactor; //default
+		</code>
+
+		<h2>混合方程</h2>
+		<code>
+		THREE.AddEquation
+		THREE.SubtractEquation
+		THREE.ReverseSubtractEquation
+		THREE.MinEquation
+		THREE.MaxEquation
+		</code>
+
+		<h2>源因子</h2>
+		<code>
+		THREE.ZeroFactor
+		THREE.OneFactor
+		THREE.SrcColorFactor
+		THREE.OneMinusSrcColorFactor
+		THREE.SrcAlphaFactor
+		THREE.OneMinusSrcAlphaFactor
+		THREE.DstAlphaFactor
+		THREE.OneMinusDstAlphaFactor
+		THREE.DstColorFactor
+		THREE.OneMinusDstColorFactor
+		THREE.SrcAlphaSaturateFactor
+		</code>
+
+		<h2>目标因子</h2>
+		<p>
+			所有的源因子的值,在目标因子中都是有效的。除了:<code>THREE.SrcAlphaSaturateFactor</code>
+		</p>
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+	</body>
+</html>

+ 81 - 0
docs/api/zh/constants/DrawModes.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>绘图模式常量(Draw Mode Constants)</h1>
+
+		<p class="desc">
+			这些是[page:Mesh.drawMode]的有效值,控制着顶点列表一旦被发送到GPU中将如何被解释。
+			请注意,只有当[page:Mesh.geometry]是一个[page:BufferGeometry]的时候,这些值才会生效。当[page:Mesh.geometry]是一个
+			[page:Geometry]的时候,改变这个值不会有任何效果。
+<br /><br />
+
+
+
+		</p>
+
+
+		<h2>绘图模式</h2>
+
+		<code>
+			THREE.TrianglesDrawMode
+		</code>
+		<p>
+			这是默认值,这将使得每三个连续顶点(v0, v1, v2),(v2, v3, v5),……被解释为一个单独的三角形。
+			<br />
+			如果顶点的数量不是3的倍数,那么将会忽略多余的顶点。
+		</p>
+
+		<code>
+			THREE.TriangleStripDrawMode
+		</code>
+		<p>
+			这将使得一系列的三角形(由(v0, v1, v2),(v2, v1, v3),(v2, v3, v4),……给定)一个一个地连在一起,每一个连续的三角形将和前一个三角形共享两个顶点。
+		</p>
+
+		<code>
+			THREE.TriangleFanDrawMode
+		</code>
+		<p>
+这将会使得一个序列中的每一个三角形(由(v0, v1, v2),(v0, v2, v3),(v0, v3, v4),……给定)共享它们的第一个顶点(就像风扇一样)。<br /><br />
+
+			<em>注意:</em>截至[link:https://en.wikipedia.org/wiki/DirectX#DirectX_10 DirectX10]这个模式还没有被支持。
+			由于Chorme和Firefox在Windows上是使用[link:https://en.wikipedia.org/wiki/ANGLE_(software) ANGLE]来渲染WebGL的,所以这种模式将会在内部转换为受支持的模式,
+			但可能会导致这些浏览器在性能上降低一些。
+		</p>
+
+
+		<h2>用法</h2>
+
+		<code>
+		var geometry = new THREE.Geometry();
+
+		geometry.vertices.push(
+			new THREE.Vector3( -10,  10, 0 ),
+			new THREE.Vector3( -10, -10, 0 ),
+			new THREE.Vector3(  10, -10, 0 ),
+			...
+		);
+		geometry.faces.push( new THREE.Face3( 0, 1, 2 ), ... );
+
+		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
+
+		var mesh = new THREE.Mesh( geometry, material );
+		mesh.drawMode = THREE.TrianglesDrawMode; //default
+
+		scene.add( mesh );
+		</code>
+
+
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+	</body>
+</html>

+ 102 - 0
docs/api/zh/constants/Materials.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>材质常量(Material Constants)</h1>
+
+		<p class="desc">
+			由这些常量定义的属性对所有的材质类型都生效,除了Texture Combine Operations只应用于
+			[page:MeshBasicMaterial.combine MeshBasicMaterial],[page:MeshLambertMaterial.combine MeshLambertMaterial]和[page:MeshPhongMaterial.combine MeshPhongMaterial]。<br />
+		</p>
+
+
+		<h2>面</h2>
+		<code>
+		THREE.FrontSide
+		THREE.BackSide
+		THREE.DoubleSide
+		</code>
+		<p>
+			定义了哪一边的面将会被渲染 —— 正面,或是反面,还是两个面都渲染。
+			默认值是[page:Constant FrontSide](只渲染正面)。
+		</p>
+
+
+		<h2>颜色</h2>
+		<code>
+		THREE.NoColors
+		THREE.FaceColors
+		THREE.VertexColors
+		</code>
+		<p>
+		[page:Constant NoColors] 是默认值,且会将材质的颜色应用到所有面。<br />
+		[page:Constant FaceColors] 根据每个[page:Face3 Face3]的[page:Color Color]值来对面进行着色。<br />
+		[page:Constant VertexColors] 根据每个 [page:Face3 Face3]的vertexColors(顶点颜色)值来对面进行着色。 这是一个包含有三个[page:Color Color]的数组,数组中每一项都对应着面中的每一个顶点。<br />
+		请查看示例:[example:webgl_geometry_colors geometry / colors]。
+		</p>
+
+		<h2>混合模式</h2>
+		<code>
+		THREE.NoBlending
+		THREE.NormalBlending
+		THREE.AdditiveBlending
+		THREE.SubtractiveBlending
+		THREE.MultiplyBlending
+		THREE.CustomBlending
+		</code>
+
+
+		<p>
+			这些值控制着源和目标材质中,被发送到WebGLRenderer,来给WebGL使用的包含有RGB和Alpha数据的混合方程。<br />
+			默认值是[page:Constant NormalBlending]。<br />
+			请注意,[page:Constant CustomBlending]必须被设置为自定义混合方程([page:CustomBlendingEquation Custom Blending Equations])常量中的值。<br />
+			请查看示例:[example:webgl_materials_blending materials / blending]。<br />
+		</p>
+
+		<h2>深度模式</h2>
+		<code>
+		THREE.NeverDepth
+		THREE.AlwaysDepth
+		THREE.LessDepth
+		THREE.LessEqualDepth
+		THREE.GreaterEqualDepth
+		THREE.GreaterDepth
+		THREE.NotEqualDepth
+		</code>
+		<p>
+			材质使用这些深度函数来比较输入像素和缓冲器中Z-depth的值。
+			如果比较的结果为true,则将绘制像素。<br />
+		[page:Materials NeverDepth] 永远不返回true。<br />
+		[page:Materials AlwaysDepth] 总是返回true。<br />
+		[page:Materials LessDepth] 当输入像素Z-depth小于当前缓冲器Z-depth时,返回true。<br />
+		[page:Materials LessEqualDepth] 为默认值,当输入像素Z-depth小于或等于当前缓冲器Z-depth时,返回true。<br />
+		[page:Materials GreaterEqualDepth] 当输入像素Z-depth大于或等于当前缓冲器Z-depth时,返回true。 <br />
+		[page:Materials GreaterDepth] 当输入像素Z-depth大于当前缓冲器Z-depth时,返回true。<br />
+		[page:Materials NotEqualDepth] 当输入像素Z-depth不等于当前缓冲器Z-depth时,返回true。<br />
+		</p>
+
+		<h2>纹理结合操作</h2>
+		<code>
+		THREE.MultiplyOperation
+		THREE.MixOperation
+		THREE.AddOperation
+		</code>
+		<p>
+			这些常量定义了物体表面颜色与环境贴图(如果存在的话)相结合的结果,
+			用在[page:MeshBasicMaterial.combine MeshBasicMaterial]、[page:MeshLambertMaterial.combine MeshLambertMaterial]和[page:MeshPhongMaterial.combine MeshPhongMaterial]当中。<br />
+		[page:Constant MultiplyOperation] 是默认值,它将环境贴图和物体表面颜色进行相乘。<br />
+		[page:Constant MixOperation] 使用反射率来混和两种颜色。uses reflectivity to blend between the two colors.<br />
+		[page:Constant AddOperation] 用于对两种颜色进行相加。</p>
+
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+	</body>
+</html>

+ 76 - 0
docs/api/zh/constants/Renderer.html

@@ -0,0 +1,76 @@
+<!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>WebGL渲染器常量(WebGLRenderer Constants)</h1>
+
+		<h2>面剔除模式</h2>
+		<code>
+		THREE.CullFaceNone
+		THREE.CullFaceBack
+		THREE.CullFaceFront
+		THREE.CullFaceFrontBack
+		</code>
+		<p>
+		[page:constant CullFaceNone] 禁用面剔除。<br />
+		[page:constant CullFaceBack] 为默认值,剔除背面。<br />
+		[page:constant CullFaceFront] 剔除正面。<br />
+		[page:constant CullFaceFrontBack] 剔除正面和背面。
+		</p>
+
+		<h2>正面方向</h2>
+		<code>
+		THREE.FrontFaceDirectionCW
+		THREE.FrontFaceDirectionCCW
+		</code>
+		<p>
+		[page:constant FrontFaceDirectionCW] 将多边形的缠绕顺序设置为顺时针方向。 <br />
+		[page:constant FrontFaceDirectionCCW] 为默认值,将多边形的缠绕顺序设置为逆时针方向。
+		</p>
+
+		<h2>阴影类型</h2>
+		<code>
+		THREE.BasicShadowMap
+		THREE.PCFShadowMap
+		THREE.PCFSoftShadowMap
+		</code>
+		<p>
+			这些常量定义了WebGLRenderer中[page:WebGLRenderer.shadowMap.type shadowMap.type]的属性。<br /><br />
+
+		[page:constant BasicShadowMap] 能够给出没有经过过滤的阴影映射 —— 速度最快,但质量最差。<br />
+		[page:constant PCFShadowMap] 为默认值,使用Percentage-Closer Filtering (PCF)算法来过滤阴影映射。<br />
+		[page:constant PCFSoftShadowMap] 使用Percentage-Closer Soft Shadows (PCSS) 算法来过滤阴影映射。
+		</p>
+
+		<h2>色调映射</h2>
+		<code>
+		THREE.NoToneMapping
+		THREE.LinearToneMapping
+		THREE.ReinhardToneMapping
+		THREE.Uncharted2ToneMapping
+		THREE.CineonToneMapping
+		</code>
+		<p>
+				这些常量定义了WebGLRenderer中[page:WebGLRenderer.toneMapping toneMapping]的属性。
+
+				这个属性用于在普通计算机显示器或者移动设备屏幕等低动态范围介质上,模拟、逼近高动态范围(HDR)效果。<br /><br />
+
+		[page:constant NoToneMapping] 禁用色调映射。<br />
+		[page:constant LinearToneMapping] 为默认值,线性色调映射。<br /><br />
+
+		请查看示例:[example:webgl_tonemapping WebGL / tonemapping]。
+
+		</p>
+
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+	</body>
+</html>

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

@@ -0,0 +1,262 @@
+<!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>材质常量(Texture Constants)</h1>
+
+	<h2>映射模式</h2>
+	<code>
+		THREE.UVMapping
+		THREE.CubeReflectionMapping
+		THREE.CubeRefractionMapping
+		THREE.EquirectangularReflectionMapping
+		THREE.EquirectangularRefractionMapping
+		THREE.SphericalReflectionMapping
+		THREE.CubeUVReflectionMapping
+		THREE.CubeUVRefractionMapping
+		</code>
+
+	<p>
+		这些常量定义了纹理贴图的映射模式。<br />
+		[page:Constant UVMapping]是默认值,纹理使用网格的坐标来进行映射。<br /><br />
+		其它的值定义了环境映射的类型。<br /><br />
+
+		[page:Constant CubeReflectionMapping] 和 [page:Constant CubeRefractionMapping] 用于 [page:CubeTexture CubeTexture] ——
+		由6个纹理组合而成,每个纹理都是立方体的一个面。
+
+		对于[page:CubeTexture CubeTexture]来说,[page:Constant CubeReflectionMapping]是其默认值。<br /><br />
+
+		[page:Constant EquirectangularReflectionMapping] 和 [page:Constant EquirectangularRefractionMapping]
+		用于等距圆柱投影的环境贴图,也被叫做经纬线映射贴图。等距圆柱投影贴图表示沿着其水平中线360°的视角,以及沿着其垂直轴向180°的视角。贴图顶部和底部的边缘分别对应于它所映射的球体的北极和南极。
+		<br /><br />
+
+		[page:Constant SphericalReflectionMapping] 用球形反射贴图,例如它可以通过剪裁镜面球的照片来获得。
+		无论摄像机相对于立方贴图对象或者表面的位置时怎样的,球形贴图被渲染时将会“面朝”摄像机。<br /><br />
+
+		请查看示例:[example:webgl_materials_envmaps materials / envmaps] 。
+	</p>
+
+
+	<h2>包裹模式</h2>
+	<code>
+		THREE.RepeatWrapping
+		THREE.ClampToEdgeWrapping
+		THREE.MirroredRepeatWrapping
+		</code>
+	<p>
+		这些常量定义了纹理贴图的 [page:Texture.wrapS wrapS] 和 [page:Texture.wrapT wrapT] 属性,定义了水平和垂直方向上纹理的包裹方式。
+		<br /><br />
+
+		使用[page:constant RepeatWrapping],纹理将简单地重复到无穷大。
+		With [page:constant RepeatWrapping] the texture will simply repeat to infinity.<br /><br />
+
+		[page:constant ClampToEdgeWrapping]是默认值,纹理中的最后一个像素将延伸到网格的边缘。<br /><br />
+
+		使用[page:constant MirroredRepeatWrapping], 纹理将重复到无穷大,在每次重复时将进行镜像。
+	</p>
+
+	<h2>Magnification Filters
+		放大滤镜
+	</h2>
+	<code>
+		THREE.NearestFilter
+		THREE.LinearFilter
+		</code>
+
+	<p>
+		这些常量用于纹理的[page:Texture.magFilter magFilter]属性,它们定义了当被纹理化的像素映射到小于或者等于1纹理元素(texel)的区域时,将要使用的纹理放大函数。<br /><br />
+
+		[page:constant NearestFilter]返回与指定纹理坐标(在曼哈顿距离之内)最接近的纹理元素的值。<br /><br />
+		[page:constant LinearFilter]是默认值,返回距离指定的纹理坐标最近的四个纹理元素的加权平均值,
+		并且可以包含纹理的其他部分中,被包裹或者被重复的项目,具体取决于 [page:Texture.wrapS wrapS] 和 [page:Texture.wrapT wrapT] 的值,and on the exact mapping。
+
+	</p>
+
+	<h2>缩小滤镜
+		Minification Filters</h2>
+	<code>
+		THREE.NearestFilter
+		THREE.NearestMipMapNearestFilter
+		THREE.NearestMipMapLinearFilter
+		THREE.LinearFilter
+		THREE.LinearMipMapNearestFilter
+		THREE.LinearMipMapLinearFilter
+		</code>
+
+	<p>
+		这些常量用于纹理的[page:Texture.minFilter minFilter]属性,它们定义了当被纹理化的像素映射到大于1纹理元素(texel)的区域时,将要使用的纹理缩小函数。<br /><br />
+
+		除了[page:constant NearestFilter] 和 [page:constant LinearFilter],
+		下面的四个函数也可以用于缩小:<br /><br />
+
+		[page:constant NearestMipMapNearestFilter]选择与被纹理化像素的尺寸最匹配的mipmap,并以[page:constant
+		NearestFilter](最靠近像素中心的纹理元素)为标准来生成纹理值。
+		<br /><br />
+
+		[page:constant NearestMipMapLinearFilter]选择与被纹理化像素的尺寸最接近的两个mipmap,并以[page:constant
+		NearestFilter]为标准来从每个mipmap中生成纹理值。最终的纹理值是这两个值的加权平均值。
+		<br /><br />
+
+		[page:constant LinearMipMapNearestFilter]选择与被纹理化像素的尺寸最匹配的mipmap,并以[page:constant
+		LinearFilter](最靠近像素中心的四个纹理元素的加权平均值)为标准来生成纹理值。
+		<br /><br />
+
+		[page:constant LinearMipMapLinearFilter]是默认值,它选择与被纹理化像素的尺寸最接近的两个mipmap,并以[page:constant
+		LinearFilter]为标准来从每个mipmap中生成纹理值。最终的纹理值是这两个值的加权平均值。<br /><br />
+
+		请查看示例:[example:webgl_materials_texture_filters materials / texture / filters]。
+	</p>
+
+	<h2>类型</h2>
+	<code>
+		THREE.UnsignedByteType
+		THREE.ByteType
+		THREE.ShortType
+		THREE.UnsignedShortType
+		THREE.IntType
+		THREE.UnsignedIntType
+		THREE.FloatType
+		THREE.HalfFloatType
+		THREE.UnsignedShort4444Type
+		THREE.UnsignedShort5551Type
+		THREE.UnsignedShort565Type
+		THREE.UnsignedInt248Type
+		</code>
+	<p>
+		这些常量用于纹理的[page:Texture.type type]属性,这些属性必须与正确的格式相对应。详情请查看下方。<br /><br />
+
+		[page:constant UnsignedByteType] 是默认值。
+	</p>
+
+	<h2>格式</h2>
+	<code>
+		THREE.AlphaFormat
+		THREE.RGBFormat
+		THREE.RGBAFormat
+		THREE.LuminanceFormat
+		THREE.LuminanceAlphaFormat
+		THREE.RGBEFormat
+		THREE.DepthFormat
+		THREE.DepthStencilFormat
+		</code>
+	<p>
+		这些常量用于纹理的[page:Texture.format format]属性,它们定义了shader(着色器)将如何读取的2D纹理或者*texels*(纹理元素)的元素。.<br /><br />
+
+		[page:constant AlphaFormat] 丢弃红、绿、蓝分量,仅读取Alpha分量。<br /><br />
+
+		[page:constant RGBFormat] 丢弃Alpha分量,仅读取红、绿、蓝分量。<br /><br />
+
+		[page:constant RGBAFormat] 是默认值,它将读取红、绿、蓝和Alpha分量。<br /><br />
+
+
+		[page:constant LuminanceFormat] 将每个元素作为单独的亮度分量来读取。
+		将其转换为范围限制在[0,1]区间的浮点数,然后通过将亮度值放入红、绿、蓝通道,并将1.0赋给Alpha通道,来组装成一个RGBA元素。<br /><br />
+
+
+		[page:constant LuminanceAlphaFormat] 将每个元素同时作为亮度分量和Alpha分量来读取。
+		和上面[page:constant LuminanceFormat]的处理过程是一致的,除了Alpha分量具有除了*1.0*以外的值。<br /><br />
+
+		[page:constant RGBEFormat] 与 [page:constant RGBAFormat] 是相同的。<br /><br />
+
+		[page:constant DepthFormat]将每个元素作为单独的深度值来读取,将其转换为范围限制在[0,1]区间的浮点数。
+		它是[page:DepthTexture DepthTexture]的默认值。<br /><br />
+
+		[page:constant DepthStencilFormat]将每个元素同时作为一对深度值和模板值来读取。
+		其中的深度分量解释为[page:constant DepthFormat]。
+		模板分量基于深度+模板的内部格式来进行解释。
+
+		<br /><br />
+		请注意,纹理必须具有正确的[page:Texture.type type]设置,正如上一节所描述的那样。
+		请参阅[link:https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/texImage2D
+		WebGLRenderingContext.texImage2D]来获得有关详细信息。
+	</p>
+
+	<h2>DDS / ST3C 压缩纹理格式</h2>
+	<code>
+		THREE.RGB_S3TC_DXT1_Format
+		THREE.RGBA_S3TC_DXT1_Format
+		THREE.RGBA_S3TC_DXT3_Format
+		THREE.RGBA_S3TC_DXT5_Format
+		</code>
+	<p>
+		要使用[page:CompressedTexture CompressedTexture]中的[page:Texture.format
+		format]属性,需要获得[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
+		WEBGL_compressed_texture_s3tc]扩展的支持。<br /><br />
+
+		通过这个扩展,这里的四种[link:https://en.wikipedia.org/wiki/S3_Texture_Compression S3TC]格式将可以使用:<br />
+
+		[page:constant RGB_S3TC_DXT1_Format]:RGB图像格式的DXT1压缩图像。
+		[page:constant RGBA_S3TC_DXT1_Format]:RGB图像格式的DXT1压缩图像,Alpha仅具有是/否透明两个值。<br />
+		[page:constant RGBA_S3TC_DXT3_Format]:RGBA图像格式的DXT3压缩图像,和32位RGBA纹理贴图相比,它提供了4:1的压缩比。<br />
+		[page:constant RGBA_S3TC_DXT5_Format]:RGBA图像格式的DXT5压缩图像,它也提供了4:1的压缩比,但与DX3格式的不同之处在于其Alpha是如何被压缩的。<br />
+	</p>
+
+	<h2>PVRTC 压缩纹理格式
+		PVRTC Compressed Texture Formats</h2>
+	<code>
+		THREE.RGB_PVRTC_4BPPV1_Format
+		THREE.RGB_PVRTC_2BPPV1_Format
+		THREE.RGBA_PVRTC_4BPPV1_Format
+		THREE.RGBA_PVRTC_2BPPV1_Format
+		</code>
+	<p>
+		要使用[page:CompressedTexture CompressedTexture]中的[page:Texture.format format]属性,需要获得
+		[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/
+		WEBGL_compressed_texture_pvrtc]扩展的支持。<br />
+		PVRTC通常只在具有PowerVR芯片的移动设备上可用,这些设备主要是苹果设备。<br /><br />
+
+
+		通过这个扩展,这里的四种[link:https://en.wikipedia.org/wiki/PVRTC PVRTC]格式将可以使用:<br />
+
+		[page:constant RGB_PVRTC_4BPPV1_Format]:4位模式下的RGB压缩,每4x4像素一个块。<br />
+		[page:constant RGB_PVRTC_2BPPV1_Format]:2位模式下的RGB压缩,每8x4像素一个块。<br />
+		[page:constant RGBA_PVRTC_4BPPV1_Format]: 4位模式下的RGBA压缩,每4x4像素一个块。<br />
+		[page:constant RGBA_PVRTC_2BPPV1_Format]: 2位模式下的RGB压缩,每8x4像素一个块。<br />
+	</p>
+
+	<h2>ETC 压缩纹理格式</h2>
+	<code>
+		THREE.RGB_ETC1_Format
+		</code>
+	<p>
+		要使用[page:CompressedTexture CompressedTexture]中的[page:Texture.format format]属性,需要获得
+		[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/
+		WEBGL_compressed_texture_etc1]扩展的支持。<br /><br />
+	</p>
+
+	<h2>编码</h2>
+	<code>
+		THREE.LinearEncoding
+		THREE.sRGBEncoding
+		THREE.GammaEncoding
+		THREE.RGBEEncoding
+		THREE.LogLuvEncoding
+		THREE.RGBM7Encoding
+		THREE.RGBM16Encoding
+		THREE.RGBDEncoding
+		THREE.BasicDepthPacking
+		THREE.RGBADepthPacking
+		</code>
+	<p>
+		这些常量用于纹理的[page:Texture.encoding encoding]属性。<br /><br />
+
+		如果编码类型在纹理已被一个材质使用之后发生了改变,
+		你需要来设置[page:Material.needsUpdate Material.needsUpdate]为*true*来使得材质重新编译。<br /><br />
+
+		[page:constant LinearEncoding]是默认值。
+		除此之外的其他值仅在材质的贴图、envMap和emissiveMap中有效。
+	</p>
+
+	<h2>源代码</h2>
+	[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+</body>
+
+</html>

+ 215 - 0
docs/api/zh/core/BufferAttribute.html

@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+		This class stores data for an attribute (such as vertex positions, face indices, normals,
+		colors, UVs, and any custom attributes ) associated with a [page:BufferGeometry], which allows
+		for more efficient passing of data to the GPU. See that page for details and a usage example.<br /><br />
+
+		Data is stored as vectors of any length (defined by [page:BufferAttribute.itemSize itemSize]),
+		and in general in the methods outlined below if passing in an index, this is automatically
+		multiplied by the vector length.
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<p>
+		[page:TypedArray array] -- Must be a [link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/TypedArray TypedArray].
+		Used to instantiate the buffer. <br />
+		This array should have
+	 	<code>itemSize * numVertices</code>
+		elements, where numVertices is the number of vertices in the associated [page:BufferGeometry BufferGeometry].<br /><br />
+
+
+		[page:Integer itemSize] --  the number of values of the array that should be associated with
+		a particular vertex. For instance, if this
+		attribute is storing a 3-component vector (such as a position, normal, or color), then itemSize should be 3.
+		<br /><br />
+
+		[page:Boolean normalized] -- (optional) Indicates how the underlying data in the buffer maps
+		to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance of
+		UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array
+		 data will be mapped to 0.0f - +1.0f in the GLSL attribute. An Int16Array (signed) would map
+		 from -32767 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values
+		 will be converted to floats which contain the exact value, i.e. 32767 becomes 32767.0f.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>
+		The [page:TypedArray array] holding data stored in the buffer.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+		Stores the [page:BufferAttribute.array array]'s length divided by the [page:BufferAttribute.itemSize itemSize].<br /><br />
+
+		If the buffer is storing a 3-component vector (such as a position, normal, or color),
+		then this will count the number of such vectors stored.
+		</p>
+
+		<h3>[property:Boolean dynamic]</h3>
+		<p>
+			Whether the buffer is dynamic or not. Default is *false*.<br />
+
+			If false, the GPU is informed that contents of the buffer are likely to be used often and not change often.
+			This corresponds to the  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.STATIC_DRAW] flag.<br />
+			if true, the GPU is informed that contents of the buffer are likely to be used often and change often.
+			This corresponds to the  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.DYNAMIC_DRAW] flag.
+		</p>
+
+		<h3>[property:Boolean isBufferAttribute]</h3>
+		<p>
+			Used to check whether this or derived classes are BufferAttributes. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>The length of vectors that are being stored in the [page:BufferAttribute.array array].</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+		Optional name for this attribute instance. Default is an empty string.
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		Flag to indicate that this attribute has changed and should be re-sent to the GPU.
+		Set this to true when you modify the value of the array.<br /><br />
+
+		Setting this to true also increments the [page:BufferAttribute.version version].
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+		Indicates how the underlying data in the buffer maps to the values in the GLSL shader code.
+		See the constructor above for details.
+		</p>
+
+		<h3>[property:Function onUploadCallback]</h3>
+		<p>
+		A callback function that is executed after the Renderer has transfered the attribute array data to the GPU.
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>Object containing:<br />
+			[page:Integer offset]: Default is *0*. Position at whcih to start update.<br />
+			[page:Integer count]: Default is *-1*, which means don't use update ranges. <br /><br />
+
+			This can be used to only update some components of stored vectors (for example, just the component
+			related to color).
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>A version number, incremented every time the [page:BufferAttribute.needsUpdate needsUpdate] property is set to true.</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:BufferAttribute clone]() </h3>
+		<p>Return a copy of this bufferAttribute.</p>
+
+		<h3>[method:BufferAttribute copyArray]( array ) </h3>
+		<p>Copy the array given here (which can be a normal array or TypedArray) into
+			[page:BufferAttribute.array array].<br /><br />
+
+			See [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]
+			for notes on requirements if copying a TypedArray.
+		</p>
+
+		<h3>[method:null copyAt] ( [param:Integer index1], [param:BufferAttribute bufferAttribute], [param:Integer index2] ) </h3>
+		<p>Copy a vector from bufferAttribute[index2] to [page:BufferAttribute.array array][index1].</p>
+
+		<h3>[method:BufferAttribute copyColorsArray]( [param:Array colors] ) </h3>
+		<p>Copy an array representing RGB color values into [page:BufferAttribute.array array].</p>
+
+		<h3>[method:BufferAttribute copyVector2sArray]( [param:Array vectors] ) </h3>
+		<p>Copy an array representing [page:Vector2]s into [page:BufferAttribute.array array].</p>
+
+		<h3>[method:BufferAttribute copyVector3sArray]( [param:Array vectors] ) </h3>
+		<p>Copy an array representing [page:Vector3]s into [page:BufferAttribute.array array].</p>
+
+		<h3>[method:BufferAttribute copyVector4sArray]( [param:Array vectors] ) </h3>
+		<p>Copy an array representing [page:Vector4]s into [page:BufferAttribute.array array].</p>
+
+		<h3>[method:Number getX]( [param:Integer index] ) </h3>
+		<p>Returns the x component of the vector at the given index.</p>
+
+		<h3>[method:Number getY]( [param:Integer index] ) </h3>
+		<p>Returns the y component of the vector at the given index.</p>
+
+		<h3>[method:Number getZ]( [param:Integer index] ) </h3>
+		<p>Returns the z component of the vector at the given index.</p>
+
+		<h3>[method:Number getW]( [param:Integer index] ) </h3>
+		<p>Returns the w component of the vector at the given index.</p>
+
+		<h3>[method:null onUpload]( [param:Function callback] ) </h3>
+		<p>
+		Sets the value of the onUploadCallback property.<br /><br />
+
+		In the [example:webgl_buffergeometry WebGL / Buffergeometry] this is used to free memory
+		after the buffer has been	transfered to the GPU.
+		</p>
+
+		<h3>[method:BufferAttribute set] ( [param:Array value], [param:Integer offset] ) </h3>
+		<p>
+		value -- an [page:Array] or [page:TypedArray] from which to copy values. <br />
+		offset -- (optional) index of the [page:BufferAttribute.array array] at which to start copying.<br /><br />
+
+		Calls	[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]( [page:Array value], [page:Integer offset] )
+		on the [page:BufferAttribute.array array].<br /><br />
+
+		In particular, see that page for requirements on [page:Array value]
+		being a [page:TypedArray].
+		</p>
+
+		<h3>[method:BufferAttribute setArray] ( [param:TypedArray array] ) </h3>
+		<p>
+		[page:BufferAttribute.array array] to the TypedArray passed in here.<br /><br />
+
+		After setting the array, [page:BufferAttribute.needsUpdate needsUpdate] should be set to true.
+		</p>
+
+		<h3>[method:BufferAttribute setDynamic] ( [param:Boolean value] ) </h3>
+		<p>Set [page:BufferAttribute.dynamic dynamic] to value.</p>
+
+		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
+		<p>Sets the x component of the vector at the given index.</p>
+
+		<h3>[method:BufferAttribute setY]( [param:Integer index], [param:Float y] ) </h3>
+		<p>Sets the y component of the vector at the given index.</p>
+
+		<h3>[method:BufferAttribute setZ]( [param:Integer index], [param:Float z] ) </h3>
+		<p>Sets the z component of the vector at the given index.</p>
+
+		<h3>[method:BufferAttribute setW]( [param:Integer index], [param:Float w] ) </h3>
+		<p>Sets the w component of the vector at the given index.</p>
+
+		<h3>[method:BufferAttribute setXY]( [param:Integer index], [param:Float x], [param:Float y] ) </h3>
+		<p>Sets the x and y components of the vector at the given index.</p>
+
+		<h3>[method:BufferAttribute setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] ) </h3>
+		<p>Sets the x, y and z components of the vector at the given index.</p>
+
+		<h3>[method:BufferAttribute setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] ) </h3>
+		<p>Sets the x, y, z and w components of the vector at the given index.</p>
+
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 362 - 0
docs/api/zh/core/BufferGeometry.html

@@ -0,0 +1,362 @@
+<!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>
+		An efficient representation of mesh, line, or point geometry. Includes vertex positions, face
+		indices, normals, colors, UVs, and custom attributes within buffers, reducing the cost of
+		passing all this data to the GPU.
+		</p>
+		<p>
+		To read and edit data in BufferGeometry attributes, see [page:BufferAttribute] documentation.
+		</p>
+		<p>
+		For a less efficient but easier-to-use representation of geometry, see [page:Geometry].
+		</p>
+
+		<h2>Example</h2>
+		<code>
+		var geometry = new THREE.BufferGeometry();
+		// create a simple square shape. We duplicate the top left and bottom right
+		// vertices because each vertex needs to appear once per triangle.
+		var vertices = new Float32Array( [
+			-1.0, -1.0,  1.0,
+			 1.0, -1.0,  1.0,
+			 1.0,  1.0,  1.0,
+
+			 1.0,  1.0,  1.0,
+			-1.0,  1.0,  1.0,
+			-1.0, -1.0,  1.0
+		] );
+
+		// itemSize = 3 because there are 3 values (components) per vertex
+		geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
+		var mesh = new THREE.Mesh( geometry, material );
+		</code>
+		<p>
+			[example:webgl_buffergeometry Mesh with non-indexed faces]<br />
+			[example:webgl_buffergeometry_indexed Mesh with indexed faces]<br />
+			[example:webgl_buffergeometry_lines Lines]<br />
+			[example:webgl_buffergeometry_lines_indexed Indexed Lines]<br />
+			[example:webgl_buffergeometry_custom_attributes_particles Particles]<br />
+			[example:webgl_buffergeometry_rawshader Raw Shaders]
+		</p>
+
+
+		<h2>Accessing Attributes</h2>
+		<p>
+		WebGL stores data associated with individual vertices of a geometry in <em>attributes</em>.
+		Examples include the position of the vertex, the normal vector for the vertex, the vertex color,
+		and so on. When using [page:Geometry], the [page:WebGLRenderer renderer] takes care of wrapping
+		up this information into typed array buffers and sending this data to the shader. With
+		BufferGeometry, all of this data is stored in buffers associated with individual attributes.
+		This means that to get the position data associated with a vertex (for instance), you must call
+		[page:.getAttribute] to access the 'position' [page:BufferAttribute attribute], then access the individual
+		x, y, and z coordinates of the position.
+		</p>
+		<p>
+		The following attributes are set by various members of this class:
+		</p>
+		<h3>[page:BufferAttribute position] (itemSize: 3)</h3>
+		<p>
+		Stores the x, y, and z coordinates of each vertex in this geometry. Set by [page:.fromGeometry]().
+		</p>
+
+		<h3>[page:BufferAttribute normal] (itemSize: 3)</h3>
+		<p>
+		Stores the x, y, and z components of the vertex normal vector of each vertex in this geometry.
+		Set by [page:.fromGeometry]().
+		</p>
+
+		<h3>[page:BufferAttribute color] (itemSize: 3)</h3>
+		<p>
+		Stores the red, green, and blue channels of vertex color of each vertex in this geometry.
+		Set by [page:.fromGeometry]().
+		</p>
+
+		<p>
+		In addition to the the built-in attributes, you can set your own custom attributes using the addAttribute method. With [page:Geometry], these attributes are set and stored on the [page:Material]. In BufferGeometry, the attributes are stored with the geometry itself. Note that you still need to set the attributes information on the material as well, but the value of each attribute is stored in the BufferGeometry.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<div>
+		This creates a new [name]. It also sets several properties to a default value.
+		</div>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object attributes]</h3>
+		<p>
+		This hashmap has as id the name of the attribute to be set and as value the [page:BufferAttribute buffer] to set it to.
+		Rather than accessing this property directly, use [page:.addAttribute] and [page:.getAttribute] to access attributes of this geometry.
+		</p>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			Bounding box for the bufferGeometry, which can be calculated with
+			[page:.computeBoundingBox](). Default is *null*.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			Bounding sphere for the bufferGeometry, which can be calculated with
+			[page:.computeBoundingSphere](). Default is *null*.
+		</p>
+
+		<h3>[property:Object drawRange]</h3>
+		<p>
+			Used to determine what part of the geometry should be rendered. This should not
+			be set directly, instead use [page:.setDrawRange].<br />
+			Default is
+			<code>
+				{ start: 0, count: Infinity }
+			</code>
+		</p>
+
+		<h3>[property:Array groups]</h3>
+		<p>
+			Split the geometry into groups, each of which will be rendered in a separate WebGL draw call.
+			This allows an array of materials to be used with the bufferGeometry.<br /><br />
+
+			Each group is an object of the form:
+			<code>{ start: Integer, count: Integer, materialIndex: Integer }</code>
+			where start specifies the first element in this draw call – the first vertex for non-indexed geometry,
+			otherwise the first triangle index. Count specifies how many vertices (or indices) are included, and
+			materialIndex specifies the material array index to use.<br /><br />
+
+			Use [page:.addGroup] to add groups, rather than modifying this array directly.
+		</p>
+
+
+		<!-- Note: groups used to be called drawCalls
+
+		<h3>[property:Array drawcalls]</h3>
+		<p>
+		For geometries that use indexed triangles, this Array can be used to split the object
+		into multiple WebGL draw calls. Each draw call will draw some subset of the vertices
+		in this geometry using the configured [page:Material shader]. This may be necessary if,
+		for instance, you have more than 65535 vertices in your object.
+		</p> -->
+
+
+		<h3>[property:Integer id]</h3>
+		<p>Unique number for this bufferGeometry instance.</p>
+
+		<h3>[property:BufferAttribute index]</h3>
+		<p>
+			Allows for vertices to be re-used across multiple triangles; this is called using "indexed triangles" and
+			works much the same as it does in [page:Geometry]: each triangle is associated with the indices of three vertices.
+			This attribute therefore stores the index of each vertex for each triangular face.
+
+			If this attribute is not set, the [page:WebGLRenderer renderer] assumes that each three contiguous
+			positions represent a single triangle.
+
+			Default is *null*.
+		</p>
+
+		<h3>[property:Boolean isBufferGeometry]</h3>
+		<p>
+			Used to check whether this or derived classes are BufferGeometries. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Object morphAttributes]</h3>
+		<p>
+			Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+		Optional name for this bufferGeometry instance. Default is an empty string.
+		</p>
+
+		<h3>[property:Object userData]</h3>
+		<p>
+		An object that can be used to store custom data about the BufferGeometry. It should not hold
+		references to functions as these will not be cloned.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this object instance.
+		This gets automatically assigned and shouldn't be edited.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
+
+		<h3>[method:BufferGeometry addAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<p>
+		Adds an attribute to this geometry. Use this rather than the attributes property,
+		because an internal hashmap of [page:.attributes] is maintained to speed up iterating over
+		attributes.
+		</p>
+
+		<h3>[method:null addGroup]( [param:Integer start], [param:Integer count], [param:Integer materialIndex] )</h3>
+		<p>
+			Adds a group to this geometry; see the [page:BufferGeometry.groups groups]
+			property for details.
+		</p>
+
+
+		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<p>Bakes matrix transform directly into vertex coordinates.</p>
+
+		<h3>[method:BufferGeometry center] ()</h3>
+		<p>Center the geometry based on the bounding box.</p>
+
+		<h3>[method:BufferGeometry clone]()</h3>
+		<p>Creates a clone of this BufferGeometry.</p>
+
+		<h3>[method:BufferGeometry copy]( [param:BufferGeometry bufferGeometry] )</h3>
+		<p>Copies another BufferGeometry to this BufferGeometry.</p>
+
+		<h3>[method:null clearGroups]( )</h3>
+		<p>Clears all groups.</p>
+
+		<h3>[method:null computeBoundingBox]()</h3>
+		<p>
+		Computes bounding box of the geometry, updating [param:.boundingBox] attribute.<br />
+		Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are *null*.
+		</p>
+
+		<h3>[method:null computeBoundingSphere]()</h3>
+		<p>
+		Computes bounding sphere of the geometry, updating [page:.boundingSphere] attribute.<br />
+		Bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are *null*.
+		</p>
+
+		<h3>[method:null computeVertexNormals]()</h3>
+		<p>Computes vertex normals by averaging face normals.</p>
+
+		<h3>[method:null dispose]()</h3>
+		<p>
+		Disposes the object from memory. <br />
+		You need to call this when you want the BufferGeometry removed while the application is running.
+		</p>
+
+		<h3>[method:BufferGeometry fromDirectGeometry]( [param:Geometry] )</h3>
+		<p>
+			Populates this BufferGeometry with data from a [page:DirectGeometry] object containing faces. Not implemented for a line geometry.<br /><br />
+
+			Note: [page:DirectGeometry] is mainly used as an intermediary object for converting between [page:Geometry]
+			and BufferGeometry.
+		</p>
+
+		<h3>[method:BufferGeometry fromGeometry]( [param:Geometry] )</h3>
+		<p>Populates this BufferGeometry with data from a [page:Geometry] object containing faces. Not implemented for a line geometry.</p>
+
+		<h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
+		<p>Returns the [page:BufferAttribute attribute] with the specified name.</p>
+
+		<h3>[method:BufferAttribute getIndex] ()</h3>
+		<p>Return the [page:.index] buffer.</p>
+
+		<h3>[method:BufferGeometry lookAt] ( [param:Vector3 vector] )</h3>
+		<p>
+		vector - A world vector to look at.<br /><br />
+
+		Rotates the geometry to face a point in space. This is typically done as a one time operation, and not during a loop.
+		Use [page:Object3D.lookAt] for typical real-time mesh usage.
+		</p>
+
+		<h3>[method:null merge]( [param:BufferGeometry bufferGeometry], [param:Integer offset] )</h3>
+		<p>Merge in another BufferGeometry with an optional offset of where to start merging in.</p>
+
+		<h3>[method:null normalizeNormals]()</h3>
+		<p>
+		Every normal vector in a geometry will have a magnitude of 1.
+		This will correct lighting on the geometry surfaces.
+		</p>
+
+		<h3>[method:BufferAttribute removeAttribute]( [param:String name] )</h3>
+		<p>Removes the [page:BufferAttribute attribute] with the specified name.</p>
+
+		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>
+		<p>
+		Rotate the geometry about the X axis. This is typically done as a one time operation, and not during a loop.
+    Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		</p>
+
+		<h3>[method:BufferGeometry rotateY] ( [param:Float radians] )</h3>
+		<p>
+		Rotate the geometry about the Y axis. This is typically done as a one time operation, and not during a loop.
+    Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		</p>
+
+		<h3>[method:BufferGeometry rotateZ] ( [param:Float radians] )</h3>
+		<p>
+		Rotate the geometry about the Z axis. This is typically done as a one time operation, and not during a loop.
+    Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		</p>
+
+		<h3>[method:BufferGeometry scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		Scale the geometry data. This is typically done as a one time operation, and not during a loop.
+		Use [page:Object3D.scale] for typical real-time mesh scaling.
+		</p>
+
+		<h3>[method:null setIndex] ( [param:BufferAttribute index] )</h3>
+		<p>Set the [page:.index] buffer.</p>
+
+		<h3>[method:null setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
+		<p>Set the [page:.drawRange] buffer. See that property for details.</p>
+
+		<h3>[method:BufferGeometry setFromObject] ( [param:Object3D object] )</h3>
+		<p>Sets the attributes for this BufferGeometry from an [page:Object3D].</p>
+
+		<h3>[method:BufferGeometry setFromPoints] ( [param:Array points] )</h3>
+		<p>Sets the attributes for this BufferGeometry from an array of points.</p>
+
+		<h3>[method:Object toJSON]()</h3>
+		<p>Returns a JSON object representation of the BufferGeometry.</p>
+
+		<h3>[method:BufferGeometry toNonIndexed]()</h3>
+		<p>Return a non-index version of an indexed BufferGeometry.</p>
+
+		<h3>[method:BufferGeometry translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		Translate the geometry. This is typically done as a one time operation, and not during a loop.
+    Use [page:Object3D.position] for typical real-time mesh translation.
+		</p>
+
+		<h3>[method:BufferGeometry updateFromObject] ( [param:Object3D object] )</h3>
+		<div>Updates the attributes for this BufferGeometry from an [page:Object3D].</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 87 - 0
docs/api/zh/core/Clock.html

@@ -0,0 +1,87 @@
+<!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">
+		Object for keeping track of time. This uses <a href="https://developer.mozilla.org/en-US/docs/Web/API/Performance/now">performance.now()</a>
+		if it is available, otherwise it reverts to the less accurate <a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now">Date.now()</a>.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Boolean autoStart] )</h3>
+		<p>
+		autoStart — (optional) whether to automatically start the clock. Default is true.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean autoStart]</h3>
+		<p>
+		If set, starts the clock automatically when the first update is called. Default is true.
+		</p>
+
+		<h3>[property:Float startTime]</h3>
+		<p>
+		Holds the time at which the clock's [page:Clock.start start] method was last called.
+ 		</p>
+
+
+		<h3>[property:Float oldTime]</h3>
+		<p>
+		Holds the time at which the clock's [page:Clock.start start], [page:Clock.getElapsedTime getElapsedTime] or [page:Clock.getDelta getDelta]
+		methods were last called.
+ 		</p>
+
+		<h3>[property:Float elapsedTime]</h3>
+		<p>
+		Keeps track of the total time that the clock has been running.
+ 		</p>
+
+		<h3>[property:Boolean running]</h3>
+		<p>
+		Whether the clock is running or not.
+ 		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null start]()</h3>
+		<p>
+		Starts clock. Also sets the [page:Clock.startTime startTime] and [page:Clock.oldTime oldTime]
+		to the current time, sets [page:Clock.elapsedTime elapsedTime] to *0* and [page:Clock.running running] to *true*.
+		</p>
+
+		<h3>[method:null stop]()</h3>
+		<p>
+		Stops clock and sets [page:Clock.oldTime oldTime] to the current time.
+		</p>
+
+		<h3>[method:Float getElapsedTime]()</h3>
+		<p>
+		Get the seconds passed since the clock started and sets [page:Clock.oldTime oldTime] to the current time.<br />
+		If [page:Clock.autoStart autoStart] is *true* and the clock is not running, also starts the clock.
+		</p>
+
+		<h3>[method:Float getDelta]()</h3>
+		<p>
+		Get the seconds passed since the time [page:Clock.oldTime oldTime] was set and sets [page:Clock.oldTime oldTime] to the current time.<br />
+		If [page:Clock.autoStart autoStart] is *true* and the clock is not running, also starts the clock.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 108 - 0
docs/api/zh/core/DirectGeometry.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">
+			This class is used internally to convert from [page:Geometry] to [page:BufferGeometry].
+		</p>
+
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>This creates a new [name].</p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Integer id]</h3>
+		<p>Unique number for this [name] instance.</p>
+
+		<h3>[property:String name]</h3>
+		<p>Optional name. Default is the empty string.</p>
+
+		<h3>[property:Array type]</h3>
+		<p>String 'DirectGeometry'.</p>
+
+		<h3>[property:Array vertices]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array normals]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array colors]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array uvs]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array uvs2]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array groups]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array morphTargets]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array skinWeights]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Array skinIndices]</h3>
+		<p>Initialiased as an empty array, this is populated by [page:.fromGeometry]().</p>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			Bounding box for the bufferGeometry, which can be calculated with
+			[page:.computeBoundingBox](). Default is *null*.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			Bounding sphere for the bufferGeometry, which can be calculated with
+			[page:.computeBoundingSphere](). Default is *null*.
+		</p>
+
+		<h3>[property:Boolean verticesNeedUpdate]</h3>
+		<p>Default is false.</p>
+
+		<h3>[property:Boolean normalsNeedUpdate]</h3>
+		<p>Default is false.</p>
+
+		<h3>[property:Boolean colorsNeedUpdate]</h3>
+		<p>Default is false.</p>
+
+		<h3>[property:Boolean uvsNeedUpdate]</h3>
+		<p>Default is false.</p>
+
+		<h3>[property:Boolean groupsNeedUpdate]</h3>
+		<p>Default is false.</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[property:null computeGroups]( [param:Geometry geometry] )</h3>
+		<p>
+			Compute the parts of the geometry that have different materialIndex.
+			See [page:BufferGeometry.groups].
+		</p>
+
+		<h3>[property:null fromGeometry]( [param:Geometry geometry] )</h3>
+		<p>Pass in a [page:Geometry] instance for conversion.</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 100 - 0
docs/api/zh/core/EventDispatcher.html

@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+			JavaScript events for custom objects.<br />
+			[link:https://github.com/mrdoob/eventdispatcher.js Eventdispatcher on GitHub]
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+// Adding events to a custom object
+
+var Car = function () {
+
+    this.start = function () {
+
+        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+
+    };
+
+};
+
+// Mixing the EventDispatcher.prototype with the custom object prototype
+
+Object.assign( Car.prototype, EventDispatcher.prototype );
+
+// Using events with the custom object
+
+var car = new Car();
+
+car.addEventListener( 'start', function ( event ) {
+
+    alert( event.message );
+
+} );
+
+car.start();
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		Creates EventDispatcher object.
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null addEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - The type of event to listen to.<br />
+		listener - The function that gets called when the event is fired.
+		</p>
+		<p>
+		Adds a listener to an event type.
+		</p>
+
+		<h3>[method:Boolean hasEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - The type of event to listen to.<br />
+		listener - The function that gets called when the event is fired.
+		</p>
+		<p>
+		Checks if listener is added to an event type.
+		</p>
+
+		<h3>[method:null removeEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - The type of the listener that gets removed.<br />
+		listener - The listener function that gets removed.
+		</p>
+		<p>
+		Removes a listener from an event type.
+		</p>
+
+		<h3>[method:null dispatchEvent]( [param:object event] )</h3>
+		<p>
+		event - The event that gets fired.
+		</p>
+		<p>
+		Fire an event type.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 134 - 0
docs/api/zh/core/Face3.html

@@ -0,0 +1,134 @@
+<!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">
+		Triangular face used in [page:Geometry]. These are created automatically for all
+		standard geometry types, however if you are building a custom geometry you will have to
+		create them manually.
+		</p>
+
+
+		<h2>Examples</h2>
+
+		<p>[example:misc_ubiquity_test ubiquity / test ]</p>
+		<p>[example:svg_sandbox svg / sandbox ]</p>
+		<p>[example:misc_exporter_obj exporter / obj ]</p>
+		<p>[example:webgl_shaders_vector WebGL / shaders / vector ]</p>
+
+
+		<code>
+var material = new THREE.MeshStandardMaterial( { color : 0x00cc00 } );
+
+//create a triangular geometry
+var geometry = new THREE.Geometry();
+geometry.vertices.push( new THREE.Vector3( -50, -50, 0 ) );
+geometry.vertices.push( new THREE.Vector3(  50, -50, 0 ) );
+geometry.vertices.push( new THREE.Vector3(  50,  50, 0 ) );
+
+//create a new face using vertices 0, 1, 2
+var normal = new THREE.Vector3( 0, 1, 0 ); //optional
+var color = new THREE.Color( 0xffaa00 ); //optional
+var materialIndex = 0; //optional
+var face = new THREE.Face3( 0, 1, 2, normal, color, materialIndex );
+
+//add the face to the geometry's faces array
+geometry.faces.push( face );
+
+//the face normals and vertex normals can be calculated automatically if not supplied above
+geometry.computeFaceNormals();
+geometry.computeVertexNormals();
+
+scene.add( new THREE.Mesh( geometry, material ) );
+	</code>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Integer a], [param:Integer b], [param:Integer c], [param:Vector3 normal], [param:Color color], [param:Integer materialIndex] )</h3>
+		<p>
+		a — Vertex A index.<br />
+		b — Vertex B index.<br />
+		c — Vertex C index.<br /><br />
+
+		normal — (optional) Face normal ([page:Vector3 Vector3]) or array of vertex normals.
+		If a single vector is passed in, this sets [page:.normal], otherwise if an array of three
+		vectors is passed in this sets [page:.vertexNormals]<br /><br />
+
+		color — (optional) Face [page:Color color] or array of vertex [page:Color colors].
+		If a single vector is passed in, this sets [page:.color], otherwise if an array of three
+		vectors is passed in this sets [page:.vertexColors]<br /><br />
+
+		materialIndex — (optional) which index of an array of materials to associate
+		with the face.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Integer a]</h3>
+		<p>
+		Vertex A index.
+		</p>
+
+		<h3>[property:Integer b]</h3>
+		<p>
+		Vertex B index.
+		</p>
+
+		<h3>[property:Integer c]</h3>
+		<p>
+		Vertex C index.
+		</p>
+
+		<h3>[property:Vector3 normal]</h3>
+		<p>
+		Face normal - vector showing the direction of the Face3. If calculated automatically
+		(using [page:Geometry.computeFaceNormals]), this is the normalized cross product of two edges of the
+		triangle. Default is *(0, 0, 0)*.
+		</p>
+
+		<h3>[property:Color color]</h3>
+		<p>
+		Face color - for this to be used a material's [page:Material.vertexColors vertexColors] property
+		must be set to [page:Materials THREE.FaceColors].
+		</p>
+
+		<h3>[property:Array vertexNormals]</h3>
+		<p>
+		Array of 3 [page:Vector3 vertex normals].
+		</p>
+
+		<h3>[property:Array vertexColors]</h3>
+		<p>
+		Array of 3 vertex colors - for these to be used a material's [page:Material.vertexColors vertexColors] property
+		must be set to [page:Materials THREE.VertexColors].
+		</p>
+
+
+		<h3>[property:Integer materialIndex]</h3>
+		<p>
+		Material index (points to an index in the associated array of materials). Default is *0*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Face3 clone]()</h3>
+		<p>Creates a new clone of the Face3 object.</p>
+
+		<h3>[method:Face3 copy]( [param:Face3 face3] )</h3>
+		<p>Copy the paramaters of another Face3 into this.</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 345 - 0
docs/api/zh/core/Geometry.html

@@ -0,0 +1,345 @@
+<!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>
+		Geometry is a user-friendly alternative to [page:BufferGeometry]. Geometries store attributes
+		(vertex positions, faces, colors, etc.) using objects like [page:Vector3] or [page:Color] that
+		are easier to read and edit, but less efficient than typed arrays.
+		</p>
+		<p>
+		Prefer [page:BufferGeometry] for large or serious projects.
+		</p>
+		</div>
+
+
+		<h2>Example</h2>
+
+		<div>[example:webgl_geometry_minecraft WebGL / geometry / minecraft ]</div>
+		<div>[example:webgl_geometry_minecraft_ao WebGL / geometry / minecraft / ao ]</div>
+		<div>[example:webgl_geometry_nurbs WebGL / geometry / nurbs ]</div>
+		<div>[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor ]</div>
+		<div>[example:webgl_interactive_cubes_gpu WebGL / interactive / cubes / gpu ]</div>
+		<div>[example:webgl_interactive_lines WebGL / interactive / lines ]</div>
+		<div>[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points ]</div>
+		<div>[example:webgl_interactive_voxelpainter WebGL / interactive / voxelpainter ]</div>
+		<div>[example:webgl_morphnormals WebGL / morphNormals ]</div>
+
+
+		<code>var geometry = new THREE.Geometry();
+
+		geometry.vertices.push(
+			new THREE.Vector3( -10,  10, 0 ),
+			new THREE.Vector3( -10, -10, 0 ),
+			new THREE.Vector3(  10, -10, 0 )
+		);
+
+		geometry.faces.push( new THREE.Face3( 0, 1, 2 ) );
+
+		geometry.computeBoundingSphere();
+		</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		The constructor takes no arguments.
+		</p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			Bounding box for the Geometry, which can be calculated with
+			[page:.computeBoundingBox](). Default is *null*.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			Bounding sphere for the Geometry, which can be calculated with
+			[page:.computeBoundingSphere](). Default is *null*.
+		</p>
+
+		<h3>[property:Array colors]</h3>
+		<p>
+		Array of vertex [page:Color colors], matching number and order of vertices.<br /><br />
+
+		This is used by [page:Points] and [page:Line] and any classes derived from those such as [page:LineSegments] and various helpers.
+		[page:Mesh Meshes] use [page:Face3.vertexColors] instead of this.<br /><br />
+
+		To signal an update in this array, [page:Geometry Geometry.colorsNeedUpdate] needs to be set to true.
+		</p>
+
+		<h3>[property:Array faces]</h3>
+		<p>
+		Array of [page:Face3 faces].<br />
+		The array of faces describe how each vertex in the model is connected to form faces.
+		Additionally it holds information about face and vertex normals and colors.<br /><br />
+		To signal an update in this array, [page:Geometry Geometry.elementsNeedUpdate] needs to be set to true.
+		</p>
+
+		<h3>[property:Array faceVertexUvs]</h3>
+		<p>
+		Array of face [link:https://en.wikipedia.org/wiki/UV_mapping UV] layers, used for mapping textures onto the geometry.<br />
+		Each UV layer is an array of [page:UV]s matching the order and number of vertices in faces.<br /><br />
+		To signal an update in this array, [page:Geometry Geometry.uvsNeedUpdate] needs to be set to true.
+		</p>
+
+		<h3>[property:Integer id]</h3>
+		<p>Unique number for this geometry instance.</p>
+
+		<h3>[property:Boolean isGeometry]</h3>
+		<p>
+			Used to check whether this or derived classes are Geometries. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:array lineDistances]</h3>
+		<p>
+		An array containing distances between vertices for Line geometries.
+		This is required for [page:LineDashedMaterial] to render correctly.
+		</p>
+
+		<h3>[property:Array morphTargets]</h3>
+		<p>
+		Array of [link:https://en.wikipedia.org/wiki/Morph_target_animation morph targets]. Each morph target is a Javascript object:
+		<code>{ name: "targetName", vertices: [ new THREE.Vector3(), ... ] }</code>
+		Morph vertices match number and order of primary vertices.
+		</p>
+
+		<h3>[property:Array morphNormals]</h3>
+		<p>
+		Array of morph normals. Morph normals have similar structure as morph targets, each normal set is a Javascript object:
+		<code>morphNormal = { name: "NormalName", normals: [ new THREE.Vector3(), ... ] }</code>
+
+		See the [example:webgl_morphnormals WebGL / morphNormals] example.
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>Optional name for this geometry. Default is an empty string.</p>
+
+		<h3>[property:Array skinWeights]</h3>
+		<p>
+		When working with a [page:SkinnedMesh], each vertex can have up to 4 [page:Bone bones] affecting it.
+		The skinWeights property is an array of weight values that correspond to the order of the vertices in
+		the geometry. So for instance, the first skinWeight would correspond to the first vertex in the geometry.
+		Since each vertex can be modified by 4 bones, a [page:Vector4] is used to represent the skin weights
+		for that vertex.
+		</p>
+		<p>
+		The values of the vector should typically be between 0 and 1. For instance when set to 0 the bone
+		transformation will have no affect. When set to 0.5 it will have 50% affect. When set to 100%, it will
+		have 100% affect. If there is only 1 bone associated with the vertex then you only need to worry about
+		the first component of the vector, the rest can be ignored and set to 0.
+		</p>
+
+		<h3>[property:Array skinIndices]</h3>
+		<p>
+		Just like the skinWeights property, the skinIndices' values correspond to the geometry's vertices.
+		Each vertex can have up to 4 bones associated with it. So if you look at the first vertex, and the
+		first skinIndex, this will tell you the bones associated with that vertex. For example the first vertex
+		could have a value of <strong>( 10.05, 30.10, 12.12 )</strong>. Then the first skin index could have the
+		value of <strong>( 10, 2, 0, 0 )</strong>. The first skin weight could have the value of
+		<strong>( 0.8, 0.2, 0, 0 )</strong>. In affect this would take the first vertex, and then the bone
+		<strong>mesh.bones[10]</strong> and apply it 80% of the way. Then it would take the bone <strong>skeleton.bones[2]</strong>
+		and apply it 20% of the way. The next two values have a weight of 0, so they would have no affect.
+		</p>
+		<p>
+		In code another example could look like this:
+		<code>
+		// e.g.
+		geometry.skinIndices[15] = new THREE.Vector4(   0,   5,   9, 10 );
+		geometry.skinWeights[15] = new THREE.Vector4( 0.2, 0.5, 0.3,  0 );
+
+		// corresponds with the following vertex
+		geometry.vertices[15];
+
+		// these bones will be used like so:
+		skeleton.bones[0]; // weight of 0.2
+		skeleton.bones[5]; // weight of 0.5
+		skeleton.bones[9]; // weight of 0.3
+		skeleton.bones[10]; // weight of 0
+		</code>
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this object instance.
+		This gets automatically assigned and shouldn't be edited.
+		</p>
+
+		<h3>[property:Array vertices]</h3>
+		<p>
+		Array of [page:Vector3 vertices].<br />
+		The array of vertices holds the position of every vertex in the model.<br />
+		To signal an update in this array, [page:.verticesNeedUpdate] needs to be set to true.
+		</p>
+
+		<h3>[property:Boolean verticesNeedUpdate]</h3>
+		<p>Set to *true* if the vertices array has been updated.</p>
+
+		<h3>[property:Boolean elementsNeedUpdate]</h3>
+		<p>Set to *true* if the faces array has been updated.</p>
+
+		<h3>[property:Boolean uvsNeedUpdate]</h3>
+		<p>Set to *true* if the uvs array has been updated.	</p>
+
+		<h3>[property:Boolean normalsNeedUpdate]</h3>
+		<p>Set to *true* if the normals array has been updated.</p>
+
+		<h3>[property:Boolean colorsNeedUpdate]</h3>
+		<p>Set to *true* if the colors array or a face3 color has been updated.</p>
+
+		<h3>[property:Boolean groupsNeedUpdate]</h3>
+		<p>Set to *true* if a face3 materialIndex has been updated.</p>
+
+		<h3>[property:Boolean lineDistancesNeedUpdate]</h3>
+		<p>Set to *true* if the linedistances array has been updated.</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
+
+		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<p>Bakes matrix transform directly into vertex coordinates.</p>
+
+		<h3>[method:Geometry center] ()</h3>
+		<p>Center the geometry based on the bounding box.</p>
+
+		<h3>[method:Geometry clone]()</h3>
+		<p>
+		Creates a new clone of the Geometry.<br /><br />
+
+		This method copies only vertices, faces and uvs. It does not copy any other properties of the geometry.
+		</p>
+
+		<h3>[method:null computeBoundingBox]()</h3>
+		<p>Computes bounding box of the geometry, updating [page:Geometry Geometry.boundingBox] attribute.</p>
+
+		<h3>[method:null computeBoundingSphere]()</h3>
+		<p>Computes bounding sphere of the geometry, updating [page:Geometry Geometry.boundingSphere] attribute.</p>
+
+		<p>
+			Neither bounding boxes or bounding spheres are computed by default. They need to be explicitly computed,
+			otherwise they are *null*.
+		</p>
+
+		<h3>[method:null computeFaceNormals]()</h3>
+		<p>Computes [page:Face3.normal face normals].</p>
+
+		<h3>[method:null computeFlatVertexNormals]()</h3>
+		<p>Computes flat [page:Face3.vertexNormals vertex normals]. Sets the vertex normal of each vertex of each face to be the same as the face's normal.</p>
+
+		<h3>[method:null computeMorphNormals]()</h3>
+		<p>Computes [page:.morphNormals].</p>
+
+		<h3>[method:null computeVertexNormals]( [param:Boolean areaWeighted] )</h3>
+		<p>
+		areaWeighted - If true the contribution of each face normal to the vertex normal is
+		weighted by the area of the face. Default is true.<br /><br />
+
+		Computes vertex normals by averaging face normals.
+		</p>
+
+		<h3>[method:Geometry copy]( [param:Geometry geometry] )</h3>
+		<p>
+			Copies vertices, faces and uvs into this geometry. It does not copy any other properties of the geometry.
+		</p>
+
+		<h3>[method:null dispose]()</h3>
+		<p>
+		Removes The object from memory. <br />
+		Don't forget to call this method when you remove a geometry because it can cause memory leaks.
+		</p>
+
+		<h3>[method:Geometry fromBufferGeometry]( [param:BufferGeometry geometry] )</h3>
+		<p>Convert a [page:BufferGeometry] to a Geometry.</p>
+
+		<h3>[method:Geometry lookAt] ( [param:Vector3 vector] )</h3>
+		<p>
+		vector - A world vector to look at.<br /><br />
+
+		Rotates the geometry to face point in space. This is typically done as a one time operation but not during the render loop.<br>
+		Use [page:Object3D.lookAt] for typical real-time mesh usage.
+		</p>
+
+		<h3>[method:null merge]( [param:Geometry geometry], [param:Matrix4 matrix], [param:Integer materialIndexOffset] )</h3>
+		<p>Merge two geometries or geometry and geometry from object (using object's transform)</p>
+
+		<h3>[method:null mergeMesh]( [param:Mesh mesh] )</h3>
+		<p>Merge the mesh's geometry with this, also applying the mesh's transform.</p>
+
+
+		<h3>[method:null mergeVertices]()</h3>
+		<p>
+		Checks for duplicate vertices using hashmap.<br />
+		Duplicated vertices are removed and faces' vertices are updated.
+		</p>
+
+		<h3>[method:null normalize]()</h3>
+		<p>
+		Normalize the geometry. <br />
+		Make the geometry centered and have a bounding sphere of radius *1.0*.
+		</p>
+
+		<h3>[method:Geometry rotateX] ( [param:Float radians] )</h3>
+		<p>
+		Rotate the geometry about the X axis. This is typically done as a one time operation but not during the render loop.<br>
+		Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		</p>
+
+		<h3>[method:Geometry rotateY] ( [param:Float radians] )</h3>
+		<p>
+		Rotate the geometry about the Y axis. This is typically done as a one time operation but not during the render loop.<br>
+    	        Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		</p>
+
+		<h3>[method:Geometry rotateZ] ( [param:Float radians] )</h3>
+		<p>
+		Rotate the geometry about the Z axis. This is typically done as a one time operation but not during the render loop.<br>
+	        Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		</p>
+
+		<h3>[method:Geometry setFromPoints] ( [param:Array points] )</h3>
+		<p>Sets the vertices for this Geometry from an array of points.</p>
+
+		<h3>[method:null sortFacesByMaterialIndex] (  )</h3>
+		<p>
+		Sorts the faces array according to material index. For complex geometries with several materials,
+		this can result in reduced draw calls and improved performance.
+		</p>
+
+		<h3>[method:Geometry scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		Scale the geometry data. This is typically done as a one time operation but not during the render loop.<br>
+		Use [page:Object3D.scale] for typical real-time mesh scaling.
+		</p>
+
+		<h3>[method:JSON toJSON] ( )</h3>
+		<p>Convert the geometry to JSON format.</p>
+
+		<h3>[method:Geometry translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		Translate the geometry. This is typically done as a one time operation but not during the render loop.<br>
+    	        Use [page:Object3D.position] for typical real-time mesh translation.
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 44 - 0
docs/api/zh/core/InstancedBufferAttribute.html

@@ -0,0 +1,44 @@
+<!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:BufferAttribute] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		An instanced version of [page:BufferAttribute].
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+		See [page:BufferAttribute] for inherited properties.
+
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+			Default is *1*.
+		</p>
+
+		<h3>[property:Boolean isInstancedBufferAttribute]</h3>
+		<p>
+			Default is *true*.
+		</p>
+
+		<h2>Methods</h2>
+		<p>See [page:BufferAttribute] for inherited methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 50 - 0
docs/api/zh/core/InstancedBufferGeometry.html

@@ -0,0 +1,50 @@
+<!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">
+		An instanced version of [page:BufferGeometry].
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( )</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+		See [page:BufferGeometry] for inherited properties.
+
+		<h3>[property:Number maxInstancedCount]</h3>
+		<p>
+			Default is *undefined*.
+		</p>
+
+		<h3>[property:Boolean isInstancedBufferGeometry]</h3>
+		<p>
+			Default is *true*.
+		</p>
+
+		<h2>Methods</h2>
+		<p>See [page:BufferAttribute] for inherited methods.</p>
+
+		<h3>[property:Number addGroup]( start, count, materialIndex )</h3>
+		<p>
+
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 48 - 0
docs/api/zh/core/InstancedInterleavedBuffer.html

@@ -0,0 +1,48 @@
+<!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:InterleavedBuffer] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		An instanced version of [page:InterleavedBuffer].
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+		<p>
+			See [page:InterleavedBuffer] for inherited properties.
+		</p>
+
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+			Default is *1*.
+		</p>
+
+		<h3>[property:Boolean isInstancedInterleavedBuffer]</h3>
+		<p>
+			Default is *true*.
+		</p>
+
+		<h2>Methods</h2>
+		<p>
+			See [page:InterleavedBuffer] for inherited methods.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 119 - 0
docs/api/zh/core/InterleavedBuffer.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+			"Interleaved" means that multiple attributes, possibly of different types, (e.g., position, normal, uv, color) are packed into a single array buffer.
+			<br/><br/>
+			An introduction into interleaved arrays can be found here: [link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html Interleaved array basics]
+		</p>
+
+		<h2>Example</h2>
+
+		<p>[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer stride] )</h3>
+		<p>
+			[page:TypedArray array] -- A typed array with a shared buffer. Stores the geometry data.<br/>
+			[page:Integer stride] -- The number of typed-array elements per vertex.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array array]</h3>
+		<p>
+			 A typed array with a shared buffer. Stores the geometry data.
+		</p>
+
+		<h3>[property:Integer stride]</h3>
+		<p>
+			The number of typed-array elements per vertex.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+		Gives the total number of elements in the array.
+		</p>
+
+		<h3>[property:Boolean dynamic]</h3>
+		<p>
+		Default is *false*.
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>
+		Object containing offset and count.
+		</p>
+
+		<h3>[property:Number updateRange.offset]</h3>
+		<p>
+		Default is *0*.
+		</p>
+
+		<h3>[property:Number updateRange.count]</h3>
+		<p>
+		Default is *-1*.
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+		A version number, incremented every time the needsUpdate property is set to true.
+		</p>
+
+		<h3>[property:Integer isInterleavedBuffer]</h3>
+		<p>
+		Default is *true*.
+		</p>
+
+		<h3>[property:Integer needsUpdate]</h3>
+		<p>
+		Default is *false*. Setting this to true increments [page:InterleavedBuffer.version version].
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<p>
+		 array - must be  a Typed Array.
+		</p>
+
+		<h3>[method:InterleavedBuffer setDynamic] ( [param:Boolean value] ) </h3>
+		<p>
+			Set [page:InterleavedBuffer.dynamic dynamic] to value.
+		</p>
+
+		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
+		<p>
+		 Copies another [name] to this [name].
+		</p>
+
+		<h3>[method:InterleavedBuffer copyAt]( [param:Integer index1], [param:InterleavedBuffer attribute], [param:Integer index2] ) </h3>
+		<p>Copies data from attribute[index2] to [page:InterleavedBuffer.array array][index1].</p>
+
+		<h3>[method:InterleavedBuffer set]( [param:TypedArray value], [param:Integer offset] ) </h3>
+		<p>
+			value - The source (typed) array.<br/>
+			offset - The offset into the target array at which to begin writing values from the source array. Default is *0*.<br/><br />
+
+			Stores multiple values in the buffer, reading input values from a specified array.
+		</p>
+
+		<h3>[method:InterleavedBuffer clone]() </h3>
+		<p>
+			Creates a clone of this [name].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 104 - 0
docs/api/zh/core/InterleavedBufferAttribute.html

@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:InterleavedBuffer interleavedBuffer], [param:Integer itemSize], [param:Integer offset], [param:Boolean normalized] )</h3>
+		<p>
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:InterleavedBuffer data]</h3>
+		<p>
+			The [page:InterleavedBuffer InterleavedBuffer] instance passed in the constructor.
+		</p>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>
+			The value of [page:InterleavedBufferAttribute.data data].array.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The value of [page:InterleavedBufferAttribute.data data].count.
+
+			If the buffer is storing a 3-component item (such as a position, normal, or color),
+			then this will count the number of such items stored.
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>
+			How many values make up each item.
+		</p>
+
+		<h3>[property:Integer offset]</h3>
+		<p>
+			The offset in the underlying array buffer where an item starts.
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+			Default is *true*.
+		</p>
+
+		<h3>[property:Boolean isInterleavedBufferAttribute]</h3>
+		<p>
+			Default is *true*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Number getX]( [param:Integer index] ) </h3>
+		<p>Returns the x component of the item at the given index.</p>
+
+		<h3>[method:Number getY]( [param:Integer index] ) </h3>
+		<p>Returns the y component of the item at the given index.</p>
+
+		<h3>[method:Number getZ]( [param:Integer index] ) </h3>
+		<p>Returns the z component of the item at the given index.</p>
+
+		<h3>[method:Number getW]( [param:Integer index] ) </h3>
+		<p>Returns the w component of the item at the given index.</p>
+
+		<h3>[method:null setX]( [param:Integer index], [param:Float x] ) </h3>
+		<p>Sets the x component of the item at the given index.</p>
+
+		<h3>[method:null setY]( [param:Integer index], [param:Float y] ) </h3>
+		<p>Sets the y component of the item at the given index.</p>
+
+		<h3>[method:null setZ]( [param:Integer index], [param:Float z] ) </h3>
+		<p>Sets the z component of the item at the given index.</p>
+
+		<h3>[method:null setW]( [param:Integer index], [param:Float w] ) </h3>
+		<p>Sets the w component of the item at the given index.</p>
+
+		<h3>[method:null setXY]( [param:Integer index], [param:Float x], [param:Float y] ) </h3>
+		<p>Sets the x and y components of the item at the given index.</p>
+
+		<h3>[method:null setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] ) </h3>
+		<p>Sets the x, y and z components of the item at the given index.</p>
+
+		<h3>[method:null setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] ) </h3>
+		<p>Sets the x, y, z and w components of the item at the given index.</p>
+
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 82 - 0
docs/api/zh/core/Layers.html

@@ -0,0 +1,82 @@
+<!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 [page:Layers] object assigns an [page:Object3D] to 1 or more of 32 layers numbered 0 to 31
+			- internally the layers are stored as a [link:https://en.wikipedia.org/wiki/Mask_(computing) bit mask], and by default all
+			Object3Ds are a member of layer 0.<br /><br />
+
+			This can be used to control visibility - an object must share a layer with a [page:Camera camera] to be visible when that camera's
+			view is renderered.<br /><br />
+
+			All classes that inherit from [page:Object3D] have an [page:Object3D.layers] property which is an instance of this class.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+			Create a new Layers object, with membership initially set to layer 0.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Integer mask]</h3>
+		<p>
+			A bit mask storing which of the 32 layers this layers object is currently a member of.
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null disable]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Remove membership of this *layer*.
+		</p>
+
+		<h3>[method:null enable]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Add membership of this *layer*.
+		</p>
+
+		<h3>[method:null set]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Set membership to *layer*, and remove membership all other layers.
+		</p>
+
+		<h3>[method:Boolean test]( [param:Layers layers] )</h3>
+		<p>
+			layers - a Layers object<br /><br />
+
+			Returns true if this and the passed *layers* object are members of the same set of layers.
+		</p>
+
+		<h3>[method:null toggle]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Toggle membership of *layer*.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 438 - 0
docs/api/zh/core/Object3D.html

@@ -0,0 +1,438 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+			This is the base class for most objects in three.js and provides a set of properties and methods
+			for manipulating objects in 3D space.<br /><br />
+
+			Note that this can be used for grouping objects via the [page:.add]( object ) method
+			which adds the object as a child, however it is better to use [page:Group] for this.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		The constructor takes no arguments.
+		</p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Boolean castShadow]</h3>
+		<p>Whether the object gets rendered into shadow map. Default is *false*.</p>
+
+		<h3>[property:Object3D children]</h3>
+		<p>Array with object's children. See [page:Group] for info on manually grouping objects.</p>
+
+		<h3>[property:Boolean frustumCulled]</h3>
+		<p>
+		When this is set, it checks every frame if the object is in the frustum of the camera before rendering the object.
+		Otherwise the object gets rendered every frame even if it isn't visible. Default is *true*.
+		</p>
+
+		<h3>[property:Integer id]</h3>
+		<p>readonly – Unique number for this object instance.</p>
+
+		<h3>[property:Boolean isObject3D]</h3>
+		<p>
+			Used to check whether this or derived classes are Object3Ds. Default is *true*.<br /><br />
+
+			You should not change this, as it is used internally for optimisation.
+		</p>
+
+		<h3>[property:Layers layers]</h3>
+		<p>
+		The layer membership of the object. The object is only visible if it has at least one
+		layer in common with the [page:Camera] in use.
+		</p>
+
+		<h3>[property:Matrix4 matrix]</h3>
+		<p>The local transform matrix.</p>
+
+		<h3>[property:Boolean matrixAutoUpdate]</h3>
+		<p>
+		When this is set, it calculates the matrix of position, (rotation or quaternion) and
+		scale every frame and also recalculates the matrixWorld property. Default is [page:Object3D.DefaultMatrixAutoUpdate] (true).
+		</p>
+
+		<h3>[property:Matrix4 matrixWorld]</h3>
+		<p>
+		The global transform of the object. If the Object3D has no parent, then it's identical to
+		the local transform [page:.matrix].
+		</p>
+
+		<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
+		<p>
+		When this is set, it calculates the matrixWorld in that frame and resets this property
+		 to false. Default is *false*.
+		</p>
+
+		<h3>[property:Matrix4 modelViewMatrix]</h3>
+		<p>This is passed to the shader and used to calculate the position of the object.</p>
+
+		<h3>[property:String name]</h3>
+		<p>Optional name of the object (doesn't need to be unique). Default is an empty string.</p>
+
+		<h3>[property:Matrix3 normalMatrix]</h3>
+		<p>
+		This is passed to the shader and used to calculate lighting for the object. It is the transpose of the inverse of the upper left 3x3 sub-matrix of this object's modelViewMatrix.<br /><br />
+
+		The reason for this special matrix is that simply using the modelViewMatrix could result in a non-unit length of normals (on scaling) or in a non-perpendicular direction (on non-uniform scaling).<br /><br />
+
+		On the other hand the translation part of the modelViewMatrix is not relevant for the calculation of normals. Thus a Matrix3 is sufficient.
+		</p>
+
+		<h3>[property:function onAfterRender]</h3>
+		<p>
+		An optional callback that is executed immediately after the Object3D is rendered.
+		This function is called with the following parameters: renderer, scene, camera, geometry,
+		material, group.
+		</p>
+
+		<h3>[property:function onBeforeRender]</h3>
+		<p>
+		An optional callback that is executed immediately before the Object3D is rendered.
+		This function is called with the following parameters: renderer, scene, camera, geometry,
+		material, group.
+		</p>
+
+		<h3>[property:Object3D parent]</h3>
+		<p>Object's parent in the [link:https://en.wikipedia.org/wiki/Scene_graph scene graph]. An object can have at most
+		one parent.</p>
+
+		<h3>[property:Vector3 position]</h3>
+		<p>A [page:Vector3] representing the object's local position. Default is (0, 0, 0).</p>
+
+		<h3>[property:Quaternion quaternion]</h3>
+		<p>Object's local rotation as a [page:Quaternion Quaternion].</p>
+
+		<h3>[property:Boolean receiveShadow]</h3>
+		<p>Whether the material receives shadows. Default is *false*.</p>
+
+		<h3>[property:Number renderOrder]</h3>
+		<p>
+		This value allows the default rendering order of [link:https://en.wikipedia.org/wiki/Scene_graph scene graph]
+		objects to be overridden although opaque and transparent objects remain sorted independently.
+		Sorting is from lowest to highest renderOrder. Default value is *0*.
+		</p>
+
+		<h3>[property:Euler rotation]</h3>
+		<p>
+		Object's local rotation (see [link:https://en.wikipedia.org/wiki/Euler_angles Euler angles]), in radians.
+		</p>
+
+		<h3>[property:Vector3 scale]</h3>
+		<p>
+		The object's local scale. Default is [page:Vector3]( 1, 1, 1 ).
+		</p>
+
+		<h3>[property:Vector3 up]</h3>
+		<p>
+		This is used by the [page:.lookAt lookAt] method, for example, to determine the orientation of the result.<br />
+		Default is [page:Object3D.DefaultUp] - that is, ( 0, 1, 0 ).
+		</p>
+
+		<h3>[property:object userData]</h3>
+		<p>
+		An object that can be used to store custom data about the Object3D. It should not hold
+		references to functions as these will not be cloned.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this object instance.
+		This gets automatically assigned, so this shouldn't be edited.
+		</p>
+
+		<h3>[property:Boolean visible]</h3>
+		<p>Object gets rendered if *true*. Default is *true*.</p>
+
+
+
+
+		<h2>Static Properties</h2>
+		<p>
+			Static properties and methods are defined per class rather than per instance of that class.
+			This means that changing [page:Object3D.DefaultUp] or [page:Object3D.DefaultMatrixAutoUpdate]
+			will change the values of [page:.up up] and [page:.matrixAutoUpdate matrixAutoUpdate] for
+			<em>every</em>	instance of Object3D (or derived classes)	created after the change has
+			been made (already created Object3Ds will not be affected).
+		</p>
+
+		<h3>[property:Vector3 DefaultUp]</h3>
+		<p>
+			The default [page:.up up] direction for objects, also used as the default position for [page:DirectionalLight],
+			[page:HemisphereLight] and [page:Spotlight] (which creates lights shining from the top down).<br />
+			Set to ( 0, 1, 0 ) by default.
+		</p>
+
+		<h3>[property:Vector3 DefaultMatrixAutoUpdate]</h3>
+		<p>
+			The default setting for [page:.matrixAutoUpdate matrixAutoUpdate] for newly created Object3Ds.<br />
+
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
+
+		<h3>[method:null add]( [param:Object3D object], ... )</h3>
+		<p>
+		Adds *object* as child of this object. An arbitrary number of objects may be added. Any current parent on an
+		object passed in here will be removed, since an object can have at most one parent.<br /><br />
+
+		See [page:Group] for info on manually grouping objects.
+		</p>
+
+		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<p>Applies the matrix transform to the object and updates the object's position, rotation and scale.</p>
+
+		<h3>[method:Object3D applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<p>Applies the rotation represented by the quaternion to the object.</p>
+
+		<h3>[method:Object3D clone]( [param:Boolean recursive] )</h3>
+		<p>
+		recursive -- if true, descendants of the object are also cloned. Default is true.<br /><br />
+
+		Returns a clone of this object and optionally all descendants.
+		</p>
+
+		<h3>[method:this copy]( [param:Object3D object], [param:Boolean recursive] )</h3>
+		<p>
+		recursive -- if true, descendants of the object are also copied. Default is true.<br /><br />
+
+		Copy the given object into this object.
+		</p>
+
+		<h3>[method:Object3D getObjectById]( [param:Integer id] )</h3>
+		<p>
+		id -- Unique number of the object instance<br /><br />
+
+		Searches through the object's children and returns the first with a matching id.<br />
+		Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.
+		</p>
+
+		<h3>[method:Object3D getObjectByName]( [param:String name] )</h3>
+		<p>
+		name -- String to match to the children's Object3D.name property. <br /><br />
+
+		Searches through the object's children and returns the first with a matching name.<br />
+		Note that for most objects the name is an empty string by default. You will
+		have to set it manually to make use of this method.
+		</p>
+
+		<h3>[method:Object3D getObjectByProperty]( [param:String name], [param:Float value] )</h3>
+		<p>
+		name -- the property name to search for. <br />
+		value -- value of the given property. <br /><br />
+
+		Searches through the object's children and returns the first with a property that matches the value given.
+		</p>
+
+		<h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — the result will be copied into this Vector3. <br /><br />
+
+		Returns a vector representing the position of the object in world space.
+		</p>
+
+		<h3>[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )</h3>
+		<p>
+		[page:Quaternion target] — the result will be copied into this Quaternion. <br /><br />
+
+		Returns a quaternion representing the rotation of the object in world space.
+		</p>
+
+		<h3>[method:Vector3 getWorldScale]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — the result will be copied into this Vector3. <br /><br />
+
+		Returns a vector of the scaling factors applied to the object for each axis in world space.
+		</p>
+
+		<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — the result will be copied into this Vector3. <br /><br />
+
+		Returns a vector representing the direction of object's positive z-axis in world space.
+		</p>
+
+
+		<h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3>
+		<p>
+		vector - A vector representing a position in local (object) space.<br /><br />
+
+		Converts the vector from local space to world space.
+		</p>
+
+		<h3>[method:null lookAt]( [param:Vector3 vector] )</br>
+		[method:null lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		vector - A vector representing a position in world space.<br /><br />
+		Optionally, the [page:.x x], [page:.y y] and [page:.z z] components of the world space position.<br /><br />
+
+		Rotates the object to face a point in world space.<br /><br />
+
+		This method does not support objects with rotated and/or translated parent(s).
+		</p>
+
+		<h3>[method:Array raycast]( [param:Raycaster raycaster], [param:Array intersects] )</h3>
+		<p>
+		Abstract (empty) method to get intersections between a casted ray and this object.
+		Subclasses such as [page:Mesh], [page:Line], and [page:Points] implement this method in order
+		to use raycasting.
+		</p>
+
+		<h3>[method:null remove]( [param:Object3D object], ... )</h3>
+		<p>
+		Removes *object* as child of this object. An arbitrary number of objects may be removed.
+		</p>
+
+		<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+		axis -- A normalized vector in object space. <br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate an object along an axis in object space. The axis is assumed to be normalized.
+		</p>
+
+		<h3>[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+		axis -- A normalized vector in world space. <br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate an object along an axis in world space. The axis is assumed to be normalized.
+		Method Assumes no rotated parent.
+		</p>
+
+		<h3>[method:this rotateX]( [param:Float rad] )</h3>
+		<p>
+		rad - the angle to rotate in radians.<br /><br />
+
+		Rotates the object around x axis in local space.
+		</p>
+
+		<h3>[method:this rotateY]( [param:Float rad] )</h3>
+		<p>
+		rad - the angle to rotate in radians.<br /><br />
+
+		Rotates the object around y axis in local space.
+		</p>
+
+		<h3>[method:this rotateZ]( [param:Float rad] )</h3>
+		<p>
+		rad - the angle to rotate in radians.<br /><br />
+
+		Rotates the object around z axis in local space.
+		</p>
+
+		<h3>[method:null setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+			axis -- A normalized vector in object space. <br />
+			angle -- angle in radians<br /><br />
+
+			Calls [page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] )
+			on the [page:.quaternion].
+		</p>
+
+		<h3>[method:null setRotationFromEuler]( [param:Euler euler] )</h3>
+		<p>
+			euler -- Euler angle specifying rotation amount.<br />
+
+			Calls [page:Quaternion.setRotationFromEuler setRotationFromEuler]( [page:Euler euler])
+			on the [page:.quaternion].
+		</p>
+
+		<h3>[method:null setRotationFromMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+			m -- rotate the quaternion by the rotation component of the matrix.<br />
+
+			Calls [page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m])
+			on the [page:.quaternion].<br /><br />
+
+			Note that this assumes that the upper 3x3 of m is a pure rotation matrix (i.e, unscaled).
+		</p>
+
+		<h3>[method:null setRotationFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+			q -- normalized Quaternion.<br /><br />
+
+			Copy the given quaternion into [page:.quaternion].
+		</p>
+
+		<h3>[method:null toJSON]( [param:Quaternion q] )</h3>
+		<p>
+			Convert the object to JSON format.
+		</p>
+
+		<h3>[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )</h3>
+		<p>
+		axis -- A normalized vector in object space.<br />
+		distance -- The distance to translate.<br /><br />
+
+		Translate an object by distance along an axis in object space. The axis is assumed to be normalized.
+		</p>
+
+		<h3>[method:this translateX]( [param:Float distance] )</h3>
+		<p>Translates object along x axis in object space by *distance* units.</p>
+
+		<h3>[method:this translateY]( [param:Float distance] )</h3>
+		<p>Translates object along y axis in object space by *distance* units.</p>
+
+		<h3>[method:this translateZ]( [param:Float distance] )</h3>
+		<p>Translates object along z axis in object space by *distance* units.</p>
+
+		<h3>[method:null traverse]( [param:Function callback] )</h3>
+		<p>
+		callback - A function with as first argument an object3D object.<br /><br />
+
+		Executes the callback on this object and all descendants.
+		</p>
+
+		<h3>[method:null traverseVisible]( [param:Function callback] )</h3>
+		<p>
+		callback - A function with as first argument an object3D object.<br /><br />
+
+		Like traverse, but the callback will only be executed for visible objects.
+		Descendants of invisible objects are not traversed.
+		</p>
+
+		<h3>[method:null traverseAncestors]( [param:Function callback] )</h3>
+		<p>
+		callback - A function with as first argument an object3D object.<br /><br />
+
+		Executes the callback on all ancestors.
+		</p>
+
+		<h3>[method:null updateMatrix]()</h3>
+		<p>Update the local transform.</p>
+
+		<h3>[method:null updateMatrixWorld]( [param:Boolean force] )</h3>
+		<p>Update the global transform of the object and its children.</p>
+
+
+		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
+		<p>
+		vector - A world vector.<br /><br />
+
+		Updates the vector from world space to local space.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 189 - 0
docs/api/zh/core/Raycaster.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+		This class is designed to assist with [link:https://en.wikipedia.org/wiki/Ray_casting raycasting].
+		Raycasting is used for mouse picking (working out what objects in the 3d space the mouse is over) amongst
+		other things.
+		</p>
+
+		<h2>Example</h2>
+		<code>
+		var raycaster = new THREE.Raycaster();
+		var mouse = new THREE.Vector2();
+
+		function onMouseMove( event ) {
+
+			// calculate mouse position in normalized device coordinates
+			// (-1 to +1) for both components
+
+			mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+			mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+
+		}
+
+		function render() {
+
+			// update the picking ray with the camera and mouse position
+			raycaster.setFromCamera( mouse, camera );
+
+			// calculate objects intersecting the picking ray
+			var intersects = raycaster.intersectObjects( scene.children );
+
+			for ( var i = 0; i < intersects.length; i++ ) {
+
+				intersects[ i ].object.material.color.set( 0xff0000 );
+
+			}
+
+			renderer.render( scene, camera );
+
+		}
+
+		window.addEventListener( 'mousemove', onMouseMove, false );
+
+		window.requestAnimationFrame(render);
+
+		</code>
+		<div>
+			Examples: [example:webgl_interactive_cubes Raycasting to a Mesh]<br />
+			[example:webgl_interactive_cubes_ortho Raycasting to a Mesh in using an OrthographicCamera]<br />
+			[example:webgl_interactive_buffergeometry Raycasting to a Mesh with BufferGeometry]<br />
+			[example:webgl_interactive_lines Raycasting to a Line]<br />
+			[example:webgl_interactive_raycasting_points Raycasting to Points]<br />
+			[example:webgl_geometry_terrain_raycast Terrain raycasting]<br />
+			[example:webgl_octree_raycasting Raycasting using an octree]<br />
+			[example:webgl_interactive_voxelpainter Raycasting to paint voxels]<br />
+			[example:webgl_raycast_texture Raycast to a Texture]
+		</div>
+
+
+		<p>
+		</p>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction], [param:Float near], [param:Float far] ) {</h3>
+		<p>
+		[page:Vector3 origin] — The origin vector where the ray casts from.<br />
+		[page:Vector3 direction] — The direction vector that gives direction to the ray. Should be normalized.<br />
+		[page:Float near] — All results returned are further away than near. Near can't be negative. Default value is 0.<br />
+		[page:Float far] — All results returned are closer than far. Far can't be lower than near. Default value is Infinity.
+		</p>
+		<p>
+		This creates a new raycaster object.<br />
+		</p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:float far]</h3>
+		<p>
+		The far factor of the raycaster. This value indicates which objects can be discarded based on the distance.
+		This value shouldn't be negative and should be larger than the near property.
+		</p>
+
+		<h3>[property:float linePrecision]</h3>
+		<p>
+		The precision factor of the raycaster when intersecting [page:Line] objects.
+		</p>
+
+		<h3>[property:float near]</h3>
+		<p>
+		The near factor of the raycaster. This value indicates which objects can be discarded based on the distance.
+		This value shouldn't be negative and should be smaller than the far property.
+		</p>
+
+		<h3>[property:Object params]</h3>
+		<p>
+		An object with the following properties:
+
+			<code>
+{
+	Mesh: {},
+	Line: {},
+	LOD: {},
+	Points: { threshold: 1 },
+	Sprite: {}
+}
+			</code>
+
+		</p>
+
+		<h3>[property:Ray ray]</h3>
+		<p>The [Page:Ray] used for the raycasting.</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null set]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 origin] — The origin vector where the ray casts from.<br />
+		[page:Vector3 direction] — The normalized direction vector that gives direction to the ray.
+		</p>
+		<p>
+		Updates the ray with a new origin and direction.
+		</p>
+
+		<h3>[method:null setFromCamera]( [param:Vector2 coords], [param:Camera camera] )</h3>
+		<p>
+		[page:Vector2 coords] — 2D coordinates of the mouse, in normalized device coordinates (NDC)---X and Y components should be between -1 and 1.<br />
+		[page:Camera camera] — camera from which the ray should originate
+		</p>
+		<p>
+		Updates the ray with a new origin and direction.
+		</p>
+
+		<h3>[method:Array intersectObject]( [param:Object3D object], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+		[page:Object3D object] — The object to check for intersection with the ray.<br />
+		[page:Boolean recursive] — If true, it also checks all descendants. Otherwise it only checks intersecton with the object. Default is false.<br />
+		[page:Array optionalTarget] — (optional) target to set the result. Otherwise a new [page:Array] is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
+		</p>
+		<p>
+		Checks all intersection between the ray and the object with or without the descendants. Intersections are returned sorted by distance, closest first. An array of intersections is returned...
+		</p>
+		<code>
+				[ { distance, point, face, faceIndex, object }, ... ]
+		</code>
+		<p>
+			[page:Float distance] – distance between the origin of the ray and the intersection<br />
+			[page:Vector3 point] – point of intersection, in world coordinates<br />
+			[page:Face3 face] – intersected face<br />
+			[page:Integer faceIndex] – index of the intersected face<br />
+			[page:Object3D object] – the intersected object<br />
+			[page:Vector2 uv] - U,V coordinates at point of intersection
+		</p>
+		<p>
+		*Raycaster* delegates to the [page:Object3D.raycast raycast] method of the passed object, when evaluating whether the ray intersects the object or not. This allows [page:Mesh meshes] to respond differently to ray casting than [page:Line lines] and [page:Points pointclouds].
+		</p>
+		<p>
+		*Note* that for meshes, faces must be pointed towards the origin of the [page:.ray ray] in order to be detected; intersections of the ray passing through the back of a face will not be detected. To raycast against both faces of an object, you'll want to set the [page:Mesh.material material]'s [page:Material.side side] property to *THREE.DoubleSide*.
+		</p>
+
+		<h3>[method:Array intersectObjects]( [param:Array objects], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+		[page:Array objects] — The objects to check for intersection with the ray.<br />
+		[page:Boolean recursive] — If true, it also checks all descendants of the objects. Otherwise it only checks intersecton with the objects. Default is false.<br />
+		[page:Array optionalTarget] — (optional) target to set the result. Otherwise a new [page:Array] is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
+		</p>
+		<p>
+		Checks all intersection between the ray and the objects with or without the descendants. Intersections are returned sorted by distance, closest first. Intersections are of the same form as those returned by [page:.intersectObject].
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 213 - 0
docs/api/zh/core/Uniform.html

@@ -0,0 +1,213 @@
+<!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">Uniforms are global [link:https://www.opengl.org/documentation/glsl/ GLSL] variables. They are passed to shader programs.
+		</p>
+
+		<h3>Example</h3>
+		<p>
+		When declaring a uniform of a [page:ShaderMaterial], it is declared by value or by object.
+		</p>
+		<code>
+		uniforms: {
+			time: { value: 1.0 },
+			resolution: new THREE.Uniform(new THREE.Vector2())
+		}
+		</code>
+
+		<h3>Uniform types</h3>
+
+		<p>
+		Each uniform must have a *value* property. The type of the value must correspond to the
+		type of the uniform variable in the GLSL code as specified for the primitive GLSL types
+		in the table below. Uniform structures and arrays are also supported. GLSL arrays of primitive
+		type must either be specified as an array of the corresponding THREE objects or as a flat
+		array containing the data of all the objects. In other words; GLSL primitives in arrays
+		must not be represented by arrays. This rule does not apply transitively.
+		An array of *vec2* arrays, each with a length of five vectors, must be an array of arrays,
+		of either five [page:Vector2] objects or ten *number*s.
+		</p>
+		<table>
+			<caption><a id="uniform-types">Uniform types</a></caption>
+			<thead>
+				<tr>
+					<th>GLSL type</th>
+					<th>JavaScript type</th>
+				</tr>
+			</thead>
+			<tbody>
+
+				<tr>
+					<td>int</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>float</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Boolean]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Number]</td>
+				</tr>
+
+				<tr>
+					<td>vec2</td>
+					<td>[page:Vector2 THREE.Vector2]</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Vector3 THREE.Vector3]</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Color THREE.Color]</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Vector4 THREE.Vector4]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Quaternion THREE.Quaternion]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>mat2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Matrix3 THREE.Matrix3]</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Matrix3 THREE.Matrix4]</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>sampler2D</td>
+					<td>[page:Texture THREE.Texture]</td>
+				</tr>
+				<tr>
+					<td>samplerCube</td>
+					<td>[page:CubeTexture THREE.CubeTexture]</td>
+				</tr>
+
+			</tbody>
+		</table>
+
+		<p>
+		(*) Same for an (innermost) array (dimension) of the same GLSL type, containing the components of all vectors or matrices in the array.
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Object value] )</h3>
+		<p>
+		value -- An object containing the value to set up the uniform. It's type must be one of the Uniform Types described above.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object value]</h3>
+		<p>
+		Current value of the uniform.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Uniform clone]()</h3>
+		<p>
+		Returns a clone of this uniform.<br />
+		If the uniform's value property is an [page:Object] with a clone() method, this is used, otherwise the value is copied by assigment.
+		Array values are shared between cloned [page:Uniform]s.<br /><br />
+		See [example:webgldeferred_animation WebGL deferred animation] for an example of this method in use.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 56 - 0
docs/api/zh/core/bufferAttributeTypes/BufferAttributeTypes.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:BufferAttribute] &rarr;
+
+		<h1>BufferAttribute Types</h1>
+
+		<p class="desc">
+		There are nine types of [page:BufferAttribute] available in three.js. These correspond to the JavaScript
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#Syntax Typed Arrays].
+		</p>
+
+		<code>
+		THREE.Float64BufferAttribute
+		THREE.Float32BufferAttribute
+		THREE.Uint32BufferAttribute
+		THREE.Int32BufferAttribute
+		THREE.Uint16BufferAttribute
+		THREE.Int16BufferAttribute
+		THREE.Uint8ClampedBufferAttribute
+		THREE.Uint8BufferAttribute
+		THREE.Int8BufferAttribute
+		</code>
+
+		<h2>Constructor</h2>
+
+		All of the above are called in the same way.
+		<h3>TypedBufferAttribute( [param:Array array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<p>
+			array -- this can be a typed or untyped (normal) array. It will be converted to the Type specified.<br /><br />
+
+			itemSize -- the number of values of the array that should be associated with a particular vertex.<br /><br />
+
+			normalized -- (optional) indicates how the underlying data in the buffer maps to the values in the GLSL code.
+		</p>
+
+		<h2>Properties</h2>
+
+		See the [page:BufferAttribute] page for inherited properties.
+
+		<h2>Methods</h2>
+
+		See the [page:BufferAttribute] page for inherited methods.
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/core/BufferAttribute.js src/core/BufferAttribute.js]
+	</body>
+</html>

+ 607 - 0
docs/api/zh/deprecated/DeprecatedList.html

@@ -0,0 +1,607 @@
+<!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>已被弃用API列表(Deprecated API List)</h1>
+
+		<p>
+			由于three.js具有一个快速发展的接口,你可能会遇上类似“提示你当前所调用的API元素不再是Three.js核心的一部分”的提示。<br /><br />
+			下面就列举出了这些API元素,以及一些关于他们的替代信息。
+		</p>
+
+		
+		
+		
+		
+		<h2>音频(Audio)</h2>
+
+		<h3>[page:Audio]</h3>
+		<p>Audio.load 已被弃用。 请使用 [page:AudioLoader]。</p>
+
+		<h3>[page:AudioAnalyser]</h3>
+		<p>AudioAnalyser.getData() 已被重命名为 [page:AudioAnalyser.getFrequencyData]()。</p>
+
+		<h3>[page:BinaryTextureLoader]</h3>
+		<p>BinaryTextureLoader 已被重命名为 [page:DataTextureLoader]。</p>
+
+
+		
+		
+		
+		<h2>缓冲器(Buffers)</h2>
+
+		<h3>[page:BufferAttribute]</h3>
+		<p>BufferAttribute.length 已被重命名为 [page:BufferAttribute.count]。</p>
+		<p>BufferAttribute.copyIndicesArray() 已被删除。</p>
+
+
+		<h3>[page:DynamicBufferAttribute]</h3>
+		<p>DynamicBufferAttribute 已被删除。 请使用[page:BufferAttribute.setDynamic]( true )。</p>
+
+		<h3>[page:Int8Attribute]</h3>
+		<p>Int8Attribute 已被删除。 请使用[page:BufferAttributeTypes Int8BufferAttribute]。</p>
+
+		<h3>[page:Uint8Attribute]</h3>
+		<p>Uint8Attribute 已被删除。 请使用[page:BufferAttributeTypes Uint8BufferAttribute]。</p>
+
+		<h3>[page:Uint8ClampedAttribute]</h3>
+		<p>Uint8ClampedAttribute 已被删除。 请使用[page:BufferAttributeTypes Uint8ClampedBufferAttribute]。</p>
+
+		<h3>[page:Int16Attribute]</h3>
+		<p>Int16Attribute 已被删除。 请使用[page:BufferAttributeTypes Int16BufferAttribute]。</p>
+
+		<h3>[page:Uint16Attribute]</h3>
+		<p>Uint16Attribute 已被删除。 请使用[page:BufferAttributeTypes Uint16BufferAttribute]。</p>
+
+		<h3>[page:Int32Attribute]</h3>
+		<p>Int32Attribute 已被删除。 请使用[page:BufferAttributeTypes Int32BufferAttribute]。</p>
+
+		<h3>[page:Uint32Attribute]</h3>
+		<p>Uint32Attribute 已被删除。 请使用[page:BufferAttributeTypes Uint32BufferAttribute]。</p>
+
+		<h3>[page:Float32Attribute]</h3>
+		<p>Float32Attribute 已被删除。 请使用[page:BufferAttributeTypes Float32BufferAttribute]。</p>
+
+		<h3>[page:Float64Attribute]</h3>
+		<p>Float64Attribute 已被删除。 请使用[page:BufferAttributeTypes Float64BufferAttribute]。</p>
+
+
+
+
+
+
+
+		<h2>摄像机(Cameras)</h2>
+
+		<h3>[page:PerspectiveCamera]</h3>
+		<p>
+		PerspectiveCamera.setLens() 已被弃用。 请使用[page:PerspectiveCamera.setFocalLength]()
+		 和 [page:PerspectiveCamera.filmGauge]() 来对摄像机拍摄进行设置。
+		</p>
+
+
+
+
+
+
+
+		<h2>常量(Constants)</h2>
+
+		<h3>[page:LineStrip]</h3>
+
+		<h3>[page:LinePieces]</h3>
+		<p>
+		LinePieces mode 已经不再对 [page:Line]s 进行支持。 请创建一个 [page:LineSegments] 。
+		</p>
+
+
+
+
+
+		<h2>核心(Core)</h2>
+
+		<h3>[page:EventDispatcher]</h3>
+		<p>EventDispatcher.apply 已被删除。 请继承或者Object.assign其原型来“混合”。Inherit or Object.assign the prototype to mix-in。</p>
+
+		<h3>[page:Raycaster]</h3>
+		<p>Raycaster.params.PointCloud 已被重命名为 [page:Raycaster.params.Points]。</p>
+
+
+		<h3>[page:Uniform]</h3>
+		<p>
+			Uniform.dynamic 已被删除。 请使用object.onBeforeRender()。<br /><br />
+
+			Uniform.onUpdate 已被删除。 请使用object.onBeforeRender() 。
+		</p>
+
+
+
+
+
+
+		<h2>附件(Extras)</h2>
+
+		<h3>[page:ClosedSplineCurve3]</h3>
+		<p>ClosedSplineCurve3 已被弃用。 请使用[page:CatmullRomCurve3]。</p>
+
+		<h3>[page:SplineCurve3]</h3>
+		<p>SplineCurve3 已被弃用。 请使用[page:CatmullRomCurve3]。</p>
+
+
+
+
+
+
+
+		<h2>几何体(Geometry)</h2>
+
+		<p>
+			Geometry.computeTangents() 已被删除。<br /><br />
+
+			Geometry.computeLineDistances() 已被删除。 请使用[page:Line.computeLineDistances]。<br /><br />
+		</p>
+
+		<h3>[page:BufferGeometry]</h3>
+		<p>
+			BufferGeometry.addIndex 已被重命名为 [page:BufferGeometry.setIndex]。<br /><br />
+
+			BufferGeometry.addDrawCall 现在是 [page:BufferGeometry.addGroup]。<br /><br />
+
+			BufferGeometry.clearDrawCalls 现在是 [page:BufferGeometry.clearGroups]。<br /><br />
+
+			BufferGeometry.computeTangents 已被删除。<br /><br />
+
+			BufferGeometry.computeOffsets 已被删除。<br /><br />
+
+			BufferGeometry.drawcalls 已被重命名为 [page:BufferGeometry.groups]。<br /><br />
+
+			BufferGeometry.offsets 已被重命名为 [page:BufferGeometry.groups]。<br /><br />
+
+		</p>
+
+		<h3>[page:CubeGeometry]</h3>
+		<p>CubeGeometry 已被重命名为 [page:BoxGeometry]。</p>
+
+		<h3>[page:Geometry]</h3>
+		<p>Geometry.computeTangents() 已被删除。</p>
+
+		<h3>[page:GeometryUtils]</h3>
+		<p>
+			GeometryUtils.merge 已被移动到了 [page:Geometry],请使用[page:Geometry.merge]( geometry2, matrix, materialIndexOffset )。<br /><br />
+
+			GeometryUtils.center 已被移动到了 [page:Geometry],请使用[page:Geometry.center]( ) 。
+		</p>
+
+		<h3>[page:Plane]</h3>
+		<p>
+			Plane.isIntersectionLine() 已被重命名为	[page:Plane.intersectsLine]()。
+		</p>
+
+
+
+
+
+
+
+
+		<h2>辅助工具(Helpers)</h2>
+
+		<h3>[page:BoundingBoxHelper]</h3>
+		<p>BoundingBoxHelper 已被弃用。 请使用[page:BoxHelper]。</p>
+
+		<h3>[page:EdgesHelper]</h3>
+		<p>EdgesHelper 已被删除。 请使用[page:EdgesGeometry]。</p>
+
+		<h3>[page:GridHelper]</h3>
+		<p>GridHelper.setColors() 已被弃用,请在构造器中传递它们。</p>
+
+		<h3>[page:WireframeHelper WireframeHelper]</h3>
+		<p>WireframeHelper 已被删除。 请使用[page:WireframeGeometry]。</p>
+
+
+
+
+		<h2>灯光(Lights)</h2>
+
+		<h3>[page:Light]</h3>
+		<p>
+			Light.onlyShadow 已被删除。<br /><br />
+
+			Light.shadowCameraLeft 现在是 [page:Light.shadow.camera.left]。<br /><br />
+
+			Light.shadowCameraRight 现在是 [page:Light.shadow.camera.right]。<br /><br />
+
+			Light.shadowCameraTop 现在是 [page:Light.shadow.camera.top]。<br /><br />
+
+			Light.shadowCameraBottom 现在是 [page:Light.shadow.camera.bottom]。<br /><br />
+
+			Light.shadowCameraNear 现在是 [page:Light.shadow.camera.near]。<br /><br />
+
+			Light.shadowCameraFar 现在是 [page:Light.shadow.camera.far]。<br /><br />
+
+			Light.shadowCameraVisible 已被删除。 请使用[page:CameraHelper] ( light.shadow.camera )。<br /><br />
+
+			Light.shadowMapWidth 现在是 [page:Light.shadow.mapSize.width]。<br /><br />
+
+			Light.shadowMapHeight 现在是 [page:Light.shadow.mapSize.height]。
+		</p>
+
+
+
+
+
+
+
+
+		<h2>加载器(Loaders)</h2>
+
+		<h3>[page:XHRLoader]</h3>
+		<p>XHRLoader 已被重命名为 [page:FileLoader]。</p>
+
+
+
+
+
+
+
+
+		<h2>数学(Maths)</h2>
+
+		<h3>[page:Box2]</h3>
+		<p>
+			Box2.center 已被重命名为 [page:Box2.getCenter]()。<br /><br />
+
+			Box2.empty 已被重命名为 [page:Box2.isEmpty]()。<br /><br />
+
+			Box2.isIntersectionBox 已被重命名为 [page:Box2.intersectsBox]()。<br /><br />
+
+			Box2.size 已被重命名为 [page:Box2.getSize]()。
+
+		</p>
+
+		<h3>[page:Box3]</h3>
+		<p>
+			Box3.center 已被重命名为 [page:Box3.getCenter]()。<br /><br />
+
+			Box3.empty 已被重命名为 [page:Box3.isEmpty]()。<br /><br />
+
+			Box3.isIntersectionBox 已被重命名为 [page:Box3.intersectsBox]()。<br /><br />
+
+			Box3.isIntersectionSphere 已被重命名为 [page:Box3.intersectsSphere]()。<br /><br />
+
+			Box3.size 已被重命名为 [page:Box3.getSize]()。
+		</p>
+
+		<h3>[page:Face4]</h3>
+		<p>Face4 已被删除。 请使用[page:Face3]。</p>
+
+		<h3>[page:Line3]</h3>
+		<p>Line3.center 已被重命名为 [page:Line3.getCenter]()。</p>
+
+		<h3>[page:Math]</h3>
+		<p>
+			Math.random16() 已被弃用。 请使用Math.random() 。
+		</p>
+
+		<h3>[page:Matrix3]</h3>
+		<p>
+			Matrix3.flattenToArrayOffset 已被弃用。请使用[page:Matrix3.toArray]()。<br /><br />
+
+			Matrix3.multiplyVector3 已被删除。 请使用vector.applyMatrix3( matrix )。<br /><br />
+
+			Matrix3.multiplyVector3Array 已被重命名为 [page:Matrix3.applyToVector3Array]( array )。<br /><br />
+
+			Matrix3.applyToBuffer 已被删除。 请使用matrix.applyToBufferAttribute( attribute )。<br /><br />
+
+			Matrix3.applyToVector3Array 已被删除。
+		<p>
+
+		<h3>[page:Matrix4]</h3>
+		<p>
+			Matrix4.flattenToArrayOffset() 已被弃用。请使用[page:Matrix4.toArray]()。<br /><br />
+
+			Matrix4.extractPosition() 已被重命名为 [page:Matrix4.copyPosition]( matrix )。<br /><br />
+
+			Matrix4.getPosition() 已被删除。 请使用[page:Vector3.setFromMatrixPosition]( matrix )。<br /><br />
+
+			Matrix4.setRotationFromQuaternion() 已被重命名为 [page:Matrix4.makeRotationFromQuaternion]( quaternion )。<br /><br />
+
+			Matrix4.multiplyVector3() 已被删除。 请使用vector.applyMatrix4( matrix )。<br /><br />
+
+			Matrix4.multiplyVector4() 已被删除。 请使用vector.applyMatrix4( matrix )。<br /><br />
+
+			Matrix4.multiplyVector3Array() 已被重命名为 [page:Matrix4.applyToVector3Array] ( array )。<br /><br />
+
+			Matrix4.rotateAxis() 已被删除。 请使用[page:Matrix4.transformDirection]( matrix )。<br /><br />
+
+			Matrix4.crossVector() 已被删除。 请使用vector.applyMatrix4( matrix )。<br /><br />
+
+			Matrix4.rotateX() 已被删除。<br /><br />
+
+			Matrix4.rotateY() 已被删除。<br /><br />
+
+			Matrix4.rotateZ() 已被删除。<br /><br />
+
+			Matrix4.rotateByAxis() 已被删除。<br /><br />
+
+			Matrix4.applyToBuffer() 已被删除。 请使用matrix.applyToBufferAttribute()。<br /><br />
+
+			Matrix4.applyToVector3Array() 已被删除。<br /><br />
+
+			Matrix4.makeFrustum() 已被删除。 请使用[page:Matrix4.makePerspective]( left, right, top, bottom, near, far ) 。
+		</p>
+
+
+		<h3>[page:Quaternion.multiplyVector3]</h3>
+		<p>Quaternion.multiplyVector3() 已被删除。 请使用vector.applyQuaternion( quaternion )。</p>
+
+		<h3>[page:Ray]</h3>
+		<p>
+			Ray.isIntersectionBox() 已被重命名为 [page:Ray.intersectsBox]()。<br /><br />
+
+			Ray.isIntersectionPlane 已被重命名为 [page:Ray.intersectsPlane]。<br /><br />
+
+			Ray.isIntersectionSphere 已被重命名为 [page:Ray.intersectsSphere]。
+		</p>
+
+		<h3>[page:Triangle]</h3>
+		<p>
+			Triangle.area() 已被重命名为 [page:Triangle.getArea]()。<br /><br />
+			Triangle.barycoordFromPoint() 已被重命名为 [page:Triangle.getBarycoord]()。<br /><br />
+			Triangle.midpoint() 已被重命名为 [page:Triangle.getMidpoint]()。<br /><br />
+			Triangle.normal() 已被重命名为 [page:Triangle.getNormal]()。<br /><br />
+			Triangle.plane() 已被重命名为 [page:Triangle.getPlane]()。
+		</p>
+
+		<h3>[page:Vector2]</h3>
+		<p>
+			Vector2.fromAttribute() 已被重命名为 [page:Vector2.fromBufferAttribute]()。
+		</p>
+
+		<h3>[page:Vector3]</h3>
+		<p>
+			Vector3.setEulerFromRotationMatrix() 已被删除。 请使用[page:Euler.setFromRotationMatrix]()。<br /><br />
+
+			Vector3.setEulerFromQuaternion() 已被删除。 请使用[page:Euler.setFromQuaternion]()。<br /><br />
+
+			Vector3.getPositionFromMatrix() 已被重命名为 [page:Vector3.setFromMatrixPosition]()。<br /><br />
+
+			Vector3.getScaleFromMatrix() 已被重命名为 [page:Vector3.setFromMatrixScale]()。<br /><br />
+
+			Vector3.getColumnFromMatrix() 已被重命名为 [page:Vector3.setFromMatrixColumn]()。<br /><br />
+
+			Vector3.applyProjection() 已被删除。 请使用[page:Vector3.applyMatrix4]()。<br /><br />
+
+			Vector3.fromAttribute() 已被重命名为 [page:Vector3.fromBufferAttribute]()。
+		</p>
+
+		<h3>[page:Vector4]</h3>
+		<p>
+			Vector4.fromAttribute() 已被重命名为 [page:Vector4.fromBufferAttribute]().
+		</p>
+
+		<h3>[page:Vertex]</h3>
+		<p>Vertex 已被删除。 请使用[page:Vector3]。</p>
+
+		<h3>[page:Spline]</h3>
+		<p>Spline 已被删除。 请使用[page:CatmullRomCurve3]。</p>
+
+
+
+
+
+
+
+
+
+
+
+
+		<h2>材质(Materials)</h2>
+
+		<h3>[page:Material]</h3>
+		<p>
+			Material.wrapAround 已被删除。<br /><br />
+
+			Material.wrapRGB 已被删除。
+
+		</p>
+
+		<h3>[page:MeshFaceMaterial]</h3>
+		<p>MeshFaceMaterial 已被删除。 请使用一个材质数组。</p>
+
+		<h3>[page:MultiMaterial]</h3>
+		<p>MultiMaterial 已被删除。 请使用一个材质数组。</p>
+
+		<h3>[page:MeshPhongMaterial]</h3>
+		<p>MeshPhongMaterial.metal 已被删除。 请使用[page:MeshStandardMaterial]。</p>
+
+		<h3>[page:ParticleBasicMaterial]</h3>
+		<p>ParticleBasicMaterial 已被重命名为 [page:PointsMaterial]。</p>
+
+		<h3>[page:ParticleSystemMaterial]</h3>
+		<p>ParticleBasicMaterial 已被重命名为 [page:PointsMaterial]。</p>
+
+		<h3>[page:PointCloudMaterial]</h3>
+		<p>PointCloudMaterial 已被重命名为 [page:PointsMaterial]。</p>
+
+		<h3>[page:ShaderMaterial.derivatives]</h3>
+		<p>ShaderMaterial.derivatives 已被移动到了 [page:ShaderMaterial.extensions.derivatives]。</p>
+
+
+
+
+
+
+
+
+		<h2>物体(Objects)</h2>
+
+		<h3>[page:LOD.objects]</h3>
+		<p>LOD.objects 已被重命名为 [page:LOD.levels]。</p>
+
+		<h3>[page:Object3D]</h3>
+		<p>
+			Object3D.eulerOrder 现在是 [page:Object3D.rotation.order]。<br /><br />
+
+			Object3D.getChildByName() 已被重命名为 [page:Object3D.getObjectByName]()。<br /><br />
+
+			Object3D.renderDepth 已被删除。 请使用[page:Object3D.renderOrder]。<br /><br />
+
+			Object3D.translate() 已被删除。 请使用[page:Object3D.translateOnAxis]( axis, distance )。<br /><br />
+
+			Object3D.useQuaternion 已被删除。 默认情况下,Three.js库是使用quaternions(四元数)的。
+		</p>
+
+		<h3>[page:LensFlare]</h3>
+		<p>
+			LensFlare 已被移动到了 [link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/Lensflare.js /examples/js/objects/Lensflare.js].
+		</p>
+
+
+		<h3>[page:Particle]</h3>
+		<p>Particle 已被重命名为 [page:Sprite]。</p>
+
+		<h3>[page:ParticleSystem]</h3>
+		<p>ParticleSystem 已被重命名为 [page:Points]。</p>
+
+		<h3>[page:PointCloud]</h3>
+		<p>PointCloud 已被重命名为 [page:Points]。</p>
+
+		<h3>[page:Shape]</h3>
+		<p>
+			Shape.extrude 已被删除。 请使用[page:ExtrudeGeometry]。<br /><br />
+
+			Shape.makeGeometry 已被删除。 请使用[page:ShapeGeometry] 。
+		</p>
+
+
+
+
+
+
+
+
+		<h2>渲染器(Renderer)</h2>
+
+		<h3>[page:Projector]</h3>
+		<p>
+			CanvasRenderer 已被移动到了 [link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CanvasRenderer.js /examples/js/renderers/CanvasRenderer.js].
+		</p>
+
+		<h3>[page:Projector]</h3>
+		<p>
+			Projector 已被移动到了
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/Projector.js 	/examples/js/renderers/Projector.js]。<br /><br />
+
+			Projector.projectVector() 现在是 [page:Vector.project]()。<br /><br />
+
+			Projector.unprojectVector() 现在是 [page:Vector.unproject]()。<br /><br />
+
+			Projector:.pickingRay() 现在是 [page:Raycaster.setFromCamera]()。
+		</p>
+
+		<h3>[page:WebGLProgram]</h3>
+		<p>
+			WebGLProgram.uniforms 现在是 [page:WebGLProgram.getUniforms]()。<br /><br />
+
+			WebGLProgram.attributes 现在是 [page:WebGLProgram.getAttributes]()。
+		</p>
+
+		<h3>[page:WebGLRenderer]</h3>
+		<p>
+			WebGLRenderer.supportsFloatTextures() 现在是 [page:WebGLRenderer.extensions.get]( 'OES_texture_float' )。<br /><br />
+
+			WebGLRenderer.supportsHalfFloatTextures() 现在是 [page:WebGLRenderer.extensions.get]( 'OES_texture_half_float' )。<br /><br />
+
+			WebGLRenderer.supportsStandardDerivatives() 现在是 [page:WebGLRenderer.extensions.get]( 'OES_standard_derivatives' )。<br /><br />
+
+			WebGLRenderer.supportsCompressedTextureS3TC() 现在是 [page:WebGLRenderer.extensions.get]( 'WEBGL_compressed_texture_s3tc' )。<br /><br />
+
+			WebGLRenderer.supportsCompressedTexturePVRTC() 现在是 [page:WebGLRenderer.extensions.get]( 'WEBGL_compressed_texture_pvrtc' )。<br /><br />
+
+			WebGLRenderer.supportsBlendMinMax() 现在是 [page:WebGLRenderer.extensions.get]( 'EXT_blend_minmax' )。<br /><br />
+
+			WebGLRenderer.supportsVertexTextures() 现在是 [page:WebGLRenderer.capabilities.vertexTextures]。<br /><br />
+
+			WebGLRenderer.supportsInstancedArrays() 现在是 [page:WebGLRenderer.extensions.get]( 'ANGLE_instanced_arrays' )。<br /><br />
+
+			WebGLRenderer.enableScissorTest() 现在是 [page:WebGLRenderer.setScissorTest]()。<br /><br />
+
+			WebGLRenderer.initMaterial() 已被删除。<br /><br />
+
+			WebGLRenderer.addPrePlugin() 已被删除。<br /><br />
+
+			WebGLRenderer.addPostPlugin() 已被删除。<br /><br />
+
+			WebGLRenderer.updateShadowMap() 已被删除。<br /><br />
+
+			WebGLRenderer.setFaceCulling() 已被删除。<br /><br />
+
+			WebGLRenderer.setTexture is deprecated, 请使用[page:WebGLRenderer.setTexture2D]()。<br /><br />
+
+			WebGLRenderer.shadowMapEnabled 现在是 [page:WebGLRenderer.shadowMap.enabled]。<br /><br />
+
+			WebGLRenderer.shadowMapType 现在是 [page:WebGLRenderer.shadowMap.type]。<br /><br />
+
+			WebGLRenderer.shadowMapCullFace 已被删除。请设置[page:Material.shadowSide]。<br /><br />
+
+			WebGLRenderer.shadowMap.cullFace 已被删除。请设置[page:Material.shadowSide]。<br /><br />
+
+			WebGLRenderer.shadowMap.renderReverseSided 已被删除。请设置[page:Material.shadowSide]。<br /><br />
+
+			WebGLRenderer.shadowMap.renderSingleSided 已被删除。请设置[page:Material.shadowSide]。
+
+		</p>
+
+		<h3>[page:WebGLRenderTarget]</h3>
+		<p>
+			WebGLRenderTarget.wrapS 现在是 [page:WebGLRenderTarget.texture.wrapS]。<br /><br />
+
+			WebGLRenderTarget.wrapT 现在是 [page:WebGLRenderTarget.texture.wrapT]。<br /><br />
+
+			WebGLRenderTarget.magFilter 现在是 [page:WebGLRenderTarget.texture.magFilter]。<br /><br />
+
+			WebGLRenderTarget.minFilter 现在是 [page:WebGLRenderTarget.texture.minFilter]。<br /><br />
+
+			WebGLRenderTarget.anisotropy 现在是 [page:WebGLRenderTarget.texture.anisotropy]。<br /><br />
+
+			WebGLRenderTarget.offset 现在是 [page:WebGLRenderTarget.texture.offset]。<br /><br />
+
+			WebGLRenderTarget.repeat 现在是 [page:WebGLRenderTarget.texture.repeat]。<br /><br />
+
+			WebGLRenderTarget.format 现在是 [page:WebGLRenderTarget.texture.format]。<br /><br />
+
+			WebGLRenderTarget.type 现在是 [page:WebGLRenderTarget.texture.type]。<br /><br />
+
+			WebGLRenderTarget.generateMipmaps 现在是 [page:WebGLRenderTarget.texture.generateMipmaps].
+		</p>
+
+
+		<h2>纹理(Textures)</h2>
+
+		<h3>[page:ImageUtils]</h3>
+		<p>
+			ImageUtils.loadTexture 已被弃用。 请使用[page:TextureLoader]。<br /><br />
+
+			ImageUtils.loadTextureCube 已被弃用。 请使用[page:CubeTextureLoader]。<br /><br />
+
+			ImageUtils.loadCompressedTexture 已被删除。 请使用[page:DDSLoader]。<br /><br />
+
+			ImageUtils.loadCompressedTextureCube 已被删除。 请使用[page:DDSLoader] 。
+		</p>
+
+
+		<h2>源代码</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/Three.Legacy.js src/Three.Legacy.js]
+
+
+		</body>
+</html>

+ 31 - 0
docs/api/zh/extras/Earcut.html

@@ -0,0 +1,31 @@
+<!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 implementation of the earcut polygon triangulation algorithm. The code is a port of [link:https://github.com/mapbox/earcut mapbox/earcut].
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
+		<p>
+		data -- A flat array of vertice coordinates.<br /><br />
+		holeIndices -- An array of hole indices if any.<br /><br />
+		dim -- The number of coordinates per vertice in the input array.<br /><br />
+
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 54 - 0
docs/api/zh/extras/ShapeUtils.html

@@ -0,0 +1,54 @@
+<!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 shapes.<br /><br />
+
+		Note that these are all linear functions so it is neccessary to calculate separately for
+		x, y (and z, w if present) components of a vector.
+		</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:Number area]( contour )</h3>
+		<p>
+		contour -- 2D polygon.<br /><br />
+
+		Calculate area of a ( 2D ) contour polygon.<br /><br />
+
+		</p>
+
+		<h3>[method:Boolean isClockwise]( pts )</h3>
+		<p>
+		pts -- points defining a 2D polygon<br /><br />
+
+		Note that this is a linear function so it is neccessary to calculate separately for
+		x, y  components of a polygon.<br /><br />
+
+		Used internally by [page:Path Path],
+		[page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry].
+		</p>
+
+		<h3>[method:Array triangulateShape]( contour, holes )</h3>
+		<p>
+		contour -- 2D polygon.<br />
+		holes -- array of holes<br /><br />
+
+		Used internally by [page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry] to calculate faces in shapes with holes.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 116 - 0
docs/api/zh/extras/core/Curve.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">
+		An abstract base class for creating a [name] object that contains methods for interpolation.
+		For an array of [name]s see [page:CurvePath].
+		</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		This constructor creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Integer arcLengthDivisions]</h3>
+		<p>This value determines the amount of divisions when calculating the cumulative segment lengths of a curve via [page:.getLengths].
+			To ensure precision when using methods like [page:.getSpacedPoints], it is recommended to increase [page:.arcLengthDivisions] if the curve is very large. Default is 200.</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Vector getPoint]( [param:Float t], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float t] - A position on the curve. Must be in the range [ 0, 1 ]. <br>
+			[page:Vector optionalTarget] — (optional) If specified, the result will be copied into this Vector,
+			otherwise a new Vector will be created. <br /><br />
+
+			Returns a vector for a given position on the curve.
+		</p>
+
+		<h3>[method:Vector getPointAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float u] - A position on the curve according to the arc length. Must be in the range [ 0, 1 ]. <br>
+			[page:Vector optionalTarget] — (optional) If specified, the result will be copied into this Vector,
+			otherwise a new Vector will be created. <br /><br />
+
+			Returns a vector for a given position on the curve according to the arc length.
+		</p>
+
+		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- number of pieces to divide the curve into. Default is *5*.<br /><br />
+
+			Returns a set of divisions + 1 points using getPoint( t ).
+		</p>
+
+		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- number of pieces to divide the curve into. Default is *5*.<br /><br />
+
+			Returns a set of divisions + 1 equi-spaced points using getPointAt( u ).
+		</p>
+
+		<h3>[method:Float getLength]()</h3>
+		<p>Get total curve arc length.</p>
+
+		<h3>[method:Array getLengths]( [param:Integer divisions] )</h3>
+		<p>Get list of cumulative segment lengths.</p>
+
+		<h3>[method:null updateArcLengths]()</h3>
+		<p>Update the cumlative segment distance cache.</p>
+
+		<h3>[method:Float getUtoTmapping]( [param:Float u], [param:Float distance] )</h3>
+		<p>
+			Given u in the range ( 0 .. 1 ), returns [page:Float t] also in the range ( 0 .. 1 ).
+			u and t can then be used to give you points which are equidistant from the ends of the curve,
+			using [page:.getPoint].
+		 </p>
+
+		<h3>[method:Vector getTangent]( [param:Float t] )</h3>
+		<p>
+			Returns a unit vector tangent at t. If the derived curve does not implement its
+			tangent derivation, two points a small delta apart will be used to find its gradient
+			which seems to give a reasonable approximation.
+		</p>
+
+		<h3>[method:Vector getTangentAt]( [param:Float u] )</h3>
+		<p>
+			Returns tangent at a point which is equidistant to the ends of the curve from the
+			point given in [page:.getTangent].
+		</p>
+
+		<h3>[method:Object computeFrenetFrames]( [param:Integer segments], [param:Boolean closed] )</h3>
+		<p>
+		Generates the Frenet Frames. Used in geometries like [page:TubeGeometry] or [page:ExtrudeGeometry].
+		</p>
+
+		<h3>[method:Curve clone]()</h3>
+		<p>Creates a clone of this instance.</p>
+
+		<h3>[method:Curve copy]( [param:Curve source] )</h3>
+		<p>Copies another [name] object to this instance.</p>
+
+		<h3>[method:Object toJSON]()</h3>
+		<p>Returns a JSON object representation of this instance.</p>
+
+		<h3>[method:Curve fromJSON]( [param:Object json] )</h3>
+		<p>Copies the data from the given JSON object to this instance.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 60 - 0
docs/api/zh/extras/core/CurvePath.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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		An abstract base class extending [page:Curve]. A CurvePath is simply an array of connected curves,
+		but retains the api of a curve.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		The constructor take no parameters.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:array curves]</h3>
+		<p>The array of [page:Curve Curves].</p>
+
+		<h3>[property:boolean autoClose]</h3>
+		<p>Whether or not to automatically close the path.</p>
+
+
+
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+		<h3>[method:null add]( [param:Curve curve] )</h3>
+		<p>Add a curve to the [page:.curves] array.</p>
+
+		<h3>[method:null closePath]()</h3>
+		<p>Adds a [page:LineCurve lineCurve] to close the path.</p>
+
+		<h3>[method:Float getCurveLengths]()</h3>
+		<p>Adds together the lengths of the curves in the [page:.curves] array.</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 61 - 0
docs/api/zh/extras/core/Font.html

@@ -0,0 +1,61 @@
+<!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">
+		Create a set of [page:Shape Shapes] representing a font loaded in JSON format.<br /><br />
+
+		This is used internally by the [page:FontLoader].
+		</p>
+
+		<h2>Examples</h2>
+
+		<p>
+		[example:webgl_geometry_text_shapes geometry / text / shapes ]<br/>
+		[example:webgl_shaders_vector vector / text ]<br/>
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( data )</h3>
+		<p>
+		data -- JSON data representing the font.<br /><br />
+
+		This constructor creates a new [name], which is an array of [page:Shape Shapes].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:array data]</h3>
+		<p>The JSON data passed in the constructor.</p>
+
+		<h3>[property:Boolean isFont]</h3>
+		<p>
+			Used to check whether this or derived classes are fonts. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally by the renderer for optimisation.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null generateShapes]( [param:String text], [param:Float size] )</h3>
+		<p>
+			[page:String text] -- string of text.<br />
+			[page:Float size] -- (optional) scale for the [page:Shape Shapes]. Default is *100*.<br />
+
+			Creates an array of [page:Shape Shapes] representing the text in the font.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 47 - 0
docs/api/zh/extras/core/Interpolations.html

@@ -0,0 +1,47 @@
+<!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">
+		TODO
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Float CatmullRom]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
+		<p>
+		t -- interpolation weight.<br />
+		p0, p1, p2, p3 -- the points defining the spline curve.<br /><br />
+
+		Used internally by [page:SplineCurve SplineCurve].
+		</p>
+
+		<h3>[method:Float QuadraticBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2] )</h3>
+		<p>
+		t -- interpolation weight.<br />
+		p0, p1, p2 -- the starting, control and end points defining the curve.<br /><br />
+
+		Used internally by [page:QuadraticBezierCurve3 QuadraticBezierCurve3], [page:QuadraticBezierCurve QuadraticBezierCurve] and [page:Font Font].
+		</p>
+
+		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
+		<p>
+		t -- interpolation weight.<br />
+		p0, p1, p2, p3 -- the starting, control(twice) and end points defining the curve.<br /><br />
+
+		Used internally by [page:CubicBezierCurve3 CubicBezierCurve3], [page:CubicBezierCurve CubicBezierCurve] and [page:Font Font].
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 145 - 0
docs/api/zh/extras/core/Path.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:CurvePath] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		A 2D path representation. The class provides methods for creating paths and contours of 2D shapes similar to the 2D Canvas API.
+		</p>
+
+		<h2>Example</h2>
+
+		<code>
+			var path = new THREE.Path();
+
+			path.lineTo( 0, 0.8 );
+			path.quadraticCurveTo( 0, 1, 0.2, 1 );
+			path.lineTo( 1, 1 );
+
+			var points = path.getPoints();
+
+			var geometry = new THREE.BufferGeometry().setFromPoints( points );
+			var material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+
+			var line = new THREE.Line( geometry, material );
+			scene.add( line );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+		points -- (optional) array of [page:Vector2 Vector2s].<br /><br />
+
+		Creates a Path from the points. The first point defines the offset, then successive points
+		are added to the [page:CurvePath.curves curves] array as [page:LineCurve LineCurves].<br /><br />
+
+		If no points are specified, an empty path is created and the [page:.currentPoint] is set to
+		the origin.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:CurvePath] class for common properties.</p>
+
+		<h3>[property:array currentPoint]</h3>
+		<p>The current offset of the path. Any new [page:Curve] added will start here.</p>
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:CurvePath] class for common methods.</p>
+
+		<h3>[method:null absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )</h3>
+		<p>
+			x, y -- The absolute center of the arc.<br />
+			radius -- The radius of the arc.<br />
+			startAngle -- The start angle in radians.<br />
+			endAngle -- The end angle in radians.<br />
+			clockwise -- Sweep the arc clockwise. Defaults to *false*.<br /><br />
+
+			Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
+		</p>
+
+		<h3>[method:null absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )</h3>
+		<p>
+			x, y -- The absolute center of the ellipse.<br />
+			xRadius -- The radius of the ellipse in the x axis.<br />
+			yRadius -- The radius of the ellipse in the y axis.<br />
+			startAngle -- The start angle in radians.<br />
+			endAngle -- The end angle in radians.<br />
+			clockwise -- Sweep the ellipse clockwise. Defaults to false.<br />
+			rotation -- The rotation angle of the ellipse in radians, counterclockwise from the positive X axis. Optional, defaults to 0.<br /><br />
+
+			Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
+		</p>
+
+		<h3>[method:null arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )</h3>
+		<p>
+		x, y -- The center of the arc offset from the last call.<br />
+		radius -- The radius of the arc.<br />
+		startAngle -- The start angle in radians.<br />
+		endAngle -- The end angle in radians.<br />
+		clockwise -- Sweep the arc clockwise. Defaults to *false*.<br /><br />
+
+		Adds an [page:EllipseCurve EllipseCurve] to the path, positioned relative to [page:.currentPoint].
+		</p>
+
+
+		<h3>[method:null bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+		<p>This creates a bezier curve from [page:.currentPoint] with (cp1X, cp1Y) and (cp2X, cp2Y) as control points and updates [page:.currentPoint] to x and y.</p>
+
+		<h3>[method:null ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )</h3>
+		<p>
+			x, y -- The center of the ellipse offset from the last call.<br />
+			xRadius -- The radius of the ellipse in the x axis.<br />
+			yRadius -- The radius of the ellipse in the y axis.<br />
+			startAngle -- The start angle in radians.<br />
+			endAngle -- The end angle in radians.<br />
+			clockwise -- Sweep the ellipse clockwise. Defaults to *false*.<br />
+			rotation -- The rotation angle of the ellipse in radians, counterclockwise from the positive X axis. Optional, defaults to *0*.<br /><br />
+
+			Adds an [page:EllipseCurve EllipseCurve] to the path, positioned relative to [page:.currentPoint].
+		</p>
+
+		<h3>[method:null lineTo]( [param:Float x], [param:Float y] )</h3>
+		<p>Connects a [page:LineCurve] from [page:.currentPoint] to x, y onto the path.</p>
+
+
+		<h3>[method:null moveTo]( [param:Float x], [param:Float y] )</h3>
+		<p>Move the [page:.currentPoint] to x, y.</p>
+
+
+		<h3>[method:null quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+		<p>Creates a quadratic curve from [page:.currentPoint] with cpX and cpY as control point and updates [page:.currentPoint] to x and y.</p>
+
+		<h3>[method:null setFromPoints]( [param:Array vector2s] )</h3>
+		<p>
+			points --  array of [page:Vector2 Vector2s].<br /><br />
+
+			Points are added to the [page:CurvePath.curves curves]
+			array as [page:LineCurve LineCurves].
+		</p>
+
+		<h3>[method:null splineThru] ( [param:Array points] ) </h3>
+		<p>
+			points - An array of [page:Vector2 Vector2s]<br /><br />
+
+			Connects a new [page:SplineCurve] onto the path.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 101 - 0
docs/api/zh/extras/core/Shape.html

@@ -0,0 +1,101 @@
+<!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:Path] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		Defines an arbitrary 2d shape plane using paths with optional holes. It can be used with [page:ExtrudeGeometry],
+		[page:ShapeGeometry], to get points, or to get triangulated faces.
+		</p>
+
+		<code>
+		var heartShape = new THREE.Shape();
+
+		heartShape.moveTo( 25, 25 );
+		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
+		heartShape.bezierCurveTo( 30, 0, 30, 35,30,35 );
+		heartShape.bezierCurveTo( 30, 55, 10, 77, 25, 95 );
+		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
+		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
+		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
+
+		var extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
+
+		var geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
+
+		var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
+		</code>
+
+		<h2>Examples</h2>
+
+		<p>
+		[example:webgl_geometry_shapes geometry / shapes ]<br/>
+		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
+		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+		points -- (optional) array of [page:Vector2 Vector2s].<br /><br />
+
+		Creates a Shape from the points. The first point defines the offset, then successive points
+		are added to the [page:CurvePath.curves curves] array as [page:LineCurve LineCurves].<br /><br />
+
+		If no points are specified, an empty shape is created and the [page:.currentPoint] is set to
+		the origin.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Path] class for common properties.</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this instance. This gets automatically assigned, so this shouldn't be edited.
+		</p>
+
+		<h3>[property:array holes]</h3>
+		<p>An array of [page:Path paths] that define the holes in the shape.</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Path] class for common methods.</p>
+
+		<h3>[method:Array extractPoints]( [param:Integer divisions] )</h3>
+		<p>
+		divisions -- The fineness of the result.<br /><br />
+
+		Call [page:Curve.getPoints getPoints] on the shape and the [page:.holes] array, and return an object of the form:
+		<code>
+{
+	shape
+	holes
+}
+		</code>
+		where shape and holes are arrays of [page:Vector2 Vector2s].
+		</p>
+
+		<h3>[method:Array getPointsHoles]( [param:Integer divisions] )</h3>
+		<p>
+		divisions -- The fineness of the result.<br /><br />
+
+		Get an array of [page:Vector2 Vector2s] that represent the holes in the shape.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 91 - 0
docs/api/zh/extras/core/ShapePath.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>
+		[page:CurvePath] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		This class is used to convert a series of shapes to an array of [page:Path]s, for example an SVG shape to a
+		path (see the example below). It is used internally by [page:Font] to convert a font in JSON format to a
+		series of paths.
+		</p>
+
+		<h2>Example</h2>
+
+		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2]
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name](  )</h3>
+		<p>
+		Creates a new ShapePath. Unlike a [page:Path], no points are passed in as the ShapePath is designed to
+		be generated after creation.
+		</p>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:array subPaths]</h3>
+		<p>
+		Array of [page:Path]s.
+		</p>
+
+		<h3>[property:array currentPath]</h3>
+		<p>
+		The current [page:Path] that is being generated.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null moveTo]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		Starts a new [page:Path] and calls [page:Path.moveTo]( x, y ) on that [page:Path].
+		Also points [page:ShapePath.currentPath currentPath] to that [page:Path].
+		</p>
+
+		<h3>[method:null lineTo]( [param:Float x], [param:Float y] )</h3>
+		<p>This creates a line from the [page:ShapePath.currentPath currentPath]'s
+			offset to X and Y and updates the offset to X and Y.</p>
+
+		<h3>[method:null quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+		<p>This creates a quadratic curve from the [page:ShapePath.currentPath currentPath]'s
+			offset to x and y with cpX and cpY as control point and updates the [page:ShapePath.currentPath currentPath]'s
+			offset to x and y.</p>
+
+		<h3>[method:null bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+		<p>This creates a bezier curve from the [page:ShapePath.currentPath currentPath]'s
+			 offset to x and y with cp1X, cp1Y and cp1X, cp1Y as control points and updates the
+			 [page:ShapePath.currentPath currentPath]'s offset to x and y.</p>
+
+		<h3>[method:null splineThru] ( [param:Array points] ) </h3>
+		<p>points - An array of [page:Vector2]s</p>
+		<p>Connects a new [page:SplineCurve] onto the [page:ShapePath.currentPath currentPath].</p>
+
+
+		<h3>[method:Array toShapes]( [param:Boolean isCCW], [param:Boolean noHoles] )</h3>
+		<p>
+		isCCW -- Changes how solids and holes are generated<br/>
+		noHoles -- Whether or not to generate holes
+		</p>
+		<p>
+		Converts the [page:ShapePath.subPaths subPaths] array into an array of Shapes. By default solid shapes are defined clockwise (CW) and holes are defined counterclockwise (CCW). If isCCW is set to true,
+		then those are flipped. If the parameter noHoles is set to true then all paths are set as solid shapes and isCCW is ignored.
+		<br/>
+
+		</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/Path.js src/extras/core/Path.js]
+	</body>
+</html>

+ 32 - 0
docs/api/zh/extras/curves/ArcCurve.html

@@ -0,0 +1,32 @@
+<!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:EllipseCurve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Alias for [page:EllipseCurve]</p>
+
+		<h2>Properties</h2>
+		<p>See the [page:EllipseCurve] class for common properties.</p>
+
+		<h3>[property:Boolean isArcCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are ArcCurves. 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/src/[path].js src/[path].js]
+	</body>
+</html>

+ 81 - 0
docs/api/zh/extras/curves/CatmullRomCurve3.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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Create a smooth 3d spline curve from a series of points using the
+			[link:https://en.wikipedia.org/wiki/Centripetal_Catmull-Rom_spline Catmull-Rom] algorithm.</p>
+
+		<h2>Example</h2>
+
+<code>
+//Create a closed wavey loop
+var curve = new THREE.CatmullRomCurve3( [
+	new THREE.Vector3( -10, 0, 10 ),
+	new THREE.Vector3( -5, 5, 5 ),
+	new THREE.Vector3( 0, 0, 0 ),
+	new THREE.Vector3( 5, -5, 5 ),
+	new THREE.Vector3( 10, 0, 10 )
+] );
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var curveObject = new THREE.Line( geometry, material );
+</code>
+
+		<h3>[example:webgl_geometry_extrude_splines geometry / extrude / splines]</h3>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Array points], [param:Boolean closed], [param:String curveType], [param:Float tension] )</h3>
+		<p>
+			points – An array of [page:Vector3] points<br/>
+			closed – Whether the curve is closed. Default is *false*.<br/>
+			curveType – Type of the curve. Default is *centripetal*.<br/>
+			tension – Tension of the curve. Default is *0.5*.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isCatmullRomCurve3]</h3>
+		<p>
+			Used to check whether this or derived classes are CatmullRomCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Array points]</h3>
+		<p>The array of [page:Vector3] points that define the curve. It needs at least two entries.</p>
+
+		<h3>[property:Boolean closed]</h3>
+		<p>The curve will loop back onto itself when this is true.</p>
+
+		<h3>[property:String curveType]</h3>
+		<p>Possible values are *centripetal*, *chordal* and *catmullrom*.</p>
+
+		<h3>[property:float tension]</h3>
+		<p>When [page:.type] is *catmullrom*, defines catmullrom's tension.</p>
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 81 - 0
docs/api/zh/extras/curves/CubicBezierCurve.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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Create a smooth 2d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg" target="_blank">cubic bezier curve</a>,
+			defined by a start point, endpoint and two control points.
+		</p>
+
+		<h2>Example</h2>
+
+<code>
+var curve = new THREE.CubicBezierCurve(
+	new THREE.Vector2( -10, 0 ),
+	new THREE.Vector2( -5, 15 ),
+	new THREE.Vector2( 20, 15 ),
+	new THREE.Vector2( 10, 0 )
+);
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var curveObject = new THREE.Line( geometry, material );
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name] ( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2], [param:Vector2 v3] )</h3>
+		<p>
+			[page:Vector2 v0] – The starting point.<br/>
+			[page:Vector2 v1] – The first control point.<br/>
+			[page:Vector2 v2] – The second control point.<br/>
+			[page:Vector2 v3] – The ending point.
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isCubicBezierCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are CubicBezierCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Vector2 v0]</h3>
+		<p>The starting point.</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>The first control point.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>The second control point.</p>
+
+		<h3>[property:Vector2 v3]</h3>
+		<p>The ending point.</p>
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common Methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 82 - 0
docs/api/zh/extras/curves/CubicBezierCurve3.html

@@ -0,0 +1,82 @@
+<!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:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Create a smooth 3d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg" target="_blank">cubic bezier curve</a>,
+			defined by a start point, endpoint and two control points.
+		</p>
+
+		<h2>Example</h2>
+
+<code>
+var curve = new THREE.CubicBezierCurve3(
+	new THREE.Vector3( -10, 0, 0 ),
+	new THREE.Vector3( -5, 15, 0 ),
+	new THREE.Vector3( 20, 15, 0 ),
+	new THREE.Vector3( 10, 0, 0 )
+);
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var curveObject = new THREE.Line( geometry, material );
+
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2], [param:Vector3 v3] )</h3>
+		<p>
+			[page:Vector3 v0] – The starting point.<br/>
+			[page:Vector3 v1] – The first control point.<br/>
+			[page:Vector3 v2] – The second control point.<br/>
+			[page:Vector3 v3] – The ending point.
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isCubicBezierCurve3]</h3>
+		<p>
+			Used to check whether this or derived classes are CubicBezierCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Vector2 v0]</h3>
+		<p>The starting point.</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>The first control point.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>The second control point.</p>
+
+		<h3>[property:Vector2 v3]</h3>
+		<p>The ending point.</p>
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common Methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 105 - 0
docs/api/zh/extras/curves/EllipseCurve.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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Creates a 2d curve in the shape of an ellipse. Setting the
+			[page:Number xRadius] equal to the [page:Number yRadius] will result in a circle.
+		</p>
+
+		<h2>Example</h2>
+
+<code>
+var curve = new THREE.EllipseCurve(
+	0,  0,            // ax, aY
+	10, 10,           // xRadius, yRadius
+	0,  2 * Math.PI,  // aStartAngle, aEndAngle
+	false,            // aClockwise
+	0                 // aRotation
+);
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var ellipse = new THREE.Line( geometry, material );
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Float aX], [param:Float aY], [param:Float xRadius], [param:Float yRadius], [param:Radians aStartAngle], [param:Radians aEndAngle], [param:Boolean aClockwise], [param:Radians aRotation] )</h3>
+		<p>
+			[page:Float aX] – The X center of the ellipse. Default is *0*.<br/>
+			[page:Float aY] – The Y center of the ellipse. Default is *0*.<br/>
+			[page:Float xRadius] – The radius of the ellipse in the x direction. Default is *1*.<br/>
+			[page:Float yRadius] – The radius of the ellipse in the y direction. Default is *1*.<br/>
+			[page:Radians aStartAngle] – The start angle of the curve in radians starting from the middle right side.  Default is *0*.<br/>
+			[page:Radians aEndAngle] – The end angle of the curve in radians starting from the middle right side. Default is *2 x Math.PI*.<br/>
+			[page:Boolean aClockwise] – Whether the ellipse is drawn clockwise. Default is *false*.<br/>
+			[page:Radians aRotation]  – The rotation angle of the ellipse in radians, counterclockwise from the positive X axis (optional). Default is *0*.<br/><br/>
+
+			<em>Note:</em> When going clockwise it's best to set the start angle to (Math.PI * 2) and then work towards lower numbers.
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isEllipseCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are EllipseCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Float aX]</h3>
+		<p>The X center of the ellipse.</p>
+
+		<h3>[property:Float aY]</h3>
+		<p>The Y center of the ellipse.</p>
+
+		<h3>[property:Radians xRadius]</h3>
+		<p>The radius of the ellipse in the x direction.</p>
+
+		<h3>[property:Radians yRadius]</h3>
+		<p>The radius of the ellipse in the y direction.</p>
+
+		<h3>[property:Float aStartAngle]</h3>
+		<p>The start angle of the curve in radians starting from the middle right side.</p>
+
+		<h3>[property:Float aEndAngle]</h3>
+		<p>The end angle of the curve in radians starting from the middle right side.</p>
+
+		<h3>[property:Boolean aClockwise]</h3>
+		<p>Whether the ellipse is drawn clockwise.</p>
+
+		<h3>[property:Float aRotation]</h3>
+		<p>The rotation angle of the ellipse in radians, counterclockwise from the positive X axis (optional). Default is *0*.</p>
+
+		<h3>[property:Boolean isEllipseCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are ellipses. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 51 - 0
docs/api/zh/extras/curves/LineCurve.html

@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">A curve representing a 2d line segment.</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Vector2 v1], [param:Vector2 v2] )</h3>
+		<p>
+			[page:Vector2 v1] – The start point.<br/>
+			[page:Vector2 v2] - The end point.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isLineCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are LineCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>The start point.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>The end point</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 50 - 0
docs/api/zh/extras/curves/LineCurve3.html

@@ -0,0 +1,50 @@
+<!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:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">A curve representing a 3d line segment.</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Vector3 v1], [param:Vector3 v2] )</h3>
+		<p>
+			[page:Vector3 v1] – The start point.<br/>
+			[page:Vector3 v2] - The end point.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isLineCurve3]</h3>
+		<p>
+			Used to check whether this or derived classes are LineCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Vector3 v1]</h3>
+		<p>The start point.</p>
+
+		<h3>[property:Vector3 v2]</h3>
+		<p>The end point.</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 77 - 0
docs/api/zh/extras/curves/QuadraticBezierCurve.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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Create a smooth 2d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">quadratic bezier curve</a>,
+			defined by a startpoint, endpoint and a single control point.
+		</p>
+
+		<h2>Example</h2>
+
+<code>
+var curve = new THREE.QuadraticBezierCurve(
+	new THREE.Vector2( -10, 0 ),
+	new THREE.Vector2( 20, 15 ),
+	new THREE.Vector2( 10, 0 )
+);
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+//Create the final object to add to the scene
+var curveObject = new THREE.Line( geometry, material );
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2] )</h3>
+		<p>
+			[page:Vector2 v0] – The startpoint.<br/>
+			[page:Vector2 v1] – The control point.<br/>
+			[page:Vector2 v2] – The endpoint.
+		</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isQuadraticBezierCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are QuadraticBezierCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+
+		<h3>[property:Vector2 v0]</h3>
+		<p>The startpoint.</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>The control point.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>The endpoint.</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 77 - 0
docs/api/zh/extras/curves/QuadraticBezierCurve3.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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Create a smooth 3d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">quadratic bezier curve</a>,
+			defined by a startpoint, endpoint and a single control point.
+		</p>
+
+		<h2>Example</h2>
+
+<code>
+var curve = new THREE.QuadraticBezierCurve3(
+	new THREE.Vector3( -10, 0, 0 ),
+	new THREE.Vector3( 20, 15, 0 ),
+	new THREE.Vector3( 10, 0, 0 )
+);
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var curveObject = new THREE.Line( geometry, material );
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2] )</h3>
+		<p>
+			[page:Vector3 v0] – The starting point<br/>
+			[page:Vector3 v1] – The middle control point<br/>
+			[page:Vector3 v2] – The ending point<br/>
+		</p>
+
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isQuadraticBezierCurve3]</h3>
+		<p>
+			Used to check whether this or derived classes are QuadraticBezierCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Vector3 v0]</h3>
+		<p>The startpoint.</p>
+
+		<h3>[property:Vector3 v1]</h3>
+		<p>The control point.</p>
+
+		<h3>[property:Vector3 v2]</h3>
+		<p>The endpoint.</p>
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 72 - 0
docs/api/zh/extras/curves/SplineCurve.html

@@ -0,0 +1,72 @@
+<!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:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		Create a smooth 2d spline curve from a series of points. Internally this uses
+		[page:Interpolations.CatmullRom] to create the curve.
+		</p>
+
+		<h2>Example</h2>
+
+<code>
+// Create a sine-like wave
+var curve = new THREE.SplineCurve( [
+	new THREE.Vector2( -10, 0 ),
+	new THREE.Vector2( -5, 5 ),
+	new THREE.Vector2( 0, 0 ),
+	new THREE.Vector2( 5, -5 ),
+	new THREE.Vector2( 10, 0 )
+] );
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var splineObject = new THREE.Line( geometry, material );
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>points – An array of [page:Vector2] points that define the curve.</p>
+
+
+		<h2>Properties</h2>
+		<p>See the base [page:Curve] class for common properties.</p>
+
+		<h3>[property:Boolean isSplineCurve]</h3>
+		<p>
+			Used to check whether this or derived classes are SplineCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</p>
+
+		<h3>[property:Array points]</h3>
+		<p>The array of [page:Vector2] points that define the curve.</p>
+
+
+
+		<h2>Methods</h2>
+		<p>See the base [page:Curve] class for common methods.</p>
+
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 42 - 0
docs/api/zh/extras/objects/ImmediateRenderObject.html

@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>及时渲染对象([name])</h1>
+
+		<p class="desc">及时渲染对象的基类。</p>
+
+
+		<h2>构造函数(Constructor)</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+			这会创建一个新的 [name]。
+		</p>
+
+
+		<h2>方法(Methods)</h2>
+
+
+		<h3>[method:null render]([param:Function renderCallback])</h3>
+		<p>
+		renderCallback -- 生成对象的渲染函数。
+		</p>
+		<p>
+		需要重写此函数以开始创建对象,并在完成时调用renderCallback。
+		</p>
+
+		<h2>源码(Source)</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 75 - 0
docs/api/zh/geometries/BoxBufferGeometry.html

@@ -0,0 +1,75 @@
+<!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">This is the [page:BufferGeometry] port of [page:BoxGeometry].</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#BoxBufferGeometry"></iframe>
+
+		<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>
+
+		<code>var geometry = new THREE.BoxBufferGeometry( 1, 1, 1 );
+		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		var cube = new THREE.Mesh( geometry, material );
+		scene.add( cube );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float width], [param:Float height], [param:Float depth], [param:Integer widthSegments], [param:Integer heightSegments], [param:Integer depthSegments])</h3>
+		<p>
+		width — Width of the sides on the X axis. Default is 1.<br />
+		height — Height of the sides on the Y axis. Default is 1.<br />
+		depth — Depth of the sides on the Z axis. Default is 1.<br />
+		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
+		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
+		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+ 		<p>
+			Using the above example code above as our basis:
+			<code>
+		geometry.parameters; // outputs an object {width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined}
+		cube.geometry.parameters; // as above
+		cube.geometry.parameters.width; // === 1
+		cube.geometry.parameters.widthSegments // === undefined.
+			</code>
+ 		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/BoxGeometry.js src/geometries/BoxGeometry.js]
+	</body>
+</html>

+ 75 - 0
docs/api/zh/geometries/BoxGeometry.html

@@ -0,0 +1,75 @@
+<!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">BoxGeometry is the quadrilateral primitive geometry class. It is typically used for creating a cube or irregular quadrilateral of the dimensions provided with the 'width', 'height', and 'depth' constructor arguments.</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#BoxGeometry"></iframe>
+
+		<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>
+
+		<code>var geometry = new THREE.BoxGeometry( 1, 1, 1 );
+		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		var cube = new THREE.Mesh( geometry, material );
+		scene.add( cube );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float width], [param:Float height], [param:Float depth], [param:Integer widthSegments], [param:Integer heightSegments], [param:Integer depthSegments])</h3>
+		<p>
+		width — Width of the sides on the X axis. Default is 1.<br />
+		height — Height of the sides on the Y axis. Default is 1.<br />
+		depth — Depth of the sides on the Z axis. Default is 1.<br />
+		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
+		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
+		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+ 		<p>
+			Using the above example code above as our basis:
+			<code>
+				geometry.parameters; // outputs an object {width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined}
+				cube.geometry.parameters; // as above
+				cube.geometry.parameters.width; // === 1
+				cube.geometry.parameters.widthSegments // === undefined.
+			</code>
+ 		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 65 - 0
docs/api/zh/geometries/CircleBufferGeometry.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>
+		[page:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">This is the [page:BufferGeometry] port of [page:CircleGeometry].</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#CircleBufferGeometry"></iframe>
+
+		<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>
+
+		<code>
+		var geometry = new THREE.CircleBufferGeometry( 5, 32 );
+		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
+		var circle = new THREE.Mesh( geometry, material );
+		scene.add( circle );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float radius], [param:Integer segments], [param:Float thetaStart], [param:Float thetaLength])</h3>
+		<p>
+		radius — Radius of the circle, default = 1.<br />
+		segments — Number of segments (triangles), minimum = 3, default = 8.<br />
+		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete circle.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CircleGeometry.js src/geometries/CircleGeometry.js]
+	</body>
+</html>

+ 66 - 0
docs/api/zh/geometries/CircleGeometry.html

@@ -0,0 +1,66 @@
+<!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">CircleGeometry is a simple shape of Euclidean geometry.  It is contructed from a number of triangular segments that are oriented around a central point and extend as far out as a given radius.  It is built counter-clockwise from a start angle and a given central angle.  It can also be used to create regular polygons, where the number of segments determines the number of sides.
+		</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#CircleGeometry"></iframe>
+
+		<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>
+
+		<code>
+		var geometry = new THREE.CircleGeometry( 5, 32 );
+		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
+		var circle = new THREE.Mesh( geometry, material );
+		scene.add( circle );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float radius], [param:Integer segments], [param:Float thetaStart], [param:Float thetaLength])</h3>
+		<p>
+		radius — Radius of the circle, default = 1.<br />
+		segments — Number of segments (triangles), minimum = 3, default = 8.<br />
+		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete circle.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 67 - 0
docs/api/zh/geometries/ConeBufferGeometry.html

@@ -0,0 +1,67 @@
+<!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:CylinderBufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">This is the [page:BufferGeometry] port of [page:ConeGeometry].</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#ConeBufferGeometry"></iframe>
+
+		<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>
+
+		<code>var geometry = new THREE.ConeBufferGeometry( 5, 20, 32 );
+		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
+		var cone = new THREE.Mesh( geometry, material );
+		scene.add( cone );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float radius], [param:Float height], [param:Integer radialSegments], [param:Integer heightSegments], [param:Boolean openEnded], [param:Float thetaStart], [param:Float thetaLength])</h3>
+		<p>
+		radius — Radius of the cone base. Default is 1.<br />
+		height — Height of the cone. Default is 1.<br />
+		radialSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
+		heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
+		openEnded — A Boolean indicating whether the base of the cone is open or capped. Default is false, meaning capped.<br />
+		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cone.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/ConeGeometry.js src/geometries/ConeGeometry.js]
+	</body>
+</html>

+ 67 - 0
docs/api/zh/geometries/ConeGeometry.html

@@ -0,0 +1,67 @@
+<!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:CylinderGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">A class for generating cone geometries</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#ConeGeometry"></iframe>
+
+		<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>
+
+		<code>var geometry = new THREE.ConeGeometry( 5, 20, 32 );
+		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
+		var cone = new THREE.Mesh( geometry, material );
+		scene.add( cone );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float radius], [param:Float height], [param:Integer radialSegments], [param:Integer heightSegments], [param:Boolean openEnded], [param:Float thetaStart], [param:Float thetaLength])</h3>
+		<p>
+		radius — Radius of the cone at the base. Default is 1.<br />
+		height — Height of the cone. Default is 1.<br />
+		radialSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
+		heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
+		openEnded — A Boolean indicating whether the base of the cone is open or capped. Default is false, meaning capped.<br />
+		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cone.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 68 - 0
docs/api/zh/geometries/CylinderBufferGeometry.html

@@ -0,0 +1,68 @@
+<!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">This is the [page:BufferGeometry] port of [page:CylinderGeometry].</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#CylinderBufferGeometry"></iframe>
+
+		<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>
+
+		<code>var geometry = new THREE.CylinderBufferGeometry( 5, 5, 20, 32 );
+		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
+		var cylinder = new THREE.Mesh( geometry, material );
+		scene.add( cylinder );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float radiusTop], [param:Float radiusBottom], [param:Float height], [param:Integer radialSegments], [param:Integer heightSegments], [param:Boolean openEnded], [param:Float thetaStart], [param:Float thetaLength])</h3>
+		<p>
+		radiusTop — Radius of the cylinder at the top. Default is 1.<br />
+		radiusBottom — Radius of the cylinder at the bottom. Default is 1.<br />
+		height — Height of the cylinder. Default is 1.<br />
+		radialSegments — Number of segmented faces around the circumference of the cylinder. Default is 8<br />
+		heightSegments — Number of rows of faces along the height of the cylinder. Default is 1.<br />
+		openEnded — A Boolean indicating whether the ends of the cylinder are open or capped. Default is false, meaning capped.<br />
+		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cylinder.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CylinderGeometry.js src/geometries/CylinderGeometry.js]
+	</body>
+</html>

+ 68 - 0
docs/api/zh/geometries/CylinderGeometry.html

@@ -0,0 +1,68 @@
+<!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">A class for generating cylinder geometries</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#CylinderGeometry"></iframe>
+
+		<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>
+
+		<code>var geometry = new THREE.CylinderGeometry( 5, 5, 20, 32 );
+		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
+		var cylinder = new THREE.Mesh( geometry, material );
+		scene.add( cylinder );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([param:Float radiusTop], [param:Float radiusBottom], [param:Float height], [param:Integer radialSegments], [param:Integer heightSegments], [param:Boolean openEnded], [param:Float thetaStart], [param:Float thetaLength])</h3>
+		<p>
+		radiusTop — Radius of the cylinder at the top. Default is 1.<br />
+		radiusBottom — Radius of the cylinder at the bottom. Default is 1.<br />
+		height — Height of the cylinder. Default is 1.<br />
+		radialSegments — Number of segmented faces around the circumference of the cylinder. Default is 8<br />
+		heightSegments — Number of rows of faces along the height of the cylinder. Default is 1.<br />
+		openEnded — A Boolean indicating whether the ends of the cylinder are open or capped. Default is false, meaning capped.<br />
+		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cylinder.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 54 - 0
docs/api/zh/geometries/DodecahedronBufferGeometry.html

@@ -0,0 +1,54 @@
+<!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:PolyhedronBufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">A class for generating a dodecahedron geometries.</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#DodecahedronBufferGeometry"></iframe>
+
+		<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>Constructor</h2>
+
+		<h3>[name]([param:Float radius], [param:Integer detail])</h3>
+		<p>
+		radius — Radius of the dodecahedron. Default is 1.<br />
+		detail — Default is 0. Setting this to a value greater than 0 adds vertices making it no longer a dodecahedron.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/DodecahedronGeometry.js src/geometries/DodecahedronGeometry.js]
+	</body>
+</html>

+ 54 - 0
docs/api/zh/geometries/DodecahedronGeometry.html

@@ -0,0 +1,54 @@
+<!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">A class for generating a dodecahedron geometries.</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#DodecahedronGeometry"></iframe>
+
+		<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>Constructor</h2>
+
+		<h3>[name]([param:Float radius], [param:Integer detail])</h3>
+		<p>
+		radius — Radius of the dodecahedron. Default is 1.<br />
+		detail — Default is 0. Setting this to a value greater than 0 adds vertices making it no longer a dodecahedron.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 47 - 0
docs/api/zh/geometries/EdgesGeometry.html

@@ -0,0 +1,47 @@
+<!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">This can be used as a helper object to view the edges of a [page:Geometry Geometry] object.</p>
+
+		<h2>Example</h2>
+
+		[example:webgl_helpers helpers]
+
+		<code>
+var geometry = new THREE.BoxBufferGeometry( 100, 100, 100 );
+var edges = new THREE.EdgesGeometry( geometry );
+var line = new THREE.LineSegments( edges, new THREE.LineBasicMaterial( { color: 0xffffff } ) );
+scene.add( line );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Geometry geometry], [param:Integer thresholdAngle] )</h3>
+		<p>
+		geometry — Any geometry object.<br />
+		thresholdAngle — An edge is only rendered if the angle (in degrees) between the face normals of the adjoining faces exceeds this value. default = 1 degree.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно