Mr.doob 4 years ago
parent
commit
b51624a12a
100 changed files with 4649 additions and 434 deletions
  1. 187 125
      build/three.js
  2. 0 0
      build/three.min.js
  3. 204 127
      build/three.module.js
  4. 5 2
      docs/api/en/core/BufferGeometry.html
  5. 5 0
      docs/api/en/core/Object3D.html
  6. 3 3
      docs/api/en/extras/core/Shape.html
  7. 4 4
      docs/api/en/extras/curves/CubicBezierCurve3.html
  8. 1 1
      docs/api/en/geometries/PlaneGeometry.html
  9. 0 3
      docs/api/en/materials/MeshBasicMaterial.html
  10. 0 3
      docs/api/en/materials/MeshDepthMaterial.html
  11. 0 3
      docs/api/en/materials/MeshDistanceMaterial.html
  12. 0 3
      docs/api/en/materials/MeshLambertMaterial.html
  13. 0 3
      docs/api/en/materials/MeshMatcapMaterial.html
  14. 0 3
      docs/api/en/materials/MeshNormalMaterial.html
  15. 0 4
      docs/api/en/materials/MeshPhongMaterial.html
  16. 2 2
      docs/api/en/materials/MeshPhysicalMaterial.html
  17. 0 3
      docs/api/en/materials/MeshStandardMaterial.html
  18. 0 3
      docs/api/en/materials/MeshToonMaterial.html
  19. 0 5
      docs/api/en/materials/ShaderMaterial.html
  20. 12 9
      docs/api/en/math/Matrix4.html
  21. 2 2
      docs/api/en/objects/Skeleton.html
  22. 1 2
      docs/api/en/objects/SkinnedMesh.html
  23. 58 0
      docs/api/en/renderers/WebGLMultipleRenderTargets.html
  24. 7 0
      docs/api/en/renderers/WebGLMultisampleRenderTarget.html
  25. 42 2
      docs/api/en/renderers/webxr/WebXRManager.html
  26. 4 3
      docs/api/en/textures/VideoTexture.html
  27. 1 1
      docs/api/ko/animation/AnimationClip.html
  28. 1 1
      docs/api/ko/animation/KeyframeTrack.html
  29. 3 3
      docs/api/ko/animation/PropertyBinding.html
  30. 1 1
      docs/api/ko/animation/PropertyMixer.html
  31. 205 0
      docs/api/ko/core/BufferAttribute.html
  32. 298 0
      docs/api/ko/core/BufferGeometry.html
  33. 87 0
      docs/api/ko/core/Clock.html
  34. 97 0
      docs/api/ko/core/EventDispatcher.html
  35. 111 0
      docs/api/ko/core/GLBufferAttribute.html
  36. 42 0
      docs/api/ko/core/InstancedBufferAttribute.html
  37. 40 0
      docs/api/ko/core/InstancedBufferGeometry.html
  38. 44 0
      docs/api/ko/core/InstancedInterleavedBuffer.html
  39. 124 0
      docs/api/ko/core/InterleavedBuffer.html
  40. 119 0
      docs/api/ko/core/InterleavedBufferAttribute.html
  41. 97 0
      docs/api/ko/core/Layers.html
  42. 470 0
      docs/api/ko/core/Object3D.html
  43. 206 0
      docs/api/ko/core/Raycaster.html
  44. 269 0
      docs/api/ko/core/Uniform.html
  45. 65 0
      docs/api/ko/core/bufferAttributeTypes/BufferAttributeTypes.html
  46. 31 0
      docs/api/ko/extras/DataUtils.html
  47. 33 0
      docs/api/ko/extras/Earcut.html
  48. 31 0
      docs/api/ko/extras/ImageUtils.html
  49. 78 0
      docs/api/ko/extras/PMREMGenerator.html
  50. 51 0
      docs/api/ko/extras/ShapeUtils.html
  51. 118 0
      docs/api/ko/extras/core/Curve.html
  52. 76 0
      docs/api/ko/extras/core/CurvePath.html
  53. 54 0
      docs/api/ko/extras/core/Font.html
  54. 48 0
      docs/api/ko/extras/core/Interpolations.html
  55. 144 0
      docs/api/ko/extras/core/Path.html
  56. 101 0
      docs/api/ko/extras/core/Shape.html
  57. 88 0
      docs/api/ko/extras/core/ShapePath.html
  58. 26 0
      docs/api/ko/extras/curves/ArcCurve.html
  59. 79 0
      docs/api/ko/extras/curves/CatmullRomCurve3.html
  60. 74 0
      docs/api/ko/extras/curves/CubicBezierCurve.html
  61. 75 0
      docs/api/ko/extras/curves/CubicBezierCurve3.html
  62. 91 0
      docs/api/ko/extras/curves/EllipseCurve.html
  63. 45 0
      docs/api/ko/extras/curves/LineCurve.html
  64. 44 0
      docs/api/ko/extras/curves/LineCurve3.html
  65. 69 0
      docs/api/ko/extras/curves/QuadraticBezierCurve.html
  66. 70 0
      docs/api/ko/extras/curves/QuadraticBezierCurve3.html
  67. 65 0
      docs/api/ko/extras/curves/SplineCurve.html
  68. 110 0
      docs/api/ko/extras/objects/ImmediateRenderObject.html
  69. 5 0
      docs/api/zh/core/Object3D.html
  70. 3 3
      docs/api/zh/extras/core/Shape.html
  71. 1 1
      docs/api/zh/geometries/PlaneGeometry.html
  72. 0 3
      docs/api/zh/materials/MeshBasicMaterial.html
  73. 0 3
      docs/api/zh/materials/MeshDepthMaterial.html
  74. 0 3
      docs/api/zh/materials/MeshDistanceMaterial.html
  75. 0 3
      docs/api/zh/materials/MeshLambertMaterial.html
  76. 0 3
      docs/api/zh/materials/MeshMatcapMaterial.html
  77. 0 3
      docs/api/zh/materials/MeshNormalMaterial.html
  78. 0 4
      docs/api/zh/materials/MeshPhongMaterial.html
  79. 2 2
      docs/api/zh/materials/MeshPhysicalMaterial.html
  80. 0 3
      docs/api/zh/materials/MeshStandardMaterial.html
  81. 0 3
      docs/api/zh/materials/MeshToonMaterial.html
  82. 0 5
      docs/api/zh/materials/ShaderMaterial.html
  83. 3 3
      docs/api/zh/math/Spherical.html
  84. 2 2
      docs/api/zh/objects/Skeleton.html
  85. 0 1
      docs/api/zh/objects/SkinnedMesh.html
  86. 58 0
      docs/api/zh/renderers/WebGLMultipleRenderTargets.html
  87. 7 0
      docs/api/zh/renderers/WebGLMultisampleRenderTarget.html
  88. 42 2
      docs/api/zh/renderers/webxr/WebXRManager.html
  89. 29 0
      docs/examples/en/utils/CameraUtils.html
  90. 21 21
      docs/examples/zh/loaders/PCDLoader.html
  91. 3 0
      docs/list.json
  92. 0 1
      docs/manual/ar/introduction/How-to-update-things.html
  93. 0 1
      docs/manual/en/introduction/How-to-update-things.html
  94. 1 2
      docs/manual/ja/introduction/How-to-update-things.html
  95. 0 1
      docs/manual/ko/introduction/How-to-update-things.html
  96. 0 1
      docs/manual/zh/introduction/How-to-update-things.html
  97. 12 12
      docs/page.js
  98. 0 1
      docs/scenes/bones-browser.html
  99. 23 23
      editor/js/Sidebar.Material.js
  100. 19 3
      editor/js/Strings.js

File diff suppressed because it is too large
+ 187 - 125
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
+ 204 - 127
build/three.module.js


+ 5 - 2
docs/api/en/core/BufferGeometry.html

@@ -176,8 +176,11 @@
 		</p>
 
 
-		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
-		<p>Bakes matrix transform directly into vertex coordinates.</p>
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>Applies the matrix transform to the geometry.</p>
+
+		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<p>Applies the rotation represented by the quaternion to the geometry.</p>
 
 		<h3>[method:BufferGeometry center] ()</h3>
 		<p>Center the geometry based on the bounding box.</p>

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

@@ -325,6 +325,11 @@
 		Removes *object* as child of this object. An arbitrary number of objects may be removed.
 		</p>
 
+		<h3>[method:this removeFromParent]()</h3>
+		<p>
+		Removes this object from its current parent.
+		</p>
+
 		<h3>[method:this clear]()</h3>
 		<p>
 		Removes all child objects.

+ 3 - 3
docs/api/en/extras/core/Shape.html

@@ -23,13 +23,13 @@
 
 		heartShape.moveTo( 25, 25 );
 		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
-		heartShape.bezierCurveTo( 30, 0, 30, 35,30,35 );
-		heartShape.bezierCurveTo( 30, 55, 10, 77, 25, 95 );
+		heartShape.bezierCurveTo( - 30, 0, - 30, 35, - 30, 35 );
+		heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25, 95 );
 		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
 		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
 		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
 
-		const extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
+		const extrudeSettings = { depth: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
 
 		const geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
 

+ 4 - 4
docs/api/en/extras/curves/CubicBezierCurve3.html

@@ -51,16 +51,16 @@
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Vector2 v0]</h3>
+		<h3>[property:Vector3 v0]</h3>
 		<p>The starting point.</p>
 
-		<h3>[property:Vector2 v1]</h3>
+		<h3>[property:Vector3 v1]</h3>
 		<p>The first control point.</p>
 
-		<h3>[property:Vector2 v2]</h3>
+		<h3>[property:Vector3 v2]</h3>
 		<p>The second control point.</p>
 
-		<h3>[property:Vector2 v3]</h3>
+		<h3>[property:Vector3 v3]</h3>
 		<p>The ending point.</p>
 
 

+ 1 - 1
docs/api/en/geometries/PlaneGeometry.html

@@ -33,7 +33,7 @@
 
 		<h2>Code Example</h2>
 
-		<code>const geometry = new THREE.PlaneGeometry( 5, 20, 32 );
+		<code>const geometry = new THREE.PlaneGeometry( 1, 1 );
 		const material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
 		const plane = new THREE.Mesh( geometry, material );
 		scene.add( plane );

+ 0 - 3
docs/api/en/materials/MeshBasicMaterial.html

@@ -109,9 +109,6 @@
 			The refraction ratio should not exceed 1. Default is *0.98*.
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Texture specularMap]</h3>
 		<p>Specular map used by the material. Default is null.</p>
 

+ 0 - 3
docs/api/en/materials/MeshDepthMaterial.html

@@ -87,9 +87,6 @@
 		<h3>[property:Boolean morphTargets]</h3>
 		<p>Define whether the material uses morphTargets. Default is false.</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Boolean wireframe]</h3>
 		<p>Render geometry as wireframe. Default is false (i.e. render as smooth shaded).</p>
 

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

@@ -108,9 +108,6 @@
 			The position of the point light in world space.
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h2>Methods</h2>
 		<p>See the base [page:Material] class for common methods.</p>
 

+ 0 - 3
docs/api/en/materials/MeshLambertMaterial.html

@@ -138,9 +138,6 @@
 			The refraction ratio should not exceed 1. Default is *0.98*.
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Texture specularMap]</h3>
 		<p>Specular map used by the material. Default is null.</p>
 

+ 0 - 3
docs/api/en/materials/MeshMatcapMaterial.html

@@ -136,9 +136,6 @@
 			Default is a [page:Vector2] set to (1,1).
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h2>Methods</h2>
 		<p>See the base [page:Material] class for common methods.</p>
 

+ 0 - 3
docs/api/en/materials/MeshNormalMaterial.html

@@ -113,9 +113,6 @@
 			Default is a [page:Vector2] set to (1,1).
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Boolean wireframe]</h3>
 		<p>
 			Render geometry as wireframe. Default is false (i.e. render as smooth shaded).

+ 0 - 4
docs/api/en/materials/MeshPhongMaterial.html

@@ -203,10 +203,6 @@
 		<h3>[property:Float shininess]</h3>
 		<p>How shiny the [page:.specular] highlight is; a higher value gives a sharper highlight. Default is *30*.</p>
 
-
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Color specular]</h3>
 		<p>
 			Specular color of the material. Default is a [page:Color] set to *0x111111* (very dark grey).<br /><br />

+ 2 - 2
docs/api/en/materials/MeshPhysicalMaterial.html

@@ -82,14 +82,14 @@
 
 		<h3>[property:Float clearcoat]</h3>
 		<p>
-		Represents the thickness of the clear coat layer, from *0.0* to *1.0*. Use clear coat related properties to enable multilayer
+		Represents the intensity of the clear coat layer, from *0.0* to *1.0*. Use clear coat related properties to enable multilayer
 		materials that have a thin translucent layer over the base layer. Default is *0.0*.
 		</p>
 
 		<h3>[property:Texture clearcoatMap]</h3>
 		<p>
 		The red channel of this texture is multiplied against [page:.clearcoat], for per-pixel control
-		over a coating's thickness. Default is *null*.
+		over a coating's intensity. Default is *null*.
 		</p>
 
 		<h3>[property:Texture clearcoatNormalMap]</h3>

+ 0 - 3
docs/api/en/materials/MeshStandardMaterial.html

@@ -242,9 +242,6 @@
 		<h3>[property:Texture roughnessMap]</h3>
 		<p>The green channel of this texture is used to alter the roughness of the material.</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Boolean vertexTangents]</h3>
 		<p>
 		Defines whether precomputed vertex tangents, which must be provided in a vec4 "tangent" attribute,

+ 0 - 3
docs/api/en/materials/MeshToonMaterial.html

@@ -163,9 +163,6 @@
 			Default is a [page:Vector2] set to (1,1).
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Boolean wireframe]</h3>
 		<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
 

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

@@ -383,11 +383,6 @@ this.extensions = {
 		Define whether the material is rendered with flat shading. Default is false.
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>
-		Define whether the material uses skinning; true to pass skinning attributes to the shader. Default is false.
-		</p>
-
 		<h3>[property:Object uniforms]</h3>
 		<p>
 			An object of the form:

+ 12 - 9
docs/api/en/math/Matrix4.html

@@ -138,7 +138,7 @@ m.elements = [ 11, 21, 31, 41,
 
 		<h3>[method:null decompose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )</h3>
 		<p>
-		Decomposes this matrix into it's [page:Vector3 position], [page:Quaternion quaternion] and [page:Vector3 scale] components.<br/><br/>
+		Decomposes this matrix into its [page:Vector3 position], [page:Quaternion quaternion] and [page:Vector3 scale] components.<br/><br/>
 		Note: Not all matrices are decomposable in this way. For example, if an object has a non-uniformly scaled parent, then the object's world matrix may not be decomposable, and this method may not be appropriate.
 		</p>
 
@@ -317,18 +317,21 @@ x, 0, 0, 0,
 			</code>
 		</p>
 
-		<h3>[method:this makeShear]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<h3>[method:this makeShear]( [param:Float xy], [param:Float xz], [param:Float yx], [param:Float yz], [param:Float zx], [param:Float zy] )</h3>
 		<p>
-		[page:Float x] - the amount to shear in the X axis.<br />
-		[page:Float y] - the amount to shear in the Y axis.<br />
-		[page:Float z] - the amount to shear in the Z axis.<br /><br />
+			[page:Float x] - the amount to shear X by Y.<br />
+			[page:Float x] - the amount to shear X by Z.<br />
+			[page:Float x] - the amount to shear Y by X.<br />
+			[page:Float x] - the amount to shear Y by Z.<br />
+			[page:Float y] - the amount to shear Z by X.<br />
+			[page:Float z] - the amount to shear Z by Y.<br /><br />
 
 		Sets this matrix as a shear transform:
 <code>
-1, y, z, 0,
-x, 1, z, 0,
-x, y, 1, 0,
-0, 0, 0, 1
+1,   yx,  zx,  0,
+xy,   1,  zy,  0,
+xz,  yz,   1,  0,
+0,    0,   0,  1
 </code>
 		</p>
 

+ 2 - 2
docs/api/en/objects/Skeleton.html

@@ -91,15 +91,15 @@
 		Returns a clone of this Skeleton object.
 		</p>
 
-
 		<h3>[method:null calculateInverses]()</h3>
 		<p>Generates the [page:.boneInverses boneInverses] array if not provided in the constructor.</p>
 
+		<h3>[method:null computeBoneTexture]()</h3>
+		<p>Computes an instance of [page:DataTexture] in order to pass the bone data more efficiently to the shader. The texture is assigned to [page:.boneTexture boneTexture].</p>
 
 		<h3>[method:null pose]()</h3>
 		<p>Returns the skeleton to the base pose.</p>
 
-
 		<h3>[method:null update]()</h3>
 		<p>
 		Updates the [page:Float32Array boneMatrices] and [page:DataTexture boneTexture] after changing the bones.

+ 1 - 2
docs/api/en/objects/SkinnedMesh.html

@@ -13,7 +13,6 @@
 
 		<p class="desc">
 			A mesh that has a [page:Skeleton] with [page:Bone bones] that can then be used to animate the vertices of the geometry.
-			The material must support skinning and have skinning enabled - see [page:MeshStandardMaterial.skinning].
 		</p>
 
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>
@@ -157,7 +156,7 @@
 		<p>
 		Calculates the position of the vertex at the given index relative to the current bone transformations.
 		</p>
-			
+
 		<h2>Source</h2>
 
 		<p>

+ 58 - 0
docs/api/en/renderers/WebGLMultipleRenderTargets.html

@@ -0,0 +1,58 @@
+<!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:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A special render target that enables a fragment shader to write to several textures.
+			This approach is useful for advanced rendering techniques like post-processing or deferred rendering.
+
+			Heads up: [name] can only be used with a WebGL 2 rendering context.
+		</p>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl2_multiple_rendertargets webgl2 / multiple / rendertargets ]
+		</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([param:Number width], [param:Number height], [param:Number count])</h3>
+
+		<p>
+		[page:Number width] - The width of the render target. <br />
+		[page:Number height] - The height of the render target.<br />
+		[page:Number count] - The number of render targets.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array texture]</h3>
+		<p>
+		The texture property is overwritten in [name] and replaced with an array. This array holds the [page:WebGLRenderTarget.texture texture]
+		references of the respective render targets.
+		</p>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] properties are available on this class.</p>
+
+		<h2>Methods</h2>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] methods are available on this class.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -7,6 +7,8 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:WebGLRenderTarget] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc">
@@ -14,6 +16,11 @@
 			Heads up: [name] can only be used with a WebGL 2 rendering context.
 		</p>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl2_multisampled_renderbuffers webgl2 / multisampled / renderbuffers ]
+		</p>
 
 		<h2>Constructor</h2>
 

+ 42 - 2
docs/api/en/renderers/webxr/WebXRManager.html

@@ -19,6 +19,11 @@
 
 		<h2>Properties</h2>
 
+		<h3>[property:Boolean cameraAutoUpdate]</h3>
+		<p>
+		Whether the manager's XR camera should be automatically updated or not. Default is *true*.
+		</p>
+
 		<h3>[property:Boolean enabled]</h3>
 		<p>
 		This flag notifies the renderer to be ready for XR rendering. Default is *false*. Set it to *true* if you are going
@@ -32,11 +37,21 @@
 
 		<h2>Methods</h2>
 
+		<h3>[method:ArrayCamera getCamera]()</h3>
+		<p>
+		Returns an instance of [page:ArrayCamera] which represents the XR camera of the active XR session.
+		For each view it holds a separate camera object in its [page:ArrayCamera.cameras cameras] property.
+		</p>
+		<p>
+		The camera's *fov* is currently not used and does not reflect the fov of the XR camera. If you need the fov on app level,
+		you have to compute in manually from the XR camera's projection matrices.
+		</p>
+
 		<h3>[method:Group getController]( [param:Integer index] )</h3>
 		<p>
 		[page:Integer index] — The index of the controller. <br /><br />
 
-		Returns a [page:Group] representing the so called *target ray* space of the controller.
+		Returns a [page:Group] representing the so called *target ray* space of the XR controller.
 		Use this space for visualizing 3D objects that support the user in pointing tasks like UI interaction.
 		</p>
 
@@ -44,7 +59,7 @@
 		<p>
 		[page:Integer index] — The index of the controller. <br /><br />
 
-		Returns a [page:Group] representing the so called *grip* space of the controller.
+		Returns a [page:Group] representing the so called *grip* space of the XR controller.
 		Use this space if the user is going to hold other 3D objects like a lightsaber.
 		</p>
 
@@ -54,6 +69,24 @@
 		in two different coordinate spaces for the same WebXR controller.
 		</p>
 
+		<h3>[method:Group getHand]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index] — The index of the controller. <br /><br />
+
+		Returns a [page:Group] representing the so called *hand* or *joint* space of the XR controller.
+		Use this space for visualizing the user's hands when no physical controllers are used.
+		</p>
+
+		<h3>[method:String getReferenceSpace]()</h3>
+		<p>
+		Returns the reference space.
+		</p>
+
+		<h3>[method:XRSession getSession]()</h3>
+		<p>
+		Returns the *XRSession* object which allows a more fine-grained management of active WebXR sessions on application level.
+		</p>
+
 		<h3>[method:void setFramebufferScaleFactor]( [param:Float framebufferScaleFactor] )</h3>
 		<p>
 		[page:Float framebufferScaleFactor] — The framebuffer scale factor to set.<br /><br />
@@ -76,6 +109,13 @@
 		Please check out the [link:https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpaceType MDN] for possible values and their use cases.
 		</p>
 
+		<h3>[method:void updateCamera]( [param:PerspectiveCamera camera] )</h3>
+		<p>
+		Updates the state of the XR camera. Use this method on app level if you set [page:.cameraAutoUpdate] to *false*.
+		The method requires the non-XR camera of the scene as a parameter. The passed in camera's transformation is automatically
+		adjusted to the position of the XR camera when calling this method.
+		</p>
+
 		<p>
 		Note: It is not possible to change the reference space type while presenting XR content.
 		</p>

+ 4 - 3
docs/api/en/textures/VideoTexture.html

@@ -14,7 +14,7 @@
 		<p class="desc">
 		Creates a texture for use with a video texture.<br /><br />
 
-		This is almost the same as the base [page:Texture Texture] class, except that it continuosly sets [page:Texture.needsUpdate needsUpdate] to *true* so that the texture is updated as the video plays. Automatic creation of [page:Texture.mipmaps mipmaps] is also disabled.
+		This is almost the same as the base [page:Texture Texture] class, except that it continuously sets [page:Texture.needsUpdate needsUpdate] to *true* so that the texture is updated as the video plays. Automatic creation of [page:Texture.mipmaps mipmaps] is also disabled.
 		</p>
 
 		<h2>Code Example</h2>
@@ -49,8 +49,9 @@
 		[page:Constant minFilter] -- How the texture is sampled when a texel covers less than one pixel.
 		The default is [page:Textures THREE.LinearMipmapLinearFilter]. See [page:Textures minification filter constants] for other choices.<br />
 
-		[page:Constant format] -- The format used in the texture.
-		See [page:Textures format constants] for other choices.<br />
+		[page:Constant format] -- The default is [page:Textures THREE.RGBFormat].
+		See [page:Textures format constants] for other choices.
+		Note that a bug has been reported with Firefox's WebGL implementation where use of [page:Textures THREE.RGBFormat] on a VideoTexture can result in a significant performance penalty, if you encounter this issue it is recommended to pass in [page:Textures THREE.RGBAFormat] instead.<br />
 
 		[page:Constant type] -- Default is [page:Textures THREE.UnsignedByteType].
 		See [page:Textures type constants] for other choices.<br />

+ 1 - 1
docs/api/ko/animation/AnimationClip.html

@@ -112,7 +112,7 @@
 
 		<h3>[method:AnimationClip findByName]( [param:Object objectOrClipArray], [param:String name] )</h3>
 		<p>
