Browse Source

Merge remote-tracking branch 'upstream/dev' into dev17

Mugen87 6 years ago
parent
commit
7888f3c06c
100 changed files with 8633 additions and 484 deletions
  1. 1 1
      .github/ISSUE_TEMPLATE.md
  2. 1 1
      .travis.yml
  3. 1 1
      README.md
  4. 10 3
      build/three.js
  5. 407 407
      build/three.min.js
  6. 10 3
      build/three.module.js
  7. 0 1
      docs/api/en/cameras/OrthographicCamera.html
  8. 0 2
      docs/api/en/cameras/PerspectiveCamera.html
  9. 10 7
      docs/api/en/core/BufferAttribute.html
  10. 1 1
      docs/api/en/core/Face3.html
  11. 1 1
      docs/api/en/core/InstancedBufferAttribute.html
  12. 5 0
      docs/api/en/core/Layers.html
  13. 2 2
      docs/api/en/core/Raycaster.html
  14. 1 1
      docs/api/en/core/Uniform.html
  15. 3 3
      docs/api/en/deprecated/DeprecatedList.html
  16. 0 4
      docs/api/en/lights/AmbientLight.html
  17. 0 1
      docs/api/en/lights/DirectionalLight.html
  18. 14 5
      docs/api/en/lights/PointLight.html
  19. 14 4
      docs/api/en/lights/SpotLight.html
  20. 8 0
      docs/api/en/loaders/AnimationLoader.html
  21. 8 0
      docs/api/en/loaders/AudioLoader.html
  22. 8 0
      docs/api/en/loaders/BufferGeometryLoader.html
  23. 8 0
      docs/api/en/loaders/DataTextureLoader.html
  24. 12 8
      docs/api/en/loaders/JSONLoader.html
  25. 9 3
      docs/api/en/loaders/MaterialLoader.html
  26. 8 5
      docs/api/en/loaders/ObjectLoader.html
  27. 0 1
      docs/api/en/materials/LineDashedMaterial.html
  28. 0 7
      docs/api/en/materials/Material.html
  29. 0 11
      docs/api/en/renderers/WebGLRenderer.html
  30. 51 0
      docs/api/en/textures/DataTexture3D.html
  31. 1 1
      docs/api/en/textures/Texture.html
  32. 46 0
      docs/api/zh/Polyfills.html
  33. 48 0
      docs/api/zh/Template.html
  34. 317 0
      docs/api/zh/animation/AnimationAction.html
  35. 134 0
      docs/api/zh/animation/AnimationClip.html
  36. 101 0
      docs/api/zh/animation/AnimationMixer.html
  37. 82 0
      docs/api/zh/animation/AnimationObjectGroup.html
  38. 59 0
      docs/api/zh/animation/AnimationUtils.html
  39. 231 0
      docs/api/zh/animation/KeyframeTrack.html
  40. 130 0
      docs/api/zh/animation/PropertyBinding.html
  41. 97 0
      docs/api/zh/animation/PropertyMixer.html
  42. 78 0
      docs/api/zh/animation/tracks/BooleanKeyframeTrack.html
  43. 62 0
      docs/api/zh/animation/tracks/ColorKeyframeTrack.html
  44. 62 0
      docs/api/zh/animation/tracks/NumberKeyframeTrack.html
  45. 73 0
      docs/api/zh/animation/tracks/QuaternionKeyframeTrack.html
  46. 81 0
      docs/api/zh/animation/tracks/StringKeyframeTrack.html
  47. 61 0
      docs/api/zh/animation/tracks/VectorKeyframeTrack.html
  48. 212 0
      docs/api/zh/audio/Audio.html
  49. 99 0
      docs/api/zh/audio/AudioAnalyser.html
  50. 42 0
      docs/api/zh/audio/AudioContext.html
  51. 108 0
      docs/api/zh/audio/AudioListener.html
  52. 135 0
      docs/api/zh/audio/PositionalAudio.html
  53. 48 0
      docs/api/zh/cameras/ArrayCamera.html
  54. 95 0
      docs/api/zh/cameras/Camera.html
  55. 96 0
      docs/api/zh/cameras/CubeCamera.html
  56. 151 0
      docs/api/zh/cameras/OrthographicCamera.html
  57. 202 0
      docs/api/zh/cameras/PerspectiveCamera.html
  58. 63 0
      docs/api/zh/cameras/StereoCamera.html
  59. 39 0
      docs/api/zh/constants/Animation.html
  60. 37 0
      docs/api/zh/constants/Core.html
  61. 63 0
      docs/api/zh/constants/CustomBlendingEquations.html
  62. 81 0
      docs/api/zh/constants/DrawModes.html
  63. 102 0
      docs/api/zh/constants/Materials.html
  64. 76 0
      docs/api/zh/constants/Renderer.html
  65. 262 0
      docs/api/zh/constants/Textures.html
  66. 198 0
      docs/api/zh/core/BufferAttribute.html
  67. 325 0
      docs/api/zh/core/BufferGeometry.html
  68. 85 0
      docs/api/zh/core/Clock.html
  69. 103 0
      docs/api/zh/core/DirectGeometry.html
  70. 100 0
      docs/api/zh/core/EventDispatcher.html
  71. 130 0
      docs/api/zh/core/Face3.html
  72. 334 0
      docs/api/zh/core/Geometry.html
  73. 44 0
      docs/api/zh/core/InstancedBufferAttribute.html
  74. 50 0
      docs/api/zh/core/InstancedBufferGeometry.html
  75. 48 0
      docs/api/zh/core/InstancedInterleavedBuffer.html
  76. 119 0
      docs/api/zh/core/InterleavedBuffer.html
  77. 101 0
      docs/api/zh/core/InterleavedBufferAttribute.html
  78. 82 0
      docs/api/zh/core/Layers.html
  79. 414 0
      docs/api/zh/core/Object3D.html
  80. 192 0
      docs/api/zh/core/Raycaster.html
  81. 213 0
      docs/api/zh/core/Uniform.html
  82. 56 0
      docs/api/zh/core/bufferAttributeTypes/BufferAttributeTypes.html
  83. 607 0
      docs/api/zh/deprecated/DeprecatedList.html
  84. 31 0
      docs/api/zh/extras/Earcut.html
  85. 54 0
      docs/api/zh/extras/ShapeUtils.html
  86. 116 0
      docs/api/zh/extras/core/Curve.html
  87. 60 0
      docs/api/zh/extras/core/CurvePath.html
  88. 61 0
      docs/api/zh/extras/core/Font.html
  89. 47 0
      docs/api/zh/extras/core/Interpolations.html
  90. 145 0
      docs/api/zh/extras/core/Path.html
  91. 101 0
      docs/api/zh/extras/core/Shape.html
  92. 91 0
      docs/api/zh/extras/core/ShapePath.html
  93. 32 0
      docs/api/zh/extras/curves/ArcCurve.html
  94. 81 0
      docs/api/zh/extras/curves/CatmullRomCurve3.html
  95. 81 0
      docs/api/zh/extras/curves/CubicBezierCurve.html
  96. 82 0
      docs/api/zh/extras/curves/CubicBezierCurve3.html
  97. 105 0
      docs/api/zh/extras/curves/EllipseCurve.html
  98. 51 0
      docs/api/zh/extras/curves/LineCurve.html
  99. 50 0
      docs/api/zh/extras/curves/LineCurve3.html
  100. 77 0
      docs/api/zh/extras/curves/QuadraticBezierCurve.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
 
 - [ ] Dev
-- [ ] r95
+- [ ] r97
 - [ ] ...
 
 ##### Browser

+ 1 - 1
.travis.yml

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

+ 1 - 1
README.md

@@ -74,7 +74,7 @@ If everything went well you should see [this](https://jsfiddle.net/f2Lommf5/).
 
 ### Change log ###
 
-[releases](https://github.com/mrdoob/three.js/releases)
+[Releases](https://github.com/mrdoob/three.js/releases)
 
 
 [npm-badge]: https://img.shields.io/npm/v/three.svg

File diff suppressed because it is too large
+ 10 - 3
build/three.js


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


File diff suppressed because it is too large
+ 10 - 3
build/three.module.js


+ 0 - 1
docs/api/en/cameras/OrthographicCamera.html

@@ -24,7 +24,6 @@
 
 		<h2>Example</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>

+ 0 - 2
docs/api/en/cameras/PerspectiveCamera.html

@@ -22,8 +22,6 @@
 
 		<h2>Example</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>

+ 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.
 		<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
 		 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>
 
 		<h2>Properties</h2>
@@ -99,12 +99,12 @@
 
 		<h3>[property:Function onUploadCallback]</h3>
 		<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>
 
 		<h3>[property:Object updateRange]</h3>
 		<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 />
 
 			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>
 		<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>
 		<p>Copy the array given here (which can be a normal array or TypedArray) into
 			[page:BufferAttribute.array array].<br /><br />
@@ -160,7 +163,7 @@
 		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.
+		after the buffer has been	transferred to the GPU.
 		</p>
 
 		<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>
 
 		<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>

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

@@ -17,7 +17,7 @@
 		</p>
 
 		<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>
 

+ 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.
 		</p>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_layers WebGL / layers]
+		</p>
 
 		<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>
 		<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: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;).
 		</p>
 		<p>
@@ -174,7 +174,7 @@
 		<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: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;).
 		</p>
 		<p>

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

@@ -201,7 +201,7 @@
 		<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.
+		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 />
 		See [example:webgldeferred_animation WebGL deferred animation] for an example of this method in use.
 		</p>

+ 3 - 3
docs/api/en/deprecated/DeprecatedList.html

@@ -501,11 +501,11 @@
 
 
 
-		<h2>Renderer</h2>
+		<h2>Renderers</h2>
 
-		<h3>[page:Projector]</h3>
+		<h3>[page:CanvasRenderer]</h3>
 		<p>
-			CanvasRenderer has been moved to [link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CanvasRenderer.js /examples/js/renderers/CanvasRenderer.js].
+			CanvasRenderer has been removed.
 		</p>
 
 		<h3>[page:Projector]</h3>

+ 0 - 4
docs/api/en/lights/AmbientLight.html

@@ -21,10 +21,6 @@
 
 		<h2>Example</h2>
 		<p>
-			[example:canvas_camera_orthographic camera / orthographic ]<br />
-		  [example:canvas_interactive_voxelpainter interactive / voxelpainter ]<br />
-		  [example:canvas_materials materials ]<br />
-		  [example:canvas_sandbox sandbox ]<br />
 		  [example:webgl_animation_cloth animation / cloth ]<br />
 		  [example:webgl_animation_skinning_blending animation / skinning / blending ]
 		</p>

+ 0 - 1
docs/api/en/lights/DirectionalLight.html

@@ -40,7 +40,6 @@
 
 		<h2>Example</h2>
 		<p>
-			[example:canvas_morphtargets_horse morphtargets / horse ]<br />
 			[example:misc_controls_fly controls / fly ]<br />
 			[example:misc_lights_test lights / test ]<br />
 			[example:webvr_cubes cubes ]<br />

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

@@ -23,7 +23,6 @@
 		<h2>Example</h2>
 
 		<p>
-			[example:canvas_lights_pointlights lights / pointlights ]<br />
 			[example:webgl_lights_pointlights lights / pointlights ]<br />
 			[example:webgl_lights_pointlights2 lights / pointlights2 ]<br />
 			[example:webgldeferred_animation animation ]<br />
