Mr.doob 2 years ago
parent
commit
a4d0ce7669
100 changed files with 5664 additions and 3268 deletions
  1. 462 416
      build/three.cjs
  2. 462 416
      build/three.js
  3. 0 0
      build/three.min.js
  4. 462 416
      build/three.module.js
  5. 5 0
      build/three.module.min.js
  6. 1 0
      docs/api/en/core/Raycaster.html
  7. 5 0
      docs/api/en/materials/LineBasicMaterial.html
  8. 1 1
      docs/api/en/materials/Material.html
  9. 0 15
      docs/api/en/materials/MeshDistanceMaterial.html
  10. 20 5
      docs/api/en/math/Color.html
  11. 5 0
      docs/api/en/math/Quaternion.html
  12. 6 6
      docs/api/en/math/Triangle.html
  13. 5 0
      docs/api/en/math/Vector2.html
  14. 6 1
      docs/api/en/math/Vector3.html
  15. 22 0
      docs/api/en/objects/InstancedMesh.html
  16. 26 8
      docs/api/en/objects/SkinnedMesh.html
  17. 6 2
      docs/api/en/renderers/WebGLRenderer.html
  18. 6 27
      docs/api/en/textures/Texture.html
  19. 107 0
      docs/api/fr/materials/LineBasicMaterial.html
  20. 71 0
      docs/api/fr/materials/LineDashedMaterial.html
  21. 399 0
      docs/api/fr/materials/Material.html
  22. 154 0
      docs/api/fr/materials/MeshBasicMaterial.html
  23. 111 0
      docs/api/fr/materials/MeshDepthMaterial.html
  24. 107 0
      docs/api/fr/materials/MeshDistanceMaterial.html
  25. 229 0
      docs/api/fr/materials/MeshLambertMaterial.html
  26. 145 0
      docs/api/fr/materials/MeshMatcapMaterial.html
  27. 130 0
      docs/api/fr/materials/MeshNormalMaterial.html
  28. 247 0
      docs/api/fr/materials/MeshPhongMaterial.html
  29. 236 0
      docs/api/fr/materials/MeshPhysicalMaterial.html
  30. 272 0
      docs/api/fr/materials/MeshStandardMaterial.html
  31. 200 0
      docs/api/fr/materials/MeshToonMaterial.html
  32. 111 0
      docs/api/fr/materials/PointsMaterial.html
  33. 66 0
      docs/api/fr/materials/RawShaderMaterial.html
  34. 441 0
      docs/api/fr/materials/ShaderMaterial.html
  35. 69 0
      docs/api/fr/materials/ShadowMaterial.html
  36. 97 0
      docs/api/fr/materials/SpriteMaterial.html
  37. 1 0
      docs/api/it/core/Raycaster.html
  38. 5 0
      docs/api/it/materials/LineBasicMaterial.html
  39. 1 1
      docs/api/it/materials/Material.html
  40. 0 15
      docs/api/it/materials/MeshDistanceMaterial.html
  41. 12 0
      docs/api/it/math/Color.html
  42. 5 0
      docs/api/it/math/Quaternion.html
  43. 6 6
      docs/api/it/math/Triangle.html
  44. 5 0
      docs/api/it/math/Vector2.html
  45. 24 0
      docs/api/it/objects/InstancedMesh.html
  46. 26 8
      docs/api/it/objects/SkinnedMesh.html
  47. 5 1
      docs/api/it/renderers/WebGLRenderer.html
  48. 5 27
      docs/api/it/textures/Texture.html
  49. 1 0
      docs/api/ko/core/Raycaster.html
  50. 11 13
      docs/api/zh/core/BufferAttribute.html
  51. 7 9
      docs/api/zh/core/BufferGeometry.html
  52. 27 36
      docs/api/zh/core/GLBufferAttribute.html
  53. 16 20
      docs/api/zh/core/Object3D.html
  54. 1 0
      docs/api/zh/core/Raycaster.html
  55. 23 26
      docs/api/zh/extras/PMREMGenerator.html
  56. 5 0
      docs/api/zh/materials/LineBasicMaterial.html
  57. 6 6
      docs/api/zh/materials/Material.html
  58. 0 15
      docs/api/zh/materials/MeshDistanceMaterial.html
  59. 40 68
      docs/api/zh/materials/MeshToonMaterial.html
  60. 12 0
      docs/api/zh/math/Color.html
  61. 5 0
      docs/api/zh/math/Quaternion.html
  62. 41 43
      docs/api/zh/math/SphericalHarmonics3.html
  63. 5 0
      docs/api/zh/math/Vector2.html
  64. 22 0
      docs/api/zh/objects/InstancedMesh.html
  65. 29 6
      docs/api/zh/objects/SkinnedMesh.html
  66. 5 1
      docs/api/zh/renderers/WebGLRenderer.html
  67. 152 0
      docs/api/zh/textures/DataArrayTexture.html
  68. 0 100
      docs/api/zh/textures/DataTexture2DArray.html
  69. 22 49
      docs/api/zh/textures/Texture.html
  70. 119 0
      docs/examples/en/controls/MapControls.html
  71. 1 1
      docs/examples/en/controls/OrbitControls.html
  72. 12 2
      docs/examples/en/controls/TrackballControls.html
  73. 1 1
      docs/examples/en/loaders/3DMLoader.html
  74. 3 11
      docs/examples/en/loaders/GLTFLoader.html
  75. 2 2
      docs/examples/en/utils/BufferGeometryUtils.html
  76. 1 1
      docs/examples/en/utils/SkeletonUtils.html
  77. 12 2
      docs/examples/ko/controls/TrackballControls.html
  78. 12 2
      docs/examples/zh/controls/TrackballControls.html
  79. 2 2
      docs/examples/zh/utils/BufferGeometryUtils.html
  80. 1 1
      docs/examples/zh/utils/SkeletonUtils.html
  81. 34 22
      docs/list.json
  82. 0 140
      docs/manual/ar/introduction/How-to-run-things-locally.html
  83. 1 1
      docs/manual/ar/introduction/Loading-3D-models.html
  84. 36 46
      docs/manual/en/introduction/Creating-a-scene.html
  85. 5 0
      docs/manual/en/introduction/FAQ.html
  86. 0 169
      docs/manual/en/introduction/How-to-run-things-locally.html
  87. 196 87
      docs/manual/en/introduction/Installation.html
  88. 1 1
      docs/manual/en/introduction/Loading-3D-models.html
  89. 3 5
      docs/manual/en/introduction/WebGL-compatibility-check.html
  90. 0 169
      docs/manual/fr/introduction/How-to-run-things-locally.html
  91. 0 167
      docs/manual/it/introduction/How-to-run-things-locally.html
  92. 1 1
      docs/manual/it/introduction/Loading-3D-models.html
  93. 0 149
      docs/manual/ja/introduction/How-to-run-things-locally.html
  94. 1 1
      docs/manual/ja/introduction/Loading-3D-models.html
  95. 0 149
      docs/manual/ko/introduction/How-to-run-things-locally.html
  96. 1 1
      docs/manual/ko/introduction/Loading-3D-models.html
  97. 0 186
      docs/manual/pt-br/introduction/How-to-run-things-locally.html
  98. 1 1
      docs/manual/pt-br/introduction/Loading-3D-models.html
  99. 0 184
      docs/manual/ru/introduction/How-to-run-things-locally.html
  100. 1 1
      docs/manual/ru/introduction/Loading-3D-models.html

File diff suppressed because it is too large
+ 462 - 416
build/three.cjs


File diff suppressed because it is too large
+ 462 - 416
build/three.js


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


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


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


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

@@ -177,6 +177,7 @@
 			[page:Object3D object] – the intersected object<br />
 			[page:Object3D object] – the intersected object<br />
 			[page:Vector2 uv] - U,V coordinates at point of intersection<br />
 			[page:Vector2 uv] - U,V coordinates at point of intersection<br />
 			[page:Vector2 uv2] - Second set of U,V coordinates at point of intersection<br />
 			[page:Vector2 uv2] - Second set of U,V coordinates at point of intersection<br />
+			[page:Vector3 normal] - interpolated normal vector at point of intersection<br />
 			[page:Integer instanceId] – The index number of the instance where the ray intersects the InstancedMesh
 			[page:Integer instanceId] – The index number of the instance where the ray intersects the InstancedMesh
 		</p>
 		</p>
 		<p>
 		<p>

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

@@ -90,6 +90,11 @@
 			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
 			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
 		</p>
 		</p>
 
 
+		<h3>[property:Texture map]</h3>
+		<p>
+			Sets the color of the lines using data from a [page:Texture].
+		</p>
+
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<p>See the base [page:Material] class for common methods.</p>
 		<p>See the base [page:Material] class for common methods.</p>
 
 

+ 1 - 1
docs/api/en/materials/Material.html

@@ -134,7 +134,7 @@
 
 
 		The engine renders double-sided, transparent objects with two draw calls (back faces first, then front faces) to mitigate transparency artifacts.
 		The engine renders double-sided, transparent objects with two draw calls (back faces first, then front faces) to mitigate transparency artifacts.
 		There are scenarios however where this approach produces no quality gains but still doubles draw calls e.g. when rendering flat vegetation like grass sprites. 
 		There are scenarios however where this approach produces no quality gains but still doubles draw calls e.g. when rendering flat vegetation like grass sprites. 
-		In these cases, set the `forceSinglePass` flag to `false` to disable the two pass rendering to avoid performance issues.
+		In these cases, set the `forceSinglePass` flag to `true` to disable the two pass rendering to avoid performance issues.
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean isMaterial]</h3>
 		<h3>[property:Boolean isMaterial]</h3>

+ 0 - 15
docs/api/en/materials/MeshDistanceMaterial.html

@@ -84,11 +84,6 @@
 			Without a displacement map set, this value is not applied. Default is 0.
 			Without a displacement map set, this value is not applied. Default is 0.
 		</p>
 		</p>
 
 
-		<h3>[property:Float farDistance]</h3>
-		<p>
-			The far value of the point light's internal shadow camera.
-		</p>
-
 		<h3>[property:Boolean fog]</h3>
 		<h3>[property:Boolean fog]</h3>
 		<p>Whether the material is affected by fog. Default is `false`.</p>
 		<p>Whether the material is affected by fog. Default is `false`.</p>
 
 
@@ -98,16 +93,6 @@
 			[page:Material.transparent .transparent] or [page:Material.alphaTest .alphaTest]. Default is null.
 			[page:Material.transparent .transparent] or [page:Material.alphaTest .alphaTest]. Default is null.
 		</p>
 		</p>
 
 
-		<h3>[property:Float nearDistance]</h3>
-		<p>
-			The near value of the point light's internal shadow camera.
-		</p>
-
-		<h3>[property:Vector3 referencePosition]</h3>
-		<p>
-			The position of the point light in world space.
-		</p>
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<p>See the base [page:Material] class for common methods.</p>
 		<p>See the base [page:Material] class for common methods.</p>
 
 

+ 20 - 5
docs/api/en/math/Color.html

@@ -98,11 +98,6 @@ const color7 = new THREE.Color( 1, 0, 0 );
 		Blue channel value between 0 and 1. Default is 1.
 		Blue channel value between 0 and 1. Default is 1.
 		</p>
 		</p>
 
 
-
-
-
-
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 		<h3>[method:this add]( [param:Color color] ) </h3>
 		<h3>[method:this add]( [param:Color color] ) </h3>
@@ -114,6 +109,9 @@ const color7 = new THREE.Color( 1, 0, 0 );
 		<h3>[method:this addScalar]( [param:Number s] ) </h3>
 		<h3>[method:this addScalar]( [param:Number s] ) </h3>
 		<p>Adds [page:Number s] to the RGB values of this color.</p>
 		<p>Adds [page:Number s] to the RGB values of this color.</p>
 
 
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>Applies the transform [page:Matrix3 m] to this color's RGB components.</p>
+
 		<h3>[method:Color clone]() </h3>
 		<h3>[method:Color clone]() </h3>
 		<p>Returns a new Color with the same [page:.r r], [page:.g g] and [page:.b b] values as this one.</p>
 		<p>Returns a new Color with the same [page:.r r], [page:.g g] and [page:.b b] values as this one.</p>
 
 
@@ -184,6 +182,13 @@ const color7 = new THREE.Color( 1, 0, 0 );
 
 
 		</p>
 		</p>
 
 
+		<h3>[method:Color getRGB]( [param:Color target], [param:string colorSpace] = SRGBColorSpace )</h3>
+		<p>
+			[page:Color target] — the result will be copied into this object.<br /><br />
+
+			Returns the RGB values of this color as an instance of [page:Color].
+		</p>
+
 		<h3>[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )</h3>
 		<h3>[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )</h3>
 		<p>Returns the value of this color as a CSS style string. Example: `rgb(255,0,0)`.</p>
 		<p>Returns the value of this color as a CSS style string. Example: `rgb(255,0,0)`.</p>
 
 
@@ -241,6 +246,11 @@ const color7 = new THREE.Color( 1, 0, 0 );
 		Delegates to [page:.copy], [page:.setStyle], or [page:.setHex] depending on input type.
 		Delegates to [page:.copy], [page:.setStyle], or [page:.setHex] depending on input type.
 		</p>
 		</p>
 
 
+		<h3>[method:this setFromVector3]( [param:Vector3 vector] )</h3>
+		<p>
+		Sets this colors's [page:.r r], [page:.g g] and [page:.b b] components from the x, y, and z components of the specified [page:Vector3 vector].
+		</p>
+
 		<h3>[method:this setHex]( [param:Integer hex], [param:string colorSpace] = SRGBColorSpace ) </h3>
 		<h3>[method:this setHex]( [param:Integer hex], [param:string colorSpace] = SRGBColorSpace ) </h3>
 		<p>
 		<p>
 		[page:Integer hex] — [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] format.<br /><br />
 		[page:Integer hex] — [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] format.<br /><br />
@@ -315,6 +325,11 @@ const color7 = new THREE.Color( 1, 0, 0 );
 		Returns an array of the form [ r, g, b ].
 		Returns an array of the form [ r, g, b ].
 		</p>
 		</p>
 
 
+		<h3>[method:Number toJSON]()</h3>
+		<p>
+		This methods defines the serialization result of [name]. Returns the color as a hexadecimal value.
+		</p>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

+ 5 - 0
docs/api/en/math/Quaternion.html

@@ -218,6 +218,11 @@
 		Returns the numerical elements of this quaternion in an array of format [x, y, z, w].
 		Returns the numerical elements of this quaternion in an array of format [x, y, z, w].
 		</p>
 		</p>
 
 
+		<h3>[method:Array toJSON]()</h3>
+		<p>
+		This methods defines the serialization result of [name]. Returns the numerical elements of this quaternion in an array of format [x, y, z, w].
+		</p>
+
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<p>
 		<p>
 		[page:BufferAttribute attribute] - the source attribute.<br />
 		[page:BufferAttribute attribute] - the source attribute.<br />

+ 6 - 6
docs/api/en/math/Triangle.html

@@ -113,15 +113,15 @@
 		Calculate a [page:Plane plane] based on the triangle. .
 		Calculate a [page:Plane plane] based on the triangle. .
 		</p>
 		</p>
 
 
-		<h3>[method:Vector2 getUV]( [param:Vector3 point], [param:Vector2 uv1], [param:Vector2 uv2], [param:Vector2 uv3], [param:Vector2 target] )</h3>
+		<h3>[method:Vector2 getInterpolation]( [param:Vector3 point], [param:Vector2 v1] | [param:Vector3 v1] | [param:Vector4 v1], [param:Vector2 v2] | [param:Vector3 v2] | [param:Vector4 v3], [param:Vector2 v3] | [param:Vector3 v3] | [param:Vector4 v3], [param:Vector2 target] )</h3>
 		<p>
 		<p>
 		[page:Vector3 point] - The point on the triangle.<br />
 		[page:Vector3 point] - The point on the triangle.<br />
-		[page:Vector2 uv1] - The uv coordinate of the triangle's first vertex.<br />
-		[page:Vector2 uv2] - The uv coordinate of the triangle's second vertex.<br />
-		[page:Vector2 uv3] - The uv coordinate of the triangle's third vertex.<br />
-		[page:Vector2 target] — the result will be copied into this Vector2.<br /><br />
+		[page:Vector2 v1] - The value of the triangle's first vertex.<br />
+		[page:Vector2 v2] - The value of the triangle's second vertex.<br />
+		[page:Vector2 v3] - The value of the triangle's third vertex.<br />
+		[page:Vector2 target] — the result will be copied into this Vector.<br /><br />
 
 
-		Returns the uv coordinates for the given point on the triangle.
+		Returns the value barycentrically interpolated for the given point on the triangle.
 		</p>
 		</p>
 
 
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>

+ 5 - 0
docs/api/en/math/Vector2.html

@@ -100,6 +100,11 @@
 		Computes the angle in radians of this vector with respect to the positive x-axis.
 		Computes the angle in radians of this vector with respect to the positive x-axis.
 		</p>
 		</p>
 
 
+		<h3>[method:Float angleTo]( [param:Vector2 v] )</h3>
+		<p>
+		Returns the angle between this vector and vector [page:Vector2 v] in radians.
+		</p>
+
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<p>
 		<p>
 		Multiplies this vector (with an implicit 1 as the 3rd component) by m.
 		Multiplies this vector (with an implicit 1 as the 3rd component) by m.

+ 6 - 1
docs/api/en/math/Vector3.html

@@ -111,7 +111,7 @@
 
 
 		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
 		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
 		<p>
 		<p>
-		Multiplies this vector (with an implicit 1 in the 4th dimension) and m, and divides by perspective.
+		Multiplies this vector (with an implicit 1 in the 4th dimension) by m, and divides by perspective.
 		</p>
 		</p>
 
 
 		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
 		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
@@ -354,6 +354,11 @@
 		If index equals 2 set [page:.z z] to [page:Float value]
 		If index equals 2 set [page:.z z] to [page:Float value]
 		</p>
 		</p>
 
 
+		<h3>[method:this setFromColor]( [param:Color color] )</h3>
+		<p>
+		Sets this vector's [page:.x x], [page:.y y] and [page:.z z] components from the r, g, and b components of the specified [page:Color color].
+		</p>
+
 		<h3>[method:this setFromCylindrical]( [param:Cylindrical c] )</h3>
 		<h3>[method:this setFromCylindrical]( [param:Cylindrical c] )</h3>
 		<p>
 		<p>
 		Sets this vector from the cylindrical coordinates [page:Cylindrical c].
 		Sets this vector from the cylindrical coordinates [page:Cylindrical c].

+ 22 - 0
docs/api/en/objects/InstancedMesh.html

@@ -37,6 +37,16 @@
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<p>See the base [page:Mesh] class for common properties.</p>
 		<p>See the base [page:Mesh] class for common properties.</p>
 
 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			This bounding box encloses all instances of the [name]. Can be calculated with [page:.computeBoundingBox](). Default is `null`.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			This bounding sphere encloses all instances of the [name]. Can be calculated with [page:.computeBoundingSphere](). Default is `null`.
+		</p>
+
 		<h3>[property:Integer count]</h3>
 		<h3>[property:Integer count]</h3>
 		<p>
 		<p>
 			The number of instances. The `count` value passed into the constructor represents the maximum number of
 			The number of instances. The `count` value passed into the constructor represents the maximum number of
@@ -67,6 +77,18 @@
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<p>See the base [page:Mesh] class for common methods.</p>
 		<p>See the base [page:Mesh] class for common methods.</p>
 
 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+		Computes the bounding box, updating [page:.boundingBox] attribute.<br />
+		Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		</p>
+
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+		Computes the bounding sphere, updating [page:.boundingSphere] attribute.<br />
+		Bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		</p>
+
 		<h3>[method:undefined dispose]()</h3>
 		<h3>[method:undefined dispose]()</h3>
 		<p>
 		<p>
 			Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.
 			Frees the GPU-related resources allocated by this instance. Call this method whenever this instance is no longer used in your app.

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

@@ -116,6 +116,16 @@
 		The base matrix that is used for resetting the bound bone transforms.
 		The base matrix that is used for resetting the bound bone transforms.
 		</p>
 		</p>
 
 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			The bounding box of the [name]. Can be calculated with [page:.computeBoundingBox](). Default is `null`.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			The bounding sphere of the [name]. Can be calculated with [page:.computeBoundingSphere](). Default is `null`.
+		</p>
+
 		<h3>[property:Boolean isSkinnedMesh]</h3>
 		<h3>[property:Boolean isSkinnedMesh]</h3>
 		<p>
 		<p>
 			Read-only flag to check if a given object is of type [name].
 			Read-only flag to check if a given object is of type [name].
@@ -145,6 +155,20 @@
 		This method does currently not clone an instance of [name] correctly. Please use [page:SkeletonUtils.clone]() in the meanwhile.
 		This method does currently not clone an instance of [name] correctly. Please use [page:SkeletonUtils.clone]() in the meanwhile.
 		</p>
 		</p>
 
 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+		Computes the bounding box, updating [page:.boundingBox] attribute.<br />
+		Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		If an instance of [name] is animated, this method should be called per frame to compute a correct bounding box.
+		</p>
+
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+		Computes the bounding sphere, updating [page:.boundingSphere] attribute.<br />
+		Bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		If an instance of [name] is animated, this method should be called per frame to compute a correct bounding sphere.
+		</p>
+
 		<h3>[method:undefined normalizeSkinWeights]()</h3>
 		<h3>[method:undefined normalizeSkinWeights]()</h3>
 		<p>
 		<p>
 		Normalizes the skin weights.
 		Normalizes the skin weights.
@@ -155,15 +179,9 @@
 		This method sets the skinned mesh in the rest pose (resets the pose).
 		This method sets the skinned mesh in the rest pose (resets the pose).
 		</p>
 		</p>
 
 
-		<h3>[method:Vector3 boneTransform]( [param:Integer index], [param:Vector3 target] )</h3>
+		<h3>[method:Vector3 applyBoneTransform]( [param:Integer index], [param:Vector3 vector] )</h3>
 		<p>
 		<p>
-		Calculates the position of the vertex at the given index relative to the current bone transformations.
-		Target vector must be initialized with the vertex coordinates prior to the transformation:
-		<code>
-const target = new THREE.Vector3();
-target.fromBufferAttribute( mesh.geometry.attributes.position, index );
-mesh.boneTransform( index, target );
-		</code>
+		Applies the bone transform associated with the given index to the given position vector. Returns the updated vector.
 		</p>
 		</p>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 6 - 2
docs/api/en/renderers/WebGLRenderer.html

@@ -97,11 +97,15 @@
 		<h3>[property:Object debug]</h3>
 		<h3>[property:Object debug]</h3>
 		<p>
 		<p>
 		- [page:Boolean checkShaderErrors]:
 		- [page:Boolean checkShaderErrors]:
-		  If it is true, defines whether material shader programs are checked
+			If it is true, defines whether material shader programs are checked
 			for errors during compilation and linkage process. It may be useful to disable this check in production for performance gain.
 			for errors during compilation and linkage process. It may be useful to disable this check in production for performance gain.
 			It is strongly recommended to keep these checks enabled during development.
 			It is strongly recommended to keep these checks enabled during development.
 			If the shader does not compile and link - it will not work and associated material will not render.
 			If the shader does not compile and link - it will not work and associated material will not render.
-			Default is `true`.
+			Default is `true`.</br>
+		- [page:Function onShaderError]( gl, program, glVertexShader, glFragmentShader ):
+			A callback function that can be used for custom error reporting. The callback receives the WebGL context, an instance of WebGLProgram as well 
+			two instances of WebGLShader representing the vertex and fragment shader. Assigning a custom function disables the default error reporting. 
+			Default is `null`.
 		</p>
 		</p>
 
 
 		<h3>[property:Object capabilities]</h3>
 		<h3>[property:Object capabilities]</h3>

+ 6 - 27
docs/api/en/textures/Texture.html

@@ -77,6 +77,11 @@
 		See the [page:Textures texture constants] page for other mapping types.
 		See the [page:Textures texture constants] page for other mapping types.
 		</p>
 		</p>
 
 
+		<h3>[property:Integer channel]</h3>
+		<p>
+		Lets you select the uv attribute to map the texture to. `0` for `uv` and `1` for `uv2`.
+		</p>
+
 		<h3>[property:number wrapS]</h3>
 		<h3>[property:number wrapS]</h3>
 		<p>
 		<p>
 		This defines how the texture is wrapped horizontally and corresponds to *U* in UV mapping.<br />
 		This defines how the texture is wrapped horizontally and corresponds to *U* in UV mapping.<br />
@@ -151,39 +156,13 @@
 		How much a single repetition of the texture is offset from the beginning, in each direction U and V.
 		How much a single repetition of the texture is offset from the beginning, in each direction U and V.
 		Typical range is `0.0` to `1.0`.
 		Typical range is `0.0` to `1.0`.
 		</p>
 		</p>
-		<p>
-			The below texture types share the `first` uv channel in the engine. The offset (and repeat) setting is evaluated according to
-			the following priorities and then shared by those textures:
-			<ol>
-				<li>color map</li>
-				<li>specular map</li>
-				<li>displacement map</li>
-				<li>normal map</li>
-				<li>bump map</li>
-				<li>roughness map</li>
-				<li>metalness map</li>
-				<li>alpha map</li>
-				<li>emissive map</li>
-				<li>clearcoat map</li>
-				<li>clearcoat normal map</li>
-				<li>clearcoat roughnessMap map</li>
-			</ol>
-		</p>
-		<p>
-			The below texture types share the `second` uv channel in the engine. The offset (and repeat) setting is evaluated according to
-			the following priorities and then shared by those textures:
-			<ol>
-				<li>ao map</li>
-				<li>light map</li>
-			</ol>
-		</p>
 
 
 		<h3>[property:Vector2 repeat]</h3>
 		<h3>[property:Vector2 repeat]</h3>
 		<p>
 		<p>
 		How many times the texture is repeated across the surface, in each direction U and V.  If repeat is set
 		How many times the texture is repeated across the surface, in each direction U and V.  If repeat is set
 		greater than 1 in either direction, the corresponding Wrap parameter should also be set to
 		greater than 1 in either direction, the corresponding Wrap parameter should also be set to
 		[page:Textures THREE.RepeatWrapping] or [page:Textures THREE.MirroredRepeatWrapping] to achieve the desired
 		[page:Textures THREE.RepeatWrapping] or [page:Textures THREE.MirroredRepeatWrapping] to achieve the desired
-		tiling effect. Setting different repeat values for textures is restricted in the same way like [page:.offset].
+		tiling effect.
 		</p>
 		</p>
 
 
 		<h3>[property:number rotation]</h3>
 		<h3>[property:number rotation]</h3>

+ 107 - 0
docs/api/fr/materials/LineBasicMaterial.html

@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Un matériau pour dessiner des géométries de style filaire.</p>
+
+		<h2>Exemple de code</h2>
+
+		<code>
+		const material = new THREE.LineBasicMaterial( {
+			color: 0xffffff,
+			linewidth: 1,
+			linecap: 'round', //ignored by WebGLRenderer
+			linejoin:  'round' //ignored by WebGLRenderer
+		} );
+		</code>
+
+		<h2>Exemples</h2>
+
+		<p>
+			[example:webgl_buffergeometry_drawrange WebGL / buffergeometry / drawrange]<br />
+			[example:webgl_buffergeometry_lines WebGL / buffergeometry / lines]<br />
+			[example:webgl_buffergeometry_lines_indexed WebGL / buffergeometry / lines / indexed]<br />
+			[example:webgl_decals WebGL / decals]<br />
+			[example:webgl_geometry_nurbs WebGL / geometry / nurbs]<br />
+			[example:webgl_geometry_shapes WebGL / geometry / shapes]<br />
+			[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor]<br />
+			[example:webgl_interactive_buffergeometry WebGL / interactive / buffergeometry]<br />
+			[example:webgl_interactive_voxelpainter WebGL / interactive / voxelpainter]<br />
+			[example:webgl_lines_colors WebGL / lines / colors]<br />
+			[example:webgl_lines_dashed WebGL / lines / dashed]<br />
+			[example:webgl_lines_sphere WebGL / lines / sphere]<br />
+			[example:webgl_materials WebGL / materials]<br />
+			[example:physics_ammo_rope physics / ammo / rope]
+		</p>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+
+		<p>
+		[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+		L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les prppriétés communes.</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog), la valeur par défaut est `true`</p>
+
+		<h3>[property:Float linewidth]</h3>
+		<p>
+			Contrôle l'épaisseur des lignes, la valeur par défaut est `1`.<br /><br />
+
+			A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h3>[property:String linecap]</h3>
+		<p>
+			Définit l'apparence de la fin de la ligne. les valeurs possibles sont 'butt', 'round' et 'square'.
+			La valeur par défaut est 'round'.<br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:String linejoin]</h3>
+		<p>
+			Définit l'apparence des jointures de lignes. Les valeurs possibles sont 'round', 'bevel' et 'miter'. La valeur par défaut est 'round'. <br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			Sets the color of the lines using data from a [page:Texture].
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 71 - 0
docs/api/fr/materials/LineDashedMaterial.html

@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr; [page:LineBasicMaterial] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Un matériau pour dessiner des géométries de style filaire, avec des pointillés.</p>
+
+		<h2>Exemple de Code</h2>
+
+		<code>
+		const material = new THREE.LineDashedMaterial( {
+			color: 0xffffff,
+			linewidth: 1,
+			scale: 1,
+			dashSize: 3,
+			gapSize: 1,
+		} );
+		</code>
+
+		<h2>Exemples</h2>
+
+		<p>
+			[example:webgl_lines_dashed WebGL / lines / dashed]<br />
+		</p>
+
+		<h2>Constructeur</h2>
+
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:LineBasicMaterial]) peut être passée dans l'objet.
+		</p>
+
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:LineBasicMaterial] pour les propriétés communes.</p>
+
+		<h3>[property:number dashSize]</h3>
+		<p>La taille des tirets, c'est à dire de l'espace additionnée à celle du trait. La valeur par défaut est `3`.</p>
+
+		<h3>[property:number gapSize]</h3>
+		<p>La taille de l'espace. La valeur par défaut est `1`.</p>
+
+		<h3>[property:Boolean isLineDashedMaterial]</h3>
+		<p>
+			Attribut pour vérifier si un objet donné est de type [name], en lecture seule.
+		</p>
+
+
+		<h3>[property:number scale]</h3>
+		<p>L'échelle de la partie pointillée d'une ligne. La valeur par défaut est `1`.</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:LineBasicMaterial] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 399 - 0
docs/api/fr/materials/Material.html

