Browse Source

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

Luis Blanco 6 years ago
parent
commit
15a8615442
100 changed files with 1933 additions and 1782 deletions
  1. 1 1
      .github/ISSUE_TEMPLATE.md
  2. 1 1
      LICENSE
  3. 39 2
      build/three.js
  4. 365 385
      build/three.min.js
  5. 39 2
      build/three.module.js
  6. 0 1
      docs/api/en/cameras/CubeCamera.html
  7. 0 3
      docs/api/en/core/Geometry.html
  8. 21 7
      docs/api/en/core/Object3D.html
  9. 0 1
      docs/api/en/core/Raycaster.html
  10. 0 6
      docs/api/en/extras/curves/EllipseCurve.html
  11. 15 13
      docs/api/en/geometries/BoxBufferGeometry.html
  12. 15 15
      docs/api/en/geometries/BoxGeometry.html
  13. 0 1
      docs/api/en/helpers/AxesHelper.html
  14. 1 1
      docs/api/en/helpers/RectAreaLightHelper.html
  15. 1 1
      docs/api/en/lights/RectAreaLight.html
  16. 1 1
      docs/api/en/loaders/CompressedTextureLoader.html
  17. 2 3
      docs/api/en/loaders/CubeTextureLoader.html
  18. 1 1
      docs/api/en/loaders/DataTextureLoader.html
  19. 4 8
      docs/api/en/loaders/FileLoader.html
  20. 1 1
      docs/api/en/loaders/FontLoader.html
  21. 1 1
      docs/api/en/loaders/ImageLoader.html
  22. 1 1
      docs/api/en/loaders/MaterialLoader.html
  23. 0 1
      docs/api/en/materials/LineBasicMaterial.html
  24. 0 13
      docs/api/en/materials/Material.html
  25. 0 2
      docs/api/en/materials/PointsMaterial.html
  26. 0 1
      docs/api/en/materials/ShaderMaterial.html
  27. 0 9
      docs/api/en/math/Box3.html
  28. 1 1
      docs/api/en/math/Spherical.html
  29. 42 26
      docs/api/en/objects/SkinnedMesh.html
  30. 49 0
      docs/api/en/renderers/WebGLMultisampleRenderTarget.html
  31. 1 1
      docs/api/en/renderers/WebGLRenderer.html
  32. 5 0
      docs/api/en/scenes/Scene.html
  33. 1 1
      docs/api/zh/audio/Audio.html
  34. 13 2
      docs/api/zh/core/Object3D.html
  35. 1 2
      docs/api/zh/core/Raycaster.html
  36. 4 4
      docs/api/zh/core/bufferAttributeTypes/BufferAttributeTypes.html
  37. 6 6
      docs/api/zh/extras/Earcut.html
  38. 12 15
      docs/api/zh/extras/ShapeUtils.html
  39. 15 15
      docs/api/zh/extras/core/CurvePath.html
  40. 18 16
      docs/api/zh/extras/core/Font.html
  41. 12 12
      docs/api/zh/extras/core/Interpolations.html
  42. 52 54
      docs/api/zh/extras/core/Path.html
  43. 21 22
      docs/api/zh/extras/core/Shape.html
  44. 28 29
      docs/api/zh/extras/core/ShapePath.html
  45. 7 7
      docs/api/zh/extras/curves/ArcCurve.html
  46. 19 18
      docs/api/zh/extras/curves/CatmullRomCurve3.html
  47. 22 21
      docs/api/zh/extras/curves/CubicBezierCurve.html
  48. 25 25
      docs/api/zh/extras/curves/CubicBezierCurve3.html
  49. 31 38
      docs/api/zh/extras/curves/EllipseCurve.html
  50. 15 14
      docs/api/zh/extras/curves/LineCurve.html
  51. 16 15
      docs/api/zh/extras/curves/LineCurve3.html
  52. 19 19
      docs/api/zh/extras/curves/QuadraticBezierCurve.html
  53. 19 19
      docs/api/zh/extras/curves/QuadraticBezierCurve3.html
  54. 13 14
      docs/api/zh/extras/curves/SplineCurve.html
  55. 2 2
      docs/api/zh/extras/objects/ImmediateRenderObject.html
  56. 1 1
      docs/api/zh/geometries/CircleBufferGeometry.html
  57. 1 1
      docs/api/zh/geometries/LatheBufferGeometry.html
  58. 7 7
      docs/api/zh/geometries/ParametricBufferGeometry.html
  59. 7 7
      docs/api/zh/geometries/ParametricGeometry.html
  60. 1 1
      docs/api/zh/geometries/PlaneBufferGeometry.html
  61. 1 1
      docs/api/zh/geometries/SphereGeometry.html
  62. 1 1
      docs/api/zh/geometries/TorusGeometry.html
  63. 1 1
      docs/api/zh/geometries/TorusKnotBufferGeometry.html
  64. 0 11
      docs/api/zh/materials/Material.html
  65. 3 11
      docs/api/zh/math/Box3.html
  66. 7 7
      docs/api/zh/math/Cylindrical.html
  67. 2 2
      docs/api/zh/math/Euler.html
  68. 1 1
      docs/api/zh/math/Matrix4.html
  69. 1 1
      docs/api/zh/math/Quaternion.html
  70. 67 75
      docs/api/zh/math/Ray.html
  71. 39 43
      docs/api/zh/math/Sphere.html
  72. 16 19
      docs/api/zh/math/Spherical.html
  73. 38 41
      docs/api/zh/math/Triangle.html
  74. 118 116
      docs/api/zh/math/Vector2.html
  75. 136 138
      docs/api/zh/math/Vector3.html
  76. 111 111
      docs/api/zh/math/Vector4.html
  77. 45 27
      docs/api/zh/objects/SkinnedMesh.html
  78. 46 0
      docs/api/zh/renderers/WebGLMultisampleRenderTarget.html
  79. 5 0
      docs/api/zh/scenes/Scene.html
  80. 12 0
      docs/examples/exporters/GLTFExporter.html
  81. 6 3
      docs/examples/loaders/GLTFLoader.html
  82. 28 0
      docs/examples/utils/BufferGeometryUtils.html
  83. 2 0
      docs/list.js
  84. 2 2
      docs/manual/en/introduction/Browser-support.html
  85. 2 0
      docs/manual/en/introduction/How-to-use-WebGL2.html
  86. 3 2
      docs/manual/en/introduction/Loading-3D-models.html
  87. 6 6
      docs/manual/en/introduction/Useful-links.html
  88. 11 9
      docs/manual/en/introduction/WebGL-compatibility-check.html
  89. 60 69
      docs/manual/zh/buildTools/Testing-with-NPM.html
  90. 49 53
      docs/manual/zh/introduction/Animation-system.html
  91. 3 3
      docs/manual/zh/introduction/Browser-support.html
  92. 1 1
      docs/manual/zh/introduction/Creating-a-scene.html
  93. 1 1
      docs/manual/zh/introduction/Drawing-lines.html
  94. 5 6
      docs/manual/zh/introduction/FAQ.html
  95. 0 56
      docs/manual/zh/introduction/How-to-run-things-locally.html
  96. 33 34
      docs/manual/zh/introduction/How-to-update-things.html
  97. 2 0
      docs/manual/zh/introduction/How-to-use-WebGL2.html
  98. 53 13
      docs/manual/zh/introduction/Loading-3D-models.html
  99. 14 14
      docs/manual/zh/introduction/Matrix-transformations.html
  100. 7 7
      docs/manual/zh/introduction/Useful-links.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
-- [ ] r99
+- [ ] r100
 - [ ] ...
 
 ##### Browser

+ 1 - 1
LICENSE

@@ -1,6 +1,6 @@
 The MIT License
 
-Copyright © 2010-2018 three.js authors
+Copyright © 2010-2019 three.js authors
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal

File diff suppressed because it is too large
+ 39 - 2
build/three.js


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


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


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

@@ -17,7 +17,6 @@
 		<h2>Examples</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

+ 0 - 3
docs/api/en/core/Geometry.html

@@ -32,7 +32,6 @@
 		<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();
@@ -123,8 +122,6 @@
 		<p>
 		Array of morph normals. Morph normals have similar structure as morph targets, each normal set is a Javascript object:
 		<code>morphNormal = { name: "NormalName", normals: [ new THREE.Vector3(), ... ] }</code>
-
-		See the [example:webgl_morphnormals WebGL / morphNormals] example.
 		</p>
 
 		<h3>[property:String name]</h3>

+ 21 - 7
docs/api/en/core/Object3D.html

@@ -36,6 +36,19 @@
 		<h3>[property:Object3D children]</h3>
 		<p>Array with object's children. See [page:Group] for info on manually grouping objects.</p>
 
+		<h3>[property:Material customDepthMaterial]</h3>
+		<p>
+		Custom depth material to be used when rendering to the depth map. Can only be used in context of meshes.
+		When shadow-casting with a [page:DirectionalLight] or [page:SpotLight], if you are (a) modifying vertex positions in the vertex shader,
+		(b) using a displacement map, (c) using an alpha map with alphaTest, or (d) using a transparent texture with alphaTest,
+		you must specify a customDepthMaterial for proper shadows. Default is *undefined*.
+		</p>
+
+		<h3>[property:Material customDistanceMaterial]</h3>
+		<p>
+		Same as customDepthMaterial, but used with [page:PointLight]. Default is *undefined*.
+		</p>
+
 		<h3>[property:Boolean frustumCulled]</h3>
 		<p>
 		When this is set, it checks every frame if the object is in the frustum of the camera before rendering the object.
@@ -94,14 +107,14 @@
 		On the other hand the translation part of the modelViewMatrix is not relevant for the calculation of normals. Thus a Matrix3 is sufficient.
 		</p>
 
-		<h3>[property:function onAfterRender]</h3>
+		<h3>[property:Function onAfterRender]</h3>
 		<p>
 		An optional callback that is executed immediately after the Object3D is rendered.
 		This function is called with the following parameters: renderer, scene, camera, geometry,
 		material, group.
 		</p>
 
-		<h3>[property:function onBeforeRender]</h3>
+		<h3>[property:Function onBeforeRender]</h3>
 		<p>
 		An optional callback that is executed immediately before the Object3D is rendered.
 		This function is called with the following parameters: renderer, scene, camera, geometry,
@@ -124,7 +137,8 @@
 		<h3>[property:Number renderOrder]</h3>
 		<p>
 		This value allows the default rendering order of [link:https://en.wikipedia.org/wiki/Scene_graph scene graph]
-		objects to be overridden although opaque and transparent objects remain sorted independently.
+		objects to be overridden although opaque and transparent objects remain sorted independently. When this property
+		is set for an instance of [page:Group Group], all descendants objects will be sorted and rendered together.
 		Sorting is from lowest to highest renderOrder. Default value is *0*.
 		</p>
 
@@ -144,7 +158,7 @@
 		Default is [page:Object3D.DefaultUp] - that is, ( 0, 1, 0 ).
 		</p>
 
-		<h3>[property:object userData]</h3>
+		<h3>[property:Object userData]</h3>
 		<p>
 		An object that can be used to store custom data about the Object3D. It should not hold
 		references to functions as these will not be cloned.
@@ -189,7 +203,7 @@
 
 		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
 
-		<h3>[method:null add]( [param:Object3D object], ... )</h3>
+		<h3>[method:this add]( [param:Object3D object], ... )</h3>
 		<p>
 		Adds *object* as child of this object. An arbitrary number of objects may be added. Any current parent on an
 		object passed in here will be removed, since an object can have at most one parent.<br /><br />
@@ -200,7 +214,7 @@
 		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
 		<p>Applies the matrix transform to the object and updates the object's position, rotation and scale.</p>
 
-		<h3>[method:Object3D applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
 		<p>Applies the rotation represented by the quaternion to the object.</p>
 
 		<h3>[method:Object3D clone]( [param:Boolean recursive] )</h3>
@@ -296,7 +310,7 @@
 		to use raycasting.
 		</p>
 
-		<h3>[method:null remove]( [param:Object3D object], ... )</h3>
+		<h3>[method:this remove]( [param:Object3D object], ... )</h3>
 		<p>
 		Removes *object* as child of this object. An arbitrary number of objects may be removed.
 		</p>

+ 0 - 1
docs/api/en/core/Raycaster.html

@@ -61,7 +61,6 @@
 			[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>

+ 0 - 6
docs/api/en/extras/curves/EllipseCurve.html

@@ -88,12 +88,6 @@ var ellipse = new THREE.Line( geometry, material );
 		<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>

+ 15 - 13
docs/api/en/geometries/BoxBufferGeometry.html

@@ -44,29 +44,31 @@
 
 		<h3>[name]([param:Float width], [param:Float height], [param:Float depth], [param:Integer widthSegments], [param:Integer heightSegments], [param:Integer depthSegments])</h3>
 		<p>
-		width — Width of the sides on the X axis. Default is 1.<br />
-		height — Height of the sides on the Y axis. Default is 1.<br />
-		depth — Depth of the sides on the Z axis. Default is 1.<br />
-		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
-		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
-		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.
+		width — Width; that is, the length of the edges parallel to the X axis. Optional; defaults to 1.<br />
+		height — Height; that is, the length of the edges parallel to the Y axis. Optional; defaults to 1.<br />
+		depth — Depth; that is, the length of the edges parallel to the Z axis. Optional; defaults to 1.<br />
+		widthSegments — Number of segmented rectangular faces along the width of the sides. Optional; defaults to 1.<br />
+		heightSegments — Number of segmented rectangular faces along the height of the sides. Optional; defaults to 1.<br />
+		depthSegments — Number of segmented rectangular faces along the depth of the sides. Optional; defaults to 1.<br />
 		</p>
 
 		<h2>Properties</h2>
-
+	
 		<h3>[property:Object parameters]</h3>
 		<p>
 		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
 		</p>
  		<p>
-			Using the above example code above as our basis:
-			<code>
-		geometry.parameters; // outputs an object {width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined}
+		Using the above example:
+		<code>
+		geometry.parameters; // {width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined, depthSegments: undefined}
 		cube.geometry.parameters; // as above
 		cube.geometry.parameters.width; // === 1
-		cube.geometry.parameters.widthSegments // === undefined.
-			</code>
- 		</p>
+		cube.geometry.parameters.widthSegments; // === undefined.
+		</code>
+		</p>
+		
+		<h2>Methods</h2>	
 
 		<h2>Source</h2>
 

+ 15 - 15
docs/api/en/geometries/BoxGeometry.html

@@ -12,8 +12,8 @@
 
 		<h1>[name]</h1>
 
-		<p class="desc">BoxGeometry is the quadrilateral primitive geometry class. It is typically used for creating a cube or irregular quadrilateral of the dimensions provided with the 'width', 'height', and 'depth' constructor arguments.</p>
-
+		<p class="desc">BoxGeometry is a geometry class for a [link:https://en.wikipedia.org/wiki/Cuboid rectangular cuboid] with a given 'width', 'height', and 'depth'. On creation, the cuboid is centred on the origin, with each edge parallel to one of the axes.</p>
+		
 		<iframe id="scene" src="scenes/geometry-browser.html#BoxGeometry"></iframe>
 
 		<script>
@@ -44,12 +44,12 @@
 
 		<h3>[name]([param:Float width], [param:Float height], [param:Float depth], [param:Integer widthSegments], [param:Integer heightSegments], [param:Integer depthSegments])</h3>
 		<p>
-		width — Width of the sides on the X axis. Default is 1.<br />
-		height — Height of the sides on the Y axis. Default is 1.<br />
-		depth — Depth of the sides on the Z axis. Default is 1.<br />
-		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
-		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
-		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.
+		width — Width; that is, the length of the edges parallel to the X axis. Optional; defaults to 1.<br />
+		height — Height; that is, the length of the edges parallel to the Y axis. Optional; defaults to 1.<br />
+		depth — Depth; that is, the length of the edges parallel to the Z axis. Optional; defaults to 1.<br />
+		widthSegments — Number of segmented rectangular faces along the width of the sides. Optional; defaults to 1.<br />
+		heightSegments — Number of segmented rectangular faces along the height of the sides. Optional; defaults to 1.<br />
+		depthSegments — Number of segmented rectangular faces along the depth of the sides. Optional; defaults to 1.<br />
 		</p>
 
 		<h2>Properties</h2>
@@ -59,13 +59,13 @@
 		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
 		</p>
  		<p>
-			Using the above example code above as our basis:
-			<code>
-				geometry.parameters; // outputs an object {width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined}
-				cube.geometry.parameters; // as above
-				cube.geometry.parameters.width; // === 1
-				cube.geometry.parameters.widthSegments // === undefined.
-			</code>
+		Using the above example:
+		<code>
+		geometry.parameters; // {width: 1, height: 1, depth: 1, widthSegments: undefined, heightSegments: undefined, depthSegments: undefined}
+		cube.geometry.parameters; // as above
+		cube.geometry.parameters.width; // === 1
+		cube.geometry.parameters.widthSegments; // === undefined.
+		</code>
  		</p>
 
 		<h2>Source</h2>

+ 0 - 1
docs/api/en/helpers/AxesHelper.html

@@ -19,7 +19,6 @@
 		<h2>Example</h2>
 
 		<div>[example:webgl_geometries WebGL / geometries]</div>
-		<div>[example:webgl_geometries2 WebGL / geometries2]</div>
 		<div>[example:webgl_geometry_convex WebGL / geometry / convex]</div>
 		<div>[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor]</div>
 

+ 1 - 1
docs/api/en/helpers/RectAreaLightHelper.html

@@ -23,7 +23,7 @@ var light = new THREE.RectAreaLight( 0xffffbb, 1.0, 5, 5 );
 
 var helper = new THREE.RectAreaLightHelper( light );
 
-scene.add( helper );
+light.add( helper ); // helper must be added as a child of the light
 		</code>
 
 

+ 1 - 1
docs/api/en/lights/RectAreaLight.html

@@ -41,7 +41,7 @@ rectLight.lookAt( 0, 0, 0 );
 scene.add( rectLight )
 
 rectLightHelper = new THREE.RectAreaLightHelper( rectLight );
-scene.add( rectLightHelper );
+rectLight.add( rectLightHelper );
 
 			</code>
 		</p>

+ 1 - 1
docs/api/en/loaders/CompressedTextureLoader.html

@@ -48,7 +48,7 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<h3>[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />

+ 2 - 3
docs/api/en/loaders/CubeTextureLoader.html

@@ -22,7 +22,6 @@
 			[example:webgl_materials_cubemap_balls_reflection materials / cubemap / balls / reflection]<br />
 			[example:webgl_materials_cubemap_balls_refraction materials / cubemap / balls / refraction]<br />
 			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic]<br />
-			[example:webgl_materials_cubemap_dynamic2 materials / cubemap / dynamic2]<br />
 			[example:webgl_materials_cubemap_refraction materials / cubemap / refraction]
 		</p>
 
@@ -71,7 +70,7 @@ scene.background = new THREE.CubeTextureLoader()
 
 		<h2>Methods</h2>
 
-		<h3>[method:null load]( [param:String urls], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<h3>[method:CubeTexture load]( [param:String urls], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		[page:String urls] — array of 6 urls to images, one for each side of the CubeTexture.
 		The urls should be specified in the following order: pos-x, neg-x, pos-y, neg-y, pos-z, neg-z.
@@ -84,7 +83,7 @@ scene.background = new THREE.CubeTextureLoader()
 		[page:Function onError] — Will be called when load errors.<br />
 		</p>
 		<p>
-		Begin loading from url and pass the loaded [page:Texture texture] to onLoad.
+		Begin loading from url and pass the loaded [page:CubeTexture texture] to onLoad.
 		</p>
 
 		<h3>[method:null setCrossOrigin]( [param:String value] )</h3>

+ 1 - 1
docs/api/en/loaders/DataTextureLoader.html

@@ -44,7 +44,7 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<h3>[method:DataTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />

+ 4 - 8
docs/api/en/loaders/FileLoader.html

@@ -17,10 +17,6 @@
 		</p>
 
 		<h2>Example</h2>
-		<p>
-			[example:webgl_loader_msgpack WebGL / loader / msgpack]<br />
-			[example:webgl_morphtargets_human WebGL / morphtargets / human]<br />
-		</p>
 		<code>
 		var loader = new THREE.FileLoader();
 
@@ -80,7 +76,7 @@
 		<h3>[property:String path]</h3>
 		<p>The base path from which files will be loaded. See [page:.setPath]. Default is *undefined*.</p>
 
-		<h3>[property:object requestHeader]</h3>
+		<h3>[property:Object requestHeader]</h3>
 		<p>The [link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header request header] used in HTTP request. See [page:.setRequestHeader]. Default is *undefined*.</p>
 
 		<h3>[property:String responseType]</h3>
@@ -95,7 +91,7 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<h3>[method:XMLHttpRequest load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 			[page:String url] — the path or URL to the file. This can also be a
 				[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
@@ -119,7 +115,7 @@
 			you are loading many models from the same directory.
 		</p>
 
-		<h3>[method:FileLoader setRequestHeader]( [param:object requestHeader] )</h3>
+		<h3>[method:FileLoader setRequestHeader]( [param:Object requestHeader] )</h3>
 		<p>
 			[page:object requestHeader] - key: The name of the header whose value is to be set. value: The value to set as the body of the header.<br /><br />
 
@@ -129,7 +125,7 @@
 		<h3>[method:FileLoader setResponseType]( [param:String responseType] )</h3>
 		<p>
 			Change the response type. Valid values are:<br />
-			[page:String text] or empty string (default) - returns the data as [page:String string].<br />
+			[page:String text] or empty string (default) - returns the data as [page:String String].<br />
 			[page:String arraybuffer] - loads the data into a [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer ArrayBuffer] and returns that.<br />
 			[page:String blob] - returns the data as a [link:https://developer.mozilla.org/en/docs/Web/API/Blob Blob].<br />
 			[page:String document] - parses the file using the [link:https://developer.mozilla.org/en-US/docs/Web/API/DOMParser DOMParser].<br />

+ 1 - 1
docs/api/en/loaders/FontLoader.html

@@ -73,7 +73,7 @@
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].<br />
+		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Font font].<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onError] — Will be called when load errors.<br /><br />
 

+ 1 - 1
docs/api/en/loaders/ImageLoader.html

@@ -82,7 +82,7 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
+		<h3>[method:HTMLImageElement load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />

+ 1 - 1
docs/api/en/loaders/MaterialLoader.html

@@ -74,7 +74,7 @@
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the progress event.<br />
 		[page:Function onError] — Will be called when load errors.<br /><br />
 
-		Begin loading from url and return the [page:Material] object that will contain the data.
+		Begin loading from url.
 		</p>
 
 		<h3>[method:Material parse]( [param:Object json] )</h3>

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

@@ -29,7 +29,6 @@
 			[example:webgl_lines_colors WebGL / lines / colors]<br />
 			[example:webgl_lines_dashed WebGL / lines / dashed]<br />
 			[example:webgl_lines_sphere WebGL / lines / sphere]<br />
-			[example:webgl_lines_splines WebGL / lines / splines]<br />
 			[example:webgl_materials WebGL / materials]<br />
 			[example:webgl_physics_rope WebGL / phyics / rope]
 		</p>

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

@@ -101,19 +101,6 @@
 		This can be used in conjunction with a mesh's [page:Integer renderOrder] property to create invisible objects that occlude other objects. Default is *true*.
 		</p>
 
-		<h3>[property:Material customDepthMaterial]</h3>
-		<p>
-		Custom depth material to be used by this material when rendering to the depth map.
-		When shadow-casting with a [page:DirectionalLight] or [page:SpotLight], if you are (a) modifying vertex positions in the vertex shader,
-		(b) using a displacement map, (c) using an alpha map with alphaTest, or (d) using a transparent texture with alphaTest,
-		you must specify a customDepthMaterial for proper shadows. Default is *undefined*.
-		</p>
-
-		<h3>[property:Material customDistanceMaterial]</h3>
-		<p>
-		Same as customDepthMaterial, but used with [page:PointLight]. Default is *undefined*.
-		</p>
-
 		<h3>[property:Object defines]</h3>
 		<p>
 		Custom defines to be injected into the shader. These are passed in form of an object literal, with key/value pairs. { MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }. The pairs are defined in both vertex and fragment shaders.  Default is *undefined*.

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

@@ -26,9 +26,7 @@
 			[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points]<br />
 			[example:webgl_multiple_elements_text WebGL / multiple / elements / text]<br />
 			[example:webgl_points_billboards WebGL / points / billboards]<br />
-			[example:webgl_points_billboards_colors WebGL / points / billboards / colors]<br />
 			[example:webgl_points_dynamic WebGL / points / dynamic]<br />
-			[example:webgl_points_random WebGL / points / random]<br />
 			[example:webgl_points_sprites WebGL / points / sprites]<br />
 			[example:webgl_trails WebGL / trails]
 		</p>

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

@@ -96,7 +96,6 @@
 			[example:webgl_materials_parallaxmap webgl / materials / parallaxmap]<br />
 			[example:webgl_materials_shaders_fresnel webgl / materials / shaders / fresnel]<br />
 			[example:webgl_materials_skin webgl / materials / skin]<br />
-			[example:webgl_materials_texture_hdr webgl / materials / texture / hdr]<br />
 			[example:webgl_materials_wireframe webgl / materials / wireframe]<br />
 			[example:webgl_modifier_tessellation webgl / modifier / tessellation]<br />
 			[example:webgl_nearestneighbour webgl / nearestneighbour]<br />

+ 0 - 9
docs/api/en/math/Box3.html

@@ -244,15 +244,6 @@
 		Sets the upper and lower bounds of this box to include all of the data in [page:BufferAttribute attribute].
 		</p>
 
-		<h3>[method:Box3 setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )</h3>
-		<p>
-		[page:Vector3 center] - Desired center position of the box ([page:Vector3]). <br>
-		[page:Vector3 size] - Desired x, y and z dimensions of the box ([page:Vector3]).<br /><br />
-
-		Centers this box on [page:Vector3 center] and sets this box's width and height to the values specified
-		in [page:Vector3 size].
-		</p>
-
 		<h3>[method:Box3 setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] ) [param:Box3 this]</h3>
 		<p>
 		[page:Vector3 center], - Desired center position of the box. <br>

+ 1 - 1
docs/api/en/math/Spherical.html

@@ -40,7 +40,7 @@
 
 		<h3>[method:Spherical clone]()</h3>
 		<p>
-		Returns a new plane with the same [page:.radius radius], [page:.phi phi]
+		Returns a new spherical with the same [page:.radius radius], [page:.phi phi]
 		and [page:.theta theta] properties as this one.
 		</p>
 

+ 42 - 26
docs/api/en/objects/SkinnedMesh.html

@@ -38,41 +38,60 @@
 		<h2>Example</h2>
 
 		<code>
-		var geometry = new THREE.CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 );
+		var geometry = new THREE.CylinderBufferGeometry( 5, 5, 5, 5, 15, 5, 30 );
 
-		//Create the skin indices and skin weights
-		for ( var i = 0; i < geometry.vertices.length; i ++ ) {
+		// create the skin indices and skin weights
 
-			// Imaginary functions to calculate the indices and weights
-			// This part will need to be changed depending your skeleton and model
-			var skinIndex = calculateSkinIndex( geometry.vertices, i );
-			var skinWeight = calculateSkinWeight( geometry.vertices, i );
+		var position = geometry.attributes.position;
 
-			// Ease between each bone
-			geometry.skinIndices.push( new THREE.Vector4( skinIndex, skinIndex + 1, 0, 0 ) );
-			geometry.skinWeights.push( new THREE.Vector4( 1 - skinWeight, skinWeight, 0, 0 ) );
+		var vertex = new THREE.Vector3();
+
+		var skinIndices = [];
+		var skinWeights = [];
+
+		for ( var i = 0; i < position.count; i ++ ) {
+
+			vertex.fromBufferAttribute( position, i );
+
+			// compute skinIndex and skinWeight based on some configuration data
+
+			var y = ( vertex.y + sizing.halfHeight );
+
+			var skinIndex = Math.floor( y / sizing.segmentHeight );
+			var skinWeight = ( y % sizing.segmentHeight ) / sizing.segmentHeight;
+
+			skinIndices.push( skinIndex, skinIndex + 1, 0, 0 );
+			skinWeights.push( 1 - skinWeight, skinWeight, 0, 0 );
 
 		}
 
+		geometry.addAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
+		geometry.addAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
+
+		// create skinned mesh and skeleton
+
 		var mesh = new THREE.SkinnedMesh( geometry, material );
+		var skeleton = new THREE.Skeleton( bones );
 
-		// See example from THREE.Skeleton for the armSkeleton
-		var rootBone = armSkeleton.bones[ 0 ];
+		// see example from THREE.Skeleton
+
+		var rootBone = skeleton.bones[ 0 ];
 		mesh.add( rootBone );
 
-		// Bind the skeleton to the mesh
-		mesh.bind( armSkeleton );
+		// bind the skeleton to the mesh
+
+		mesh.bind( skeleton );
+
+		// move the bones and manipulate the model
 
-		// Move the bones and manipulate the model
-		armSkeleton.bones[ 0 ].rotation.x = -0.1;
-		armSkeleton.bones[ 1 ].rotation.x = 0.2;
+		skeleton.bones[ 0 ].rotation.x = -0.1;
+		skeleton.bones[ 1 ].rotation.x = 0.2;
 		</code>
 
 		<h2>Constructor</h2>
-		<h3>[name]( [param:Geometry geometry], [param:Material material] )</h3>
+		<h3>[name]( [param:BufferGeometry geometry], [param:Material material] )</h3>
 		<p>
-    [page:Geometry geometry] - an instance of [page:Geometry] or [page:BufferGeometry] (recommended).
-		[page:Geometry.skinIndices skinIndices] and [page:Geometry.skinWeights skinWeights] should be set to true on the geometry.<br />
+    [page:Geometry geometry] - an instance of [page:BufferGeometry].<br />
     [page:Material material] - (optional) an instance of [page:Material]. Default is a new [page:MeshBasicMaterial].
 		</p>
 
@@ -109,8 +128,7 @@
 
 		<h3>[property:Skeleton skeleton]</h3>
 		<p>
-		[page:Skeleton] created from the [page:Geometry.bones bones] of the [page:Geometry] passed in the
-		constructor.
+		[page:Skeleton] representing the bone hierarchy of the skinned mesh.
 		</p>
 
 
@@ -124,9 +142,7 @@
 		[page:Matrix4 bindMatrix] - [page:Matrix4] that represents the base transform of the skeleton.<br /><br />
 
 		Bind a skeleton to the skinned mesh. The bindMatrix gets saved to .bindMatrix property
-		and the .bindMatrixInverse gets calculated. This is called automatically in the constructor, and the skeleton
-		is created from the [page:Geometry.bones bones] of the [page:Geometry] passed in the
-		constructor.
+		and the .bindMatrixInverse gets calculated.
 		</p>
 
 		<h3>[method:SkinnedMesh clone]()</h3>
@@ -136,7 +152,7 @@
 
 		<h3>[method:null normalizeSkinWeights]()</h3>
 		<p>
-		Normalizes the [page:Geometry.skinWeights] vectors. Does not affect [page:BufferGeometry].
+		Normalizes the skin weights.
 		</p>
 
 		<h3>[method:null pose]()</h3>

+ 49 - 0
docs/api/en/renderers/WebGLMultisampleRenderTarget.html

@@ -0,0 +1,49 @@
+<!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 special render target that can be used to utilize multi-sampled renderbuffers.
+			Heads up: [name] can only be used with a WebGL 2 rendering context.
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([param:Number width], [param:Number height], [param:Object options])</h3>
+
+		<p>
+		[page:Float width] - The width of the render target. <br />
+		[page:Float height] - The height of the render target.<br />
+		[page:Object options] - (optional) object that holds texture parameters for an auto-generated target
+		texture and depthBuffer/stencilBuffer booleans.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:number samples]</h3>
+		<p>
+		Specifies the number of samples to be used for the renderbuffer storage. However, the maximum supported
+		size for multisampling is platform dependent and defined via *gl.MAX_SAMPLES*.
+		</p>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] properties are available on this class.</p>
+
+		<h2>Methods</h2>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] methods are available on this class.</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/renderers/WebGLRenderer.html

@@ -253,7 +253,7 @@
 
 		Note: Sorting is used to attempt to properly render objects that have some degree of transparency.
 		By definition, sorting objects may not work in all cases.  Depending on the needs of application,
-		it may be neccessary to turn off sorting and use other methods to deal with transparency
+		it may be necessary to turn off sorting and use other methods to deal with transparency
 		rendering e.g. manually determining each object's rendering order.
 		</p>
 

+ 5 - 0
docs/api/en/scenes/Scene.html

@@ -51,6 +51,11 @@
 		Return the scene data in JSON format.
 		</p>
 
+		<h3>[method:null dispose]()</h3>
+		<p>
+		Clears scene related data internally cached by [page:WebGLRenderer].
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 1 - 1
docs/api/zh/audio/Audio.html

@@ -63,7 +63,7 @@
 		<p>构造函数中传入[page:AudioListener listener]的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].</p>
 
 		<h3>[property:Number detune]</h3>
-		<p>TODO</p>
+		<p>修改音高,以音分为单位。 +/- 100为一个半音, +/- 1200为一个八度。默认值为0。</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>

+ 13 - 2
docs/api/zh/core/Object3D.html

@@ -36,6 +36,17 @@
 	<h3>[property:Object3D children]</h3>
 	<p>含有对象的子级的数组。请参阅[page:Group]来了解将手动对象进行分组的相关信息。</p>
 
+	<h3>[property:Material customDepthMaterial]</h3>
+	<p>渲染到深度贴图时此材质要使用的自定义深度材质。
+	    当使用[page:DirectionalLight]或[page:SpotLight]进行阴影投射时,如果您正在(a)修改顶点着色器中的顶点位置,
+	    (b)使用位移贴图,(c)alphaTest中使用alpha贴图,或(d)alphaTest中使用透明纹理,
+	    您必须指定customDepthMaterial以得到合适的阴影。默认值*undefined*。
+	</p>
+
+	<h3>[property:Material customDistanceMaterial]</h3>
+	<p>与customDepthMaterial相同,但与[page:PointLight]一起使用。默认值为*undefined*。
+	</p>
+
 	<h3>[property:Boolean frustumCulled]</h3>
 	<p>
 		当这个属性被设置的时候,它将在渲染物体之前,检查每一帧的物体是否在摄像机的视锥体中。
@@ -334,7 +345,7 @@
 	<h3>[method:null setRotationFromMatrix]( [param:Matrix4 m] )</h3>
 	<p>
 		m -- 通过该矩阵中的旋转分量来旋转四元数。<br />
-			
+
 		调用[page:.quaternion]中的[page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m])。
 		<br /><br />
 
@@ -411,4 +422,4 @@
 	[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 </body>
 
-</html>
+</html>

+ 1 - 2
docs/api/zh/core/Raycaster.html

@@ -59,7 +59,6 @@
 			[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>
@@ -136,7 +135,7 @@
 		<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>

+ 4 - 4
docs/api/zh/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -31,14 +31,14 @@
 
 		<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 />
+			array -- 这可以是类型化或非类型化的(普通)数组。它将被转换为指定的类型。<br /><br />
 
-			itemSize -- the number of values of the array that should be associated with a particular vertex.<br /><br />
+			itemSize -- 应与特定顶点关联的数组值的数量。<br /><br />
 
-			normalized -- (optional) indicates how the underlying data in the buffer maps to the values in the GLSL code.
+			normalized -- (可选)表示缓冲区中的基础数据如何映射到GLSL代码中的值。
 		</p>
 
 		<h2>属性</h2>

+ 6 - 6
docs/api/zh/extras/Earcut.html

@@ -11,20 +11,20 @@
 		<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].
+		切割多边形三角剖分算法的实现。这份代码是[link:https://github.com/mapbox/earcut mapbox/earcut]的一个端口。
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法</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 />
+		data -- 一个顶点坐标的平面数组。<br /><br />
+		holeIndices -- 空洞索引的数组(如果有的话)。<br /><br />
+		dim -- 输入数组中每个顶点的坐标数。<br /><br />
 
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 12 - 15
docs/api/zh/extras/ShapeUtils.html

@@ -11,43 +11,40 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-		A class containing utility functions for shapes.<br /><br />
+		一个包含形状实用函数的类。<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.
+		请注意,这些都是线性函数,因此有必要分别计算向量的x,y(和z,w,如果存在的话)分量。
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Number area]( contour )</h3>
 		<p>
-		contour -- 2D polygon.<br /><br />
+		contour -- 2D多边形。<br /><br />
 
-		Calculate area of a ( 2D ) contour polygon.<br /><br />
+		计算(2D)轮廓多边形的面积。<br /><br />
 
 		</p>
 
 		<h3>[method:Boolean isClockwise]( pts )</h3>
 		<p>
-		pts -- points defining a 2D polygon<br /><br />
+		pts -- 定义2D多边形的点<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 />
+		请注意,这是一个线性函数,因此需要分别计算多边形的x,y分量。<br /><br />
 
-		Used internally by [page:Path Path],
-		[page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry].
+		由[page:Path Path],[page:ExtrudeGeometry ExtrudeGeometry]和[page:ShapeGeometry ShapeGeometry]内部使用。
 		</p>
 
 		<h3>[method:Array triangulateShape]( contour, holes )</h3>
 		<p>
-		contour -- 2D polygon.<br />
-		holes -- array of holes<br /><br />
+		contour -- 2D多边形。<br />
+		holes -- 空洞数组<br /><br />
 
-		Used internally by [page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry] to calculate faces in shapes with holes.
+		由[page:ExtrudeGeometry ExtrudeGeometry]和[page:ShapeGeometry ShapeGeometry]内部使用以计算带孔的形状中的面。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 15 - 15
docs/api/zh/extras/core/CurvePath.html

@@ -10,50 +10,50 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+		
+		一个扩展了[page:Curve]的抽象基类。CurvePath仅仅是一个已连接的曲线的数组,但保留了曲线的API。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:array curves]</h3>
-		<p>The array of [page:Curve Curves].</p>
+		<p>[page:Curve Curves]数组。</p>
 
 		<h3>[property:boolean autoClose]</h3>
-		<p>Whether or not to automatically close the path.</p>
+		<p>是否自动闭合路径。</p>
 
 
 
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
 		<h3>[method:null add]( [param:Curve curve] )</h3>
-		<p>Add a curve to the [page:.curves] array.</p>
+		<p>添加一条曲线到[page:.curves]数组中。</p>
 
 		<h3>[method:null closePath]()</h3>
-		<p>Adds a [page:LineCurve lineCurve] to close the path.</p>
+		<p>添加一条[page:LineCurve lineCurve]用于闭合路径。</p>
 
 		<h3>[method:Float getCurveLengths]()</h3>
-		<p>Adds together the lengths of the curves in the [page:.curves] array.</p>
+		<p>将[page:.curves]数组中曲线的长度相加。</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 18 - 16
docs/api/zh/extras/core/Font.html

@@ -8,53 +8,55 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>字体([name]</h1>
 
 		<p class="desc">
-		Create a set of [page:Shape Shapes] representing a font loaded in JSON format.<br /><br />
+		以JSON格式,创建一系列的[page:Shape Shape](形状)来表示一个字体。
+		<br /><br />
 
-		This is used internally by the [page:FontLoader].
+		该类在内部由[page:FontLoader]所使用。
 		</p>
 
-		<h2>Examples</h2>
+		<h2>示例</h2>
 
 		<p>
 		[example:webgl_geometry_text_shapes geometry / text / shapes ]<br/>
 		[example:webgl_shaders_vector vector / text ]<br/>
 		</p>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 		<h3>[name]( data )</h3>
 		<p>
-		data -- JSON data representing the font.<br /><br />
+		data -- 表示字体的JSON数据。<br /><br />
 
-		This constructor creates a new [name], which is an array of [page:Shape Shapes].
+		这一构造函数创建一个新的[name],它是一个[page:Shape Shapes]数组。
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:array data]</h3>
-		<p>The JSON data passed in the constructor.</p>
+		<p>传入到构造函数的JSON数据。</p>
 
 		<h3>[property:Boolean isFont]</h3>
 		<p>
-			Used to check whether this or derived classes are fonts. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为字体。默认值为*true*。
+			<br /><br />
 
-			You should not change this, as it used internally by the renderer for optimisation.
+			你不应当对这一属性进行改变,它在内部由渲染器所使用,以用于优化。
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法</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 />
+			[page:String text] -- 文本字符串。<br />
+			[page:Float size] -- (可选)[page:Shape Shapes]的缩放,默认值为*100*。<br />
 
-			Creates an array of [page:Shape Shapes] representing the text in the font.
+			创建一个[page:Shape Shapes]数组,表示使用字体的文本。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 12 - 12
docs/api/zh/extras/core/Interpolations.html

@@ -8,39 +8,39 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>插值([name]</h1>
 
 		<p class="desc">
 		TODO
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法</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 />
+		t -- 插值权重<br />
+		p0, p1, p2, p3 -- 定义了样条曲线的点。<br /><br />
 
-		Used internally by [page:SplineCurve SplineCurve].
+		在内部由[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 />
+		t -- 插值权重<br />
+		p0, p1, p2 -- 定义了该曲线的起始点、控制点和终止点。<br /><br />
 
-		Used internally by [page:QuadraticBezierCurve3 QuadraticBezierCurve3], [page:QuadraticBezierCurve QuadraticBezierCurve] and [page:Font Font].
+		在内部由[page:QuadraticBezierCurve3 QuadraticBezierCurve3]、[page:QuadraticBezierCurve QuadraticBezierCurve]和[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 />
+		t -- 插值权重<br />
+		p0, p1, p2, p3 -- 定义了该曲线的起始点、两个控制点和终止点。<br /><br />
 
-		Used internally by [page:CubicBezierCurve3 CubicBezierCurve3], [page:CubicBezierCurve CubicBezierCurve] and [page:Font Font].
+		在内部由[page:CubicBezierCurve3 CubicBezierCurve3]、[page:CubicBezierCurve CubicBezierCurve]和[page:Font Font]所使用。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 52 - 54
docs/api/zh/extras/core/Path.html

@@ -10,13 +10,13 @@
 	<body>
 		[page:CurvePath] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+		该类定义了二维路径,提供了一些类似2D Canvas API的方法来创建或者构造二维路径。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 		<code>
 			var path = new THREE.Path();
@@ -35,110 +35,108 @@
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Array points] )</h3>
 		<p>
-		points -- (optional) array of [page:Vector2 Vector2s].<br /><br />
+		points -- (可选)[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 />
+		从传入的点中创建一条Path。第一个点定义了偏移量,
+		接下来的点作为[page:LineCurve LineCurves]被添加到[page:CurvePath.curves curves]数组中。<br /><br />
 
-		If no points are specified, an empty path is created and the [page:.currentPoint] is set to
-		the origin.
+		倘若没有点被指定,一条空路径将会被创建,[page:.currentPoint]将被设置为原点。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:CurvePath] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:CurvePath]来了解共有属性。</p>
 
 		<h3>[property:array currentPoint]</h3>
-		<p>The current offset of the path. Any new [page:Curve] added will start here.</p>
+		<p>路径当前的偏移量,任何新被加入的[page:Curve]将会从这里开始。</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:CurvePath] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:CurvePath]来了解共有方法。</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 />
+			x, y -- 弧线的绝对中心。<br />
+			radius -- 弧线的半径。<br />
+			startAngle -- 起始角,以弧度来表示。<br />
+			endAngle -- 终止角,以弧度来表示。<br />
+			clockwise -- 以顺时针方向创建(扫过)弧线。默认值为*false*。<br /><br />
 
-			Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
+			添加一条绝对定位的[page:EllipseCurve EllipseCurve]到路径中。
 		</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.
+			x, y -- 椭圆的绝对中心。<br />
+			xRadius -- 椭圆x轴方向的半径。<br />
+			yRadius -- 椭圆y轴方向的半径。<br />
+			startAngle -- 起始角,以弧度来表示。<br />
+			endAngle -- 终止角,以弧度来表示。<br />
+			clockwise -- 以顺时针方向创建(扫过)椭圆。默认值为*false*。<br />
+			rotation -- 椭圆从X轴正方向逆时针的旋转角度(可选),以弧度表示,默认值为*0*。<br /><br />
+
+			添加一条绝对定位的[page:EllipseCurve EllipseCurve]到路径中。
 		</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 />
+			x, y -- 弧线的中心来自上次调用后的偏移量。<br />
+			radius -- 弧线的半径。<br />
+			startAngle -- 起始角,以弧度来表示。<br />
+			endAngle -- 终止角,以弧度来表示。<br />
+			clockwise -- 以顺时针方向创建(扫过)弧线。默认值为*false*。<br /><br />
 
-		Adds an [page:EllipseCurve EllipseCurve] to the path, positioned relative to [page:.currentPoint].
+		添加一条[page:EllipseCurve EllipseCurve]到路径中,位置相对于[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>
+		<p>从[page:.currentPoint]创建一条贝塞尔曲线,以(cp1X, cp1Y)和(cp2X, cp2Y)作为控制点,并将[page:.currentPoint]更新到x,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].
+			x, y -- 椭圆的中心来自上次调用后的偏移量。The center of the ellipse offset from the last call.<br />
+			xRadius -- 椭圆x轴方向的半径。<br />
+			yRadius -- 椭圆y轴方向的半径。<br />
+			startAngle -- 起始角,以弧度来表示。<br />
+			endAngle -- 终止角,以弧度来表示。<br />
+			clockwise -- 以顺时针方向创建(扫过)椭圆。默认值为*false*。<br />
+			rotation -- 椭圆从X轴正方向逆时针的旋转角度(可选),以弧度表示,默认值为*0*。<br /><br />
+
+			添加一条[page:EllipseCurve EllipseCurve]到路径中,位置相对于[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>
+		<p>在当前路径上,从[page:.currentPoint]连接一条直线到x,y。</p>
 
 
 		<h3>[method:null moveTo]( [param:Float x], [param:Float y] )</h3>
-		<p>Move the [page:.currentPoint] to x, y.</p>
+		<p>将[page:.currentPoint]移动到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>
+		<p>从[page:.currentPoint]创建一条二次曲线,以(cpX,cpY)作为控制点,并将[page:.currentPoint]更新到x,y。</p>
 
 		<h3>[method:null setFromPoints]( [param:Array vector2s] )</h3>
 		<p>
-			points --  array of [page:Vector2 Vector2s].<br /><br />
+			points -- [page:Vector2 Vector2]数组。<br /><br />
 
-			Points are added to the [page:CurvePath.curves curves]
-			array as [page:LineCurve LineCurves].
+			点将被作为[page:LineCurve LineCurves]加入到[page:CurvePath.curves curves]数组中。
 		</p>
 
 		<h3>[method:null splineThru] ( [param:Array points] ) </h3>
 		<p>
-			points - An array of [page:Vector2 Vector2s]<br /><br />
+			points -[page:Vector2 Vector2]数组。<br /><br />
 
-			Connects a new [page:SplineCurve] onto the path.
+			连接一条新的[page:SplineCurve]到路径上。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 21 - 22
docs/api/zh/extras/core/Shape.html

@@ -10,11 +10,11 @@
 	<body>
 		[page:Path] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+		使用路径以及可选的孔洞来定义一个二维形状平面。
+		它可以和[page:ExtrudeGeometry]、[page:ShapeGeometry]一起使用,获取点,或者获取三角面。
 		</p>
 
 		<code>
@@ -35,7 +35,7 @@
 		var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
 		</code>
 
-		<h2>Examples</h2>
+		<h2>示例</h2>
 
 		<p>
 		[example:webgl_geometry_shapes geometry / shapes ]<br/>
@@ -44,57 +44,56 @@
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Array points] )</h3>
 		<p>