@@ -45,8 +44,7 @@ scene.add( light );
 		<p>
 			[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: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.
 			For [page:WebGLRenderer.physicallyCorrectLights physically correct] lighting, set this to 2.<br /><br />
 
@@ -67,8 +65,19 @@ scene.add( light );
 
 		<h3>[property:Float distance]</h3>
 		<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>
 
 		<h3>[property:Boolean isPointLight]</h3>

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

@@ -71,8 +71,7 @@
 		<p>
 			[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 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
 			bound is Math.PI/2.<br />
 			[page:Float penumbra] - Percent of the spotlight cone that is attenuated due to penumbra.
@@ -109,8 +108,19 @@
 
 		<h3>[property:Float distance]</h3>
 		<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>
 
 		<h3>[property:Boolean isSpotLight]</h3>

+ 8 - 0
docs/api/en/loaders/AnimationLoader.html

@@ -81,6 +81,14 @@
 		be parsed with [page:AnimationClip.parse].
 		</p>
 
+		<h3>[method:AnimationLoader setPath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — Base path of the file to load.<br /><br />
+
+			Sets the base path or URL from which to load files. This can be useful if
+			you are loading many animations from the same directory.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 8 - 0
docs/api/en/loaders/AudioLoader.html

@@ -92,6 +92,14 @@
 		Begin loading from url and pass the loaded [page:String AudioBuffer] to onLoad.
 		</p>
 
+		<h3>[method:AudioLoader setPath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — Base path of the file to load.<br /><br />
+			
+			Sets the base path or URL from which to load files. This can be useful if
+			you are loading many audios from the same directory.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 8 - 0
docs/api/en/loaders/BufferGeometryLoader.html

@@ -85,6 +85,14 @@
 		Parse a <em>JSON</em> structure and return a [page:BufferGeometry].
 		</p>
 
+		<h3>[method:BufferGeometryLoader setPath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — Base path of the file to load.<br /><br />
+
+			Sets the base path or URL from which to load files. This can be useful if
+			you are loading many geometries from the same directory.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 8 - 0
docs/api/en/loaders/DataTextureLoader.html

@@ -56,6 +56,14 @@
 		Begin loading from url and pass the loaded texture to onLoad.
 		</p>
 
+		<h3>[method:DataTextureLoader setPath]( [param:String path] )</h3>
+		<p>
+			[page:String path] — Base path of the file to load.<br /><br />
+
+			Sets the base path or URL from which to load files. This can be useful if
+			you are loading many data textures from the same directory.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

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

@@ -93,23 +93,27 @@
 		Begin loading from url and pass the <em>JSON</em> to onLoad.
 		</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>
 		<p>
 			Set the [page:.crossOrigin] attribute.
 		</p>
 
-		<h3>[method:JSONLoader setTexturePath]( [param:String texturePath] )</h3>
+		<h3>[method:JSONLoader setPath]( [param:String value] )</h3>
 		<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>
 
-		<h3>[method:Object3D parse]( [param:Object json], [param:String texturePath] )</h3>
+		<h3>[method:JSONLoader setResourcePath]( [param:String value] )</h3>
 		<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>
 
 		<h2>Source</h2>

+ 9 - 3
docs/api/en/loaders/MaterialLoader.html

@@ -84,12 +84,18 @@
 		Parse a <em>JSON</em> structure and create a new [page:Material] of the type [page:String json.type] with parameters defined in the json object.
 		</p>
 
-		<h3>[method:null setTextures]( [param:Object textures] )</h3>
+		<h3>[method:MaterialLoader setPath]( [param:String path] )</h3>
 		<p>
-		[page:Object textures] — object containing any textures used by the material.
-		</p>
+			[page:String path] — Base path of the file to load.<br /><br />
 
+			Sets the base path or URL from which to load files. This can be useful if
+			you are loading many materials from the same directory.
+		</p>
 
+		<h3>[method:MaterialLoader setTextures]( [param:Object textures] )</h3>
+		<p>
+		[page:Object textures] — object containing any textures used by the material.
+		</p>
 
 		<h2>Source</h2>
 

+ 8 - 5
docs/api/en/loaders/ObjectLoader.html

@@ -85,9 +85,9 @@
 			The [page:LoadingManager loadingManager]  the loader is using. Default is [page:DefaultLoadingManager].
 		</p>
 
-		<h3>[property:String texturePath]</h3>
+		<h3>[property:String resourcePath]</h3>
 		<p>
-			The base path or URL from which textures will be loaded. See [page:.setTexturePath].
+			The base path or URL from which additional resources like textuures will be loaded. See [page:.setResourcePath].
 			Default is the empty string.
 		</p>
 
@@ -217,11 +217,14 @@
 		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
 		</p>
 
-		<h3>[method:ObjectLoader setTexturePath]( [param:String value] )</h3>
+		<h3>[method:ObjectLoader setPath]( [param:String value] )</h3>
 		<p>
-		[page:String value] — The base path or URL from which textures will be loaded.<br /><br />
-
+			Set the base path for the original file.
+		</p>
 
+		<h3>[method:ObjectLoader setResourcePath]( [param:String value] )</h3>
+		<p>
+			Set the base path for dependent resources like textures.
 		</p>
 
 		<h2>Source</h2>

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

@@ -18,7 +18,6 @@
 
 		<p>
 			[example:webgl_lines_dashed WebGL / lines / dashed]<br />
-			[example:canvas_lines_dashed Canvas / lines /dashed]
 		</p>
 
 		<code>

+ 0 - 7
docs/api/en/materials/Material.html

@@ -175,13 +175,6 @@
 		Default is *1.0*.
 		</p>
 
-		<h3>[property:Float overdraw]</h3>
-		<p>
-		Amount of triangle expansion at draw time.
-		This is a workaround for cases when gaps appear between triangles when using [page:CanvasRenderer].
-		*0.5* tends to give good results across browsers. Default is *0*.
-		</p>
-
 		<h3>[property:Boolean polygonOffset]</h3>
 		<p>
 		Whether to use polygon offset. Default is *false*. This corresponds to the *GL_POLYGON_OFFSET_FILL* WebGL feature.

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

@@ -302,17 +302,6 @@
 		<h3>[method:null clearStencil]( )</h3>
 		<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>
 		<p>Compiles all materials in the scene with the camera. This is useful to precompile shaders before the first rendering.</p>
 

+ 51 - 0
docs/api/en/textures/DataTexture3D.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:Texture] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Creates a three-dimensional texture. This type of texture can only be used with a WebGL 2 rendering context.</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:TypedArray data], [param:Number width], [param:Number height], [param:Number depth] )</h3>
+		<p>
+			[page:Object data] -- data of the texture.<br />
+
+			[page:Number width] -- width of the texture.<br />
+
+			[page:Number height] -- height of the texture.<br />
+
+			[page:Number depth] -- depth of the texture.
+		</p>
+
+		<h2>Example</h2>
+
+		<div>[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]</div>
+		<div>[example:webgl2_materials_texture3d_volume WebGL2 / materials / texture3d / volume]</div>
+
+		<h2>Properties</h2>
+
+		<p>
+		See the base [page:Texture Texture] class for common properties.
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>
+		See the base [page:Texture Texture] 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>

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

@@ -149,7 +149,7 @@
 
 		<h3>[property:number rotation]</h3>
 		<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>
 
 		<h3>[property:Vector2 center]</h3>

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

@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="zh">
+	<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>差异化支持(腻子)</h1>
+
+		<p class="desc">Three.js 包含以下方法和常量的差异化支持.</p>
+
+		<h3>[page:Number.EPSILON Number.EPSILON]</h3>
+		<p>
+			 表示1和大于1的最小差值,可表示为 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>
+			如果参数为 正数,负数,正零 或 负零,
+			该方法将分别返回 1, -1, 0 或 -0 . 否则, 返回 NaN.
+			[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>
+			返回方法的名字, 或 (在 ES6 实现之前) 为匿名方法返回一个空字符串.
+			[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>
+			Object.assign() 方法用于从一个或多个源对象拷贝所有可枚举自身属性到目标对象.
+			该方法将返回目标对象.
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign MDN reference].
+		</p>
+
+		<h2>源码</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>

+ 48 - 0
docs/api/zh/cameras/ArrayCamera.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: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>

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

@@ -0,0 +1,95 @@
+<!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>

+ 96 - 0
docs/api/zh/cameras/CubeCamera.html

@@ -0,0 +1,96 @@
+<!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>

+ 151 - 0
docs/api/zh/cameras/OrthographicCamera.html

@@ -0,0 +1,151 @@
+<!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>

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

@@ -0,0 +1,202 @@
+<!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>

+ 63 - 0
docs/api/zh/cameras/StereoCamera.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>立体相机([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>

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

@@ -0,0 +1,198 @@
+<!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">
+			这个类用于存储与[page:BufferGeometry]相关联的 attribute(例如顶点位置向量,面片索引,法向量,颜色值,UV坐标以及任何自定义 attribute )。
+			利用 BufferAttribute,可以更高效的向GPU传递数据。详情和例子见该页。<br /><br />
+
+			在 BufferAttribute 中,数据被存储为任意长度的矢量(通过[page:BufferAttribute.itemSize itemSize]进行定义),下列函数如无特别说明,
+			函数参数中的index会自动乘以矢量长度进行计算。
+		</p>
+
+		<h2>构造函数</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<p>
+			[page:TypedArray array] -- 必须是 [link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/TypedArray TypedArray].
+			类型,用于实例化缓存。<br />
+			该队列应该包含:
+	 	<code>itemSize * numVertices</code>
+			个元素,numVertices 是 [page:BufferGeometry BufferGeometry]中的顶点数目<br /><br />
+
+
+		[page:Integer itemSize] --
+			队列中与顶点相关的数据值的大小。举例,如果 attribute 存储的是三元组(例如顶点空间坐标、法向量或颜色值)则itemSize的值应该是3。
+		<br /><br />
+
+			[page:Boolean normalized] -- (可选) 指明缓存中的数据如何与GLSL代码中的数据对应。例如,如果[page:TypedArray array]是
+			UInt16Array类型,且[page:Boolean normalized]的值是 true,则队列中的值将会从 0 - +65535 映射为 GLSL 中的 0.0f - +1.0f。
+			如果[page:TypedArray array]是 Int16Array (有符号),则值将会从 -32767 - +32767 映射为 -1.0f - +1.0f。若 [page:Boolean normalized]
+			的值为 false,则数据映射不会归一化,而会直接映射为 float 值,例如,32767 将会映射为 32767.0f.
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>
+			在 [page:TypedArray array] 中保存着缓存中的数据。
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			保存 [page:BufferAttribute.array array] 除以 [page:BufferAttribute.itemSize itemSize] 之后的大小。<br /><br />
+
+			若缓存存储三元组(例如顶点位置、法向量、颜色值),则该值应等于队列中三元组的个数。
+		</p>
+
+		<h3>[property:Boolean dynamic]</h3>
+		<p>
+			不论缓存是否是动态的,默认值都将是 *false*<br />
+
+			如果该值为 false,即告知 GPU 缓存中的数据会经常使用但不经常变化。
+			该值与 [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.STATIC_DRAW] 标志位相一致。<br />
+			如果该值为 true,即告知 GPU 缓存中的数据会经常使用且经常变化。
+			该值与 [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.DYNAMIC_DRAW] 标志位相一致。
+		</p>
+
+		<h3>[property:Boolean isBufferAttribute]</h3>
+		<p>
+			指示当前类或派生类是 BufferAttributes. 默认值为 *true*.<br /><br />
+
+			开发者不应当改变该值,该值用于内部实现优化。
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>保存在 [page:BufferAttribute.array array] 中矢量的长度。</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+			该 attribute 实例的别名,默认值为空字符串。
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+			该标志位指明当前 attribute 已经被修改过,且需要再次送入 GPU 处理。当开发者改变了该队列的值,则标志位需要设置为 true。<br /><br />
+			将标志位设为 true 同样会增加 [page:BufferAttribute.version version] 的值。
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+			指明缓存中数据在转化为GLSL着色器代码中数据时是否需要被归一化。详见构造函数中的说明。
+		</p>
+
+		<h3>[property:Function onUploadCallback]</h3>
+		<p>
+			attribute 数据传输到GPU后的回调函数。
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>对象包含如下成员:<br />
+			[page:Integer offset]: 默认值为 *0*。 指明更新的起始位置。<br />
+			[page:Integer count]: 默认值为 *-1*,表示不指定更新范围。<br /><br />
+
+			该值只可以被用于更新某些矢量数据(例如,颜色相关数据)。
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>版本号,当 [page:BufferAttribute.needsUpdate needsUpdate] 被设置为 true 时,该值会自增。</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:BufferAttribute clone]() </h3>
+		<p>返回该 BufferAttribute 的拷贝。</p>
+
+		<h3>[method:BufferAttribute copyArray]( array ) </h3>
+		<p>将参数中所给定的普通队列或 TypedArray 拷贝到 [page:BufferAttribute.array array] 中。<br /><br />
+			拷贝 TypedArray 相关注意事项详见 [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]。
+		</p>
+
+		<h3>[method:null copyAt] ( [param:Integer index1], [param:BufferAttribute bufferAttribute], [param:Integer index2] ) </h3>
+		<p>将一个矢量从 bufferAttribute[index2] 拷贝到 [page:BufferAttribute.array array][index1] 中。</p>
+
+		<h3>[method:BufferAttribute copyColorsArray]( [param:Array colors] ) </h3>
+		<p>将一个存储 RGB 颜色值的队列拷贝到 [page:BufferAttribute.array array] 中。</p>
+
+		<h3>[method:BufferAttribute copyVector2sArray]( [param:Array vectors] ) </h3>
+		<p>将一个存储 [page:Vector2] 的队列拷贝到 [page:BufferAttribute.array array] 中。</p>
+
+		<h3>[method:BufferAttribute copyVector3sArray]( [param:Array vectors] ) </h3>
+		<p>将一个存储 [page:Vector3] 的队列拷贝到 [page:BufferAttribute.array array] 中。</p>
+
+		<h3>[method:BufferAttribute copyVector4sArray]( [param:Array vectors] ) </h3>
+		<p>将一个存储 [page:Vector4] 的队列拷贝到 [page:BufferAttribute.array array] 中。</p>
+
+		<h3>[method:Number getX]( [param:Integer index] ) </h3>
+		<p>获取给定索引的矢量的第一维元素 (即 X 值)。</p>
+
+		<h3>[method:Number getY]( [param:Integer index] ) </h3>
+		<p>获取给定索引的矢量的第二维元素 (即 Y 值)。</p>
+
+		<h3>[method:Number getZ]( [param:Integer index] ) </h3>
+		<p>获取给定索引的矢量的第三维元素 (即 Z 值)。</p>
+
+		<h3>[method:Number getW]( [param:Integer index] ) </h3>
+		<p>获取给定索引的矢量的第四维元素 (即 W 值)。</p>
+
+		<h3>[method:null onUpload]( [param:Function callback] ) </h3>
+		<p>见 onUploadCallback 属性。<br /><br />
+			在 [example:webgl_buffergeometry WebGL / Buffergeometry] 中,该方在缓存数据传递给 GPU 后,用于释放内存。
+		</p>
+
+		<h3>[method:BufferAttribute set] ( [param:Array value], [param:Integer offset] ) </h3>
+		<p>
+		value -- 被拷贝的 [page:Array] 或 [page:TypedArray] 类型的数据。 <br />
+		offset -- (可选) [page:BufferAttribute.array array] 中开始拷贝的位置索引。<br /><br />
+
+		对 [page:BufferAttribute.array array],调用	[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]( [page:Array value], [page:Integer offset] )
+		方法。<br /><br />
+
+		特别的, 对将 [page:Array value] 转为  [page:TypedArray] 的要求详见上述链接。
+		</p>
+
+		<h3>[method:BufferAttribute setArray] ( [param:TypedArray array] ) </h3>
+		<p>
+		[page:BufferAttribute.array array] 被赋值的 TypedArray 队列。<br /><br />
+
+		队列被复制后,[page:BufferAttribute.needsUpdate needsUpdate] 应当被设置为 true。
+		</p>
+
+		<h3>[method:BufferAttribute setDynamic] ( [param:Boolean value] ) </h3>
+		<p>将 [page:BufferAttribute.dynamic dynamic] 设置为 value.</p>
+
+		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
+		<p>设置给定索引的矢量的第一维数据(设置 X 值)。</p>
+
+		<h3>[method:BufferAttribute setY]( [param:Integer index], [param:Float y] ) </h3>
+		<p>设置给定索引的矢量的第二维数据(设置 Y 值)。</p>
+
+		<h3>[method:BufferAttribute setZ]( [param:Integer index], [param:Float z] ) </h3>
+		<p>设置给定索引的矢量的第三维数据(设置 Z 值)。</p>
+
+		<h3>[method:BufferAttribute setW]( [param:Integer index], [param:Float w] ) </h3>
+		<p>设置给定索引的矢量的第四维数据(设置 W 值)。</p>
+
+		<h3>[method:BufferAttribute setXY]( [param:Integer index], [param:Float x], [param:Float y] ) </h3>
+		<p>设置给定索引的矢量的第一、二维数据(设置 X 和 Y 值)。</p>
+
+		<h3>[method:BufferAttribute setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] ) </h3>
+		<p>设置给定索引的矢量的第一、二、三维数据(设置 X、Y 和 Z 值)。</p>
+
+		<h3>[method:BufferAttribute setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] ) </h3>
+		<p>设置给定索引的矢量的第一、二、三、四维数据(设置 X、Y、Z 和 W 值)。</p>
+
+
+
+		<h2>资源</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

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

@@ -0,0 +1,325 @@
+<!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>
+			是面片、线或点几何体的有效表述。包括顶点位置,面片索引、法相量、颜色值、UV 坐标和自定义缓存属性值。使用 BufferGeometry
+			可以有效减少向 GPU 传输上述数据所需的开销。
+		</p>
+		<p>
+			读取或编辑 BufferGeometry 中的数据,见 [page:BufferAttribute] 文档。
+		</p>
+		<p>
+			几何体的更多使用示例,详见 [page:Geometry]。
+		</p>
+
+		<h2>示例</h2>
+		<code>
+		var geometry = new THREE.BufferGeometry();
+		// 创建一个简单的矩形. 在这里我们左上和右下顶点被复制了两次。
+		// 因为在两个三角面片里,这两个顶点都需要被用到。
+		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 因为每个顶点都是一个三元组。
+		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>访问属性值</h2>
+		<p>
+			WebGL 将与每个顶点相关的数据保存为 <em>attributes</em>. 这些属性例如,顶点位置、顶点法向量、顶点颜色等等。
+			当使用 [page:Geometry] 时,[page:WebGLRenderer renderer] 将数据包装为有类型的队列的缓存,并将数据送往着色器。有了
+			BufferGeometry 这些数据都被存储到相应类型的属性的缓存中。这就意味着,如果想要获得顶点的位置信息,你必须调用
+			[page:.getAttribute] 访问位置信息的 page:BufferAttribute attribute],之后再访问位置矢量中每一维坐标值(x,y,z 值)。
+		</p>
+		<p>
+			通过该类提供的下属方法设置以下属性值:
+		</p>
+		<h3>[page:BufferAttribute position] (itemSize: 3)</h3>
+		<p>
+			存储当前几何体中每个顶点的坐标,包含 x,y,z 三维数据。通过 [page:.fromGeometry]() 设置。
+		</p>
+
+		<h3>[page:BufferAttribute normal] (itemSize: 3)</h3>
+		<p>
+			存储当前几何体中每个顶点的法向量,包含 x,y,z 三维数据。通过 [page:.fromGeometry]() 设置。
+		</p>
+
+		<h3>[page:BufferAttribute color] (itemSize: 3)</h3>
+		<p>
+			存储当前几何体中每个顶点的颜色值,包含 R,G,B 三通道颜色值。通过 [page:.fromGeometry]() 设置。
+		</p>
+
+		<p>
+			除了上述已有的属性,你可以通过 addAttribute 方法自定义属性。通过 [page:Geometry],这些自定义属性被存储到
+			[page:Material] 中。在 BufferGeometry 中,属性则被存储到几何体本身。注意,你依然需要在材质中设置属性信息,
+			但是属性的值则被存储到 BufferGeometry。
+		</p>
+
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name]()</h3>
+		<div>
+		创建一个新的 [name]. 同时将预置属性设置为默认值.
+		</div>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:Object attributes]</h3>
+		<p>
+			通过 hashmap 存储该几何体相关的属性,hashmap 的 id 是当前 attribute 的名称,值是相应的 [page:BufferAttribute buffer]。
+			你可以通过 [page:.addAttribute] 和 [page:.getAttribute] 添加和访问与当前几何体有关的 attribute。
+		</p>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			当前 bufferGeometry 的外边界矩形。可以通过 [page:.computeBoundingBox]() 计算。默认值是 *null*。
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			当前 bufferGeometry 的外边界球形。可以通过 [page:.computeBoundingSphere]() 计算。默认值是 *null*。
+		</p>
+
+		<h3>[property:Object drawRange]</h3>
+		<p>
+			用于判断几何体的哪个部分需要被渲染。该值不应该直接被设置,而需要通过 [page:.setDrawRange] 进行设置。<br />
+			默认值为
+			<code>
+				{ start: 0, count: Infinity }
+			</code>
+		</p>
+
+		<h3>[property:Array groups]</h3>
+		<p>
+			将当前几何体分割成组进行渲染,每个部分都会在单独的 WebGL 的 draw call 中进行绘制。该方法可以让当前的 bufferGeometry
+			可以使用一个材质队列进行描述。<br /><br />
+
+			分割后的每个部分都是一个如下的表单:
+			<code>{ start: Integer, count: Integer, materialIndex: Integer }</code>
+			start 表明当前 draw call 中的没有索引的几何体的几何体的第一个顶点;或者第一个三角面片的索引。
+			count 指明当前分割包含多少顶点(或 indices)。
+			materialIndex 指出当前用到的材质队列的索引。<br /><br />
+
+			通过 [page:.addGroup] 来增加组,而不是直接更改当前队列。
+		</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>当前 bufferGeometry 的唯一编号。</p>
+
+		<h3>[property:BufferAttribute index]</h3>
+		<p>
+			允许顶点在多个三角面片间可以重用。这样的顶点被称为"已索引的三角面片(indexed triangles)"并且使用时和[page:Geometry]中一致:
+			每个三角面片都和三个顶点的索引相关。该 attribute 因此所存储的是每个三角面片的三个顶点的索引。
+
+			如果该 attribute 没有设置过,则 [page:WebGLRenderer renderer] 假设每三个连续的位置代表一个三角面片。
+
+			默认值是 *null*。
+		</p>
+
+		<h3>[property:Boolean isBufferGeometry]</h3>
+		<p>
+			用于检查当前类或派生类的类型是 BufferGeometries。默认值是 *true*。<br /><br />
+
+			该值用于内部优化,你不应该手动修改该值。
+		</p>
+
+		<h3>[property:Object morphAttributes]</h3>
+		<p>
+			存储 [page:BufferAttribute] 的 Hashmap,存储了几何体 [page:Geometry.morphTargets morphTargets] 的细节信息。
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+			当前 bufferGeometry 实例的可选别名。默认值是空字符串。
+		</p>
+
+		<h3>[property:Object userData]</h3>
+		<p>
+			存储 BufferGeometry 的自定义数据的对象。为保持对象在克隆时完整,该对象不应该包括任何函数的引用。
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+			当前对象实例的 [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID],该值会自动被分配,且不应被修改。
+		</p>
+
+		<h2>方法</h2>
+
+		<h3>[page:EventDispatcher EventDispatcher] 在该类上可用的所有方法。</h3>
+
+		<h3>[method:BufferGeometry addAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<p>
+			为当前几何体增加一个 attribute。 的属性,在类的内部,有一个存储 [page:.attributes] 的 hashmap,
+			通过该 hashmap,遍历 attributes 的速度会更快。而使用该方法,可以向 hashmap 内部增加 attribute。
+			所以,你需要使用该方法来添加 attributes。
+		</p>
+
+		<h3>[method:null addGroup]( [param:Integer start], [param:Integer count], [param:Integer materialIndex] )</h3>
+		<p>
+			为当前几何体增加一个 group,详见 [page:BufferGeometry.groups groups] 属性。
+		</p>
+
+
+		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<p> 用给定矩阵转换几何体的顶点坐标。</p>
+
+		<h3>[method:BufferGeometry center] ()</h3>
+		<p>根据边界矩形将几何体居中。</p>
+
+		<h3>[method:BufferGeometry clone]()</h3>
+		<p>克隆当前的 BufferGeometry。</p>
+
+		<h3>[method:BufferGeometry copy]( [param:BufferGeometry bufferGeometry] )</h3>
+		<p>将参数指定的 BufferGeometry 的值拷贝到当前 BufferGeometry 中。</p>
+
+		<h3>[method:null clearGroups]( )</h3>
+		<p>清空所有的 groups。</p>
+
+		<h3>[method:null computeBoundingBox]()</h3>
+		<p>
+			计算当前几何体的的边界矩形,该操作会更新已有 [param:.boundingBox]。<br />
+			边界矩形不会默认计算,需要调用该接口指定计算边界矩形,否则保持默认值 *null*。
+		</p>
+
+		<h3>[method:null computeBoundingSphere]()</h3>
+		<p>
+			计算当前几何体的的边界球形,该操作会更新已有 [param:.boundingSphere]。<br />
+			边界球形不会默认计算,需要调用该接口指定计算边界球形,否则保持默认值 *null*。
+		</p>
+
+		<h3>[method:null computeVertexNormals]()</h3>
+		<p>通过面片法向量的平均值计算每个顶点的法向量。</p>
+
+		<h3>[method:null dispose]()</h3>
+		<p>
+			从内存中销毁对象。 <br />
+			如果在运行是需要从内存中删除 BufferGeometry,则需要调用该函数。
+		</p>
+
+		<h3>[method:BufferGeometry fromDirectGeometry]( [param:Geometry] )</h3>
+		<p>
+			通过 [page:DirectGeometry] 所包含的面数据生成一个 BufferGeometry 对象。对于线型几何体未实现该方法。<br /><br />
+
+			注意: [page:DirectGeometry] 主要用于内部 [page:Geometry] 和 BufferGeometry 的类型转换。
+		</p>
+
+		<h3>[method:BufferGeometry fromGeometry]( [param:Geometry] )</h3>
+		<p>通过 [page:Geometry] 所包含的面信息生成一个 BufferGeometry 对象。对于线型几何体未实现该方法。</p>
+
+		<h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
+		<p>返回指定名称的 [page:BufferAttribute attribute]。</p>
+
+		<h3>[method:BufferAttribute getIndex] ()</h3>
+		<p>返回缓存相关的 [page:.index]。</p>
+
+		<h3>[method:BufferGeometry lookAt] ( [param:Vector3 vector] )</h3>
+		<p>
+			vector - 几何体所朝向的世界坐标。<br /><br />
+
+			旋转几何体朝向控件中的一点。该过程通常在一次处理中完成,不会循环处理。典型的用法是过通过调用 [page:Object3D.lookAt] 实时改变 mesh 朝向。
+		</p>
+
+		<h3>[method:null merge]( [param:BufferGeometry bufferGeometry], [param:Integer offset] )</h3>
+		<p>同参数指定的 BufferGeometry 进行合并。可以通过可选参数指定,从哪个偏移位置开始进行 merge。</p>
+
+		<h3>[method:null normalizeNormals]()</h3>
+		<p>
+			几何体中的每个法向量长度将会为 1。这样操作会更正光线在表面的效果。
+		</p>
+
+		<h3>[method:BufferAttribute removeAttribute]( [param:String name] )</h3>
+		<p>删除具有指定名称的 [page:BufferAttribute attribute]。</p>
+
+		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>
+		<p>
+			在 X 轴上旋转几何体。该操作一般在一次处理中完成,不会循环处理。典型的用法是通过调用 [page:Object3D.rotation] 实时旋转几何体。
+		</p>
+
+		<h3>[method:BufferGeometry rotateY] ( [param:Float radians] )</h3>
+		<p>
+			在 Y 轴上旋转几何体。该操作一般在一次处理中完成,不会循环处理。典型的用法是通过调用 [page:Object3D.rotation] 实时旋转几何体。
+		</p>
+
+		<h3>[method:BufferGeometry rotateZ] ( [param:Float radians] )</h3>
+		<p>
+			在 Z 轴上旋转几何体。该操作一般在一次处理中完成,不会循环处理。典型的用法是通过调用 [page:Object3D.rotation] 实时旋转几何体。
+		</p>
+
+		<h3>[method:BufferGeometry scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			缩放几何体。该操作一般在一次处理中完成,不会循环处理。典型的用法是通过调用 [page:Object3D.scale] 实时旋转几何体。
+		</p>
+
+		<h3>[method:null setIndex] ( [param:BufferAttribute index] )</h3>
+		<p>设置缓存的 [page:.index]。</p>
+
+		<h3>[method:null setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
+		<p>设置缓存的 [page:.drawRange]。详见相关属性说明。</p>
+
+		<h3>[method:BufferGeometry setFromObject] ( [param:Object3D object] )</h3>
+		<p>通过 [page:Object3D] 设置该 BufferGeometry 的 attribute。</p>
+
+		<h3>[method:BufferGeometry setFromPoints] ( [param:Array points] )</h3>
+		<p>通过点队列设置该 BufferGeometry 的 attribute。</p>
+
+		<h3>[method:Object toJSON]()</h3>
+		<p>返回代表该 BufferGeometry 的 JSON 对象。</p>
+
+		<h3>[method:BufferGeometry toNonIndexed]()</h3>
+		<p>返回已索引的 BufferGeometry 的非索引版本。</p>
+
+		<h3>[method:BufferGeometry translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			移动几何体。该操作一般在一次处理中完成,不会循环处理。典型的用法是通过调用 [page:Object3D.rotation] 实时旋转几何体。
+		</p>
+
+		<h3>[method:BufferGeometry updateFromObject] ( [param:Object3D object] )</h3>
+		<div>通过 [page:Object3D] 更新 BufferGeometry 的 attribute。</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

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

@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+		<p class="desc">
+			该对象用于跟踪时间。如果<a href="https://developer.mozilla.org/en-US/docs/Web/API/Performance/now">performance.now()</a>可用,则
+			Clock 对象通过该方法实现,否则通过歉精准的<a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now">Date.now()</a>实现。
+		</p>
+
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name]( [param:Boolean autoStart] )</h3>
+		<p>
+		autoStart — (可选) 是否要自动开启时钟。默认值是 true。
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:Boolean autoStart]</h3>
+		<p>
+			如果设置为 true,则在第一次 update 时开启时钟。默认值是 true。
+		</p>
+
+		<h3>[property:Float startTime]</h3>
+		<p>
+			存储时钟最后一次调用 [page:Clock.start start] 方法的时间。
+ 		</p>
+
+
+		<h3>[property:Float oldTime]</h3>
+		<p>
+			存储时钟最后一次调用  [page:Clock.start start], [page:Clock.getElapsedTime getElapsedTime] 或 [page:Clock.getDelta getDelta] 方法的时间。
+ 		</p>
+
+		<h3>[property:Float elapsedTime]</h3>
+		<p>
+			保存时钟运行的总时长。
+ 		</p>
+
+		<h3>[property:Boolean running]</h3>
+		<p>
+			判断时钟是否在运行。
+ 		</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:null start]()</h3>
+		<p>
+			启动时钟。同时将 [page:Clock.startTime startTime] 和 [page:Clock.oldTime oldTime] 设置为当前时间。
+			设置 [page:Clock.elapsedTime elapsedTime] 为 *0*,并且设置 [page:Clock.running running] 为 *true*.
+		</p>
+
+		<h3>[method:null stop]()</h3>
+		<p>
+			停止时钟。同时将 [page:Clock.oldTime oldTime] 设置为当前时间。
+		</p>
+
+		<h3>[method:Float getElapsedTime]()</h3>
+		<p>
+			获取自时钟启动后的秒数,摒弃将 [page:Clock.oldTime oldTime] 设置为当前时间。<br />
+			如果 [page:Clock.autoStart autoStart] 设置为 *true* 且时钟并未运行,则该方法同时启动时钟。
+		</p>
+
+		<h3>[method:Float getDelta]()</h3>
+		<p>
+			获取自 [page:Clock.oldTime oldTime] 设置后到当前的秒数。 同时将 [page:Clock.oldTime oldTime] 设置为当前时间。<br/>
+			如果 [page:Clock.autoStart autoStart] 设置为 *true* 且时钟并未运行,则该方法同时启动时钟。
+		</p>
+
+
+		<h2>资源</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 103 - 0
docs/api/zh/core/DirectGeometry.html

@@ -0,0 +1,103 @@
+<!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">
+			该类在内部被用于 [page:Geometry] 到 [page:BufferGeometry] 的转换。
+		</p>
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name]()</h3>
+		<p>创建一个新的 [name] 对象。</p>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:Integer id]</h3>
+		<p>当前 [name] 实例的唯一数字标识。</p>
+
+		<h3>[property:String name]</h3>
+		<p>可选名称. 默认值是空字符串。</p>
+
+		<h3>[property:Array type]</h3>
+		<p>返回 'DirectGeometry' 字符串。</p>
+
+		<h3>[property:Array vertices]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array normals]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array colors]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array uvs]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array uvs2]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array groups]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array morphTargets]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array skinWeights]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Array skinIndices]</h3>
+		<p>被初始化为一个空队列, 该属性由 [page:.fromGeometry]() 赋值。</p>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			对应 bufferGeometry 的外边界矩形,该值可通过 [page:.computeBoundingBox]() 计算。默认值是 *null*。
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			对应 bufferGeometry 的外边界球,该值可通过 [page:.computeBoundingSphere]() 计算。默认值是 *null*。
+		</p>
+
+		<h3>[property:Boolean verticesNeedUpdate]</h3>
+		<p>默认值为 false。</p>
+
+		<h3>[property:Boolean normalsNeedUpdate]</h3>
+		<p>默认值为 false。</p>
+
+		<h3>[property:Boolean colorsNeedUpdate]</h3>
+		<p>默认值为 false。</p>
+
+		<h3>[property:Boolean uvsNeedUpdate]</h3>
+		<p>默认值为 false。</p>
+
+		<h3>[property:Boolean groupsNeedUpdate]</h3>
+		<p>默认值为 false。</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[property:null computeGroups]( [param:Geometry geometry] )</h3>
+		<p>
+			计算几何体中有不同 materialIndex 的部分,详见 [page:BufferGeometry.groups]。
+		</p>
+
+		<h3>[property:null fromGeometry]( [param:Geometry geometry] )</h3>
+		<p>传入一个需要转换的 [page:Geometry] 实例。</p>
+
+
+		<h2>资源</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 事件。<br />
+			[link:https://github.com/mrdoob/eventdispatcher.js Eventdispatcher on GitHub]
+		</p>
+
+		<h2>示例</h2>
+
+		<code>
+// 为自定义对象添加事件
+
+var Car = function () {
+
+    this.start = function () {
+
+        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+
+    };
+
+};
+
+// 将 EventDispatcher.prototype 与自定义对象 prototype 进行混合
+
+Object.assign( Car.prototype, EventDispatcher.prototype );
+
+// 使用自定义对象的事件
+
+var car = new Car();
+
+car.addEventListener( 'start', function ( event ) {
+
+    alert( event.message );
+
+} );
+
+car.start();
+		</code>
+
+		<h2>构造函数</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		创建 EventDispatcher 对象。
+		</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:null addEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - 需要添加监听的事件类型。<br />
+		listener - 事件发生时被调用到的函数。
+		</p>
+		<p>
+		为指定事件增加监听函数。
+		</p>
+
+		<h3>[method:Boolean hasEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - 需要被监听的事件类型。<br />
+		listener - 事件发生时被调用到的函数。
+		</p>
+		<p>
+		检查监听函数是否已经添加到指定事件。
+		</p>
+
+		<h3>[method:null removeEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - 需要移除监听的事件类型。<br />
+		listener - 需要被移除的监听函数。
+		</p>
+		<p>
+		从指定事件类型中移除监听函数。
+		</p>
+
+		<h3>[method:null dispatchEvent]( [param:object event] )</h3>
+		<p>
+		event - 将被触发的事件。
+		</p>
+		<p>
+		触发一个事件。
+		</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/core/Face3.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">
+			在 [page:Geometry] 中被使用到的三角面片。这些三角面片会为所有标准几何体自动创建。
+			然而,如果你正在构建一个自定义几何体,你需要手动创建这些三角面片。
+		</p>
+
+
+		<h2>示例</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 } );
+
+//创建仅有一个三角面片的几何体
+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 ) );
+
+//利用顶点 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 );
+
+//将创建的面添加到几何体的面的队列
+geometry.faces.push( face );
+
+//如果没有特别指明,面和顶点的法向量可以通过如下代码自动计算
+geometry.computeFaceNormals();
+geometry.computeVertexNormals();
+
+scene.add( new THREE.Mesh( geometry, material ) );
+	</code>
+
+
+		<h2>构造函数</h2>
+
+		<h3>[name]( [param:Integer a], [param:Integer b], [param:Integer c], [param:Vector3 normal], [param:Color color], [param:Integer materialIndex] )</h3>
+		<p>
+			a — 顶点 A 的索引。<br />
+			b — 顶点 B 的索引。<br />
+			c — 顶点 C 的索引。<br /><br />
+
+			normal — (可选) 面的法向量 ([page:Vector3 Vector3]) 或顶点法向量队列。
+			如果参数传入单一矢量,则用该量设置面的法向量 [page:.normal],如果传入的是包含三个矢量的队列,
+			则用该量设置 [page:.vertexNormals]<br /><br />
+
+			color — (可选) 面的颜色值 [page:Color color] 或顶点颜色值的队列。
+			如果参数传入单一矢量,则用该量设置 [page:.color],如果传入的是包含三个矢量的队列,
+			则用该量设置 [page:.vertexColors]<br /><br />
+
+			materialIndex — (可选) 材质队列中与该面对应的材质的索引。
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:Integer a]</h3>
+		<p>
+			顶点 A 的索引。
+		</p>
+
+		<h3>[property:Integer b]</h3>
+		<p>
+			顶点 B 的索引。
+		</p>
+
+		<h3>[property:Integer c]</h3>
+		<p>
+			顶点 C 的索引。
+		</p>
+
+		<h3>[property:Vector3 normal]</h3>
+		<p>
+			面的法向量 - 矢量展示 Face3 的方向。如果该量是通过调用 [page:Geometry.computeFaceNormals] 自动计算的,
+			该值等于归一化的两条边的差积。默认值是 *(0, 0, 0)*。
+		</p>
+
+		<h3>[property:Color color]</h3>
+		<p>
+			面的颜色值 - 在被用于指定材质的 [page:Material.vertexColors vertexColors] 属性时,该值必须被设置为
+			[page:Materials THREE.FaceColors]。
+		</p>
+
+		<h3>[property:Array vertexNormals]</h3>
+		<p>
+			包含三个 [page:Vector3 vertex normals] 的队列。
+		</p>
+
+		<h3>[property:Array vertexColors]</h3>
+		<p>
+			包含 3 个顶点颜色值的队列 - 在被用于指定材质的 [page:Material.vertexColors vertexColors] 属性时,该值必须被设置为
+			[page:Materials THREE.VertexColors]。
+		</p>
+
+		<h3>[property:Integer materialIndex]</h3>
+		<p>
+			材质队列中与该面相关的材质的索引。默认值为 *0*。
+		</p>
+
+		<h2>方法</h2>
+
+		<h3>[method:Face3 clone]()</h3>
+		<p>克隆该 Face3 对象。</p>
+
+		<h3>[method:Face3 copy]( [param:Face3 face3] )</h3>
+		<p>将参数指定的 Face3 对象的数据拷贝到当前对象。</p>
+
+
+		<h2>资源</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

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