@@ -0,0 +1,399 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+		Classe abstraite pour les matériaux.<br /><br />
+
+		Les matériaux décrivent l'apparence des [page:Object objects].
+		Ils sont définis de manière (principalement) indépendante du moteur de rendu, vous n'avez donc pas à
+		réécrire les matériaux si vous décidez d'utiliser un moteur de rendu différent.<br /><br />
+
+		Les propriétés suivantes sont héritées par tous les autres types de matériaux
+		(ils peuvent cependant avoir d'autres valeurs par défaut).
+		</p>
+
+		<h2>Constructeur</h2>
+
+
+		<h3>[name]()</h3>
+		<p>Crée un matériau générique.</p>
+
+
+		<h2>Propriétés</h2>
+
+		<h3>[property:Float alphaTest]</h3>
+		<p>
+		Définit la valeur alpha à utiliser lors de l'exécution d'un test alpha.
+		Le matériau ne sera pas rendu si l'opacité est inférieure à cette valeur.
+		La valeur par défaut est `0`.
+		</p>
+
+		<h3>[property:Boolean alphaToCoverage]</h3>
+		<p>
+		Active l'alpha lors du coverage. Ne peut être utilisé qu'avec des contextes compatibles MSAA
+		 (ce qui signifie que le moteur de rendu a été créé avec le paramètre `antialias` ayant la valeur `true`).
+		La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:Integer blendDst]</h3>
+		<p>
+		Destination de mélange. La valeur par défaut est [page:CustomBlendingEquation OneMinusSrcAlphaFactor].
+		Voir les facteurs de destination [page:Constantes CustomBlendingEquation] pour toutes les valeurs possibles.<br />
+		Le [page:Constant blending] (mélange) du matériau doit être défini sur [page:Materials CustomBlending] pour que cela ait un effet.
+		</p>
+
+		<h3>[property:Integer blendDstAlpha]</h3>
+		<p>La transparence de [page:.blendDst] (destination du mélange). Utilise la valeur [page:.blendDst] si elle est nulle. La valeur par défaut est `null`.</p>
+
+		<h3>[property:Integer blendEquation]</h3>
+		<p>
+		Équation de mélange à appliquer lors du mélange La valeur par défaut est [page:CustomBlendingEquation AddEquation].
+		Voir l'équation de mélange [page:CustomBlendingEquation constants] pour toutes les valeurs possibles.<br />
+		Le [page:Constant blending] (mélange) du matériau doit être défini sur [page:Materials CustomBlending] pour que cela ait un effet.
+		</p>
+
+		<h3>[property:Integer blendEquationAlpha]</h3>
+		<p>La transparence de la [page:.blendEquation] (équation de mélange). Utilise la valeur [page:.blendDst] si elle est nulle. La valeur par défaut est `null`.</p>
+
+		<h3>[property:Blending blending]</h3>
+		<p>
+		Quel mélange utiliser lors de l'affichage d'objets avec ce matériau. <br />
+		Il doit être défini sur [page:Materials CustomBlending] pour utiliser [page:Constant blendSrc], [page:Constant blendDst] ou [page:Constant blendEquation] personnalisés.<br />
+		Voir le mode de fusion [page:Constantes de matériaux] pour toutes les valeurs possibles. La valeur par défaut est [page:Materials NormalBlending].
+		</p>
+
+		<h3>[property:Integer blendSrc]</h3>
+		<p>
+			Source de mélange. La valeur par défaut est [page:CustomBlendingEquation SrcAlphaFactor].
+			Voir les facteurs source [page:Constantes CustomBlendingEquation] pour toutes les valeurs possibles.<br />
+			Le [page:Constant blending] du matériau doit être défini sur [page:Materials CustomBlending] pour que cela ait un effet.
+		</p>
+
+		<h3>[property:Integer blendSrcAlpha]</h3>
+		<p>La transparence de la [page:.blendSrc]. Utilise la valeur [page:.blendSrc] si null. La valeur par défaut est `null`.</p>
+
+		<h3>[property:Boolean clipIntersection]</h3>
+		<p>
+			Modifie le comportement des plans de découpage afin que seule leur intersection soit découpée, plutôt que leur union.
+			La valeur par défaut est "false".
+		</p>
+
+		<h3>[property:Array clippingPlanes]</h3>
+		<p>
+		Plans de détourage définis par l'utilisateur spécifiés en tant qu'objets THREE.Plane dans l'espace univers.
+		Ces plans s'appliquent aux objets auxquels ce matériau est attaché.
+		Les points dans l'espace dont la distance signée au plan est négative sont coupés (pas rendus).
+		Cela nécessite que [page:WebGLRenderer.localClippingEnabled] soit "true".
+		Voir l'exemple [example:webgl_clipping_intersection WebGL / clipping /intersection].
+		La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Boolean clipShadows]</h3>
+		<p>
+			Définit s'il faut découper les ombres en fonction des plans de découpe spécifiés sur ce matériau. La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:Boolean colorWrite]</h3>
+		<p>
+			S'il faut rendre la couleur du matériau. Cela peut être utilisé en conjonction avec la propriété [page:Integer render Order] d'un maillage pour créer des objets invisibles qui masquent d'autres objets. La valeur par défaut est `true`.
+		</p>
+
+		<h3>[property:Object defines]</h3>
+		<p>
+			Définitions personnalisé à injecter dans le shader. Ceux-ci sont passés sous la forme d'un littéral d'objet, avec des paires clé/valeur. `{ MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }`.Les paires sont définies à la fois dans les shaders de vertex et de fragment.  La valeur par défaut est `undefined`.
+		</p>
+
+		<h3>[property:Integer depthFunc]</h3>
+		<p>
+			Quelle fonction de profondeur utiliser. La valeur par défaut est [page:Materials LessEqualDepth]. Voir le mode profondeur [page:Constantes des matériaux] pour toutes les valeurs possibles.
+		</p>
+
+		<h3>[property:Boolean depthTest]</h3>
+		<p>
+		 Le test de profondeur doit-il être activé lors du rendu de ce matériau. La valeur par défaut est `true`.
+		</p>
+
+		<h3>[property:Boolean depthWrite]</h3>
+		<p>
+			Si le rendu de ce matériau a un effet sur le tampon de profondeur. La valeur par défaut est `true`.<br /><br />
+
+			Lorsque vous dessinez des superpositions 2D, il peut être utile de désactiver l'écriture en profondeur afin de superposer plusieurs choses ensemble sans créer d'artefacts z-index.
+		</p>
+
+		<h3>[property:Boolean forceSinglePass]</h3>
+		<p>
+		Indique si les objets transparents à double face doivent être rendus en une seule passe ou non. La valeur par défaut est `false`.<br /><br />
+
+		Le moteur rend les objets transparents à double face avec deux appels de dessin (les faces arrière d'abord, puis les faces avant) pour atténuer les artefacts de transparence.
+		Il existe cependant des scénarios où cette approche ne produit aucun gain de qualité mais double toujours les draw calls, par ex. lors du rendu d'une végétation plate comme des sprites d'herbe.
+		Dans ces cas, définissez l'indicateur `forceSinglePass` sur `true` pour désactiver le rendu en deux passes afin d'éviter les problèmes de performances.
+		</p>
+
+		<h3>[property:Boolean isMaterial]</h3>
+		<p>
+			Booléen en lecture seule pour vérifier si un object est de type [name].
+		</p>
+
+		<h3>[property:Boolean stencilWrite]</h3>
+		<p>
+			Indique si les opérations de stencil sont effectuées sur le tampon de stencil. Afin d'effectuer des écritures ou des comparaisons avec le tampon stencil, cette valeur doit être "true". La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:Integer stencilWriteMask]</h3>
+		<p>
+			Le masque de bits à utiliser lors de l'écriture dans le tampon stencil. La valeur par défaut est `0xFF`.
+		</p>
+
+		<h3>[property:Integer stencilFunc]</h3>
+		<p>
+			La fonction de comparaison de gabarits à utiliser. La valeur par défaut est [page:Materials AlwaysStencilFunc]. Voir fonction stencil [page:Constantes de matériaux] pour toutes les valeurs possibles.
+		</p>
+
+		<h3>[property:Integer stencilRef]</h3>
+		<p>
+			La valeur à utiliser lors de l'exécution de comparaisons de gabarits ou d'opérations de gabarits. La valeur par défaut est `0`.
+		</p>
+
+		<h3>[property:Integer stencilFuncMask]</h3>
+		<p>
+			Le masque de bits à utiliser lors de la comparaison avec le tampon stencil. La valeur par défaut est `0xFF`.
+		</p>
+
+		<h3>[property:Integer stencilFail]</h3>
+		<p>
+			Quelle opération de gabarit effectuer lorsque la fonction de comparaison renvoie false. La valeur par défaut est [page:Materials KeepStencilOp]. Voir les opérations stencil [page:Materials constants] pour toutes les valeurs possibles.
+		</p>
+
+		<h3>[property:Integer stencilZFail]</h3>
+		<p>
+			Quelle opération de gabarit effectuer lorsque la fonction de comparaison renvoie true mais que le test de profondeur échoue. La valeur par défaut est [page:Materials KeepStencilOp]. Voir les opérations stencil [page:Materials constants] pour toutes les valeurs possibles.
+		</p>
+
+		<h3>[property:Integer stencilZPass]</h3>
+		<p>
+			Quelle opération de gabarit effectuer lorsque la fonction de comparaison renvoie true et que le test de profondeur réussit. La valeur par défaut est [page:Materials KeepStencilOp]. Voir les opérations stencil [page:Materials constants] pour toutes les valeurs possibles.
+		</p>
+
+		<h3>[property:Integer id]</h3>
+		<p>Nombre unique pour cette instance de matériau.</p>
+
+		<h3>[property:String name]</h3>
+		<p>Nom optionnel de l'object (n'a pas besoin d'être unique). La valeur par défaut est une chaine de caractères vide.</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		Scécifie que le matériau doit être recompilé.
+		</p>
+
+		<h3>[property:Float opacity]</h3>
+		<p>
+			Flotte dans la plage de `0.0` - `1.0` indiquant la transparence du matériau.
+			Une valeur de `0.0` indique entièrement transparent, `1.0` est entièrement opaque.<br />
+			Si la propriété [page:Boolean transparent] du matériau n'est pas définie sur "true", le matériau restera
+			entièrement opaque et cette valeur n'affectera que sa couleur. <br />
+			La valeur par défaut est '1.0'.
+		</p>
+
+		<h3>[property:Boolean polygonOffset]</h3>
+		<p>
+			Indique s'il faut utiliser le décalage du polygone. La valeur par défaut est "false". Cela correspond à la fonctionnalité WebGL `GL_POLYGON_OFFSET_FILL`.
+		</p>
+
+		<h3>[property:Integer polygonOffsetFactor]</h3>
+		<p>Définit le facteur de décalage du polygone. La valeur par défaut est `0`.</p>
+
+		<h3>[property:Integer polygonOffsetUnits]</h3>
+		<p>Définit les unités de décalage du polygone. La valeur par défaut est `0`.</p>
+
+		<h3>[property:String precision]</h3>
+		<p>
+			Remplace la précision par défaut du rendu pour ce matériau. Peut être `"highp"`, `"mediump"` ou `"lowp"`.
+		La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Boolean premultipliedAlpha]</h3>
+		<p>
+			Indique s'il faut prémultiplier la valeur alpha (transparence).
+			Voir [Example:webgl_materials_physical_transmission WebGL / Materials / Physical / Transmission] pour un exemple de la différence.
+			La valeur par défaut est "false".
+		</p>
+
+		<h3>[property:Boolean dithering]</h3>
+		<p>
+		Indique s'il faut appliquer un tramage à la couleur pour supprimer l'apparence des bandes.
+		La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:Integer shadowSide]</h3>
+		<p>
+		Définit de quel côté des faces projettent des ombres.
+		Lorsqu'il est défini, peut être [page:Materials THREE.FrontSide], [page:Materials THREE.BackSide] ou [page:Materials THREE.DoubleSide]. La valeur par défaut est "null". <br />
+		Si `null`, le côté projetant des ombres est déterminé comme suit : <br />
+
+		<table>
+			<thead>
+				<tr>
+					<th>[page:Material.side]</th>
+					<th>Ombres portées sur les côtés</th>
+				</tr>
+			</thead>
+			<tbody>
+
+				<tr>
+					<td>THREE.FrontSide</td>
+					<td>verso</td>
+				</tr>
+				<tr>
+					<td>THREE.BackSide</td>
+					<td>recto</td>
+				</tr>
+				<tr>
+					<td>THREE.DoubleSide</td>
+					<td>deux côtés</td>
+				</tr>
+			</tbody>
+		</table>
+
+
+		</p>
+
+		<h3>[property:Integer side]</h3>
+		<p>
+			Définit quel côté des faces sera rendu - avant, arrière ou les deux.
+			La valeur par défaut est [page:Materials THREE.FrontSide].
+			Les autres options sont [page:Materials THREE.BackSide] ou [page:Materials THREE.DoubleSide].
+		</p>
+
+		<h3>[property:Boolean toneMapped]</h3>
+		<p>
+			Définit si ce matériau est tonifié en fonction du paramètre [page:WebGLRenderer.toneMapping toneMapping] du moteur de rendu. La valeur par défaut est `true`.
+		</p>
+
+		<h3>[property:Boolean transparent]</h3>
+		<p>
+			Définit si ce matériau est transparent. Cela a un effet sur le rendu
+			car les objets transparents nécessitent un traitement spécial et sont rendus après les
+			objets opaques. <br />
+			Lorsqu'il est défini sur true, le taux de transparence est
+			contrôlé en définissant sa propriété [page:Float opacity]. <br />
+			La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:String type]</h3>
+		<p>
+			La valeur est la chaîne 'Matériau'. Cela ne devrait pas être modifié et peut être utilisé pour
+			trouver tous les objets de ce type dans une scène.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] de cette instance du matériau.
+		Ceci est automatiquement attribué, donc cela ne devrait pas être modifié.
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+			Cela commence à '0' et compte combien de fois [page:Material.needsUpdate .needsUpdate] est défini sur 'true'.
+		</p>
+
+		<h3>[property:Boolean vertexColors]</h3>
+		<p>
+			Définit si la coloration des sommets est utilisée. La valeur par défaut est "false".
+			Le moteur prend en charge les couleurs de sommet RVB et RVBA selon qu'un attribut de tampon de couleur à trois (RVB) ou à quatre (RVBA) composants est utilisé.
+		</p>
+
+		<h3>[property:Boolean visible]</h3>
+		<p>
+		Indique si le matériau est visible. La valeur par défaut est `true`.
+		</p>
+
+		<h3>[property:Object userData]</h3>
+		<p>
+			Un objet qui peut être utilisé pour stocker des données personnalisées sur le matériau. ne doit pas contenir de
+			références aux fonctions car celles-ci ne seront pas clonées.
+		</p>
+
+		<h2>Méthodes</h2>
+
+		<p>Les méthodes [page:EventDispatcher EventDispatcher] sont disponibles dans classe.</p>
+
+		<h3>[method:Material clone]( )</h3>
+		<p>Renvoie un nouveau matériau avec les mêmes paramètres que le matériau courant.</p>
+
+		<h3>[method:this copy]( [param:material material] )</h3>
+		<p>Copie les paramètres du matériau précédent dans ce matériau.</p>
+
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		Libère les ressources liées au GPU allouées par cette instance. Appelez cette méthode chaque fois que cette instance n'est plus utilisée dans votre application.
+		</p>
+		<p>
+		Les textures matérielles doivent être éliminées par la méthode dispose() de [page:Texture Texture].</p>
+		</p>
+
+		<h3>[method:undefined onBeforeCompile]( [param:Shader shader], [param:WebGLRenderer renderer] )</h3>
+		<p>
+			Un callback facultatif qui est exécuté immédiatement avant la compilation du programme shader.
+			Cette fonction est appelée avec le code source du shader comme paramètre. Utile pour la modification des matériaux intégrés.
+		</p>
+		<p>
+			Contrairement aux propriétés, le callback n'est pas pris en charge par [page:Material.clone .clone](), [page:Material.copy .copy]() et [page:Material.toJSON .toJSON]().
+		</p>
+
+		<h3>[method:String customProgramCacheKey]()</h3>
+		<p>
+			Dans le cas où onBeforeCompile est utilisé, ce callback peut être utilisé pour identifier les valeurs des paramètres utilisés dans onBeforeCompile, afin que three.js puisse réutiliser un shader mis en cache ou recompiler le shader pour ce matériau selon les besoins.
+		</p>
+
+		<p>
+		Par exemple, si onBeforeCompile contient une instruction conditionnelle telle que :<br />
+
+		<code>if ( black ) {
+
+			shader.fragmentShader = shader.fragmentShader.replace('gl_FragColor = vec4(1)', 'gl_FragColor = vec4(0)')
+
+		}
+		</code>
+
+		alors customProgramCacheKey doit être défini comme ceci :<br />
+
+		<code>material.customProgramCacheKey = function() {
+
+			return black ? '1' : '0';
+
+		}
+		</code>
+
+		</p>
+
+		<p>
+			Contrairement aux propriétés, le callback n'est pas pris en charge par [page:Material.clone .clone](), [page:Material.copy .copy]() et [page:Material.toJSON .toJSON]().
+		</p>
+
+		<h3>[method:undefined setValues]( [param:Object values] )</h3>
+		<p>
+			values -- un conteneur avec des paramètres.<br />
+			Définit les propriétés en fonction des "valeurs".
+		</p>
+
+		<h3>[method:Object toJSON]( [param:Object meta] )</h3>
+		<p>
+			meta -- objet contenant des métadonnées telles que des textures ou des images pour le matériau.<br />
+			Convertir le matériel au [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format] three.js.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 154 - 0
docs/api/fr/materials/MeshBasicMaterial.html

@@ -0,0 +1,154 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Un matériau pour dessiner des géométries de manière simple et ombrée (à plat ou filaire).<br /><br />
+
+			Ce matériau n'est pas affecté par les lumières.
+		</p>
+
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshBasicMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture aoMap]</h3>
+		<p>Le canal rouge de cette texture est utilisé comme carte d'occlusion ambiante. La valeur par défaut est nulle.
+		L'aoMap nécessite un deuxième ensemble d'UVs.</p>
+
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>Intensité de l'effet d'occlusion ambiante. La valeur par défaut est 1. Zéro signifie qu'il n'y a pas d'effet d'occlusion.</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Integer combine]</h3>
+		<p>
+			Comment combiner le résultat de la couleur de la surface avec la carte d'environnement, le cas échéant.<br /><br />
+
+		Les options sont [page:Materials THREE.MultiplyOperation] (par défaut), [page:Materials THREE.MixOperation],
+		[page :Matériaux TROIS.AddOperation]. Si mix est choisi, la [page:.reflectivity] est utilisée pour
+		mélanger les deux couleurs.
+		</p>
+
+		<h3>[property:Texture envMap]</h3>
+		<p>La carte de l'environnement. La valeur par défaut est nulle.</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Texture lightMap]</h3>
+		<p>La carte des lumières (light map).  La valeur par défaut est null. La lightMap nécessite un deuxième ensemble d'UVs.</p>
+
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>Intensité de la lumière préparée. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+		</p>
+
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+			Dans quelle mesure la carte d'environnement affecte la surface ; voir aussi [page:.combine].
+			La valeur par défaut est 1 et la plage valide est comprise entre 0 (aucune réflexion) et 1 (réflexions complètes).
+		</p>
+
+		<h3>[property:Float refractionRatio]</h3>
+		<p>
+			L'indice de réfraction (IOR) de l'air (environ 1) divisé par l'indice de réfraction du matériau.
+			Il est utilisé avec les modes de mapping d'environnement [page:Textures THREE.CubeRefractionMapping] et [page:Textures THREE.EquirectangularRefractionMapping].
+			Le rapport de réfraction ne doit pas dépasser 1. La valeur par défaut est `0.98`.
+		</p>
+
+		<h3>[property:Texture specularMap]</h3>
+		<p>Texture spéculaire utilisée par le matériau. La valeur par défaut est null.</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>Rendre la géométrie en fil de fer. La valeur par défaut est "false" (c'est-à-dire rendre sous forme de polygones plats).</p>
+
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+			Définit l'apparence de la fin de la ligne. les valeurs possibles sont 'butt', 'round' et 'square'.
+			La valeur par défaut est 'round'.<br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+			Définit l'apparence des jointures de lignes. Les valeurs possibles sont 'round', 'bevel' et 'miter'. La valeur par défaut est 'round'. <br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+			A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/fr/materials/MeshDepthMaterial.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Un matériau pour dessiner la géométrie par profondeur. La profondeur est basée sur le plan proche et éloigné de la caméra. Le blanc est le plus proche, le noir est le plus éloigné.</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshDepthMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Constant depthPacking]</h3>
+		<p>Encodage pour l'emballage en profondeur. La valeur par défaut est [page:Textures BasicDepthPacking].</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `false`.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+		</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>Rendre la géométrie en fil de fer. La valeur par défaut est false (c'est-à-dire rendu en ombré lisse).</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 107 - 0
docs/api/fr/materials/MeshDistanceMaterial.html

@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] est utilisé en interne pour implémenter le shadow mapping avec [page:PointLight]s.<br/><br/>
+
+			Peut également être utilisé pour personnaliser la projection d'ombre d'un objet en attribuant une instance de [name] à [page:Object3D.customDistanceMaterial].
+			Les exemples suivants illustrent cette approche afin de s'assurer que les parties transparentes des objets ne projettent pas d'ombres.ce of [name] to [page:Object3D.customDistanceMaterial].
+			The following examples demonstrates this approach in order to ensure transparent parts of objects do no cast shadows.
+		</p>
+
+		<h2>Exemples</h2>
+
+		<p>
+			[example:webgl_shadowmap_pointlight WebGL / shadowmap / pointlight]
+		</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `false`.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 229 - 0
docs/api/fr/materials/MeshLambertMaterial.html

@@ -0,0 +1,229 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Un matériau pour surfaces non brillantes, sans reflets spéculaires.<br /><br />
+
+			Le matériau utilise un modèle [link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertien] non basé sur la physique
+			pour calculer la réflectance. Il peut simuler certaines surfaces (comme le bois non traité ou la pierre),
+			mais ne peut pas simuler des surfaces brillantes avec des reflets spéculaires (comme le bois verni). [name] utilise un ombrage par fragment.<br /><br />
+
+			En raison de la simplicité des modèles de réflectance et d'éclairage, les performances seront supérieures
+			lors de l'utilisation de ce matériau par rapport au [page:MeshPhongMaterial], [page:MeshStandardMaterial] ou [page:MeshPhysicalMaterial],
+			au prix d'une certaine précision graphique.
+		</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshLambertMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture aoMap]</h3>
+		<p>Le canal rouge de cette texture est utilisé comme carte d'occlusion ambiante. La valeur par défaut est nulle.
+		L'aoMap nécessite un deuxième ensemble d'UV.</p>
+
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>Intensité de l'effet d'occlusion ambiante. La valeur par défaut est 1. Zéro signifie qu'il n'y a pas d'effet d'occlusion.</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+			La texture pour créer une carte en relief. Les valeurs de noir et blanc correspondent à la profondeur perçue par rapport aux lumières.
+			Bump n'affecte pas réellement la géométrie de l'objet, seulement l'éclairage. Si une carte normale est définie, cela sera ignoré.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>A quel point la texture en relief affecte le matériau. Les plages typiques sont 0-1. La valeur par défaut est 1.</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Integer combine]</h3>
+		<p>
+			Comment combiner le résultat de la couleur de la surface avec la carte d'environnement, le cas échéant.<br /><br />
+
+			Les options sont [page:Materials THREE.MultiplyOperation] (par défaut), [page:Materials THREE.MixOperation],
+			[page :Matériaux TROIS.AddOperation]. Si mix est choisi, la [page:.reflectivity] est utilisée pour
+			mélanger les deux couleurs.
+		</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Color emissive]</h3>
+		<p>
+		Couleur émissive (claire) du matériau, essentiellement une couleur unie non affectée par un autre éclairage.
+		La valeur par défaut est noire.
+		</p>
+
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		Définit la carte émissive (lueur). La valeur par défaut est nulle. La couleur de la carte émissive est modulée par
+		la couleur émissive et l'intensité émissive. Si vous avez une carte émissive, assurez-vous de
+		régler la couleur émissive sur autre chose que le noir.
+		</p>
+
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>Intensité de la lumière émissive. Module la couleur émissive. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture envMap]</h3>
+		<p>La carte de l'environnement. La valeur par défaut est nulle.</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		Définit si le matériau est rendu avec un ombrage plat. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Texture lightMap]</h3>
+		<p>La carte des lumières (light map).  La valeur par défaut est null. La lightMap nécessite un deuxième ensemble d'UVs.</p>
+
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>Intensité de la lumière préparée. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+		</p>
+
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+			La texture pour créer une carte normale. Les valeurs RVB affectent la surface normale pour chaque fragment de pixel et changent
+			la façon dont la couleur est illuminée. Les cartes normales ne changent pas la forme réelle de la surface, seulement l'éclairage.
+			Dans le cas où le matériau a une carte normale créée en utilisant la convention "left handed", le composant y de normalScale
+			devrait être négatif pour compenser les différences de latéralité.
+		</p>
+
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+			Le type de carte d'ombrage.<br /><br />
+
+			Les options sont [page:constant THREE.TangentSpaceNormalMap] (par défaut), et [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+			A quel point la carte normale affecte le matériau. Les plages typiques sont 0-1.
+			La valeur par défaut est un [page:Vector2] défini sur (1,1).
+		</p>
+
+		<h3>[property:Float reflectivity]</h3>
+		<p>A quel point la carte d'environnement affecte la surface ; voir aussi [page:.combine].</p>
+
+		<h3>[property:Float refractionRatio]</h3>
+		<p>
+			L'indice de réfraction (IOR) de l'air (environ 1) divisé par l'indice de réfraction du matériau.
+			Il est utilisé avec les modes de mapping d'environnement [page:Textures THREE.CubeRefractionMapping] et [page:Textures THREE.EquirectangularRefractionMapping].
+			Le rapport de réfraction ne doit pas dépasser 1. La valeur par défaut est `0.98`.
+		</p>
+
+		<h3>[property:Texture specularMap]</h3>
+		<p>Texture spéculaire utilisée par le matériau. La valeur par défaut est null.</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>Rendre la géométrie en fil de fer. La valeur par défaut est "false" (c'est-à-dire rendre sous forme de polygones plats).</p>
+
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+			Définit l'apparence de la fin de la ligne. les valeurs possibles sont 'butt', 'round' et 'square'.
+			La valeur par défaut est 'round'.<br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+			Définit l'apparence des jointures de lignes. Les valeurs possibles sont 'round', 'bevel' et 'miter'. La valeur par défaut est 'round'. <br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 145 - 0
docs/api/fr/materials/MeshMatcapMaterial.html

@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] est définie par une texture MatCap (ou Lit Sphere), qui encode la couleur et l'ombrage du matériau.<br/><br/>
+			[name] ne répond pas aux lumières car le fichier image matcap encode l'éclairage préparé.
+			Il projettera une ombre sur un objet qui reçoit des ombres (et l'écrêtage des ombres fonctionne), mais il ne s'auto-ombrera pas et ne recevra pas d'ombres.
+		</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshMatcapMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+			La texture pour créer une carte en relief. Les valeurs de noir et blanc correspondent à la profondeur perçue par rapport aux lumières.
+			Bump n'affecte pas réellement la géométrie de l'objet, seulement l'éclairage. Si une carte normale est définie, cela sera ignoré.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>A quel point la texture en relief affecte le matériau. Les plages typiques sont 0-1. La valeur par défaut est 1.</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+			Définit si le matériau est rendu avec un ombrage plat. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+			La couleur de la carte de texture est modulée par la couleur ([page:.color]) diffuse..
+		</p>
+
+		<h3>[property:Texture matcap]</h3>
+		<p>La carte matcap. La valeur par défaut est null.</p>
+
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+			La texture pour créer une carte normale. Les valeurs RVB affectent la surface normale pour chaque fragment de pixel et changent
+			la façon dont la couleur est illuminée. Les cartes normales ne changent pas la forme réelle de la surface, seulement l'éclairage.
+			Dans le cas où le matériau a une carte normale créée en utilisant la convention "left handed", le composant y de normalScale
+			devrait être négatif pour compenser les différences de latéralité.
+		</p>
+
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+			Le type de carte d'ombrage.<br /><br />
+
+			Les options sont [page:constant THREE.TangentSpaceNormalMap] (par défaut), et [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+			A quel point la carte normale affecte le matériau. Les plages typiques sont 0-1.
+			La valeur par défaut est un [page:Vector2] défini sur (1,1).
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 130 - 0
docs/api/fr/materials/MeshNormalMaterial.html

@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Un matériau qui mappe les vecteurs normaux aux couleurs RVB.</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshNormalMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.
+		</p>
+
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+			La texture pour créer une carte en relief. Les valeurs de noir et blanc correspondent à la profondeur perçue par rapport aux lumières.
+			Bump n'affecte pas réellement la géométrie de l'objet, seulement l'éclairage. Si une carte normale est définie, cela sera ignoré.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>A quel point la texture en relief affecte le matériau. Les plages typiques sont 0-1. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+			Définit si le matériau est rendu avec un ombrage plat. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `false`.</p>
+
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+			La texture pour créer une carte normale. Les valeurs RVB affectent la surface normale pour chaque fragment de pixel et changent
+			la façon dont la couleur est illuminée. Les cartes normales ne changent pas la forme réelle de la surface, seulement l'éclairage.
+			Dans le cas où le matériau a une carte normale créée en utilisant la convention "left handed", le composant y de normalScale
+			devrait être négatif pour compenser les différences de latéralité.
+		</p>
+
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+			Le type de carte d'ombrage.<br /><br />
+
+			Les options sont [page:constant THREE.TangentSpaceNormalMap] (par défaut), et [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+			A quel point la carte normale affecte le matériau. Les plages typiques sont 0-1.
+			La valeur par défaut est un [page:Vector2] défini sur (1,1).
+		</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+			Rendre la géométrie en fil de fer. La valeur par défaut est false (c'est-à-dire rendu en ombré lisse).
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 247 - 0
docs/api/fr/materials/MeshPhongMaterial.html

@@ -0,0 +1,247 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Un matériau pour les surfaces brillantes avec des reflets spéculaires.<br /><br />
+
+			Le matériau utilise un modèle de [link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong] non basé sur la physique
+			pour calculer la réflectance. Contrairement au modèle lambertien utilisé dans la [page:MeshLambertMaterial]
+			cela peut simuler des surfaces brillantes avec des reflets spéculaires (comme le bois verni). [name] utilise un ombrage par fragment.<br /><br />
+
+			Les performances seront généralement meilleurs qu'avec un [page:MeshStandardMaterial]
+			ou un [page:MeshPhysicalMaterial], au prix d'une perte de précision graphique.
+		</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshPhongMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3> 
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture aoMap]</h3>
+		<p>Le canal rouge de cette texture est utilisé comme carte d'occlusion ambiante. La valeur par défaut est nulle.
+		L'aoMap nécessite un deuxième ensemble d'UV.</p>
+
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>Intensité de l'effet d'occlusion ambiante. La valeur par défaut est 1. Zéro signifie qu'il n'y a pas d'effet d'occlusion.</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+			La texture pour créer une carte en relief. Les valeurs de noir et blanc correspondent à la profondeur perçue par rapport aux lumières.
+			Bump n'affecte pas réellement la géométrie de l'objet, seulement l'éclairage. Si une carte normale est définie, cela sera ignoré.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>A quel point la texture en relief affecte le matériau. Les plages typiques sont 0-1. La valeur par défaut est 1.</p>
+
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Integer combine]</h3>
+		<p>
+			Comment combiner le résultat de la couleur de la surface avec la carte d'environnement, le cas échéant.<br /><br />
+
+			Les options sont [page:Materials THREE.MultiplyOperation] (par défaut), [page:Materials THREE.MixOperation],
+			[page :Matériaux TROIS.AddOperation]. Si mix est choisi, la [page:.reflectivity] est utilisée pour
+			mélanger les deux couleurs.
+		</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Color emissive]</h3>
+		<p>
+			Couleur émissive (claire) du matériau, essentiellement une couleur unie non affectée par un autre éclairage.
+			La valeur par défaut est noire.
+		</p>
+
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+			Définit la carte émissive (lueur). La valeur par défaut est nulle. La couleur de la carte émissive est modulée par
+			la couleur émissive et l'intensité émissive. Si vous avez une carte émissive, assurez-vous de
+			régler la couleur émissive sur autre chose que le noir.
+		</p>
+
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>Intensité de la lumière émissive. Module la couleur émissive. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture envMap]</h3>
+		<p>La carte de l'environnement. La valeur par défaut est nulle.</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		Définit si le matériau est rendu avec un ombrage plat. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Texture lightMap]</h3>
+		<p>La carte des lumières (light map).  La valeur par défaut est null. La lightMap nécessite un deuxième ensemble d'UVs.</p>
+
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>Intensité de la lumière préparée. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+			La couleur de la carte de texture est modulée par la couleur ([page:.color]) diffuse..
+		</p>
+
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+			La texture pour créer une carte normale. Les valeurs RVB affectent la surface normale pour chaque fragment de pixel et changent
+			la façon dont la couleur est illuminée. Les cartes normales ne changent pas la forme réelle de la surface, seulement l'éclairage.
+			Dans le cas où le matériau a une carte normale créée en utilisant la convention "left handed", le composant y de normalScale
+			devrait être négatif pour compenser les différences de latéralité.
+		</p>
+
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+			Le type de carte d'ombrage.<br /><br />
+
+			Les options sont [page:constant THREE.TangentSpaceNormalMap] (par défaut), et [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+			A quel point la carte normale affecte le matériau. Les plages typiques sont 0-1.
+			La valeur par défaut est un [page:Vector2] défini sur (1,1).
+		</p>
+
+
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+			Dans quelle mesure la carte d'environnement affecte la surface ; voir aussi [page:.combine].
+			La valeur par défaut est 1 et la plage valide est comprise entre 0 (aucune réflexion) et 1 (réflexions complètes).
+		</p>
+
+		<h3>[property:Float refractionRatio]</h3>
+		<p>
+			L'indice de réfraction (IOR) de l'air (environ 1) divisé par l'indice de réfraction du matériau.
+			Il est utilisé avec les modes de mapping d'environnement [page:Textures THREE.CubeRefractionMapping] et [page:Textures THREE.EquirectangularRefractionMapping].
+			Le rapport de réfraction ne doit pas dépasser 1. La valeur par défaut est `0.98`.
+		</p>
+
+		<h3>[property:Float shininess]</h3>
+		<p>À quel point la surbrillance [page:.specular] est-elle brillante ? une valeur plus élevée donne une surbrillance plus nette. La valeur par défaut est `30`.</p>
+
+		<h3>[property:Color specular]</h3>
+		<p>
+			Couleur spéculaire du matériau. La valeur par défaut est une [page:Color] de `0x111111` (gris très foncé).<br /><br />
+
+			Cela définit à quel point le matériau brille et la couleur de brillance.
+		</p>
+
+		<h3>[property:Texture specularMap]</h3>
+		<p>
+			La valeur de carte spéculaire affecte à la fois l'importance de la surbrillance de la surface spéculaire
+			et à quel point la carte d'environnement affecte la surface. La valeur par défaut est null.
+		</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>Rendre la géométrie en fil de fer. La valeur par défaut est "false" (c'est-à-dire rendre sous forme de polygones plats).</p>
+
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+			Définit l'apparence de la fin de la ligne. les valeurs possibles sont 'butt', 'round' et 'square'.
+			La valeur par défaut est 'round'.<br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+			Définit l'apparence des jointures de lignes. Les valeurs possibles sont 'round', 'bevel' et 'miter'. La valeur par défaut est 'round'. <br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 236 - 0
docs/api/fr/materials/MeshPhysicalMaterial.html

@@ -0,0 +1,236 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr; [page:MeshStandardMaterial] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Une extension du [page:MeshStandardMaterial], qui prodigue des propriétés de rendu plus avancées basées sur des modèles physiques :
+		</p>
+
+		<ul>
+			<li>
+				<b>Clearcoat :</b> certains matériaux, tels que les peintures automobiles, la fibre de carbone et les surfaces humides, nécessitent une
+				couche transparente et réfléchissante au-dessus d'une autre couche qui peut être irrégulière ou rugueuse. Clearcoat
+				se rapproche de cet effet, sans avoir besoin d'une surface transparente séparée.
+			</li>
+			<li>
+				<b>Physically-based transparency:</b> Une limitation de [page:Material.opacity .opacity] est
+				que les matériaux hautement transparents sont moins réfléchissants. La [page:.transmission] basée sur la physique
+				offre une option plus réaliste pour les surfaces fines et transparentes comme le verre.
+			</li>
+			<li>
+				<b>Advanced reflectivity:</b> Réflectivité plus flexible pour les matériaux non métalliques.
+			</li>
+			<li>
+				<b>Sheen:</b> Peut être utilisé pour représenter des vêtements et du tissu.
+			</li>
+		</ul>
+
+		<p>
+			En raison de ces fonctionnalités d'ombrage complexes, MeshPhysicalMaterial a un coût de performance par pixel plus élevée
+			que les autres matériaux three.js. La plupart des effets sont désactivés par défaut et ajoutent un
+			coût lorsqu'ils sont activés. Pour de meilleurs résultats, spécifiez toujours une carte d'environnement [page:.envMap]
+			lors de l'utilisation de ce matériel.
+		</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshPhysicalMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Exemples</h2>
+		<p>
+			[example:webgl_materials_variations_physical materials / variations / physical]<br />
+			[example:webgl_materials_physical_clearcoat materials / physical / clearcoat]<br />
+			[example:webgl_materials_physical_reflectivity materials / physical / reflectivity]<br />
+			[example:webgl_loader_gltf_sheen loader / gltf / sheen]<br />
+			[example:webgl_materials_physical_transmission materials / physical / transmission]
+		</p>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (incluant toute propriété héritée de [page:Material] ou [page:MeshStandardMaterial]) peut être passée dans l'objet.<br /><br />
+
+		L'exception est la propriété [page:Hexadecimal color],qui peut être passée avec une chaîne de caractères hexadécimale, définie à `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] and [page:MeshStandardMaterial] classes for common properties.</p>
+
+		<h3>[property:Color attenuationColor]</h3>
+		<p>
+			La couleur dans laquelle la lumière blanche se transforme en raison de l'absorption lorsqu'elle atteint la distance d'atténuation. La valeur par défaut est `blanc` (0xffffff).
+		</p>
+
+		<h3>[property:Float attenuationDistance]</h3>
+		<p>
+			Densité du milieu donnée comme la distance moyenne parcourue par la lumière dans le milieu avant d'interagir avec une particule. La valeur est exprimée en unités spatiales mondiales et doit être supérieure à zéro. La valeur par défaut est `Infinity`.
+		</p>
+
+		<h3>[property:Float clearcoat]</h3>
+		<p>
+		Représente l'intensité de la couche transparente, de '0.0' à '1.0'. Utiliser les propriétés liées à la couche transparente pour activer le multicouche
+		matériaux qui ont une fine couche translucide sur la couche de base. La valeur par défaut est `0.0`.
+		</p>
+
+		<h3>[property:Texture clearcoatMap]</h3>
+		<p>
+		Le canal rouge de cette texture est multiplié par [page:.clearcoat], pour un contrôle par pixel
+		sur l'intensité d'un revêtement. La valeur par défaut est "null".
+		</p>
+
+		<h3>[property:Texture clearcoatNormalMap]</h3>
+		<p>Peut être utilisé pour activer des normales indépendantes pour la couche de revêtement transparente. La valeur par défaut est `null`.</p>
+
+		<h3>[property:Vector2 clearcoatNormalScale]</h3>
+		<p>De combien [page:.clearcoatNormalMap] affecte la couche transparente, de `(0,0)` à `(1,1)`. La valeur par défaut est `(1,1)`.</p>
+
+		<h3>[property:Float clearcoatRoughness]</h3>
+		<p>Rugosité de la couche transparente, de `0.0` à `1.0`. La valeur par défaut est `0.0`.</p>
+
+		<h3>[property:Texture clearcoatRoughnessMap]</h3>
+		<p>
+			Le canal vert de cette texture est multiplié par [page:.clearcoatRoughness], pour un contrôle par pixel
+			sur la rugosité d'un revêtement. La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Object defines]</h3>
+		<p>Un objet de la forme :
+			<code>
+				{
+
+					'STANDARD': ''
+					'PHYSICAL': '',
+
+				};
+			</code>
+
+			Est utilisé par [page:WebGLRenderer] pour sélectionner les shaders.
+		</p>
+
+		<h3>[property:Float ior]</h3>
+		<p>
+			Indice de réfraction pour les matériaux non métalliques, de "1,0" à "2,333". La valeur par défaut est `1.5`.<br />
+		</p>
+
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+			Degré de réflectivité, de '0.0' à '1.0'. La valeur par défaut est `0.5`, ce qui correspond à un indice de réfraction de 1,5.<br />
+
+			This models the reflectivity of non-metallic materials. It has no effect when [page:MeshStandardMaterial.metalness metalness] is `1.0`.
+		</p>
+
+		<h3>[property:Float sheen]</h3>
+		<p>
+			Intensité de la couche de brillance, de '0.0' à '1.0'. La valeur par défaut est `0.0`.
+		</p>
+
+		<h3>[property:Float sheenRoughness]</h3>
+		<p>
+			Rugosité de la couche de brillance, de '0.0' à '1.0'. La valeur par défaut est `1.0`.
+		</p>
+
+		<h3>[property:Texture sheenRoughnessMap]</h3>
+		<p>
+			Le canal alpha de cette texture est multiplié par [page:.sheen Roughness], pour un contrôle par pixel sur la rugosité de la brillance.
+			 La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Color sheenColor]</h3>
+		<p>
+			La teinte brillante. La valeur par défaut est `0xffffff`, white.
+		</p>
+
+		<h3>[property:Texture sheenColorMap]</h3>
+		<p>
+			Les canaux RVB de cette texture sont multipliés par [page:.sheenColor], pour un contrôle par pixel
+			sur la teinte brillante. La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Float specularIntensity]</h3>
+		<p>
+			Un float qui met à l'échelle la quantité de réflexion spéculaire pour les non-métaux uniquement. Lorsqu'il est défini sur zéro, le modèle est effectivement lambertien. De `0.0` à `1.0`. La valeur par défaut est `0.0`.
+		</p>
+
+		<h3>[property:Texture specularIntensityMap]</h3>
+		<p>
+			Le canal alpha de cette texture est multiplié par [page:.specularIntensity], pour un contrôle par pixel sur l'intensité spéculaire.
+			La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Color specularColor]</h3>
+		<p>
+			Une [page:Couleur] qui teinte la réflexion spéculaire à une incidence normale pour les non-métaux uniquement.
+			La valeur par défaut est `0xffffff`, blanc.
+		</p>
+
+		<h3>[property:Texture specularColorMap]</h3>
+		<p>
+			Les canaux RVB de cette texture sont multipliés par rapport à [page:.specularColor], pour un contrôle par pixel sur la couleur spéculaire. La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Float thickness]</h3>
+		<p>
+			L'épaisseur du volume sous la surface. La valeur est donnée dans l'espace de coordonnées du maillage. 
+			Si la valeur est 0, le matériau est à paroi mince. Sinon, le matériau est une limite de volume.
+			La valeur par défaut est `0`.
+		</p>
+
+		<h3>[property:Texture thicknessMap]</h3>
+		<p>
+		Une texture qui définit l'épaisseur, stockée dans le canal G. Cela sera multiplié par [page:.thickness]. La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:Float transmission]</h3>
+		<p>
+		Degré de transmission (ou transparence optique), de '0.0' à '1.0'. La valeur par défaut est `0.0`.<br />
+
+		Les matériaux minces, transparents ou semi-transparents, en plastique ou en verre restent largement réfléchissants même s'ils sont totalement transmissifs.
+
+		La propriété de transmission peut être utilisée pour modéliser ces matériaux.<br />
+
+		Lorsque la transmission est différente de zéro, [page:Material.opacity opacity] doit être défini sur "0".
+		</p>
+
+		<h3>[property:Texture transmissionMap]</h3>
+		<p>
+			Le canal rouge de cette texture est multiplié par [page:.transmission], pour un contrôle par pixel
+			sur la transparence optique. La valeur par défaut est `null`.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] and [page:MeshStandardMaterial] pour les méthodes communes.</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 272 - 0
docs/api/fr/materials/MeshStandardMaterial.html