-			Searches for an AnimationClip을 위한 검색기로, 첫 파라미터 혹은 AnimationClips 배열, "animations"라는 이름을 가진 mesh, geometry 열로부터 이름을 기반으로 검색합니다.
+			Searches for an AnimationClip을 위한 검색기로, 첫 파라미터 혹은 AnimationClips 배열, "animations"라는 이름을 가진 mesh, geometry 열로부터 이름을 기반으로 검색합니다.
 		</p>
 
 		<h3>[method:AnimationClip parse]( [param:Object json] )</h3>

+ 1 - 1
docs/api/ko/animation/KeyframeTrack.html

@@ -88,7 +88,7 @@
 		</p>
 
 		<p>
-			트랙의 이름은 노드의 이름을 사용하거나 노드의 uuid(믹서에 전달된 장면 그래프 노드의 서브트리 안에 있어야 하지만)를 사용해서 노드를 특정할 수 있습니다.
+			트랙의 이름은 노드의 이름을 사용하거나 노드의 uuid(믹서에 전달된  그래프 노드의 서브트리 안에 있어야 하지만)를 사용해서 노드를 특정할 수 있습니다.
 			혹은 만약 트랙 이름이 .으로 시작한다면, 트랙은  믹서에 전달된 루트 노드를 적용할 것입니다.
 		</p>
 

+ 3 - 3
docs/api/ko/animation/PropertyBinding.html

@@ -10,7 +10,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			내부적으로 사용되는 장면 그래프의 실제 프로퍼티에 대한 내용입니다.
+			내부적으로 사용되는  그래프의 실제 프로퍼티에 대한 내용입니다.
 		</p>
 
 
@@ -81,13 +81,13 @@
 
 		<h3>[method:null bind]( )</h3>
 		<p>
-			장면 그래프에 있는 프로퍼티에 대한 게터와 세터를 생성합니다. 내부적으로
+			 그래프에 있는 프로퍼티에 대한 게터와 세터를 생성합니다. 내부적으로
 			[page:PropertyBinding.getValue getValue] 와 [page:PropertyBinding.setValue setValue]로 사용됩니다.
 		</p>
 
 		<h3>[method:null unbind]( )</h3>
 		<p>
-			장면 그래프에 있는 프로퍼티에 대한 게터와 세터의 연결을 끊습니다.
+			 그래프에 있는 프로퍼티에 대한 게터와 세터의 연결을 끊습니다.
 		</p>
 
 		<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>

+ 1 - 1
docs/api/ko/animation/PropertyMixer.html

@@ -10,7 +10,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-		내부적으로 사용되는 가중치 축적을 허용하는 버퍼 장면 그래프 프로퍼티입니다.
+		내부적으로 사용되는 가중치 축적을 허용하는 버퍼  그래프 프로퍼티입니다.
 		</p>
 
 

+ 205 - 0
docs/api/ko/core/BufferAttribute.html

@@ -0,0 +1,205 @@
+<!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 class="desc">
+		이 클래스에는 [page:BufferGeometry]와 연관된 속성 데이터(꼭짓점 위치, 면 순서, 법선, 색깔,
+		UV, 모든 커스텀 속성들 등)를 저장하고 있으며, GPU에 보다 효율적으로 데이터를 전송할 수 있게 합니다. 
+		세부사항 및 활용 예제를 확인해보세요.<br /><br />
+
+		데이터는 모든 길이가 벡터로 저장되며 ([page:BufferAttribute.itemSize itemSize]로 정의된 값),
+		일반적으로 인덱스 값으로 전달될 경우 메서드 내에서 밑줄이 쳐지며 자동으로 벡터 길이에 곱해집니다.
+		</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<p>
+		[page:TypedArray array] -- 반드시 [link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/TypedArray TypedArray]여야 합니다.
+		버퍼를 시작하는데에 사용됩니다. <br />
+		배열에는 
+	 	<code>itemSize * numVertices</code>
+		엘레먼트가 있어야 하며, numVertices는 [page:BufferGeometry BufferGeometry]와 연관된 꼭짓점의 갯수입니다.<br /><br />
+
+
+		[page:Integer itemSize] --  특정 꼭짓점과 연관된 배열의 값의 수입니다.
+		예를 들어 이 속성에서 3개의 벡터(위치, 법선, 색 처럼)를 저장하고 있다면, itemSize는 3이 됩니다.
+		<br /><br />
+
+		[page:Boolean normalized] -- (생략가능) 정수 데이터에만 적용됩니다. 버퍼에 있는 기저 데이터가 GLSL 코드에서 값으로 맵핑되는 방식입니다. 
+		예를 들어 [page:TypedArray array]가 UInt16Array의 인스턴스이고, [page:Boolean normalized]가 true면 배열에 있는 0 - +65535 값들은 
+		GLSL 속성에서 0.0f - +1.0f로 매핑될 것입니다. Int16Array (기호 있는)는 -32767 - +32767 가 -1.0f - +1.0f 로 매핑될 것입니다. 
+		[page:Boolean normalized]가 false라면, 값은 수정 없이 floats로 변환될 것입니다. 예) 32767은 32767.0f로 변환.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>
+		버퍼에 저장되어 있는 데이터를 담고 있는 [page:TypedArray array].
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+		[page:BufferAttribute.itemSize itemSize]로 나눈 [page:BufferAttribute.array array]의 길이를 저장.<br /><br />
+
+		버퍼가 3개의 컴포넌트를 저장한 벡터(위치, 법선, 색 등)
+		저장된 벡터들의 수를 계산합니다.
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>[page:BufferAttribute.array array]에 저장되는 벡터의 길이.</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+		이 속성 인스턴스의 임시 이름. 기본값은 빈 문자열입니다.
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		이 속성이 변했는지와 GPU에 다시 전송해야하는지에 대한 표시입니다.
+		배열의 값을 수정했다면 이 값을 true로 설정하세요.<br /><br />
+
+		이 값을 true로 설정하면 [page:BufferAttribute.version version] 값도 높입니다.
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+		버퍼에 있는 기저 데이터가 GLSL 코드에서 값으로 맵핑되는 방식입니다. 
+		자세한 내용은 위의 생성자 부분을 참고하세요.
+		</p>
+
+		<h3>[property:Function onUploadCallback]</h3>
+		<p>
+		렌더러가 속성 배열 데이터를 GPU에 전달한 후에 실행되는 함수입니다.
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>포함 객체:<br />
+			[page:Integer offset]: 기본값은 *0*입니다. 업데이트를 시작할 위치입니다.<br />
+			[page:Integer count]: 기본값은 *-1*이고, 업데이트 번위를 사용하지 않는다는 의미입니다.<br /><br />
+
+			저장된 벡터의 몇몇 컴포넌트들을 업데이트 할 때만 사용됩니다 (예를 들면, 색과 관련된 컴포넌트만 업데이트할 때).
+		</p>
+
+		<h3>[property:Usage usage]</h3>
+		<p>
+			최적화를 목적으로 특정 데이터 저장 패턴 사용을 정의합니다. 
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]()의 *usage* 파라미터에 대응됩니다.
+			기본값은 *THREE.StaticDrawUsage*입니다.
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>버전값으로, [page:BufferAttribute.needsUpdate needsUpdate] 속성이 true로 설정될 때 증가합니다.</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>현재 BufferAttribute의 모든 Vector3 엘레먼트에 matrix [page:Matrix3 m]를 적용합니다.</p>
+
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>현재 BufferAttribute의 모든 Vector3 엘레먼트에 matrix [page:Matrix4 m]를 적용합니다.</p>
+
+		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
+		<p>현재 BufferAttribute의 모든 Vector3 엘레먼트에 일반 matrix [page:Matrix3 m]를 적용합니다.</p>
+
+		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
+		<p>현재 BufferAttribute의 모든 Vector3 엘레먼트에 matrix [page:Matrix4 m]를 적용하고, 엘레먼트를 방향 벡터로 이동합니다.</p>
+
+		<h3>[method:BufferAttribute clone]() </h3>
+		<p>bufferAttribute 사본을 리턴합니다.</p>
+
+		<h3>[method:BufferAttribute copy]( [param:BufferAttribute bufferAttribute] )</h3>
+		<p>현재의 BufferAttribute에 다른 BufferAttribute를 붙여 넣습니다.</p>
+
+		<h3>[method:BufferAttribute copyArray]( array ) </h3>
+		<p>[page:BufferAttribute.array array]에 해당 배열(일반 배열 혹은 TypedArray)을 복사합니다.<br /><br />
+
+			TypedArray를 복사할 때의 조건에 대한 주의사항은 [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]
+			를 참고해 주세요.
+		</p>
+
+		<h3>[method:null copyAt] ( [param:Integer index1], [param:BufferAttribute bufferAttribute], [param:Integer index2] ) </h3>
+		<p>bufferAttribute[index2]의 벡터를 [page:BufferAttribute.array array][index1]에 복사합니다.</p>
+
+		<h3>[method:BufferAttribute copyColorsArray]( [param:Array colors] ) </h3>
+		<p>RGB 색상 값을 나타내는 배열을 [page:BufferAttribute.array array]에 복사합니다.</p>
+
+		<h3>[method:BufferAttribute copyVector2sArray]( [param:Array vectors] ) </h3>
+		<p>[page:Vector2]값을 나타내는 배열을 [page:BufferAttribute.array array]에 복사합니다.</p>
+
+		<h3>[method:BufferAttribute copyVector3sArray]( [param:Array vectors] ) </h3>
+		<p>[page:Vector3]값을 나타내는 배열을 [page:BufferAttribute.array array]에 복사합니다.</p>
+
+		<h3>[method:BufferAttribute copyVector4sArray]( [param:Array vectors] ) </h3>
+		<p>[page:Vector4]값을 나타내는 배열을 [page:BufferAttribute.array array]에 복사합니다.</p>
+
+		<h3>[method:Number getX]( [param:Integer index] ) </h3>
+		<p>해당 index의 벡터의 x 컴포넌트 값을 리턴합니다.</p>
+
+		<h3>[method:Number getY]( [param:Integer index] ) </h3>
+		<p>해당 index의 벡터의 y 컴포넌트 값을 리턴합니다.</p>
+
+		<h3>[method:Number getZ]( [param:Integer index] ) </h3>
+		<p>해당 index의 벡터의 z 컴포넌트 값을 리턴합니다.</p>
+
+		<h3>[method:Number getW]( [param:Integer index] ) </h3>
+		<p>해당 index의 벡터의 w 컴포넌트 값을 리턴합니다.</p>
+
+		<h3>[method:this onUpload]( [param:Function callback] ) </h3>
+		<p>
+		onUploadCallback 속성의 값을 설정합니다.<br /><br />
+
+		이 값은 [example:webgl_buffergeometry WebGL / Buffergeometry]에서 버퍼가 GPU로 전송된 후에 자유 메모리로 사용됩니다. 
+		</p>
+
+		<h3>[method:BufferAttribute set] ( [param:Array value], [param:Integer offset] ) </h3>
+		<p>
+		value -- 복사할 [page:Array] 혹은 [page:TypedArray] 값입니다. <br />
+		offset -- (생략가능) 복사를 시작할 [page:BufferAttribute.array array] 의 인덱스값입니다.<br /><br />
+
+		[page:BufferAttribute.array array]에서 [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]( [page:Array value], [page:Integer offset] )
+		를 호출합니다.<br /><br />
+
+		[page:Array value]가 [page:TypedArray]로 되는 조건에 대해서는 해당 페이지를 참고하세요.
+		</p>
+
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>[page:BufferAttribute.usage usage]를 value로 설정합니다.</p>
+
+		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
+		<p> x 컴포넌트 값을 설정합니다.</p>
+
+		<h3>[method:BufferAttribute setY]( [param:Integer index], [param:Float y] ) </h3>
+		<p> y 컴포넌트 값을 설정합니다.</p>
+
+		<h3>[method:BufferAttribute setZ]( [param:Integer index], [param:Float z] ) </h3>
+		<p> z 컴포넌트 값을 설정합니다.</p>
+
+		<h3>[method:BufferAttribute setW]( [param:Integer index], [param:Float w] ) </h3>
+		<p> w 컴포넌트 값을 설정합니다.</p>
+
+		<h3>[method:BufferAttribute setXY]( [param:Integer index], [param:Float x], [param:Float y] ) </h3>
+		<p>index의 벡터의 x 및 y 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:BufferAttribute setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] ) </h3>
+		<p> x, y 및 z 컴포넌트를 설정합니다. </p>
+
+		<h3>[method:BufferAttribute setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] ) </h3>
+		<p> x, y, z 및 w 컴포넌트를 설정합니다. </p>
+
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 298 - 0
docs/api/ko/core/BufferGeometry.html

