瀏覽代碼

Merge pull request #1 from mrdoob/dev

Update the changes form the origin repo.
gogoend 6 年之前
父節點
當前提交
52229e7522
共有 100 個文件被更改,包括 3118 次插入3116 次删除
  1. 1 1
      .github/ISSUE_TEMPLATE.md
  2. 1 1
      .travis.yml
  3. 3 3
      build/three.js
  4. 314 313
      build/three.min.js
  5. 3 3
      build/three.module.js
  6. 4 4
      docs/api/en/core/BufferAttribute.html
  7. 5 0
      docs/api/en/core/Layers.html
  8. 14 4
      docs/api/en/lights/PointLight.html
  9. 14 4
      docs/api/en/lights/SpotLight.html
  10. 12 8
      docs/api/en/loaders/JSONLoader.html
  11. 1 1
      docs/api/en/textures/Texture.html
  12. 8 8
      docs/api/zh/animation/AnimationClip.html
  13. 21 30
      docs/api/zh/animation/AnimationMixer.html
  14. 20 23
      docs/api/zh/animation/AnimationObjectGroup.html
  15. 11 9
      docs/api/zh/animation/AnimationUtils.html
  16. 58 91
      docs/api/zh/animation/KeyframeTrack.html
  17. 12 13
      docs/api/zh/animation/PropertyBinding.html
  18. 17 18
      docs/api/zh/animation/PropertyMixer.html
  19. 8 8
      docs/api/zh/extras/objects/ImmediateRenderObject.html
  20. 12 20
      docs/api/zh/lights/shadows/DirectionalLightShadow.html
  21. 25 31
      docs/api/zh/lights/shadows/LightShadow.html
  22. 13 24
      docs/api/zh/lights/shadows/SpotLightShadow.html
  23. 24 37
      docs/api/zh/materials/LineBasicMaterial.html
  24. 21 26
      docs/api/zh/materials/LineDashedMaterial.html
  25. 273 330
      docs/api/zh/materials/Material.html
  26. 44 70
      docs/api/zh/materials/MeshBasicMaterial.html
  27. 29 47
      docs/api/zh/materials/MeshDepthMaterial.html
  28. 55 88
      docs/api/zh/materials/MeshLambertMaterial.html
  29. 17 23
      docs/api/zh/materials/MeshNormalMaterial.html
  30. 67 124
      docs/api/zh/materials/MeshPhongMaterial.html
  31. 21 30
      docs/api/zh/materials/MeshPhysicalMaterial.html
  32. 80 141
      docs/api/zh/materials/MeshStandardMaterial.html
  33. 17 21
      docs/api/zh/materials/MeshToonMaterial.html
  34. 17 20
      docs/api/zh/materials/PointsMaterial.html
  35. 13 18
      docs/api/zh/materials/RawShaderMaterial.html
  36. 112 174
      docs/api/zh/materials/ShaderMaterial.html
  37. 15 18
      docs/api/zh/materials/ShadowMaterial.html
  38. 19 20
      docs/api/zh/materials/SpriteMaterial.html
  39. 59 86
      docs/api/zh/math/Box2.html
  40. 11 11
      docs/api/zh/math/interpolants/CubicInterpolant.html
  41. 9 9
      docs/api/zh/math/interpolants/DiscreteInterpolant.html
  42. 11 11
      docs/api/zh/math/interpolants/LinearInterpolant.html
  43. 11 11
      docs/api/zh/math/interpolants/QuaternionLinearInterpolant.html
  44. 38 47
      docs/api/zh/renderers/WebGLRenderTarget.html
  45. 27 31
      docs/api/zh/renderers/WebGLRenderTargetCube.html
  46. 153 186
      docs/api/zh/renderers/WebGLRenderer.html
  47. 8 0
      docs/examples/loaders/BabylonLoader.html
  48. 9 1
      docs/examples/loaders/GLTFLoader.html
  49. 5 4
      docs/examples/loaders/MTLLoader.html
  50. 8 0
      docs/examples/loaders/PCDLoader.html
  51. 8 0
      docs/examples/loaders/PDBLoader.html
  52. 8 0
      docs/examples/loaders/PRWMLoader.html
  53. 7 0
      docs/examples/loaders/SVGLoader.html
  54. 8 0
      docs/examples/loaders/TGALoader.html
  55. 2 3
      docs/index.css
  56. 29 5
      docs/index.html
  57. 839 410
      docs/list.js
  58. 84 0
      docs/manual/en/introduction/How-to-create-VR-content.html
  59. 3 3
      docs/manual/en/introduction/WebGL-compatibility-check.html
  60. 48 68
      docs/manual/zh/introduction/Animation-system.html
  61. 43 49
      docs/manual/zh/introduction/How-to-update-things.html
  62. 17 16
      docs/manual/zh/introduction/Matrix-transformations.html
  63. 4 0
      editor/index.html
  64. 1 1
      editor/js/Loader.js
  65. 11 7
      editor/js/Sidebar.Settings.Shortcuts.js
  66. 3 3
      examples/canvas_camera_orthographic.html
  67. 29 30
      examples/canvas_geometry_birds.html
  68. 2 4
      examples/canvas_geometry_cube.html
  69. 2 4
      examples/canvas_geometry_hierarchy.html
  70. 2 4
      examples/canvas_geometry_nurbs.html
  71. 9 12
      examples/canvas_geometry_panorama.html
  72. 9 11
      examples/canvas_geometry_panorama_fisheye.html
  73. 58 62
      examples/canvas_geometry_shapes.html
  74. 4 6
      examples/canvas_geometry_text.html
  75. 3 2
      examples/canvas_interactive_cubes.html
  76. 13 12
      examples/canvas_interactive_cubes_tween.html
  77. 9 6
      examples/canvas_interactive_voxelpainter.html
  78. 2 2
      examples/canvas_lights_pointlights.html
  79. 6 7
      examples/canvas_lines.html
  80. 2 1
      examples/canvas_lines_colors.html
  81. 1 1
      examples/canvas_lines_dashed.html
  82. 4 18
      examples/canvas_materials.html
  83. 7 9
      examples/canvas_materials_video.html
  84. 3 4
      examples/canvas_morphtargets_horse.html
  85. 6 8
      examples/canvas_particles_floor.html
  86. 3 1
      examples/canvas_particles_random.html
  87. 3 1
      examples/canvas_particles_sprites.html
  88. 1 1
      examples/canvas_particles_waves.html
  89. 1 1
      examples/canvas_performance.html
  90. 3 4
      examples/canvas_sandbox.html
  91. 3 5
      examples/css2d_label.html
  92. 31 10
      examples/css3d_molecules.html
  93. 1 3
      examples/css3d_orthographic.html
  94. 8 9
      examples/css3d_panorama.html
  95. 6 7
      examples/css3d_panorama_deviceorientation.html
  96. 6 6
      examples/css3d_periodictable.html
  97. 2 2
      examples/css3d_sprites.html
  98. 10 3
      examples/css3d_youtube.html
  99. 4 3
      examples/files.js
  100. 0 91
      examples/js/Detector.js

+ 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
-- [ ] r96
+- [ ] r97
 - [ ] ...
 
 ##### Browser

+ 1 - 1
.travis.yml

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

文件差異過大導致無法顯示
+ 3 - 3
build/three.js


文件差異過大導致無法顯示
+ 314 - 313
build/three.min.js


文件差異過大導致無法顯示
+ 3 - 3
build/three.module.js


+ 4 - 4
docs/api/en/core/BufferAttribute.html

@@ -35,12 +35,12 @@
 		attribute is storing a 3-component vector (such as a position, normal, or color), then itemSize should be 3.
 		<br /><br />
 
-		[page:Boolean normalized] -- (optional) Indicates how the underlying data in the buffer maps
-		to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance of
-		UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array
+		[page:Boolean normalized] -- (optional) Applies to integer data only. Indicates how the underlying data
+		in the buffer maps to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance
+		of UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array
 		 data will be mapped to 0.0f - +1.0f in the GLSL attribute. An Int16Array (signed) would map
 		 from -32767 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values
-		 will be converted to floats which contain the exact value, i.e. 32767 becomes 32767.0f.
+		 will be converted to floats unmodified, i.e. 32767 becomes 32767.0f.
 		</p>
 
 		<h2>Properties</h2>

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

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

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

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

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

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

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

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

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

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

+ 8 - 8
docs/api/zh/animation/AnimationClip.html

@@ -11,7 +11,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			动画剪辑(AnimationClip)是一个可重用的关键帧轨集,它代表动画。<br /><br />
+			动画剪辑(AnimationClip)是一个可重用的关键帧轨集,它代表动画。<br /><br />
 
 			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
 		</p>
@@ -24,7 +24,7 @@
 		<p>
 			[page:String name] - 此剪辑的名称<br />
 			[page:Number duration] - 持续时间 (单位秒). 如果传入负数, 持续时间将会从传入的数组中计算得到。<br />
-			[page:Array tracks] - 一个由关键帧轨([page:KeyframeTrack KeyframeTracks])组成的数组。<br /><br />
+			[page:Array tracks] - 一个由关键帧轨([page:KeyframeTrack KeyframeTracks])组成的数组。<br /><br />
 
 			说明: 与其直接调用构造函数实例化一个动画剪辑, 不如使用其静态方法中的一个来创建:
 			用JSON ([page:.parse parse]), 用变形目标序列([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence],
@@ -38,7 +38,7 @@
 
 		<h3>[property:Number duration]</h3>
 		<p>
-			剪辑的持续时间 (单位秒). 可以通过[page:.resetDuration resetDuration]从轨数组([page:.tracks tracks])计算出来。
+			剪辑的持续时间 (单位秒). 可以通过[page:.resetDuration resetDuration]从轨数组([page:.tracks tracks])计算出来。
 
 		</p>
 
@@ -49,7 +49,7 @@
 
 		<h3>[property:Array tracks]</h3>
 		<p>
-            一个包含该剪辑中有动画的所有属性的关键帧轨([page:KeyframeTrack])的数组。
+            一个包含该剪辑中有动画的所有属性的关键帧轨([page:KeyframeTrack])的数组。
 		</p>
 
 		<h3>[property:String uuid]</h3>
@@ -64,24 +64,24 @@
 
 		<h3>[method:this optimize]()</h3>
 		<p>
-            通过移除等效的顺序键(在变形目标序列中很常见)来优化每一个轨
+            通过移除等效的顺序键(在变形目标序列中很常见)来优化每一个轨
 
 		</p>
 
 		<h3>[method:this resetDuration]()</h3>
 		<p>
-			将剪辑的持续时间([page:.duration duration])设为最长的关键帧轨([page:KeyframeTrack])的持续时间。
+			将剪辑的持续时间([page:.duration duration])设为最长的关键帧轨([page:KeyframeTrack])的持续时间。
 			.
 		</p>
 
 		<h3>[method:this trim]()</h3>
 		<p>
-			修剪所有的轨到该剪辑的持续时间。
+			修剪所有的轨到该剪辑的持续时间。
 		</p>
 
 		<h3>[method:Boolean validate]()</h3>
 		<p>
-            对剪辑中的每个轨执行最小验证。如果所有轨道都有效,返回true。
+            对剪辑中的每个轨执行最小验证。如果所有轨道都有效,返回true。
 		</p>
 
 

+ 21 - 30
docs/api/zh/animation/AnimationMixer.html

@@ -11,98 +11,89 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			The AnimationMixer is a player for animations on a particular object in the scene. When
-			multiple objects in the scene are animated independently, one AnimationMixer may be used for
-			each object.<br /><br />
+            动画混合器是用于场景中特定对象的动画的播放器。当场景中的多个对象独立动画时,每个对象都可以使用同一个动画混合器。<br /><br />
 
-			For an overview of the different elements of the three.js animation system see the
-			"Animation System" article in the "Next Steps" section of the manual.
+			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]( [param:Object3D rootObject] )</h3>
 		<p>
-			[page:Object3D rootObject] - the object whose animations shall be played by this mixer.<br />
+			[page:Object3D rootObject] - 混合器播放的动画所属的对象<br />
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 
 		<h3>[property:Number time]</h3>
 		<p>
-			The global mixer time (in seconds; starting with 0 on the mixer's creation).
+			全局的混合器时间(单位秒; 混合器创建的时刻记作0时刻)
 		</p>
 
 		<h3>[property:Number timeScale]</h3>
 		<p>
-			A scaling factor for the global [page:.time mixer time].<br /><br />
+			全局时间([page:.time mixer time])的比例因子<br /><br />
 
-			Note: Setting the mixer's timeScale to 0 and later back to 1 is a possibility to pause/unpause
-			all actions that are controlled by this mixer.
+			说明: 将混合器的时间比例设为0, 稍后再设置为1,可以暂停/取消暂停由该混合器控制的所有动作。
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:AnimationAction clipAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
 		<p>
-			Returns an [page:AnimationAction] for the passed clip, optionally using a root object different
-			from the mixer's default root. The first parameter can be either an [page:AnimationClip] object
-			or the name of an AnimationClip.<br /><br />
+			返回所传入的剪辑参数的[page:AnimationAction], 根对象参数可选,默认值为混合器的默认根对象。第一个参数可以是动画剪辑([page:AnimationClip])对象或者动画剪辑的名称。<br /><br />
 
-			If an action fitting the clip and root parameters doesn't yet exist, it will be created by
-			this method. Calling this method several times with the same clip and root parameters always
-			returns the same clip instance.
+			如果不存在符合传入的剪辑和根对象这两个参数的动作, 该方法将会创建一个。传入相同的参数多次调用将会返回同一个剪辑实例。
 		</p>
 
 		<h3>[method:AnimationAction existingAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
 		<p>
-			Returns an existing [page:AnimationAction] for the passed clip, optionally using a root object
-			different from the mixer's default root.<br /><br />
+			返回传入剪辑的已有[page:AnimationAction], 根对象参数可选,默认值为混合器的默认根对象。<br /><br />
 
-			The first parameter can be either an [page:AnimationClip] object or the name of an AnimationClip.
+			第一个参数可以是动画剪辑([page:AnimationClip])对象或者动画剪辑的名称。
 		</p>
 
 		<h3>[method:Object3D getRoot]()</h3>
 		<p>
-			Returns this mixer's root object.
+			返回混合器的根对象
 		</p>
 
 		<h3>[method:AnimationMixer stopAllAction]()</h3>
 		<p>
-			Deactivates all previously scheduled actions on this mixer.
+			停用混合器上所有预定的动作
 		</p>
 
 		<h3>[method:AnimationMixer update]([param:Number deltaTimeInSeconds]) </h3>
 		<p>
-			Advances the global mixer time and updates the animation.<br /><br />
+			推进混合器时间并更新动画 <br /><br />
 
-			This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
+			通常在渲染循环中完成, 传入按照混合器的时间比例([page:.timeScale timeScale])缩放过的[page:Clock.getDelta clock.getDelta]
 		</p>
 
 		<h3>[method:null uncacheClip]([param:AnimationClip clip])</h3>
 
 		<p>
-			Deallocates all memory resources for a clip.
+			释放剪辑的所有内存资源
 		</p>
 
 		<h3>[method:null uncacheRoot]([param:Object3D root]) </h3>
 		<p>
-			Deallocates all memory resources for a root object.
+			释放根对象的所有内存资源
 		</p>
 
 		<h3>[method:null uncacheAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
 		<p>
-			Deallocates all memory resources for an action.
+			释放动作的所有内存资源
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 20 - 23
docs/api/zh/animation/AnimationObjectGroup.html

@@ -10,74 +10,71 @@
 	<body>
 		<h1>[name]</h1>
 
-		<p class="desc">A group of objects that receives a shared animation state.<br /><br />
+		<p class="desc">接收共享动画状态的一组对象。<br /><br />
 
-			For an overview of the different elements of the three.js animation system see the
-			"Animation System" article in the "Next Steps" section of the manual.
+			在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
 		</p>
 
-		<h2>Usage:</h2>
+		<h2>用法:</h2>
 
 		<p class="desc">
-			Add objects you would otherwise pass as 'root' to the constructor or the [page:AnimationMixer.clipAction clipAction]
-			method of [page:AnimationMixer AnimationMixer] and instead pass this object as 'root'.<br /><br />
+            将本来要作为根对象传入构造器或者动画混合器([page:AnimationMixer AnimationMixer])的[page:AnimationMixer.clipAction clipAction]方法中的对象加入组中,并将这个组对象作为根对象传递。
+			<br /><br />
 
-			Note that objects of this class appear as one object to the mixer,
-			so cache control of the individual objects must be done	on the group.
+		    注意,这个类的实例作为混合器中的一个对象,因此,必须对组内的单个对象做缓存控制。
 		</p>
 
 
-		<h2>Limitations</h2>
+		<h2>限制</h2>
 		<p class="desc">
-			The animated properties must be compatible among all objects in the group.<br /><br />
+			动画属性必须在组中的所有对象之间兼容。<br /><br />
 
-			A single property can either be controlled through a target group or directly, but not both.
+			单个属性可以通过目标组控制或者直接控制,但不能两者同时。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
-		[page:object obj] - an abitrary number of meshes that share the same animation state.<br />
+		[page:object obj] - 共享同一动画状态的任意数量的网格<br />
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 
 		<h3>[property:object stats]</h3>
 		<p>
-			An object that contains some informations of this *AnimationObjectGroup* (total number, number
-			in use, number of bindings per object)
+			一个包含此动画对象组(AnimationObjectGroup)的一些信息的对象 (总数, 使用中的数量,绑定到每个对象上的数量)
+
 		</p>
 
 		<h3>[property:String uuid]</h3>
 		<p>
-			The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this
-			*AnimationObjectGroup*. It gets automatically assigned and shouldn't be edited.
+			这个动画对象组(AnimationObjectGroup)的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]。它是自动分配的,不可被编辑。
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:null add]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
 		<p>
-			Adds an arbitrary number of objects to this *AnimationObjectGroup*.
+			将任意数量的对象添加到这个动画对象组(AnimationObjectGroup)。
 		</p>
 
 		<h3>[method:null remove]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
 		<p>
-			Removes an arbitrary number of objects from this *AnimationObjectGroup*.
+			将任意数量的对象从这个动画对象组(AnimationObjectGroup)中删除。
 		</p>
 
 		<h3>[method:null uncache]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
 		<p>
-			Deallocates all memory resources for the passed objects of this *AnimationObjectGroup*.
+			释放此动画对象组(AnimationObjectGroup)传递的对象的所有内存资源
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 11 - 9
docs/api/zh/animation/AnimationUtils.html

@@ -11,45 +11,47 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-		An object with various functions to assist with animations, used internally.
+            一个提供各种动画辅助方法的对象,内部使用。
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:Array arraySlice]( array, from, to )</h3>
 		<p>
-		This is the same as  Array.prototype.slice, but also works on typed arrays.
+		和Array.prototype.slice作用一样, 但也适用于类型化数组.
 		</p>
 
 		<h3>[method:Array convertArray]( array, type, forceClone )</h3>
 		<p>
-		Converts an array to a specific type.
+            将数组转换为某种特定类型。
 		</p>
 
 		<h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName  )</h3>
 		<p>
-		Used for parsing AOS keyframe formats.
+            用于解析AOS关键帧格式。
 		</p>
 
 		<h3>[method:Array getKeyframeOrder]( times )</h3>
 		<p>
-		Returns an array by which times and values can be sorted.
+            返回一个数组,时间和值可以根据此数组排序。
 		</p>
 
 		<h3>[method:Boolean isTypedArray]( object )</h3>
 		<p>
-		Returns *true* if the object is a typed array.
+            如果该对象是类型化数组,返回*true*
+
 		</p>
 
 		<h3>[method:Array sortedArray]( values, stride, order )</h3>
 		<p>
-		Sorts the array previously returned by [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
+            将[page:AnimationUtils.getKeyframeOrder getKeyframeOrder]方法返回的数组排序。
+
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 58 - 91
docs/api/zh/animation/KeyframeTrack.html

@@ -12,39 +12,31 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			A KeyframeTrack is a timed sequence of [link:https://en.wikipedia.org/wiki/Key_frame keyframes],
-			which are composed of lists of times and related values, and which are used to animate a
-			specific property of an object.
+			关键帧轨道(KeyframeTrack)是关键帧([link:https://en.wikipedia.org/wiki/Key_frame keyframes])的定时序列,
+			它由时间和相关值的列表组成, 用来让一个对象的某个特定属性动起来。
 		</p>
 
 		<p>
-			For an overview of the different elements of the three.js animation system see the
-			"Animation System" article in the "Next Steps" section of the manual.
+            在使用手册的“下一步”章节中,“动画系统”一文对three.js动画系统中的不同元素作出了概述
 		</p>
 
 		<p>
-			In contrast to the animation hierarchy of the
-			[link:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3 JSON model format] a
-			*KeyframeTrack* doesn't store its single keyframes as objects in a "keys" array (holding the
-			times and the values for each frame together in one place).
+            和[link:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3 JSON model format]的动画层级相反,
+            关键帧轨道(KeyframeTrack)不会将单帧作为对象存储在“key”数组(一个存有每一帧的时间和值的地方)中。
+
 		</p>
 
 		<p>
-			Instead of this there are always two arrays in a *KeyframeTrack*: the [page:.times times] array
-			stores the time values for all keyframes of this track in sequential order, and the
-			[page:.values values] array contains the corresponding changing values of the animated property.
+            关键帧轨道(KeyframeTrack)中总是存在两个数组:[page:.times times]数组按顺序存储该轨道的所有关键帧的时间值,而[page:.values values]数组包含动画属性的相应更改值。
 		</p>
 
 		<p>
-			A single value, belonging to a certain point of time, can not only be a simple number, but (for
-			example) a vector (if a position is animated) or a quaternion (if a rotation is animated). For
-			this reason the values array (which is a flat array, too) might be three or four times as long as the
-			times array.
+            值数组中的每一个成员,属于某一特定时间点,不仅可以是一个简单的数字,还可以是(比如)一个向量(如果是位置动画)或者是一个四元数(如果是旋转动画)。
+            因此,值数组(也是一个平面阵列)的长度可能是时间数组的三四倍。
 		</p>
 
 		<p>
-			Corresponding to the different possible types of animated values there are several subclasses of
-			*KeyframeTrack*, inheriting the most properties and methods:
+            与不同类型的动画值对应,存在若干关键帧轨道(KeyframeTrack)的子类,继承了它大多数属性和方法:
 		</p>
 
 		<ul>
@@ -57,206 +49,181 @@
 		</ul>
 
 		<p>
-			Some examples of how to manually create [page:AnimationClip AnimationClips] with different sorts
-			of KeyframeTracks can be found in the [link:https://threejs.org/examples/js/AnimationClipCreator.js]
-			file.
+            可以在[link:https://threejs.org/examples/js/AnimationClipCreator.js]文件中找到用不同类型的关键帧轨道创建动画剪辑([page:AnimationClip AnimationClips])的示例。
 		</p>
 
 		<p>
-			Since explicit values are only specified for the discrete points of time stored in the times array,
-			all values in between have to be interpolated.
+            由于显式值仅针对存储在时间数组中的离散时间点指定,因此必须在两个时间点之间进行插值
 		</p>
 
 		<p>
-			The track's name is important for the connection of this track with a specific property of the
-			animated node (done by [page:PropertyBinding]).
+            轨道的名称对于这个轨道与动画节点的特定属性的连接(由[page:PropertyBinding]完成)很重要。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]( [param:String name], [param:Array times], [param:Array values], [param:Constant interpolation] )</h3>
 		<p>
-			[page:String name] - the identifier for the *KeyframeTrack*.<br />
-			[page:Array times] - an array of keyframe times, converted internally to a
+			[page:String name] - 关键帧轨道(KeyframeTrack)的标识符.<br />
+			[page:Array times] - 关键帧的时间数组, 被内部转化为
 			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
-			[page:Array values] - an array with the values related to the times array, converted internally to a
+			[page:Array values] - 与时间数组中的时间点相关的值组成的数组, 被内部转化为
 			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
-			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Constant interpolation] - 使用的插值类型。 参见
 			[page:Animation Animation Constants] for possible values. Default is [page:Animation InterpolateLinear].
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 
 		<h3>[property:String name]</h3>
 		<p>
-			The track's name can refer to [page:Geometry.morphTargets morph targets] or
-			[page:SkinnedMesh bones] or possibly other values within an animated object. See
-			[page:PropertyBinding.parseTrackName] for the forms of strings that can be parsed for property
-			binding:
+            轨道的名称可以指动画对象中的变形目标([page:Geometry.morphTargets morph targets])、骨骼([page:SkinnedMesh bones])或可能的其他值
+			查看[page:PropertyBinding.parseTrackName]可获知哪些形式的字符串可以解析出绑定的属性:
 		</p>
-
 		<p>
-			The name can specify the node either using its name or its uuid (although it needs to be in the
-			subtree of the scene graph node passed into the mixer). Or, if the track name starts with a dot,
-			the track applies to the root node that was passed into the mixer.
+            可以使用节点名称或uuid(尽管它需要位于传递到混合器的场景图节点的子树中)引用到某节点。或者, 如果轨道名称的首字符是点,
+			该轨道会应用到传入到混合器的根节点上。
 		</p>
 
 		<p>
-			Usually after the node a property will be specified directly. But you can also specify a
-			subproperty, such as .rotation[x], if you just want to drive the X component of the rotation
-			via a float track.
+			通常,在该节点之后会直接指定一个属性。 但是也可以再指定一个子属性, 例如 如果只是想通过浮动轨道使X组件旋转,可使用 .rotation[x]。
 		</p>
 
 		<p>
-			You can also specify bones or multimaterials by using an object name, for example:
-			.bones[R_hand].scale; the red channel of the diffuse color of the fourth material in a
-			materials array - as a further example - can be accessed with .materials[3].diffuse[r].
+            还可以使用对象名称来指定骨骼或多材质,例如:.bones[R_hand].scale;再比如,材料数组中的第四个材料的漫反射颜色的红通道可以通过 .materials[3].diffuse[r]访问到。
 		</p>
 
 		<p>
-			PropertyBinding will also resolve morph target names, for example: .morphTargetInfluences[run].
+			属性绑定也会解析变形目标名称, 例如: .morphTargetInfluences[run]
 		</p>
 
 		<p>
-			Note: The track's name does not necessarily have to be unique. Multiple tracks can drive the same
-			property. The result should be based on a weighted blend between the multiple tracks according to
-			the weights of their respective actions.
+			说明: 轨道名称不一定得唯一。 多个轨道可驱动统一属性, 此时结果应该基于多个轨道之间根据其各自动作的权重的加权混合。
 		</p>
 
 		<h3>[property:Float32Array times]</h3>
 		<p>
-			A [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
-			converted from the times array which is passed in the constructor.
+			一个[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array]类型的值,由传入构造器中时间数组参数转化而来。
 		</p>
 
 		<h3>[property:Float32Array values]</h3>
 		<p>
-			A [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
-			converted from the values array which is passed in the constructor.
+			一个[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array]类型的值,
+			由传入构造器中值数组参数转化而来
 		</p>
 
 		<h3>[property:Constant DefaultInterpolation]</h3>
 		<p>
-			The default interpolation type: [page:Animation InterpolateLinear].
+			默认的参数插值类型: [page:Animation InterpolateLinear].
 		</p>
 
 		<h3>[property:Constant TimeBufferType ]</h3>
 		<p>
 			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
-			the type of the buffer internally used for the times.
+			内部用于时间数组的缓冲区的类型
 		</p>
 
 		<h3>[property:Constant ValueBufferType ]</h3>
 		<p>
 			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
-			the type of the buffer internally used for the values.
+			内部用于值数组的缓冲区的类型
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:null createInterpolant]()</h3>
 		<p>
-			Creates a [page:LinearInterpolant LinearInterpolant], [page:CubicInterpolant CubicInterpolant]
-			or [page:DiscreteInterpolant DiscreteInterpolant], depending on the value of the interpolation
-			parameter passed in the constructor.
+			根据传入构造器中的插值类型参数,创建线性插值([page:LinearInterpolant LinearInterpolant]),立方插值([page:CubicInterpolant CubicInterpolant])或离散插值
+			([page:DiscreteInterpolant DiscreteInterpolant])
 		</p>
 
 		<h3>[method:null getInterpolation]()</h3>
 		<p>
-			Returns the interpolation type.
+			返回插值类型
 		</p>
 
 		<h3>[method:Number getValueSize]()</h3>
 		<p>
-			Returns the size of each value (that is the length of the [page:.values values] array divided
-			by the length of the [page:.times times] array).
+			返回每个值的大小(即[page:.values values]数组的长度除以[page:.times times]数组的长度
+
 		</p>
 
 		<h3>[method:DiscreteInterpolant InterpolantFactoryMethodDiscrete]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
 		<p>
-			Creates a new [page:DiscreteInterpolant DiscreteInterpolant] from the
-			[page:KeyframeTrack.times times] and [page:KeyframeTrack.times values]. A Float32Array can be
-			passed which will receive the results. Otherwise a new array with the appropriate size will be
-			created automatically.
+            根据时间([page:KeyframeTrack.times times])和值([page:KeyframeTrack.times values])创建一个新的离散插值([page:DiscreteInterpolant DiscreteInterpolant])。
+            可传入一个Float32Array类型的变量来接收结果, 否则会自动创建一个长度适宜的新数组。
 		</p>
 
 		<h3>[method:null InterpolantFactoryMethodLinear]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
 		<p>
-			Creates a new [page:LinearInterpolant LinearInterpolant] from the
-			[page:KeyframeTrack.times times] and [page:KeyframeTrack.times values]. A Float32Array can be
-			passed which will receive the results. Otherwise a new array with the appropriate size will be
-			created automatically.
+            根据时间([page:KeyframeTrack.times times])和值([page:KeyframeTrack.times values])创建一个新的线性插值([page:LinearInterpolant LinearInterpolant])。
+            可传入一个Float32Array类型的变量来接收结果, 否则会自动创建一个长度适宜的新数组。
 		</p>
 
 		<h3>[method:null InterpolantFactoryMethodSmooth]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
 		<p>
-			Create a new [page:CubicInterpolant CubicInterpolant] from the
-			[page:KeyframeTrack.times times] and [page:KeyframeTrack.times values]. A Float32Array can be
-			passed which will receive the results. Otherwise a new array with the appropriate size will be
-			created automatically.
+            根据时间([page:KeyframeTrack.times times])和值([page:KeyframeTrack.times values])创建一个新的立方插值([page:CubicInterpolant CubicInterpolant])。
+            可传入一个Float32Array类型的变量来接收结果, 否则会自动创建一个长度适宜的新数组。
 		</p>
 
 		<h3>[method:this optimize]()</h3>
 		<p>
-			Removes equivalent sequential keys, which are common in morph target sequences.
+            删除等效的顺序键,这些键在变形目标序列中很常见。
 		</p>
 
 		<h3>[method:this scale]()</h3>
 		<p>
-			Scales all keyframe times by a factor.<br /><br />
+            缩放所有关键帧的时间。<br /><br />
 
-			Note: This is useful, for example, for conversions to a certain rate of frames per seconds (as it
-			is done internally by
-			[page:AnimationClip.CreateFromMorphTargetSequence animationClip.CreateFromMorphTargetSequence]).
+			说明: 这个方法很有用,例如, 可用于转化为某一特定帧率(正如[page:AnimationClip.CreateFromMorphTargetSequence animationClip.CreateFromMorphTargetSequence]内部所做的一样)。
 		</p>
 
 		<h3>[method:this setInterpolation]( [param:Constant interpolationType] )</h3>
 		<p>
-			Sets the interpolation type. See [page:Animation Animation Constants] for choices.
+			设置插值类型。 参阅[page:Animation Animation Constants]以供选择。
 		</p>
 
 		<h3>[method:this shift]( [param:Number timeOffsetInSeconds] )</h3>
 		<p>
-			Moves all keyframes either forward or backward in time.
+            及时删除之前或之后的所有关键帧。
 		</p>
 
 
 		<h3>[method:this trim]( [param:Number startTimeInSeconds], [param:Number endTimeInSeconds] )</h3>
 		<p>
-			Removes keyframes before *startTime* and after *endTime*,
-			without changing any values within the range [*startTime*, *endTime*].
+			删除开始时间(startTime)之前以及结束时间(endTime)之后的关键帧,不改变[*startTime*, *endTime*]范围内的任何值。
 		</p>
 
 		<h3>[method:Boolean validate]()</h3>
 		<p>
-			Performs minimal validation on the tracks. Returns true if valid.
+            在轨道上执行最小验证,有效则返回true
 		</p>
 
 		<p>
-			This method logs errors to the console, if a track is empty, if the [page:.valueSize value size] is not valid, if an item
-			in the [page:.times times] or [page:.values values] array is not a valid number or if the items in the *times* array are out of order.
+			如果出现以下情况,该方法会在控制台输出错误日志: 轨道为空; [page:.valueSize value size]值不可靠;
+			[page:.times times]数组或[page:.values values]数组中的元素不是数字;*times*数组中的元素乱序。
 		</p>
 
-		<h2>Static Methods</h2>
+		<h2>静态方法</h2>
 
 		<h3>[method:KeyframeTrack parse]( [param:JSON json] )</h3>
 		<p>
-		Parses a JSON object and returns a new keyframe track of the correct type.
+            解析JSON对象并返回一个正确类型的新关键帧轨道。
 		</p>
 
 		<h3>[method:JSON toJSON]( [param:KeyframeTrack track] )</h3>
 		<p>
-		Converts the track to JSON.
+		    将该轨道转化为JSON
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 12 - 13
docs/api/zh/animation/PropertyBinding.html

@@ -11,22 +11,22 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			This holds a reference to a real property in the scene graph; used internally.
+            对场景图中某一真实属性的引用,内部使用。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]( [param:Object3D rootNode], path, parsedPath )</h3>
 		<p>
 			-- [page:Object3D rootNode]:
 			-- path
-			-- parsedPath (optional)
+			-- parsedPath (可选)
 
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Number path]</h3>
 		<p>
@@ -70,7 +70,7 @@
 
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:null getValue]( [param:Array targetArray], [param:Number offset] )</h3>
 		<p>
@@ -82,28 +82,27 @@
 
 		<h3>[method:null bind]( )</h3>
 		<p>
-			Create getter / setter pair for a property in the scene graph. Used internally by
-			[page:PropertyBinding.getValue getValue] and [page:PropertyBinding.setValue setValue].
+			为场景图中的属性创建 getter / setter对。 被[page:PropertyBinding.getValue getValue]和[page:PropertyBinding.setValue setValue]方法内部使用。
 		</p>
 
 		<h3>[method:null unbind]( )</h3>
 		<p>
-			Unbind getter / setter pair for a property in the scene graph.
+			解绑场景图中某属性的getter / setter对。
 		</p>
 
 		<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
 		<p>
-			Create a new Composite PropertyBinding.
+			创建一个新的复合属性绑定(Composite PropertyBinding)
 		</p>
 
 		<h3>[method:Constructor create]( root, path, parsedPath )</h3>
 		<p>
-			Create a new Composite PropertyBinding (if root is an [page:AnimationObjectGroup]) or PropertyBinding.
+            创建一个新的复合属性绑定(Composite PropertyBinding) (如果根对象是[page:AnimationObjectGroup])或普通属性绑定
 		</p>
 
 		<h3>[method:Constructor parseTrackName]( trackName )</h3>
 		<p>
-			Matches strings in the following forms:<br />
+			匹配以下形式的字符串:<br />
 			-- nodeName.property<br />
 			-- nodeName.property[accessor]<br />
 			-- nodeName.material.property[accessor]<br />
@@ -117,13 +116,13 @@
 
 		<h3>[method:Constructor findNode]( root, nodeName )</h3>
 		<p>
-			Find a node in a node tree or [page:Skeleton Skeleton].
+            从节点树或骨骼([page:Skeleton Skeleton])中找出某节点
 		</p>
 
 
 
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 17 - 18
docs/api/zh/animation/PropertyMixer.html

@@ -11,11 +11,11 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-		Buffered scene graph property that allows weighted accumulation; used internally.
+        允许加权累加的缓冲场景图属性,内部使用
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]( [param:PropertyBinding binding], [param:String typeName], [param:Number valueSize] )</h3>
@@ -26,7 +26,7 @@
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 
 		<h3>[property:PropertyBinding binding]</h3>
@@ -36,16 +36,15 @@
 
 		<h3>[property:TypedArray buffer]</h3>
 		<p>
-			Buffer with size [page:PropertyMixer valueSize] * 4. <br /><br />
-			This has the layout: [ incoming | accu0 | accu1 | orig ]<br /><br />
-			Interpolators can use .buffer as their .result and the data then goes to 'incoming'.
-			'accu0' and 'accu1' are used frame-interleaved for the cumulative result and
-			are compared to detect changes. 'orig' stores the original state of the property.
+			大小为 4 * [page:PropertyMixer valueSize] 的缓冲区 <br /><br />
+			布局为: [ incoming | accu0 | accu1 | orig ]<br /><br />
+			插值器可使用 .buffer 作为 .result 且数据会进入'incoming'区.
+			'accu0'和'accu1'用于按帧交错累加‘incoming’中的数据并进行比较以侦测变化。'orig'存储着属性的原始状态。
 		</p>
 
 		<h3>[property:Number cumulativeWeight]</h3>
 		<p>
-			Default is *0*.
+			默认值是0
 		</p>
 
 		<h3>[property:Number valueSize]</h3>
@@ -55,42 +54,42 @@
 
 		<h3>[property:Number referenceCount]</h3>
 		<p>
-			Default is *0*.
+            默认值是0
 		</p>
 
 		<h3>[property:Number useCount]</h3>
 		<p>
-			Default is *0*.
+           默认值是0
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 
 		<h3>[method:null accumulate]( [param:Number accuIndex], [param:Number weight] )</h3>
 		<p>
-			Accumulate data in [page:PropertyMixer.buffer buffer][accuIndex] 'incoming' region into 'accu[i]'.<br />
+			将[page:PropertyMixer.buffer buffer][accuIndex]中'incoming'区的数据累加到'accu[i]'区中。<br />
 
-			If weight is *0* this does nothing.
+			如果权值为0,则什么都不做。
 		</p>
 
 		<h3>[method:null apply]( [param:Number accuIndex] )</h3>
 		<p>
-			Apply the state of [page:PropertyMixer.buffer buffer] 'accu[i]' to the binding when accus differ.
+			当累加值不同时,将[page:PropertyMixer.buffer buffer] 'accu[i]区的状态应用于绑定.
 		</p>
 
 		<h3>[method:null saveOriginalState]( )</h3>
 		<p>
-			Remember the state of the bound property and copy it to both accus.
+			记住绑定属性的状态并复制到两个'accu'区中.
 		</p>
 
 		<h3>[method:null restoreOriginalState](  )</h3>
 		<p>
-			Apply the state previously taken via 'saveOriginalState' to the binding.
+            将预先通过'saveOriginalState'方法取得的状态应用于绑定。
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>方法</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

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

@@ -10,32 +10,32 @@
 	<body>
 		[page:Object3D] &rarr;
 
-		<h1>[name]</h1>
+		<h1>及时渲染对象([name])</h1>
 
-		<p class="desc">base class for immediate rendering objects.</p>
+		<p class="desc">及时渲染对象的基类。</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 
 		<h3>[name]()</h3>
 		<p>
-		This creates a new [name].
+			这会创建一个新的 [name]。
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法(Methods)</h2>
 
 
 		<h3>[method:null render]([param:Function renderCallback])</h3>
 		<p>
-		renderCallback -- A function to render the generated object.
+		renderCallback -- 生成对象的渲染函数。
 		</p>
 		<p>
-		This function needs to be overridden to start the creation of the object and should call renderCallback when finished.
+		需要重写此函数以开始创建对象,并在完成时调用renderCallback。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 12 - 20
docs/api/zh/lights/shadows/DirectionalLightShadow.html

@@ -13,14 +13,12 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			This is used internally by [page:DirectionalLight DirectionalLights] for calculating shadows.<br /><br />
+			这是用于在[page:DirectionalLight DirectionalLights]内部计算阴影<br /><br />
 
-			Unlike the other shadow classes, this uses an [page:OrthographicCamera] to calculate the shadows,
-			rather than a [page:PerspectiveCamera]. This is because light rays from a [page:DirectionalLight]
-			are parallel.
+			与其他阴影类不同,它是使用OrthographicCamera来计算阴影,而不是PerspectiveCamera。这是因为来自DirectionalLight的光线是平行的。
 		</p>
 
-		<h2>Example</h2>
+		<h2>例子</h2>
 		<p>
 			<code>
 //Create a WebGLRenderer and turn on shadows in the renderer
@@ -61,36 +59,30 @@ scene.add( helper );
 			</code>
 		</p>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 		<h3>[name]( )</h3>
 		<p>
-			Creates a new [name]. This is not intended to be called directly - it is called
-			internally by [page:DirectionalLight].
+			创建一个新的[name],不能直接调用-它是在[page:DirectionalLight DirectionalLights]内部调用使用
+
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 		<p>
-			See the base [page:LightShadow LightShadow] class for common properties.
+			参阅[page:LightShadow LightShadow]类来了解常用的基本属性
 		</p>
 
 		<h3>[property:Camera camera]</h3>
 		<p>
-			The light's view of the world. This is used to generate a depth map of the scene; objects behind
-			other objects from the light's perspective will be in shadow.<br /><br />
-
-			The default is an [page:OrthographicCamera] with [page:OrthographicCamera.left left] and
-			[page:OrthographicCamera.bottom bottom] set to -5,  [page:OrthographicCamera.right right]
-			and  [page:OrthographicCamera.top top] set to 5, the [page:OrthographicCamera.near near]
-			clipping plane at 0.5 and the [page:OrthographicCamera.far far] clipping plane at 500.
+			在光的世界里。这用于生成场景的深度图;从光的角度来看,其他物体背后的物体将处于阴影中。<br /><br />
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 		<p>
-			See the base [page:LightShadow LightShadow] class for common methods.
+			有关常用方法,请参阅基础[page:LightShadow LightShadow]类。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
 	</body>

+ 25 - 31
docs/api/zh/lights/shadows/LightShadow.html

@@ -12,12 +12,11 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			This is used internally by [page:PointLight PointLights] for calculating shadows, and also serves as
-			a base class for the other shadow classes.
+			这在 [page:PointLight PointLights] 内部用于计算阴影,也可用作其他阴影类的基类。
 		</p>
 
 
-		<h2>Example</h2>
+		<h2>例子</h2>
 		<p>
 			<code>
 //Create a WebGLRenderer and turn on shadows in the renderer
@@ -58,83 +57,78 @@ scene.add( helper );
 			</code>
 		</p>
 
-		<h2>Constructor</h2>
+		<h2>构造函数</h2>
 
 		<h3>[name]( [param:Camera camera] )</h3>
 		<p>
-		[page:Camera camera] - the light's view of the world.<br /><br />
+		[page:Camera camera] - 在光的世界里<br /><br />
 
-		Create a new [name]. This is not intended to be called directly - it is called
-		internally by [page:PointLight] or used as a base class by other light shadows.
+			创建一个新的[name]。这不能直接调用的 - 它由[page:PointLight]在内部调用,或者由其他阴影用作基类。
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Camera camera]</h3>
 		<p>
-			The light's view of the world. This is used to generate a depth map of the scene; objects behind
-			other objects from the light's perspective will be in shadow.
+			光的世界里。这用于生成场景的深度图;从光的角度来看,其他物体背后的物体将处于阴影中。
 		</p>
 
 		<h3>[property:Float bias]</h3>
 		<p>
-			Shadow map bias, how much to add or subtract from the normalized depth when deciding whether a surface is in shadow.<br />
-			The default is 0. Very tiny adjustments here (in the order of 0.0001) may help reduce artefacts in shadows
+			阴影贴图偏差,在确定曲面是否在阴影中时,从标准化深度添加或减去多少。<br />
+			默认值为0.此处非常小的调整(大约0.0001)可能有助于减少阴影中的伪影
 		</p>
 
 		<h3>[property:WebGLRenderTarget map]</h3>
 		<p>
-			The depth map generated using the internal camera; a location beyond a pixel's depth is
-			in shadow. Computed internally during rendering.
+			使用内置摄像头生成的深度图;超出像素深度的位置在阴影中。在渲染期间内部计算。
 		</p>
 
 
 		<h3>[property:Vector2 mapSize]</h3>
 		<p>
-			A [Page:Vector2] defining the width and height of the shadow map.<br /><br />
+			一个[Page:Vector2]定义阴影贴图的宽度和高度。<br /><br />
 
-			Higher values give better quality shadows at the cost of computation time. Values must be
-			powers of 2, up to the [page:WebGLRenderer.capabilities].maxTextureSize for a given device,
-			although the width and height don't have to be the same (so, for example, (512, 1024) is valid).
-			The default is *( 512, 512 )*.
+			较高的值会以计算时间为代价提供更好的阴影质量。值必须是2的幂,直到给定设备的[page:WebGLRenderer.capabilities].maxTextureSize,
+			虽然宽度和高度不必相同(例如,(512,1024)有效)。
+			默认值为*(512,512)*。
 		</p>
 
 
 		<h3>[property:Matrix4 matrix]</h3>
 		<p>
-			Model to shadow camera space, to compute location and depth in shadow map. Stored
-			in a [page:Matrix4 Matrix4]. This is computed internally during rendering.
+			模拟阴影相机空间,计算阴影贴图中的位置和深度。存储在[page:Matrix4 Matrix4]中。这是在渲染期间内部计算的。
 		</p>
 
 		<h3>[property:Float radius]</h3>
 		<p>
-			Setting this to values greater than 1 will blur the edges of the shadow.<br />
+			将此值设置为大于1的值将模糊阴影的边缘。<br />
 
-			High values will cause unwanted banding effects in the shadows - a greater [page:.mapSize mapSize]
-			will allow for a higher value to be used here before these effects become visible.<br /><br />
 
-			Note that this has no effect if the [page:WebGLRenderer.shadowMap.type] is set to [page:Renderer BasicShadowMap].
+			较高的值会在阴影中产生不必要的条带效果 - 更大的[page:.mapSize mapSize]将允许在这些效果变得可见之前使用更高的值。<br /><br />
+
+			请注意,如果[page:WebGLRenderer.shadowMap.type]设置为[page:Renderer BasicShadowMap],将会无效。
+
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 		<h3>[method:LightShadow copy]( [param:LightShadow source] )</h3>
 		<p>
-		Copies value of all the properties from the [page:LightShadow source] to this
-		SpotLight.
+			将[page:LightShadow]中的所有属性的值复制到 SpotLight。
 		</p>
 
 		<h3>[method:LightShadow clone]()</h3>
 		<p>
-		Creates a new LightShadow with the same properties as this one.
+			克隆与此相同属性的新LightShadow。
 		</p>
 
 		<h3>[method:Object toJSON]()</h3>
 		<p>
-		Serialize this LightShadow.
+			序列化这个LightShadow。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
 	</body>

+ 13 - 24
docs/api/zh/lights/shadows/SpotLightShadow.html

@@ -13,10 +13,10 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			This is used internally by [page:SpotLight SpotLights] for calculating shadows.
+			这在SpotLights内部用于计算阴影。
 		</p>
 
-		<h2>Example</h2>
+		<h2>例子</h2>
 		<p>
 			<code>
 //Create a WebGLRenderer and turn on shadows in the renderer
@@ -57,41 +57,30 @@ scene.add( helper );
 		</p>
 
 
-		<h2>Constructor</h2>
-
-		The constructor creates a [param:PerspectiveCamera PerspectiveCamera] to manage the shadow's view of the world.
-
-		<h2>Properties</h2>
-		See the base [page:LightShadow LightShadow] class for common properties.
-
-
+		<h2>构造函数</h2>
+	        	构造函数创建一个 [param:PerspectiveCamera PerspectiveCamera] 来管理阴影的世界视图
+		<h2>属性</h2>
+		有关常用属性,请参阅基础LightShadow类。
 	 <h3>[property:Camera camera]</h3>
 	 <p>
-		 The light's view of the world. This is used to generate a depth map of the scene; objects behind
-		 other objects from the light's perspective will be in shadow.<br /><br />
+		 在光的世界里。这用于生成场景的深度图;从光的角度来看,其他物体背后的物体将处于阴影中。<br /><br />
 
-		 The default is a  [page:PerspectiveCamera] with [page:PerspectiveCamera.near near] clipping plane at 0.5.
-		 The [page:PerspectiveCamera.fov fov] will track the [page:SpotLight.angle angle] property of the owning
-		 [page:SpotLight SpotLight] via the [page:SpotLightShadow.update update] method. Similarly, the
-		 [page:PerspectiveCamera.aspect aspect] property will track the aspect of the
-		 [page:LightShadow.mapSize mapSize]. If the [page:SpotLight.distance distance] property of the light is
-		 set, the [page:PerspectiveCamera.far far] clipping plane will track that, otherwise it defaults to 500.
+		 默认值为PerspectiveCamera,近剪裁平面为0.5。 fov将通过更新方法跟踪拥有SpotLight的角度属性。同样,aspect属性将跟踪mapSize的方面。如果设置了灯光的距离属性,则远剪裁平面将跟踪该值,否则默认为500。
 
 	 </p>
 
 	 <h3>[property:Boolean isSpotLightShadow]</h3>
 	 <p>
-		 Used to check whether this or derived classes are spot light shadows. Default is *true*.<br /><br />
 
-		 You should not change this, as it used internally for optimisation.
+		 用于检查此类或派生类是否为聚光灯阴影。默认为true。<br /><br />
+		 您不应该更改它,因为它在内部用于优化。
 	 </p>
 
-		<h2>Methods</h2>
-		See the base [page:LightShadow LightShadow] class for common methods.
-
+		<h2>方法</h2>
+		有关常用方法,请参阅基础LightShadow类。
 		<h3>[method:SpotLightShadow update]( [param:SpotLight light] )</h3>
 		<p>
-		Updates the internal perspective [page:.camera camera] based on the passed in [page:SpotLight light].
+			根据传入的[page:SpotLight light]更新内部透视[page:.camera camera]。
 		</p>
 
 		<h2>Source</h2>

+ 24 - 37
docs/api/zh/materials/LineBasicMaterial.html

@@ -10,11 +10,11 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>基础线条材质([name]</h1>
 
-		<p class="desc">A material for drawing wireframe-style geometries.</p>
+			<p class="desc">一种用于绘制线框样式几何体的材质。</p>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 
 		<p>
 			[example:webgl_buffergeometry_drawcalls WebGL / buffergeometry / drawcalls]<br />
@@ -43,65 +43,52 @@ var material = new THREE.LineBasicMaterial( {
 } );
 		</code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
 
 		<p>
-		[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-		Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
-
-		The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-		string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
+		属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:Boolean isLineBasicMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are line basic materials. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
+		<p>用于检查此类或派生类是否为基础线条材质。默认值为 *true*。<br /><br />
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
+		<p>材质是否受到光照的影响。默认值为 *false*。</p>
 
 		<h3>[property:Float linewidth]</h3>
-		<p>
-			Controls line thickness. Default is *1*.<br /><br />
-
-			Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-			with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-			always be 1 regardless of the set value.
+		<p> 控制线宽。默认值为 *1*。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与
+			大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
 		<h3>[property:String linecap]</h3>
-		<p>
-			Define appearance of line ends. Possible values are 'butt', 'round' and 'square'.
-			Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+		<p> 定义线两端的样式。可选值为 'butt', 'round' 和 'square'。默认值为 'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:String linejoin]</h3>
-		<p>
-			Define appearance of line joints. Possible values are 'round', 'bevel' and 'miter'. Default is 'round'. <br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+		<p> 定义线连接节点的样式。可选值为 'round', 'bevel' 和 'miter'。默认值为 'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 21 - 26
docs/api/zh/materials/LineDashedMaterial.html

@@ -10,11 +10,11 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>虚线材质([name])</h1>
 
-		<p class="desc">A material for drawing wireframe-style geometries with dashed lines.</p>
+		<p class="desc">一种用于绘制虚线样式几何体的材质。</p>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 
 		<p>
 			[example:webgl_lines_dashed WebGL / lines / dashed]<br />
@@ -31,59 +31,54 @@ var material = new THREE.LineDashedMaterial( {
 } );
 		</code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 
 		<h3>[name]( [param:Object parameters] )</h3>
 		<p>
-		[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-		Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
-
-		The exception is the property [page:Hexadecimal color], which can be passed i	as a hexadecimal
-		string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
+		属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:number dashSize]</h3>
-		<p>The size of the dash. This is both the gap with the stroke. Default is *3*.</p>
+		<p>虚线的大小,是指破折号和间隙之和。默认值为 *3*。</p>
 
 		<h3>[property:number gapSize]</h3>
-		<p>The size of the gap. Default is *1*.</p>
+		<p>间隙的大小,默认值为 *1*。</p>
 
 		<h3>[property:Boolean isLineDashedMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are line dashed materials. Default is *true*.<br /><br />
+		<p>用于检查此类或派生类是否为虚线材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
+		<p>材质是否受到光照的影响。默认值为 *false*。</p>
 
 		<h3>[property:Float linewidth]</h3>
 		<p>
-			Controls line thickness. Default is *1*.<br /><br />
+			控制线宽。默认值为 *1*。<br /><br />
 
-			Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-			with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-			always be 1 regardless of the set value.
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与
+			大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
 		<h3>[property:number scale]</h3>
-		<p>The scale of the dashed part of a line. Default is *1*.</p>
+		<p>线条中虚线部分的占比。默认值为 *1*。</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 273 - 330
docs/api/zh/materials/Material.html

@@ -1,333 +1,276 @@
 <!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">
-		Abstract base class for materials.<br /><br />
-
-		Materials describe the appearance of [page:Object objects].
-		They are defined in a (mostly) renderer-independent way, so you don't have to
-		rewrite materials if you decide to use a different renderer.<br /><br />
-
-		The following properties and methods are inherited by all other material types
-		(although they may have different defaults).
-		</p>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]()</h3>
-		<p>This creates a generic material.</p>
-
-
-		<h2>Properties</h2>
-
-		<h3>[property:Float alphaTest]</h3>
-		<p>
-		Sets the alpha value to be used when running an alpha test.
-		The material will not be renderered if the opacity is lower than this value.
-		Default is *0*.
-		</p>
-
-		<h3>[property:Integer blendDst]</h3>
-		<p>
-		Blending destination. Default is [page:CustomBlendingEquation OneMinusSrcAlphaFactor].
-		See the destination factors [page:CustomBlendingEquation constants] for all possible values.<br />
-		The material's [page:Constant blending] must be set to [page:Materials CustomBlending] for this to have any effect.
-		</p>
-
-		<h3>[property:Integer blendDstAlpha]</h3>
-		<p>The transparency of the [page:.blendDst]. Default is *null*.</p>
-
-		<h3>[property:Integer blendEquation]</h3>
-		<p>
-		Blending equation to use when applying blending. Default is [page:CustomBlendingEquation AddEquation].
-		See the blending equation [page:CustomBlendingEquation constants] for all possible values.<br />
-		The material's [page:Constant blending] must be set to [page:Materials CustomBlending] for this to have any effect.
-		</p>
-
-		<h3>[property:Integer blendEquationAlpha]</h3>
-		<p>The tranparency of the [page:.blendEquation]. Default is *null*.</p>
-
-		<h3>[property:Blending blending]</h3>
-		<p>
-		Which blending to use when displaying objects with this material. <br />
-		This must be set to [page:Materials CustomBlending] to use custom [page:Constant blendSrc], [page:Constant blendDst] or [page:Constant blendEquation].<br />
-		See the blending mode [page:Materials constants] for all possible values. Default is [page:Materials NormalBlending].
-		</p>
-
-		<h3>[property:Integer blendSrc]</h3>
-		<p>
-		Blending source. Default is [page:CustomBlendingEquation SrcAlphaFactor].
-		See the source factors [page:CustomBlendingEquation constants] for all possible values.<br />
-		The material's [page:Constant blending] must be set to [page:Materials CustomBlending] for this to have any effect.
-		</p>
-
-		<h3>[property:Integer blendSrcAlpha]</h3>
-		<p>The tranparency of the [page:.blendSrc]. Default is *null*.</p>
-
-		<h3>[property:Boolean clipIntersection]</h3>
-		<p>
-		Changes the behavior of clipping planes so that only their intersection is clipped, rather than their union.
-		Default is *false*.
-		</p>
-
-		<h3>[property:Array clippingPlanes]</h3>
-		<p>
-		User-defined clipping planes specified as THREE.Plane objects in world space.
-		These planes apply to the objects this material is attached to.
-		Points in space whose signed distance to the plane is negative are clipped (not rendered).
-		This requires [page:WebGLRenderer.localClippingEnabled] to be *true*.
-		See the [example:webgl_clipping_intersection WebGL / clipping /intersection] example.
-		Default is *null*.
-		</p>
-
-		<h3>[property:Boolean clipShadows]</h3>
-		<p>
-		Defines whether to clip shadows according to the clipping planes specified on this material. Default is *false*.
-		</p>
-
-		<h3>[property:Boolean colorWrite]</h3>
-		<p>
-		Whether to render the material's color.
-		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*.
-		</p>
-
-		<h3>[property:Integer depthFunc]</h3>
-		<p>
-		Which depth function to use. Default is [page:Materials LessEqualDepth]. See the depth mode [page:Materials constants] for all possible values.
-		</p>
-
-		<h3>[property:Boolean depthTest]</h3>
-		<p>
-		Whether to have depth test enabled when rendering this material. Default is *true*.
-		</p>
-
-		<h3>[property:Boolean depthWrite]</h3>
-		<p>
-		Whether rendering this material has any effect on the depth buffer. Default is *true*.<br /><br />
-
-		When drawing 2D overlays it can be useful to disable the depth writing in order to layer several things together without creating z-index artifacts.
-		</p>
-
-		<h3>[property:Boolean flatShading]</h3>
-		<p>
-		Define whether the material is rendered with flat shading. Default is false.
-		</p>
-
-		<h3>[property:Boolean fog]</h3>
-		<p>Whether the material is affected by fog. Default is *true*.</p>
-
-		<h3>[property:Integer id]</h3>
-		<p>Unique number for this material instance.</p>
-
-		<h3>[property:Boolean isMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are materials. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
-		</p>
-
-		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *true*.</p>
-
-		<h3>[property:String name]</h3>
-		<p>Optional name of the object (doesn't need to be unique). Default is an empty string.</p>
-
-		<h3>[property:Boolean needsUpdate]</h3>
-		<p>
-		Specifies that the material needs to be recompiled.<br />
-		This property is automatically set to *true* when instancing a new material.
-		</p>
-
-		<h3>[property:Float opacity]</h3>
-		<p>
-		Float in the range of *0.0* - *1.0* indicating how transparent the material is.
-		A value of *0.0* indicates fully transparent, *1.0* is fully opaque.<br />
-		If the material's [page:Boolean transparent] property is not set to *true*, the material will remain
-		fully opaque and this value will only affect its color. <br />
-		Default is *1.0*.
-		</p>
-
-		<h3>[property:Float overdraw]</h3>
-		<p>
-		Amount of triangle expansion at draw time.
-		This is a workaround for cases when gaps appear between triangles when using [page:CanvasRenderer].
-		*0.5* tends to give good results across browsers. Default is *0*.
-		</p>
-
-		<h3>[property:Boolean polygonOffset]</h3>
-		<p>
-		Whether to use polygon offset. Default is *false*. This corresponds to the *GL_POLYGON_OFFSET_FILL* WebGL feature.
-		</p>
-
-		<h3>[property:Integer polygonOffsetFactor]</h3>
-		<p>Sets the polygon offset factor. Default is *0*.</p>
-
-		<h3>[property:Integer polygonOffsetUnits]</h3>
-		<p>Sets the polygon offset units. Default is *0*.</p>
-
-		<h3>[property:String precision]</h3>
-		<p>
-		Override the renderer's default precision for this material. Can be "*highp*", "*mediump*" or "*lowp*".
-		Default is *null*.
-		</p>
-
-		<h3>[property:Boolean premultipliedAlpha]</h3>
-		<p>
-		Whether to premultiply the alpha (transparency) value.
-		See [Example:webgl_materials_transparency WebGL / Materials / Transparency] for an example of the difference.
-		Default is *false*.
-		</p>
-
-		<h3>[property:Boolean dithering]</h3>
-		<p>
-		Whether to apply dithering to the color to remove the appearance of banding.
-		Default is *false*.
-		</p>
-
-		<h3>[property:Integer shadowSide]</h3>
-		<p>
-		Defines which side of faces cast shadows.
-		When set, can be [page:Materials THREE.FrontSide], [page:Materials THREE.BackSide], or [page:Materials THREE.DoubleSide]. Default is *null*. <br />
-		If *null*, the side casting shadows is determined as follows: <br />
-
-		<table>
-			<thead>
-				<tr>
-					<th>[page:Material.side]</th>
-					<th>Side casting shadows</th>
-				</tr>
-			</thead>
-			<tbody>
-
-				<tr>
-					<td>THREE.FrontSide</td>
-					<td>back side</td>
-				</tr>
-				<tr>
-					<td>THREE.BackSide</td>
-					<td>front side</td>
-				</tr>
-				<tr>
-					<td>THREE.DoubleSide</td>
-					<td>both sides</td>
-				</tr>
-			</tbody>
-		</table>
-
-
-		</p>
-
-		<h3>[property:Integer side]</h3>
-		<p>
-		Defines which side of faces will be rendered - front, back or both.
-		Default is [page:Materials THREE.FrontSide].
-		Other options are [page:Materials THREE.BackSide] and [page:Materials THREE.DoubleSide].
-		</p>
-
-		<h3>[property:Boolean transparent]</h3>
-		<p>
-		Defines whether this material is transparent. This has an effect on rendering
-		as transparent objects need special treatment and are rendered after
-		non-transparent objects. <br />
-		When set to true, the extent to which the material is transparent is
-		controlled by setting it's [page:Float opacity] property. <br />
-		Default is *false*.
-		</p>
-
-		<h3>[property:String type]</h3>
-		<p>
-		Value is the string 'Material'. This shouldn't be changed, and can be used to
-		find all objects of this type in a scene.
-		</p>
-
-		<h3>[property:String uuid]</h3>
-		<p>
-		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this material instance.
-		This gets automatically assigned, so this shouldn't be edited.
-		</p>
-
-		<h3>[property:Integer vertexColors]</h3>
-		<p>
-		Defines whether vertex coloring is used.
-		Default is [page:Materials THREE.NoColors].
-		Other options are [page:Materials THREE.VertexColors] and [page:Materials THREE.FaceColors].
-		</p>
-
-		<h3>[property:Boolean visible]</h3>
-		<p>
-		Defines whether this material is visible. Default is *true*.
-		</p>
-
-		<h3>[property:object userData]</h3>
-		<p>
-		An object that can be used to store custom data about the Material. It should not hold
-		references to functions as these will not be cloned.
-		</p>
-
-		<h2>Methods</h2>
-
-		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
-
-		<h3>[method:Material clone]( )</h3>
-		<p>Return a new material with the same parameters as this material.</p>
-
-		<h3>[method:Material copy]( [param:material material] )</h3>
-		<p>Copy the parameters from the passed material into this material.</p>
-
-		<h3>[method:null dispose]()</h3>
-		<p>
-		This disposes the material. Textures of a material don't get disposed.
-		These needs to be disposed by [page:Texture Texture].
-		</p>
-
-		<h3>[method:null onBeforeCompile]( [param:Object shader], [param:WebGLRenderer renderer] )</h3>
-		<p>
-		An optional callback that is executed immediately before the shader program is compiled.
-		This function is called with the shader source code as a parameter. Useful for the modification of built-in materials.
-		</p>
-
-		<h3>[method:null setValues]( [param:object values] )</h3>
-		<p>
-		values -- a container with parameters.<br />
-		Sets the properties based on the *values*.
-		</p>
-
-		<h3>[method:null toJSON]( [param:object meta] )</h3>
-		<p>
-		meta -- object containing metadata such as textures or images for the material.<br />
-		Convert the material to three.js JSON format.
-		</p>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
+<head>
+    <meta charset="utf-8"/>
+    <base href="../../../"/>
+    <script src="list.js"></script>
+    <script src="page.js"></script>
+    <link type="text/css" rel="stylesheet" href="page.css"/>
+</head>
+<body>
+<h1>材质([name])</h1>
+
+<p class="desc">材质的抽象基类。<br/><br/>
+    材质描述了对象[page:Object objects]的外观。它们的定义方式与渲染器无关,
+    因此,如果您决定使用不同的渲染器,不必重写材质。<br/><br/>
+    所有其他材质类型都继承了以下属性和方法(尽管它们可能具有不同的默认值)。
+</p>
+
+<h2>构造函数(Constructor)</h2>
+
+
+<h3>[name]()</h3>
+<p>该方法创建一个通用材质。</p>
+
+
+<h2>属性(Properties)</h2>
+
+<h3>[property:Float alphaTest]</h3>
+<p>设置运行alphaTest时要使用的alpha值。如果不透明度低于此值,则不会渲染材质。默认值为*0*。
+</p>
+
+<h3>[property:Integer blendDst]</h3>
+<p> 混合目标。默认值为[page:CustomBlendingEquation OneMinusSrcAlphaFactor]。
+    目标因子所有可能的取值请参阅[page:CustomBlendingEquation constants]。
+    必须将材质的[page:Constant blending]设置为[page:Materials CustomBlending]才能生效。<br/>
+</p>
+
+<h3>[property:Integer blendDstAlpha]</h3>
+<p> [page:.blendDst]的透明度。 默认值为 *null*.</p>
+
+<h3>[property:Integer blendEquation]</h3>
+<p> 使用混合时所采用的混合方程式。默认值为[page:CustomBlendingEquation AddEquation]。
+    混合方程式所有可能的取值请参阅[page:CustomBlendingEquation constants]。
+    必须将材质的[page:Constant blending]设置为[page:Materials CustomBlending]才能生效。<br/>
+</p>
+
+<h3>[property:Integer blendEquationAlpha]</h3>
+<p>[page:.blendEquation] 的透明度. 默认值为 *null*.</p>
+
+<h3>[property:Blending blending]</h3>
+<p> 在使用此材质显示对象时要使用何种混合。<br/>
+    必须将其设置为[page:Materials CustomBlending]才能使用自定义[page:Constant blendSrc], [page:Constant blendDst] 或者 [page:Constant
+    blendEquation]。
+    混合模式所有可能的取值请参阅[page:Materials constants]。默认值为[page:Materials NormalBlending]。
+</p>
+
+<h3>[property:Integer blendSrc]</h3>
+<p> 混合源。默认值为[page:CustomBlendingEquation SrcAlphaFactor]。
+    源因子所有可能的取值请参阅[page:CustomBlendingEquation constants]。<br/>
+    必须将材质的[page:Constant blending]设置为[page:Materials CustomBlending]才能生效。
+</p>
+
+<h3>[property:Integer blendSrcAlpha]</h3>
+<p> [page:.blendSrc]的透明度。 默认值为 *null*.</p>
+
+<h3>[property:Boolean clipIntersection]</h3>
+<p>更改剪裁平面的行为,以便仅剪切其交叉点,而不是它们的并集。默认值为 *false*。
+</p>
+
+<h3>[property:Array clippingPlanes]</h3>
+<p>
+    用户定义的剪裁平面,在世界空间中指定为THREE.Plane对象。这些平面适用于所有使用此材质的对象。空间中与平面的有符号距离为负的点被剪裁(未渲染)。
+    这需要[page:WebGLRenderer.localClippingEnabled]为*true*。
+    示例请参阅[example:webgl_clipping_intersection WebGL / clipping /intersection]。默认值为 *null*。
+</p>
+
+<h3>[property:Boolean clipShadows]</h3>
+<p>定义是否根据此材质上指定的剪裁平面剪切阴影。默认值为 *false*。
+</p>
+
+<h3>[property:Boolean colorWrite]</h3>
+<p> 是否渲染材质的颜色。
+    这可以与网格的[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*。
+</p>
+
+<h3>[property:Integer depthFunc]</h3>
+<p> 使用何种深度函数。默认为[page:Materials LessEqualDepth]。
+    深度模式所有可能的取值请查阅[page:Materials constants]。
+</p>
+
+<h3>[property:Boolean depthTest]</h3>
+<p>是否在渲染此材质时启用深度测试。默认为 *true*。
+</p>
+
+<h3>[property:Boolean depthWrite]</h3>
+<p>渲染此材质是否对深度缓冲区有任何影响。默认为*true*。<br/><br/>
+    在绘制2D叠加时,将多个事物分层在一起而不创建z-index时,禁用深度写入会很有用。
+</p>
+
+<h3>[property:Boolean flatShading]</h3>
+<p> 定义材质是否使用平面着色进行渲染。默认值为false。
+</p>
+
+<h3>[property:Boolean fog]</h3>
+<p>材质是否受雾影响。默认为*true*。</p>
+
+<h3>[property:Integer id]</h3>
+<p>此材质实例的唯一编号。</p>
+
+<h3>[property:Boolean isMaterial]</h3>
+<p>用于检查此类或派生类是否为材质。默认值为 *true*。<br/><br/>
+
+    因为其通常用在内部优化,所以不应该更改该属性值。
+</p>
+
+<h3>[property:Boolean lights]</h3>
+<p>材质是否受到光照的影响。默认为*true*。</p>
+
+<h3>[property:String name]</h3>
+<p>对象的可选名称(不必是唯一的)。默认值为空字符串。</p>
+
+<h3>[property:Boolean needsUpdate]</h3>
+<p>指定需要重新编译材质。<br/>
+    实例化新材质时,此属性自动设置为true。
+</p>
+
+<h3>[property:Float opacity]</h3>
+<p> 在0.0 - 1.0的范围内的浮点数,表明材质的透明度。值*0.0*表示完全透明,*1.0*表示完全不透明。<br/>
+    如果材质的[page:Boolean transparent]属性未设置为*true*,则材质将保持完全不透明,此值仅影响其颜色。
+    默认值为*1.0*。 <br/>
+
+</p>
+
+<h3>[property:Float overdraw]</h3>
+<p>绘制时的三角形扩展量。对于使用[page:CanvasRenderer]时三角形之间出现间隙的情况,这是一种解决方法。
+    *0.5*往往会在浏览器中有良好的结果。默认值为*0*。
+</p>
+
+<h3>[property:Boolean polygonOffset]</h3>
+<p> 是否使用多边形偏移。默认值为*false*。这对应于WebGL的*GL_POLYGON_OFFSET_FILL*功能。
+</p>
+
+<h3>[property:Integer polygonOffsetFactor]</h3>
+<p>设置多边形偏移系数。默认值为*0*。</p>
+
+<h3>[property:Integer polygonOffsetUnits]</h3>
+<p>设置多边形偏移单位。默认值为*0*。</p>
+
+<h3>[property:String precision]</h3>
+<p> 重写此材质渲染器的默认精度。可以是"*highp*", "*mediump*" 或 "*lowp*"。默认值为*null*。
+</p>
+
+<h3>[property:Boolean premultipliedAlpha]</h3>
+<p> 是否预乘alpha(透明度)值。有关差异的示例,请参阅[Example:webgl_materials_transparency WebGL / Materials / Transparency]。
+    默认值为*false*。
+</p>
+
+<h3>[property:Boolean dithering]</h3>
+<p> 是否对颜色应用抖动以消除条带的外观。默认值为 *false*。
+</p>
+
+<h3>[property:Integer shadowSide]</h3>
+<p> 定义投影的面。设置时,可以是[page:Materials THREE.FrontSide], [page:Materials THREE.BackSide], 或[page:Materials]。默认值为 *null*。
+     <br/>
+    如果为*null*, 则面投射阴影确定如下: <br/>
+
+<table>
+    <thead>
+    <tr>
+        <th>[page:Material.side]</th>
+        <th>Side casting shadows</th>
+    </tr>
+    </thead>
+    <tbody>
+
+    <tr>
+        <td>THREE.FrontSide</td>
+        <td>背面</td>
+    </tr>
+    <tr>
+        <td>THREE.BackSide</td>
+        <td>前面</td>
+    </tr>
+    <tr>
+        <td>THREE.DoubleSide</td>
+        <td>双面</td>
+    </tr>
+    </tbody>
+</table>
+
+
+</p>
+
+<h3>[property:Integer side]</h3>
+<p> 定义将要渲染哪一面 - 正面,背面或两者。
+    默认为[page:Materials THREE.FrontSide]。其他选项有[page:Materials THREE.BackSide]和[page:Materials THREE.DoubleSide]。
+</p>
+
+<h3>[property:Boolean transparent]</h3>
+<p>
+    定义此材质是否透明。这对渲染有影响,因为透明对象需要特殊处理,并在非透明对象之后渲染。
+    <br/>
+    设置为true时,通过设置材质的[page:Float opacity]属性来控制材质透明的程度。<br/>
+    默认值为*false*。
+</p>
+
+<h3>[property:String type]</h3>
+<p> 值是字符串'Material'。不应该被更改,并且可以用于在场景中查找此类型的所有对象。
+</p>
+
+<h3>[property:String uuid]</h3>
+<p> 此材质实例的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID],会自动分配,不应该被更改。
+</p>
+
+<h3>[property:Integer vertexColors]</h3>
+<p> 是否使用顶点着色。默认值为[page:Materials THREE.NoColors]。
+    其他选项有[page:Materials THREE.VertexColors] 和 [page:Materials THREE.FaceColors]。
+</p>
+
+<h3>[property:Boolean visible]</h3>
+<p> 此材质是否可见。默认为*true*。
+</p>
+
+<h3>[property:object userData]</h3>
+<p> 一个对象,可用于存储有关Material的自定义数据。它不应该包含对函数的引用,因为这些函数不会被克隆。
+</p>
+
+<h2>方法(Methods)</h2>
+
+<h3>[page:EventDispatcher EventDispatcher] 方法在此类中可用。</h3>
+
+<h3>[method:Material clone]( )</h3>
+<p> 返回与此材质具有相同参数的新材质。</p>
+
+<h3>[method:Material copy]( [param:material material] )</h3>
+<p> 将被传入材质中的参数复制到此材质中。</p>
+
+<h3>[method:null dispose]()</h3>
+<p> 处理材质。材质的纹理不会被处理。需要通过[page:Texture Texture]处理。
+</p>
+
+<h3>[method:null onBeforeCompile]( [param:Object shader], [param:WebGLRenderer renderer] )</h3>
+<p> 在编译shader程序之前立即执行的可选回调。此函数使用shader源码作为参数。用于修改内置材质。
+</p>
+
+<h3>[method:null setValues]( [param:object values] )</h3>
+<p> values -- 具有参数的容器。
+    根据*values*设置属性。<br/>
+</p>
+
+<h3>[method:null toJSON]( [param:object meta] )</h3>
+<p> meta -- 包含元素,例如材质的纹理或图像。
+    将材质转换为three.js JSON格式。<br/>
+</p>
+
+<h2>源码(Source)</h2>
+
+[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+</body>
 </html>

+ 44 - 70
docs/api/zh/materials/MeshBasicMaterial.html

@@ -10,12 +10,11 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>基础网格材质([name])</h1>
 
 		<p class="desc">
-			A material for drawing geometries in a simple shaded (flat or wireframe) way.<br /><br />
-
-			This material is not affected by lights.
+			一个以简单着色(平面或线框)方式来绘制几何体的材质。<br /><br />
+			这种材质不受光照的影响。
 		</p>
 
 
@@ -37,129 +36,104 @@
 
 		</script>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
-
-			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		<p>[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Texture alphaMap]</h3>
-		<p>The alpha map is a grayscale texture that controls the opacity across the surface
-			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
-
-			Only the color of the texture is used, ignoring the alpha channel if one exists.
-			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
-			green channel when sampling this texture due to the extra bit of precision provided
-			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
-			luminance/alpha textures will also still work as expected.
+		<p> alpha贴图是一种灰度纹理,用于控制整个表面的不透明度(黑色:完全透明;白色:完全不透明)。默认值为null。<br /><br />
+			仅使用纹理的颜色,忽略alpha通道(如果存在)。对于RGB和RGBA纹理,[page:WebGLRenderer WebGL]渲染器在采样此纹理时将使用绿色通道,
+			因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。Luminance-only以及luminance/alpha纹理也仍然有效。
 		</p>
 
 		<h3>[property:Texture aoMap]</h3>
-		<p>The red channel of this texture is used as the ambient occlusion map. Default is null.
-		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
-		and [page:Texture offset] Texture properties.</p>
+		<p>该纹理的红色通道用作环境遮挡贴图。默认值为null。aoMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]属性。</p>
 
 		<h3>[property:Float aoMapIntensity]</h3>
-		<p>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</p>
+		<p>环境遮挡效果的强度。默认值为1。零是不遮挡效果。</p>
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:Integer combine]</h3>
-		<p>
-			How to combine the result of the surface's color with the environment map, if any.<br /><br />
-
-			Options are [page:Materials THREE.Multiply] (default), [page:Materials THREE.MixOperation],
-			[page:Materials THREE.AddOperation]. If mix is chosen, the [page:.reflectivity] is used to
-			blend between the two colors.
+		<p> 如何将表面颜色的结果与环境贴图(如果有)结合起来。<br /><br />
+			选项为[page:Materials THREE.Multiply](默认值),[page:Materials THREE.MixOperation],
+			[page:Materials THREE.AddOperation]。如果选择多个,则使用[page:.reflectivity]在两种颜色之间进行混合。
 		</p>
 
 		<h3>[property:Boolean isMeshBasicMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh basic materials. Default is *true*.<br /><br />
+		<p>用于检查此类或派生类是否为网格基础材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:TextureCube envMap]</h3>
-		<p>The environment map. Default is null.</p>
+		<p>环境贴图。默认值为null。</p>
 
 		<h3>[property:Texture lightMap]</h3>
-		<p>The light map. Default is null. The lightMap requires a second set of UVs,
-		and consequently will ignore the [page:Texture repeat] and [page:Texture offset]
-		Texture properties.</p>
+		<p>光照贴图。默认值为null。lightMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]纹理属性。</p>
 
 		<h3>[property:Float lightMapIntensity]</h3>
-		<p>Intensity of the baked light. Default is 1.</p>
+		<p>烘焙光的强度。默认值为1。</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
+		<p>材质是否受到光照的影响。默认值为 *false*。</p>
 
 		<h3>[property:Texture map]</h3>
-		<p>The color map. Default is  null.</p>
+		<p> 颜色贴图。默认为null。</p>
 
 		<h3>[property:Boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>材质是否使用morphTargets。默认值为false。</p>
 
 
 		<h3>[property:Float reflectivity]</h3>
-		<p>
-			How much the environment map affects the surface; also see [page:.combine].
-			The default value is 1 and the valid range is between 0 (no reflections) and 1 (full reflections).
+		<p> 环境贴图对表面的影响程度; 见[page:.combine]。默认值为1,有效范围介于0(无反射)和1(完全反射)之间。
 		</p>
 
 		<h3>[property:Float refractionRatio]</h3>
-		<p>
-			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
-			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
-			The refraction ratio should not exceed 1. Default is *0.98*.
+		<p> 空气的折射率(IOR)(约为1)除以材质的折射率。它与环境映射模式[page:Textures THREE.CubeRefractionMapping]
+			和[page:Textures THREE.EquirectangularRefractionMapping]一起使用。
+			折射率不应超过1。默认值为*0.98*。
 		</p>
 
 		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
+		<p> 材质是否使用蒙皮。默认值为false。</p>
 
 		<h3>[property:Texture specularMap]</h3>
-		<p>Specular map used by the material. Default is null.</p>
+		<p> 材质使用的高光贴图。默认值为null。</p>
 
 		<h3>[property:Boolean wireframe]</h3>
-		<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
+		<p> 将几何体渲染为线框。默认值为*false*(即渲染为平面多边形)。</p>
 
 		<h3>[property:String wireframeLinecap]</h3>
-		<p>
-			Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+		<p> 定义线两端的外观。可选值为 'butt','round' 和 'square'。默认为'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:String wireframeLinejoin]</h3>
 		<p>
-			Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+			定义线连接节点的样式。可选值为 'round', 'bevel' 和 'miter'。默认值为 'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,
+			无论如何设置该值,线宽始终为1。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 29 - 47
docs/api/zh/materials/MeshDepthMaterial.html

@@ -10,9 +10,9 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>深度网格材质([name])</h1>
 
-		<p class="desc">A material for drawing geometry by depth. Depth is based off of the camera near and far plane. White is nearest, black is farthest.</p>
+		<p class="desc">一种按深度绘制几何体的材质。深度基于相机远近平面。白色最近,黑色最远。</p>
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshDepthMaterial"></iframe>
 
@@ -32,91 +32,73 @@
 
 		</script>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.
+		<p>[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Texture alphaMap]</h3>
-		<p>The alpha map is a grayscale texture that controls the opacity across the surface
-			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
-
-			Only the color of the texture is used, ignoring the alpha channel if one exists.
-			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
-			green channel when sampling this texture due to the extra bit of precision provided
-			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
-			luminance/alpha textures will also still work as expected.
+		<p>alpha贴图是一种灰度纹理,用于控制整个表面的不透明度(黑色:完全透明;白色:完全不透明)。默认值为null。<br /><br />
+			仅使用纹理的颜色,忽略alpha通道(如果存在)。对于RGB和RGBA纹理,[page:WebGLRenderer WebGL]渲染器在采样此纹理时将使用绿色通道,
+			因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。Luminance-only以及luminance/alpha纹理也仍然有效。
 		</p>
 
 		<h3>[property:Constant depthPacking]</h3>
-		<p>Encoding for depth packing. Default is [page:Textures BasicDepthPacking].</p>
+		<p> depth packing的编码。默认为[page:Textures BasicDepthPacking]。</p>
 
 		<h3>[property:Texture displacementMap]</h3>
-		<p>
-			The displacement map affects the position of the mesh's vertices. Unlike other maps
-			which only affect the light and shade of the material the displaced vertices can cast shadows,
-			block other objects, and otherwise act as real geometry. The displacement texture is
-			an image where the value of each pixel (white being the highest) is mapped against,
-			and repositions, the vertices of the mesh.
+		<p> 位移贴图会影响网格顶点的位置,与仅影响材质的光照和阴影的其他贴图不同,移位的顶点可以投射阴影,阻挡其他对象,以及充当真实的几何体。
+			位移纹理是指:网格的所有顶点被映射为图像中每个像素的值(白色是最高的),并且被重定位。
 		</p>
 
 		<h3>[property:Float displacementScale]</h3>
-		<p>
-			How much the displacement map affects the mesh (where black is no displacement,
-			and white is maximum displacement). Without a displacement map set, this value is not applied.
-			 Default is 1.
+		<p>位移贴图对网格的影响程度(黑色是无位移,白色是最大位移)。如果没有设置位移贴图,则不会应用此值。默认值为1。
 		</p>
 
 		<h3>[property:Float displacementBias]</h3>
-		<p>
-			The offset of the displacement map's values on the mesh's vertices.
-			Without a displacement map set, this value is not applied. Default is 0.
+		<p> 位移贴图在网格顶点上的偏移量。如果没有设置位移贴图,则不会应用此值。默认值为0。
 		</p>
 
 		<h3>[property:Boolean fog]</h3>
-		<p>Whether the material is affected by fog. Default is *false*.</p>
+		<p> 材质是否受雾影响。默认值为*false*。</p>
 
 		<h3>[property:Boolean isMeshDepthMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh depth materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为深度网格材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
+		<p>材质是否受到光照的影响。默认值为 *false*。</p>
 
 		<h3>[property:Texture map]</h3>
-		<p>The color map. Default is  null.</p>
+		<p>颜色贴图。默认为null。</p>
 
 		<h3>[property:boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>材质是否使用morphTargets。默认值为false。</p>
 
 		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
+		<p>材质是否使用蒙皮。默认值为false。</p>
 
 		<h3>[property:boolean wireframe]</h3>
-		<p>Render geometry as wireframe. Default is false (i.e. render as smooth shaded).</p>
+		<p> 将几何体渲染为线框。默认值为*false*(即渲染为平滑着色)。</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+		由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		与大多数平台上[page:WebGLRenderer WebGL]渲染器限制,无论如何设置该值,线宽始终为1。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 55 - 88
docs/api/zh/materials/MeshLambertMaterial.html

@@ -10,24 +10,17 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>Lambert网格材质([name])</h1>
 
-		<p class="desc">
-			A material for non-shiny surfaces, without specular highlights.<br /><br />
+		<p class="desc"> 一种非光泽表面的材质,没有镜面高光。<br /><br />
+			该材质使用基于非物理的[link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian]模型来计算反射率。
+			这可以很好地模拟一些表面(例如未经处理的木材或石材),但不能模拟具有镜面高光的光泽表面(例如涂漆木材)。<br /><br />
 
-			The material uses a non-physically based [link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian]
-			model for calculating reflectance. This can simulate some surfaces (such as untreated wood or stone) well,
-			but cannot simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
 
-
-
-			Shading is calculated using a [link:https://en.wikipedia.org/wiki/Gouraud_shading Gouraud] shading model.
-			This calculates shading per vertex (i.e. in the [link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertex shader])
-			and interpolates the results over the polygon's faces.<br /><br />
-
-			Due to the simplicity of the reflectance and illumination models, performance will be greater
-			when using this material over the [page:MeshPhongMaterial],	[page:MeshStandardMaterial] or [page:MeshPhysicalMaterial],
-			at the cost of some graphical accuracy.
+			使用[link:https://en.wikipedia.org/wiki/Gouraud_shading Gouraud]着色模型计算着色。这将计算每个顶点的着色
+			(即在[link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertex shader]中)并在多边形的面上插入结果。<br /><br />
+			由于反射率和光照模型的简单性,[page:MeshPhongMaterial],[page:MeshStandardMaterial]或者[page:MeshPhysicalMaterial]
+			上使用这种材质时会以一些图形精度为代价,得到更高的性能。
 		</p>
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshLambertMaterial"></iframe>
@@ -48,144 +41,118 @@
 
 		</script>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
-
-			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		<p>[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Texture alphaMap]</h3>
-		<p>The alpha map is a grayscale texture that controls the opacity across the surface
-			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
-
-			Only the color of the texture is used, ignoring the alpha channel if one exists.
-			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
-			green channel when sampling this texture due to the extra bit of precision provided
-			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
-			luminance/alpha textures will also still work as expected.
+		<p>alpha贴图是一种灰度纹理,用于控制整个表面的不透明度(黑色:完全透明;白色:完全不透明)。默认值为null。<br /><br />
+
+			仅使用纹理的颜色,忽略alpha通道(如果存在)。对于RGB和RGBA纹理,[page:WebGLRenderer WebGL]渲染器在采样此纹理时将使用绿色通道,
+			因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。Luminance-only以及luminance/alpha纹理也仍然有效。
 		</p>
 
 		<h3>[property:Texture aoMap]</h3>
-		<p>The red channel of this texture is used as the ambient occlusion map. Default is null.
-		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
-		and [page:Texture offset] Texture properties.</p>
+		<p> 该纹理的红色通道用作环境遮挡贴图。默认值为null。aoMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]纹理属性。</p>
 
 		<h3>[property:Float aoMapIntensity]</h3>
-		<p>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</p>
+		<p> 环境遮挡效果的强度。默认值为1。零是不遮挡效果。</p>
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p> 材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:Integer combine]</h3>
-		<p>
-			How to combine the result of the surface's color with the environment map, if any.<br /><br />
+		<p> 如何将表面颜色的结果与环境贴图(如果有)结合起来。<br /><br />
 
-			Options are [page:Materials THREE.Multiply] (default), [page:Materials THREE.MixOperation],
-			[page:Materials THREE.AddOperation]. If mix is chosen, the [page:.reflectivity] is used to
-			blend between the two colors.
+			选项为[page:Materials THREE.Multiply](默认值),[page:Materials THREE.MixOperation],
+			[page:Materials THREE.AddOperation]。如果选择多个,则使用[page:.reflectivity]在两种颜色之间进行混合。
 		</p>
 
 		<h3>[property:Color emissive]</h3>
-		<p>
-		Emissive (light) color of the material, essentially a solid color unaffected by other lighting.
-		Default is black.
+		<p> 材质的放射(光)颜色,基本上是不受其他光照影响的固有颜色。默认为黑色。
 		</p>
 
 		<h3>[property:Texture emissiveMap]</h3>
-		<p>
-		Set emissive (glow) map. Default is null. The emissive map color is modulated by
-		the emissive color and the emissive intensity. If you have an emissive map, be sure to
-		set the emissive color to something other than black.
+		<p> 设置放射(发光)贴图。默认值为null。放射贴图颜色由放射颜色和强度所调节。
+			如果你有一个放射贴图,请务必将放射颜色设置为黑色以外的其他颜色。
 		</p>
 
 		<h3>[property:Float emissiveIntensity]</h3>
-		<p>Intensity of the emissive light. Modulates the emissive color. Default is 1.</p>
+		<p> 放射光强度。调节发光颜色。默认为1。</p>
 
 		<h3>[property:TextureCube envMap]</h3>
-		<p>The environment map. Default is null.</p>
+		<p> 环境贴图。默认值为null。</p>
 
 		<h3>[property:Boolean isMeshLambertMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh Lambert materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为Lambert网格材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Texture lightMap]</h3>
-		<p>The light map. Default is null. The lightMap requires a second set of UVs,
-		and consequently will ignore the [page:Texture repeat] and [page:Texture offset]
-		Texture properties.</p>
+		<p>光照贴图。默认值为null。lightMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]纹理属性。</p>
 
 		<h3>[property:Float lightMapIntensity]</h3>
-		<p>Intensity of the baked light. Default is 1.</p>
+		<p>烘焙光的强度。默认值为1。</p>
 
 		<h3>[property:Texture map]</h3>
-		<p>The color map. Default is  null.</p>
+		<p>颜色贴图。默认为null。</p>
 
 		<h3>[property:boolean morphNormals]</h3>
-		<p>
-			Defines whether the material uses morphNormals. Set as true to pass morphNormal
-			attributes from the [page:Geometry]	to the shader. Default is *false*.
+		<p> 定义是否使用morphNormals。设置为true可将morphNormal属性从[page:Geometry]传递到shader。默认值为*false*。
 		</p>
 
 		<h3>[property:Boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>定义材质是否使用morphTargets。默认值为false。</p>
 
 		<h3>[property:Float reflectivity]</h3>
-		<p>How much the environment map affects the surface; also see [page:.combine].</p>
+		<p> 环境贴图对表面的影响程度; 见[page:.combine]。默认值为1,有效范围介于0(无反射)和1(完全反射)之间。</p>
 
 		<h3>[property:Float refractionRatio]</h3>
-		<p>
-			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
-			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
-			The refraction ratio should not exceed 1. Default is *0.98*.
+		<p>空气的折射率(IOR)(约为1)除以材质的折射率。它与环境映射模式[page:Textures THREE.CubeRefractionMapping]
+			和[page:Textures THREE.EquirectangularRefractionMapping]一起使用。
+			折射率不应超过1。默认值为*0.98*。
 		</p>
 
 		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
+		<p>材质是否使用蒙皮。默认值为false。</p>
 
 		<h3>[property:Texture specularMap]</h3>
-		<p>Specular map used by the material. Default is null.</p>
+		<p>材质使用的高光贴图。默认值为null。</p>
 
 		<h3>[property:Boolean wireframe]</h3>
-		<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
+		<p>将几何体渲染为线框。默认值为*false*(即渲染为平面多边形)。</p>
 
 		<h3>[property:String wireframeLinecap]</h3>
-		<p>
-			Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+		<p>定义线两端的外观。可选值为 'butt','round' 和 'square'。默认为'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:String wireframeLinejoin]</h3>
 		<p>
-			Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+			定义线连接节点的样式。可选值为 'round', 'bevel' 和 'miter'。默认值为 'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p> 控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与
+			大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 17 - 23
docs/api/zh/materials/MeshNormalMaterial.html

@@ -10,9 +10,9 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>法线网格材质([name])</h1>
 
-		<p class="desc">A material that maps the normal vectors to RGB colors.</p>
+		<p class="desc">一种把法向量映射到RGB颜色的材质。</p>
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshNormalMaterial"></iframe>
 
@@ -32,53 +32,47 @@
 
 		</script>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Boolean fog]</h3>
-		<p>Whether the material is affected by fog. Default is *false*.</p>
+		<p>材质是否受雾影响。默认值为*false*。</p>
 
 		<h3>[property:Boolean isMeshNormalMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh normal materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为法线网格材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
+		<p>材质是否受到光照的影响。默认值为 *false*。</p>
 
 		<h3>[property:boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>定义材质是否使用morphTargets。默认值为false。</p>
 
 		<h3>[property:boolean wireframe]</h3>
 		<p>
-			Render geometry as wireframe. Default is false (i.e. render as smooth shaded).
+			将几何体渲染为线框。默认值为*false*(即渲染为平滑着色)。
 		</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 67 - 124
docs/api/zh/materials/MeshPhongMaterial.html

@@ -10,23 +10,15 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>Phong网格材质([name])</h1>
 
-		<p class="desc">
-			A material for shiny surfaces with specular highlights.<br /><br />
-
-			The material uses a non-physically based [link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]
-			model for calculating reflectance. Unlike the Lambertian model used in the [page:MeshLambertMaterial]
-			this can simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
-
-			Shading is calculated using a [link:https://en.wikipedia.org/wiki/Phong_shading Phong] shading model.
-			This calculates shading per pixel (i.e. in the [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragment shader],
-			AKA pixel shader)	which gives more accurate results than the Gouraud model used by [page:MeshLambertMaterial],
-			at the cost of some performance. The [page:MeshStandardMaterial] and [page:MeshPhysicalMaterial]
-			also use this shading model.<br /><br />
-
-			Performance will generally be greater when using this material over the	[page:MeshStandardMaterial]
-			or [page:MeshPhysicalMaterial], at the cost of some graphical accuracy.
+		<p class="desc"> 一种用于具有镜面高光的光泽表面的材质。<br /><br />
+			该材质使用非物理的[link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]模型来计算反射率。
+			与[page:MeshLambertMaterial]中使用的Lambertian模型不同,该材质可以模拟具有镜面高光的光泽表面(例如涂漆木材)。<br /><br />
+			使用[link:https://en.wikipedia.org/wiki/Phong_shading Phong]着色模型计算着色时,会计算每个像素的阴影(在[link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragment shader],
+			AKA pixel shader中),与[page:MeshLambertMaterial]使用的Gouraud模型相比,该模型的结果更准确,但代价是牺牲一些性能。
+			[page:MeshStandardMaterial]和[page:MeshPhysicalMaterial]也使用这个着色模型。<br /><br />
+			在[page:MeshStandardMaterial]或[page:MeshPhysicalMaterial]上使用此材质时,性能通常会更高	,但会牺牲一些图形精度。
 		</p>
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshPhongMaterial"></iframe>
@@ -47,215 +39,166 @@
 
 		</script>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
-
-			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		<p>[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Texture alphaMap]</h3>
-		<p>The alpha map is a grayscale texture that controls the opacity across the surface
-			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
-
-			Only the color of the texture is used, ignoring the alpha channel if one exists.
-			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
-			green channel when sampling this texture due to the extra bit of precision provided
-			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
-			luminance/alpha textures will also still work as expected.
+		<p>Talpha贴图是一种灰度纹理,用于控制整个表面的不透明度(黑色:完全透明;白色:完全不透明)。默认值为null。<br /><br />
+			仅使用纹理的颜色,忽略alpha通道(如果存在)。对于RGB和RGBA纹理,[page:WebGLRenderer WebGL]渲染器在采样此纹理时将使用绿色通道,
+			因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。Luminance-only以及luminance/alpha纹理也仍然有效。
 		</p>
 
 		<h3>[property:Texture aoMap]</h3>
-		<p>The red channel of this texture is used as the ambient occlusion map. Default is null.
-		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
-		and [page:Texture offset] Texture properties.</p>
+		<p>该纹理的红色通道用作环境遮挡贴图。默认值为null。aoMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]属性。</p>
 
 		<h3>[property:Float aoMapIntensity]</h3>
-		<p>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</p>
+		<p>环境遮挡效果的强度。默认值为1。零是不遮挡效果。</p>
 
 		<h3>[property:Texture bumpMap]</h3>
-		<p>
-			The texture to create a bump map. The black and white values map to the perceived depth in relation to the lights.
-			Bump doesn't actually affect the geometry of the object, only the lighting. If a normal map is defined this will
-			be ignored.
+		<p> 用于创建凹凸贴图的纹理。黑色和白色值映射到与光照相关的感知深度。凹凸实际上不会影响对象的几何形状,只影响光照。如果定义了法线贴图,则将忽略该贴图。
 		</p>
 
 		<h3>[property:Float bumpScale]</h3>
-		<p>How much the bump map affects the material. Typical ranges are 0-1. Default is 1.</p>
+		<p> 凹凸贴图会对材质产生多大影响。典型范围是0-1。默认值为1。</p>
 
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:Integer combine]</h3>
-		<p>
-			How to combine the result of the surface's color with the environment map, if any.<br /><br />
+		<p> 如何将表面颜色的结果与环境贴图(如果有)结合起来。<br /><br />
 
-			Options are [page:Materials THREE.Multiply] (default), [page:Materials THREE.MixOperation],
-			[page:Materials THREE.AddOperation]. If mix is chosen, the [page:.reflectivity] is used to
-			blend between the two colors.
+			选项为[page:Materials THREE.Multiply](默认值),[page:Materials THREE.MixOperation],
+			[page:Materials THREE.AddOperation]。如果选择多个,则使用[page:.reflectivity]在两种颜色之间进行混合。
 		</p>
 
 		<h3>[property:Texture displacementMap]</h3>
-		<p>
-			The displacement map affects the position of the mesh's vertices. Unlike other maps
-			which only affect the light and shade of the material the displaced vertices can cast shadows,
-			block other objects, and otherwise act as real geometry. The displacement texture is
-			an image where the value of each pixel (white being the highest) is mapped against,
-			and repositions, the vertices of the mesh.
+		<p> 位移贴图会影响网格顶点的位置,与仅影响材质的光照和阴影的其他贴图不同,移位的顶点可以投射阴影,阻挡其他对象,
+			以及充当真实的几何体。位移纹理是指:网格的所有顶点被映射为图像中每个像素的值(白色是最高的),并且被重定位。
 		</p>
 
 		<h3>[property:Float displacementScale]</h3>
-		<p>
-			How much the displacement map affects the mesh (where black is no displacement,
-			and white is maximum displacement). Without a displacement map set, this value is not applied.
-			 Default is 1.
+		<p> 位移贴图对网格的影响程度(黑色是无位移,白色是最大位移)。如果没有设置位移贴图,则不会应用此值。默认值为1。
 		</p>
 
 		<h3>[property:Float displacementBias]</h3>
 		<p>
-			The offset of the displacement map's values on the mesh's vertices.
-			Without a displacement map set, this value is not applied. Default is 0.
+			位移贴图在网格顶点上的偏移量。如果没有设置位移贴图,则不会应用此值。默认值为0。
 		</p>
 
 		<h3>[property:Color emissive]</h3>
-		<p>
-		Emissive (light) color of the material, essentially a solid color unaffected by other lighting.
-		Default is black.
+		<p> 材质的放射(光)颜色,基本上是不受其他光照影响的固有颜色。默认为黑色。
 		</p>
 
 		<h3>[property:Texture emissiveMap]</h3>
-		<p>
-		Set emisssive (glow) map. Default is null. The emissive map color is modulated by
-		the emissive color and the emissive intensity. If you have an emissive map, be sure to
-		set the emissive color to something other than black.
+		<p> 设置放射(发光)贴图。默认值为null。放射贴图颜色由放射颜色和强度所调节。
+			如果你有一个放射贴图,请务必将放射颜色设置为黑色以外的其他颜色。
 		</p>
 
 		<h3>[property:Float emissiveIntensity]</h3>
-		<p>Intensity of the emissive light. Modulates the emissive color. Default is 1.</p>
+		<p>放射光强度。调节发光颜色。默认为1。</p>
 
 		<h3>[property:TextureCube envMap]</h3>
-		<p>The environment map. Default is null.</p>
+		<p>环境贴图。默认值为null。</p>
 
 		<h3>[property:Boolean isMeshPhongMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh Phong materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为Phong网格材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 
 		<h3>[property:Texture lightMap]</h3>
-		<p>The light map. Default is null. The lightMap requires a second set of UVs,
-		and consequently will ignore the [page:Texture repeat] and [page:Texture offset]
-		Texture properties.</p>
+		<p>光照贴图。默认值为null。lightMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]纹理属性。</p>
 
 		<h3>[property:Float lightMapIntensity]</h3>
-		<p>Intensity of the baked light. Default is 1.</p>
+		<p>烘焙光的强度。默认值为1。</p>
 
 		<h3>[property:Texture map]</h3>
-		<p>The color map. Default is null. The texture map color is modulated by the diffuse [page:.color].</p>
+		<p>颜色贴图。默认为null。纹理贴图颜色由漫反射颜色[page:.color]调节。</p>
 
 		<h3>[property:boolean morphNormals]</h3>
-		<p>
-			Defines whether the material uses morphNormals. Set as true to pass morphNormal
-			attributes from the [page:Geometry]	to the shader. Default is *false*.
+		<p> 定义是否使用morphNormals。设置为true可将morphNormal属性从[page:Geometry]传递到shader。默认值为*false*。
 		</p>
 
 		<h3>[property:Boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>定义材质是否使用morphTargets。默认值为false。</p>
 
 		<h3>[property:Texture normalMap]</h3>
-		<p>
-			The texture to create a normal map. The RGB values affect the surface normal for each pixel fragment and change
-			the way the color is lit. Normal maps do not change the actual shape of the surface, only the lighting.
+		<p> 用于创建法线贴图的纹理。RGB值会影响每个像素片段的曲面法线,并更改颜色照亮的方式。法线贴图不会改变曲面的实际形状,只会改变光照。
 		</p>
 
 		<h3>[property:Integer normalMapType]</h3>
-		<p>
-			The type of normal map.<br /><br />
-
-			Options are [page:constant THREE.TangentSpaceNormalMap] (default), and [page:constant THREE.ObjectSpaceNormalMap].
+		<p> 法线贴图的类型。<br /><br />
+			选项为[page:constant THREE.TangentSpaceNormalMap](默认)和[page:constant THREE.ObjectSpaceNormalMap]。
 		</p>
 
 		<h3>[property:Vector2 normalScale]</h3>
-		<p>
-			How much the normal map affects the material. Typical ranges are 0-1.
-			Default is a [page:Vector2] set to (1,1).
+		<p> 法线贴图对材质的影响程度。典型范围是0-1。默认值是[page:Vector2]设置为(1,1)。
 		</p>
 
 
 		<h3>[property:Float reflectivity]</h3>
-		<p>
-			How much the environment map affects the surface; also see [page:.combine].
-			The default value is 1 and the valid range is between 0 (no reflections) and 1 (full reflections).
+		<p> 环境贴图对表面的影响程度; 见[page:.combine]。默认值为1,有效范围介于0(无反射)和1(完全反射)之间。
 		</p>
 
 		<h3>[property:Float refractionRatio]</h3>
-		<p>
-			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
-			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
-			The refraction ratio should not exceed 1. Default is *0.98*.
+		<p> 空气的折射率(IOR)(约为1)除以材质的折射率。它与环境映射模式[page:Textures THREE.CubeRefractionMapping]
+			和[page:Textures THREE.EquirectangularRefractionMapping]一起使用。
+			折射率不应超过1。默认值为*0.98*。
 		</p>
 
 		<h3>[property:Float shininess]</h3>
-		<p>How shiny the [page:.specular] highlight is; a higher value gives a sharper highlight. Default is *30*.</p>
+		<p> [page:.specular]高亮的程度,越高的值越闪亮。默认值为 *30*。</p>
 
 
 		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
+		<p>材质是否使用蒙皮。默认值为false。</p>
 
 		<h3>[property:Color specular]</h3>
-		<p>
-			Specular color of the material. Default is a [page:Color] set to *0x111111* (very dark grey).<br /><br />
-
-			This defines how shiny the material is and the color of its shine.
+		<p> 材质的高光颜色。默认值为*0x111111*(深灰色)的颜色[page:Color]。<br /><br />
+			这定义了材质的光泽度和光泽的颜色。
 		</p>
 
 		<h3>[property:Texture specularMap]</h3>
-		<p>
-			The specular map value affects both how much the specular surface highlight
-			contributes and how much of the environment map affects the surface. Default is null.
+		<p> 镜面反射贴图值会影响镜面高光以及环境贴图对表面的影响程度。默认值为null。
 		</p>
 
 		<h3>[property:Boolean wireframe]</h3>
-		<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
+		<p>将几何体渲染为线框。默认值为*false*(即渲染为平面多边形)。</p>
 
 		<h3>[property:String wireframeLinecap]</h3>
-		<p>
-			Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
+		<p> 定义线两端的外观。可选值为 'butt','round' 和 'square'。默认为'round'。<br /><br />
 
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:String wireframeLinejoin]</h3>
 		<p>
-			Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+			定义线连接节点的样式。可选值为 'round', 'bevel' 和 'miter'。默认值为 'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与
+			大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 21 - 30
docs/api/zh/materials/MeshPhysicalMaterial.html

@@ -10,12 +10,10 @@
 	<body>
 		[page:Material] &rarr; [page:MeshStandardMaterial] &rarr;
 
-		<h1>[name]</h1>
+		<h1>物理网格材质([name])</h1>
 
-		<p class="desc">
-			An extension of the [page:MeshStandardMaterial] that allows for greater control over reflectivity.<br /><br />
-
-			Note that for best results you should always specify an [page:.envMap environment map] when using this material.
+		<p class="desc"> [page:MeshStandardMaterial]的扩展,能够更好地控制反射率。<br /><br />
+			请注意,为了获得最佳效果,您在使用此材质时应始终指定环境贴图。
 		</p>
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshPhysicalMaterial"></iframe>
@@ -36,61 +34,54 @@
 
 		</script>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 		[example:webgl_materials_variations_physical materials / variations / physical]<br />
 		[example:webgl_materials_reflectivity materials / reflectivity]
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-		[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-		Any property of the material (including any property inherited from [page:Material] and [page:MeshStandardMaterial]) can be passed in here.<br /><br />
-
-		The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-		string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)<br /><br />
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] and [page:MeshStandardMaterial] classes for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Float clearCoat]</h3>
 		<p>
-		ClearCoat level, from *0.0* to *1.0*. Default is *0.0*.
+			ClearCoat级别,从*0.0*到*1.0*。默认值为*0.0*。
 		</p>
 
 		<h3>[property:Float clearCoatRoughness]</h3>
-		<p>How rough the clearCoat appears, from *0.0* to *1.0*. Default is *0.0*.</p>
+		<p> clearCoat看起来的粗糙程度,从*0.0*到*1.0*。默认值为*0.0*。</p>
 
 		<h3>[property:Boolean isMeshPhysicalMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh physical materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为Lambert网格材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Object defines]</h3>
-		<p>An object of the form:
+		<p> 如下形式的对象:
 			<code>
 				{ 'PHYSICAL': '' };
 			</code>
-
-			This is used by the [page:WebGLRenderer] for selecting shaders.
+			[page:WebGLRenderer]使用它来选择shaders。
 		</p>
 
 		<h3>[property:Float reflectivity]</h3>
-		<p>
-		Degree of reflectivity, from *0.0* to *1.0*. Default is *0.5*.<br />
-
-		This models the reflectivity of non-metallic materials. It has no effect when [page:MeshStandardMaterial.metalness metalness] is *1.0*
+		<p> 反射度,从*0.0*到*1.0*。默认值为*0.5*。<br />
+			这模拟了非金属材质的反射率。当[page:MeshStandardMaterial]为*1.0*时,此属性无效。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] and [page:MeshStandardMaterial] classes for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material] 和[page:MeshStandardMaterial]。</p>
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 80 - 141
docs/api/zh/materials/MeshStandardMaterial.html

@@ -10,35 +10,24 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>标准网格材质([name])</h1>
 
-		<p class="desc">
-			A standard physically based material, using Metallic-Roughness workflow.<br /><br />
+		<p class="desc"> 一种基于物理的标准材质,使用Metallic-Roughness工作流程。<br /><br />
+			基于物理的渲染(PBR)最近已成为许多3D应用程序的标准,例如[link:https://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/ Unity],
+			[link:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/ Unreal]和
+			[link:http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017 3D Studio Max]。<br /><br />
+			这种方法与旧方法的不同之处在于,不使用近似值来表示光与表面的相互作用,而是使用物理上正确的模型。
+			我们的想法是,不是在特定照明下调整材质以使其看起来很好,而是可以创建一种材质,能够“正确”地应对所有光照场景。<br /><br />
 
-			Physically based rendering (PBR) has recently become the standard in many 3D applications, such as
-			[link:https://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/ Unity],
-			[link:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/ Unreal] and
-			[link:http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017 3D Studio Max].<br /><br />
+			在实践中,该材质提供了比[page:MeshLambertMaterial] 或[page:MeshPhongMaterial] 更精确和逼真的结果,代价是计算成本更高。<br /><br />
 
-			This approach differs from older approaches in that instead of using approximations for the way in which
-			light	interacts with a surface, a physically correct model is used. The idea is that, instead of
-			tweaking materials to look good under specific lighting, a material can	be created that
-			will react 'correctly' under all lighting scenarios.<br /><br />
 
-			In practice this gives a more	accurate and realistic looking result than the [page:MeshLambertMaterial]
-			or [page:MeshPhongMaterial], at the cost of being somewhat more computationally expensive.<br /><br />
+			计算着色的方式与[page:MeshPhongMaterial]相同,都使用[link:https://en.wikipedia.org/wiki/Phong_shading Phong]着色模型,
+			这会计算每个像素的阴影(即在[link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragment shader],
+			AKA pixel shader中), 与[page:MeshLambertMaterial]使用的Gouraud模型相比,该模型的结果更准确,但代价是牺牲一些性能。<br /><br />
 
-			Shading is calculated in the same way as for the [page:MeshPhongMaterial], using a
-			[link:https://en.wikipedia.org/wiki/Phong_shading Phong] shading model.	This calculates shading
-			per pixel (i.e. in the [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragment shader],
-			AKA pixel shader) which gives more accurate results than the Gouraud model used by
-			[page:MeshLambertMaterial], at the cost of some performance.<br /><br />
-
-			Note that for best results you should always specify an [page:.envMap environment map] when using
-			this material.<br /><br />
-
-			For a non-technical introduction to the concept of PBR and how to set up a PBR material,
-			check out these articles by the people at [link:https://www.marmoset.co marmoset]:
+			请注意,为获得最佳效果,您在使用此材质时应始终指定[page:.envMap environment map]。<br /><br />
+			有关PBR概念的非技术性介绍以及如何设置PBR材质,请查看[link:https://www.marmoset.co marmoset]成员的这些文章:
 			<ul>
 				<li>
 					[link:https://www.marmoset.co/posts/basic-theory-of-physically-based-rendering/ Basic Theory of Physically Based Rendering]
@@ -48,10 +37,9 @@
 				</li>
 			</ul>
 		</p>
-		<p>
-			Technical details of the approach used in three.js (and most other PBR systems) can be found is this
-			[link:https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf paper from Disney] (pdf),
-			by Brent Burley.
+		<p>在 three.js(以及其他大多数PBR系统)中使用方法的技术细节,
+			可以在Brent Burley撰写的[link:https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf paper from Disney] (pdf)
+			中查看。
 		</p>
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshStandardMaterial"></iframe>
@@ -72,224 +60,175 @@
 
 		</script>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
-
-			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Texture alphaMap]</h3>
-		<p>The alpha map is a grayscale texture that controls the opacity across the surface
-			(black: fully transparent; white: fully opaque). Default is null.<br /><br />
-
-			Only the color of the texture is used, ignoring the alpha channel if one exists.
-			For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the
-			green channel when sampling this texture due to the extra bit of precision provided
-			for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and
-			luminance/alpha textures will also still work as expected.
+		<p>alpha贴图是一种灰度纹理,用于控制整个表面的不透明度(黑色:完全透明;白色:完全不透明)。默认值为null。<br /><br />
+			仅使用纹理的颜色,忽略alpha通道(如果存在)。对于RGB和RGBA纹理,[page:WebGLRenderer WebGL]渲染器在采样此纹理时将使用绿色通道,
+			因为在DXT压缩和未压缩RGB 565格式中为绿色提供了额外的精度。Luminance-only以及luminance/alpha纹理也仍然有效。
 		</p>
 
 		<h3>[property:Texture aoMap]</h3>
-		<p>The red channel of this texture is used as the ambient occlusion map. Default is null.
-		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
-		and [page:Texture offset] Texture properties.</p>
+		<p>该纹理的红色通道用作环境遮挡贴图。默认值为null。aoMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]属性。</p>
 
 		<h3>[property:Float aoMapIntensity]</h3>
-		<p>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</p>
+		<p>环境遮挡效果的强度。默认值为1。零是不遮挡效果。</p>
 
 		<h3>[property:Texture bumpMap]</h3>
-		<p>
-			The texture to create a bump map. The black and white values map to the perceived depth in relation to the lights.
-			Bump doesn't actually affect the geometry of the object, only the lighting. If a normal map is defined this will
-			be ignored.
+		<p> 用于创建凹凸贴图的纹理。黑色和白色值映射到与光照相关的感知深度。凹凸实际上不会影响对象的几何形状,只影响光照。如果定义了法线贴图,则将忽略该贴图。
 		</p>
 
 		<h3>[property:Float bumpScale]</h3>
-		<p>How much the bump map affects the material. Typical ranges are 0-1. Default is 1.</p>
+		<p>凹凸贴图会对材质产生多大影响。典型范围是0-1。默认值为1。</p>
 
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:Object defines]</h3>
-		<p>An object of the form:
+		<p>如下形式的对象:
 			<code>
 				{ 'STANDARD': '' };
 			</code>
-
-			This is used by the [page:WebGLRenderer] for selecting shaders.
+			[page:WebGLRenderer]使用它来选择shaders。
 		</p>
 
 		<h3>[property:Texture displacementMap]</h3>
-		<p>
-			The displacement map affects the position of the mesh's vertices. Unlike other maps
-			which only affect the light and shade of the material the displaced vertices can cast shadows,
-			block other objects, and otherwise act as real geometry. The displacement texture is
-			an image where the value of each pixel (white being the highest) is mapped against,
-			and repositions, the vertices of the mesh.
+		<p> 位移贴图会影响网格顶点的位置,与仅影响材质的光照和阴影的其他贴图不同,移位的顶点可以投射阴影,阻挡其他对象,
+			以及充当真实的几何体。位移纹理是指:网格的所有顶点被映射为图像中每个像素的值(白色是最高的),并且被重定位。
 		</p>
 
 		<h3>[property:Float displacementScale]</h3>
 		<p>
-			How much the displacement map affects the mesh (where black is no displacement,
-			and white is maximum displacement). Without a displacement map set, this value is not applied.
-			 Default is 1.
+			位移贴图对网格的影响程度(黑色是无位移,白色是最大位移)。如果没有设置位移贴图,则不会应用此值。默认值为1。
 		</p>
 
 		<h3>[property:Float displacementBias]</h3>
 		<p>
-			The offset of the displacement map's values on the mesh's vertices.
-			Without a displacement map set, this value is not applied. Default is 0.
+			位移贴图在网格顶点上的偏移量。如果没有设置位移贴图,则不会应用此值。默认值为0。
 		</p>
 
 		<h3>[property:Color emissive]</h3>
-		<p>
-		Emissive (light) color of the material, essentially a solid color unaffected by other lighting.
-		Default is black.
+		<p>材质的放射(光)颜色,基本上是不受其他光照影响的固有颜色。默认为黑色。
 		</p>
 
 		<h3>[property:Texture emissiveMap]</h3>
-		<p>
-		Set emisssive (glow) map. Default is null. The emissive map color is modulated by
-		the emissive color and the emissive intensity. If you have an emissive map, be sure to
-		set the emissive color to something other than black.
+		<p>设置放射(发光)贴图。默认值为null。放射贴图颜色由放射颜色和强度所调节。
+			如果你有一个放射贴图,请务必将放射颜色设置为黑色以外的其他颜色。
 		</p>
 
 		<h3>[property:Float emissiveIntensity]</h3>
-		<p>Intensity of the emissive light. Modulates the emissive color. Default is 1.</p>
+		<p>放射光强度。调节发光颜色。默认为1。</p>
 
 		<h3>[property:TextureCube envMap]</h3>
-		<p>The environment map. Default is null.  Note that in order for the material roughness
-		property to correctly blur out the environment map, the shader must have access to mipmaps
-		of the env texture.  TextureCubes created with default settings are correctly configured;
-		if adjusting texture parameters manually, ensure minFilter is set to one of the MipMap options,
-		and that mip maps have not been otherwise forcibly disabled.</p>
+		<p> 环境贴图。默认值为null。
+			请注意,为了使材质粗糙度属性能够正确地模糊环境贴图,shader必须能够访问环境纹理的mipmaps。
+			使用默认设置创建的TextureCubes已正确配置; 如果手动调整纹理参数,
+			请确保将minFilter设置为其中一个MipMap选项,并且未强制禁用mip贴图。</p>
 		<p>
-		Note: only [link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps] are supported 
-		for MeshStandardMaterial. If you want to use an equirectangular map you will need to use the 
-		[link:https://github.com/mrdoob/three.js/blob/dev/examples/js/loaders/EquirectangularToCubeGenerator.js EquirectangularToCubeGenerator]. 
-		See this [link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example] for details.
+			注意:MeshStandardMaterial 仅支持[link:https://threejs.org/docs/#api/textures/CubeTexture cube environment maps]。
+			如果要使用equirectangular贴图,则需要使用 [link:https://github.com/mrdoob/three.js/blob/dev/examples/js/loaders/EquirectangularToCubeGenerator.js EquirectangularToCubeGenerator]。
+			详细信息请参阅此示例[link:https://threejs.org/examples/webgl_materials_envmaps_exr.html example]。
 		</p>
 
 		<h3>[property:Float envMapIntensity]</h3>
-		<p>Scales the effect of the environment map by multiplying its color.</p>
+		<p> 通过乘以环境贴图的颜色来缩放环境贴图的效果。</p>
 
 		<h3>[property:Boolean isMeshStandardMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh standard materials. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
+		<p> 用于检查此类或派生类是否为标准网格材质。默认值为 *true*。<br /><br />
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 
 		<h3>[property:Texture lightMap]</h3>
-		<p>The light map. Default is null. The lightMap requires a second set of UVs,
-		and consequently will ignore the [page:Texture repeat] and [page:Texture offset]
-		Texture properties.</p>
+		<p>光照贴图。默认值为null。lightMap需要第二组UVs,因此将忽略[page:Texture repeat]和[page:Texture offset]纹理属性。</p>
 
 		<h3>[property:Float lightMapIntensity]</h3>
-		<p>Intensity of the baked light. Default is 1.</p>
+		<p>烘焙光的强度。默认值为1。</p>
 
 		<h3>[property:Texture map]</h3>
-		<p>The color map. Default is null. The texture map color is modulated by the diffuse [page:.color].</p>
+		<p>颜色贴图。默认为null。纹理贴图颜色由漫反射颜色[page:.color]调节。</p>
 
 		<h3>[property:Float metalness]</h3>
-		<p>
-			How much the material is like a metal. Non-metallic materials such as wood or stone use 0.0, metallic use 1.0, with nothing
-			(usually) in between. Default is 0.5. A value between 0.0 and 1.0 could be used for a rusty metal look. If metalnessMap is
-			also provided, both values are multiplied.
+		<p> 材质与金属的相似度。非金属材质,如木材或石材,使用0.0,金属使用1.0,通常没有中间值。
+			默认值为0.5。0.0到1.0之间的值可用于生锈金属的外观。如果还提供了metalnessMap,则两个值相乘。
 		</p>
 
 		<h3>[property:Texture metalnessMap]</h3>
-		<p>The blue channel of this texture is used to alter the metalness of the material.</p>
+		<p> 该纹理的蓝色通道用于改变材质的金属度。</p>
 
 		<h3>[property:boolean morphNormals]</h3>
-		<p>
-			Defines whether the material uses morphNormals. Set as true to pass morphNormal
-			attributes from the [page:Geometry]	to the shader. Default is *false*.
+		<p> 定义是否使用morphNormals。设置为true可将morphNormal属性从[page:Geometry]传递到shader。默认值为*false*。
 		</p>
 
 		<h3>[property:Boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>定义材质是否使用morphTargets。默认值为false。</p>
 
 		<h3>[property:Texture normalMap]</h3>
-		<p>
-			The texture to create a normal map. The RGB values affect the surface normal for each pixel fragment and change
-			the way the color is lit. Normal maps do not change the actual shape of the surface, only the lighting.
+		<p>用于创建法线贴图的纹理。RGB值会影响每个像素片段的曲面法线,并更改颜色照亮的方式。法线贴图不会改变曲面的实际形状,只会改变光照。
 		</p>
 
 		<h3>[property:Integer normalMapType]</h3>
-		<p>
-			The type of normal map.<br /><br />
-
-			Options are [page:constant THREE.TangentSpaceNormalMap] (default), and [page:constant THREE.ObjectSpaceNormalMap].
+		<p>法线贴图的类型。<br /><br />
+			选项为[page:constant THREE.TangentSpaceNormalMap](默认)和[page:constant THREE.ObjectSpaceNormalMap]。
 		</p>
 
 		<h3>[property:Vector2 normalScale]</h3>
-		<p>
-			How much the normal map affects the material. Typical ranges are 0-1.
-			Default is a [page:Vector2] set to (1,1).
+		<p> 法线贴图对材质的影响程度。典型范围是0-1。默认值是[page:Vector2]设置为(1,1)。
 		</p>
 
 		<h3>[property:Float refractionRatio]</h3>
-		<p>
-			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
-			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
-			The refraction ratio should not exceed 1. Default is *0.98*.
+		<p> 空气的折射率(IOR)(约为1)除以材质的折射率。它与环境映射模式[page:Textures THREE.CubeRefractionMapping]
+			和[page:Textures THREE.EquirectangularRefractionMapping]一起使用。
+			折射率不应超过1。默认值为*0.98*。
 		</p>
 
 		<h3>[property:Float roughness]</h3>
-		<p>
-			How rough the material appears. 0.0 means a smooth mirror reflection, 1.0 means fully diffuse. Default is 0.5.
-			If roughnessMap is also provided, both values are multiplied.
+		<p> 材质的粗糙程度。0.0表示平滑的镜面反射,1.0表示完全漫反射。默认值为0.5。如果还提供roughnessMap,则两个值相乘。
 		</p>
 
 		<h3>[property:Texture roughnessMap]</h3>
-		<p>The green channel of this texture is used to alter the roughness of the material.</p>
+		<p>该纹理的绿色通道用于改变材质的粗糙度。</p>
 
 		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
+		<p>材质是否使用蒙皮。默认值为false。</p>
 
 		<h3>[property:Boolean wireframe]</h3>
-		<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
+		<p>将几何体渲染为线框。默认值为*false*(即渲染为平面多边形)。</p>
 
 		<h3>[property:String wireframeLinecap]</h3>
-		<p>
-			Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
-
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+		<p> 定义线两端的外观。可选值为 'butt','round' 和 'square'。默认为'round'。<br /><br />
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:String wireframeLinejoin]</h3>
 		<p>
-			Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
+			定义线连接节点的样式。可选值为 'round', 'bevel' 和 'miter'。默认值为 'round'。<br /><br />
 
-			This corresponds to the [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
-			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
+			该属性对应[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]属性,
+			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 17 - 21
docs/api/zh/materials/MeshToonMaterial.html

@@ -10,9 +10,9 @@
 	<body>
 		[page:Material] &rarr; [page:MeshPhongMaterial] &rarr;
 
-		<h1>[name]</h1>
+		<h1>卡通网格材质([name])</h1>
 
-		<div class="desc">An extension of the [page:MeshPhongMaterial] with toon shading.</div>
+		<div class="desc">[page:MeshPhongMaterial]卡通着色的扩展。</div>
 
 		<!-- <iframe id="scene" src="scenes/material-browser.html#MeshStandardMaterial"></iframe>
 
@@ -32,49 +32,45 @@
 
 		</script> -->
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 		[example:webgl_materials_variations_toon materials / variations / toon]<br />
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-		[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-		Any property of the material (including any property inherited from [page:Material] and [page:MeshStandardMaterial]) can be passed in here.<br /><br />
-
-		The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-		string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]和[page:MeshStandardMaterial]继承的任何属性)。<br /><br />
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] and [page:MeshPhongMaterial] classes for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]和[page:MeshPhongMaterial]。</p>
 
 		<h3>[property:Texture gradientMap]</h3>
-		<p>Gradient map for the toon shading. Default is *null*.</p>
+		<p> 卡通着色的渐变贴图,默认值为*null*。</p>
 
 		<h3>[property:Boolean isMeshToonMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are mesh toon materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为卡通网格材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Object defines]</h3>
-		<p>An object of the form:
+		<p>如下形式的对象:
 			<code>
 				{ 'TOON': '' };
 			</code>
 
-			This is used by the [page:WebGLRenderer] for selecting shaders.
+			[page:WebGLRenderer]使用它来选择shaders。
 		</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] and [page:MeshPhongMaterial] classes for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]和[page:MeshPhongMaterial]。</p>
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 17 - 20
docs/api/zh/materials/PointsMaterial.html

@@ -10,11 +10,11 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>点材质([name])</h1>
 
-		<p class="desc">The default material used by [page:Points].</p>
+		<p class="desc">[page:Points]使用的默认材质。</p>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 		<p>
 			[example:misc_controls_fly misc / controls / fly]<br />
 			[example:webgl_buffergeometry_drawcalls WebGL / BufferGeometry / drawcalls]<br />
@@ -56,44 +56,41 @@ scene.add( starField );
 		</code>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。<br /><br />
 
-			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),内部调用[page:Color.set](color)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff).</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。</p>
 
 		<h3>[property:Boolean isPointsMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are points materials. Default is *true*.<br /><br />
+		<p> 用于检查此类或派生类是否为点材质。默认值为 *true*。<br /><br />
 
-			You should not change this, as it used internally for optimisation.
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Texture map]</h3>
 
-		<p>Sets the color of the points using data from a [page:Texture].</p>
+		<p>使用[page:Texture]中的数据设置点的颜色。</p>
 
 		<h3>[property:Boolean morphTargets]</h3>
-		<p>Define whether the material uses morphTargets. Default is false.</p>
+		<p>材质是否使用morphTargets。默认值为false。</p>
 
 		<h3>[property:Number size]</h3>
-		<p>Sets the size of the points. Default is 1.0.</p>
+		<p>设置点的大小。默认值为1.0。</p>
 
 		<h3>[property:Boolean sizeAttenuation]</h3>
-		<p>Specify whether points' size is attenuated by the camera depth. (Perspective camera only.) Default is true.</p>
+		<p>指定点的大小是否因相机深度而衰减。(仅限透视摄像头。)默认为true。 </p>
 
 
-		<h2>Methods</h2>
+		<h2>方法(Methods)</h2>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 13 - 18
docs/api/zh/materials/RawShaderMaterial.html

@@ -10,14 +10,12 @@
 	<body>
 		[page:ShaderMaterial] &rarr;
 
-		<h1>[name]</h1>
+		<h1>原始着色器材质([name])</h1>
 
-		<p class="desc">
-			This class works just like [page:ShaderMaterial], except that definitions of
-			built-in uniforms and attributes are not automatically prepended to the GLSL shader code.
+		<p class="desc"> 此类的工作方式与[page:ShaderMaterial]类似,不同之处在于内置的uniforms和attributes的定义不会自动添加到GLSL shader代码中。
 		</p>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 		<p>
 			[example:webgl_buffergeometry_rawshader WebGL / buffergeometry / rawshader]<br />
 			[example:webgl_buffergeometry_instancing_billboards WebGL / buffergeometry / instancing / billboards]<br />
@@ -40,31 +38,28 @@ var material = new THREE.RawShaderMaterial( {
 } );
 		</code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material] and [page:ShaderMaterial]) can be passed in here.<br /><br />
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material] 和 [page:ShaderMaterial]继承的任何属性)。<br /><br />
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] and [page:ShaderMaterial] classes for common methods.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]和[page:ShaderMaterial]。</p>
 
 		<h3>[property:Boolean isRawShaderMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are raw shader materials. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
+		<p> 用于检查此类或派生类是否为点材质。默认值为 *true*。<br /><br />
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] and [page:ShaderMaterial] classes for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]和[page:ShaderMaterial]。</p>
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 112 - 174
docs/api/zh/materials/ShaderMaterial.html

@@ -10,52 +10,41 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>着色器材质([name])</h1>
 
-		<p class="desc">
-			A material rendered with custom shaders. A shader is a small program written in
-			[link:https://www.khronos.org/files/opengles_shading_language.pdf GLSL] that runs on the GPU.
-			You may want to use a custom shader if you need to:
+		<p class="desc"> 使用自定义shader渲染的材质。
+			shader是一个用[link:https://www.khronos.org/files/opengles_shading_language.pdf GLSL]编写的小程序 ,在GPU上运行。
+			您可能需要使用自定义shader,如果你要:
 		<ul>
-			<li>implement an effect not included with any of the built-in [page:Material materials]</li>
-			<li>combine many objects into a single [page:Geometry] or [page:BufferGeometry] in order to improve performance</li>
+			<li>要实现内置 [page:Material materials] 之外的效果。</li>
+			<li>将许多对象组合成单个[page:Geometry]或[page:BufferGeometry]以提高性能。</li>
 		</ul>
-		There are the following notes to bear in mind when using a *ShaderMaterial*:
-
+		使用*ShaderMaterial*时需要注意以下注意事项:
 		<ul>
-			<li>
-				A *ShaderMaterial* will only be rendered properly by [page:WebGLRenderer],
-				since the GLSL code in the [link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertexShader]
-				and [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragmentShader] properties must
-				be compiled and run on the GPU using WebGL.
+			<li>*ShaderMaterial* 只有使用 [page:WebGLRenderer] 才可以绘制正常,
+				因为 [link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertexShader]
+				和 [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragmentShader]
+				属性中GLSL代码必须使用WebGL来编译并运行在GPU中。
 			</li>
-			<li>
-				As of THREE r72, directly assigning attributes in a ShaderMaterial is no longer supported.
-				A [page:BufferGeometry] instance (instead of a [page:Geometry] instance) must be used instead,
-				using [page:BufferAttribute] instances to define custom attributes.
+			<li> 从 THREE r72开始,不再支持在ShaderMaterial中直接分配属性。
+				必须使用 [page:BufferGeometry]实例 (而不是 [page:Geometry] 实例),使用[page:BufferAttribute]实例来定义自定义属性。
 			</li>
-			<li>
-				As of THREE r77, [page:WebGLRenderTarget] or [page:WebGLRenderTargetCube] instances
-				are no longer supposed to be used as uniforms. Their [page:Texture texture] property
-				must be used instead.
+			<li> 从 THREE r77开始,[page:WebGLRenderTarget] 或 [page:WebGLRenderTargetCube] 实例不再被用作uniforms。
+				必须使用它们的[page:Texture texture] 属性。
 			</li>
-			<li>
-				Built in attributes and uniforms are passed to the shaders along with your code.
-				If you don't want the [page:WebGLProgram] to add anything to your shader code, you can use
-				[page:RawShaderMaterial] instead of this class.
+			<li> 内置attributes和uniforms与代码一起传递到shaders。
+				如果您不希望[page:WebGLProgram]向shader代码添加任何内容,则可以使用[page:RawShaderMaterial]而不是此类。
 			</li>
-			<li>
-				You can use the directive #pragma unroll_loop in order to unroll a *for* loop in GLSL by the shader preprocessor.
-				The directive has to be placed right above the loop. The loop formatting has to correspond to a defined standard.
+			<li> 您可以使用指令#pragma unroll_loop,以便通过shader预处理器在GLSL中展开for循环。
+				该指令必须放在循环的正上方。循环格式必须与定义的标准相对应。
 				<ul>
-					<li>
-						The loop has to be [link:https://en.wikipedia.org/wiki/Normalized_loop normalized].
+					<li> 循环必须标准化[link:https://en.wikipedia.org/wiki/Normalized_loop normalized]。
 					</li>
 					<li>
-						The loop variable has to be *i*.
+						循环变量必须是*i*。
 					</li>
 					<li>
-						The loop has to use a certain whitespace formatting.
+						循环必须使用某种空格格式。
 					</li>
 				</ul>
 				<code>
@@ -70,7 +59,7 @@
 		</ul>
 		</p>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 
 		<p>
 			[example:webgl_animation_cloth webgl / animation / cloth ]<br />
@@ -122,95 +111,80 @@
 		} );
 		</code>
 
-		<h2>Vertex shaders and fragment shaders</h2>
+		<h2>顶点着色器和片元着色器(Vertex shaders and fragment shaders)</h2>
 
 		<div>
-			<p>You can specify two different types of shaders for each material:</p>
+			<p>您可以为每种材质指定两种不同类型的shaders::</p>
 			<ul>
-				<li>
-					The vertex shader runs first; it receives *attributes*, calculates / manipulates
-					the position of each individual vertex, and passes additional data (*varying*s) to the fragment shader.
+				<li> 顶点着色器首先运行; 它接收*attributes*,
+					计算/操纵每个单独顶点的位置,并将其他数据(*varying*s)传递给片元着色器。
 				</li>
 				<li>
-					The fragment ( or pixel ) shader runs second; it sets the color of each individual "fragment"
-					(pixel) rendered to the screen.
+					片元(或像素)着色器后运行; 它设置渲染到屏幕的每个单独的“片元”(像素)的颜色。
 				</li>
 			</ul>
-			<p>There are three types of variables in shaders: uniforms, attributes, and varyings:</p>
+			<p>shader中有三种类型的变量: uniforms, attributes, 和 varyings:</p>
 			<ul>
-				<li>
-					*Uniforms* are variables that have the same value for all vertices - lighting, fog,
-					and shadow maps are examples of data that would be stored in uniforms.
-					Uniforms can be accessed by both the vertex shader and the fragment shader.
+				<li>*Uniforms*是所有顶点都具有相同的值的变量。
+					比如灯光,雾,和阴影贴图就是被储存在uniforms中的数据。
+					uniforms可以通过顶点着色器和片元着色器来访问。
 				</li>
-				<li>
-					*Attributes* are variables associated with each vertex---for instance, the vertex position,
-					face normal, and vertex color are all examples of data that would be stored in attributes.
-					Attributes can <em>only</em> be accessed within the vertex shader.
+				<li> *Attributes* 与每个顶点关联的变量。例如,顶点位置,法线和顶点颜色都是存储在attributes中的数据。attributes <em>只</em>
+					可以在顶点着色器中访问。
 				</li>
-				<li>
-					*Varyings* are variables that are passed from the vertex shader to the fragment shader.
-					For each fragment, the value of each varying will be smoothly interpolated from the values of adjacent vertices.
+				<li> *Varyings* 是从顶点着色器传递到片元着色器的变量。对于每一个片元,每一个varying的值将是相邻顶点值的平滑插值。
 				</li>
 			</ul>
-			<p>
-				Note that <em>within</em> the shader itself, uniforms and attributes act like constants;
-				you can only modify their values by passing different values to the buffers from your JavaScript code.
+			<p> 注意:在shader <em>内部</em>,uniforms和attributes就像常量;你只能使用JavaScript代码通过缓冲区来修改它们的值。
 			</p>
 		</div>
 
 
-	<h2>Built-in attributes and uniforms</h2>
+	<h2>内置attributes 和 uniforms(Built-in attributes and uniforms)</h2>
 
 	<div>
 			<p>
-			The [page:WebGLRenderer] provides many attributes and uniforms to shaders by default;
-			definitions of these variables are prepended to your *fragmentShader* and *vertexShader*
-			code by the [page:WebGLProgram] when the shader is compiled; you don't need to declare them yourself.
-			See [page:WebGLProgram] for details of these variables.
+				[page:WebGLRenderer]默认情况下为shader提供了许多attributes和uniforms;
+				这些变量定义在shader程序编译时被自动添加到*片元着色器*和*顶点着色器*代码的前面,你不需要自己声明它们。
+				这些变量的描述请参见[page:WebGLProgram]。
 			</p>
 			<p>
-			Some of these uniforms or attributes (e.g. those pertaining lighting, fog, etc.)
-			require properties to be set on the material in order for [page:WebGLRenderer] to copy
-			the appropriate values to the GPU - make sure to set these flags if you want to use these
-			features in your own shader.
+				这些uniforms或attributes(例如,那些和照明,雾等相关的)要求属性设置在材质上,
+				以便 [page:WebGLRenderer]来拷贝合适的值到GPU中。
+				如果你想在自己的shader中使用这些功能,请确保设置这些标志。
 			</p>
 			<p>
-			If you don't want [page:WebGLProgram] to add anything to your shader code, you can use
-			[page:RawShaderMaterial] instead of this class.
+				如果你不希望[page:WebGLProgram] 向你的shader代码中添加任何东西,
+				你可以使用[page:RawShaderMaterial] 而不是这个类。
 			</p>
 		</div>
 
 
-		<h2>Custom attributes and uniforms</h2>
+		<h2>自定义 attributes 和 uniforms(Custom attributes and uniforms)</h2>
 
 		<div>
 			<p>
-				Both custom attributes and uniforms must be declared in your GLSL shader code
-				(within *vertexShader* and/or *fragmentShader*). Custom uniforms must be defined in <em>both</em>
-				the *uniforms* property of your *ShaderMaterial*, whereas any custom attributes must be
-				defined via [page:BufferAttribute] instances. Note that *varying*s only need to
-				be declared within the shader code (not within the material).
+				自定义attributes和uniforms必须在GLSL着色器代码中声明(在 *vertexShader* 和/或 *fragmentShader* 中)。
+				自定义uniforms必须定义为 *ShaderMaterial* 的  *uniforms* 属性,
+				而任何自定义attribtes必须通过[page:BufferAttribute]实例来定义。
+				注意 *varying*s 只需要在shader代码中声明(而不必在材质中)。
 			</p>
-			<p>
-				To declare a custom attribute, please reference the [page:BufferGeometry] page for an overview,
-				and the [page:BufferAttribute] page for a detailed look at the *BufferAttribute* API.
+			<p> 要声明一个自定义属性,更多细节请参考[page:BufferGeometry]页面,
+				以及 [page:BufferAttribute] 页面关于*BufferAttribute* 接口。
 			</p>
 			<p>
-				When creating your attributes, each typed array that you create to hold your
-				attribute's data must be a multiple of your data type's size. For example, if your
-				attribute is a [page:Vector3 THREE.Vector3] type, and you have 3000 vertices in your
-				[page:BufferGeometry], your typed array value must be created with a length of 3000 * 3,
-				or 9000 (one value per-component). A table of each data type's size is shown below for reference:
+				当创建attributes时,您创建的用来保存属性数据的每个类型化数组(typed array)必须是您的数据类型大小的倍数。
+				比如,如果你的属性是一个[page:Vector3 THREE.Vector3]类型,并且在你的缓存几何模型[page:BufferGeometry]中有3000个顶点,
+				那么你的类型化数组的长度必须是3000 * 3,或者9000(一个顶点一个值)。每个数据类型的尺寸如下表所示:
 			</p>
 
 			<table>
-				<caption><a id="attribute-sizes">Attribute sizes</a></caption>
+				<caption><a id="attribute-sizes">属性尺寸</a></caption>
 				<thead>
 					<tr>
-						<th>GLSL type</th>
-						<th>JavaScript type</th>
-						<th>Size</th>
+						<th>GLSL 类型</th>
+						<th>JavaScript 类型</th>
+						<th>尺寸</th>
 					</tr>
 				</thead>
 				<tbody>
@@ -243,13 +217,13 @@
 			</table>
 
 			<p>
-				Note that attribute buffers are <em>not</em> refreshed automatically when their values change. To update custom attributes,
-				set the *needsUpdate* flag to true on the [page:BufferAttribute] of the geometry (see [page:BufferGeometry]
-				for further details).
+				请注意,属性缓冲区 <em>不会</em> 在其值更改时自动刷新。要更新自定义属性,
+				需要在模型的[page:BufferAttribute]中设置*needsUpdate*为true。
+				(查看[page:BufferGeometry]了解细节)。
 			</p>
 
 			<p>
-			To declare a custom [page:Uniform], use the *uniforms* property:
+				要声明一个自定义的[page:Uniform],使用*uniforms*属性:
 			<code>
 			uniforms: {
 				time: { value: 1.0 },
@@ -259,34 +233,29 @@
 			</p>
 
 			<p>
-			You're recommended to update custom [page:Uniform] values depending on [page:Object3D object] and [page:Camera camera]
-			in [page:Object3D.onBeforeRender] because [page:Material] can be shared among [page:Mesh meshes], [page:Matrix4 matrixWorld]
-			of [page:Scene] and [page:Camera] are updated in [page:WebGLRenderer.render], and some effects(ex:VREffect) render a [page:Scene scene]
-			with private their own [page:Camera cameras].
+				在[page:Object3D.onBeforeRender]中,建议根据[page:Object3D object]和[page:Camera camera]来更新自定义[page:Uniform]的值。
+				因为 [page:Material] 可以被[page:Mesh meshes],[page:Scene]的[page:Matrix4 matrixWorld]以及[page:Camera]共享,
+				会在[page:WebGLRenderer.render]中更新,并会对拥有私有[page:Camera cameras]的[page:Scene scene]的渲染造成影响。
 			</p>
 
 		</div>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material]继承的任何属性)。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Boolean clipping]</h3>
-		<p>
-		Defines whether this material supports clipping; true to let the renderer pass the clippingPlanes uniform. Default is false.
+		<p> 定义此材质是否支持剪裁; 如果渲染器传递clippingPlanes uniform,则为true。默认值为false。
 		</p>
 
 		<h3>[property:Object defaultAttributeValues]</h3>
-		<p>
-			When the rendered geometry doesn't include these attributes but the material does,
-			 these default values will be passed to the shaders. This avoids errors when buffer data is missing.
+		<p> 当渲染的几何体不包含这些属性但材质包含这些属性时,这些默认值将传递给shaders。这可以避免在缓冲区数据丢失时出错。
 
 			<code>
 this.defaultAttributeValues = {
@@ -300,26 +269,22 @@ this.defaultAttributeValues = {
 
 
 		<h3>[property:Object defines]</h3>
-		<p>
-		Defines custom constants using *#define* directives within the GLSL code for both the
-		vertex shader and the fragment shader; each key/value pair yields another directive:
+		<p> 使用 #define 指令在GLSL代码为顶点着色器和片段着色器定义自定义常量;每个键/值对产生一行定义语句:
 		<code>
 		defines: {
 			FOO: 15,
 			BAR: true
 		}
 		</code>
-		yields the lines
+		这将在GLSL代码中产生如下定义语句:
 		<code>
 		#define FOO 15
 		#define BAR true
 		</code>
-		in the GLSL code.
 		</p>
 
 		<h3>[property:Object extensions]</h3>
-		<p>
-		An object with the following properties:
+		<p> 一个有如下属性的对象:
 		<code>
 this.extensions = {
 	derivatives: false, // set to use derivatives
@@ -332,138 +297,111 @@ this.extensions = {
 
 
 		<h3>[property:Boolean fog]</h3>
-		<p>
-			Define whether the material color is affected by global fog settings; true to pass
-			fog uniforms to the shader. Default is false.
+		<p> 定义材质颜色是否受全局雾设置的影响; 如果将fog uniforms传递给shader,则为true。默认值为false。
 		</p>
 
 
 		<h3>[property:String fragmentShader]</h3>
 		<p>
-		Fragment shader GLSL code.  This is the actual code for the shader. In the example above,
-		the *vertexShader* and *fragmentShader* code is extracted from the DOM; it could be passed
-		as a string directly or loaded via AJAX instead.
+			片元着色器的GLSL代码。这是shader程序的实际代码。在上面的例子中,
+			*vertexShader*  和 *fragmentShader* 代码是从DOM(HTML文档)中获取的;
+			它也可以作为一个字符串直接传递或者通过AJAX加载。
 		</p>
 
 		<h3>[property:String index0AttributeName]</h3>
-		<p>
-			If set, this calls [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bindAttribLocation gl.bindAttribLocation]
-			to bind a generic vertex index to an attribute variable.
-			Default is undefined.
+		<p> 如果设置,则调用[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bindAttribLocation gl.bindAttribLocation]
+			将通用顶点索引绑定到属性变量。默认值未定义。
 
 		</p>
 
 		<h3>[property:Boolean isShaderMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are shader materials. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
+		<p> 用于检查此类或派生类是否为着色器材质。默认值为 *true*。<br /><br />
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 
 
 
 		<h3>[property:Boolean lights]</h3>
-		<p>
-		Defines whether this material uses lighting; true to pass uniform data related to lighting to this shader. Default is false.
+		<p> 材质是否受到光照的影响。默认值为 *false*。如果传递与光照相关的uniform数据到这个材质,则为true。默认是false。
 		</p>
 
 		<h3>[property:Float linewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
 
 		<h3>[property:Boolean morphTargets]</h3>
-		<p>
-		Defines whether the material uses morphTargets; true morphTarget attributes to this shader
+		<p> 定义材质是否使用 morphTargets。如果将morphTarget attributes传递到此shader,则为true。
 		</p>
 
 		<h3>[property:boolean morphNormals]</h3>
-		<p>
-			Defines whether the material uses morphNormals. Set as true to pass morphNormal attributes from the [page:Geometry]
-			to the shader. Default is *false*.
+		<p> 定义材质是否使用 morphNormals。设置为true,将从[page:Geometry]传递morphNormal属性给shader。默认值是*false*。
 		</p>
 
 
 		<h3>[property:WebGLProgram program]</h3>
-		<p>
-		The compiled shader program associated with this material, generated by [page:WebGLRenderer].
-		You should not need to access this property.
+		<p> 与此材质相关联的编译后的shader程序,由[page:WebGLRenderer]生成。您应该不需要访问此属性。
 		</p>
 
 		<h3>[property:Boolean flatShading]</h3>
-		<p>
-		Define whether the material is rendered with flat shading. Default is false.
+		<p> 定义材质是否使用平面着色进行渲染。默认值为false。
 		</p>
 
 
 		<h3>[property:Boolean skinning]</h3>
-		<p>
-		Define whether the material uses skinning; true to pass skinning attributes to the shader. Default is false.
+		<p> 定义材质是否使用蒙皮; 如果将蒙皮属性传递给shader,则为true。默认值为false。
 		</p>
 
 		<h3>[property:Object uniforms]</h3>
-		<p>
-			An object of the form:
+		<p> 如下形式的对象:
 			<code>
 { "uniform1": { value: 1.0 }, "uniform2": { value: 2 } }
 			</code>
-		specifying the uniforms to be passed to the shader code; keys are uniform names, values are definitions of the form
+			指定要传递给shader代码的uniforms;键为uniform的名称,值(value)是如下形式:
 		<code>
 		{ value: 1.0 }
 		</code>
-		where *value* is the value of the uniform. Names must match the name of the uniform,
-		as defined in the GLSL code. Note that uniforms are refreshed on every frame,
-		so updating the value of the uniform will immediately update the value available to the GLSL code.
+			这里 *value* 是uniform的值。名称必须匹配 uniform 的name,和GLSL代码中的定义一样。
+			注意,uniforms逐帧被刷新,所以更新uniform值将立即更新GLSL代码中的相应值。
 		</p>
 
 
 		<h3>[property:Number vertexColors]</h3>
-		<p>
-		Define how the vertices are colored, by defining how the *colors* attribute gets populated.
-		Possible values are [page:Materials THREE.NoColors], [page:Materials THREE.FaceColors] and
-		[page:Materials THREE.VertexColors]. Default is THREE.NoColors.
+		<p> 通过定义*colors*属性的生成方式来定义顶点是如何着色的。
+			可选值为[page:Materials THREE.NoColors], [page:Materials THREE.FaceColors] 和
+			[page:Materials THREE.VertexColors]。 缺省为 THREE.NoColors。
 		</p>
 
 		<h3>[property:String vertexShader]</h3>
-		<p>
-		Vertex shader GLSL code.  This is the actual code for the shader. In the example above,
-		the *vertexShader* and *fragmentShader* code is extracted from the DOM; it could be passed
-		as a string directly or loaded via AJAX instead.
+		<p> 顶点着色器的GLSL代码。这是shader程序的实际代码。
+			在上面的例子中,*vertexShader* 和 *fragmentShader* 代码是从DOM(HTML文档)中获取的;
+			它也可以作为一个字符串直接传递或者通过AJAX加载。
 		</p>
 
 		<h3>[property:Boolean wireframe]</h3>
-		<p>
-		Render geometry as wireframe (using GL_LINES instead of GL_TRIANGLES). Default is false (i.e. render as flat polygons).
+		<p> 将几何体渲染为线框(通过GL_LINES而不是GL_TRIANGLES)。默认值为*false*(即渲染为平面多边形)。
 		</p>
 
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
-
-		Due to limitations of the [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile)
-		with the [page:WebGLRenderer WebGL] renderer on most platforms linewidth will
-		always be 1 regardless of the set value.
+		<p>控制线框宽度。默认值为1。<br /><br />
+			由于[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]与大多数平台上[page:WebGLRenderer WebGL]渲染器的限制,无论如何设置该值,线宽始终为1。
 		</p>
 
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
 		<h3>[method:ShaderMaterial clone]() [param:ShaderMaterial this]</h3>
-		<p>
-		Generates a shallow copy of this material. Note that the vertexShader and fragmentShader
-		are copied <em>by reference</em>, as are the definitions of the *attributes*; this means
-		that clones of the material will share the same compiled [page:WebGLProgram]. However, the
-		*uniforms* are copied <em>by value</em>, which allows you to have different sets of uniforms
-		for different copies of the material.
+		<p> 创建该材质的一个浅拷贝。需要注意的是,vertexShader和fragmentShader使用<em>引用拷贝</em>;
+			*attributes*的定义也是如此;
+			这意味着,克隆的材质将共享相同的编译[page:WebGLProgram];
+			但是,*uniforms* 是 <em>值拷贝</em>,这样对不同的材质我们可以有不同的uniforms变量。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 15 - 18
docs/api/zh/materials/ShadowMaterial.html

@@ -10,13 +10,13 @@
 	<body>
 		[page:Material] &rarr; [page:ShaderMaterial] &rarr;
 
-		<h1>[name]</h1>
+		<h1>阴影材质([name])</h1>
 
 		<p class="desc">
-		This material can receive shadows, but otherwise is completely transparent.
+			此材质可以接收阴影,但在其他方面完全透明。
 		</p>
 
-		<h3>Example</h3>
+		<h3>例子(Example)</h3>
 		[example:webgl_geometry_spline_editor geometry / spline / editor]
 
 		<code>
@@ -32,35 +32,32 @@ plane.receiveShadow = true;
 scene.add( plane );
 		</code>
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material] and [page:ShaderMaterial]) can be passed in here.<br /><br />
+		<p> [page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material] 和 [page:ShaderMaterial]继承的任何属性)。<br /><br />
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] and [page:ShaderMaterial] classes for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]和[page:ShaderMaterial]。</p>
 
 		<h3>[property:Boolean isShadowMaterial]</h3>
-		<p>
-			Used to check whether this or derived classes are shadow materials. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
+		<p> 用于检查此类或派生类是否为阴影材质。默认值为 *true*。<br /><br />
+			因为其通常用在内部优化,所以不应该更改该属性值。
 		</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *true*.</p>
+		<p> 材质是否受到光照的影响。默认值为 *true*。</p>
 
 		<h3>[property:Boolean transparent]</h3>
-		<p>Defines whether this material is transparent. Default is *true*.</p>
+		<p>定义此材质是否透明。默认值为 *true*。</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] and [page:ShaderMaterial] classes for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]和[page:ShaderMaterial]。</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 19 - 20
docs/api/zh/materials/SpriteMaterial.html

@@ -10,11 +10,11 @@
 	<body>
 		[page:Material] &rarr;
 
-		<h1>[name]</h1>
+		<h1>点精灵材质([name])</h1>
 
-		<p class="desc">A material for a use with a [page:Sprite].</p>
+		<p class="desc">一种使用[page:Sprite]的材质。</p>
 
-		<h2>Examples</h2>
+		<h2>例子(Examples)</h2>
 		<div>
 			[example:webgl_sprites WebGL / sprites]<br />
 			[example:misc_ubiquity_test misc / ubiquity / test]<br />
@@ -39,41 +39,40 @@ scene.add( sprite );
 
 		<h3>[name]( [param:Object parameters] )</h3>
 		<p>
-			[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance.
-			Any property of the material (including any property inherited from [page:Material]) can be passed in here.<br /><br />
+			[page:Object parameters] - (可选)用于定义材质外观的对象,具有一个或多个属性。
+			材质的任何属性都可以从此处传入(包括从[page:Material] 和 [page:ShaderMaterial]继承的任何属性)。<br /><br />
 
-			The exception is the property [page:Hexadecimal color], which can be passed in as a hexadecimal
-			string and is *0xffffff* (white) by default. [page:Color.set]( color ) is called internally.
-
-			SpriteMaterials are not clipped by using [page:Material.clippingPlanes].
+			属性[page:Hexadecimal color]例外,其可以作为十六进制字符串传递,默认情况下为 *0xffffff*(白色),
+			内部调用[page:Color.set](color)。
+			SpriteMaterials不会被[page:Material.clippingPlanes]裁剪。
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>常用属性请参见基类[page:Material]。</p>
 
 		<h3>[property:Color color]</h3>
-		<p>[page:Color] of the material, by default set to white (0xffffff). The [page:.map] is mutiplied by the color.</p>
+		<p>材质的颜色([page:Color]),默认值为白色 (0xffffff)。 [page:.map]会和 color 相乘。</p>
 
 		<h3>[property:boolean fog]</h3>
-		<p>Whether or not this material affected by the scene's fog. Default is false</p>
+		<p>材质是否受场景雾的影响。默认值为*false*。</p>
 
 		<h3>[property:Boolean lights]</h3>
-		<p>Whether the material is affected by lights. Default is *false*.</p>
+		<p>材质是否受到光照的影响。默认值为 *false*。</p>
 
 		<h3>[property:Texture map]</h3>
-		<p>The texture map. Default is null.</p>
+		<p>颜色贴图。默认为null。</p>
 
 		<h3>[property:Radians rotation]</h3>
-		<p>The rotation of the sprite in radians. Default is 0.</p>
+		<p> sprite的转动,以弧度为单位。默认值为0。</p>
 
 		<h3>[property:Boolean sizeAttenuation]</h3>
-		<p>Whether the size of the sprite is attenuated by the camera depth. (Perspective camera only.) Default is *true*.</p>
+		<p> 精灵的大小是否会被相机深度衰减。(仅限透视摄像头。)默认为*true*。</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>常用方法请参见基类[page:Material]。</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 59 - 86
docs/api/zh/math/Box2.html

@@ -11,208 +11,181 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			Represents a box in 2D space.
+			表示二维空间中的一个包围盒。
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 
 		<h3>[name]( [param:Vector2 min], [param:Vector2 max] )</h3>
 		<p>
-		[page:Vector2 min] - (optional) [page:Vector2] representing the lower (x, y) boundary of the box.
-		Default is ( + Infinity, + Infinity ).<br>
+		[page:Vector2 min] - (可选) [page:Vector2] 表示该盒子的下边界(x, y)。默认值为( + Infinity, + Infinity )。<br>
 
-		[page:Vector2 max] - (optional) [page:Vector2] representing the upper (x, y) boundary of the box.
-		Default is ( - Infinity, - Infinity ).<br /><br />
-
-		Creates a [name] bounded by min and max.
+		[page:Vector2 max] - (可选) [page:Vector2] 表示该盒子的上边界(x, y)。默认值为( - Infinity, - Infinity )。<br /><br />
+		创建一个介于最小和最大值之间的[name]。
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>属性(Properties)</h2>
 
 
 
 		<h3>[property:Vector2 min]</h3>
 		<p>
-			[page:Vector2] representing the lower (x, y) boundary of the box.<br />
-			Default is ( + Infinity, + Infinity ).
+			[page:Vector2] 表示该盒子的下边界(x, y)。<br />
+			默认值为( + Infinity, + Infinity )。
 		</p>
 
 		<h3>[property:Vector2 max]</h3>
 		<p>
-			[page:Vector2] representing the lower upper (x, y) boundary of the box.<br />
-			Default is ( - Infinity, - Infinity ).
+			[page:Vector2] 表示该盒子的上边界(x, y)。<br />
+			默认值为( - Infinity, - Infinity )。
 		</p>
 
 
 
-		<h2>Methods</h2>
+		<h2>方法(Methods)</h2>
 
 		<h3>[method:Vector2 clampPoint]( [param:Vector2 point], [param:Vector2 target] )</h3>
 		<p>
-		[page:Vector2 point] - [page:Vector2] to clamp. <br>
-		[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
-
-		[link:https://en.wikipedia.org/wiki/Clamping_(graphics) Clamps] the [page:Vector2 point] within the bounds of this box.<br />
+		[page:Vector2 point] - clamp 的位置 ([page:Vector2])  <br>
+		[page:Vector2 target] — 结果会被复制到该二维向量中。<br /><br />
+		在该盒子范围内夹紧([link:https://en.wikipedia.org/wiki/Clamping_(graphics) Clamps])[page:Vector2 point]。<br />
 		</p>
 
 		<h3>[method:Box2 clone]()</h3>
-		<p>Returns a new [page:Box2] with the same [page:.min min] and [page:.max max] as this one.</p>
+		<p>返回一个新的[page:Box2],其[page:.min min]和[page:.max max]与此盒子相同。</p>
 
 		<h3>[method:Boolean containsBox]( [param:Box2 box] )</h3>
 		<p>
-		[page:Box2 box] - [page:Box2 Box2] to test for inclusion.<br /><br />
-
-		Returns true if this box includes the entirety of [page:Box2 box]. If this and [page:Box2 box] are identical, <br>
-		this function also returns true.
+		[page:Box2 box] - 要检查是否被包含的盒子。<br /><br />
+        如果盒子包含整个被检查盒子,则返回true。如果两者重叠,<br>
+		也会返回true。
 		</p>
 
 		<h3>[method:Boolean containsPoint]( [param:Vector2 point] )</h3>
 		<p>
-		[page:Vector2 point] - [page:Vector2] to check for inclusion.<br /><br />
-
-		Returns true if the specified [page:Vector2 point] lies within or on the boundaries of this box.
+		[page:Vector2 point] - 要检查是否被包含的点[page:Vector2]。<br /><br />
+		如果指定的点([page:Vector2 point])位于盒子的边界内或边界上,则返回true。
 		</p>
 
 		<h3>[method:Box2 copy]( [param:Box2 box] )</h3>
 		<p>
-		Copies the [page:.min min] and [page:.max max] from [page:Box2 box] to this box.
+			将[page:Box2 box]的[page:.min min] 和 [page:.max max]复制到此盒子中。
 		</p>
 
 		<h3>[method:Float distanceToPoint]( [param:Vector2 point] )</h3>
 		<p>
-		[page:Vector2 point] - [page:Vector2] to measure distance to.<br /><br />
-
-		Returns the distance from any edge of this box to the specified point.
-		If the [page:Vector2 point] lies inside of this box, the distance will be 0.
+		[page:Vector2 point] - 要测量距离的点([page:Vector2])。<br /><br />
+		返回这个盒子的任何边缘到指定点的距离。如果这个点([page:Vector2 point])位于这个盒子里,距离将是0。
 		</p>
 
 		<h3>[method:Boolean equals]( [param:Box2 box] )</h3>
 		<p>
-		[page:Box2 box] - Box to compare with this one.<br /><br />
-
-		Returns true if this box and [page:Box2 box] share the same lower and upper bounds.
+		[page:Box2 box] - 要对比的盒子<br /><br />
+		如果这个盒子和被对比盒子具有相同的上下边界,则返回true。
 		</p>
 
 		<h3>[method:Box2 expandByPoint]( [param:Vector2 point] )</h3>
 		<p>
-		[page:Vector2 point] - [page:Vector2] that should be included in the box.<br /><br />
-
-		Expands the boundaries of this box to include [page:Vector2 point].
+		[page:Vector2 point] - 应该被盒子包含的点。<br /><br />
+		扩展盒子的边界来包含该点。
 		</p>
 
 		<h3>[method:Box2 expandByScalar]( [param:float scalar] )</h3>
 		<p>
-		[page:float scalar] - Distance to expand the box by.<br /><br />
-
-		Expands each dimension of the box by [page:float scalar]. If negative, the dimensions of the box
-		will be contracted.
+		[page:float scalar] - 盒子扩展的距离。<br /><br />
+		在每个维度上扩展参数scalar所指定的距离,如果为负数,则盒子空间将收缩。
 		</p>
 
 		<h3>[method:Box2 expandByVector]( [param:Vector2 vector] )</h3>
 		<p>
-		[page:Vector2 vector] - [page:Vector2] to expand the box by.<br /><br />
-
-		Expands this box equilaterally by [page:Vector2 vector]. The width of this box will be
-		expanded by the x component of [page:Vector2 vector] in both directions. The height of
-		this box will be expanded by the y component of [page:Vector2 vector] in both directions.
+		[page:Vector2 vector] - 按照该向量扩展。<br /><br />
+		在每个维度中按vector的数值进行扩展。宽度在两个方向上的扩展将由vector的x分量确定,
+			高度在两个方向上的扩展则由y分量确定。
 		</p>
 
 		<h3>[method:Vector2 getCenter]( [param:Vector2 target] )</h3>
 		<p>
-		[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
-
-		Returns the center point of the box as a [page:Vector2].
+		[page:Vector2 target] — 结果将被复制到此二维向量中。<br /><br />
+		以二维向量形式返回盒子的中心点。
 		</p>
 
 		<h3>[method:Vector2 getParameter]( [param:Vector2 point], [param:Vector2 target] ) </h3>
 		<p>
-		[page:Vector2 point] - [page:Vector2].<br/>
-		[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
+		[page:Vector2 point] - 二维向量([page:Vector2]).<br/>
+		[page:Vector2 target] — 结果将被复制到此二维向量中。<br /><br />
 
-		Returns a point as a proportion of this box's width and height.
+			返回一个点作为此盒子的宽度和高度的比例。
 		</p>
 
 		<h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
 		<p>
-		[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
+		[page:Vector2 target] — 结果将被复制到此二维向量中。<br /><br />
 
-		Returns the width and height of this box.
+			返回此盒子的宽度和高度。
 		</p>
 
 		<h3>[method:Box2 intersect]( [param:Box2 box] )</h3>
 		<p>
-		[page:Box2 box] - Box to intersect with.<br /><br />
-
-		Returns the intersection of this and [page:Box2 box], setting the upper bound of this box to the lesser
-		of the two boxes' upper bounds and the lower bound of this box to the greater of the two boxes'
-		lower bounds.
+		[page:Box2 box] - 要相交的盒子。<br /><br />
+		返回两者的相交后的盒子,并将相交后的盒子的上限设置为两者的上限中的较小者,将下限设置为两者的下限中的较大者。
 		</p>
 
 		<h3>[method:Boolean intersectsBox]( [param:Box2 box] )</h3>
 		<p>
-		[page:Box2 box] - Box to check for intersection against.<br /><br />
-
-		Determines whether or not this box intersects [page:Box2 box].
+		[page:Box2 box] - 用来检查相交的盒子。<br /><br />
+		确定该盒子是否和其相交。
 		</p>
 
 		<h3>[method:Boolean isEmpty]()</h3>
 		<p>
-		Returns true if this box includes zero points within its bounds.<br>
-		Note that a box with equal lower and upper bounds still includes one point, the
-		one both bounds share.
+			如果这个盒子包含0个顶点,则返回true。<br>
+			请注意,一个下上边界相等的的盒子仍然包括一个点,一个两个边界共享的点。
 		</p>
 
 		<h3>[method:Box2 makeEmpty]()</h3>
-		<p>Makes this box empty.</p>
+		<p>使此盒子为空。</p>
 
 
 		<h3>[method:Box2 set]( [param:Vector2 min], [param:Vector2 max] )</h3>
 		<p>
-			[page:Vector2 min] - (required ) [page:Vector2] representing the lower (x, y) boundary of the box. <br>
-			[page:Vector2 max]  - (required) [page:Vector2] representing the upper (x, y) boundary of the box. <br /><br />
+			[page:Vector2 min] - (必须 ) 表示该盒子的下边界(x, y)。 <br>
+			[page:Vector2 max]  - (必须) 表示该盒子的上边界(x, y)。 <br /><br />
 
-			Sets the lower and upper (x, y) boundaries of this box.
+			设置这个盒子的上下(x, y)的界限。
 		</p>
 
 		<h3>[method:Box2 setFromCenterAndSize]( [param:Vector2 center], [param:Vector2 size] )</h3>
 		<p>
-		[page:Vector2 center] - Desired center position of the box ([page:Vector2]). <br>
-		[page:Vector2 size] - Desired x and y dimensions of the box ([page:Vector2]).<br /><br />
+		[page:Vector2 center] - 盒子所要设置的中心位置。 ([page:Vector2]). <br>
+		[page:Vector2 size] - 盒子所要设置的x和y尺寸 ([page:Vector2]).<br /><br />
 
-		Centers this box on [page:Vector2 center] and sets this box's width and height to the values specified
-		in [page:Vector2 size].
+		使盒子的中心点位于[page:Vector2 center],并设置宽高为[page:Vector2 size]中指定的值。
 		</p>
 
 		<h3>[method:Box2 setFromPoints]( [param:Array points] )</h3>
 		<p>
-		[page:Array points] - Array of [page:Vector2 Vector2s] that the resulting box will contain.<br /><br />
-
-		Sets the upper and lower bounds of this box to include all of the points in [page:Array points].
+		[page:Array points] - 点的集合,由这些点确定的空间将被盒子包围。<br /><br />
+		设置这个盒子的上下边界,来包含所有设置在[page:Array points]参数中的点。
 		</p>
 
 		<h3>[method:Box2 translate]( [param:Vector2 offset] )</h3>
 		<p>
-		[page:Vector2 offset] - Direction and distance of offset.<br /><br />
-
-		Adds [page:Vector2 offset] to both the upper and lower bounds of this box, effectively moving this box
-		[page:Vector2 offset] units in 2D space.
+		[page:Vector2 offset] - 偏移方向和距离。<br /><br />
+		添加 [page:Vector2 offset] 到这个盒子的上下边界,实际上在2D空间移动这个盒子[page:Vector2 offset]个单位。
 		</p>
 
 		<h3>[method:Box2 union]( [param:Box2 box] )</h3>
 		<p>
-		[page:Box2 box] - Box that will be unioned with this box.<br /><br />
-
-		Unions this box with [page:Box2 box], setting the upper bound of this box to the greater of the
-		two boxes' upper bounds and the lower bound of this box to the lesser of the two boxes'
-		lower bounds.
+		[page:Box2 box] - 将要与该盒子联合的盒子<br /><br />
+		在[page:Box2 box]参数的上边界和该盒子的上边界之间取较大者,而对两者的下边界取较小者,这样获得一个新的较大的联合盒子。
 		</p>
 
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 11 - 11
docs/api/zh/math/interpolants/CubicInterpolant.html

@@ -10,13 +10,13 @@
 	<body>
 		[page:Interpolant] &rarr;
 
-		<h1>[name]</h1>
+		<h1>三次插值([name])</h1>
 
 		<p class="desc">
 
 		</p>
 
-		<h2>Example</h2>
+		<h2>例子(Example</h2>
 
 		<code>
 var interpolant = new THREE.[name](
@@ -30,19 +30,19 @@ interpolant.evaluate( 0.5 );
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( parameterPositions, sampleValues, sampleSize, resultBuffer )</h3>
 		<p>
-		parameterPositions -- array of positions<br />
-		sampleValues -- array of samples<br />
-		sampleSize -- number of samples<br />
-		resultBuffer -- buffer to store the interpolation results.<br /><br />
+		parameterPositions -- 位置数组<br />
+		sampleValues -- 样本数组<br />
+		sampleSize -- 样本数量<br />
+		resultBuffer -- 用于存储插值结果的缓冲区。<br /><br />
 
 
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性(Properties)</h2>
 
 
 
@@ -71,14 +71,14 @@ interpolant.evaluate( 0.5 );
 
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法(Methods)</h2>
 
 		<h3>[method:null evaluate]( [param:Number t] )</h3>
 		<p>
-		Evaluate the interpolant at position *t*.
+			评估位置*t*处的插值。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 9 - 9
docs/api/zh/math/interpolants/DiscreteInterpolant.html

@@ -10,13 +10,13 @@
 	<body>
 		[page:Interpolant] &rarr;
 
-		<h1>[name]</h1>
+		<h1>离散插值([name])</h1>
 
 		<p class="desc">
 
 		</p>
 
-		<h2>Example</h2>
+		<h2>例子(Example)</h2>
 
 		<code>
 var interpolant = new THREE.[name](
@@ -34,15 +34,15 @@ interpolant.evaluate( 0.5 );
 
 		<h3>[name]( parameterPositions, sampleValues, sampleSize, resultBuffer )</h3>
 		<p>
-		parameterPositions -- array of positions<br />
-		sampleValues -- array of samples<br />
-		sampleSize -- number of samples<br />
-		resultBuffer -- buffer to store the interpolation results.<br /><br />
+		parameterPositions -- 位置数组<br />
+		sampleValues -- 样本数组<br />
+		sampleSize -- 样本数量<br />
+		resultBuffer -- 用于存储插值结果的缓冲区。<br /><br />
 
 
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性(Properties)</h2>
 
 
 
@@ -75,10 +75,10 @@ interpolant.evaluate( 0.5 );
 
 		<h3>[method:null evaluate]( [param:Number t] )</h3>
 		<p>
-		Evaluate the interpolant at position *t*.
+			评估位置*t*处的插值。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 11 - 11
docs/api/zh/math/interpolants/LinearInterpolant.html

@@ -10,13 +10,13 @@
 	<body>
 		[page:Interpolant] &rarr;
 
-		<h1>[name]</h1>
+		<h1>线性插值([name])</h1>
 
 		<p class="desc">
 
 		</p>
 
-		<h2>Example</h2>
+		<h2>例子(Example)</h2>
 
 		<code>
 var interpolant = new THREE.[name](
@@ -30,19 +30,19 @@ interpolant.evaluate( 0.5 );
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( parameterPositions, sampleValues, sampleSize, resultBuffer )</h3>
 		<p>
-		parameterPositions -- array of positions<br />
-		sampleValues -- array of samples<br />
-		sampleSize -- number of samples<br />
-		resultBuffer -- buffer to store the interpolation results.<br /><br />
+		parameterPositions -- 位置数组<br />
+		sampleValues -- 样本数组<br />
+		sampleSize -- 样本数量<br />
+		resultBuffer -- 用于存储插值结果的缓冲区。<br /><br />
 
 
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性(Properties)</h2>
 
 
 
@@ -71,14 +71,14 @@ interpolant.evaluate( 0.5 );
 
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法(Methods)</h2>
 
 		<h3>[method:null evaluate]( [param:Number t] )</h3>
 		<p>
-		Evaluate the interpolant at position *t*.
+			评估位置*t*处的插值。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 11 - 11
docs/api/zh/math/interpolants/QuaternionLinearInterpolant.html

@@ -10,13 +10,13 @@
 	<body>
 		[page:Interpolant] &rarr;
 
-		<h1>[name]</h1>
+		<h1>四元数线性插值([name])</h1>
 
 		<p class="desc">
 
 		</p>
 
-		<h2>Example</h2>
+		<h2>例子(Example)</h2>
 
 		<code>
 var interpolant = new THREE.[name](
@@ -30,19 +30,19 @@ interpolant.evaluate( 0.5 );
 		</code>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 		<h3>[name]( parameterPositions, sampleValues, sampleSize, resultBuffer )</h3>
 		<p>
-		parameterPositions -- array of positions<br />
-		sampleValues -- array of samples<br />
-		sampleSize -- number of samples<br />
-		resultBuffer -- buffer to store the interpolation results.<br /><br />
+		parameterPositions -- 位置数组<br />
+		sampleValues -- 样本数组<br />
+		sampleSize -- 样本数量<br />
+		resultBuffer -- 用于存储插值结果的缓冲区。<br /><br />
 
 
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性(Properties)</h2>
 
 
 
@@ -71,14 +71,14 @@ interpolant.evaluate( 0.5 );
 
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法(Methods)</h2>
 
 		<h3>[method:null evaluate]( [param:Number t] )</h3>
 		<p>
-		Evaluate the interpolant at position *t*.
+			评估位置*t*处的插值。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 38 - 47
docs/api/zh/renderers/WebGLRenderTarget.html

@@ -11,118 +11,109 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			A [link:https://msdn.microsoft.com/en-us/library/ff604997.aspx render target] is a buffer
-			where the video card draws pixels for a scene that	is being rendered in the background.
-			It is used in different effects, such as applying postprocessing to a rendered image
-			before displaying it on the screen.
+			[link:https://msdn.microsoft.com/en-us/library/ff604997.aspx render target]是一个缓冲,就是在这个缓冲中,视频卡为正在后台渲染的场景绘制像素。
+			它用于不同的效果,例如用于在一个图像显示在屏幕上之前先做一些处理。
+
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]([param:Number width], [param:Number height], [param:Object options])</h3>
 
 		<p>
-		[page:Float width] - The width of the renderTarget. <br />
-		[page:Float height] - The height of the renderTarget.<br />
-		options - (optional object that holds texture parameters for an auto-generated target
-		texture and depthBuffer/stencilBuffer booleans.
-
-		For an explanation of the texture parameters see [page:Texture Texture]. The following are
-		valid options:<br /><br />
-
-		[page:Constant wrapS] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant wrapT] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant magFilter] - default is [page:Textures LinearFilter]. <br />
-		[page:Constant minFilter] - default is [page:Textures LinearFilter]. <br />
-		[page:Constant format] - default is [page:Textures RGBAFormat]. <br />
-		[page:Constant type] - default is [page:Textures UnsignedByteType]. <br />
-		[page:Number anisotropy] - default is *1*. See [page:Texture.anistropy]<br />
-		[page:Constant encoding] - default is [page:Textures LinearEncoding]. <br />
-		[page:Boolean depthBuffer] - default is *true*. Set this to false if you don't need it. <br />
-		[page:Boolean stencilBuffer] - default is *true*. Set this to false if you don't need it.<br /><br />
-
-		Creates a new [name]
+		[page:Float width] -renderTarget的宽度 <br />
+		[page:Float height] - renderTarget的高度 <br />
+		options - (可选)一个保存着自动生成的目标纹理的纹理参数以及表示是否使用深度缓存/模板缓存的布尔值的对象
+		以下是一些合法选项:<br /><br />
+
+		[page:Constant wrapS] - 默认是[page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant wrapT] - 默认是[page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant magFilter] - 默认是[page:Textures LinearFilter]. <br />
+		[page:Constant minFilter] - 默认是[page:Textures LinearFilter]. <br />
+		[page:Constant format] - 默认是[page:Textures RGBAFormat]. <br />
+		[page:Constant type] - 默认是[page:Textures UnsignedByteType]. <br />
+		[page:Number anisotropy] - 默认是*1*. 参见[page:Texture.anistropy]<br />
+		[page:Constant encoding] - 默认是[page:Textures LinearEncoding]. <br />
+		[page:Boolean depthBuffer] - 默认是*true*. 如果不需要就设为false <br />
+		[page:Boolean stencilBuffer] - 默认是*true*. 如果不需要就设为false <br /><br />
+
+		创建一个新[name]
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:number width]</h3>
 		<p>
-		The width of the render target.
+		渲染目标宽度
 		</p>
 
 		<h3>[property:number height]</h3>
 		<p>
-		The height of the render target.
+		渲染目标高度
 		</p>
 
 		<h3>[property:Vector4 scissor]</h3>
 		<p>
-		A rectangular area inside the render target's viewport. Fragments that are outside the area will be discarded.
+        渲染目标视口内的一个矩形区域,区域之外的片元将会被丢弃
 		</p>
 
 		<h3>[property:boolean scissorTest]</h3>
 		<p>
-		Indicates whether the scissor test is active or not.
+        表明是否激活了剪裁测试
 		</p>
 
 		<h3>[property:Vector4 viewport]</h3>
 		<p>
-		The viewport of this render target.
+		渲染目标的视口
 		</p>
 
 		<h3>[property:Texture texture]</h3>
 		<p>
-		This texture instance holds the rendered pixels. Use it as input for further processing.
+        纹理实例保存这渲染的像素,用作进一步处理的输入值
 		</p>
 
 		<h3>[property:boolean depthBuffer]</h3>
 		<p>
-		Renders to the depth buffer. Default is true.
+		渲染到深度缓冲区。默认true.
 		</p>
 
 		<h3>[property:boolean stencilBuffer]</h3>
 		<p>
-		Renders to the stencil buffer. Default is true.
+        渲染到模板缓冲区。默认true.
 		</p>
 
 		<h3>[property:DepthTexture depthTexture]</h3>
 		<p>
-		If set, the scene depth will be rendered to this texture. Default is null.
+        如果设置,那么场景的深度将会被渲染到慈纹理上。默认是null.
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:null setSize]( [param:Number width], [param:Number height] )</h3>
 		<p>
-		Sets the size of the render target.
+		设置渲染目标的大小
 		</p>
 
 		<h3>[method:WebGLRenderTarget clone]()</h3>
 		<p>
-		Creates a copy of this render target.
+		创建一个渲染目标副本
 		</p>
 
 		<h3>[method:WebGLRenderTarget copy]( [param:WebGLRenderTarget source] )</h3>
 		<p>
-		Adopts the settings of the given render target.
+        采用传入的渲染目标的设置
 		</p>
 
 		<h3>[method:null dispose]()</h3>
 		<p>
-		Dispatches a dispose event.
+		发出一个处理事件
 		</p>
+		<h3>[page:EventDispatcher EventDispatcher]方法可从此类中获得</h3>
 
-
-
-
-
-		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
-
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 27 - 31
docs/api/zh/renderers/WebGLRenderTargetCube.html

@@ -13,58 +13,54 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			Used by the [page:CubeCamera] as its [page:WebGLRenderTarget].
+		被[page:CubeCamera]作为它的[page:WebGLRenderTarget]使用
 		</p>
 
-		<h2>Examples</h2>
+		<h2>例子</h2>
 
-		<p>See [page:CubeCamera] for examples.</p>
+		<p>有关示例请参阅[page:CubeCamera]</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 
 		<h3>[name]([param:Number width], [param:Number height], [param:Object options])</h3>
 		<p>
-		[page:Float width] - The width of the renderTarget. <br />
-		[page:Float height] - The height of the renderTarget. <br />
-		options - (optional) object that holds texture parameters for an auto-generated target
-		texture and depthBuffer/stencilBuffer booleans.
-
-		For an explanation of the texture parameters see [page:Texture Texture]. The following are
-		valid options:<br /><br />
-
-		[page:Constant wrapS] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant wrapT] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant magFilter] - default is [page:Textures .LinearFilter]. <br />
-		[page:Constant minFilter] - default is [page:Textures LinearFilter]. <br />
-		[page:Constant format] - default is [page:Textures RGBAFormat]. <br />
-		[page:Constant type] - default is [page:Textures UnsignedByteType]. <br />
-		[page:Number anisotropy] - default is *1*. See [page:Texture.anistropy]<br />
-		[page:Constant encoding] - default is [page:Textures LinearEncoding]. <br />
-		[page:Boolean depthBuffer] - default is *true*. Set this to false if you don't need it. <br />
-		[page:Boolean stencilBuffer] - default is *true*. Set this to false if you don't need it.<br /><br />
-
-		Creates a new [name]
+		[page:Float width] - renderTarget的宽度 <br />
+		[page:Float height] - renderTarget的高度 <br />
+		options - (可选)一个保存着自动生成的目标纹理的纹理参数以及表示是否使用深度缓存/模板缓存的布尔值的对象。
+		有关纹理参数的说明,请参阅[page:Texture Texture]. 以下是合理选项:<br /><br />
+
+		[page:Constant wrapS] - 默认是[page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant wrapT] - 默认是[page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant magFilter] - 默认是[page:Textures .LinearFilter]. <br />
+		[page:Constant minFilter] - 默认是[page:Textures LinearFilter]. <br />
+		[page:Constant format] - 默认是[page:Textures RGBAFormat]. <br />
+		[page:Constant type] - 默认是[page:Textures UnsignedByteType]. <br />
+		[page:Number anisotropy] - 默认是 *1*. 参见[page:Texture.anistropy]<br />
+		[page:Constant encoding] - 默认是[page:Textures LinearEncoding]. <br />
+		[page:Boolean depthBuffer] - 默认是*true*.如果不需要就设为false <br />
+		[page:Boolean stencilBuffer] - 默认是*true*.如果不需要就设为false<br /><br />
+
+		创建一个新[name]
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:integer activeCubeFace]</h3>
 		<p>
-		The activeCubeFace property corresponds to a cube side (PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5) and is
-		used and set internally by the [page:CubeCamera].
+		activeCubeFace属性对应立方体的面(PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5) 并由[page:CubeCamera]内部使用和设置
 		</p>
 
-		<h3>See [page:WebGLRenderTarget] for inherited properties</h3>
+		<h3>继承属性,请参阅[page:WebGLRenderTarget]</h3>
 
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
-		<h3>See [page:WebGLRenderTarget] for inherited methods</h3>
+		<h3>继承方法,请参阅[page:WebGLRenderTarget]</h3>
 
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 153 - 186
docs/api/zh/renderers/WebGLRenderer.html

@@ -11,140 +11,118 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			The WebGL renderer displays your beautifully crafted scenes using
-			[link:https://en.wikipedia.org/wiki/WebGL WebGL].
+            WebGL Render 用[link:https://en.wikipedia.org/wiki/WebGL WebGL]渲染出你精心制作的场景。
 		</p>
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 		<h3>[name]( [param:Object parameters] )</h3>
 		<p>
-		[page:Object parameters] - (optional) object with properties defining the renderer's behaviour.
-			The constructor also accepts no parameters at all. In all cases, it will assume sane defaults
-			when parameters are missing. The following are valid parameters:<br /><br />
+        [page:Object parameters] - (可选) 该对象的属性定义了渲染器的行为。也可以完全不传参数。在所有情况下,当缺少参数时,它将采用合理的默认值。
+            以下是合法参数:<br /><br />
 
-		[page:DOMElement canvas] - A [link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas]
-		where the renderer draws its output.
-		This corresponds to the [page:WebGLRenderer.domElement domElement] property below.
-		If not passed in here, a new canvas element will be created.<br />
+		[page:DOMElement canvas] - 一个供渲染器绘制其输出的[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas]
+		它和下面的[page:WebGLRenderer.domElement domElement]属性对应。
+		如果没有传这个参数,会创建一个新canvas<br />
 
 
-		[page:WebGLRenderingContext context] - This can be used to attach the renderer to an existing
-	  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext].
-		Default is null.<br />
+		[page:WebGLRenderingContext context] - 可用于将渲染器附加到已有的渲染环境([link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext])中。默认值是null<br />
 
-		[page:String precision] - Shader precision. Can be *"highp"*, *"mediump"* or *"lowp"*.
-		Defaults to *"highp"* if supported by the device. See the note in "Things to Avoid"
-		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices here].<br />
+		[page:String precision] - 着色器精度. 可以是 *"highp"*, *"mediump"* 或者 *"lowp"*.
+	    如果设备支持,默认为*"highp"* . 点击[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices here] 查看"应该避免的事"<br />
 
-		[page:Boolean alpha] - whether the canvas contains an alpha (transparency) buffer or not.
-	  Default is *false*.<br />
+		[page:Boolean alpha] - canvas是否包含alpha (透明度)。默认为 *false*<br />
 
-		[page:Boolean premultipliedAlpha] - whether the renderer will assume that colors have
+		[page:Boolean premultipliedAlpha] - renderer是否假设颜色有
 		[link:https://en.wikipedia.org/wiki/Glossary_of_computer_graphics#Premultiplied_alpha premultiplied alpha].
-		Default is *true*.<br />
+		默认为*true* <br />
 
-		[page:Boolean antialias] - whether to perform antialiasing. Default is *false*.<br />
+		[page:Boolean antialias] - 是否执行抗锯齿。默认为*false*.<br />
 
-		[page:Boolean stencil] - whether the drawing buffer has a
-		[link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer] of at least 8 bits.
-		Default is *true*.<br />
+		[page:Boolean stencil] - 绘图缓存是否有一个至少8位的模板缓存([link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer])。默认为*true*<br />
 
-		[page:Boolean preserveDrawingBuffer] - whether to preserve the buffers until manually cleared
-		or overwritten. Default is *false*.<br />
+		[page:Boolean preserveDrawingBuffer] -是否保留缓直到手动清除或被覆盖。 默认*false*.<br />
 
-		[page:String powerPreference] - Provides a hint to the user agent indicating what configuration
-		of GPU is suitable for this WebGL context. Can be *"high-performance"*, *"low-power"* or *"default"*. Default is *"default"*.
-		See the [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 WebGL spec] for more information.<br />
+		[page:String powerPreference] - 提示用户代理怎样的配置更适用于当前WebGL环境。 可能是*"high-performance"*, *"low-power"* 或 *"default"*。默认是*"default"*.
+		详见[link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 WebGL spec]<br />
 
-		[page:Boolean depth] - whether the drawing buffer has a
-		[link:https://en.wikipedia.org/wiki/Z-buffering depth buffer] of at least 16 bits.
-		Default is *true*.<br />
+		[page:Boolean depth] - 绘图缓存是否有一个至少6位的深度缓存([link:https://en.wikipedia.org/wiki/Z-buffering depth buffer] )。
+		默认是*true*.<br />
 
-		[page:Boolean logarithmicDepthBuffer] -  whether to use a logarithmic depth buffer. It may
-		be neccesary to use this if dealing with huge differences in scale in a single scene.
-		Default is *false*. See the [example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer] example.
+		[page:Boolean logarithmicDepthBuffer] -  是否使用对数深度缓存。如果要在单个场景中处理巨大的比例差异,就有必要使用。
+		默认是*false*。 示例:[example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer]
 		</p>
 
-		<h2>Properties</h2>
+		<h2>属性</h2>
 
 		<h3>[property:Boolean autoClear]</h3>
-		<p>Defines whether the renderer should automatically clear its output before rendering a frame.</p>
+		<p>定义渲染器是否在渲染每一帧之前自动清除其输出。</p>
 
 
 		<h3>[property:Boolean autoClearColor]</h3>
 		<p>
-			If [page:.autoClear autoClear] is true, defines whether the renderer should clear the color buffer.
-			Default is *true*.
+			如果[page:.autoClear autoClear]为true, 定义renderer是否清除颜色缓存。
+			默认是*true*
 		</p>
 
 
 		<h3>[property:Boolean autoClearDepth]</h3>
 		<p>
-			If [page:.autoClear autoClear] is true, defines whether the renderer should clear the depth buffer.
-			Default is *true*.
+			如果[page:.autoClear autoClear]是true, 定义renderer是否清除深度缓存。
+			默认是*true*
 		</p>
 
 
 		<h3>[property:Boolean autoClearStencil]</h3>
 		<p>
-			If [page:.autoClear autoClear] is true, defines whether the renderer should clear the stencil buffer.
-			Default is *true*.
+			如果[page:.autoClear autoClear]是true, 定义renderer是否清除模板缓存.
+			默认是*true*
 		</p>
 
 		<h3>[property:Object capabilities]</h3>
 		<p>
-		An object containing details about the capabilities of the current [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext].<br />
-
-		- [page:Boolean floatFragmentTextures]: whether the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/OES_texture_float OES_texture_float] extension.
-			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 over 95% of WebGL enabled devices support this.<br />
-		- [page:Boolean floatVertexTextures]: *true* if [page:Boolean floatFragmentTextures] and [page:Boolean vertexTextures] are both true.<br />
-		- [page:Method getMaxAnisotropy](): Returns the maximum available anisotropy.<br />
-		- [page:Method getMaxPrecision](): Returns the maximum available precision for vertex and fragment shaders. <br />
-		- [page:Boolean logarithmicDepthBuffer]: *true* if the [page:parameter logarithmicDepthBuffer] was set to true in the constructor and
-		the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/EXT_frag_depth EXT_frag_depth] extension.
-			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 around 66% of WebGL enabled devices support this.<br />
-		- [page:Integer maxAttributes]: The value of *gl.MAX_VERTEX_ATTRIBS*.<br />
-		- [page:Integer maxCubemapSize]: The value of *gl.MAX_CUBE_MAP_TEXTURE_SIZE*.
-		Maximum height * width of cube map textures that a shader can use.<br />
-		- [page:Integer maxFragmentUniforms]: The value of *gl.MAX_FRAGMENT_UNIFORM_VECTORS*.
-		  The number of uniforms that can be used by a fragment shader.<br />
-		- [page:Integer maxTextureSize]: The value of *gl.MAX_TEXTURE_SIZE*.
-		Maximum height * width of a texture that a shader use.<br />
-		- [page:Integer maxTextures]: The value of *gl.MAX_TEXTURE_IMAGE_UNITS*.
-		  The maximum number of textures that can be used by a shader.<br />
-		- [page:Integer maxVaryings]: The value of *gl.MAX_VARYING_VECTORS*.
-		  The number of varying vectors that can used by shaders.<br />
-		- [page:Integer maxVertexTextures]: The value of *gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS*.
-		   The number of textures that can be used in a vertex shader.<br />
-		- [page:Integer maxVertexUniforms]: The value of *gl.MAX_VERTEX_UNIFORM_VECTORS*.
-		   The maximum number of uniforms that can be used in a vertex shader.<br />
-		- [page:String precision]: The shader precision currently being used by the renderer.<br />
-		- [page:Boolean vertexTextures]: *true* if [property:Integer maxVertexTextures] is greater than 0 (i.e. vertext textures can be used).<br />
+            一个包含当前渲染环境([link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext])的功能细节的对象。<br />
+
+		- [page:Boolean floatFragmentTextures]: 环境是否支持[link:https://developer.mozilla.org/en-US/docs/Web/API/OES_texture_float OES_texture_float]扩展。
+			根据[link:https://webglstats.com/ WebGLStats], 截至2016年2月,超过95%的支持WebGL的设备支持此功能<br />
+		- [page:Boolean floatVertexTextures]: 如果[page:Boolean floatFragmentTextures]和[page:Boolean vertexTextures]都是true, 则此值为*true* <br />
+		- [page:Method getMaxAnisotropy](): 返回最大可用各向异性。<br />
+		- [page:Method getMaxPrecision](): 返回顶点着色器和片元着色器的最大可用精度。 <br />
+		- [page:Boolean logarithmicDepthBuffer]: 如果[page:parameter logarithmicDepthBuffer]在构造器中被设为true且
+		环境支持[link:https://developer.mozilla.org/en-US/docs/Web/API/EXT_frag_depth EXT_frag_depth]扩展,则此值为*true*
+			根据[link:https://webglstats.com/ WebGLStats], 截至2016年2月, 约66%的支持WebGL的设备支持此功能<br />
+		- [page:Integer maxAttributes]: *gl.MAX_VERTEX_ATTRIBS*的值<br />
+		- [page:Integer maxCubemapSize]: *gl.MAX_CUBE_MAP_TEXTURE_SIZE* 的值,着色器可使用的立方体贴图纹理的最大宽度*高度<br />
+		- [page:Integer maxFragmentUniforms]: *gl.MAX_FRAGMENT_UNIFORM_VECTORS*的值,片元着色器可使用的全局变量(uniforms)数量<br />
+		- [page:Integer maxTextureSize]: *gl.MAX_TEXTURE_SIZE*的值,着色器可使用纹理的最大宽度*高度<br />
+		- [page:Integer maxTextures]: *gl.MAX_TEXTURE_IMAGE_UNITS的值,着色器可使用的纹理数量<br />
+		- [page:Integer maxVaryings]: *gl.MAX_VARYING_VECTORS*的值,着色器可使用矢量的数量<br />
+		- [page:Integer maxVertexTextures]: *gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS*的值,顶点着色器可使用的纹理数量。<br />
+		- [page:Integer maxVertexUniforms]: *gl.MAX_VERTEX_UNIFORM_VECTORS*的值,顶点着色器可使用的全局变量(uniforms)数量<br />
+		- [page:String precision]: 渲染器当前使用的着色器的精度<br />
+		- [page:Boolean vertexTextures]: 如果[property:Integer maxVertexTextures]大于0,此值为*true* (即可以使用顶点纹理)<br />
 		</p>
 
 		<h3>[property:Array clippingPlanes]</h3>
 		<p>
-		User-defined clipping planes specified as THREE.Plane objects in world space.
-			These planes apply globally. Points in space whose dot product with the plane is negative are cut away.
-		 Default is [].
+            用户自定义的剪裁平面,在世界空间中被指定为THREE.Plane对象。
+            这些平面全局使用。空间中与该平面点积为负的点将被切掉。
+            默认值是[]
 		</p>
 
 		<h3>[property:WebGLRenderingContext context]</h3>
 		<p>
-		The renderer obtains a [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext] context
-		  from its [page:WebGLRenderer.domElement domElement] by default, using
-			[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext HTMLCanvasElement.getContext]().<br /><br />
+            渲染器默认使用[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext HTMLCanvasElement.getContext]()从其
+            [page:WebGLRenderer.domElement domElement]获取渲染环境([link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext])<br /><br />
+
+		    你可以手动创建创建它,但它必须与[page:WebGLRenderer.domElement domElement]对应,才能呈现到屏幕上。
 
-		You can create this manually, however it must correspond to the
-		[page:WebGLRenderer.domElement domElement] in order to render to the screen.
 		</p>
 
 		<h3>[property:DOMElement domElement]</h3>
 		<p>
-		A [link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas] where the renderer draws its output.<br />
-			This is automatically created by the renderer in the constructor (if not provided already);
-			you just need to add it to your page like so:<br />
+		一个[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas],渲染器在其上绘制输出。<br />
+		渲染器的构造函数会自动创建(如果没有传入canvas参数);你需要做的仅仅是像下面这样将它加页面里去<br />
 		<code>
 			document.body.appendChild( renderer.domElement );
 		</code>
@@ -152,23 +130,22 @@
 
 		<h3>[property:Object extensions]</h3>
 		<p>
-		A wrapper for the [page:WebGLRenderer.extensions.get .extensions.get] method, used to check whether
-		various WebGL extensions are supported.
+		[page:WebGLRenderer.extensions.get .extensions.get]方法的包装, 用于检查是否支持各种WebGL扩展
 		</p>
 
 		<h3>[property:Float gammaFactor]</h3>
-		<p>Default is *2*. </p>
+		<p>默认是 *2*. </p>
 
 
 		<h3>[property:Boolean gammaInput]</h3>
-		<p>If set, then it expects that all textures and colors are premultiplied gamma. Default is *false*.</p>
+		<p>如果设置,那么所有的纹理和颜色都会预乘gamma。 默认值是*false*.</p>
 
 
 		<h3>[property:Boolean gammaOutput]</h3>
-		<p>If set, then it expects that all textures and colors need to be outputted in premultiplied gamma. Default is *false*.</p>
+		<p>如果设置, 那么它期望所有纹理和颜色需要乘以gamma输出。 默认值*false*.</p>
 
 		<h3>[property:Object info]</h3>
-		<p>An object with a series of statistical information about the graphics board memory and the rendering process. Useful for debugging or just for the sake of curiosity. The object contains the following fields:</p>
+		<p>一个对象,包含有关图形板内存和渲染过程的一系列统计信息。这些信息可用于调试或仅仅满足下好奇心。改对象包含以下字段:</p>
 		<p>
 		<ul>
 			<li>memory:
@@ -189,7 +166,7 @@
 			</li>
 		</ul>
 		</p>
-		<p>By default these data are reset at each render calls, but when using the composer or mirrors it can be preferred to reset them with a custom pattern :
+		<p>默认情况下,每次调用渲染时这些数据都会重置。 但当时用一个或多个镜像时,最好使用自定义模式重置它们:
 		<code>
 		renderer.info.autoReset = false;
 		renderer.info.reset();
@@ -197,138 +174,134 @@
 		</p>
 
 		<h3>[property:Boolean localClippingEnabled]</h3>
-		<p>Defines whether the renderer respects object-level clipping planes. Default is *false*.</p>
+		<p>定义渲染器是否考虑对象级剪切平面。 默认为*false*.</p>
 
 		<h3>[property:Integer maxMorphTargets]</h3>
 		<p>
-		Default is 8. The maximum number of MorphTargets allowed in a shader.
-			Keep in mind that the standard materials only allow 8 MorphTargets.
+        默认是8。 一个着色器中允许的最大MorphTargets数。
+        切记标准材质只允许8个MorphTargets。
 		</p>
 
 		<h3>[property:Integer maxMorphNormals]</h3>
 		<p>
-		Default is 4. The maximum number of MorphNormals allowed in a shader.
-			Keep in mind that the standard materials only allow 4 MorphNormals.
+		默认是4。 色器中允许的最大MorphNormal数。
+		切记标准材质只允许4个MorphNormal。
 		</p>
 
 		<h3>[property:Boolean physicallyCorrectLights]</h3>
 		<p>
-		Whether to use physically correct lighting mode. Default is *false*.
-		See the [example:webgl_lights_physical lights / physical] example.
+		是否使用物理上正确的光照模式。 默认是*false*。
+		示例:[example:webgl_lights_physical lights / physical]
 		</p>
 
 		<h3>[property:Object properties]</h3>
 		<p>
-		Used internally by the renderer to keep track of various sub object properties.
+		渲染器内部使用,以跟踪各种子对象属性。
 		</p>
 
 		<h3>[property:WebGLRenderLists renderLists]</h3>
 		<p>
-		Used internally to handle ordering of scene object rendering.
+        在内部用于处理场景渲染对象的排序。
 		</p>
 
 		<h3>[property:WebGLShadowMap shadowMap]</h3>
 		<p>
-		This contains the reference to the shadow map, if used.
+        如果使用,它包含阴影贴图的引用。
 		</p>
 
 		<h3>[property:Boolean shadowMap.enabled]</h3>
-		<p>If set, use shadow maps in the scene. Default is *false*.</p>
+		<p>如果设置, 请在场景中使用阴影贴图。 默认是 *false*</p>
 
 		<h3>[property:Boolean shadowMap.autoUpdate]</h3>
-		<p>Enables automatic updates to the shadows in the scene. Default is *true*.</p>
-		<p>If you do not require dynamic lighting / shadows, you may set this to *false* when the renderer is instantiated.</p>
+		<p>启用场景中的阴影自动更新。默认是*true*</p>
+		<p>如果不需要动态光照/阴影, 则可以在实例化渲染器时将之设为false</p>
 
 		<h3>[property:Boolean shadowMap.needsUpdate]</h3>
-		<p>When set to *true*, shadow maps in the scene will be updated in the next *render* call. Default is *false*. </p>
-		<p>If you have disabled automatic updates to shadow maps (*shadowMap.autoUpdate = false*), you will need to set this to *true* and then make a render call to update the shadows in your scene.</p>
+		<p>当被设为*true*, 场景中的阴影贴图会在下次*render*调用时刷新。默认是*false* </p>
+		<p>如果你已经禁用了阴影贴图的自动更新(*shadowMap.autoUpdate = false*), 那么想要在下一次渲染时更新阴影的话就需要将此值设为*true*</p>
 
 		<h3>[property:Integer shadowMap.type]</h3>
-		<p>Defines shadow map type (unfiltered, percentage close filtering, percentage close filtering with bilinear filtering in shader)</p>
-		<p>Options are THREE.BasicShadowMap, THREE.PCFShadowMap (default), THREE.PCFSoftShadowMap. See [page:Renderer Renderer constants] for details.</p>
+		<p>定义阴影贴图类型 (未过滤, 关闭部分过滤, 关闭部分双线性过滤)</p>
+		<p>可选值有THREE.BasicShadowMap, THREE.PCFShadowMap (默认), THREE.PCFSoftShadowMap。 详见[page:Renderer Renderer constants]</p>
 
 		<h3>[property:Boolean sortObjects]</h3>
 		<p>
-		Defines whether the renderer should sort objects. Default is *true*.<br /><br />
+        定义渲染器是否应对对象进行排序。默认是*true*.<br /><br />
 
-		Note: Sorting is used to attempt to properly render objects that have some degree of transparency.
-		By definition, sorting objects may not work in all cases.  Depending on the needs of application,
-		it may be neccessary to turn off sorting and use other methods to deal with transparency
-		rendering e.g. manually determining each object's rendering order.
+        说明: 排序用于尝试正确渲染出具有一定透明度的对象。根据定义,排序可能不总是有用。根据应用的需求,可能需要关闭排序并使其他方法来处理透明度的渲染,例如,
+        手动确定每个对象的显然顺序。
 		</p>
 
 		<h3>[property:Object state]</h3>
 		<p>
-		Contains functions for setting various properties of the [page:WebGLRenderer.context] state.
+        包含设置[page:WebGLRenderer.context]状态的各种属性的函数。
 		</p>
 
 		<h3>[property:Constant toneMapping]</h3>
 		<p>
-		Default is [page:Renderer LinearToneMapping]. See the [page:Renderer Renderer constants] for other choices.
+		默认是[page:Renderer LinearToneMapping]。查看[page:Renderer Renderer constants]以获取其它备选项
 		</p>
 
 		<h3>[property:Number toneMappingExposure]</h3>
 		<p>
-		Exposure level of tone mapping. Default is *1*.
+		色调映射的曝光级别。默认是*1*
 		</p>
 
 		<h3>[property:Number toneMappingWhitePoint]</h3>
 		<p>
-		Tone mapping white point. Default is *1*.
+		色调映射的白点。默认是*1*
 		</p>
 
-		<h2>Methods</h2>
+		<h2>方法</h2>
 
 		<h3>[method:Integer allocTextureUnit]</h3>
 		<p>
-		Attempt to allocate a texture unit for use by a shader. Will warn if trying to allocate
-		more texture units than the GPU supports. This is mainly used internally.
-		See [page:WebGLRenderer.capabilities capabilities.maxTextures].
+		尝试分配纹理单元以供着色器使用。如果尝试分配超过GPU支持量的纹理单元,则会报警告。主要供内部使用。
+		请参阅[page:WebGLRenderer.capabilities capabilities.maxTextures]。
 		</p>
 
 		<h3>[method:null clear]( [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )</h3>
 		<p>
-		Tells the renderer to clear its color, depth or stencil drawing buffer(s).
-			This method initializes the color buffer to the current clear color value.<br />
-		Arguments default to *true*.
+		告诉渲染器清除颜色、深度或模板缓存.
+		此方法将颜色缓存初始化为当前颜色。参数们默认都是*true*
 		</p>
 
 		<h3>[method:null clearColor]( )</h3>
-		<p>Clear the color buffer. Equivalent to calling [page:WebGLRenderer.clear .clear]( true, false, false ).</p>
+		<p>清除颜色缓存。 相当于调用[page:WebGLRenderer.clear .clear]( true, false, false )</p>
 
 		<h3>[method:null clearDepth]( )</h3>
-		<p>Clear the depth buffer. Equivalent to calling [page:WebGLRenderer.clear .clear]( false, true, false ).</p>
+		<p>清除深度缓存。相当于调用[page:WebGLRenderer.clear .clear]( false, true, false )</p>
 
 		<h3>[method:null clearStencil]( )</h3>
-		<p>Clear the stencil buffers. Equivalent to calling [page:WebGLRenderer.clear .clear]( false, false, true ).</p>
+		<p>清除模板缓存。相当于调用[page:WebGLRenderer.clear .clear]( false, false, true )</p>
 
 		<h3>[method:null clearTarget]([param:WebGLRenderTarget renderTarget], [param:boolean color], [param:boolean depth], [param:boolean stencil])</h3>
 		<p>
-		renderTarget -- The [page:WebGLRenderTarget renderTarget] that needs to be cleared.<br />
-		color -- If set, then the color gets cleared. <br />
-		depth -- If set, then the depth gets cleared. <br />
-		stencil -- If set, then the stencil gets cleared.
+		renderTarget -- 需要被清除的[page:WebGLRenderTarget renderTarget]<br />
+		color -- 如果设置, 颜色会被清除 <br />
+		depth -- 如果设置, 深度缓存会被清除 <br />
+		stencil -- 如果设置, 模板缓存会被清除
 		</p>
 		<p>
-		This method clears a rendertarget. To do this, it activates the rendertarget.
+		该方法清楚了一个rendertarget。为此它会激活此endertarget
 		</p>
 
 		<h3>[method:null compile]( [param:Scene scene], [param:Camera camera] )</h3>
-		<p>Compiles all materials in the scene with the camera. This is useful to precompile shaders before the first rendering.</p>
+		<p>使用相机编译场景中的所有材质。这对于在首次渲染之前预编译着色器很有用。</p>
 
 		<h3>[method:null copyFramebufferToTexture]( [param:Vector2 position], [param:Texture texture], [param:Number level] )</h3>
-		<p>Copies pixels from the current WebGLFramebuffer into a 2D texture. Enables access to [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/copyTexImage2D WebGLRenderingContext.copyTexImage2D].</p>
+		<p>将当前WebGLFramebuffer中的像素复制到2D纹理中。可访问[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/copyTexImage2D WebGLRenderingContext.copyTexImage2D].</p>
 
 		<h3>[method:null copyTextureToTexture]( [param:Vector2 position], [param:Texture srcTexture], [param:Texture dstTexture], [param:Number level] )</h3>
-		<p>Copies all pixels of a texture to an existing texture starting from the given position. Enables access to [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D WebGLRenderingContext.texSubImage2D].</p>
+		<p>将纹理的所有像素复制到一个已有的从给定位置开始的纹理中。可访问[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D WebGLRenderingContext.texSubImage2D].</p>
 
 		<h3>[method:null dispose]( )</h3>
-		<p>Dispose of the current rendering context.</p>
+		<p>处理当前的渲染环境</p>
 
 		<h3>[method:Object extensions.get]( [param:String extensionName] )</h3>
 		<p>
-		Used to check whether various extensions are supported and returns an object with details of the extension if available.
-		This method can check for the following extensions:<br /><br />
+        用于检查是否支持各种扩展,并返回一个对象,其中包含扩展的详细信息。
+        该方法检查以下扩展:<br /><br />
 
 		- *WEBGL_depth_texture*<br />
 		- *EXT_texture_filter_anisotropic*<br />
@@ -339,131 +312,125 @@
 
 		<h3>[method:null forceContextLoss]( )</h3>
 		<p>
-		Simulate loss of the WebGL context. This requires support for the
-			[link:https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context WEBGL_lose_context] extensions.
-		According to [link:https://webglstats.com/ WebGLStats], as of February 2016 90% of WebGL enabled devices support this.
+        模拟WebGL环境的丢失。需要支持
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context WEBGL_lose_context]扩展才能用。
+		根据[link:https://webglstats.com/ WebGLStats], as of February 2016 90% of WebGL enabled devices support this.
 		</p>
 
 		<h3>[method:Float getClearAlpha]()</h3>
-		<p>Returns a [page:Float float] with the current clear alpha. Ranges from 0 to 1.</p>
+		<p>返回一个表示当前alpha值的[page:Float float],范围0到1</p>
 
 		<h3>[method:Color getClearColor]()</h3>
-		<p>Returns a [page:Color THREE.Color] instance with the current clear color.</p>
+		<p>返回一个表示当前颜色值的[page:Color THREE.Color]实例</p>
 
 		<h3>[method:WebGLRenderingContext getContext]()</h3>
-		<p>Return the current WebGL context.</p>
+		<p>返回当前WebGL环境</p>
 
 		<h3>[method:WebGLContextAttributes getContextAttributes]()</h3>
-		<p>Returns an object that describes the attributes set on the WebGL context when it was created.</p>
+		<p>返回一个对象,这个对象中存有在WebGL环境在创建的时候所设置的属性</p>
 
 		<h3>[method:RenderTarget getRenderTarget]()</h3>
-		<p>Returns the current RenderTarget, if any.</p>
+		<p>如果当前存在RenderTarget,返回当前它</p>
 
 		<h3>[method:RenderTarget getCurrentViewport]()</h3>
-		<p>Returns the current viewport.</p>
+		<p>返回当前视口</p>
 
 		<h3>[method:Object getDrawingBufferSize]()</h3>
-		<p>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</p>
+		<p>返回一个包含渲染器绘图缓存宽度和高度(单位像素)的对象。</p>
 
 		<h3>[method:number getPixelRatio]()</h3>
-		<p>Returns current device pixel ratio used.</p>
+		<p>返回当前使用设备像素比</p>
 
 		<h3>[method:Object getSize]()</h3>
-		<p>Returns an object containing the width and height of the renderer's output canvas, in pixels.</p>
+		<p>返回包含渲染器输出canvas的宽度和高度(单位像素)的对象。</p>
 
 		<h3>[method:null resetGLState]( )</h3>
-		<p>Reset the GL state to default. Called internally if the WebGL context is lost.</p>
+		<p>将GL状态重置为默认值。WebGL环境丢失时会内部调用</p>
 
 		<h3>[method:null readRenderTargetPixels]( [param:WebGLRenderTarget renderTarget], [param:Float x], [param:Float y], [param:Float width], [param:Float height], buffer )</h3>
-		<p>Reads the pixel data from the renderTarget into the buffer you pass in. This is a wrapper around [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/readPixels WebGLRenderingContext.readPixels]().<br />
-		See the [example:webgl_interactive_cubes_gpu interactive / cubes / gpu] example.
+		<p>将enderTarget中的像素数据读取到传入的缓冲区中。这是link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/readPixels WebGLRenderingContext.readPixels]()的包装器<br />
+		示例:[example:webgl_interactive_cubes_gpu interactive / cubes / gpu]
 		</p>
 
 		<h3>[method:null render]( [param:Scene scene], [param:Camera camera], [param:WebGLRenderTarget renderTarget], [param:Boolean forceClear] )</h3>
 		<p>
-			Render a [page:Scene scene] using a [page:Camera camera].<br />
+			用相机([page:Camera camera])渲染一个场景([page:Scene scene])<br />
 
-			The render is done to the [page:WebGLRenderTarget renderTarget] (if specified) or to the canvas as usual.<br />
+			渲染一般是在canvas上完成的,或者是[page:WebGLRenderTarget renderTarget](如果有指定)<br />
 
-			If [page:Boolean forceClear] is *true*, the depth, stencil and color buffers will be cleared
-			before rendering even if the renderer's [page:WebGLRenderer.autoClear autoClear] property is false.<br />
+			如果[page:Boolean forceClear]值是*true*,那么颜色、深度及模板缓存将会在渲染之前清除,即使渲染器的[page:WebGLRenderer.autoClear autoClear]属性值是false<br />
 
-			Even with forceClear set to true you can prevent certain buffers being cleared by setting
-			either the [page:WebGLRenderer.autoClearColor autoClearColor], [page:WebGLRenderer.autoClearStencil autoClearStencil] or [page:WebGLRenderer.autoClearDepth autoClearDepth] properties to false.
+			即便forceClear设为true, 也可以通过将[page:WebGLRenderer.autoClearColor autoClearColor]、[page:WebGLRenderer.autoClearStencil autoClearStencil]或[page:WebGLRenderer.autoClearDepth autoClearDepth]属性的值设为false来阻止对应缓存被清除。
 		</p>
 
 		<h3>[method:null renderBufferDirect]( [param:Camera camera], [param:Fog fog], [param:Geometry geometry], [param:Material material], [param:Object3D object], [param:Object group] )</h3>
-		<p>Render a buffer geometry group using the camera and with the specified material.</p>
+		<p>使用相机和指定材质渲染缓冲几何组。</p>
 
 		<h3>[method:null renderBufferImmediate]( [param:Object3D object], [param:shaderprogram program], [param:Material shading] )</h3>
-		<p>object - an instance of [page:Object3D]<br />
-		program - an instance of shaderProgram<br />
-		shading - an instance of Material<br /><br />
+		<p>object - 一个[page:Object3D]实例<br />
+		program - 一个shaderProgram实例<br />
+		shading - 一个Material实例<br /><br />
 
-		Render an immediate buffer. Gets called by renderImmediateObject.
+		渲染即使缓冲,由enderImmediateObject对象调用
 		</p>
 
 		<h3>[method:null setAnimationLoop]( [param:Function callback] )</h3>
-		<p>[page:Function callback] — The function will be called every available frame. If `null` is passed it will stop any already ongoing animation.</p>
-		<p>A build in function that can be used instead of [link:https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame requestAnimationFrame]. For WebVR projects this function must be used.</p>
+		<p>[page:Function callback] — 每个可用帧都会调用的函数。 如果传入‘null’,所有正在进行的动画都会停止。</p>
+		<p>可用来代替[link:https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame requestAnimationFrame]的内置函数. 对于WebVR想谬,必须使用此功能</p>
 
 		<h3>[method:null setClearAlpha]( [param:Float alpha] )</h3>
-		<p>Sets the clear alpha. Valid input is a float between *0.0* and *1.0*.</p>
+		<p>设置alpha。合法参数是一个*0.0*到 *1.0*之间的浮点数</p>
 
 		<h3>[method:null setClearColor]( [param:Color color], [param:Float alpha] )</h3>
-		<p>Sets the clear color and opacity.</p>
+		<p>设置颜色及其透明度</p>
 
 		<h3>[method:null setPixelRatio]( [param:number value] )</h3>
-		<p>Sets device pixel ratio. This is usually used for HiDPI device to prevent bluring output canvas.</p>
+		<p>设置设备像素比。通常用于避免HiDPI设备上绘图模糊</p>
 
 		<h3>[method:null setRenderTarget]( [param:WebGLRenderTarget renderTarget] )</h3>
 		<p>
-		renderTarget -- The [page:WebGLRenderTarget renderTarget] that needs to be activated (optional).<br /><br />
-		This method sets the active rendertarget. If the parameter is omitted the canvas is set as the active rendertarget.
+		renderTarget -- 需要被激活的[page:WebGLRenderTarget renderTarget](可选).<br /><br />
+		该方法设置活跃rendertarget. 参数缺省则将canvas设置成活跃rendertarget
 		</p>
 
 		<h3>[method:null setScissor]( [param:Integer x], [param:Integer y], [param:Integer width], [param:Integer height] )</h3>
 		<p>
-		Sets the scissor area from (x, y) to (x + width, y + height)
+        将剪裁区域设为(x, y)到(x + width, y + height)
+		Sets the scissor area from
 		</p>
 
 		<h3>[method:null setScissorTest]( [param:Boolean boolean] )</h3>
 		<p>
-		Enable or disable the scissor test. When this is enabled, only the pixels within the defined
-			scissor area will be affected by further renderer actions.
+        启用或禁用剪裁检测. 若启用,则只有在所定义的裁剪区域内的像素才会受之后的渲染器影响。
 		</p>
 
 		<h3>[method:null setSize]( [param:Integer width], [param:Integer height], [param:Boolean updateStyle] )</h3>
 		<p>
-		Resizes the output canvas to (width, height) with device pixel ratio taken into account,
-			and also sets the viewport to fit that size, starting in (0, 0).
-			Setting [page:Boolean updateStyle] to false prevents any style changes to the output canvas.
+		将输出canvas的大小调整为(width, height)并考虑设备像素比,且将视口从(0, 0)开始调整到适合大小
+		将[page:Boolean updateStyle]设置为false以阻止对canvas的样式做任何改变。
 		</p>
 
 		<h3>[method:null setTexture2D]( [param:Texture texture], [param:number slot] )</h3>
 		<p>
-		texture -- The [page:Texture texture] that needs to be set.<br />
-		slot -- The number indicating which slot should be used by the texture.<br /><br />
-
-		This method sets the correct texture to the correct slot for the WebGL shader.
-		The slot number can be found as a value of the uniform of the sampler.<br /><br />
+		texture -- 需被设置的[page:Texture texture]<br />
+		slot -- 纹理应该使用的插槽号<br /><br />
+        该方法为WebGL着色器将正确的纹理设置到正确的插槽中。插槽号可作为取样器的全局变量(uniform)<br /><br />
 
-		Note: This method replaces the older [method:null setTexture] method.
+		说明: 该方法取代了旧的[method:null setTexture]方法
 		</p>
 
 		<h3>[method:null setTextureCube]( [param:CubeTexture cubeTexture], [param:Number slot] )</h3>
 		<p>
-		texture -- The [page:CubeTexture cubeTexture] that needs to be set.<br />
-		slot -- The number indicating which slot should be used by the texture.<br /><br />
+		texture -- 需要被设置的[page:CubeTexture cubeTexture]<br />
+		slot -- 纹理应该使用的插槽号<br /><br />
 
-		This method sets the correct texture to the correct slot for the WebGL shader.
-		The slot number can be found as a value of the uniform of the sampler.
+        该方法为WebGL着色器将正确的纹理设置到正确的插槽中。插槽号可作为取样器的全局变量(uniform)
 		</p>
 
 		<h3>[method:null setViewport]( [param:Integer x], [param:Integer y], [param:Integer width], [param:Integer height] )</h3>
-		<p>Sets the viewport to render from (x, y) to (x + width, y + height).</p>
+		<p>将视口大小设置为(x, y)到 (x + width, y + height).</p>
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>

+ 8 - 0
docs/examples/loaders/BabylonLoader.html

@@ -84,6 +84,14 @@
 		Lights are parsed accordingly.
 		</p>
 
+		<h3>[method:BabylonLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BabylonLoader.js examples/js/loaders/BabylonLoader.js]

+ 9 - 1
docs/examples/loaders/GLTFLoader.html

@@ -160,7 +160,15 @@
 		Begin loading from url and call the callback function with the parsed response content.
 		</p>
 
-		<h3>[method:null setPath]( [param:String path] )</h3>
+		<h3>[method:GLTFLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the .gltf/.glb file.
+		</p>
+
+		<h3>[method:GLTFLoader setResourcePath]( [param:String path] )</h3>
 		<p>
 		[page:String path] — Base path for loading additional resources e.g. textures and .bin data.
 		</p>

+ 5 - 4
docs/examples/loaders/MTLLoader.html

@@ -49,16 +49,16 @@
 			[page:String path] — required<br />
 		</p>
 		<p>
-			 Set base path for resolving references. If set this path will be prepended to each loaded and found reference.
+			 Set base path for MTL file.
 		</p>
 
 
-		<h3>[method:MTLLoader setTexturePath]( [param:String path] )</h3>
+		<h3>[method:MTLLoader setResourcePath]( [param:String path] )</h3>
 		<p>
 			[page:String path] — required<br />
 		</p>
 		<p>
-			Set base path for resolving texture references. If set this path will be prepended found texture reference. If not set and setPath is, it will be used as texture base path.
+			Set base path for additional resources like textures. If set, this path will be used as the base path.
 		</p>
 
 
@@ -88,9 +88,10 @@
 		</p>
 
 
-		<h3>[method:MTLLoaderMaterialCreator parse]( [param:String text] )</h3>
+		<h3>[method:MTLLoaderMaterialCreator parse]( [param:String text, param:String path] )</h3>
 		<p>
 			[page:String text] — The textual <em>mtl</em> structure to parse.
+			[page:String path] — The path to the MTL file.
 		</p>
 		<p>
 			Parse a <em>mtl</em> text structure and return a [page:MTLLoaderMaterialCreator] instance.<br />

+ 8 - 0
docs/examples/loaders/PCDLoader.html

@@ -93,6 +93,14 @@
 		The object is converted to [page:Points] with a [page:BufferGeometry] and a [page:PointsMaterial].
 		</p>
 
+		<h3>[method:PCDLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PCDLoader.js examples/js/loaders/PCDLoader.js]

+ 8 - 0
docs/examples/loaders/PDBLoader.html

@@ -87,6 +87,14 @@
 		Parse a <em>pdb</em> text and return a <em>JSON</em> structure.<br />
 		</p>
 
+		<h3>[method:PDBLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PDBLoader.js examples/js/loaders/PDBLoader.js]

+ 8 - 0
docs/examples/loaders/PRWMLoader.html

@@ -94,6 +94,14 @@
 		Return true if the endianness of the platform is Big Endian, false otherwise.
 		</p>
 
+		<h3>[method:PRWMLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]

+ 7 - 0
docs/examples/loaders/SVGLoader.html

@@ -99,6 +99,13 @@
 		Begin loading from url and call onLoad with the response content.
 		</p>
 
+		<h3>[method:SVGLoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
 
 		<h2>Source</h2>
 

+ 8 - 0
docs/examples/loaders/TGALoader.html

@@ -76,6 +76,14 @@
 		Begin loading from url and pass the loaded [page:DataTexture texture] to onLoad. The [page:DataTexture texture] is also directly returned for immediate use (but may not be fully loaded).
 		</p>
 
+		<h3>[method:TGALoader setPath]( [param:String path] )</h3>
+		<p>
+		[page:String path] — Base path.
+		</p>
+		<p>
+		Set the base path for the file.
+		</p>
+
 		<h2>Source</h2>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/TGALoader.js examples/js/loaders/TGALoader.js]

+ 2 - 3
docs/index.css

@@ -58,7 +58,7 @@ a {
 	width: 260px;
 	height: 100%;
 	overflow: auto;
-	padding-left: 20px;
+	padding: 0px 20px 0px 20px;
 	background: #fafafa;
 }
 
@@ -77,7 +77,6 @@ iframe {
 }
 
 .filterBlock {
-	margin-right: 20px;
 	position: relative;
 }
 
@@ -175,7 +174,7 @@ iframe {
 	#content {
 		position: absolute;
 		left: 0;
-		top: 90px;
+		top: 120px;
 		right: 0;
 		bottom: 0;
 		font-size: 17px;

+ 29 - 5
docs/index.html

@@ -22,6 +22,13 @@
 				<input type="text" id="filterInput" placeholder="Type to filter" autocorrect="off" autocapitalize="off" spellcheck="false">
 				<a href="#" id="clearFilterButton">x</a>
 			</div>
+
+			<div style="text-align:center">
+				<br />
+				<a href="javascript:setLanguage('en')">en</a> |
+				<a href="javascript:setLanguage('zh')">zh</a>
+			</div>
+
 			<div id="content"></div>
 
 		</div>
@@ -44,6 +51,15 @@
 
 			//
 
+			var language = 'en';
+
+			function setLanguage( value ) {
+
+				language = value;
+				createNavigation();
+
+			}
+
 			var panel = document.getElementById( 'panel' );
 			var content = document.getElementById( 'content' );
 			var clearFilterButton = document.getElementById( 'clearFilterButton' );
@@ -55,6 +71,8 @@
 			var titles = {};
 			var categoryElements = [];
 
+			var navigation;
+
 
 			// Functionality for hamburger button (on small devices)
 
@@ -118,16 +136,24 @@
 
 			function createNavigation() {
 
+				if ( navigation !== undefined ) {
+
+					content.removeChild( navigation );
+
+				}
+
 				// Create the navigation panel using data from list.js
 
-				var navigation = document.createElement( 'div' );
+				navigation = document.createElement( 'div' );
 				content.appendChild( navigation );
 
-				for ( var section in list ) {
+				var localList = list[ language ];
+
+				for ( var section in localList ) {
 
 					// Create sections
 
-					var categories = list[ section ];
+					var categories = localList[ section ];
 
 					var sectionHead = document.createElement( 'h2' );
 					sectionHead.textContent = section;
@@ -157,8 +183,6 @@
 
 							// Localisation
 
-							pageURL = pageURL.replace( '{lan}', 'en' );
-
 							var listElement = document.createElement( 'li' );
 							categoryContent.appendChild( listElement );
 

+ 839 - 410
docs/list.js

@@ -1,421 +1,850 @@
 var list = {
 
-	"Manual": {
-
-		"Getting Started": {
-			"Creating a scene": "manual/{lan}/introduction/Creating-a-scene",
-			"Import via modules": "manual/{lan}/introduction/Import-via-modules",
-			"Browser support": "manual/{lan}/introduction/Browser-support",
-			"WebGL compatibility check": "manual/{lan}/introduction/WebGL-compatibility-check",
-			"How to run things locally": "manual/{lan}/introduction/How-to-run-things-locally",
-			"Drawing lines": "manual/{lan}/introduction/Drawing-lines",
-			"Creating text": "manual/{lan}/introduction/Creating-text",
-			"Loading 3D models": "manual/{lan}/introduction/Loading-3D-models",
-			"Migration guide": "manual/{lan}/introduction/Migration-guide",
-			"Code style guide": "manual/{lan}/introduction/Code-style-guide",
-			"FAQ": "manual/{lan}/introduction/FAQ",
-			"Useful links": "manual/{lan}/introduction/Useful-links"
-		},
-
-		"Next Steps": {
-			"How to update things": "manual/{lan}/introduction/How-to-update-things",
-			"Matrix transformations": "manual/{lan}/introduction/Matrix-transformations",
-			"Animation system": "manual/{lan}/introduction/Animation-system"
-		},
+	"en": {
+
+		"Manual": {
+
+			"Getting Started": {
+				"Creating a scene": "manual/en/introduction/Creating-a-scene",
+				"Import via modules": "manual/en/introduction/Import-via-modules",
+				"Browser support": "manual/en/introduction/Browser-support",
+				"WebGL compatibility check": "manual/en/introduction/WebGL-compatibility-check",
+				"How to run things locally": "manual/en/introduction/How-to-run-things-locally",
+				"Drawing lines": "manual/en/introduction/Drawing-lines",
+				"Creating text": "manual/en/introduction/Creating-text",
+				"Loading 3D models": "manual/en/introduction/Loading-3D-models",
+				"Migration guide": "manual/en/introduction/Migration-guide",
+				"Code style guide": "manual/en/introduction/Code-style-guide",
+				"FAQ": "manual/en/introduction/FAQ",
+				"Useful links": "manual/en/introduction/Useful-links"
+			},
+
+			"Next Steps": {
+				"How to update things": "manual/en/introduction/How-to-update-things",
+				"How to create VR content": "manual/en/introduction/How-to-create-VR-content",
+				"Matrix transformations": "manual/en/introduction/Matrix-transformations",
+				"Animation system": "manual/en/introduction/Animation-system"
+			},
+
+			"Build Tools": {
+				"Testing with NPM": "manual/en/buildTools/Testing-with-NPM"
+			}
+
+		},
+
+		"Reference": {
+
+			"Animation": {
+				"AnimationAction": "api/en/animation/AnimationAction",
+				"AnimationClip": "api/en/animation/AnimationClip",
+				"AnimationMixer": "api/en/animation/AnimationMixer",
+				"AnimationObjectGroup": "api/en/animation/AnimationObjectGroup",
+				"AnimationUtils": "api/en/animation/AnimationUtils",
+				"KeyframeTrack": "api/en/animation/KeyframeTrack",
+				"PropertyBinding": "api/en/animation/PropertyBinding",
+				"PropertyMixer": "api/en/animation/PropertyMixer"
+			},
+
+			"Animation / Tracks": {
+				"BooleanKeyframeTrack": "api/en/animation/tracks/BooleanKeyframeTrack",
+				"ColorKeyframeTrack": "api/en/animation/tracks/ColorKeyframeTrack",
+				"NumberKeyframeTrack": "api/en/animation/tracks/NumberKeyframeTrack",
+				"QuaternionKeyframeTrack": "api/en/animation/tracks/QuaternionKeyframeTrack",
+				"StringKeyframeTrack": "api/en/animation/tracks/StringKeyframeTrack",
+				"VectorKeyframeTrack": "api/en/animation/tracks/VectorKeyframeTrack"
+			},
+
+			"Audio": {
+				"Audio": "api/en/audio/Audio",
+				"AudioAnalyser": "api/en/audio/AudioAnalyser",
+				"AudioContext": "api/en/audio/AudioContext",
+				"AudioListener": "api/en/audio/AudioListener",
+				"PositionalAudio": "api/en/audio/PositionalAudio"
+			},
+
+			"Cameras": {
+				"ArrayCamera": "api/en/cameras/ArrayCamera",
+				"Camera": "api/en/cameras/Camera",
+				"CubeCamera": "api/en/cameras/CubeCamera",
+				"OrthographicCamera": "api/en/cameras/OrthographicCamera",
+				"PerspectiveCamera": "api/en/cameras/PerspectiveCamera",
+				"StereoCamera": "api/en/cameras/StereoCamera"
+			},
+
+			"Constants": {
+				"Animation": "api/en/constants/Animation",
+				"Core": "api/en/constants/Core",
+				"CustomBlendingEquation": "api/en/constants/CustomBlendingEquations",
+				"DrawModes": "api/en/constants/DrawModes",
+				"Materials": "api/en/constants/Materials",
+				"Renderer": "api/en/constants/Renderer",
+				"Textures": "api/en/constants/Textures"
+			},
+
+			"Core": {
+				"BufferAttribute": "api/en/core/BufferAttribute",
+				"BufferGeometry": "api/en/core/BufferGeometry",
+				"Clock": "api/en/core/Clock",
+				"DirectGeometry": "api/en/core/DirectGeometry",
+				"EventDispatcher": "api/en/core/EventDispatcher",
+				"Face3": "api/en/core/Face3",
+				"Geometry": "api/en/core/Geometry",
+				"InstancedBufferAttribute": "api/en/core/InstancedBufferAttribute",
+				"InstancedBufferGeometry": "api/en/core/InstancedBufferGeometry",
+				"InstancedInterleavedBuffer": "api/en/core/InstancedInterleavedBuffer",
+				"InterleavedBuffer": "api/en/core/InterleavedBuffer",
+				"InterleavedBufferAttribute": "api/en/core/InterleavedBufferAttribute",
+				"Layers": "api/en/core/Layers",
+				"Object3D": "api/en/core/Object3D",
+				"Raycaster": "api/en/core/Raycaster",
+				"Uniform": "api/en/core/Uniform"
+			},
+
+			"Core / BufferAttributes": {
+				"BufferAttribute Types": "api/en/core/bufferAttributeTypes/BufferAttributeTypes"
+			},
+
+			"Deprecated": {
+				"DeprecatedList": "api/en/deprecated/DeprecatedList"
+			},
+
+			"Extras": {
+				"Earcut": "api/en/extras/Earcut",
+				"ShapeUtils": "api/en/extras/ShapeUtils"
+			},
+
+			"Extras / Core": {
+				"Curve": "api/en/extras/core/Curve",
+				"CurvePath": "api/en/extras/core/CurvePath",
+				"Font": "api/en/extras/core/Font",
+				"Interpolations": "api/en/extras/core/Interpolations",
+				"Path": "api/en/extras/core/Path",
+				"Shape": "api/en/extras/core/Shape",
+				"ShapePath": "api/en/extras/core/ShapePath"
+			},
+
+			"Extras / Curves": {
+				"ArcCurve": "api/en/extras/curves/ArcCurve",
+				"CatmullRomCurve3": "api/en/extras/curves/CatmullRomCurve3",
+				"CubicBezierCurve": "api/en/extras/curves/CubicBezierCurve",
+				"CubicBezierCurve3": "api/en/extras/curves/CubicBezierCurve3",
+				"EllipseCurve": "api/en/extras/curves/EllipseCurve",
+				"LineCurve": "api/en/extras/curves/LineCurve",
+				"LineCurve3": "api/en/extras/curves/LineCurve3",
+				"QuadraticBezierCurve": "api/en/extras/curves/QuadraticBezierCurve",
+				"QuadraticBezierCurve3": "api/en/extras/curves/QuadraticBezierCurve3",
+				"SplineCurve": "api/en/extras/curves/SplineCurve"
+			},
+
+			"Extras / Objects": {
+				"ImmediateRenderObject": "api/en/extras/objects/ImmediateRenderObject",
+			},
+
+			"Geometries": {
+				"BoxBufferGeometry": "api/en/geometries/BoxBufferGeometry",
+				"BoxGeometry": "api/en/geometries/BoxGeometry",
+				"CircleBufferGeometry": "api/en/geometries/CircleBufferGeometry",
+				"CircleGeometry": "api/en/geometries/CircleGeometry",
+				"ConeBufferGeometry": "api/en/geometries/ConeBufferGeometry",
+				"ConeGeometry": "api/en/geometries/ConeGeometry",
+				"CylinderBufferGeometry": "api/en/geometries/CylinderBufferGeometry",
+				"CylinderGeometry": "api/en/geometries/CylinderGeometry",
+				"DodecahedronBufferGeometry": "api/en/geometries/DodecahedronBufferGeometry",
+				"DodecahedronGeometry": "api/en/geometries/DodecahedronGeometry",
+				"EdgesGeometry": "api/en/geometries/EdgesGeometry",
+				"ExtrudeBufferGeometry": "api/en/geometries/ExtrudeBufferGeometry",
+				"ExtrudeGeometry": "api/en/geometries/ExtrudeGeometry",
+				"IcosahedronBufferGeometry": "api/en/geometries/IcosahedronBufferGeometry",
+				"IcosahedronGeometry": "api/en/geometries/IcosahedronGeometry",
+				"LatheBufferGeometry": "api/en/geometries/LatheBufferGeometry",
+				"LatheGeometry": "api/en/geometries/LatheGeometry",
+				"OctahedronBufferGeometry": "api/en/geometries/OctahedronBufferGeometry",
+				"OctahedronGeometry": "api/en/geometries/OctahedronGeometry",
+				"ParametricBufferGeometry": "api/en/geometries/ParametricBufferGeometry",
+				"ParametricGeometry": "api/en/geometries/ParametricGeometry",
+				"PlaneBufferGeometry": "api/en/geometries/PlaneBufferGeometry",
+				"PlaneGeometry": "api/en/geometries/PlaneGeometry",
+				"PolyhedronBufferGeometry": "api/en/geometries/PolyhedronBufferGeometry",
+				"PolyhedronGeometry": "api/en/geometries/PolyhedronGeometry",
+				"RingBufferGeometry": "api/en/geometries/RingBufferGeometry",
+				"RingGeometry": "api/en/geometries/RingGeometry",
+				"ShapeBufferGeometry": "api/en/geometries/ShapeBufferGeometry",
+				"ShapeGeometry": "api/en/geometries/ShapeGeometry",
+				"SphereBufferGeometry": "api/en/geometries/SphereBufferGeometry",
+				"SphereGeometry": "api/en/geometries/SphereGeometry",
+				"TetrahedronBufferGeometry": "api/en/geometries/TetrahedronBufferGeometry",
+				"TetrahedronGeometry": "api/en/geometries/TetrahedronGeometry",
+				"TextBufferGeometry": "api/en/geometries/TextBufferGeometry",
+				"TextGeometry": "api/en/geometries/TextGeometry",
+				"TorusBufferGeometry": "api/en/geometries/TorusBufferGeometry",
+				"TorusGeometry": "api/en/geometries/TorusGeometry",
+				"TorusKnotBufferGeometry": "api/en/geometries/TorusKnotBufferGeometry",
+				"TorusKnotGeometry": "api/en/geometries/TorusKnotGeometry",
+				"TubeBufferGeometry": "api/en/geometries/TubeBufferGeometry",
+				"TubeGeometry": "api/en/geometries/TubeGeometry",
+				"WireframeGeometry": "api/en/geometries/WireframeGeometry"
+			},
+
+			"Helpers": {
+				"ArrowHelper": "api/en/helpers/ArrowHelper",
+				"AxesHelper": "api/en/helpers/AxesHelper",
+				"BoxHelper": "api/en/helpers/BoxHelper",
+				"Box3Helper": "api/en/helpers/Box3Helper",
+				"CameraHelper": "api/en/helpers/CameraHelper",
+				"DirectionalLightHelper": "api/en/helpers/DirectionalLightHelper",
+				"FaceNormalsHelper": "api/en/helpers/FaceNormalsHelper",
+				"GridHelper": "api/en/helpers/GridHelper",
+				"PolarGridHelper": "api/en/helpers/PolarGridHelper",
+				"HemisphereLightHelper": "api/en/helpers/HemisphereLightHelper",
+				"PlaneHelper": "api/en/helpers/PlaneHelper",
+				"PointLightHelper": "api/en/helpers/PointLightHelper",
+				"RectAreaLightHelper": "api/en/helpers/RectAreaLightHelper",
+				"SkeletonHelper": "api/en/helpers/SkeletonHelper",
+				"SpotLightHelper": "api/en/helpers/SpotLightHelper",
+				"VertexNormalsHelper": "api/en/helpers/VertexNormalsHelper"
+			},
+
+			"Lights": {
+				"AmbientLight": "api/en/lights/AmbientLight",
+				"DirectionalLight": "api/en/lights/DirectionalLight",
+				"HemisphereLight": "api/en/lights/HemisphereLight",
+				"Light": "api/en/lights/Light",
+				"PointLight": "api/en/lights/PointLight",
+				"RectAreaLight": "api/en/lights/RectAreaLight",
+				"SpotLight": "api/en/lights/SpotLight"
+			},
+
+			"Lights / Shadows": {
+				"DirectionalLightShadow": "api/en/lights/shadows/DirectionalLightShadow",
+				"LightShadow": "api/en/lights/shadows/LightShadow",
+				"SpotLightShadow": "api/en/lights/shadows/SpotLightShadow"
+			},
+
+			"Loaders": {
+				"AnimationLoader": "api/en/loaders/AnimationLoader",
+				"AudioLoader": "api/en/loaders/AudioLoader",
+				"BufferGeometryLoader": "api/en/loaders/BufferGeometryLoader",
+				"Cache": "api/en/loaders/Cache",
+				"CompressedTextureLoader": "api/en/loaders/CompressedTextureLoader",
+				"CubeTextureLoader": "api/en/loaders/CubeTextureLoader",
+				"DataTextureLoader": "api/en/loaders/DataTextureLoader",
+				"FileLoader": "api/en/loaders/FileLoader",
+				"FontLoader": "api/en/loaders/FontLoader",
+				"ImageBitmapLoader": "api/en/loaders/ImageBitmapLoader",
+				"ImageLoader": "api/en/loaders/ImageLoader",
+				"JSONLoader": "api/en/loaders/JSONLoader",
+				"Loader": "api/en/loaders/Loader",
+				"LoaderUtils": "api/en/loaders/LoaderUtils",
+				"MaterialLoader": "api/en/loaders/MaterialLoader",
+				"ObjectLoader": "api/en/loaders/ObjectLoader",
+				"TextureLoader": "api/en/loaders/TextureLoader"
+			},
+
+			"Loaders / Managers": {
+				"DefaultLoadingManager": "api/en/loaders/managers/DefaultLoadingManager",
+				"LoadingManager": "api/en/loaders/managers/LoadingManager"
+			},
+
+			"Materials": {
+				"LineBasicMaterial": "api/en/materials/LineBasicMaterial",
+				"LineDashedMaterial": "api/en/materials/LineDashedMaterial",
+				"Material": "api/en/materials/Material",
+				"MeshBasicMaterial": "api/en/materials/MeshBasicMaterial",
+				"MeshDepthMaterial": "api/en/materials/MeshDepthMaterial",
+				"MeshLambertMaterial": "api/en/materials/MeshLambertMaterial",
+				"MeshNormalMaterial": "api/en/materials/MeshNormalMaterial",
+				"MeshPhongMaterial": "api/en/materials/MeshPhongMaterial",
+				"MeshPhysicalMaterial": "api/en/materials/MeshPhysicalMaterial",
+				"MeshStandardMaterial": "api/en/materials/MeshStandardMaterial",
+				"MeshToonMaterial": "api/en/materials/MeshToonMaterial",
+				"PointsMaterial": "api/en/materials/PointsMaterial",
+				"RawShaderMaterial": "api/en/materials/RawShaderMaterial",
+				"ShaderMaterial": "api/en/materials/ShaderMaterial",
+				"ShadowMaterial": "api/en/materials/ShadowMaterial",
+				"SpriteMaterial": "api/en/materials/SpriteMaterial"
+			},
+
+			"Math": {
+				"Box2": "api/en/math/Box2",
+				"Box3": "api/en/math/Box3",
+				"Color": "api/en/math/Color",
+				"Cylindrical": "api/en/math/Cylindrical",
+				"Euler": "api/en/math/Euler",
+				"Frustum": "api/en/math/Frustum",
+				"Interpolant": "api/en/math/Interpolant",
+				"Line3": "api/en/math/Line3",
+				"Math": "api/en/math/Math",
+				"Matrix3": "api/en/math/Matrix3",
+				"Matrix4": "api/en/math/Matrix4",
+				"Plane": "api/en/math/Plane",
+				"Quaternion": "api/en/math/Quaternion",
+				"Ray": "api/en/math/Ray",
+				"Sphere": "api/en/math/Sphere",
+				"Spherical": "api/en/math/Spherical",
+				"Triangle": "api/en/math/Triangle",
+				"Vector2": "api/en/math/Vector2",
+				"Vector3": "api/en/math/Vector3",
+				"Vector4": "api/en/math/Vector4"
+			},
+
+			"Math / Interpolants": {
+				"CubicInterpolant": "api/en/math/interpolants/CubicInterpolant",
+				"DiscreteInterpolant": "api/en/math/interpolants/DiscreteInterpolant",
+				"LinearInterpolant": "api/en/math/interpolants/LinearInterpolant",
+				"QuaternionLinearInterpolant": "api/en/math/interpolants/QuaternionLinearInterpolant"
+			},
+
+			"Objects": {
+				"Bone": "api/en/objects/Bone",
+				"Group": "api/en/objects/Group",
+				"Line": "api/en/objects/Line",
+				"LineLoop": "api/en/objects/LineLoop",
+				"LineSegments": "api/en/objects/LineSegments",
+				"LOD": "api/en/objects/LOD",
+				"Mesh": "api/en/objects/Mesh",
+				"Points": "api/en/objects/Points",
+				"Skeleton": "api/en/objects/Skeleton",
+				"SkinnedMesh": "api/en/objects/SkinnedMesh",
+				"Sprite": "api/en/objects/Sprite"
+			},
+
+			"Renderers": {
+				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
+				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
+				"WebGLRenderTargetCube": "api/en/renderers/WebGLRenderTargetCube"
+			},
+
+			"Renderers / Shaders": {
+				"ShaderChunk": "api/en/renderers/shaders/ShaderChunk",
+				"ShaderLib": "api/en/renderers/shaders/ShaderLib",
+				"UniformsLib": "api/en/renderers/shaders/UniformsLib",
+				"UniformsUtils": "api/en/renderers/shaders/UniformsUtils"
+			},
+
+			"Scenes": {
+				"Fog": "api/en/scenes/Fog",
+				"FogExp2": "api/en/scenes/FogExp2",
+				"Scene": "api/en/scenes/Scene"
+			},
+
+			"Textures": {
+				"CanvasTexture": "api/en/textures/CanvasTexture",
+				"CompressedTexture": "api/en/textures/CompressedTexture",
+				"CubeTexture": "api/en/textures/CubeTexture",
+				"DataTexture": "api/en/textures/DataTexture",
+				"DepthTexture": "api/en/textures/DepthTexture",
+				"Texture": "api/en/textures/Texture",
+				"VideoTexture": "api/en/textures/VideoTexture"
+			}
+
+		},
+
+		"Examples": {
+
+			"Animations": {
+				"CCDIKSolver": "examples/animations/CCDIKSolver",
+				"MMDAnimationHelper": "examples/animations/MMDAnimationHelper",
+				"MMDPhysics": "examples/animations/MMDPhysics"
+			},
+
+			"Controls": {
+				"OrbitControls": "examples/controls/OrbitControls"
+			},
+
+			"Geometries": {
+				"ConvexBufferGeometry": "examples/geometries/ConvexBufferGeometry",
+				"ConvexGeometry": "examples/geometries/ConvexGeometry",
+				"DecalGeometry": "examples/geometries/DecalGeometry"
+			},
+
+			"Loaders": {
+				"BabylonLoader": "examples/loaders/BabylonLoader",
+				"GLTFLoader": "examples/loaders/GLTFLoader",
+				"MMDLoader": "examples/loaders/MMDLoader",
+				"MTLLoader": "examples/loaders/MTLLoader",
+				"OBJLoader": "examples/loaders/OBJLoader",
+				"OBJLoader2": "examples/loaders/OBJLoader2",
+				"LoaderSupport": "examples/loaders/LoaderSupport",
+				"PCDLoader": "examples/loaders/PCDLoader",
+				"PDBLoader": "examples/loaders/PDBLoader",
+				"SVGLoader": "examples/loaders/SVGLoader",
+				"TGALoader": "examples/loaders/TGALoader",
+				"PRWMLoader": "examples/loaders/PRWMLoader"
+			},
+
+			"Objects": {
+				"Lensflare": "examples/objects/Lensflare",
+			},
+
+			"Exporters": {
+				"GLTFExporter": "examples/exporters/GLTFExporter",
+				"PLYExporter": "examples/exporters/PLYExporter"
+			},
+
+			"Plugins": {
+				"LookupTable": "examples/Lut",
+				"SpriteCanvasMaterial": "examples/SpriteCanvasMaterial"
+			},
+
+			"QuickHull": {
+				"Face": "examples/quickhull/Face",
+				"HalfEdge": "examples/quickhull/HalfEdge",
+				"QuickHull": "examples/quickhull/QuickHull",
+				"VertexNode": "examples/quickhull/VertexNode",
+				"VertexList": "examples/quickhull/VertexList"
+			},
+
+			"Renderers": {
+				"CanvasRenderer": "examples/renderers/CanvasRenderer",
+				"CSS2DRenderer": "examples/renderers/CSS2DRenderer",
+				"CSS3DRenderer": "examples/renderers/CSS3DRenderer",
+				"SVGRenderer": "examples/renderers/SVGRenderer"
+
+			},
+
+			"Utils": {
+				"BufferGeometryUtils": "examples/utils/BufferGeometryUtils",
+				"SceneUtils": "examples/utils/SceneUtils"
+			}
+
+		},
+
+		"Developer Reference": {
+
+			"Polyfills": {
+				"Polyfills": "api/en/Polyfills"
+			},
+
+			"WebGLRenderer": {
+				"WebGLProgram": "api/en/renderers/webgl/WebGLProgram",
+				"WebGLShader": "api/en/renderers/webgl/WebGLShader",
+				"WebGLState": "api/en/renderers/webgl/WebGLState"
+			}
 
-		"Build Tools": {
-			"Testing with NPM": "manual/{lan}/buildTools/Testing-with-NPM"
 		}
 
 	},
 
-	"Reference": {
-
-		"Animation": {
-			"AnimationAction": "api/{lan}/animation/AnimationAction",
-			"AnimationClip": "api/{lan}/animation/AnimationClip",
-			"AnimationMixer": "api/{lan}/animation/AnimationMixer",
-			"AnimationObjectGroup": "api/{lan}/animation/AnimationObjectGroup",
-			"AnimationUtils": "api/{lan}/animation/AnimationUtils",
-			"KeyframeTrack": "api/{lan}/animation/KeyframeTrack",
-			"PropertyBinding": "api/{lan}/animation/PropertyBinding",
-			"PropertyMixer": "api/{lan}/animation/PropertyMixer"
-		},
-
-		"Animation / Tracks": {
-			"BooleanKeyframeTrack": "api/{lan}/animation/tracks/BooleanKeyframeTrack",
-			"ColorKeyframeTrack": "api/{lan}/animation/tracks/ColorKeyframeTrack",
-			"NumberKeyframeTrack": "api/{lan}/animation/tracks/NumberKeyframeTrack",
-			"QuaternionKeyframeTrack": "api/{lan}/animation/tracks/QuaternionKeyframeTrack",
-			"StringKeyframeTrack": "api/{lan}/animation/tracks/StringKeyframeTrack",
-			"VectorKeyframeTrack": "api/{lan}/animation/tracks/VectorKeyframeTrack"
-		},
-
-		"Audio": {
-			"Audio": "api/{lan}/audio/Audio",
-			"AudioAnalyser": "api/{lan}/audio/AudioAnalyser",
-			"AudioContext": "api/{lan}/audio/AudioContext",
-			"AudioListener": "api/{lan}/audio/AudioListener",
-			"PositionalAudio": "api/{lan}/audio/PositionalAudio"
-		},
-
-		"Cameras": {
-			"ArrayCamera": "api/{lan}/cameras/ArrayCamera",
-			"Camera": "api/{lan}/cameras/Camera",
-			"CubeCamera": "api/{lan}/cameras/CubeCamera",
-			"OrthographicCamera": "api/{lan}/cameras/OrthographicCamera",
-			"PerspectiveCamera": "api/{lan}/cameras/PerspectiveCamera",
-			"StereoCamera": "api/{lan}/cameras/StereoCamera"
-		},
-
-		"Constants": {
-			"Animation": "api/{lan}/constants/Animation",
-			"Core": "api/{lan}/constants/Core",
-			"CustomBlendingEquation": "api/{lan}/constants/CustomBlendingEquations",
-			"DrawModes": "api/{lan}/constants/DrawModes",
-			"Materials": "api/{lan}/constants/Materials",
-			"Renderer": "api/{lan}/constants/Renderer",
-			"Textures": "api/{lan}/constants/Textures"
-		},
-
-		"Core": {
-			"BufferAttribute": "api/{lan}/core/BufferAttribute",
-			"BufferGeometry": "api/{lan}/core/BufferGeometry",
-			"Clock": "api/{lan}/core/Clock",
-			"DirectGeometry": "api/{lan}/core/DirectGeometry",
-			"EventDispatcher": "api/{lan}/core/EventDispatcher",
-			"Face3": "api/{lan}/core/Face3",
-			"Geometry": "api/{lan}/core/Geometry",
-			"InstancedBufferAttribute": "api/{lan}/core/InstancedBufferAttribute",
-			"InstancedBufferGeometry": "api/{lan}/core/InstancedBufferGeometry",
-			"InstancedInterleavedBuffer": "api/{lan}/core/InstancedInterleavedBuffer",
-			"InterleavedBuffer": "api/{lan}/core/InterleavedBuffer",
-			"InterleavedBufferAttribute": "api/{lan}/core/InterleavedBufferAttribute",
-			"Layers": "api/{lan}/core/Layers",
-			"Object3D": "api/{lan}/core/Object3D",
-			"Raycaster": "api/{lan}/core/Raycaster",
-			"Uniform": "api/{lan}/core/Uniform"
-		},
-
-		"Core / BufferAttributes": {
-			"BufferAttribute Types": "api/{lan}/core/bufferAttributeTypes/BufferAttributeTypes"
-		},
-
-		"Deprecated": {
-			"DeprecatedList": "api/{lan}/deprecated/DeprecatedList"
-		},
-
-		"Extras": {
-			"Earcut": "api/{lan}/extras/Earcut",
-			"ShapeUtils": "api/{lan}/extras/ShapeUtils"
-		},
-
-		"Extras / Core": {
-			"Curve": "api/{lan}/extras/core/Curve",
-			"CurvePath": "api/{lan}/extras/core/CurvePath",
-			"Font": "api/{lan}/extras/core/Font",
-			"Interpolations": "api/{lan}/extras/core/Interpolations",
-			"Path": "api/{lan}/extras/core/Path",
-			"Shape": "api/{lan}/extras/core/Shape",
-			"ShapePath": "api/{lan}/extras/core/ShapePath"
-		},
-
-		"Extras / Curves": {
-			"ArcCurve": "api/{lan}/extras/curves/ArcCurve",
-			"CatmullRomCurve3": "api/{lan}/extras/curves/CatmullRomCurve3",
-			"CubicBezierCurve": "api/{lan}/extras/curves/CubicBezierCurve",
-			"CubicBezierCurve3": "api/{lan}/extras/curves/CubicBezierCurve3",
-			"EllipseCurve": "api/{lan}/extras/curves/EllipseCurve",
-			"LineCurve": "api/{lan}/extras/curves/LineCurve",
-			"LineCurve3": "api/{lan}/extras/curves/LineCurve3",
-			"QuadraticBezierCurve": "api/{lan}/extras/curves/QuadraticBezierCurve",
-			"QuadraticBezierCurve3": "api/{lan}/extras/curves/QuadraticBezierCurve3",
-			"SplineCurve": "api/{lan}/extras/curves/SplineCurve"
-		},
-
-		"Extras / Objects": {
-			"ImmediateRenderObject": "api/{lan}/extras/objects/ImmediateRenderObject",
-		},
-
-		"Geometries": {
-			"BoxBufferGeometry": "api/{lan}/geometries/BoxBufferGeometry",
-			"BoxGeometry": "api/{lan}/geometries/BoxGeometry",
-			"CircleBufferGeometry": "api/{lan}/geometries/CircleBufferGeometry",
-			"CircleGeometry": "api/{lan}/geometries/CircleGeometry",
-			"ConeBufferGeometry": "api/{lan}/geometries/ConeBufferGeometry",
-			"ConeGeometry": "api/{lan}/geometries/ConeGeometry",
-			"CylinderBufferGeometry": "api/{lan}/geometries/CylinderBufferGeometry",
-			"CylinderGeometry": "api/{lan}/geometries/CylinderGeometry",
-			"DodecahedronBufferGeometry": "api/{lan}/geometries/DodecahedronBufferGeometry",
-			"DodecahedronGeometry": "api/{lan}/geometries/DodecahedronGeometry",
-			"EdgesGeometry": "api/{lan}/geometries/EdgesGeometry",
-			"ExtrudeBufferGeometry": "api/{lan}/geometries/ExtrudeBufferGeometry",
-			"ExtrudeGeometry": "api/{lan}/geometries/ExtrudeGeometry",
-			"IcosahedronBufferGeometry": "api/{lan}/geometries/IcosahedronBufferGeometry",
-			"IcosahedronGeometry": "api/{lan}/geometries/IcosahedronGeometry",
-			"LatheBufferGeometry": "api/{lan}/geometries/LatheBufferGeometry",
-			"LatheGeometry": "api/{lan}/geometries/LatheGeometry",
-			"OctahedronBufferGeometry": "api/{lan}/geometries/OctahedronBufferGeometry",
-			"OctahedronGeometry": "api/{lan}/geometries/OctahedronGeometry",
-			"ParametricBufferGeometry": "api/{lan}/geometries/ParametricBufferGeometry",
-			"ParametricGeometry": "api/{lan}/geometries/ParametricGeometry",
-			"PlaneBufferGeometry": "api/{lan}/geometries/PlaneBufferGeometry",
-			"PlaneGeometry": "api/{lan}/geometries/PlaneGeometry",
-			"PolyhedronBufferGeometry": "api/{lan}/geometries/PolyhedronBufferGeometry",
-			"PolyhedronGeometry": "api/{lan}/geometries/PolyhedronGeometry",
-			"RingBufferGeometry": "api/{lan}/geometries/RingBufferGeometry",
-			"RingGeometry": "api/{lan}/geometries/RingGeometry",
-			"ShapeBufferGeometry": "api/{lan}/geometries/ShapeBufferGeometry",
-			"ShapeGeometry": "api/{lan}/geometries/ShapeGeometry",
-			"SphereBufferGeometry": "api/{lan}/geometries/SphereBufferGeometry",
-			"SphereGeometry": "api/{lan}/geometries/SphereGeometry",
-			"TetrahedronBufferGeometry": "api/{lan}/geometries/TetrahedronBufferGeometry",
-			"TetrahedronGeometry": "api/{lan}/geometries/TetrahedronGeometry",
-			"TextBufferGeometry": "api/{lan}/geometries/TextBufferGeometry",
-			"TextGeometry": "api/{lan}/geometries/TextGeometry",
-			"TorusBufferGeometry": "api/{lan}/geometries/TorusBufferGeometry",
-			"TorusGeometry": "api/{lan}/geometries/TorusGeometry",
-			"TorusKnotBufferGeometry": "api/{lan}/geometries/TorusKnotBufferGeometry",
-			"TorusKnotGeometry": "api/{lan}/geometries/TorusKnotGeometry",
-			"TubeBufferGeometry": "api/{lan}/geometries/TubeBufferGeometry",
-			"TubeGeometry": "api/{lan}/geometries/TubeGeometry",
-			"WireframeGeometry": "api/{lan}/geometries/WireframeGeometry"
-		},
-
-		"Helpers": {
-			"ArrowHelper": "api/{lan}/helpers/ArrowHelper",
-			"AxesHelper": "api/{lan}/helpers/AxesHelper",
-			"BoxHelper": "api/{lan}/helpers/BoxHelper",
-			"Box3Helper": "api/{lan}/helpers/Box3Helper",
-			"CameraHelper": "api/{lan}/helpers/CameraHelper",
-			"DirectionalLightHelper": "api/{lan}/helpers/DirectionalLightHelper",
-			"FaceNormalsHelper": "api/{lan}/helpers/FaceNormalsHelper",
-			"GridHelper": "api/{lan}/helpers/GridHelper",
-			"PolarGridHelper": "api/{lan}/helpers/PolarGridHelper",
-			"HemisphereLightHelper": "api/{lan}/helpers/HemisphereLightHelper",
-			"PlaneHelper": "api/{lan}/helpers/PlaneHelper",
-			"PointLightHelper": "api/{lan}/helpers/PointLightHelper",
-			"RectAreaLightHelper": "api/{lan}/helpers/RectAreaLightHelper",
-			"SkeletonHelper": "api/{lan}/helpers/SkeletonHelper",
-			"SpotLightHelper": "api/{lan}/helpers/SpotLightHelper",
-			"VertexNormalsHelper": "api/{lan}/helpers/VertexNormalsHelper"
-		},
-
-		"Lights": {
-			"AmbientLight": "api/{lan}/lights/AmbientLight",
-			"DirectionalLight": "api/{lan}/lights/DirectionalLight",
-			"HemisphereLight": "api/{lan}/lights/HemisphereLight",
-			"Light": "api/{lan}/lights/Light",
-			"PointLight": "api/{lan}/lights/PointLight",
-			"RectAreaLight": "api/{lan}/lights/RectAreaLight",
-			"SpotLight": "api/{lan}/lights/SpotLight"
-		},
-
-		"Lights / Shadows": {
-			"DirectionalLightShadow": "api/{lan}/lights/shadows/DirectionalLightShadow",
-			"LightShadow": "api/{lan}/lights/shadows/LightShadow",
-			"SpotLightShadow": "api/{lan}/lights/shadows/SpotLightShadow"
-		},
-
-		"Loaders": {
-			"AnimationLoader": "api/{lan}/loaders/AnimationLoader",
-			"AudioLoader": "api/{lan}/loaders/AudioLoader",
-			"BufferGeometryLoader": "api/{lan}/loaders/BufferGeometryLoader",
-			"Cache": "api/{lan}/loaders/Cache",
-			"CompressedTextureLoader": "api/{lan}/loaders/CompressedTextureLoader",
-			"CubeTextureLoader": "api/{lan}/loaders/CubeTextureLoader",
-			"DataTextureLoader": "api/{lan}/loaders/DataTextureLoader",
-			"FileLoader": "api/{lan}/loaders/FileLoader",
-			"FontLoader": "api/{lan}/loaders/FontLoader",
-			"ImageBitmapLoader": "api/{lan}/loaders/ImageBitmapLoader",
-			"ImageLoader": "api/{lan}/loaders/ImageLoader",
-			"JSONLoader": "api/{lan}/loaders/JSONLoader",
-			"Loader": "api/{lan}/loaders/Loader",
-			"LoaderUtils": "api/{lan}/loaders/LoaderUtils",
-			"MaterialLoader": "api/{lan}/loaders/MaterialLoader",
-			"ObjectLoader": "api/{lan}/loaders/ObjectLoader",
-			"TextureLoader": "api/{lan}/loaders/TextureLoader"
-		},
-
-		"Loaders / Managers": {
-			"DefaultLoadingManager": "api/{lan}/loaders/managers/DefaultLoadingManager",
-			"LoadingManager": "api/{lan}/loaders/managers/LoadingManager"
-		},
-
-		"Materials": {
-			"LineBasicMaterial": "api/{lan}/materials/LineBasicMaterial",
-			"LineDashedMaterial": "api/{lan}/materials/LineDashedMaterial",
-			"Material": "api/{lan}/materials/Material",
-			"MeshBasicMaterial": "api/{lan}/materials/MeshBasicMaterial",
-			"MeshDepthMaterial": "api/{lan}/materials/MeshDepthMaterial",
-			"MeshLambertMaterial": "api/{lan}/materials/MeshLambertMaterial",
-			"MeshNormalMaterial": "api/{lan}/materials/MeshNormalMaterial",
-			"MeshPhongMaterial": "api/{lan}/materials/MeshPhongMaterial",
-			"MeshPhysicalMaterial": "api/{lan}/materials/MeshPhysicalMaterial",
-			"MeshStandardMaterial": "api/{lan}/materials/MeshStandardMaterial",
-			"MeshToonMaterial": "api/{lan}/materials/MeshToonMaterial",
-			"PointsMaterial": "api/{lan}/materials/PointsMaterial",
-			"RawShaderMaterial": "api/{lan}/materials/RawShaderMaterial",
-			"ShaderMaterial": "api/{lan}/materials/ShaderMaterial",
-			"ShadowMaterial": "api/{lan}/materials/ShadowMaterial",
-			"SpriteMaterial": "api/{lan}/materials/SpriteMaterial"
-		},
-
-		"Math": {
-			"Box2": "api/{lan}/math/Box2",
-			"Box3": "api/{lan}/math/Box3",
-			"Color": "api/{lan}/math/Color",
-			"Cylindrical": "api/{lan}/math/Cylindrical",
-			"Euler": "api/{lan}/math/Euler",
-			"Frustum": "api/{lan}/math/Frustum",
-			"Interpolant": "api/{lan}/math/Interpolant",
-			"Line3": "api/{lan}/math/Line3",
-			"Math": "api/{lan}/math/Math",
-			"Matrix3": "api/{lan}/math/Matrix3",
-			"Matrix4": "api/{lan}/math/Matrix4",
-			"Plane": "api/{lan}/math/Plane",
-			"Quaternion": "api/{lan}/math/Quaternion",
-			"Ray": "api/{lan}/math/Ray",
-			"Sphere": "api/{lan}/math/Sphere",
-			"Spherical": "api/{lan}/math/Spherical",
-			"Triangle": "api/{lan}/math/Triangle",
-			"Vector2": "api/{lan}/math/Vector2",
-			"Vector3": "api/{lan}/math/Vector3",
-			"Vector4": "api/{lan}/math/Vector4"
-		},
-
-		"Math / Interpolants": {
-			"CubicInterpolant": "api/{lan}/math/interpolants/CubicInterpolant",
-			"DiscreteInterpolant": "api/{lan}/math/interpolants/DiscreteInterpolant",
-			"LinearInterpolant": "api/{lan}/math/interpolants/LinearInterpolant",
-			"QuaternionLinearInterpolant": "api/{lan}/math/interpolants/QuaternionLinearInterpolant"
-		},
-
-		"Objects": {
-			"Bone": "api/{lan}/objects/Bone",
-			"Group": "api/{lan}/objects/Group",
-			"Line": "api/{lan}/objects/Line",
-			"LineLoop": "api/{lan}/objects/LineLoop",
-			"LineSegments": "api/{lan}/objects/LineSegments",
-			"LOD": "api/{lan}/objects/LOD",
-			"Mesh": "api/{lan}/objects/Mesh",
-			"Points": "api/{lan}/objects/Points",
-			"Skeleton": "api/{lan}/objects/Skeleton",
-			"SkinnedMesh": "api/{lan}/objects/SkinnedMesh",
-			"Sprite": "api/{lan}/objects/Sprite"
-		},
-
-		"Renderers": {
-			"WebGLRenderer": "api/{lan}/renderers/WebGLRenderer",
-			"WebGLRenderTarget": "api/{lan}/renderers/WebGLRenderTarget",
-			"WebGLRenderTargetCube": "api/{lan}/renderers/WebGLRenderTargetCube"
-		},
-
-		"Renderers / Shaders": {
-			"ShaderChunk": "api/{lan}/renderers/shaders/ShaderChunk",
-			"ShaderLib": "api/{lan}/renderers/shaders/ShaderLib",
-			"UniformsLib": "api/{lan}/renderers/shaders/UniformsLib",
-			"UniformsUtils": "api/{lan}/renderers/shaders/UniformsUtils"
-		},
-
-		"Scenes": {
-			"Fog": "api/{lan}/scenes/Fog",
-			"FogExp2": "api/{lan}/scenes/FogExp2",
-			"Scene": "api/{lan}/scenes/Scene"
-		},
-
-		"Textures": {
-			"CanvasTexture": "api/{lan}/textures/CanvasTexture",
-			"CompressedTexture": "api/{lan}/textures/CompressedTexture",
-			"CubeTexture": "api/{lan}/textures/CubeTexture",
-			"DataTexture": "api/{lan}/textures/DataTexture",
-			"DepthTexture": "api/{lan}/textures/DepthTexture",
-			"Texture": "api/{lan}/textures/Texture",
-			"VideoTexture": "api/{lan}/textures/VideoTexture"
-		}
-
-	},
-
-	"Examples": {
-
-		"Animations": {
-			"CCDIKSolver": "examples/animations/CCDIKSolver",
-			"MMDAnimationHelper": "examples/animations/MMDAnimationHelper",
-			"MMDPhysics": "examples/animations/MMDPhysics"
-		},
-
-		"Controls": {
-			"OrbitControls": "examples/controls/OrbitControls"
-		},
-
-		"Geometries": {
-			"ConvexBufferGeometry": "examples/geometries/ConvexBufferGeometry",
-			"ConvexGeometry": "examples/geometries/ConvexGeometry",
-			"DecalGeometry": "examples/geometries/DecalGeometry"
-		},
-
-		"Loaders": {
-			"BabylonLoader": "examples/loaders/BabylonLoader",
-			"GLTFLoader": "examples/loaders/GLTFLoader",
-			"MMDLoader": "examples/loaders/MMDLoader",
-			"MTLLoader": "examples/loaders/MTLLoader",
-			"OBJLoader": "examples/loaders/OBJLoader",
-			"OBJLoader2": "examples/loaders/OBJLoader2",
-			"LoaderSupport": "examples/loaders/LoaderSupport",
-			"PCDLoader": "examples/loaders/PCDLoader",
-			"PDBLoader": "examples/loaders/PDBLoader",
-			"SVGLoader": "examples/loaders/SVGLoader",
-			"TGALoader": "examples/loaders/TGALoader",
-			"PRWMLoader": "examples/loaders/PRWMLoader"
-		},
-
-		"Objects": {
-			"Lensflare": "examples/objects/Lensflare",
-		},
-
-		"Exporters": {
-			"GLTFExporter": "examples/exporters/GLTFExporter",
-			"PLYExporter": "examples/exporters/PLYExporter"
-		},
-
-		"Plugins": {
-			"LookupTable": "examples/Lut",
-			"SpriteCanvasMaterial": "examples/SpriteCanvasMaterial"
-		},
-
-		"QuickHull": {
-			"Face": "examples/quickhull/Face",
-			"HalfEdge": "examples/quickhull/HalfEdge",
-			"QuickHull": "examples/quickhull/QuickHull",
-			"VertexNode": "examples/quickhull/VertexNode",
-			"VertexList": "examples/quickhull/VertexList"
-		},
-
-		"Renderers": {
-			"CanvasRenderer": "examples/renderers/CanvasRenderer",
-			"CSS2DRenderer": "examples/renderers/CSS2DRenderer",
-			"CSS3DRenderer": "examples/renderers/CSS3DRenderer",
-			"SVGRenderer": "examples/renderers/SVGRenderer"
-
-		},
-
-		"Utils": {
-			"BufferGeometryUtils": "examples/utils/BufferGeometryUtils",
-			"SceneUtils": "examples/utils/SceneUtils"
-		}
-
-	},
-
-	"Developer Reference": {
-
-		"Polyfills": {
-			"Polyfills": "api/{lan}/Polyfills"
-		},
+	"zh": {
+
+		"Manual": {
+
+			"Getting Started": {
+				"创建一个场景": "manual/zh/introduction/Creating-a-scene",
+				"通过模块来引入": "manual/zh/introduction/Import-via-modules",
+				"浏览器支持": "manual/zh/introduction/Browser-support",
+				"WebGL兼容性检查": "manual/zh/introduction/WebGL-compatibility-check",
+				"如何在本地运行Three.js": "manual/zh/introduction/How-to-run-things-locally",
+				"画线": "manual/zh/introduction/Drawing-lines",
+				"创建文字": "manual/zh/introduction/Creating-text",
+				"载入3D模型": "manual/zh/introduction/Loading-3D-models",
+				"迁移指南": "manual/zh/introduction/Migration-guide",
+				"代码风格指南": "manual/zh/introduction/Code-style-guide",
+				"常见问题": "manual/zh/introduction/FAQ",
+				"一些有用的链接": "manual/zh/introduction/Useful-links"
+			},
+
+			"Next Steps": {
+				"How to update things": "manual/zh/introduction/How-to-update-things",
+				"Matrix transformations": "manual/zh/introduction/Matrix-transformations",
+				"Animation system": "manual/zh/introduction/Animation-system"
+			},
+
+			"Build Tools": {
+				"Testing with NPM": "manual/zh/buildTools/Testing-with-NPM"
+			}
+
+		},
+
+		"Reference": {
+
+			"Animation": {
+				"AnimationAction": "api/zh/animation/AnimationAction",
+				"AnimationClip": "api/zh/animation/AnimationClip",
+				"AnimationMixer": "api/zh/animation/AnimationMixer",
+				"AnimationObjectGroup": "api/zh/animation/AnimationObjectGroup",
+				"AnimationUtils": "api/zh/animation/AnimationUtils",
+				"KeyframeTrack": "api/zh/animation/KeyframeTrack",
+				"PropertyBinding": "api/zh/animation/PropertyBinding",
+				"PropertyMixer": "api/zh/animation/PropertyMixer"
+			},
+
+			"Animation / Tracks": {
+				"BooleanKeyframeTrack": "api/zh/animation/tracks/BooleanKeyframeTrack",
+				"ColorKeyframeTrack": "api/zh/animation/tracks/ColorKeyframeTrack",
+				"NumberKeyframeTrack": "api/zh/animation/tracks/NumberKeyframeTrack",
+				"QuaternionKeyframeTrack": "api/zh/animation/tracks/QuaternionKeyframeTrack",
+				"StringKeyframeTrack": "api/zh/animation/tracks/StringKeyframeTrack",
+				"VectorKeyframeTrack": "api/zh/animation/tracks/VectorKeyframeTrack"
+			},
+
+			"Audio": {
+				"Audio": "api/zh/audio/Audio",
+				"AudioAnalyser": "api/zh/audio/AudioAnalyser",
+				"AudioContext": "api/zh/audio/AudioContext",
+				"AudioListener": "api/zh/audio/AudioListener",
+				"PositionalAudio": "api/zh/audio/PositionalAudio"
+			},
+
+			"Cameras": {
+				"ArrayCamera": "api/zh/cameras/ArrayCamera",
+				"Camera": "api/zh/cameras/Camera",
+				"CubeCamera": "api/zh/cameras/CubeCamera",
+				"OrthographicCamera": "api/zh/cameras/OrthographicCamera",
+				"PerspectiveCamera": "api/zh/cameras/PerspectiveCamera",
+				"StereoCamera": "api/zh/cameras/StereoCamera"
+			},
+
+			"Constants": {
+				"Animation": "api/zh/constants/Animation",
+				"Core": "api/zh/constants/Core",
+				"CustomBlendingEquation": "api/zh/constants/CustomBlendingEquations",
+				"DrawModes": "api/zh/constants/DrawModes",
+				"Materials": "api/zh/constants/Materials",
+				"Renderer": "api/zh/constants/Renderer",
+				"Textures": "api/zh/constants/Textures"
+			},
+
+			"Core": {
+				"BufferAttribute": "api/zh/core/BufferAttribute",
+				"BufferGeometry": "api/zh/core/BufferGeometry",
+				"Clock": "api/zh/core/Clock",
+				"DirectGeometry": "api/zh/core/DirectGeometry",
+				"EventDispatcher": "api/zh/core/EventDispatcher",
+				"Face3": "api/zh/core/Face3",
+				"Geometry": "api/zh/core/Geometry",
+				"InstancedBufferAttribute": "api/zh/core/InstancedBufferAttribute",
+				"InstancedBufferGeometry": "api/zh/core/InstancedBufferGeometry",
+				"InstancedInterleavedBuffer": "api/zh/core/InstancedInterleavedBuffer",
+				"InterleavedBuffer": "api/zh/core/InterleavedBuffer",
+				"InterleavedBufferAttribute": "api/zh/core/InterleavedBufferAttribute",
+				"Layers": "api/zh/core/Layers",
+				"Object3D": "api/zh/core/Object3D",
+				"Raycaster": "api/zh/core/Raycaster",
+				"Uniform": "api/zh/core/Uniform"
+			},
+
+			"Core / BufferAttributes": {
+				"BufferAttribute Types": "api/zh/core/bufferAttributeTypes/BufferAttributeTypes"
+			},
+
+			"Deprecated": {
+				"DeprecatedList": "api/zh/deprecated/DeprecatedList"
+			},
+
+			"Extras": {
+				"Earcut": "api/zh/extras/Earcut",
+				"ShapeUtils": "api/zh/extras/ShapeUtils"
+			},
+
+			"Extras / Core": {
+				"Curve": "api/zh/extras/core/Curve",
+				"CurvePath": "api/zh/extras/core/CurvePath",
+				"Font": "api/zh/extras/core/Font",
+				"Interpolations": "api/zh/extras/core/Interpolations",
+				"Path": "api/zh/extras/core/Path",
+				"Shape": "api/zh/extras/core/Shape",
+				"ShapePath": "api/zh/extras/core/ShapePath"
+			},
+
+			"Extras / Curves": {
+				"ArcCurve": "api/zh/extras/curves/ArcCurve",
+				"CatmullRomCurve3": "api/zh/extras/curves/CatmullRomCurve3",
+				"CubicBezierCurve": "api/zh/extras/curves/CubicBezierCurve",
+				"CubicBezierCurve3": "api/zh/extras/curves/CubicBezierCurve3",
+				"EllipseCurve": "api/zh/extras/curves/EllipseCurve",
+				"LineCurve": "api/zh/extras/curves/LineCurve",
+				"LineCurve3": "api/zh/extras/curves/LineCurve3",
+				"QuadraticBezierCurve": "api/zh/extras/curves/QuadraticBezierCurve",
+				"QuadraticBezierCurve3": "api/zh/extras/curves/QuadraticBezierCurve3",
+				"SplineCurve": "api/zh/extras/curves/SplineCurve"
+			},
+
+			"Extras / Objects": {
+				"ImmediateRenderObject": "api/zh/extras/objects/ImmediateRenderObject",
+			},
+
+			"Geometries": {
+				"BoxBufferGeometry": "api/zh/geometries/BoxBufferGeometry",
+				"BoxGeometry": "api/zh/geometries/BoxGeometry",
+				"CircleBufferGeometry": "api/zh/geometries/CircleBufferGeometry",
+				"CircleGeometry": "api/zh/geometries/CircleGeometry",
+				"ConeBufferGeometry": "api/zh/geometries/ConeBufferGeometry",
+				"ConeGeometry": "api/zh/geometries/ConeGeometry",
+				"CylinderBufferGeometry": "api/zh/geometries/CylinderBufferGeometry",
+				"CylinderGeometry": "api/zh/geometries/CylinderGeometry",
+				"DodecahedronBufferGeometry": "api/zh/geometries/DodecahedronBufferGeometry",
+				"DodecahedronGeometry": "api/zh/geometries/DodecahedronGeometry",
+				"EdgesGeometry": "api/zh/geometries/EdgesGeometry",
+				"ExtrudeBufferGeometry": "api/zh/geometries/ExtrudeBufferGeometry",
+				"ExtrudeGeometry": "api/zh/geometries/ExtrudeGeometry",
+				"IcosahedronBufferGeometry": "api/zh/geometries/IcosahedronBufferGeometry",
+				"IcosahedronGeometry": "api/zh/geometries/IcosahedronGeometry",
+				"LatheBufferGeometry": "api/zh/geometries/LatheBufferGeometry",
+				"LatheGeometry": "api/zh/geometries/LatheGeometry",
+				"OctahedronBufferGeometry": "api/zh/geometries/OctahedronBufferGeometry",
+				"OctahedronGeometry": "api/zh/geometries/OctahedronGeometry",
+				"ParametricBufferGeometry": "api/zh/geometries/ParametricBufferGeometry",
+				"ParametricGeometry": "api/zh/geometries/ParametricGeometry",
+				"PlaneBufferGeometry": "api/zh/geometries/PlaneBufferGeometry",
+				"PlaneGeometry": "api/zh/geometries/PlaneGeometry",
+				"PolyhedronBufferGeometry": "api/zh/geometries/PolyhedronBufferGeometry",
+				"PolyhedronGeometry": "api/zh/geometries/PolyhedronGeometry",
+				"RingBufferGeometry": "api/zh/geometries/RingBufferGeometry",
+				"RingGeometry": "api/zh/geometries/RingGeometry",
+				"ShapeBufferGeometry": "api/zh/geometries/ShapeBufferGeometry",
+				"ShapeGeometry": "api/zh/geometries/ShapeGeometry",
+				"SphereBufferGeometry": "api/zh/geometries/SphereBufferGeometry",
+				"SphereGeometry": "api/zh/geometries/SphereGeometry",
+				"TetrahedronBufferGeometry": "api/zh/geometries/TetrahedronBufferGeometry",
+				"TetrahedronGeometry": "api/zh/geometries/TetrahedronGeometry",
+				"TextBufferGeometry": "api/zh/geometries/TextBufferGeometry",
+				"TextGeometry": "api/zh/geometries/TextGeometry",
+				"TorusBufferGeometry": "api/zh/geometries/TorusBufferGeometry",
+				"TorusGeometry": "api/zh/geometries/TorusGeometry",
+				"TorusKnotBufferGeometry": "api/zh/geometries/TorusKnotBufferGeometry",
+				"TorusKnotGeometry": "api/zh/geometries/TorusKnotGeometry",
+				"TubeBufferGeometry": "api/zh/geometries/TubeBufferGeometry",
+				"TubeGeometry": "api/zh/geometries/TubeGeometry",
+				"WireframeGeometry": "api/zh/geometries/WireframeGeometry"
+			},
+
+			"Helpers": {
+				"ArrowHelper": "api/zh/helpers/ArrowHelper",
+				"AxesHelper": "api/zh/helpers/AxesHelper",
+				"BoxHelper": "api/zh/helpers/BoxHelper",
+				"Box3Helper": "api/zh/helpers/Box3Helper",
+				"CameraHelper": "api/zh/helpers/CameraHelper",
+				"DirectionalLightHelper": "api/zh/helpers/DirectionalLightHelper",
+				"FaceNormalsHelper": "api/zh/helpers/FaceNormalsHelper",
+				"GridHelper": "api/zh/helpers/GridHelper",
+				"PolarGridHelper": "api/zh/helpers/PolarGridHelper",
+				"HemisphereLightHelper": "api/zh/helpers/HemisphereLightHelper",
+				"PlaneHelper": "api/zh/helpers/PlaneHelper",
+				"PointLightHelper": "api/zh/helpers/PointLightHelper",
+				"RectAreaLightHelper": "api/zh/helpers/RectAreaLightHelper",
+				"SkeletonHelper": "api/zh/helpers/SkeletonHelper",
+				"SpotLightHelper": "api/zh/helpers/SpotLightHelper",
+				"VertexNormalsHelper": "api/zh/helpers/VertexNormalsHelper"
+			},
+
+			"Lights": {
+				"AmbientLight": "api/zh/lights/AmbientLight",
+				"DirectionalLight": "api/zh/lights/DirectionalLight",
+				"HemisphereLight": "api/zh/lights/HemisphereLight",
+				"Light": "api/zh/lights/Light",
+				"PointLight": "api/zh/lights/PointLight",
+				"RectAreaLight": "api/zh/lights/RectAreaLight",
+				"SpotLight": "api/zh/lights/SpotLight"
+			},
+
+			"Lights / Shadows": {
+				"DirectionalLightShadow": "api/zh/lights/shadows/DirectionalLightShadow",
+				"LightShadow": "api/zh/lights/shadows/LightShadow",
+				"SpotLightShadow": "api/zh/lights/shadows/SpotLightShadow"
+			},
+
+			"Loaders": {
+				"AnimationLoader": "api/zh/loaders/AnimationLoader",
+				"AudioLoader": "api/zh/loaders/AudioLoader",
+				"BufferGeometryLoader": "api/zh/loaders/BufferGeometryLoader",
+				"Cache": "api/zh/loaders/Cache",
+				"CompressedTextureLoader": "api/zh/loaders/CompressedTextureLoader",
+				"CubeTextureLoader": "api/zh/loaders/CubeTextureLoader",
+				"DataTextureLoader": "api/zh/loaders/DataTextureLoader",
+				"FileLoader": "api/zh/loaders/FileLoader",
+				"FontLoader": "api/zh/loaders/FontLoader",
+				"ImageBitmapLoader": "api/zh/loaders/ImageBitmapLoader",
+				"ImageLoader": "api/zh/loaders/ImageLoader",
+				"JSONLoader": "api/zh/loaders/JSONLoader",
+				"Loader": "api/zh/loaders/Loader",
+				"LoaderUtils": "api/zh/loaders/LoaderUtils",
+				"MaterialLoader": "api/zh/loaders/MaterialLoader",
+				"ObjectLoader": "api/zh/loaders/ObjectLoader",
+				"TextureLoader": "api/zh/loaders/TextureLoader"
+			},
+
+			"Loaders / Managers": {
+				"DefaultLoadingManager": "api/zh/loaders/managers/DefaultLoadingManager",
+				"LoadingManager": "api/zh/loaders/managers/LoadingManager"
+			},
+
+			"Materials": {
+				"LineBasicMaterial": "api/zh/materials/LineBasicMaterial",
+				"LineDashedMaterial": "api/zh/materials/LineDashedMaterial",
+				"Material": "api/zh/materials/Material",
+				"MeshBasicMaterial": "api/zh/materials/MeshBasicMaterial",
+				"MeshDepthMaterial": "api/zh/materials/MeshDepthMaterial",
+				"MeshLambertMaterial": "api/zh/materials/MeshLambertMaterial",
+				"MeshNormalMaterial": "api/zh/materials/MeshNormalMaterial",
+				"MeshPhongMaterial": "api/zh/materials/MeshPhongMaterial",
+				"MeshPhysicalMaterial": "api/zh/materials/MeshPhysicalMaterial",
+				"MeshStandardMaterial": "api/zh/materials/MeshStandardMaterial",
+				"MeshToonMaterial": "api/zh/materials/MeshToonMaterial",
+				"PointsMaterial": "api/zh/materials/PointsMaterial",
+				"RawShaderMaterial": "api/zh/materials/RawShaderMaterial",
+				"ShaderMaterial": "api/zh/materials/ShaderMaterial",
+				"ShadowMaterial": "api/zh/materials/ShadowMaterial",
+				"SpriteMaterial": "api/zh/materials/SpriteMaterial"
+			},
+
+			"Math": {
+				"Box2": "api/zh/math/Box2",
+				"Box3": "api/zh/math/Box3",
+				"Color": "api/zh/math/Color",
+				"Cylindrical": "api/zh/math/Cylindrical",
+				"Euler": "api/zh/math/Euler",
+				"Frustum": "api/zh/math/Frustum",
+				"Interpolant": "api/zh/math/Interpolant",
+				"Line3": "api/zh/math/Line3",
+				"Math": "api/zh/math/Math",
+				"Matrix3": "api/zh/math/Matrix3",
+				"Matrix4": "api/zh/math/Matrix4",
+				"Plane": "api/zh/math/Plane",
+				"Quaternion": "api/zh/math/Quaternion",
+				"Ray": "api/zh/math/Ray",
+				"Sphere": "api/zh/math/Sphere",
+				"Spherical": "api/zh/math/Spherical",
+				"Triangle": "api/zh/math/Triangle",
+				"Vector2": "api/zh/math/Vector2",
+				"Vector3": "api/zh/math/Vector3",
+				"Vector4": "api/zh/math/Vector4"
+			},
+
+			"Math / Interpolants": {
+				"CubicInterpolant": "api/zh/math/interpolants/CubicInterpolant",
+				"DiscreteInterpolant": "api/zh/math/interpolants/DiscreteInterpolant",
+				"LinearInterpolant": "api/zh/math/interpolants/LinearInterpolant",
+				"QuaternionLinearInterpolant": "api/zh/math/interpolants/QuaternionLinearInterpolant"
+			},
+
+			"Objects": {
+				"Bone": "api/zh/objects/Bone",
+				"Group": "api/zh/objects/Group",
+				"Line": "api/zh/objects/Line",
+				"LineLoop": "api/zh/objects/LineLoop",
+				"LineSegments": "api/zh/objects/LineSegments",
+				"LOD": "api/zh/objects/LOD",
+				"Mesh": "api/zh/objects/Mesh",
+				"Points": "api/zh/objects/Points",
+				"Skeleton": "api/zh/objects/Skeleton",
+				"SkinnedMesh": "api/zh/objects/SkinnedMesh",
+				"Sprite": "api/zh/objects/Sprite"
+			},
+
+			"Renderers": {
+				"WebGLRenderer": "api/zh/renderers/WebGLRenderer",
+				"WebGLRenderTarget": "api/zh/renderers/WebGLRenderTarget",
+				"WebGLRenderTargetCube": "api/zh/renderers/WebGLRenderTargetCube"
+			},
+
+			"Renderers / Shaders": {
+				"ShaderChunk": "api/zh/renderers/shaders/ShaderChunk",
+				"ShaderLib": "api/zh/renderers/shaders/ShaderLib",
+				"UniformsLib": "api/zh/renderers/shaders/UniformsLib",
+				"UniformsUtils": "api/zh/renderers/shaders/UniformsUtils"
+			},
+
+			"Scenes": {
+				"Fog": "api/zh/scenes/Fog",
+				"FogExp2": "api/zh/scenes/FogExp2",
+				"Scene": "api/zh/scenes/Scene"
+			},
+
+			"Textures": {
+				"CanvasTexture": "api/zh/textures/CanvasTexture",
+				"CompressedTexture": "api/zh/textures/CompressedTexture",
+				"CubeTexture": "api/zh/textures/CubeTexture",
+				"DataTexture": "api/zh/textures/DataTexture",
+				"DepthTexture": "api/zh/textures/DepthTexture",
+				"Texture": "api/zh/textures/Texture",
+				"VideoTexture": "api/zh/textures/VideoTexture"
+			}
+
+		},
+
+		"Examples": {
+
+			"Animations": {
+				"CCDIKSolver": "examples/animations/CCDIKSolver",
+				"MMDAnimationHelper": "examples/animations/MMDAnimationHelper",
+				"MMDPhysics": "examples/animations/MMDPhysics"
+			},
+
+			"Controls": {
+				"OrbitControls": "examples/controls/OrbitControls"
+			},
+
+			"Geometries": {
+				"ConvexBufferGeometry": "examples/geometries/ConvexBufferGeometry",
+				"ConvexGeometry": "examples/geometries/ConvexGeometry",
+				"DecalGeometry": "examples/geometries/DecalGeometry"
+			},
+
+			"Loaders": {
+				"BabylonLoader": "examples/loaders/BabylonLoader",
+				"GLTFLoader": "examples/loaders/GLTFLoader",
+				"MMDLoader": "examples/loaders/MMDLoader",
+				"MTLLoader": "examples/loaders/MTLLoader",
+				"OBJLoader": "examples/loaders/OBJLoader",
+				"OBJLoader2": "examples/loaders/OBJLoader2",
+				"LoaderSupport": "examples/loaders/LoaderSupport",
+				"PCDLoader": "examples/loaders/PCDLoader",
+				"PDBLoader": "examples/loaders/PDBLoader",
+				"SVGLoader": "examples/loaders/SVGLoader",
+				"TGALoader": "examples/loaders/TGALoader",
+				"PRWMLoader": "examples/loaders/PRWMLoader"
+			},
+
+			"Objects": {
+				"Lensflare": "examples/objects/Lensflare",
+			},
+
+			"Exporters": {
+				"GLTFExporter": "examples/exporters/GLTFExporter",
+				"PLYExporter": "examples/exporters/PLYExporter"
+			},
+
+			"Plugins": {
+				"LookupTable": "examples/Lut",
+				"SpriteCanvasMaterial": "examples/SpriteCanvasMaterial"
+			},
+
+			"QuickHull": {
+				"Face": "examples/quickhull/Face",
+				"HalfEdge": "examples/quickhull/HalfEdge",
+				"QuickHull": "examples/quickhull/QuickHull",
+				"VertexNode": "examples/quickhull/VertexNode",
+				"VertexList": "examples/quickhull/VertexList"
+			},
+
+			"Renderers": {
+				"CanvasRenderer": "examples/renderers/CanvasRenderer",
+				"CSS2DRenderer": "examples/renderers/CSS2DRenderer",
+				"CSS3DRenderer": "examples/renderers/CSS3DRenderer",
+				"SVGRenderer": "examples/renderers/SVGRenderer"
+
+			},
+
+			"Utils": {
+				"BufferGeometryUtils": "examples/utils/BufferGeometryUtils",
+				"SceneUtils": "examples/utils/SceneUtils"
+			}
+
+		},
+
+		"Developer Reference": {
+
+			"Polyfills": {
+				"Polyfills": "api/zh/Polyfills"
+			},
+
+			"WebGLRenderer": {
+				"WebGLProgram": "api/zh/renderers/webgl/WebGLProgram",
+				"WebGLShader": "api/zh/renderers/webgl/WebGLShader",
+				"WebGLState": "api/zh/renderers/webgl/WebGLState"
+			}
 
-		"WebGLRenderer": {
-			"WebGLProgram": "api/{lan}/renderers/webgl/WebGLProgram",
-			"WebGLShader": "api/{lan}/renderers/webgl/WebGLShader",
-			"WebGLState": "api/{lan}/renderers/webgl/WebGLState"
 		}
 
 	}

+ 84 - 0
docs/manual/en/introduction/How-to-create-VR-content.html

@@ -0,0 +1,84 @@
+<!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>
+	<br />
+
+	<p>
+		This guide provides a brief overview of the basic components of a web-based VR application
+		made with three.js.
+	</p>
+
+	<h2>Workflow</h2>
+
+	<p>
+		First, you have to include [link:https://github.com/mrdoob/three.js/blob/master/examples/js/vr/WebVR.js WebVR.js]
+		into your project.
+	</p>
+
+	<code>
+&lt;script src="/path/to/WebVR.js"&gt;&lt;/script&gt;
+	</code>
+
+	<p>
+		*WEBVR.createButton()* does two important things: It creates a button which indicates
+		VR compatibility. Besides, it initiates a VR session if the user activates the button. The only thing you have
+		to do is to add the following line of code to your app.
+	</p>
+
+	<code>
+document.body.appendChild( WEBVR.createButton( renderer ) );
+	</code>
+
+	<p>
+		Next, you have to tell your instance of *WebGLRenderer* to enable VR rendering.
+	</p>
+
+	<code>
+renderer.vr.enabled = true;
+	</code>
+
+	<p>
+		Finally, you have to adjust your animation loop since we can't use our well known
+		*window.requestAnimationFrame()* function. For VR projects we use [page:WebGLRenderer.setAnimationLoop setAnimationLoop]. 
+		The minimal code looks like this:
+	</p>
+
+	<code>
+renderer.setAnimationLoop( function () {
+
+	renderer.render( scene, camera );
+
+} );
+	</code>
+
+	<h2>Next Steps</h2>
+
+	<p>
+		Have a look at one of the official WebVR examples to see this workflow in action.<br /><br />
+
+		[example:webvr_ballshooter WebVR / ballshoter]<br />
+		[example:webvr_cubes WebVR / cubes]<br />
+		[example:webvr_dragging WebVR / dragging]<br />
+		[example:webvr_lorenzattractor WebVR / lorenzattractor]<br />
+		[example:webvr_panorama WebVR / panorama]<br />
+		[example:webvr_paint WebVR / paint]<br />
+		[example:webvr_rollercoaster WebVR / rollercoaster]<br />
+		[example:webvr_sandbox WebVR / sandbox]<br />
+		[example:webvr_sculpt WebVR / sculpt]<br />
+		[example:webvr_vive_paint WebVR / vive / paint]<br />
+		[example:webvr_vive_sculpt WebVR / vive / sculpt]<br />
+	</p>
+
+</body>
+
+</html>

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

@@ -15,16 +15,16 @@
 		</p>
 
 		<p>
-			Add	[link:https://github.com/mrdoob/three.js/blob/master/examples/js/Detector.js]
+			Add	[link:https://github.com/mrdoob/three.js/blob/master/examples/js/WebGL.js]
 			to your javascript and run the following before attempting to render anything.
 		</p>
 
 <code>
-if (Detector.webgl) {
+if (WEBGL.isWebGLAvailable()) {
     // Initiate function or other initializations here
     animate();
 } else {
-    var warning = Detector.getWebGLErrorMessage();
+    var warning = WEBGL.getWebGLErrorMessage();
     document.getElementById('container').appendChild(warning);
 }
 </code>

+ 48 - 68
docs/manual/zh/introduction/Animation-system.html

@@ -10,100 +10,80 @@
 	<body>
 		<h1>[name]</h1>
 
-		<h2>Overview</h2>
+		<h2>Overview(概述)</h2>
 
 		<p class="desc">
-			Within the three.js animation system you can animate various properties of your models:
-			the bones of a [page:SkinnedMesh skinned and rigged model],
-			[page:Geometry.morphTargets morph targets], different material properties (colors,
-			opacity, booleans), visibility and transforms. The animated properties can be faded in,
-			faded out, crossfaded and warped. The weight and time scales of different simultaneous
-			animations on the same object as well as on different objects can be changed
-			independently. Various animations on the same and on different objects can be
-			synchronized.<br /><br />
-
-			To achieve all this in one homogeneous system, the three.js animation system
-			[link:https://github.com/mrdoob/three.js/issues/6881 has completely changed in 2015]
-			(be aware of outdated information!), and it has now an architecture similar to
-			Unity/Unreal Engine 4. This page gives a short overview of the main components of the
-			system and how they work together.
-
+			在three.js动画系统中,您可以为模型的各种属性设置动画:
+			[page:SkinnedMesh 蒙皮和装配模型]的骨头,[page:Geometry.morphTargets 变形目标],不同的材料属性(颜色,
+			不透明度,布尔运算),可见性和变换。 动画属性可以淡入,淡出,交叉淡化和扭曲。 不同时间的重量和时间尺度
+			可以更改同一对象以及不同对象上的动画独立。 可以在相同和不同对象上进行各种动画同步。
+			<br /><br />
+			在一个同构系统中实现所有这一切,即three.js动画系统
+			[link:https://github.com/mrdoob/three.js/issues/6881在2015年彻底改变]
+			(注意过时的信息!),它现在有一个与Unity /虚幻引擎4类似的架构.此页面简要概述了主要组件系统以及它们如何协同工作。
 		</p>
 
-		<h3>Animation Clips</h3>
+		<h3>Animation Clips(动画片段)</h3>
 
 		<p class="desc">
-
-			If you have successfully imported an animated 3D object (it doesn't matter if it has
-			bones or morph targets or both) — for example exporting it from Blender with the
-			[link:https://github.com/KhronosGroup/glTF-Blender-Exporter glTF Blender exporter] and
-			loading it into a three.js scene using [page:GLTFLoader] — one of the response fields
-			should be an array named "animations", containing the [page:AnimationClip AnimationClips]
-			for this model (see a list of possible loaders below).<br /><br />
-
-			Each *AnimationClip* usually holds the data for a certain activity of the object. If the
-			mesh is a character, for example, there may be one AnimationClip for a walkcycle, a second
-			for a jump, a third for sidestepping and so on.
-
+			如果您已成功导入动画3D对象(如果有,则无关紧要)
+			骨骼或变形目标或两者) - 例如使用[link:https://github.com/KhronosGroup/glTF-Blender-Exporter glTF Blender导出器]从Blender导出它
+			使用[page:GLTFLoader]将其加载到three.js场景中 - 其中一个响应字段应该是一个名为“animations”的数组,其中包含此模型的[page:AnimationClip AnimationClips](请参阅下面的可能加载器列表)。
+			<br /><br />
+			每个* AnimationClip *通常保存对象的某个活动的数据。 如果
+			mesh是一个字符,例如,可以有一个用于walkcycle的动画片段,第二个
+			跳跃,三分之一的回避等等。		
 		</p>
 
-		<h3>Keyframe Tracks</h3>
+		<h3>Keyframe Tracks(关键帧轨道)</h3>
 
 		<p class="desc">
-
-			Inside of such an *AnimationClip* the data for each animated property are stored in a
-			separate [page:KeyframeTrack]. Assumed a character object has a [page:Skeleton skeleton],
-			one keyframe track could store the data for the position changes of the lower arm bone
-			over time, a different track the data for the rotation changes of the same bone, a third
-			the track position, rotation or scaling of another bone, and so on. It should be clear,
-			that an AnimationClip can be composed of lots of such tracks.<br /><br />
-
-			Assumed the model has [page:Geometry.morphTargets morph targets] (for example one morph
-			target showing a friendly face and another showing an angry face), each track holds the
-			information as to how the [page:Mesh.morphTargetInfluences influence] of a certain morph
-			target changes during the performance of the clip.
-
+			在这样的* AnimationClip *里面,每个动画属性的数据都存储在一个
+			单独[page:KeyframeTrack]。 假设一个角色对象有一个[page:Skeleton skeleton],
+			一个关键帧轨道可以存储下臂骨骼位置变化的数据
+			随着时间的推移,不同的轨道数据为同一骨骼的旋转变化,三分之一
+			轨道位置,旋转或缩放另一个骨骼,等等。 应该很清楚,
+			AnimationClip可以由许多这样的轨道组成。
+			.<br /><br />
+			假设模型具有[page:Geometry.morphTargets 变形目标](例如一个变形
+			目标显示一个友好的面孔,另一个显示愤怒的脸),每个轨道持有
+			关于某个变形的[page:Mesh.morphTargetInfluences 影响]的信息
+			目标在剪辑执行期间发生变化。
 		</p>
 
-		<h3>Animation Mixer</h3>
+		<h3>Animation Mixer(动画混音器)</h3>
 
 		<p class="desc">
-
-			The stored data form only the basis for the animations - actual playback is controlled by
-			the [page:AnimationMixer]. You can imagine this not only as a player for animations, but
-			as a simulation of a hardware like a real mixer console, which can control several animations
-			simultaneously, blending and merging them.
-
+			存储的数据仅构成动画的基础 - 实际播放由控制
+			[page:AnimationMixer]。 你可以想象这不仅仅是动画的播放器,而是
+			作为硬件的模拟,如真正的调音台控制台,可以控制几个动画
+			同时,混合和合并它们。
 		</p>
 
 		<h3>Animation Actions</h3>
 
 		<p class="desc">
-
-			The *AnimationMixer* itself has only very few (general) properties and methods, because it
-			can be controlled by the [page:AnimationAction AnimationActions]. By configuring an
-			*AnimationAction* you can determine when a certain *AnimationClip* shall be played, paused
-			or stopped on one of the mixers, if and how often the clip has to be repeated, whether it
-			shall be performed with a fade or a time scaling, and some additional things, such crossfading
-			or synchronizing.
-
+			* AnimationMixer *本身只有很少(通用)属性和方法,因为它
+			可以通过[page:AnimationAction AnimationActions]来控制。 通过配置
+			* AnimationAction *您可以确定何时播放某个* AnimationClip *,暂停
+			或者停在其中一个混音器上,是否以及频率必须重复,无论是否
+			应使用淡入淡出或时间缩放以及一些其他内容(例如交叉渐变)来执行
+			或同步。
 		</p>
 
-		<h3>Animation Object Groups</h3>
+		<h3>Animation Object Groups(动画对象组)</h3>
 
 		<p class="desc">
-
-			If you want a group of objects to receive a shared animation state, you can use an
-			[page:AnimationObjectGroup].
+				如果您希望一组对象接收共享动画状态,则可以使用[page:AnimationObjectGroup].
 
 		</p>
 
-		<h3>Supported Formats and Loaders</h3>
+		<h3>Supported Formats and Loaders(支持的格式和加载器)</h3>
 
 		<p class="desc">
-			Note that not all model formats include animation (OBJ notably does not), and that only some
-			three.js loaders support [page:AnimationClip AnimationClip] sequences. Several that <i>do</i>
-			support this animation type:
+			请注意,并非所有模型格式都包含动画(尤其是OBJ,没有),而且只有一些
+			three.js加载器支持[page:AnimationClip AnimationClip]序列。 以下几个<i>确实</ i>
+			支持此动画类型:		
 		</p>
 
 			<ul>
@@ -118,8 +98,8 @@
 			</ul>
 
 		<p class="desc">
-			Note that 3ds max and Maya currently can't export multiple animations (meaning animations which are not
-			on the same timeline) directly to a single file.
+			请注意,3ds max和Maya当前无法导出多个动画(这意味着动画不是
+			在同一时间线上)直接到一个文件。
 		</p>
 
 		<h2>Example</h2>

+ 43 - 49
docs/manual/zh/introduction/How-to-update-things.html

@@ -10,12 +10,12 @@
 	<body>
 		<h1>[name]</h1>
 		<div>
-			<p>All objects by default automatically update their matrices if they have been added to the scene with</p>
+			<p>默认情况下,所有对象都会自动更新它们的矩阵(如果它们已添加到场景中)</p>
 			<code>
 var object = new THREE.Object3D();
 scene.add( object );
 			</code>
-			or if they are the child of another object that has been added to the scene:
+			或者它们是已添加到场景中的另一个对象的子节点:
 			<code>
 var object1 = new THREE.Object3D();
 var object2 = new THREE.Object3D();
@@ -25,38 +25,34 @@ scene.add( object1 ); //object1 and object2 will automatically update their matr
 			</code>
 		</div>
 
-		<p>However, if you know object will be static, you can disable this and update the transform matrix manually just when needed.</p>
+		<p>但是,如果你知道对象将是静态的,则可以禁用此选项并在需要时手动更新转换矩阵。</p>
 
 		<code>
 object.matrixAutoUpdate  = false;
 object.updateMatrix();
 		</code>
 
-		<h2>Geometries</h2>
+		<h2>Geometries(几何形状)</h2>
 		<div>
 			<h3>[page:BufferGeometry]</h3>
 			<div>
 				<p>
-					BufferGeometries store information (such as vertex positions, face indices, normals, colors,
-					UVs, and any custom attributes) in [page:BufferAttribute buffers] - that is,
+					BufferGeometries 将信息(例如顶点位置,面索引,法线,颜色,uv和任何自定义属性) 存储在 [page:BufferAttribute buffers] - 也就是,
 					[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays typed arrays].
-					This makes them generally faster than standard Geometries, at the cost of being somewhat harder to
-					work with.
+					这使得它们通常比标准Geometries更快,缺点是更难用。
 				</p>
 				<p>
-					With regards to updating BufferGeometries, the most important thing to understand is that
-					you cannot resize buffers (this is very costly,	basically the equivalent to creating a new geometry).
-					You can however update the content of buffers.
+					关于更新BufferGeometries, 最重要的是理解你不能调整 buffers 大小(这种操作开销很大,	相当于创建了个新的geometry).
+					但你可以更新 buffers的内容.
 				</p>
 				<p>
-					This means that if you know an attribute of your BufferGeometry will grow, say the number of vertices,
-					you must pre-allocate a buffer large enough to hold any new vertices that may be created. Of
-					course, this also means that there will be a maximum size for your BufferGeometry - there is
-					no way to create a BufferGeometry that can efficiently be extended indefinitely.
+					这意味着如果你知道BufferGeometry的一个属性会增长,比如顶点的数量,
+					你必须预先分配足够大的buffer来容纳可能创建的任何新顶点。
+					当然,这也意味着BufferGeometry将有一个最大大小 - 无法创建一个可以高效地无限扩展的BufferGeometry。
 				</p>
 				<p>
-					We'll use the example of a line that gets extended at render time. We'll allocate space
-					in the buffer for 500 vertices but draw only two at first, using [page:BufferGeometry.drawRange].
+					我们以在渲染时扩展的line来示例。我们将分配可容纳500个顶点的空间但起初仅绘制2个,使用
+					在500个顶点的缓冲区中,但首先只使用 [page:BufferGeometry.drawRange].
 				</p>
 				<code>
 var MAX_POINTS = 500;
@@ -80,7 +76,7 @@ var line = new THREE.Line( geometry,  material );
 scene.add( line );
 				</code>
 			 	<p>
-					Next we'll randomly add points to the line using a pattern like:
+					然后我们随机增加顶点到line中,以这样的一种方式:
 				</p>
 				<code>
 var positions = line.geometry.attributes.position.array;
@@ -101,21 +97,20 @@ for ( var i = 0, l = MAX_POINTS; i < l; i ++ ) {
 }
 				</code>
 				<p>
-					If you want to change the <em>number of points</em> rendered after the first render, do this:
+					如果要更改第一次渲染后渲染的<em>点数</em>,执行以下操作:
 				</p>
 				<code>
 line.geometry.setDrawRange( 0, newValue );
 				</code>
 				<p>
-					If you want to change the position data values after the first render, you need to
-					set the needsUpdate flag like so:
+					如果要在第一次渲染后更改position数值,则需要像这样设置needsUpdate标志:
 				</p>
 				<code>
 line.geometry.attributes.position.needsUpdate = true; // required after the first render
 				</code>
 
 				<p>
-					[link:http://jsfiddle.net/w67tzfhx/ Here is a fiddle] showing an animated line which you can adapt to your use case.
+					[link:http://jsfiddle.net/w67tzfhx/ 这个fiddle] 展示了一个你可以参考的运动的line.
 				</p>
 
 				<h3>Examples:</h3>
@@ -128,11 +123,10 @@ line.geometry.attributes.position.needsUpdate = true; // required after the firs
 			<h3>[page:Geometry]</h3>
 			<div>
 				<p>
-					The following flags control updating of various geometry attributes. Set flags only
-					for attributes that you need to update, updates are costly. Once buffers
-					change, these flags reset automatically back to false. You need to keep setting them to
-					true if you want to keep updating buffers. Note that this applies only to [page:Geometry]
-					and not to [page:BufferGeometry].
+					以下标志控制各种geometry属性的更新. 仅对于需要更新的属性设置标志
+					,因为更新成本很高. 一旦buffers
+					改变, 这些标志位会自动重置为false. 你需要保持这些设置为true,如果你想要持续更新buffers. 请注意这仅适用于[page:Geometry]
+					而不是 [page:BufferGeometry].
 				</p>
 				<code>
 var geometry = new THREE.Geometry();
@@ -146,8 +140,8 @@ geometry.tangentsNeedUpdate = true;
 				</code>
 
 				<p>
-					In versions prior to [link:https://github.com/mrdoob/three.js/releases/tag/r66 r66] meshes
-					additionally need the <em>dynamic</em> flag enabled (to keep internal typed arrays):
+					在早于 [link:https://github.com/mrdoob/three.js/releases/tag/r66 r66]版本中, meshes
+					需要额外设定 <em>dynamic</em> 标志true (为了维持内部的 typed arrays):
 				</p>
 
 				<code>
@@ -164,19 +158,19 @@ geometry.tangentsNeedUpdate = true;
 
 
 
-		<h2>Materials</h2>
+		<h2>Materials(材质)</h2>
 		<div>
-			<p>All uniforms values can be changed freely (e.g. colors, textures, opacity, etc), values are sent to the shader every frame.</p>
+			<p>所有uniforms值都可以自由改变 (e.g. colors, textures, opacity, etc), 这些数值在每帧都发给shader .</p>
 
-			<p>Also GLstate related parameters can change any time (depthTest, blending, polygonOffset, etc).</p>
+			<p>GL状态相关参数也可以随时改变 (depthTest, blending, polygonOffset, etc).</p>
 
-			<p>Flat / smooth shading is baked into normals. You need to reset normals buffer (see above).</p>
+			<p>平滑/平滑阴影被作到法线. 你需要重置法线 buffer (见上).</p>
 
-			<p>The following properties can't be easily changed at runtime (once the material is rendered at least once):</p>
+			<p>在运行时无法轻松更改以下属性 (一旦material被渲染了一次):</p>
 			<ul>
-				<li>numbers and types of uniforms</li>
-				<li>numbers and types of lights</li>
-				<li>presence or not of
+				<li>uniforms的数量和类型</li>
+				<li>lights的数量和类型</li>
+				<li>存在与否
 					<ul>
 						<li>texture</li>
 						<li>fog</li>
@@ -189,19 +183,19 @@ geometry.tangentsNeedUpdate = true;
 				</li>
 			</ul>
 
-			<p>Changes in these require building of new shader program. You'll need to set</p>
+			<p>这些变化需要建立新的shader程序. 你需要设置</p>
 			<code>material.needsUpdate = true</code>
 
-			<p>Bear in mind this might be quite slow and induce jerkiness in framerate (especially on Windows, as shader compilation is slower in DirectX than OpenGL).</p>
+			<p>请记住,这可能会非常缓慢并导致帧率的波动。 (特别是在Windows上,因为shader编译在directx中比opengl慢).</p>
 
-			<p>For smoother experience you can emulate changes in these features to some degree by having "dummy" values like zero intensity lights, white textures, or zero density fog.</p>
+			<p>为了获得更流畅的体验,您可以通过“虚拟”值(如零强度光,白色纹理或零密度雾)在一定程度上模拟这些功能的变化.</p>
 
-			<p>You can freely change the material used for geometry chunks, however you cannot change how an object is divided into chunks (according to face materials). </p>
+			<p>您可以自由更改用于几何块的材质,但是无法更改对象如何划分为块(根据面材料). </p>
 
-			<h3>If you need to have different configurations of materials during runtime:</h3>
-			<p>If the number of materials / chunks is small, you could pre-divide the object beforehand (e.g. hair / face / body / upper clothes / trousers for a human, front / sides / top / glass / tire / interior for a car). </p>
+			<h3>如果你需要在运行时使用不同的材料配置:</h3>
+			<p>如果材料/块的数量很少,您可以事先预先划分物体(例如,人的头发/脸部/身体/上衣/裤子,汽车的前部/侧面/顶部/玻璃/轮胎/内部). </p>
 
-			<p>If the number is large (e.g. each face could be potentially different), consider a different solution, such as using attributes / textures to drive different per-face look.</p>
+			<p>如果数量很大(例如,每个面可能有所不同),请考虑不同的解决方案,例如使用属性/纹理来驱动不同的每个面部外观。</p>
 
 			<h3>Examples:</h3>
 			[example:webgl_materials_cars WebGL / materials / cars]<br />
@@ -209,9 +203,9 @@ geometry.tangentsNeedUpdate = true;
 		</div>
 
 
-		<h2>Textures</h2>
+		<h2>Textures(纹理)</h2>
 		<div>
-			<p>Image, canvas, video and data textures need to have the following flag set if they are changed:</p>
+			<p>如果更改了图像,画布,视频和数据纹理,则需要设置以下标志:</p>
 			<code>
 				texture.needsUpdate = true;
 			</code>
@@ -224,9 +218,9 @@ geometry.tangentsNeedUpdate = true;
 		</div>
 
 
-		<h2>Cameras</h2>
+		<h2>Cameras(相机)</h2>
 		<div>
-			<p>A camera's position and target is updated automatically. If you need to change</p>
+			<p>相机的位置和目标会自动更新。 如果你需要改变</p>
 			<ul>
 				<li>
 					fov
@@ -242,7 +236,7 @@ geometry.tangentsNeedUpdate = true;
 				</li>
 			</ul>
 			<p>
-				then you'll need to recompute the projection matrix:
+				那么你需要重新计算投影矩阵:
 			</p>
 			<code>
 camera.aspect = window.innerWidth / window.innerHeight;

+ 17 - 16
docs/manual/zh/introduction/Matrix-transformations.html

@@ -11,55 +11,56 @@
 		<h1>[name]</h1>
 
 		<p>
-		Three.js uses *matrices* to encode 3D transformations---translations (position), rotations, and scaling. Every instance of [page:Object3D] has a [page:Object3D.matrix matrix] which stores that object's position, rotation, and scale. This page describes how to update an object's transformation.
+				Three.js使用*matrix*编码3D变换 - 平移(位置),旋转和缩放。 [page:Object3D]的每个实例都有一个[page:Object3D.matrix matrix],用于存储该对象的位置,旋转和比例。 本页介绍如何更新对象的转换。
 		</p>
 
-		<h2>Convenience properties and *matrixAutoUpdate*</h2>
+		<h2>Convenience properties and *matrixAutoUpdate*(便利属性和 *matrixAutoUpdate*)</h2>
 
-		There are two ways to update an object's transformation:
+		有两种方法可以更新对象的转换:
 		<ol>
 			<li>
-				Modify the object's *position*, *quaternion*, and *scale* properties, and let three.js recompute
-				the object's matrix from these properties:
+				修改对象的* position *,* quaternion *和* scale *属性,让three.js重新计算
+				来自这些属性的对象矩阵:
 				<code>
 				object.position.copy(start_position);
 				object.quaternion.copy(quaternion);
 				</code>
-				By default, the *matrixAutoUpdate* property is set true, and the matrix will be automatically recalculated.
-				If the object is static, or you wish to manually control when recalculation occurs, better performance can be obtained by setting the property false:
+				默认情况下,* matrixAutoUpdate *属性设置为true,并且将自动重新计算矩阵。
+如果对象是静态的,或者您希望在重新计算时手动控制,则可以通过将属性设置为false来获得更好的性能:
 				<code>
 				object.matrixAutoUpdate = false;
 				</code>
-				And after changing any properties, manually update the matrix:
+				更改任何属性后,手动更新矩阵:
 				<code>
 				object.updateMatrix();
 				</code>
 			</li>
 			<li>
-				Modify the object's matrix directly. The [page:Matrix4] class has various methods for modifying the matrix:
+				直接修改对象的矩阵。 [page:Matrix4]类有各种修改矩阵的方法:
 				<code>
 				object.matrix.setRotationFromQuaternion(quaternion);
 				object.matrix.setPosition(start_position);
 				object.matrixAutoUpdate = false;
 				</code>
-				Note that *matrixAutoUpdate* <em>must</em> be set to *false* in this case, and you should make sure <em>not</em> to call *updateMatrix*. Calling *updateMatrix* will clobber the manual changes made to the matrix, recalculating the matrix from *position*, *scale*, and so on.
+				请注意,在这种情况下,* 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>
-		An object's [page:Object3D.matrix matrix] stores the object's transformation <em>relative</em> to the object's [page:Object3D.parent parent]; to get the object's transformation in <em>world</em> coordinates, you must access the object's [page:Object3D.matrixWorld].
+		对象的[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 
 		</p>
 		<p>
-		When either the parent or the child object's transformation changes, you can request that the child object's [page:Object3D.matrixWorld matrixWorld] be updated by calling [page:Object3D.updateMatrixWorld updateMatrixWorld]().
+		当父对象或子对象的转换发生更改时,可以通过调用[page:Object3D.updateMatrixWorld updateMatrixWorld]()来请求更新子对象的[page:Object3D.matrixWorld matrixWorld]。
 		</p>
 
-		<h2>Rotation and Quaternion</h2>
+		<h2>Rotation and Quaternion(旋转和四元数)</h2>
 		<p>
-		Three.js provides two ways of representing 3D rotations: [page:Euler Euler angles] and [page:Quaternion Quaternions], as well as methods for converting between the two. Euler angles are subject to a problem called "gimbal lock," where certain configurations can lose a degree of freedom (preventing the object from being rotated about one axis). For this reason, object rotations are <em>always</em> stored in the object's [page:Object3D.quaternion quaternion].
+		Three.js提供了两种表示3D旋转的方式:[page:Euler Euler angles]和[page:Quaternion Quaternions],以及两者之间的转换方法。 欧拉角受到称为“万向节锁定”的问题,其中某些配置可能失去一定程度的自由度(防止物体绕一个轴旋转)。 因此,对象旋转<em>始终</em>存储在对象的[page:Object3D.quaternion quaternion]中。
 		</p>
 		<p>
-		Previous versions of the library included a *useQuaternion* property which, when set to false, would cause the object's [page:Object3D.matrix matrix] to be calculated from an Euler angle. This practice is deprecated---instead, you should use the [page:Object3D.setRotationFromEuler setRotationFromEuler] method, which will update the quaternion.
+		该库的早期版本包含* useQuaternion *属性,当设置为false时,将导致对象的[page:Object3D.matrix矩阵]从欧拉角计算。 这种做法已被弃用 - 相反,您应该使用[page:Object3D.setRotationFromEuler setRotationFromEuler]方法,该方法将更新四元数。	
 		</p>
 
 	</body>

+ 4 - 0
editor/index.html

@@ -6,6 +6,10 @@
 		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
 		<!-- Origin Trial Token, feature = WebVR (For Chrome M62+), origin = https://threejs.org, expires = 2018-09-11 -->
 		<meta http-equiv="origin-trial" data-feature="WebVR (For Chrome M62+)" data-expires="2018-09-11" content="AqhFUYKxq/d+E8CDT0fuYRCg8TvlTP52x0Jv7I9t27sLhR30LmcahBRfSwzP89ukjs2+ia99VrrLoRyaFAwJVA0AAABQeyJvcmlnaW4iOiJodHRwczovL3RocmVlanMub3JnOjQ0MyIsImZlYXR1cmUiOiJXZWJWUjEuMU02MiIsImV4cGlyeSI6MTUzNjYyNDAwMH0=">
+		<!-- Origin Trial Token, feature = WebXR Device API (For Chrome M69+), origin = https://threejs.org, expires = 2018-10-27 -->
+		<meta http-equiv="origin-trial" data-feature="WebXR Device API (For Chrome M69+)" data-expires="2018-10-27" content="An4ZYOGvf6kVHNxqZxS02TPAvpZESkmBhcVCM/byViDDuEB2XKvCF43aCJjrAU/R8H3WDlv+1bDGTL/XxstHGgoAAABTeyJvcmlnaW4iOiJodHRwczovL3RocmVlanMub3JnOjQ0MyIsImZlYXR1cmUiOiJXZWJYUkRldmljZU02OSIsImV4cGlyeSI6MTU0MDY1NTAyMn0=">
+		<!-- Origin Trial Token, feature = WebXR Gamepad Support, origin = https://threejs.org, expires = 2018-10-24 -->
+		<meta http-equiv="origin-trial" data-feature="WebXR Gamepad Support" data-expires="2018-10-24" content="Agrr6lZhlwzv5jmv/mpLZA37DIiVcg3HvX8bH8EWB+OBruV3sUJuzDfYz6qs/je+LcH41DkrmPn4k9RaUaqpQAAAAABYeyJvcmlnaW4iOiJodHRwczovL3RocmVlanMub3JnOjQ0MyIsImZlYXR1cmUiOiJXZWJYUkdhbWVwYWRTdXBwb3J0IiwiZXhwaXJ5IjoxNTQwMzg4NjI0fQ==">
 	</head>
 	<body ontouchstart="">
 		<link href="css/main.css" rel="stylesheet" />

+ 1 - 1
editor/js/Loader.js

@@ -577,7 +577,7 @@ var Loader = function ( editor ) {
 			case 'geometry':
 
 				var loader = new THREE.JSONLoader();
-				loader.setTexturePath( scope.texturePath );
+				loader.setResourcePath( scope.texturePath );
 
 				var result = loader.parse( data );
 

+ 11 - 7
editor/js/Sidebar.Settings.Shortcuts.js

@@ -20,14 +20,12 @@ Sidebar.Settings.Shortcuts = function ( editor ) {
 
 	var shortcuts = [ 'translate', 'rotate', 'scale', 'undo', 'focus' ];
 
-	for ( var i = 0; i < shortcuts.length; i ++ ) {
-
-		let name = shortcuts[ i ];
+	function createShortcutInput( name ) {
 
-		let configName = 'settings/shortcuts/' + name;
-		let shortcutRow = new UI.Row();
+		var configName = 'settings/shortcuts/' + name;
+		var shortcutRow = new UI.Row();
 
-		let shortcutInput = new UI.Input().setWidth( '150px' ).setFontSize( '12px' );
+		var shortcutInput = new UI.Input().setWidth( '150px' ).setFontSize( '12px' );
 		shortcutInput.setTextTransform( 'lowercase' );
 		shortcutInput.onChange( function () {
 
@@ -85,6 +83,12 @@ Sidebar.Settings.Shortcuts = function ( editor ) {
 
 	}
 
+	for ( var i = 0; i < shortcuts.length; i ++ ) {
+
+		createShortcutInput( shortcuts[ i ] );
+
+	}
+
 	document.addEventListener( 'keydown', function ( event ) {
 
 		switch ( event.key.toLowerCase() ) {
@@ -100,7 +104,7 @@ Sidebar.Settings.Shortcuts = function ( editor ) {
 				var object = editor.selected;
 
 				if ( object === null ) return;
-				
+
 				var parent = object.parent;
 				if ( parent !== null ) editor.execute( new RemoveObjectCommand( object ) );
 

+ 3 - 3
examples/canvas_camera_orthographic.html

@@ -112,9 +112,9 @@
 
 				var aspect = window.innerWidth / window.innerHeight;
 
-				camera.left   = - frustumSize * aspect / 2;
-				camera.right  =   frustumSize * aspect / 2;
-				camera.top    =   frustumSize / 2;
+				camera.left = - frustumSize * aspect / 2;
+				camera.right = frustumSize * aspect / 2;
+				camera.top = frustumSize / 2;
 				camera.bottom = - frustumSize / 2;
 
 				camera.updateProjectionMatrix();

+ 29 - 30
examples/canvas_geometry_birds.html

@@ -43,15 +43,15 @@
 
 				THREE.Geometry.call( this );
 
-				v(   5,   0,   0 );
-				v( - 5, - 2,   1 );
-				v( - 5,   0,   0 );
+				v( 5, 0, 0 );
+				v( - 5, - 2, 1 );
+				v( - 5, 0, 0 );
 				v( - 5, - 2, - 1 );
 
-				v(   0,   2, - 6 );
-				v(   0,   2,   6 );
-				v(   2,   0,   0 );
-				v( - 3,   0,   0 );
+				v( 0, 2, - 6 );
+				v( 0, 2, 6 );
+				v( 2, 0, 0 );
+				v( - 3, 0, 0 );
 
 				f3( 0, 2, 1 );
 
@@ -72,7 +72,7 @@
 
 				}
 
-			}
+			};
 
 			Bird.prototype = Object.create( THREE.Geometry.prototype );
 			Bird.prototype.constructor = Bird;
@@ -82,8 +82,8 @@
 			var Boid = function () {
 
 				var vector = new THREE.Vector3(),
-				_acceleration, _width = 500, _height = 500, _depth = 200, _goal, _neighborhoodRadius = 100,
-				_maxSpeed = 4, _maxSteerForce = 0.1, _avoidWalls = false;
+					_acceleration, _width = 500, _height = 500, _depth = 200, _goal, _neighborhoodRadius = 100,
+					_maxSpeed = 4, _maxSteerForce = 0.1, _avoidWalls = false;
 
 				this.position = new THREE.Vector3();
 				this.velocity = new THREE.Vector3();
@@ -193,12 +193,12 @@
 
 				this.checkBounds = function () {
 
-					if ( this.position.x >   _width ) this.position.x = - _width;
-					if ( this.position.x < - _width ) this.position.x =   _width;
-					if ( this.position.y >   _height ) this.position.y = - _height;
-					if ( this.position.y < - _height ) this.position.y =  _height;
-					if ( this.position.z >  _depth ) this.position.z = - _depth;
-					if ( this.position.z < - _depth ) this.position.z =  _depth;
+					if ( this.position.x > _width ) this.position.x = - _width;
+					if ( this.position.x < - _width ) this.position.x = _width;
+					if ( this.position.y > _height ) this.position.y = - _height;
+					if ( this.position.y < - _height ) this.position.y = _height;
+					if ( this.position.z > _depth ) this.position.z = - _depth;
+					if ( this.position.z < - _depth ) this.position.z = _depth;
 
 				};
 
@@ -250,7 +250,7 @@
 					var count = 0;
 					var velSum = new THREE.Vector3();
 
-					for ( var i = 0, il = boids.length; i < il; i++ ) {
+					for ( var i = 0, il = boids.length; i < il; i ++ ) {
 
 						if ( Math.random() > 0.6 ) continue;
 
@@ -260,7 +260,7 @@
 						if ( distance > 0 && distance <= _neighborhoodRadius ) {
 
 							velSum.add( boid.velocity );
-							count++;
+							count ++;
 
 						}
 
@@ -300,7 +300,7 @@
 						if ( distance > 0 && distance <= _neighborhoodRadius ) {
 
 							posSum.add( boid.position );
-							count++;
+							count ++;
 
 						}
 
@@ -353,15 +353,14 @@
 
 				};
 
-			}
+			};
 
 			var SCREEN_WIDTH = window.innerWidth,
-			SCREEN_HEIGHT = window.innerHeight,
-			SCREEN_WIDTH_HALF = SCREEN_WIDTH  / 2,
-			SCREEN_HEIGHT_HALF = SCREEN_HEIGHT / 2;
+				SCREEN_HEIGHT = window.innerHeight,
+				SCREEN_WIDTH_HALF = SCREEN_WIDTH / 2,
+				SCREEN_HEIGHT_HALF = SCREEN_HEIGHT / 2;
 
-			var camera, scene, renderer,
-			birds, bird;
+			var camera, scene, renderer, birds, bird;
 
 			var boid, boids;
 
@@ -393,7 +392,7 @@
 					boid.setAvoidWalls( true );
 					boid.setWorldSize( 500, 500, 400 );
 
-					bird = birds[ i ] = new THREE.Mesh( new Bird(), new THREE.MeshBasicMaterial( { color:Math.random() * 0xffffff, side: THREE.DoubleSide } ) );
+					bird = birds[ i ] = new THREE.Mesh( new Bird(), new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff, side: THREE.DoubleSide } ) );
 					bird.phase = Math.floor( Math.random() * 62.83 );
 					scene.add( bird );
 
@@ -408,7 +407,7 @@
 				document.body.appendChild( renderer.domElement );
 
 				stats = new Stats();
-				document.getElementById( 'container' ).appendChild(stats.dom);
+				document.getElementById( 'container' ).appendChild( stats.dom );
 
 				//
 
@@ -429,7 +428,7 @@
 
 				var vector = new THREE.Vector3( event.clientX - SCREEN_WIDTH_HALF, - event.clientY + SCREEN_HEIGHT_HALF, 0 );
 
-				for ( var i = 0, il = boids.length; i < il; i++ ) {
+				for ( var i = 0, il = boids.length; i < il; i ++ ) {
 
 					boid = boids[ i ];
 
@@ -455,7 +454,7 @@
 
 			function render() {
 
-				for ( var i = 0, il = birds.length; i < il; i++ ) {
+				for ( var i = 0, il = birds.length; i < il; i ++ ) {
 
 					boid = boids[ i ];
 					boid.run( boids );
@@ -469,7 +468,7 @@
 					bird.rotation.y = Math.atan2( - boid.velocity.z, boid.velocity.x );
 					bird.rotation.z = Math.asin( boid.velocity.y / boid.velocity.length() );
 
-					bird.phase = ( bird.phase + ( Math.max( 0, bird.rotation.z ) + 0.1 )  ) % 62.83;
+					bird.phase = ( bird.phase + ( Math.max( 0, bird.rotation.z ) + 0.1 ) ) % 62.83;
 					bird.geometry.vertices[ 5 ].y = bird.geometry.vertices[ 4 ].y = Math.sin( bird.phase ) * 5;
 
 				}

+ 2 - 4
examples/canvas_geometry_cube.html

@@ -37,7 +37,6 @@
 			var mouseXOnMouseDown = 0;
 
 			var windowHalfX = window.innerWidth / 2;
-			var windowHalfY = window.innerHeight / 2;
 
 			init();
 			animate();
@@ -112,7 +111,6 @@
 			function onWindowResize() {
 
 				windowHalfX = window.innerWidth / 2;
-				windowHalfY = window.innerHeight / 2;
 
 				camera.aspect = window.innerWidth / window.innerHeight;
 				camera.updateProjectionMatrix();
@@ -144,7 +142,7 @@
 
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
@@ -152,7 +150,7 @@
 
 			}
 
-			function onDocumentMouseOut( event ) {
+			function onDocumentMouseOut() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );

+ 2 - 4
examples/canvas_geometry_hierarchy.html

@@ -27,9 +27,7 @@
 
 			var container, stats;
 
-			var camera, scene, renderer;
-
-			var geometry, group;
+			var camera, scene, renderer, group;
 
 			var mouseX = 0, mouseY = 0;
 
@@ -99,7 +97,7 @@
 
 			}
 
-			function onDocumentMouseMove(event) {
+			function onDocumentMouseMove( event ) {
 
 				mouseX = ( event.clientX - windowHalfX ) * 10;
 				mouseY = ( event.clientY - windowHalfY ) * 10;

+ 2 - 4
examples/canvas_geometry_nurbs.html

@@ -49,7 +49,6 @@
 			var mouseXOnMouseDown = 0;
 
 			var windowHalfX = window.innerWidth / 2;
-			var windowHalfY = window.innerHeight / 2;
 
 			init();
 			animate();
@@ -149,7 +148,6 @@
 			function onWindowResize() {
 
 				windowHalfX = window.innerWidth / 2;
-				windowHalfY = window.innerHeight / 2;
 
 				camera.aspect = window.innerWidth / window.innerHeight;
 				camera.updateProjectionMatrix();
@@ -181,7 +179,7 @@
 
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
@@ -189,7 +187,7 @@
 
 			}
 
-			function onDocumentMouseOut( event ) {
+			function onDocumentMouseOut() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );

+ 9 - 12
examples/canvas_geometry_panorama.html

@@ -42,14 +42,11 @@
 			var camera, scene, renderer;
 
 			var texture_placeholder,
-			isUserInteracting = false,
-			onMouseDownMouseX = 0, onMouseDownMouseY = 0,
-			onPointerDownPointerX = 0, onPointerDownPointerY = 0,
-			onPointerDownLon = 0, onPointerDownLat = 0,
-			lon = 90, onMouseDownLon = 0,
-			lat = 0, onMouseDownLat = 0,
-			phi = 0, theta = 0,
-			target = new THREE.Vector3();
+				isUserInteracting = false,
+				onPointerDownPointerX = 0, onPointerDownPointerY = 0,
+				onPointerDownLon = 0, onPointerDownLat = 0,
+				lon = 90, lat = 0, phi = 0, theta = 0,
+				target = new THREE.Vector3();
 
 			init();
 			animate();
@@ -79,7 +76,7 @@
 					loadTexture( 'textures/cube/skybox/py.jpg' ), // top
 					loadTexture( 'textures/cube/skybox/ny.jpg' ), // bottom
 					loadTexture( 'textures/cube/skybox/pz.jpg' ), // back
-					loadTexture( 'textures/cube/skybox/nz.jpg' )  // front
+					loadTexture( 'textures/cube/skybox/nz.jpg' ) // front
 
 				];
 
@@ -160,7 +157,7 @@
 
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				isUserInteracting = false;
 
@@ -199,8 +196,8 @@
 
 					event.preventDefault();
 
-					lon = ( onPointerDownPointerX - event.touches[0].pageX ) * 0.1 + onPointerDownLon;
-					lat = ( event.touches[0].pageY - onPointerDownPointerY ) * 0.1 + onPointerDownLat;
+					lon = ( onPointerDownPointerX - event.touches[ 0 ].pageX ) * 0.1 + onPointerDownLon;
+					lat = ( event.touches[ 0 ].pageY - onPointerDownPointerY ) * 0.1 + onPointerDownLat;
 
 				}
 

+ 9 - 11
examples/canvas_geometry_panorama_fisheye.html

@@ -42,14 +42,11 @@
 			var camera, scene, renderer;
 
 			var texture_placeholder,
-			isUserInteracting = false,
-			onMouseDownMouseX = 0, onMouseDownMouseY = 0,
-			onPointerDownPointerX = 0, onPointerDownPointerY = 0,
-			onPointerDownLon = 0, onPointerDownLat = 0,
-			lon = 90, onMouseDownLon = 0,
-			lat = 0, onMouseDownLat = 0,
-			phi = 0, theta = 0,
-			target = new THREE.Vector3();
+				isUserInteracting = false,
+				onPointerDownPointerX = 0, onPointerDownPointerY = 0,
+				onPointerDownLon = 0, onPointerDownLat = 0,
+				lon = 90, lat = 0, phi = 0, theta = 0,
+				target = new THREE.Vector3();
 
 			init();
 			animate();
@@ -168,9 +165,10 @@
 					lat = ( event.clientY - onPointerDownPointerY ) * 0.1 + onPointerDownLat;
 
 				}
+
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				isUserInteracting = false;
 
@@ -208,8 +206,8 @@
 
 					event.preventDefault();
 
-					lon = ( onPointerDownPointerX - event.touches[0].pageX ) * 0.1 + onPointerDownLon;
-					lat = ( event.touches[0].pageY - onPointerDownPointerY ) * 0.1 + onPointerDownLat;
+					lon = ( onPointerDownPointerX - event.touches[ 0 ].pageX ) * 0.1 + onPointerDownLon;
+					lat = ( event.touches[ 0 ].pageY - onPointerDownPointerY ) * 0.1 + onPointerDownLat;
 
 				}
 

+ 58 - 62
examples/canvas_geometry_shapes.html

@@ -36,9 +36,7 @@
 
 			var container, stats;
 
-			var camera, scene, renderer;
-
-			var group, text, plane;
+			var camera, scene, renderer, group;
 
 			var targetRotation = 0;
 			var targetRotationOnMouseDown = 0;
@@ -47,7 +45,6 @@
 			var mouseXOnMouseDown = 0;
 
 			var windowHalfX = window.innerWidth / 2;
-			var windowHalfY = window.innerHeight / 2;
 
 			init();
 			animate();
@@ -100,28 +97,28 @@
 
 				var californiaPts = [];
 
-				californiaPts.push( new THREE.Vector2 ( 610, 320 ) );
-				californiaPts.push( new THREE.Vector2 ( 450, 300 ) );
-				californiaPts.push( new THREE.Vector2 ( 392, 392 ) );
-				californiaPts.push( new THREE.Vector2 ( 266, 438 ) );
-				californiaPts.push( new THREE.Vector2 ( 190, 570 ) );
-				californiaPts.push( new THREE.Vector2 ( 190, 600 ) );
-				californiaPts.push( new THREE.Vector2 ( 160, 620 ) );
-				californiaPts.push( new THREE.Vector2 ( 160, 650 ) );
-				californiaPts.push( new THREE.Vector2 ( 180, 640 ) );
-				californiaPts.push( new THREE.Vector2 ( 165, 680 ) );
-				californiaPts.push( new THREE.Vector2 ( 150, 670 ) );
-				californiaPts.push( new THREE.Vector2 (  90, 737 ) );
-				californiaPts.push( new THREE.Vector2 (  80, 795 ) );
-				californiaPts.push( new THREE.Vector2 (  50, 835 ) );
-				californiaPts.push( new THREE.Vector2 (  64, 870 ) );
-				californiaPts.push( new THREE.Vector2 (  60, 945 ) );
-				californiaPts.push( new THREE.Vector2 ( 300, 945 ) );
-				californiaPts.push( new THREE.Vector2 ( 300, 743 ) );
-				californiaPts.push( new THREE.Vector2 ( 600, 473 ) );
-				californiaPts.push( new THREE.Vector2 ( 626, 425 ) );
-				californiaPts.push( new THREE.Vector2 ( 600, 370 ) );
-				californiaPts.push( new THREE.Vector2 ( 610, 320 ) );
+				californiaPts.push( new THREE.Vector2( 610, 320 ) );
+				californiaPts.push( new THREE.Vector2( 450, 300 ) );
+				californiaPts.push( new THREE.Vector2( 392, 392 ) );
+				californiaPts.push( new THREE.Vector2( 266, 438 ) );
+				californiaPts.push( new THREE.Vector2( 190, 570 ) );
+				californiaPts.push( new THREE.Vector2( 190, 600 ) );
+				californiaPts.push( new THREE.Vector2( 160, 620 ) );
+				californiaPts.push( new THREE.Vector2( 160, 650 ) );
+				californiaPts.push( new THREE.Vector2( 180, 640 ) );
+				californiaPts.push( new THREE.Vector2( 165, 680 ) );
+				californiaPts.push( new THREE.Vector2( 150, 670 ) );
+				californiaPts.push( new THREE.Vector2( 90, 737 ) );
+				californiaPts.push( new THREE.Vector2( 80, 795 ) );
+				californiaPts.push( new THREE.Vector2( 50, 835 ) );
+				californiaPts.push( new THREE.Vector2( 64, 870 ) );
+				californiaPts.push( new THREE.Vector2( 60, 945 ) );
+				californiaPts.push( new THREE.Vector2( 300, 945 ) );
+				californiaPts.push( new THREE.Vector2( 300, 743 ) );
+				californiaPts.push( new THREE.Vector2( 600, 473 ) );
+				californiaPts.push( new THREE.Vector2( 626, 425 ) );
+				californiaPts.push( new THREE.Vector2( 600, 370 ) );
+				californiaPts.push( new THREE.Vector2( 610, 320 ) );
 
 				var californiaShape = new THREE.Shape( californiaPts );
 
@@ -129,10 +126,10 @@
 				// Triangle
 
 				var triangleShape = new THREE.Shape();
-				triangleShape.moveTo(  80, 20 );
-				triangleShape.lineTo(  40, 80 );
+				triangleShape.moveTo( 80, 20 );
+				triangleShape.lineTo( 40, 80 );
 				triangleShape.lineTo( 120, 80 );
-				triangleShape.lineTo(  80, 20 ); // close path
+				triangleShape.lineTo( 80, 20 ); // close path
 
 
 				// Heart
@@ -143,7 +140,7 @@
 
 				heartShape.moveTo( x + 25, y + 25 );
 				heartShape.bezierCurveTo( x + 25, y + 25, x + 20, y, x, y );
-				heartShape.bezierCurveTo( x - 30, y, x - 30, y + 35,x - 30,y + 35 );
+				heartShape.bezierCurveTo( x - 30, y, x - 30, y + 35, x - 30, y + 35 );
 				heartShape.bezierCurveTo( x - 30, y + 55, x - 10, y + 77, x + 25, y + 95 );
 				heartShape.bezierCurveTo( x + 60, y + 77, x + 80, y + 55, x + 80, y + 35 );
 				heartShape.bezierCurveTo( x + 80, y + 35, x + 80, y, x + 50, y );
@@ -155,7 +152,7 @@
 				var sqLength = 80;
 
 				var squareShape = new THREE.Shape();
-				squareShape.moveTo( 0,0 );
+				squareShape.moveTo( 0, 0 );
 				squareShape.lineTo( 0, sqLength );
 				squareShape.lineTo( sqLength, sqLength );
 				squareShape.lineTo( sqLength, 0 );
@@ -167,7 +164,7 @@
 				var rectLength = 120, rectWidth = 40;
 
 				var rectShape = new THREE.Shape();
-				rectShape.moveTo( 0,0 );
+				rectShape.moveTo( 0, 0 );
 				rectShape.lineTo( 0, rectWidth );
 				rectShape.lineTo( rectLength, rectWidth );
 				rectShape.lineTo( rectLength, 0 );
@@ -178,12 +175,12 @@
 
 				var roundedRectShape = new THREE.Shape();
 
-				( function roundedRect( ctx, x, y, width, height, radius ){
+				( function roundedRect( ctx, x, y, width, height, radius ) {
 
 					ctx.moveTo( x, y + radius );
 					ctx.lineTo( x, y + height - radius );
 					ctx.quadraticCurveTo( x, y + height, x + radius, y + height );
-					ctx.lineTo( x + width - radius, y + height) ;
+					ctx.lineTo( x + width - radius, y + height );
 					ctx.quadraticCurveTo( x + width, y + height, x + width, y + height - radius );
 					ctx.lineTo( x + width, y + radius );
 					ctx.quadraticCurveTo( x + width, y, x + width - radius, y );
@@ -199,9 +196,9 @@
 				var circleShape = new THREE.Shape();
 				circleShape.moveTo( 0, circleRadius );
 				circleShape.quadraticCurveTo( circleRadius, circleRadius, circleRadius, 0 );
-				circleShape.quadraticCurveTo( circleRadius, -circleRadius, 0, -circleRadius );
-				circleShape.quadraticCurveTo( -circleRadius, -circleRadius, -circleRadius, 0 );
-				circleShape.quadraticCurveTo( -circleRadius, circleRadius, 0, circleRadius );
+				circleShape.quadraticCurveTo( circleRadius, - circleRadius, 0, - circleRadius );
+				circleShape.quadraticCurveTo( - circleRadius, - circleRadius, - circleRadius, 0 );
+				circleShape.quadraticCurveTo( - circleRadius, circleRadius, 0, circleRadius );
 
 
 				// Fish
@@ -210,23 +207,23 @@
 
 				var fishShape = new THREE.Shape();
 
-				fishShape.moveTo(x,y);
-				fishShape.quadraticCurveTo(x + 50, y - 80, x + 90, y - 10);
-				fishShape.quadraticCurveTo(x + 100, y - 10, x + 115, y - 40);
-				fishShape.quadraticCurveTo(x + 115, y, x + 115, y + 40);
-				fishShape.quadraticCurveTo(x + 100, y + 10, x + 90, y + 10);
-				fishShape.quadraticCurveTo(x + 50, y + 80, x, y);
+				fishShape.moveTo( x, y );
+				fishShape.quadraticCurveTo( x + 50, y - 80, x + 90, y - 10 );
+				fishShape.quadraticCurveTo( x + 100, y - 10, x + 115, y - 40 );
+				fishShape.quadraticCurveTo( x + 115, y, x + 115, y + 40 );
+				fishShape.quadraticCurveTo( x + 100, y + 10, x + 90, y + 10 );
+				fishShape.quadraticCurveTo( x + 50, y + 80, x, y );
 
 
 				// Arc circle
 
 				var arcShape = new THREE.Shape();
 				arcShape.moveTo( 50, 10 );
-				arcShape.absarc( 10, 10, 40, 0, Math.PI*2, false );
+				arcShape.absarc( 10, 10, 40, 0, Math.PI * 2, false );
 
 				var holePath = new THREE.Path();
 				holePath.moveTo( 20, 10 );
-				holePath.absarc( 10, 10, 10, 0, Math.PI*2, true );
+				holePath.absarc( 10, 10, 10, 0, Math.PI * 2, true );
 				arcShape.holes.push( holePath );
 
 
@@ -234,18 +231,18 @@
 
 				var smileyShape = new THREE.Shape();
 				smileyShape.moveTo( 80, 40 );
-				smileyShape.absarc( 40, 40, 40, 0, Math.PI*2, false );
+				smileyShape.absarc( 40, 40, 40, 0, Math.PI * 2, false );
 
 				var smileyEye1Path = new THREE.Path();
 				smileyEye1Path.moveTo( 35, 20 );
 				// smileyEye1Path.absarc( 25, 20, 10, 0, Math.PI*2, true );
-				smileyEye1Path.absellipse( 25, 20, 10, 10, 0, Math.PI*2, true );
+				smileyEye1Path.absellipse( 25, 20, 10, 10, 0, Math.PI * 2, true );
 
 				smileyShape.holes.push( smileyEye1Path );
 
 				var smileyEye2Path = new THREE.Path();
 				smileyEye2Path.moveTo( 65, 20 );
-				smileyEye2Path.absarc( 55, 20, 10, 0, Math.PI*2, true );
+				smileyEye2Path.absarc( 55, 20, 10, 0, Math.PI * 2, true );
 				smileyShape.holes.push( smileyEye2Path );
 
 				var smileyMouthPath = new THREE.Path();
@@ -268,28 +265,28 @@
 				// Spline shape + path extrusion
 
 				var splinepts = [];
-				splinepts.push( new THREE.Vector2 ( 350, 100 ) );
-				splinepts.push( new THREE.Vector2 ( 400, 450 ) );
-				splinepts.push( new THREE.Vector2 ( -140, 350 ) );
-				splinepts.push( new THREE.Vector2 ( 0, 0 ) );
+				splinepts.push( new THREE.Vector2( 350, 100 ) );
+				splinepts.push( new THREE.Vector2( 400, 450 ) );
+				splinepts.push( new THREE.Vector2( - 140, 350 ) );
+				splinepts.push( new THREE.Vector2( 0, 0 ) );
 
-				var splineShape = new THREE.Shape(  );
+				var splineShape = new THREE.Shape( );
 				splineShape.moveTo( 0, 0 );
 				splineShape.splineThru( splinepts );
 
 
 				// addShape( shape, color, x, y, z, rx, ry,rz, s );
 
-				addShape( californiaShape, 0xffaa00, -300, -100, 0, 0, 0, 0, 0.25 );
-				addShape( triangleShape, 0xffee00, -180, 0, 0, 0, 0, 0, 1 );
-				addShape( roundedRectShape, 0x005500, -150, 150, 0, 0, 0, 0, 1 );
+				addShape( californiaShape, 0xffaa00, - 300, - 100, 0, 0, 0, 0, 0.25 );
+				addShape( triangleShape, 0xffee00, - 180, 0, 0, 0, 0, 0, 1 );
+				addShape( roundedRectShape, 0x005500, - 150, 150, 0, 0, 0, 0, 1 );
 				addShape( squareShape, 0x0055ff, 150, 100, 0, 0, 0, 0, 1 );
 				addShape( heartShape, 0xff1100, 60, 100, 0, 0, 0, Math.PI, 1 );
 				addShape( circleShape, 0x00ff11, 120, 250, 0, 0, 0, 0, 1 );
-				addShape( fishShape, 0x222222, -60, 200, 0, 0, 0, 0, 1 );
-				addShape( smileyShape, 0xee00ff, -200, 250, 0, 0, 0, Math.PI, 1 );
+				addShape( fishShape, 0x222222, - 60, 200, 0, 0, 0, 0, 1 );
+				addShape( smileyShape, 0xee00ff, - 200, 250, 0, 0, 0, Math.PI, 1 );
 				addShape( arcShape, 0xbb4422, 150, 0, 0, 0, 0, 0, 1 );
-				addShape( splineShape, 0x888888, -50, -100, 0, 0, 0, 0, 0.2 );
+				addShape( splineShape, 0x888888, - 50, - 100, 0, 0, 0, 0, 0.2 );
 
 				//
 
@@ -315,7 +312,6 @@
 			function onWindowResize() {
 
 				windowHalfX = window.innerWidth / 2;
-				windowHalfY = window.innerHeight / 2;
 
 				camera.aspect = window.innerWidth / window.innerHeight;
 				camera.updateProjectionMatrix();
@@ -347,7 +343,7 @@
 
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
@@ -355,7 +351,7 @@
 
 			}
 
-			function onDocumentMouseOut( event ) {
+			function onDocumentMouseOut() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );

+ 4 - 6
examples/canvas_geometry_text.html

@@ -39,7 +39,6 @@
 			var mouseXOnMouseDown = 0;
 
 			var windowHalfX = window.innerWidth / 2;
-			var windowHalfY = window.innerHeight / 2;
 
 			var loader = new THREE.FontLoader();
 			loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
@@ -87,11 +86,11 @@
 					height: 20,
 					curveSegments: 2
 
-				});
+				} );
 
 				geometry.computeBoundingBox();
 
-				var centerOffset = -0.5 * ( geometry.boundingBox.max.x - geometry.boundingBox.min.x );
+				var centerOffset = - 0.5 * ( geometry.boundingBox.max.x - geometry.boundingBox.min.x );
 
 				var materials = [
 					new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff, overdraw: 0.5 } ),
@@ -133,7 +132,6 @@
 			function onWindowResize() {
 
 				windowHalfX = window.innerWidth / 2;
-				windowHalfY = window.innerHeight / 2;
 
 				camera.aspect = window.innerWidth / window.innerHeight;
 				camera.updateProjectionMatrix();
@@ -165,7 +163,7 @@
 
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
@@ -173,7 +171,7 @@
 
 			}
 
-			function onDocumentMouseOut( event ) {
+			function onDocumentMouseOut() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp, false );

+ 3 - 2
examples/canvas_interactive_cubes.html

@@ -127,8 +127,8 @@
 
 				event.preventDefault();
 
-				event.clientX = event.touches[0].clientX;
-				event.clientY = event.touches[0].clientY;
+				event.clientX = event.touches[ 0 ].clientX;
+				event.clientY = event.touches[ 0 ].clientY;
 				onDocumentMouseDown( event );
 
 			}
@@ -163,6 +163,7 @@
 
 				}
 				*/
+
 			}
 
 			//

+ 13 - 12
examples/canvas_interactive_cubes_tween.html

@@ -27,7 +27,7 @@
 
 			var container, stats;
 			var camera, scene, renderer;
-			
+
 			var raycaster;
 			var mouse;
 
@@ -71,16 +71,16 @@
 					scene.add( object );
 
 				}
-				
+
 				//
-				
+
 				raycaster = new THREE.Raycaster();
 				mouse = new THREE.Vector2();
 
 				renderer = new THREE.CanvasRenderer();
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
-				container.appendChild(renderer.domElement);
+				container.appendChild( renderer.domElement );
 
 				stats = new Stats();
 				container.appendChild( stats.dom );
@@ -102,16 +102,16 @@
 				renderer.setSize( window.innerWidth, window.innerHeight );
 
 			}
-			
+
 			function onDocumentTouchStart( event ) {
-				
+
 				event.preventDefault();
-				
-				event.clientX = event.touches[0].clientX;
-				event.clientY = event.touches[0].clientY;
+
+				event.clientX = event.touches[ 0 ].clientX;
+				event.clientY = event.touches[ 0 ].clientY;
 				onDocumentMouseDown( event );
 
-			}	
+			}
 
 			function onDocumentMouseDown( event ) {
 
@@ -130,13 +130,13 @@
 						x: Math.random() * 800 - 400,
 						y: Math.random() * 800 - 400,
 						z: Math.random() * 800 - 400 }, 2000 )
-					.easing( TWEEN.Easing.Elastic.Out).start();
+						.easing( TWEEN.Easing.Elastic.Out ).start();
 
 					new TWEEN.Tween( intersects[ 0 ].object.rotation ).to( {
 						x: Math.random() * 2 * Math.PI,
 						y: Math.random() * 2 * Math.PI,
 						z: Math.random() * 2 * Math.PI }, 2000 )
-					.easing( TWEEN.Easing.Elastic.Out).start();
+						.easing( TWEEN.Easing.Elastic.Out ).start();
 
 				}
 
@@ -148,6 +148,7 @@
 
 				}
 				*/
+
 			}
 
 			//

+ 9 - 6
examples/canvas_interactive_voxelpainter.html

@@ -96,7 +96,7 @@
 				renderer = new THREE.CanvasRenderer();
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
-				container.appendChild(renderer.domElement);
+				container.appendChild( renderer.domElement );
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'keydown', onDocumentKeyDown, false );
@@ -163,9 +163,10 @@
 
 			function onDocumentKeyDown( event ) {
 
-				switch( event.keyCode ) {
+				switch ( event.keyCode ) {
 
-					case 16: isShiftDown = true; break;
+					case 16: isShiftDown = true;
+						break;
 
 				}
 
@@ -173,16 +174,18 @@
 
 			function onDocumentKeyUp( event ) {
 
-				switch( event.keyCode ) {
+				switch ( event.keyCode ) {
 
-					case 16: isShiftDown = false; break;
+					case 16: isShiftDown = false;
+						break;
 
 				}
+
 			}
 
 			function save() {
 
-				window.open( renderer.domElement.toDataURL('image/png'), 'mywindow' );
+				window.open( renderer.domElement.toDataURL( 'image/png' ), 'mywindow' );
 				return false;
 
 			}

+ 2 - 2
examples/canvas_lights_pointlights.html

@@ -47,8 +47,8 @@
 		<script>
 
 			var camera, scene, renderer,
-			light1, light2, light3,
-			loader, mesh;
+				light1, light2, light3,
+				loader, mesh;
 
 			init();
 			animate();

+ 6 - 7
examples/canvas_lines.html

@@ -26,19 +26,18 @@
 		<script>
 
 			var mouseX = 0, mouseY = 0,
+				windowHalfX = window.innerWidth / 2,
+				windowHalfY = window.innerHeight / 2,
 
-			windowHalfX = window.innerWidth / 2,
-			windowHalfY = window.innerHeight / 2,
-
-			camera, scene, renderer;
+				camera, scene, renderer;
 
 			init();
 			animate();
 
 			function init() {
 
-				var container = document.createElement('div');
-				document.body.appendChild(container);
+				var container = document.createElement( 'div' );
+				document.body.appendChild( container );
 
 				camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
 				camera.position.z = 100;
@@ -114,7 +113,7 @@
 
 			//
 
-			function onDocumentMouseMove(event) {
+			function onDocumentMouseMove( event ) {
 
 				mouseX = event.clientX - windowHalfX;
 				mouseY = event.clientY - windowHalfY;

+ 2 - 1
examples/canvas_lines_colors.html

@@ -202,6 +202,7 @@
 
 					mouseX = event.touches[ 0 ].pageX - windowHalfX;
 					mouseY = event.touches[ 0 ].pageY - windowHalfY;
+
 				}
 
 			}
@@ -230,7 +231,7 @@
 
 					if ( object.isLine ) {
 
-						object.rotation.y = time * ( i % 2 ? 1 : -1 );
+						object.rotation.y = time * ( i % 2 ? 1 : - 1 );
 
 					}
 

+ 1 - 1
examples/canvas_lines_dashed.html

@@ -61,7 +61,7 @@
 				var subdivisions = 3;
 				var recursion = 1;
 
-				var points = hilbert3D( new THREE.Vector3( 0,0,0 ), 25.0, recursion, 0, 1, 2, 3, 4, 5, 6, 7 );
+				var points = hilbert3D( new THREE.Vector3( 0, 0, 0 ), 25.0, recursion, 0, 1, 2, 3, 4, 5, 6, 7 );
 				var spline = new THREE.CatmullRomCurve3( points );
 
 				var samples = spline.getPoints( points.length * subdivisions );

+ 4 - 18
examples/canvas_materials.html

@@ -34,8 +34,8 @@
 
 			function init() {
 
-				container = document.createElement('div');
-				document.body.appendChild(container);
+				container = document.createElement( 'div' );
+				document.body.appendChild( container );
 
 				camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );
 				camera.position.set( 0, 200, 800 );
@@ -132,7 +132,7 @@
 				container.appendChild( renderer.domElement );
 
 				stats = new Stats();
-				container.appendChild(stats.dom);
+				container.appendChild( stats.dom );
 
 				//
 
@@ -149,20 +149,6 @@
 
 			}
 
-			function loadImage( path ) {
-
-				var image = document.createElement( 'img' );
-				var texture = new THREE.Texture( image, THREE.UVMapping );
-
-				image.onload = function () { texture.needsUpdate = true; };
-				image.src = path;
-
-				return texture;
-
-			}
-
-			//
-
 			function animate() {
 
 				requestAnimationFrame( animate );
@@ -180,7 +166,7 @@
 				camera.position.z = Math.sin( timer ) * 1000;
 				camera.lookAt( scene.position );
 
-				for ( var i = 0, l = objects.length; i < l; i++ ) {
+				for ( var i = 0, l = objects.length; i < l; i ++ ) {
 
 					var object = objects[ i ];
 

+ 7 - 9
examples/canvas_materials_video.html

@@ -29,15 +29,13 @@
 
 		<script>
 
-			var AMOUNT = 100;
-
 			var container, stats;
 
 			var camera, scene, renderer;
 
 			var video, image, imageContext,
-			imageReflection, imageReflectionContext, imageReflectionGradient,
-			texture, textureReflection;
+				imageReflection, imageReflectionContext, imageReflectionGradient,
+				texture, textureReflection;
 
 			var mesh;
 
@@ -107,10 +105,10 @@
 
 				mesh = new THREE.Mesh( plane, material );
 				mesh.scale.x = mesh.scale.y = mesh.scale.z = 1.5;
-				scene.add(mesh);
+				scene.add( mesh );
 
 				mesh = new THREE.Mesh( plane, materialReflection );
-				mesh.position.y = -306;
+				mesh.position.y = - 306;
 				mesh.rotation.x = - Math.PI;
 				mesh.scale.x = mesh.scale.y = mesh.scale.z = 1.5;
 				scene.add( mesh );
@@ -135,13 +133,13 @@
 
 				} );
 
-				for ( var ix = 0; ix < amountx; ix++ ) {
+				for ( var ix = 0; ix < amountx; ix ++ ) {
 
-					for ( var iy = 0; iy < amounty; iy++ ) {
+					for ( var iy = 0; iy < amounty; iy ++ ) {
 
 						var sprite = new THREE.Sprite( material );
 						sprite.position.x = ix * separation - ( ( amountx * separation ) / 2 );
-						sprite.position.y = -153;
+						sprite.position.y = - 153;
 						sprite.position.z = iy * separation - ( ( amounty * separation ) / 2 );
 						sprite.scale.setScalar( 2 );
 						scene.add( sprite );

+ 3 - 4
examples/canvas_morphtargets_horse.html

@@ -27,8 +27,7 @@
 		<script>
 
 			var container, stats;
-			var camera, scene, projector, renderer;
-			var mesh, mixer;
+			var camera, scene, renderer, mixer;
 
 			init();
 			animate();
@@ -62,7 +61,7 @@
 				scene.add( light );
 
 				var light = new THREE.DirectionalLight( 0xffefef, 1.5 );
-				light.position.set( -1, -1, -1 ).normalize();
+				light.position.set( - 1, - 1, - 1 ).normalize();
 				scene.add( light );
 
 				var loader = new THREE.GLTFLoader();
@@ -86,7 +85,7 @@
 				renderer = new THREE.CanvasRenderer();
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
-				container.appendChild(renderer.domElement);
+				container.appendChild( renderer.domElement );
 
 				//
 

+ 6 - 8
examples/canvas_particles_floor.html

@@ -53,9 +53,9 @@
 
 				var material = new THREE.SpriteMaterial();
 
-				for ( var ix = 0; ix < AMOUNTX; ix++ ) {
+				for ( var ix = 0; ix < AMOUNTX; ix ++ ) {
 
-					for ( var iy = 0; iy < AMOUNTY; iy++ ) {
+					for ( var iy = 0; iy < AMOUNTY; iy ++ ) {
 
 						particle = new THREE.Sprite( material );
 						particle.scale.y = 20;
@@ -79,8 +79,6 @@
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchmove', onDocumentTouchMove, false );
 
-				//
-
 				window.addEventListener( 'resize', onWindowResize, false );
 
 			}
@@ -97,12 +95,11 @@
 
 			}
 
-			//
-
 			function onDocumentMouseMove( event ) {
 
 				mouseX = event.clientX - windowHalfX;
 				mouseY = event.clientY - windowHalfY;
+
 			}
 
 			function onDocumentTouchStart( event ) {
@@ -113,7 +110,9 @@
 
 					mouseX = event.touches[ 0 ].pageX - windowHalfX;
 					mouseY = event.touches[ 0 ].pageY - windowHalfY;
+
 				}
+
 			}
 
 			function onDocumentTouchMove( event ) {
@@ -124,12 +123,11 @@
 
 					mouseX = event.touches[ 0 ].pageX - windowHalfX;
 					mouseY = event.touches[ 0 ].pageY - windowHalfY;
+
 				}
 
 			}
 
-			//
-
 			function animate() {
 
 				requestAnimationFrame( animate );

+ 3 - 1
examples/canvas_particles_random.html

@@ -59,7 +59,7 @@
 				group = new THREE.Group();
 				scene.add( group );
 
-				for ( var i = 0; i < 1000; i++ ) {
+				for ( var i = 0; i < 1000; i ++ ) {
 
 					var material = new THREE.SpriteCanvasMaterial( {
 						color: Math.random() * 0x808008 + 0x808080,
@@ -72,6 +72,7 @@
 					particle.position.z = Math.random() * 2000 - 1000;
 					particle.scale.x = particle.scale.y = Math.random() * 20 + 10;
 					group.add( particle );
+
 				}
 
 				renderer = new THREE.CanvasRenderer();
@@ -110,6 +111,7 @@
 
 				mouseX = event.clientX - windowHalfX;
 				mouseY = event.clientY - windowHalfY;
+
 			}
 
 			function onDocumentTouchStart( event ) {

+ 3 - 1
examples/canvas_particles_sprites.html

@@ -54,13 +54,14 @@
 					blending: THREE.AdditiveBlending
 				} );
 
-				for ( var i = 0; i < 1000; i++ ) {
+				for ( var i = 0; i < 1000; i ++ ) {
 
 					particle = new THREE.Sprite( material );
 
 					initParticle( particle, i * 10 );
 
 					scene.add( particle );
+
 				}
 
 				renderer = new THREE.CanvasRenderer();
@@ -145,6 +146,7 @@
 
 				mouseX = event.clientX - windowHalfX;
 				mouseY = event.clientY - windowHalfY;
+
 			}
 
 			function onDocumentTouchStart( event ) {

+ 1 - 1
examples/canvas_particles_waves.html

@@ -170,7 +170,7 @@
 
 					for ( var iy = 0; iy < AMOUNTY; iy ++ ) {
 
-						particle = particles[ i++ ];
+						particle = particles[ i ++ ];
 						particle.position.y = ( Math.sin( ( ix + count ) * 0.3 ) * 50 ) +
 							( Math.sin( ( iy + count ) * 0.5 ) * 50 );
 						particle.scale.x = particle.scale.y = ( Math.sin( ( ix + count ) * 0.3 ) + 1 ) * 4 +

+ 1 - 1
examples/canvas_performance.html

@@ -85,7 +85,7 @@
 				container.appendChild( renderer.domElement );
 
 				stats = new Stats();
-				container.appendChild(stats.dom);
+				container.appendChild( stats.dom );
 
 				//
 

+ 3 - 4
examples/canvas_sandbox.html

@@ -27,8 +27,7 @@
 
 			var container, stats;
 
-			var camera, scene, renderer;
-			var controls, group;
+			var camera, scene, renderer, group;
 
 			init();
 			animate();
@@ -87,7 +86,7 @@
 				container.appendChild( renderer.domElement );
 
 				stats = new Stats();
-				container.appendChild(stats.dom);
+				container.appendChild( stats.dom );
 
 				//
 
@@ -117,7 +116,7 @@
 
 			function render() {
 
-				for ( var i = 0, l = group.children.length; i < l; i++ ) {
+				for ( var i = 0, l = group.children.length; i < l; i ++ ) {
 
 					var object = group.children[ i ];
 

+ 3 - 5
examples/css2d_label.html

@@ -46,8 +46,8 @@
 
 		<script>
 
-			var camera, scene, scene2, renderer, labelRenderer;
-			var controls;
+			var camera, scene, renderer, labelRenderer;
+
 			var clock = new THREE.Clock();
 			var textureLoader = new THREE.TextureLoader();
 
@@ -64,12 +64,10 @@
 				camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );
 				camera.position.set( 10, 5, 20 );
 
-				controls = new THREE.OrbitControls( camera );
+				var controls = new THREE.OrbitControls( camera );
 
 				scene = new THREE.Scene();
 
-				scene2 = new THREE.Scene();
-
 				var dirLight = new THREE.DirectionalLight( 0xffffff );
 				dirLight.position.set( 0, 0, 1 );
 				scene.add( dirLight );

+ 31 - 10
examples/css3d_molecules.html

@@ -180,11 +180,11 @@
 
 			function generateButtonCallback( url ) {
 
-				return function ( event ) {
+				return function () {
 
 					loadMolecule( url );
 
-				}
+				};
 
 			}
 
@@ -196,7 +196,7 @@
 					button.innerHTML = m;
 					menu.appendChild( button );
 
-					var url = "models/molecules/" +  MOLECULES[ m ];
+					var url = "models/molecules/" + MOLECULES[ m ];
 
 					button.addEventListener( 'click', generateButtonCallback( url ), false );
 
@@ -206,9 +206,24 @@
 				var b_b = document.getElementById( "b_b" );
 				var b_ab = document.getElementById( "b_ab" );
 
-				b_a.addEventListener( 'click', function() { visualizationType = 0; showAtoms() } );
-				b_b.addEventListener( 'click', function() { visualizationType = 1; showBonds() } );
-				b_ab.addEventListener( 'click', function() { visualizationType = 2; showAtomsBonds() } );
+				b_a.addEventListener( 'click', function () {
+
+					visualizationType = 0;
+					showAtoms();
+
+				} );
+				b_b.addEventListener( 'click', function () {
+
+					visualizationType = 1;
+					showBonds();
+
+				} );
+				b_ab.addEventListener( 'click', function () {
+
+					visualizationType = 2;
+					showAtomsBonds();
+
+				} );
 
 			}
 
@@ -458,7 +473,7 @@
 						joint.updateMatrix();
 
 						var object = new THREE.CSS3DObject( bond );
-						object.rotation.y = Math.PI/2;
+						object.rotation.y = Math.PI / 2;
 
 						object.matrixAutoUpdate = false;
 						object.updateMatrix();
@@ -479,9 +494,15 @@
 
 					switch ( visualizationType ) {
 
-						case 0: showAtoms(); break;
-						case 1: showBonds(); break;
-						case 2: showAtomsBonds(); break;
+						case 0:
+							showAtoms();
+							break;
+						case 1:
+							showBonds();
+							break;
+						case 2:
+							showAtomsBonds();
+							break;
 
 					}
 

+ 1 - 3
examples/css3d_orthographic.html

@@ -42,8 +42,6 @@
 
 			var scene2, renderer2;
 
-			var controls;
-
 			init();
 			animate();
 
@@ -55,7 +53,7 @@
 
 				camera.position.set( - 200, 200, 200 );
 
-				controls = new THREE.OrbitControls( camera );
+				var controls = new THREE.OrbitControls( camera );
 
 				scene = new THREE.Scene();
 				scene.background = new THREE.Color( 0xf0f0f0 );

+ 8 - 9
examples/css3d_panorama.html

@@ -38,7 +38,6 @@
 		<script>
 
 			var camera, scene, renderer;
-			var geometry, material, mesh;
 			var target = new THREE.Vector3();
 
 			var lon = 90, lat = 0;
@@ -58,32 +57,32 @@
 				var sides = [
 					{
 						url: 'textures/cube/Bridge2/posx.jpg',
-						position: [ -512, 0, 0 ],
+						position: [ - 512, 0, 0 ],
 						rotation: [ 0, Math.PI / 2, 0 ]
 					},
 					{
 						url: 'textures/cube/Bridge2/negx.jpg',
 						position: [ 512, 0, 0 ],
-						rotation: [ 0, -Math.PI / 2, 0 ]
+						rotation: [ 0, - Math.PI / 2, 0 ]
 					},
 					{
 						url: 'textures/cube/Bridge2/posy.jpg',
-						position: [ 0,  512, 0 ],
+						position: [ 0, 512, 0 ],
 						rotation: [ Math.PI / 2, 0, Math.PI ]
 					},
 					{
 						url: 'textures/cube/Bridge2/negy.jpg',
-						position: [ 0, -512, 0 ],
+						position: [ 0, - 512, 0 ],
 						rotation: [ - Math.PI / 2, 0, Math.PI ]
 					},
 					{
 						url: 'textures/cube/Bridge2/posz.jpg',
-						position: [ 0, 0,  512 ],
+						position: [ 0, 0, 512 ],
 						rotation: [ 0, Math.PI, 0 ]
 					},
 					{
 						url: 'textures/cube/Bridge2/negz.jpg',
-						position: [ 0, 0, -512 ],
+						position: [ 0, 0, - 512 ],
 						rotation: [ 0, 0, 0 ]
 					}
 				];
@@ -147,7 +146,7 @@
 
 			}
 
-			function onDocumentMouseUp( event ) {
+			function onDocumentMouseUp() {
 
 				document.removeEventListener( 'mousemove', onDocumentMouseMove );
 				document.removeEventListener( 'mouseup', onDocumentMouseUp );
@@ -193,7 +192,7 @@
 
 				requestAnimationFrame( animate );
 
-				lon +=  0.1;
+				lon += 0.1;
 				lat = Math.max( - 85, Math.min( 85, lat ) );
 				phi = THREE.Math.degToRad( 90 - lat );
 				theta = THREE.Math.degToRad( lon );

+ 6 - 7
examples/css3d_panorama_deviceorientation.html

@@ -40,7 +40,6 @@
 
 			var camera, scene, renderer;
 			var controls;
-			var geometry, material, mesh;
 
 			init();
 			animate();
@@ -56,32 +55,32 @@
 				var sides = [
 					{
 						url: 'textures/cube/Bridge2/posx.jpg',
-						position: [ -512, 0, 0 ],
+						position: [ - 512, 0, 0 ],
 						rotation: [ 0, Math.PI / 2, 0 ]
 					},
 					{
 						url: 'textures/cube/Bridge2/negx.jpg',
 						position: [ 512, 0, 0 ],
-						rotation: [ 0, -Math.PI / 2, 0 ]
+						rotation: [ 0, - Math.PI / 2, 0 ]
 					},
 					{
 						url: 'textures/cube/Bridge2/posy.jpg',
-						position: [ 0,  512, 0 ],
+						position: [ 0, 512, 0 ],
 						rotation: [ Math.PI / 2, 0, Math.PI ]
 					},
 					{
 						url: 'textures/cube/Bridge2/negy.jpg',
-						position: [ 0, -512, 0 ],
+						position: [ 0, - 512, 0 ],
 						rotation: [ - Math.PI / 2, 0, Math.PI ]
 					},
 					{
 						url: 'textures/cube/Bridge2/posz.jpg',
-						position: [ 0, 0,  512 ],
+						position: [ 0, 0, 512 ],
 						rotation: [ 0, Math.PI, 0 ]
 					},
 					{
 						url: 'textures/cube/Bridge2/negz.jpg',
-						position: [ 0, 0, -512 ],
+						position: [ 0, 0, - 512 ],
 						rotation: [ 0, 0, 0 ]
 					}
 				];

+ 6 - 6
examples/css3d_periodictable.html

@@ -262,7 +262,7 @@
 
 					var number = document.createElement( 'div' );
 					number.className = 'number';
-					number.textContent = (i/5) + 1;
+					number.textContent = ( i / 5 ) + 1;
 					element.appendChild( number );
 
 					var symbol = document.createElement( 'div' );
@@ -299,7 +299,7 @@
 
 				for ( var i = 0, l = objects.length; i < l; i ++ ) {
 
-					var phi = Math.acos( -1 + ( 2 * i ) / l );
+					var phi = Math.acos( - 1 + ( 2 * i ) / l );
 					var theta = Math.sqrt( l * Math.PI ) * phi;
 
 					var object = new THREE.Object3D();
@@ -366,28 +366,28 @@
 				controls.addEventListener( 'change', render );
 
 				var button = document.getElementById( 'table' );
-				button.addEventListener( 'click', function ( event ) {
+				button.addEventListener( 'click', function () {
 
 					transform( targets.table, 2000 );
 
 				}, false );
 
 				var button = document.getElementById( 'sphere' );
-				button.addEventListener( 'click', function ( event ) {
+				button.addEventListener( 'click', function () {
 
 					transform( targets.sphere, 2000 );
 
 				}, false );
 
 				var button = document.getElementById( 'helix' );
-				button.addEventListener( 'click', function ( event ) {
+				button.addEventListener( 'click', function () {
 
 					transform( targets.helix, 2000 );
 
 				}, false );
 
 				var button = document.getElementById( 'grid' );
-				button.addEventListener( 'click', function ( event ) {
+				button.addEventListener( 'click', function () {
 
 					transform( targets.grid, 2000 );
 

+ 2 - 2
examples/css3d_sprites.html

@@ -64,7 +64,7 @@
 				scene = new THREE.Scene();
 
 				var image = document.createElement( 'img' );
-				image.addEventListener( 'load', function ( event ) {
+				image.addEventListener( 'load', function () {
 
 					for ( var i = 0; i < particlesTotal; i ++ ) {
 
@@ -135,7 +135,7 @@
 
 				for ( var i = 0; i < particlesTotal; i ++ ) {
 
-					var phi = Math.acos( -1 + ( 2 * i ) / particlesTotal );
+					var phi = Math.acos( - 1 + ( 2 * i ) / particlesTotal );
 					var theta = Math.sqrt( particlesTotal * Math.PI ) * phi;
 
 					positions.push(

+ 10 - 3
examples/css3d_youtube.html

@@ -11,7 +11,6 @@
 			}
 			#blocker {
 				position: absolute;
-				/* background-color: rgba(255, 0, 0, 0.5); */
 				top: 0px;
 				left: 0px;
 				width: 100%;
@@ -87,8 +86,16 @@
 				var blocker = document.getElementById( 'blocker' );
 				blocker.style.display = 'none';
 
-				document.addEventListener( 'mousedown', function () { blocker.style.display = ''; } );
-				document.addEventListener( 'mouseup', function () { blocker.style.display = 'none'; } );
+				document.addEventListener( 'mousedown', function () {
+
+					blocker.style.display = '';
+
+				} );
+				document.addEventListener( 'mouseup', function () {
+
+					blocker.style.display = 'none';
+
+				} );
 
 			}
 

+ 4 - 3
examples/files.js

@@ -59,6 +59,7 @@ var files = {
 		"webgl_interactive_raycasting_points",
 		"webgl_interactive_voxelpainter",
 		"webgl_kinect",
+		"webgl_layers",
 		"webgl_lensflares",
 		"webgl_lights_hemisphere",
 		"webgl_lights_physical",
@@ -309,11 +310,11 @@ var files = {
 	"webgl deferred": [
 		"webgldeferred_animation"
 	],
-	/*
 	"webgl2": [
-		"webgl2_sandbox"
+		"webgl2_materials_texture3d",
+		"webgl2_materials_texture3d_volume"
+		// "webgl2_sandbox"
 	],
-	*/
 	"webaudio": [
 		"webaudio_orientation",
 		"webaudio_sandbox",

+ 0 - 91
examples/js/Detector.js

@@ -1,91 +0,0 @@
-/**
- * @author alteredq / http://alteredqualia.com/
- * @author mr.doob / http://mrdoob.com/
- */
-
-var Detector = {
-
-	canvas: !! window.CanvasRenderingContext2D,
-	webgl: ( function () {
-
-		try {
-
-			var canvas = document.createElement( 'canvas' ); return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
-
-		} catch ( e ) {
-
-			return false;
-
-		}
-
-	} )(),
-	webgl2: ( function () {
-
-		try {
-
-			var canvas = document.createElement( 'canvas' ); return !! ( window.WebGL2RenderingContext && ( canvas.getContext( 'webgl2' ) ) );
-
-		} catch ( e ) {
-
-			return false;
-
-		}
-
-	} )(),
-	workers: !! window.Worker,
-	fileapi: window.File && window.FileReader && window.FileList && window.Blob,
-
-	getWebGLErrorMessage: function () {
-
-		var element = document.createElement( 'div' );
-		element.id = 'webgl-error-message';
-		element.style.fontFamily = 'monospace';
-		element.style.fontSize = '13px';
-		element.style.fontWeight = 'normal';
-		element.style.textAlign = 'center';
-		element.style.background = '#fff';
-		element.style.color = '#000';
-		element.style.padding = '1.5em';
-		element.style.width = '400px';
-		element.style.margin = '5em auto 0';
-
-		if ( ! this.webgl ) {
-
-			element.innerHTML = window.WebGLRenderingContext ? [
-				'Your graphics card does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">WebGL</a>.<br />',
-				'Find out how to get it <a href="http://get.webgl.org/" style="color:#000">here</a>.'
-			].join( '\n' ) : [
-				'Your browser does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">WebGL</a>.<br/>',
-				'Find out how to get it <a href="http://get.webgl.org/" style="color:#000">here</a>.'
-			].join( '\n' );
-
-		}
-
-		return element;
-
-	},
-
-	addGetWebGLMessage: function ( parameters ) {
-
-		var parent, id, element;
-
-		parameters = parameters || {};
-
-		parent = parameters.parent !== undefined ? parameters.parent : document.body;
-		id = parameters.id !== undefined ? parameters.id : 'oldie';
-
-		element = Detector.getWebGLErrorMessage();
-		element.id = id;
-
-		parent.appendChild( element );
-
-	}
-
-};
-
-// browserify support
-if ( typeof module === 'object' ) {
-
-	module.exports = Detector;
-
-}

部分文件因文件數量過多而無法顯示