@@ -0,0 +1,272 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Un matériau physique standard, utilisant le flux de travail Metallic-Roughness.<br /><br />
+
+			Le rendu basé sur la physique (PBR) est récemment devenu la norme dans de nombreuses applications 3D, telles que
+			[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] et
+			[link:http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017 3D Studio Max].<br /><br />
+
+			Cette approche diffère des approches plus anciennes, au lieu d'utiliser des approximations pour la manière dont
+			la lumière interagit avec une surface, un modèle physiquement correct est utilisé. L'idée est de choisir
+			un matériau qui réagira « correctement » dans tous les scénarios d'éclairage, au lieu d'essayer de manipuler les matériaux
+			pour qu'ils aient un bon rendu avec une lumière spécifique.<br /><br />
+
+			En pratique, cela donne un résultat plus précis et réaliste que le [page:MeshLambertMaterial]
+			ou [page:MeshPhongMaterial],au prix d'être un peu plus coûteux en calcul. [name] utilise un ombrage par fragment.<br /><br />
+
+			Notez que pour de meilleurs résultats, vous devez toujours spécifier une [page:.envMap environment map] lors de l'utilisation
+			ce materiel.<br /><br />
+
+			Pour une introduction non technique au concept de PBR et comment mettre en place un matériel PBR,
+			consultez ces articles rédigés par des personnes de [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]
+				</li>
+				<li>
+					[link:https://www.marmoset.co/posts/physically-based-rendering-and-you-can-too/ Physically Based Rendering and You Can Too]
+				</li>
+			</ul>
+		</p>
+		<p>
+			Les détails techniques de l'approche utilisée dans three.js (et la plupart des autres systèmes PBR) peuvent être trouvés sur ce pdf :
+			[link:https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf paper from Disney],
+			de Brent Burley.
+		</p>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshStandardMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture aoMap]</h3>
+		<p>Le canal rouge de cette texture est utilisé comme carte d'occlusion ambiante. La valeur par défaut est nulle.
+		L'aoMap nécessite un deuxième ensemble d'UV.</p>
+
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>Intensité de l'effet d'occlusion ambiante. La valeur par défaut est 1. Zéro signifie qu'il n'y a pas d'effet d'occlusion.</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+			La texture pour créer une carte en relief. Les valeurs de noir et blanc correspondent à la profondeur perçue par rapport aux lumières.
+			Bump n'affecte pas réellement la géométrie de l'objet, seulement l'éclairage. Si une carte normale est définie, cela sera ignoré.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>A quel point la texture en relief affecte le matériau. Les plages typiques sont 0-1. La valeur par défaut est 1.</p>
+
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Object defines]</h3>
+		<p>Un objet de la forme :
+			<code>
+				{ 'STANDARD': '' };
+			</code>
+
+			Est utilisé par [page:WebGLRenderer] pour choisir les shaders.
+		</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+			qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+			bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+			une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+			et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+			et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+			La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+			Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Color emissive]</h3>
+		<p>
+		Couleur émissive (claire) du matériau, essentiellement une couleur unie non affectée par un autre éclairage.
+		La valeur par défaut est noire.
+		</p>
+
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		Définit la carte émissive (lueur). La valeur par défaut est nulle. La couleur de la carte émissive est modulée par
+		la couleur émissive et l'intensité émissive. Si vous avez une carte émissive, assurez-vous de
+		régler la couleur émissive sur autre chose que le noir.
+		</p>
+
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>Intensité de la lumière émissive. Module la couleur émissive. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture envMap]</h3>
+		<p>La carte de l'environnement. Pour garantir un rendu physiquement correct, vous ne devez ajouter que des
+			cartes d'environnement qui ont été prétraitées par [page: PMREMGenerator]. La valeur par défaut est null.
+		</p>
+
+		<h3>[property:Float envMapIntensity]</h3>
+		<p>Met à l'échelle l'effet de la carte d'environnement en multipliant sa couleur.</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		Définit si le matériau est rendu avec un ombrage plat. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Boolean isMeshStandardMaterial]</h3>
+		<p>
+			Booléen en lecture seule pour vérifier si un objet donné est de type [name].
+		</p>
+
+		<h3>[property:Texture lightMap]</h3>
+		<p>La carte des lumières (light map).  La valeur par défaut est null. La lightMap nécessite un deuxième ensemble d'UVs.</p>
+
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>Intensité de la lumière préparée. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+			La couleur de la carte de texture est modulée par la couleur ([page:.color]) diffuse..
+		</p>
+
+		<h3>[property:Float metalness]</h3>
+		<p>
+			Combien le matériau est comme un métal. Les matériaux non métalliques tels que le bois ou la pierre utilisent 0,0, les métaux utilisent 1,0, sans rien
+			(généralement) entre les deux. La valeur par défaut est 0.0. Une valeur comprise entre 0,0 et 1,0 peut être utilisée pour un aspect de métal rouillé. Si metalnessMap est
+			également fourni, les deux valeurs sont multipliées.
+		</p>
+
+		<h3>[property:Texture metalnessMap]</h3>
+		<p>Le canal bleu de cette texture est utilisé pour modifier la métallité du matériau.</p>
+
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+			La texture pour créer une carte normale. Les valeurs RVB affectent la surface normale pour chaque fragment de pixel et changent
+			la façon dont la couleur est illuminée. Les cartes normales ne changent pas la forme réelle de la surface, seulement l'éclairage.
+			Dans le cas où le matériau a une carte normale créée en utilisant la convention "left handed", le composant y de normalScale
+			devrait être négatif pour compenser les différences de latéralité.
+		</p>
+
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+			Le type de carte d'ombrage.<br /><br />
+
+			Les options sont [page:constant THREE.TangentSpaceNormalMap] (par défaut), et [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+			A quel point la carte normale affecte le matériau. Les plages typiques sont 0-1.
+			La valeur par défaut est un [page:Vector2] défini sur (1,1).
+		</p>
+
+		<h3>[property:Float roughness]</h3>
+		<p>
+			La rugosité du matériau apparaît. 0,0 signifie une réflexion miroir lisse, 1,0 signifie entièrement diffus. La valeur par défaut est 1.0.
+			Si roughnessMap est également fourni, les deux valeurs sont multipliées.
+		</p>
+
+		<h3>[property:Texture roughnessMap]</h3>
+		<p>Le canal vert de cette texture est utilisé pour modifier la rugosité du matériau.</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>Rendre la géométrie en fil de fer. La valeur par défaut est "false" (c'est-à-dire rendre sous forme de polygones plats).</p>
+
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+			Définit l'apparence de la fin de la ligne. les valeurs possibles sont 'butt', 'round' et 'square'.
+			La valeur par défaut est 'round'.<br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+			Définit l'apparence des jointures de lignes. Les valeurs possibles sont 'round', 'bevel' et 'miter'. La valeur par défaut est 'round'. <br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+			A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 200 - 0
docs/api/fr/materials/MeshToonMaterial.html

@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">Un matériau mettant en œuvre le toon shading.</div>
+
+		<iframe id="scene" src="scenes/material-browser.html#MeshToonMaterial"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Exemples</h2>
+		<p>
+			[example:webgl_materials_variations_toon materials / variations / toon]
+		</p>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Texture aoMap]</h3>
+		<p>Le canal rouge de cette texture est utilisé comme carte d'occlusion ambiante. La valeur par défaut est nulle.
+L'aoMap nécessite un deuxième ensemble d'UV.</p>
+
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>Intensité de l'effet d'occlusion ambiante. La valeur par défaut est 1. Zéro signifie qu'il n'y a pas d'effet d'occlusion.</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+			La texture pour créer une carte en relief. Les valeurs de noir et blanc correspondent à la profondeur perçue par rapport aux lumières.
+Bump n'affecte pas réellement la géométrie de l'objet, seulement l'éclairage. Si une carte normale est définie, cela sera ignoré.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>A quel point la texture en relief affecte le matériau. Les plages typiques sont 0-1. La valeur par défaut est 1.</p>
+
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+			La carte de déplacement affecte la position des sommets du maillage. Contrairement aux autres cartes
+qui n'affectent que la lumière et l'ombre du matériau, les sommets déplacés peuvent projeter des ombres,
+bloquer d'autres objets et agir autrement comme une géométrie réelle. La texture de déplacement est
+une image sur laquelle la valeur de chaque pixel (le blanc étant le plus élevé) est mappée,
+et repositionne, les sommets du maillage.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+			Dans quelle mesure la carte de déplacement affecte le maillage (où le noir n'est pas un déplacement,
+et le blanc est le déplacement maximal). Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée.
+La valeur par défaut est 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+			Le décalage des valeurs de la carte de déplacement sur les sommets du maillage.
+Sans ensemble de cartes de déplacement, cette valeur n'est pas appliquée. La valeur par défaut est 0.
+		</p>
+
+		<h3>[property:Color emissive]</h3>
+		<p>
+		Couleur émissive (claire) du matériau, essentiellement une couleur unie non affectée par un autre éclairage.
+La valeur par défaut est noire.
+		</p>
+
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		Définit la carte émissive (lueur). La valeur par défaut est nulle. La couleur de la carte émissive est modulée par
+la couleur émissive et l'intensité émissive. Si vous avez une carte émissive, assurez-vous de
+régler la couleur émissive sur autre chose que le noir.
+		</p>
+
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>Intensité de la lumière émissive. Module la couleur émissive. La valeur par défaut est 1.</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Texture gradientMap]</h3>
+		<p>Carte de dégradé pour l'ombrage toon. Il est nécessaire de définir [page:Texture.minFilter] et [page:Texture.magFilter] sur
+			[page:Textures THREE.NearestFilter] lors de l'utilisation de ce type de texture. La valeur par défaut est `null`.</p>
+
+		<h3>[property:Texture lightMap]</h3>
+		<p>La carte des lumières (light map).  La valeur par défaut est null. La lightMap nécessite un deuxième ensemble d'UVs.</p>
+
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>Intensité de la lumière préparée. La valeur par défaut est 1.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+			La couleur de la carte de texture est modulée par la couleur ([page:.color]) diffuse..
+		</p>
+
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+			La texture pour créer une carte normale. Les valeurs RVB affectent la surface normale pour chaque fragment de pixel et changent
+la façon dont la couleur est illuminée. Les cartes normales ne changent pas la forme réelle de la surface, seulement l'éclairage.
+Dans le cas où le matériau a une carte normale créée en utilisant la convention "left handed", le composant y de normalScale
+devrait être négatif pour compenser les différences de latéralité.
+		</p>
+
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+			Le type de carte d'ombrage.<br /><br />
+
+			Les options sont [page:constant THREE.TangentSpaceNormalMap] (par défaut), et [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+			A quel point la carte normale affecte le matériau. Les plages typiques sont 0-1.
+La valeur par défaut est un [page:Vector2] défini sur (1,1).
+		</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>Rendre la géométrie en fil de fer. La valeur par défaut est "false" (c'est-à-dire rendre sous forme de polygones plats).</p>
+
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+			Définit l'apparence de la fin de la ligne. les valeurs possibles sont 'butt', 'round' et 'square'.
+			La valeur par défaut est 'round'.<br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+			Définit l'apparence des jointures de lignes. Les valeurs possibles sont 'round', 'bevel' et 'miter'. La valeur par défaut est 'round'. <br /><br />
+
+			Cela correspond à la propriété [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+			et est ignorée par le moteur de rendu [page:WebGLRenderer WebGL].
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/fr/materials/PointsMaterial.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Le matériau par défaut utilisé par [page:Points].</p>
+
+		<h2>Code Example</h2>
+		<code>
+		const vertices = [];
+
+		for ( let i = 0; i < 10000; i ++ ) {
+
+			const x = THREE.MathUtils.randFloatSpread( 2000 );
+			const y = THREE.MathUtils.randFloatSpread( 2000 );
+			const z = THREE.MathUtils.randFloatSpread( 2000 );
+
+			vertices.push( x, y, z );
+
+		}
+
+		const geometry = new THREE.BufferGeometry();
+		geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
+
+		const material = new THREE.PointsMaterial( { color: 0x888888 } );
+
+		const points = new THREE.Points( geometry, material );
+
+		scene.add( points );
+		</code>
+
+		<h2>Exemples</h2>
+		<p>
+			[example:misc_controls_fly misc / controls / fly]<br />
+			[example:webgl_buffergeometry_drawrange WebGL / BufferGeometry / drawrange]<br />
+			[example:webgl_buffergeometry_points WebGL / BufferGeometry / points]<br />
+			[example:webgl_buffergeometry_points_interleaved WebGL / BufferGeometry / points / interleaved]<br />
+			[example:webgl_camera WebGL / camera ]<br />
+			[example:webgl_geometry_convex WebGL / geometry / convex]<br />
+			[example:webgl_geometry_shapes WebGL / geometry / shapes]<br />
+			[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points]<br />
+			[example:webgl_multiple_elements_text WebGL / multiple / elements / text]<br />
+			[example:webgl_points_billboards WebGL / points / billboards]<br />
+			[example:webgl_points_dynamic WebGL / points / dynamic]<br />
+			[example:webgl_points_sprites WebGL / points / sprites]<br />
+			[example:webgl_trails WebGL / trails]
+		</p>
+
+		<h2>Constructeur</h2>
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff).</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			Définit la couleur des points à l'aide des données d'une [page:Texture].
+			Peut éventuellement inclure un canal alpha, généralement combiné avec
+			[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest].
+		</p>
+
+		<h3>[property:Number size]</h3>
+		<p>Définit la taille des points en pixels. La valeur par défaut est 1.0.<br/>
+			Sera plafonné s'il dépasse le paramètre dépendant du matériel [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParameter gl.ALIASED_POINT_SIZE_RANGE].</p>
+
+		<h3>[property:Boolean sizeAttenuation]</h3>
+		<p>Spécifiez si la taille des points est atténuée par la profondeur de la caméra. (Caméra perspective uniquement). La valeur par défaut est true.</p>
+
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 66 - 0
docs/api/fr/materials/RawShaderMaterial.html

@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr; [page:ShaderMaterial] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Cette classe fonctionne exactement comme [page:ShaderMaterial], sauf que les définitions des
+			uniformes et les attributs intégrés ne sont pas automatiquement ajoutées au code du shader GLSL.
+		</p>
+
+		<h2>Code Example</h2>
+		<code>
+		const material = new THREE.RawShaderMaterial( {
+
+			uniforms: {
+				time: { value: 1.0 }
+			},
+			vertexShader: document.getElementById( 'vertexShader' ).textContent,
+			fragmentShader: document.getElementById( 'fragmentShader' ).textContent,
+
+		} );
+		</code>
+
+		<h2>Exemples</h2>
+		<p>
+			[example:webgl_buffergeometry_rawshader WebGL / buffergeometry / rawshader]<br />
+			[example:webgl_buffergeometry_instancing_billboards WebGL / buffergeometry / instancing / billboards]<br />
+			[example:webgl_buffergeometry_instancing WebGL / buffergeometry / instancing]<br />
+			[example:webgl_raymarching_reflect WebGL / raymarching / reflect]<br />
+			[example:webgl2_volume_cloud WebGL 2 / volume / cloud]<br />
+			[example:webgl2_volume_instancing WebGL 2 / volume / instancing]<br />
+			[example:webgl2_volume_perlin WebGL 2 / volume / perlin]
+		</p>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material] and [page:ShaderMaterial]) peut être passée dans l'objet.<br /><br />
+		</p>
+
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] et [page:ShaderMaterial] pour les propriétés communes.</p>
+
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] et [page:ShaderMaterial] pour les méthodes communes.</p>
+
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 441 - 0
docs/api/fr/materials/ShaderMaterial.html

@@ -0,0 +1,441 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Un matériau rendu avec des shaders personnalisés. Un shader est un petit programme écrit en
+			[link:https://www.khronos.org/files/opengles_shading_language.pdf GLSL] qui s'exécute sur le GPU.
+			Vous pouvez utiliser un shader personnalisé si vous avez besoin de :
+			<ul>
+				<li>implémenter un effet qui n'est inclus dans aucun des [page:Material materials] intégrés</li>
+				<li>combiner de nombreux objets en une seule [page:BufferGeometry] afin d'améliorer les performances</li>
+			</ul>
+			Il y a les notes suivantes à garder à l'esprit lors de l'utilisation d'un `ShaderMaterial` :
+
+		<ul>
+			<li>
+				Un `ShaderMaterial` ne sera rendu correctement que par [page: WebGLRenderer],
+				depuis le code GLSL dans le [link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertexShader]
+				et les propriétés [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragmentShader] doivent
+				être compilées et exécutées sur le GPU à l'aide de WebGL.
+			</li>
+			<li>
+				Depuis THREE r72, l'attribution directe d'attributs dans un ShaderMaterial n'est plus prise en charge.
+				Une instance [page:BufferGeometry] doit être utilisée à la place, en utilisant des instances [page:BufferAttribute] pour définir des attributs personnalisés.
+			</li>
+			<li>
+				Depuis THREE r77, les instances [page:WebGLRenderTarget] ou [page:WebGLCubeRenderTarget]
+				ne sont plus censés être utilisés comme uniformes. Leur propriété [page:Texture texture]
+				doit être utilisé à la place.
+			</li>
+			<li>
+				Les attributs et les uniformes intégrés sont transmis aux shaders avec votre code.
+				Si vous ne voulez pas que [page:WebGLProgram] ajoute quoi que ce soit à votre code de shader, vous pouvez utiliser
+				[page:RawShaderMaterial] au lieu de cette classe.
+			</li>
+			<li>
+				Vous pouvez utiliser la directive #pragma unroll_loop_start et #pragma unroll_loop_end afin de dérouler une boucle `for` en GLSL par le préprocesseur de shader.
+				La directive doit être placée juste au-dessus de la boucle. Le formatage de la boucle doit correspondre à une norme définie.
+				<ul>
+					<li>
+						La boucle doit être normalisée ([link:https://en.wikipedia.org/wiki/Normalized_loop normalized]).
+					</li>
+					<li>
+						La variable d'itération de la boucle doit être *i*.
+					</li>
+					<li>
+						La valeur `UNROLLED_LOOP_INDEX` sera remplacée par la valeur explicite de *i* pour l'itération donnée et peut être utilisée dans les instructions du préprocesseur.
+					</li>
+				</ul>
+				<code>
+		#pragma unroll_loop_start
+		for ( int i = 0; i < 10; i ++ ) {
+
+			// ...
+
+		}
+		#pragma unroll_loop_end
+				</code>
+			</li>
+		</ul>
+		</p>
+
+		<h2>Code Example</h2>
+
+		<code>
+		const material = new THREE.ShaderMaterial( {
+
+			uniforms: {
+
+				time: { value: 1.0 },
+				resolution: { value: new THREE.Vector2() }
+
+			},
+
+			vertexShader: document.getElementById( 'vertexShader' ).textContent,
+
+			fragmentShader: document.getElementById( 'fragmentShader' ).textContent
+
+		} );
+		</code>
+
+		<h2>Exemples</h2>
+
+		<p>
+			[example:webgl_buffergeometry_custom_attributes_particles webgl / buffergeometry / custom / attributes / particles]<br />
+			[example:webgl_buffergeometry_selective_draw webgl / buffergeometry / selective / draw]<br />
+			[example:webgl_custom_attributes webgl / custom / attributes]<br />
+			[example:webgl_custom_attributes_lines webgl / custom / attributes / lines]<br />
+			[example:webgl_custom_attributes_points webgl / custom / attributes / points]<br />
+			[example:webgl_custom_attributes_points2 webgl / custom / attributes / points2]<br />
+			[example:webgl_custom_attributes_points3 webgl / custom / attributes / points3]<br />
+			[example:webgl_depth_texture webgl / depth / texture]<br />
+			[example:webgl_gpgpu_birds webgl / gpgpu / birds]<br />
+			[example:webgl_gpgpu_protoplanet webgl / gpgpu / protoplanet]<br />
+			[example:webgl_gpgpu_water webgl / gpgpu / water]<br />
+			[example:webgl_interactive_points webgl / interactive / points]<br />
+			[example:webgl_video_kinect webgl / video / kinect]<br />
+			[example:webgl_lights_hemisphere webgl / lights / hemisphere]<br />
+			[example:webgl_marchingcubes webgl / marchingcubes]<br />
+			[example:webgl_materials_envmaps webgl / materials / envmaps]<br />
+			[example:webgl_materials_lightmap webgl / materials / lightmap]<br />
+			[example:webgl_materials_wireframe webgl / materials / wireframe]<br />
+			[example:webgl_modifier_tessellation webgl / modifier / tessellation]<br />
+			[example:webgl_postprocessing_dof2 webgl / postprocessing / dof2]<br />
+			[example:webgl_postprocessing_godrays webgl / postprocessing / godrays]
+		</p>
+
+		<h2>Shaders de vertex et shaders de fragments</h2>
+
+		<div>
+			<p>Vous pouvez spécifier deux types de shaders différents pour chaque matériau :</p>
+			<ul>
+				<li>
+					Le vertex shader s'exécute en premier ; il reçoit des `attributs`, calcule / manipule
+					la position de chaque sommet individuel, et transmet des données supplémentaires ("variantes") au fragment shader.
+				</li>
+				<li>
+					Le shader fragment ( ou pixel ) s'exécute en second ; il définit la couleur de chaque "fragment" individuel
+					(pixel) rendu à l'écran.
+				</li>
+			</ul>
+			<p>Il existe trois types de variables dans les shaders : les `uniforms`, les `attributes` et les `varyings` :</p>
+			<ul>
+				<li>
+					Les `Uniforms` sont des variables qui ont la même valeur pour tous les sommets - éclairage, brouillard,
+					et les cartes d'ombre sont des exemples de données qui seraient stockées dans des uniformes.
+					Les uniformes sont accessibles à la fois par le vertex shader et le fragment shader.
+				</li>
+				<li>
+					`Attributes` sont des variables associées à chaque sommet --- par exemple, la position du sommet,
+					face normale et vertex color sont tous des exemples de données qui seraient stockées dans des attributs.
+					Les attributs ne sont accessibles "que" dans le vertex shader.
+				</li>
+				<li>
+					`Varyings` sont des variables qui sont passées du vertex shader au fragment shader.
+					Pour chaque fragment, la valeur de chaque variable sera interpolée en douceur à partir des valeurs des sommets adjacents.
+				</li>
+			</ul>
+			<p>
+				Notez que "dans" le shader lui-même, les uniformes et les attributs agissent comme des constantes ;
+				vous ne pouvez modifier leurs valeurs qu'en transmettant des valeurs différentes aux tampons à partir de votre code JavaScript.
+			</p>
+		</div>
+
+
+	<h2>Attributs et uniformes intégrés</h2>
+
+	<div>
+			<p>
+				La [page:WebGLRenderer] fournit de nombreux attributs et uniformes aux shaders par défaut ;
+				les définitions de ces variables sont ajoutées à vos `fragmentShader` et `vertexShader`
+				codés par le [page:WebGLProgram] lorsque le shader est compilé ; vous n'avez pas besoin de les déclarer vous-même.
+				Voir [page:WebGLProgram] pour plus de détails sur ces variables.
+			</p>
+			<p>
+				Certains de ces uniformes ou attributs (par exemple, ceux concernant l'éclairage, le brouillard, etc.)
+				exigent que les propriétés soient définies sur le matériau pour que [page: WebGLRenderer] copie
+				les valeurs appropriées au GPU - assurez-vous de définir ces flags si vous souhaitez les utiliser
+				fonctionnalités dans votre propre shader.
+			</p>
+			<p>
+				Si vous ne voulez pas que [page:WebGLProgram] ajoute quoi que ce soit à votre code de shader, vous pouvez utiliser
+				[page:RawShaderMaterial] au lieu de cette classe.
+			</p>
+		</div>
+
+
+		<h2>Attributs et uniformes personnalisés</h2>
+
+		<div>
+			<p>
+				Les attributs personnalisés et les uniformes doivent être déclarés dans votre code de shader GLSL
+				(dans `vertexShader` et/ou `fragmentShader`). Les uniformes personnalisés doivent être définis dans "les deux"
+				propriétés `uniforms` de votre `ShaderMaterial`, alors que tous les attributs personnalisés doivent être
+				définis via les instances [page:BufferAttribute]. Notez que "varying" doit uniquement être déclaré dans le code du shader (et non dans le matériau).
+			</p>
+			<p>
+				Pour déclarer un attribut personnalisé, veuillez vous référer à la page [page:BufferGeometry] pour un aperçu,
+et la page [page:BufferAttribute] pour un aperçu détaillé de l'API `BufferAttribute`.
+			</p>
+			<p>
+				Lors de la création de vos attributs, chaque tableau typé que vous créez pour contenir vos
+				données doit être un multiple de la taille de votre type de données. Par exemple, si votre attribut
+				est de type [page:Vector3 THREE.Vector3], et vous avez 3000 sommets dans votre
+				[page:BufferGeometry], votre valeur de tableau typée doit être créée avec une longueur de 3000 * 3,
+				ou 9000 (une valeur par composant). Un tableau de la taille de chaque type de données est présenté ci-dessous à titre de référence :
+			</p>
+
+			<table>
+				<caption><a id="attribute-sizes">Taille des attributs</a></caption>
+				<thead>
+					<tr>
+						<th>type GLSL</th>
+						<th>type JavaScript</th>
+						<th>taille</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td>float</td>
+						<td>[page:Number]</td>
+						<td>1</td>
+					</tr>
+					<tr>
+						<td>vec2</td>
+						<td>[page:Vector2 THREE.Vector2]</td>
+						<td>2</td>
+					</tr>
+					<tr>
+						<td>vec3</td>
+						<td>[page:Vector3 THREE.Vector3]</td>
+						<td>3</td>
+					</tr>
+					<tr>
+						<td>vec3</td>
+						<td>[page:Color THREE.Color]</td>
+						<td>3</td>
+					</tr>
+					<tr>
+						<td>vec4</td>
+						<td>[page:Vector4 THREE.Vector4]</td>
+						<td>4</td>
+					</tr>
+				</tbody>
+			</table>
+
+			<p>
+			Notez que les tampons d'attributs ne sont `pas` actualisés automatiquement lorsque leurs valeurs changent. Pour mettre à jour les attributs personnalisés,
+			définissez le paramètre `needsUpdate` sur true sur le [page:BufferAttribute] de la géométrie (voir [page:BufferGeometry]
+			pour plus de détails).
+			</p>
+
+			<p>
+			Pour déclarer un [page:Uniform] personnalisé, utilisez la propriété `uniforms` :
+			<code>
+			uniforms: {
+				time: { value: 1.0 },
+				resolution: { value: new THREE.Vector2() }
+			}
+			</code>
+			</p>
+
+			<p>
+				Il est recommandé de mettre à jour les valeurs [page:Uniform] personnalisées en fonction de [page:Object3D object] et [page:Camera camera]
+				dans [page:Object3D.onBeforeRender] car [page:Material] peut être partagé entre [page:Mesh meshes], [page:Matrix4 matrixWorld]
+				de [page:Scene] et [page:Camera] sont mis à jour dans [page:WebGLRenderer.render], et certains effets rendent une [page:Scene scene]
+				avec leur propre [page : cameras] privées.
+			</p>
+
+		</div>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.
+		</p>
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Boolean clipping]</h3>
+		<p>
+			Définit si ce matériau prend en charge l'écrêtage ; true pour laisser le moteur de rendu transmettre l'uniforme clippingPlanes. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Object defaultAttributeValues]</h3>
+		<p>
+			Lorsque la géométrie rendue n'inclut pas ces attributs mais que le matériau le fait,
+			ces valeurs par défaut seront transmises aux shaders. Cela évite les erreurs lorsque des données de tampon sont manquantes.
+
+		<code>
+			this.defaultAttributeValues = {
+				'color': [ 1, 1, 1 ],
+				'uv': [ 0, 0 ],
+				'uv2': [ 0, 0 ]
+			};
+		</code>
+
+		</p>
+
+
+		<h3>[property:Object defines]</h3>
+		<p>
+		Définit des constantes personnalisées à l'aide des directives `#define` dans le code GLSL pour les deux
+		shader de vertex et le shader de fragment ; chaque paire clé/valeur produit une autre directive :
+		<code>
+		defines: {
+			FOO: 15,
+			BAR: true
+		}
+		</code>
+		yields the lines
+		<code>
+		#define FOO 15
+		#define BAR true
+		</code>
+		in the GLSL code.
+		</p>
+
+		<h3>[property:Object extensions]</h3>
+		<p>
+		Un objet avec les propriétés suivantes :
+		<code>
+			this.extensions = {
+				derivatives: false, // set to use derivatives
+				fragDepth: false, // set to use fragment depth values
+				drawBuffers: false, // set to use draw buffers
+				shaderTextureLOD: false // set to use shader texture LOD
+			};
+		</code>
+		</p>
+
+
+		<h3>[property:Boolean fog]</h3>
+		<p>
+			Définissez si la couleur du matériau est affectée par les paramètres de brouillard globaux ; vrai pour passer
+			les uniformes de brouillard au shader. La valeur par défaut est false.
+		</p>
+
+
+		<h3>[property:String fragmentShader]</h3>
+		<p>
+			Code GLSL du shader de fragment. C'est le code réel du shader. Dans l'exemple ci-dessus,
+			le code `vertexShader` et `fragmentShader` est extrait du DOM ; il peut être passé
+			sous forme de chaîne de caractères ou chargé via AJAX à la place.
+		</p>
+
+		<h3>[property:String glslVersion]</h3>
+		<p>
+			Définit la version GLSL du code de shader personnalisé. Pertinent uniquement pour WebGL 2 afin de définir s'il faut spécifier
+			GLSL 3.0 ou pas. Les valeurs valides sont `THREE.GLSL1` ou `THREE.GLSL3`. La valeur par défaut est `null`.
+		</p>
+
+		<h3>[property:String index0AttributeName]</h3>
+		<p>
+			Si définit, cela appelle [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bindAttribLocation gl.bindAttribLocation]
+			pour lier un index de sommet générique à une variable d'attribut.
+			La valeur par défaut est undefined.
+
+		</p>
+
+		<h3>[property:Boolean isShaderMaterial]</h3>
+		<p>
+			Attribut en lecture seule pour vérifier si l'object donné est de type [name].
+		</p>
+
+		<h3>[property:Boolean lights]</h3>
+		<p>
+		Définit si ce matériau utilise l'éclairage ; true pour transmettre des données uniformes liées à l'éclairage à ce shader. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Float linewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		Définit si le matériau est rendu avec un ombrage plat. La valeur par défaut est false.
+		</p>
+
+		<h3>[property:Object uniforms]</h3>
+		<p>
+			Un object de la forme:
+			<code>
+				{ "uniform1": { value: 1.0 }, "uniform2": { value: 2 } }
+			</code>
+			spécifiant les uniformes à transmettre au code shader ; les clés sont des noms uniformes, les valeurs sont des définitions de la forme
+		<code>
+		{ value: 1.0 }
+		</code>
+		Quand `value` est la valeur de l'uniforme. Les noms doivent correspondre au nom de l'uniforme,
+		tel que défini dans le code GLSL. A noter que les uniformes sont rafraichis à chaque frame,
+		donc la mise à jour de la valeur de l'uniforme mettra immédiatement à jour la valeur disponible pour le code GLSL.
+		</p>
+
+		<h3>[property:Boolean uniformsNeedUpdate]</h3>
+		<p>
+		Peut être utilisé pour forcer une mise à jour uniforme lors du changement d'uniformes dans [page:Object3D.onBeforeRender](). La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:Boolean vertexColors]</h3>
+		<p>
+		Définit si la coloration des sommets est utilisée. La valeur par défaut est `false`.
+		</p>
+
+		<h3>[property:String vertexShader]</h3>
+		<p>
+			Code GLSL du vertex shader. C'est le code réel du shader. Dans l'exemple ci-dessus,
+			le code `vertexShader` et `fragmentShader` est extrait du DOM ; il peut être passé
+			sous forme de chaîne de caractères ou chargé via AJAX à la place.
+		</p>
+
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+			Rendre la géométrie en fil de fer (en utilisant GL_LINES au lieu de GL_TRIANGLES). La valeur par défaut est false (c'est-à-dire rendre sous forme de polygones plats).
+		</p>
+
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>Contrôle l'épaisseur du filaire. La valeur par défaut est 1.<br /><br />
+
+		A cause des limitations de [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+			avec le moteur de rendu [page:WebGLRenderer WebGL] sur la plupârt des plateformes, l'épaisseur de ligne (linewidth) sera toujours 
+			à 1, indépendamment de la valeur définie.
+		</p>
+
+
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h3>[method:ShaderMaterial clone]() [param:ShaderMaterial this]</h3>
+		<p>
+			Génère une copie superficielle de ce matériau. Notez que le vertexShader et le fragmentShader
+			sont copiés "par référence", de même que les définitions des "attributs" ; cela signifie
+			que les clones du matériel partageront la même [page:WebGLProgram] compilée. Cependant, le
+			`uniformes` sont copiés `par valeur`, ce qui vous permet d'avoir différents ensembles d'uniformes
+			pour différentes copies du matériel.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 69 - 0
docs/api/fr/materials/ShadowMaterial.html

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		Ce matériau peut recevoir des ombres, mais sinon il est complètement transparent.
+		</p>
+
+		<h2>Code Example</h2>
+
+		<code>
+		const geometry = new THREE.PlaneGeometry( 2000, 2000 );
+		geometry.rotateX( - Math.PI / 2 );
+
+		const material = new THREE.ShadowMaterial();
+		material.opacity = 0.2;
+
+		const plane = new THREE.Mesh( geometry, material );
+		plane.position.y = -200;
+		plane.receiveShadow = true;
+		scene.add( plane );
+		</code>
+
+		<h2>Exemples</h2>
+
+		<p>
+			[example:webgl_geometry_spline_editor geometry / spline / editor]
+		</p>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+		</p>
+
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] couleur du matériau, noire par défaut (0x000000).</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Boolean transparent]</h3>
+		<p>Définit si le matériau est transparent. La valeur par défaut est `true`.</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 97 - 0
docs/api/fr/materials/SpriteMaterial.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="fr">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">Un matériau pour utiliser un [page:Sprite].</p>
+
+		<h2>Code Example</h2>
+
+		<code>
+		const map = new THREE.TextureLoader().load( 'textures/sprite.png' );
+		const material = new THREE.SpriteMaterial( { map: map, color: 0xffffff } );
+
+		const sprite = new THREE.Sprite( material );
+		sprite.scale.set(200, 200, 1)
+		scene.add( sprite );
+		</code>
+
+		<h2>Exemples</h2>
+		<p>
+			[example:webgl_raycaster_sprite WebGL / raycast / sprite]<br />
+			[example:webgl_sprites WebGL / sprites]<br />
+			[example:svg_sandbox SVG / sandbox]
+		</p>
+
+		<h2>Constructeur</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+			[page:Object parameters] - (optionnel) un objet avec une ou plusieurs propriétés définissant l'apparence du matériau.
+		Toute propriété du matériau (y compris toute proprioété héritée de [page:Material]) peut être passée dans l'objet.<br /><br />
+
+			L'exception est la propriété [page:Hexadecimal color], qui peut être passée comme une chaine de caractères hexadécimale,
+		 ayant la valeur `0xffffff` (blanc) par défaut. [page:Color.set]( color ) est appelée en interne.
+
+		 Les SpriteMaterials ne sont pas coupés en utilisant [page:Material.clippingPlanes].
+		</p>
+
+
+		<h2>Propriétés</h2>
+		<p>Voir la classe [page:Material] pour les propriétés communes.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>La carte alpha est une texture en niveaux de gris qui contrôle l'opacité sur la surface
+			(noir : entièrement transparent ; blanc : entièrement opaque). La valeur par défaut est nulle.<br /><br />
+			
+			Seule la couleur de la texture est utilisée, en ignorant le canal alpha s'il en existe un.
+			Pour les textures RGB et RGBA, le moteur de rendu [page:WebGLRenderer WebGL] utilisera le
+			canal vert lors de l'échantillonnage de cette texture en raison du peu de précision supplémentaire fourni
+			pour le vert dans les formats RVB 565 compressés DXT et non compressés. 
+			Les textures avec uniquement de la luminance ou les textures luminance/alpha fonctionneront également comme prévu.
+		</p>
+
+		<h3>[property:Color color]</h3>
+		<p>[page:Color], couleur du matériau, par défaut en blanc (0xffffff). The [page:.map] is multiplied by the color.</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>Si le matériau est affecté par le brouillard (fog) La valeur par défaut est `true`.</p>
+
+		<h3>[property:Boolean isSpriteMaterial]</h3>
+		<p>
+			Booléen en lecture seule pour tester si l'object est de type [name].
+		</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+			La carte des couleurs. Peut éventuellement inclure un canal alpha, généralement combiné avec
+[page:Material.transparent .transparent] ou [page:Material.alphaTest .alphaTest]. La valeur par défaut est null.
+		</p>
+
+		<h3>[property:Radians rotation]</h3>
+		<p>La rotation du sprite en radians. La valeur par défaut est 0.</p>
+
+		<h3>[property:Boolean sizeAttenuation]</h3>
+		<p>Si la taille du sprite est atténuée par la profondeur de la caméra. (Caméra perspective uniquement). La valeur par défaut est `true`.</p>
+
+		<h3>[property:Boolean transparent]</h3>
+		<p>Définit si ce matériau est transparent. La valeur par défaut est `true`.</p>
+
+		<h2>Méthodes</h2>
+		<p>Voir la classe [page:Material] pour les méthodes communes.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -179,6 +179,7 @@
 			[page:Object3D object] – l'oggetto intersecato<br />
 			[page:Object3D object] – l'oggetto intersecato<br />
 			[page:Vector2 uv] - le coordinate U,V nel punto di intersezione<br />
 			[page:Vector2 uv] - le coordinate U,V nel punto di intersezione<br />
 			[page:Vector2 uv2] - Secondo insieme delle coordinate U,V nel punto di intersezione<br />
 			[page:Vector2 uv2] - Secondo insieme delle coordinate U,V nel punto di intersezione<br />
+			[page:Vector3 normal] - vettore normale interpolato nel punto di intersezione<br />
 			[page:Integer instanceId] – Il numero di indice dell'istanza in cui il raggio interseca la InstancedMesh.
 			[page:Integer instanceId] – Il numero di indice dell'istanza in cui il raggio interseca la InstancedMesh.
 		</p>
 		</p>
 		<p>
 		<p>

+ 5 - 0
docs/api/it/materials/LineBasicMaterial.html

@@ -90,6 +90,11 @@
 			e viene ignorata dal renderer [page:WebGLRenderer WebGL].
 			e viene ignorata dal renderer [page:WebGLRenderer WebGL].
 		</p>
 		</p>
 
 
+		<h3>[property:Texture map]</h3>
+		<p>
+			Sets the color of the lines using data from a [page:Texture].
+		</p>
+
 		<h2>Metodi</h2>
 		<h2>Metodi</h2>
 		<p>Vedi la classe base [page:Material] per i metodi comuni.</p>
 		<p>Vedi la classe base [page:Material] per i metodi comuni.</p>
 
 

+ 1 - 1
docs/api/it/materials/Material.html

@@ -143,7 +143,7 @@
 
 
 		The engine renders double-sided, transparent objects with two draw calls (back faces first, then front faces) to mitigate transparency artifacts.
 		The engine renders double-sided, transparent objects with two draw calls (back faces first, then front faces) to mitigate transparency artifacts.
 		There are scenarios however where this approach produces no quality gains but still doubles draw calls e.g. when rendering flat vegetation like grass sprites. 
 		There are scenarios however where this approach produces no quality gains but still doubles draw calls e.g. when rendering flat vegetation like grass sprites. 
-		In these cases, set the `forceSinglePass` flag to `false` to disable the two pass rendering to avoid performance issues.
+		In these cases, set the `forceSinglePass` flag to `true` to disable the two pass rendering to avoid performance issues.
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean isMaterial]</h3>
 		<h3>[property:Boolean isMaterial]</h3>

+ 0 - 15
docs/api/it/materials/MeshDistanceMaterial.html

@@ -87,11 +87,6 @@
 			non viene applicato. Il valore predefinito è 0.
 			non viene applicato. Il valore predefinito è 0.
 		</p>
 		</p>
 
 
-		<h3>[property:Float farDistance]</h3>
-		<p>
-			Il valore far della telecamera d'ombra interna della luce puntiforme.
-		</p>
-
 		<h3>[property:Boolean fog]</h3>
 		<h3>[property:Boolean fog]</h3>
 		<p>Indica se il materiale è influenzato dalla nebbia. Il valore predefinito è `false`.</p>
 		<p>Indica se il materiale è influenzato dalla nebbia. Il valore predefinito è `false`.</p>
 
 
@@ -101,16 +96,6 @@
 			[page:Material.transparent .transparent] o [page:Material.alphaTest .alphaTest]. Il valore predefinito è `null`.
 			[page:Material.transparent .transparent] o [page:Material.alphaTest .alphaTest]. Il valore predefinito è `null`.
 		</p>
 		</p>
 
 
-		<h3>[property:Float nearDistance]</h3>
-		<p>
-			Il valore near della telecamera d'obra interna della luce puntiforme.
-		</p>
-
-		<h3>[property:Vector3 referencePosition]</h3>
-		<p>
-			La posizione della luce puntiforme nello spazio world.
-		</p>
-
 		<h2>Metodi</h2>
 		<h2>Metodi</h2>
 		<p>Vedi la classe base [page:Material] per i metodi comuni.</p>
 		<p>Vedi la classe base [page:Material] per i metodi comuni.</p>
 
 

+ 12 - 0
docs/api/it/math/Color.html

@@ -181,6 +181,13 @@ const color7 = new THREE.Color( 1, 0, 0 );
 
 
 		</p>
 		</p>
 
 
+		<h3>[method:Color getRGB]( [param:Color target], [param:string colorSpace] = SRGBColorSpace )</h3>
+		<p>
+			[page:Color target] - questo risultato sarà copiato in questo oggetto.<br /><br />
+
+			Returns the RGB values of this color as an instance of [page:Color].
+		</p>
+
 		<h3>[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )</h3>
 		<h3>[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )</h3>
 		<p>Restituisce il valore di questo colore come una stringa CSS style. Esempio: `rgb(255,0,0)`.</p>
 		<p>Restituisce il valore di questo colore come una stringa CSS style. Esempio: `rgb(255,0,0)`.</p>
 
 
@@ -312,6 +319,11 @@ const color7 = new THREE.Color( 1, 0, 0 );
 		Restituisce un array della forma [ r, g, b ].
 		Restituisce un array della forma [ r, g, b ].
 		</p>
 		</p>
 
 
+		<h3>[method:Number toJSON]()</h3>
+		<p>
+		This methods defines the serialization result of [name]. Returns the color as a hexadecimal value.
+		</p>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

+ 5 - 0
docs/api/it/math/Quaternion.html

@@ -218,6 +218,11 @@
 		Restituisce gli elementi numerici di questo quaternione in un array del formato [x, y, z, w].
 		Restituisce gli elementi numerici di questo quaternione in un array del formato [x, y, z, w].
 		</p>
 		</p>
 
 
+		<h3>[method:Array toJSON]()</h3>
+		<p>
+		This methods defines the serialization result of [name]. Restituisce gli elementi numerici di questo quaternione in un array del formato [x, y, z, w].
+		</p>
+
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<p>
 		<p>
 		[page:BufferAttribute attribute] - l'attributo sorgente.<br />
 		[page:BufferAttribute attribute] - l'attributo sorgente.<br />

+ 6 - 6
docs/api/it/math/Triangle.html

@@ -111,15 +111,15 @@
 		Calcola il [page:Plane piano] in base al triangolo.
 		Calcola il [page:Plane piano] in base al triangolo.
 		</p>
 		</p>
 
 
-		<h3>[method:Vector2 getUV]( [param:Vector3 point], [param:Vector2 uv1], [param:Vector2 uv2], [param:Vector2 uv3], [param:Vector2 target] )</h3>
+		<h3>[method:Vector2 getInterpolation]( [param:Vector3 point], [param:Vector2 v1] | [param:Vector3 v1] | [param:Vector4 v1], [param:Vector2 v2] | [param:Vector3 v2] | [param:Vector4 v3], [param:Vector2 v3] | [param:Vector3 v3] | [param:Vector4 v3], [param:Vector2 target] )</h3>
 		<p>
 		<p>
 		[page:Vector3 point] - Il punto sul triangolo.<br />
 		[page:Vector3 point] - Il punto sul triangolo.<br />
-		[page:Vector2 uv1] - La coordinata uv del primo vertice del triangolo.<br />
-		[page:Vector2 uv2] - La coordinata uv del secondo vertice del triangolo.<br />
-		[page:Vector2 uv3] - La coordinata uv del terzo vertice del triangolo.<br />
-		[page:Vector2 target] — il risultato sarà copiato in questo Vector2.<br /><br />
+		[page:Vector2 v1] - La valore del primo vertice del triangolo.<br />
+		[page:Vector2 v2] - La valore del secondo vertice del triangolo.<br />
+		[page:Vector2 v3] - La valore del terzo vertice del triangolo.<br />
+		[page:Vector2 target] — il risultato sarà copiato in questo Vector.<br /><br />
 
 
-		Restituisce le coordinate uv per il punto specificato sul triangolo.
+		Restituisce le valore interpolato baricentricamente per il punto specificato sul triangolo.
 		</p>
 		</p>
 
 
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
 		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>

+ 5 - 0
docs/api/it/math/Vector2.html

@@ -100,6 +100,11 @@
 			Calcola l'angolo in radianti di questo vettore rispetto all'asse x positivo. 
 			Calcola l'angolo in radianti di questo vettore rispetto all'asse x positivo. 
 		</p>
 		</p>
 
 
+		<h3>[method:Float angleTo]( [param:Vector2 v] )</h3>
+		<p>
+			Restituisce l'angolo tra questo vettore e il vettore [page:Vector2 v] in radianti.
+		</p>
+
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<p>
 		<p>
 			Moltiplica questo vettore (con un 1 implicito come terza componente) per m.
 			Moltiplica questo vettore (con un 1 implicito come terza componente) per m.

+ 24 - 0
docs/api/it/objects/InstancedMesh.html

@@ -38,6 +38,16 @@
 		<h2>Proprietà</h2>
 		<h2>Proprietà</h2>
 		<p>Vedi la classe base [page:Mesh] per le proprietà comuni.</p>
 		<p>Vedi la classe base [page:Mesh] per le proprietà comuni.</p>
 
 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			Bounding box per la [name], che può essere calcolato con [page:.computeBoundingBox](). Il valore predefinito è `null`.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			Bounding sphere per la [name], che può essere calcolato con [page:.computeBoundingSphere](). Il valore predefinito è `null`.
+		</p>
+
 		<h3>[property:Integer count]</h3>
 		<h3>[property:Integer count]</h3>
 		<p>
 		<p>
 			Il numero di istanze. Il valore `count` passato nel costruttore rappresenta il numero 
 			Il numero di istanze. Il valore `count` passato nel costruttore rappresenta il numero 
@@ -70,6 +80,20 @@
 		<h2>Metodi</h2>
 		<h2>Metodi</h2>
 		<p>Vedi la classe base [page:Mesh] per i metodi comuni.</p>
 		<p>Vedi la classe base [page:Mesh] per i metodi comuni.</p>
 
 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+			Calcola il bounding box, aggiornando l'attributo [page:.boundingBox]. <br />
+			I Bounding box non sono calcolati per impostazione predefinita. Devono essere calcolati esplicitamente,
+			altrimenti sono `null`.
+		</p>
+
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+			Calcola il bounding sphere, aggiornando l'attributo [page:.boundingSphere]. <br />
+			I Bounding sphere non sono calcolati per impostazione predefinita. Devono essere calcolati esplicitamente,
+			altrimenti sono `null`.
+		</p>
+
 		<h3>[method:undefined dispose]()</h3>
 		<h3>[method:undefined dispose]()</h3>
 		<p>
 		<p>
 			Libera le risorse relative alla GPU allocate da questa istanza.
 			Libera le risorse relative alla GPU allocate da questa istanza.

+ 26 - 8
docs/api/it/objects/SkinnedMesh.html

@@ -117,6 +117,16 @@
 			La matrice di base che viene utilizzata per reimpostare le trasformazioni ossee vincolate.
 			La matrice di base che viene utilizzata per reimpostare le trasformazioni ossee vincolate.
 		</p>
 		</p>
 
 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			Bounding box per la [name], che può essere calcolato con [page:.computeBoundingBox](). Il valore predefinito è `null`.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			Bounding sphere per la [name], che può essere calcolato con [page:.computeBoundingSphere](). Il valore predefinito è `null`.
+		</p>
+
 		<h3>[property:Boolean isSkinnedMesh]</h3>
 		<h3>[property:Boolean isSkinnedMesh]</h3>
 		<p>
 		<p>
 			Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].
 			Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].