@@ -0,0 +1,298 @@
+<!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>
+		메쉬, 선, 점 기하학의 표현입니다. 꼭짓점의 위치, 면 순서, 법선, 색상, UV, 버퍼에 있는 커스텀 속성을 포함하고 있으며, 데이터를 GPU에 전달하는 
+		자원을 줄여줍니다.
+		</p>
+		<p>
+		속성에 있는 데이터를 읽고 수정하려면, [page:BufferAttribute] 문서를 참고하세요.
+		</p>
+
+		<h2>코드 예제</h2>
+		<code>
+		const geometry = new THREE.BufferGeometry();
+		// create a simple square shape. We duplicate the top left and bottom right
+		// vertices because each vertex needs to appear once per triangle.
+		const vertices = new Float32Array( [
+			-1.0, -1.0,  1.0,
+			 1.0, -1.0,  1.0,
+			 1.0,  1.0,  1.0,
+
+			 1.0,  1.0,  1.0,
+			-1.0,  1.0,  1.0,
+			-1.0, -1.0,  1.0
+		] );
+
+		// itemSize = 3 because there are 3 values (components) per vertex
+		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+		const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
+		const mesh = new THREE.Mesh( geometry, material );
+		</code>
+
+		<h2>예제</h2>
+		<p>
+			[example:webgl_buffergeometry Mesh with non-indexed faces]<br />
+			[example:webgl_buffergeometry_indexed Mesh with indexed faces]<br />
+			[example:webgl_buffergeometry_lines Lines]<br />
+			[example:webgl_buffergeometry_lines_indexed Indexed Lines]<br />
+			[example:webgl_buffergeometry_custom_attributes_particles Particles]<br />
+			[example:webgl_buffergeometry_rawshader Raw Shaders]
+		</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]()</h3>
+		<div>
+		새 [name]를 만듭니다. 몇몇 기본값도 설정합니다.
+		</div>
+
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Object attributes]</h3>
+		<p>
+		이 해시맵은 설정될 속성의 이름을 id로 가지고 있으며 설정해야 할 [page:BufferAttribute buffer] 값을 value로 가지고 있습니다.
+		프로퍼티에 직접 접근하기보다, [page:.setAttribute] 및 [page:.getAttribute]를 통해 이 기하학 속성에 접근하세요.
+		</p>
+
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			bufferGeometry의 바운딩 박스이며 [page:.computeBoundingBox]()로 계산할 수 있습니다. 
+			기본값은 *null*입니다.
+		</p>
+
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			bufferGeometry의 바운딩 스피어이며 [page:.computeBoundingSphere]()로 계산할 수 있습니다. 
+			기본값은 *null*입니다.
+		</p>
+
+		<h3>[property:Object drawRange]</h3>
+		<p>
+			렌더링할 기하학의 부분을 정의합니다. 직접 설정하면 안되며 [page:.setDrawRange]를 사용해야 합니다. 
+			기본 값은 다음과 같습니다.
+			<code>
+				{ start: 0, count: Infinity }
+			</code>
+			인덱스가 없는 BufferGeometry의 경우, count는 렌더링할 꼭짓점들의 갯수입니다.
+			인덱스가 있는 BufferGeometry의 경우, count는 렌더링할 인덱스의 갯수입니다.
+		</p>
+
+		<h3>[property:Array groups]</h3>
+		<p>
+			기하학을 그룹으로 나누며 각자의 WebGL 그리기 요청을 통해 렌더링 됩니다.
+			bufferGeometry와 함께 사용되는 재질의 배열을 허용합니다..<br /><br />
+
+			각자의 그룹은 형태의 객체입니다:
+			<code>{ start: Integer, count: Integer, materialIndex: Integer }</code>
+			start는 이 드리기 요청에서 첫 번째 엘레먼드를 지정하지만 – 첫 번째 인덱스가 없는 기하학이기때문이지만,
+			다른 경우는 첫 번째 삼각형 인덱스입니다. Count는 몇 개의 꼭짓점(혹은 인덱스)가 포함되었는지, 
+			materialIndex는 사용할 재질 배열 인덱스를 지정합니다.
+
+			배열을 직접 수정하기보다는 [page:.addGroup]를 사용해 그룹을 추가합니다.
+		</p>
+
+
+		<!-- Note: groups used to be called drawCalls
+
+		<h3>[property:Array drawcalls]</h3>
+		<p>
+		For geometries that use indexed triangles, this Array can be used to split the object
+		into multiple WebGL draw calls. Each draw call will draw some subset of the vertices
+		in this geometry using the configured [page:Material shader]. This may be necessary if,
+		for instance, you have more than 65535 vertices in your object.
+		</p> -->
+
+
+		<h3>[property:Integer id]</h3>
+		<p>인스턴스의 고유한 번호입니다.</p>
+
+		<h3>[property:BufferAttribute index]</h3>
+		<p>
+			꼭짓점을 여러 개의 삼각형으로 재 사용할 수 있게 해줍니다; 이를 "indexed triangles"를 사용한다고 합니다.
+			각각의 삼각형은 세 꼭짓점의 인덱스와 연관되어 있습니다. 이 속성은 따라서 각 삼각형 면의 각 꼭짓점의 인덱스를 저장하고 있습니다.
+
+			이 속성이 설정되어 있지 않다면, [page:WebGLRenderer renderer]는 세 연속된 위치가 단일 삼각형을 나타낸다고 추정합니다.
+			
+			기본값은 *null* 입니다.
+		</p>
+
+		<h3>[property:Object morphAttributes]</h3>
+		<p>
+			[page:BufferAttribute]의 해쉬맵은 기하학의 모프 타겟에 대한 세부정보를 담고 있습니다.
+		</p>
+
+		<h3>[property:Boolean morphTargetsRelative]</h3>
+		<p>
+			모프 타겟의 행동을 컨트롤하는데에 사용됩니다; true로 설정하면, 모프 타겟 데이터는 absolute positions/normals 대신 relative offsets으로 취급됩니다.
+
+			기본값은 *false* 입니다.
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+		인스턴스의 임의 이름입니다. 기본값은 빈 문자열입니다.
+		</p>
+
+		<h3>[property:Object userData]</h3>
+		<p>
+		BufferGeometry에 관한 커스텀 데이터를 저장하는데에 사용될 수 있는 객체입니다. 이 속성은 복제되지 않기 때문에
+		기능에 대한 참조를 포함하고 있어서는 안됩니다.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		객체 인스턴스의 [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]입니다.
+		자동으로 할당되며 수정할 수 없습니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>이 클래스에서는 [page:EventDispatcher EventDispatcher] 메서드들이 활용 가능합니다.</h3>
+
+		<h3>[method:BufferGeometry setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<p>
+		기하학에 대한 속성을 설정합니다. [page:.attributes]의 내부 해시맵은 속성들의 반복 속도 증가를 위해 유지되기 때문에, 
+		속성 프로퍼티 대신 이 메서드를 사용하세요.
+		</p>
+
+		<h3>[method:null addGroup]( [param:Integer start], [param:Integer count], [param:Integer materialIndex] )</h3>
+		<p>
+			기하학에 그룹을 추가합니다; 프로퍼티 상세에 대해서는 [page:BufferGeometry.groups groups] 페이지를 참고하세요.
+		</p>
+
+
+		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>꼭짓점 좌표로 직접 매트릭스 변형을 합니다.</p>
+
+		<h3>[method:BufferGeometry center] ()</h3>
+		<p>바운딩 박스를 기준으로 기하학을 중앙정렬합니다.</p>
+
+		<h3>[method:BufferGeometry clone]()</h3>
+		<p>BufferGeometry의 사본을 만듭니다.</p>
+
+		<h3>[method:BufferGeometry copy]( [param:BufferGeometry bufferGeometry] )</h3>
+		<p>다른 BufferGeometry를 이 BufferGeometry에 복사합니다.</p>
+
+		<h3>[method:null clearGroups]( )</h3>
+		<p>모든 그룹을 제거합니다.</p>
+
+		<h3>[method:null computeBoundingBox]()</h3>
+		<p>
+		기하학의 바운딩 박스를 계산하고 [page:.boundingBox] 속성을 업데이트합니다.<br />
+		바운딩 박스는 자동으로 계산되지 않습니다. 명시적으로 계산되어야하며 그렇지 않으면 *null* 값입니다.
+		</p>
+
+		<h3>[method:null computeBoundingSphere]()</h3>
+		<p>
+		기하학의 바운딩 스피어를 계산하고 [page:.boundingSphere] 속성을 업데이트합니다.<br />
+		바운딩 스피어는 자동으로 계산되지 않습니다. 명시적으로 계산되어야하며 그렇지 않으면 *null* 값입니다.
+		</p>
+
+		<h3>[method:null computeTangents]()</h3>
+		<p>
+		기하학에 탄젠트 속성을 계산하고 추가합니다.<br />
+		이 계산은 인덱스가 있는 기하학에만 지원되며 위치, 법선, uv 속성이 정의되어야 합니다.
+		</p>
+
+		<h3>[method:null computeVertexNormals]()</h3>
+		<p>면의 법선 평균값을 통해 꼭짓점 법선을 계산합니다.</p>
+
+		<h3>[method:null dispose]()</h3>
+		<p>
+		메모리에서 객체를 정리합니다. <br />
+		앱이 동작중인데 BufferGeometry를 삭제하고 싶을 때 호출합니다.
+		</p>
+
+		<h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
+		<p>[page:BufferAttribute attribute]를 특정 이름과 함께 리턴합니다.</p>
+
+		<h3>[method:BufferAttribute getIndex] ()</h3>
+		<p>[page:.index] 버퍼를 리턴합니다.</p>
+
+		<h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
+		<p>특정 이름의 속성이 존재하면 *true*를 리턴합니다.</p>
+
+		<h3>[method:BufferGeometry lookAt] ( [param:Vector3 vector] )</h3>
+		<p>
+		vector - 바라보는 시점의 월드 벡터 입니다.<br /><br />
+
+		공간의 점을 기준으로 기하학을 면을 회전시킵니다. 일반적으로 한 구간에서만 사용되며 루프 구간에서 사용되지 않습니다.
+		일반적인 리얼타임 메쉬 사용은 [page:Object3D.lookAt] 을 사용하세요.
+		</p>
+
+		<h3>[method:null merge]( [param:BufferGeometry bufferGeometry], [param:Integer offset] )</h3>
+		<p>병합을 시작할 지점인 임의의 오프셋으로 다른 BufferGeometry에 병합합니다.</p>
+
+		<h3>[method:null normalizeNormals]()</h3>
+		<p>
+		기하학의 모든 법선 벡터는 1의 크기를 갖습니다.
+		기하학 표면의 광도를 수정합니다.
+		</p>
+
+		<h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
+		<p>특정 이름의 [page:BufferAttribute attribute]를 전부 삭제합니다.</p>
+
+		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>
+		<p>
+		X 축의 기하학을 회전합니다. 일반적으로 한 구간에서만 사용되며 루프 구간에서 사용되지 않습니다.
+		일반적인 리얼타임 메쉬 회전은 [page:Object3D.rotation] 를 사용하세요.
+		</p>
+
+		<h3>[method:BufferGeometry rotateY] ( [param:Float radians] )</h3>
+		<p>
+		Y 축의 기하학을 회전합니다. 일반적으로 한 구간에서만 사용되며 루프 구간에서 사용되지 않습니다.
+		일반적인 리얼타임 메쉬 회전은 [page:Object3D.rotation] 를 사용하세요.
+		</p>
+
+		<h3>[method:BufferGeometry rotateZ] ( [param:Float radians] )</h3>
+		<p>
+		Z 축의 기하학을 회전합니다. 일반적으로 한 구간에서만 사용되며 루프 구간에서 사용되지 않습니다.
+		일반적인 리얼타임 메쉬 회전은 [page:Object3D.rotation] 를 사용하세요.
+		</p>
+
+		<h3>[method:BufferGeometry scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		기하학 데이터를 확대/축소합니다. 일반적으로 한 구간에서만 사용되며 루프 구간에서 사용되지 않습니다.
+		일반적인 리얼타임 메쉬 확대/축소는 [page:Object3D.scale] 를 사용하세요.
+		</p>
+
+		<h3>[method:BufferGeometry setIndex] ( [param:BufferAttribute index] )</h3>
+		<p>[page:.index] 버퍼를 설정합니다.</p>
+
+		<h3>[method:null setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
+		<p>[page:.drawRange] 프로퍼티를 설정합니다. 인덱스가 없는 BufferGeometry에서, count는 렌더링할 꼭짓점의 수입니다.
+		인덱스가 있는 BufferGeometry에서 count는 렌더링할 인덱스의 수입니다.</p>
+
+		<h3>[method:BufferGeometry setFromPoints] ( [param:Array points] )</h3>
+		<p>점 배열로부터 BufferGeometry의 속성을 설정합니다. from an array of points.</p>
+
+		<h3>[method:Object toJSON]()</h3>
+		<p>버퍼 기하학을 three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format]로 변환합니다.</p>
+
+		<h3>[method:BufferGeometry toNonIndexed]()</h3>
+		<p>인덱스가 있는 BufferGeometry의 인덱스가 없는 버전을 리턴합니다.</p>
+
+		<h3>[method:BufferGeometry translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		기하학을 이동합니다. 일반적으로 한 구간에서만 사용되며 루프 구간에서 사용되지 않습니다.
+		일반적인 리얼타임 메쉬 이동은 [page:Object3D.position] 를 사용하세요.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -0,0 +1,87 @@
+<!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 class="desc">
+		시간을 파악하는 객체입니다. [link:https://developer.mozilla.org/en-US/docs/Web/API/Performance/now performance.now]를 우선적으로 사용하며, 사용이 불가능할 때는 덜 정확한 [link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now Date.now]를 사용합니다.
+		</p>
+
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Boolean autoStart] )</h3>
+		<p>
+		autoStart — (생략 가능) 자동으로 시계를 시작시킬지 설정합니다. 기본값은 true 입니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Boolean autoStart]</h3>
+		<p>
+		업데이트가 최초로 호출되면 자동으로 시계를 시작시킵니다. 기본값은 true 입니다.
+		</p>
+
+		<h3>[property:Float startTime]</h3>
+		<p>
+		시계의 [page:Clock.start start] 메서드가 호출되면 시간을 멈춥니다.
+ 		</p>
+
+
+		<h3>[property:Float oldTime]</h3>
+		<p>
+		시계의 [page:Clock.start start], [page:Clock.getElapsedTime getElapsedTime] 혹은 [page:Clock.getDelta getDelta]
+		메서드가 호출되면 시간을 멈춥니다.
+ 		</p>
+
+		<h3>[property:Float elapsedTime]</h3>
+		<p>
+		시계가 작동한 총 시간을 가지고 있습니다.
+ 		</p>
+
+		<h3>[property:Boolean running]</h3>
+		<p>
+		시계가 동작중인지 아닌지를 나타냅니다.
+ 		</p>
+
+
+		<h2>메서드</h2>
+
+		<h3>[method:null start]()</h3>
+		<p>
+		시계를 시작시킵니다. 또한 [page:Clock.startTime startTime] 및 [page:Clock.oldTime oldTime]을 현재 시간으로 업데이트하고
+		[page:Clock.elapsedTime elapsedTime] 를 *0*으로, [page:Clock.running running] *true*로 설정합니다.
+		</p>
+
+		<h3>[method:null stop]()</h3>
+		<p>
+		시계를 멈추고 [page:Clock.oldTime oldTime]을 현재 시간으로 설정합니다.
+		</p>
+
+		<h3>[method:Float getElapsedTime]()</h3>
+		<p>
+		시계가 시작한 이후로부터의 초를 가져오며 [page:Clock.oldTime oldTime]을 현재 시간으로 설정합니다.<br />
+		[page:Clock.autoStart autoStart]가 *true* 이고 시계가 멈춰있는 상태라면, 시계를 시작시킵니다.
+		</p>
+
+		<h3>[method:Float getDelta]()</h3>
+		<p>
+		[page:Clock.oldTime oldTime]이 설정된 이후로부터 지난 초를 가져오며 [page:Clock.oldTime oldTime]을 현재 시간으로 설정합니다.<br />
+		[page:Clock.autoStart autoStart]가 *true* 이고 시계가 멈춰있는 상태라면, 시계를 시작시킵니다.
+		</p>
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 97 - 0
docs/api/ko/core/EventDispatcher.html

@@ -0,0 +1,97 @@
+<!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 class="desc">
+			커스텀 객체를 위한 자바스크립트 이벤트입니다.<br />
+			[link:https://github.com/mrdoob/eventdispatcher.js Eventdispatcher on GitHub]
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		// Adding events to a custom object
+
+		class Car extends EventDispatcher {
+
+			start() {
+
+				this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+
+			}
+
+		};
+
+		// Using events with the custom object
+
+		const car = new Car();
+
+		car.addEventListener( 'start', function ( event ) {
+
+			alert( event.message );
+
+		} );
+
+		car.start();
+		</code>
+
+		<h2>생성자</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		EventDispatcher 객체를 만듭니다.
+		</p>
+
+
+		<h2>메서드</h2>
+
+		<h3>[method:null addEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - 리스닝할 이벤트의 타입입니다.<br />
+		listener - 이벤트가 작동하면 호출될 함수입니다.
+		</p>
+		<p>
+		이벤트 타입에 리스너를 추가합니다.
+		</p>
+
+		<h3>[method:Boolean hasEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - 리스닝할 이벤트의 타입입니다.<br />
+		listener - 이벤트가 작동하면 호출될 함수입니다.
+		</p>
+		<p>
+		리스너가 이벤트 타입에 추가되었는지를 체크합니다.
+		</p>
+
+		<h3>[method:null removeEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - 제거될 리스너의 타입입니다.<br />
+		listener - 제거될 리스너 함수입니다.
+		</p>
+		<p>
+		이벤트 타입에서 리스너를 제거합니다.
+		</p>
+
+		<h3>[method:null dispatchEvent]( [param:Object event] )</h3>
+		<p>
+		event - 작동하는 이벤트입니다.
+		</p>
+		<p>
+		이벤트 타입을 작동시킵니다.
+		</p>
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/ko/core/GLBufferAttribute.html

@@ -0,0 +1,111 @@
+<!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 class="desc">
+			이 버퍼 속성 클래스는 VBO를 생성하지 않습니다. 대신, VBO가 생성자로 전달되고 난 후의 모든 것을 사용하며 후에 *buffer* 속성으로 변경될 수 있습니다.<br /><br />
+			VBO와 나란히 추가적인 파라미터 전달이 필요합니다. 해당 파라미터는 다음과 같습니다:
+			GL 구조체, GL 데이터 타입, 꼭짓점 당 컴포넌트 갯수,
+			컴포넌트 당 바이트 수, 꼭짓점의 수.<br /><br />
+			이 클래스의 가장 일반적인 사용 사례는 어떤 종류의 GPGPU 계산이 해당 VBO를 방해하거나 심지어 생성하는 경우입니다.
+		</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( [param:WebGLBuffer buffer], [param:GLenum type], [param:Integer itemSize], [param:Integer elementSize], [param:Integer count] )</h3>
+		<p>
+		*buffer* — 반드시 <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer" target="_blank">WebGLBuffer</a>여야 합니다.
+		<br />
+		*type* — <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types" target="_blank">WebGL</a> 데이터 타입 중 하나.
+		<br />
+		*itemSize* — 특정 꼭짓점가 연관되어야 하는 배열의 값의 수. 예를 들어 이 속성이 3-컴포넌트 벡터(예: 위치, 법선 또는 색상)를 저장하는 경우 (
+			itemSize는 3이어야 합니다.
+		<br />
+		*elementSize* — 1, 2 혹은 4. 할당된 "type" 파라미터에 상응하는 사이즈(바이트).
+		<ul>
+			<li>gl.FLOAT: 4</li>
+			<li>gl.UNSIGNED_SHORT: 2</li>
+			<li>gl.SHORT: 2</li>
+			<li>gl.UNSIGNED_INT: 4</li>
+			<li>gl.INT: 4</li>
+			<li>gl.BYTE: 1</li>
+			<li>gl.UNSIGNED_BYTE: 1</li>
+		</ul>
+		*count* — 예상되는 VBO의 꼭짓점 수.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:WebGLBuffer buffer]</h3>
+		<p>
+			현재의 <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer" target="_blank">WebGLBuffer</a> 인스턴스.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			VBO의 꼭짓점 수.
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>
+			각 항목을 구성하는 값의 크기 (꼭짓점).
+		</p>
+
+		<h3>[property:Integer elementSize]</h3>
+		<p>
+			현재의 *type* 속성 값에 맞는 바이트 사이즈를 저장.
+		</p>
+		<p>
+			알려진 타입 크기 리스트는 위의 (생성자)를 참고.
+		</p>
+
+		<h3>[property:GLenum type]</h3>
+		<p>
+			기저의 VBO 컨텐츠를 묘사하는 <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types" target="_blank">WebGL Data Type</a>
+			.
+		</p>
+		<p>
+			*elementSize*와 함께 이 속성을 설정합니다. 추천하는 방법은 *setType* 메서드를 사용하는 것입니다.
+		</p>
+
+		<h3>[property:Boolean isGLBufferAttribute]</h3>
+		<p>
+			읽기 전용. 언제나 *true*입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:null setBuffer]( buffer ) </h3>
+		<p>*buffer* 속성을 설정합니다.</p>
+
+		<h3>[method:null setType]( type, elementSize ) </h3>
+		<p>*type* 및 *elementSize* 속성을 설정합니다.</p>
+
+		<h3>[method:null setItemSize]( itemSize ) </h3>
+		<p>*itemSize* 속성을 설정합니다.</p>
+
+		<h3>[method:null setCount]( count ) </h3>
+		<p>*count* 속성을 설정합니다.</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+		버전 넘버이며 needsUpdate 속성이 true가 될 때마다 증가합니다.
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		기본값은 *false* 입니다. true로 설정하면 [page:GLBufferAttribute.version version]을 증가시킵니다.
+		</p>
+
+		<h2>소스코드</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 42 - 0
docs/api/ko/core/InstancedBufferAttribute.html

@@ -0,0 +1,42 @@
+<!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>
+		[page:BufferAttribute] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		[page:BufferAttribute]의 인스턴스 버전입니다.
+		</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Boolean normalized], [param:Number meshPerAttribute] )</h3>
+		<p>
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>상속받은 속성은 [page:BufferAttribute]를 참고하세요.</p>
+
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+			이 버퍼 속성의 값이 얼마나 자주 반복되어야 하는지를 정의합니다. 
+			값이 1이라면 각 인스턴스 속성이 한 개의 인스턴스로만 사용됩니다. 
+			값이 2라면 각 값은 두 개의 연속적인 인스턴스(그 후로)에 사용됩니다. 기본값은 *1*입니다.
+		</p>
+
+		<h2>메서드</h2>
+		<p>상속 메서드는 [page:BufferAttribute] 를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 40 - 0
docs/api/ko/core/InstancedBufferGeometry.html

@@ -0,0 +1,40 @@
+<!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>
+		[page:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		[page:BufferGeometry]의 인스턴스 버전입니다.
+		</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( )</h3>
+		<p>
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>상속 프로퍼티는 [page:BufferGeometry] 를 참고하세요.</p>
+
+		<h3>[property:Number instanceCount]</h3>
+		<p>
+			기본값은 *Infinity*입니다.
+		</p>
+
+		<h2>메서드</h2>
+		<p>상속 메서드는 [page:BufferGeometry] 를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 44 - 0
docs/api/ko/core/InstancedInterleavedBuffer.html

@@ -0,0 +1,44 @@
+<!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>
+		[page:InterleavedBuffer] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		[page:InterleavedBuffer]의 인스턴스 버전입니다.
+		</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+		<p>
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>
+			상속 프로퍼티는 [page:InterleavedBuffer] 를 참고하세요.
+		</p>
+
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+			기본값은 *1*입니다.
+		</p>
+
+		<h2>메서드</h2>
+		<p>
+			상속 메서드는 [page:InterleavedBuffer] 를 참고하세요.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 124 - 0
docs/api/ko/core/InterleavedBuffer.html

@@ -0,0 +1,124 @@
+<!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 class="desc">
+			"Interleaved"는 서로 다른 타입일 수도 있는 여러 속성들이(예를 들어 위치, 법선, uv, 색상)이 단일 배열 버퍼에 패키징되어있다는 뜻입니다. 
+			<br/><br/>
+			인터리브 배열에 대한 설명은 여기: [link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html Interleaved array basics]에서 확인할 수 있습니다.
+		</p>
+
+		<h2>예제</h2>
+
+		<p>[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer stride] )</h3>
+		<p>
+			[page:TypedArray array] -- 공유 버퍼를 가진 타입 배열입니다. 기하학 데이터를 저장합니다.<br/>
+			[page:Integer stride] -- 꼭짓점 당 타입-배열 엘레먼트의 수입니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Array array]</h3>
+		<p>
+			공유 버퍼를 가진 타입 배열입니다. 기하학 데이터를 저장합니다.
+		</p>
+
+		<h3>[property:Integer stride]</h3>
+		<p>
+			꼭짓점 당 타입-배열 엘레먼트의 수입니다.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+		배열 안에 있는 엘레먼트의 총 수입니다
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>
+		오프셋과 카운트를 가지고 있는 객체입니다.
+		</p>
+
+		<h3>[property:Number updateRange.offset]</h3>
+		<p>
+		기본값은 *0* 입니다.
+		</p>
+
+		<h3>[property:Number updateRange.count]</h3>
+		<p>
+		기본값은 *-1* 입니다.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		인스턴스의 [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]입니다. 자동으로 할당되는 값이며, 수정할 수 없습니다.
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+		버전 넘버이며 needsUpdate 속성이 true일 때 증가합니다.
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		기본값은 *false*입니다. true로 설정하면 [page:InterleavedBuffer.version version]를 증가시킵니다.
+		</p>
+
+		<h3>[property:Usage usage]</h3>
+		<p>
+			최적화 목적의 데이터 저장 패턴의 사용법을 정의합니다. 
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]()의 *usage* 파라미터에 해당합니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
+		<p>
+		 다른 [name]를 이[name]에 복사합니다.
+		</p>
+
+		<h3>[method:InterleavedBuffer copyAt]( [param:Integer index1], [param:InterleavedBuffer attribute], [param:Integer index2] ) </h3>
+		<p>속성 [index2]의 데이터를 [page:InterleavedBuffer.array array][index1]에 복사합니다.</p>
+
+		<h3>[method:InterleavedBuffer set]( [param:TypedArray value], [param:Integer offset] ) </h3>
+		<p>
+			value - 원본 (타입) 배열.<br/>
+			offset - 원본 배열로부터 값을 작성하기 시작할 타깃 배열의 오프셋. 기본값은 *0*입니다.<br/><br />
+
+			버퍼에 여러 값을 저장하고 특정 배열로부터 입력값을 읽습니다.
+		</p>
+
+		<h3>[method:InterleavedBuffer clone]( [param:Object data] ) </h3>
+		<p>
+			data - 이 오브젝트는 인터리브 속성을 가진 기하학의 적절한 복사과정을 위한 공유 배열 버퍼를 가지고 있습니다.
+			<br/><br />
+
+			이 [name]의 사본을 만듭니다.
+		</p>
+
+		<h3>[method:InterleavedBuffer setUsage] ( [param:Usage value] ) </h3>
+		<p>[page:InterleavedBuffer.usage usage]를 value 로 설정합니다.</p>
+
+		<h3>[method:InterleavedBuffer toJSON]( [param:Object data] ) </h3>
+		<p>
+			data - 이 오브젝트는 인터리브 속성을 가진 기하학의 적절한 시리얼라이징을 위한 공유 배열 버퍼를 가지고 있습니다.<br/><br />
+
+			이 [name]을 시리얼화합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 119 - 0
docs/api/ko/core/InterleavedBufferAttribute.html

@@ -0,0 +1,119 @@
+<!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 class="desc">
+
+		</p>
+
+		<h2>생성자</h2>
+		<h3>[name]( [param:InterleavedBuffer interleavedBuffer], [param:Integer itemSize], [param:Integer offset], [param:Boolean normalized] )</h3>
+		<p>
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:InterleavedBuffer data]</h3>
+		<p>
+			생성자로 전달된 [page:InterleavedBuffer InterleavedBuffer] 인스턴스입니다.
+		</p>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>
+			[page:InterleavedBufferAttribute.data data].array의 값입니다.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			[page:InterleavedBufferAttribute.data data].count의 값입니다.
+
+			버퍼가 3-컴포넌트 항목(위치, 법선, 색상 등의)을 저장하고 있을 때,
+			저장된 항목들의 수를 카운팅합니다.
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>
+			각 항목을 구성하는 값의 수입니다.
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+		이 속성 인스턴스의 임시 이름입니다. 기본값은 빈 문자열입니다.
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+			기본값은 *false*입니다. *true*로 설정하면 모든 인터리브 버퍼(특정 속성 데이터만이 아닌)를 GPU에 다시 전송합니다.
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+			기본값은 *false*입니다.
+		</p>
+
+		<h3>[property:Integer offset]</h3>
+		<p>
+			항목이 시작하는 기저 배열 버퍼의 오프셋입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>[page:Matrix4 m] 매트릭스를 이 InterleavedBufferAttribute의 모든 Vector3 엘레먼트에 적용합니다.</p>
+
+		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
+		<p>[page:Matrix3 m] 노멀 매트릭스를 이 InterleavedBufferAttribute의 모든 Vector3 엘레먼트에 적용합니다.</p>
+
+		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
+		<p>[page:Matrix4 m] 매트릭스를 이 InterleavedBufferAttribute의 모든 Vector3 엘레먼트에 적용하고, 엘레먼트를 방향 벡터로 이동합니다.</p>
+
+		<h3>[method:Number getX]( [param:Integer index] ) </h3>
+		<p>해당 index의 항목의 x 컴포넌트를 리턴합니다.</p>
+
+		<h3>[method:Number getY]( [param:Integer index] ) </h3>
+		<p>해당 index의 항목의 y 컴포넌트를 리턴합니다.</p>
+
+		<h3>[method:Number getZ]( [param:Integer index] ) </h3>
+		<p>해당 index의 항목의 z 컴포넌트를 리턴합니다.</p>
+
+		<h3>[method:Number getW]( [param:Integer index] ) </h3>
+		<p>해당 index의 항목의 w 컴포넌트를 리턴합니다.</p>
+
+		<h3>[method:null setX]( [param:Integer index], [param:Float x] ) </h3>
+		<p>해당 index의 항목의 x 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:null setY]( [param:Integer index], [param:Float y] ) </h3>
+		<p>해당 index의 항목의 y 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:null setZ]( [param:Integer index], [param:Float z] ) </h3>
+		<p>해당 index의 항목의 z 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:null setW]( [param:Integer index], [param:Float w] ) </h3>
+		<p>해당 index의 항목의 w 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:null setXY]( [param:Integer index], [param:Float x], [param:Float y] ) </h3>
+		<p>해당 index의 항목의 x, y 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:null setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] ) </h3>
+		<p>해당 index의 항목의 x, y, z 컴포넌트를 설정합니다.</p>
+
+		<h3>[method:null setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] ) </h3>
+		<p>해당 index의 항목의 x, y, z, w 컴포넌트를 설정합니다.</p>
+
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 97 - 0
docs/api/ko/core/Layers.html

@@ -0,0 +1,97 @@
+<!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 class="desc">
+			[page:Layers] 오브젝트는 [page:Object3D]를 1개에서 32개의 레이어에 0에서 31의 숫자로 할당합니다.
+			- 내부적으로 레이어들은 [link:https://en.wikipedia.org/wiki/Mask_(computing) bit mask]로 저장되며, 기본값으로 모든 
+			Object3D들은 0번 레이어의 멤버입니다. <br /><br />
+
+			가시성을 컨트롤하는데에 사용할 수 있습니다. - 카메라의 뷰가 렌더링될 때 오브젝트는 반드시 [page:Camera camera]와 가시 레이어를 공유해야합니다.<br /><br />
+
+			[page:Object3D]로부터 상속받은 모든 클래스들은 [page:Object3D.layers] 프로퍼티를 가지고 있으며 이는 이 클래스의 인스턴스입니다.
+		</p>
+
+		<h2>예제</h2>
+
+		<p>
+			[example:webgl_layers WebGL / layers]
+		</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+			새 레이어 오브젝트를 만들고 최초 멤버 레이어 0을 설정합니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Integer mask]</h3>
+		<p>
+			현재 레이어가 속해있는 32 레이어들의 비트 마스크를 저장하고 있습니다.
+		</p>
+
+
+		<h2>메서드</h2>
+
+		<h3>[method:null disable]( [param:Integer layer] )</h3>
+		<p>
+			layer - 0부터 31까지의 정수.<br /><br />
+
+			이 *layer*의 멤버 속성을 제거합니다.
+		</p>
+
+		<h3>[method:null enable]( [param:Integer layer] )</h3>
+		<p>
+			layer - 0부터 31까지의 정수.<br /><br />
+
+			이 *layer*에 멤버 속성을 추가합니다.
+		</p>
+
+		<h3>[method:null set]( [param:Integer layer] )</h3>
+		<p>
+			layer - 0부터 31까지의 정수.<br /><br />
+
+			*layer*의 멤버 속성을 설정하고, 다른 모든 레이어들의 멤버 속성을 제거합니다.
+		</p>
+
+		<h3>[method:Boolean test]( [param:Layers layers] )</h3>
+		<p>
+			layers - 레이어 오브젝트<br /><br />
+
+			전달받은 *layers* 오브젝트가 적어도 1개 이상의 레이어를 가지고 있으면 true를 리턴합니다.
+		</p>
+
+		<h3>[method:null toggle]( [param:Integer layer] )</h3>
+		<p>
+			layer - 0부터 31까지의 정수.<br /><br />
+
+			ㄴ*layer*의 멤버 속성을 전환합니다.
+		</p>
+
+		<h3>[method:null enableAll]()</h3>
+		<p>
+			모든 레이어에 멤버 속성을 추가합니다.
+		</p>
+
+		<h3>[method:null disableAll]()</h3>
+		<p>
+			모든 레이어의 멤버 속성을 제거합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 470 - 0
docs/api/ko/core/Object3D.html