-		points -- (optional) array of [page:Vector2 Vector2s].<br /><br />
+		points -- (optional) 一个[page:Vector2 Vector2]数组。<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 />
+		从点来创建一个Shape。第一个点定义了偏移量,
+		接下来的点被作为[page:LineCurve LineCurves]加入到[page:CurvePath.curves curves]中。<br /><br />
 
-		If no points are specified, an empty shape is created and the [page:.currentPoint] is set to
-		the origin.
+		如果没有点被指定,一个空的形状将会被创建,且[page:.currentPoint]将会被设为原点。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Path] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Path]来了解共有属性。</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.
+		该类所创建的实例的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]。它是自动被指定的,因此它不应当被编辑、更改。
 		</p>
 
 		<h3>[property:array holes]</h3>
-		<p>An array of [page:Path paths] that define the holes in the shape.</p>
+		<p>一个[page:Path paths]数组,定义了形状上的孔洞。</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Path] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Path]来了解共有方法。</p>
 
 		<h3>[method:Array extractPoints]( [param:Integer divisions] )</h3>
 		<p>
-		divisions -- The fineness of the result.<br /><br />
+		divisions -- 结果的精细程度(细分数)。<br /><br />
 
-		Call [page:Curve.getPoints getPoints] on the shape and the [page:.holes] array, and return an object of the form:
+		在形状以及[page:.holes](孔洞)数组上调用[page:Curve.getPoints getPoints],并返回一个来自于:
 		<code>
 {
 	shape
 	holes
 }
 		</code>
-		where shape and holes are arrays of [page:Vector2 Vector2s].
+		的对象,其中的形状和孔洞是[page:Vector2 Vector2]数组。
 		</p>
 
 		<h3>[method:Array getPointsHoles]( [param:Integer divisions] )</h3>
 		<p>
-		divisions -- The fineness of the result.<br /><br />
+		divisions -- 结果的精细程度(细分数)。<br /><br />
 
-		Get an array of [page:Vector2 Vector2s] that represent the holes in the shape.
+		获取一个表示形状上的孔洞的[page:Vector2 Vector2s]数组。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 28 - 29
docs/api/zh/extras/core/ShapePath.html

@@ -10,81 +10,80 @@
 	<body>
 		[page:CurvePath] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+		该类用于转换一系列的形状为一个[page:Path]数组,例如转换SVG中的Path为three.js中的Path(请参阅下方的example)。
+		在内部它由[page:Font]所使用,用于将JSON字体转换为一系列路径。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2]
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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.
+		创建一个新的ShapePath。和[page:Path]不同,因为ShapePath被设计为在创建之后生成,所以没有点被传入到构造函数中。
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:array subPaths]</h3>
 		<p>
-		Array of [page:Path]s.
+		[page:Path]数组。
 		</p>
 
 		<h3>[property:array currentPath]</h3>
 		<p>
-		The current [page:Path] that is being generated.
+		当前将要被生成的路径。
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法</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].
+		创建一个新的[page:Path],并在[page:Path]上调用[page:Path.moveTo]( x, y )。
 		</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>
+		<p>这一方法从[page:ShapePath.currentPath currentPath](当前路径)的偏移量创建一条到X和Y的线,并将偏移量更新为X和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>
+		<p>这一方法从[page:ShapePath.currentPath currentPath](当前路径)创建一条到X和Y的二次曲线,cpX和cpY作为控制点,
+			并将[page:ShapePath.currentPath currentPath]的偏移量更新为x和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>
+		<p>
+			这一方法从[page:ShapePath.currentPath currentPath](当前路径)的偏移量创建一条到X和Y的贝塞尔曲线,
+			cp1X、cp1Y和cp1X、cp1Y为控制点,并将[page:ShapePath.currentPath currentPath]的偏移量更新为x和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>
+		<p>points - 一个[page:Vector2]数组。</p>
+		<p>
+			连接一个新的[page:SplineCurve](样条曲线)到[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
+		isCCW -- 更改实体形状和孔洞的生成方式。<br/>
+		noHoles -- 是否创建孔洞。
 		</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.
+		将[page:ShapePath.subPaths subPaths]数组转换为到Shapes数组。默认情况下,实体形状按照顺时针(CW)来定义,孔洞按照逆时针(CCW)来定义。
+		如果isCCW被设置为true,则孔洞和实体形状的定义将被反转。如果noHoles参数设置为true,则所有路径将被设置为实体形状,isCCW将被忽略。
 		<br/>
 
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/Path.js src/extras/core/Path.js]
 	</body>

+ 7 - 7
docs/api/zh/extras/curves/ArcCurve.html

@@ -10,22 +10,22 @@
 	<body>
 		[page:EllipseCurve] &rarr;
 
-		<h1>[name]</h1>
+		<h1>弧线([name]</h1>
 
-		<p class="desc">Alias for [page:EllipseCurve]</p>
+		<p class="desc">[page:EllipseCurve]的别名</p>
 
-		<h2>Properties</h2>
-		<p>See the [page:EllipseCurve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅[page:EllipseCurve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isArcCurve]</h3>
 		<p>
-			Used to check whether this or derived classes are ArcCurves. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为ArcCurves(弧线)。默认值为*true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			你不应当对这一属性进行改变,它在内部使用,以用于优化。
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 19 - 18
docs/api/zh/extras/curves/CatmullRomCurve3.html

@@ -12,10 +12,11 @@
 
 		<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>
+		<p class="desc">
+			使用[link:https://en.wikipedia.org/wiki/Centripetal_Catmull-Rom_spline Catmull-Rom]算法,
+			从一系列的点创建一条平滑的三维样条曲线。</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 //Create a closed wavey loop
@@ -39,42 +40,42 @@ var curveObject = new THREE.Line( geometry, material );
 		<h3>[example:webgl_geometry_extrude_splines geometry / extrude / splines]</h3>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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*.
+			points – [page:Vector3]点数组<br/>
+			closed – 该曲线是否闭合,默认值为false。<br/>
+			curveType – 曲线的类型,默认值为*centripetal*。<br/>
+			tension – 曲线的张力,默认为*0.5*。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isCatmullRomCurve3]</h3>
 		<p>
-			Used to check whether this or derived classes are CatmullRomCurve3s. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为CatmullRomCurve3。默认值为*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>
+		<p>定义了这一曲线的[page:Vector3]点数组,数组中至少需要两个点。</p>
 
 		<h3>[property:Boolean closed]</h3>
-		<p>The curve will loop back onto itself when this is true.</p>
+		<p>当该值为true时,曲线将会闭合(环回自身)。</p>
 
 		<h3>[property:String curveType]</h3>
-		<p>Possible values are *centripetal*, *chordal* and *catmullrom*.</p>
+		<p>可能的值为*centripetal*、*chordal*和*catmullrom*。</p>
 
 		<h3>[property:float tension]</h3>
-		<p>When [page:.type] is *catmullrom*, defines catmullrom's tension.</p>
+		<p>当[page:.type]为*catmullrom*时,定义catmullrom的张力。</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 22 - 21
docs/api/zh/extras/curves/CubicBezierCurve.html

@@ -10,15 +10,15 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+			创建一条平滑的二维
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg" target="_blank">三次贝塞尔曲线</a>,
+			由起点、终点和两个控制点所定义。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 var curve = new THREE.CubicBezierCurve(
@@ -37,44 +37,45 @@ var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var curveObject = new THREE.Line( geometry, material );
 </code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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.
+			[page:Vector2 v0] – 起点<br/>
+			[page:Vector2 v1] – 第一个控制点<br/>
+			[page:Vector2 v2] – 第二个控制点<br/>
+			[page:Vector2 v3] – 终点
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isCubicBezierCurve]</h3>
 		<p>
-			Used to check whether this or derived classes are CubicBezierCurves. Default is *true*.<br /><br />
+			
+			用于检查该类或者其派生类是否为CubicBezierCurves。默认值为*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>
+		<p>起点</p>
 
 		<h3>[property:Vector2 v1]</h3>
-		<p>The first control point.</p>
+		<p>第一个控制点</p>
 
 		<h3>[property:Vector2 v2]</h3>
-		<p>The second control point.</p>
+		<p>第二个控制点</p>
 
 		<h3>[property:Vector2 v3]</h3>
-		<p>The ending point.</p>
+		<p>终点</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common Methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 25 - 25
docs/api/zh/extras/curves/CubicBezierCurve3.html

@@ -10,15 +10,15 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+			创建一条平滑的三维
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg" target="_blank">三次贝塞尔曲线</a>,
+			由起点、终点和两个控制点所定义。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 var curve = new THREE.CubicBezierCurve3(
@@ -38,44 +38,44 @@ var curveObject = new THREE.Line( geometry, material );
 
 </code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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.
+			[page:Vector3 v0] – 起点<br/>
+			[page:Vector3 v1] – 第一个控制点<br/>
+			[page:Vector3 v2] – 第二个控制点<br/>
+			[page:Vector3 v3] – 终点
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isCubicBezierCurve3]</h3>
 		<p>
-			Used to check whether this or derived classes are CubicBezierCurve3s. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为CubicBezierCurves3。默认值为*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:Vector3 v0]</h3>
+		<p>起点</p>
 
-		<h3>[property:Vector2 v1]</h3>
-		<p>The first control point.</p>
+		<h3>[property:Vector3 v1]</h3>
+		<p>第一个控制点</p>
 
-		<h3>[property:Vector2 v2]</h3>
-		<p>The second control point.</p>
+		<h3>[property:Vector3 v2]</h3>
+		<p>第二个控制点</p>
 
-		<h3>[property:Vector2 v3]</h3>
-		<p>The ending point.</p>
+		<h3>[property:Vector3 v3]</h3>
+		<p>终点</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common Methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 31 - 38
docs/api/zh/extras/curves/EllipseCurve.html

@@ -10,14 +10,14 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+			创建一个形状为椭圆的曲线。
+			将[page:Number xRadius]与[page:Number yRadius]设为相等的值它将会成为一个圆。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 var curve = new THREE.EllipseCurve(
@@ -37,68 +37,61 @@ var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var ellipse = new THREE.Line( geometry, material );
 </code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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.
+			[page:Float aX] – 椭圆的中心的X坐标,默认值为*0*。<br/>
+			[page:Float aY] – 椭圆的中心的Y坐标,默认值为*0*。<br/>
+			[page:Float xRadius] – X轴向上椭圆的半径,默认值为*1*。<br/>
+			[page:Float yRadius] – Y轴向上椭圆的半径,默认值为*1*。<br/>
+			[page:Radians aStartAngle] – 以弧度来表示,从正右侧算起曲线开始的角度,默认值为*0*。<br/>
+			[page:Radians aEndAngle] – 以弧度来表示,从正右侧算起曲线终止的角度,默认值为*2 x Math.PI*。<br/>
+			[page:Boolean aClockwise] – 椭圆是否按照顺时针方向来绘制,默认值为*false*。<br/>
+			[page:Radians aRotation]  – 以弧度表示,椭圆从X轴正方向逆时针的旋转角度(可选),默认值为*0*。<br/><br/>
+
+			<em>请注意:</em> 当使用顺时针的时候,最好将起始角度角度设为(Math.PI * 2),并向着更小的数字运行。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</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.
+			用于检查该类或者其派生类是否为EllipseCurves。默认值为*true*。
+			<br /><br />
+			你不应当更改这个属性,它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Float aX]</h3>
-		<p>The X center of the ellipse.</p>
+		<p>椭圆的中心的X坐标。</p>
 
 		<h3>[property:Float aY]</h3>
-		<p>The Y center of the ellipse.</p>
+		<p>椭圆的中心的Y坐标。</p>
 
 		<h3>[property:Radians xRadius]</h3>
-		<p>The radius of the ellipse in the x direction.</p>
+		<p>X轴向上椭圆的半径。</p>
 
 		<h3>[property:Radians yRadius]</h3>
-		<p>The radius of the ellipse in the y direction.</p>
+		<p>Y轴向上椭圆的半径。</p>
 
 		<h3>[property:Float aStartAngle]</h3>
-		<p>The start angle of the curve in radians starting from the middle right side.</p>
+		<p>以弧度来表示,从正右侧算起曲线开始的角度。</p>
 
 		<h3>[property:Float aEndAngle]</h3>
-		<p>The end angle of the curve in radians starting from the middle right side.</p>
+		<p>以弧度来表示,从正右侧算起曲线终止的角度。</p>
 
 		<h3>[property:Boolean aClockwise]</h3>
-		<p>Whether the ellipse is drawn clockwise.</p>
+		<p>椭圆是否按照顺时针方向来绘制。</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>
+		<p>以弧度表示,椭圆在X轴正方向逆时针的旋转角度(可选),默认值为*0*。</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 15 - 14
docs/api/zh/extras/curves/LineCurve.html

@@ -10,41 +10,42 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<h1>二维线段曲线([name]</h1>
 
-		<p class="desc">A curve representing a 2d line segment.</p>
+		<p class="desc">一个表示二维线段的曲线。</p>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Vector2 v1], [param:Vector2 v2] )</h3>
 		<p>
-			[page:Vector2 v1] – The start point.<br/>
-			[page:Vector2 v2] - The end point.
+			[page:Vector2 v1] – 起点<br/>
+			[page:Vector2 v2] - 终点
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isLineCurve]</h3>
 		<p>
-			Used to check whether this or derived classes are LineCurves. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为LineCurves。默认值为*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>
+		<p>起点</p>
 
 		<h3>[property:Vector2 v2]</h3>
-		<p>The end point</p>
+		<p>终点</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 16 - 15
docs/api/zh/extras/curves/LineCurve3.html

@@ -10,40 +10,41 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<h1>三维线段曲线([name]</h1>
 
-		<p class="desc">A curve representing a 3d line segment.</p>
+		<p class="desc">一个表示三维线段的曲线。</p>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Vector3 v1], [param:Vector3 v2] )</h3>
 		<p>
-			[page:Vector3 v1] – The start point.<br/>
-			[page:Vector3 v2] - The end point.
+			[page:Vector3 v1] – 起点<br/>
+			[page:Vector3 v2] - 终点
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</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.
+			用于检查该类或者其派生类是否为LineCurves。默认值为*true*。
+			<br /><br />
+	
+			你不应当更改这个属性,它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Vector3 v1]</h3>
-		<p>The start point.</p>
+		<p>起点</p>
 
 		<h3>[property:Vector3 v2]</h3>
-		<p>The end point.</p>
+		<p>终点</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 19 - 19
docs/api/zh/extras/curves/QuadraticBezierCurve.html

@@ -10,15 +10,15 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<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.
+			创建一条平滑的二维
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">二次贝塞尔曲线</a>,
+			由起点、终点和一个控制点所定义。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 var curve = new THREE.QuadraticBezierCurve(
@@ -36,41 +36,41 @@ var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var curveObject = new THREE.Line( geometry, material );
 </code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</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.
+			[page:Vector2 v0] – 起点<br/>
+			[page:Vector2 v1] – 中间的控制点<br/>
+			[page:Vector2 v2] – 终点<br/>
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isQuadraticBezierCurve]</h3>
 		<p>
-			Used to check whether this or derived classes are QuadraticBezierCurves. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为QuadraticBezierCurve。默认值为*true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			你不应当对这一属性进行改变,它在内部使用,以用于优化。
 		</p>
 
 
 		<h3>[property:Vector2 v0]</h3>
-		<p>The startpoint.</p>
+		<p>起点</p>
 
 		<h3>[property:Vector2 v1]</h3>