@@ -144,6 +154,20 @@
 			Questo metodo attualmente non clona correttamente un'istanza di [name]. Si prega di utilizzare [page:SkeletonUtils.clone]() nel frattempo.
 			Questo metodo attualmente non clona correttamente un'istanza di [name]. Si prega di utilizzare [page:SkeletonUtils.clone]() nel frattempo.
 		</p>
 		</p>
 
 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+		Computes the bounding box, updating [page:.boundingBox] attribute.<br />
+		Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		If an instance of [name] is animated, this method should be called per frame to compute a correct bounding box.
+		</p>
+
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+		Computes the bounding sphere, updating [page:.boundingSphere] attribute.<br />
+		Bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		If an instance of [name] is animated, this method should be called per frame to compute a correct bounding sphere.
+		</p>
+
 		<h3>[method:undefined normalizeSkinWeights]()</h3>
 		<h3>[method:undefined normalizeSkinWeights]()</h3>
 		<p>
 		<p>
 			Normalizza i pesi della skin.
 			Normalizza i pesi della skin.
@@ -154,15 +178,9 @@
 			Questo metodo imposta la skinned mesh nella posa di riposo (reimposta la posa).
 			Questo metodo imposta la skinned mesh nella posa di riposo (reimposta la posa).
 		</p>
 		</p>
 
 
-		<h3>[method:Vector3 boneTransform]( [param:Integer index], [param:Vector3 target] )</h3>
+		<h3>[method:Vector3 applyBoneTransform]( [param:Integer index], [param:Vector3 vector] )</h3>
 		<p>
 		<p>
-			Calcola la posizione del vertice in corrispondenza dell'indice specificato rispetto alle attuali trasformazioni ossee.
-			Il vettore target deve essere inizializzato con le coordinate del vertice prima della trasformazione:
-		<code>
-const target = new THREE.Vector3();
-target.fromBufferAttribute( mesh.geometry.attributes.position, index );
-mesh.boneTransform( index, target );
-		</code>
+		Applies the bone transform associated with the given index to the given position vector. Returns the updated vector.
 		</p>
 		</p>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 5 - 1
docs/api/it/renderers/WebGLRenderer.html

@@ -103,7 +103,11 @@
 			Può essere utile disabilitare questo controllo in produzione per aumentare le prestazioni.
 			Può essere utile disabilitare questo controllo in produzione per aumentare le prestazioni.
 			È fortemente raccomandato mantenere questi controlli attivi durante lo sviluppo.
 			È fortemente raccomandato mantenere questi controlli attivi durante lo sviluppo.
 			Se lo shader non si compila e non si collega - non funzionerà e il materiale associato non verrà visualizzato.
 			Se lo shader non si compila e non si collega - non funzionerà e il materiale associato non verrà visualizzato.
-			Il valore predefinito è `true`.
+			Il valore predefinito è `true`.</br>
+		- [page:Function onShaderError]( gl, program, glVertexShader, glFragmentShader ):
+			A callback function that can be used for custom error reporting. The callback receives the WebGL context, an instance of WebGLProgram as well 
+			two instances of WebGLShader representing the vertex and fragment shader. Assigning a custom function disables the default error reporting. 
+			Default is `null`.
 		</p>
 		</p>
 
 
 		<h3>[property:Object capabilities]</h3>
 		<h3>[property:Object capabilities]</h3>

+ 5 - 27
docs/api/it/textures/Texture.html

@@ -79,6 +79,11 @@
 			Vedi la pagina [page:Textures texture constants] per altri tipi di mapping.
 			Vedi la pagina [page:Textures texture constants] per altri tipi di mapping.
 		</p>
 		</p>
 
 
+		<h3>[property:Integer channel]</h3>
+		<p>
+			Lets you select the uv attribute to map the texture to. `0` for `uv` and `1` for `uv2`.
+		</p>
+
 		<h3>[property:number wrapS]</h3>
 		<h3>[property:number wrapS]</h3>
 		<p>
 		<p>
 			Questo definisce come la texture è wrappata orizzontalmente e corrisponde a *U* nel mapping UV.<br />
 			Questo definisce come la texture è wrappata orizzontalmente e corrisponde a *U* nel mapping UV.<br />
@@ -152,32 +157,6 @@
 			Di quanto una singola ripetizione della texture è sfalsata dall'inizio, in ciascuna direzione U e V.
 			Di quanto una singola ripetizione della texture è sfalsata dall'inizio, in ciascuna direzione U e V.
 			L'intervallo tipico è compreso tra `0.0` e `1.0`.
 			L'intervallo tipico è compreso tra `0.0` e `1.0`.
 		</p>
 		</p>
-		<p>
-			I tipi di texture seguenti condividono il `primo` canale uv nel motore. L'impostazione dell'offset (e della ripetizione) viene valutata
-			in base alle seguenti priorità e quindi condivisa da tali texture:
-			<ol>
-				<li>color map</li>
-				<li>specular map</li>
-				<li>displacement map</li>
-				<li>normal map</li>
-				<li>bump map</li>
-				<li>roughness map</li>
-				<li>metalness map</li>
-				<li>alpha map</li>
-				<li>emissive map</li>
-				<li>clearcoat map</li>
-				<li>clearcoat normal map</li>
-				<li>clearcoat roughnessMap map</li>
-			</ol>
-		</p>
-		<p>
-			I tipi di texture seguenti condividono il `secondo` canale uv nel motore. L'impostazione dell'offset (e della ripetizione) viene valutata
-			in base alle seguenti priorità e quindi condivisa da tali texture:
-			<ol>
-				<li>ao map</li>
-				<li>light map</li>
-			</ol>
-		</p>
 
 
 		<h3>[property:Vector2 repeat]</h3>
 		<h3>[property:Vector2 repeat]</h3>
 		<p>
 		<p>
@@ -185,7 +164,6 @@
 			impostata su un valore maggiore di 1 in entrambe le direzioni, anche il parametro Wrap corrispondente
 			impostata su un valore maggiore di 1 in entrambe le direzioni, anche il parametro Wrap corrispondente
 			deve essere impostato su [page:Textures THREE.RepeatWrapping] o [page:Textures THREE.MirroredRepeatWrapping] per ottenere l'effetto
 			deve essere impostato su [page:Textures THREE.RepeatWrapping] o [page:Textures THREE.MirroredRepeatWrapping] per ottenere l'effetto
 			di piastrellatura desiderato.
 			di piastrellatura desiderato.
-			L'impostazione di diversi valori di ripetizione per le texture è limitata allo stesso modo di [page:.offset].
 		</p>
 		</p>
 
 
 		<h3>[property:number rotation]</h3>
 		<h3>[property:number rotation]</h3>

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

@@ -175,6 +175,7 @@
 			[page:Object3D object] – 교차된 객체<br />
 			[page:Object3D object] – 교차된 객체<br />
 			[page:Vector2 uv] - 교차점의 U,V 좌표<br />
 			[page:Vector2 uv] - 교차점의 U,V 좌표<br />
 			[page:Vector2 uv2] - 교차점의 U,V 2차 좌표<br />
 			[page:Vector2 uv2] - 교차점의 U,V 2차 좌표<br />
+			[page:Vector3 normal] - 교차점에서 보간된 법선 벡터<br />
 			[page:Integer instanceId] – InstancedMesh에 교차하는 레이의 인스턴스 인덱스 넘버입니다.
 			[page:Integer instanceId] – InstancedMesh에 교차하는 레이의 인스턴스 인덱스 넘버입니다.
 		</p>
 		</p>
 		<p>
 		<p>

+ 11 - 13
docs/api/zh/core/BufferAttribute.html

@@ -16,11 +16,10 @@
 			在 BufferAttribute 中,数据被存储为任意长度的矢量(通过[page:BufferAttribute.itemSize itemSize]进行定义),下列函数如无特别说明,
 			在 BufferAttribute 中,数据被存储为任意长度的矢量(通过[page:BufferAttribute.itemSize itemSize]进行定义),下列函数如无特别说明,
 			函数参数中的index会自动乘以矢量长度进行计算。
 			函数参数中的index会自动乘以矢量长度进行计算。
 
 
-			When working with vector-like data, the <i>.fromBufferAttribute( attribute, index )</i>
-			helper methods on [page:Vector2.fromBufferAttribute Vector2],
-			[page:Vector3.fromBufferAttribute Vector3],
-			[page:Vector4.fromBufferAttribute Vector4], and
-			[page:Color.fromBufferAttribute Color] classes may be helpful.
+			当想要处理类似向量的数据时,
+			可以使用在[page:Vector2.fromBufferAttribute Vector2],[page:Vector3.fromBufferAttribute Vector3],
+			[page:Vector4.fromBufferAttribute Vector4]以及[page:Color.fromBufferAttribute Color]这些类中的<i>.fromBufferAttribute( attribute, index )</i>
+			方法来更为便捷地处理。
 		</p>
 		</p>
 
 
 		<h2>构造函数</h2>
 		<h2>构造函数</h2>
@@ -59,7 +58,7 @@
 
 
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<p>
 		<p>
-			Read-only flag to check if a given object is of type [name].
+			用于判断对象是否为[name]类型的只读标记.
 		</p>
 		</p>
 
 
 		<h3>[property:Integer itemSize]</h3>
 		<h3>[property:Integer itemSize]</h3>
@@ -96,9 +95,8 @@
 
 
 		<h3>[property:Usage usage]</h3>
 		<h3>[property:Usage usage]</h3>
 		<p>
 		<p>
-			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
-			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
-			Default is [page:BufferAttributeUsage StaticDrawUsage]. See usage [page:BufferAttributeUsage constants] for all possible values.
+			为输入的数据定义最优的预估使用方式。等同于在[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]()
+			中的*usage*参数。默认为[page:BufferAttributeUsage StaticDrawUsage]。在usage [page:BufferAttributeUsage constants]中查看可用值。
 		</p>
 		</p>
 
 
 		<h3>[property:Integer version]</h3>
 		<h3>[property:Integer version]</h3>
@@ -108,16 +106,16 @@
 		<h2>方法</h2>
 		<h2>方法</h2>
 
 
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
-		<p>Applies matrix [page:Matrix3 m] to every Vector3 element of this BufferAttribute.</p>
+		<p>将矩阵[page:Matrix3 m]应用此BufferAttribute中的每一个Vector3元素中。</p>
 
 
 		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
 		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
-		<p>Applies matrix [page:Matrix4 m] to every Vector3 element of this BufferAttribute.</p>
+		<p>将矩阵[page:Matrix4 m]应用到此BufferAttribute的每一个Vector3元素中</p>
 
 
 		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
 		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
-		<p>Applies normal matrix [page:Matrix3 m] to every Vector3 element of this BufferAttribute.</p>
+		<p>将正规矩阵[page:Matrix3 m]应用到此BufferAttribute的每一个Vector3元素中</p>
 
 
 		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
 		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
-		<p>Applies matrix [page:Matrix4 m] to every Vector3 element of this BufferAttribute, interpreting the elements as a direction vectors.</p>
+		<p>将矩阵[page:Matrix4 m]应用到此BufferAttribute的每一个Vector3元素中,并将所有元素解释为方向向量。</p>
 
 
 		<h3>[method:BufferAttribute clone]() </h3>
 		<h3>[method:BufferAttribute clone]() </h3>
 		<p>返回该 BufferAttribute 的拷贝。</p>
 		<p>返回该 BufferAttribute 的拷贝。</p>

+ 7 - 9
docs/api/zh/core/BufferGeometry.html

@@ -125,20 +125,19 @@
 
 
 		<h3>[property:Boolean isBufferGeometry]</h3>
 		<h3>[property:Boolean isBufferGeometry]</h3>
 		<p>
 		<p>
-			Read-only flag to check if a given object is of type [name].
+			用于判断对象是否为[name]的只读标记.
 		</p>
 		</p>
 
 
 		<h3>[property:Object morphAttributes]</h3>
 		<h3>[property:Object morphAttributes]</h3>
 		<p>
 		<p>
 			存储 [page:BufferAttribute] 的 Hashmap,存储了几何体 morph targets 的细节信息。<br />
 			存储 [page:BufferAttribute] 的 Hashmap,存储了几何体 morph targets 的细节信息。<br />
-			Note: Once the geometry has been rendered, the morph attribute data cannot be changed. You will have to call [page:.dispose](), and create a new instance of [name].
+			注意:当这个geometry渲染之后,morph attribute 数据无法更改。你需要调用[page:.dispose](),并重新创建一个新的[name]实例。
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean morphTargetsRelative]</h3>
 		<h3>[property:Boolean morphTargetsRelative]</h3>
 		<p>
 		<p>
-			Used to control the morph target behavior; when set to true, the morph target data is treated as relative offsets, rather than as absolute positions/normals.
-
-			Default is *false*.
+			用于控制morph target的行为,如果设置为 `true`,morph target数据作为相对的偏移量,而非绝对的位置/法向。
+			默认为*false*。
 		</p>
 		</p>
 
 
 		<h3>[property:String name]</h3>
 		<h3>[property:String name]</h3>
@@ -202,9 +201,8 @@
 
 
 		<h3>[method:undefined computeTangents]()</h3>
 		<h3>[method:undefined computeTangents]()</h3>
 		<p>
 		<p>
-		Calculates and adds a tangent attribute to this geometry.<br />
-		The computation is only supported for indexed geometries and if position, normal, and uv attributes are defined. When using a tangent space normal map, prefer the MikkTSpace algorithm provided by
-		[page:BufferGeometryUtils.computeMikkTSpaceTangents] instead.
+		计算并向此geometry中添加tangent attribute。<br />
+		只支持索引化的几何体对象,并且必须拥有position(位置),normal(法向)和 uv attributes。如果使用了切线空间法向贴图,最好使用[page:BufferGeometryUtils.computeMikkTSpaceTangents]中的MikkTSpace算法。
 		</p>
 		</p>
 
 
 		<h3>[method:undefined computeVertexNormals]()</h3>
 		<h3>[method:undefined computeVertexNormals]()</h3>
@@ -223,7 +221,7 @@
 		<p>返回缓存相关的 [page:.index]。</p>
 		<p>返回缓存相关的 [page:.index]。</p>
 
 
 		<h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
 		<h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
-		<p>Returns *true* if the attribute with the specified name exists.</p>
+		<p>检查是否存在有指定名称的attribute,如果有返回*true*。</p>
 
 
 		<h3>[method:this lookAt] ( [param:Vector3 vector] )</h3>
 		<h3>[method:this lookAt] ( [param:Vector3 vector] )</h3>
 		<p>
 		<p>

+ 27 - 36
docs/api/zh/core/GLBufferAttribute.html

@@ -10,28 +10,21 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-			This buffer attribute class does not construct a VBO. Instead, it uses
-			whatever VBO is passed in constructor and can later be altered via the
-			*buffer* property.<br /><br />
-			It is required to pass additional params alongside the VBO. Those are:
-			the GL context, the GL data type, the number of components per vertex,
-			the number of bytes per component, and the number of vertices.<br /><br />
-			The most common use case for this class is when some kind of GPGPU
-			calculation interferes or even produces the VBOs in question.
+			此缓冲区属性类不构造 VBO。相反,它使用在构造函数中传递的任何 VBO,以后可以通过 缓冲区属性进行更改。<br /><br />
+			它需要与 VBO 一起传递额外的参数。它们是:GL 上下文、GL 数据类型、每个顶点的组件数、每个组件的字节数和顶点数。<br /><br />
+			此类最常见的用例是当某种 GPGPU 计算干扰甚至产生有问题的 VBO 时。
 		</p>
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造方法(Constructor)</h2>
 		<h3>[name]( [param:WebGLBuffer buffer], [param:GLenum type], [param:Integer itemSize], [param:Integer elementSize], [param:Integer count] )</h3>
 		<h3>[name]( [param:WebGLBuffer buffer], [param:GLenum type], [param:Integer itemSize], [param:Integer elementSize], [param:Integer count] )</h3>
 		<p>
 		<p>
-		*buffer* — Must be a [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer].
+		*buffer* — 必须是 [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer].
 		<br />
 		<br />
-		*type* — One of [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types WebGL Data Types].
+		*type* — [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types WebGL数据类型]之一.
 		<br />
 		<br />
-		*itemSize* — The number of values of the array that should be associated with
-		a particular vertex. For instance, if this
-		attribute is storing a 3-component vector (such as a position, normal, or color), then itemSize should be 3.
+		*itemSize* — 应与特定顶点关联的数组值的数量。例如,如果此属性存储一个3分量向量(例如位置、法线或颜色),则itemSize应为 3。
 		<br />
 		<br />
-		*elementSize* — 1, 2 or 4. The corresponding size (in bytes) for the given "type" param.
+		*elementSize* — 1、2 或 4。给定的相应大小(以字节为单位)“类型”参数。
 		<ul>
 		<ul>
 			<li>gl.FLOAT: 4</li>
 			<li>gl.FLOAT: 4</li>
 			<li>gl.UNSIGNED_SHORT: 2</li>
 			<li>gl.UNSIGNED_SHORT: 2</li>
@@ -41,79 +34,77 @@
 			<li>gl.BYTE: 1</li>
 			<li>gl.BYTE: 1</li>
 			<li>gl.UNSIGNED_BYTE: 1</li>
 			<li>gl.UNSIGNED_BYTE: 1</li>
 		</ul>
 		</ul>
-		*count* — The expected number of vertices in VBO.
+		*count* — VBO 中预期的顶点数。
 		</p>
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>特性(Properties</h2>
 
 
 		<h3>[property:WebGLBuffer buffer]</h3>
 		<h3>[property:WebGLBuffer buffer]</h3>
 		<p>
 		<p>
-			The current [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer] instance.
+			当前[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer]的实例.
 		</p>
 		</p>
 
 
 		<h3>[property:Integer count]</h3>
 		<h3>[property:Integer count]</h3>
 		<p>
 		<p>
-			The expected number of vertices in VBO.
+			VBO 中的预期顶点数。
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean isGLBufferAttribute]</h3>
 		<h3>[property:Boolean isGLBufferAttribute]</h3>
 		<p>
 		<p>
-			Read-only. Always *true*.
+			只读。值永远为"true"。
 		</p>
 		</p>
 
 
 		<h3>[property:Integer itemSize]</h3>
 		<h3>[property:Integer itemSize]</h3>
 		<p>
 		<p>
-			How many values make up each item (vertex).
+			每个项目(顶点)组成多少个值。
 		</p>
 		</p>
 
 
 		<h3>[property:Integer elementSize]</h3>
 		<h3>[property:Integer elementSize]</h3>
 		<p>
 		<p>
-			Stores the corresponding size in bytes for the current *type* property value.
+			存储当前类型属性值的相应大小(以字节为单位)。
 		</p>
 		</p>
 		<p>
 		<p>
-			See above (constructor) for a list of known type sizes.
+			有关已知类型大小的列表,请参见上面的(构造函数)。
 		</p>
 		</p>
 
 
 		<h3>[property:String name]</h3>
 		<h3>[property:String name]</h3>
 		<p>
 		<p>
-			该 attribute 实例的别名,默认值为空字符串。
+			该attribute实例的别名,默认值为空字符串。
 		</p>
 		</p>
 
 
 		<h3>[property:GLenum type]</h3>
 		<h3>[property:GLenum type]</h3>
 		<p>
 		<p>
-			A [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types WebGL Data Type]
-			describing the underlying VBO contents.
+			描述底层 VBO 内容的[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types WebGL数据类型]
 		</p>
 		</p>
 		<p>
 		<p>
-			Set this property together with *elementSize*. The recommended way is
-			using the *setType* method.
+			将此属性与elementSize一起设置。推荐的方法是使用setType方法。
 		</p>
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法(Methods</h2>
 
 
 		<h3>[method:this setBuffer]( buffer ) </h3>
 		<h3>[method:this setBuffer]( buffer ) </h3>
-		<p>Sets the *buffer* property.</p>
+		<p>设置缓冲区属性。</p>
 
 
 		<h3>[method:this setType]( type, elementSize ) </h3>
 		<h3>[method:this setType]( type, elementSize ) </h3>
-		<p>Sets the both *type* and *elementSize* properties.</p>
+		<p>设置type和elementSize属性。</p>
 
 
 		<h3>[method:this setItemSize]( itemSize ) </h3>
 		<h3>[method:this setItemSize]( itemSize ) </h3>
-		<p>Sets the *itemSize* property.</p>
+		<p>设置itemSize属性。</p>
 
 
 		<h3>[method:this setCount]( count ) </h3>
 		<h3>[method:this setCount]( count ) </h3>
-		<p>Sets the *count* property.</p>
+		<p>设置计数属性。</p>
 
 
 		<h3>[property:Integer version]</h3>
 		<h3>[property:Integer version]</h3>
 		<p>
 		<p>
-		A version number, incremented every time the needsUpdate property is set to true.
+		版本号,每次将needsUpdate属性设置为true时递增。
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean needsUpdate]</h3>
 		<h3>[property:Boolean needsUpdate]</h3>
 		<p>
 		<p>