@@ -0,0 +1,470 @@
+<!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 class="desc">
+			이 클래스는 three.js의 대부분의 객체에 대한 기본 클래스이며 3D 공간에서 객체를 조작하기 위한 일련의 속성 및 메서드를 제공합니다.<br /><br />
+
+			[page:.add]( object ) 메서드를 사용해 객체를 그룹핑해서 오브젝트를 자식으로 추가하는 데에 사용할 수도 있지만, [page:Group]를 사용하는 것이 더 낫습니다.
+		</p>
+
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		전달인자를 받지 않는 생성자입니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:AnimationClip animations]</h3>
+		<p>객체의 애니메이션 클립 배열입니다.</p>
+
+		<h3>[property:Boolean castShadow]</h3>
+		<p>객체가 섀도우 맵으로 렌더링 되는지의 여부입니다. 기본값은 *false*입니다.</p>
+
+		<h3>[property:Object3D children]</h3>
+		<p>객체의 자식 배열입니다. 수동으로 객체를 그룹핑하는 내용은 [page:Group]을 참고하세요.</p>
+
+		<h3>[property:Material customDepthMaterial]</h3>
+		<p>
+		뎁스맵에 렌더링할 때 사용되는 깊이 재질 커스텀입니다. 메쉬 구조체에서만 사용할 수 있습니다.
+		When shadow-casting with a [page:DirectionalLight] 혹은 [page:SpotLight]를 통해 섀도우 캐스팅을 할 때, (a) 꼭짓점의 쉐이더 위치를 수정하거나,
+		(b) displacement map을 사용하거나, (c) alphaTest를 통해 알파 맵을 사용하거나, (d) alphaTest로 투명 텍스쳐를 사용하거나 할 때
+		적절한 섀도우의 customDepthMaterial를 특정해야 합니다. 기본값은 *undefined*입니다.
+		</p>
+
+		<h3>[property:Material customDistanceMaterial]</h3>
+		<p>
+		[page:.customDepthMaterial customDepthMaterial]와 같지만, [page:PointLight]와 함게 쓰입니다. 기본값은 *undefined*입니다.
+		</p>
+
+		<h3>[property:Boolean frustumCulled]</h3>
+		<p>
+		이 값이 설정되면, 매 프레임마다 객체를 렌더링하기 전에 객체가 카메라의 절두체에 속해 있는지를 체크합니다. `false`로 설정하면
+		카메라 절두체에 속해있지 않더라도 객체는 매 프레임마다 렌더링될 것입니다. 기본값은 `true`입니다.
+		</p>
+
+		<h3>[property:Integer id]</h3>
+		<p>읽기전용 – 이 객체 인스턴스의 고유 번호입니다.</p>
+
+		<h3>[property:Layers layers]</h3>
+		<p>
+		객체의 레이어 멤버 속성입니다. 객체는 사용중인 [page:Camera] 에 공통적으로 최소 한 개의 레이어가 있을 때만 볼 수 있습니다.
+		이 프로퍼티는 [page:Raycaster]를 사용해 레이-인터섹션 테스트를 할 때 원치 않는 객체를 필터링하는 용도로도 사용할 수 있습니다.
+		</p>
+
+		<h3>[property:Matrix4 matrix]</h3>
+		<p>로컬 변형 매트릭스입니다.</p>
+
+		<h3>[property:Boolean matrixAutoUpdate]</h3>
+		<p>
+		이 값을 설정하면 위치의 매트릭스를 계산하고 (회전 및 쿼터니언), 매 프레임마다 확대/축소하고 matrixWorld 프로퍼티를 재계산합니다.
+		기본값은 [page:Object3D.DefaultMatrixAutoUpdate] (true)입니다.
+		</p>
+
+		<h3>[property:Matrix4 matrixWorld]</h3>
+		<p>
+		객체의 글로벌 변형입니다. Object3D가 부모를 가지고 있지 않다면, 로컬 변형 [page:.matrix]와 동일합니다.
+		</p>
+
+		<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
+		<p>
+		이 값을 설정하면 When this is set, it calculates the 해당 프레임의 matrixWorld를 계산하고 이 프로퍼티를 false로 초기화합니다.
+		기본값은 *false*입니다.
+		</p>
+
+		<h3>[property:Matrix4 modelViewMatrix]</h3>
+		<p>이 값은 쉐이더로 전달되고 객체의 위치를 계산하는 데에 사용됩니다.</p>
+
+		<h3>[property:String name]</h3>
+		<p>객체의 임시 이름입니다(고유할 필요는 없습니다). 기본값은 빈 문자열입니다.</p>
+
+		<h3>[property:Matrix3 normalMatrix]</h3>
+		<p>
+		이 값은 쉐이더로 전달되고 객체의 광원을 계산합니다. 이 객체 modelViewMatrix의 왼쪽 위 3x3 서브매트릭스의 역 매트릭스입니다.<br /><br />
+
+		이 특별한 매트릭스를 사용하는 이유는 단순히 modelViewMatrix만을 사용하면 유닛이 아닌 법선의 길이가 결과로 나오거나(스케일링 시)
+		수직이 아닌 방향의 결과가 나올 수 있기 때문입니다(비균일 스케일링 시).<br /><br />
+
+		한편, modelViewMatrix의 이동 파트는 법선의 계산과는 상관이 없습니다. Matrix3으로 충분합니다.
+		</p>
+
+		<h3>[property:Function onAfterRender]</h3>
+		<p>
+			3D 객체가 렌더링된 후 즉시 실행되는 선택적 콜백입니다.
+			이 함수는 렌더러, 장면, 카메라, 기하학, 재질, 그룹 등의 매개 변수를 사용하여 호출됩니다.
+		</p>
+		<p>
+		이 콜백은 *렌더링 가능한* 3D 객체에만 실행됩니다. [page:Mesh], [page:Line], [page:Points] 혹은 [page:Sprite]같은 기하학 및 재질로 시각적 표현을 정의하는 3D 객체들에 한정됩니다.
+		[page:Object3D], [page:Group] 혹은 [page:Bone] 인스턴스는 렌더링할 수 없으므로 이러한 객체에 대해서는 콜백이 실행되지 않습니다.
+		</p>
+
+		<h3>[property:Function onBeforeRender]</h3>
+		<p>
+			3D 객체가 렌더링되기 바로 전에 실행되는 선택적 콜백입니다.
+			이 함수는 렌더러, 장면, 카메라, 기하학, 재질, 그룹 등의 매개 변수를 사용하여 호출됩니다.
+		</p>
+		<p>
+			이 콜백은 *렌더링 가능한* 3D 객체에만 실행됩니다. [page:Mesh], [page:Line], [page:Points] 혹은 [page:Sprite]같은 기하학 및 재질로 시각적 표현을 정의하는 3D 객체들에 한정됩니다.
+			[page:Object3D], [page:Group] 혹은 [page:Bone] 인스턴스는 렌더링할 수 없으므로 이러한 객체에 대해서는 콜백이 실행되지 않습니다.
+		</p>
+
+		<h3>[property:Object3D parent]</h3>
+		<p>[link:https://en.wikipedia.org/wiki/Scene_graph scene graph]에 있는 객체의 부모입니다. 객체는 최대 한 개의 부모만 가질 수 있습니다.</p>
+
+		<h3>[property:Vector3 position]</h3>
+		<p>객체의 로컬 위치를 나타내는 [page:Vector3]입니다. 기본값은 (0, 0, 0)입니다.</p>
+
+		<h3>[property:Quaternion quaternion]</h3>
+		<p>객체의 로컬 회전을 나타낸 [page:Quaternion Quaternion]입니다.</p>
+
+		<h3>[property:Boolean receiveShadow]</h3>
+		<p>재질이 그림자를 받는지에 대한 프로퍼티입니다. 기본값은 *false*입니다.</p>
+
+		<h3>[property:Number renderOrder]</h3>
+		<p>
+			이 값을 사용하면 불투명한 객체와 투명한 객체가 독립적으로 정렬되어 있더라도 [link:https://en.wikipedia.org/wiki/Scene_graph scene graph] 객체의
+			기본 렌더링 순서를 재정의할 수 있습니다. 이 프로퍼티가 [page:Group Group]의 인스턴스로 설정되면 모든 하위 객체들은 함께 정렬 및 렌더링 될 것입니다.
+		정렬은 renderOrder가 가장 낮은 것부터 가장 높은 순서입니다. 기본값은 *0*입니다.
+		</p>
+
+		<h3>[property:Euler rotation]</h3>
+		<p>
+		객체의 로컬 회전 라디안([link:https://en.wikipedia.org/wiki/Euler_angles Euler angles]를 참고하세요)입니다.
+		</p>
+
+		<h3>[property:Vector3 scale]</h3>
+		<p>
+		객체의 로컬 스케일입니다. 기본값은 [page:Vector3]( 1, 1, 1 )입니다.
+		</p>
+
+		<h3>[property:Vector3 up]</h3>
+		<p>
+		[page:.lookAt lookAt] 메서드에서 사용되며, 결과의 방향을 결정합니다.<br />
+		기본값은 [page:Object3D.DefaultUp]값, ( 0, 1, 0 )입니다.
+		</p>
+
+		<h3>[property:Object userData]</h3>
+		<p>
+		Object3D에 대한 사용자 지정 데이터를 저장하는 데 사용할 수 있는 객체입니다. 함수는 복제되지 않으므로 해당 함수에 대한 참조를 포함해서는 안 됩니다.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		이 객체 인스턴스의 [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]입니다.
+		자동으로 할당되며, 수정할 수 없습니다.
+		</p>
+
+		<h3>[property:Boolean visible]</h3>
+		<p>*true*면 객체가 렌더링됩니다. 기본값은 *true*입니다.</p>
+
+
+
+
+		<h2>정적 프로퍼티</h2>
+		<p>
+			정적 프로퍼티와 메서드는 해당 클래스의 인스턴스가 아니라 클래스 별로 정의됩니다.
+			이는 [page:Object3D.DefaultUp] 혹은 [page:Object3D.DefaultMatrixAutoUpdate]를 변경하면
+			변경이 이루어진 시점 이후의(이미 만들어진 Object3Ds는 영향을 받지 않습니다) 모든 Object3D(및 파생 클래스)의
+			[page:.up up]과 [page:.matrixAutoUpdate matrixAutoUpdate] 값을 변경시킬 것입니다.
+		</p>
+
+		<h3>[property:Vector3 DefaultUp]</h3>
+		<p>
+			The default 오브젝트의 기본값 [page:.up up] 방향이며
+			[page:DirectionalLight], [page:HemisphereLight] 및 [page:Spotlight]의 기본 위치값으로도 사용됩니다(위에서 아래로 내려오는 빛을 만듭니다).<br />
+			기본값으로 ( 0, 1, 0 ) 을 설정합니다.
+		</p>
+
+		<h3>[property:Boolean DefaultMatrixAutoUpdate]</h3>
+		<p>
+			새로 만들어진 Object3D의 [page:.matrixAutoUpdate matrixAutoUpdate] 기본 세팅입니다.<br />
+
+		</p>
+
+
+		<h2>메서드</h2>
+
+		<h3>[page:EventDispatcher EventDispatcher] 메서드들은 이 클래스에서 사용 가능합니다.</h3>
+
+		<h3>[method:this add]( [param:Object3D object], ... )</h3>
+		<p>
+		*object*를 이 객체의 자식으로 추가합니다. 임의 개수의 객체를 추가할 수 있습니다.
+		객체에는 상위 항목이 하나 이상 있을 수 있으므로 여기에 전달된 객체의 현재 상위 항목이 모두 제거됩니다. <br /><br />
+
+		수동으로 객체 그룹핑을 하는 내용은 [page:Group]를 참고하세요.
+		</p>
+
+		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>매트릭스 변환을 객체에 적용하고 객체의 위치, 회전 및 스케일을 업데이트합니다.</p>
+
+		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<p>쿼터니언으로 표시된 회전을 객체에 적용합니다</p>
+
+		<h3>[method:this attach]( [param:Object3D object] )</h3>
+		<p>자식에 *object*를 추가하지만 객체의 월드 변형은 유지합니다.</p>
+
+		<h3>[method:Object3D clone]( [param:Boolean recursive] )</h3>
+		<p>
+		recursive -- true면 객체의 자식들도 복제됩니다. 기본값은 true입니다.<br /><br />
+
+		해당 객체의 사본을 리턴하고 자식까지 복제할 수도 있습니다.
+		</p>
+
+		<h3>[method:this copy]( [param:Object3D object], [param:Boolean recursive] )</h3>
+		<p>
+		recursive -- true면 객체의 자식들도 복제됩니다. 기본값은 true입니다.<br /><br />
+
+		이 객체에 넘겨받은 객체를 복사합니다.
+
+		주의: 이벤트리스너와 사용자정의 콜백([page:.onAfterRender] 및 [page:.onBeforeRender])은 복제되지 않습니다.
+		</p>
+
+		<h3>[method:Object3D getObjectById]( [param:Integer id] )</h3>
+		<p>
+		id -- 객체 인스턴스의 고유 번호입니다.<br /><br />
+
+		객체 자신부터 시작하여 객체와 객체 자식 항목을 검색하고 일치하는 ID의 첫 번째 항목을 리턴합니다.
+		ID는 순차적으로 증가하며: 1, 2, 3, ... 새 객체마다 하나씩 증가합니다.
+		</p>
+
+		<h3>[method:Object3D getObjectByName]( [param:String name] )</h3>
+		<p>
+		name -- 자식의 Object3D.name 프로퍼티와 일치하는 문자열입니다. <br /><br />
+
+		객체 자신부터 시작하여 객체와 객체 자식 항목을 검색하고 일치하는 이름의 첫 번째 항목을 리턴합니다.<br />
+		대부분의 객체는 기본값으로 이름이 빈 문자열입니다. 이 메서드를 사용하기 위해서는 직접 이름을 지정해야 합니다.
+		</p>
+
+		<h3>[method:Object3D getObjectByProperty]( [param:String name], [param:Float value] )</h3>
+		<p>
+		name -- 검색하고자하는 이름 프로퍼티. <br />
+		value -- 프로퍼티의 값. <br /><br />
+
+		객체 자신부터 시작하여 객체와 객체 자식 항목을 검색하고 일치하는 값의 첫 번째 항목을 리턴합니다.
+		</p>
+
+		<h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — 결과값은 이 Vector3에 복제됩니다. <br /><br />
+
+		객체의 월드 스페이스에서의 벡터를 리턴합니다.
+		</p>
+
+		<h3>[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )</h3>
+		<p>
+		[page:Quaternion target] — 결과값은 이 Quaternion에 복제됩니다. <br /><br />
+
+		객체의 월드 스페이스에서의 회전값을 쿼터니언으로 리턴합니다.
+		</p>
+
+		<h3>[method:Vector3 getWorldScale]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — 결과값은 이 Vector3에 복제됩니다. <br /><br />
+
+		객체에 적용되는 월드 스페이스에서의 각 축의 스케일 벡터값을 리턴합니다.
+		</p>
+
+		<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — 결과값은 이 Vector3에 복제됩니다. <br /><br />
+
+		객체의 월드 스페이스에서의 z축 양수 방향 벡터를 리턴합니다.
+		</p>
+
+
+		<h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3>
+		<p>
+		vector - 이 객체의 로컬 스페이스에서의 위치를 나타내는 벡터입니다.<br /><br />
+
+		이 객체의 로컬 스페이스를 월드 스페이스로 전환합니다.
+		</p>
+
+		<h3>[method:null lookAt]( [param:Vector3 vector] )<br />
+		[method:null lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		vector - 로컬 스페이스에서의 위치를 나타내는 벡터입니다.<br /><br />
+		부가적으로, 월드 스페이스의 [page:.x x], [page:.y y] 및 [page:.z z] 위치 컴포넌트를 설정할 수 있습니다.<br /><br />
+
+		월드 스페이스의 한 점으로 객체의 면을 회전시킵니다.<br /><br />
+
+		이 메서드는 비균일 스케일 부모를 가진 객체들은 지원하지 않습니다.
+		</p>
+
+		<h3>[method:Array raycast]( [param:Raycaster raycaster], [param:Array intersects] )</h3>
+		<p>
+		객체와 레이캐스팅 사이의 인터섹션을 구하는 추상 (빈) 메서드입니다.
+		Subclasses such as [page:Mesh], [page:Line], 및 [page:Points] 같은 서브클래스들은 레이캐스팅을 사용하는 순서에 따라 이 메서드를 실행합니다.
+		</p>
+
+		<h3>[method:this remove]( [param:Object3D object], ... )</h3>
+		<p>
+		이 객체의 자식 중 *object*를 제거합니다. 임의 갯수의 객체를 제거할 수 있습니다.
+		</p>
+
+		<h3>[method:this removeFromParent]()</h3>
+		<p>
+		Removes this object from its current parent.
+		</p>
+
+		<h3>[method:this clear]()</h3>
+		<p>
+		모든 자식 객체를 제거합니다.
+		</p>
+
+		<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+		axis -- 객체 스페이스의 정규화 벡터입니다. <br />
+		angle -- 라디안 각도입니다.<br /><br />
+
+		객체를 객체 스페이스의 축에 맞춰 회전시킵니다. 해당 축은 정규화되었다고 가정합니다.
+		</p>
+
+		<h3>[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+		axis -- 월드 스페이스의 정규화 벡터입니다. <br />
+		angle -- 라디안 각도입니다.<br /><br />
+
+		객체를 월드 스페이스의 축에 맞춰 회전시킵니다. 해당 축은 정규화되었다고 가정합니다.
+		부모의 회전은 고려하지 않습니다.
+		</p>
+
+		<h3>[method:this rotateX]( [param:Float rad] )</h3>
+		<p>
+		rad - 회전시킬 라디안 각도입니다.<br /><br />
+
+		로컬 스페이스에서 x 축을 기준으로 회전시킵니다.
+		</p>
+
+		<h3>[method:this rotateY]( [param:Float rad] )</h3>
+		<p>
+		rad - 회전시킬 라디안 각도입니다.<br /><br />
+
+		로컬 스페이스에서 y 축을 기준으로 회전시킵니다.
+		</p>
+
+		<h3>[method:this rotateZ]( [param:Float rad] )</h3>
+		<p>
+		rad - 회전시킬 라디안 각도입니다.<br /><br />
+
+		로컬 스페이스에서 z 축을 기준으로 회전시킵니다.
+		</p>
+
+		<h3>[method:null setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+			axis -- 오브젝트 스페이스의 정규화 벡터입니다. <br />
+			angle -- 라디안 각도입니다<br /><br />
+
+			[page:.quaternion]에서 [page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] )를 호출합니다.
+		</p>
+
+		<h3>[method:null setRotationFromEuler]( [param:Euler euler] )</h3>
+		<p>
+			euler -- 회전 정도를 나타내는 오일러 각입니다.<br />
+
+			 [page:Quaternion.setRotationFromEuler setRotationFromEuler]( [page:Euler euler])를 호출합니다.
+		</p>
+
+		<h3>[method:null setRotationFromMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+			m -- 매트릭스의 회전 컴포넌트만큼 쿼터니언을 회전시킵니다.<br />
+
+			[page:.quaternion]에서 [page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m])를 호출합니다.<br /><br />
+
+			m의 상위 3x3은 순수 회전 매트릭스(예를 들어 스케일이 없는 매트릭스)로 가정합니다.
+		</p>
+
+		<h3>[method:null setRotationFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+			q -- 정규화 쿼터니언입니다.<br /><br />
+
+			[page:.quaternion]에 해당 쿼터니언을 복사합니다.
+		</p>
+
+		<h3>[method:Object toJSON]( [param:Object meta] )</h3>
+		<p>
+		meta -- 객체의 재질, 텍스쳐 및 이미지 같은 메타데이터를 포함하고 있는 객체입니다.<br />
+		객체를 three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format]으로 변환합니다.
+		</p>
+
+		<h3>[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )</h3>
+		<p>
+		axis -- 객체 스페이스에서의 정규화 벡터입니다.<br />
+		distance -- 이동할 거리입니다.<br /><br />
+
+		객체 스페이스의 축을 따라 객체를 거리만큼 이동합니다. 축은 정규화되었다고 가정합니다.
+		</p>
+
+		<h3>[method:this translateX]( [param:Float distance] )</h3>
+		<p>객체 스페이스에서 *distance*만큼 객체를 x축으로 이동시킵니다.</p>
+
+		<h3>[method:this translateY]( [param:Float distance] )</h3>
+		<p>객체 스페이스에서 *distance*만큼 객체를 y축으로 이동시킵니다.</p>
+
+		<h3>[method:this translateZ]( [param:Float distance] )</h3>
+		<p>객체 스페이스에서 *distance*만큼 객체를 z축으로 이동시킵니다.</p>
+
+		<h3>[method:null traverse]( [param:Function callback] )</h3>
+		<p>
+		callback - object3D 객체의 첫 번째 인자 함수입니다.<br /><br />
+
+		이 객체와 모든 자식들의 콜백을 실행합니다.<br/>
+		주의: 콜백에서 씬 그래프를 수정하는 것은 허용되지 않습니다.
+		</p>
+
+		<h3>[method:null traverseVisible]( [param:Function callback] )</h3>
+		<p>
+		callback - object3D 객체의 첫 번째 인자 함수입니다.<br /><br />
+
+		Like traverse와 비슷하지만, 보이는 객체들의 콜백만 실행됩니다.
+		보이지 않는 객체들의 자식들은 실행되지 않습니다.<br/>
+		주의: 콜백에서 씬 그래프를 수정하는 것은 허용되지 않습니다.
+		</p>
+
+		<h3>[method:null traverseAncestors]( [param:Function callback] )</h3>
+		<p>
+		callback - object3D 객체의 첫 번째 인자 함수입니다.<br /><br />
+
+		모든 부모의 콜백을 실행합니다.<br/>
+		주의: 콜백에서 씬 그래프를 수정하는 것은 허용되지 않습니다.
+		</p>
+
+		<h3>[method:null updateMatrix]()</h3>
+		<p>로컬 변형을 업데이트합니다.</p>
+
+		<h3>[method:null updateMatrixWorld]( [param:Boolean force] )</h3>
+		<p>객체와 자식들의 글로벌 변형을 업데이트합니다.</p>
+
+		<h3>[method:null updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
+		<p>
+		updateParents - 재귀적으로 부모의 글로벌 변형을 업데이트합니다.<br />
+		updateChildren - 재귀적으로 자식의 글로벌 변형을 업데이트합니다.<br /><br />
+
+		객체의 글로벌 변형을 업데이트합니다.
+		</p>
+
+		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
+		<p>
+		vector - 월드 스페이스의 위치를 나타내는 벡터입니다.<br /><br />
+
+		월드 스페이스의 벡터를 객체의 로컬 스페이스로 변환합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -0,0 +1,206 @@
+<!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 class="desc">
+		이 클래스는 [link:https://en.wikipedia.org/wiki/Ray_casting raycasting]을 보조하기 위해 만들어졌습니다.
+		레이캐스팅은 여러 개체 중 마우스로 선택(마우스가 3d 공간의 객체 위에서 작동하는)하는 기능을 담당합니다.
+		</p>
+
+		<h2>코드 예제</h2>
+		<code>
+		const raycaster = new THREE.Raycaster();
+		const mouse = new THREE.Vector2();
+
+		function onMouseMove( event ) {
+
+			// calculate mouse position in normalized device coordinates
+			// (-1 to +1) for both components
+
+			mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+			mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+
+		}
+
+		function render() {
+
+			// update the picking ray with the camera and mouse position
+			raycaster.setFromCamera( mouse, camera );
+
+			// calculate objects intersecting the picking ray
+			const intersects = raycaster.intersectObjects( scene.children );
+
+			for ( let i = 0; i < intersects.length; i ++ ) {
+
+				intersects[ i ].object.material.color.set( 0xff0000 );
+
+			}
+
+			renderer.render( scene, camera );
+
+		}
+
+		window.addEventListener( 'mousemove', onMouseMove, false );
+
+		window.requestAnimationFrame(render);
+
+		</code>
+
+		<h2>예제</h2>
+
+		<p>
+			[example:webgl_interactive_cubes Raycasting to a Mesh]<br />
+			[example:webgl_interactive_cubes_ortho Raycasting to a Mesh in using an OrthographicCamera]<br />
+			[example:webgl_interactive_buffergeometry Raycasting to a Mesh with BufferGeometry]<br />
+			[example:webgl_instancing_raycast Raycasting to a InstancedMesh]<br />
+			[example:webgl_interactive_lines Raycasting to a Line]<br />
+			[example:webgl_interactive_raycasting_points Raycasting to Points]<br />
+			[example:webgl_geometry_terrain_raycast Terrain raycasting]<br />
+			[example:webgl_interactive_voxelpainter Raycasting to paint voxels]<br />
+			[example:webgl_raycast_texture Raycast to a Texture]
+		</p>
+
+		<h2>생성자</h2>
+
+		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction], [param:Float near], [param:Float far] ) {</h3>
+		<p>
+		[page:Vector3 origin] — 레이캐스팅이 활용되는 시점 벡터입니다.<br />
+		[page:Vector3 direction] — 레이 방향을 가지고 있는 방향 벡터입니다. 정규화되어야 합니다.<br />
+		[page:Float near] — near보다 바깥 범위에 있는 결과값들입니다. 음수가 될 수 없습니다. 기본값은 0입니다.<br />
+		[page:Float far] — far 안쪽 범위에 있는 결과값들입니다. near보다 작을 수 없습니다. 기본값은 무한대입니다.
+		</p>
+		<p>
+		새 레이캐스터 객체를 만듭니다.<br />
+		</p>
+
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Float far]</h3>
+		<p>
+		레이캐스터의 far 요소입니다. 이 값은 거리에 비례해 버려지는 객체들을 나타냅니다.
+		이 값은 음수가 될 수 없으며 near 프로퍼티보다 커야합니다.
+		</p>
+
+		<h3>[property:Float near]</h3>
+		<p>
+		레이캐스터의 near 요소입니다. 이 값은 거리에 비례해 버려지는 객체들을 나타냅니다.
+		이 값은 음수가 될 수 없으며 far 프로퍼티보다 작아야 합니다.
+		</p>
+
+		<h3>[property:Camera camera]</h3>
+		<p>
+		[page:Sprites]같은 빌보드객체처럼 뷰에 의존하는 객체에 대항 레이캐스팅 시에 사용되는 카메라입니다. 
+		이 값은 수동으로 설정하거나 "setFromCamera"를 호출해야 합니다.
+
+		기본값은 null입니다.
+		</p>
+
+		<h3>[property:Layers layers]</h3>
+		<p>
+		[name]에서 인터섹션 테스트 시에 3d 객체를 선택적으로 무시할 때 사용됩니다. 아래 코드 예제에서 *1* 레이어에 있는 3D 객체들만 [name]의 인스턴스가 될 것입니다.
+
+		<code>
+		raycaster.layers.set( 1 );
+		object.layers.enable( 1 );
+		</code>
+
+		</p>
+
+		<h3>[property:Object params]</h3>
+		<p>
+		다음과 같은 프로퍼티를 가지고 있는 객체입니다:
+
+			<code>
+{
+	Mesh: {},
+	Line: { threshold: 1 },
+	LOD: {},
+	Points: { threshold: 1 },
+	Sprite: {}
+}
+			</code>
+
+			여기서 threshold는 객체를 교차할 때 레이캐스터의 정밀도(월드 단위)입니다.
+		</p>
+
+		<h3>[property:Ray ray]</h3>
+		<p>레이캐스팅에 사용되는 [Page:Ray]입니다.</p>
+
+
+		<h2>메서드</h2>
+
+		<h3>[method:null set]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 origin] — 레이캐스팅이 활용되는 시점 벡터입니다.<br />
+		[page:Vector3 direction] — 레이 방향을 정하는 정규화된 방향 벡터입니다.
+		</p>
+		<p>
+		새 시점과 방향으로 레이를 업데이트합니다. 이 메서드는 인자의 값만을 복사한다는 점에 주의하세요.
+		</p>
+
+		<h3>[method:null setFromCamera]( [param:Vector2 coords], [param:Camera camera] )</h3>
+		<p>
+		[page:Vector2 coords] — 마우스의 2D 좌표이며 정규화 디바이스 좌표입니다(NDC)---X 및 Y 컴포넌트는 -1 과 1 사이입니다.<br />
+		[page:Camera camera] — 레이의 시점이 되는 카메라입니다.
+		</p>
+		<p>
+		레이의 새 시점과 방향을 업데이트합니다.
+		</p>
+
+		<h3>[method:Array intersectObject]( [param:Object3D object], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+		[page:Object3D object] — 레이와의 교차 체크를 하는 객체입니다.<br />
+		[page:Boolean recursive] — true라면, 모든 자식들도 함게 체크합니다. false라면 해당 객체와의 교차만 체크합니다. 기본값은 false입니다.<br />
+		[page:Array optionalTarget] — (생략가능) 결과값을 설정할 타겟입니다. 아니면 [page:Array]가 인스턴스화됩니다. 이 값을 설정하면, 모든 요청 전에 배열을 제거해야합니다 (예를 들어 array.length = 0;).
+		</p>
+		<p>
+			자식 항목이 포함되거나 포함되지 않은 객체와 레이 사이의 모든 교차를 체크합니다. 교차는 거리별로 가장 가까운 거리부터 리턴됩니다. 교차 배열은 아래와 같이 리턴됩니다.
+		</p>
+		<code>
+				[ { distance, point, face, faceIndex, object }, ... ]
+		</code>
+		<p>
+			[page:Float distance] – 레이의 시점과 교차 간의 거리<br />
+			[page:Vector3 point] – 월드 좌표에서의 교차점<br />
+			[page:Object face] – 교차면<br />
+			[page:Integer faceIndex] – 교차 면의 인덱스<br />
+			[page:Object3D object] – 교차된 객체<br />
+			[page:Vector2 uv] - 교차점의 U,V 좌표<br />
+			[page:Vector2 uv2] - 교차점의 U,V 2차 좌표<br />
+			[page:Integer instanceId] – InstancedMesh에 교차하는 레이의 인스턴스 인덱스 넘버입니다.
+		</p>
+		<p>
+		*Raycaster*는 레이가 객체에 교차하는지 아닌지 판단할 때의 전달받은 객체의 [page:Object3D.raycast raycast] 메서드를 대신합니다. 이는 [page:Line lines]과 [page:Points pointclouds]와 달리 [page:Mesh meshes]가 레이캐스팅에 다르게 반응할 수 있게 합니다.
+		</p>
+		<p>
+		메쉬의 면은 [page:.ray ray]의 시점에서 탐지 가능할 수 있도록 마주보고 있어야 하는 것에 주의하세요; 
+		면의 뒤쪽을 통과하는 레이 교차는 탐지디지 않을 것입니다. 
+		객체의 양 면을 레이캐스팅하고 싶다면, [page:Mesh.material material]의 [page:Material.side side] 프로퍼티를 *THREE.DoubleSide*로 설정해야합니다.
+		</p>
+
+		<h3>[method:Array intersectObjects]( [param:Array objects], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+		[page:Array objects] — 레이의 교차를 체크하기 위한 객체입니다.<br />
+		[page:Boolean recursive] — true면 객체의 모든 자식들도 체크합니다. 아니면 객체만의 교차를 체크합니다. 기본값은 false입니다.<br />
+		[page:Array optionalTarget] — (생략가능) 결과값을 설정할 타겟입니다. 아니면 [page:Array]가 인스턴스화됩니다. 이 값을 설정하면, 모든 요청 전에 배열을 제거해야합니다 (예를 들어 array.length = 0;).
+		</p>
+		<p>
+			자식 항목이 포함되거나 포함되지 않은 객체와 레이 사이의 모든 교차를 체크합니다. 교차는 거리별로 가장 가까운 거리부터 리턴됩니다. 교차는 [page:.intersectObject]와 같은 방식으로 리턴됩니다.
+		</p>
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 269 - 0
docs/api/ko/core/Uniform.html

@@ -0,0 +1,269 @@
+<!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 class="desc">유니폼은 전역 [link:https://www.opengl.org/documentation/glsl/ GLSL] 변수입니다. 셰이더 프로그램으로 전달됩니다.
+		</p>
+
+		<h2>코드 예제</h2>
+		<p>
+		[page:ShaderMaterial]의 유니폼이 선언될 때는, 값 혹은 객체로부터 선언됩니다.
+		</p>
+		<code>
+		uniforms: {
+			time: { value: 1.0 },
+			resolution: new Uniform( new Vector2() )
+		};
+		</code>
+
+		<h2>유니폼 타입</h2>
+
+		<p>
+			각 유니폼에는 *value* 프로퍼티가 있어야 합니다. 값의 타입은 아래 표에 있는 기본 GLSL 유형에 대해 지정된 GLSL 코드의 유니폼 변수 타입과 일치해야 합니다. 
+			유니폼 구조 및 배열도 지원됩니다. 기본 유형의 GLSL 배열은 THREE 객체의 배열로 지정되거나 모든 객체의 데이터를 포함하는 플랫 배열로 지정되어야 합니다. 
+			즉, 배열 안의 GLSL 기본 요소는 배열로 표현해서는 안 됩니다. 이 규칙은 반대로는 적용되지 않습니다.
+			*vec2* 배열은 다섯 벡터의 길이를 각각 가지고 있기 때문에 배열 안에 배열을 가지고 있거나, 다섯개의 [page:Vector2] 객체, 10개의 *number*를 가지고 있어야 합니다.
+		</p>
+		<table>
+			<caption><a id="uniform-types">유니폼 타입</a></caption>
+			<thead>
+				<tr>
+					<th>GLSL 타입</th>
+					<th>JavaScript 타입</th>
+				</tr>
+			</thead>
+			<tbody>
+
+				<tr>
+					<td>int</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>uint (WebGL 2)</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>float</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Boolean]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Number]</td>
+				</tr>
+
+				<tr>
+					<td>vec2</td>
+					<td>[page:Vector2 THREE.Vector2]</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Vector3 THREE.Vector3]</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Color THREE.Color]</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Vector4 THREE.Vector4]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Quaternion THREE.Quaternion]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>mat2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Matrix3 THREE.Matrix3]</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Matrix3 THREE.Matrix4]</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>sampler2D</td>
+					<td>[page:Texture THREE.Texture]</td>
+				</tr>
+				<tr>
+					<td>samplerCube</td>
+					<td>[page:CubeTexture THREE.CubeTexture]</td>
+				</tr>
+
+			</tbody>
+		</table>
+
+		<p>
+			(*)	동일한 GLSL 타입의 (가장 안쪽) 배열(차원)도 동일하며, 배열 내 모든 벡터 또는 배열의 재질을 포함합니다.
+		</p>
+
+		<h2>구조화된 유니폼</h2>
+
+		<p>
+			때때로 셰이더 코드에서 유니폼을 *구조*로 구성하고자 할 수 있습니다. *three.js*가 구조화된 유니폼 데이터를 처리할 수 있도록 다음 스타일을 사용해야 합니다.
+		</p>
+		<code>
+		uniforms = {
+			data: {
+				value: {
+					position: new Vector3(),
+					direction: new Vector3( 0, 0, 1 )
+				 }
+			}
+		};
+		</code>
+		이 정의는 다음 GLSL 코드로 매핑될 수 있습니다.
+		<code>
+		struct Data {
+			vec3 position;
+			vec3 direction;
+		};
+
+		uniform Data data;
+		</code>
+
+		<h2>배열이 있는 구조화된 유니폼</h2>
+
+		<p>
+			배열 *구조*를 관리하는 것도 가능합니다. 이 기능의 사용 구문은 다음과 같습니다:
+		</p>
+		<code>
+		const entry1 = {
+			position: new Vector3(),
+			direction: new Vector3( 0, 0, 1 )
+		};
+		const entry2 = {
+			position: new Vector3( 1, 1, 1 ),
+			direction: new Vector3( 0, 1, 0 )
+		};
+
+		uniforms = {
+			data: {
+				value: [ entry1, entry2 ]
+			}
+		};
+		</code>
+		이 정의는 다음 GLSL 코드로 매핑될 수 있습니다.
+		<code>
+		struct Data {
+			vec3 position;
+			vec3 direction;
+		};
+
+		uniform Data data[ 2 ];
+		</code>
+
+		<h2>생성자</h2>
+
+		<h3>[name]( [param:Object value] )</h3>
+		<p>
+		value -- 유니폼을 설정할 값을 가지고 있는 객체입니다. 위에 있는 유니폼 타입 중 하나여야 합니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Object value]</h3>
+		<p>
+		유니폼의 현재 값입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:Uniform clone]()</h3>
+		<p>
+		현재 유니폼의 사본을 리턴합니다.<br />
+		유니폼의 값 프로퍼티가 clone() 메서드를 가진 [page:Object]라면 이 메서드가 사용됩니다. 아니라면 값은 할당된 값으로 복사됩니다.
+		배열 값은 복제된 [page:Uniform]들이 공유합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 65 - 0
docs/api/ko/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -0,0 +1,65 @@
+<!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>
+		[page:BufferAttribute] &rarr;
+
+		<h1>BufferAttribute Types</h1>
+
+		<p class="desc">
+		three.js에서는 아홉 개의 [page:BufferAttribute] 타입을 사용할 수 있습니다. 이 타입들은 JavaScript의
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#Syntax Typed Arrays]에 대응됩니다.
+		</p>
+
+		<code>
+		THREE.Float64BufferAttribute
+		THREE.Float32BufferAttribute
+		THREE.Float16BufferAttribute
+		THREE.Uint32BufferAttribute
+		THREE.Int32BufferAttribute
+		THREE.Uint16BufferAttribute
+		THREE.Int16BufferAttribute
+		THREE.Uint8ClampedBufferAttribute
+		THREE.Uint8BufferAttribute
+		THREE.Int8BufferAttribute
+		</code>
+
+		<h2>생성자</h2>
+
+		<p>위의 타입들은 전부 같은 방법으로 호출됩니다.</p>
+
+		<h3>TypedBufferAttribute( [param:Array_or_Integer array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<p>
+			array -- typed 혹은 untyped (일반) 배열이나 길이를 나타내는 정수가 올 수 있습니다.
+			배열의 값은 타입이 특정된 값으로 변환됩니다.
+			길이를 받으면 새 TypedArray가 생성되고 모든 엘레먼트가 0부터 시작됩니다.<br /><br />
+
+			itemSize -- 특정 꼭짓점에 대응되는 배열 값의 수입니다.<br /><br />
+
+			normalized -- (생략가능) 버퍼에 있는 기저 데이터가 GLSL 코드에서 값으로 맵핑되는 방식입니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<p>
+			상속 프로퍼티에 관해서는 [page:BufferAttribute] 를 참고하세요.
+		</p>
+
+		<h2>메서드</h2>
+
+		<p>
+			상속 메서드에 관해서는 [page:BufferAttribute] 를 참고하세요.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/core/BufferAttribute.js src/core/BufferAttribute.js]
+		</p>
+	</body>
+</html>

+ 31 - 0
docs/api/ko/extras/DataUtils.html

@@ -0,0 +1,31 @@
+<!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 class="desc">
+		데이터의 기능 함수를 포함하고 있는 클래스입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:Number toHalfFloat]( [param:Number val] )</h3>
+		<p>
+		val --단일 부동 소수점 값입니다.<br /><br />
+
+		unit16 값으로 표현되는 반정밀 부동소수점 값을 리턴합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 33 - 0
docs/api/ko/extras/Earcut.html