-		<p>The control point.</p>
+		<p>控制点</p>
 
 		<h3>[property:Vector2 v2]</h3>
-		<p>The endpoint.</p>
+		<p>终点</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 19 - 19
docs/api/zh/extras/curves/QuadraticBezierCurve3.html

@@ -10,15 +10,15 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<h1>三维二次贝塞尔曲线([name]</h1>
 
 		<p class="desc">
-			Create a smooth 3d
-			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">quadratic bezier curve</a>,
-			defined by a startpoint, endpoint and a single control point.
+			创建一条平滑的三维
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">二次贝塞尔曲线</a>,
+			由起点、终点和一个控制点所定义。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 var curve = new THREE.QuadraticBezierCurve3(
@@ -36,41 +36,41 @@ var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var curveObject = new THREE.Line( geometry, material );
 </code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2] )</h3>
 		<p>
-			[page:Vector3 v0] – The starting point<br/>
-			[page:Vector3 v1] – The middle control point<br/>
-			[page:Vector3 v2] – The ending point<br/>
+			[page:Vector3 v0] – 起点<br/>
+			[page:Vector3 v1] – 中间的控制点<br/>
+			[page:Vector3 v2] – 终点<br/>
 		</p>
 
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isQuadraticBezierCurve3]</h3>
 		<p>
-			Used to check whether this or derived classes are QuadraticBezierCurve3s. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为QuadraticBezierCurve3。默认值为*true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			你不应当对这一属性进行改变,它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Vector3 v0]</h3>
-		<p>The startpoint.</p>
+		<p>起点</p>
 
 		<h3>[property:Vector3 v1]</h3>
-		<p>The control point.</p>
+		<p>控制点</p>
 
 		<h3>[property:Vector3 v2]</h3>
-		<p>The endpoint.</p>
+		<p>终点</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 13 - 14
docs/api/zh/extras/curves/SplineCurve.html

@@ -10,14 +10,13 @@
 	<body>
 		[page:Curve] &rarr;
 
-		<h1>[name]</h1>
+		<h1>样条曲线([name]</h1>
 
 		<p class="desc">
-		Create a smooth 2d spline curve from a series of points. Internally this uses
-		[page:Interpolations.CatmullRom] to create the curve.
+			从一系列的点中,创建一个平滑的二维样条曲线。内部使用[page:Interpolations.CatmullRom]来创建曲线。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 <code>
 // Create a sine-like wave
@@ -38,34 +37,34 @@ var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var splineObject = new THREE.Line( geometry, material );
 </code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Array points] )</h3>
-		<p>points – An array of [page:Vector2] points that define the curve.</p>
+		<p>points – 定义曲线的[page:Vector2]点的数组。</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Curve] class for common properties.</p>
+		<h2>属性</h2>
+		<p>请参阅其基类[page:Curve]来了解共有属性。</p>
 
 		<h3>[property:Boolean isSplineCurve]</h3>
 		<p>
-			Used to check whether this or derived classes are SplineCurves. Default is *true*.<br /><br />
+			用于检查该类或者其派生类是否为样条曲线。默认值为*true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			你不应当对这一属性进行改变,它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Array points]</h3>
-		<p>The array of [page:Vector2] points that define the curve.</p>
+		<p>定义这一曲线的[page:Vector2]点的数组。</p>
 
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Curve] class for common methods.</p>
+		<h2>方法</h2>
+		<p>请参阅其基类[page:Curve]来了解共有方法。</p>
 
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 2 - 2
docs/api/zh/extras/objects/ImmediateRenderObject.html

@@ -10,9 +10,9 @@
 	<body>
 		[page:Object3D] &rarr;
 
-		<h1>时渲染对象([name])</h1>
+		<h1>时渲染对象([name])</h1>
 
-		<p class="desc">时渲染对象的基类。</p>
+		<p class="desc">时渲染对象的基类。</p>
 
 
 		<h2>构造函数(Constructor)</h2>

+ 1 - 1
docs/api/zh/geometries/CircleBufferGeometry.html

@@ -10,7 +10,7 @@
 	<body>
 		[page:BufferGeometry] &rarr;
 
-		<h1>圆形缓冲几何体[name]</h1>
+		<h1>圆形缓冲几何体[name]</h1>
 
 		<p class="desc">这是[page:CircleGeometry]中的[page:BufferGeometry]接口。</p>
 

+ 1 - 1
docs/api/zh/geometries/LatheBufferGeometry.html

@@ -10,7 +10,7 @@
 	<body>
 		[page:BufferGeometry] &rarr;
 
-		<h1>[name]</h1>
+		<h1>车削缓冲几何体([name]</h1>
 
 		<p class="desc">这是[page:LatheGeometry]中的[page:BufferGeometry]接口。</p>
 

+ 7 - 7
docs/api/zh/geometries/ParametricBufferGeometry.html

@@ -10,9 +10,9 @@
 	<body>
 		[page:BufferGeometry] &rarr;
 
-		<h1>[name]</h1>
+		<h1>参数化缓冲几何体([name]</h1>
 
-		<p class="desc">Generate geometry representing a parametric surface.</p>
+		<p class="desc">生成由参数表示其表面的几何体。</p>
 
 		<iframe id="scene" src="scenes/geometry-browser.html#ParametricBufferGeometry"></iframe>
 
@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 		<code>
 		var geometry = new THREE.ParametricBufferGeometry( THREE.ParametricGeometries.klein, 25, 25 );
@@ -42,7 +42,7 @@
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]([param:Function func], [param:Integer slices], [param:Integer stacks])</h3>
@@ -52,15 +52,15 @@
 		stacks — The count of stacks to use for the parametric function
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Object parameters]</h3>
 		<p>
-		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		一个包含着构造函数中每个参数的对象。在对象实例化之后,对该属性的任何修改都不会改变这个几何体。
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>方法</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/ParametricGeometry.js src/geometries/ParametricGeometry.js]
 	</body>

+ 7 - 7
docs/api/zh/geometries/ParametricGeometry.html

@@ -10,9 +10,9 @@
 	<body>
 		[page:Geometry] &rarr;
 
-		<h1>[name]</h1>
+		<h1>参数化几何体([name]</h1>
 
-		<p class="desc">Generate geometry representing a parametric surface.</p>
+		<p class="desc">生成由参数表示其表面的几何体。</p>
 
 		<iframe id="scene" src="scenes/geometry-browser.html#ParametricGeometry"></iframe>
 
@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 		<code>
 		var geometry = new THREE.ParametricGeometry( THREE.ParametricGeometries.klein, 25, 25 );
@@ -42,7 +42,7 @@
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]([param:Function func], [param:Integer slices], [param:Integer stacks])</h3>
@@ -53,15 +53,15 @@
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Object parameters]</h3>
 		<p>
-		An object with a property for each of the constructor parameters. Any modification after instantiation does not change the geometry.
+		一个包含着构造函数中每个参数的对象。在对象实例化之后,对该属性的任何修改都不会改变这个几何体。
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 1 - 1
docs/api/zh/geometries/PlaneBufferGeometry.html

@@ -10,7 +10,7 @@
 	<body>
 		[page:BufferGeometry] &rarr;
 
-		<h1>[name]</h1>
+		<h1>平面缓冲几何体([name]</h1>
 
 		<p class="desc">这是[page:PlaneGeometry]中的[page:BufferGeometry]接口。</p>
 

+ 1 - 1
docs/api/zh/geometries/SphereGeometry.html

@@ -10,7 +10,7 @@
 	<body>
 		[page:Geometry] &rarr;
 
-		<h1>球几何体[name]</h1>
+		<h1>球几何体[name]</h1>
 
 		<p class="desc">一个用于生成球体的类。</p>
 

+ 1 - 1
docs/api/zh/geometries/TorusGeometry.html

@@ -10,7 +10,7 @@
 	<body>
 		[page:Geometry] &rarr;
 
-		<h1>圆环几何体[name]</h1>
+		<h1>圆环几何体[name]</h1>
 
 		<p class="desc">一个用于生成圆环几何体的类。</p>
 

+ 1 - 1
docs/api/zh/geometries/TorusKnotBufferGeometry.html

@@ -10,7 +10,7 @@
 	<body>
 		[page:BufferGeometry] &rarr;
 
-		<h1>[name]</h1>
+		<h1>圆环缓冲几何体([name]</h1>
 
 		<p class="desc">This is the [page:BufferGeometry] port of [page:TorusKnotGeometry].</p>
 

+ 0 - 11
docs/api/zh/materials/Material.html

@@ -83,17 +83,6 @@
     这可以与网格的[page:Integer renderOrder]属性结合使用,以创建遮挡其他对象的不可见对象。默认值为*true*。
 </p>
 
-<h3>[property:Material customDepthMaterial]</h3>
-<p>渲染到深度贴图时此材质要使用的自定义深度材质。
-    当使用[page:DirectionalLight]或[page:SpotLight]进行阴影投射时,如果您正在(a)修改顶点着色器中的顶点位置,
-    (b)使用位移贴图,(c)alphaTest中使用alpha贴图,或(d)alphaTest中使用透明纹理,
-    您必须指定customDepthMaterial以得到合适的阴影。默认值*undefined*。
-</p>
-
-<h3>[property:Material customDistanceMaterial]</h3>
-<p>与customDepthMaterial相同,但与[page:PointLight]一起使用。默认值为*undefined*。
-</p>
-
 <h3>[property:Object defines]</h3>
 <p> 注入shader的自定义对象。 以键值对形式的对象传递,{ MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }。
     这些键值对在顶点和片元着色器中定义。默认值为*undefined*。

+ 3 - 11
docs/api/zh/math/Box3.html

@@ -34,7 +34,7 @@
 		<h3>[property:Boolean isBox3]</h3>
 		<p>
 			用于检测当前对象或者派生类对象是否是Box3。默认为 *true*。<br /><br />
-			
+
 			不应该修改这个值,因为内部使用该属性做了优化的任务。
 		</p>
 
@@ -57,7 +57,7 @@
 		<h3>[method:Box3 applyMatrix4]( [param:Matrix4 matrix] )</h3>
 		<p>
 		[page:Matrix4 matrix] - 要应用的 [page:Matrix4] <br /><br />
-		
+
 		使用传入的矩阵变换Box3(包围盒8个顶点都会乘以这个变换矩阵)。
 		</p>
 
@@ -219,7 +219,7 @@
 		[page:Vector3 min] - [page:Vector3] 表示下边界每个纬度(x,y,z)的值。<br />
 		[page:Vector3 max] - [page:Vector3] 表示上边界每个纬度(x,y,z)的值。<br /><br />
 
-		设置包围盒上下边界每个纬度(x,y,z)的值。 
+		设置包围盒上下边界每个纬度(x,y,z)的值。
 		</p>
 
 		<h3>[method:Box3 setFromArray]( [param:Array array] ) [param:Box3 this]</h3>
@@ -236,14 +236,6 @@
 		设置此包围盒的上边界和下边界,以包含 [page:BufferAttribute attribute] 中的所有位置数据。
 		</p>
 
-<!--	<h3>[method:Box3 setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )</h3>
-		<p>
-		[page:Vector3 center] - 包围盒的中心位置 ([page:Vector3]). <br>
-		[page:Vector3 size] - 需要设置包围盒x,y,z的分量 ([page:Vector3]).<br /><br />
-
-		将包围盒的中心点设为 [page:Vector3 center] ,然后将包围盒的宽高设为指定的 [page:Vector3 size]。
-		</p>-->	
-
 		<h3>[method:Box3 setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] ) [param:Box3 this]</h3>
 		<p>
 		[page:Vector3 center], - 包围盒所要设置的中心位置。 <br>

+ 7 - 7
docs/api/zh/math/Cylindrical.html

@@ -8,10 +8,10 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>圆柱体[name]</h1>
+		<h1>圆柱坐标([name])</h1>
 
 		<p class="desc">
-			A point's [link:https://en.wikipedia.org/wiki/Cylindrical_coordinate_system cylindrical coordinates].
+			一个点的[link:https://en.wikipedia.org/wiki/Cylindrical_coordinate_system cylindrical coordinates](圆柱坐标)。
 		</p>
 
 
@@ -39,12 +39,12 @@
 
 		<h3>[method:Cylindrical clone]()</h3>
 		<p>
-			返回一个与当前拥有相同 [page:.radius radius], [page:.theta theta] 和 [page:.y y] 属性的圆柱
+			返回一个与当前拥有相同 [page:.radius radius], [page:.theta theta] 和 [page:.y y] 属性的圆柱坐标
 		</p>
 
 		<h3>[method:Cylindrical copy]( [param:Cylindrical other] )</h3>
 		<p>
-			将传入的圆柱对象的 [page:.radius radius], [page:.theta theta] 和 [page:.y y] 属性赋给当前对象。
+			将传入的圆柱坐标对象的 [page:.radius radius], [page:.theta theta] 和 [page:.y y] 属性赋给当前对象。
 		</p>
 
 		<h3>[method:Cylindrical set]( [param:Float radius], [param:Float theta], [param:Float y] )</h3>
@@ -53,15 +53,15 @@
 
 		<h3>[method:Cylindrical setFromVector3]( [param:Vector3 vec3] )</h3>
 		<p>
-			从 [page:Vector3 Vector3] 中取x,y,z,并调用setFromCartesianCoords来设置圆柱
+			从 [page:Vector3 Vector3] 中取x,y,z,并调用setFromCartesianCoords来设置圆柱坐标
 			[page:.radius radius]、[page:.theta theta] 和 [page:.y y] 的属性值。
 
 		</p>
 
 		<h3>[method:Cylindrical setFromCartesianCoords]( [param:Float x], [param:Float y], [param:Float z] )</h3>
 		<p>
-			使用笛卡尔坐标来设置该圆柱体的 [page:.radius radius], [page:.theta theta]
-			and [page:.y y] 属性值。
+			使用笛卡尔坐标来设置该圆柱坐标中 [page:.radius radius], [page:.theta theta]
+			以及 [page:.y y] 的属性值。
 		</p>
 
 		<h2>源码(Source)</h2>

+ 2 - 2
docs/api/zh/math/Euler.html

@@ -8,7 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>欧拉角([name]</h1>
 
 		<p class="desc">
 			表示 [link:http://en.wikipedia.org/wiki/Euler_angles Euler] 的类。<br /><br />
@@ -51,7 +51,7 @@
 			绕X轴旋转,然后是Y轴,最后是Z轴。其他可能性包括:
 			'YZX', 'ZXY', 'XZY', 'YXZ'和'ZYX'。这些必须是大写字母。<br /><br />
 			Three.js 使用<em>intrinsic</em> Tait-Bryan angles(Yaw、Pitch、Roll)。
-			这意味着旋转是在<em>本地</em>坐标系下进行的。也就是说,对于“XYZ”订单,首先是围绕local-X轴旋转(与world- x轴相同),
+			这意味着旋转是在<em>本地</em>坐标系下进行的。也就是说,对于“XYZ”顺序,首先是围绕local-X轴旋转(与world- x轴相同),
 			然后是local-Y(现在可能与world y轴不同),然后是local-Z(可能与world z轴不同)。<br /><br />
 
 			如果order值被改变,[page:.onChangeCallback onChangeCallback] 会被调用。

+ 1 - 1
docs/api/zh/math/Matrix4.html

@@ -8,7 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>四维矩阵([name]</h1>
+		<h1>四维矩阵([name]</h1>
 
 		<p class="desc">
 			表示为一个 4x4 [link:https://en.wikipedia.org/wiki/Matrix_(mathematics) matrix].<br /><br />

+ 1 - 1
docs/api/zh/math/Quaternion.html

@@ -290,4 +290,4 @@ q.slerp( qb, t )
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>
-</html>
+</html>

+ 67 - 75
docs/api/zh/math/Ray.html

@@ -8,206 +8,198 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>射线([name]</h1>
 
 		<p class="desc">
-			A ray that emits from an origin in a certain direction. This is used by the
-			[page:Raycaster] to assist with [link:https://en.wikipedia.org/wiki/Ray_casting raycasting].
-			Raycasting is used for mouse picking (working out what objects in the 3D space the mouse is over) amongst
-			other things.
+			射线由一个原点向一个确定的方向发射。它被[page:Raycaster](光线投射)所使用,
+			以用于辅助[link:https://en.wikipedia.org/wiki/Ray_casting raycasting]。
+			光线投射用于在各个物体之间进行拾取(当鼠标经过三维空间中的物体/对象时进行拾取)。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
 		<p>
-		[page:Vector3 origin] - (optional) the origin of the [page:Ray]. Default is a [page:Vector3] at (0, 0, 0).<br />
-		[page:Vector3 direction] - [page:Vector3] The direction of the [page:Ray]. This must be normalized
-		 (with [page:Vector3.normalize]) for the methods to operate properly.  Default is a [page:Vector3] at (0, 0, 0).<br /><br />
+		[page:Vector3 origin] - (可选)[page:Ray](射线)的原点,默认值是一个位于(0, 0, 0)的[page:Vector3]。<br />
+		[page:Vector3 direction] - [page:Vector3] [page:Ray](射线)的方向。该向量必须经过标准化(使用[page:Vector3.normalize]),这样才能使方法正常运行。
+		默认值是一个位于(0, 0, 0)的[page:Vector3]。<br /><br />
 
-		Creates a new [name].
+		创建一个新的[name]。
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Vector3 origin]</h3>
-		<p>The origin of the [page:Ray]. Default is a [page:Vector3] at (0, 0, 0).</p>
+		<p>[page:Ray](射线)的原点,默认值是一个位于(0, 0, 0)的[page:Vector3]。</p>
 
 		<h3>[property:Vector3 direction]</h3>
 		<p>
-		The direction of the [page:Ray]. This must be normalized (with [page:Vector3.normalize])
-		for the methods to operate properly. Default is a [page:Vector3] at (0, 0, 0).
+		[page:Ray](射线)的方向。该向量必须经过标准化(使用[page:Vector3.normalize]),这样才能使方法正常运行。
+		默认值是一个位于(0, 0, 0)的[page:Vector3]。
 		</p>
 
 
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Ray applyMatrix4]( [param:Matrix4 matrix4] )</h3>
 		<p>
-		[page:Matrix4 matrix4] - the [page:Matrix4] to apply to this [page:Ray].<br /><br />
+		[page:Matrix4 matrix4] - 将被用于这个[page:Ray]的[page:Matrix4]。<br /><br />
 
-		Transform this [page:Ray] by the [page:Matrix4].
+		使用传入的[page:Matrix4]来变换这个[page:Ray]。
 		</p>
 
 		<h3>[method:Vector3 at]( [param:Float t], [param:Vector3 target] ) </h3>
 		<p>
-		[page:Float t] - the distance along the [page:Ray] to retrieve a position for.<br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Float t] - 使用这一传入的距离,在[page:Ray]上确定一个位置。<br />
+		[page:Vector3 target] — 结果将复制到这一Vector3中。<br /><br />
 
-		Get a [page:Vector3] that is a given distance along this [page:Ray].
+		获得这一[page:Ray]上给定距离处的[page:Vector3]。
 		</p>
 
 		<h3>[method:Ray clone]()</h3>
 		<p>
-			Creates a new Ray with identical [page:.origin origin] and [page:.direction direction]  to this one.
+			创建一个新的和这个Ray具有相同[page:.origin origin]和[page:.direction direction]的Ray。
 		</p>
 
 		<h3>[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
 		<p>
-		[page:Vector3 point] - the point to get the closest approach to. <br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 point] - 获得距离射线上的点最接近的点。<br />
+		[page:Vector3 target] — 结果将复制到这一Vector3中。<br /><br />
 
-		Get the point along this [page:Ray] that is closest to the [page:Vector3] provided.
+		沿着[page:Ray],获得与所传入[page:Vector3]最接近的点。
 		</p>
 
 		<h3>[method:Ray copy]( [param:Ray ray] )</h3>
 		<p>
-			Copies the [page:.origin origin] and [page:.direction direction] properties
-			of [page:Ray ray] into this ray.
+			复制所传入Ray的[page:.origin origin]和[page:.direction direction]属性到这个Ray上。
 		</p>
 
 		<h3>[method:Float distanceSqToPoint]( [param:Vector3 point] )</h3>
 		<p>
 		[page:Vector3 point] - the [page:Vector3] to compute a distance to.<br /><br />
 
-		Get the squared distance of the closest approach between the [page:Ray] and the [page:Vector3].
+		获得[page:Ray]与传入的[page:Vector3]之间最近的平方距离。
 		</p>
 
 		<h3>[method:Float distanceSqToSegment]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 optionalPointOnRay], [param:Vector3 optionalPointOnSegment] )</h3>
 		<p>
-		[page:Vector3 v0] - the start of the line segment.<br />
-		[page:Vector3 v1] - the end of the line segment.<br />
-		optionalPointOnRay - (optional) if this is provided, it receives the point on this
-			[page:Ray] that is closest to the segment.<br />
-		optionalPointOnSegment - (optional) if this is provided, it receives the point
-			on the line segment that is closest to this [page:Ray].<br /><br />
+		[page:Vector3 v0] - 线段的起点。<br />
+		[page:Vector3 v1] - 线段的终点。<br />
+		optionalPointOnRay - (可选)若这个值被给定,它将接收在[page:Ray](射线)上距离线段最近的点。
+			<br />
+		optionalPointOnSegment - (可选)若这个值被给定,它将接收在线段上距离[page:Ray](射线)最近的点。<br /><br />
 
-		Get the squared distance between this [page:Ray] and a line segment.
+		获取[page:Ray](射线)与线段之间的平方距离。
 		</p>
 
 		<h3>[method:Float distanceToPlane]( [param:Plane plane] )</h3>
 		<p>
-		[page:Plane plane] - the [page:Plane] to get the distance to.<br /><br />
+		[page:Plane plane] - 将要获取射线原点到该平面的距离的平面。<br /><br />
 
-		Get the distance from [page:.origin origin] to the [page:Plane], or *null* if the [page:Ray] doesn't intersect the [page:Plane].
+		获取射线原点([page:.origin origin])到平面([page:Plane])之间的距离。若射线([page:Ray])不与平面([page:Plane])相交,则将返回*null*。
 		</p>
 
 		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
 		<p>
-		[page:Vector3 point] - [page:Vector3] The [page:Vector3] to compute a distance to.<br /><br />
+		[page:Vector3 point] - [page:Vector3] 将被用于计算到其距离的[page:Vector3]。<br /><br />
 
-		Get the distance of the closest approach between the [page:Ray] and the [page:Vector3 point].
+		获得[page:Ray](射线)到所传入[page:Vector3 point]之间最接近的距离。
 		</p>
 
 
 		<h3>[method:Boolean equals]( [param:Ray ray] )</h3>
 		<p>
-		[page:Ray ray] - the [page:Ray] to compare to.<br /><br />
+		[page:Ray ray] - 用于比较的[page:Ray]。<br /><br />
 
-		Returns true if this and the other [page:Ray ray] have equal [page:.offset offset]
-		 and [page:.direction direction].
+		如果所传入的[page:Ray ray]具有和当前Ray相同的[page:.offset offset]和[page:.direction direction]则返回true。
 		</p>
 
 		<h3>[method:Vector3 intersectBox]( [param:Box3 box], [param:Vector3 target] )</h3>
 		<p>
-		[page:Box3 box] - the [page:Box3] to intersect with.<br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Box3 box] - 将会与之相交的[page:Box3]。<br />
+		[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
 
-		Intersect this [page:Ray] with a [page:Box3], returning the intersection point or
-		*null* if there is no intersection.
+		将[page:Ray](射线)与一个[page:Box3]相交,并返回交点,倘若没有交点将返回*null*。
 		</p>
 
 		<h3>[method:Vector3 intersectPlane]( [param:Plane plane], [param:Vector3 target] )</h3>
 		<p>
-		[page:Plane plane] - the [page:Plane] to intersect with.<br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Plane plane] - 将会与之相交的[page:Plane]。<br />
+		[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
 
-		Intersect this [page:Ray] with a [page:Plane], returning the intersection point or
-		*null* if there is no intersection.
+		将[page:Ray](射线)与一个[page:Plane]相交,并返回交点,倘若没有交点将返回*null*。
 		</p>
 
 		<h3>[method:Vector3 intersectSphere]( [param:Sphere sphere], [param:Vector3 target] )</h3>
 		<p>
-		[page:Sphere sphere] - the [page:Sphere] to intersect with.<br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Sphere sphere] - 将会与之相交的[page:Sphere]。<br />
+		[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
 
-		Intersect this [page:Ray] with a [page:Sphere], returning the intersection point or
-		*null* if there is no intersection.
+		将[page:Ray](射线)与一个[page:Sphere](球)相交,并返回交点,倘若没有交点将返回*null*。
 		</p>
 
 		<h3>[method:Vector3 intersectTriangle]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c], [param:Boolean backfaceCulling], [param:Vector3 target] )</h3>
 		<p>
-		[page:Vector3 a], [page:Vector3 b], [page:Vector3 c] - The [page:Vector3] points making up the triangle.<br />
-		[page:Boolean backfaceCulling] - whether to use backface culling.<br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 a], [page:Vector3 b], [page:Vector3 c] - 组成三角形的三个[page:Vector3]。<br />
+		[page:Boolean backfaceCulling] - 是否使用背面剔除。<br />
+		[page:Vector3 target] — 结果将会被复制到这一Vector3中。<br /><br />
 
-		Intersect this [page:Ray] with a triangle, returning the intersection point or *null*
-		if there is no intersection.
+		将[page:Ray](射线)与一个三角形相交,并返回交点,倘若没有交点将返回*null*。
 		</p>
 
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
 		<p>
-		[page:Box3 box] - the [page:Box3] to intersect with.<br /><br />
+		[page:Box3 box] - 将被检查是否与之相交的[page:Box3]。<br /><br />
 
-		Return true if this [page:Ray] intersects with the [page:Box3].
+		若这一射线与[page:Box3]相交,则将返回true。
 		</p>
 
 		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
 		<p>
-		[page:Plane plane] - the [page:Plane] to intersect with.<br /><br />
+		[page:Plane plane] - 将被检查是否与之相交的[page:Plane]。<br /><br />
 
-		Return true if this [page:Ray] intersects with the [page:Plane].
+		若这一射线与[page:Plane]相交,则将返回true。
 		</p>
 
 		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
 		<p>
-		[page:Sphere sphere] - the [page:Sphere] to intersect with.<br /><br />
+		[page:Sphere sphere] - 将被检查是否与之相交的[page:Sphere]。<br /><br />
 
-		Return true if this [page:Ray] intersects with the [page:Sphere].
+		若这一射线与[page:Sphere]相交,则将返回true。
 		</p>
 
 		<h3>[method:Ray lookAt]( [param:Vector3 v] )</h3>
 		<p>
-		[page:Vector3 v] - The [page:Vector3] to look at.<br /><br />
+		[page:Vector3 v] - 将要“直视”的[page:Vector3]<br /><br />
 
-		Adjusts the direction of the ray to point at the vector in world coordinates.
+		调整光线的方向到世界坐标中该向量所指代的点。
 		</p>
 
 		<h3>[method:Ray recast]( [param:Float t] )</h3>
 		<p>
-		[page:Float t] - The distance along the [page:Ray] to interpolate.<br /><br />
+		[page:Float t] - 沿着[page:Ray]进行插值的距离。<br /><br />
 
-		Shift the origin of this [page:Ray] along its direction by the distance given.
+		将[page:Ray](射线)的原点沿着其方向移动给定的距离。
 		</p>
 
 		<h3>[method:Ray set]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
 		<p>
-		[page:Vector3 origin] - the [page:.origin origin] of the [page:Ray].<br />
-		[page:Vector3 origin] - the [page:.direction direction] of the [page:Ray].
-		This must be normalized (with [page:Vector3.normalize]) for the methods to operate
-		properly.<br /><br />
+		[page:Vector3 origin] - [page:Ray](射线)的[page:.origin origin](原点)。<br />
+		[page:Vector3 origin] - [page:Ray](射线)的[page:.direction direction](方向)。
+		
+		该向量必须经过标准化(使用[page:Vector3.normalize]),这样才能使方法正常运行。
+		<br /><br />
 
-		Copy the parameters to the [page:.origin origin] and [page:.direction direction] properties
-		of this ray.
+		将传入的参数赋值给射线的[page:.origin origin]和[page:.direction direction]。
 		</p>
 
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 39 - 43
docs/api/zh/math/Sphere.html

@@ -8,131 +8,127 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>球([name]</h1>
 
-		<p class="desc">A sphere defined by a center and radius.</p>
+		<p class="desc">一个球由球心和半径所定义。</p>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 		<h3>[name]( [param:Vector3 center], [param:Float radius] )</h3>
 		<p>
-		[page:Vector3 center] - center of the sphere. Default is a [page:Vector3] at (0, 0, 0). <br />
-		[page:Float radius] - radius of the sphere. Default is 0.<br /><br />
+		[page:Vector3 center] - 球心的位置,默认值是一个位于(0, 0, 0)的[page:Vector3]。<br />
+		[page:Float radius] - 球的半径,默认值是0。<br /><br />
 
-		Creates a new [name].
+		创建一个新的[name]。
 
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 
 		<h3>[property:Vector3 center]</h3>
-		<p>A [page:Vector3] defining the center of the sphere. Default is (0, 0, 0).</p>
+		<p>A [page:Vector3]定义了球心的位置,默认值位于(0, 0, 0)。</p>
 
 		<h3>[property:Float radius]</h3>
-		<p>The radius of the sphere. Default is 0.</p>
+		<p>球的半径,默认值为0。</p>
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Sphere applyMatrix4]( [param:Matrix4 matrix] )</h3>
 		<p>
-			[page:Matrix4 matrix] - the [Page:Matrix4] to apply <br /><br />
+			[page:Matrix4 matrix] - 将被应用的[Page:Matrix4]矩阵。<br /><br />
 
-			Transforms this sphere with the provided [page:Matrix4].
+			使用所传入的[page:Matrix4]矩阵来对球进行变换。
 		</p>
 
 		<h3>[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
 		<p>
-		[page:Vector3 point] - [page:Vector3] The point to clamp.<br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 point] - [page:Vector3] 将要夹取的点。<br />
+		[page:Vector3 target] — 结果将被复制到这个Vector3中。<br /><br />
 
-		Clamps a point within the sphere. If the point is is outside the sphere, it will clamp it to the
-		closets point on the edge of the sphere. Points already inside the sphere will not be affected.
+		从球中夹取一个点。若这一点位于球外,则将会夹取到该点球边缘最近的点。已位于球中的点将不会受到影响。
 		</p>
 
 		<h3>[method:Sphere clone]()</h3>
-		<p>Returns a new sphere with the same [page:.center center] and [page:.radius radius] as this one.</p>
+		<p>返回一个新的球,新的球与这个球具有相同的[page:.center center]和[page:.radius radius]。</p>
 
 		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
 		<p>
 		[page:Vector3 point] - the [page:Vector3] to be checked<br /><br />
 
-		Checks to see if the sphere contains the provided [page:Vector3 point] inclusive of the
-		surface of the sphere.
+		检查球体中是否包含所传入的[page:Vector3 point]点,包括球的表面。
 		</p>
 
 		<h3>[method:Sphere copy]( [param:Sphere sphere] )</h3>
 		<p>
-		Copies the values of the passed sphere's [page:.center center] and [page:.radius radius]
-		properties to this sphere.
+		复制所传入的球的[page:.center center]和[page:.radius radius]到这个球上。
 		</p>
 
 		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
 		<p>
-		Returns the closest distance from the boundary of the sphere to the [page:Vector3 point]. If the sphere contains the point,
-		the distance will be negative.
+		返回球的边界到所传入的[page:Vector3 point]点的最近距离。
+		若这个点,则距离将为负值。
 		</p>
 
 		<h3>[method:Boolean empty]()</h3>
-		<p>Checks to see if the sphere is empty (the radius set to 0).</p>
+		<p>检查球是否为空(其半径设为了0).</p>
 
 		<h3>[method:Boolean equals]( [param:Sphere sphere] )</h3>
 		<p>
-		Checks to see if the two spheres' centers and radii are equal.
+		检查这两个球的球心与半径是否相等。
 		</p>
 
 		<h3>[method:Box3 getBoundingBox]( [param:Box3 target] )</h3>
 		<p>
-		[page:Box3 target] — the result will be copied into this Box3.<br /><br />
+		[page:Box3 target] — 结果将被复制到这个Box3中。<br /><br />
 
-		Returns a[link:https://en.wikipedia.org/wiki/Minimum_bounding_box Minimum Bounding Box] for the sphere.
+		返回这个球的[link:https://en.wikipedia.org/wiki/Minimum_bounding_box Minimum Bounding Box](最小包围盒)。
 		</p>
 
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
 		<p>
-		[page:Box3 box] - [page:Box3] to check for intersection against.<br /><br />
+		[page:Box3 box] - 将被用于测试是否与这个球有交集的[page:Box3]。<br /><br />
 
-		Determines whether or not this sphere intersects a given [page:Box3 box].
+		检测这个球与所传入的[page:Box3 box]是否有交集。
 		</p>
 
 		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
 		<p>
-		[page:Plane plane] - Plane to check for intersection against.<br /><br />
+		[page:Plane plane] - 将被用于测试是否与这个球有交集的Plane。<br /><br />
 
-		Determines whether or not this sphere intersects a given [page:Plane plane].
+		检测这个球与所传入的[page:Plane plane]是否有交集。
 		</p>
 
 		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
 		<p>
-		[page:Sphere sphere] - Sphere to check for intersection against.<br /><br />
+		[page:Sphere sphere] - 将被用于测试是否与这个球有交集的Sphere。<br /><br />
 
-		Checks to see if two spheres intersect.
+		检测两球之间是否有交集。
 		</p>
 
 		<h3>[method:Sphere set]( [param:Vector3 center], [param:Float radius] )</h3>
 		<p>
-			[page:Vector3 center] - center of the sphere.<br />
-			[page:Float radius] - radius of the sphere.<br /><br />
+			[page:Vector3 center] - 球心位置。<br />
+			[page:Float radius] - 球的半径。<br /><br />
 
-		Sets the [page:.center center] and [page:.radius radius] properties of this sphere.
+		设置球的[page:.center center]和[page:.radius radius]属性。
 		</p>
 
 		<h3>[method:Sphere setFromPoints]( [param:Array points], [param:Vector3 optionalCenter] )</h3>
 		<p>
-		[page:Array points] - an [page:Array] of [page:Vector3] positions.<br />
-		[page:Vector3 optionalCenter] - Optional [page:Vector3] position for the sphere's center.<br /><br />
+		[page:Array points] - 一个包含有[page:Vector3]位置的[page:Array]。<br />
+		[page:Vector3 optionalCenter] - 可选, [page:Vector3] 球心位置。<br /><br />
 
-		Computes the minimum bounding sphere for an array of [page:Array points]. If  [page:Vector3 optionalCenter]is given,
-		it is used as the sphere's center. Otherwise, the center of the axis-aligned bounding box encompassing
-		[page:Array points] is calculated.
+		计算一个[page:Array points]数组(中的点)的最小边界球。如果给定了[page:Vector3 optionalCenter],则它将被用作该球的球心;
+		否则,环绕[page:Array points]的包围盒的轴心将通过计算来得到。
 		</p>
 
 		<h3>[method:Sphere translate]( [param:Vector3 offset] )</h3>
 		<p>
-		Translate the sphere's center by the provided offset [page:Vector3].
+		使用所给定[page:Vector3] offset(偏移量)平移球心。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 16 - 19
docs/api/zh/math/Spherical.html

@@ -8,18 +8,18 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>球坐标([name]</h1>
 
-		<p class="desc">A point's [link:https://en.wikipedia.org/wiki/Spherical_coordinate_system spherical coordinates].</p>
+		<p class="desc">一个点的[link:https://en.wikipedia.org/wiki/Spherical_coordinate_system spherical coordinates](球坐标)。</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Float radius], [param:Float phi], [param:Float theta] )</h3>
 		<p>
-		[page:Float radius] - the radius, or the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance]
-		(straight-line distance) from the point to the origin. Default is *1.0*.<br />
+		[page:Float radius] - 半径值,或者说从该点到原点的
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance](欧几里得距离,即直线距离)。默认值为*1.0*。<br />
 		[page:Float phi] - polar angle from the y (up) axis. Default is *0*.<br />
 		[page:Float theta] - equator angle around the y (up) axis. Default is *0*.<br /><br />
 
@@ -27,7 +27,7 @@
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Float radius]</h3>
 
@@ -36,42 +36,39 @@
 		<h3>[property:Float theta]</h3>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Spherical clone]()</h3>
 		<p>
-		Returns a new plane with the same [page:.radius radius], [page:.phi phi]
-		and [page:.theta theta] properties as this one.
+		返回一个新的球坐标,新的球坐标与该球坐标具有相同的
+		[page:.radius radius]、[page:.phi phi]和[page:.theta theta]。
 		</p>
 
 		<h3>[method:Spherical copy]( [param:Spherical s] )</h3>
 		<p>
-			Copies the values of the passed Spherical's [page:.radius radius], [page:.phi phi]
-			and [page:.theta theta] properties to this spherical.
+		复制所传入的球坐标的[page:.radius radius]、
+		[page:.phi phi] 和[page:.theta theta]属性到该球坐标中。
 		</p>
 
 		<h3>[method:Spherical makeSafe]()</h3>
 		<p>
-		Restricts the polar angle [page:.phi phi] to be between 0.000001 and pi - 0.000001.
+		将极角 [page:.phi phi] 的值限制在0.000001 和 pi - 0.000001 之间。
 		</p>
 
 		<h3>[method:Spherical set]( [param:Float radius], [param:Float phi], [param:Float theta] )</h3>
-		<p>Sets values of this spherical's [page:.radius radius], [page:.phi phi]
-		and [page:.theta theta] properties.</p>
+		<p>设置球坐标中[page:.radius radius]、[page:.phi phi] 和 [page:.theta theta] 属性的值。</p>
 
 		<h3>[method:Spherical setFromVector3]( [param:Vector3 vec3] )</h3>
 		<p>
-			Sets values of this spherical's [page:.radius radius], [page:.phi phi]
-			and [page:.theta theta] properties from the [page:Vector3 Vector3].
+			从[page:Vector3 Vector3]中设置球坐标的[page:.radius radius]、[page:.phi phi]和[page:.theta theta]值。
 		</p>
 
 		<h3>[method:Spherical setFromCartesianCoords]( [param:Float x], [param:Float y], [param:Float z] )</h3>
 		<p>
-			Sets values of this spherical's [page:.radius radius], [page:.phi phi]
-			and [page:.theta theta] properties from Cartesian coordinates.
+			从笛卡尔坐标系中设置球坐标的[page:.radius radius]、[page:.phi phi]和[page:.theta theta]值。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 38 - 41
docs/api/zh/math/Triangle.html

@@ -8,135 +8,132 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>三角形([name]</h1>
 
 		<p class="desc">
-			A geometric triangle as defined by three [page:Vector3 Vector3s] representing its
-			three corners.
+			一个三角形由三个表示其三个角的[page:Vector3 Vector3]所定义。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 
 		<h3>[name]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )</h3>
 		<p>
-		[page:Vector3 a] - the first corner of the triangle. Default is a [page:Vector3] at (0, 0, 0).<br />
-		[page:Vector3 b] - the second corner of the triangle. Default is a [page:Vector3] at (0, 0, 0).<br />
-		[page:Vector3 c] - the final corner of the triangle. Default is a [page:Vector3] at (0, 0, 0).<br /><br />
+		[page:Vector3 a] - 三角形的第一个角,默认值是一个在(0, 0, 0)处的[page:Vector3]。<br />
+		[page:Vector3 b] - 三角形的第二个角,默认值是一个在(0, 0, 0)处的[page:Vector3]。<br />
+		[page:Vector3 c] - 三角形的第三个角(最后一个角),默认值是一个在(0, 0, 0)处的[page:Vector3]。<br /><br />
 
-		Creates a new [name].
+		创建一个新的[name]。
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Vector3 a]</h3>
 		<p>
-			The first corner of the triangle. Default is a [page:Vector3] at (0, 0, 0).
+			三角形的第一个角,默认值是一个在(0, 0, 0)处的[page:Vector3]。
 		</p>
 
 		<h3>[property:Vector3 b]</h3>
 		<p>
-			The second corner of the triangle. Default is a [page:Vector3] at (0, 0, 0).
+			三角形的第二个角,默认值是一个在(0, 0, 0)处的[page:Vector3]。
 		</p>
 
 		<h3>[property:Vector3 c]</h3>
 		<p>
-		the final corner of the triangle. Default is a [page:Vector3] at (0, 0, 0)
+			三角形的第三个角(最后一个角),默认值是一个在(0, 0, 0)处的[page:Vector3]。
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Triangle clone]()</h3>
 		<p>