-		Default is *false*. Setting this to true increments [page:GLBufferAttribute.version version].
+			默认为假。将此设置为 true 增量[page:GLBufferAttribute.version 版本]
 		</p>
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码(Source</h2>
 		<p>
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		</p>
 		</p>

+ 16 - 20
docs/api/zh/core/Object3D.html

@@ -30,7 +30,7 @@
 	<h2>属性</h2>
 	<h2>属性</h2>
 
 
 	<h3>[property:AnimationClip animations]</h3>
 	<h3>[property:AnimationClip animations]</h3>
-	<p>Array with object's animation clips.</p>
+	<p>三维物体所属的动画剪辑数组.</p>
 
 
 	<h3>[property:Boolean castShadow]</h3>
 	<h3>[property:Boolean castShadow]</h3>
 	<p>对象是否被渲染到阴影贴图中。默认值为*false*。</p>
 	<p>对象是否被渲染到阴影贴图中。默认值为*false*。</p>
@@ -39,17 +39,17 @@
 	<p>含有对象的子级的数组。请参阅[page:Group]来了解将手动对象进行分组的相关信息。</p>
 	<p>含有对象的子级的数组。请参阅[page:Group]来了解将手动对象进行分组的相关信息。</p>
 
 
 	<h3>[property:Material customDepthMaterial]</h3>
 	<h3>[property:Material customDepthMaterial]</h3>
-	<p>Custom depth material to be used when rendering to the depth map. Can only be used in context of meshes.
-	When shadow-casting with a [page:DirectionalLight] or [page:SpotLight], if you are modifying vertex positions in the vertex shader you must specify a customDepthMaterial for proper shadows. Default is *undefined*.
+	<p>在渲染到深度图的时候所用的自定义深度材质。 只能在网格中使用。
+	当使用[page:DirectionalLight](平行光)或者[page:SpotLight](聚光灯光)生成影子的时候, 如果你调整过顶点着色器中的顶点位置,就需要定义一个自定义深度材质来生成正确的影子。默认为*undefined*.
 	</p>
 	</p>
 
 
 	<h3>[property:Material customDistanceMaterial]</h3>
 	<h3>[property:Material customDistanceMaterial]</h3>
-	<p>与[page:.customDepthMaterial customDepthMaterial]相同,但与[page:PointLight]一起使用。默认值为*undefined*。
+	<p>与[page:.customDepthMaterial customDepthMaterial]相同,但与[page:PointLight](点光源)一起使用。默认值为*undefined*。
 	</p>
 	</p>
 
 
 	<h3>[property:Boolean frustumCulled]</h3>
 	<h3>[property:Boolean frustumCulled]</h3>
 	<p>
 	<p>
-		When this is set, it checks every frame if the object is in the frustum of the camera before rendering the object. If set to `false` the object gets rendered every frame even if it is not in the frustum of the camera. Default is `true`.
+		当这个设置了的时候,每一帧渲染前都会检测这个物体是不是在相机的视椎体范围内。 如果设置为`false` 物体不管是不是在相机的视椎体范围内都会渲染。默认为`true`。
 	</p>
 	</p>
 
 
 	<h3>[property:Integer id]</h3>
 	<h3>[property:Integer id]</h3>
@@ -57,14 +57,13 @@
 
 
 		<h3>[property:Boolean isObject3D]</h3>
 		<h3>[property:Boolean isObject3D]</h3>
 		<p>
 		<p>
-			Read-only flag to check if a given object is of type [name].
+			查看所给对象是不是[name]类型的只读标记.
 		</p>
 		</p>
 
 
 	<h3>[property:Layers layers]</h3>
 	<h3>[property:Layers layers]</h3>
 	<p>
 	<p>
 		物体的层级关系。
 		物体的层级关系。
-		物体只有和一个正在使用的[page:Camera]至少在同一个层时才可见。This property can also be used to filter out
-		unwanted objects in ray-intersection tests when using [page:Raycaster].
+		物体只有和一个正在使用的[page:Camera]至少在同一个层时才可见。当使用[page:Raycaster]进行射线检测的时候此项属性可以用于过滤不参与检测的物体.
 	</p>
 	</p>
 
 
 	<h3>[property:Matrix4 matrix]</h3>
 	<h3>[property:Matrix4 matrix]</h3>
@@ -82,9 +81,8 @@
 
 
 	<h3>[property:Boolean matrixWorldAutoUpdate]</h3>
 	<h3>[property:Boolean matrixWorldAutoUpdate]</h3>
 	<p>
 	<p>
-	If set, then the renderer checks every frame if the object and its children need matrix updates.
-	When it isn't, then you have to maintain all matrices in the object and its children yourself.
-	Default is [page:Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE] (true).
+	默认为 true. 当设置的时候,渲染器在每一帧都会检查物体自身以及它的自带是否需要更新世界变换矩阵。
+	如果不需要的话它自身以及它的子代的所有世界变换矩阵都需要你来维护。
 	</p>
 	</p>
 
 
 	<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
 	<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
@@ -114,9 +112,8 @@
 		使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。
 		使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。
 	</p>
 	</p>
 	<p>
 	<p>
-	Please notice that this callback is only executed for *renderable* 3D objects. Meaning 3D objects which define their visual
-	appearance with geometries and materials like instances of [page:Mesh], [page:Line], [page:Points] or [page:Sprite].
-	Instances of [page:Object3D], [page:Group] or [page:Bone] are not renderable and thus this callback is not executed for such objects.
+	注意此回调函数只会在*可渲染*的3D物体上执行。可渲染的3D物体指的是那种拥有视觉表现的、定义了几何体与材质的物体,例如像是[page:Mesh]、[page:Line]、[page:Points] 或者[page:Sprite]。
+	[page:Object3D]、 [page:Group] 或者 [page:Bone] 这些是不可渲染的物体,因此此回调函数不会在这样的物体上执行。
 	</p>
 	</p>
 
 
 	<h3>[property:Function onBeforeRender]</h3>
 	<h3>[property:Function onBeforeRender]</h3>
@@ -125,9 +122,8 @@
 		使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。
 		使用以下参数来调用此函数:renderer,scene,camera,geometry,material,group。
 	</p>
 	</p>
 	<p>
 	<p>
-	Please notice that this callback is only executed for *renderable* 3D objects. Meaning 3D objects which define their visual
-	appearance with geometries and materials like instances of [page:Mesh], [page:Line], [page:Points] or [page:Sprite].
-	Instances of [page:Object3D], [page:Group] or [page:Bone] are not renderable and thus this callback is not executed for such objects.
+	注意此回调函数只会在*可渲染*的3D物体上执行。可渲染的3D物体指的是那种拥有视觉表现的、定义了几何体与材质的物体,例如像是[page:Mesh]、[page:Line]、[page:Points] 或者[page:Sprite]。
+	[page:Object3D]、 [page:Group] 或者 [page:Bone] 这些是不可渲染的物体,因此此回调函数不会在这样的物体上执行。
 	</p>
 	</p>
 
 
 	<h3>[property:Object3D parent]</h3>
 	<h3>[property:Object3D parent]</h3>
@@ -452,10 +448,10 @@
 
 
 	<h3>[method:undefined updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
 	<h3>[method:undefined updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
 	<p>
 	<p>
-		updateParents - recursively updates global transform of ancestors.<br />
-		updateChildren - recursively updates global transform of descendants.<br /><br />
+		updateParents - 递归更新物体的所有祖先的全局变换.<br />
+		updateChildren - 递归更新物体的所有后代的全局变换.<br /><br />
 
 
-		Updates the global transform of the object.
+		更新物体的全局变换。
 	</p>
 	</p>
 
 
 	<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
 	<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>

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

@@ -180,6 +180,7 @@
 			[page:Object3D object] —— 相交的物体<br />
 			[page:Object3D object] —— 相交的物体<br />
 			[page:Vector2 uv] —— 相交部分的点的UV坐标。<br />
 			[page:Vector2 uv] —— 相交部分的点的UV坐标。<br />
 			[page:Vector2 uv2] —— Second set of U,V coordinates at point of intersection<br />
 			[page:Vector2 uv2] —— Second set of U,V coordinates at point of intersection<br />
+			[page:Vector3 normal] - 交点处的内插法向量<br />
 			[page:Integer instanceId] – The index number of the instance where the ray intersects the InstancedMesh
 			[page:Integer instanceId] – The index number of the instance where the ray intersects the InstancedMesh
 		</p>
 		</p>
 		<p>
 		<p>

+ 23 - 26
docs/api/zh/extras/PMREMGenerator.html

@@ -10,67 +10,64 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-			This class generates a Prefiltered, Mipmapped Radiance Environment Map (PMREM) from a cubeMap environment texture.
-			This allows different levels of blur to be quickly accessed based on material roughness. It is packed into a special
-			CubeUV format that allows us to perform custom interpolation so that we can support nonlinear formats such as RGBE.
-			Unlike a traditional mipmap chain, it only goes down to the LOD_MIN level (above), and then creates extra even more
-			filtered 'mips' at the same LOD_MIN resolution, associated with higher roughness levels. In this way we maintain
-			resolution to smoothly interpolate diffuse lighting while limiting sampling computation.
+			此类从立方体贴图环境纹理生成经过预过滤的Mipmapped辐射环境贴图(PMREM)。
+			这允许根据材料粗糙度快速访问不同级别的模糊。
+			它被打包成一种特殊的CubeUV格式,允许我们执行自定义插值,以便我们可以支持RGBE等非线性格式。
+			与传统的mipmap链不同,它只下降到LOD_MIN级别(上图),然后以相同的 LOD_MIN 分辨率创建额外的甚至更多的过滤“mips”,并与更高的粗糙度级别相关联。
+			通过这种方式,我们保持分辨率以平滑地插入漫射照明,同时限制采样计算。
 		</p>
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造器(Constructor</h2>
 
 
 		<h3>[name]( [param:WebGLRenderer renderer] )</h3>
 		<h3>[name]( [param:WebGLRenderer renderer] )</h3>
 		<p>
 		<p>
-		This constructor creates a new [name].
+			此构造函数创建一个新的[name]。
 		</p>
 		</p>
 
 
-		<h2>Methods</h2>
+		<h2>方法(Methods</h2>
 
 
 		<h3>[method:WebGLRenderTarget fromScene]( [param:Scene scene], [param:Number sigma], [param:Number near], [param:Number far] )</h3>
 		<h3>[method:WebGLRenderTarget fromScene]( [param:Scene scene], [param:Number sigma], [param:Number near], [param:Number far] )</h3>
 		<p>
 		<p>
-			[page:Scene scene] - The given scene.<br>
-			[page:Number sigma] - (optional) Specifies a blur radius in radians to be applied to the scene before PMREM generation. Default is *0*.<br>
-			[page:Number near] - (optional) The near plane value. Default is *0.1*.<br>
-			[page:Number far] - (optional) The far plane value. Default is *100*.<br /><br />
+			[page:Scene scene] - 给定的场景<br>
+			[page:Number sigma] - (可选)指定在PMREM生成之前应用于场景的以弧度为单位的模糊半径。默认为0。<br>
+			[page:Number near] - (可选)近平面值,默认值为0.1。<br>
+			[page:Number far] - (可选)远平面值。默认值为100。<br /><br />
 
 
-			Generates a PMREM from a supplied Scene, which can be faster than using an image if networking bandwidth is low.
-			Optional near and far planes ensure the scene is rendered in its entirety (the cubeCamera is placed at the origin).
+			从提供的场景生成PMREM,如果网络带宽较低,这可能比使用图像更快。可选的近平面和远平面确保场景被完整渲染(cubeCamera放置在原点)。
 		</p>
 		</p>
 
 
 		<h3>[method:WebGLRenderTarget fromEquirectangular]( [param:Texture equirectangular] )</h3>
 		<h3>[method:WebGLRenderTarget fromEquirectangular]( [param:Texture equirectangular] )</h3>
 		<p>
 		<p>
-			[page:Texture equirectangular] - The equirectangular texture.<br /><br />
+			[page:Texture equirectangular] - equirectangular纹理。<br /><br />
 
 
-			Generates a PMREM from an equirectangular texture, which can be either LDR or HDR.
-			The ideal input image size is 1k (1024 x 512), as this matches best with the 256 x 256 cubemap output.
+			从等距柱状纹理生成PMREM,可以是LDR或HDR。理想的输入图像大小为1k(1024x512),因为这与256x256立方体贴图输出最匹配。
 		</p>
 		</p>
 
 
 		<h3>[method:WebGLRenderTarget fromCubemap]( [param:CubeTexture cubemap] )</h3>
 		<h3>[method:WebGLRenderTarget fromCubemap]( [param:CubeTexture cubemap] )</h3>
 		<p>
 		<p>
-			[page:CubeTexture cubemap] - The cubemap texture.<br /><br />
+			[page:CubeTexture cubemap] - 立方体贴图纹理。<br /><br />
 
 
-			Generates a PMREM from an cubemap texture, which can be either LDR or HDR.
-			The ideal input cube size is 256 x 256, as this matches best with the 256 x 256 cubemap output.
+			从立方体贴图纹理生成PMREM,可以是LDR或HDR。理想的输入立方体大小为256x256,因为这与 256x256立方体贴图输出最匹配。
 		</p>
 		</p>
 
 
 		<h3>[method:undefined compileCubemapShader]()</h3>
 		<h3>[method:undefined compileCubemapShader]()</h3>
 		<p>
 		<p>
-			Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during your texture's network fetch for increased concurrency.
+			预编译立方体贴图着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。
 		</p>
 		</p>
 
 
 		<h3>[method:undefined compileEquirectangularShader]()</h3>
 		<h3>[method:undefined compileEquirectangularShader]()</h3>
 		<p>
 		<p>
-			Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during your texture's network fetch for increased concurrency.
+			预编译等距柱状着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。
 		</p>
 		</p>
 
 
 		<h3>[method:undefined dispose]()</h3>
 		<h3>[method:undefined dispose]()</h3>
 		<p>
 		<p>
-			Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class, so you should not need more than one
-			PMREMGenerator object. If you do, calling dispose() on one of them will cause any others to also become unusable.
+			处理PMREMGenerator的内部存储器。
+			请注意,PMREMGenerator是一个静态类,因此您不需要多个PMREMGenerator对象。
+			如果这样做,对其中之一调用dispose()将导致任何其他对象也变得不可用。
 		</p>
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码(Source</h2>
 
 
 		<p>
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 5 - 0
docs/api/zh/materials/LineBasicMaterial.html

@@ -79,6 +79,11 @@
 			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 		</p>
 
 
+		<h3>[property:Texture map]</h3>
+		<p>
+			Sets the color of the lines using data from a [page:Texture].
+		</p>
+
 		<h2>方法(Methods)</h2>
 		<h2>方法(Methods)</h2>
 		<p>共有方法请参见其基类[page:Material]。</p>
 		<p>共有方法请参见其基类[page:Material]。</p>
 
 

+ 6 - 6
docs/api/zh/materials/Material.html

@@ -109,11 +109,11 @@
 
 
 <h3>[property:Boolean forceSinglePass]</h3>
 <h3>[property:Boolean forceSinglePass]</h3>
 <p>
 <p>
-Whether double-sided, transparent objects should be rendered with a single pass or not. Default is `false`.<br /><br />
+决定双面透明的东西是否强制使用单通道渲染,默认为`false`。<br /><br />
 
 
-The engine renders double-sided, transparent objects with two draw calls (back faces first, then front faces) to mitigate transparency artifacts.
-There are scenarios however where this approach produces no quality gains but still doubles draw calls e.g. when rendering flat vegetation like grass sprites. 
-In these cases, set the `forceSinglePass` flag to `false` to disable the two pass rendering to avoid performance issues.
+为了减少一些半透明物体的渲染错误,此引擎调用两次绘制来渲染渲染双面透明的东西。
+但是此方案可能会导致在某些情况下使绘制调用次数翻倍,例如渲染一些平面的植物例如草精灵之类的。
+在这些情况下,将`forceSinglePass`设置为`true`来使用单通道渲染来避免性能问题。
 </p>
 </p>
 
 
 <h3>[property:Boolean isMaterial]</h3>
 <h3>[property:Boolean isMaterial]</h3>
@@ -267,7 +267,7 @@ In these cases, set the `forceSinglePass` flag to `false` to disable the two pas
 <h3>[property:Boolean vertexColors]</h3>
 <h3>[property:Boolean vertexColors]</h3>
 <p>
 <p>
 是否使用顶点着色。默认值为false。
 是否使用顶点着色。默认值为false。
-The engine supports RGB and RGBA vertex colors depending on whether a three (RGB) or four (RGBA) component color buffer attribute is used.
+此引擎支持RGB或者RGBA两种顶点颜色,取决于缓冲 attribute 使用的是三分量(RGB)还是四分量(RGBA)。
 </p>
 </p>
 
 
 <h3>[property:Boolean visible]</h3>
 <h3>[property:Boolean visible]</h3>
@@ -301,7 +301,7 @@ The engine supports RGB and RGBA vertex colors depending on whether a three (RGB
 
 
 <h3>[method:String customProgramCacheKey]()</h3>
 <h3>[method:String customProgramCacheKey]()</h3>
 <p>
 <p>
-当用到onBeforeCompile回调的时候,这个回调函数可以用来定义在onBeforeCompile中使用的配置项,这样three.js就可以根据这个回调返回的字符串来判定使用一个缓存的编译好的着色器代码还是根据需求重新编译一新的着色器代码。
+当用到onBeforeCompile回调的时候,这个回调函数可以用来定义在onBeforeCompile中使用的配置项,这样three.js就可以根据这个回调返回的字符串来判定使用一个缓存的编译好的着色器代码还是根据需求重新编译一新的着色器代码。
 </p>
 </p>
 
 
 <p>
 <p>

+ 0 - 15
docs/api/zh/materials/MeshDistanceMaterial.html

@@ -73,27 +73,12 @@
 		<p> 位移贴图在网格顶点上的偏移量。如果没有设置位移贴图,则不会应用此值。默认值为0。
 		<p> 位移贴图在网格顶点上的偏移量。如果没有设置位移贴图,则不会应用此值。默认值为0。
 		</p>
 		</p>
 
 
-		<h3>[property:Float farDistance]</h3>
-		<p>
-			The far value of the point light's internal shadow camera.
-		</p>
-
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
 		<p>
 		<p>
 			颜色贴图。可以选择包括一个alpha通道,通常与[page:Material.transparent .transparent]
 			颜色贴图。可以选择包括一个alpha通道,通常与[page:Material.transparent .transparent]
 			或[page:Material.alphaTest .alphaTest]。默认为null。
 			或[page:Material.alphaTest .alphaTest]。默认为null。
 		</p>
 		</p>
 
 
-		<h3>[property:Float nearDistance]</h3>
-		<p>
-			The near value of the point light's internal shadow camera.
-		</p>
-
-		<h3>[property:Vector3 referencePosition]</h3>
-		<p>
-			The position of the point light in world space.
-		</p>
-
 		<h2>方法(Methods)</h2>
 		<h2>方法(Methods)</h2>
 		<p>共有方法请参见其基类[page:Material]。</p>
 		<p>共有方法请参见其基类[page:Material]。</p>
 
 

+ 40 - 68
docs/api/zh/materials/MeshToonMaterial.html

@@ -11,7 +11,7 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<div class="desc">A material implementing toon shading.</div>
+		<div class="desc">一种实现卡通着色的材质。</div>
 
 
 		<iframe id="scene" src="scenes/material-browser.html#MeshToonMaterial"></iframe>
 		<iframe id="scene" src="scenes/material-browser.html#MeshToonMaterial"></iframe>
 
 
@@ -36,162 +36,134 @@
 			[example:webgl_materials_variations_toon materials / variations / toon]
 			[example:webgl_materials_variations_toon materials / variations / toon]
 		</p>
 		</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 
 
 		<h3>[name]( [param:Object parameters] )</h3>
 		<h3>[name]( [param:Object parameters] )</h3>
 		<p>
 		<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] - (可选) 具有定义材料外观的一个或多个属性的对象。材料的任何属性(包括从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.set ( color ) 在内部被调用。
 		</p>
 		</p>
 
 
-		<h2>Properties</h2>
-		<p>See the base [page:Material] class for common properties.</p>
+		<h2>属性(Properties)</h2>
+		<p>请参阅基础Material[page:Material]类以了解常见属性。</p>
 
 
 		<h3>[property:Texture alphaMap]</h3>
 		<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 />
+		<p>alpha 贴图是一种灰度纹理,可控制整个表面的不透明度(黑色:完全透明;白色:完全不透明)。默认为空。<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.
+			仅使用纹理的颜色,如果存在则忽略alpha通道。对于RGB和RGBA纹理,由于在DXT压缩和未压缩的RGB565格式中为绿色提供了额外的精度,[page:WebGLRenderer WebGL]渲染器将在对该纹理进行采样时使用绿色通道。仅亮度和亮度/alpha纹理也将按预期工作。
 		</p>
 		</p>
 
 
 		<h3>[property:Texture aoMap]</h3>
 		<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.</p>
+		<p>该纹理的红色通道用作环境遮挡贴图。默认为空。aoMap需要第二组UV。</p>
 
 
 		<h3>[property:Float aoMapIntensity]</h3>
 		<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>
 		<h3>[property:Texture bumpMap]</h3>
 		<p>
 		<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>
 		<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>
 		<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:Texture displacementMap]</h3>
 		<h3>[property:Texture displacementMap]</h3>
 		<p>
 		<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>
 		<h3>[property:Float displacementScale]</h3>
 		<p>
 		<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>
 		</p>
 
 
 		<h3>[property:Float displacementBias]</h3>
 		<h3>[property:Float displacementBias]</h3>
 		<p>
 		<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>
 		</p>
 
 
 		<h3>[property:Color emissive]</h3>
 		<h3>[property:Color emissive]</h3>
 		<p>
 		<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>
 		<h3>[property:Texture emissiveMap]</h3>
 		<p>
 		<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>
 		</p>
 
 
 		<h3>[property:Float emissiveIntensity]</h3>
 		<h3>[property:Float emissiveIntensity]</h3>
-		<p>Intensity of the emissive light. Modulates the emissive color. Default is 1.</p>
+		<p>发射光的强度。调制发光颜色。默认值为1。</p>
 
 
 		<h3>[property:Boolean fog]</h3>
 		<h3>[property:Boolean fog]</h3>
 		<p>材质是否受雾影响。默认为*true*。</p>
 		<p>材质是否受雾影响。默认为*true*。</p>
 
 
 		<h3>[property:Texture gradientMap]</h3>
 		<h3>[property:Texture gradientMap]</h3>
-		<p>Gradient map for toon shading. It's required to set [page:Texture.minFilter] and [page:Texture.magFilter] to
-			[page:Textures THREE.NearestFilter] when using this type of texture. Default is *null*.</p>
+		<p>卡通着色的渐变贴图。使用此类纹理时,需要将Texture.minFilter[page:Texture.minFilter]和Texture.magFilter[page:Texture.magFilter]设置为[page:Textures THREE.NearestFilter]。默认为空。
+			</p>
 
 
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
-		<p>The light map. Default is null. The lightMap requires a second set of UVs.</p>
+		<p>光照贴图。默认为空。lightMap需要第二组UV。</p>
 
 
 		<h3>[property:Float lightMapIntensity]</h3>
 		<h3>[property:Float lightMapIntensity]</h3>
-		<p>Intensity of the baked light. Default is 1.</p>
+		<p>烘焙光的强度。默认值为1。</p>
 
 
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
 		<p>
 		<p>
-			The color map. May optionally include an alpha channel, typically combined with
-			[page:Material.transparent .transparent] or [page:Material.alphaTest .alphaTest]. Default is null.
-			The texture map color is modulated by the diffuse [page:.color].
+			彩色地图。可以选择包含一个alpha通道,通常与[page:Material.transparent .transparent]或[page:Material.alphaTest .alphaTest]结合使用。默认为空。纹理贴图颜色由漫反射.color[page:.color]调制。
 		</p>
 		</p>
 
 
 		<h3>[property:Texture normalMap]</h3>
 		<h3>[property:Texture normalMap]</h3>
 		<p>
 		<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.
-			In case the material has a normal map authored using the left handed convention, the y component of normalScale
-			should be negated to compensate for the different handedness.
+			创建法线贴图的纹理。RGB值影响每个像素片段的表面法线并改变颜色的点亮方式。法线贴图不会改变表面的实际形状,只会改变光照。如果材质具有使用左手惯例创作的法线贴图,则应取反normalScale的y分量以补偿不同的手性。
 		</p>
 		</p>
 
 
 		<h3>[property:Integer normalMapType]</h3>
 		<h3>[property:Integer normalMapType]</h3>
 		<p>
 		<p>
-			The type of normal map.<br /><br />
+			法线贴图的类型。<br /><br />
 
 
-			Options are [page:constant THREE.TangentSpaceNormalMap] (default), and [page:constant THREE.ObjectSpaceNormalMap].
+			选项为[page:constant THREE.TangentSpaceNormalMap](默认)和[page:constant THREE.ObjectSpaceNormalMap]。
 		</p>
 		</p>
 
 
 		<h3>[property:Vector2 normalScale]</h3>
 		<h3>[property:Vector2 normalScale]</h3>
 		<p>
 		<p>
-			How much the normal map affects the material. Typical ranges are 0-1.
-			Default is a [page:Vector2] set to (1,1).
+			法线贴图对材质的影响有多大。典型范围是0-1。默认是设置为(1,1)的二维向量[page:Vector2]。
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean wireframe]</h3>
 		<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>
 		<h3>[property:String wireframeLinecap]</h3>
 		<p>
 		<p>
-			Define appearance of line ends. Possible values are "butt", "round" and "square". Default is 'round'.<br /><br />
+			定义线端的外观。可能的值为“butt”、“round”和“square”。默认为“圆形”。<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/lineCap 2DCanvas]的lineCap属性,它会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 		</p>
 
 
 		<h3>[property:String wireframeLinejoin]</h3>
 		<h3>[property:String wireframeLinejoin]</h3>
 		<p>
 		<p>
-			Define appearance of line joints. Possible values are "round", "bevel" and "miter". Default is 'round'.<br /><br />
+			定义线接头的外观。可能的值是“round”、“bevel”和“miter”。默认为“圆形”。<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/lineCap 2DCanvas]的lineCap属性,它会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 		</p>
 
 
 		<h3>[property:Float wireframeLinewidth]</h3>
 		<h3>[property:Float wireframeLinewidth]</h3>
-		<p>Controls wireframe thickness. Default is 1.<br /><br />
+		<p>控制线框厚度。默认值为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>
 		</p>
 
 
-		<h2>Methods</h2>
-		<p>See the base [page:Material] class for common methods.</p>
+		<h2>方法(Methods)</h2>
+		<p>有关常用方法,请参见Material[page:Material]类。</p>
 
 
-		<h2>Source</h2>
+		<h2>源码(Source)</h2>
 
 
 		<p>
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 12 - 0
docs/api/zh/math/Color.html

@@ -182,6 +182,13 @@
 
 
 		</p>
 		</p>
 
 
+		<h3>[method:Color getRGB]( [param:Color target], [param:string colorSpace] = SRGBColorSpace )</h3>
+		<p>
+			[page:Color target] - 结果将复制到这个对象中.<br /><br />
+
+			Returns the RGB values of this color as an instance of [page:Color].
+		</p>
+
 		<h3>[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )</h3>
 		<h3>[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )</h3>
 		<p>以CSS样式字符串的形式返回该颜色的值。例如:“rgb(255,0,0)”。</p>
 		<p>以CSS样式字符串的形式返回该颜色的值。例如:“rgb(255,0,0)”。</p>
 
 
@@ -308,6 +315,11 @@
 		返回一个格式为[ r, g, b ] 数组。
 		返回一个格式为[ r, g, b ] 数组。
 		</p>
 		</p>
 
 
+		<h3>[method:Number toJSON]()</h3>
+		<p>
+		This methods defines the serialization result of [name]. Returns the color as a hexadecimal value.
+		</p>
+
 		<h2>源码(Source)</h2>
 		<h2>源码(Source)</h2>
 
 
 		<p>
 		<p>

+ 5 - 0
docs/api/zh/math/Quaternion.html

@@ -203,6 +203,11 @@
 		在形如[x, y, z, w]的数组中,返回四元数中的数字元素。
 		在形如[x, y, z, w]的数组中,返回四元数中的数字元素。
 		</p>
 		</p>
 
 
+		<h3>[method:Array toJSON]()</h3>
+		<p>
+		This methods defines the serialization result of [name]. 在形如[x, y, z, w]的数组中,返回四元数中的数字元素。
+		</p>
+
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<h3>[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )</h3>
 		<p>
 		<p>
 		[page:BufferAttribute attribute] - 源 attribute。<br />
 		[page:BufferAttribute attribute] - 源 attribute。<br />

+ 41 - 43
docs/api/zh/math/SphericalHarmonics3.html

@@ -9,131 +9,129 @@
 	<body>
 	<body>
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<p class="desc">Represents a third-order spherical harmonics (SH). Light probes use this class to encode lighting information.</p>
+		<p class="desc">表示三次球面谐波(SH)。光照探测器使用此类来编码光照信息。</p>
 
 
-		<h2>Constructor</h2>
+		<h2>构造函数(Constructor)</h2>
 		<h3>[name]()</h3>
 		<h3>[name]()</h3>
 		<p>
 		<p>
-		Creates a new instance of [name].
+			创建[name]的新实例。
 		</p>
 		</p>
 
 
-		<h2>Properties</h2>
+		<h2>特性(Properties)</h2>
 
 
 		<h3>[property:Array coefficients]</h3>
 		<h3>[property:Array coefficients]</h3>
-		<p>An array holding the (9) SH coefficients. A single coefficient is represented as an instance of [page:Vector3].</p>
+		<p>包含(9)个SH系数的数组。单个系数表示为[page:Vector3 Vector3]的实例。</p>
 
 
 		<h3>[property:Boolean isSphericalHarmonics3]</h3>
 		<h3>[property:Boolean isSphericalHarmonics3]</h3>
 		<p>
 		<p>
-			Read-only flag to check if a given object is of type [name].
+			用于检查给定对象是否为SphericalHarmonics3类型的只读标志。
 		</p>
 		</p>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 		<h3>[method:SphericalHarmonics3 add]( [param:SphericalHarmonics3 sh] )</h3>
 		<h3>[method:SphericalHarmonics3 add]( [param:SphericalHarmonics3 sh] )</h3>
 		<p>
 		<p>
-			[page:SphericalHarmonics3 sh] - The SH to add.<br /><br />
+			[page:SphericalHarmonics3 sh] - 要添加的SH。<br /><br />
 
 
-			Adds the given SH to this instance.
+			将给定的 SH 添加到此实例。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 addScaledSH]( [param:SphericalHarmonics3 sh], [param:Number scale] )</h3>
 		<h3>[method:SphericalHarmonics3 addScaledSH]( [param:SphericalHarmonics3 sh], [param:Number scale] )</h3>
 		<p>
 		<p>
-			[page:SphericalHarmonics3 sh] - The SH to add.<br />
-			[page:Number scale] - The scale factor.<br /><br />
-
-			A convenience method for performing [page:.add]() and [page:.scale]() at once.
+			[page:SphericalHarmonics3 sh] - 要添加的SH。<br />
+			[page:Number scale] - 比例因子。<br /><br />
+			一次 执行[page:.add]()和[page:.scale]()的便捷方法。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 clone]()</h3>
 		<h3>[method:SphericalHarmonics3 clone]()</h3>
 		<p>
 		<p>
-			Returns a new instance of [name] with equal coefficients.
+			返回具有相等系数的[name]的新实例。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 copy]( [param:SphericalHarmonics3 sh] )</h3>
 		<h3>[method:SphericalHarmonics3 copy]( [param:SphericalHarmonics3 sh] )</h3>
 		<p>
 		<p>
-			[page:SphericalHarmonics3 sh] - The SH to copy.<br /><br />
+			[page:SphericalHarmonics3 sh] - 要复制的SH。<br /><br />
 
 
-			Copies the given SH to this instance.
+			将给定的SH复制到此实例。
 		</p>
 		</p>
 
 
 		<h3>[method:Boolean equals]( [param:SphericalHarmonics3 sh] )</h3>
 		<h3>[method:Boolean equals]( [param:SphericalHarmonics3 sh] )</h3>
 		<p>
 		<p>
-			[page:SphericalHarmonics3 sh] - The SH to compare with.<br /><br />
+			[page:SphericalHarmonics3 sh] - 要与之比较的 SH。<br /><br />
 
 
-			Returns true if the given SH and this instance have equal coefficients.
+			如果给定的SH和此实例具有相等的系数,则返回true。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 fromArray]( [param:Array array], [param:Number offset] )</h3>
 		<h3>[method:SphericalHarmonics3 fromArray]( [param:Array array], [param:Number offset] )</h3>
 		<p>
 		<p>
-			[page:Array array] - The array holding the numbers of the SH coefficients.<br />
-			[page:Number offset] - (optional) The array offset.<br /><br />
+			[page:Array array] - 保存SH系数数的数组。<br />
+			[page:Number offset] - (可选)数组偏移量。<br /><br />
 
 
-			Sets the coefficients of this instance from the given array.
+			从给定数组设置此实例的系数。
 		</p>
 		</p>
 
 
 		<h3>[method:Vector3 getAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
 		<h3>[method:Vector3 getAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
 		<p>
 		<p>
-			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
-			[page:Vector3 target] - The result vector.<br /><br />
+			[page:Vector3 normal] - 法向量(假定为单位长度)。<br />
+			[page:Vector3 target] - 结果向量。<br /><br />
 
 
-			Returns the radiance in the direction of the given normal.
+			返回给定法线方向的辐射度。
 		</p>
 		</p>
 
 
 		<h3>[method:Vector3 getIrradianceAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
 		<h3>[method:Vector3 getIrradianceAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
 		<p>
 		<p>
-			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
-			[page:Vector3 target] - The result vector.<br /><br />
+			[page:Vector3 normal] - 法向量(假定为单位长度)。<br />
+			[page:Vector3 target] - 结果向量。<br /><br />
 
 
-			Returns the irradiance (radiance convolved with cosine lobe) in the direction of the given normal.
+			返回给定法线方向的辐照度(辐射度与余弦波瓣卷积)。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 lerp]( [param:SphericalHarmonics3 sh], [param:Number alpha] )</h3>
 		<h3>[method:SphericalHarmonics3 lerp]( [param:SphericalHarmonics3 sh], [param:Number alpha] )</h3>
 		<p>
 		<p>
-			[page:SphericalHarmonics3 sh] - The SH to interpolate with.<br />
-			[page:Number alpha] - The alpha factor.<br /><br />
+			[page:SphericalHarmonics3 sh] - 要插入的SH。<br />
+			[page:Number alpha] - alpha因子。<br /><br />
 
 
-			Linear interpolates between the given SH and this instance by the given alpha factor.
+			通过给定的alpha因子在给定的SH和此实例之间进行线性插值。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 scale]( [param:Number scale] )</h3>
 		<h3>[method:SphericalHarmonics3 scale]( [param:Number scale] )</h3>
 		<p>
 		<p>
-			[page:Number sh] - The scale factor.<br /><br />
+			[page:Number sh] - 比例因子。<br /><br />
 
 
-			Scales this SH by the given scale factor.
+			按给定的比例因子缩放此SH。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 set]( [param:Array coefficients] )</h3>
 		<h3>[method:SphericalHarmonics3 set]( [param:Array coefficients] )</h3>
 		<p>
 		<p>
-			[page:Array coefficients] - An array of SH coefficients.<br /><br />
+			[page:Array coefficients] - 一组SH系数。<br /><br />
 
 
-			Sets the given SH coefficients to this instance.
+			将给定的SH系数设置为此实例。
 		</p>
 		</p>
 
 
 		<h3>[method:Array toArray]( [param:Array array], [param:Number offset] )</h3>
 		<h3>[method:Array toArray]( [param:Array array], [param:Number offset] )</h3>
 		<p>
 		<p>
-			[page:Array array] - (optional) The target array.<br />
-			[page:Number offset] - (optional) The array offset.<br /><br />
+			[page:Array array] - (可选)目标数组。<br />
+			[page:Number offset] - (可选)数组偏移量。<br /><br />
 
 
-			Returns an array with the coefficients, or copies them into the provided array. The coefficients
-			are represented as numbers.
+			返回包含系数的数组,或将它们复制到提供的数组中。系数表示为数字。
 		</p>
 		</p>
 
 
 		<h3>[method:SphericalHarmonics3 zero]()</h3>
 		<h3>[method:SphericalHarmonics3 zero]()</h3>
 		<p>
 		<p>
-			Sets all SH coefficients to 0.
+			将所有SH系数设置为0。
 		</p>
 		</p>
 
 
-		<h2>Static Methods</h2>
+		<h2>静态方法(Static Methods)</h2>
 
 
 		<h3>[method:undefined getBasisAt]( [param:Vector3 normal], [param:Array shBasis] )</h3>
 		<h3>[method:undefined getBasisAt]( [param:Vector3 normal], [param:Array shBasis] )</h3>
 		<p>
 		<p>
-			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
-			[page:Array shBasis] - The resulting SH basis.<br /><br />
+			[page:Vector3 normal] - 法向量(假定为单位长度)。<br />
+			[page:Array shBasis] - 生成的SH基础。<br /><br />
 
 
-			Computes the SH basis for the given normal vector.
+			计算给定法向量的 SH 基础。
 		</p>
 		</p>
 
 
-		<h2>Source</h2>
+		<h2>源代码(Source)</h2>
 
 
 		<p>
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 5 - 0
docs/api/zh/math/Vector2.html

@@ -97,6 +97,11 @@
 			计算该向量相对于x轴正方向的弧度角度。
 			计算该向量相对于x轴正方向的弧度角度。
 		</p>
 		</p>
 
 
+		<h3>[method:Float angleTo]( [param:Vector2 v] )</h3>
+		<p>
+		以弧度返回该向量与向量[page:Vector2 v]之间的角度。
+		</p>
+
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
 		<p>
 		<p>
 			将该向量乘以三阶矩阵m(第三个值隐式地为1)。
 			将该向量乘以三阶矩阵m(第三个值隐式地为1)。

+ 22 - 0
docs/api/zh/objects/InstancedMesh.html

@@ -36,6 +36,16 @@
 		<h2>属性</h2>
 		<h2>属性</h2>
 		<p>See the base [page:Mesh] class for common properties.</p>
 		<p>See the base [page:Mesh] class for common properties.</p>
 
 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			当前 [name] 的外边界矩形。可以通过 [page:.computeBoundingBox]() 计算。默认值是 *null*。
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			当前 [name] 的外边界球形。可以通过 [page:.computeBoundingSphere]() 计算。默认值是 *null*。
+		</p>
+
 		<h3>[property:Integer count]</h3>
 		<h3>[property:Integer count]</h3>
 		<p>
 		<p>
 			实例的数量。被传入到构造函数中的*count*表示mesh实例数量的最大值。
 			实例的数量。被传入到构造函数中的*count*表示mesh实例数量的最大值。
@@ -66,6 +76,18 @@
 		<h2>方法</h2>
 		<h2>方法</h2>
 		<p>See the base [page:Mesh] class for common methods.</p>
 		<p>See the base [page:Mesh] class for common methods.</p>
 
 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+			计算当前几何体的的边界矩形,该操作会更新已有 [param:.boundingBox]。<br />
+			边界矩形不会默认计算,需要调用该接口指定计算边界矩形,否则保持默认值 *null*。
+		</p>
+
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+			计算当前几何体的的边界球形,该操作会更新已有 [param:.boundingSphere]。<br />
+			边界球形不会默认计算,需要调用该接口指定计算边界球形,否则保持默认值 *null*。
+		</p>
+
 		<h3>[method:undefined dispose]()</h3>
 		<h3>[method:undefined dispose]()</h3>
 		<p>
 		<p>
 			Frees the internal resources of this instance.
 			Frees the internal resources of this instance.

+ 29 - 6
docs/api/zh/objects/SkinnedMesh.html

@@ -95,10 +95,6 @@
 	[page:Material material] —— (可选)一个[page:Material]实例,默认值是一个新的[page:MeshBasicMaterial]。
 	[page:Material material] —— (可选)一个[page:Material]实例,默认值是一个新的[page:MeshBasicMaterial]。
 		</p>
 		</p>
 
 
-
-
-
-
 		<h2>属性</h2>
 		<h2>属性</h2>
 		<p>共有属性请参见其基类[page:Mesh]。</p>
 		<p>共有属性请参见其基类[page:Mesh]。</p>
 
 
@@ -119,6 +115,16 @@
 			该基础矩阵用于重置绑定骨骼的变换。
 			该基础矩阵用于重置绑定骨骼的变换。
 		</p>
 		</p>
 
 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			The bounding box of the [name]. Can be calculated with [page:.computeBoundingBox](). Default is `null`.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			The bounding sphere of the [name]. Can be calculated with [page:.computeBoundingSphere](). Default is `null`.
+		</p>
+
 		<h3>[property:Boolean isSkinnedMesh]</h3>
 		<h3>[property:Boolean isSkinnedMesh]</h3>
 		<p>
 		<p>
 			Read-only flag to check if a given object is of type [name].
 			Read-only flag to check if a given object is of type [name].
@@ -129,11 +135,14 @@
 			用于表示蒙皮网格中骨骼的层次结构的[page:Skeleton](骨架)。
 			用于表示蒙皮网格中骨骼的层次结构的[page:Skeleton](骨架)。
 		</p>
 		</p>
 
 
-
-
 		<h2>方法</h2>
 		<h2>方法</h2>
 		<p>共有方法请参见其基类[page:Mesh]。</p>
 		<p>共有方法请参见其基类[page:Mesh]。</p>
 
 
+		<h3>[method:Vector3 applyBoneTransform]( [param:Integer index], [param:Vector3 vector] )</h3>
+		<p>
+		Applies the bone transform associated with the given index to the given position vector. Returns the updated vector.
+		</p>
+
 		<h3>[method:undefined bind]( [param:Skeleton skeleton], [param:Matrix4 bindMatrix] )</h3>
 		<h3>[method:undefined bind]( [param:Skeleton skeleton], [param:Matrix4 bindMatrix] )</h3>
 		<p>
 		<p>
 		[page:Skeleton skeleton] —— 由一棵[page:Bone Bones]树创建的[page:Skeleton]。<br/>
 		[page:Skeleton skeleton] —— 由一棵[page:Bone Bones]树创建的[page:Skeleton]。<br/>
@@ -146,6 +155,20 @@
 		This method does currently not clone an instance of [name] correctly. Please use [page:SkeletonUtils.clone]() in the meanwhile.
 		This method does currently not clone an instance of [name] correctly. Please use [page:SkeletonUtils.clone]() in the meanwhile.
 		</p>
 		</p>
 
 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+		Computes the bounding box, updating [page:.boundingBox] attribute.<br />
+		Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		If an instance of [name] is animated, this method should be called per frame to compute a correct bounding box.
+		</p>
+
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+		Computes the bounding sphere, updating [page:.boundingSphere] attribute.<br />
+		Bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
+		If an instance of [name] is animated, this method should be called per frame to compute a correct bounding sphere.
+		</p>
+
 		<h3>[method:undefined normalizeSkinWeights]()</h3>
 		<h3>[method:undefined normalizeSkinWeights]()</h3>
 		<p>
 		<p>
 		标准化蒙皮的权重。
 		标准化蒙皮的权重。

+ 5 - 1
docs/api/zh/renderers/WebGLRenderer.html

@@ -89,7 +89,11 @@
 			编译和链接过程中的错误。 禁用此检查生产以获得性能增益可能很有用。
 			编译和链接过程中的错误。 禁用此检查生产以获得性能增益可能很有用。
 			强烈建议在开发期间保持启用这些检查。
 			强烈建议在开发期间保持启用这些检查。
 			如果着色器没有编译和链接 - 它将无法工作,并且相关材料将不会呈现。
 			如果着色器没有编译和链接 - 它将无法工作,并且相关材料将不会呈现。
-			默认是*true*
+			默认是*true*</br>
+		- [page:Function onShaderError]( gl, program, glVertexShader, glFragmentShader ):
+			A callback function that can be used for custom error reporting. The callback receives the WebGL context, an instance of WebGLProgram as well 
+			two instances of WebGLShader representing the vertex and fragment shader. Assigning a custom function disables the default error reporting. 
+			Default is `null`.
 		</p>
 		</p>
 
 
 		<h3>[property:Object capabilities]</h3>
 		<h3>[property:Object capabilities]</h3>

+ 152 - 0
docs/api/zh/textures/DataArrayTexture.html

@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<html lang="zh">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Texture] &rarr;
+
+		<h1>数据数组纹理([name])</h1>
+
+		<p class="desc">
+			直接从原始数据、宽度、高度和深度创建纹理数组。这种类型的纹理只能与 WebGL 2 渲染上下文一起使用。
+		</p>
+
+
+		<h2>构造函数(Constructor)</h2>
+
+		<h3>[name]( data, width, height, depth )</h3>
+		<p>
+      data参数必须是[link:https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView ArrayBufferView]。
+      默认继承自[page:Texture Texture]的属性,除了magFilter和minFilter默认为THREE.NearestFilter。
+      属性flipY和generateMipmaps最初设置为false。
+		</p>
+		<p>
+      数据的解释取决于类型和格式:如果类型是THREE.UnsignedByteType,则Uint8Array可用于寻址纹素数据。
+      如果格式为THREE.RGBAFormat,则数据需要为一个纹素提供四个值;红色、绿色、蓝色和Alpha(通常是不透明度)。
+      对于打包类型,THREE.UnsignedShort4444Type和THREE.UnsignedShort5551Type,一个纹素的所有颜色分量都可以作为Uint16Array的整数元素中的位域进行寻址。
+      为了使用THREE.FloatType和THREE.HalfFloatType类型,WebGL实现必须支持相应的扩展OES_texture_float和OES_texture_half_float。
+      为了将THREE.LinearFilter用于基于这些类型的纹素的分量双线性插值,还必须存在WebGL扩展OES_texture_float_linear或OES_texture_half_float_linear。
+		</p>
+
+		<h2>代码示例(Code Example)</h2>
+
+		<p>这将创建一个[name],其中每个纹理都有不同的颜色。</p>
+
+		<code>
+		// 使用颜色数据创建缓冲区
+
+		const width = 512;
+		const height = 512;
+		const depth = 100;
+
+		const size = width * height;
+		const data = new Uint8Array( 4 * size * depth );
+
+		for ( let i = 0; i < depth; i ++ ) {
+
+			const color = new THREE.Color( Math.random(), Math.random(), Math.random() );
+			const r = Math.floor( color.r * 255 );
+			const g = Math.floor( color.g * 255 );
+			const b = Math.floor( color.b * 255 );
+
+			for ( let j = 0; j < size; j ++ ) {
+
+				const stride = ( i * size + j ) * 4;
+
+				data[ stride ] = r;
+				data[ stride + 1 ] = g;
+				data[ stride + 2 ] = b;
+				data[ stride + 3 ] = 255;
+
+			}
+		}
+
+		//  使用缓冲区创建的颜色数据创建缓冲区[name]
+
+		const texture = new THREE.DataArrayTexture( data, width, height, depth );
+		texture.needsUpdate = true;
+		</code>
+
+		<h2>示例(Examples)</h2>
+
+		<p>
+			[example:webgl2_materials_texture2darray WebGL2 / materials / texture2darray]
+			[example:webgl2_rendertarget_texture2darray WebGL2 / rendertarget / texture2darray]
+		</p>
+
+		<h2>特性(Properties)</h2>
+
+		<p>
+      请参阅基本[page:Texture Texture]类以了解通用属性
+		</p>
+
+		<h3>[property:Boolean flipY]</h3>
+		<p>
+			纹理上传到GPU时是否沿Y轴翻转。默认为false。
+		</p>
+	
+		<h3>[property:Boolean generateMipmaps]</h3>
+		<p>
+			是否为纹理生成mipmap(如果可能)。默认为false。
+		</p>
+
+		<h3>[property:Object image]</h3>
+		<p>
+			被包含数据、宽度、高度和深度的对象覆盖。
+		</p>
+
+		<h3>[property:Boolean isDataArrayTexture]</h3>
+		<p>
+      只读标志,用于检查给定对象是否属于[name]类型。
+		</p>
+
+		<h3>[property:number magFilter]</h3>
+		<p>
+      当纹素覆盖多个像素时如何对纹理进行采样。默认值为[page:Textures THREE.NearestFilter],它使用最近的纹理元素的值。
+			<br /><br />
+		 
+      有关详细信息,请参阅[page:Textures texture constants]页面。
+		</p>
+
+		<h3>[property:number minFilter]</h3>
+		<p>
+      当纹素覆盖少于一个像素时如何对纹理进行采样。默认值为[page:Textures THREE.NearestFilter],它使用最近的纹理元素的值。
+			<br /><br />
+
+			有关详细信息,请参阅[page:Textures texture constants]页面。
+		</p>
+
+		<h3>[property:number unpackAlignment]</h3>
+		<p>
+      默认为1。
+      指定内存中每个像素行开始的对齐要求。
+      允许的值为1(字节对齐)、2(行对齐到偶数字节)、4(字对齐)和8(行从双字边界开始)。 
+      有关详细信息,请参阅[link:https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glPixelStorei.xhtml glPixelStorei]。
+		</p>
+
+		<h3>[property:number wrapR]</h3>
+		<p>
+      这定义了纹理在深度方向上的包裹方式。<br />
+      默认值为[page:Textures THREE.ClampToEdgeWrapping],其中边缘被夹紧到外边缘纹素。
+      其他两个选择是[page:Textures THREE.RepeatWrapping]和[page:Textures THREE.MirroredRepeatWrapping]。
+
+			有关详细信息,请参阅[page:Textures texture constants]页面。
+		</p>
+
+		<h2>方法(Methods)</h2>
+
+		<p>
+      有关常用方法, 请参见[page:Texture Texture]类。
+		</p>
+
+		<h2>源代码(Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 0 - 100
docs/api/zh/textures/DataTexture2DArray.html

@@ -1,100 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Texture] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">Creates an array of textures directly from raw data, width and height and depth. This type of texture can only be used with a WebGL 2 rendering context.</p>
-
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( data, width, height, depth )</h3>
-		<p>
-			The data argument must be an [link:https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView ArrayBufferView].
-			The properties inherited from [page:Texture] are the default, except magFilter and minFilter default to THREE.NearestFilter. The properties flipY and generateMipmaps are initially set to false.
-		</p>
-		<p>
-			The interpretation of the data depends on type and format:
-			If the type is THREE.UnsignedByteType, a Uint8Array will be useful for addressing the texel data.
-			If the format is THREE.RGBAFormat, data needs four values for one texel; Red, Green, Blue and Alpha (typically the opacity).<br />
-
-			For the packed types, THREE.UnsignedShort4444Type and THREE.UnsignedShort5551Type all color components of one texel can be addressed as bitfields within an integer element of a Uint16Array.<br />
-
-			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
-		</p>
-
-		<h2>代码示例</h2>
-
-		<p>This creates a [name] where each texture has a different color.</p>
-
-		<code>
-		// create a buffer with color data
-
-		const width = 512;
-		const height = 512;
-		const depth = 100;
-
-		const size = width * height;
-		const data = new Uint8Array( 4 * size * depth );
-
-		for ( let i = 0; i < depth; i ++ ) {
-
-			const color = new THREE.Color( Math.random(), Math.random(), Math.random() );
-			const r = Math.floor( color.r * 255 );
-			const g = Math.floor( color.g * 255 );
-			const b = Math.floor( color.b * 255 );
-
-			for ( let j = 0; j < size; j ++ ) {
-
-				const stride = ( i * size + j ) * 4;
-
-				data[ stride ] = r;
-				data[ stride + 1 ] = g;
-				data[ stride + 2 ] = b;
-				data[ stride + 3 ] = 255;
-
-			}
-		}
-
-		// used the buffer to create a [name]
-
-		const texture = new THREE.DataArrayTexture( data, width, height, depth );
-		texture.needsUpdate = true;
-		</code>
-
-		<p>
-			[example:webgl2_materials_texture3d WebGL2 / materials / texture3d]
-		</p>
-
-		<h2>Properties</h2>
-
-		<p>
-		See the base [page:Texture Texture] class for common properties.
-		</p>
-
-		<h3>[property:Image image]</h3>
-		<p>
-		Overridden with a record type holding data, width and height and depth.
-		</p>
-
-		<h2>Methods</h2>
-
-		<p>
-		See the base [page:Texture Texture] class for common methods.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