@@ -0,0 +1,33 @@
+<!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 class="desc">
+			이어컷 폴리곤 삼각측량 알고리즘 구현입니다. 이 코드는 [link:https://github.com/mapbox/earcut mapbox/earcut]의 일부입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
+		<p>
+		data -- 꼭짓점 좌표를 가진 평면 배열입니다.<br />
+		holeIndices -- 확인 가능한 hole 인덱스의 배열입니다.<br />
+		dim -- 인풋 배열의 꼭짓점 당 좌표의 수입니다.<br /><br />
+
+		전달받은 모양의 정의를 바탕으로 삼각측량을 통해 삼각형 배열을 리턴합니다. 삼각형은 꼭짓점을 나타내는 연속된 세 개의 정수 인덱스들로 정의됩니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 31 - 0
docs/api/ko/extras/ImageUtils.html

@@ -0,0 +1,31 @@
+<!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 class="desc">
+		이미지 기능을 위한 함수를 담고 있는 클래스입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:String getDataURL]( [param:HTMLCanvasElement image] | [param:HTMLImageElement image] | [param:ImageBitmap image] )</h3>
+		<p>
+		image -- 이미지 오브젝트입니다.<br /><br />
+
+		전달받은 이미지를 표현하는 데이터 URI를 리턴합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 78 - 0
docs/api/ko/extras/PMREMGenerator.html

@@ -0,0 +1,78 @@
+<!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 class="desc">
+			이 클래스는 큐브맵 환경 텍스처로부터 사전 필터링된 Mipmap Radiance Environment Map(PMREM)을 생성합니다.
+이를 통해 재질의 거칠기에 따라 다양한 수준의 블러를 빠르게 적용할 수 있습니다. RGBE와 같은 비선형 형식을 지원할 수 있도록 사용자 지정 보간을 수행할 수 있는 특수 CubeUV 형식으로 포장되어 있습니다. 
+기존의 mipmap 체인과는 달리, LOD_MIN 수준까지만 내려가며(위), 더 높은 거칠기 수준과 연관된 동일한 LOD_MIN 해상도에서 훨씬 더 많은 필터링된 'mips'를 생성합니다.
+이러한 방법으로 샘플링 계산을 제한하면서 확산 조명을 부드럽게 보간하기 위한 해상도를 유지합니다.
+		</p>
+
+		<h2>생성자</h2>
+
+		<h3>[name]( [param:WebGLRenderer renderer] )</h3>
+		<p>
+		새 [name]를 만드는 생성자입니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:WebGLRenderTarget fromScene]( [param:Scene scene], [param:Number sigma], [param:Number near], [param:Number far] )</h3>
+		<p>
+			[page:Scene scene] - 전달받은 장면입니다.<br>
+			[page:Number sigma] - (생략가능) PMREM 생성 전에 장면에 적용할 블러 반지름을 설정합니다. 기본값은 *0*입니다.<br>
+			[page:Number near] - (생략가능) 근평면 값입니다. 기본값은 *0.1*입니다.<br>
+			[page:Number far] - (생략가능) 원평면 값입니다. 기본값은 *100*입니다.<br /><br />
+
+			전달받은 장면에서 PMREM을 생성합니다. 이는 네트워크 대역폭이 낮은 경우 이미지를 사용하는 것보다 빠를 수 있습니다.
+			장면 전체를 렌더링할 수 있도록 가까운 평면과 먼 평면을 선택할 수 있습니다(cubeCamera는 원래 위치에 배치됨).
+		</p>
+
+		<h3>[method:WebGLRenderTarget fromEquirectangular]( [param:Texture equirectangular] )</h3>
+		<p>
+			[page:Texture equirectangular] - 등장방형 텍스쳐입니다.<br /><br />
+
+			LDR(RGBFormat) 또는 HDR(RGBEFormat)일 수 있는 등장방형 텍스처로부터 PMREM을 생성합니다.
+			이상적인 입력 이미지 크기는 1k(1024 x 512)로, 256 x 256 큐브 맵 출력과 가장 잘 일치합니다.
+		</p>
+
+		<h3>[method:WebGLRenderTarget fromCubemap]( [param:CubeTexture cubemap] )</h3>
+		<p>
+			[page:CubeTexture cubemap] - 큐브맵 텍스쳐입니다.<br /><br />
+
+			LDR(RGBFormat) 또는 HDR(RGBEFormat)일 수 있는 큐브맵 텍스처로부터 PMREM을 생성합니다.
+			이상적인 입력 이미지 크기는 1k(1024 x 512)로, 256 x 256 큐브 맵 출력과 가장 잘 일치합니다.
+		</p>
+
+		<h3>[method:void compileCubemapShader]()</h3>
+		<p>
+			큐브 맵 셰이더를 미리 컴파일합니다. 동시성을 높이기 위해 텍스쳐의 네트워크 로딩 중에 이 메서드를 호출하여 더 빨리 시작할 수 있습니다.
+		</p>
+
+		<h3>[method:void compileEquirectangularShader]()</h3>
+		<p>
+			등장방형 셰이더를 미리 컴파일합니다. 동시성을 높이기 위해 텍스쳐의 네트워크 로딩 중에 이 메서드를 호출하여 더 빨리 시작할 수 있습니다.
+		</p>
+
+		<h3>[method:void dispose]()</h3>
+		<p>
+			PMREM 제너레이터의 내장 메모리를 폐기합니다. 
+			PMREMGenerator는 정적 클래스이므로 두 개 이상의 PMREMGenerator 개체가 필요하지 않습니다. 
+			이 경우 둘 중 하나에 대해 dispose()를 호출하면 다른 항목도 사용할 수 없게 됩니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 51 - 0
docs/api/ko/extras/ShapeUtils.html

@@ -0,0 +1,51 @@
+<!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 class="desc">
+		shape에 대한 기능 함수를 포함하는 클래스입니다.<br /><br />
+
+		이 함수들은 모두 일차함수이므로 벡터의 x, y(z, w 가 있는 경우 해당포함) 컴포넌트에 대해 별도로 계산할 필요가 있습니다.
+		</p>
+
+
+		<h2>메서드</h2>
+
+		<h3>[method:Number area]( contour )</h3>
+		<p>
+		contour -- 2D 폴리곤입니다. THREE.Vector2() 배열입니다.<br /><br />
+
+		( 2D ) 윤곽 폴리곤의 면적을 계산합니다.
+		</p>
+
+		<h3>[method:Boolean isClockWise]( pts )</h3>
+		<p>
+		pts -- 2D 폴리곤을 정의하는 점들입니다<br /><br />
+
+		일차함수이므로 벡터의 x, y 컴포넌트에 대해 별도로 계산해야 하는 점에 주의해주세요.<br /><br />
+
+		[page:Path Path], [page:ExtrudeGeometry ExtrudeGeometry] 및 [page:ShapeGeometry ShapeGeometry]에서 내부적으로 사용됩니다.
+		</p>
+
+		<h3>[method:Array triangulateShape]( contour, holes )</h3>
+		<p>
+		contour -- 2D 폴리곤.<br />
+		holes -- holes 배열<br /><br />
+
+		[page:ExtrudeGeometry ExtrudeGeometry] 및 [page:ShapeGeometry ShapeGeometry]에서 내부적으로 holes와 함께 shape의 면을 계산하기 위해 사용됩니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 118 - 0
docs/api/ko/extras/core/Curve.html