-			Returns a new triangle with the same [page:.a a], [page:.b b] and  [page:.c c] properties as this one.
+			返回一个和该三角形具有相同[page:.a a]、[page:.b b]和[page:.c c]属性的新三角形。
 		</p>
 
 		<h3>[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
 		<p>
 		[page:Vector3 point] - [page:Vector3] <br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 target] — 结果将被拷贝到这一Vector3中。<br /><br />
 
-		Returns the closest point on the triangle to [page:Vector3 point].
+		返回三角形上最靠近所给定的[page:Vector3 point]的点。
 		</p>
 
 		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
 		<p>
-		[page:Vector3 point] - [page:Vector3] to check.<br /><br />
+		[page:Vector3 point] - 将被检测的[page:Vector3]。<br /><br />
 
-		Returns true if the passed point, when projected onto the plane of the triangle, lies within the triangle.
+		如果传入的点投影到三角形的平面内,则返回true。
 		</p>
 
 		<h3>[method:Triangle copy]( [param:Triangle triangle] )</h3>
 		<p>
-			Copies the values of the passed triangles's [page:.a a], [page:.b b] and [page:.c c]
-			properties to this triangle.
+			将传入的三角形的[page:.a a]、[page:.b b]和[page:.c c]属性复制给这一三角形。
 		</p>
 
 		<h3>[method:Boolean equals]( [param:Triangle triangle] )</h3>
 		<p>
-		Returns true if the two triangles have identical [page:.a a], [page:.b b] and [page:.c c] properties.
+			若这两个三角形具有相同的[page:.a a]、[page:.b b]和[page:.c c]属性,则返回true。
 		</p>
 
 		<h3>[method:Float getArea]()</h3>
-		<p>Return the area of the triangle.</p>
+		<p>返回三角形的面积。</p>
 
 		<h3>[method:Vector3 getBarycoord]( [param:Vector3 point], [param:Vector3 target] )</h3>
 		<p>
 		[page:Vector3 point] - [page:Vector3] <br />
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 target] — 结果将会被拷贝到这一Vector3中。<br /><br />
 