+ 22 - 49
docs/api/zh/textures/Texture.html

@@ -71,6 +71,11 @@
 		请参阅[page:Textures texture constants](映射模式常量)来了解其他映射类型。
 		请参阅[page:Textures texture constants](映射模式常量)来了解其他映射类型。
 		</p>
 		</p>
 
 
+		<h3>[property:Integer channel]</h3>
+		<p>
+		Lets you select the uv attribute to map the texture to. `0` for `uv` and `1` for `uv2`.
+		</p>
+
 		<h3>[property:number wrapS]</h3>
 		<h3>[property:number wrapS]</h3>
 		<p>
 		<p>
 		这个值定义了纹理贴图在水平方向上将如何包裹,在UV映射中对应于*U*。<br />
 		这个值定义了纹理贴图在水平方向上将如何包裹,在UV映射中对应于*U*。<br />
@@ -122,13 +127,10 @@
 
 
 		<h3>[property:String internalFormat]</h3>
 		<h3>[property:String internalFormat]</h3>
 		<p>
 		<p>
-		The default value is obtained using a combination of [page:Texture.format .format] and
-		[page:Texture.type .type].<br />
-
-		The GPU format allows the developer to specify how the data is going to be
-		stored on the GPU.<br /><br />
+		此项的默认值由[page:Texture.format .format]和[page:Texture.type .type]混合并决定。<br />
 
 
-		See the [page:Textures texture constants] page for details regarding all supported internal formats.
+		这项GPU格式设置允许开发者决定在GPU中的数据存储方式。<br /><br />
+		查看[page:Textures texture constants]页面来了解所有可用的Internal Formats以及其细节。
 		</p>
 		</p>
 
 
 		<h3>[property:number type]</h3>
 		<h3>[property:number type]</h3>
@@ -141,42 +143,15 @@
 
 
 		<h3>[property:Vector2 offset]</h3>
 		<h3>[property:Vector2 offset]</h3>
 		<p>
 		<p>
-		How much a single repetition of the texture is offset from the beginning, in each direction U and V.
-		Typical range is *0.0* to *1.0*.
-		</p>
-		<p>
-			The below texture types share the *first* uv channel in the engine. The offset (and repeat) setting is evaluated according to
-			the following priorities and then shared by those textures:
-			<ol>
-				<li>color map</li>
-				<li>specular map</li>
-				<li>displacement map</li>
-				<li>normal map</li>
-				<li>bump map</li>
-				<li>roughness map</li>
-				<li>metalness map</li>
-				<li>alpha map</li>
-				<li>emissive map</li>
-				<li>clearcoat map</li>
-				<li>clearcoat normal map</li>
-				<li>clearcoat roughnessMap map</li>
-			</ol>
-		</p>
-		<p>
-			The below texture types share the *second* uv channel in the engine. The offset (and repeat) setting is evaluated according to
-			the following priorities and then shared by those textures:
-			<ol>
-				<li>ao map</li>
-				<li>light map</li>
-			</ol>
+		贴图单次重复中的起始偏移量,分别表示U和V。
+		一般范围是由`0.0`到`1.0`。
 		</p>
 		</p>
 
 
 		<h3>[property:Vector2 repeat]</h3>
 		<h3>[property:Vector2 repeat]</h3>
 		<p>
 		<p>
-		How many times the texture is repeated across the surface, in each direction U and V.  If repeat is set
-		greater than 1 in either direction, the corresponding Wrap parameter should also be set to
-		[page:Textures THREE.RepeatWrapping] or [page:Textures THREE.MirroredRepeatWrapping] to achieve the desired
-		tiling effect. Setting different repeat values for textures is restricted in the same way like [page:.offset].
+		决定纹理在表面的重复次数,两个方向分别表示U和V,如果重复次数在任何方向上设置了超过1的数值,
+		对应的Wrap需要设置为[page:Textures THREE.RepeatWrapping]或者[page:Textures THREE.MirroredRepeatWrapping]来
+		达到想要的平铺效果。
 		</p>
 		</p>
 
 
 		<h3>[property:number rotation]</h3>
 		<h3>[property:number rotation]</h3>
@@ -213,18 +188,18 @@
 
 
 		<h3>[property:Boolean premultiplyAlpha]</h3>
 		<h3>[property:Boolean premultiplyAlpha]</h3>
 		<p>
 		<p>
-		If set to *true*, the alpha channel, if present, is multiplied into the color channels when the texture is uploaded to the GPU. Default is *false*.<br /><br />
+		如果设置为*true*并且alpha通道存在的话,上传到GPU时alpha的数值将会与颜色通道的数值相乘。默认为*false*。<br /><br />
 
 
-		Note that this property has no effect for [link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap].
-		You need to configure on bitmap creation instead. See [page:ImageBitmapLoader].
+		注意此项属性不会影响到[link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap]。
+		如果你想要则需要在bitmap创建的时候进行配置,如何配置请查看[page:ImageBitmapLoader]。
 		</p>
 		</p>
 
 
 		<h3>[property:Boolean flipY]</h3>
 		<h3>[property:Boolean flipY]</h3>
 		<p>
 		<p>
-		If set to *true*, the texture is flipped along the vertical axis when uploaded to the GPU. Default is *true*.<br /><br />
+		如果设置为*true*,纹理在上传到GPU的时候会进行纵向的翻转。默认值为*true*。<br /><br />
 
 
-		Note that this property has no effect for [link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap].
-		You need to configure on bitmap creation instead. See [page:ImageBitmapLoader].
+		注意此项属性不会影响到[link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap]。
+		如果你想要则需要在bitmap创建的时候进行配置,如何配置请查看[page:ImageBitmapLoader]。
 		</p>
 		</p>
 
 
 		<h3>[property:number unpackAlignment]</h3>
 		<h3>[property:number unpackAlignment]</h3>
@@ -262,14 +237,12 @@
 
 
 		<h3>[property:Object userData]</h3>
 		<h3>[property:Object userData]</h3>
 		<p>
 		<p>
-		An object that can be used to store custom data about the texture. It should not hold
-		references to functions as these will not be cloned.
+		保存关于纹理的自定义信息的对象。不应该放函数引用,因为函数不会拷贝。
 		</p>
 		</p>
 
 
 		<h3>[property:Source source]</h3>
 		<h3>[property:Source source]</h3>
 		<p>
 		<p>
-		The data definition of a texture. A reference to the data source can be shared across textures.
-		This is often useful in context of spritesheets where multiple textures render the same data but with different texture transformations.
+		纹理的数据源信息。可以在不同的纹理之间引用相同的数据源,这在使用精灵表的情况下很好用,因为在这种情况下不同的纹理只是使用了不同的偏移,但是其数据源是相同的。
 		</p>
 		</p>
 
 
 		<h2>方法</h2>
 		<h2>方法</h2>
@@ -285,7 +258,7 @@
 		<h3>[method:Texture clone]()</h3>
 		<h3>[method:Texture clone]()</h3>
 		<p>
 		<p>
 			拷贝纹理。请注意。这不是“深拷贝”,图像是共用的。
 			拷贝纹理。请注意。这不是“深拷贝”,图像是共用的。
-			Besides, cloning a texture does not automatically mark it for a texture upload. You have to set [page:Texture.needsUpdate] to true as soon as its image property (the data source) is fully loaded or ready.
+			除此之外,拷贝一个纹理并不会将此纹理自动标记并上传。你需要在图片的属性变更或者源数据完全加载完的时候并准备好的时候将[page:Texture.needsUpdate]设置为true。
 		</p>
 		</p>
 
 
 		<h3>[method:Object toJSON]( [param:Object meta] )</h3>
 		<h3>[method:Object toJSON]( [param:Object meta] )</h3>

+ 119 - 0
docs/examples/en/controls/MapControls.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:OrbitControls] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] is intended for transforming a camera over a map from bird's eye perspective.
+			The class shares its implementation with [page:OrbitControls] but uses a specific preset for mouse/touch interaction and disables screen space panning by default.
+		</p>
+
+		<h2>Import</h2>
+
+		<p>
+			[name] is an add-on, and must be imported explicitly.
+			See [link:#manual/introduction/Installation Installation / Addons].
+		</p>
+
+		<code>
+			import { MapControls } from 'three/addons/controls/MapControls.js';
+		</code>
+
+		<h2>Code Example</h2>
+
+		<code>
+		const renderer = new THREE.WebGLRenderer();
+		renderer.setSize( window.innerWidth, window.innerHeight );
+		document.body.appendChild( renderer.domElement );
+
+		const scene = new THREE.Scene();
+
+		const camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
+		camera.position.set( 0, 20, 100 );
+
+		const controls = new MapControls( camera, renderer.domElement );
+		controls.enableDamping = true;
+
+		function animate() {
+
+			requestAnimationFrame( animate );
+
+			// required if controls.enableDamping or controls.autoRotate are set to true
+			controls.update();
+
+			renderer.render( scene, camera );
+
+		}
+		</code>
+
+		<h2>Examples</h2>
+
+		<p>[example:misc_controls_map misc / controls / map ]</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:Camera object], [param:HTMLDOMElement domElement] )</h3>
+		<p>
+			[page:Camera object]: (required) The camera to be controlled. The camera must not be a child of another object, unless that object is the scene itself.<br><br>
+
+			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
+		</p>
+
+		<h2>Events</h2>
+
+		<p>See the base [page:OrbitControls] class for common events.</p>
+
+		<h2>Properties</h2>
+
+		<p>See the base [page:OrbitControls] class for common properties.</p>
+
+		<h3>
+			[property:Object mouseButtons]</h3>
+		<p>
+			This object contains references to the mouse actions used by the controls.
+			<code>
+controls.mouseButtons = {
+	LEFT: THREE.MOUSE.PAN,
+	MIDDLE: THREE.MOUSE.DOLLY,
+	RIGHT: THREE.MOUSE.ROTATE
+}
+			</code>
+		</p>
+
+		<h3>[property:Boolean screenSpacePanning]</h3>
+		<p>
+		Defines how the camera's position is translated when panning. If true, the camera pans in screen space.
+		Otherwise, the camera pans in the plane orthogonal to the camera's up direction.
+		Default is `false`.
+		</p>
+
+		<h3>[property:Object touches]</h3>
+		<p>
+			This object contains references to the touch actions used by the controls.
+			<code>
+controls.touches = {
+	ONE: THREE.TOUCH.PAN,
+	TWO: THREE.TOUCH.DOLLY_ROTATE
+}
+			</code>
+		</p>
+
+		<h2>Methods</h2>
+
+		<p>See the base [page:OrbitControls] class for common methods.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/MapControls.js examples/jsm/controls/MapControls.js]
+		</p>
+	</body>
+</html>

+ 1 - 1
docs/examples/en/controls/OrbitControls.html