@@ -0,0 +1,334 @@
+<!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 是对 [page:BufferGeometry] 的用户有好替代。Geometry 利用 [page:Vector3]
+			或 [page:Color] 存储了几何体的相关 attributes(如顶点位置,面信息,颜色等)比起 BufferGeometry
+			更容易读写,但是运行效率不如有类型的队列。
+		</p>
+		<p>
+		对于大型工程或正式工程,推荐采用 [page:BufferGeometry]。
+		</p>
+		</div>
+
+		<h2>示例</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>构造函数</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		构造函数没有任何参数。
+		</p>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			Geometry 的外边界矩形,可以通过 [page:.computeBoundingBox]() 进行计算,默认值是 *null*。
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			Geometry 的外边界球形,可以通过 [page:.computeBoundingSphere]() 进行计算,默认值是 *null*。
+		</p>
+
+		<h3>[property:Array colors]</h3>
+		<p>
+			顶点 [page:Color colors] 队列,与顶点数量和顺序保持一致。<br /><br />
+
+			该属性用于 [page:Points] 、 [page:Line] 或派生自 [page:LineSegments] 的类。
+			对于 [page:Mesh Meshes],请使用 [page:Face3.vertexColors] 函数。<br /><br />
+
+			如果要标记队列中的数据已经更新,[page:Geometry Geometry.colorsNeedUpdate] 值需要被设置为 true。
+		</p>
+
+		<h3>[property:Array faces]</h3>
+		<p>
+			[page:Face3 faces] 队列。<br />
+
+			描述每个顶点之间如何组成模型面的面队列。同时该队列保存面和顶点的法向量和颜色信息。<br /><br />
+			如果要标记队列中的数据已经更新,[page:Geometry Geometry.elementsNeedUpdate] 值需要被设置为 true。
+		</p>
+
+		<h3>[property:Array faceVertexUvs]</h3>
+		<p>
+			面的 [link:https://en.wikipedia.org/wiki/UV_mapping UV] 层的队列,该队列用于将纹理和几何信息进行映射。<br />
+			每个 UV 层都是一个 [page:UV] 的队列,顺序和数量同面中的顶点相对用。<br /><br />
+			如果要标记队列中的数据已经更新,[page:Geometry Geometry.uvsNeedUpdate] 值需要被设置为 true。
+		</p>
+
+		<h3>[property:Integer id]</h3>
+		<p>当前 geometry 实例的唯一标识符的数。</p>
+
+		<h3>[property:Boolean isGeometry]</h3>
+		<p>
+			用于判断当前类或派生类属于 Geometries。默认值是 *true*。<br /><br />
+
+			你不应该改变该值,该值用于内部优化。
+		</p>
+
+		<h3>[property:array lineDistances]</h3>
+		<p>
+			用于保存线型几何体中每个顶点间距离的。在正确渲染 [page:LineDashedMaterial] 时,需要用到该数据。
+		</p>
+
+		<h3>[property:Array morphTargets]</h3>
+		<p>
+			[link:https://en.wikipedia.org/wiki/Morph_target_animation morph targets] 的队列。每个
+			morph target 都是一个如下的 javascript 对象:
+		<code>{ name: "targetName", vertices: [ new THREE.Vector3(), ... ] }</code>
+			Morph 顶点和几何体原始顶点在数量和顺序上需要一一对应。
+		</p>
+
+		<h3>[property:Array morphNormals]</h3>
+		<p>
+			一个 morph 法向量的数组。Morph 法向量和 morph target 有类似的结构,每个法向量都是一个如下的 Javascript 对象:
+		<code>morphNormal = { name: "NormalName", normals: [ new THREE.Vector3(), ... ] }</code>
+
+			示例详见 [example:webgl_morphnormals WebGL / morphNormals]。
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>当前几何的可选别名。默认值是一个空字符串。</p>
+
+		<h3>[property:Array skinWeights]</h3>
+		<p>
+			当在处理一个 [page:SkinnedMesh] 时,每个顶点最多可以有 4 个相关的 [page:Bone bones] 来影响它。
+			skinWeights 属性是一个权重队列,顺序同几何体中的顶点保持一致。因而,队列中的第一个 skinWeight
+			就对应几何体中的第一个顶点。由于每个顶点可以被 4 个 [page:Bone bones] 营销,因而每个顶点的 skinWeights
+			就采用一个 [page:Vector4] 表示。
+		</p>
+		<p>
+			skinWeight 矢量中每个元素的取值范围应该在 0 到 1 之间。例如,当设置为 0,骨骼对该顶点的位置没有影响。当设置为 0.5,
+			则对顶点的影响为 50%。 当设置为 100% 则对顶点的影响是 100%。如果矢量中只有一个骨骼与顶点相关联,则你只需要关注矢量中的第一个元素,
+			剩余的元素可以忽略,他们的值可以都设置为 0。
+		</p>
+
+		<h3>[property:Array skinIndices]</h3>
+		<p>
+			就如同 skinWeights 属性一样。skinWeights 的值也是与几何体的顶点相对应。每个顶点可以最多有 4 个骨骼与之相关联。
+			因而第一个 skinIndex 就与几何体的第一个顶点相关联,skinIndex 的值就指明了影响该顶点的骨骼是哪个。例如,第一个顶点的值是
+			<strong>( 10.05, 30.10, 12.12 )</strong>,第一个 skinIndex 的值是<strong>( 10, 2, 0, 0 )</strong>,第一个 skinWeight
+			的值是 <strong>( 0.8, 0.2, 0, 0 )</strong>。上述值表明第一个顶点受到<strong>mesh.bones[10]</strong>骨骼的影响有 80%,
+			受到 <strong>skeleton.bones[2]</strong> 的影响是 20%,由于另外两个 skinWeight 的值是 0,因而他们对顶点没有任何影响。
+		</p>
+		<p>
+			下面以代码的形式展示示例:
+		<code>
+		// 例如
+		geometry.skinIndices[15] = new THREE.Vector4(   0,   5,   9, 10 );
+		geometry.skinWeights[15] = new THREE.Vector4( 0.2, 0.5, 0.3,  0 );
+
+		// 与该顶点相关
+		geometry.vertices[15];
+
+		// 相应骨骼可以这样被调用:
+		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]。
+			该值会被自动分配,请不要修改它。
+		</p>
+
+		<h3>[property:Array vertices]</h3>
+		<p>
+			[page:Vector3 vertices] 的队列。<br />
+			顶点的队列,保存了模型中每个顶点的位置信息。<br />
+			如果要标记队列中的数据已经更新,[page:.verticesNeedUpdate] 值需要被设置为 true。
+		</p>
+
+		<h3>[property:Boolean verticesNeedUpdate]</h3>
+		<p> 如果顶点队列中的数据被修改,该值需要被设置为 *true*。</p>
+
+		<h3>[property:Boolean elementsNeedUpdate]</h3>
+		<p> 如果面队列中的数据被修改,该值需要被设置为 *true*。</p>
+
+		<h3>[property:Boolean uvsNeedUpdate]</h3>
+		<p> 如果 UV 队列中的数据被修改,该值需要被设置为 *true*。</p>
+
+		<h3>[property:Boolean normalsNeedUpdate]</h3>
+		<p> 如果法向量队列中的数据被修改,该值需要被设置为 *true*。</p>
+
+		<h3>[property:Boolean colorsNeedUpdate]</h3>
+		<p> 如果颜色队列或 face3 的颜色数据被修改,该值需要被设置为 *true*。</p>
+
+		<h3>[property:Boolean groupsNeedUpdate]</h3>
+		<p> 如果 face3 的 materialIndex 被修改,该值需要被设置为 *true*。</p>
+
+		<h3>[property:Boolean lineDistancesNeedUpdate]</h3>
+		<p> 如果 linedistances 队列中的数据被修改,该值需要被设置为 *true*。</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[page:EventDispatcher EventDispatcher] 该类中可用的函数。</h3>
+
+		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<p> 将矩阵信息直接应用于几何体顶点坐标。</p>
+
+		<h3>[method:Geometry center] ()</h3>
+		<p> 基于外边界矩形将几何体居中。</p>
+
+		<h3>[method:Geometry clone]()</h3>
+		<p>克隆当前几何体。<br /><br />
+			该方法除几何体的顶点、面信息和 UV 外不会复制其他属性。
+		</p>
+
+		<h3>[method:null computeBoundingBox]()</h3>
+		<p> 计算当前几何体的外边界矩形。该方法会更新 [page:Geometry Geometry.boundingBox] 属性值。</p>
+
+		<h3>[method:null computeBoundingSphere]()</h3>
+		<p> 计算当前几何体的外边界球。该方法会更新 [page:Geometry Geometry.boundingSphere] 属性值。</p>
+
+		<p>
+			计算外边界矩形或外边界球并不是默认会自动调用的方法,这两个函数需要被显示的调用才能天得到相应属性值,否则对应属性值保持默认值 *null*。
+		</p>
+
+		<h3>[method:null computeFaceNormals]()</h3>
+		<p> 计算 [page:Face3.normal face normals] 值。</p>
+
+		<h3>[method:null computeFlatVertexNormals]()</h3>
+		<p> 计算 flat [page:Face3.vertexNormals vertex normals] 值。
+			该方法会将顶点法向量的值赋值为相应面的法向量值。</p>
+
+		<h3>[method:null computeMorphNormals]()</h3>
+		<p> 计算 [page:.morphNormals] 值。</p>
+
+		<h3>[method:null computeVertexNormals]( [param:Boolean areaWeighted] )</h3>
+		<p>
+		areaWeighted - 如果该值设置为 true,则每个面的法向量对顶点法向量的影响按照面的面积大小来计算。默认值为 true.<br /><br />
+
+			通过周围面的法向量计算顶点的法向量。
+		</p>
+
+		<h3>[method:Geometry copy]( [param:Geometry geometry] )</h3>
+		<p>
+			将参数代表的几何体的顶点、面和 UV 复制到当前几何体。该方法不会复制除此以外的别的属性值。
+		</p>
+
+		<h3>[method:null dispose]()</h3>
+		<p>
+			将对象从内存中删除。 <br />
+
+			在你删除一个几何体时,不要忘记调用该方法,否则会造成内存泄漏。
+		</p>
+
+		<h3>[method:Geometry fromBufferGeometry]( [param:BufferGeometry geometry] )</h3>
+		<p> 将一个 [page:BufferGeometry] 对象,转换成一个 Geometry 对象。</p>
+
+		<h3>[method:Geometry lookAt] ( [param:Vector3 vector] )</h3>
+		<p>
+			vector - 当前几何体朝向的世界坐标。<br /><br />
+
+			该方法将几何体进行旋转,是的几何体朝向参数指定的世界坐标。该方法一般在一次处理中完成,但不在渲染过程中执行。<br>
+			一般使用 [page:Object3D.lookAt] 方法进行实时更改。
+		</p>
+
+		<h3>[method:null merge]( [param:Geometry geometry], [param:Matrix4 matrix], [param:Integer materialIndexOffset] )</h3>
+		<p> 将两个几何体,或一个几何体和一个从对象中通过变换获得的几何体进行合并。</p>
+
+		<h3>[method:null mergeMesh]( [param:Mesh mesh] )</h3>
+		<p> 将参数指定的面片信息与当前几何体进行合并。同样会使用到参数 mesh 的变换。</p>
+
+
+		<h3>[method:null mergeVertices]()</h3>
+		<p>
+			通过 hashmap 检查重复的顶点。<br />
+			重复的顶点将会被移除,面的顶点信息会被更新。
+		</p>
+
+		<h3>[method:null normalize]()</h3>
+		<p>
+			将当前几何体归一化。 <br />
+			将当前几何体居中,并且使得该几何体的外边界球半径为 *1.0*。
+		</p>
+
+		<h3>[method:Geometry rotateX] ( [param:Float radians] )</h3>
+		<p>
+			将几何体绕 X 轴旋转参数指定度数。该操作通常在一次处理中完成,但不会在渲染过程中处理。<br>
+			使用 [page:Object3D.rotation] 对模型面片进行实时旋转处理。
+		</p>
+
+		<h3>[method:Geometry rotateY] ( [param:Float radians] )</h3>
+		<p>
+			将几何体绕 Y 轴旋转参数指定度数。该操作通常在一次处理中完成,但不会在渲染过程中处理。<br>
+			使用 [page:Object3D.rotation] 对模型面片进行实时旋转处理。
+		</p>
+
+		<h3>[method:Geometry rotateZ] ( [param:Float radians] )</h3>
+		<p>
+			将几何体绕 Z 轴旋转参数指定度数。该操作通常在一次处理中完成,但不会在渲染过程中处理。<br>
+			使用 [page:Object3D.rotation] 对模型面片进行实时旋转处理。
+		</p>
+
+		<h3>[method:Geometry setFromPoints] ( [param:Array points] )</h3>
+		<p>通过点队列设置一个 Geometry 中的顶点。</p>
+
+		<h3>[method:null sortFacesByMaterialIndex] (  )</h3>
+		<p>
+			通过材质索引对面队列进行排序。对于复杂且有多个材质的几何体,该操作可以有效减少 draw call 从而提升性能。
+		</p>
+
+		<h3>[method:Geometry scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			缩放几何体大小。该操作通常在一次处理中完成,但不会在渲染过程中处理。<br>
+			使用 [page:Object3D.scale] 对模型面片进行实时缩放处理。
+		</p>
+
+		<h3>[method:JSON toJSON] ( )</h3>
+		<p> 将 Geometry 对象数据转为  JSON 格式。</p>
+
+		<h3>[method:Geometry translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			移动当前几何体。该操作通常在一次处理中完成,但不会在渲染过程中处理。<br>
+			使用 [page:Object3D.position] 对模型面片进行实时移动处理。
+		</p>
+
+
+		<h2>资源</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">
+			[page:BufferAttribute] 的实例化版本。
+		</p>
+
+		<h2>构造函数</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+		<p>
+		</p>
+
+		<h2>属性</h2>
+		继承属性详见 [page:BufferAttribute]。
+
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+			默认值为 *1*。
+		</p>
+
+		<h3>[property:Boolean isInstancedBufferAttribute]</h3>
+		<p>
+			默认值为 *true*.
+		</p>
+
+		<h2>方法</h2>
+		<p>继承方法详见 [page:BufferAttribute]。</p>
+
+		<h2>资源</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">
+		[page:BufferGeometry] 的实例化版本。
+		</p>
+
+		<h2>构造函数</h2>
+		<h3>[name]( )</h3>
+		<p> 默认构造函数没有参数。
+		</p>
+
+		<h2>属性</h2>
+		继承属性详见 [page:BufferGeometry]。
+
+		<h3>[property:Number maxInstancedCount]</h3>
+		<p>
+			默认值是 *undefined*。
+		</p>
+
+		<h3>[property:Boolean isInstancedBufferGeometry]</h3>
+		<p>
+			默认值是 *true*。
+		</p>
+
+		<h2>方法</h2>
+		<p>继承方法详见 [page:BufferAttribute]。</p>
+
+		<h3>[property:Number addGroup]( start, count, materialIndex )</h3>
+		<p>
+
+		</p>
+
+
+		<h2>资源</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">
+		[page:InterleavedBuffer] 的实例化版本。
+		</p>
+
+		<h2>构造函数</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+		<p>
+		</p>
+
+		<h2>属性</h2>
+		<p>
+			继承属性详见 [page:InterleavedBuffer]。
+		</p>
+
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+			默认值是 *1*。
+		</p>
+
+		<h3>[property:Boolean isInstancedInterleavedBuffer]</h3>
+		<p>
+			默认值是 *true*。
+		</p>
+
+		<h2>方法</h2>
+		<p>
+			继承方法详见 [page:InterleavedBuffer]。
+		</p>
+
+		<h2>资源</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">
+			"交叉存储" 表明多个类型的 attributes (例如,顶点位置、法向量、UV 和颜色值)被存储到一个队列中。
+			<br/><br/>
+			如下链接有对交叉存储更详细的介绍: [link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html Interleaved array basics]
+		</p>
+
+		<h2>示例</h2>
+
+		<p>[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]</p>
+
+		<h2>构造函数</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer stride] )</h3>
+		<p>
+			[page:TypedArray array] -- 一个基于共享缓存的类型化队列。该队列存储几何体相关数据。<br/>
+			[page:Integer stride] -- 每个顶点占用类型化队列的多少个元素。
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:Array array]</h3>
+		<p>
+			一个基于共享缓存的类型化队列。该队列存储几何体相关数据。
+		</p>
+
+		<h3>[property:Integer stride]</h3>
+		<p>
+			每个顶点占用类型化队列的多少个元素。
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			类型化队列中,所有元素的数目。
+		</p>
+
+		<h3>[property:Boolean dynamic]</h3>
+		<p>
+			默认值为 *false*。
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>
+			对象存储着需要更新的数据的偏移量和数量。
+		</p>
+
+		<h3>[property:Number updateRange.offset]</h3>
+		<p>
+			默认值为 *0*。
+		</p>
+
+		<h3>[property:Number updateRange.count]</h3>
+		<p>
+			默认值为 *-1*。
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+			版本号,每次 needsUpdate 属性设置为 true 时,版本号增加。
+		</p>
+
+		<h3>[property:Integer isInterleavedBuffer]</h3>
+		<p>
+			默认值为 *true*。
+		</p>
+
+		<h3>[property:Integer needsUpdate]</h3>
+		<p>
+			默认值为 *false*。该值被设置为 true 时,会导致 [page:InterleavedBuffer.version version] 增加。
+		</p>
+
+		<h2>方法</h2>
+
+		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<p>
+		 array - 必须是一个类型化的队列。
+		</p>
+
+		<h3>[method:InterleavedBuffer setDynamic] ( [param:Boolean value] ) </h3>
+		<p>
+			根据输入参数设置 [page:InterleavedBuffer.dynamic dynamic] 的值。
+		</p>
+
+		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
+		<p>
+			将参数指定的 [name] 拷贝到当前 [name]。
+		</p>
+
+		<h3>[method:InterleavedBuffer copyAt]( [param:Integer index1], [param:InterleavedBuffer attribute], [param:Integer index2] ) </h3>
+		<p> 将数据从 attribute[index2] 拷贝到 [page:InterleavedBuffer.array array][index1]。</p>
+
+		<h3>[method:InterleavedBuffer set]( [param:TypedArray value], [param:Integer offset] ) </h3>
+		<p>
+			value - 被拷贝的源(类型化)队列。<br/>
+			offset - 源队列中,数据开始拷贝的偏移量。默认值是 *0*.<br/><br />
+
+			将源队列数据拷贝到目标队列缓存中。
+		</p>
+
+		<h3>[method:InterleavedBuffer clone]() </h3>
+		<p>
+			克隆当前 [name]。
+		</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/core/InterleavedBufferAttribute.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">
+
+		</p>
+
+		<h2>构造函数</h2>
+		<h3>[name]( [param:InterleavedBuffer interleavedBuffer], [param:Integer itemSize], [param:Integer offset], [param:Boolean normalized] )</h3>
+		<p>
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:InterleavedBuffer data]</h3>
+		<p>
+			传入构造函数的 [page:InterleavedBuffer InterleavedBuffer] 实例。
+		</p>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>
+			[page:InterleavedBufferAttribute.data data].array 的值。
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			[page:InterleavedBufferAttribute.data data].count 的值。
+
+			所缓存的矢量的个数。如果缓存的矢量是一个三元组(例如,位置、法向量或颜色),则该值计算上述三元组的个数。
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>
+			队列中每个矢量有多少个元素构成。
+		</p>
+
+		<h3>[property:Integer offset]</h3>
+		<p>
+			缓存队列中每个元素的起始位置的偏移量。
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+			默认值为 *true*。
+		</p>
+
+		<h3>[property:Boolean isInterleavedBufferAttribute]</h3>
+		<p>
+			默认值为 *true*。
+		</p>
+
+		<h2>方法</h2>
+
+		<h3>[method:Number getX]( [param:Integer index] ) </h3>
+		<p>返回给定索引矢量的第一个元素 (X 值)。</p>
+
+		<h3>[method:Number getY]( [param:Integer index] ) </h3>
+		<p>返回给定索引矢量的第二个元素 (Y 值)。</p>
+
+		<h3>[method:Number getZ]( [param:Integer index] ) </h3>
+		<p>返回给定索引矢量的第三个元素 (Z 值)。</p>
+
+		<h3>[method:Number getW]( [param:Integer index] ) </h3>
+		<p>返回给定索引矢量的第四个元素 (W 值)。</p>
+
+		<h3>[method:null setX]( [param:Integer index], [param:Float x] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第一个元素 (X 值)。</p>
+
+		<h3>[method:null setY]( [param:Integer index], [param:Float y] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第二个元素 (Y 值)。</p>
+
+		<h3>[method:null setZ]( [param:Integer index], [param:Float z] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第三个元素 (Z 值)。</p>
+
+		<h3>[method:null setW]( [param:Integer index], [param:Float w] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第四个元素 (W 值)。</p>
+
+		<h3>[method:null setXY]( [param:Integer index], [param:Float x], [param:Float y] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第一、二个元素 (X 和 Y 值)。</p>
+
+		<h3>[method:null setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第一、二、三个元素 (X Y 和 Z 值)。</p>
+
+		<h3>[method:null setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] ) </h3>
+		<p>通过给定参数,设置指定索引矢量的第一、二、三、四个元素 (X Y Z 和 W 值)。</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/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">
+			[page:Layers] 对象为 [page:Object3D] 分配 1个到 32 个图层。32个图层从 0 到 31 编号标记。
+			在内部实现上,每个图层对象被存储为一个 [link:https://en.wikipedia.org/wiki/Mask_(computing) bit mask],
+			默认的,所有 [page:Object3D] 对象都存储在第 0 个图层上。<br /><br />
+
+			图层对象可以用于控制对象的显示。当 [page:Camera camera] 的内容被渲染时与其共享图层相同的物体会被显示。每个对象都需要与一个
+			[page:Camera camera] 共享图层。<br /><br />
+
+			每个继承自 [page:Object3D] 的对象都有一个 [page:Object3D.layers] 对象。
+		</p>
+
+
+		<h2>构造函数</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+			创建一个新的图层对象,该对象默认与第 0 图层关联。
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:Integer mask]</h3>
+		<p>
+			用 bit mask 表示当前图层对象与 0 - 31 中的哪些图层相对应。所属层所对应的比特位为 1,其他位位 0。
+		</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:null disable]( [param:Integer layer] )</h3>
+		<p>
+			layer - 一个 0 - 31 的整数。<br /><br />
+
+			删除图层对象与参数指定图层的对应关系。
+		</p>
+
+		<h3>[method:null enable]( [param:Integer layer] )</h3>
+		<p>
+			layer - 一个 0 - 31 的整数。<br /><br />
+
+			增加图层对象与参数指定图层的对应关系。
+		</p>
+
+		<h3>[method:null set]( [param:Integer layer] )</h3>
+		<p>
+			layer - 一个 0 - 31 的整数。<br /><br />
+
+			删除图层对象已有的所有对应关系,增加与参数指定的图层的对应关系。
+		</p>
+
+		<h3>[method:Boolean test]( [param:Layers layers] )</h3>
+		<p>
+			layers - 一个图层对象。<br /><br />
+
+			如果传入图层对象与当前对象属于相同的一组图层,则返回 true,否则返回 false。
+		</p>
+
+		<h3>[method:null toggle]( [param:Integer layer] )</h3>
+		<p>
+			layer - 一个 0 - 31 的整数。<br /><br />
+
+			根据参数切换对象所属图层。
+		</p>
+
+		<h2>资源</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

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

@@ -0,0 +1,414 @@
+<!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">
+		这是Three.js中大部分对象的基类,提供了一系列的属性和方法来对三维空间中的物体进行操纵。<br /><br />
+
+		请注意,可以通过[page:.add]( object )方法来将对象进行组合,该方法将对象添加为子对象,但为此最好使用[page:Group](来作为父对象)。
+	</p>
+
+
+	<h2>构造器</h2>
+
+
+	<h3>[name]()</h3>
+	<p>
+		构造器中不带有参数。
+	</p>
+
+
+	<h2>属性</h2>
+
+	<h3>[property:Boolean castShadow]</h3>
+	<p>对象是否被渲染到阴影贴图中。默认值为*false*。</p>
+
+	<h3>[property:Object3D children]</h3>
+	<p>含有对象的子级的数组。请参阅[page:Group]来了解将手动对象进行分组的相关信息。</p>
+
+	<h3>[property:Boolean frustumCulled]</h3>
+	<p>
+		当这个属性被设置的时候,它将在渲染物体之前,检查每一帧的物体是否在摄像机的视锥体中。
+		否则,即使该物体不可见,它也将在每一帧中被渲染,默认值为*true*。
+	</p>
+
+	<h3>[property:Integer id]</h3>
+	<p>只读 —— 表示该对象实例ID的唯一数字。</p>
+
+	<h3>[property:Boolean isObject3D]</h3>
+	<p>
+
+		用于测试这个类或者派生类是否为Object3D,默认为*true*。<br /><br />
+		你不应当对这个属性进行改变,因为它在内部使用,以用于优化。
+	</p>
+
+	<h3>[property:Layers layers]</h3>
+	<p>
+		物体的层级关系。
+		物体只有和一个正在使用的[page:Camera]至少在同一个层时才可见。
+	</p>
+
+	<h3>[property:Matrix4 matrix]</h3>
+	<p>局部变换矩阵。</p>
+
+	<h3>[property:Boolean matrixAutoUpdate]</h3>
+	<p>
+		当这个属性设置了之后,它将计算每一帧的位移、旋转(四元变换)和缩放矩阵,并重新计算matrixWorld属性。默认值是[page:Object3D.DefaultMatrixAutoUpdate] (true)。
+	</p>
+
+	<h3>[property:Matrix4 matrixWorld]</h3>
+	<p>
+		物体的世界变换。若这个Object3D没有父级,则它将和local transform [page:.matrix](局部变换矩阵)相同。
+	</p>
+
+	<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
+	<p>
+		当这个属性设置了之后,它将计算在那一帧中的matrixWorld,并将这个值重置为false。默认值为*false*。
+	</p>
+
+	<h3>[property:Matrix4 modelViewMatrix]</h3>
+	<p>这个值传递给着色器,用于计算物体的位置。</p>
+
+	<h3>[property:String name]</h3>
+	<p>对象的名称,可选、不必唯一。默认值是一个空字符串。</p>
+
+	<h3>[property:Matrix3 normalMatrix]</h3>
+	<p>
+		这个值传递给着色器,用于计算物体的光照。
+		它是物体的modelViewMatrix矩阵中,左上角3x3子矩阵的逆的转置矩阵。
+		<br /><br />
+		使用这个特殊矩阵的原因,是只需使用modelViewMatrix就可以得出一个法线(缩放时)的非单位长度或者非垂直的方向(不规则缩放时)。
+		<br /><br />
+		另一方面,modelViewMatrix矩阵中的位移部分和法线的计算无关,因此Matrix3就已经足够了。
+	</p>
+
+	<h3>[property:function onAfterRender]</h3>
+	<p>
+		一个可选的回调函数,在Object3D渲染之后直接执行。
+		使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。
+	</p>
+
+	<h3>[property:function onBeforeRender]</h3>
+	<p>
+			一个可选的回调函数,在Object3D渲染之前直接执行。
+			使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。
+	</p>
+
+	<h3>[property:Object3D parent]</h3>
+	<p>在[link:https://en.wikipedia.org/wiki/Scene_graph scene graph](场景图)中,一个对象的父级对象。
+		一个对象最多仅能有一个父级对象。</p>
+
+	<h3>[property:Vector3 position]</h3>
+	<p>表示对象局部位置的[page:Vector3]。默认值为(0, 0, 0)。</p>
+
+	<h3>[property:Quaternion quaternion]</h3>
+	<p>表示对象局部旋转的[page:Quaternion Quaternion](四元数)。</p>
+
+	<h3>[property:Boolean receiveShadow]</h3>
+	<p>材质是否接收阴影。默认值为*false*。</p>
+
+	<h3>[property:Number renderOrder]</h3>
+	<p>
+		这个值将使得[link:https://en.wikipedia.org/wiki/Scene_graph scene graph](场景图)中默认的的渲染顺序被覆盖,
+		即使不透明对象和透明对象保持独立顺序。
+		渲染顺序是由低到高来排序的,默认值为*0*。
+	</p>
+
+	<h3>[property:Euler rotation]</h3>
+	<p>
+		物体的局部旋转,以弧度来表示。(请参阅[link:https://en.wikipedia.org/wiki/Euler_angles Euler angles]-欧拉角)
+	</p>
+
+	<h3>[property:Vector3 scale]</h3>
+	<p>
+		物体的局部缩放。默认值是[page:Vector3]( 1, 1, 1 )。
+	</p>
+
+	<h3>[property:Vector3 up]</h3>
+	<p>
+		这个属性由[page:.lookAt lookAt]方法所使用,例如,来决定结果的朝向。
+		默认值是[page:Object3D.DefaultUp],即( 0, 1, 0 )。
+	</p>
+
+	<h3>[property:object userData]</h3>
+	<p>
+		一个用于存储Object3D自定义数据的对象。
+		它不应当包含对函数的引用,因为这些函数将不会被克隆。
+	</p>
+
+	<h3>[property:String uuid]</h3>
+	<p>
+		该对象实例的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]。
+		这是一个自动生成的值,不应当对其进行修改。
+	</p>
+
+	<h3>[property:Boolean visible]</h3>
+	<p>可见性。这个值为*true*时,物体将被渲染。默认值为*true*。</p>
+
+
+
+
+	<h2>静态属性</h2>
+	<p>
+		静态属性和方法由每个类所定义,并非由每个类的实例所定义。
+		也就是说,改变[page:Object3D.DefaultUp]或[page:Object3D.DefaultMatrixAutoUpdate]的值,
+		将改变<b>每个在此之后</b>由Object3D类(或派生类)创建的实例中的[page:.up up]和[page:.matrixAutoUpdate matrixAutoUpdate]的值。(已经创建好的Object3D不会受到影响)。
+	</p>
+
+	<h3>[property:Vector3 DefaultUp]</h3>
+	<p>
+		默认的物体的[page:.up up]方向,同时也作为[page:DirectionalLight]、[page:HemisphereLight]和[page:Spotlight](自顶向下创建的灯光)的默认方向。
+		默认设为( 0, 1, 0 )。
+	</p>
+
+	<h3>[property:Vector3 DefaultMatrixAutoUpdate]</h3>
+	<p>
+			[page:.matrixAutoUpdate matrixAutoUpdate]的默认设置,用于新创建的Object3D。<br />
+
+	</p>
+
+
+	<h2>方法</h2>
+
+	<h3>[page:EventDispatcher EventDispatcher] 方法在这个类上是可用的。</h3>
+
+	<h3>[method:null add]( [param:Object3D object], ... )</h3>
+	<p>
+		添加<b>对象</b>到这个对象的子级,可以添加任意数量的对象。
+		当前传入的对象中的父级将在这里被移除,因为一个对象仅能有一个父级。<br /><br />
+		请参阅[page:Group]来查看手动编组对象的相关信息。
+	</p>
+
+	<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+	<p>对当前物体应用这个变换矩阵,并更新物体的位置、旋转和缩放。</p>
+
+	<h3>[method:Object3D applyQuaternion]( [param:Quaternion quaternion] )</h3>
+	<p>对当前物体应用由四元数所表示的变换。</p>
+
+	<h3>[method:Object3D clone]( [param:Boolean recursive] )</h3>
+	<p>
+		recursive —— 如果值为true,则该物体的后代也会被克隆。默认值为true。<br /><br />
+
+		返回对象前物体的克隆(以及可选的所有后代)。
+	</p>
+
+	<h3>[method:this copy]( [param:Object3D object], [param:Boolean recursive] )</h3>
+	<p>
+		recursive —— 如果值为true,则该物体的后代也会被复制。默认值为true。<br /><br />
+		复制给定的对象到这个对象中。
+	</p>
+
+	<h3>[method:Object3D getObjectById]( [param:Integer id] )</h3>
+	<p>
+		id —— 标识该对象实例的唯一数字。<br /><br />
+
+		搜索该对象的子级,返回第一个带有匹配id的子对象。<br />
+		请注意,id是按照时间顺序来分配的:1、2、3、……,每增加一个新的对象就自增1。
+	</p>
+
+	<h3>[method:Object3D getObjectByName]( [param:String name] )</h3>
+	<p>
+		name —— 用于来匹配子物体中Object3D.name属性的字符串。<br /><br />
+
+		搜索该对象的子级,返回第一个带有匹配name的子对象。<br />
+		请注意,大多数的对象中name默认是一个空字符串,要使用这个方法,你将需要手动地设置name属性。
+	</p>
+
+	<h3>[method:Object3D getObjectByProperty]( [param:String name], [param:Float value] )</h3>
+	<p>
+		name —— 将要用于查找的属性的名称。<br />
+		value —— 给定的属性的值。 <br /><br />
+		搜索该对象的子级,返回第一个给定的属性中包含有匹配的值的子对象。
+	</p>
+
+	<h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3>
+	<p>
+		[page:Vector3 target] — 结果将被复制到这个Vector3中。<br /><br />
+		返回一个表示该物体在世界空间中位置的矢量。
+	</p>
+
+	<h3>[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )</h3>
+	<p>
+		[page:Quaternion target] — 结果将被复制到这个Quaternion中。<br /><br />
+		返回一个表示该物体在世界空间中旋转的四元数。
+	</p>
+
+	<h3>[method:Vector3 getWorldScale]( [param:Vector3 target] )</h3>
+	<p>
+		[page:Vector3 target] — 结果将被复制到这个Vector3中。<br /><br />
+		返回一个包含着该物体在世界空间中各个轴向上所应用的缩放因数的矢量。
+	</p>
+
+	<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
+	<p>
+		[page:Vector3 target] — 结果将被复制到这个Vector3中。 <br /><br />
+		返回一个表示该物体在世界空间中Z轴正方向的矢量。
+	</p>
+
+
+	<h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3>
+	<p>
+		vector - 一个表示局部(物体)空间中位置的向量。 <br /><br />
+		将局部空间向量转换为世界空间向量。
+	</p>
+
+	<h3>[method:null lookAt]( [param:Vector3 vector] )</br>
+		[method:null lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+	<p>
+		vector - 一个表示世界空间中位置的向量。<br /><br />
+		也可以使用世界空间中[page:.x x]、[page:.y y]和[page:.z z]的位置分量。<br /><br />
+		旋转物体使其在世界空间中面朝一个点。<br /><br />
+		这一方法不支持其父级被旋转过或者被位移过的物体。
+	</p>
+
+	<h3>[method:Array raycast]( [param:Raycaster raycaster], [param:Array intersects] )</h3>
+	<p>抽象(空方法),在一条被投射出的射线与这个物体之间获得交点。
+		在一些子类,例如[page:Mesh], [page:Line], and [page:Points]实现了这个方法,以用于光线投射。
+	</p>
+
+	<h3>[method:null remove]( [param:Object3D object], ... )</h3>
+	<p>
+		从当前对象的子级中移除<b>对象</b>。可以移除任意数量的对象。
+	</p>
+
+	<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+	<p>
+		axis —— 一个在局部空间中的标准化向量。<br />
+		angle —— 角度,以弧度来表示。<br /><br />
+		在局部空间中绕着该物体的轴来旋转一个物体,假设这个轴已被标准化。
+	</p>
+
+	<h3>[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+	<p>
+		axis -- 一个在世界空间中的标准化向量。<br />
+		angle -- 角度,以弧度来表示。<br /><br />
+
+		在世界空间中绕着该物体的轴来旋转一个物体,假设这个轴已被标准化。
+		方法假设该物体没有旋转过的父级。
+	</p>
+
+	<h3>[method:this rotateX]( [param:Float rad] )</h3>
+	<p>
+		rad - 将要旋转的角度(以弧度来表示)。<br /><br />
+		绕局部空间的X轴旋转这个物体。
+	</p>
+
+	<h3>[method:this rotateY]( [param:Float rad] )</h3>
+	<p>
+		rad - 将要旋转的角度(以弧度来表示)。<br /><br />
+		绕局部空间的Y轴旋转这个物体。
+	</p>
+
+	<h3>[method:this rotateZ]( [param:Float rad] )</h3>
+	<p>
+		rad - 将要旋转的角度(以弧度来表示)。<br /><br />
+		绕局部空间的Z轴旋转这个物体。
+	</p>
+
+	<h3>[method:null setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3>
+	<p>
+		axis -- 一个在局部空间中的标准化向量。<br />
+		angle -- 角度(以弧度来表示)。<br /><br />
+
+		调用[page:.quaternion]中的[page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] )。
+	</p>
+
+	<h3>[method:null setRotationFromEuler]( [param:Euler euler] )</h3>
+	<p>
+		euler -- 指定了旋转量的欧拉角。<br />
+
+		调用[page:.quaternion]中的[page:Quaternion.setRotationFromEuler setRotationFromEuler]( [page:Euler euler])。
+
+	</p>
+
+	<h3>[method:null setRotationFromMatrix]( [param:Matrix4 m] )</h3>
+	<p>
+		m -- 通过该矩阵中的旋转分量来旋转四元数。<br />
+			
+		调用[page:.quaternion]中的[page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m])。
+		<br /><br />
+
+		请注意,这里假设m上的3x3矩阵是一个纯旋转矩阵(即未缩放的矩阵)。
+	</p>
+
+	<h3>[method:null setRotationFromQuaternion]( [param:Quaternion q] )</h3>
+	<p>
+		q -- 标准化的四元数。<br /><br />
+
+将所给的四元数复制到[page:.quaternion]中。
+	</p>
+
+	<h3>[method:null toJSON]( [param:Quaternion q] )</h3>
+	<p>
+		将这个对象转换为JSON格式。
+	</p>
+
+	<h3>[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )</h3>
+	<p>
+		axis -- 一个在局部空间中的标准化向量。<br />
+		distance -- 将要平移的距离。<br /><br />
+		在局部空间中沿着一条轴来平移物体,假设轴已被标准化。
+	</p>
+
+	<h3>[method:this translateX]( [param:Float distance] )</h3>
+	<p>沿着X轴将平移*distance*个单位。</p>
+
+	<h3>[method:this translateY]( [param:Float distance] )</h3>
+	<p>沿着Y轴将平移*distance*个单位。</p>
+
+	<h3>[method:this translateZ]( [param:Float distance] )</h3>
+	<p>沿着Z轴将平移*distance*个单位。</p>
+
+	<h3>[method:null traverse]( [param:Function callback] )</h3>
+	<p>
+
+		callback - 以一个object3D对象作为第一个参数的函数。
+		<br /><br />
+
+		在对象以及后代中执行的回调函数。
+	</p>
+
+	<h3>[method:null traverseVisible]( [param:Function callback] )</h3>
+	<p>
+			callback - 以一个object3D对象作为第一个参数的函数。
+			<br /><br />
+
+		类似traverse函数,但在这里,回调函数仅对可见的对象执行,不可见对象的后代将不遍历。
+	</p>
+
+	<h3>[method:null traverseAncestors]( [param:Function callback] )</h3>
+	<p>
+		callback - 以一个object3D对象作为第一个参数的函数。<br /><br />
+
+		在所有的祖先中执行回调函数。
+	</p>
+
+	<h3>[method:null updateMatrix]()</h3>
+	<p>更新局部变换。</p>
+
+	<h3>[method:null updateMatrixWorld]( [param:Boolean force] )</h3>
+	<p>更新物体及其子级的全局变换。</p>
+
+
+	<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
+	<p>
+		vector - 一个世界向量.<br /><br />
+		将世界空间中的向量转换为局部空间向量。
+	</p>
+
+	<h2>源代码</h2>
+
+	[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+</body>
+
+</html>

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

@@ -0,0 +1,192 @@
+<!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/Ray_casting raycasting](光线投射)。
+			光线投射用于进行鼠标拾取(在三维空间中计算出鼠标移过了什么物体)。
+		</p>
+
+		<h2>示例</h2>
+		<code>
+		var raycaster = new THREE.Raycaster();
+		var mouse = new THREE.Vector2();
+
+		function onMouseMove( event ) {
+
+			// 将鼠标位置归一化为设备坐标。x 和 y 方向的取值范围是 (-1 to +1)
+
+			mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+			mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+
+		}
+
+		function render() {
+
+			// 通过摄像机和鼠标位置更新射线
+			raycaster.setFromCamera( mouse, camera );
+
+			// 计算物体和射线的焦点
+			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>
+			其它示例:<br>[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>构造器</h2>
+
+		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction], [param:Float near], [param:Float far] ) {</h3>
+		<p>
+		[page:Vector3 origin] —— 光线投射的原点向量。<br />
+		[page:Vector3 direction] —— 向射线提供方向的方向向量,应当被标准化。<br />
+		[page:Float near] —— 返回的所有结果比near远。near不能为负值,其默认值为0。<br />
+		[page:Float far] —— 返回的所有结果都比far近。far不能小于near,其默认值为Infinity(正无穷。)</p>
+		<p>
+			这将创建一个新的raycaster对象。<br />
+
+		</p>
+
+
+		<h2>属性</h2>
+
+		<h3>[property:float far]</h3>
+		<p>
+			raycaster的远距离因数(投射远点)。这个值表明哪些对象可以基于该距离而被raycaster所丢弃。
+			这个值不应当为负,并且应当比near属性大。
+		</p>
+
+		<h3>[property:float linePrecision]</h3>
+		<p>
+
+			raycaster与[page:Line](线)物体相交时的精度因数。
+
+		</p>
+
+		<h3>[property:float near]</h3>
+		<p>
+			raycaster的近距离因数(投射近点)。这个值表明哪些对象可以基于该距离而被raycaster所丢弃。
+			这个值不应当为负,并且应当比near属性小。
+		</p>
+
+		<h3>[property:Object params]</h3>
+		<p>
+			具有以下属性的物体:<code>
+{
+	Mesh: {},
+	Line: {},
+	LOD: {},
+	Points: { threshold: 1 },
+	Sprite: {}
+}
+			</code>
+
+		</p>
+
+		<h3>[property:Ray ray]</h3>
+		<p>用于进行光线投射的[Page:Ray](射线)。</p>
+
+
+		<h2>方法</h2>
+
+		<h3>[method:null set]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 origin] —— 光线投射的原点向量。<br />
+		[page:Vector3 direction] —— 为光线提供方向的标准化方向向量。
+		</p>
+		<p>
+			使用一个新的原点和方向来更新射线。
+		</p>
+
+		<h3>[method:null setFromCamera]( [param:Vector2 coords], [param:Camera camera] )</h3>
+		<p>
+		[page:Vector2 coords] —— 在标准化设备坐标中鼠标的二维坐标 —— X分量与Y分量应当在-1到1之间。<br />
+								
+		[page:Camera camera] —— 射线所来源的摄像机。
+		</p>
+		<p>
+			使用一个新的原点和方向来更新射线。
+		</p>
+
+		<h3>[method:Array intersectObject]( [param:Object3D object], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+		[page:Object3D object] —— 检查与射线相交的物体。<br />
+		[page:Boolean recursive] —— 若为true,则同时也会检查所有的后代。否则将只会检查对象本身。默认值为false。<br />
+		[page:Array optionalTarget] — (可选)设置结果的目标数组。如果不设置这个值,则一个新的[page:Array]会被实例化;如果设置了这个值,则在每次调用之前必须清空这个数组(例如:array.length = 0;)。
+		</p>
+		<p>
+			检测所有在射线与物体之间,包括或不包括后代的相交部分。返回结果时,相交部分将按距离进行排序,最近的位于第一个)。<br>
+			该方法返回一个包含有交叉部分的数组:
+		</p>
+		<code>
+				[ { distance, point, face, faceIndex, object }, ... ]
+		</code>
+		<p>
+			[page:Float distance] —— 射线投射原点和相交部分之间的距离。<br />
+			[page:Vector3 point] —— 相交部分的点(世界坐标)<br />
+			[page:Face3 face] —— 相交的面<br />
+			[page:Integer faceIndex] —— 相交的面的索引<br />
+			[page:Object3D object] —— 相交的物体<br />
+			[page:Vector2 uv] —— 相交部分的点的UV坐标。
+		</p>
+		<p>
+			当计算这条射线是否和物体相交的时候,*Raycaster*将传入的对象委托给[page:Object3D.raycast raycast]方法。
+			这将可以让[page:Mesh mesh]对于光线投射的响应不同于[page:Line lines]和[page:Points pointclouds]。
+		</p>
+		<p>
+			<strong>请注意</strong>:对于网格来说,面必须朝向射线的原点,以便其能够被检测到。
+			用于交互的射线穿过面的背侧时,将不会被检测到。如果需要对物体中面的两侧进行光线投射,
+			你需要将[page:Mesh.material material]中的[page:Material.side side]属性设置为*THREE.DoubleSide*。
+		</p>
+
+		<h3>[method:Array intersectObjects]( [param:Array objects], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+		[page:Array objects] —— 检测和射线相交的一组物体。<br />
+		[page:Boolean recursive] —— 若为true,则同时也会检测所有物体的后代。否则将只会检测对象本身的相交部分。默认值为false。<br />
+		[page:Array optionalTarget] —— (可选)(可选)设置结果的目标数组。如果不设置这个值,则一个新的[page:Array]会被实例化;如果设置了这个值,则在每次调用之前必须清空这个数组(例如:array.length = 0;)。
+		</p>
+		<p>
+			检测所有在射线与这些物体之间,包括或不包括后代的相交部分。返回结果时,相交部分将按距离进行排序,最近的位于第一个),相交部分和[page:.intersectObject]所返回的格式是相同的。
+		</p>
+
+
+		<h2>源代码</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 是 [link:https://www.opengl.org/documentation/glsl/ GLSL] 着色器中的全局变量。
+		</p>
+
+		<h3>示例</h3>
+		<p>
+			在声明一个 [page:ShaderMaterial] 的 Uniform 变量时,该变量被值或对象声明。
+		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 种类</h3>
+
+		<p>
+			每个 Uniform 必须包括一个 *value* 属性。value 的类型必须和下表中 GLSL 的基本类型相对应。同样,Uniform 的结构体和队列
+			也是支持的。 GLSL基本类型队列必须要么被显示声明为一个 THREE 对象的队列,要么被声明为一个包含所有对象数据的队列。这就是说,
+			队列中的 GLSL 基础类型不能再是一个队列。举例,一个有 5 个 *vec2* 元素的队列,必须是一个包含 5 个 [page:Vector2] 的队列数组,
+			或包含 10 个 *number* 的队列。
+
+		</p>
+		<table>
+			<caption><a id="uniform-types">Uniform 类型</a></caption>
+			<thead>
+				<tr>
+					<th>GLSL 类型</th>
+					<th>JavaScript 类型</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>
+
+		(*) 与最内层队列中 GSLS 的类型保持一致。包含队列中所有矢量的元素或矩阵中的元素。
+		</p>
+
+		<h2>构造函数</h2>
+
+		<h3>[name]( [param:Object value] )</h3>
+		<p>
+		value -- 包含需要设置 Uniform 数据的对象。 数据类型必须是上述类型中的一种。
+		</p>
+
+		<h2>属性</h2>
+
+		<h3>[property:Object value]</h3>
+		<p>
+			当前 uniform 的值。
+		</p>
+
+		<h2>方法</h2>
+
+		<h3>[method:Uniform clone]()</h3>
+		<p>
+			返回该 Uniform 的克隆。<br />
+			如果 Uniform 的 value 属性是一个带 clone() 方法的 [page:Object],则克隆该对象时,value 的 clone() 方法也会被调用,否则克隆时只会使用赋值语句。
+			队列中的值会在该 Uniform 和 被克隆对象间共享。<br /><br />
+
+			该方法的使用示例详见 [example:webgldeferred_animation WebGL deferred animation]。
+		</p>
+
+		<h2>资源</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">
+		在 three.js 中一共有 9 种 [page:BufferAttribute]。每种和 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>构造函数</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>属性</h2>
+
+		继承属性详见 [page:BufferAttribute]。
+
+		<h2>方法</h2>
+
+		继承方法详见 [page:BufferAttribute]。
+
+		<h2>资源</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>

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