-		Return a [link:https://en.wikipedia.org/wiki/Barycentric_coordinate_system barycentric coordinate]
-		 from the given vector. <br/><br/>
+		从给定的向量中返回一个[link:https://en.wikipedia.org/wiki/Barycentric_coordinate_system barycentric coordinate](重心坐标)。<br/><br/>
 
-		[link:http://commons.wikimedia.org/wiki/File:Barycentric_coordinates_1.png Picture of barycentric coordinates]
+		请参阅关于这一概念的相关图片:[link:http://commons.wikimedia.org/wiki/File:Barycentric_coordinates_1.png Picture of barycentric coordinates]
 		</p>
 
 		<h3>[method:Vector3 getMidpoint]( [param:Vector3 target] )</h3>
 		<p>
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 target] — 结果将会被拷贝到这一Vector3中。<br /><br />
 
-		Calculate the midpoint of the triangle.
+		计算三角形的中点。
 		</p>
 
 		<h3>[method:Vector3 getNormal]( [param:Vector3 target] )</h3>
 		<p>
-		[page:Vector3 target] — the result will be copied into this Vector3.<br /><br />
+		[page:Vector3 target] — 结果将会被拷贝到这一Vector3中。<br /><br />
 
-		Calculate the [link:https://en.wikipedia.org/wiki/Normal_(geometry) normal vector] of the triangle.
+		计算三角形的法向量([link:https://en.wikipedia.org/wiki/Normal_(geometry) normal vector])。
 		</p>
 
 		<h3>[method:Plane getPlane]( [param:Plane target] )</h3>
 		<p>
-		[page:Vector3 target] — the result will be copied into this Plane.<br /><br />
+		[page:Vector3 target] — 结果将会被拷贝到这一Plane中。<br /><br />
 
-		Calculate a [page:Plane plane] based on the triangle. .
+		基于三角形计算出一个平面([page:Plane plane])。
 		</p>
 
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
 		<p>
-		[page:Box3 box] - Box to check for intersection against.<br /><br />
+		[page:Box3 box] - 将被用于检测是否与三角形有交集的box。<br /><br />
 
-		Determines whether or not this triangle intersects [page:Box3 box].
+		判定三角形与传入的[page:Box3 box]是否相交。
 		</p>
 
 		<h3>[method:Triangle set]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] ) [param:Triangle this]</h3>
 		<p>
-		Sets the triangle's [page:.a a], [page:.b b] and [page:.c c] properties to the passed [page:vector3 vector3s].
+			将三角形的[page:.a a]、[page:.b b]和[page:.c c]属性设置为所传入的[page:vector3 vector3]。
 		</p>
 
 		<h3>[method:Triangle setFromPointsAndIndices]( [param:Array points], [param:Integer i0], [param:Integer i1], [param:Integer i2] ) [param:Triangle this]</h3>
 		<p>
-		points - [page:Array] of [page:Vector3]s <br />
-		i0 - [page:Integer] index <br />
-		i1 - [page:Integer] index <br />
-		i2 - [page:Integer] index<br /><br />
+		points - [page:Vector3]数组([page:Array]) <br />
+		i0 - 整数([page:Integer])索引 <br />
+		i1 - 整数([page:Integer])索引 <br />
+		i2 - 整数([page:Integer])索引<br /><br />
 
-		Sets the triangle's vectors to the vectors in the array.
+		设置三角形的向量为数组中的向量。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 118 - 116
docs/api/zh/math/Vector2.html

@@ -8,36 +8,34 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>二维向量([name]</h1>
 
 		<p class="desc">
-			Class representing a 2D [link:https://en.wikipedia.org/wiki/Vector_space vector].
+			表示2D [link:https://en.wikipedia.org/wiki/Vector_space vector](二维向量)的类。
 
-			A 2D vector is an ordered pair of numbers (labeled x and y), which can be used to
-			represent a number of things, such as:
+			一个二维向量是一对有顺序的数字(标记为x和y),可用来表示很多事物,例如:
 		</p>
 
 		<ul>
 			<li>
-				A point in 2D space (i.e. a position on a plane).
+				一个位于二维空间中的点(例如一个在平面上的点)。
 			</li>
 			<li>
-				A direction and length across a plane. In three.js the length will always be the
-				[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance]
-				(straight-line distance) from (0, 0) to (x, y) and the direction is also
-				measured from (0, 0) towards (x, y).
+				一个在平面上的方向与长度的定义。在three.js中,长度总是从(0, 0)到(x, y)的
+				[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance](欧几里德距离,即直线距离),
+				方向也是从(0, 0)到(x, y)的方向。
 			</li>
 			<li>
-				Any arbitrary ordered pair of numbers.
+				任意的、有顺序的一对数字。
 			</li>
 		</ul>
 
 		<p>
-			There are other things a 2D vector can be used to represent, such as momentum
-			vectors, complex numbers and so on,	however these are the most common uses in three.js.
+			其他的一些事物也可以使用二维向量进行表示,比如说动量矢量、复数等等;但以上这些是它在three.js中的常用用途。
 		</p>
 
-		<h2>Example</h2>
+		<h2>示例</h2>
+
 
 		<code>
 		var a = new THREE.Vector2( 0, 1 );
@@ -49,298 +47,302 @@
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 		<h3>[name]( [param:Float x], [param:Float y] )</h3>
 		<p>
-		[page:Float x] - the x value of the vector. Default is *0*.<br />
-		[page:Float y] -  the y value of the vector. Default is *0*.<br /><br />
+		[page:Float x] - 向量的x值,默认为*0*。<br />
+		[page:Float y] - 向量的y值,默认为*0*。<br /><br />
 
-		Creates a new [name].
+		创建一个新的[name]。
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Boolean isVector2]</h3>
 		<p>
-			Used to check whether this or derived classes are Vector2s. Default is *true*.<br /><br />
+			用于测试这个类或者派生类是否为Vector2,默认为*true*。<br /><br />
 
-			You should not change this, as it is used internally for optimisation.
+			你不应当对这个属性进行改变,因为它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Float height]</h3>
-		<p>Alias for [page:.y y].</p>
+		<p>[page:.y y]的别名。</p>
 
 		<h3>[property:Float width]</h3>
-		<p>Alias for [page:.x x].</p>
+		<p>[page:.x x]的别名。</p>
 
 		<h3>[property:Float x]</h3>
 
 		<h3>[property:Float y]</h3>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:this add]( [param:Vector2 v] )</h3>
-		<p>Adds [page:Vector2 v] to this vector.</p>
+		<p>将传入的向量[page:Vector2 v]和这个向量相加。</p>
 
 		<h3>[method:this addScalar]( [param:Float s] )</h3>
-		<p>Adds the scalar value [page:Float s] to this vector's [page:.x x] and [page:.y y] values.</p>
+		<p>将传入的标量[page:Float s]和这个向量的[page:.x x]值、[page:.y y]值相加。</p>
 
 		<h3>[method:this addScaledVector]( [param:Vector2 v], [param:Float s] )</h3>
-		<p>Adds the multiple of [page:Vector2 v] and [page:Float s] to this vector.</p>
+		<p>将所传入的[page:Vector2 v]与[page:Float s]相乘所得乘积和这个向量相加。</p>
 
 		<h3>[method:this addVectors]( [param:Vector2 a], [param:Vector2 b] )</h3>
-		<p>Sets this vector to [page:Vector2 a] + [page:Vector2 b].</p>
+		<p>将该向量设置为 [page:Vector2 a] + [page:Vector2 b]。</p>
 
 		<h3>[method:Float angle]()</h3>
 		<p>
-		Computes the angle in radians of this vector with respect to the positive x-axis.
+			计算该向量相对于x轴正方向的弧度角度。
 		</p>
 
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<p>
-		Multiplies this vector (with an implicit 1 as the 3rd component) by m.
+			将该向量乘以三阶矩阵m(第三个值隐式地为1)。
 		</p>
 
 		<h3>[method:this ceil]()</h3>
 		<p>
-		The [page:.x x] and [page:.y y] components of the vector are rounded up to the nearest integer value.
+			向量中的[page:.x x]分量和[page:.y y]分量向上取整为最接近的整数值。
 		</p>
 
 		<h3>[method:this clamp]( [param:Vector2 min], [param:Vector2 max] )</h3>
 		<p>
-		[page:Vector2 min] - the minimum x and y values.<br />
-		[page:Vector2 max] - the maximum x and y values in the desired range<br /><br />
+		[page:Vector2 min] - 在限制范围内,x和y的最小值。<br />
+		[page:Vector2 max] - 在限制范围内,x和y的最大值。<br /><br />
+
+		如果该向量的x值或y值大于限制范围内最大x值或y值,则该值将会被所对应的值取代。<br /><br />
+		如果该向量的x值或y值小于限制范围内最小x值或y值,则该值将会被所对应的值取代。
 
-		If this vector's x or y value is greater than the max vector's x or y value, it is replaced by the corresponding value. <br /><br />
-		If this vector's x or y value is less than the min vector's x or y value, it is replaced by the corresponding value.
 		</p>
 
 		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
 		<p>
-		[page:Float min] - the minimum value the length will be clamped to <br />
-		[page:Float max] - the maximum value the length will be clamped to<br /><br />
+		[page:Float min] - 长度将被限制为的最小值 <br />
+		[page:Float max] - 长度将被限制为的最大值<br /><br />
+
+		如果向量长度大于最大值,则它将会被最大值所取代。<br /><br />
+		如果向量长度小于最小值,则它将会被最小值所取代。
 
-		If this vector's length is greater than the max value, it is replaced by the max value. <br /><br />
-		If this vector's length is less than the min value, it is replaced by the min value.
 		</p>
 
 		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
 		<p>
-		[page:Float min] - the minimum value the components will be clamped to <br />
-		[page:Float max] - the maximum value the components will be clamped to<br /><br />
+		[page:Float min] - 分量将被限制为的最小值 <br />
+		[page:Float max] - 分量将被限制为的最大值<br /><br />
+
+		如果该向量的x值或y值大于最大值,则它们将被最大值所取代。<br /><br />
+		如果该向量的x值或y值小于最小值,则它们将被最小值所取代。
 
-		If this vector's x or y values are greater than the max value, they are replaced by the max value. <br /><br />
-		If this vector's x or y values are less than the min value, they are replaced by the min value.
 		</p>
 
 		<h3>[method:Vector2 clone]()</h3>
 		<p>
-		Returns a new Vector2 with the same [page:.x x] and [page:.y y] values as this one.
+			返回一个新的Vector2,其具有和当前这个向量相同的[page:.x x]和[page:.y y]。
 		</p>
 
 		<h3>[method:this copy]( [param:Vector2 v] )</h3>
 		<p>
-			Copies the values of the passed Vector2's [page:.x x] and [page:.y y]
-			properties to this Vector2.
+			将所传入Vector2的[page:.x x]和[page:.y y]属性复制给这一Vector2。
 		</p>
 
 		<h3>[method:Float distanceTo]( [param:Vector2 v] )</h3>
-		<p>Computes the distance from this vector to [page:Vector2 v].</p>
+		<p>计算该vector到传入的[page:Vector2 v]的距离。</p>
 
 		<h3>[method:Float manhattanDistanceTo]( [param:Vector2 v] )</h3>
 		<p>
-		Computes the [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] from this vector to [page:Vector2 v].
+		计算该vector到传入的[page:Vector2 v]的曼哈顿距离([link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance])。
 		</p>
 
 		<h3>[method:Float distanceToSquared]( [param:Vector2 v] )</h3>
 		<p>
-		Computes the squared distance from this vector to [page:Vector2 v]. If you are just
-		comparing the distance with another distance, you should compare the distance squared instead
-		as it is slightly more efficient to calculate.
+		计算该向量到传入的[page:Vector2 v]的平方距离。
+		如果你只是将该距离和另一个距离进行比较,则应当比较的是距离的平方,
+		因为它的计算效率会更高一些。
 		</p>
 
 		<h3>[method:this divide]( [param:Vector2 v] )</h3>
-		<p>Divides this vector by [page:Vector2 v].</p>
+		<p>将该向量除以向量[page:Vector2 v]。</p>
 
 		<h3>[method:this divideScalar]( [param:Float s] )</h3>
 		<p>
-		Divides this vector by scalar [page:Float s].<br />
-		Sets vector to *( 0, 0 )* if [page:Float s] = 0.
+			将该向量除以标量[page:Float s]。<br />
+			如果传入的[page:Float s] = 0,则向量将被设置为*( 0, 0 )*。
 		</p>
 
 		<h3>[method:Float dot]( [param:Vector2 v] )</h3>
 		<p>
-		Calculates the [link:https://en.wikipedia.org/wiki/Dot_product dot product] of this
-	  vector and [page:Vector2 v].
+			计算该vector和所传入[page:Vector2 v]的点积([link:https://en.wikipedia.org/wiki/Dot_product dot product])。
 		</p>
         
 		<h3>[method:Float cross]( [param:Vector2 v] )</h3>
 		<p>
-		Calculates the [link:https://en.wikipedia.org/wiki/Cross_product cross product] of this
-	  vector and [page:Vector2 v]. Note that a 'cross-product' in 2D is not well-defined. This function computes a geometric cross-product often used in 2D graphics
+			计算该vector和所传入[page:Vector2 v]的叉积([link:https://en.wikipedia.org/wiki/Cross_product cross product])。 
+			请注意,“叉积”在2D中并没有被明确定义。该函数计算的是2D图形中经常使用的几何叉积。
 		</p>
 
 		<h3>[method:Boolean equals]( [param:Vector2 v] )</h3>
-		<p>Checks for strict equality of this vector and [page:Vector2 v].</p>
+		<p>检查该向量和[page:Vector2 v]的严格相等性。</p>
 
 		<h3>[method:this floor]()</h3>
-		<p>The components of the vector are rounded down to the nearest integer value.</p>
+		<p>
+			向量中的[page:.x x]分量和[page:.y y]分量向下取整为最接近的整数值。
+		</p>
 
 		<h3>[method:this fromArray]( [param:Array array], [param:Integer offset] )</h3>
 		<p>
-		[page:Array array] - the source array.<br />
-		[page:Integer offset] - (optional) offset into the array. Default is 0.<br /><br />
+		[page:Array array] - 来源的数组。<br />
+		[page:Integer offset] - (可选)在数组中的元素偏移量,默认值为0。<br /><br />
 
-		Sets this vector's [page:.x x] value to be array[ offset ] and [page:.y y] value to be array[ offset + 1 ].
+		设置向量中的[page:.x x]值为array[ offset ],[page:.y y]值为array[ offset + 1 ]。
 		</p>
 
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<p>
-		[page:BufferAttribute attribute] - the source attribute.<br />
-		[page:Integer index] - index in the attribute.<br /><br />
+		[page:BufferAttribute attribute] - 来源的attribute。<br />
+		[page:Integer index] - 在attribute中的索引。<br /><br />
 
-		Sets this vector's [page:.x x] and [page:.y y] values from the [page:BufferAttribute attribute].
-		</p>
+		从[page:BufferAttribute attribute]中设置向量的[page:.x x]值和[page:.y y]值。 
+		</p>
 
 		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
 		<p>
-		[page:Integer index] - 0 or 1.<br /><br />
+		[page:Integer index] - 0 或 1<br /><br />
 
-		If index equals 0 returns the [page:.x x] value. <br />
-		If index equals 1 returns the [page:.y y] value.
+		如果index值为0则返回[page:.x x]值。<br />
+		如果index值为1则返回[page:.y y]值。
 		</p>
 
 		<h3>[method:Float length]()</h3>
-		<p>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
-		(straight-line length) from (0, 0) to (x, y).</p>
+		<p>
+		计算从(0, 0)到(x, y)的欧几里得长度
+		([link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length],即直线长度)。
+		</p>
 
 		<h3>[method:Float manhattanLength]()</h3>
 		<p>
-		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
+		计算该向量的曼哈顿长度([link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length])。
 		</p>
 
 		<h3>[method:Float lengthSq]()</h3>
 		<p>
-		Computes the square of the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
-		(straight-line length) from (0, 0) to (x, y). If you are 	comparing the lengths of
-		vectors, you should compare the length squared instead as it is slightly more efficient to calculate.
+		计算从(0, 0)到(x, y)的欧几里得长度
+		([link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length],即直线长度)的平方。
+		如果你正在比较向量的长度,应当比较的是长度的平方,因为它的计算效率更高一些。
 		</p>
 
 		<h3>[method:this lerp]( [param:Vector2 v], [param:Float alpha] )</h3>
 		<p>
-		[page:Vector2 v] - [page:Vector2] to interpolate towards.<br />
-		alpha - interpolation factor in the closed interval [0, 1].<br /><br />
+		[page:Vector2 v] - 朝着进行插值的[page:Vector2]。<br />
+		alpha - 插值因数,其范围在[0, 1]闭区间。<br /><br />
 
-		Linearly interpolates between this vector and [page:Vector2 v], where alpha is the
-		distance along the line - alpha = 0 will be this vector, and alpha = 1 will be [page:Vector2 v].
+		在该向量与传入的向量[page:Vector2 v]之间的线性插值,alpha是沿着线的距离长度。
+		—— alpha = 0 时表示的是当前向量,alpha = 1 时表示的是所传入的向量[page:Vector2 v]。
 		</p>
 
 		<h3>[method:this lerpVectors]( [param:Vector2 v1], [param:Vector2 v2], [param:Float alpha] )</h3>
 		<p>
-		[page:Vector2 v1] - the starting [page:Vector2].<br />
-		[page:Vector2 v2] - [page:Vector2] to interpolate towards.<br />
-		[page:Float alpha] - interpolation factor in the closed interval [0, 1].<br /><br />
+		[page:Vector2 v1] - 起始的[page:Vector2]。<br />
+		[page:Vector2 v2] - 朝着进行插值的[page:Vector2]。<br />
+		[page:Float alpha] - 插值因数,其范围在[0, 1]闭区间。<br /><br />
 
-		Sets this vector to be the vector linearly interpolated between [page:Vector2 v1] and
-		[page:Vector2 v2] where alpha is the distance along the line connecting the two vectors
-		- alpha = 0 will be [page:Vector2 v1], and alpha = 1 will be [page:Vector2 v2].
+		将此向量设置为在[page:Vector2 v1]和[page:Vector2 v2]之间进行线性插值的向量,
+		其中alpha为两个向量之间连线的距离长度。
+		—— alpha = 0 时表示的是[page:Vector2 v1],alpha = 1 时表示的是[page:Vector2 v2]。
 		</p>
 
 		<h3>[method:this negate]()</h3>
-		<p>Inverts this vector - i.e. sets x = -x and y = -y.</p>
+		<p>向量取反,即: x = -x , y = -y。</p>
 
 		<h3>[method:this normalize]()</h3>
 		<p>
-		Converts this vector to a [link:https://en.wikipedia.org/wiki/Unit_vector unit vector] - that is, sets it equal to the vector with the same direction
-		as this one, but [page:.length length] 1.
+		将该向量转换为单位向量([link:https://en.wikipedia.org/wiki/Unit_vector unit vector]),
+		也就是说,将该向量的方向设置为和原向量相同,但是其长度([page:.length length])为1。
 		</p>
 
 		<h3>[method:this max]( [param:Vector2 v] )</h3>
 		<p>
-		If this vector's x or y value is less than [page:Vector2 v]'s x or y value, replace
-		that value with the corresponding max value.
+		如果该向量的x值或y值小于所传入[page:Vector2 v]的x值或y值,则将该值替换为对应的最大值。
 		</p>
 
 		<h3>[method:this min]( [param:Vector2 v] )</h3>
 		<p>
-		If this vector's x or y value is greater than [page:Vector2 v]'s x or y value, replace
-		that value with the corresponding min value.
+		如果该向量的x值或y值大于所传入[page:Vector2 v]的x值或y值,则将该值替换为对应的最小值。
 		</p>
 
 		<h3>[method:this multiply]( [param:Vector2 v] )</h3>
-		<p>Multiplies this vector by [page:Vector2 v].</p>
+		<p>将该向量与所传入的向量[page:Vector2 v]进行相乘。</p>
 
 
 		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
-		<p>Multiplies this vector by scalar [page:Float s].</p>
+		<p>将该向量与所传入的标量[page:Float s]进行相乘。</p>
 
 		<h3>[method:this rotateAround]( [param:Vector2 center], [param:float angle] )</h3>
 		<p>
-			[page:Vector2 center] - the point around which to rotate.<br />
-			[page:float angle] - the angle to rotate, in radians.<br /><br />
+		[page:Vector2 center] - 将被围绕旋转的点。<br />
+		[page:float angle] - 将要旋转的角度,以弧度来表示。<br /><br />
 
-			Rotates the vector around [page:Vector2 center] by [page:float angle] radians.
+		将向量围绕着[page:Vector2 center]旋转[page:float angle]弧度。
 		</p>
 
 		<h3>[method:this round]()</h3>
-		<p>The components of the vector are rounded to the nearest integer value.</p>
+		<p>			
+			向量中的[page:.x x]分量和[page:.y y]分量四舍五入取整为最接近的整数值。
+		</p>
 
 		<h3>[method:this roundToZero]()</h3>
 		<p>
-		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
+			向量中的分量朝向0取整数(若分量为负数则向上取整,若为正数则向下取整)。
 		</p>
 
 		<h3>[method:this set]( [param:Float x], [param:Float y] )</h3>
-		<p>Sets the [page:.x x] and [page:.y y] components of this vector.</p>
+		<p>设置该向量的[page:.x x]和[page:.y y]分量。</p>
 
 		<h3>[method:null setComponent]( [param:Integer index], [param:Float value] )</h3>
 		<p>
-		[page:Integer index] - 0 or 1.<br />
+		[page:Integer index] - 0 或 1<br />
 		[page:Float value] - [page:Float]<br /><br />
 
-		If index equals 0 set [page:.x x] to [page:Float value]. <br />
-		If index equals 1 set [page:.y y] to [page:Float value]
+		如果index值为0则将[page:.x x]值设置为[page:Float value]。<br />
+		如果index值为1则将[page:.y y]值设置为[page:Float value]
 		</p>
 
 		<h3>[method:this setLength]( [param:Float l] )</h3>
 		<p>
-		Sets this vector to the vector with the same direction as this one, but [page:.length length]
-		[page:Float l].
+			将该向量的方向设置为和原向量相同,但是长度([page:.length length])为[page:Float l]。
 		</p>
 
 		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
 		<p>
-		Sets the [page:.x x] and [page:.y y] values of this vector both equal to [page:Float scalar].
+		将该向量的[page:.x x]、[page:.y y]值同时设置为等于传入的[page:Float scalar]。
 		</p>
 
 		<h3>[method:this setX]( [param:Float x] )</h3>
-		<p>Replaces this vector's [page:.x x] value with [page:Float x].</p>
+		<p>将向量中的[page:.x x]值替换为[page:Float x]。</p>
 
 		<h3>[method:this setY]( [param:Float y] )</h3>
-		<p>Replaces this vector's [page:.y y] value with [page:Float y].</p>
+		<p>将向量中的[page:.y y]值替换为[page:Float y]。</p>
 
 		<h3>[method:this sub]( [param:Vector2 v] )</h3>
-		<p>Subtracts [page:Vector2 v] from this vector.</p>
+		<p>从该向量减去向量[page:Vector2 v]。</p>
 
 		<h3>[method:this subScalar]( [param:Float s] )</h3>
-		<p>Subtracts [page:Float s]  from this vector's [page:.x x] and [page:.y y] components.</p>
+		<p>从该向量的[page:.x x]和[page:.y y]中减去标量[page:Float s]。</p>
 
 		<h3>[method:this subVectors]( [param:Vector2 a], [param:Vector2 b] )</h3>
-		<p>Sets this vector to [page:Vector2 a] - [page:Vector2 b].</p>
+		<p>将该向量设置为[page:Vector2 a] - [page:Vector2 b]。</p>
 
 		<h3>[method:Array toArray]( [param:Array array], [param:Integer offset] )</h3>
 		<p>
-		[page:Array array] - (optional) array to store the vector to. If this is not provided, a new array will be created.<br />
-		[page:Integer offset] - (optional) optional offset into the array.<br /><br />
+		[page:Array array] - (可选)被用于存储向量的数组。如果这个值没有传入,则将创建一个新的数组。<br />
+		[page:Integer offset] - (可选) 数组中元素的偏移量。<br /><br />
 
-		Returns an array [x, y], or copies x and y into the provided [page:Array array].
+		返回一个数组[x, y],或者将x和y复制到所传入的[page:Array array]中。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>
-</html>
+</html>

+ 136 - 138
docs/api/zh/math/Vector3.html

@@ -8,36 +8,36 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>三维向量([name]</h1>
 
-		<p class="desc">Class representing a 3D [link:https://en.wikipedia.org/wiki/Vector_space vector].
+		<p class="desc">该类表示的是一个三维向量(3D [link:https://en.wikipedia.org/wiki/Vector_space vector])。
 
-		A 3D vector is an ordered triplet of numbers (labeled x, y, and z), which can be used to
-		represent a number of things, such as:
+		一个三维向量表示的是一个有顺序的、三个为一组的数字组合(标记为x、y和z),
+		可被用来表示很多事物,例如:
+		
 		</p>
 
 		<ul>
 			<li>
-				A point in 3D space.
+				一个位于三维空间中的点。
 			</li>
 			<li>
-				A direction and length in 3D space. In three.js the length will always be the
-				[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance]
-				(straight-line distance) from (0, 0, 0) to (x, y, z) and the direction is also
-				measured from (0, 0, 0) towards (x, y, z).
+				一个在三维空间中的方向与长度的定义。在three.js中,长度总是从(0, 0, 0)到(x, y, z)的
+				[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance](欧几里德距离,即直线距离),
+				方向也是从(0, 0, 0)到(x, y, z)的方向。
 			</li>
 			<li>
-				Any arbitrary ordered triplet of numbers.
+				任意的、有顺序的、三个为一组的数字组合。
 			</li>
 		</ul>
 
 		<p>
-		There are other things a 3D vector can be used to represent, such as momentum
-		vectors and so on, however these are the most common uses in three.js.
+		其他的一些事物也可以使用二维向量进行表示,比如说动量矢量等等;
+		但以上这些是它在three.js中的常用用途。
 		</p>
 
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 		<code>
 var a = new THREE.Vector3( 0, 1, 0 );
@@ -49,25 +49,25 @@ var d = a.distanceTo( b );
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 		<h3>[name]( [param:Float x], [param:Float y], [param:Float z] )</h3>
 		<p>
-		[page:Float x] - the x value of the vector. Default is *0*.<br />
-		[page:Float y] -  the y value of the vector. Default is *0*.<br />
-		[page:Float z] - the z value of the vector. Default is *0*.<br /><br />
+		[page:Float x] - 向量的x值,默认为*0*。<br />
+		[page:Float y] - 向量的y值,默认为*0*。<br />
+		[page:Float z] - 向量的z值,默认为*0*。<br /><br />
 
-		Creates a new [name].
+		创建一个新的[name]。
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Boolean isVector3]</h3>
 		<p>
-			Used to check whether this or derived classes are Vector3s. Default is *true*.<br /><br />
+			用于测试这个类或者派生类是否为Vector3,默认为*true*。<br /><br />
 
-			You should not change this, as it is used internally for optimisation.
+			你不应当对这个属性进行改变,因为它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Float x]</h3>
@@ -77,239 +77,239 @@ var d = a.distanceTo( b );
 		<h3>[property:Float z]</h3>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:this add]( [param:Vector3 v] )</h3>
-		<p>Adds [page:Vector3 v] to this vector.</p>
+		<p>将传入的向量[page:Vector3 v]和这个向量相加。</p>
 
 		<h3>[method:this addScalar]( [param:Float s] )</h3>
-		<p>Adds the scalar value s to this vector's [page:.x x], [page:.y y] and [page:.z z] values.</p>
+		<p>将传入的标量s和这个向量的[page:.x x]值、[page:.y y]值以及[page:.z z]值相加。</p>
 
 		<h3>[method:this addScaledVector]( [param:Vector3 v], [param:Float s] )</h3>
-		<p>Adds the multiple of [page:Vector3 v] and [page:Float s] to this vector.</p>
+		<p>将所传入的[page:Vector3 v]与[page:Float s]相乘所得的乘积和这个向量相加。</p>
 
 		<h3>[method:this addVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
-		<p>Sets this vector to [page:Vector3 a] + [page:Vector3 b].</p>
+		<p>将该向量设置为[page:Vector3 a] + [page:Vector3 b]。</p>
 
 		<h3>[method:this applyAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3>
 		<p>
-		[page:Vector3 axis] - A normalized [page:Vector3].<br />
-		[page:Float angle] - An angle in radians.<br /><br />
+		[page:Vector3 axis] - 一个被归一化的[page:Vector3]。<br />
+		[page:Float angle] - 以弧度表示的角度。<br /><br />
 
-		Applies a rotation specified by an axis and an angle to this vector.
+		将轴和角度所指定的旋转应用到该向量上。
 		</p>
 
 		<h3>[method:this applyEuler]( [param:Euler euler] )</h3>
 		<p>
-		Applies euler transform to this vector by converting the [page:Euler] object to a
-		[page:Quaternion] and applying.
+		通过将[page:Euler](欧拉)对象转换为[page:Quaternion](四元数)并应用,
+		将欧拉变换应用到这一向量上。
 		</p>
 
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
-		<p>Multiplies this vector by [page:Matrix3 m]</p>
+		<p>将该向量乘以三阶矩阵[page:Matrix3 m]。</p>
 
 		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
 		<p>
-		Multiplies this vector (with an implicit 1 in the 4th dimension) and m, and divides by perspective.
+			将该向量乘以四阶矩阵m(第四个维度隐式地为1),and divides by perspective.
 		</p>
 
 		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
 		<p>
-		Applies a [page:Quaternion] transform to this vector.
+		将[page:Quaternion]变换应用到该向量。
 		</p>
 
 
 		<h3>[method:Float angleTo]( [param:Vector3 v] )</h3>
 		<p>
-		Returns the angle between this vector and vector [page:Vector3 v] in radians.
+		以弧度返回该向量与向量[page:Vector3 v]之间的角度。
 		</p>
 
 		<h3>[method:this ceil]()</h3>
 		<p>
-		The [page:.x x], [page:.y y] and [page:.z z] components of the vector are rounded up to the nearest integer value.
+		将该向量[page:.x x]分量、 [page:.y y]分量以及[page:.z z]分量向上取整为最接近的整数。
 		</p>
 
 		<h3>[method:this clamp]( [param:Vector3 min], [param:Vector3 max] )</h3>
 		<p>
-		[page:Vector3 min] - the minimum [page:.x x], [page:.y y] and [page:.z z] values.<br />
-		[page:Vector3 max] - the maximum [page:.x x], [page:.y y] and [page:.z z] values in the desired range<br /><br />
+		[page:Vector3 min] - 在限制范围内,[page:.x x]值、[page:.y y]值和[page:.z z]的最小值。<br />
+		[page:Vector3 max] - 在限制范围内,[page:.x x]值、[page:.y y]值和[page:.z z]的最大值。<br /><br />
 
-		If this vector's x, y or z value is greater than the max vector's x, y or z value, it is replaced by the corresponding value. <br /><br />
-		If this vector's x, y or z value is less than the min vector's x, y or z value, it is replaced by the corresponding value.
+		如果该向量的x值、y值或z值大于限制范围内最大x值、y值或z值,则该值将会被所对应的值取代。<br /><br />
+		如果该向量的x值、y值或z值小于限制范围内最小x值、y值或z值,则该值将会被所对应的值取代。
 		</p>
 
 		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
 		<p>
-		[page:Float min] - the minimum value the length will be clamped to <br />
-		[page:Float max] - the maximum value the length will be clamped to<br /><br />
+		[page:Float min] - 长度将被限制为的最小值 <br />
+		[page:Float max] - 长度将被限制为的最大值<br /><br />
 
-		If this vector's length is greater than the max value, it is replaced by the max value. <br /><br />
-		If this vector's length is less than the min value, it is replaced by the min value.
+		如果向量长度大于最大值,则它将会被最大值所取代。<br /><br />
+		如果向量长度小于最小值,则它将会被最小值所取代。
 		</p>
 
 		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
 		<p>
-		[page:Float min] - the minimum value the components will be clamped to <br />
-		[page:Float max] - the maximum value the components will be clamped to<br /><br />
+		[page:Float min] - 分量将被限制为的最小值 <br />
+		[page:Float max] - 分量将被限制为的最大值<br /><br />
 
-		If this vector's x, y or z values are greater than the max value, they are replaced by the max value. <br /><br />
-		If this vector's x, y or z values are less than the min value, they are replaced by the min value.
+		如果该向量的x值、y值或z值大于最大值,则它们将被最大值所取代。<br /><br />
+		如果该向量的x值、y值或z值小于最小值,则它们将被最小值所取代。
 		</p>
 
 		<h3>[method:Vector3 clone]()</h3>
 		<p>
-		Returns a new vector3 with the same [page:.x x], [page:.y y] and [page:.z z] values as this one.
+		返回一个新的Vector3,其具有和当前这个向量相同的[page:.x x]、[page:.y y]和[page:.z z]。
 		</p>
 
 		<h3>[method:this copy]( [param:Vector3 v] )</h3>
 		<p>
-			Copies the values of the passed vector3's [page:.x x], [page:.y y] and [page:.z z]
-			properties to this vector3.
+		将所传入Vector3的[page:.x x]、[page:.y y]和[page:.z z]属性复制给这一Vector3。
 		</p>
 
 		<h3>[method:this cross]( [param:Vector3 v] )</h3>
 		<p>
-		Sets this vector to [link:https://en.wikipedia.org/wiki/Cross_product cross product] of itself and [page:Vector3 v].
+		将该向量设置为它本身与传入的[page:Vector3 v]的叉积([link:https://en.wikipedia.org/wiki/Cross_product cross product])。
 		</p>
 
 		<h3>[method:this crossVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
 		<p>
-		Sets this vector to [link:https://en.wikipedia.org/wiki/Cross_product cross product] of [page:Vector3 a] and [page:Vector3 b].
+		将该向量设置为传入的[page:Vector3 a]与[page:Vector3 b]的叉积([link:https://en.wikipedia.org/wiki/Cross_product cross product])。
 		</p>
 
 		<h3>[method:Float distanceTo]( [param:Vector3 v] )</h3>
-		<p>Computes the distance from this vector to [page:Vector3 v].</p>
+		<p>计算该向量到所传入的[page:Vector3 v]间的距离。</p>
 
 		<h3>[method:Float manhattanDistanceTo]( [param:Vector3 v] )</h3>
 		<p>
-		Computes the [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] from this vector to [page:Vector3 v].
+		计算该向量到所传入的[page:Vector3 v]之间的曼哈顿距离([link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance])。
 		</p>
 
 		<h3>[method:Float distanceToSquared]( [param:Vector3 v] )</h3>
 		<p>
-		Computes the squared distance from this vector to [page:Vector3 v]. If you are just
-		comparing the distance with another distance, you should compare the distance squared instead
-		as it is slightly more efficient to calculate.
+		计算该向量到传入的[page:Vector3 v]的平方距离。
+		如果你只是将该距离和另一个距离进行比较,则应当比较的是距离的平方,
+		因为它的计算效率会更高一些。
 		</p>
 
 		<h3>[method:this divide]( [param:Vector3 v] )</h3>
-		<p>Divides this vector by [page:Vector3 v].</p>
+		<p>将该向量除以向量[page:Vector3 v]。</p>
 
 		<h3>[method:this divideScalar]( [param:Float s] )</h3>
 		<p>
-		Divides this vector by scalar [page:Float s].<br />
-		Sets vector to *( 0, 0, 0 )* if *[page:Float s] = 0*.
+		将该向量除以标量[page:Float s]。<br />
+		如果传入的[page:Float s] = 0,则向量将被设置为*( 0, 0, 0 )*。
 		</p>
 
 		<h3>[method:Float dot]( [param:Vector3 v] )</h3>
 		<p>
-		Calculate the [link:https://en.wikipedia.org/wiki/Dot_product dot product] of this
-		vector and [page:Vector3 v].
+		计算该vector和所传入[page:Vector3 v]的点积([link:https://en.wikipedia.org/wiki/Dot_product dot product])。
 		</p>
 
 		<h3>[method:Boolean equals]( [param:Vector3 v] )</h3>
-		<p>Checks for strict equality of this vector and [page:Vector3 v].</p>
+		<p>检查该向量和[page:Vector3 v]的严格相等性。</p>
 
 		<h3>[method:this floor]()</h3>
-		<p>The components of the vector are rounded down to the nearest integer value.</p>
+		<p>向量的分量向下取整为最接近的整数值。</p>
 
 		<h3>[method:this fromArray]( [param:Array array], [param:Integer offset] )</h3>
 		<p>
-		[page:Array array] - the source array.<br />
-		[page:Integer offset] - ( optional) offset into the array. Default is 0.<br /><br />
+		[page:Array array] - 来源矩阵。<br />
+		[page:Integer offset] - (可选)在数组中的元素偏移量,默认值为0。<br /><br />
 
-		Sets this vector's [page:.x x] value to be array[ offset + 0 ], [page:.y y] value to be array[ offset + 1 ]
-		and [page:.z z] value to be array[ offset + 2 ].
+		设置向量中的[page:.x x]值为array[ offset + 0 ],[page:.y y]值为array[ offset + 1 ],
+		[page:.z z]值为array[ offset + 2 ]。
 		</p>
 
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<p>
-		[page:BufferAttribute attribute] - the source attribute.<br />
-		[page:Integer index] - index in the attribute.<br /><br />
+		[page:BufferAttribute attribute] - 来源的attribute。<br />
+		[page:Integer index] - 在attribute中的索引。<br /><br />
 
-		Sets this vector's [page:.x x], [page:.y y] and [page:.z z] values from the [page:BufferAttribute attribute].
+		从[page:BufferAttribute attribute]中设置向量的[page:.x x]值、[page:.y y]值和[page:.z z]值。
 		</p>
 
 		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
 		<p>
 		[page:Integer index] - 0, 1 or 2.<br /><br />
 
-		If index equals 0 returns the [page:.x x] value. <br />
-		If index equals 1 returns the [page:.y y] value. <br />
-		If index equals 2 returns the [page:.z z] value.
+		如果index值为0返回[page:.x x]值。 <br />
+		如果index值为1返回[page:.y y]值。 <br />
+		如果index值为2返回[page:.z z]值。
 		</p>
 
 		<h3>[method:Float length]()</h3>
-		<p>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
-		(straight-line length) from (0, 0, 0) to (x, y, z).</p>
+		<p>计算从(0, 0, 0) 到 (x, y, z)的欧几里得长度
+		([link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length],即直线长度)
+		</p>
 
 		<h3>[method:Float manhattanLength]()</h3>
 		<p>
-		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
+		计算该向量的曼哈顿长度([link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length])。
 		</p>
 
 		<h3>[method:Float lengthSq]()</h3>
 		<p>
-		Computes the square of the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
-		(straight-line length) from (0, 0, 0) to (x, y, z). If you are 	comparing the lengths of
-		vectors, you should compare the length squared instead as it is slightly more efficient to calculate.
+		计算从(0, 0, 0)到(x, y, z)的欧几里得长度
+		([link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length],即直线长度)的平方。
+		如果你正在比较向量的长度,应当比较的是长度的平方,因为它的计算效率更高一些。
 		</p>
 
 		<h3>[method:this lerp]( [param:Vector3 v], [param:Float alpha] )</h3>
 		<p>
-		[page:Vector3 v] - [page:Vector3] to interpolate towards.<br />
-		alpha - interpolation factor in the closed interval [0, 1].<br /><br />
+		[page:Vector3 v] - 朝着进行插值的[page:Vector3]。<br />
+		alpha - 插值因数,其范围在[0, 1]闭区间。<br /><br />
 
-		Linearly interpolate between this vector and [page:Vector3 v], where alpha is the
-		distance along the line - alpha = 0 will be this vector, and alpha = 1 will be [page:Vector3 v].
+		在该向量与传入的向量[page:Vector3 v]之间的线性插值,alpha是沿着线的距离长度。
+		—— alpha = 0 时表示的是当前向量,alpha = 1 时表示的是所传入的向量[page:Vector3 v]。
 		</p>
 
 		<h3>[method:this lerpVectors]( [param:Vector3 v1], [param:Vector3 v2], [param:Float alpha] )</h3>
 		<p>
-		[page:Vector3 v1] - the starting [page:Vector3].<br />
-		[page:Vector3 v2] - [page:Vector3] to interpolate towards.<br />
-		[page:Float alpha] - interpolation factor in the closed interval [0, 1].<br /><br />
+		[page:Vector3 v1] - 起始的[page:Vector3]。<br />
+		[page:Vector3 v2] - 朝着进行插值的[page:Vector3]。<br />
+		[page:Float alpha] - 插值因数,其范围在[0, 1]闭区间。<br /><br />
 
-		Sets this vector to be the vector linearly interpolated between [page:Vector3 v1] and
-		[page:Vector3 v2] where alpha is the distance along the line connecting the two vectors
-		- alpha = 0 will be [page:Vector3 v1], and alpha = 1 will be [page:Vector3 v2].
+		
+		将此向量设置为在[page:Vector3 v1]和[page:Vector3 v2]之间进行线性插值的向量,
+		其中alpha为两个向量之间连线的距离长度。
+		—— alpha = 0 时表示的是[page:Vector3 v1],alpha = 1 时表示的是[page:Vector3 v2]。
 		</p>
 
 		<h3>[method:this max]( [param:Vector3 v] )</h3>
 		<p>
-		If this vector's x, y or z value is less than [page:Vector3 v]'s x, y or z value, replace
-		that value with the corresponding max value.
+		如果该向量的x值、y值或z值小于所传入[page:Vector3 v]的x值、y值或z值,
+		则将该值替换为对应的最大值。
 		</p>
 
 		<h3>[method:this min]( [param:Vector3 v] )</h3>
 		<p>
-		If this vector's x, y or z value is greater than [page:Vector3 v]'s x, y or z value, replace
-		that value with the corresponding min value.
+		如果该向量的x值、y值或z值大于所传入[page:Vector3 v]的x值、y值或z值,
+		则将该值替换为对应的最小值。
 		</p>
 
 		<h3>[method:this multiply]( [param:Vector3 v] )</h3>
-		<p>Multiplies this vector by [page:Vector3 v].</p>
+		<p>将该向量与所传入的向量[page:Vector3 v]进行相乘。</p>
 
 		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
-		<p>Multiplies this vector by scalar [page:Float s].</p>
+		<p>将该向量与所传入的标量[page:Float s]进行相乘。</p>
 
 		<h3>[method:this multiplyVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
-		<p>Sets this vector equal to [page:Vector3 a] * [page:Vector3 b], component-wise.</p>
+		<p>按照分量顺序,将该向量设置为和[page:Vector3 a] * [page:Vector3 b]相等。</p>
 
 		<h3>[method:this negate]()</h3>
-		<p>Inverts this vector - i.e. sets x = -x, y = -y and z = -z.</p>
+		<p>向量取反,即: x = -x, y = -y , z = -z。</p>
 
 		<h3>[method:this normalize]()</h3>
 		<p>
-		Convert this vector to a [link:https://en.wikipedia.org/wiki/Unit_vector unit vector] - that is, sets it equal to the vector with the same direction
-		as this one, but [page:.length length] 1.
+		将该向量转换为单位向量([link:https://en.wikipedia.org/wiki/Unit_vector unit vector]),
+		也就是说,将该向量的方向设置为和原向量相同,但是其长度([page:.length length])为1。
 		</p>
 
 		<h3>[method:this project]( [param:Camera camera] )</h3>
 		<p>
-		[page:Camera camera] — camera to use in the projection.<br /><br />
+		[page:Camera camera] — 在投影中使用的摄像机。<br /><br />
 
-		[link:https://en.wikipedia.org/wiki/Vector_projection Projects] the vector with the camera.
+		使用所传入的摄像机来投影([link:https://en.wikipedia.org/wiki/Vector_projection projects])该向量。
 		</p>
 
 		<h3>[method:this projectOnPlane]( [param:Vector3 planeNormal] )</h3>
@@ -321,7 +321,7 @@ var d = a.distanceTo( b );
 		</p>
 
 		<h3>[method:this projectOnVector]( [param:Vector3] )</h3>
-		<p>[link:https://en.wikipedia.org/wiki/Vector_projection Projects] this vector onto another vector.</p>
+		<p>投影([link:https://en.wikipedia.org/wiki/Vector_projection Projects])该向量到另一个向量上。 </p>
 
 		<h3>[method:this reflect]( [param:Vector3 normal] )</h3>
 		<p>
@@ -332,114 +332,112 @@ var d = a.distanceTo( b );
 		</p>
 
 		<h3>[method:this round]()</h3>
-		<p>The components of the vector are rounded to the nearest integer value.</p>
+		<p>	向量中的分量四舍五入取整为最接近的整数值。</p>
 
 		<h3>[method:this roundToZero]()</h3>
 		<p>
-		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
+		向量中的分量朝向0取整数(若分量为负数则向上取整,若为正数则向下取整)。
 		</p>
 
 		<h3>[method:this set]( [param:Float x], [param:Float y], [param:Float z] )</h3>
-		<p>Sets the [page:.x x], [page:.y y] and [page:.z z] components of this vector.</p>
+		<p>设置该向量的[page:.x x]、[page:.y y] 和 [page:.z z] 分量。</p>
 
 		<h3>[method:null setComponent]( [param:Integer index], [param:Float value] )</h3>
 		<p>
-		[page:Integer index] - 0, 1 or 2.<br />
+		[page:Integer index] - 0、1 或 2。<br />
 		[page:Float value] - [page:Float]<br /><br />
 
-		If index equals 0 set [page:.x x] to [page:Float value].<br />
-		If index equals 1 set [page:.y y] to [page:Float value].<br />
-		If index equals 2 set [page:.z z] to [page:Float value]
+		若index为 0 则设置 [page:.x x] 值为 [page:Float value]。<br />
+		若index为 1 则设置 [page:.y y] 值为 [page:Float value]。<br />
+		若index为 2 则设置 [page:.z z] 值为 [page:Float value]。
 		</p>
 
 		<h3>[method:this setFromCylindrical]( [param:Cylindrical c] )</h3>
 		<p>
-		Sets this vector from the cylindrical coordinates [page:Cylindrical c].
+		从圆柱坐标[page:Cylindrical c]中设置该向量。
 		</p>
 
 		<h3>[method:this setFromCylindricalCoords]( [param:Float radius], [param:Float theta], [param:Float y] )</h3>
-		<p>Sets this vector from the cylindrical coordinates [page:Cylindrical radius], [page:Cylindrical theta] and [page:Cylindrical y].</p>
+		<p>从圆柱坐标中的[page:Cylindrical radius]、[page:Cylindrical theta]和[page:Cylindrical y]设置该向量。</p>
 
 		<h3>[method:this setFromMatrixColumn]( [param:Matrix4 matrix], [param:Integer index] )</h3>
 		<p>
-		Sets this vector's [page:.x x], [page:.y y] and [page:.z z] equal to the column of
-		the [page:Matrix4 matrix] specified by the [page:Integer index].
+		从传入的四阶矩阵[page:Matrix4 matrix]由[page:Integer index]指定的列中,
+		设置该向量的[page:.x x]值、[page:.y y]值和[page:.z z]值。
 		</p>
 
 		<h3>[method:this setFromMatrixPosition]( [param:Matrix4 m] )</h3>
 		<p>
-		Sets this vector to the position elements of the
-		[link:https://en.wikipedia.org/wiki/Transformation_matrix transformation matrix] [page:Matrix4 m].
+		从变换矩阵([link:https://en.wikipedia.org/wiki/Transformation_matrix transformation matrix])[page:Matrix4 m]中,
+		设置该向量为其中与位置相关的元素。
 		</p>
 
 		<h3>[method:this setFromMatrixScale]( [param:Matrix4 m] )</h3>
 		<p>
-		Sets this vector to the scale elements of the
-		[link:https://en.wikipedia.org/wiki/Transformation_matrix transformation matrix] [page:Matrix4 m].
+		从变换矩阵([link:https://en.wikipedia.org/wiki/Transformation_matrix transformation matrix])[page:Matrix4 m]中,
+		设置该向量为其中与缩放相关的元素。
 		</p>
 
 		<h3>[method:this setFromSpherical]( [param:Spherical s] )</h3>
 		<p>
-		Sets this vector from the spherical coordinates [page:Spherical s].
+		从球坐标[page:Spherical s]中设置该向量。
 		</p>
 
 		<h3>[method:this setFromSphericalCoords]( [param:Float radius], [param:Float phi], [param:Float theta] )</h3>
-		<p>Sets this vector from the spherical coordinates [page:Spherical radius], [page:Spherical phi] and [page:Spherical theta].</p>
+		<p>从球坐标中的[page:Spherical radius]、[page:Spherical phi]和[page:Spherical theta]设置该向量。</p>
 
 		<h3>[method:this setLength]( [param:Float l] )</h3>
 		<p>
-		Set this vector to the vector with the same direction as this one, but [page:.length length]
-		[page:Float l].
+		将该向量的方向设置为和原向量相同,但是长度([page:.length length])为[page:Float l]。
 		</p>
 
 		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
 		<p>
-		Set the [page:.x x], [page:.y y] and [page:.z z] values of this vector both equal to [page:Float scalar].
+		将该向量的[page:.x x]、[page:.y y]和[page:.z z]值同时设置为等于传入的[page:Float scalar]。
 		</p>
 
 		<h3>[method:this setX]( [param:Float x] )</h3>
-		<p>Replace this vector's [page:.x x] value with [page:Float x].</p>
+		<p>将向量中的[page:.x x]值替换为[page:Float x]。</p>
 
 		<h3>[method:this setY]( [param:Float y] )</h3>
-		<p>Replace this vector's [page:.y y] value with [page:Float y].</p>
+		<p>将向量中的[page:.y y]值替换为[page:Float y]。</p>
 
 		<h3>[method:this setZ]( [param:Float z] )</h3>
-		<p>Replace this vector's [page:.z z] value with [page:Float z].</p>
+		<p>将向量中的[page:.z z]值替换为[page:Float z]。</p>
 
 		<h3>[method:this sub]( [param:Vector3 v] )</h3>
-		<p>Subtracts [page:Vector3 v] from this vector.</p>
+		<p>从该向量减去向量[page:Vector3 v]。</p>
 
 		<h3>[method:this subScalar]( [param:Float s] )</h3>
-		<p>Subtracts [page:Float s]  from this vector's [page:.x x], [page:.y y] and [page:.z z] compnents.</p>
+		<p>从该向量的[page:.x x]、[page:.y y]和[page:.z z]中减去标量[page:Float s]。</p>
 
 		<h3>[method:this subVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
-		<p>Sets this vector to [page:Vector3 a] - [page:Vector3 b].</p>
+		<p>将该向量设置为[page:Vector3 a] - [page:Vector3 b]。</p>
 
 		<h3>[method:Array toArray]( [param:Array array], [param:Integer offset] )</h3>
 		<p>
-		[page:Array array] - (optional) array to store the vector to. If this is not provided
-		a new array will be created.<br />
-		[page:Integer offset] - (optional) optional offset into the array.<br /><br />
+		[page:Array array] - (可选)被用于存储向量的数组。如果这个值没有传入,则将创建一个新的数组。<br />
+		[page:Integer offset] - (可选) 数组中元素的偏移量。<br /><br />
 
-		Returns an array [x, y, z], or copies x, y and z into the provided [page:Array array].
+		返回一个数组[x, y ,z],或者将x、y和z复制到所传入的[page:Array array]中。
 		</p>
 
 		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
 		<p>
-		Transforms the direction of this vector by a matrix (the upper left 3 x 3 subset of a [page:Matrix4 m])
-		and then [page:.normalize normalizes] the result.
+		通过传入的矩阵([page:Matrix4 m]的左上角3 x 3子矩阵)变换向量的方向,
+		并将结果进行[page:.normalize normalizes](归一化)。
 		</p>
 
 		<h3>[method:this unproject]( [param:Camera camera] )</h3>
 		<p>
-		[page:Camera camera] — camera to use in the projection.<br /><br />
+		[page:Camera camera] — 在投影中使用的摄像机。<br /><br />
 
 		[link:https://en.wikipedia.org/wiki/Vector_projection Unprojects] the vector with the
 		camera's projection matrix.
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 111 - 111
docs/api/zh/math/Vector4.html

@@ -8,35 +8,35 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>四维向量([name]</h1>
 
-		<p class="desc">Class representing a 4D [link:https://en.wikipedia.org/wiki/Vector_space vector].
+		<p class="desc">该类表示的是一个三维向量(4D [link:https://en.wikipedia.org/wiki/Vector_space vector])。
 
-		A 4D vector is an ordered quadruplet of numbers (labeled x, y, z, and w), which can be used to
-		represent a number of things, such as:
+
+		一个四维向量表示的是一个有顺序的、四个为一组的数字组合(标记为x、y和z),
+		可被用来表示很多事物,例如:
 		</p>
 
 		<ul>
 			<li>
-				A point in 4D space.
+				一个位于四维空间中的点。
 			</li>
 			<li>
-				A direction and length in 4D space. In three.js the length will always be the
-				[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance]
-				(straight-line distance) from (0, 0, 0, 0) to (x, y, z, w) and the direction is also
-				measured from (0, 0, 0, 0) towards (x, y, z, w).
+				一个在四维空间中的方向与长度的定义。在three.js中,长度总是从(0, 0, 0, 0)到(x, y, z, w)的
+				[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance](欧几里德距离,即直线距离),
+				方向也是从(0, 0, 0, 0)到(x, y, z, w)的方向。
 			</li>
 			<li>
-				Any arbitrary ordered quadruplet of numbers.
+				任意的、有顺序的、四个为一组的数字组合。
 			</li>
 		</ul>
 
 		<p>
-		There are other things a 4D vector can be used to represent, however these are the most common uses in three.js.
+		其他的一些事物也可以使用二维向量进行表示,但以上这些是它在three.js中的常用用途。
 		</p>
 
 
-		<h2>Example</h2>
+		<h2>示例</h2>
 
 		<code>
 var a = new THREE.Vector4( 0, 1, 0, 0 );
@@ -48,26 +48,26 @@ var d = a.dot( b );
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 		<h3>[name]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )</h3>
 		<p>
-		[page:Float x] - the x value of the vector. Default is *0*.<br />
-		[page:Float y] -  the y value of the vector. Default is *0*.<br />
-		[page:Float z] - the z value of the vector. Default is *0*.<br />
-		[page:Float w] - the w value of the vector. Default is *1*.<br /><br />
+		[page:Float x] - 向量的x值,默认为*0*。<br />
+		[page:Float y] - 向量的y值,默认为*0*。<br />
+		[page:Float z] - 向量的z值,默认为*0*。<br />
+		[page:Float w] - 向量的w值,默认为*1*。<br /><br />
 
-		Creates a new [name].
+		创建一个新的[name]。
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Boolean isVector4]</h3>
 		<p>
-			Used to check whether this or derived classes are Vector4s. Default is *true*.<br /><br />
+			用于测试这个类或者派生类是否为Vector4,默认为*true*。<br /><br />
 
-			You should not change this, as it is used internally for optimisation.
+			你不应当对这个属性进行改变,因为它在内部使用,以用于优化。
 		</p>
 
 		<h3>[property:Float x]</h3>
@@ -79,252 +79,252 @@ var d = a.dot( b );
 		<h3>[property:Float w]</h3>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:this add]( [param:Vector4 v] )</h3>
-		<p>Adds [page:Vector4 v] to this vector.</p>
+		<p>将传入的向量[page:Vector4 v]和这个向量相加。</p>
 
 		<h3>[method:this addScalar]( [param:Float s] )</h3>
-		<p>Adds the scalar value s to this vector's [page:.x x], [page:.y y], [page:.z z] and [page:.w w] values.</p>
+		<p>将传入的标量s和这个向量的[page:.x x]值、[page:.y y]值、[page:.z z]值以及[page:.w w]值相加。</p>
 
 		<h3>[method:this addScaledVector]( [param:Vector4 v], [param:Float s] )</h3>
-		<p>Adds the multiple of [page:Vector4 v] and [page:Float s] to this vector.</p>
+		<p>将所传入的[page:Vector4 v]与[page:Float s]相乘所得的乘积和这个向量相加。</p>
 
 		<h3>[method:this addVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
-		<p>Sets this vector to [page:Vector4 a] + [page:Vector4 b].</p>
+		<p>将该向量设置为[page:Vector4 a] + [page:Vector4 b].</p>
 
 		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
 		<p>
-		Multiplies this vector by 4 x 4 [page:Matrix4 m].
+		将该向量乘以四阶矩阵[page:Matrix4 m]。
 		</p>
 
 		<h3>[method:this ceil]()</h3>
 		<p>
-		The [page:.x x], [page:.y y], [page:.z z] and [page:.w w] components of the vector are rounded up to the nearest integer value.
+		将该向量[page:.x x]分量、 [page:.y y]分量[page:.z z]分量以及[page:.w w]分量向上取整为最接近的整数。
 		</p>
 
 		<h3>[method:this clamp]( [param:Vector4 min], [param:Vector4 max] )</h3>
 		<p>
-		[page:Vector4 min] - the minimum [page:.x x], [page:.y y], [page:.z z] and [page:.w w] values.<br />
-		[page:Vector4 max] - the maximum [page:.x x], [page:.y y], [page:.z z] and [page:.w w] values in the desired range<br /><br />
+		[page:Vector4 min] - 在限制范围内,[page:.x x]值、[page:.y y]值、[page:.z z]值以及[page:.w w]值的最小值<br />
+		[page:Vector4 max] - 在限制范围内,[page:.x x]值、[page:.y y]值、[page:.z z]值以及[page:.w w]值的最大值<br /><br />
 
-		If this vector's x, y, z or w value is greater than the max vector's x, y, z or w value, it is replaced by the corresponding value. <br /><br />
-		If this vector's x, y, z or w value is less than the min vector's x, y, z or w value, it is replaced by the corresponding value.
+		如果该向量的x值、y值、z值或w值大于限制范围内最大x值、y值、z值或w值,则该值将会被所对应的值取代。<br /><br />
+		如果该向量的x值、y值、z值或w值小于限制范围内最小x值、y值、z值或w值,则该值将会被所对应的值取代。
 		</p>
 
 		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
 		<p>
-		[page:Float min] - the minimum value the length will be clamped to <br />
-		[page:Float max] - the maximum value the length will be clamped to<br /><br />
+		[page:Float min] - 长度将被限制为的最小值 <br />
+		[page:Float max] - 长度将被限制为的最大值<br /><br />
 
-		If this vector's length is greater than the max value, it is replaced by the max value. <br /><br />
-		If this vector's length is less than the min value, it is replaced by the min value.
+		如果向量长度大于最大值,则它将会被最大值所取代。<br /><br />
+		如果向量长度小于最小值,则它将会被最小值所取代。
 		</p>
 
 		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
 		<p>
-		[page:Float min] - the minimum value the components will be clamped to <br />
-		[page:Float max] - the maximum value the components will be clamped to<br /><br />
+		[page:Float min] - 分量将被限制为的最小值<br />
+		[page:Float max] - 分量将被限制为的最大值<br /><br />
 
-		If this vector's x, y, z or w values are greater than the max value, they are replaced by the max value. <br /><br />
-		If this vector's x, y, z or w values are less than the min value, they are replaced by the min value.
+		如果该向量的x值、y值、z值或w值大于最大值,则它们将被最大值所取代。<br /><br />
+		如果该向量的x值、y值、z值或w值小于最小值,则它们将被最小值所取代。
 		</p>
 
 		<h3>[method:Vector4 clone]()</h3>
 		<p>
-		Returns a new Vector4 with the same [page:.x x], [page:.y y], [page:.z z] and [page:.w w] values as this one.
+		返回一个新的Vector4,其具有和当前这个向量相同的[page:.x x]、[page:.y y]、[page:.z z]和[page:.w w]。
 		</p>
 
 		<h3>[method:this copy]( [param:Vector4 v] )</h3>
 		<p>
-			Copies the values of the passed Vector4's [page:.x x], [page:.y y], [page:.z z] and [page:.w w]
-			properties to this Vector4.
+			将所传入Vector4的[page:.x x]、[page:.y y]、[page:.z z]和[page:.w w]属性复制给这一Vector4。
 		</p>
 
 		<h3>[method:this divideScalar]( [param:Float s] )</h3>
 		<p>
-		Divides this vector by scalar [page:Float s].<br />
-		Sets vector to *( 0, 0, 0, 0 )* if *[page:Float s] = 0*.
+		将该向量除以标量[page:Float s]。<br />
+		如果传入的[page:Float s] = 0,则向量将被设置为*( 0, 0, 0, 0 )*。
 		</p>
 
 		<h3>[method:Float dot]( [param:Vector4 v] )</h3>
 		<p>
-		Calculates the [link:https://en.wikipedia.org/wiki/Dot_product dot product] of this
-		vector and [page:Vector4 v].
+		计算该vector和所传入[page:Vector4 v]
+		的点积([link:https://en.wikipedia.org/wiki/Dot_product dot product])。
 		</p>
 
 		<h3>[method:Boolean equals]( [param:Vector4 v] )</h3>
-		<p>Checks for strict equality of this vector and [page:Vector4 v].</p>
+		<p>检查该向量和[page:Vector4 v]的严格相等性。</p>
 
 		<h3>[method:this floor]()</h3>
-		<p>The components of the vector are rounded down to the nearest integer value.</p>
+		<p>向量的分量向下取整为最接近的整数值。</p>
 
 		<h3>[method:this fromArray]( [param:Array array], [param:Integer offset] )</h3>
 		<p>
-		[page:Array array] - the source array.<br />
-		[page:Integer offset] - (optional) offset into the array. Default is 0.<br /><br />
+		[page:Array array] - 来源矩阵。<br />
+		[page:Integer offset] - (可选)在数组中的元素偏移量,默认值为0。<br /><br />
 
-		Sets this vector's [page:.x x] value to be array[ offset + 0 ], [page:.y y] value to be array[ offset + 1 ]
-		[page:.z z] value to be array[ offset + 2 ] and [page:.w w ] value to be array[ offset + 3 ].
+		设置向量中的[page:.x x]值为array[ offset + 0 ],[page:.y y]值为array[ offset + 1 ],
+		[page:.z z]值为array[ offset + 2 ],[page:.w w ]值为array[ offset + 3 ]。
 		</p>
 
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<p>
-		[page:BufferAttribute attribute] - the source attribute.<br />
-		[page:Integer index] - index in the attribute.<br /><br />
+		[page:BufferAttribute attribute] - 来源的attribute。<br />
+		[page:Integer index] - 在attribute中的索引。<br /><br />
 
-		Sets this vector's [page:.x x], [page:.y y], [page:.z z] and [page:.w w] values from the [page:BufferAttribute attribute].
+		从[page:BufferAttribute attribute]中设置向量的[page:.x x]值、[page:.y y]值、[page:.z z]值和[page:.w w]值。
 		</p>
 
 		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
 		<p>
 		[page:Integer index] - 0, 1, 2 or 3.<br /><br />
 
-		If index equals 0 returns the [page:.x x] value. <br />
-		If index equals 1 returns the [page:.y y] value. <br />
-		If index equals 2 returns the [page:.z z] value.<br />
-		If index equals 3 returns the [page:.w w] value.
+		如果index值为0返回[page:.x x]值。 <br />
+		如果index值为1返回[page:.y y]值。 <br />
+		如果index值为2返回[page:.z z]值。<br />
+		如果index值为3返回[page:.w w]值。
 		</p>
 
 		<h3>[method:Float length]()</h3>
-		<p>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
-		(straight-line length) from (0, 0, 0, 0) to (x, y, z, w).</p>
+		<p>
+		计算从(0, 0, 0, 0) 到 (x, y, z, w)的欧几里得长度
+		([link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length],即直线长度)。</p>
 
 		<h3>[method:Float manhattanLength]()</h3>
 		<p>
-		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
+		计算该向量的曼哈顿长度([link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length])。
 		</p>
 
 		<h3>[method:Float lengthSq]()</h3>
 		<p>
-		Computes the square of the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
-		(straight-line length) from (0, 0, 0, 0) to (x, y, z, w). If you are 	comparing the lengths of
-		vectors, you should compare the length squared instead as it is slightly more efficient to calculate.
+		计算从(0, 0, 0, 0)到(x, y, z, w)的欧几里得长度
+		([link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length],即直线长度)的平方。
+		如果你正在比较向量的长度,应当比较的是长度的平方,因为它的计算效率更高一些。
 		</p>
 
 		<h3>[method:this lerp]( [param:Vector4 v], [param:Float alpha] )</h3>
 		<p>
-		[page:Vector4 v] - [page:Vector4] to interpolate towards.<br />
-		alpha - interpolation factor in the closed interval [0, 1].<br /><br />
+		[page:Vector4 v] - 朝着进行插值的[page:Vector4]。<br />
+		alpha - 插值因数,其范围在[0, 1]闭区间。<br /><br />
 
-		Linearly interpolates between this vector and [page:Vector4 v], where alpha is the
-		distance along the line - alpha = 0 will be this vector, and alpha = 1 will be [page:Vector4 v].
+		在该向量与传入的向量[page:Vector4 v]之间的线性插值,alpha是沿着线的距离长度。
+		—— alpha = 0 时表示的是当前向量,alpha = 1 时表示的是所传入的向量[page:Vector4 v]。
 		</p>
 
 		<h3>[method:this lerpVectors]( [param:Vector4 v1], [param:Vector4 v2], [param:Float alpha] )</h3>
 		<p>
-		[page:Vector4 v1] - the starting [page:Vector4].<br />
-		[page:Vector4 v2] - [page:Vector4] to interpolate towards.<br />
-		[page:Float alpha] - interpolation factor in the closed interval [0, 1].<br /><br />
+		[page:Vector4 v1] - 起始的[page:Vector4]。<br />
+		[page:Vector4 v2] - 朝着进行插值的[page:Vector4]。<br />
+		[page:Float alpha] - 插值因数,其范围在[0, 1]闭区间。<br /><br />
 
-		Sets this vector to be the vector linearly interpolated between [page:Vector4 v1] and
-		[page:Vector4 v2] where alpha is the distance along the line connecting the two vectors
-		- alpha = 0 will be [page:Vector4 v1], and alpha = 1 will be [page:Vector4 v2].
+		将此向量设置为在[page:Vector4 v1]和[page:Vector4 v2]之间进行线性插值的向量,
+		其中alpha为两个向量之间连线的距离长度。
+		—— alpha = 0 时表示的是[page:Vector4 v1],alpha = 1 时表示的是[page:Vector4 v2]。
 		</p>
 
 		<h3>[method:this negate]()</h3>
-		<p>Inverts this vector - i.e. sets x = -x, y = -y, z = -z and w = -w.</p>
+		<p>向量取反,即: x = -x, y = -y, z = -z , w = -w。</p>
 
 		<h3>[method:this normalize]()</h3>
 		<p>
-		Converts this vector to a [link:https://en.wikipedia.org/wiki/Unit_vector unit vector] - that is, sets it equal to the vector with the same direction
-		as this one, but [page:.length length] 1.
+		将该向量转换为单位向量([link:https://en.wikipedia.org/wiki/Unit_vector unit vector]),
+		也就是说,将该向量的方向设置为和原向量相同,但是其长度([page:.length length])为1。
 		</p>
 
 		<h3>[method:this max]( [param:Vector4 v] )</h3>
 		<p>
-		If this vector's x, y, z or w value is less than [page:Vector4 v]'s x, y, z or w value, replace
-		that value with the corresponding max value.
+		如果该向量的x值、y值、z值或w值小于所传入[page:Vector4 v]的x值、y值、z值或w值,
+		则将该值替换为对应的最大值。
 		</p>
 
 		<h3>[method:this min]( [param:Vector4 v] )</h3>
 		<p>
-		If this vector's x, y, z or w value is greater than [page:Vector4 v]'s x, y, z or w value, replace
-		that value with the corresponding min value.
+		如果该向量的x值、y值、z值或w值大于所传入[page:Vector4 v]的x值、y值、z值或w值,
+		则将该值替换为对应的最小值。
 		</p>
 
 		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
-		<p>Multiplies this vector by scalar [page:Float s].</p>
+		<p>将该向量与所传入的标量[page:Float s]进行相乘。</p>
 
 		<h3>[method:this round]()</h3>
-		<p>The components of the vector are rounded to the nearest integer value.</p>
+		<p>向量中的分量四舍五入取整为最接近的整数值。</p>
 
 		<h3>[method:this roundToZero]()</h3>
 		<p>
-		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
+		向量中的分量朝向0取整数(若分量为负数则向上取整,若为正数则向下取整)
 		</p>
 
 		<h3>[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )</h3>
-		<p>Sets the [page:.x x], [page:.y y], [page:.z z] and [page:.w w] components of this vector.</p>
+		<p>设置该向量的[page:.x x]、[page:.y y]、[page:.z z]和[page:.w w]分量。</p>
 
 		<h3>[method:this setAxisAngleFromQuaternion]( [param:Quaterion q] )</h3>
 		<p>
-			[page:Quaterion q] - a normalized [page:Quaterion]<br /><br />
+			[page:Quaterion q] - 归一化的[page:Quaterion](四元数)<br /><br />
+
+			将该向量的[page:.x x]、[page:.y y]和[page:.z z]分量设置为四元数的轴,
+			[page:.w w]分量设置为四元数的角度。
 
-			Sets the [page:.x x], [page:.y y] and [page:.z z] components of this vector to the
-			quaternion's axis and [page:.w w] to the angle.
 		</p>
 
 		<h3>[method:this setAxisAngleFromRotationMatrix]( [param:Matrix4 m] )</h3>
 		<p>
-			 [page:Matrix4 m] - a [page:Matrix4] of which the upper left 3x3 matrix is a pure rotation matrix.<br /><br />
+			[page:Matrix4 m] - 一个[page:Matrix4](四阶矩阵),其左上角3x3的元素表示的是一个纯旋转矩。<br /><br />
 
-			Sets the [page:.x x], [page:.y y] and [page:.z z] to the axis of rotation and [page:.w w] to the angle.
+			将该向量的[page:.x x]、[page:.y y]和[page:.z z]设置为旋转轴,[page:.w w]为角度。
 		</p>
 
 		<h3>[method:null setComponent]( [param:Integer index], [param:Float value] )</h3>
 		<p>
-		[page:Integer index] - 0, 1 or 2.<br />
+		[page:Integer index] - 0、1或2。<br />
 		[page:Float value] - [page:Float]<br /><br />
 
-		If index equals 0 set [page:.x x] to [page:Float value].<br />
-		If index equals 1 set [page:.y y] to [page:Float value].<br />
-		If index equals 2 set [page:.z z] to [page:Float value].<br />
-		If index equals 3 set [page:.w w] to [page:Float value].
+		若index为 0 则设置 [page:.x x] 值为 [page:Float value]。<br />
+		若index为 1 则设置 [page:.y y] 值为 [page:Float value]。<br />
+		若index为 2 则设置 [page:.z z] 值为 [page:Float value]。<br />
+		若index为 3 则设置 [page:.w w] 值为 [page:Float value]。
 		</p>
 
 
 		<h3>[method:this setLength]( [param:Float l] )</h3>
 		<p>
-		Sets this vector to the vector with the same direction as this one, but [page:.length length]
-		[page:Float l].
+		将该向量的方向设置为和原向量相同,但是长度([page:.length length])为[page:Float l]。
 		</p>
 
 		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
 		<p>
-		Sets the [page:.x x], [page:.y y], [page:.z z] and [page:.w w] values of this vector both equal to [page:Float scalar].
+		将该向量的[page:.x x]、[page:.y y]、[page:.z z]值和[page:.w w]同时设置为等于传入的[page:Float scalar]。
 		</p>
 
 		<h3>[method:this setX]( [param:Float x] )</h3>
-		<p>Replaces this vector's [page:.x x] value with [page:Float x].</p>
+		<p>将向量中的[page:.x x]值替换为[page:Float x]。</p>
 
 		<h3>[method:this setY]( [param:Float y] )</h3>
-		<p>Replaces this vector's [page:.y y] value with [page:Float y].</p>
+		<p>将向量中的[page:.y y]值替换为[page:Float y]。</p>
 
 		<h3>[method:this setZ]( [param:Float z] )</h3>
-		<p>Replaces this vector's [page:.z z] value with [page:Float z].</p>
+		<p>将向量中的[page:.z z]值替换为[page:Float z]。</p>
 
 		<h3>[method:this setW]( [param:Float w] )</h3>
-		<p>Replaces this vector's [page:.w w] value with [page:Float w].</p>
+		<p>将向量中的[page:.w w]值替换为[page:Float w]。</p>
 
 		<h3>[method:this sub]( [param:Vector4 v] )</h3>
-		<p>Subtracts [page:Vector4 v] from this vector.</p>
+		<p>从该向量减去向量[page:Vector4 v]。</p>
 
 		<h3>[method:this subScalar]( [param:Float s] )</h3>
-		<p>Subtracts [page:Float s]  from this vector's [page:.x x], [page:.y y], [page:.z z] and [page:.w w] compnents.</p>
+		<p>从该向量的[page:.x x]、[page:.y y]、[page:.z z]和[page:.w w]分量中减去标量[page:Float s]。</p>
 
 		<h3>[method:this subVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
-		<p>Sets this vector to [page:Vector4 a] - [page:Vector4 b].</p>
+		<p>将该向量设置为[page:Vector4 a] - [page:Vector4 b]。</p>
 
 		<h3>[method:Array toArray]( [param:Array array], [param:Integer offset] )</h3>
 		<p>
-		[page:Array array] - (optional) array to store the vector to. If this is not provided, a new array will be created.<br />
-		[page:Integer offset] - (optional) optional offset into the array.<br /><br />
+		[page:Array array] - (可选)被用于存储向量的数组。如果这个值没有传入,则将创建一个新的数组。<br />
+		[page:Integer offset] - (可选) 数组中元素的偏移量。<br /><br />
 
-		Returns an array [x, y, z, w], or copies x, y, z and w into the provided [page:Array array].
+		返回一个数组[x, y, z, w],或者将x、y、z和w复制到所传入的[page:Array array]中。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 45 - 27
docs/api/zh/objects/SkinnedMesh.html

@@ -38,42 +38,61 @@
 		<h2>示例</h2>
 
 		<code>
-		var geometry = new THREE.CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 );
+		var geometry = new THREE.CylinderBufferGeometry( 5, 5, 5, 5, 15, 5, 30 );
 
-		//Create the skin indices and skin weights
-		for ( var i = 0; i < geometry.vertices.length; i ++ ) {
+		// create the skin indices and skin weights
 
-			// Imaginary functions to calculate the indices and weights
-			// This part will need to be changed depending your skeleton and model
-			var skinIndex = calculateSkinIndex( geometry.vertices, i );
-			var skinWeight = calculateSkinWeight( geometry.vertices, i );
+		var position = geometry.attributes.position;
 
-			// Ease between each bone
-			geometry.skinIndices.push( new THREE.Vector4( skinIndex, skinIndex + 1, 0, 0 ) );
-			geometry.skinWeights.push( new THREE.Vector4( 1 - skinWeight, skinWeight, 0, 0 ) );
+		var vertex = new THREE.Vector3();
+
+		var skinIndices = [];
+		var skinWeights = [];
+
+		for ( var i = 0; i < position.count; i ++ ) {
+
+			vertex.fromBufferAttribute( position, i );
+
+			// compute skinIndex and skinWeight based on some configuration data
+
+			var y = ( vertex.y + sizing.halfHeight );
+
+			var skinIndex = Math.floor( y / sizing.segmentHeight );
+			var skinWeight = ( y % sizing.segmentHeight ) / sizing.segmentHeight;
+
+			skinIndices.push( skinIndex, skinIndex + 1, 0, 0 );
+			skinWeights.push( 1 - skinWeight, skinWeight, 0, 0 );
 
 		}
 
+		geometry.addAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
+		geometry.addAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
+
+		// create skinned mesh and skeleton
+
 		var mesh = new THREE.SkinnedMesh( geometry, material );
+		var skeleton = new THREE.Skeleton( bones );
 
-		// See example from THREE.Skeleton for the armSkeleton
-		var rootBone = armSkeleton.bones[ 0 ];
+		// see example from THREE.Skeleton
+
+		var rootBone = skeleton.bones[ 0 ];
 		mesh.add( rootBone );
 
-		// Bind the skeleton to the mesh
-		mesh.bind( armSkeleton );
+		// bind the skeleton to the mesh
+
+		mesh.bind( skeleton );
+
+		// move the bones and manipulate the model
 
-		// Move the bones and manipulate the model
-		armSkeleton.bones[ 0 ].rotation.x = -0.1;
-		armSkeleton.bones[ 1 ].rotation.x = 0.2;
+		skeleton.bones[ 0 ].rotation.x = -0.1;
+		skeleton.bones[ 1 ].rotation.x = 0.2;
 		</code>
 
 		<h2>构造器</h2>
-		<h3>[name]( [param:Geometry geometry], [param:Material material] )</h3>
+		<h3>[name]( [param:BufferGeometry geometry], [param:Material material] )</h3>
 		<p>
-    [page:Geometry geometry] —— 一个[page:Geometry]或者[page:BufferGeometry](推荐)的实例。
-	[page:Geometry.skinIndices skinIndices] 和 [page:Geometry.skinWeights skinWeights] 在几何体上应当被设置为true。<br />
-    [page:Material material] —— (可选)一个[page:Material]的实例,默认值是一个新的[page:MeshBasicMaterial]。
+    [page:BufferGeometry geometry] —— 一个[page:BufferGeometry]实例。<br />
+    [page:Material material] —— (可选)一个[page:Material]实例,默认值是一个新的[page:MeshBasicMaterial]。
 		</p>
 
 
@@ -92,12 +111,12 @@
 
 		<h3>[property:Matrix4 bindMatrix]</h3>
 		<p>
-		用于绑定骨骼变换的基础矩阵
+			该基础矩阵用于绑定骨骼变换。
 		</p>
 
 		<h3>[property:Matrix4 bindMatrixInverse]</h3>
 		<p>
-		用于重置绑定骨骼变换的基础矩阵
+			该基础矩阵用于重置绑定骨骼变换。
 		</p>
 
 		<h3>[property:Boolean isSkinnedMesh]</h3>
@@ -108,7 +127,7 @@
 
 		<h3>[property:Skeleton skeleton]</h3>
 		<p>
-			[page:Skeleton]是由从构造函数中传入的[page:Geometry]中的[page:Geometry.bones bones]来创建的
+			用于表示蒙皮网格中骨骼的层次结构的[page:Skeleton](骨架)
 		</p>
 
 
@@ -119,9 +138,8 @@
 		<h3>[method:null bind]( [param:Skeleton skeleton], [param:Matrix4 bindMatrix] )</h3>
 		<p>
 		[page:Skeleton skeleton] —— 由一棵[page:Bone Bones]树创建的[page:Skeleton]。<br/>
-		[page:Matrix4 bindMatrix] —— 代表着骨架基本变换的[page:Matrix4](4x4矩阵)。<br /><br />
+		[page:Matrix4 bindMatrix] —— 表示骨架基本变换的[page:Matrix4](4x4矩阵)。<br /><br />
 		将骨架绑定到一个蒙皮网格上。bindMatrix会被保存到.bindMatrix属性中,其逆矩阵.bindMatrixInverse也会被计算出来。
-		它在构造函数中会被自动调用,其骨架是由传入到构造函数的[page:Geometry]中的[page:Geometry.bones bones]来创建的。
 		</p>
 
 		<h3>[method:SkinnedMesh clone]()</h3>
@@ -131,7 +149,7 @@
 
 		<h3>[method:null normalizeSkinWeights]()</h3>
 		<p>
-		规范化[page:Geometry.skinWeights]矢量。不会对[page:BufferGeometry]产生影响
+		标准化蒙皮的权重
 		</p>
 
 		<h3>[method:null pose]()</h3>

+ 46 - 0
docs/api/zh/renderers/WebGLMultisampleRenderTarget.html

@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+			TODO
+		</p>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([param:Number width], [param:Number height], [param:Object options])</h3>
+
+		<p>
+		[page:Float width] - TODO <br />
+		[page:Float height] - TODO<br />
+		[page:Object options] - TODO
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Number samples]</h3>
+		<p>
+		TODO
+		</p>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] TODO</p>
+
+		<h2>Methods</h2>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] TODO</p>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 5 - 0
docs/api/zh/scenes/Scene.html

@@ -54,6 +54,11 @@
 			使用JSON格式返回场景数据。
 		</p>
 
+		<h3>[method:null dispose]()</h3>
+		<p>
+			清除[page:WebGLRenderer]内部所缓存的场景相关的数据。
+		</p>
+
 		<h2>源代码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 12 - 0
docs/examples/exporters/GLTFExporter.html

@@ -21,6 +21,18 @@
 		textures, skins, skeletons, morph targets, animations, lights, and/or cameras.
 		</p>
 
+		<h2>Extensions</h2>
+
+		<p>
+			GLTFExporter supports the following
+			[link:https://github.com/KhronosGroup/glTF/tree/master/extensions/ glTF 2.0 extensions]:
+		</p>
+
+		<ul>
+			<li>KHR_materials_unlit</li>
+			<li>KHR_texture_transform</li>
+		</ul>
+
 		<h2>Example</h2>
 
 		<code>

+ 6 - 3
docs/examples/loaders/GLTFLoader.html

@@ -31,13 +31,16 @@
 			<li>KHR_draco_mesh_compression</li>
 			<li>KHR_materials_pbrSpecularGlossiness</li>
 			<li>KHR_materials_unlit</li>
-			<li>KHR_lights_punctual</li>
-			<li>KHR_texture_transform<sup>*</sup></li>
+			<li>KHR_lights_punctual<sup>1</sup></li>
+			<li>KHR_texture_transform<sup>2</sup></li>
 			<li>MSFT_texture_dds</li>
 		</ul>
 
 		<p><i>
-			<sup>*</sup>UV transforms are supported, with several key limitations. Transforms applied to
+			<sup>1</sup>Requires [link:https://threejs.org/docs/#api/en/renderers/WebGLRenderer.physicallyCorrectLights physicallyCorrectLights] to be enabled.
+		</i></p>
+		<p><i>
+			<sup>2</sup>UV transforms are supported, with several key limitations. Transforms applied to
 			a texture using the first UV slot (all textures except aoMap and lightMap) must share the same
 			transform, or no transfor at all. The aoMap and lightMap textures cannot be transformed. No
 			more than one transform may be used per material. Each use of a texture with a unique

+ 28 - 0
docs/examples/utils/BufferGeometryUtils.html

@@ -45,6 +45,34 @@
 
     </p>
 
+    <h3>[method:InterleavedBufferAttribute interleaveAttributes]( [param:Array attributes] )</h3>
+    <p>
+    attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
+
+    Interleaves a set of attributes and returns a new array of corresponding attributes that share
+    a single InterleavedBuffer instance. All attributes must have compatible types. If merge does not
+    succeed, the method returns null.
+
+    </p>
+
+    <h3>[method:Number estimateBytesUsed]( [param:BufferGeometry geometry] )</h3>
+    <p>
+    geometry -- Instance of [page:BufferGeometry BufferGeometry] to estimate the memory use of.<br /><br />
+
+    Returns the amount of bytes used by all attributes to represent the geometry.
+
+    </p>
+
+    <h3>[method:BufferGeometry mergeVertices]( [param:BufferGeometry geometry], [param:Number tolerance] )</h3>
+    <p>
+    geometry -- Instance of [page:BufferGeometry BufferGeometry] to merge the vertices of.<br />
+    tolerance -- The maximum allowable difference between vertex attributes to merge. Defaults to 1e-4.<br /><br />
+
+    Returns a new [page:BufferGeometry BufferGeometry] with vertices for which all similar vertex attributes
+    (within tolerance) are merged.
+
+    </p>
+
     <h2>Source</h2>
 
     [link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/BufferGeometryUtils.js examples/js/utils/BufferGeometryUtils.js]

+ 2 - 0
docs/list.js

@@ -310,6 +310,7 @@ var list = {
 			},
 
 			"Renderers": {
+				"WebGLMultisampleRenderTarget": "api/en/renderers/WebGLMultisampleRenderTarget",
 				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
 				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
 				"WebGLRenderTargetCube": "api/en/renderers/WebGLRenderTargetCube"
@@ -734,6 +735,7 @@ var list = {
 			},
 
 			"渲染器": {
+				"WebGLMultisampleRenderTarget": "api/zh/renderers/WebGLMultisampleRenderTarget",
 				"WebGLRenderer": "api/zh/renderers/WebGLRenderer",
 				"WebGLRenderTarget": "api/zh/renderers/WebGLRenderTarget",
 				"WebGLRenderTargetCube": "api/zh/renderers/WebGLRenderTargetCube"

+ 2 - 2
docs/manual/en/introduction/Browser-support.html

@@ -13,7 +13,7 @@
 	<h2>Overview</h2>
 	<div>
 		<p>
-			Three.js can use WebGL to render your scenes on all modern browsers. For older browsers, especially Internet Explorer 10 and below, you may have to fallback to one of the other [link:https://github.com/mrdoob/three.js/tree/master/examples/js/renderers renderers] (CSS2DRenderer, CSS3DRenderer, SVGRenderer, CanvasRenderer). Additionally, you may have to include some polyfills, especially if you are using files from the [link:https://github.com/mrdoob/three.js/tree/master/examples /examples] folder.
+			Three.js can use WebGL to render your scenes on all modern browsers. For older browsers, especially Internet Explorer 10 and below, you may have to fallback to one of the other [link:https://github.com/mrdoob/three.js/tree/master/examples/js/renderers renderers] (CSS2DRenderer, CSS3DRenderer, SVGRenderer). Additionally, you may have to include some polyfills, especially if you are using files from the [link:https://github.com/mrdoob/three.js/tree/master/examples /examples] folder.
 		</p>
 		<p>
 			Note: if you don't need to support these old browsers, then it is not recommended to use the other renderers as they are slower and support less features than the WebGLRenderer.
@@ -120,4 +120,4 @@
 		</ul>
 	</div>
 </body>
-</html>
+</html>

+ 2 - 0
docs/manual/en/introduction/How-to-use-WebGL2.html

@@ -101,6 +101,7 @@ var material = new THREE.ShaderMaterial( {
 
 		[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]<br />
 		[example:webgl2_materials_texture3d_volume WebGL2 / materials / texture3d / volume]<br />
+		[example:webgl2_multisampled_renderbuffers WebGL2 / multisampled renderbuffers]
 	</p>
 
 	<h2>Supported features</h2>
@@ -110,6 +111,7 @@ var material = new THREE.ShaderMaterial( {
 		overview about what's already available in the latest version of three.js.
 		<ul>
 			<li>3D Textures</li>
+			<li>Multisampled Renderbuffers</li>
 		</ul>
 
 	</p>

+ 3 - 2
docs/manual/en/introduction/Loading-3D-models.html

@@ -55,13 +55,14 @@
 	</p>
 
 	<ul>
-		<li><a href="https://github.com/KhronosGroup/glTF-Blender-Exporter" target="_blank" rel="noopener">glTF-Blender-Exporter</a> by the Khronos Group</li>
+		<li><a href="https://github.com/KhronosGroup/glTF-Blender-IO" target="_blank" rel="noopener">glTF-Blender-IO</a> by the Khronos Group</li>
 		<li><a href="https://github.com/KhronosGroup/COLLADA2GLTF" target="_blank" rel="noopener">COLLADA2GLTF</a> by the Khronos Group</li>
 		<li><a href="https://github.com/facebookincubator/FBX2glTF" target="_blank" rel="noopener">FBX2GLTF</a> by Facebook</li>
 		<li><a href="https://github.com/AnalyticalGraphicsInc/obj2gltf" target="_blank" rel="noopener">OBJ2GLTF</a> by Analytical Graphics Inc</li>
 		<li><a href="https://www.allegorithmic.com/products/substance-painter" target="_blank" rel="noopener">Substance Painter</a> by Allegorithmic</li>
 		<li><a href="https://www.foundry.com/products/modo" target="_blank" rel="noopener">Modo</a> by Foundry</li>
 		<li><a href="https://www.marmoset.co/toolbag/" target="_blank" rel="noopener">Toolbag</a> by Marmoset</li>
+		<li><a href="https://www.sidefx.com/products/houdini/" target="_blank" rel="noopener">Houdini</a> by SideFX</li>
 		<li>&hellip;and <a href="https://github.com/khronosgroup/gltf#gltf-tools" target="_blank" rel="noopener">many more</a></li>
 	</ul>
 
@@ -96,7 +97,7 @@
 	<p>
 		Currently three.js examples are not available as ES modules (import &hellip; from '&hellip;').
 		Several workarounds are discussed in
-		<a href="https://github.com/KhronosGroup/glTF/issues/9562" target="_blank" rel="noopener">#9562</a>.
+		<a href="https://github.com/mrdoob/three.js/issues/9562" target="_blank" rel="noopener">#9562</a>.
 	</p>
 
 	<p>

+ 6 - 6
docs/manual/en/introduction/Useful-links.html

@@ -103,7 +103,7 @@
 				maintained as part of the three.js repository, and always use the latest version of three.js.
 			</li>
 			<li>
-				[link:https://rawgit.com/mrdoob/three.js/dev/examples/ Official three.js dev branch examples]  -
+				[link:https://raw.githack.com/mrdoob/three.js/dev/examples/ Official three.js dev branch examples]  -
 				Same as the above, except these use the dev branch of three.js,	and are used to check that
 				everything is working as three.js being is developed.
 			</li>
@@ -112,7 +112,7 @@
 	 <h2>Tools</h2>
 	 <ul>
 		 <li>
-			[link:http://www.physgl.org/ physgl.org] - javascript front-end with wrappers to three.js, to bring WebGL
+			[link:http://www.physgl.org/ physgl.org] - JavaScript front-end with wrappers to three.js, to bring WebGL
  			graphics to students learning physics and math.
 		 </li>
 		 <li>
@@ -126,11 +126,11 @@
 			[link:http://idflood.github.io/ThreeNodes.js/ ThreeNodes.js].
 		</li>
 	 </ul>
-		
+
 	<h2>WebGL References</h2>
 	 <ul>
 		 <li>
-			[link:https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf] - Reference of all WebGL and GLSL keywords, terminology, syntex and definations.
+			[link:https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf] - Reference of all WebGL and GLSL keywords, terminology, syntax and definitions.
 		 </li>
 	 </ul>
 
@@ -142,7 +142,7 @@
 
 	 <ul>
 		<li>
-			<a href="https://www.youtube.com/watch?v=Dir4KO9RdhM">AlterQualia at WebGL Camp 3</a>
+			<a href="https://www.youtube.com/watch?v=Dir4KO9RdhM" target="_blank">AlterQualia at WebGL Camp 3</a>
 		</li>
 		<li>
 			[link:http://yomotsu.github.io/threejs-examples/ Yomotsus Examples] - a collection of examples using three.js r45.
@@ -157,7 +157,7 @@
 			[link:http://bkcore.com/blog/general/adobe-user-group-nl-talk-video-hexgl.html Fast HTML5 game development using three.js] by [link:https://github.com/BKcore BKcore] (video).
 		</li>
 		<li>
-			<a href="http://www.youtube.com/watch?v=VdQnOaolrPA">Trigger Rally</a>  by [link:https://github.com/jareiko jareiko] (video).
+			<a href="https://www.youtube.com/watch?v=VdQnOaolrPA" target="_blank">Trigger Rally</a>  by [link:https://github.com/jareiko jareiko] (video).
 		</li>
 		<li>
 			[link:http://blackjk3.github.io/threefab/ ThreeFab] - scene editor, maintained up until around three.js r50.

+ 11 - 9
docs/manual/en/introduction/WebGL-compatibility-check.html

@@ -19,16 +19,18 @@
 			to your javascript and run the following before attempting to render anything.
 		</p>
 
-<code>
-if (WEBGL.isWebGLAvailable()) {
-    // Initiate function or other initializations here
-    animate();
-} else {
-    var warning = WEBGL.getWebGLErrorMessage();
-    document.getElementById('container').appendChild(warning);
-}
-</code>
+		<code>
+		if ( WEBGL.isWebGLAvailable() ) {
 
+			// Initiate function or other initializations here
+			animate();
 
+		} else {
+
+			var warning = WEBGL.getWebGLErrorMessage();
+			document.getElementById( 'container' ).appendChild( warning );
+
+		}
+		</code>
 	</body>
 </html>

+ 60 - 69
docs/manual/zh/buildTools/Testing-with-NPM.html

@@ -8,69 +8,67 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>使用NPM进行测试([name]</h1>
 
 		<p class="desc">
-			This article shows how to get three.js into a [link:https://nodejs.org/en/ node.js] environment so that you
-			can execute automated tests. Tests can be run on the command line, or by automated
-			CI tools like [link:https://travis-ci.org/ Travis].
+			这篇文章展示了如何将three.js置入[link:https://nodejs.org/en/ node.js]环境中,
+			这样你就可以执行自动化测试了。测试可以通过命令行或者类似[link:https://travis-ci.org/ Travis]的CI工具来运行。
 		</p>
 
-		<h2>The short version</h2>
+		<h2>一句话概括</h2>
 
 		<p>
-			If you're comfortable with node and npm,
+			如果你习惯使用node和npm,
 			<code>
 				$ npm install three --save-dev
 			</code>
-			and add
+			并将
 		<code>
 			var THREE = require('three');
 		</code>
-			to your test.
+			添加到你的测试中。
 		</p>
 
-		<h2>Create a testable project from scratch</h2>
+		<h2>从头创建一个可测试的项目</h2>
 		<p>
-			If you're not familiar with these tools, here's a quick guide (for linux, the installation process
-			will be slightly different using windows, but the NPM commands are identical).
+			如果你不太熟悉这些工具,下面是一个快速入门。(基于linux,在windows上的安装过程会稍稍有点不一样,不过NPM指令是相同的。)
 		</p>
 
-		<h3>Basic setup</h3>
+		<h3>基本设置</h3>
 		<div>
 			<ol>
 				<li>
-					Install [link:https://www.npmjs.org/ npm] and nodejs. The shortest path typically looks something like
+					安装[link:https://www.npmjs.org/ npm]和nodejs。最简单的方式一般像这样
 					<code>
 $ sudo apt-get install -y npm nodejs-legacy
-# fix any problems with SSL in the default registry URL
+# 修复默认registry URL中任何SSL的问题
 $ npm config set registry http://registry.npmjs.org/
 					</code>
 				</li>
 
 				<li>
-					Make a new project directory
+					新建一个项目路径
 					<code>
 						 $ mkdir test-example; cd test-example
 					</code>
 				</li>
 
 				<li>
-					Ask npm to create a new project file for you:
+					让npm为你创建一份新的项目文件:
 					<code>
 					 $ npm init
 					</code>
-					 and accept all defaults by hitting Enter on all the prompts.
-					 This will create package.json.
+					 在所有出现的提示中敲击回车键来接受默认值。
+					 这样,一份package.json就建立好了。
 				</li><br />
 
 				<li>
-					Try and start the test feature with
+					尝试启动测试功能
 					<code>
 $ npm test
 					</code>
-					This will fail, which is expected.
-					If you look in the package.json, the definition of the test script is
+					当然,这一定会失败。
+					如果你检查一下package.json,test script的定义是这样的
 					<code>
 						"test": "echo \"Error: no test specified\" && exit 1"
 					</code>
@@ -79,78 +77,75 @@ $ npm test
 			</ol>
 		</div>
 
-		<h2>Add mocha</h2>
+		<h2>添加mocha</h2>
 		<div>
-			We're going to use [link:https://mochajs.org/ mocha].
+			我们将使用[link:https://mochajs.org/ mocha]。
 
 			<ol>
 				<li>
-					Install mocha with
+					安装mocha
 					<code>
 $ npm install mocha --save-dev
 					</code>
-					Notice that node_modules/ is created and your dependencies appear in there.
-				  Also notice that your package.json has been updated: the property devDependencies
-					is added and updated by the use of --save-dev.
+					你会注意到 node_modules/ 被创建了,并且你的依赖都出现在了这里面。
+					还有你的package.json被更新了,--save-dev指令向其中加入并更新了devDependencies属性。
 				</li><br />
 
 				<li>
-					Edit package.json to use mocha for testing. When test is invoked, we just want to run
-					mocha and specify a verbose reporter. By default this will run anything in test/
-					(not having directory test/ can run into npm ERR!, create it by mkdir test)
+					编辑package.json来使用mocha进行测试。当调用测试的时候,我们只想运行mocha并且生成一份详细的报告。
+					默认情况下这会运行 test/ 中的任何东西。
+					(如果项目中没有 test/ 目录的话,会导致npm报错。你可以通过mkdir test来创建这个目录)
 					<code>
 						"test": "mocha --reporter list"
 					</code>
 				</li>
 
 				<li>
-					Rerun the test with
+					重新运行测试
 					<code>
 						$ npm test
 					</code>
 
-					This should now succeed, reporting 0 passing (1ms)
-				 	or similar.
+					现在应该就能成功执行了,生成类似 0 passing (1ms) 的报告。
 				</li>
 
 			</ol>
 		</div>
 
-		<h2>Add three.js</h2>
+		<h2>添加three.js</h2>
 		<div>
 			<ol>
 				<li>
-					Let's pull in our three.js dependency with
+					现在添加我们的three.js依赖
 					<code>
 $ npm install three --save-dev
 					</code>
 					<ul>
 						<li>
-							If you need a different three version, use
+							如果你需要three.js的其他版本,使用
 							<code>
 								$ npm show three versions
 							</code>
-						  to see
-							what's available. To tell npm the right one, use
+						  	来确认哪些是可用的。要让npm使用正确的版本,执行
 							<code>
  $ npm install [email protected] --save
 							</code>
-							(0.84.0 in this example). --save makes this a dependency of this project, rather than
-							dev dependency. See the docs [link:https://www.npmjs.org/doc/json.html here] for more info.
+							(例子中用的是0.84.0)。 --save 指令将此加入项目的dependency而不是dev dependency。
+							更多信息请参阅<a href="https://www.npmjs.org/doc/json.html">这份文档</a>。
 						</li>
 					</ul>
 				</li>
 
 				<li>
-					Mocha will look for tests in test/, so let's
+					Mocha会在 test/ 目录中寻找测试文件,所以我们先创建这个目录:
 					<code>
 					$ mkdir test
 					</code>
 				</li>
 
 				<li>
-					Finally we actually need a JS test to run. Let's add a simple test that will verify that
-					the three.js object is available and working. Create test/verify-three.js containing:
+					最后我们需要一份JS测试文件来运行。我们就添加一段简单的测试程序,这段程序会检验three.js对象是否能正常工作。
+					在 test/ 目录下创建verify-three.js包含以下代码:
 <code>
 var THREE = require('three');
 var assert = require("assert");
@@ -169,8 +164,7 @@ describe('The THREE object', function() {
 				</li>
 
 				<li>
-				Finally let's test again with $ npm test. This should run the tests above and succeed,
-				showing something like:
+				最后再次通过$ npm test来测试。这次应该能正确执行上面的代码,并且返回类似:
 				<code>
 The THREE object should have a defined BasicShadowMap constant: 0ms
 The THREE object should be able to construct a Vector3 with default of x=0: 0ms
@@ -180,33 +174,33 @@ The THREE object should be able to construct a Vector3 with default of x=0: 0ms
 			</ol>
 		</div>
 
-		<h2>Add your own code</h2>
+		<h2>加入你自己的代码</h2>
 		<div>
-			You need to do three things:
+			你需要做下面三件事:
 
 			<ol>
 				<li>
-					Write a test for the expected behaviour of your code, and place it under test/.
-					[link:https://github.com/air/encounter/blob/master/test/Physics-test.js Here] is an example from a real project.
+					为你的代码写一段测试程序来检验期望结果,并把它放在 test/ 目录下。
+					<a href="https://github.com/air/encounter/blob/master/test/Physics-test.js">这里</a>有一个实际项目的例子。
 				</li>
 
 				<li>
-					Export your functional code in such a way that nodejs can see it, for use in conjunction with require.
-					See it [link:https://github.com/air/encounter/blob/master/js/Physics.js here].
+					将你的代码以nodejs承认的方式导出,即可以通过require的方式引用。
+					参考<a href="https://github.com/air/encounter/blob/master/js/Physics.js">这份代码</a>。
 				</li>
 
 				<li>
-					Require your code into the test file, in the same way we did a require('three') in the example above.
+					在测试程序中通过require引入你自己的代码,就像上面例子中我们通过require('three')来引入一样。
 				</li>
 			</ol>
 
 			<p>
-				Items 2 and 3 will vary depending on how you manage your code. In the example of Physics.js
-		  	given above, the export part is right at the end. We assign an object to module.exports:
+				第2、3条会根据你组织代码的方式而改变。在上面给出的Physics.js的例子中,导出的部分在代码的最末尾。
+				我们将module.exports赋值为一个对象:
 			</p>
 			<code>
 //=============================================================================
-// make available in nodejs
+// 为了在nodejs中可用
 //=============================================================================
 if (typeof exports !== 'undefined')
 {
@@ -215,38 +209,35 @@ if (typeof exports !== 'undefined')
 			</code>
 		</div>
 
-		<h2>Dealing with dependencies</h2>
+		<h2>处理依赖</h2>
 		<div>
 			<p>
-				If you're already using something clever like require.js or browserify, skip this part.
+				如果你已经在使用require.js或者browserify之类的便捷工具,就跳过这个部分。
 			</p>
 			<p>
-				Typically a three.js project is going to run in the browser. Module loading is hence done by
-				the browser executing a bunch of script tags. Your individual files don't have to worry
-				about dependencies. In a nodejs context however, there is no index.html binding everything
-				together, so you have to be explicit.
+				一般来说,一个three.js项目将在浏览器中运行,浏览器会通过执行一系列script标签来加载模块。
+				你自己的文件不用考虑依赖的问题。然而在nodejs环境中,没有一个关联所有文件的index.html,所以你需要显式地加载。
 			</p>
 			<p>
-				If you're exporting a module that depends on other files, you're going to have to tell node to load them.
-				Here is one approach:
+				如果你要导出的模块还依赖其他文件,你需要告诉node去加载它们。下面是一种方式:
 			</p>
 			<ol>
 				<li>
-					At the start of your module, check to see if you're in a nodejs environment.
+					在你的模块顶部,检查是否处于nodejs环境中。
 				</li>
 				<li>
-					If so, explicitly declare your dependencies.
+					如果是,那就显式地声明你的依赖。
 				</li>
 				<li>
-					If not, you're probably in a browser so you don't need to do anything else.
+					如果不是,你多半处于浏览器环境中。这时候你不需要做任何多余操作。
 				</li>
 			</ol>
-			Example code from Physics.js:
+			用Physics.js中的代码举例:
 			<code>
 //=============================================================================
-// setup for server-side testing
+// 服务器端测试配置
 //=============================================================================
-if (typeof require === 'function') // test for nodejs environment
+if (typeof require === 'function') // 检测nodejs环境
 {
   var THREE = require('three');
   var MY3 = require('./MY3.js');

+ 49 - 53
docs/manual/zh/introduction/Animation-system.html

@@ -8,82 +8,79 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>动画系统([name]</h1>
 
-		<h2>Overview(概述)</h2>
+		<h2>概述</h2>
 
 		<p class="desc">
 			在three.js动画系统中,您可以为模型的各种属性设置动画:
-			[page:SkinnedMesh 蒙皮和装配模型]的骨头,[page:Geometry.morphTargets 变形目标],不同的材料属性(颜色,
-			不透明度,布尔运算),可见性和变换。 动画属性可以淡入,淡出,交叉淡化和扭曲。 不同时间的重量和时间尺度
-			可以更改同一对象以及不同对象上的动画独立。 可以在相同和不同对象上进行各种动画同步。
+			[page:SkinnedMesh](蒙皮和装配模型)的骨骼,[page:Geometry.morphTargets](变形目标),
+			不同的材料属性(颜色,不透明度,布尔运算),可见性和变换。动画属性可以淡入、淡出、交叉淡化和扭曲。
+			在相同或不同物体上同时发生的动画的权重和时间比例的变化可以独立地进行。
+			相同或不同物体的动画也可以同步发生。
 			<br /><br />
-			在一个同构系统中实现所有这一切,即three.js动画系统
-			[link:https://github.com/mrdoob/three.js/issues/6881在2015年彻底改变]
-			(注意过时的信息!),它现在有一个与Unity /虚幻引擎4类似的架构.此页面简要概述了主要组件系统以及它们如何协同工作。
+			为了在一个同构系统中实现所有这一切,
+			three.js的动画系统<a href="https://github.com/mrdoob/three.js/issues/6881">在2015年彻底改变</a>(注意过时的信息!),
+			它现在有一个与Unity/虚幻4引擎类似的架构。此页面简要阐述了这个系统中的主要组件以及它们如何协同工作。
 		</p>
 
-		<h3>Animation Clips(动画片段)</h3>
+		<h3>动画片段(Animation Clips)</h3>
 
 		<p class="desc">
-			如果您已成功导入动画3D对象(如果有,则无关紧要)
-			骨骼或变形目标或两者) - 例如使用[link:https://github.com/KhronosGroup/glTF-Blender-Exporter glTF Blender导出器]从Blender导出它
-			使用[page:GLTFLoader]将其加载到three.js场景中 - 其中一个响应字段应该是一个名为“animations”的数组,其中包含此模型的[page:AnimationClip AnimationClips](请参阅下面的可能加载器列表)。
+			如果您已成功导入3D动画对象(无论它是否有骨骼或变形目标或两者皆有都不要紧)——
+			例如使用<a href="https://github.com/KhronosGroup/glTF-Blender-Exporter">glTF Blender导出器</a>
+			从Blender导出它并使用[page:GLTFLoader]将其加载到three.js场景中
+			—— 其中一个响应字段应该是一个名为“animations”的数组,
+			其中包含此模型的[page:AnimationClip AnimationClips](请参阅下面可用的加载器列表)。
 			<br /><br />
-			每个* AnimationClip *通常保存对象的某个活动的数据。 如果
-			mesh是一个字符,例如,可以有一个用于walkcycle的动画片段,第二个
-			跳跃,三分之一的回避等等。
+			每个*AnimationClip*通常保存对象某个活动的数据。
+			举个例子,假如mesh是一个角色,可能有一个AnimationClip实现步行循环,
+			第二个AnimationClip实现跳跃,第三个AnimationClip实现闪避等等。
 		</p>
 
-		<h3>Keyframe Tracks(关键帧轨道)</h3>
+		<h3>关键帧轨道(Keyframe Tracks)</h3>
 
 		<p class="desc">
-			在这样的* AnimationClip *里面,每个动画属性的数据都存储在一个
-			单独[page:KeyframeTrack]。 假设一个角色对象有一个[page:Skeleton skeleton],
-			一个关键帧轨道可以存储下臂骨骼位置变化的数据
-			随着时间的推移,不同的轨道数据为同一骨骼的旋转变化,三分之一
-			轨道位置,旋转或缩放另一个骨骼,等等。 应该很清楚,
-			AnimationClip可以由许多这样的轨道组成。
-			.<br /><br />
-			假设模型具有[page:Geometry.morphTargets 变形目标](例如一个变形
-			目标显示一个友好的面孔,另一个显示愤怒的脸),每个轨道持有
-			关于某个变形的[page:Mesh.morphTargetInfluences 影响]的信息
-			目标在剪辑执行期间发生变化。
+			在这样的*AnimationClip*里面,每个动画属性的数据都存储在一个单独的[page:KeyframeTrack]中。
+			假设一个角色对象有[page:Skeleton](骨架),
+			一个关键帧轨道可以存储下臂骨骼位置随时间变化的数据,
+			另一个轨道追踪同一块骨骼的旋转变化,第三个追踪另外一块骨骼的位置、转角和尺寸,等等。
+			应该很清楚,AnimationClip可以由许多这样的轨道组成。
+			<br /><br />
+			假设模型具有[page:Geometry.morphTargets](变形目标)——
+			例如一个变形目标显示一个笑脸,另一个显示愤怒的脸 ——
+			每个轨道都持有某个变形目标在AnimationClip运行期间产生的[page:Mesh.morphTargetInfluences](变形目标影响)如何变化的信息。
 		</p>
 
-		<h3>Animation Mixer(动画混音器)</h3>
+		<h3>动画混合器(Animation Mixer)</h3>
 
 		<p class="desc">
-			存储的数据仅构成动画的基础 - 实际播放由控制
-			[page:AnimationMixer]。 你可以想象这不仅仅是动画的播放器,而是
-			作为硬件的模拟,如真正的调音台控制台,可以控制几个动画
-			同时,混合和合并它们。
+			存储的数据仅构成动画的基础 —— 实际播放由[page:AnimationMixer]控制。
+			你可以想象这不仅仅是动画的播放器,而是作为硬件的模拟,如真正的调音台,可以同时控制和混合若干动画。
 		</p>
 
-		<h3>Animation Actions</h3>
+		<h3>动画行为(Animation Actions</h3>
 
 		<p class="desc">
-			* AnimationMixer *本身只有很少(通用)属性和方法,因为它
-			可以通过[page:AnimationAction AnimationActions]来控制。 通过配置
-			* AnimationAction *您可以确定何时播放某个* AnimationClip *,暂停
-			或者停在其中一个混音器上,是否以及频率必须重复,无论是否
-			应使用淡入淡出或时间缩放以及一些其他内容(例如交叉渐变)来执行
-			或同步。
+			*AnimationMixer*本身只有很少的(大体上)属性和方法,
+			因为它可以通过[page:AnimationAction AnimationActions]来控制。
+			通过配置*AnimationAction*,您可以决定何时播放、暂停或停止其中一个混合器中的某个*AnimationClip*,
+			这个*AnimationClip*是否需要重复播放以及重复的频率,
+			是否需要使用淡入淡出或时间缩放,以及一些其他内容(例如交叉渐变和同步)。
 		</p>
 
-		<h3>Animation Object Groups(动画对象组)</h3>
+		<h3>动画对象组(Animation Object Groups)</h3>
 
 		<p class="desc">
-				如果您希望一组对象接收共享动画状态,则可以使用[page:AnimationObjectGroup].
-
+			如果您希望一组对象接收共享的动画状态,则可以使用[page:AnimationObjectGroup]。
 		</p>
 
-		<h3>Supported Formats and Loaders(支持的格式和加载器)</h3>
+		<h3>支持的格式和加载器(Supported Formats and Loaders)</h3>
 
 		<p class="desc">
-			请注意,并非所有模型格式都包含动画(尤其是OBJ,没有),而且只有一些
-			three.js加载器支持[page:AnimationClip AnimationClip]序列。 以下几个<i>确实</ i>
-			支持此动画类型:
+			请注意,并非所有模型格式都包含动画(尤其是OBJ,没有),
+			而且只有某些three.js加载器支持[page:AnimationClip AnimationClip]序列。
+			以下几个<i>确实</i>支持此动画类型:
 		</p>
 
 			<ul>
@@ -97,30 +94,29 @@
 			</ul>
 
 		<p class="desc">
-			请注意,3ds max和Maya当前无法导出多个动画(这意味着动画不是
-			在同一时间线上)直接到一个文件。
+			请注意,3ds max和Maya当前无法直接导出多个动画(这意味着动画不是在同一时间线上)到一个文件中。
 		</p>
 
-		<h2>Example</h2>
+		<h2>范例</h2>
 
 		<code>
 		var mesh;
 
-		// Create an AnimationMixer, and get the list of AnimationClip instances
+		// 新建一个AnimationMixer, 并取得AnimationClip实例列表
 		var mixer = new THREE.AnimationMixer( mesh );
 		var clips = mesh.animations;
 
-		// Update the mixer on each frame
+		// 在每一帧中更新mixer
 		function update () {
 			mixer.update( deltaSeconds );
 		}
 
-		// Play a specific animation
+		// 播放一个特定的动画
 		var clip = THREE.AnimationClip.findByName( clips, 'dance' );
 		var action = mixer.clipAction( clip );
 		action.play();
 
-		// Play all animations
+		// 播放所有动画
 		clips.forEach( function ( clip ) {
 			mixer.clipAction( clip ).play();
 		} );

+ 3 - 3
docs/manual/zh/introduction/Browser-support.html

@@ -13,14 +13,14 @@
 	<h2>总览</h2>
 	<div>
 		<p>
-            在所有现代浏览器中,Three.js可以使用WebGL来渲染场景。对于较旧的浏览器,特别是Internet Explorer 10或者更低版本浏览器,你将需要回落到其它[link:https://github.com/mrdoob/three.js/tree/master/examples/js/renderers renderers](CSS2DRenderer、CSS3DRenderer、SVGRenderer、CanvasRenderer)。此外,你或许不得不包含一些额外的“填充物”来解决兼容性问题,特别是当你使用[link:https://github.com/mrdoob/three.js/tree/master/examples /examples]目录中的文件时。
+            在所有现代浏览器中,Three.js可以使用WebGL来渲染场景。对于较旧的浏览器,特别是Internet Explorer 10或者更低版本浏览器,你将需要回落到其它[link:https://github.com/mrdoob/three.js/tree/master/examples/js/renderers renderers](CSS2DRenderer、CSS3DRenderer、SVGRenderer)。此外,你或许不得不包含一些额外的“填充物”来解决兼容性问题,特别是当你使用[link:https://github.com/mrdoob/three.js/tree/master/examples /examples]目录中的文件时。
 		</p>
 		<p>
             注意:如果你并不需要支持较旧的浏览器,那就不推荐使用其他渲染器来进行渲染,因为与WebGLRenderer相比,其它渲染器渲染较慢,并且不支持WebGL的诸多特性。
 		</p>
 	</div>
 
-	<h2>支持WebGL的渲染器</h2>
+	<h2>支持WebGL的浏览器</h2>
 	<div>
 		<p>
 			Google Chrome 9+、Firefox 4+、Opera 15+、Safari 5.1+、Internet Explorer 11 和 Microsoft Edge。你可以点击[link:https://caniuse.com/#feat=webgl Can I use WebGL]来查阅各个浏览器对WebGL的支持性。
@@ -32,7 +32,7 @@
         </h2>
 	<div>
 		<p>
-            这里是一些在Three.js中使用到的特性,其中的一部分需要额外的“填充物”来解决兼容性问题。
+            这里是一些在Three.js中使用到的特性,其中的一部分需要额外的“填充物”(Polyfills)来解决兼容性问题。
 		</p>
 		<table>
 			<thead>

+ 1 - 1
docs/manual/zh/introduction/Creating-a-scene.html

@@ -114,7 +114,7 @@
 		cube.rotation.y += 0.01;
 		</code>
 
-		<p>这一段代码将在每一帧时被渲染时调用(正常情况下是60次/秒),这就让立方体有了一个看起来很不错的旋转动画。基本上来说,当应用程序运行时,如果你想要移动或者改变任何场景中的东西,都必须要经过这个动画循环。当然,在这个动画循环函数里,你也可以调用别的函数,这样你在写<strong>animate</strong>函数的时候,这样你在写animate函数的时候,就不用在这里以成千上万的代码来结尾了。</p>
+		<p>这一段代码将在每一帧时被渲染时调用(正常情况下是60次/秒),这就让立方体有了一个看起来很不错的旋转动画。基本上来说,当应用程序运行时,如果你想要移动或者改变任何场景中的东西,都必须要经过这个动画循环。当然,在这个动画循环函数里,你也可以调用别的函数,这样你在写<strong>animate</strong>函数的时候,就不用在这里以成千上万的代码来结尾了。</p>
 
 		<h2>结果</h2>
 		<p>祝贺你!你现在已经成功完成了你的第一个Three.js应用程序。虽然它很简单,但现在你已经有了一个入门的起点。</p>

+ 1 - 1
docs/manual/zh/introduction/Drawing-lines.html

@@ -11,7 +11,7 @@
 		<h1>画线([name])</h1>
 		<div>
 			<p>
-				假设你将要画一个圆或者画一条线,而不是一个线框,或者说不是一个[page:Mesh](网格)。
+				假设你将要画一个圆或者画一条线,而不是一个线框模型,或者说不是一个[page:Mesh](网格)。
 				第一步我们要做的,是设置好[page:WebGLRenderer renderer](渲染器)、[page:Scene scene](场景)和[page:Camera camera](相机)-(如果对这里所提到的东西,还不了解,请阅读本手册第一章“创建一个场景 - Creating a scene”)。
 			</p>
 

+ 5 - 6
docs/manual/zh/introduction/FAQ.html

@@ -10,14 +10,14 @@
 	<body>
 		<h1>常见问题([name])</h1>
 
-		<h2>哪一种三维物体格式能够得到最好地支持?</h2>
+		<h2>哪一种三维物体格式能够得到最好地支持?</h2>
 		<div>
 			<p>
-			推荐使用glTF(gl传输格式)来对三维物体进行导入和导出,由于glTF这种格式是专注于在程序运行时呈现三维物体的,所以它的传输效率非常高,且加载速度非常快。
+			推荐使用glTF(gl传输格式)来对三维物体进行导入和导出,由于glTF这种格式专注于在程序运行时呈现三维物体,因此它的传输效率非常高,且加载速度非常快。
 			</p>
 			
 			
-			<p>three.js同样也为其它广受欢迎的格式像FBX、Collada以及OBJ等等提供了载入工具。虽然如此,你应当还是首先尝试着在你的项目里建立一个基于glTF的工作流程。
+			<p>three.js同样也为其它广受欢迎的格式(例如FBX、Collada以及OBJ等)提供了载入工具。即便如此,你应当还是首先尝试着在你的项目中建立一个基于glTF的工作流程。
 				了解更多详细信息,请查看[link:#manual/introduction/Loading-3D-models loading 3D models]。
 			</p>
 		</div>
@@ -46,10 +46,9 @@ visible_height = 2 * Math.tan( ( Math.PI / 180 ) * camera.fov / 2 ) * distance_f
 
 		<h2>为什么我的物体的一部分是不可见的?</h2>
 		<p>
-			这可能是由于面消隐而导致的。面是具有朝向的,这个朝向决定了哪边是正面或者哪边是背面。
-			在正常情况下,渲染时会将背面进行消隐。要查看这是不是你所遇到的问题,请将material的slide更改为THREE.DoubleSide。
+			这可能是由于面剔除而导致的。面是具有朝向的,这个朝向决定了哪边是正面或者哪边是背面。
+			在正常情况下,渲染时会将背面进行剔除。要查看这是不是你所遇到的问题,请将material的side更改为THREE.DoubleSide。
 			<code>material.side = THREE.DoubleSide</code>
 		</p>
 	</body>
 </html>
-

+ 0 - 56
docs/manual/zh/introduction/How-to-run-things-locally.html

@@ -117,62 +117,6 @@ ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot =>
 				</ol>
 			</div>
 
-		<h2>更改本地文件的安全策略</h2>
-		<div>
-			<h3>Safari</h3>
-			<div>
-				<p>
-                    在“偏好”面板中启用开发菜单,位于“高级”-&gt“在菜单栏中显示开发菜单”
-				</p>
-
-				<p>
-                    之后从Safari中的“开发”菜单中,选择“停用本地文件限制”,同样需要注意的是,Safari对于缓存有一些奇怪的行为,
-                    因此建议,在同一菜单中打开“停用缓存”的选项;如果你正在编辑,请使用Safari进行调试。
-				</p>
-			</div>
-
-
-			<h3>Chrome</h3>
-			<div>
-				<p>请关闭Chrome浏览器正在运行的*所有*实例,注意这里非常重要的关键字是“*所有*”。</p>
-
-				<p>
-                    在Windows中,你可以在任务管理器中查看所有正在运行的Chorme浏览器的实例。
-                    此外,如果你在系统任务栏中看到了Chrome图标,请鼠标右键打开它的上下文菜单,点击关闭。这样就应当已经关闭所有正在运行的Chrome浏览器实例了。
-
-				</p>
-
-				<p>
-                    然后使用命令行执行Chrome浏览器,并在命令行中添加允许访问本地文件的参数:</p>
-
-				<code>chrome --allow-file-access-from-files</code>
-
-				<p>
-                    在Windows中,最简单的做法或许就是创建一个特别的快捷方式图标,快捷方式的目标指向上面的命令行
-                    (右键点击快捷方式图标-&gt;属性-&gt;目标)。
-				</p>
-
-				<p>在Mac OS X中,你可以用这种方法来添加允许访问本地文件的参数并运行Chrome:</p>
-
-				<code>open /Applications/Google\ Chrome.app --args --allow-file-access-from-files</code>
-			</div>
-			<h3>Firefox</h3>
-			<div>
-				<ol>
-				<li>
-					在地址栏中,键入<code>about:config</code>
-				</li>
-				<li>
-					找到这个参数<code>security.fileuri.strict_origin_policy</code>
-				</li>
-				<li>
-					将其设置为<em>false</em>
-				</li>
-				</ol>
-			</div>
-
-		</div>
-
 			<p>
                 其它简单的替代方案你可以在Stack Overflow上找到:[link:http://stackoverflow.com/q/12905426/24874 click here]。
 			</p>

+ 33 - 34
docs/manual/zh/introduction/How-to-update-things.html

@@ -8,7 +8,7 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>如何更新场景([name]</h1>
 		<div>
 			<p>默认情况下,所有对象都会自动更新它们的矩阵(如果它们已添加到场景中)</p>
 			<code>
@@ -21,7 +21,7 @@ var object1 = new THREE.Object3D();
 var object2 = new THREE.Object3D();
 
 object1.add( object2 );
-scene.add( object1 ); //object1 and object2 will automatically update their matrices
+scene.add( object1 ); //object1 和 object2 会自动更新它们的矩阵
 			</code>
 		</div>
 
@@ -32,27 +32,27 @@ object.matrixAutoUpdate  = false;
 object.updateMatrix();
 		</code>
 
-		<h2>Geometries(几何形状)</h2>
+		<h2>几何形状(Geometries)</h2>
 		<div>
 			<h3>[page:BufferGeometry]</h3>
 			<div>
 				<p>
-					BufferGeometries 将信息(例如顶点位置,面索引,法线,颜色,uv和任何自定义属性) 存储在 [page:BufferAttribute buffers] - 也就是,
+					BufferGeometries 将信息(例如顶点位置,面索引,法线,颜色,uv和任何自定义属性)存储在[page:BufferAttribute buffers] —— 也就是,
 					[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays typed arrays].
 					这使得它们通常比标准Geometries更快,缺点是更难用。
 				</p>
 				<p>
-					关于更新BufferGeometries, 最重要的是理解你不能调整 buffers 大小(这种操作开销很大,	相当于创建了个新的geometry).
-					但你可以更新 buffers的内容.
+					关于更新BufferGeometries,最重要的是理解你不能调整 buffers 大小(这种操作开销很大,相当于创建了个新的geometry)。
+					但你可以更新 buffers的内容
 				</p>
 				<p>
 					这意味着如果你知道BufferGeometry的一个属性会增长,比如顶点的数量,
 					你必须预先分配足够大的buffer来容纳可能创建的任何新顶点。
-					当然,这也意味着BufferGeometry将有一个最大大小 - 无法创建一个可以高效地无限扩展的BufferGeometry。
+					当然,这也意味着BufferGeometry将有一个最大大小 —— 无法创建一个可以高效地无限扩展的BufferGeometry。
 				</p>
 				<p>
 					我们以在渲染时扩展的line来示例。我们将分配可容纳500个顶点的空间但起初仅绘制2个,使用
-					在500个顶点的缓冲区中,但首先只使用 [page:BufferGeometry.drawRange].
+					在500个顶点的缓冲区中,但首先只使用 [page:BufferGeometry.drawRange]
 				</p>
 				<code>
 var MAX_POINTS = 500;
@@ -106,14 +106,14 @@ line.geometry.setDrawRange( 0, newValue );
 					如果要在第一次渲染后更改position数值,则需要像这样设置needsUpdate标志:
 				</p>
 				<code>
-line.geometry.attributes.position.needsUpdate = true; // required after the first render
+line.geometry.attributes.position.needsUpdate = true; // 需要加在第一次渲染之后
 				</code>
 
 				<p>
-					[link:http://jsfiddle.net/w67tzfhx/ 这个fiddle] 展示了一个你可以参考的运动的line.
+					<a href="http://jsfiddle.net/w67tzfhx/">这个fiddle</a>展示了一个你可以参考的运动的line。
 				</p>
 
-				<h3>Examples:</h3>
+				<h3>例子:</h3>
 					[example:webgl_custom_attributes WebGL / custom / attributes]<br />
 					[example:webgl_buffergeometry_custom_attributes_particles WebGL / buffergeometry / custom / attributes / particles]
 
@@ -123,10 +123,9 @@ line.geometry.attributes.position.needsUpdate = true; // required after the firs
 			<h3>[page:Geometry]</h3>
 			<div>
 				<p>
-					以下标志控制各种geometry属性的更新. 仅对于需要更新的属性设置标志
-					,因为更新成本很高. 一旦buffers
-					改变, 这些标志位会自动重置为false. 你需要保持这些设置为true,如果你想要持续更新buffers. 请注意这仅适用于[page:Geometry]
-					而不是 [page:BufferGeometry].
+					以下标志控制各种geometry属性的更新。仅对于需要更新的属性设置标志,因为更新成本很高。
+					一旦buffers改变,这些标志位会自动重置为false。如果你想要持续更新buffers,你需要保持这些设置为true。
+					请注意这仅适用于[page:Geometry]而不是[page:BufferGeometry]。
 				</p>
 				<code>
 var geometry = new THREE.Geometry();
@@ -140,8 +139,8 @@ geometry.tangentsNeedUpdate = true;
 				</code>
 
 				<p>
-					在早于 [link:https://github.com/mrdoob/three.js/releases/tag/r66 r66]版本中, meshes
-					需要额外设定 <em>dynamic</em> 标志true (为了维持内部的 typed arrays):
+					在早于[link:https://github.com/mrdoob/three.js/releases/tag/r66 r66]版本中,meshes
+					需要额外设定 <em>dynamic</em> 标志为true (为了维持内部的 typed arrays):
 				</p>
 
 				<code>
@@ -149,7 +148,7 @@ geometry.tangentsNeedUpdate = true;
 		geometry.dynamic = true;
 				</code>
 
-				<h3>Examples:</h3>
+				<h3>例子:</h3>
 					[example:webgl_geometry_dynamic WebGL / geometry / dynamic]<br />
 			</div>
 
@@ -158,19 +157,19 @@ geometry.tangentsNeedUpdate = true;
 
 
 
-		<h2>Materials(材质)</h2>
+		<h2>材质(Materials)</h2>
 		<div>
-			<p>所有uniforms值都可以自由改变 (e.g. colors, textures, opacity, etc), 这些数值在每帧都发给shader .</p>
+			<p>所有uniforms值都可以自由改变(比如 colors, textures, opacity 等等),这些数值在每帧都发给shader。</p>
 
-			<p>GL状态相关参数也可以随时改变 (depthTest, blending, polygonOffset, etc).</p>
+			<p>GL状态相关参数也可以随时改变(depthTest, blending, polygonOffset 等)。</p>
 
-			<p>平滑/平滑阴影被作到法线. 你需要重置法线 buffer (见上).</p>
+			<p>平整/光滑阴影被作到法线。你需要重置法线 buffer(见上)。</p>
 
-			<p>在运行时无法轻松更改以下属性 (一旦material被渲染了一次):</p>
+			<p>在运行时无法轻松更改以下属性(一旦material被渲染了一次):</p>
 			<ul>
 				<li>uniforms的数量和类型</li>
 				<li>lights的数量和类型</li>
-				<li>存在与否
+				<li>是否存在
 					<ul>
 						<li>texture</li>
 						<li>fog</li>
@@ -183,42 +182,42 @@ geometry.tangentsNeedUpdate = true;
 				</li>
 			</ul>
 
-			<p>这些变化需要建立新的shader程序. 你需要设置</p>
+			<p>这些变化需要建立新的shader程序你需要设置</p>
 			<code>material.needsUpdate = true</code>
 
-			<p>请记住,这可能会非常缓慢并导致帧率的波动。 (特别是在Windows上,因为shader编译在directx中比opengl慢).</p>
+			<p>请记住,这可能会非常缓慢并导致帧率的波动。(特别是在Windows上,因为shader编译在directx中比opengl慢)。</p>
 
-			<p>为了获得更流畅的体验,您可以通过“虚拟”值(如零强度光,白色纹理或零密度雾)在一定程度上模拟这些功能的变化.</p>
+			<p>为了获得更流畅的体验,您可以通过“虚拟”值(如零强度光,白色纹理或零密度雾)在一定程度上模拟这些功能的变化</p>
 
-			<p>您可以自由更改用于几何块的材质,但是无法更改对象如何划分为块(根据面材料). </p>
+			<p>您可以自由更改用于几何块的材质,但是无法更改对象如何划分为块(根据面材料)</p>
 
 			<h3>如果你需要在运行时使用不同的材料配置:</h3>
-			<p>如果材料/块的数量很少,您可以事先预先划分物体(例如,人的头发/脸部/身体/上衣/裤子,汽车的前部/侧面/顶部/玻璃/轮胎/内部). </p>
+			<p>如果材料/块的数量很少,您可以事先预先划分物体(例如,人的头发/脸部/身体/上衣/裤子,汽车的前部/侧面/顶部/玻璃/轮胎/内部)</p>
 
 			<p>如果数量很大(例如,每个面可能有所不同),请考虑不同的解决方案,例如使用属性/纹理来驱动不同的每个面部外观。</p>
 
-			<h3>Examples:</h3>
+			<h3>例子:</h3>
 			[example:webgl_materials_cars WebGL / materials / cars]<br />
 			[example:webgl_postprocessing_dof WebGL / webgl_postprocessing / dof]
 		</div>
 
 
-		<h2>Textures(纹理)</h2>
+		<h2>纹理(Textures)</h2>
 		<div>
 			<p>如果更改了图像,画布,视频和数据纹理,则需要设置以下标志:</p>
 			<code>
 				texture.needsUpdate = true;
 			</code>
-			<p>Render targets update automatically.</p>
+			<p>渲染对象就会自动更新。</p>
 
-			<h3>Examples:</h3>
+			<h3>例子:</h3>
 			[example:webgl_materials_video WebGL / materials / video]<br />
 			[example:webgl_rtt WebGL / rtt]
 
 		</div>
 
 
-		<h2>Cameras(相机)</h2>
+		<h2>相机(Cameras)</h2>
 		<div>
 			<p>相机的位置和目标会自动更新。 如果你需要改变</p>
 			<ul>

+ 2 - 0
docs/manual/zh/introduction/How-to-use-WebGL2.html

@@ -99,6 +99,7 @@ var material = new THREE.ShaderMaterial( {
 
 		[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]<br />
 		[example:webgl2_materials_texture3d_volume WebGL2 / materials / texture3d / volume]<br />
+		[example:webgl2_multisampled_renderbuffers WebGL2 / multisampled renderbuffers]
 	</p>
 
 	<h2>支持的特性</h2>
@@ -108,6 +109,7 @@ var material = new THREE.ShaderMaterial( {
 		下列列表展现了在最新版本three.js中,已可用的特性的概览。
 		<ul>
 			<li>3D Textures</li>
+			<li>Multisampled Renderbuffers</li>
 		</ul>
 
 	</p>

+ 53 - 13
docs/manual/zh/introduction/Loading-3D-models.html

@@ -14,15 +14,14 @@
 	<br />
 
 	<p>
-	3D模型目前的有成千上万种格式可供选择,但每一种格式都具有不同的目的、用途以及复杂性。
+	目前,3D模型的格式有成千上万种可供选择,但每一种格式都具有不同的目的、用途以及复杂性。
 		虽然<a href="https://github.com/mrdoob/three.js/tree/dev/examples/js/loaders" target="_blank" rel="noopener">
-	three.js已经提供了多种导入工具</a>
-	但是选择正确的文件格式以及工作流程将可以节省很多时间,以及避免很多挫折。某些格式难以使用,或者实时体验效率低下,或者目前尚未得到完全支持。
+	three.js已经提供了多种导入工具</a>
+	但是选择正确的文件格式以及工作流程将可以节省很多时间,以及避免遭受很多挫折。某些格式难以使用,或者实时体验效率低下,或者目前尚未得到完全支持。
 	</p>
 
 	<p>
 		对大多数用户,本指南向你推荐了一个工作流程,并向你提供了一些当没有达到预期效果时的建议。
-
 	</p>
 
 	<h2>在开始之前</h2>
@@ -67,9 +66,50 @@
 		当glTF不可用的时候,诸如FBX、OBJ或者COLLADA等等其它广受欢迎的格式在Three.js中也是可以使用、并且定期维护的。
 	</p>
 
-	<h2>Loading</h2>
+	<h2>加载</h2>
+
+	<p>
+		three.js中默认仅包含了几个加载器(例如:[page:ObjectLoader])——其它加载器需要你分别地添加到页面中。
+		取决于你对构建工具的偏好,选择以下任意一种方式:
+	</p>
+
+	<code>
+		// global script
+		&lt;script src="GLTFLoader.js"&gt;&lt;/script&gt;
+
+		// commonjs
+		var THREE = window.THREE = require('three');
+		require('three/examples/js/loaders/GLTFLoader');
+	</code>
+
+	<p>
+		目前three.js示例不能作为ES modules (import &hellip; from '&hellip;')来使用。
+		这里讨论了一些解决方法:
+		<a href="https://github.com/mrdoob/three.js/issues/9562" target="_blank" rel="noopener">#9562</a>.
+	</p>
+
+	<p>
+		一旦你引入了一个加载器,你就已经准备好为场景添加模型了。不同加载器之间可能具有不同的语法 ——
+		当使用其它格式的时候请参阅该格式加载器的示例以及文档。对于glTF,基本用法类似:
+	</p>
+
+	<code>
+		var loader = new THREE.GLTFLoader();
+
+		loader.load( 'path/to/model.glb', function ( gltf ) {
+
+			scene.add( gltf.scene );
 
-	<p>TODO.</p>
+		}, undefined, function ( error ) {
+
+			console.error( error );
+
+		} );
+	</code>
+
+	<p>
+		请参阅[page:GLTFLoader GLTFLoader documentation]来深入了解详细信息。
+	</p>
 
 	<h2>故障排除</h2>
 
@@ -84,28 +124,28 @@
 		在Javascript的Console中查找错误,并确定当你调用<em>.load()</em>的时候,使用了<em>onError</em>回调函数来输出结果。
 		</li>
 		<li>
-		请在的应用程序中查看3D模型。对于glTF格式的模型来说,可以直接在下面的应用程序中进行查看:
+		请在其它的应用程序中查看3D模型。对于glTF格式的模型来说,可以直接在下面的应用程序中进行查看:
 			<a href="https://gltf-viewer.donmccurdy.com/" target="_blank" rel="noopener">three.js</a>和
 		<a href="http://sandbox.babylonjs.com/" target="_blank" rel="noopener">babylon.js</a>。
-	 如果该模型能够在一个或者更多应用程序里正确地呈现,请<a href="https://github.com/mrdoob/three.js/issues/new" target="_blank" rel="noopener">点击这里向three.js提交Bug报告</a>。
+	 如果该模型能够在一个或者多个应用程序中正确地呈现,请<a href="https://github.com/mrdoob/three.js/issues/new" target="_blank" rel="noopener">点击这里向three.js提交Bug报告</a>。
 	 如果模型不能在任意一个应用程序里显示,我们强烈鼓励你向我们提交Bug报告,并告知我们你的模型是使用哪一款应用程序创建的。
 
 		</li>
 		<li>
-		尝试将模型放大或缩小到原来的1000倍。许多模型的缩放比例各不相同,倘若摄像机位于相机内,则大型模型将可能不会显示。
+		尝试将模型放大或缩小到原来的1000倍。许多模型的缩放比例各不相同,如果摄像机位于模型内,则大型模型将可能不会显示。
 		</li>
 		<li>
-		在网络面板中查找失败的纹理贴图请求,像<em>C:\\Path\To\Model\texture.jpg</em>。使用相对于你的模型的文件路径,例如
-		<em>images/texture.jpg</em>——这或许需要在文本编辑器中来对模型文件进行修改。
+		在网络面板中查找失败的纹理贴图请求,比如说<em>C:\\Path\To\Model\texture.jpg</em>。载入贴图时,请使用相对于模型文件路径,例如
+		<em>images/texture.jpg</em> —— 这或许需要在文本编辑器中来对模型文件进行修改。
 		</li>
 	</ol>
 
 	<h2>请求帮助</h2>
 
 	<p>
-	倘若你已经尝试经历了以上故障排除的过程,但是你的模型仍然无法工作,寻求正确的方法来获得帮助将使您更快地获得解决方案。
+	如果你已经尝试经历了以上故障排除的过程,但是你的模型仍然无法工作,寻求正确的方法来获得帮助将使您更快地获得解决方案。
 您可以将您的问题发布到<a href="https://discourse.threejs.org/" target="_blank" rel="noopener">three.js forum</a>,
-	同时,尽可能将你的模型(或者一个简单的、具有相同问题的模型)包含在你能够使用的任何格式中,为其他人提供足够的信息,以便快速重现这个问题——最好是一个能够现场演示的Demo。
+	同时,尽可能将你的模型(或者一个简单的、具有相同问题的模型)包含在你能够使用的任何格式中,为其他人提供足够的信息,以便快速重现这个问题 —— 最好是一个能够现场演示的Demo。
 	</p>
 
 </body>

+ 14 - 14
docs/manual/zh/introduction/Matrix-transformations.html

@@ -8,24 +8,24 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		<h1>[name]</h1>
+		<h1>矩阵变换([name]</h1>
 
 		<p>
-				Three.js使用*matrix*编码3D变换 - 平移(位置),旋转和缩放。 [page:Object3D]的每个实例都有一个[page:Object3D.matrix matrix],用于存储该对象的位置,旋转和比例。 本页介绍如何更新对象的转换。
+				Three.js使用*matrix*编码3D变换 —— 平移(位置),旋转和缩放。
+				[page:Object3D]的每个实例都有一个[page:Object3D.matrix matrix],用于存储该对象的位置,旋转和比例。本页介绍如何更新对象的变换。
 		</p>
 
-		<h2>Convenience properties and *matrixAutoUpdate*(便利属性和 *matrixAutoUpdate*)</h2>
+		<h2>便利的属性和*matrixAutoUpdate*(Convenience properties and *matrixAutoUpdate*)</h2>
 
 		有两种方法可以更新对象的转换:
 		<ol>
 			<li>
-				修改对象的* position *,* quaternion *和* scale *属性,让three.js重新计算
-				来自这些属性的对象矩阵:
+				修改对象的*position*,*quaternion*和*scale*属性,让three.js重新计算来自这些属性的对象矩阵:
 				<code>
 				object.position.copy(start_position);
 				object.quaternion.copy(quaternion);
 				</code>
-				默认情况下,* matrixAutoUpdate *属性设置为true,并且将自动重新计算矩阵。
+				默认情况下,*matrixAutoUpdate*属性设置为true,并且将自动重新计算矩阵。
 如果对象是静态的,或者您希望在重新计算时手动控制,则可以通过将属性设置为false来获得更好的性能:
 				<code>
 				object.matrixAutoUpdate = false;
@@ -42,25 +42,25 @@
 				object.matrix.setPosition(start_position);
 				object.matrixAutoUpdate = false;
 				</code>
-				请注意,在这种情况下,* matrixAutoUpdate * <em>必须</em>设置为* false *,并且您应该确保<em>不</em>调用* updateMatrix *。 调用* updateMatrix *将破坏对矩阵所做的手动更改,从* position *,* scale *重新计算矩阵,依此类推。
+				请注意,在这种情况下,*matrixAutoUpdate* <em> 必须 </em>设置为*false*,并且您应该确保<em> 不 </em>调用*updateMatrix*。
+				调用*updateMatrix*将破坏对矩阵所做的手动更改,从*position*,*scale*重新计算矩阵,依此类推。
 			</li>
 		</ol>
 
-		<h2>Object and world matrices(对象和世界矩阵)</h2>
+		<h2>对象和世界矩阵(Object and world matrices)</h2>
 		<p>
-		对象的[page:Object3D.matrix matrix]将对象的转换<em> 相对于 </em>对象的[page:Object3D.parent parent]; 要在<em> 世界 </em>坐标中获取对象的转换,您必须访问该对象的[page:Object3D.matrixWorld]。
-		An object's [page:Object3D.matrix matrix] stores the object's transformation 
+		一个对象的[page:Object3D.matrix matrix]存储了该对象<em> 相对于 </em>其[page:Object3D.parent](父节点)的变换。要在<em> 世界 </em>坐标系中获取对象的转换,您必须访问该对象的[page:Object3D.matrixWorld]。
 		</p>
 		<p>
-		当父对象或子对象的转换发生更改时,可以通过调用[page:Object3D.updateMatrixWorld updateMatrixWorld]()来请求更新子对象的[page:Object3D.matrixWorld matrixWorld]。
+		当父对象或子对象的变换发生更改时,可以通过调用[page:Object3D.updateMatrixWorld updateMatrixWorld()]来请求更新子对象的[page:Object3D.matrixWorld matrixWorld]。
 		</p>
 
-		<h2>Rotation and Quaternion(旋转和四元数)</h2>
+		<h2>旋转和四元数(Rotation and Quaternion)</h2>
 		<p>
-		Three.js提供了两种表示3D旋转的方式:[page:Euler Euler angles]和[page:Quaternion Quaternions],以及两者之间的转换方法。 欧拉角受到称为“万向节锁定”的问题,其中某些配置可能失去一定程度的自由度(防止物体绕一个轴旋转)。 因此,对象旋转<em>始终</em>存储在对象的[page:Object3D.quaternion quaternion]中。
+		Three.js提供了两种表示3D旋转的方式:[page:Euler Euler angles](欧拉角)和[page:Quaternion Quaternions](四元数),以及两者之间的转换方法。 欧拉角有称为“万向节锁定”的问题,其中某些配置可能失去一定程度的自由度(防止物体绕一个轴旋转)。 因此,对象旋转<em> 始终 </em>存储在对象的[page:Object3D.quaternion quaternion]中。
 		</p>
 		<p>
-		该库的早期版本包含* useQuaternion *属性,当设置为false时,将导致对象的[page:Object3D.matrix矩阵]从欧拉角计算。 这种做法已被弃用 - 相反,您应该使用[page:Object3D.setRotationFromEuler setRotationFromEuler]方法,该方法将更新四元数。	
+		该库的早期版本包含*useQuaternion*属性,当设置为false时,将导致对象的[page:Object3D.matrix matrix]从欧拉角计算。这种做法已被弃用 - 作为代替,您应该使用[page:Object3D.setRotationFromEuler setRotationFromEuler]方法,该方法将更新四元数。
 		</p>
 
 	</body>

+ 7 - 7
docs/manual/zh/introduction/Useful-links.html

@@ -24,7 +24,7 @@
 		<p>
 			Three.js官方使用[link:http://stackoverflow.com/tags/three.js/info Stack Overflow]来处理帮助请求。
 			如果你需要一些帮助,这才是你所要去的地方。请<strong>一定不要</strong>在GitHub上提issue来寻求帮助。
-		
+
 		</p>
 
 		<h2>教程以及课程</h2>
@@ -100,7 +100,7 @@
 				maintained as part of the three.js repository, and always use the latest version of three.js.
 			</li>
 			<li>
-				[link:https://rawgit.com/mrdoob/three.js/dev/examples/ Official three.js dev branch examples]  -
+				[link:https://raw.githack.com/mrdoob/three.js/dev/examples/ Official three.js dev branch examples]  -
 				Same as the above, except these use the dev branch of three.js,	and are used to check that
 				everything is working as three.js being is developed.
 			</li>
@@ -109,7 +109,7 @@
 	 <h2>工具</h2>
 	 <ul>
 		 <li>
-			[link:http://www.physgl.org/ physgl.org] - javascript front-end with wrappers to three.js, to bring WebGL
+			[link:http://www.physgl.org/ physgl.org] - JavaScript front-end with wrappers to three.js, to bring WebGL
  			graphics to students learning physics and math.
 		 </li>
 		 <li>
@@ -123,11 +123,11 @@
 			[link:http://idflood.github.io/ThreeNodes.js/ ThreeNodes.js].
 		</li>
 	 </ul>
-		
+
 	<h2>WebGL参考</h2>
 	 <ul>
 		 <li>
-			[link:https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf] - Reference of all WebGL and GLSL keywords, terminology, syntex and definations.
+			[link:https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf] - Reference of all WebGL and GLSL keywords, terminology, syntax and definitions.
 		 </li>
 	 </ul>
 
@@ -138,7 +138,7 @@
 
 	 <ul>
 		<li>
-			<a href="https://www.youtube.com/watch?v=Dir4KO9RdhM">AlterQualia at WebGL Camp 3</a>
+			<a href="https://www.youtube.com/watch?v=Dir4KO9RdhM" target="_blank">AlterQualia at WebGL Camp 3</a>
 		</li>
 		<li>
 			[link:http://yomotsu.github.io/threejs-examples/ Yomotsus Examples] - a collection of examples using three.js r45.
@@ -153,7 +153,7 @@
 			[link:http://bkcore.com/blog/general/adobe-user-group-nl-talk-video-hexgl.html Fast HTML5 game development using three.js] by [link:https://github.com/BKcore BKcore] (video).
 		</li>
 		<li>
-			<a href="http://www.youtube.com/watch?v=VdQnOaolrPA">Trigger Rally</a>  by [link:https://github.com/jareiko jareiko] (video).
+			<a href="https://www.youtube.com/watch?v=VdQnOaolrPA" target="_blank">Trigger Rally</a>  by [link:https://github.com/jareiko jareiko] (video).
 		</li>
 		<li>
 			[link:http://blackjk3.github.io/threefab/ ThreeFab] - scene editor, maintained up until around three.js r50.

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