@@ -0,0 +1,118 @@
+<!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 class="desc">
+		보간법 메서드를 가지고 있는 [name] 객체를 만들기 위한 기본 추상 클래스입니다.
+		[name]의 배열은 [page:CurvePath]를 참고하세요.
+		</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+		새 [name]를 만드는 생성자입니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Integer arcLengthDivisions]</h3>
+		<p>이 값은 곡선의 누적 세그먼트 길이를 계산할 때 [page:.getLengths]를 통해 분할할 양을 결정합니다. 
+			[page:.getSpacedPoints]같은 메서드를 사용할 때 정확도를 위해, 곡선이 아주 크다면 [page:.arcLengthDivisions]를 올리는 것을 추천합니다. 기본값은 200입니다.</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:Vector getPoint]( [param:Float t], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float t] - 곡선의 위치입니다. [ 0, 1 ] 사이에 있어야 합니다. <br>
+			[page:Vector optionalTarget] — (생략가능) 값이 지정되면, 결과값이 이 벡터에 복제될 것이고 생략되면 새 Vector가 생성됩니다.<br /><br />
+
+			곡선의 위치 벡터를 리턴합니다.
+		</p>
+
+		<h3>[method:Vector getPointAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float u] - 원호 길이에 따른 곡선의 위치입니다. [ 0, 1 ] 사이에 있어야 합니다. <br>
+			[page:Vector optionalTarget] — (생략가능) 값이 지정되면, 결과값이 이 벡터에 복제될 것이고 생략되면 새 Vector가 생성됩니다.<br /><br />
+
+			원호 길이에 따른 곡선의 위치 벡터를 리턴합니다.
+		</p>
+
+		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- 곡선을 몇 조각으로 나눌지 결정합니다. 기본값은 *5*입니다.<br /><br />
+
+			getPoint( t )를 사용하는 divisions + 1 세트를 리턴합니다.
+		</p>
+
+		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- 곡선을 몇 조각으로 나눌지 결정합니다. 기본값은 *5*입니다.<br /><br />
+
+			getPointAt( u )를 사용하는 균등 분할된 divisions + 1 세트를 리턴합니다.
+		</p>
+
+		<h3>[method:Float getLength]()</h3>
+		<p>총 곡선 원호 길이를 가져옵니다.</p>
+
+		<h3>[method:Array getLengths]( [param:Integer divisions] )</h3>
+		<p>누적 세그먼트 길이 목록을 가져옵니다.</p>
+
+		<h3>[method:null updateArcLengths]()</h3>
+		<p>누적 세그먼트 거리 캐시를 업데이트합니다.</p>
+
+		<h3>[method:Float getUtoTmapping]( [param:Float u], [param:Float distance] )</h3>
+		<p>
+			( 0 .. 1 ) 범위의 u 를 받아, 마찬가지로 ( 0 .. 1 ) 범위의 [page:Float t] 를 리턴합니다.
+			[page:.getPoint]를 사용해 u와 t는 곡선의 끝에서 등거리인 점을 확인하는 데 사용할 수 있습니다.
+		 </p>
+
+		<h3>[method:Vector getTangent]( [param:Float t], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float t] - 곡선의 위치입니다 [ 0, 1 ] 범위여야합니다. <br>
+			[page:Vector optionalTarget] — (생략가능) 값이 지정되면, 결과값이 이 벡터에 복제될 것이고 생략되면 새 Vector가 생성됩니다. <br /><br />
+
+			t에서 접선하는 단위 벡터를 반환합니다. 
+			파생 곡선이 접선 유도법을 구현하지 않는 경우, 작은 델타 간격의 두 점이 합리적인 근사치의 기울기를 찾는 데 사용됩니다.
+		</p>
+
+		<h3>[method:Vector getTangentAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float u] - 원호 길이에 따른 곡선의 위치. [0, 1] 범위에 있어야 합니다. <br>
+			[page:Vector optionalTarget] — (생략가능) 값이 지정되면, 결과값이 이 벡터에 복제될 것이고 생략되면 새 Vector가 생성됩니다. <br /><br />
+
+			[page:.getTangent]에 지정된 점에서 곡선의 끝과의 거리가 동일한 접선의 점을 반환합니다.
+		</p>
+
+		<h3>[method:Object computeFrenetFrames]( [param:Integer segments], [param:Boolean closed] )</h3>
+		<p>
+			프레닛 프레임을 생성합니다. 3D 스페이스에 곡선 정의가 필요합니다. [page:TubeGeometry] 혹은 [page:ExtrudeGeometry] 같은 기하학에 사용됩니다.
+		</p>
+
+		<h3>[method:Curve clone]()</h3>
+		<p>이 인스턴스의 사본을 만듭니다.</p>
+
+		<h3>[method:Curve copy]( [param:Curve source] )</h3>
+		<p>다른 [name] 객체를 이 인스턴스에 복사합니다.</p>
+
+		<h3>[method:Object toJSON]()</h3>
+		<p>이 인스턴스의 JSON 객체 표현을 리턴합니다.</p>
+
+		<h3>[method:Curve fromJSON]( [param:Object json] )</h3>
+		<p>JSON 객체에서 이 인스턴스로 데이터를 복사합니다.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 76 - 0
docs/api/ko/extras/core/CurvePath.html

@@ -0,0 +1,76 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		[page:Curve]를 확장하는 추상 기본 클래스입니다. A CurvePath는 단순히 연결된 곡선의 배열이지만, curve의 api를 유지하고 있습니다.
+		</p>
+
+		<h2>생성자</h2>
+
+		<h3>[name]()</h3>
+		<p>
+		생성자에서는 파라미터를 받지 않습니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>일빈 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Array curves]</h3>
+		<p>[page:Curve Curves]의 배열입니다.</p>
+
+		<h3>[property:Boolean autoClose]</h3>
+		<p>path를 자동으로 닫을지 말지를 결정합니다.</p>
+
+		<h2>메서드</h2>
+		<p>일빈 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[method:null add]( [param:Curve curve] )</h3>
+		<p>[page:.curves] 배열에 곡선을 추가합니다.</p>
+
+		<h3>[method:null closePath]()</h3>
+		<p>path를 닫기위해 [page:LineCurve lineCurve]를 추가합니다.</p>
+
+		<h3>[method:Array getCurveLengths]()</h3>
+		<p>[page:.curves] 배열에 있는 곡선들의 누적 곡선 길이 목록을 가져옵니다.</p>
+
+		<h3>[method:Vector getPoint]( [param:Float t] )</h3>
+		<p>
+			[page:Float t] - 곡선의 위치입니다. [ 0, 1 ]범위 안에 있어야 합니다. <br><br />
+
+			곡선 path에 있는 위치 벡터를 리턴합니다.
+		</p>
+
+		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- 곡선을 나눌 조각 수입니다. 기본값은 *12*입니다.<br /><br />
+
+			곡선 시퀀스를 나타내는 점 배열을 반환합니다. 
+			*divisions* 파라미터는 각 곡선이 분할되는 조각 수를 정의합니다. 
+			하지만 최적화 및 품질 목적을 위해 각 곡선의 실제 표본 해상도는 유형에 따라 달라집니다. 
+			예를 들어 [page:LineCurve]의 경우, 반환되는 점 수는 항상 2개입니다.
+		</p>
+
+		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- 곡선을 나눌 조각 수입니다. 기본값은 *40*입니다.<br /><br />
+
+			getPointAt( u )를 사용하는 divisions + 1 의 균등하게 분할된 점을 리턴합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 54 - 0
docs/api/ko/extras/core/Font.html

@@ -0,0 +1,54 @@
+<!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 class="desc">
+		JSON 포맷으로 로드된 폰트를 표현하는 [page:Shape Shapes] 세트를 만듭니다.<br /><br />
+
+		[page:FontLoader]에서 내부적으로 사용됩니다.
+		</p>
+
+		<h2>예제</h2>
+
+		<p>
+		[example:webgl_geometry_text_shapes geometry / text / shapes ]
+		</p>
+
+		<h2>생성자</h2>
+
+		<h3>[name]( data )</h3>
+		<p>
+		data -- 폰트를 표현하는 JSON 데이터입니다.<br /><br />
+
+		이 생성자는 [page:Shape Shapes] 배열의 새 [name]를 만듭니다.
+		</p>
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Array data]</h3>
+		<p>생성자에 전달되는 JSON 데이터입니다.</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:null generateShapes]( [param:String text], [param:Float size] )</h3>
+		<p>
+			[page:String text] -- 텍스트 문자열입니다.<br />
+			[page:Float size] -- (생략가능) [page:Shape Shapes]의 크기입니다. 기본값은 *100*입니다.<br />
+
+			폰트에서 텍스트를 표현하는 [page:Shape Shapes] 배열을 만듭니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 48 - 0
docs/api/ko/extras/core/Interpolations.html

@@ -0,0 +1,48 @@
+<!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 class="desc">
+			[name]은 구상 곡선 클래스에서 사용되는 스플라인 및 베지어 함수를 포함하고 있습니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:Float CatmullRom]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
+		<p>
+		t -- 보간 가중치.<br />
+		p0, p1, p2, p3 -- 스플라인 곡선을 정의하는 점입니다.<br /><br />
+
+		[page:SplineCurve SplineCurve]에서 내부적으로 사용됩니다.
+		</p>
+
+		<h3>[method:Float QuadraticBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2] )</h3>
+		<p>
+		t -- 보간 가중치.<br />
+		p0, p1, p2 -- 곡선을 정의하는 시작, 조절, 끝 점입니다.<br /><br />
+
+		[page:QuadraticBezierCurve3 QuadraticBezierCurve3], [page:QuadraticBezierCurve QuadraticBezierCurve] 및 [page:Font Font]에서 내부적으로 사용됩니다.
+		</p>
+
+		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
+		<p>
+		t -- 보간 가중치.<br />
+		p0, p1, p2, p3 -- 곡선을 정의하는 시작, 조절(두 번), 끝 점입니다.<br /><br />
+
+		[page:CubicBezierCurve3 CubicBezierCurve3], [page:CubicBezierCurve CubicBezierCurve] 및 [page:Font Font]에서 내부적으로 사용됩니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 144 - 0
docs/api/ko/extras/core/Path.html

@@ -0,0 +1,144 @@
+<!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>
+		[page:Curve] &rarr; [page:CurvePath] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		2D path 표현입니다. 이 클래스는 2D Canvas API와 유사한 2D 도형의 path 및 윤곽선을 만드는 방법을 제공합니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const path = new THREE.Path();
+
+		path.lineTo( 0, 0.8 );
+		path.quadraticCurveTo( 0, 1, 0.2, 1 );
+		path.lineTo( 1, 1 );
+
+		const points = path.getPoints();
+
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+		const material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+
+		const line = new THREE.Line( geometry, material );
+		scene.add( line );
+		</code>
+
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+		points -- (생략가능) [page:Vector2 Vector2s] 배열.<br /><br />
+
+		점들로 path를 만듭니다. 첫 점은 오프셋을 정의하고 이어지는 점들은 [page:LineCurve LineCurves]로 
+		[page:CurvePath.curves curves] 배열에 추가됩니다.<br /><br />
+
+		점이 지정되지 않으면, 빈 path가 만들어지며 [page:.currentPoint]가 기본값으로 설정됩니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:CurvePath] 클래스를 참고하세요.</p>
+
+		<h3>[property:Array currentPoint]</h3>
+		<p>path의 현재 오프셋입니다. 새 [page:Curve]들은 여기서부터 시작될 것입니다.</p>
+
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:CurvePath] 클래스를 참고하세요.</p>
+
+		<h3>[method:this absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise] )</h3>
+		<p>
+			x, y -- 호의 절대중심입니다.<br />
+			radius -- 호의 반지름입니다.<br />
+			startAngle -- 라디안 시작 각도입니다.<br />
+			endAngle -- 라디안 끝 각도입니다.<br />
+			clockwise -- 호를 시계방향으로 회전합니다. 기본값은 *false*입니다.<br /><br />
+
+			절대 위치를 가진 [page:EllipseCurve EllipseCurve]를 path에 추가합니다.
+		</p>
+
+		<h3>[method:this absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise], [param:Float rotation] )</h3>
+		<p>
+			x, y -- 타원의 절대중심입니다.<br />
+			xRadius -- 타원의 x 축 반지름입니다.<br />
+			yRadius -- 타원의 y 축 반지름입니다..<br />
+			startAngle -- 라디안 시작 각도입니다.<br />
+			endAngle -- 라디안 끝 각도입니다.<br />
+			clockwise -- 타원을 시계방향으로 회전합니다. 기본값은 *false*입니다.<br />
+			rotation -- 타원의 라디안 회전각도이며 양수 x축의 반시계방향입니다. 생략 가능하며 기본값은 0입니다.<br /><br />
+
+			path에 절대 위치를 가진 [page:EllipseCurve EllipseCurve]를 추가합니다.
+		</p>
+
+		<h3>[method:this arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise] )</h3>
+		<p>
+		x, y -- 마지막 호출의 호의 오프셋의 중심입니다.<br />
+		radius -- 호의 반지름입니다.<br />
+		startAngle -- 라디안 시작 각도입니다.<br />
+		endAngle -- 라디안 끝 각도입니다.<br />
+		clockwise -- 호를 시계방향으로 회전합니다. 기본값은 *false*입니다.<br /><br />
+
+		[page:.currentPoint]에 대한 상대위치를 가지는 [page:EllipseCurve EllipseCurve]를 path에 추가합니다.
+		</p>
+
+
+		<h3>[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+		<p>This creates a bezier curve from [page:.currentPoint] with (cp1X, cp1Y) and (cp2X, cp2Y) as control points and updates [page:.currentPoint] to x and y.</p>
+
+		<h3>[method:this ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise], [param:Float rotation] )</h3>
+		<p>
+			x, y -- 마지막 호출의 타원의 오프셋의 중심입니다.<br />
+			xRadius -- 타원의 x 축 반지름입니다.<br />
+			yRadius -- 타원의 y 축 반지름입니다..<br />
+			startAngle -- 라디안 시작 각도입니다.<br />
+			endAngle -- 라디안 끝 각도입니다.<br />
+			clockwise -- 타원을 시계방향으로 회전합니다. 기본값은 *false*입니다.<br />
+			rotation -- 타원의 라디안 회전각도이며 양수 x축의 반시계방향입니다. 생략 가능하며 기본값은 0입니다.<br /><br />
+
+			[page:.currentPoint]에 대한 상대위치를 가지는 [page:EllipseCurve EllipseCurve]를 path에 추가합니다.
+		</p>
+
+		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
+		<p>path 위에 [page:.currentPoint]에서 x, y로 [page:LineCurve]를 연결합니다.</p>
+
+
+		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
+		<p>[page:.currentPoint]를 x, y로 이동시킵니다.</p>
+
+
+		<h3>[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+		<p>조절점 cpX 와 cpY의 [page:.currentPoint]로부터 이차곡선을 만들고 [page:.currentPoint]를 x 와 y로 업데이트합니다.</p>
+
+		<h3>[method:this setFromPoints]( [param:Array vector2s] )</h3>
+		<p>
+			points --  [page:Vector2 Vector2s] 배열.<br /><br />
+
+			점들은 [page:CurvePath.curves curves] 배열에 [page:LineCurve LineCurves]로 추가됩니다.
+		</p>
+
+		<h3>[method:this splineThru] ( [param:Array points] ) </h3>
+		<p>
+			points - [page:Vector2 Vector2s] 배열.<br /><br />
+
+			path에 새 [page:SplineCurve]를 추가합니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -0,0 +1,101 @@
+<!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>
+		[page:Curve] &rarr; [page:CurvePath] &rarr; [page:Path] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		임의의 holes가 있는 path를 사용하여 임의 2d shape 평면을 정의합니다. [page:ExtrudeGeometry] 및 [page:ShapeGeometry]와 함께 사용할 수 있으며, 점을 가져오거나 삼각형의 면을 가져옵니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const heartShape = new THREE.Shape();
+
+		heartShape.moveTo( 25, 25 );
+		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
+		heartShape.bezierCurveTo( - 30, 0, - 30, 35, - 30, 35 );
+		heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25, 95 );
+		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
+		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
+		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
+
+		const extrudeSettings = { depth: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
+
+		const geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
+
+		const mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
+		</code>
+
+		<h2>예제</h2>
+
+		<p>
+		[example:webgl_geometry_shapes geometry / shapes ]<br/>
+		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
+		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
+		</p>
+
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+		points -- (생략가능) [page:Vector2 Vector2s] 배열입니다.<br /><br />
+
+		점을 기반으로 Shape를 만듭니다. 첫 번째 점은 오프셋을 정의하고 이어지는 점들은 [page:CurvePath.curves curves] 배열에 [page:LineCurve LineCurves]로 추가됩니다.<br /><br />
+
+		점이 지정되지 않으면, 빈 path가 만들어지며 [page:.currentPoint]가 기본값으로 설정됩니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Path] 클래스를 참고하세요.</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+		인스턴스의 [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID]입니다. 자동으로 할당되며 수정할 수 없습니다.
+		</p>
+
+		<h3>[property:Array holes]</h3>
+		<p>shape의 holes를 정의하는 [page:Path paths] 배열입니다.</p>
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Path] 클래스를 참고하세요.</p>
+
+		<h3>[method:Array extractPoints]( [param:Integer divisions] )</h3>
+		<p>
+		divisions -- 결과값의 정밀도입니다.<br /><br />
+
+		shape와 [page:.holes]배열에서 [page:Curve.getPoints getPoints]를 호출하며, 다음과 같은 객체를 리턴합니다:
+		<code>
+{
+	shape
+	holes
+}
+		</code>
+		shape 와 holes 는 [page:Vector2 Vector2s]의 배열입니다.
+		</p>
+
+		<h3>[method:Array getPointsHoles]( [param:Integer divisions] )</h3>
+		<p>
+		divisions -- 결과값의 정밀도입니다.<br /><br />
+
+		shape 안의 holes를 표현하는 [page:Vector2 Vector2s] 배열을 가져옵니다.
+		</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 88 - 0
docs/api/ko/extras/core/ShapePath.html

@@ -0,0 +1,88 @@
+<!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 class="desc">
+		This class is used to convert 이 클래스는 연속된 shape들을 [page:Path] 배열로 바꾸는데에 사용되며, 일례로 SVG shape를 path로 바꾸는 것이 있습니다.(아래 예제를 확인하세요). 
+		[page:Font]에서 내부적으로 JSON 포맷의 폰드를 path 시리즈로 만드는 데에 사용됩니다.
+		</p>
+
+		<h2>예제</h2>
+		<p>
+			[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2]
+		</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name](  )</h3>
+		<p>
+		새 ShapePath를 만듭니다. [page:Path]와 달리, 점들이 ShapePath로 전달되지 않으며 생성 이후에 작동되게 설계되었습니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+
+		<h3>[property:Array subPaths]</h3>
+		<p>
+		[page:Path]들의 배열입니다.
+		</p>
+
+		<h3>[property:Array currentPath]</h3>
+		<p>
+		현재 생성된 [page:Path]입니다.
+		</p>
+
+		<h3>[property:Color color]</h3>
+		<p>shape의 [page:Color]이며, 기본값은 흰 색입니다(0xffffff).</p>
+
+		<h2>메서드</h2>
+
+		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		새 [page:Path]를 시작하고 해당 [page:Path]에 [page:Path.moveTo]( x, y )를 호출합니다.
+		[page:ShapePath.currentPath currentPath] 점도 해당 [page:Path]에 호출합니다.
+		</p>
+
+		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
+		<p>[page:ShapePath.currentPath currentPath]의 오프셋에서 X 및 Y로 선을 생성하고 오프셋을 X와 Y로 업데이트합니다.</p>
+
+		<h3>[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+		<p>[page:ShapePath.currentPath currentPath]의 오프셋에서 조절점 cpX 와 cpY 및 x 와 y로 이차곡선을 만들고 [page:ShapePath.currentPath currentPath]의 오프셋을 x 와 y로 업데이트합니다.</p>
+
+		<h3>[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+		<p>[page:ShapePath.currentPath currentPath]의 오프셋에서 조절점 cpX 와 cpY 및 x 와 y로 베지어곡선을 만들고 [page:ShapePath.currentPath currentPath]의 오프셋을 x 와 y로 업데이트합니다.</p>
+
+		<h3>[method:this splineThru] ( [param:Array points] ) </h3>
+		<p>points - [page:Vector2]들의 배열</p>
+		<p>[page:ShapePath.currentPath currentPath] 위에 새 [page:SplineCurve]를 연결합니다.</p>
+
+
+		<h3>[method:Array toShapes]( [param:Boolean isCCW], [param:Boolean noHoles] )</h3>
+		<p>
+		isCCW -- solids와 holes가 생성되는 방식을 변경합니다<br/>
+		noHoles -- holes를 생성할지 안 할지를 설정합니다.
+		</p>
+		<p>
+		[page:ShapePath.subPaths subPaths] 배열을 Shapes 배열로 변환합니다. 기본값으로 solid shapes는 시계방향(CW)이고 holes는 반시계방향(CCW)입니다. 
+		isCCW가 true면, 이 값들이 반대가 됩니다.
+		noHoles 파라미터가 true면 모든 path들은 solid shapes로 설정되고 isCCW는 무시됩니다.
+		<br/>
+
+		</p>
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/ShapePath.js src/extras/core/ShapePath.js]
+		</p>
+	</body>
+</html>

+ 26 - 0
docs/api/ko/extras/curves/ArcCurve.html

@@ -0,0 +1,26 @@
+<!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>
+		[page:Curve] &rarr; [page:EllipseCurve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">[page:EllipseCurve]의 다른 이름입니다.</p>
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:EllipseCurve] 클래스를 참고하세요.</p>
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 79 - 0
docs/api/ko/extras/curves/CatmullRomCurve3.html

@@ -0,0 +1,79 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">[link:https://en.wikipedia.org/wiki/Centripetal_Catmull-Rom_spline Catmull-Rom] 알고리즘을 사용하여 일련의 점으로부터 매끄러운 3D 스플라인 곡선을 생성합니다.</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		//Create a closed wavey loop
+		const curve = new THREE.CatmullRomCurve3( [
+			new THREE.Vector3( -10, 0, 10 ),
+			new THREE.Vector3( -5, 5, 5 ),
+			new THREE.Vector3( 0, 0, 0 ),
+			new THREE.Vector3( 5, -5, 5 ),
+			new THREE.Vector3( 10, 0, 10 )
+		] );
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+
+		<h2>예제</h2>
+
+		<p>
+			[example:webgl_geometry_extrude_splines WebGL / geometry / extrude / splines]
+		</p>
+
+		<h2>생성자</h2>
+
+		<h3>[name]( [param:Array points], [param:Boolean closed], [param:String curveType], [param:Float tension] )</h3>
+		<p>
+			points – [page:Vector3] 점들의 배열입니다<br/>
+			closed – 곡선이 닫히는지 아닌지를 결정합니다. 기본값은 *false*입니다.<br/>
+			curveType – 곡선의 타입입니다. 기본값은 *centripetal*입니다.<br/>
+			tension – 곡선의 탄성입니다. 기본값은 *0.5*입니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Array points]</h3>
+		<p>곡선을 정의하는 [page:Vector3] 점들입니다. 적어도 두 개의 개체가 필요합니다.</p>
+
+		<h3>[property:Boolean closed]</h3>
+		<p>이 값이 true면 곡선은 스스로에게 되돌아옵니다.</p>
+
+		<h3>[property:String curveType]</h3>
+		<p>가능한 값은 *centripetal*, *chordal* 및 *catmullrom* 입니다.</p>
+
+		<h3>[property:Float tension]</h3>
+		<p>[page:.curveType]가 *catmullrom*이면, 캣멀롬 탄성을 정의합니다.</p>
+
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 74 - 0
docs/api/ko/extras/curves/CubicBezierCurve.html

@@ -0,0 +1,74 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			시작점, 종착점, 두 개의 조절점을 통해 매끄러운 2d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg" target="_blank">베지에 곡선</a>을 만듭니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const curve = new THREE.CubicBezierCurve(
+			new THREE.Vector2( -10, 0 ),
+			new THREE.Vector2( -5, 15 ),
+			new THREE.Vector2( 20, 15 ),
+			new THREE.Vector2( 10, 0 )
+		);
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name] ( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2], [param:Vector2 v3] )</h3>
+		<p>
+			[page:Vector2 v0] – 시작점.<br/>
+			[page:Vector2 v1] – 첫 번째 조절점.<br/>
+			[page:Vector2 v2] – 두 번째 조절점.<br/>
+			[page:Vector2 v3] – 종착점.
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Vector2 v0]</h3>
+		<p>시작점입니다.</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>첫 번째 조절점입니다.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>두 번째 조절점입니다.</p>
+
+		<h3>[property:Vector2 v3]</h3>
+		<p>종착점입니다.</p>
+
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 75 - 0
docs/api/ko/extras/curves/CubicBezierCurve3.html

@@ -0,0 +1,75 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			시작점, 종착점, 두 개의 조절점을 통해 매끄러운 3d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg" target="_blank">베지에 곡선</a>을 만듭니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const curve = new THREE.CubicBezierCurve3(
+			new THREE.Vector3( -10, 0, 0 ),
+			new THREE.Vector3( -5, 15, 0 ),
+			new THREE.Vector3( 20, 15, 0 ),
+			new THREE.Vector3( 10, 0, 0 )
+		);
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const curveObject = new THREE.Line( geometry, material );
+
+		</code>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2], [param:Vector3 v3] )</h3>
+		<p>
+			[page:Vector3 v0] – 시작점.<br/>
+			[page:Vector3 v1] – 첫 번째 조절점.<br/>
+			[page:Vector3 v2] – 두 번째 조절점.<br/>
+			[page:Vector3 v3] – 종착점.
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Vector3 v0]</h3>
+		<p>시작점입니다.</p>
+
+		<h3>[property:Vector3 v1]</h3>
+		<p>첫 번째 조절점입니다.</p>
+
+		<h3>[property:Vector3 v2]</h3>
+		<p>두 번째 조절점입니다.</p>
+
+		<h3>[property:Vector3 v3]</h3>
+		<p>종착점입니다.</p>
+
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 91 - 0
docs/api/ko/extras/curves/EllipseCurve.html