@@ -238,7 +238,7 @@ controls.mouseButtons = {
 		<p>
 		<p>
 		Defines how the camera's position is translated when panning. If true, the camera pans in screen space.
 		Defines how the camera's position is translated when panning. If true, the camera pans in screen space.
 		Otherwise, the camera pans in the plane orthogonal to the camera's up direction.
 		Otherwise, the camera pans in the plane orthogonal to the camera's up direction.
-		Default is true for OrbitControls; false for MapControls.
+		Default is `true`.
 		</p>
 		</p>
 
 
 		<h3>[property:Vector3 target0]</h3>
 		<h3>[property:Vector3 target0]</h3>

+ 12 - 2
docs/examples/en/controls/TrackballControls.html

@@ -96,12 +96,22 @@
 
 
 		<h3>[property:Number maxDistance]</h3>
 		<h3>[property:Number maxDistance]</h3>
 		<p>
 		<p>
-			How far you can zoom out. Default is `Infinity`.
+			How far you can dolly out ( [page:PerspectiveCamera] only ). Default is `Infinity`.
 		</p>
 		</p>
 
 
 		<h3>[property:Number minDistance]</h3>
 		<h3>[property:Number minDistance]</h3>
 		<p>
 		<p>
-			How far you can zoom in. Default is *0*.
+			How far you can dolly in ( [page:PerspectiveCamera] only ). Default is *0*.
+		</p>
+
+		<h3>[property:Float maxZoom]</h3>
+		<p>
+			How far you can zoom out ( [page:OrthographicCamera] only ). Default is `Infinity`.
+		</p>
+
+		<h3>[property:Float minZoom]</h3>
+		<p>
+			How far you can zoom in ( [page:OrthographicCamera] only ). Default is *0*.
 		</p>
 		</p>
 
 
 		<h3>
 		<h3>

+ 1 - 1
docs/examples/en/loaders/3DMLoader.html

@@ -25,7 +25,7 @@
 		</p>
 		</p>
 
 
 		<code>
 		<code>
-			import { 3DMLoader } from 'three/addons/loaders/3DMLoader.js';
+			import { Rhino3dmLoader } from 'three/addons/loaders/3DMLoader.js';
 		</code>
 		</code>
 
 
 		<h2>Supported Conversions</h2>
 		<h2>Supported Conversions</h2>

+ 3 - 11
docs/examples/en/loaders/GLTFLoader.html

@@ -55,7 +55,7 @@
 			<li>KHR_mesh_quantization</li>
 			<li>KHR_mesh_quantization</li>
 			<li>KHR_lights_punctual<sup>1</sup></li>
 			<li>KHR_lights_punctual<sup>1</sup></li>
 			<li>KHR_texture_basisu</li>
 			<li>KHR_texture_basisu</li>
-			<li>KHR_texture_transform<sup>2</sup></li>
+			<li>KHR_texture_transform</li>
 			<li>EXT_texture_webp</li>
 			<li>EXT_texture_webp</li>
 			<li>EXT_meshopt_compression</li>
 			<li>EXT_meshopt_compression</li>
 			<li>EXT_mesh_gpu_instancing</li>
 			<li>EXT_mesh_gpu_instancing</li>
@@ -66,24 +66,16 @@
 		</p>
 		</p>
 
 
 		<ul>
 		<ul>
-			<li>[link:https://github.com/takahirox/three-gltf-extensions KHR_materials_variants]<sup>3</sup></li>
+			<li>[link:https://github.com/takahirox/three-gltf-extensions KHR_materials_variants]<sup>2</sup></li>
 			<li>[link:https://github.com/takahirox/three-gltf-extensions MSFT_texture_dds]</li>
 			<li>[link:https://github.com/takahirox/three-gltf-extensions MSFT_texture_dds]</li>
 		</ul>
 		</ul>
 
 
 		<p><i>
 		<p><i>
 			<sup>1</sup>Requires [link:https://threejs.org/docs/#api/en/renderers/WebGLRenderer.physicallyCorrectLights physicallyCorrectLights] to be enabled.
 			<sup>1</sup>Requires [link:https://threejs.org/docs/#api/en/renderers/WebGLRenderer.physicallyCorrectLights physicallyCorrectLights] to be enabled.
 		</i></p>
 		</i></p>
-		<p><i>
-			<sup>2</sup>UV transforms are supported, with several key limitations. Transforms applied to
-			a texture using the first UV slot (all textures except aoMap and lightMap) must share the same
-			transform, or no transform at all. The aoMap and lightMap textures cannot be transformed. No
-			more than one transform may be used per material. See
-			#[link:https://github.com/mrdoob/three.js/pull/13831 13831] and
-			#[link:https://github.com/mrdoob/three.js/issues/12788 12788].
-		</i></p>
 
 
 		<p><i>
 		<p><i>
-			<sup>3</sup>You can also manually process the extension after loading in your application. See [link:https://threejs.org/examples/#webgl_loader_gltf_variants Three.js glTF materials variants example].
+			<sup>2</sup>You can also manually process the extension after loading in your application. See [link:https://threejs.org/examples/#webgl_loader_gltf_variants Three.js glTF materials variants example].
 		</i></p>
 		</i></p>
 
 
 		<h2>Code Example</h2>
 		<h2>Code Example</h2>

+ 2 - 2
docs/examples/en/utils/BufferGeometryUtils.html

@@ -84,7 +84,7 @@
 
 
 		</p>
 		</p>
 
 
-		<h3>[method:BufferAttribute mergeBufferAttributes]( [param:Array attributes] )</h3>
+		<h3>[method:BufferAttribute mergeAttributes]( [param:Array attributes] )</h3>
 		<p>
 		<p>
 		attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
 		attributes -- Array of [page:BufferAttribute BufferAttribute] instances.<br /><br />
 
 
@@ -94,7 +94,7 @@
 
 
 		</p>
 		</p>
 
 
-		<h3>[method:BufferGeometry mergeBufferGeometries]( [param:Array geometries], [param:Boolean useGroups] )</h3>
+		<h3>[method:BufferGeometry mergeGeometries]( [param:Array geometries], [param:Boolean useGroups] )</h3>
 		<p>
 		<p>
 		geometries -- Array of [page:BufferGeometry BufferGeometry] instances.<br />
 		geometries -- Array of [page:BufferGeometry BufferGeometry] instances.<br />
 		useGroups -- Whether groups should be generated for the merged geometry or not.<br /><br />
 		useGroups -- Whether groups should be generated for the merged geometry or not.<br /><br />

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

@@ -21,7 +21,7 @@
 		</p>
 		</p>
 
 
 		<code>
 		<code>
-			import { SkeletonUtils } from 'three/addons/utils/SkeletonUtils.js';
+			import * as SkeletonUtils from 'three/addons/utils/SkeletonUtils.js';
 		</code>
 		</code>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>

+ 12 - 2
docs/examples/ko/controls/TrackballControls.html

@@ -95,12 +95,22 @@
 
 
 		<h3>[property:Number maxDistance]</h3>
 		<h3>[property:Number maxDistance]</h3>
 		<p>
 		<p>
-			축소할 수 있는 범위를 설정합니다. 기본값은 *무한대* 입니다.
+			축소할 수 있는 범위를 설정합니다. ([page:PerspectiveCamera] only). 기본값은 *무한대* 입니다.
 		</p>
 		</p>
 
 
 		<h3>[property:Number minDistance]</h3>
 		<h3>[property:Number minDistance]</h3>
 		<p>
 		<p>
-			확대할 수 있는 범위를 설정합니다. 기본값은 *0* 입니다.
+			확대할 수 있는 범위를 설정합니다. ([page:PerspectiveCamera] only). 기본값은 *0* 입니다.
+		</p>
+
+		<h3>[property:Float maxZoom]</h3>
+		<p>
+			축소 할 수 있는 범위를 설정합니다. ( [page:OrthographicCamera] only ). 기본값은 *무한대* 입니다.
+		</p>
+
+		<h3>[property:Float minZoom]</h3>
+		<p>
+			확대 할 수 있는 범위를 설정합니다. ( [page:OrthographicCamera] only ). 기본값은 *0* 입니다.
 		</p>
 		</p>
 
 
 		<h3>
 		<h3>

+ 12 - 2
docs/examples/zh/controls/TrackballControls.html

@@ -95,12 +95,22 @@
 
 
 		<h3>[property:Number maxDistance]</h3>
 		<h3>[property:Number maxDistance]</h3>
 		<p>
 		<p>
-			你能够将相机向外移动多少,其默认值为*Infinity*。
+			你能够将相机向外移动多少(仅适用于[page:PerspectiveCamera]),其默认值为*Infinity*。
 		</p>
 		</p>
 
 
 		<h3>[property:Number minDistance]</h3>
 		<h3>[property:Number minDistance]</h3>
 		<p>
 		<p>
-			你能够将相机向内移动多少,其默认值为*0*。
+			你能够将相机向内移动多少(仅适用于[page:PerspectiveCamera]),其默认值为*0*。
+		</p>
+
+		<h3>[property:Float maxZoom]</h3>
+		<p>
+			你能够将相机缩小多少(仅适用于[page:OrthographicCamera]),其默认值为*Infinity*。
+		</p>
+
+		<h3>[property:Float minZoom]</h3>
+		<p>
+			你能够将相机放大多少(仅适用于[page:OrthographicCamera]),其默认值为*0*。
 		</p>
 		</p>
 
 
 		<h3>
 		<h3>

+ 2 - 2
docs/examples/zh/utils/BufferGeometryUtils.html

@@ -84,7 +84,7 @@
 
 
 		</p>
 		</p>
 
 
-		<h3>[method:BufferAttribute mergeBufferAttributes]( [param:Array attributes] )</h3>
+		<h3>[method:BufferAttribute mergeAttributes]( [param:Array attributes] )</h3>
 		<p>
 		<p>
 		attributes -- 由 [page:BufferAttribute BufferAttribute] 实例组成的数组。<br /><br />
 		attributes -- 由 [page:BufferAttribute BufferAttribute] 实例组成的数组。<br /><br />
 
 
@@ -93,7 +93,7 @@
 
 
 		</p>
 		</p>
 
 
-		<h3>[method:BufferGeometry mergeBufferGeometries]( [param:Array geometries], [param:Boolean useGroups] )</h3>
+		<h3>[method:BufferGeometry mergeGeometries]( [param:Array geometries], [param:Boolean useGroups] )</h3>
 		<p>
 		<p>
 		geometries -- 由 [page:BufferGeometry BufferGeometry] 实例的数组。<br />
 		geometries -- 由 [page:BufferGeometry BufferGeometry] 实例的数组。<br />
 		useGroups -- 是否要为了合并几何体而产生组。<br /><br />
 		useGroups -- 是否要为了合并几何体而产生组。<br /><br />

+ 1 - 1
docs/examples/zh/utils/SkeletonUtils.html

@@ -19,7 +19,7 @@
 		</p>
 		</p>
 
 
 		<code>
 		<code>
-			import { SkeletonUtils } from 'three/addons/utils/SkeletonUtils.js';
+			import * as SkeletonUtils from 'three/addons/utils/SkeletonUtils.js';
 		</code>
 		</code>
 
 
 		<h2>方法</h2>
 		<h2>方法</h2>

+ 34 - 22
docs/list.json

@@ -5,10 +5,9 @@
 		"Manual": {
 		"Manual": {
 
 
 			"Getting Started": {
 			"Getting Started": {
-				"Creating a scene": "manual/en/introduction/Creating-a-scene",
 				"Installation": "manual/en/introduction/Installation",
 				"Installation": "manual/en/introduction/Installation",
+				"Creating a scene": "manual/en/introduction/Creating-a-scene",
 				"WebGL compatibility check": "manual/en/introduction/WebGL-compatibility-check",
 				"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",
 				"Drawing lines": "manual/en/introduction/Drawing-lines",
 				"Creating text": "manual/en/introduction/Creating-text",
 				"Creating text": "manual/en/introduction/Creating-text",
 				"Loading 3D models": "manual/en/introduction/Loading-3D-models",
 				"Loading 3D models": "manual/en/introduction/Loading-3D-models",
@@ -18,10 +17,10 @@
 			},
 			},
 
 
 			"Next Steps": {
 			"Next Steps": {
-				"How to update things": "manual/en/introduction/How-to-update-things",
-				"How to dispose of objects": "manual/en/introduction/How-to-dispose-of-objects",
-				"How to create VR content": "manual/en/introduction/How-to-create-VR-content",
-				"How to use post-processing": "manual/en/introduction/How-to-use-post-processing",
+				"Updating resources": "manual/en/introduction/How-to-update-things",
+				"Disposing resources": "manual/en/introduction/How-to-dispose-of-objects",
+				"Creating VR content": "manual/en/introduction/How-to-create-VR-content",
+				"Post-processing": "manual/en/introduction/How-to-use-post-processing",
 				"Matrix transformations": "manual/en/introduction/Matrix-transformations",
 				"Matrix transformations": "manual/en/introduction/Matrix-transformations",
 				"Animation system": "manual/en/introduction/Animation-system",
 				"Animation system": "manual/en/introduction/Animation-system",
 				"Color management": "manual/en/introduction/Color-management"
 				"Color management": "manual/en/introduction/Color-management"
@@ -340,6 +339,7 @@
 				"DragControls": "examples/en/controls/DragControls",
 				"DragControls": "examples/en/controls/DragControls",
 				"FirstPersonControls": "examples/en/controls/FirstPersonControls",
 				"FirstPersonControls": "examples/en/controls/FirstPersonControls",
 				"FlyControls": "examples/en/controls/FlyControls",
 				"FlyControls": "examples/en/controls/FlyControls",
+				"MapControls": "examples/en/controls/MapControls",
 				"OrbitControls": "examples/en/controls/OrbitControls",
 				"OrbitControls": "examples/en/controls/OrbitControls",
 				"PointerLockControls": "examples/en/controls/PointerLockControls",
 				"PointerLockControls": "examples/en/controls/PointerLockControls",
 				"TrackballControls": "examples/en/controls/TrackballControls",
 				"TrackballControls": "examples/en/controls/TrackballControls",
@@ -445,10 +445,9 @@
 		"الكتيب": {
 		"الكتيب": {
 
 
 			"البدء": {
 			"البدء": {
-				"إنشاء مشهد": "manual/ar/introduction/Creating-a-scene",
 				"التثبيت": "manual/ar/introduction/Installation",
 				"التثبيت": "manual/ar/introduction/Installation",
+				"إنشاء مشهد": "manual/ar/introduction/Creating-a-scene",
 				"فحص توافق WebGL": "manual/ar/introduction/WebGL-compatibility-check",
 				"فحص توافق WebGL": "manual/ar/introduction/WebGL-compatibility-check",
-				"كيف تدير الأشياء محليًا": "manual/ar/introduction/How-to-run-things-locally",
 				"رسم خطوط": "manual/ar/introduction/Drawing-lines",
 				"رسم خطوط": "manual/ar/introduction/Drawing-lines",
 				"إنشاء نص": "manual/ar/introduction/Creating-text",
 				"إنشاء نص": "manual/ar/introduction/Creating-text",
 				"تحميل نماذج ثلاثية الأبعاد": "manual/ar/introduction/Loading-3D-models",
 				"تحميل نماذج ثلاثية الأبعاد": "manual/ar/introduction/Loading-3D-models",
@@ -516,10 +515,9 @@
 		"手册": {
 		"手册": {
 
 
 			"起步": {
 			"起步": {
-				"创建一个场景": "manual/zh/introduction/Creating-a-scene",
 				"安装": "manual/zh/introduction/Installation",
 				"安装": "manual/zh/introduction/Installation",
+				"创建一个场景": "manual/zh/introduction/Creating-a-scene",
 				"WebGL兼容性检查": "manual/zh/introduction/WebGL-compatibility-check",
 				"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/Drawing-lines",
 				"创建文字": "manual/zh/introduction/Creating-text",
 				"创建文字": "manual/zh/introduction/Creating-text",
 				"载入3D模型": "manual/zh/introduction/Loading-3D-models",
 				"载入3D模型": "manual/zh/introduction/Loading-3D-models",
@@ -907,10 +905,9 @@
 		"매뉴얼": {
 		"매뉴얼": {
 
 
 			"시작하기": {
 			"시작하기": {
-				"장면 만들기": "manual/ko/introduction/Creating-a-scene",
 				"설치": "manual/ko/introduction/Installation",
 				"설치": "manual/ko/introduction/Installation",
+				"장면 만들기": "manual/ko/introduction/Creating-a-scene",
 				"WebGL 호환성 검사": "manual/ko/introduction/WebGL-compatibility-check",
 				"WebGL 호환성 검사": "manual/ko/introduction/WebGL-compatibility-check",
-				"로컬 환경에서 구동 방법": "manual/ko/introduction/How-to-run-things-locally",
 				"선 그리기": "manual/ko/introduction/Drawing-lines",
 				"선 그리기": "manual/ko/introduction/Drawing-lines",
 				"텍스트 만들기": "manual/ko/introduction/Creating-text",
 				"텍스트 만들기": "manual/ko/introduction/Creating-text",
 				"3D 모델 불러오기": "manual/ko/introduction/Loading-3D-models",
 				"3D 모델 불러오기": "manual/ko/introduction/Loading-3D-models",
@@ -1081,10 +1078,9 @@
 		"マニュアル": {
 		"マニュアル": {
 
 
 			"はじめてみましょう": {
 			"はじめてみましょう": {
-				"シーンの作成": "manual/ja/introduction/Creating-a-scene",
 				"インストールの方法": "manual/ja/introduction/Installation",
 				"インストールの方法": "manual/ja/introduction/Installation",
+				"シーンの作成": "manual/ja/introduction/Creating-a-scene",
 				"WebGLの互換性の確認": "manual/ja/introduction/WebGL-compatibility-check",
 				"WebGLの互換性の確認": "manual/ja/introduction/WebGL-compatibility-check",
-				"localで実行する方法": "manual/ja/introduction/How-to-run-things-locally",
 				"線を引く": "manual/ja/introduction/Drawing-lines",
 				"線を引く": "manual/ja/introduction/Drawing-lines",
 				"テキストを作成する": "manual/ja/introduction/Creating-text",
 				"テキストを作成する": "manual/ja/introduction/Creating-text",
 				"3Dモデルをロードする": "manual/ja/introduction/Loading-3D-models",
 				"3Dモデルをロードする": "manual/ja/introduction/Loading-3D-models",
@@ -1115,10 +1111,9 @@
 		"Manuale": {
 		"Manuale": {
 
 
 			"Per iniziare": {
 			"Per iniziare": {
-				"Creare una scena": "manual/it/introduction/Creating-a-scene",
 				"Installazione": "manual/it/introduction/Installation",
 				"Installazione": "manual/it/introduction/Installation",
+				"Creare una scena": "manual/it/introduction/Creating-a-scene",
 				"Controllo compatibilità WebGL": "manual/it/introduction/WebGL-compatibility-check",
 				"Controllo compatibilità WebGL": "manual/it/introduction/WebGL-compatibility-check",
-				"Esecuzione in locale": "manual/it/introduction/How-to-run-things-locally",
 				"Disegnare linee": "manual/it/introduction/Drawing-lines",
 				"Disegnare linee": "manual/it/introduction/Drawing-lines",
 				"Creare testo": "manual/it/introduction/Creating-text",
 				"Creare testo": "manual/it/introduction/Creating-text",
 				"Caricare modelli 3D": "manual/it/introduction/Loading-3D-models",
 				"Caricare modelli 3D": "manual/it/introduction/Loading-3D-models",
@@ -1441,10 +1436,9 @@
 		"Manual": {
 		"Manual": {
 
 
 			"Comece a usar": {
 			"Comece a usar": {
-				"Criando uma cena": "manual/pt-br/introduction/Creating-a-scene",
 				"Instalação": "manual/pt-br/introduction/Installation",
 				"Instalação": "manual/pt-br/introduction/Installation",
+				"Criando uma cena": "manual/pt-br/introduction/Creating-a-scene",
 				"Compatibilidade WebGL": "manual/pt-br/introduction/WebGL-compatibility-check",
 				"Compatibilidade WebGL": "manual/pt-br/introduction/WebGL-compatibility-check",
-				"Como executar localmente": "manual/pt-br/introduction/How-to-run-things-locally",
 				"Desenhando linhas": "manual/pt-br/introduction/Drawing-lines",
 				"Desenhando linhas": "manual/pt-br/introduction/Drawing-lines",
 				"Criando texto": "manual/pt-br/introduction/Creating-text",
 				"Criando texto": "manual/pt-br/introduction/Creating-text",
 				"Carregando modelos 3D": "manual/pt-br/introduction/Loading-3D-models",
 				"Carregando modelos 3D": "manual/pt-br/introduction/Loading-3D-models",
@@ -1527,10 +1521,9 @@
 		"Manuel": {
 		"Manuel": {
 
 
 			"Débuter": {
 			"Débuter": {
-				"Créer une scène": "manual/fr/introduction/Creating-a-scene",
 				"Installation": "manual/fr/introduction/Installation",
 				"Installation": "manual/fr/introduction/Installation",
+				"Créer une scène": "manual/fr/introduction/Creating-a-scene",
 				"Compatibilité WebGL": "manual/fr/introduction/WebGL-compatibility-check",
 				"Compatibilité WebGL": "manual/fr/introduction/WebGL-compatibility-check",
-				"Exécuter localement": "manual/fr/introduction/How-to-run-things-locally",
 				"Dessiner des lignes": "manual/fr/introduction/Drawing-lines",
 				"Dessiner des lignes": "manual/fr/introduction/Drawing-lines",
 				"Créer un texte": "manual/fr/introduction/Creating-text",
 				"Créer un texte": "manual/fr/introduction/Creating-text",
 				"Importer des modèles 3D": "manual/fr/introduction/Loading-3D-models",
 				"Importer des modèles 3D": "manual/fr/introduction/Loading-3D-models",
@@ -1629,6 +1622,26 @@
 				"TorusKnotGeometry": "api/fr/geometries/TorusKnotGeometry",
 				"TorusKnotGeometry": "api/fr/geometries/TorusKnotGeometry",
 				"TubeGeometry": "api/fr/geometries/TubeGeometry",
 				"TubeGeometry": "api/fr/geometries/TubeGeometry",
 				"WireframeGeometry": "api/fr/geometries/WireframeGeometry"
 				"WireframeGeometry": "api/fr/geometries/WireframeGeometry"
+			},
+			"Matériaux": {
+				"LineBasicMaterial": "api/fr/materials/LineBasicMaterial",
+				"LineDashedMaterial": "api/fr/materials/LineDashedMaterial",
+				"Material": "api/fr/materials/Material",
+				"MeshBasicMaterial": "api/fr/materials/MeshBasicMaterial",
+				"MeshDepthMaterial": "api/fr/materials/MeshDepthMaterial",
+				"MeshDistanceMaterial": "api/fr/materials/MeshDistanceMaterial",
+				"MeshLambertMaterial": "api/fr/materials/MeshLambertMaterial",
+				"MeshMatcapMaterial": "api/fr/materials/MeshMatcapMaterial",
+				"MeshNormalMaterial": "api/fr/materials/MeshNormalMaterial",
+				"MeshPhongMaterial": "api/fr/materials/MeshPhongMaterial",
+				"MeshPhysicalMaterial": "api/fr/materials/MeshPhysicalMaterial",
+				"MeshStandardMaterial": "api/fr/materials/MeshStandardMaterial",
+				"MeshToonMaterial": "api/fr/materials/MeshToonMaterial",
+				"PointsMaterial": "api/fr/materials/PointsMaterial",
+				"RawShaderMaterial": "api/fr/materials/RawShaderMaterial",
+				"ShaderMaterial": "api/fr/materials/ShaderMaterial",
+				"ShadowMaterial": "api/fr/materials/ShadowMaterial",
+				"SpriteMaterial": "api/fr/materials/SpriteMaterial"
 			}
 			}
 
 
 		}
 		}
@@ -1640,10 +1653,9 @@
 		"Руководство": {
 		"Руководство": {
 
 
 			"Приступая к работе": {
 			"Приступая к работе": {
-				"Создание сцены": "manual/ru/introduction/Creating-a-scene",
 				"Установка": "manual/ru/introduction/Installation",
 				"Установка": "manual/ru/introduction/Installation",
+				"Создание сцены": "manual/ru/introduction/Creating-a-scene",
 				"Проверка совместимости с WebGL": "manual/ru/introduction/WebGL-compatibility-check",
 				"Проверка совместимости с WebGL": "manual/ru/introduction/WebGL-compatibility-check",
-				"Локальная разработка ": "manual/ru/introduction/How-to-run-things-locally",
 				"Рисование линий": "manual/ru/introduction/Drawing-lines",
 				"Рисование линий": "manual/ru/introduction/Drawing-lines",
 				"Создание текста": "manual/ru/introduction/Creating-text",
 				"Создание текста": "manual/ru/introduction/Creating-text",
 				"Загрузка 3D-моделей": "manual/ru/introduction/Loading-3D-models",
 				"Загрузка 3D-моделей": "manual/ru/introduction/Loading-3D-models",

+ 0 - 140
docs/manual/ar/introduction/How-to-run-things-locally.html

@@ -1,140 +0,0 @@
-<!DOCTYPE html>
-<html lang="ar">
-	<head>
-		<meta charset="utf-8">
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body class="rtl">
-		<h1>كيف تدير الأشياء محليًا</h1>
-		<p>
-			إذا كنت تستخدم الأشكال الهندسية الإجرائية فقط ولا تقوم بتحميل أي مواد ، فيجب أن تعمل صفحات الويب مباشرة من نظام الملفات ، فقط انقر نقرًا مزدوجًا فوق ملف HTML في مدير الملفات
-			يجب أن يعرض محتوى الصفحة في المتصفح (سترى <em>file:///yourFile.html</em> في شريط العناوين).
-		</p>
-
-		<h2>المحتوى الذي تم تحميله من ملفات خارجية</h2>
-		<div>
-			<p>
-				إذا قمت بتحميل نماذج وأنسجة من ملفات خارجية ، نظرًا لقيود أمان المتصفحات [link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy] ، فسيفشل التحميل من نظام الملفات مع استثناء أمان.
-		 	</p>
-
-			<p>هناك طريقتان لحل هذا:</p>
-
-			<ol>
-				<li>
-					قم بتغيير أمان الملفات المحلية في المستعرض. يتيح لك ذلك الوصول إلى صفحتك على النحو التالي: <code>file:///yourFile.html</code>
-				</li>
-				<li>
-					قم بتشغيل الملفات من خادم ويب محلي. يتيح لك هذا الوصول إلى صفحتك على النحو التالي: <code>http://localhost/yourFile.html</code>
-				</li>
-			</ol>
-
-			<p>
-				إذا كنت تستخدم الخيار 1 ، فاعلم أنك قد تفتح نفسك لبعض نقاط الضعف إذا كنت تستخدم نفس المتصفح لتصفح الويب. قد ترغب في إنشاء ملف تعريف / اختصار متصفح منفصل يستخدم فقط للتطور لتكون في مأمن. دعنا نمر إلى كل خيار على حدة.
-			</p>
-		</div>
-
-
-		<h2>قم بتشغيل خادم محلي</h2>
-		<div>
-			<p>
-				تحتوي العديد من لغات البرمجة على خوادم HTTP بسيطة مضمنة فيها. فهي ليست كاملة الميزات مثل خوادم الإنتاج مثل [link:https://www.apache.org/ Apache] أو [link:https://nginx.org NGINX] ، ولكن يجب أن تكون كافية لاختبار تطبيق three.js الخاص بك.
-			</p>
-
-			<h3>إضافات لمحررات الأكواد الأكثر إستعمالا</h3>
-			<div>
-				<p>تحتوي بعض برامج تحرير الأكواد على مكونات إضافية والتي ستنتج خادمًا بسيطًا عند الطلب.</p>
-				<ul>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] لـ Visual Studio Code.</li>
-					<li>[link:https://atom.io/packages/atom-live-server Live Server] لـ Atom.</li>
-				</ul>
-			</div>
-
-			<h3>Servez</h3>
-			<div>
-				<p>
-					[link:https://greggman.github.io/servez Servez] هو خادم بسيط مع واجهة المستخدم.
-				</p>
-			</div>
-
-			<h3>Node.js http-server</h3>
-			<div>
-				<p>يحتوي Node.js على حزمة خادم HTTP بسيطة. لتثبيت:</p>
-				<code>npm install http-server -g</code>
-
-				<p>للتشغيل (من دليلك المحلي):</p>
-				<code>http-server . -p 8000</code>
-			</div>
-
-			<h3>خادم Python</h3>
-			<div>
-				<p>
-					إذا كان لديك [link:http://python.org/ Python] مثبتًا ، فيجب أن يكون كافيًا لتشغيل هذا من سطر أوامر (من دليل العمل الخاص بك):
-				</p>
-				<code>
-//Python 2.x
-python -m SimpleHTTPServer
-
-//Python 3.x
-python -m http.server
-				</code>
-
-				<p>سيخدم هذا الملفات من الدليل الحالي في المضيف المحلي تحت المنفذ 8000 ، كمثال في شريط العنوان اكتب:</p>
-
-				<code>http://localhost:8000/</code>
-			</div>
-
-			<h3>خادم Ruby</h3>
-			<div>
-				<p>إذا قمت بتثبيت Ruby ، فيمكنك الحصول على نفس النتيجة بتشغيل هذا بدلاً من ذلك:</p>
-				<code>
-ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-			</div>
-
-			<h3>خادم PHP</h3>
-			<div>
-				<p>تحتوي PHP أيضًا على خادم ويب مدمج ، بدءًا من php 5.4.0:</p>
-				<code>php -S localhost:8000</code>
-			</div>
-
-			<h3>Lighttpd</h3>
-			<div>
-				<p>
-					Lighttpd هو خادم ويب خفيف الوزن للغاية للأغراض العامة. سنغطي تثبيته على OSX مع HomeBrew هنا. على عكس الخوادم الأخرى التي تمت مناقشتها هنا ، فإن lighttpd هو خادم جاهز للإنتاج الكامل.
-				</p>
-
-				<ol>
-					<li>
-						تثبيته بواسطة homebrew
-						<code>brew install lighttpd</code>
-					</li>
-					<li>
-						قم بإنشاء ملف ترتيب (configuration) يسمى lighttpd.conf في المجلد حيث تريد تشغيل خادم الويب الخاص بك. يوجد نموذج [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration here].
-					 </li>
-					<li>
-						في ملف conf ، قم بتغيير server.document-root إلى الدليل الذي تريد خدمة الملفات منه.
-					</li>
-					<li>
-						شغله من خلال الأمر التالي:
-						<code>lighttpd -f lighttpd.conf</code>
-					</li>
-					<li>
-						انتقل إلى http://localhost:3000 وسيخدم الملفات الثابتة من الدليل الذي تختاره.
-					</li>
-				</ol>
-			</div>
-			<h3>IIS</h3>
-			<div>
-				<p>إذا كنت تستخدم Microsoft IIS كخادم ويب. الرجاء إضافة إعدادات نوع MIME فيما يتعلق بامتداد .fbx قبل التحميل.</p>
-				<code>File name extension: fbx        MIME Type: text/plain</code>
-				<p>بشكل تلقائي ، يقوم IIS بحظر تنزيل ملفات .fbx و .obj. يجب عليك تعديل IIS لتمكين تنزيل هذا النوع من الملفات.</p>
-			</div>
-			<p>
-				تمت مناقشة البدائل البسيطة الأخرى هنا [link:http://stackoverflow.com/q/12905426/24874 here] على Stack Overflow.
-			</p>
-		</div>
-
-	</body>
-</html>

+ 1 - 1
docs/manual/ar/introduction/Loading-3D-models.html

@@ -24,7 +24,7 @@
 	<h2>قبل أن نبدأ</h2>
 	<h2>قبل أن نبدأ</h2>
 
 
 	<p>
 	<p>
-		إذا كنت جديدًا في تشغيل خادم محلي ، فابدأ بكيفية إدارة الأشياء محليًا [link:#manual/introduction/How-to-run-things-locally how to run things locally] أولاً. يمكن تجنب العديد من الأخطاء الشائعة أثناء عرض النماذج ثلاثية الأبعاد عن طريق استضافة الملفات بشكل صحيح.
+		إذا كنت جديدًا في تشغيل خادم محلي ، فابدأ بكيفية إدارة الأشياء محليًا [link:#manual/introduction/Installation installation] أولاً. يمكن تجنب العديد من الأخطاء الشائعة أثناء عرض النماذج ثلاثية الأبعاد عن طريق استضافة الملفات بشكل صحيح.
 	</p>
 	</p>
 
 
 	<h2>سير العمل الموصى به</h2>
 	<h2>سير العمل الموصى به</h2>

+ 36 - 46
docs/manual/en/introduction/Creating-a-scene.html

@@ -13,35 +13,19 @@
 
 
 		<h2>Before we start</h2>
 		<h2>Before we start</h2>
 
 
-		<p>Before you can use three.js, you need somewhere to display it. Save the following HTML to a file on your computer and open it in your browser.</p>
-
-		<code>
-		&lt;!DOCTYPE html&gt;
-		&lt;html&gt;
-			&lt;head&gt;
-				&lt;meta charset="utf-8"&gt;
-				&lt;title&gt;My first three.js app&lt;/title&gt;
-				&lt;style&gt;
-					body { margin: 0; }
-				&lt;/style&gt;
-			&lt;/head&gt;
-			&lt;body&gt;
-				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
-
-					// Our Javascript will go here.
-				&lt;/script&gt;
-			&lt;/body&gt;
-		&lt;/html&gt;
-		</code>
-
-		<p>That's all. All the code below goes into the empty &lt;script&gt; tag.</p>
+		<p>
+			If you haven't yet, go through the [link:#manual/introduction/Installation Installation] guide. We'll assume you've already set up the same project structure (including <i>index.html</i> and <i>main.js</i>), have installed three.js, and are either running a build tool, or using a local server with a CDN and import maps.
+		</p>
 
 
 		<h2>Creating the scene</h2>
 		<h2>Creating the scene</h2>
 
 
 		<p>To actually be able to display anything with three.js, we need three things: scene, camera and renderer, so that we can render the scene with camera.</p>
 		<p>To actually be able to display anything with three.js, we need three things: scene, camera and renderer, so that we can render the scene with camera.</p>
 
 
+		<p><i>main.js —</i></p>
+
 		<code>
 		<code>
+		import * as THREE from 'three';
+
 		const scene = new THREE.Scene();
 		const scene = new THREE.Scene();
 		const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 		const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 
 
@@ -117,10 +101,12 @@
 
 
 		<p>The full code is available below and as an editable [link:https://jsfiddle.net/em4j9hvu/ live example]. Play around with it to get a better understanding of how it works.</p>
 		<p>The full code is available below and as an editable [link:https://jsfiddle.net/em4j9hvu/ live example]. Play around with it to get a better understanding of how it works.</p>
 
 
+		<p><i>index.html —</i></p>
+
 		<code>
 		<code>
 		&lt;!DOCTYPE html&gt;
 		&lt;!DOCTYPE html&gt;
 		&lt;html&gt;
 		&lt;html&gt;
-			&lt;head&gt;
+			&lt;head lang="en"&gt;
 				&lt;meta charset="utf-8"&gt;
 				&lt;meta charset="utf-8"&gt;
 				&lt;title&gt;My first three.js app&lt;/title&gt;
 				&lt;title&gt;My first three.js app&lt;/title&gt;
 				&lt;style&gt;
 				&lt;style&gt;
@@ -128,36 +114,40 @@
 				&lt;/style&gt;
 				&lt;/style&gt;
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
-				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+				&lt;script type="module" src="/main.js"&gt;&lt;/script&gt;
+			&lt;/body&gt;
+		&lt;/html&gt;
+		</code>
 
 
-					const scene = new THREE.Scene();
-					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
+		<p><i>main.js —</i></p>
 
 
-					const renderer = new THREE.WebGLRenderer();
-					renderer.setSize( window.innerWidth, window.innerHeight );
-					document.body.appendChild( renderer.domElement );
+		<code>
+		import * as THREE from 'three';
 
 
-					const geometry = new THREE.BoxGeometry( 1, 1, 1 );
-					const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
-					const cube = new THREE.Mesh( geometry, material );
-					scene.add( cube );
+		const scene = new THREE.Scene();
+		const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 
 
-					camera.position.z = 5;
+		const renderer = new THREE.WebGLRenderer();
+		renderer.setSize( window.innerWidth, window.innerHeight );
+		document.body.appendChild( renderer.domElement );
 
 
-					function animate() {
-						requestAnimationFrame( animate );
+		const geometry = new THREE.BoxGeometry( 1, 1, 1 );
+		const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		const cube = new THREE.Mesh( geometry, material );
+		scene.add( cube );
 
 
-						cube.rotation.x += 0.01;
-						cube.rotation.y += 0.01;
+		camera.position.z = 5;
 
 
-						renderer.render( scene, camera );
-					}
+		function animate() {
+			requestAnimationFrame( animate );
 
 
-					animate();
-				&lt;/script&gt;
-			&lt;/body&gt;
-		&lt;/html&gt;
+			cube.rotation.x += 0.01;
+			cube.rotation.y += 0.01;
+
+			renderer.render( scene, camera );
+		}
+
+		animate();
 		</code>
 		</code>
 	</body>
 	</body>
 </html>
 </html>

+ 5 - 0
docs/manual/en/introduction/FAQ.html

@@ -56,5 +56,10 @@ visible_height = 2 * Math.tan( ( Math.PI / 180 ) * camera.fov / 2 ) * distance_f
 		<p>
 		<p>
 			For performance reasons, three.js doesn't validate inputs in most cases. It's your app's responsibility to make sure that all inputs are valid.
 			For performance reasons, three.js doesn't validate inputs in most cases. It's your app's responsibility to make sure that all inputs are valid.
 		</p>
 		</p>
+
+		<h2>Can I use three.js in Node.js?</h2>
+		<p>
+			Because three.js is built for the web, it depends on browser and DOM APIs that don't always exist in Node.js. Some of these issues can be avoided by using shims like [link:https://github.com/stackgl/headless-gl headless-gl] and [link:https://github.com/rstacruz/jsdom-global jsdom-global], or by replacing components like [page:TextureLoader] with custom alternatives. Other DOM APIs may be deeply intertwined with the code that uses them, and will be harder to work around. We welcome simple and maintainable pull requests to improve Node.js support, but recommend opening an issue to discuss your improvements first.
+		</p>
 	</body>
 	</body>
 </html>
 </html>

+ 0 - 169
docs/manual/en/introduction/How-to-run-things-locally.html

@@ -1,169 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-		<p>
-			If you use just procedural geometries and don't load any textures, webpages should work
-			straight from the file system, just double-click on HTML file in a file manager and it
-			should appear working in the browser (you'll see <em>file:///yourFile.html</em> in the address bar).
-		</p>
-
-		<h2>Content loaded from external files</h2>
-		<div>
-			<p>
-				If you load models or textures from external files, due to browsers' [link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy]
-			 	security restrictions, loading from a file system will fail with a security exception.
-		 	</p>
-
-			<p>
-				To solve this, run files from a local web server. This allows you to access your page as:
-			</p>
-			
-			<p>
-				<code>http://localhost/yourFile.html</code>
-			</p>
-
-			<p>
-				While it is also possible to change browser security settings instead of running a local server,
-				we do not recommend that approach. Doing so may open your device up to vulnerabilities, if the
-				same browser is used for regular web surfing. Use of a local server is standard practice in 
-				web development, and we explain how to install and use a local server below.
-			</p>
-		</div>
-
-
-		<h2>Run a local server</h2>
-		<div>
-			<p>
-				Many programming languages have simple HTTP servers built in. They are not as full featured as
-				production servers such as [link:https://www.apache.org/ Apache] or [link:https://nginx.org NGINX], however they should be sufficient for testing your
-				three.js application.
-			</p>
-
-			<h3>Plugins for popular code editors</h3>
-			<div>
-				<p>Some code editors have plugins which will spawn a simple server on demand.</p>
-				<ul>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] for Visual Studio Code.</li>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] for Visual Studio Code.</li>
-					<li>[link:https://atom.io/packages/atom-live-server Live Server] for Atom.</li>
-				</ul>
-			</div>
-
-			<h3>Servez</h3>
-			<div>
-				<p>
-					[link:https://greggman.github.io/servez Servez] is a simple server with a GUI.
-				</p>
-			</div>
-
-			<h3>Node.js five-server</h3>
-			<div>
-				<p>Development server with live reload capability. To install:</p>
-				<code>
-# Remove live-server (if you have it)
-npm -g rm live-server
-
-# Install five-server
-npm -g i five-server
-
-# Update five-server (from time to time)
-npm -g i five-server@latest
-				</code>
-
-				<p>To run (from your local directory):</p>
-				<code>five-server . -p 8000</code>
-			</div>
-
-			<h3>Node.js http-server</h3>
-			<div>
-				<p>Node.js has a simple HTTP server package. To install:</p>
-				<code>npm install http-server -g</code>
-
-				<p>To run (from your local directory):</p>
-				<code>http-server . -p 8000</code>
-			</div>
-
-			<h3>Python server</h3>
-			<div>
-				<p>
-					If you have [link:http://python.org/ Python] installed, it should be enough to run this
-					from a command line (from your working directory):
-				</p>
-				<code>
-//Python 2.x
-python -m SimpleHTTPServer
-
-//Python 3.x
-python -m http.server
-				</code>
-
-				<p>This will serve files from the current directory at localhost under port 8000, i.e in the address bar type:</p>
-
-				<code>http://localhost:8000/</code>
-			</div>
-
-			<h3>Ruby server</h3>
-			<div>
-				<p>If you have Ruby installed, you can get the same result running this instead:</p>
-				<code>
-ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-			</div>
-
-			<h3>PHP server</h3>
-			<div>
-				<p>PHP also has a built-in web server, starting with php 5.4.0:</p>
-				<code>php -S localhost:8000</code>
-			</div>
-
-			<h3>Lighttpd</h3>
-			<div>
-				<p>
-					Lighttpd is a very lightweight general purpose webserver. We'll cover installing it on OSX with
-					HomeBrew here. Unlike the other servers discussed here, lighttpd is a full fledged production
-					ready server.
-				</p>
-
-				<ol>
-					<li>
-						Install it via homebrew
-						<code>brew install lighttpd</code>
-					</li>
-					<li>
-						Create a configuration file called lighttpd.conf in the directory where you want to run
-						your webserver. There is a sample [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration here].
-					 </li>
-					<li>
-						In the conf file, change the server.document-root to the directory you want to serve files from.
-					</li>
-					<li>
-						Start it with
-						<code>lighttpd -f lighttpd.conf</code>
-					</li>
-					<li>
-						Navigate to http://localhost:3000/ and it will serve static files from the directory you
-						chose.
-					</li>
-				</ol>
-			</div>
-			<h3>IIS</h3>
-			<div>
-				<p>If you are using Microsoft IIS as web server. Please add a MIME type settings regarding .fbx extension before loading.</p>
-				<code>File name extension: fbx        MIME Type: text/plain</code>
-				<p>By default, IIS blocks .fbx, .obj files downloads. You have to configure IIS to enable these kind of files can be download.</p>
-			</div>
-			<p>
-				Other simple alternatives are [link:http://stackoverflow.com/q/12905426/24874 discussed here]
-				on Stack Overflow.
-			</p>
-		</div>
-
-	</body>
-</html>

+ 196 - 87
docs/manual/en/introduction/Installation.html

@@ -9,150 +9,259 @@
 	<body>
 	<body>
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<p>
-			You can install three.js with [link:https://www.npmjs.com/ npm] and modern build tools, or get started quickly with just static hosting or a CDN. For most users, installing from npm is the best choice.
-		</p>
+		<h2>Project structure</h2>
 
 
 		<p>
 		<p>
-			Whichever you choose, be consistent and import all files from the same version of the library. Mixing files from different sources may cause duplicate code to be included, or even break the application in unexpected ways.
+			Every three.js project needs at least one HTML file to define the webpage, and a JavaScript file to run your three.js code. The structure and naming choices below aren't required, but will be used throughout this guide for consistency.
 		</p>
 		</p>
 
 
+		<ul>
+			<li>
+				<i>index.html</i>
+				<code>
+		&lt;!DOCTYPE html&gt;
+		&lt;html lang="en"&gt;
+			&lt;head&gt;
+				&lt;meta charset="utf-8"&gt;
+				&lt;title&gt;My first three.js app&lt;/title&gt;
+				&lt;style&gt;
+					body { margin: 0; }
+				&lt;/style&gt;
+			&lt;/head&gt;
+			&lt;body&gt;
+				&lt;script type="module" src="/main.js"&gt;&lt;/script&gt;
+			&lt;/body&gt;
+		&lt;/html&gt;
+				</code>
+			</li>
+			<li>
+				<i>main.js</i>
+				<code>
+import * as THREE from 'three';
+
+...
+				</code>
+			</li>
+			<li>
+				<i>public/</i>
+				<ul>
+					<li>
+						The <i>public/</i> folder is sometimes also called a "static" folder, because the files it contains are pushed to the website unchanged. Usually textures, audio, and 3D models will go here.
+					</li>
+				</ul>
+			</li>
+		</ul>
+
 		<p>
 		<p>
-			All methods of installing three.js depend on ES modules (see [link:https://eloquentjavascript.net/10_modules.html#h_hF2FmOVxw7 Eloquent JavaScript: ECMAScript Modules]), which allow you to include only the parts of the library needed in the final project.
+			Now that we've set up the basic project structure, we need a way to run the project locally and access it through a web browser. Installation and local development can be accomplished with npm and a build tool, or by importing three.js from a CDN. Both options are explained in the sections below.
 		</p>
 		</p>
 
 
-		<h2>Install from npm</h2>
+		<h2>Option 1: Install with NPM and a build tool</h2>
+
+		<h3>Development</h3>
 
 
 		<p>
 		<p>
-			To install the [link:https://www.npmjs.com/package/three three] npm module, open a terminal window in your project folder and run:
+			Installing from the [link:https://www.npmjs.com/ npm package registry] and using a [link:https://eloquentjavascript.net/10_modules.html#h_zWTXAU93DC build tool] is the recommended approach for most users — the more dependencies your project needs, the more likely you are to run into problems that the static hosting cannot easily resolve. With a build tool, importing local JavaScript files and npm packages should work out of the box, without import maps.
 		</p>
 		</p>
 
 
-		<code>
-		npm install three
-		</code>
+
+		<ol>
+			<li>
+				Install [link:https://nodejs.org/ Node.js]. We'll need it to load manage dependencies and to run our build tool.
+			</li>
+			<li>
+				<p>
+					Install three.js and a build tool, [link:https://vitejs.dev/ Vite], using a [link:https://www.joshwcomeau.com/javascript/terminal-for-js-devs/ terminal] in your project folder. Vite will be used during development, but it isn't part of the final webpage. If you prefer to use another build tool, that's fine — we support modern build tools that can import [link:https://eloquentjavascript.net/10_modules.html#h_zWTXAU93DC ES Modules].
+				</p>
+				<code>
+# three.js
+npm install --save three
+
+# vite
+npm install --save-dev vite
+				</code>
+				<aside>
+					<details>
+						<summary>Installation added <i>node_modules/</i> and <i>package.json</i> to my project. What are they?</summary>
+						<p>
+							npm uses <i>package.json</i> to describe which versions of each dependency you've installed. If you have other people working on the project with you, they can install the original versions of each dependency simply by running <i>npm install</i>. If you're using version history, commit <i>package.json</i>.
+						</p>
+						<p>
+							npm the code for each dependency in a new <i>node_modules/</i> folder. When Vite builds your application, it sees imports for 'three' and pulls three.js files automatically from this folder. The <i>node_modules/</i> folder is used only during development, and shouldn't be uploaded to your web hosting provider or committed to version history.
+						</p>
+					</details>
+				</aside>
+			</li>
+			<li>
+				From your terminal, run:
+				<code>
+					npx vite
+				</code>
+				<aside>
+					<details>
+						<summary>What is <i>npx</i>?</summary>
+						<p>
+							npx is installed with Node.js, and runs command line programs like Vite so that you don't have to search for the right file in <i>node_modules/</i> yourself. If you prefer, you can put [link:https://vitejs.dev/guide/#command-line-interface Vite's common commands] into the [link:https://docs.npmjs.com/cli/v9/using-npm/scripts package.json:scripts] list, and use <i>npm run dev</i> instead.
+						</p>
+					</details>
+				</aside>
+			</li>
+			<li>
+				If everything went well, you'll see a URL like <i>http://localhost:5173</i> appear in your terminal, and can open that URL to see your web application.
+			</li>
+		</ol>
 
 
 		<p>
 		<p>
-			The package will be downloaded and installed. Then you're ready to import it in your code:
+			The page will be blank — you're ready to [link:#manual/introduction/Creating-a-scene create a scene].
 		</p>
 		</p>
 
 
-		<code>
-		// Option 1: Import the entire three.js core library.
-		import * as THREE from 'three';
-
-		const scene = new THREE.Scene();
-
+		<p>
+			If you want to learn more about these tools before you continue, see:
+		</p>
 
 
-		// Option 2: Import just the parts you need.
-		import { Scene } from 'three';
+		<ul>
+			<li>
+				[link:https://threejs-journey.com/lessons/local-server three.js journey: Local Server]
+			</li>
+			<li>
+				 [link:https://vitejs.dev/guide/cli.html Vite: Command Line Interface]
+			</li>
+			<li>
+				[link:https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Package_management MDN: Package management basics]
+			</li>
+		</ul>
 
 
-		const scene = new Scene();
-		</code>
+		<h3>Production</h3>
 
 
 		<p>
 		<p>
-			When installing from npm, you'll almost always use some sort of [link:https://eloquentjavascript.net/10_modules.html#h_zWTXAU93DC bundling tool] to combine all of the packages your project requires into a single JavaScript file. While any modern JavaScript bundler can be used with three.js, the most popular choice is [link:https://webpack.js.org/ webpack].
+			Later, when you're ready to deploy your web application, you'll just need to tell Vite to run a production build — <i>npx vite build</i>. Everything used by the application will be compiled, optimized, and copied into the <i>dist/</i> folder. The contents of that folder are ready to be hosted on your website.
 		</p>
 		</p>
 
 
+		<h2>Option 2: Import from a CDN</h2>
+
+		<h3>Development</h3>
+
+		<p>Installing without build tools will require some changes to the project structure given above.</p>
+
+		<ol>
+			<li>
+				<p>
+					We imported code from 'three' (an npm package) in <i>main.js</i>, and web browsers don't know what that means. In <i>index.html</i> we'll need to add an [link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap import map] defining where to get the package. Put the code below inside the <i>&lt;head>&lt/head></i> tag, after the styles.
+				</p>
+				<code>
+&lt;script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js">&lt;/script>
+
+&lt;script type="importmap">
+  {
+    "imports": {
+      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
+      "three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+    }
+  }
+&lt;/script>
+				</code>
+				<p>
+					Don't forget to replace <i>&lt;version&gt;</i> with an actual version of three.js, like <i>"v0.149.0"</i>. The most recent version can be found on the [link:https://www.npmjs.com/package/three?activeTab=versions npm version list]. Because import maps are [link:https://caniuse.com/import-maps not yet supported] by some major browsers, we include the polyfill <i>es-module-shims.js</i>.
+				</p>
+			</li>
+			<li>
+				<p>
+					We'll also need to run a <i>local server</i> to host these files at URL where the web browser can access them. While it's technically possible to double-click an HTML file and open it in your browser, important features that we'll later do not work when the page is opened this way, for security reasons.
+				</p>
+				<p>
+					Install [link:https://nodejs.org/ Node.js], then run [link:https://www.npmjs.com/package/serve serve] to start a local server in the project's directory:
+				</p>
+				<code>
+					npx serve .
+				</code>
+			</li>
+			<li>
+				If everything went well, you'll see a URL like http://localhost:3000 appear in your terminal, and can open that URL to see your web application.
+			</li>
+		</ol>
+
 		<p>
 		<p>
-			Not all features are accessed directly through the <em>three</em> module (also called a "bare import"). Other popular parts of the library — such as controls, loaders, and post-processing effects — must be imported from the [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm examples/jsm] subfolder. To learn more, see <em>Examples</em> below.
+			The page will be blank — you're ready to [link:#manual/introduction/Creating-a-scene create a scene].
 		</p>
 		</p>
 
 
 		<p>
 		<p>
-			Learn more about npm modules from [link:https://eloquentjavascript.net/20_node.html#h_J6hW/SmL/a Eloquent JavaScript: Installing with npm].
+			Many other local static servers are available — some use different languages instead of Node.js, and others are desktop applications. They all work basically the same way, and we've provided a few alternatives below.
 		</p>
 		</p>
 
 
-		<h2>Install from CDN or static hosting</h2>
+		<details>
+			<summary>More local servers</summary>
 
 
-		<p>
-			The three.js library can be used without any build system, either by uploading files to your own web server or by using an existing CDN. Because the library relies on ES modules, any script that references it must use <em>type="module"</em> as shown below.
-			It is also required to define an import map which resolves the bare module specifier `three`.
-		</p>
+			<h3>Command Line</h3>
 
 
-		<code>
-		&lt;script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js">&lt;/script>
+			<p>Command line local servers run from a terminal window. The associated programming language may need to be installed first.</p>
 
 
-		&lt;script type="importmap">
-		  {
-		    "imports": {
-		      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
-		    }
-		  }
-		&lt;/script>
+			<ul>
+				<li><i>npx http-server</i> (Node.js)</li>
+				<li><i>npx five-server</i> (Node.js)</li>
+				<li><i>python -m SimpleHTTPServer</i> (Python 2.x)</li>
+				<li><i>python -m http.server</i> (Python 3.x)</li>
+				<li><i>php -S localhost:8000</i> (PHP 5.4+)</li>
+			</ul>
 
 
-		&lt;script type="module">
 
 
-		  import * as THREE from 'three';
+			<h3>GUI</h3>
 
 
-		  const scene = new THREE.Scene();
+			<p>GUI local servers run as an application window on your computer, and may have a user interface.</p>
 
 
-		&lt;/script>
-		</code>
+			<ul>
+				<li>[link:https://greggman.github.io/servez Servez]</li>
+			</ul>
 
 
-		<p>
-			Since import maps are not yet supported by all browsers, it is necessary to add the polyfill *es-module-shims.js*.
-		</p>
+			<h3>Code Editor Plugins</h3>
 
 
-		<h2>Addons</h2>
+			<p>Some code editors have plugins that spawn a simple server on demand.</p>
+
+			<ul>
+				<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] for Visual Studio Code</li>
+				<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] for Visual Studio Code</li>
+				<li>[link:https://atom.io/packages/atom-live-server Live Server] for Atom</li>
+			</ul>
+
+			<h3>
+		</details>
+
+		<h3>Production</h3>
 
 
 		<p>
 		<p>
-			The core of three.js is focused on the most important components of a 3D engine. Many other useful components — such as controls, loaders, and post-processing effects — are part of the [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm examples/jsm] directory. They are referred to as "addons" (previously called "examples"), because while you can use them off the shelf, they're also meant to be remixed and customized. These components are always kept in sync with the core library, whereas similar third-party packages on npm are maintained by different people and may not be up to date.
+			When you're ready to deploy your web application, push the source files to your web hosting provider — no need to build or compile anything. The downside of that tradeoff is that you'll need to be careful to keep the import map updated with any dependencies (and dependencies of dependencies!) that your application requires. If the CDN hosting your dependencies goes down temporarily, your website will stop working too.
 		</p>
 		</p>
 
 
 		<p>
 		<p>
-			Addons do not need to be <em>installed</em> separately, but do need to be <em>imported</em> separately. If three.js was installed with npm, you can load the [page:OrbitControls] component with:
+			<i><b>IMPORTANT:</b> Import all dependencies from the same version of three.js, and from the same CDN. Mixing files from different sources may cause duplicate code to be included, or even break the application in unexpected ways.</i>
 		</p>
 		</p>
 
 
-		<code>
-		import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
-
-		const controls = new OrbitControls( camera, renderer.domElement );
-		</code>
+		<h2>Addons</h2>
 
 
 		<p>
 		<p>
-			If three.js was installed from a CDN, use the same code, but with `three/addons/` in the import map.
+			Out of the box, three.js includes the fundamentals of a 3D engine. Other three.js components — such as controls, loaders, and post-processing effects — are part of the [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm addons/] directory. Addons do not need to be <i>installed</i> separately, but do need to be <i>imported</i> separately.
 		</p>
 		</p>
 
 
-		<code>
-		&lt;script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js">&lt;/script>
-
-		&lt;script type="importmap">
-		  {
-		    "imports": {
-		      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-		      "three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
-		    }
-		  }
-		&lt;/script>
-
-		&lt;script type="module">
-
-		  import * as THREE from 'three';
-		  import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
-
-		  const controls = new OrbitControls( camera, renderer.domElement );
-
-		&lt;/script>
-		</code>
-
 		<p>
 		<p>
-			It's important that all files use the same version. Do not import different addons from different versions, or use addons from a different version than the three.js library itself.
+			The example below shows how to import three.js with the [page:OrbitControls] and [page:GLTFLoader] addons. Where necessary, this will also be mentioned in each addon's documentation or examples.
 		</p>
 		</p>
 
 
-		<h2>Compatibility</h2>
+		<code>
+import * as THREE from 'three';
+import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
+import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
 
 
-		<h3>CommonJS imports</h3>
+const controls = new OrbitControls( camera, renderer.domElement );
+const loader = new GLTFLoader();
+		</code>
 
 
 		<p>
 		<p>
-			While most modern JavaScript bundlers now support ES modules by default, some older build tools might not. In those cases you can likely configure the bundler to understand ES modules: [link:http://browserify.org/ Browserify] just needs the [link:https://github.com/babel/babelify babelify] plugin, for example.
+			Some excellent third-party projects are available for three.js, too. These need to be installed separately — see [link:#manual/introduction/Libraries-and-Plugins Libraries and Plugins].
 		</p>
 		</p>
 
 
-		<h3>Node.js</h3>
-
-		<p>
-			Because three.js is built for the web, it depends on browser and DOM APIs that don't always exist in Node.js. Some of these issues can be resolved by using shims like [link:https://github.com/stackgl/headless-gl headless-gl], or by replacing components like [page:TextureLoader] with custom alternatives. Other DOM APIs may be deeply intertwined with the code that uses them, and will be harder to work around. We welcome simple and maintainable pull requests to improve Node.js support, but recommend opening an issue to discuss your improvements first.
-		</p>
+		<h2>Next Steps</h2>
 
 
 		<p>
 		<p>
-			Make sure to add `{ "type": "module" }` to your `package.json` to enable ES6 modules in your node project.
+			You're now ready to [link:#manual/introduction/Creating-a-scene create a scene].
 		</p>
 		</p>
 
 
 	</body>
 	</body>

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

@@ -30,7 +30,7 @@
 
 
 	<p>
 	<p>
 		If you're new to running a local server, begin with
 		If you're new to running a local server, begin with
-		[link:#manual/introduction/How-to-run-things-locally how to run things locally]
+		[link:#manual/introduction/Installation installation]
 		first. Many common errors viewing 3D models can be avoided by hosting files
 		first. Many common errors viewing 3D models can be avoided by hosting files
 		correctly.
 		correctly.
 	</p>
 	</p>

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

@@ -11,14 +11,12 @@
 		<p>
 		<p>
 			Even though this is becoming less and less of a problem, some devices or browsers may still not support WebGL.
 			Even though this is becoming less and less of a problem, some devices or browsers may still not support WebGL.
 			The following method allows you to check if it is supported and display a message to the user if it is not.
 			The following method allows you to check if it is supported and display a message to the user if it is not.
-		</p>
-
-		<p>
-			Add	[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js]
-			to your javascript and run the following before attempting to render anything.
+			Import the WebGL support detection module, and run the following before attempting to render anything.
 		</p>
 		</p>
 
 
 		<code>
 		<code>
+		import { WebGL } from 'three/addons/capabilities/WebGL.js';
+
 		if ( WebGL.isWebGLAvailable() ) {
 		if ( WebGL.isWebGLAvailable() ) {
 
 
 			// Initiate function or other initializations here
 			// Initiate function or other initializations here

+ 0 - 169
docs/manual/fr/introduction/How-to-run-things-locally.html

@@ -1,169 +0,0 @@
-<!DOCTYPE html>
-<html lang="fr">
-	<head>
-		<meta charset="utf-8">
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>Exécuter localement ([name])</h1>
-		<p>
-			Si vous n'utilisez que des formes procédurales et que vous ne chargez acune texture, vos pages web sont censées fonctionner
-			directement depuis le système de fichiers, vous n'avez qu'à double-cliquer sur le fichier HTML dans un explorateur de fichier et il
-			devrait apparaître en étant fonctionnel dans le navigateur (vous verrez <em>file:///yourFile.html</em> dans votre barre d'URL).
-		</p>
-
-		<h2>Contenu chargé depuis des fichiers externes</h2>
-		<div>
-			<p>
-				Si vous chargez des modèles ou des textures depuis des fichiers externes, à cause des restrictions de sécurité de la [link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy] des navigateurs,
-			 	charger depuis un système de fichiers échouera avec une security exception.
-		 	</p>
-
-			<p>
-				Pour résoudre ce problème, exécutez vos fichiers depuis un serveur web local. Cela vous permettra d'accéder à votre page ainsi:
-			</p>
-			
-			<p>
-				<code>http://localhost/yourFile.html</code>
-			</p>
-
-			<p>
-				Même s'il est également possible de changer les paramètres de sécurité du navigateur au lieu de faire tourner un serveur web local,
-				nous ne recommandons pas cette approche. Le faire pourrait exposer votre appareil à des vulnérabilités, si le
-				même navigateur est utilisé pour naviguer d'une manière classique sur le web. Utiliser un serveur local est une pratique standard dans 
-				le développement web, et nous expliquons comment installer et utiliser un serveur local ci-dessous.
-			</p>
-		</div>
-
-
-		<h2>Créer un serveur local</h2>
-		<div>
-			<p>
-				Plusieurs langages de programmation ont un simple serveur HTTP d'intégré. Ils ne sont pas aussi fournis que
-				des serveurs de production comme [link:https://www.apache.org/ Apache] ou [link:https://nginx.org NGINX], néanmoins ils devraient être suffisants pour tester votre
-				application three.js.
-			</p>
-
-			<h3>Plugins pour les éditeurs de codes populaires</h3>
-			<div>
-				<p>Certains éditeurs de code ont des plugins qui créent un simple serveur à la demande.</p>
-				<ul>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] pour Visual Studio Code.</li>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] pour Visual Studio Code.</li>
-					<li>[link:https://atom.io/packages/atom-live-server Live Server] pour Atom.</li>
-				</ul>
-			</div>
-
-			<h3>Servez</h3>
-			<div>
-				<p>
-					[link:https://greggman.github.io/servez Servez] est un serveur simple avec une interface graphique.
-				</p>
-			</div>
-
-			<h3>Node.js five-server</h3>
-			<div>
-				<p>Serveur de développement avec capacité de redémarrage en direct. Pour l'installer:</p>
-				<code>
-# Remove live-server (if you have it)
-npm -g rm live-server
-
-# Install five-server
-npm -g i five-server
-
-# Update five-server (from time to time)
-npm -g i five-server@latest
-				</code>
-
-				<p>Pour le lancer (depuis votre dossier local):</p>
-				<code>five-server . -p 8000</code>
-			</div>
-
-			<h3>Node.js http-server</h3>
-			<div>
-				<p>Node.js a un simple serveur de package HTTP. Pour l'installer:</p>
-				<code>npm install http-server -g</code>
-
-				<p>Pour le lancer (depuis votre dossier local):</p>
-				<code>http-server . -p 8000</code>
-			</div>
-
-			<h3>Serveur Python</h3>
-			<div>
-				<p>
-					Si vous avez [link:http://python.org/ Python] d'installé, il devrait suffire pour exécuter
-					cela en ligne de commande (depuis votre dossier de travail):
-				</p>
-				<code>
-//Python 2.x
-python -m SimpleHTTPServer
-
-//Python 3.x
-python -m http.server
-				</code>
-
-				<p>Cela remontera les fichiers du dossier courant au localhost sur le port 8000, par exemple écrivez dans la barre d'URL:</p>
-
-				<code>http://localhost:8000/</code>
-			</div>
-
-			<h3>Serveur Ruby</h3>
-			<div>
-				<p>Si vous avez Ruby d'installé, vous pouvez obtenir le même résultat en exécutant ceci à la place:</p>
-				<code>
-ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-			</div>
-
-			<h3>Serveur PHP</h3>
-			<div>
-				<p>PHP a également un serveur web intégré, depuis la 5.4.0:</p>
-				<code>php -S localhost:8000</code>
-			</div>
-
-			<h3>Lighttpd</h3>
-			<div>
-				<p>
-					Lighttpd est un serveur web très léger pouvant servir pour des usages variés. Nous verrons comment l'installer sur OSX avec
-					HomeBrew ci-dessous. Contrairement aux autres serveurs cités ici, lighttpd est un serveur de production complet
-					et prêt à l'utilisation.
-				</p>
-
-				<ol>
-					<li>
-						L'installer via homebrew
-						<code>brew install lighttpd</code>
-					</li>
-					<li>
-						Créez un fichier de configuration nommé lighttpd.conf dans le dossier où vous souhaitez exécuter votre
-						serveur web. Vous trouverez un exemple ici [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration here].
-					 </li>
-					<li>
-						Dans le fichier de configuration, changez le server.document-root pour le dossier d'où vous souhaitez remonter les fichiers.
-					</li>
-					<li>
-						Lancez-le avec
-						<code>lighttpd -f lighttpd.conf</code>
-					</li>
-					<li>
-						Rendez-vous sur http://localhost:3000/ et vous-y retrouverez les fichiers statiques du dossier
-						choisi.
-					</li>
-				</ol>
-			</div>
-			<h3>IIS</h3>
-			<div>
-				<p>Si vous utilisez Microsoft IIS comme serveur web. Veuillez ajouter un type de paramètres MIME concernant l'extension .fbx avant de charger.</p>
-				<code>File name extension: fbx        MIME Type: text/plain</code>
-				<p>Par défaut, IIS bloque le téléchargementt des fichiers .fbx, .obj. Vous devez configurer IIS pour autoriser le téléchargement de ce genre de fichiers.</p>
-			</div>
-			<p>
-				D'autres alternatives simples sont [link:http://stackoverflow.com/q/12905426/24874 présentées ici]
-				sur Stack Overflow.
-			</p>
-		</div>
-
-	</body>
-</html>

+ 0 - 167
docs/manual/it/introduction/How-to-run-things-locally.html

@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<html lang="it">
-	<head>
-		<meta charset="utf-8">
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>Esecuzione in locale ([name])</h1>
-    <p>
-      Se si usano solo geometrie procedurali e non si caricano texture, le pagine web dovrebbero funzionare direttamente
-      dal file system, basta fare doppio click sul file HTML in un file manager e la pagina dovrebbe apparire funzionante nel browser
-      (si vedrà <em>file:///yourFile.html</em> nella barra degli indirizzi del browser).
-		</p>
-
-		<h2>Contenuto caricato da file esterni</h2>
-		<div>
-       <p>
-				Se si caricano modelli o texture da file esterni, a causa delle restrizioni di sicurezza del [link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy] del browser,
-        il caricamento da un file system fallirà con un'eccezione di sicurezza.
-		 	</p>
-
-      <p>
-				Per risolvere questo problema, conviene eseguire i file da un server locale. Questo permette di accedere alla pagina come:
-			</p>
-			
-			<p>
-				<code>http://localhost/yourFile.html</code>
-			</p>
-
-      <p>
-        Anche se è possibile cambiare le impostazioni di sicurezza del browser invece di lanciare un server in locale,
-        non lo raccomandiamo. Utilizzando questo approccio si potrebbe esporre il proprio dispositivo a molte vulnerabilità soprattutto se
-        lo stesso browser viene utilizzato per la regolare navigazione sul web. Usare un server locale è una pratica standard nello sviluppo
-        web. Qui sotto, spieghiamo come si installa e utilizza un server locale.
-			</p>
-		</div>
-
-
-		<h2>Eseguire un server locale</h2>
-		<div>
-      <p>
-				Molti linguaggi di programmazione hanno semplici server HTTP integrati. Non sono completi come i server di produzione 
-        come ad esempio [link:https://www.apache.org/ Apache] o [link:https://nginx.org NGINX], ma sono sufficienti per testare la tua applicazione three.js. 
-			</p>
-
-			<h3>Plugin per i principali editor</h3>
-			<div>
-				<p>Alcuni editor hanno plugin che genereranno un semplice server su richiesta.</p>
-				<ul>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] per Visual Studio Code.</li>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] per Visual Studio Code.</li>
-					<li>[link:https://atom.io/packages/atom-live-server Live Server] per Atom.</li>
-				</ul>
-			</div>
-
-			<h3>Servez</h3>
-			<div>
-				<p>
-					[link:https://greggman.github.io/servez Servez] è un semplice server con GUI.
-				</p>
-			</div>
-
-			<h3>Node.js five-server</h3>
-			<div>
-				<p>Server di sviluppo con un reload in tempo reale. Installazione:</p>
-				<code>
-# Eliminare live-server (se è presente)
-npm -g rm live-server
-
-# Installare five-server
-npm -g i five-server
-
-# Aggiornare five-server (di volta in volta)
-npm -g i five-server@latest
-				</code>
-
-				<p>Esecuzione (dalla tua cartella locale):</p>
-				<code>five-server . -p 8000</code>
-			</div>
-
-			<h3>Node.js http-server</h3>
-			<div>
-				<p>Node.js ha un semplice server HTTP. Installazione:</p>
-				<code>npm install http-server -g</code>
-
-				<p>Esecuzione (dalla tua cartella locale):</p>
-				<code>http-server . -p 8000</code>
-			</div>
-
-			<h3>Python server</h3>
-			<div>
-        <p>
-					Se hai installato [link:http://python.org/ Python], dovrebbe essere sufficiente eseguire
-          i seguenti comandi da terminale (dalla cartella di lavoro):
-				</p>
-				<code>
-//Python 2.x
-python -m SimpleHTTPServer
-
-//Python 3.x
-python -m http.server
-				</code>
-
-				<p>Questo servirà i file dalla cartella corrente a localhost sotto la porta 8000, cioè nella barra degli indirizzi digita:</p>
-
-				<code>http://localhost:8000/</code>
-			</div>
-
-			<h3>Ruby server</h3>
-			<div>
-				<p>Se hai installato Ruby, puoi avere lo stesso risultato eseguendo il seguente comando:</p>
-				<code>
-ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-			</div>
-
-			<h3>PHP server</h3>
-			<div>
-				<p>Anche PHP ha un server web integrato, a partire da php 5.4.0:</p>
-				<code>php -S localhost:8000</code>
-			</div>
-
-			<h3>Lighttpd</h3>
-			<div>
-        <p>
-					Lighttpd è un server web generico molto leggero. Tratteremo l'installazione su OSX con HomeBrew.
-          Diversamente dagli altri server di cui abbiamo discusso qui, lighttpd è un server di produzione completo
-          pronto per la produzione.
-				</p>
-
-				<ol>
-					<li>
-						Installazione tramite homebrew
-						<code>brew install lighttpd</code>
-					</li>
-          <li>
-            Creare un file di configurazione chiamato lighttpd.conf nella cartella in cui vuoi eseguire il server.
-            [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration Qui] trovi un esempio.
-          </li>
-          <li>
-						Nel file di configurazione deve essere cambiato il valore di server.document-root con la directory da cui vuoi servire i file.
-					</li>
-					<li>
-						Avvialo con
-						<code>lighttpd -f lighttpd.conf</code>
-					</li>
-					<li>
-						Inserisci l'indirizzo http://localhost:3000/ nella barra degli indirizzi del browser, questo servirà file statici 
-            dalla cartella che hai scelto.
-					</li>
-				</ol>
-			</div>
-			<h3>IIS</h3>
-			<div>
-				<p>Se usi Microsoft IIS come web server. Per favore aggiungi le impostazioni del MIME type relative all'estensione .fbx prima del caricamento.</p>
-				<code>File name extension: fbx        MIME Type: text/plain</code>
-				<p>Per impostazione predefinita IIS blocca i download di file .fbx, .obj. È necessario configurare IIS per abilitare il download di questo tipo di file</p>
-			</div>
-			<p>
-        Altre semplici alternative sono [link:http://stackoverflow.com/q/12905426/24874 trattate qui] su Stack Overflow.
-			</p>
-		</div>
-
-	</body>
-</html>

+ 1 - 1
docs/manual/it/introduction/Loading-3D-models.html

@@ -27,7 +27,7 @@
 
 
 	<p>
 	<p>
 		Se siete alle prime armi con la gestione di un server locale,
 		Se siete alle prime armi con la gestione di un server locale,
-    iniziate prima di tutto a capire [link:#manual/introduction/How-to-run-things-locally come gestire le cose a livello locale].
+    iniziate prima di tutto a capire [link:#manual/introduction/Installation installation].
     Molti errori comuni nella visualizzazione dei modelli 3D possono essere evitati gestendo correttamente l'hosting dei file.
     Molti errori comuni nella visualizzazione dei modelli 3D possono essere evitati gestendo correttamente l'hosting dei file.
 	</p>
 	</p>
 
 

+ 0 - 149
docs/manual/ja/introduction/How-to-run-things-locally.html

@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html lang="ja">
-
-<head>
-    <meta charset="utf-8">
-    <base href="../../../" />
-    <script src="page.js"></script>
-    <link type="text/css" rel="stylesheet" href="page.css" />
-</head>
-
-<body>
-    <h1>[name]</h1>
-    <p>
-        テクスチャを呼び出さずに、ジオメトリを使うだけならウェブページをファイルシステムからそのまま動かすことができます。ファイルマネージャのHTMLファイルをダブルクリックすると、ブラウザで動作するはずです。(ブラウザのアドレスバーには<em>file:///yourFile.html</em>と表示されているでしょう)
-    </p>
-
-    <h2>外部のファイルからコンテンツを読み込む</h2>
-    <div>
-        <p>
-            外部ファイルからテクスチャやモジュールを読み込む場合、ブラウザのセキュリティ制限によって、ファイルシステムからの読み込みは失敗します。
-        </p>
-
-        <p>これを解決するには2つの方法があります。</p>
-
-        <ol>
-            <li>
-                ブラウザのローカルファイルに対するセキュリティ設定を変更することです。これによって、<code>file:///yourFile.html</code>といったローカルのファイルにアクセスできるようになります。
-            </li>
-            <li>
-                もうひとつは、ローカルのサーバからファイルを起動することです。こうすることで、<code>http://localhost/yourFile.html</code>にアクセスできるようになります。
-            </li>
-        </ol>
-
-        <p>
-            1つ目の方法を使う場合、いつも使用しているブラウザを使用すると、自ら脆弱性を露呈させかねないことに注意してください。念のため、ローカル開発専用のブラウザプロファイル/ショートカットを分けて作成しておいた方が良いかもしれません。それぞれのオプションを順番に紹介します。
-        </p>
-    </div>
-
-
-    <h2>ローカルでサーバを動かす</h2>
-    <div>
-        <p>
-            ほとんどのプログラム言語は組み込みの簡単なHTTPサーバが使えます。こういった組み込みのサーバは、ApacheやNginxなどの本番用に使用されるサーバと比べると機能が少ないですが、three.jsを試してみるには十分な機能があります
-        </p>
-
-        <h3>コードエディタのプラグイン</h3>
-        <div>
-            <p>コードエディタの中には、オンデマンドでシンプルなサーバを起動するプラグインがありものがあります</p>
-            <ul>
-                <li>Visual Studio Codeの[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server]</li>
-                <li>Atomの[link:https://atom.io/packages/atom-live-server Live Server]</li>
-            </ul>
-        </div>
-
-        <h3>Servez</h3>
-        <div>
-            <p>
-                [link:https://greggman.github.io/servez Servez]はGUI で操作できるシンプルなサーバです。
-            </p>
-        </div>
-
-        <h3>Node.js http-server</h3>
-        <div>
-            <p>Node.jsにはシンプルなHTTPサーバーパッケージがあります。インストールするには以下のコマンドを実行してください。</p>
-            <code>npm install http-server -g</code>
-
-            <p>ローカル環境で実行するには以下のようにしてください</p>
-            <code>http-server . -p 8000</code>
-        </div>
-
-        <h3>Python server</h3>
-        <div>
-            <p>
-                [link:http://python.org/ Python]がインストールされている場合、作業ディレクトリで以下のようにコマンドライン実行すれば、サーバを動かすことができます。
-            </p>
-            <code>
-//Python 2.x
-python -m SimpleHTTPServer
-
-//Python 3.x
-python -m http.server
-				</code>
-
-            <p>
-                このようにすることで、ローカルホストのカレントディレクトリから8000番ポートでファイルが提供されます。提供されるファイルを見るためには、ブラウザのアドレスバーに以下のように入力してください。
-            </p>
-
-            <code>http://localhost:8000/</code>
-        </div>
-
-        <h3>Ruby server</h3>
-        <div>
-            <p>Rubyがインストールされている環境の場合、代わりに以下のコマンドを実行することでサーバを動かすことができます。</p>
-            <code>
-ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-        </div>
-
-        <h3>PHP server</h3>
-        <div>
-            <p>PHPにも組み込みのwebサーバがあるので、phpの5.4.0で以下のように実行してみてください</p>
-            <code>php -S localhost:8000</code>
-        </div>
-
-        <h3>Lighttpd</h3>
-        <div>
-            <p>
-                Lighttpd は非常に軽量な汎用ウェブサーバです。ここではOSXにHomeBrewでインストールする方法を説明します。ここで説明した他のサーバとは異なり、lighttpd は本格的な本番環境に対応したサーバです。
-            </p>
-
-            <ol>
-                <li>
-                    homebrewでLighttpdをインストールする
-                    <code>brew install lighttpd</code>
-                </li>
-                <li>
-                    ウェブサーバを動作させたいディレクトリにlighttpd.confという設定ファイルを作成します。 設定ファイルのサンプルはこちらにあります。: [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration TutorialConfiguration]
-                </li>
-                <li>
-                    設定ファイルでserver.document-rootを提供したいファイルが置いてあるディレクトリに変更してください
-                </li>
-                <li>
-                    Lighttpdは以下のコマンドで実行できます。
-                    <code>lighttpd -f lighttpd.conf</code>
-                </li>
-                <li>
-                    http://localhost:3000/ に移動すると、選択したディレクトリから静的ファイルを提供します。
-                </li>
-            </ol>
-        </div>
-        <h3>IIS</h3>
-        <div>
-            <p>
-                WebサーバにMicrosoft IISを使用している場合ロードする前に.fbx拡張子に関するMIMEタイプの設定を追加してください。
-            </p>
-            <code>File name extension: fbx        MIME Type: text/plain</code>
-            <p>
-                デフォルトではIISは.fbxや.objのファイルをダウンロードするのをブロックします。そのため、IISがそういったファイル(.fbxなど)をダウンロードできるように設定を変更する必要があります。
-
-            </p>
-        </div>
-        <p>
-            他のシンプルな方法はStack Overflowで議論されています: [link:http://stackoverflow.com/q/12905426/24874 Simple way]
-        </p>
-    </div>
-
-</body>
-
-</html>

+ 1 - 1
docs/manual/ja/introduction/Loading-3D-models.html

@@ -28,7 +28,7 @@
 
 
 	<p>
 	<p>
 		もしthree.jsをローカルサーバで動かすのが初めてなら、
 		もしthree.jsをローカルサーバで動かすのが初めてなら、
-		[link:#manual/introduction/How-to-run-things-locally how to run things locally]を見てみてください。
+		[link:#manual/introduction/Installation installation]を見てみてください。
 		3Dモデルを表示する際の多くの一般的なエラーはファイルを正しく配置することで防ぐことができます。
 		3Dモデルを表示する際の多くの一般的なエラーはファイルを正しく配置することで防ぐことができます。
 	</p>
 	</p>
 
 

+ 0 - 149
docs/manual/ko/introduction/How-to-run-things-locally.html

@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko">
-
-<head>
-    <meta charset="utf-8">
-    <base href="../../../" />
-    <script src="page.js"></script>
-    <link type="text/css" rel="stylesheet" href="page.css" />
-</head>
-
-<body>
-    <h1>로컬 환경에서 구동 방법([name])</h1>
-    <p>
-        만약 procedural geometries 만을 사용하고 다른 텍스쳐를 불러오지 않았다면, 웹페이지는 파일 매니저에서 HTML파일을 더블클릭하는 즉시 작업을 시작할 것이고,
-        브라우저에서 바로 작업되는 화면이 나타날 것입니다. (주소창에 <em>file:///yourFile.html</em> 를 치면 확인이 될 것입니다.).
-    </p>
-
-    <h2>외부 파일에서 컨텐츠 불러오기</h2>
-    <div>
-        <p>
-            외부 파일에서 모델이나 텍스쳐를 불러올 경우, 브라우저의' [link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy]
-            보안 제한때문에 파일 불러오기가 실패가 될 것입니다.
-        </p>
-
-        <p>이 문제의 해결법은 두 가지가 있습니다.</p>
-
-        <ol>
-            <li>
-                브라우저에서 로컬 파일의 보안설정을 변경합니다. 이를 통해<code>file:///yourFile.html</code>로 들어가 확인할 수 있을 것입니다.
-            </li>
-            <li>
-                파일을 로컬 웹 서버에서 돌리는 방법입니다. <code>http://localhost/yourFile.html</code>로 들어가 확인할 수 있을 것입니다.
-            </li>
-        </ol>
-
-        <p>
-            1번 방법을 쓸 때, 일반 웹서핑을 같은 방식으로 쓰게되면 보안적으로 취약해지는 점을 인지해야 합니다. 안전한 개발을 위해
-            각각의 브라우저 프로필, 바로가기를 만드는 것도 좋습니다. 차례대로 방법을 알아봅시다.
-        </p>
-    </div>
-
-
-    <h2>로컬 서버에서 실행</h2>
-    <div>
-        <p>
-            많은 프로그래밍 언어는 기본적으로 간단한 HTTP 서버가 설치되어 있습니다. [link:https://www.apache.org/ Apache]나 [link:https://nginx.org NGINX]같은 프로덕션용 정도로 갖추어져 있지는 않지만, three.js를 테스트해보기에는 충분합니다.
-        </p>
-
-        <h3>유명 코드 에디터 관련 플러그인</h3>
-        <div>
-            <p>몇몇 코드 에디터들은 간단한 서버를 필요할 때 구축할 수 있게 플러그인을 마련해 두고 있습니다.</p>
-            <ul>
-                <li>Visual Studio Code의 [link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server]
-                    .</li>
-                <li>Atom의 [link:https://atom.io/packages/atom-live-server Live Server].</li>
-            </ul>
-        </div>
-
-        <h3>Servez</h3>
-        <div>
-            <p>
-                [link:https://greggman.github.io/servez Servez]는 GUI 환경의 간단한 서버입니다.
-            </p>
-        </div>
-
-        <h3>Node.js http-server</h3>
-        <div>
-            <p>Node.js에는 간단한 HTTP 서버 패키지가 있습니다. 설치 방법:</p>
-            <code>npm install http-server -g</code>
-
-            <p>실행 (로컬 저장소에서):</p>
-            <code>http-server . -p 8000</code>
-        </div>
-
-        <h3>Python 서버</h3>
-        <div>
-            <p>
-                [link:http://python.org/ Python]이 설치되어 있다면, 커맨드라인으로 충분히 실행할 수 있습니다. (작업 디렉토리 내에서):
-            </p>
-            <code>
-//Python 2.x
-python -m SimpleHTTPServer
-
-//Python 3.x
-python -m http.server
-				</code>
-
-            <p>이 코드는 현재 디렉토리의 파일들을 localhost 8000번 포트로 내보내 줄 것입니다. 주소 예시는 다음과 같습니다.
-                </p>
-
-            <code>http://localhost:8000/</code>
-        </div>
-
-        <h3>Ruby 서버</h3>
-        <div>
-            <p>Ruby가 설치되어 있다면, 아래 코드를 사용하면 같은 결과를 확인할 수 있습니다.</p>
-            <code>
-ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-        </div>
-
-        <h3>PHP 서버</h3>
-        <div>
-            <p>PHP도 내장된 웹서버가 있어, php 5.4.0부터 다음과 같이 활용 가능합니다:</p>
-            <code>php -S localhost:8000</code>
-        </div>
-
-        <h3>Lighttpd</h3>
-        <div>
-            <p>
-                Lighttpd는 일반적인 목적의 아주 가벼운 웹서버입니다. 여기서에는 Homebrew를 통해 OSX에 설치하는 예를 소개해 보겠습니다.
-                다른 서버들과는 달리, lighttpd 프로덕션 서버로 사용될 모든 것이 갖추어져 있습니다.
-            </p>
-
-            <ol>
-                <li>
-                    homebrew를 통해 설치합니다.
-                    <code>brew install lighttpd</code>
-                </li>
-                <li>
-                    웹서버에서 실행하고자 하는 디렉토리에 lighttpd.conf라는 설정파일을 만듭니다.
-                    예제는 여기([link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration link])에서 확인할 수 있습니다.
-                </li>
-                <li>
-                    설정 파일에서, server.document-root를 서버로 쓰고자 하는 디렉토리로 설정합니다.
-                </li>
-                <li>
-                    다음과 같이 실행합니다.
-                    <code>lighttpd -f lighttpd.conf</code>
-                </li>
-                <li>
-                    http://localhost:3000/ 로 들어가면 선택한 디렉토리의 파일들을 보여줄 것입니다.
-                </li>
-            </ol>
-        </div>
-        <h3>IIS</h3>
-        <div>
-            <p>마이크로소프트 IIS를 웹서버로 사용한다면, 실행하기에 앞서 .fbx 확장자와 관련된 MIME 타입 설정을 추가해야 합니다.</p>
-            <code>File name extension: fbx        MIME Type: text/plain</code>
-            <p>기본적으로 IIS는 .fbx, .obj 파일의 다운로드를 막아 놓았습니다. IIS에서 이러한 파일들이 다운로드 될 수 있도록 설정해야 합니다.</p>
-        </div>
-        <p>
-            다른 간단한 방법으로는 Stack Overflow에서 논의된 내용([link:http://stackoverflow.com/q/12905426/24874 link])을 확인해 보세요.
-        </p>
-    </div>
-
-</body>
-
-</html>

+ 1 - 1
docs/manual/ko/introduction/Loading-3D-models.html

@@ -27,7 +27,7 @@
 
 
 	<p>
 	<p>
 		로컬 서버를 돌리는 것이 처음이라면,
 		로컬 서버를 돌리는 것이 처음이라면,
-		[link:#manual/introduction/How-to-run-things-locally how to run things locally]
+		[link:#manual/introduction/Installation installation]
 		를 먼저 확인하세요. 3D 모델의 대부분의 에러는 파일을 알맞게 호이스팅하는 것으로 해결할 수 있습니다.
 		를 먼저 확인하세요. 3D 모델의 대부분의 에러는 파일을 알맞게 호이스팅하는 것으로 해결할 수 있습니다.
 	</p>
 	</p>
 
 

+ 0 - 186
docs/manual/pt-br/introduction/How-to-run-things-locally.html

@@ -1,186 +0,0 @@
-<!DOCTYPE html>
-<html lang="pt-br">
-	<head>
-		<meta charset="utf-8">
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>Como executar localmente</h1>
-
-		<p>
-			Se você usar apenas geometrias procedurais e não carregar nenhuma textura, 
-			as páginas web devem funcionar direto do sistema de arquivos, bastando clicar duas vezes 
-			no arquivo HTML em um gerenciador de arquivos para então funcionar no navegador (você verá <em>file:///yourFile.html</em> na barra de endereço).
-		</p>
-
-		<h2>Conteúdo carregado de arquivos externos</h2>
-
-		<div>
-			<p>
-				Se você carregar modelos ou texturas de arquivos externos, devido a [link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy] 
-				dos navegadores, o carregamento de um sistema de arquivos falhará com uma exceção de segurança.
-			</p>
-
-			<p>
-				Para resolver isso, execute os arquivos de um servidor web local. Isso permitirá acessar a página por:
-			</p>
-
-			<p>
-				<code>http://localhost/yourFile.html</code>
-			</p>
-
-			<p>
-				Embora também seja possível alterar as configurações de segurança do navegador ao invés de executar 
-				um servidor local, não recomendamos essa abordagem. Isso pode abrir seu dispositivo para vulnerabilidades, 
-				se o mesmo navegador é usado para navegação regular na web. O uso de um servidor local é uma prática padrão 
-				em desenvolvimento web e explicamos abaixo como instalar e usar um servidor local.
-			</p>
-		</div>
-
-
-		<h2>Rodando um servidor local</h2>
-		<div>
-			<p>
-				Muitas linguagens de programação têm servidores HTTP simples embutidos. Eles não são tão 
-				completos quanto servidores de produção como o [link:https://www.apache.org/ Apache] ou o 
-				[link:https://nginx.org NGINX], no entanto devem ser suficientes para testar sua aplicação three.js.
-			</p>
-
-			<h3>Plugins para editores populares de código</h3>
-			<div>
-				<p>
-					Alguns editores de código tem plugins que irão rodar um servidor simples.
-				</p>
-				<ul>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] para Visual Studio Code.</li>
-					<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] para Visual Studio Code.</li>
-					<li>[link:https://atom.io/packages/atom-live-server Live Server] para Atom.</li>
-				</ul>
-			</div>
-
-			<h3>Servez</h3>
-			<div>
-				<p>
-					[link:https://greggman.github.io/servez Servez] é um servidor simples com uma interface gráfica.
-				</p>
-			</div>
-
-			<h3>Node.js five-server</h3>
-			<div>
-				<p>
-					Servidor de desenvolvimento com live reload. Para instalar:
-				</p>
-				<code>
-# Remove live-server (if you have it)
-npm -g rm live-server
-
-# Install five-server
-npm -g i five-server
-
-# Update five-server (from time to time)
-npm -g i five-server@latest
-				</code>
-
-				<p>Para executar (do seu diretório local):</p>
-				<code>five-server . -p 8000</code>
-			</div>
-
-			<h3>Node.js http-server</h3>
-			<div>
-				<p>
-					O Node.js tem um pacote simples de um servidor HTTP. Para instalar:
-				</p>
-				<code>npm install http-server -g</code>
-
-				<p>Para executar (do seu diretório local):</p>
-				<code>http-server . -p 8000</code>
-			</div>
-
-			<h3>Servidor Python</h3>
-			<div>
-				<p>
-					Se você tem [link:http://python.org/ Python] instalado, deve ser suficiente para 
-					executar esse comando (do seu diretório de trabalho):
-				</p>
-				<code>
-//Python 2.x
-python -m SimpleHTTPServer
-			
-//Python 3.x
-python -m http.server
-				</code>
-
-				<p>Isso vai servir os arquivos do diretório atual para localhost na porta 8000, 
-					isto é, na barra de endereço digite:
-				</p>
-
-				<code>http://localhost:8000/</code>
-			</div>
-
-			<h3>Servidor Ruby</h3>
-			<div>
-				<p>
-					Se você tem Ruby instalado, você poder ter o mesmo resultado executando:
-				</p>
-				<code>
-					ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-				</code>
-			</div>
-
-			<h3>Servidor PHP</h3>
-			<div>
-				<p>PHP também tem um servidor web embutido, começando com php 5.4.0:</p>
-				<code>php -S localhost:8000</code>
-			</div>
-
-			<h3>Lighttpd</h3>
-			<div>
-				<p>
-					Lighttpd é um servidor web de uso geral muito leve. Abordaremos a instalação no OSX 
-					com HomeBrew aqui. Ao contrário dos outros servidores discutidos, Lighttpd é um servidor 
-					completo de produção.
-				</p>
-
-				<ol>
-					<li>
-						Instale via homebrew
-						<code>brew install lighttpd</code>
-					</li>
-					<li>
-						Crie um arquivo de configuração chamado lighttpd.conf no diretório onde você irá executar 
-						o servidor web. Um exemplo está [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration aqui].
-					 </li>
-					<li>
-						No arquivo conf, mude o server.document-root para o diretório do qual você quer servir os arquivos.
-					</li>
-					<li>
-						Comece com
-						<code>lighttpd -f lighttpd.conf</code>
-					</li>
-					<li>
-						Navegue até http://localhost:8000/ e ele servirá os arquivos estáticos do diretório que você 
-						escolheu.
-					</li>
-				</ol>
-			</div>
-			<h3>IIS</h3>
-			<div>
-				<p>
-					Se você estiver usando o Microsoft IIS como servidor web. Por favor adicione
-					 configurações de tipo MIME em relação à extensão .fbx antes de carregar.
-				</p>
-				<code>File name extension: fbx        MIME Type: text/plain</code>
-				<p>
-					Por padrão, o IIS bloqueia downloads de arquivos .fbx e .obj. Você tem que 
-					configurar o IIS para habilitar que esse tipo de arquivo possa ser baixado.
-				</p>
-			</div>
-			<p>
-				Outras alternativas simples são [link:http://stackoverflow.com/q/12905426/24874 discutidas aqui] no StackOverflow.
-			</p>
-		</div>
-
-	</body>
-</html>

+ 1 - 1
docs/manual/pt-br/introduction/Loading-3D-models.html

@@ -29,7 +29,7 @@
 
 
 	<p>
 	<p>
 		Se você é iniciante na execução de um servidor local, comece com
 		Se você é iniciante na execução de um servidor local, comece com
-		[link:#manual/introduction/How-to-run-things-locally Como executar localmente]
+		[link:#manual/introduction/Installation installation]
 		primeiro. Muitos erros comuns de visualização de modelos 3D podem ser evitados hospedando arquivos
 		primeiro. Muitos erros comuns de visualização de modelos 3D podem ser evitados hospedando arquivos
 		corretamente.
 		corretamente.
 	</p>
 	</p>

+ 0 - 184
docs/manual/ru/introduction/How-to-run-things-locally.html

@@ -1,184 +0,0 @@
-<!DOCTYPE html>
-<html lang="ru">
-<head>
-	<meta charset="utf-8">
-	<base href="../../../"/>
-	<script src="page.js"></script>
-	<link type="text/css" rel="stylesheet" href="page.css"/>
-</head>
-<body>
-<h1>Локальная разработка ([name])</h1>
-<p>
-	Если вы используете только процедурную геометрию и не загружаете никаких текстур, веб-страницы должны работать
-	прямо из файловой системы, просто дважды щелкните по HTML-файлу в файловом менеджере, и он
-	должен появиться в браузере (вы увидите <em>file:///вашФайл.html </em> в адресной строке).
-</p>
-
-<h2>Контент загружен из внешних файлов</h2>
-<div>
-	<p>
-		Если вы загружаете модели или текстуры из внешних файлов, из-за того, что браузеры
-		[link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy](политика одинакового происхождения)
-		ограничения безопасности, загрузка из файловой системы завершится ошибкой с исключением безопасности.
-	</p>
-
-	<p>
-		Чтобы решить эту проблему, запустите файлы с локального веб-сервера. Это позволит вам получить доступ к вашей
-		странице как:
-	</p>
-
-	<p>
-		<code>http://localhost/yourFile.html</code>
-	</p>
-
-	<p>
-		Хотя также можно изменить настройки безопасности браузера вместо запуска локального сервера,
-		мы не рекомендуем такой подход. Это может открыть ваше устройство для уязвимостей, если
-		тот же браузер используется для обычного веб-серфинга. Использование локального сервера является стандартной
-		практикой в
-		веб-разработки, и ниже мы объясним, как установить и использовать локальный сервер.
-	</p>
-</div>
-
-
-<h2>Запуск локального сервера</h2>
-<div>
-	<p>
-		Многие языки программирования имеют встроенные простые HTTP-серверы. Они не так полнофункциональны, как
-		рабочие серверы, такие как [link:https://www.apache.org/ Apache] или [link:https://nginx.org NGINX], однако их
-		должно быть достаточно для тестирования вашего
-		three.js приложение.
-	</p>
-
-	<h3>Плагины для популярных редакторов кода</h3>
-	<div>
-		<p>В некоторых редакторах кода есть плагины, которые по запросу создают простой сервер.</p>
-		<ul>
-			<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] для Visual
-				Studio Code.
-			</li>
-			<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] для Visual
-				Studio Code.
-			</li>
-			<li>[link:https://atom.io/packages/atom-live-server Live Server] для Atom.</li>
-			<li>для ide от jetbrains уже все из коробки (как всегда)</li>
-		</ul>
-	</div>
-
-	<h3>Servez</h3>
-	<div>
-		<p>
-			[link:https://greggman.github.io/servez Servez] это простой сервер с графическим интерфейсом.
-		</p>
-	</div>
-
-	<h3>Node.js five-server</h3>
-	<div>
-		<p>Сервер разработки с возможностью горячей перезагрузки. Установка:</p>
-		<code>
-
-			# Удалите live-server (если он у вас есть)
-			npm -g rm live-server
-
-			# Установите five-server
-			npm -g i five-server
-
-			# Обновление five-server (иногда)
-			npm -g i five-server@latest
-		</code>
-
-		<p>Для запуска (из вашей локальной директории):</p>
-		<code>five-server . -p 8000</code>
-	</div>
-
-	<h3>Node.js http-server</h3>
-	<div>
-		<p>Node.js имеет простой пакет HTTP-сервера. Установка:</p>
-		<code>npm install http-server -g</code>
-
-		<p>Для запуска (из вашей локальной директории):</p>
-		<code>http-server . -p 8000</code>
-	</div>
-
-	<h3>Python сервер</h3>
-	<div>
-		<p>
-			Если у вас установлен [link:http://python.org/ Python], этого должно быть достаточно для запуска
-			из командной строки (из вашей локальной директории):
-		</p>
-		<code>
-			//Python 2.x
-			python -m SimpleHTTPServer
-
-			//Python 3.x
-			python -m http.server
-		</code>
-
-		<p>Это поднимет сервер для файлов из текущего каталога на localhost на порте 8000, т.е. в адресной строке
-			введите:</p>
-
-		<code>http://localhost:8000/</code>
-	</div>
-
-	<h3>Ruby сервер</h3>
-	<div>
-		<p>Если у вас установлен Ruby, вы можете получить тот же результат, выполнив:</p>
-		<code>
-			ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
-		</code>
-	</div>
-
-	<h3>PHP сервер</h3>
-	<div>
-		<p>PHP также имеет встроенный веб-сервер, начиная с php 5.4.0:</p>
-		<code>php -S localhost:8000</code>
-	</div>
-
-	<h3>Lighttpd</h3>
-	<div>
-		<p>
-			Lighttpd - это очень легкий веб-сервер общего назначения. Мы рассмотрим установку его на OSX с помощью
-			HomeBrew. В отличие от других серверов, обсуждаемых здесь, lighttpd является полноценным прод. сервером.
-		</p>
-
-		<ol>
-			<li>
-				Установка с помощью homebrew
-				<code>brew install lighttpd</code>
-			</li>
-			<li>
-				Создайте конфигурационный файл с именем lighttpd.conf в каталоге, в котором вы хотите запустить
-				ваш веб-сервер. Пример [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration
-				here].
-			</li>
-			<li>
-				В файле conf измените корневой каталог server.document на каталог, из которого вы хотите обслуживать
-				файлы.
-			</li>
-			<li>
-				Запуск
-				<code>lighttpd -f lighttpd.conf</code>
-			</li>
-			<li>
-				Перейдите в http://localhost:3000/ и он будет обслуживать статические файлы из каталога, который вы
-				выбрали.
-			</li>
-		</ol>
-	</div>
-	<h3>IIS</h3>
-	<div>
-		<p>Если вы используете Microsoft IIS в качестве веб-сервера. Пожалуйста, добавьте настройки типа MIME для
-			расширения .fbx перед загрузкой.</p>
-		<code>File name extension: fbx MIME Type: text/plain</code>
-		<p>По умолчанию IIS блокирует загрузку файлов .fbx, .obj. Вы должны настроить IIS, чтобы такие файлы можно было
-			загружать.</p>
-	</div>
-	<p>
-		Другими простыми альтернативами являются [link:http://stackoverflow.com/q/12905426/24874 discussed
-		here](обсуждается здесь)
-		на Stack Overflow.
-	</p>
-</div>
-
-</body>
-</html>

+ 1 - 1
docs/manual/ru/introduction/Loading-3D-models.html

@@ -30,7 +30,7 @@
 
 
 	<p>
 	<p>
 		Если вы новичок в управлении локальным сервером, начните с раздела
 		Если вы новичок в управлении локальным сервером, начните с раздела
-		[link:#manual/introduction/How-to-run-things-locally how to run things locally] (Локальная разработка).
+		[link:#manual/introduction/Installation installation] (Локальная разработка).
 		Многих распространенных ошибок при просмотре 3D-моделей можно избежать, правильно разместив файлы.
 		Многих распространенных ошибок при просмотре 3D-моделей можно избежать, правильно разместив файлы.
 	</p>
 	</p>
 
 

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