@@ -0,0 +1,91 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			타원 모양의 2d 곡선을 생성합니다.
+			[page:Number xRadius]를 [page:Number yRadius]과 같게 설정하면 원이 됩니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const curve = new THREE.EllipseCurve(
+			0,  0,            // ax, aY
+			10, 10,           // xRadius, yRadius
+			0,  2 * Math.PI,  // aStartAngle, aEndAngle
+			false,            // aClockwise
+			0                 // aRotation
+		);
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const ellipse = new THREE.Line( geometry, material );
+		</code>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Float aX], [param:Float aY], [param:Float xRadius], [param:Float yRadius], [param:Radians aStartAngle], [param:Radians aEndAngle], [param:Boolean aClockwise], [param:Radians aRotation] )</h3>
+		<p>
+			[page:Float aX] – 타원의 X 중앙입니다. 기본값은 *0*입니다.<br/>
+			[page:Float aY] – 타원의 Y 중앙입니다. 기본값은 *0*입니다.<br/>
+			[page:Float xRadius] – 타원의 x방향 반지름입니다. 기본값은 *1*입니다.<br/>
+			[page:Float yRadius] – 타원의 y방향 반지름입니다. 기본값은 *1*입니다.<br/>
+			[page:Radians aStartAngle] – 양수 X 축에서 시작하는 곡선의 라디안 시작각도입니다. 기본값은 *0*입니다.<br/>
+			[page:Radians aEndAngle] – 양수 X 축에서 시작하는 곡선의 라디안 종착각도입니다. 기본값은 *2 x Math.PI*입니다.<br/>
+			[page:Boolean aClockwise] – 타원이 시계방향으로 그려질지에 대한 값입니다. 기본값은 *false*입니다.<br/>
+			[page:Radians aRotation]  – 타원의 회전 라디안 각도이며 양수 X 축의 반시계방향입니다(선택가능). 기본값은 *0*입니다.<br/><br/>
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Float aX]</h3>
+		<p>타원의 X 중앙입니다.</p>
+
+		<h3>[property:Float aY]</h3>
+		<p>타원의 Y 중앙입니다.</p>
+
+		<h3>[property:Radians xRadius]</h3>
+		<p>타원의 x방향 각도입니다.</p>
+
+		<h3>[property:Radians yRadius]</h3>
+		<p>타원의 y방향 각도입니다.</p>
+
+		<h3>[property:Float aStartAngle]</h3>
+		<p>우측 중앙에서 시작하는 라디안 시작각도입니다.</p>
+
+		<h3>[property:Float aEndAngle]</h3>
+		<p>우측 중앙에서 시작하는 라디안 종착각도입니다.</p>
+
+		<h3>[property:Boolean aClockwise]</h3>
+		<p>타원이 시계방향으로 그려질지에 대한 값입니다.</p>
+
+		<h3>[property:Float aRotation]</h3>
+		<p>타원의 회전 라디안 각도이며 양수 X 축의 반시계방향입니다(선택가능). 기본값은 *0*입니다.</p>
+
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 45 - 0
docs/api/ko/extras/curves/LineCurve.html

@@ -0,0 +1,45 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">2d 선 세그먼트를 그리는 커브입니다.</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Vector2 v1], [param:Vector2 v2] )</h3>
+		<p>
+			[page:Vector2 v1] – 시작점입니다.<br/>
+			[page:Vector2 v2] - 종착점입니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>시작점입니다.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>종착점입니다</p>
+
+		<h2>메서드</h2>
+		<p>S일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 44 - 0
docs/api/ko/extras/curves/LineCurve3.html

@@ -0,0 +1,44 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">3d 선 세그먼트를 그리는 커브입니다.</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Vector3 v1], [param:Vector3 v2] )</h3>
+		<p>
+			[page:Vector3 v1] – 시작점입니다.<br/>
+			[page:Vector3 v2] - 종착점입니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Vector3 v1]</h3>
+		<p>시작점입니다.</p>
+
+		<h3>[property:Vector3 v2]</h3>
+		<p>종착점입니다.</p>
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 69 - 0
docs/api/ko/extras/curves/QuadraticBezierCurve.html

@@ -0,0 +1,69 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			시작점, 종착점, 두 개의 조절점을 통해 매끄러운 2d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">이차 베지어 곡선</a>을 만듭니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const curve = new THREE.QuadraticBezierCurve(
+			new THREE.Vector2( -10, 0 ),
+			new THREE.Vector2( 20, 15 ),
+			new THREE.Vector2( 10, 0 )
+		);
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2] )</h3>
+		<p>
+			[page:Vector2 v0] – 시작점입니다.<br/>
+			[page:Vector2 v1] – 조절점입니다.<br/>
+			[page:Vector2 v2] – 종착점입니다.
+		</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Vector2 v0]</h3>
+		<p>시작점입니다.</p>
+
+		<h3>[property:Vector2 v1]</h3>
+		<p>조절점입니다.</p>
+
+		<h3>[property:Vector2 v2]</h3>
+		<p>종착점입니다.</p>
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 70 - 0
docs/api/ko/extras/curves/QuadraticBezierCurve3.html

@@ -0,0 +1,70 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			시작점, 종착점, 두 개의 조절점을 통해 매끄러운 3d
+			<a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif" target="_blank">이차 베지에 곡선</a>을 만듭니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		const curve = new THREE.QuadraticBezierCurve3(
+			new THREE.Vector3( -10, 0, 0 ),
+			new THREE.Vector3( 20, 15, 0 ),
+			new THREE.Vector3( 10, 0, 0 )
+		);
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2] )</h3>
+		<p>
+			[page:Vector3 v0] – 시작점입니다.<br/>
+			[page:Vector3 v1] – 중앙 조절점입니다.<br/>
+			[page:Vector3 v2] – 종착점입니다.<br/>
+		</p>
+
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Vector3 v0]</h3>
+		<p>시작점입니다.</p>
+
+		<h3>[property:Vector3 v1]</h3>
+		<p>조절점입니다.</p>
+
+		<h3>[property:Vector3 v2]</h3>
+		<p>종착점입니다.</p>
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 65 - 0
docs/api/ko/extras/curves/SplineCurve.html

@@ -0,0 +1,65 @@
+<!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>
+		[page:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		연속된 점들로부터 매끄러운 2d 곡선을 만듭니다. 내부적으로 [page:Interpolations.CatmullRom]을 사용해 곡선을 만듭니다.
+		</p>
+
+		<h2>코드 예제</h2>
+
+		<code>
+		// Create a sine-like wave
+		const curve = new THREE.SplineCurve( [
+			new THREE.Vector2( -10, 0 ),
+			new THREE.Vector2( -5, 5 ),
+			new THREE.Vector2( 0, 0 ),
+			new THREE.Vector2( 5, -5 ),
+			new THREE.Vector2( 10, 0 )
+		] );
+
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		const splineObject = new THREE.Line( geometry, material );
+		</code>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Array points] )</h3>
+		<p>points – [page:Vector2] 배열의 점으로 곡선을 정의합니다.</p>
+
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼티는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+		<h3>[property:Array points]</h3>
+		<p>곡선을 정의하는 [page:Vector2] 점들의 배열입니다.</p>
+
+
+
+		<h2>메서드</h2>
+		<p>일반 메서드는 기본 [page:Curve] 클래스를 참고하세요.</p>
+
+
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 110 - 0
docs/api/ko/extras/objects/ImmediateRenderObject.html

@@ -0,0 +1,110 @@
+<!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>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			이 실험 클래스는 자주 업데이트되는 기하학 데이터로 메쉬를 렌더링하기 위한 빠른 코드 패스를 제공합니다. 렌더러가 [name]의 인스턴스를 만나면, 가장 원시적인 렌더링 작업(예: 바인딩 꼭짓점 속성, 정확한 셰이더 프로그램 결정 또는 실제 드로우 콜 수행)에만 신경을 씁니다. 뷰 펑퍼텀 도금, 와이어프레임 렌더링 또는 다중 재료 사용과 같은 기능은 지원되지 않습니다. [name]은 삼각형을 렌더링하는 데에만 사용할 수 있습니다.
+		</p>
+
+		<p class="desc">
+			[name]는 [page:BufferGeometry] 인스턴스와 함께 작동되지 않습니다. 원시 기하학 데이터가 [name]의 프로퍼티로 저장돼야 합니다.
+		</p>
+
+		<p class="desc">
+			[name]은 기하학 데이터를 프레임마다 업데이트할 때만 작동합니다. 기본 메쉬 렌더링 로직에 비해 빠른 코드 패스를 경험할 수 있습니다.
+		</p>
+
+		<h2>예제</h2>
+		<p>
+			[example:webgl_marchingcubes Marching Cubes]
+		</p>
+
+		<h2>생성자</h2>
+
+
+		<h3>[name]( [param:Material material] )</h3>
+		<p>
+		[page:Material material] — [name]의 재질.
+		</p>
+
+		<h2>프로퍼티</h2>
+		<p>일반 프로퍼니틑 기본 [page:Object3D] 클래스를 참고하세요.</p>
+
+		<h3>[property:Boolean material]</h3>
+		<p>
+			[name]의 재질. 여러 재질을 할당하는 것은 지원되지 않습니다.
+		</p>
+
+		<h3>[property:Boolean hasPositions]</h3>
+		<p>
+			위치 데이터가 정의되었는지입니다. 기본값은 *false*입니다.
+		</p>
+
+		<h3>[property:Boolean hasNormals]</h3>
+		<p>
+			법선 데이터가 정의되었는지입니다. 기본값은 *false*입니다.
+		</p>
+
+		<h3>[property:Boolean hasColors]</h3>
+		<p>
+			색상 데이터가 정의되었는지입니다. 기본값은 *false*입니다.
+		</p>
+
+		<h3>[property:Boolean hasUvs]</h3>
+		<p>
+			텍스쳐 좌표가 정의되었는지입니다. 기본값은 *false*입니다.
+		</p>
+
+		<h3>[property:Float32Array positionArray]</h3>
+		<p>
+			위치 데이터를 담고 있는 버퍼입니다. 기본값은 *null*입니다.
+		</p>
+
+		<h3>[property:Float32Array normalArray]</h3>
+		<p>
+			법선 데이터를 담고 있는 버퍼입니다. 기본값은 *null*입니다.
+		</p>
+
+		<h3>[property:Float32Array colorArray]</h3>
+		<p>
+			색상 데이터를 담고 있는 버퍼입니다. 기본값은 *null*입니다.
+		</p>
+
+		<h3>[property:Float32Array uvArray]</h3>
+		<p>
+			텍스쳐 좌표를 담고 있는 버퍼입니다. 기본값은 *null*입니다.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			렌더링될 개체의 수입니다. 기본값은 *0*입니다.
+			매 렌더링 이후에 이 프로퍼티는 *0*으로 설정될 것이기 때문에 [page:.render]() 실행 범위 안에 주로 설정하곤 합니다.
+		</p>
+
+		<h2>메서드</h2>
+
+		<p>일반 메서드는 기본 [page:Object3D] 클래스를 참고하세요.</p>
+
+		<h3>[method:null render]([param:Function renderCallback])</h3>
+		<p>
+		renderCallback -- 생성된 기하학 데이터를 렌더링하는 함수입니다.
+		</p>
+		<p>
+		이 메서드는 [name]의 파생클래스에서 상속받아야합니다. 일반적으로 실행 마지막 부분에 꼭짓점 버퍼 업데이트 로직을 구현하고 *renderCallback*을 사용합니다.
+
+		<h2>소스코드</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -305,6 +305,11 @@
 		从当前对象的子级中移除<b>对象</b>。可以移除任意数量的对象。
 	</p>
 
+	<h3>[method:this removeFromParent]()</h3>
+	<p>
+	Removes this object from its current parent.
+	</p>
+
 	<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
 	<p>
 		axis —— 一个在局部空间中的标准化向量。<br />

+ 3 - 3
docs/api/zh/extras/core/Shape.html

@@ -23,13 +23,13 @@
 
 		heartShape.moveTo( 25, 25 );
 		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
-		heartShape.bezierCurveTo( 30, 0, 30, 35,30,35 );
-		heartShape.bezierCurveTo( 30, 55, 10, 77, 25, 95 );
+		heartShape.bezierCurveTo( - 30, 0, - 30, 35, - 30, 35 );
+		heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25, 95 );
 		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
 		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
 		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
 
-		const extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
+		const extrudeSettings = { depth: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
 
 		const geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
 

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

@@ -33,7 +33,7 @@
 
 		<h2>代码示例</h2>
 
-		<code>const geometry = new THREE.PlaneGeometry( 5, 20, 32 );
+		<code>const geometry = new THREE.PlaneGeometry( 1, 1 );
 		const material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
 		const plane = new THREE.Mesh( geometry, material );
 		scene.add( plane );

+ 0 - 3
docs/api/zh/materials/MeshBasicMaterial.html

@@ -98,9 +98,6 @@
 			折射率不应超过1。默认值为*0.98*。
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p> 材质是否使用蒙皮。默认值为false。</p>
-
 		<h3>[property:Texture specularMap]</h3>
 		<p> 材质使用的高光贴图。默认值为null。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshDepthMaterial.html

@@ -76,9 +76,6 @@
 		<h3>[property:Boolean morphTargets]</h3>
 		<p>材质是否使用morphTargets。默认值为false。</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h3>[property:Boolean wireframe]</h3>
 		<p> 将几何体渲染为线框。默认值为*false*(即渲染为平滑着色)。</p>
 

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

@@ -97,9 +97,6 @@
 			The position of the point light in world space.
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h2>方法(Methods)</h2>
 		<p>共有方法请参见其基类[page:Material]。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshLambertMaterial.html

@@ -119,9 +119,6 @@
 			折射率不应超过1。默认值为*0.98*。
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h3>[property:Texture specularMap]</h3>
 		<p>材质使用的高光贴图。默认值为null。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshMatcapMaterial.html

@@ -112,9 +112,6 @@
 		<p> 法线贴图对材质的影响程度。典型范围是0-1。默认值是[page:Vector2]设置为(1,1)。
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h2>方法(Methods)</h2>
 		<p>共有方法请参见其基类[page:Material]。</p>
 

+ 0 - 3
docs/api/zh/materials/MeshNormalMaterial.html

@@ -91,9 +91,6 @@
 		<p> 法线贴图对材质的影响程度。典型范围是0-1。默认值是[page:Vector2]设置为(1,1)。
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h3>[property:Boolean wireframe]</h3>
 		<p>
 			将几何体渲染为线框。默认值为*false*(即渲染为平滑着色)。

+ 0 - 4
docs/api/zh/materials/MeshPhongMaterial.html

@@ -163,10 +163,6 @@
 		<h3>[property:Float shininess]</h3>
 		<p> [page:.specular]高亮的程度,越高的值越闪亮。默认值为 *30*。</p>
 
-
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h3>[property:Color specular]</h3>
 		<p> 材质的高光颜色。默认值为*0x111111*(深灰色)的颜色[page:Color]。<br /><br />
 			这定义了材质的光泽度和光泽的颜色。

+ 2 - 2
docs/api/zh/materials/MeshPhysicalMaterial.html

@@ -80,14 +80,14 @@
 
 		<h3>[property:Float clearcoat]</h3>
 		<p>
-		Represents the thickness of the clear coat layer, from *0.0* to *1.0*. Use clear coat related properties to enable multilayer
+		Represents the intensity of the clear coat layer, from *0.0* to *1.0*. Use clear coat related properties to enable multilayer
 		materials that have a thin translucent layer over the base layer. Default is *0.0*.
 		</p>
 
 		<h3>[property:Texture clearcoatMap]</h3>
 		<p>
 		The red channel of this texture is multiplied against [page:.clearcoat], for per-pixel control
-		over a coating's thickness. Default is *null*.
+		over a coating's intensity. Default is *null*.
 		</p>
 
 		<h3>[property:Texture clearcoatNormalMap]</h3>

+ 0 - 3
docs/api/zh/materials/MeshStandardMaterial.html

@@ -198,9 +198,6 @@
 		<h3>[property:Texture roughnessMap]</h3>
 		<p>该纹理的绿色通道用于改变材质的粗糙度。</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>材质是否使用蒙皮。默认值为false。</p>
-
 		<h3>[property:Boolean vertexTangents]</h3>
 		<p>
 		Defines whether precomputed vertex tangents, which must be provided in a vec4 "tangent" attribute,

+ 0 - 3
docs/api/zh/materials/MeshToonMaterial.html

@@ -163,9 +163,6 @@
 			Default is a [page:Vector2] set to (1,1).
 		</p>
 
-		<h3>[property:Boolean skinning]</h3>
-		<p>Define whether the material uses skinning. Default is false.</p>
-
 		<h3>[property:Boolean wireframe]</h3>
 		<p>Render geometry as wireframe. Default is *false* (i.e. render as flat polygons).</p>
 

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

@@ -337,11 +337,6 @@ this.extensions = {
 		<p> 定义材质是否使用平面着色进行渲染。默认值为false。
 		</p>
 
-
-		<h3>[property:Boolean skinning]</h3>
-		<p> 定义材质是否使用蒙皮; 如果将蒙皮属性传递给shader,则为true。默认值为false。
-		</p>
-
 		<h3>[property:Object uniforms]</h3>
 		<p> 如下形式的对象:
 			<code>

+ 3 - 3
docs/api/zh/math/Spherical.html

@@ -19,10 +19,10 @@
 		<p>
 		[page:Float radius] - 半径值,或者说从该点到原点的
 		[link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean distance](欧几里得距离,即直线距离)。默认值为*1.0*。<br />
-		[page:Float phi] - polar angle in radians from the y (up) axis. Default is *0*.<br />
-		[page:Float theta] - equator angle in radians around the y (up) axis. Default is *0*.<br /><br />
+		[page:Float phi] - 与 y (up) 轴的极坐标角(以弧度为单位)。 默认值为 *0*。<br />
+		[page:Float theta] - 绕 y (up) 轴的赤道角(以弧度为单位)。 默认值为 *0*。<br /><br />
 
-		The poles (phi) are at the positive and negative y axis. The equator (theta) starts at positive z.
+		极点(φ phi)位于正 y 轴和负 y 轴上。赤道(θ theta)从正 z 开始。
 		</p>
 
 

+ 2 - 2
docs/api/zh/objects/Skeleton.html

@@ -88,16 +88,16 @@
 			返回一个当前Skeleton对象的克隆。
 		</p>
 
-
 		<h3>[method:null calculateInverses]()</h3>
 		<p>如果没有在构造器中提供,生成[page:.boneInverses boneInverses]数组。
 		</p>
 
+		<h3>[method:null computeBoneTexture]()</h3>
+		<p>Computes an instance of [page:DataTexture] in order to pass the bone data more efficiently to the shader. The texture is assigned to [page:.boneTexture boneTexture].</p>
 
 		<h3>[method:null pose]()</h3>
 		<p>返回骨架的基础姿势。</p>
 
-
 		<h3>[method:null update]()</h3>
 		<p>
 			在改变骨骼后,更新[page:Float32Array boneMatrices] 和 [page:DataTexture boneTexture]的值。

+ 0 - 1
docs/api/zh/objects/SkinnedMesh.html

@@ -13,7 +13,6 @@
 
 		<p class="desc">
 			具有[page:Skeleton](骨架)和[page:Bone bones](骨骼)的网格,可用于给几何体上的顶点添加动画。
-			其材质必须支持蒙皮,并且已经启用了蒙皮 —— 请阅读[page:MeshStandardMaterial.skinning]。
 		</p>
 
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>

+ 58 - 0
docs/api/zh/renderers/WebGLMultipleRenderTargets.html

@@ -0,0 +1,58 @@
+<!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:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			A special render target that enables a fragment shader to write to several textures.
+			This approach is useful for advanced rendering techniques like post-processing or deferred rendering.
+
+			Heads up: [name] can only be used with a WebGL 2 rendering context.
+		</p>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl2_multiple_rendertargets webgl2 / multiple / rendertargets ]
+		</p>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([param:Number width], [param:Number height], [param:Number count])</h3>
+
+		<p>
+		[page:Number width] - The width of the render target. <br />
+		[page:Number height] - The height of the render target.<br />
+		[page:Number count] - The number of render targets.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array texture]</h3>
+		<p>
+		The texture property is overwritten in [name] and replaced with an array. This array holds the [page:WebGLRenderTarget.texture texture]
+		references of the respective render targets.
+		</p>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] properties are available on this class.</p>
+
+		<h2>Methods</h2>
+
+		<p>[page:WebGLRenderTarget WebGLRenderTarget] methods are available on this class.</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

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

@@ -7,6 +7,8 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
+		[page:WebGLRenderTarget] &rarr;
+
 		<h1>[name]</h1>
 
 		<p class="desc">
@@ -14,6 +16,11 @@
 			Heads up: [name] can only be used with a WebGL 2 rendering context.
 		</p>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl2_multisampled_renderbuffers webgl2 / multisampled / renderbuffers ]
+		</p>
 
 		<h2>Constructor</h2>
 

+ 42 - 2
docs/api/zh/renderers/webxr/WebXRManager.html

@@ -19,6 +19,11 @@
 
 		<h2>Properties</h2>
 
+		<h3>[property:Boolean cameraAutoUpdate]</h3>
+		<p>
+		Whether the manager's XR camera should be automatically updated or not. Default is *true*.
+		</p>
+
 		<h3>[property:Boolean enabled]</h3>
 		<p>
 		This flag notifies the renderer to be ready for XR rendering. Default is *false*. Set it to *true* if you are going
@@ -32,11 +37,21 @@
 
 		<h2>Methods</h2>
 
+		<h3>[method:ArrayCamera getCamera]()</h3>
+		<p>
+		Returns an instance of [page:ArrayCamera] which represents the XR camera of the active XR session.
+		For each view it holds a separate camera object in its [page:ArrayCamera.cameras cameras] property.
+		</p>
+		<p>
+		The camera's *fov* is currently not used and does not reflect the fov of the XR camera. If you need the fov on app level,
+		you have to compute in manually from the XR camera's projection matrices.
+		</p>
+
 		<h3>[method:Group getController]( [param:Integer index] )</h3>
 		<p>
 		[page:Integer index] — The index of the controller. <br /><br />
 
-		Returns a [page:Group] representing the so called *target ray* space of the controller.
+		Returns a [page:Group] representing the so called *target ray* space of the XR controller.
 		Use this space for visualizing 3D objects that support the user in pointing tasks like UI interaction.
 		</p>
 
@@ -44,7 +59,7 @@
 		<p>
 		[page:Integer index] — The index of the controller. <br /><br />
 
-		Returns a [page:Group] representing the so called *grip* space of the controller.
+		Returns a [page:Group] representing the so called *grip* space of the XR controller.
 		Use this space if the user is going to hold other 3D objects like a lightsaber.
 		</p>
 
@@ -54,6 +69,24 @@
 		in two different coordinate spaces for the same WebXR controller.
 		</p>
 
+		<h3>[method:Group getHand]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index] — The index of the controller. <br /><br />
+
+		Returns a [page:Group] representing the so called *hand* or *joint* space of the XR controller.
+		Use this space for visualizing the user's hands when no physical controllers are used.
+		</p>
+
+		<h3>[method:String getReferenceSpace]()</h3>
+		<p>
+		Returns the reference space.
+		</p>
+
+		<h3>[method:XRSession getSession]()</h3>
+		<p>
+		Returns the *XRSession* object which allows a more fine-grained management of active WebXR sessions on application level.
+		</p>
+
 		<h3>[method:void setFramebufferScaleFactor]( [param:Float framebufferScaleFactor] )</h3>
 		<p>
 		[page:Float framebufferScaleFactor] — The framebuffer scale factor to set.<br /><br />
@@ -76,6 +109,13 @@
 		Please check out the [link:https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpaceType MDN] for possible values and their use cases.
 		</p>
 
+		<h3>[method:void updateCamera]( [param:PerspectiveCamera camera] )</h3>
+		<p>
+		Updates the state of the XR camera. Use this method on app level if you set [page:.cameraAutoUpdate] to *false*.
+		The method requires the non-XR camera of the scene as a parameter. The passed in camera's transformation is automatically
+		adjusted to the position of the XR camera when calling this method.
+		</p>
+
 		<p>
 		Note: It is not possible to change the reference space type while presenting XR content.
 		</p>

+ 29 - 0
docs/examples/en/utils/CameraUtils.html

@@ -0,0 +1,29 @@
+<!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 class="desc">A class containing useful utility functions for camera manipulation.</p>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null frameCorners]( [param:PerspectiveCamera camera] [param:Vector3 bottomLeftCorner], [param:Vector3 bottomRightCorner], [param:Vector3 topLeftCorner], [param:boolean estimateViewFrustum] )</h3>
+		<p>
+		Set a PerspectiveCamera's projectionMatrix and quaternion to exactly frame the corners of an arbitrary rectangle using [link:https://web.archive.org/web/20191110002841/http://csc.lsu.edu/~kooima/articles/genperspective/index.html Kooima's Generalized Perspective Projection formulation].
+		NOTE: This function ignores the standard parameters; do not call updateProjectionMatrix() after this! toJSON will also not capture the off-axis matrix generated by this function.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/CameraUtils.js examples/jsm/utils/CameraUtils.js]
+		</p>
+	</body>
+</html>

+ 21 - 21
docs/examples/zh/loaders/PCDLoader.html

@@ -11,9 +11,9 @@
 
 		<h1>[name]</h1>
 
-		<p class="desc">A loader for loading a <em>.pcd</em> resource. <br />
-		Point Cloud Data is a file format for <a href="https://en.wikipedia.org/wiki/Point_Cloud_Library">Point Cloud Library</a>. <br />
-		Loader support ascii and (compressed) binary.
+		<p class="desc">用于加载 <em>.pcd</em> 资源的加载器。<br />
+		点云数据是 <a href="https://en.wikipedia.org/wiki/Point_Cloud_Library">点云库</a> 的文件格式。 <br />
+		加载器支持 ascii 和 (压缩) 二进制编码。
 		</p>
 
 		<h2>代码示例</h2>
@@ -53,51 +53,51 @@
 			[example:webgl_loader_pcd]
 		</p>
 
-		<h2>Constructor</h2>
+		<h2>构造器</h2>
 
 		<h3>[name]( [param:LoadingManager manager] )</h3>
 		<p>
-		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
+		[page:LoadingManager manager] — 加载器使用的 [page:LoadingManager loadingManager] (加载管理器),默认值是 [page:LoadingManager THREE.DefaultLoadingManager]。
 		</p>
 		<p>
-		Creates a new [name].
+		创建一个新的 [name]。
 		</p>
 
-		<h2>Properties</h2>
-		<p>See the base [page:Loader] class for common properties.</p>
+		<h2>属性</h2>
+		<p>共有属性请参见其基类 [page:Loader]。</p>
 
 		<h3>[page:Boolean littleEndian]</h3>
 		<p>
-		Default value is true.
+        在加载器内部调用 DataView.prototype.getFloat32() 时,表示这个32位浮点数是否以 小字节序(little-endian) 格式存储,默认值为 true。
 		</p>
 
-		<h2>Methods</h2>
-		<p>See the base [page:Loader] class for common methods.</p>
+		<h2>方法</h2>
+		<p>共有方法请参考其基类 [page:Loader]。</p>
 
 		<h3>[method:null load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
 		<p>
-		[page:String url] — A string containing the path/URL of the <em>.pcd</em> file.<br />
-		[page:Function onLoad] — (optional) A function to be called after loading is successfully completed. The function receives loaded [page:Object3D] as an argument.<br />
-		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br />
-		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives the error as an argument.<br />
+		[page:String url] — 一个包含有 <em>.pcd</em> 文件的路径或URL的字符串。<br />
+		[page:Function onLoad] — (可选参数) 当加载过程成功完成后将被调用的函数。 其参数是一个 [page:Object3D] 实例。<br />
+		[page:Function onProgress] — (可选参数) 加载正在进行过程中会被调用的函数。 其参数是一个 XMLHttpRequest 实例,包含有总字节数 [page:Integer total] 和已加载的字节数 [page:Integer loaded]。<br />
+		[page:Function onError] — (可选参数) 若在加载过程中发生错误,将被调用的函数。 其参数是一个 error 实例。<br />
 		</p>
 		<p>
-		Begin loading from url and call onLoad with the parsed response content.
+		开始从路径或url加载,并使用解析过的响应内容调用回调函数。
 		</p>
 
 		<h3>[method:Object3D parse]( [param:Arraybuffer data],[param:String url] )</h3>
 		<p>
-		[page:Arraybuffer data] — The binary structure to parse.
+		[page:Arraybuffer data] — 要分析的二进制数据结构
 		</p>
 		<p>
-		[page:String url] — The file name or file url.
+		[page:String url] — 文件名或文件url。
 		</p>
 		<p>
-		Parse an <em>pcd</em> binary structure and return an [page:Object3D].<br />
-		The object is converted to [page:Points] with a [page:BufferGeometry] and a [page:PointsMaterial].
+		分析 <em>pcd</em> 二进制结构并返回一个 [page:Object3D] 实例。<br />
+		该 Object3D 实例实际类型为 [page:Points],由一个 [page:BufferGeometry] 实例和一个 [page:PointsMaterial] 实例作为参数构造而成。
 		</p>
 
-		<h2>Source</h2>
+		<h2>源码</h2>
 
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PCDLoader.js examples/jsm/loaders/PCDLoader.js]

+ 3 - 0
docs/list.json

@@ -290,6 +290,7 @@
 			},
 
 			"Renderers": {
+				"WebGLMultipleRenderTargets": "api/en/renderers/WebGLMultipleRenderTargets",
 				"WebGLMultisampleRenderTarget": "api/en/renderers/WebGLMultisampleRenderTarget",
 				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
 				"WebGL1Renderer": "api/en/renderers/WebGL1Renderer",
@@ -417,6 +418,7 @@
 
 			"Utils": {
 				"BufferGeometryUtils": "examples/en/utils/BufferGeometryUtils",
+				"CameraUtils": "examples/en/utils/CameraUtils",
 				"SceneUtils": "examples/en/utils/SceneUtils",
 				"SkeletonUtils": "examples/en/utils/SkeletonUtils"
 			}
@@ -799,6 +801,7 @@
 			},
 
 			"渲染器": {
+				"WebGLMultipleRenderTargets": "api/zh/renderers/WebGLMultipleRenderTargets",
 				"WebGLMultisampleRenderTarget": "api/zh/renderers/WebGLMultisampleRenderTarget",
 				"WebGLRenderer": "api/zh/renderers/WebGLRenderer",
 				"WebGL1Renderer": "api/zh/renderers/WebGL1Renderer",

+ 0 - 1
docs/manual/ar/introduction/How-to-update-things.html

@@ -137,7 +137,6 @@ line.geometry.computeBoundingSphere();
 						<li>texture</li>
 						<li>fog</li>
 						<li>vertex colors</li>
-						<li>skinning</li>
 						<li>morphing</li>
 						<li>shadow map</li>
 						<li>alpha test</li>

+ 0 - 1
docs/manual/en/introduction/How-to-update-things.html

@@ -147,7 +147,6 @@ line.geometry.computeBoundingSphere();
 						<li>texture</li>
 						<li>fog</li>
 						<li>vertex colors</li>
-						<li>skinning</li>
 						<li>morphing</li>
 						<li>shadow map</li>
 						<li>alpha test</li>

+ 1 - 2
docs/manual/ja/introduction/How-to-update-things.html

@@ -173,7 +173,6 @@ geometry.dynamic = true;
                     <li>texture</li>
                     <li>fog</li>
                     <li>vertex colors</li>
-                    <li>skinning</li>
                     <li>morphing</li>
                     <li>shadow map</li>
                     <li>alpha test</li>
@@ -260,4 +259,4 @@ camera.updateProjectionMatrix();
     </div>
 </body>
 
-</html>
+</html>

+ 0 - 1
docs/manual/ko/introduction/How-to-update-things.html

@@ -143,7 +143,6 @@ line.geometry.computeBoundingSphere();
 						<li>texture</li>
 						<li>fog</li>
 						<li>vertex colors</li>
-						<li>skinning</li>
 						<li>morphing</li>
 						<li>shadow map</li>
 						<li>alpha test</li>

+ 0 - 1
docs/manual/zh/introduction/How-to-update-things.html

@@ -132,7 +132,6 @@ line.geometry.attributes.position.needsUpdate = true; // 需要加在第一次
 						<li>texture</li>
 						<li>fog</li>
 						<li>vertex colors</li>
-						<li>skinning</li>
 						<li>morphing</li>
 						<li>shadow map</li>
 						<li>alpha test</li>

+ 12 - 12
docs/page.js

@@ -60,21 +60,21 @@ function onDocumentLoad() {
 
 	text = text.replace( /\[name\]/gi, name );
 	text = text.replace( /\[path\]/gi, path );
-	text = text.replace( /\[page:([\w\.]+)\]/gi, "[page:$1 $1]" ); // [page:name] to [page:name title]
-	text = text.replace( /\[page:\.([\w\.]+) ([\w\.\s]+)\]/gi, "[page:" + name + ".$1 $2]" ); // [page:.member title] to [page:name.member title]
-	text = text.replace( /\[page:([\w\.]+) ([\w\.\s]+)\]/gi, "<a onclick=\"window.parent.setUrlFragment('$1')\" title=\"$1\">$2</a>" ); // [page:name title]
+	text = text.replace( /\[page:([\w\.]+)\]/gi, '[page:$1 $1]' ); // [page:name] to [page:name title]
+	text = text.replace( /\[page:\.([\w\.]+) ([\w\.\s]+)\]/gi, '[page:' + name + '.$1 $2]' ); // [page:.member title] to [page:name.member title]
+	text = text.replace( /\[page:([\w\.]+) ([\w\.\s]+)\]/gi, '<a onclick="window.parent.setUrlFragment(\'$1\')" title="$1">$2</a>' ); // [page:name title]
 	// text = text.replace( /\[member:.([\w]+) ([\w\.\s]+)\]/gi, "<a onclick=\"window.parent.setUrlFragment('" + name + ".$1')\" title=\"$1\">$2</a>" );
 
-	text = text.replace( /\[(member|property|method|param):([\w]+)\]/gi, "[$1:$2 $2]" ); // [member:name] to [member:name title]
-	text = text.replace( /\[(?:member|property|method):([\w]+) ([\w\.\s]+)\]\s*(\(.*\))?/gi, "<a onclick=\"window.parent.setUrlFragment('" + name + ".$2')\" target=\"_parent\" title=\"" + name + ".$2\" class=\"permalink\">#</a> .<a onclick=\"window.parent.setUrlFragment('" + name + ".$2')\" id=\"$2\">$2</a> $3 : <a class=\"param\" onclick=\"window.parent.setUrlFragment('$1')\">$1</a>" );
-	text = text.replace( /\[param:([\w\.]+) ([\w\.\s]+)\]/gi, "$2 : <a class=\"param\" onclick=\"window.parent.setUrlFragment('$1')\">$1</a>" ); // [param:name title]
+	text = text.replace( /\[(member|property|method|param):([\w]+)\]/gi, '[$1:$2 $2]' ); // [member:name] to [member:name title]
+	text = text.replace( /\[(?:member|property|method):([\w]+) ([\w\.\s]+)\]\s*(\(.*\))?/gi, '<a onclick="window.parent.setUrlFragment(\'' + name + '.$2\')" target="_parent" title="' + name + '.$2" class="permalink">#</a> .<a onclick="window.parent.setUrlFragment(\'' + name + '.$2\')" id="$2">$2</a> $3 : <a class="param" onclick="window.parent.setUrlFragment(\'$1\')">$1</a>' );
+	text = text.replace( /\[param:([\w\.]+) ([\w\.\s]+)\]/gi, '$2 : <a class="param" onclick="window.parent.setUrlFragment(\'$1\')">$1</a>' ); // [param:name title]
 
-	text = text.replace( /\[link:([\w|\:|\/|\.|\-|\_]+)\]/gi, "[link:$1 $1]" ); // [link:url] to [link:url title]
-	text = text.replace( /\[link:([\w|\:|\/|\.|\-|\_|\(|\)|\?|\#|\=|\!]+) ([\w|\:|\/|\.|\-|\_|\s]+)\]/gi, "<a href=\"$1\"  target=\"_blank\">$2</a>" ); // [link:url title]
-	text = text.replace( /\*([\w|\d|\"|\-|\(][\w|\d|\ |\-|\/|\+|\-|\(|\)|\=|\,|\.\"]*[\w|\d|\"|\)]|\w)\*/gi, "<strong>$1</strong>" ); // *
+	text = text.replace( /\[link:([\w|\:|\/|\.|\-|\_|\(|\)|\?|\#|\=|\!|\~]+)\]/gi, '<a href="$1"  target="_blank">$1</a>' ); // [link:url]
+	text = text.replace( /\[link:([\w|\:|\/|\.|\-|\_|\(|\)|\?|\#|\=|\!|\~]+) ([\w|\:|\/|\.|\-|\_|\'|\s]+)\]/gi, '<a href="$1"  target="_blank">$2</a>' ); // [link:url title]
+	text = text.replace( /\*([\w|\d|\"|\-|\(][\w|\d|\ |\-|\/|\+|\-|\(|\)|\=|\,|\.\"]*[\w|\d|\"|\)]|\w)\*/gi, '<strong>$1</strong>' ); // *
 
-	text = text.replace( /\[example:([\w\_]+)\]/gi, "[example:$1 $1]" ); // [example:name] to [example:name title]
-	text = text.replace( /\[example:([\w\_]+) ([\w\:\/\.\-\_ \s]+)\]/gi, "<a href=\"../examples/#$1\"  target=\"_blank\">$2</a>" ); // [example:name title]
+	text = text.replace( /\[example:([\w\_]+)\]/gi, '[example:$1 $1]' ); // [example:name] to [example:name title]
+	text = text.replace( /\[example:([\w\_]+) ([\w\:\/\.\-\_ \s]+)\]/gi, '<a href="../examples/#$1"  target="_blank">$2</a>' ); // [example:name title]
 
 	text = text.replace( /<a class="param" onclick="window.parent.setUrlFragment\('\w+'\)">(null|this|Boolean|Object|Array|Number|String|Integer|Float|TypedArray|ArrayBuffer)<\/a>/gi, '<span class="param">$1</span>' ); // remove links to primitive types
 
@@ -100,7 +100,7 @@ function onDocumentLoad() {
 	const button = document.createElement( 'div' );
 	button.id = 'button';
 	button.innerHTML = '<img src="../files/ic_mode_edit_black_24dp.svg">';
-	button.addEventListener( 'click', function ( event ) {
+	button.addEventListener( 'click', function () {
 
 		window.open( 'https://github.com/mrdoob/three.js/blob/dev/docs/' + section + '/' + localizedPath + '.html' );
 

+ 0 - 1
docs/scenes/bones-browser.html

@@ -163,7 +163,6 @@
 			function createMesh( geometry, bones ) {
 
 				const material = new MeshPhongMaterial( {
-					skinning: true,
 					color: 0x156289,
 					emissive: 0x072534,
 					side: DoubleSide,

+ 23 - 23
editor/js/Sidebar.Material.js

@@ -176,6 +176,16 @@ function SidebarMaterial( editor ) {
 	container.add( materialSheenRow );
 	*/
 
+	// transmission
+
+	var materialTransmissionRow = new UIRow();
+	var materialTransmission = new UINumber( 1 ).setWidth( '30px' ).setRange( 0, 1 ).onChange( update );
+
+	materialTransmissionRow.add( new UIText( strings.getKey( 'sidebar/material/transmission' ) ).setWidth( '90px' ) );
+	materialTransmissionRow.add( materialTransmission );
+
+	container.add( materialTransmissionRow );
+
 	// emissive
 
 	var materialEmissiveRow = new UIRow();
@@ -262,16 +272,6 @@ function SidebarMaterial( editor ) {
 
 	container.add( materialDepthPackingRow );
 
-	// skinning
-
-	var materialSkinningRow = new UIRow();
-	var materialSkinning = new UICheckbox( false ).onChange( update );
-
-	materialSkinningRow.add( new UIText( strings.getKey( 'sidebar/material/skinning' ) ).setWidth( '90px' ) );
-	materialSkinningRow.add( materialSkinning );
-
-	container.add( materialSkinningRow );
-
 	// map
 
 	var materialMapRow = new UIRow();
@@ -692,6 +692,12 @@ function SidebarMaterial( editor ) {
 			}
 			*/
 
+			if ( material.transmission !== undefined && Math.abs( material.transmission - materialTransmission.getValue() ) >= epsilon ) {
+
+				editor.execute( new SetMaterialValueCommand( editor, currentObject, 'transmission', materialTransmission.getValue(), currentMaterialSlot ) );
+
+			}
+
 			if ( material.emissive !== undefined && material.emissive.getHex() !== materialEmissive.getHexValue() ) {
 
 				editor.execute( new SetMaterialColorCommand( editor, currentObject, 'emissive', materialEmissive.getHexValue(), currentMaterialSlot ) );
@@ -751,12 +757,6 @@ function SidebarMaterial( editor ) {
 
 			}
 
-			if ( material.skinning !== undefined && material.skinning !== materialSkinning.getValue() ) {
-
-				editor.execute( new SetMaterialValueCommand( editor, currentObject, 'skinning', materialSkinning.getValue(), currentMaterialSlot ) );
-
-			}
-
 			if ( material.map !== undefined ) {
 
 				var mapEnabled = materialMapEnabled.getValue() === true;
@@ -1248,6 +1248,7 @@ function SidebarMaterial( editor ) {
 			'metalness': materialMetalnessRow,
 			'emissive': materialEmissiveRow,
 			// 'sheen': materialSheenRow,
+			'transmission': materialTransmissionRow,
 			'specular': materialSpecularRow,
 			'shininess': materialShininessRow,
 			'clearcoat': materialClearcoatRow,
@@ -1256,7 +1257,6 @@ function SidebarMaterial( editor ) {
 			'vertexColors': materialVertexColorsRow,
 			'vertexTangents': materialVertexTangentsRow,
 			'depthPacking': materialDepthPackingRow,
-			'skinning': materialSkinningRow,
 			'map': materialMapRow,
 			'matcap': materialMatcapMapRow,
 			'alphaMap': materialAlphaMapRow,
@@ -1394,6 +1394,12 @@ function SidebarMaterial( editor ) {
 		}
 		*/
 
+		if ( material.transmission !== undefined ) {
+
+			materialTransmission.setValue( material.transmission );
+
+		}
+
 		if ( material.emissive !== undefined ) {
 
 			materialEmissive.setHexValue( material.emissive.getHexString() );
@@ -1438,12 +1444,6 @@ function SidebarMaterial( editor ) {
 
 		}
 
-		if ( material.skinning !== undefined ) {
-
-			materialSkinning.setValue( material.skinning );
-
-		}
-
 		if ( material.map !== undefined ) {
 
 			materialMapEnabled.setValue( material.map !== null );

+ 19 - 3
editor/js/Strings.js

@@ -243,6 +243,7 @@ function Strings( config ) {
 			'sidebar/material/roughness': 'Roughness',
 			'sidebar/material/metalness': 'Metalness',
 			'sidebar/material/sheen': 'Sheen',
+			'sidebar/material/transmission': 'Transmission',
 			'sidebar/material/emissive': 'Emissive',
 			'sidebar/material/specular': 'Specular',
 			'sidebar/material/shininess': 'Shininess',
@@ -250,7 +251,6 @@ function Strings( config ) {
 			'sidebar/material/clearcoatroughness': 'Clearcoat Roughness',
 			'sidebar/material/vertexcolors': 'Vertex Colors',
 			'sidebar/material/vertextangents': 'Vertex Tangents',
-			'sidebar/material/skinning': 'Skinning',
 			'sidebar/material/matcap': 'Matcap',
 			'sidebar/material/map': 'Map',
 			'sidebar/material/alphamap': 'Alpha Map',
@@ -578,6 +578,7 @@ function Strings( config ) {
 			'sidebar/material/roughness': 'Rugosité',
 			'sidebar/material/metalness': 'Métal',
 			'sidebar/material/sheen': 'Éclat',
+			'sidebar/material/transmission': 'Transmission',
 			'sidebar/material/emissive': 'Émissif',
 			'sidebar/material/specular': 'Spéculaire',
 			'sidebar/material/shininess': 'Brillance',
@@ -585,7 +586,6 @@ function Strings( config ) {
 			'sidebar/material/clearcoatroughness': 'Rugosité du vernis',
 			'sidebar/material/vertexcolors': 'Couleurs aux Sommets',
 			'sidebar/material/vertextangents': 'Tangentes aux sommets',
-			'sidebar/material/skinning': 'Skinning',
 			'sidebar/material/matcap': 'Matcap',
 			'sidebar/material/map': 'Texture',
 			'sidebar/material/alphamap': 'Texture de transparence',
@@ -825,6 +825,16 @@ function Strings( config ) {
 			'sidebar/geometry/cylinder_geometry/heightsegments': '高度分段',
 			'sidebar/geometry/cylinder_geometry/openended': '开端',
 
+			'sidebar/geometry/extrude_geometry/curveSegments': '曲线段',
+			'sidebar/geometry/extrude_geometry/steps': '细分点数',
+			'sidebar/geometry/extrude_geometry/depth': '深度',
+			'sidebar/geometry/extrude_geometry/bevelEnabled': '启用斜角',
+			'sidebar/geometry/extrude_geometry/bevelThickness': '斜角厚度',
+			'sidebar/geometry/extrude_geometry/bevelSize': '斜角大小',
+			'sidebar/geometry/extrude_geometry/bevelOffset': '斜角偏移量',
+			'sidebar/geometry/extrude_geometry/bevelSegments': '斜角分段',
+			'sidebar/geometry/extrude_geometry/shape': '转换图形',
+
 			'sidebar/geometry/dodecahedron_geometry/radius': '半径',
 			'sidebar/geometry/dodecahedron_geometry/detail': '面片分段',
 
@@ -854,6 +864,9 @@ function Strings( config ) {
 			'sidebar/geometry/ring_geometry/thetastart': '弧度起点',
 			'sidebar/geometry/ring_geometry/thetalength': '弧度长度',
 
+			'sidebar/geometry/shape_geometry/curveSegments': '曲线段',
+			'sidebar/geometry/shape_geometry/extrude': '拉伸',
+
 			'sidebar/geometry/sphere_geometry/radius': '半径',
 			'sidebar/geometry/sphere_geometry/widthsegments': '宽度分段',
 			'sidebar/geometry/sphere_geometry/heightsegments': '长度分段',
@@ -896,8 +909,11 @@ function Strings( config ) {
 			'sidebar/material/vertex': '顶点',
 			'sidebar/material/fragment': '片元',
 			'sidebar/material/color': '颜色',
+			'sidebar/material/depthPacking': '深度包装',
 			'sidebar/material/roughness': '粗糙度',
 			'sidebar/material/metalness': '金属度',
+			'sidebar/material/sheen': '光泽',
+			'sidebar/material/transmission': '透射',
 			'sidebar/material/emissive': '自发光',
 			'sidebar/material/specular': '高光',
 			'sidebar/material/shininess': '高光大小',
@@ -905,7 +921,6 @@ function Strings( config ) {
 			'sidebar/material/clearcoatroughness': '透明图层粗糙度',
 			'sidebar/material/vertexcolors': '顶点颜色',
 			'sidebar/material/vertextangents': '顶点切线',
-			'sidebar/material/skinning': '皮肤',
 			'sidebar/material/matcap': '材质捕获',
 			'sidebar/material/map': '贴图',
 			'sidebar/material/alphamap': '透明贴图',
@@ -920,6 +935,7 @@ function Strings( config ) {
 			'sidebar/material/lightmap': '光照贴图',
 			'sidebar/material/aomap': '环境光遮蔽贴图',
 			'sidebar/material/emissivemap': '自发光贴图',
+			'sidebar/material/gradientmap': '渐变贴图',
 			'sidebar/material/side': '面',
 			'sidebar/material/side/front': '正面',
 			'sidebar/material/side/back': '背面',

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