Mr.doob 5 years ago
parent
commit
1425b05236
100 changed files with 1848 additions and 964 deletions
  1. 51 37
      build/three.js
  2. 462 527
      build/three.min.js
  3. 288 274
      build/three.module.js
  4. 1 1
      docs/api/en/audio/AudioContext.html
  5. 13 16
      docs/api/en/cameras/CubeCamera.html
  6. 2 2
      docs/api/en/core/InstancedBufferGeometry.html
  7. 5 0
      docs/api/en/core/InterleavedBufferAttribute.html
  8. 2 0
      docs/api/en/extras/curves/CatmullRomCurve3.html
  9. 81 5
      docs/api/en/extras/objects/ImmediateRenderObject.html
  10. 70 0
      docs/api/en/lights/LightProbe.html
  11. 0 10
      docs/api/en/loaders/FileLoader.html
  12. 12 0
      docs/api/en/loaders/Loader.html
  13. 0 1
      docs/api/en/loaders/ObjectLoader.html
  14. 2 0
      docs/api/en/materials/LineBasicMaterial.html
  15. 1 4
      docs/api/en/math/Matrix4.html
  16. 138 0
      docs/api/en/math/SphericalHarmonics3.html
  17. 16 0
      docs/api/en/objects/Line.html
  18. 1 1
      docs/api/zh/audio/AudioContext.html
  19. 10 8
      docs/api/zh/cameras/CubeCamera.html
  20. 2 2
      docs/api/zh/core/InstancedBufferGeometry.html
  21. 5 0
      docs/api/zh/core/InterleavedBufferAttribute.html
  22. 2 0
      docs/api/zh/extras/curves/CatmullRomCurve3.html
  23. 80 5
      docs/api/zh/extras/objects/ImmediateRenderObject.html
  24. 70 0
      docs/api/zh/lights/LightProbe.html
  25. 0 1
      docs/api/zh/loaders/ObjectLoader.html
  26. 2 0
      docs/api/zh/materials/LineBasicMaterial.html
  27. 0 2
      docs/api/zh/math/Matrix4.html
  28. 138 0
      docs/api/zh/math/SphericalHarmonics3.html
  29. 16 0
      docs/api/zh/objects/Line.html
  30. 16 0
      docs/examples/en/controls/OrbitControls.html
  31. 46 0
      docs/examples/en/lights/LightProbeGenerator.html
  32. 1 1
      docs/examples/en/utils/SceneUtils.html
  33. 16 0
      docs/examples/zh/controls/OrbitControls.html
  34. 46 0
      docs/examples/zh/lights/LightProbeGenerator.html
  35. 8 1
      docs/examples/zh/utils/SceneUtils.html
  36. 12 0
      docs/list.js
  37. 1 1
      docs/manual/en/introduction/Animation-system.html
  38. 1 1
      docs/manual/en/introduction/Creating-a-scene.html
  39. 2 2
      docs/manual/en/introduction/How-to-use-post-processing.html
  40. 2 2
      docs/manual/en/introduction/Import-via-modules.html
  41. 1 10
      docs/manual/en/introduction/Loading-3D-models.html
  42. 1 1
      docs/manual/en/introduction/Useful-links.html
  43. 1 1
      docs/manual/zh/introduction/Creating-a-scene.html
  44. 4 4
      docs/manual/zh/introduction/Import-via-modules.html
  45. 2 10
      docs/manual/zh/introduction/Loading-3D-models.html
  46. 0 2
      editor/css/main.css
  47. 5 1
      editor/js/Sidebar.Project.js
  48. 1 1
      editor/sw.js
  49. 1 1
      examples/css3d_molecules.html
  50. 99 6
      examples/files.js
  51. 29 16
      examples/index.html
  52. 1 0
      examples/js/WebGL.js
  53. 1 0
      examples/js/animation/AnimationClipCreator.js
  54. 1 0
      examples/js/animation/CCDIKSolver.js
  55. 1 0
      examples/js/animation/MMDAnimationHelper.js
  56. 1 0
      examples/js/animation/MMDPhysics.js
  57. 1 0
      examples/js/animation/TimelinerController.js
  58. 1 0
      examples/js/cameras/CinematicCamera.js
  59. 1 0
      examples/js/controls/DeviceOrientationControls.js
  60. 3 0
      examples/js/controls/DragControls.js
  61. 1 0
      examples/js/controls/FirstPersonControls.js
  62. 1 0
      examples/js/controls/FlyControls.js
  63. 1 0
      examples/js/controls/OrbitControls.js
  64. 1 0
      examples/js/controls/PointerLockControls.js
  65. 1 0
      examples/js/controls/TrackballControls.js
  66. 2 1
      examples/js/controls/TransformControls.js
  67. 1 0
      examples/js/curves/CurveExtras.js
  68. 1 0
      examples/js/curves/NURBSCurve.js
  69. 1 0
      examples/js/curves/NURBSSurface.js
  70. 1 0
      examples/js/curves/NURBSUtils.js
  71. 1 0
      examples/js/effects/AnaglyphEffect.js
  72. 1 0
      examples/js/effects/AsciiEffect.js
  73. 1 0
      examples/js/effects/OutlineEffect.js
  74. 1 0
      examples/js/effects/ParallaxBarrierEffect.js
  75. 1 0
      examples/js/effects/PeppersGhostEffect.js
  76. 1 0
      examples/js/effects/StereoEffect.js
  77. 1 0
      examples/js/exporters/ColladaExporter.js
  78. 1 0
      examples/js/exporters/DracoExporter.js
  79. 17 3
      examples/js/exporters/GLTFExporter.js
  80. 1 0
      examples/js/exporters/MMDExporter.js
  81. 1 0
      examples/js/exporters/OBJExporter.js
  82. 1 0
      examples/js/exporters/PLYExporter.js
  83. 1 0
      examples/js/exporters/STLExporter.js
  84. 1 0
      examples/js/exporters/TypedGeometryExporter.js
  85. 1 0
      examples/js/geometries/BoxLineGeometry.js
  86. 1 0
      examples/js/geometries/ConvexGeometry.js
  87. 1 0
      examples/js/geometries/DecalGeometry.js
  88. 1 0
      examples/js/geometries/LightningStrike.js
  89. 1 0
      examples/js/geometries/ParametricGeometries.js
  90. 1 0
      examples/js/geometries/TeapotBufferGeometry.js
  91. 16 3
      examples/js/interactive/SelectionBox.js
  92. 1 0
      examples/js/interactive/SelectionHelper.js
  93. 1 0
      examples/js/lights/LightProbeGenerator.js
  94. 1 0
      examples/js/lights/RectAreaLightUniformsLib.js
  95. 1 0
      examples/js/lines/Line2.js
  96. 1 0
      examples/js/lines/LineGeometry.js
  97. 1 0
      examples/js/lines/LineMaterial.js
  98. 1 0
      examples/js/lines/LineSegments2.js
  99. 1 0
      examples/js/lines/LineSegmentsGeometry.js
  100. 1 0
      examples/js/lines/Wireframe.js

File diff suppressed because it is too large
+ 51 - 37
build/three.js


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


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


+ 1 - 1
docs/api/en/audio/AudioContext.html

@@ -29,7 +29,7 @@
 		otherwise set it to a new [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].
 		</p>
 
-		<h3>[method:AudioContext setContext]( [param:AudioConetxt value] )</h3>
+		<h3>[method:AudioContext setContext]( [param:AudioContext value] )</h3>
 		<p>
 		 Set the variable *context* in the outer scope to *value*.
 		</p>

+ 13 - 16
docs/api/en/cameras/CubeCamera.html

@@ -16,12 +16,16 @@
 
 		<h2>Code Example</h2>
 
-		<code>// Create cube camera
-		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
+		<code>
+		// Create cube render target
+		var cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+
+		// Create cube camera
+		var cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
 		scene.add( cubeCamera );
 
 		// Create car
-		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget.texture } );
+		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
 		var car = new Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
@@ -45,36 +49,29 @@
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [param:Number near], [param:Number far], [param:Number cubeResolution], [param:Object options] )</h3>
+		<h3>[name]( [param:Number near], [param:Number far], [param:WebGLCubeRenderTarget renderTarget] )</h3>
 		<p>
 		near -- The near clipping distance. <br />
-		far -- The far clipping distance <br />
-		cubeResolution -- Sets the length of the cube's edges. <br />
-		options - (optional) object that holds texture parameters passed to the auto-generated WebGLCubeRenderTarget.
-		If not specified, the options default to:
-		<code>
-		{ format: RGBFormat, magFilter: LinearFilter, minFilter: LinearFilter }
-		</code>
-
+		far -- The far clipping distance. <br />
+		renderTarget -- The destination cube render target.
 		</p>
+
 		<p>
 		Constructs a CubeCamera that contains 6 [page:PerspectiveCamera PerspectiveCameras] that
 		render to a [page:WebGLCubeRenderTarget].
 		</p>
 
-
 		<h2>Properties</h2>
 		<p>See the base [page:Object3D] class for common properties.</p>
 
 		<h3>[property:WebGLCubeRenderTarget renderTarget]</h3>
 		<p>
-		The cube texture that gets generated.
+		The destination cube render target.
 		</p>
 
 		<h2>Methods</h2>
 		<p>See the base [page:Object3D] class for common methods.</p>
 
-
 		<h3>[method:null update]( [param:WebGLRenderer renderer], [param:Scene scene] )</h3>
 		<p>
 		renderer -- The current WebGL renderer <br />
@@ -86,7 +83,7 @@
 
 		<h3>[method:null clear]( [param:WebGLRenderer renderer], [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )</h3>
 		<p>
-		Call this to clear the [page:CubeCamera.renderTarget renderTarget] color, depth, and/or stencil buffers.
+		Call this to clear the renderTarget's color, depth, and/or stencil buffers.
 		The color buffer is set to the renderer's current clear color. Arguments default to *true*.
 		</p>
 

+ 2 - 2
docs/api/en/core/InstancedBufferGeometry.html

@@ -24,9 +24,9 @@
 		<h2>Properties</h2>
 		<p>See [page:BufferGeometry] for inherited properties.</p>
 
-		<h3>[property:Number maxInstancedCount]</h3>
+		<h3>[property:Number instanceCount]</h3>
 		<p>
-			Default is *undefined*.
+			Default is *Infinity*.
 		</p>
 
 		<h2>Methods</h2>

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

@@ -45,6 +45,11 @@
 			How many values make up each item.
 		</p>
 
+		<h3>[property:String name]</h3>
+		<p>
+		Optional name for this attribute instance. Default is an empty string.
+		</p>
+
 		<h3>[property:Integer offset]</h3>
 		<p>
 			The offset in the underlying array buffer where an item starts.

+ 2 - 0
docs/api/en/extras/curves/CatmullRomCurve3.html

@@ -72,6 +72,8 @@
 		<h2>Methods</h2>
 		<p>See the base [page:Curve] class for common methods.</p>
 
+		<h2>Source</h2>
+
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		</p>

+ 81 - 5
docs/api/en/extras/objects/ImmediateRenderObject.html

@@ -12,27 +12,103 @@
 
 		<h1>[name]</h1>
 
-		<p class="desc">base class for immediate rendering objects.</p>
+		<p class="desc">
+			This experimental class provides a fast code path for rendering meshes with frequently updated
+			geometry data. When the renderer encounters an instance of [name], it only takes care about
+			the most primitive rendering operations (e.g. binding vertex attributes, determining correct shader
+			program or perfoming the actual draw call). Features like view frustum culling, wireframe rendering
+			or using multiple materials are not supported. Besides [name] can only be used to render triangles.
+		</p>
+
+		<p class="desc">
+			[name] does not work with instances of [page:BufferGeometry] or [page:Geometry]. The
+			raw geometry data have to be maintained as properties of the [name].
+		</p>
+
+		<p class="desc">
+			Using [name] makes only sense if you are updating your geometry data per frame. You can then
+			benefit of a faster code path compared to the default mesh redering logic.
+		</p>
 
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_marchingcubes Marching Cubes]
+		</p>
 
 		<h2>Constructor</h2>
 
 
-		<h3>[name]()</h3>
+		<h3>[name]( [param:Material material] )</h3>
 		<p>
-		This creates a new [name].
+		[page:Material material] — The material of the [name].
 		</p>
 
+		<h2>Properties</h2>
+		<p>See the base [page:Object3D] class for common properties.</p>
+
+		<h3>[property:Boolean material]</h3>
+		<p>
+			The material of the [name]. Assigning multiple materials is not supported.
+		</p>
+
+		<h3>[property:Boolean hasPositions]</h3>
+		<p>
+			Whether position data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasNormals]</h3>
+		<p>
+			Whether normal data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasColors]</h3>
+		<p>
+			Whether color data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasUvs]</h3>
+		<p>
+			Whether texture coordinates are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Float32Array positionArray]</h3>
+		<p>
+			The buffer holding position data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array normalArray]</h3>
+		<p>
+			The buffer holding normal data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array colorArray]</h3>
+		<p>
+			The buffer holding color data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array uvArray]</h3>
+		<p>
+			The buffer holding texture coordinates. Default is *null*.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The number of primitives to be rendered. Default is *0*.
+			This property will be set to *0* after each rendering so you usually
+			set it in the implementatio of [page:.render]().
+		</p>
 
 		<h2>Methods</h2>
 
+		<p>See the base [page:Object3D] class for common methods.</p>
 
 		<h3>[method:null render]([param:Function renderCallback])</h3>
 		<p>
-		renderCallback -- A function to render the generated object.
+		renderCallback -- A function to render the generated geometry data.
 		</p>
 		<p>
-		This function needs to be overridden to start the creation of the object and should call renderCallback when finished.
+		This method needs to be implemented by the deriving class of [name]. You normally want to implement the
+		vertex buffer update logic and execute *renderCallback* at the end of your implementation.
 		</p>
 
 		<h2>Source</h2>

+ 70 - 0
docs/api/en/lights/LightProbe.html

@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Light probes are an alternative way of adding light to a 3D scene. Unlike classical light sources (e.g. directional,
+			point or spot lights), light probes do not emit light. Instead they store information about light passing through
+			3D space. During rendering, the light that hits a 3D object is approximated by using the data from the light probe.
+		</p>
+
+		<p class="desc">
+			Light probes are usually created from (radiance) environment maps. The class [page:LightProbeGenerator] can
+			be used to create light probes from instances of [page:CubeTexture] or [page:WebGLCubeRenderTarget].
+			However, light estimation data could also be provided in other forms e.g. by WebXR. This enables the rendering
+			of augmented reality content that reacts to real world lighting.
+		</p>
+
+		<p class="desc">
+			The current probe implementation in three.js supports so-called diffuse light probes. This type of light probe
+			is functionally equivalent to an irradiance environment map.
+		</p>
+
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_lightprobe WebGL / light probe ]<br />
+			[example:webgl_lightprobe_cubecamera WebGL / light probe / cube camera ]
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:SphericalHarmonics3 sh], [param:Float intensity] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - (optional) An instance of [page:SphericalHarmonics3].<br />
+		[page:Float intensity] - (optional) Numeric value of the light probe's intensity. Default is 1.<br /><br />
+
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+		<p>
+				See the base [page:Light Light] class for common properties. The [page:Light.color color] property is currently
+				not evaluated and thus has no effect.
+		</p>
+
+		<h3>[property:SphericalHarmonics3 sh]</h3>
+		<p>
+			A light probe uses spherical harmonics to encode lighting information.
+		</p>
+
+		<h2>Methods</h2>
+		<p>
+				See the base [page:Light Light] class for common methods.
+		</p>
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 0 - 10
docs/api/en/loaders/FileLoader.html

@@ -69,9 +69,6 @@
 			See [page:.setMimeType]. Default is *undefined*.
 		</p>
 
-		<h3>[property:Object requestHeader]</h3>
-		<p>The [link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header request header] used in HTTP request. See [page:.setRequestHeader]. Default is *undefined*.</p>
-
 		<h3>[property:String responseType]</h3>
 		<p>The expected response type. See [page:.setResponseType]. Default is *undefined*.</p>
 
@@ -102,13 +99,6 @@
 			of the file being loaded. Note that in many cases this will be determined automatically, so by default it is *undefined*.
 		</p>
 
-		<h3>[method:FileLoader setRequestHeader]( [param:Object requestHeader] )</h3>
-		<p>
-			[page:object requestHeader] - key: The name of the header whose value is to be set. value: The value to set as the body of the header.<br /><br />
-
-			Set the [link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header request header] used in HTTP request.
-		</p>
-
 		<h3>[method:FileLoader setResponseType]( [param:String responseType] )</h3>
 		<p>
 			Change the response type. Valid values are:<br />

+ 12 - 0
docs/api/en/loaders/Loader.html

@@ -50,6 +50,11 @@
 			Default is the empty string.
 		</p>
 
+		<h3>[property:Object requestHeader]</h3>
+		<p>
+			The [link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header request header] used in HTTP request. See [page:.setRequestHeader]. Default is empty object.
+		</p>
+
 		<h2>Methods</h2>
 
 		<h3>[method:void load]()</h3>
@@ -89,6 +94,13 @@
 			[page:String resourcePath] — Set the base path for dependent resources like textures.
 		</p>
 
+		<h3>[method:Loader setRequestHeader]( [param:Object requestHeader] )</h3>
+		<p>
+			[page:object requestHeader] - key: The name of the header whose value is to be set. value: The value to set as the body of the header.<br /><br />
+
+			Set the [link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header request header] used in HTTP request.
+		</p>
+
 		<h2>Source</h2>
 
 		<p>

+ 0 - 1
docs/api/en/loaders/ObjectLoader.html

@@ -55,7 +55,6 @@
 		<h2>Examples</h2>
 
 		<p>
-			[example:webgl_loader_json_claraio WebGL / loader / json / claraio]<br />
 			[example:webgl_materials_lightmap WebGL / materials / lightmap]
 		</p>
 

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

@@ -88,6 +88,8 @@
 			property and it is ignored by the [page:WebGLRenderer WebGL] renderer.
 		</p>
 
+		<h3>[property:Boolean morphTargets]</h3>
+		<p>Define whether the material uses morphTargets. Default is false.</p>
 
 		<h2>Methods</h2>
 		<p>See the base [page:Material] class for common methods.</p>

+ 1 - 4
docs/api/en/math/Matrix4.html

@@ -125,10 +125,7 @@ m.elements = [ 11, 21, 31, 41,
 		<h3>[method:this compose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )</h3>
 		<p>
 		Sets this matrix to the transformation composed of [page:Vector3 position],
-		[page:Quaternion quaternion] and [page:Vector3 scale]. Internally this calls
-		[page:.makeRotationFromQuaternion makeRotationFromQuaternion]( [page:Quaternion quaternion] )
-		followed by [page:.scale scale]( [page:Vector3 scale] ), then finally
-		[page:.setPosition setPosition]( [page:Vector3 position] ).
+		[page:Quaternion quaternion] and [page:Vector3 scale].
 		</p>
 
 		<h3>[method:this copy]( [param:Matrix4 m] )</h3>

+ 138 - 0
docs/api/en/math/SphericalHarmonics3.html

@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">Represents a third-order spherical harmonics (SH). Light probes use this class to encode lighting information.</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]()</h3>
+		<p>
+		Creates a new instance of [name].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array coefficients]</h3>
+		<p>An array holding the (9) SH coefficients. A single coefficient is represented as an instance of [page:Vector3].</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:SphericalHarmonics3 add]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to add.<br /><br />
+
+			Adds the given SH to this instance.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 addScaledSH]( [param:SphericalHarmonics3 sh], [param:Number scale] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to add.<br />
+			[page:Number scale] - The scale factor.<br /><br />
+
+			A convenience method for performing [page:.add]() and [page:.scale]() at once.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 clone]()</h3>
+		<p>
+			Returns a new instance of [name] with equal coefficients.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 copy]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to copy.<br /><br />
+
+			Copies the given SH to this instance.
+		</p>
+
+		<h3>[method:Boolean equals]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to compare with.<br /><br />
+
+			Returns true if the given SH and this instance have equal coefficients.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 fromArray]( [param:Array array], [param:Number offset] )</h3>
+		<p>
+			[page:Array array] - The array holding the numbers of the SH coefficients.<br />
+			[page:Number offset] - (optional) The array offset.<br /><br />
+
+			Sets the coefficients of this instance from the given array.
+		</p>
+
+		<h3>[method:Vector3 getAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
+			[page:Vector3 target] - The result vector.<br /><br />
+
+			Returns the radiance in the direction of the given normal.
+		</p>
+
+		<h3>[method:Vector3 getIrradianceAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
+			[page:Vector3 target] - The result vector.<br /><br />
+
+			Returns the irradiance (radiance convolved with cosine lobe) in the direction of the given normal.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 lerp]( [param:SphericalHarmonics3 sh], [param:Number alpha] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to interpolate with.<br />
+			[page:Number alpha] - The alpha factor.<br /><br />
+
+			Linear interpolates between the given SH and this instance by the given alpha factor.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 scale]( [param:Number scale] )</h3>
+		<p>
+			[page:Number sh] - The scale factor.<br /><br />
+
+			Scales this SH by the given scale factor.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 set]( [param:Array coefficients] )</h3>
+		<p>
+			[page:Array coefficients] - An array of SH coefficients.<br /><br />
+
+			Sets the given SH coefficients to this instance.
+		</p>
+
+		<h3>[method:Array toArray]( [param:Array array], [param:Number offset] )</h3>
+		<p>
+			[page:Array array] - (optional) The target array.<br />
+			[page:Number offset] - (optional) The array offset.<br /><br />
+
+			Returns an array with the coefficients, or copies them into the provided array. The coefficients
+			are represented as numbers.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 zero]()</h3>
+		<p>
+			Sets all SH coefficients to 0.
+		</p>
+
+		<h2>Static Methods</h2>
+
+		<h3>[method:void getBasisAt]( [param:Vector3 normal], [param:Array shBasis] )</h3>
+		<p>
+			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
+			[page:Array shBasis] - The resulting SH basis.<br /><br />
+
+			Computes the SH basis for the given normal vector.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 16 - 0
docs/api/en/objects/Line.html

@@ -60,6 +60,17 @@
 		<h3>[property:Material material]</h3>
 		<p>Material for the line.</p>
 
+		<h3>[property:Array morphTargetInfluences]</h3>
+		<p>
+		An array of weights typically from 0-1 that specify how much of the morph is applied.
+		Undefined by default, but reset to a blank array by [page:.updateMorphTargets]().
+		</p>
+
+		<h3>[property:Object morphTargetDictionary]</h3>
+		<p>
+		A dictionary of morphTargets based on the morphTarget.name property.
+		Undefined by default, but rebuilt [page:.updateMorphTargets]().
+		</p>
 
 		<h2>Methods</h2>
 		<p>See the base [page:Object3D] class for common methods.</p>
@@ -80,6 +91,11 @@
 		Returns a clone of this Line object and its descendants.
 		</p>
 
+		<h3>[method:null updateMorphTargets]()</h3>
+		<p>
+		Updates the morphTargets to have no influence on the object. Resets the
+		[page:.morphTargetInfluences] and [page:.morphTargetDictionary] properties.
+		</p>
 
 		<h2>Source</h2>
 

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

@@ -29,7 +29,7 @@
 		否则创建一个新的[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].
 		</p>
 
-		<h3>[method:AudioContext setContext]( [param:AudioConetxt value] )</h3>
+		<h3>[method:AudioContext setContext]( [param:AudioContext value] )</h3>
 		<p>
 		 外部用来设置 *context* 的值.
 		</p>

+ 10 - 8
docs/api/zh/cameras/CubeCamera.html

@@ -17,12 +17,16 @@
 
 		<h2>代码示例</h2>
 
-		<code>// Create cube camera
-		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
+		<code>
+		// Create cube render target
+		var cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+
+		// Create cube camera
+		var cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
 		scene.add( cubeCamera );
 
 		// Create car
-		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget.texture } );
+		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
 		var car = new Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
@@ -40,7 +44,6 @@
 
 		<p>
 			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
-			[example:webgl_materials_cubemap_dynamic2 materials / cubemap / dynamic2 ]<br />
 			[example:webgl_shading_physical shading / physical ]
 		</p>
 
@@ -48,12 +51,12 @@
 
 
 
-		<h3>[name]( [param:Number near], [param:Number far], [param:Number cubeResolution] )</h3>
+		<h3>[name]( [param:Number near], [param:Number far], [param:WebGLCubeRenderTarget renderTarget] )</h3>
 		<p>
 
 		near -- 近剪切面的距离<br />
 		far -- 远剪切面的距离<br />
-		cubeResolution -- 设置立方体边缘的长度
+		renderTarget -- The destination cube render target.
 		</p>
 		<p>
 			构造一个包含6个[page:PerspectiveCamera PerspectiveCameras](透视摄像机)的立方摄像机,并将其拍摄的场景渲染到一个[page:WebGLCubeRenderTarget]上。
@@ -66,8 +69,7 @@
 
 		<h3>[property:WebGLCubeRenderTarget renderTarget]</h3>
 		<p>
-			生成的立方体纹理<br>
-			(译注:生成的立方体纹理保存在其中的.texture对象中,可作为贴图赋值给其他材质)
+			The destination cube render target.
 		</p>
 
 		<h2>方法</h2>

+ 2 - 2
docs/api/zh/core/InstancedBufferGeometry.html

@@ -24,9 +24,9 @@
 		<h2>属性</h2>
 		<p>继承属性详见 [page:BufferGeometry]。</p>
 
-		<h3>[property:Number maxInstancedCount]</h3>
+		<h3>[property:Number instanceCount]</h3>
 		<p>
-			默认值是 *undefined*。
+			默认值是 *Infinity*。
 		</p>
 
 		<h2>方法</h2>

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

@@ -44,6 +44,11 @@
 			队列中每个矢量有多少个元素构成。
 		</p>
 
+		<h3>[property:String name]</h3>
+		<p>
+		Optional name for this attribute instance. Default is an empty string.
+		</p>
+
 		<h3>[property:Integer offset]</h3>
 		<p>
 			缓存队列中每个元素的起始位置的偏移量。

+ 2 - 0
docs/api/zh/extras/curves/CatmullRomCurve3.html

@@ -73,6 +73,8 @@
 		<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>

+ 80 - 5
docs/api/zh/extras/objects/ImmediateRenderObject.html

@@ -12,27 +12,102 @@
 
 		<h1>即时渲染对象([name])</h1>
 
-		<p class="desc">即时渲染对象的基类。</p>
+		<p class="desc">
+			This experimental class provides a fast code path for rendering meshes with frequently updated
+			geometry data. When the renderer encounters an instance of [name], it only takes care about
+			the most primitive rendering operations (e.g. binding vertex attributes, determining correct shader
+			program or perfoming the actual draw call). Features like view frustum culling, wireframe rendering
+			or using multiple materials are not supported. Besides [name] can only be used to render triangles.
+		</p>
 
+		<p class="desc">
+			[name] does not work with instances of [page:BufferGeometry] or [page:Geometry]. The
+			raw geometry data have to be maintained as properties of the [name].
+		</p>
+
+		<p class="desc">
+			Using [name] makes only sense if you are updating your geometry data per frame. You can then
+			benefit of a faster code path compared to the default mesh redering logic.
+		</p>
+
+		<h2>例子</h2>
+		<p>
+			[example:webgl_marchingcubes Marching Cubes]
+		</p>
 
 		<h2>构造函数(Constructor)</h2>
 
+		<h3>[name]( [param:Material material] )</h3>
+		<p>
+		[page:Material material] — The material of the [name].
+		</p>
+
+		<h2>Properties</h2>
+		<p>See the base [page:Object3D] class for common properties.</p>
+
+		<h3>[property:Boolean material]</h3>
+		<p>
+			The material of the [name]. Assigning multiple materials is not supported.
+		</p>
+
+		<h3>[property:Boolean hasPositions]</h3>
+		<p>
+			Whether position data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasNormals]</h3>
+		<p>
+			Whether normal data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasColors]</h3>
+		<p>
+			Whether color data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasUvs]</h3>
+		<p>
+			Whether texture coordinates are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Float32Array positionArray]</h3>
+		<p>
+			The buffer holding position data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array normalArray]</h3>
+		<p>
+			The buffer holding normal data. Default is *null*.
+		</p>
 
-		<h3>[name]()</h3>
+		<h3>[property:Float32Array colorArray]</h3>
 		<p>
-			这会创建一个新的 [name]。
+			The buffer holding color data. Default is *null*.
 		</p>
 
+		<h3>[property:Float32Array uvArray]</h3>
+		<p>
+			The buffer holding texture coordinates. Default is *null*.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The number of primitives to be rendered. Default is *0*.
+			This property will be set to *0* after each rendering so you usually
+			set it in the implementatio of [page:.render]().
+		</p>
 
 		<h2>方法(Methods)</h2>
 
+		<p>See the base [page:Object3D] class for common methods.</p>
 
 		<h3>[method:null render]([param:Function renderCallback])</h3>
 		<p>
-		renderCallback -- 生成对象的渲染函数。
+		renderCallback -- A function to render the generated geometry data.
 		</p>
 		<p>
-		需要重写此函数以开始创建对象,并在完成时调用renderCallback。
+		This method needs to be implemented by the deriving class of [name]. You normally want to implement the
+		vertex buffer update logic and execute *renderCallback* at the end of your implementation.
 		</p>
 
 		<h2>源码(Source)</h2>

+ 70 - 0
docs/api/zh/lights/LightProbe.html

@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Light probes are an alternative way of adding light to a 3D scene. Unlike classical light sources (e.g. directional,
+			point or spot lights), light probes do not emit light. Instead they store information about light passing through
+			3D space. During rendering, the light that hits a 3D object is approximated by using the data from the light probe.
+		</p>
+
+		<p class="desc">
+			Light probes are usually created from (radiance) environment maps. The class [page:LightProbeGenerator] can
+			be used to create light probes from instances of [page:CubeTexture] or [page:WebGLCubeRenderTarget].
+			However, light estimation data could also be provided in other forms e.g. by WebXR. This enables the rendering
+			of augmented reality content that reacts to real world lighting.
+		</p>
+
+		<p class="desc">
+			The current probe implementation in three.js supports so-called diffuse light probes. This type of light probe
+			is functionally equivalent to an irradiance environment map.
+		</p>
+
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_lightprobe WebGL / light probe ]<br />
+			[example:webgl_lightprobe_cubecamera WebGL / light probe / cube camera ]
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:SphericalHarmonics3 sh], [param:Float intensity] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - (optional) An instance of [page:SphericalHarmonics3].<br />
+		[page:Float intensity] - (optional) Numeric value of the light probe's intensity. Default is 1.<br /><br />
+
+		Creates a new [name].
+		</p>
+
+		<h2>Properties</h2>
+		<p>
+				See the base [page:Light Light] class for common properties. The [page:Light.color color] property is currently
+				not evaluated and thus has no effect.
+		</p>
+
+		<h3>[property:SphericalHarmonics3 sh]</h3>
+		<p>
+			A light probe uses spherical harmonics to encode lighting information.
+		</p>
+
+		<h2>Methods</h2>
+		<p>
+				See the base [page:Light Light] class for common methods.
+		</p>
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 0 - 1
docs/api/zh/loaders/ObjectLoader.html

@@ -55,7 +55,6 @@
 		<h2>例子</h2>
 
 		<p>
-			[example:webgl_loader_json_claraio WebGL / loader / json / claraio]<br />
 			[example:webgl_materials_lightmap WebGL / materials / lightmap]
 		</p>
 

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

@@ -77,6 +77,8 @@
 			并且会被[page:WebGLRenderer WebGL]渲染器忽略。
 		</p>
 
+		<h3>[property:Boolean morphTargets]</h3>
+		<p>Define whether the material uses morphTargets. Default is false.</p>
 
 		<h2>方法(Methods)</h2>
 		<p>共有方法请参见其基类[page:Material]。</p>

+ 0 - 2
docs/api/zh/math/Matrix4.html

@@ -117,8 +117,6 @@ m.elements = [ 11, 21, 31, 41,
 		<h3>[method:this compose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )</h3>
 		<p>
 		设置将该对象由位置[page:Vector3 position],四元数[page:Quaternion quaternion] 和 缩放[page:Vector3 scale]
-		组合变换的矩阵。内部先调用[page:.makeRotationFromQuaternion makeRotationFromQuaternion]( [page:Quaternion quaternion] )
-		再调用缩放[page:.scale scale]( [page:Vector3 scale] )最后是平移[page:.setPosition setPosition]( [page:Vector3 position] )。
 		</p>
 
 		<h3>[method:this copy]( [param:Matrix4 m] )</h3>

+ 138 - 0
docs/api/zh/math/SphericalHarmonics3.html

@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html lang="zh">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">Represents a third-order spherical harmonics (SH). Light probes use this class to encode lighting information.</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]()</h3>
+		<p>
+		Creates a new instance of [name].
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Array coefficients]</h3>
+		<p>An array holding the (9) SH coefficients. A single coefficient is represented as an instance of [page:Vector3].</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:SphericalHarmonics3 add]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to add.<br /><br />
+
+			Adds the given SH to this instance.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 addScaledSH]( [param:SphericalHarmonics3 sh], [param:Number scale] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to add.<br />
+			[page:Number scale] - The scale factor.<br /><br />
+
+			A convenience method for performing [page:.add]() and [page:.scale]() at once.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 clone]()</h3>
+		<p>
+			Returns a new instance of [name] with equal coefficients.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 copy]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to copy.<br /><br />
+
+			Copies the given SH to this instance.
+		</p>
+
+		<h3>[method:Boolean equals]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to compare with.<br /><br />
+
+			Returns true if the given SH and this instance have equal coefficients.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 fromArray]( [param:Array array], [param:Number offset] )</h3>
+		<p>
+			[page:Array array] - The array holding the numbers of the SH coefficients.<br />
+			[page:Number offset] - (optional) The array offset.<br /><br />
+
+			Sets the coefficients of this instance from the given array.
+		</p>
+
+		<h3>[method:Vector3 getAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
+			[page:Vector3 target] - The result vector.<br /><br />
+
+			Returns the radiance in the direction of the given normal.
+		</p>
+
+		<h3>[method:Vector3 getIrradianceAt]( [param:Vector3 normal], [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
+			[page:Vector3 target] - The result vector.<br /><br />
+
+			Returns the irradiance (radiance convolved with cosine lobe) in the direction of the given normal.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 lerp]( [param:SphericalHarmonics3 sh], [param:Number alpha] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - The SH to interpolate with.<br />
+			[page:Number alpha] - The alpha factor.<br /><br />
+
+			Linear interpolates between the given SH and this instance by the given alpha factor.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 scale]( [param:Number scale] )</h3>
+		<p>
+			[page:Number sh] - The scale factor.<br /><br />
+
+			Scales this SH by the given scale factor.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 set]( [param:Array coefficients] )</h3>
+		<p>
+			[page:Array coefficients] - An array of SH coefficients.<br /><br />
+
+			Sets the given SH coefficients to this instance.
+		</p>
+
+		<h3>[method:Array toArray]( [param:Array array], [param:Number offset] )</h3>
+		<p>
+			[page:Array array] - (optional) The target array.<br />
+			[page:Number offset] - (optional) The array offset.<br /><br />
+
+			Returns an array with the coefficients, or copies them into the provided array. The coefficients
+			are represented as numbers.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 zero]()</h3>
+		<p>
+			Sets all SH coefficients to 0.
+		</p>
+
+		<h2>Static Methods</h2>
+
+		<h3>[method:void getBasisAt]( [param:Vector3 normal], [param:Array shBasis] )</h3>
+		<p>
+			[page:Vector3 normal] - The normal vector (assumed to be unit length).<br />
+			[page:Array shBasis] - The resulting SH basis.<br /><br />
+
+			Computes the SH basis for the given normal vector.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 16 - 0
docs/api/zh/objects/Line.html

@@ -57,6 +57,17 @@
 		<h3>[property:Material material]</h3>
 		<p>线的材质。</p>
 
+		<h3>[property:Array morphTargetInfluences]</h3>
+		<p>
+		An array of weights typically from 0-1 that specify how much of the morph is applied.
+		Undefined by default, but reset to a blank array by [page:.updateMorphTargets]().
+		</p>
+
+		<h3>[property:Object morphTargetDictionary]</h3>
+		<p>
+		A dictionary of morphTargets based on the morphTarget.name property.
+		Undefined by default, but rebuilt [page:.updateMorphTargets]().
+		</p>
 
 		<h2>方法</h2>
 		<p>共有方法请参见其基类 [page:Object3D]。</p>
@@ -78,6 +89,11 @@
 			返回这条线及其子集的一个克隆对象。
 		</p>
 
+		<h3>[method:null updateMorphTargets]()</h3>
+		<p>
+		Updates the morphTargets to have no influence on the object. Resets the
+		[page:.morphTargetInfluences] and [page:.morphTargetDictionary] properties.
+		</p>
 
 		<h2>源代码</h2>
 

+ 16 - 0
docs/examples/en/controls/OrbitControls.html

@@ -60,6 +60,22 @@
 			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
 		</p>
 
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires when the camera has been transformed by the controls.
+		</p>
+
+		<h3>start</h3>
+		<p>
+			Fires when an interaction was initiated.
+		</p>
+
+		<h3>end</h3>
+		<p>
+			Fires when an interaction has finished.
+		</p>
 
 		<h2>Properties</h2>
 

+ 46 - 0
docs/examples/en/lights/LightProbeGenerator.html

@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Utility class for creating instances of [page:LightProbe].
+		</p>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_lightprobe WebGL / light probe ]<br />
+			[example:webgl_lightprobe_cubecamera WebGL / light probe / cube camera ]
+		</p>
+
+		<h2>Static Methods</h2>
+
+		<h3>[method:LightProbe fromCubeTexture] ( [param:CubeTexture cubeTexture] )</h3>
+		<p>
+			Creates a light probe from the given (radiance) environment map. The method expects that the environment map is represented as a cube texture.
+		</p>
+
+		<h3>[method:LightProbe fromCubeRenderTarget] ( [param:WebGLRenderer renderer], [param:WebGLCubeRenderTarget cubeRenderTarget] )</h3>
+		<p>
+			Creates a light probe from the given (radiance) environment map. The method expects that the environment map is represented as a cube render target.
+		</p>
+		<p>
+			The [page:Texture.format format] of the cube render target must be set to *RGBA*.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/lights/LightProbeGenerator.js examples/jsm/lights/LightProbeGenerator.js]
+		</p>
+	</body>
+</html>

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

@@ -15,7 +15,7 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:Group createMultiMaterialObject]( [param:InstancedMesh instancedMesh] )</h3>
+		<h3>[method:Group createMeshesFromInstancedMesh]( [param:InstancedMesh instancedMesh] )</h3>
 		<p>
 		instancedMesh -- The instanced mesh.
 		</p>

+ 16 - 0
docs/examples/zh/controls/OrbitControls.html

@@ -60,6 +60,22 @@
 			[page:HTMLDOMElement domElement]: The HTML element used for event listeners.
 		</p>
 
+		<h2>Events</h2>
+
+		<h3>change</h3>
+		<p>
+			Fires when the camera has been transformed by the controls.
+		</p>
+
+		<h3>start</h3>
+		<p>
+			Fires when an interaction was initiated.
+		</p>
+
+		<h3>end</h3>
+		<p>
+			Fires when an interaction has finished.
+		</p>
 
 		<h2>Properties</h2>
 

+ 46 - 0
docs/examples/zh/lights/LightProbeGenerator.html

@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			Utility class for creating instances of [page:LightProbe].
+		</p>
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_lightprobe WebGL / light probe ]<br />
+			[example:webgl_lightprobe_cubecamera WebGL / light probe / cube camera ]
+		</p>
+
+		<h2>Static Methods</h2>
+
+		<h3>[method:LightProbe fromCubeTexture] ( [param:CubeTexture cubeTexture] )</h3>
+		<p>
+			Creates a light probe from the given (radiance) environment map. The method expects that the environment map is represented as a cube texture.
+		</p>
+
+		<h3>[method:LightProbe fromCubeRenderTarget] ( [param:WebGLRenderer renderer], [param:WebGLCubeRenderTarget cubeRenderTarget] )</h3>
+		<p>
+			Creates a light probe from the given (radiance) environment map. The method expects that the environment map is represented as a cube render target.
+		</p>
+		<p>
+			The [page:Texture.format format] of the cube render target must be set to *RGBA*.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/lights/LightProbeGenerator.js examples/jsm/lights/LightProbeGenerator.js]
+		</p>
+	</body>
+</html>

+ 8 - 1
docs/examples/zh/utils/SceneUtils.html

@@ -15,7 +15,14 @@
 
 		<h2>Methods</h2>
 
-
+		<h3>[method:Group createMeshesFromInstancedMesh]( [param:InstancedMesh instancedMesh] )</h3>
+		<p>
+		instancedMesh -- The instanced mesh.
+		</p>
+		<p>
+		Creates a new group object that contains a new mesh for each instance of the given instanced mesh.
+		</p>
+		
 		<h3>[method:Group createMultiMaterialObject]( [param:Geometry geometry], [param:Array materials] )</h3>
 		<p>
 		geometry -- The geometry for the set of materials. <br />

+ 12 - 0
docs/list.js

@@ -205,6 +205,7 @@ var list = {
 				"DirectionalLight": "api/en/lights/DirectionalLight",
 				"HemisphereLight": "api/en/lights/HemisphereLight",
 				"Light": "api/en/lights/Light",
+				"LightProbe": "api/en/lights/LightProbe",
 				"PointLight": "api/en/lights/PointLight",
 				"RectAreaLight": "api/en/lights/RectAreaLight",
 				"SpotLight": "api/en/lights/SpotLight"
@@ -279,6 +280,7 @@ var list = {
 				"Ray": "api/en/math/Ray",
 				"Sphere": "api/en/math/Sphere",
 				"Spherical": "api/en/math/Spherical",
+				"SphericalHarmonics3": "api/en/math/SphericalHarmonics3",
 				"Triangle": "api/en/math/Triangle",
 				"Vector2": "api/en/math/Vector2",
 				"Vector3": "api/en/math/Vector3",
@@ -378,6 +380,10 @@ var list = {
 				"VertexTangentsHelper": "examples/en/helpers/VertexTangentsHelper"
 			},
 
+			"Lights": {
+				"LightProbeGenerator": "examples/en/lights/LightProbeGenerator"
+			},
+
 			"Loaders": {
 				"BasisTextureLoader": "examples/en/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/en/loaders/DRACOLoader",
@@ -657,6 +663,7 @@ var list = {
 				"DirectionalLight": "api/zh/lights/DirectionalLight",
 				"HemisphereLight": "api/zh/lights/HemisphereLight",
 				"Light": "api/zh/lights/Light",
+				"LightProbe": "api/zh/lights/LightProbe",
 				"PointLight": "api/zh/lights/PointLight",
 				"RectAreaLight": "api/zh/lights/RectAreaLight",
 				"SpotLight": "api/zh/lights/SpotLight"
@@ -731,6 +738,7 @@ var list = {
 				"Ray": "api/zh/math/Ray",
 				"Sphere": "api/zh/math/Sphere",
 				"Spherical": "api/zh/math/Spherical",
+				"SphericalHarmonics3": "api/zh/math/SphericalHarmonics3",
 				"Triangle": "api/zh/math/Triangle",
 				"Vector2": "api/zh/math/Vector2",
 				"Vector3": "api/zh/math/Vector3",
@@ -821,6 +829,10 @@ var list = {
 				"DecalGeometry": "examples/zh/geometries/DecalGeometry"
 			},
 
+			"灯光": {
+				"LightProbeGenerator": "examples/zh/lights/LightProbeGenerator"
+			},
+
 			"辅助对象": {
 				"FaceNormalsHelper": "examples/zh/helpers/FaceNormalsHelper",
 				"LightProbeHelper": "examples/zh/helpers/LightProbeHelper",

+ 1 - 1
docs/manual/en/introduction/Animation-system.html

@@ -24,7 +24,7 @@
 
 			To achieve all this in one homogeneous system, the three.js animation system
 			[link:https://github.com/mrdoob/three.js/issues/6881 has completely changed in 2015]
-			(be aware of outdated information!), and it has now an architecture similar to
+			(beware of outdated information!), and it has now an architecture similar to
 			Unity/Unreal Engine 4. This page gives a short overview of the main components of the
 			system and how they work together.
 

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

@@ -133,7 +133,7 @@
 				&lt;script src="js/three.js"&gt;&lt;/script&gt;
 				&lt;script&gt;
 					var scene = new THREE.Scene();
-					var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
+					var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 
 					var renderer = new THREE.WebGLRenderer();
 					renderer.setSize( window.innerWidth, window.innerHeight );

+ 2 - 2
docs/manual/en/introduction/How-to-use-post-processing.html

@@ -14,7 +14,7 @@
 			Many three.js applications render their 3D objects directly to the screen. Sometimes, however, you want to apply one or more graphical
 			effects like Depth-Of-Field, Bloom, Film Grain or various types of Anti-aliasing. Post-processing is a widely used approach
 			to implement such effects. First, the scene is rendered to a render target which represents a buffer in the video card's memory.
-			In the next step one ore more post-processing passes apply filters and effects to the image buffer before it is eventually rendered to
+			In the next step one or more post-processing passes apply filters and effects to the image buffer before it is eventually rendered to
 			the screen.
 		</p>
 		<p>
@@ -24,7 +24,7 @@
 		<h2>Workflow</h2>
 
 		<p>
-			The first step in the process is to import all necessary files from the examples directory. The guide assumes your are using the official
+			The first step in the process is to import all necessary files from the examples directory. The guide assumes you are using the official
 			[link:https://www.npmjs.com/package/three npm package] of three.js. For our basic demo in this guide we need the following files.
 		</p>
 

+ 2 - 2
docs/manual/en/introduction/Import-via-modules.html

@@ -66,8 +66,8 @@
 		<p>
 			The core of three.js is focused on the most important components of a 3D engine. Many other components like loaders or controls are part of the
 			examples directory. three.js ensures that these files are kept in sync with the core but users have to import them separately if they are required
-			for a project. You can find in the [link:https://github.com/mrdoob/three.js/tree/master/examples/jsm examples/jsm] directory an ES6
-			module version for almost all example files. If you install three.js via npm, you can import them like so:
+			for a project. You can find them in the [link:https://github.com/mrdoob/three.js/tree/master/examples/jsm examples/jsm] directory. If you install three.js
+			via npm, import example files like so:
 		</p>
 		<code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';

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

@@ -81,19 +81,10 @@
 
 	<p>
 		Only a few loaders (e.g. [page:ObjectLoader]) are included by default with
-		three.js — others should be added to your page individually. Depending on your
-		preference and comfort with build tools, choose one of the following:
+		three.js — others should be added to your app individually.
 	</p>
 
 	<code>
-		// global script
-		&lt;script src="GLTFLoader.js"&gt;&lt;/script&gt;
-
-		// commonjs
-		var THREE = window.THREE = require('three');
-		require('three/examples/js/loaders/GLTFLoader');
-
-		// ES modules
 		import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
 	</code>
 

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

@@ -13,7 +13,7 @@
 		<p class="desc">
 			The following is a collection of links that you might find useful when learning three.js.<br />
 			If you find something that you'd like to add here, or think that one of the links below is no longer
-			relevant or working, feel free to click the 'edit' button in the top right and make some changes!<br /><br />
+			relevant or working, feel free to click the 'edit' button in the bottom right and make some changes!<br /><br />
 
 			Note also that as three.js is under rapid development, a lot of these links will contain information that is
 			out of date - if something isn't working as you'd expect or as one of these links says it should,

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

@@ -134,7 +134,7 @@
 				&lt;script src="js/three.js"&gt;&lt;/script&gt;
 				&lt;script&gt;
 					var scene = new THREE.Scene();
-					var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
+					var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 
 					var renderer = new THREE.WebGLRenderer();
 					renderer.setSize( window.innerWidth, window.innerHeight );

+ 4 - 4
docs/manual/zh/introduction/Import-via-modules.html

@@ -64,10 +64,10 @@
 
 		<h2>可引入的示例</h2>
 		<p>
-			three.js的核心专注于实现3D引擎中最为重要的组件。其他诸如加载器和控制器等组件,是示例文件夹中的一部分。
-			three.js确保这些文件能够与核心保持同步,但如果在一个项目中这些组件是必要的,用户将必须分别地引入它们。
-			你可以在[link:https://github.com/mrdoob/three.js/tree/master/examples/jsm examples/jsm]文件夹中找到所有示例文件的ES6版本。
-			如果你是通过npm来安装three.js的,那么你可以使用类似下面的代码来引入它们:
+			The core of three.js is focused on the most important components of a 3D engine. Many other components like loaders or controls are part of the
+			examples directory. three.js ensures that these files are kept in sync with the core but users have to import them separately if they are required
+			for a project. You can find them in the [link:https://github.com/mrdoob/three.js/tree/master/examples/jsm examples/jsm] directory. If you install three.js
+			via npm, import example files like so:
 		</p>
 		<code>
 		import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';

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

@@ -70,19 +70,11 @@
 	<h2>加载</h2>
 
 	<p>
-		three.js中默认仅包含了几个加载器(例如:[page:ObjectLoader])——其它加载器需要你分别地添加到页面中。
-		取决于你对构建工具的偏好,选择以下任意一种方式:
+		Only a few loaders (e.g. [page:ObjectLoader]) are included by default with
+		three.js — others should be added to your app individually.
 	</p>
 
 	<code>
-		// global script
-		&lt;script src="GLTFLoader.js"&gt;&lt;/script&gt;
-
-		// commonjs
-		var THREE = window.THREE = require('three');
-		require('three/examples/js/loaders/GLTFLoader');
-
-		// ES modules
 		import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
 	</code>
 

+ 0 - 2
editor/css/main.css

@@ -424,7 +424,6 @@ select {
 #toolbar {
 	position: absolute;
 	left: calc(50% - 290px); /* ( ( 100% - 300px ) / 2.0 ) - 140px */
-	width: 280px;
 	bottom: 16px;
 	height: 32px;
 	background: #eee;
@@ -540,7 +539,6 @@ select {
 
 	#toolbar {
 		left: calc(50% - 140px);
-		width: 280px;
 		top: 68px;
 	}
 

+ 5 - 1
editor/js/Sidebar.Project.js

@@ -209,12 +209,14 @@ var SidebarProject = function ( editor ) {
 			shadowsBoolean.getValue(),
 			shadowTypeSelect.getValue(),
 			toneMappingSelect.getValue(),
+			toneMappingExposure.getValue(),
+			toneMappingWhitePoint.getValue(),
 			physicallyCorrectLightsBoolean.getValue()
 		);
 
 	}
 
-	function createRenderer( antialias, shadows, shadowType, toneMapping, physicallyCorrectLights ) {
+	function createRenderer( antialias, shadows, shadowType, toneMapping, toneMappingExposure, toneMappingWhitePoint, physicallyCorrectLights ) {
 
 		var parameters = { antialias: antialias };
 
@@ -238,6 +240,8 @@ var SidebarProject = function ( editor ) {
 		}
 
 		currentRenderer.toneMapping = parseFloat( toneMapping );
+		currentRenderer.toneMappingExposure = toneMappingExposure;
+		currentRenderer.toneMappingWhitePoint = toneMappingWhitePoint;
 		currentRenderer.physicallyCorrectLights = physicallyCorrectLights;
 
 		signals.rendererChanged.dispatch( currentRenderer, currentPmremGenerator );

+ 1 - 1
editor/sw.js

@@ -1,4 +1,4 @@
-// r116
+// r117
 
 const assets = [
 	'./',

+ 1 - 1
examples/css3d_molecules.html

@@ -118,7 +118,7 @@
 			function init() {
 
 				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 5000 );
-				camera.position.z = 1500;
+				camera.position.z = 1000;
 
 				scene = new THREE.Scene();
 

+ 99 - 6
examples/files.js

@@ -93,7 +93,6 @@ var files = {
 		"webgl_loader_gltf",
 		"webgl_loader_gltf_extensions",
 		"webgl_loader_imagebitmap",
-		"webgl_loader_json_claraio",
 		"webgl_loader_kmz",
 		"webgl_loader_ldraw",
 		"webgl_loader_lwo",
@@ -194,7 +193,6 @@ var files = {
 		"webgl_multiple_views",
 		"webgl_nearestneighbour",
 		"webgl_panorama_cube",
-		"webgl_panorama_dualfisheye",
 		"webgl_panorama_equirectangular",
 		"webgl_performance",
 		"webgl_performance_doublesided",
@@ -298,6 +296,7 @@ var files = {
 		"webgl_custom_attributes_points3",
 		"webgl_fire",
 		"webgl_gpgpu_birds",
+		"webgl_gpgpu_birds_gltf",
 		"webgl_gpgpu_water",
 		"webgl_gpgpu_protoplanet",
 		"webgl_instancing_modified",
@@ -393,12 +392,106 @@ var files = {
 };
 
 var tags = {
-	"webgl_clipping_intersection": [ "csg", "solid" ],
-	"webgl_fire": [ "smoke" ],
-	"webgl_materials_translucency": [ "subsurface", "scattering" ],
+	"webgl_animation_cloth": [ "physics", "integration" ],
+	"webgl_clipping": [ "solid" ],
+	"webgl_clipping_advanced": [ "solid" ],
+	"webgl_clipping_intersection": [ "solid" ],
+	"webgl_clipping_stencil": [ "solid" ],
+	"webgl_decals": [ "normals" ],
+	"webgl_depth_texture": [ "renderTarget" ],
+	"webgl_framebuffer_texture": [ "renderTarget" ],
+	"webgl_geometry_colors_lookuptable": [ "vertex" ],
+	"webgl_geometry_hierarchy": [ "group" ],
+	"webgl_geometry_hierarchy2": [ "scene graph" ],
+	"webgl_geometry_minecraft_ao": [ "ambient occlusion" ],
+	"webgl_geometry_nurbs": [ "curve", "surface" ],
+	"webgl_geometry_spline_editor": [ "curve" ],
+	"webgl_geometry_text": [ "font" ],
+	"webgl_geometry_text_shapes": [ "font" ],
+	"webgl_geometry_text_stroke": [ "font" ],
+	"webgl_helpers": [ "normals", "tangents", "bounding box" ],
+	"webgl_instancing_performance": [ "batching", "merging" ],
+	"webgl_interactive_buffergeometry": [ "raycast", "outline" ],
+	"webgl_interactive_cubes": [ "raycast", "highlinght" ],
+	"webgl_interactive_cubes_gpu": [ "raycast", "highlight" ],
+	"webgl_interactive_cubes_ortho": [ "raycast", "highlight" ],
+	"webgl_interactive_lines": [ "raycast" ],
+	"webgl_interactive_points": [ "raycast" ],
+	"webgl_interactive_raycasting_points": [ "raycast" ],
+	"webgl_interactive_voxelpainter": [ "raycast" ],
+	"webgl_layers": [ "groups" ],
+	"webgl_lights_hemisphere": [ "directional" ],
+	"webgl_lights_pointlights": [ "multiple" ],
+	"webgl_loader_ttf": [ "text", "font" ],
+	"webgl_loader_pdb": [ "molecules" ],
+	"webgl_lod": [ "level", "details" ],
+	"webgl_materials_blending": [ "alpha" ],
+	"webgl_materials_blending_custom": [ "alpha" ],
+	"webgl_materials_channels": [ "normal", "depth", "rgba packing" ],
+	"webgl_materials_cubemap_mipmaps": [ "envmap" ],
+	"webgl_materials_envmaps_parallax": [ "onBeforeCompile" ],
+	"webgl_materials_lightmap": [ "shadows" ],
+	"webgl_materials_physical_clearcoat": [ "anisotropy" ],
+	"webgl_materials_physical_transparency": [ "alpha" ],
+	"webgl_materials_shaders_fresnel": [ "refraction" ],
+	"webgl_materials_standard": [ "pbr" ],
+	"webgl_materials_texture_canvas": [ "paint" ],
+	"webgl_materials_texture_filters": [ "mipmap", "min", "mag" ],
+	"webgl_materials_texture_manualmipmap": [ "mipmap", "min", "mag" ],
+	"webgl_materials_subsurface_scattering": [ "derivatives", "translucency" ],
+	"webgl_materials_wireframe": [ "derivatives" ],
+	"webgl_math_obb": [ "intersection", "bounding" ],
+	"webgl_math_orientation_transform": [ "rotation" ],
+	"webgl_mirror": [ "reflection" ],
+	"webgl_morphtargets_horse": [ "animation" ],
+	"webgl_multiple_elements": [ "differential equations", "physics" ],
+	"webgl_multiple_elements_text": [ "font" ],
+	"webgl_nearestneighbour": [ "kdtree" ],
+	"webgl_panorama_cube": [ "envmap" ],
+	"webgl_panorama_equirectangular": [ "envmap" ],
+	"webgl_points_billboards": [ "particles" ],
+	"webgl_points_dynamic": [ "particles" ],
+	"webgl_points_sprites": [ "particles", "snow" ],
+	"webgl_points_waves": [ "particles" ],
+	"webgl_read_float_buffer": [ "texture" ],
+	"webgl_refraction": [ "water" ],
+	"webgl_rtt": [ "renderTarget", "texture" ],
+	"webgl_shaders_ocean": [ "water" ],
+	"webgl_shaders_ocean2": [ "water" ],
+	"webgl_shaders_sky": [ "sun" ],
+	"webgl_shaders_tonemapping": [ "hrd" ],
+	"webgl_shaders_vector": [ "font" ],
+	"webgl_shading_physical": [ "pbr" ],
+	"webgl_shadow_contact": [ "onBeforeCompile", "soft" ],
+	"webgl_shadowmap_viewer": [ "directional", "spot" ],
+	"webgl_skinning_simple": [ "animation" ],
+	"webgl_tonemapping": [ "gltf" ],
+	"webgl_loader_nodes": [ "caustics", "displace", "xray" ],
+	"webgl_postprocessing_afterimage": [ "trails" ],
+	"webgl_postprocessing_dof": [ "bokeh" ],
+	"webgl_postprocessing_dof2": [ "bokeh" ],
+	"webgl_postprocessing_fxaa": [ "msaa", "multisampled" ],
+	"webgl_postprocessing_godrays": [ "light scattering" ],
+	"webgl_postprocessing_ssaa": [ "msaa", "multisampled" ],
+	"webgl_postprocessing_ssaa_unbiased": [ "msaa", "multisampled" ],
+	"webgl_postprocessing_sao": [ "ambient occlusion" ],
+	"webgl_postprocessing_smaa": [ "msaa", "multisampled" ],
+	"webgl_postprocessing_sobel": [ "filter", "edge detection" ],
+	"webgl_postprocessing_ssao": [ "ambient occlusion" ],
 	"webgl_postprocessing_unreal_bloom": [ "glow" ],
 	"webgl_postprocessing_unreal_bloom_selective": [ "glow" ],
+	"webgl_fire": [ "smoke" ],
+	"webgl_materials_modified": [ "onBeforeCompile" ],
 	"webgl_shadowmap_csm": [ "cascade" ],
 	"webgl_shadowmap_pcss": [ "soft" ],
-	"webgl_simple_gi": [ "global", "illumination" ]
+	"webgl_simple_gi": [ "global illumination" ],
+	"webgl_tiled_forward": [ "derivatives" ],
+	"webgl2_multisampled_renderbuffers": [ "msaa" ],
+	"physics_ammo_cloth": [ "integration" ],
+	"misc_controls_deviceorientation": [ "accelerometer", "sensors" ],
+	"misc_controls_drag": [ "translate" ],
+	"misc_controls_map": [ "drag" ],
+	"misc_controls_orbit": [ "rotation" ],
+	"misc_controls_trackball": [ "rotation" ],
+	"misc_controls_transform": [ "scale", "rotate", "translate" ]
 };

+ 29 - 16
examples/index.html

@@ -6,11 +6,6 @@
 		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
 		<link rel="shortcut icon" href="../files/favicon.ico" />
 		<link rel="stylesheet" type="text/css" href="../files/main.css">
-		<style>
-			#panel #content .link {
-				display: block;
-			}
-		</style>
 	</head>
 	<body>
 		<script type="text/javascript">
@@ -123,13 +118,13 @@
 
 			// Events
 
-			filterInput.onfocus = function ( event ) {
+			filterInput.onfocus = function ( ) {
 
 				panel.classList.add( 'searchFocused' );
 
 			};
 
-			filterInput.onblur = function ( event ) {
+			filterInput.onblur = function ( ) {
 
 				if ( filterInput.value === '' ) {
 
@@ -139,7 +134,7 @@
 
 			};
 
-			exitSearchButton.onclick = function ( event ) {
+			exitSearchButton.onclick = function ( ) {
 
 				filterInput.value = '';
 				updateFilter();
@@ -182,12 +177,21 @@
 
 		function createLink( file ) {
 
-			var link = document.createElement( 'a' );
-			link.className = 'link';
-			link.href = file + '.html';
-			link.textContent = getName( file );
-			link.setAttribute( 'target', 'viewer' );
-			link.addEventListener( 'click', function ( event ) {
+
+			var template = [
+				'<div class="card">',
+				'	<a href="' + file + '.html" target="viewer">',
+				'		<div class="cover">',
+				'			<img src="screenshots/' + file + '.jpg" loading="lazy" width="400" />',
+				'		</div>',
+				'		<div class="title">' + getName( file ) + '</div>',
+				'	</a>',
+				'</div>'
+			].join( "\n" );
+
+			var link = createElementFromHTML( template );
+
+			link.querySelector( 'a[target="viewer"]' ).addEventListener( 'click', function ( event ) {
 
 				if ( event.button !== 0 || event.ctrlKey || event.altKey || event.metaKey ) return;
 
@@ -276,12 +280,12 @@
 
 				}
 
-				link.innerHTML = text;
+				link.querySelector( '.title' ).innerHTML = text;
 
 			} else {
 
 				link.classList.add( 'hidden' );
-				link.innerHTML = name;
+				link.querySelector( '.title' ).innerHTML = name;
 
 			}
 
@@ -346,6 +350,15 @@
 
 		}
 
+
+		function createElementFromHTML( htmlString ) {
+
+			var div = document.createElement( 'div' );
+			div.innerHTML = htmlString.trim();
+			return div.firstChild;
+
+		}
+
 		</script>
 
 	</body>

+ 1 - 0
examples/js/WebGL.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.WebGL: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author alteredq / http://alteredqualia.com/
  * @author mrdoob / http://mrdoob.com/

+ 1 - 0
examples/js/animation/AnimationClipCreator.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.AnimationClipCreator: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  *
  * Creator of typical test AnimationClips / KeyframeTracks

+ 1 - 0
examples/js/animation/CCDIKSolver.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.CCDIKSolver: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author takahiro / https://github.com/takahirox
  *

+ 1 - 0
examples/js/animation/MMDAnimationHelper.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.MMDAnimationHelper: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author takahiro / https://github.com/takahirox
  *

+ 1 - 0
examples/js/animation/MMDPhysics.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.MMDPhysics: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author takahiro / https://github.com/takahirox
  *

+ 1 - 0
examples/js/animation/TimelinerController.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.TimelinerController: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * Controller class for the Timeliner GUI.
  *

+ 1 - 0
examples/js/cameras/CinematicCamera.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.CinematicCamera: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  * @author greggman / http://games.greggman.com/

+ 1 - 0
examples/js/controls/DeviceOrientationControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.DeviceOrientationControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author richt / http://richt.me
  * @author WestLangley / http://github.com/WestLangley

+ 3 - 0
examples/js/controls/DragControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.DragControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author zz85 / https://github.com/zz85
  * @author mrdoob / http://mrdoob.com
@@ -44,6 +45,8 @@ THREE.DragControls = function ( _objects, _camera, _domElement ) {
 		_domElement.removeEventListener( 'touchstart', onDocumentTouchStart, false );
 		_domElement.removeEventListener( 'touchend', onDocumentTouchEnd, false );
 
+		_domElement.style.cursor = '';
+
 	}
 
 	function dispose() {

+ 1 - 0
examples/js/controls/FirstPersonControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.FirstPersonControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  * @author alteredq / http://alteredqualia.com/

+ 1 - 0
examples/js/controls/FlyControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.FlyControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author James Baicoianu / http://www.baicoianu.com/
  */

+ 1 - 0
examples/js/controls/OrbitControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.OrbitControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author qiao / https://github.com/qiao
  * @author mrdoob / http://mrdoob.com

+ 1 - 0
examples/js/controls/PointerLockControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.PointerLockControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  * @author Mugen87 / https://github.com/Mugen87

+ 1 - 0
examples/js/controls/TrackballControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.TrackballControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author Eberhard Graether / http://egraether.com/
  * @author Mark Lundin 	/ http://mark-lundin.com

+ 2 - 1
examples/js/controls/TransformControls.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.TransformControls: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author arodic / https://github.com/arodic
  */
@@ -56,7 +57,7 @@ THREE.TransformControls = function ( camera, domElement ) {
 
 		var allIntersections = raycaster.intersectObject( object, true );
 
-		for ( var i = allIntersections.length; i --; ) {
+		for ( var i = 0; i < allIntersections.length; i ++ ) {
 
 			if ( allIntersections[ i ].object.visible || includeInvisible ) {
 

+ 1 - 0
examples/js/curves/CurveExtras.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.CurveExtras: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * A bunch of parametric curves
  * @author zz85

+ 1 - 0
examples/js/curves/NURBSCurve.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.NURBSCurve: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author renej
  * NURBS curve object

+ 1 - 0
examples/js/curves/NURBSSurface.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.NURBSSurface: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author renej
  * NURBS surface object

+ 1 - 0
examples/js/curves/NURBSUtils.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.NURBSUtils: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author renej
  * NURBS utils

+ 1 - 0
examples/js/effects/AnaglyphEffect.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.AnaglyphEffect: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  * @author marklundin / http://mark-lundin.com/

+ 1 - 0
examples/js/effects/AsciiEffect.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.AsciiEffect: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author zz85 / https://github.com/zz85
  *

+ 1 - 0
examples/js/effects/OutlineEffect.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.OutlineEffect: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author takahirox / http://github.com/takahirox/
  *

+ 1 - 0
examples/js/effects/ParallaxBarrierEffect.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.ParallaxBarrierEffect: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  * @author marklundin / http://mark-lundin.com/

+ 1 - 0
examples/js/effects/PeppersGhostEffect.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.PeppersGhostEffect: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * Created by tpowellmeto on 29/10/2015.
  *

+ 1 - 0
examples/js/effects/StereoEffect.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.StereoEffect: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author alteredq / http://alteredqualia.com/
  * @authod mrdoob / http://mrdoob.com/

+ 1 - 0
examples/js/exporters/ColladaExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.ColladaExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author Garrett Johnson / http://gkjohnson.github.io/
  * https://github.com/gkjohnson/collada-exporter-js

+ 1 - 0
examples/js/exporters/DracoExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.DRACOExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * Export draco compressed files from threejs geometry objects.
  *

+ 17 - 3
examples/js/exporters/GLTFExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.GLTFExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author fernandojsg / http://fernandojsg.com
  * @author Don McCurdy / https://www.donmccurdy.com
@@ -506,9 +507,22 @@ THREE.GLTFExporter.prototype = {
 
 				for ( var a = 0; a < attribute.itemSize; a ++ ) {
 
-					// @TODO Fails on InterleavedBufferAttribute, and could probably be
-					// optimized for normal BufferAttribute.
-					var value = attribute.array[ i * attribute.itemSize + a ];
+					var value;
+
+					if ( attribute.itemSize > 4 ) {
+
+						 // no support for interleaved data for itemSize > 4
+
+						value = attribute.array[ i * attribute.itemSize + a ];
+
+					} else {
+
+						if ( a === 0 ) value = attribute.getX( i );
+						else if ( a === 1 ) value = attribute.getY( i );
+						else if ( a === 2 ) value = attribute.getZ( i );
+						else if ( a === 3 ) value = attribute.getW( i );
+
+					}
 
 					if ( componentType === WEBGL_CONSTANTS.FLOAT ) {
 

+ 1 - 0
examples/js/exporters/MMDExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.MMDExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author takahiro / http://github.com/takahirox
  *

+ 1 - 0
examples/js/exporters/OBJExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.OBJExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  */

+ 1 - 0
examples/js/exporters/PLYExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.PLYExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author Garrett Johnson / http://gkjohnson.github.io/
  * https://github.com/gkjohnson/ply-exporter-js

+ 1 - 0
examples/js/exporters/STLExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.STLExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author kovacsv / http://kovacsv.hu/
  * @author mrdoob / http://mrdoob.com/

+ 1 - 0
examples/js/exporters/TypedGeometryExporter.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.TypedGeometryExporter: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  */

+ 1 - 0
examples/js/geometries/BoxLineGeometry.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.BoxLineGeometry: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author mrdoob / http://mrdoob.com/
  */

+ 1 - 0
examples/js/geometries/ConvexGeometry.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.ConvexGeometry: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author Mugen87 / https://github.com/Mugen87
  */

+ 1 - 0
examples/js/geometries/DecalGeometry.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.DecalGeometry: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author Mugen87 / https://github.com/Mugen87
  * @author spite / https://github.com/spite

+ 1 - 0
examples/js/geometries/LightningStrike.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.LightningStrike: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author yomboprime https://github.com/yomboprime
  *

+ 1 - 0
examples/js/geometries/ParametricGeometries.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.ParametricGeometries: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author zz85
  *

+ 1 - 0
examples/js/geometries/TeapotBufferGeometry.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.TeapotBufferGeometry: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author Eric Haines / http://erichaines.com/
  *

+ 16 - 3
examples/js/interactive/SelectionBox.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.SelectionBox: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author HypnosNova / https://www.threejs.org.cn/gallery
  * This is a class to check whether objects are in a selection area in 3D space
@@ -54,6 +55,20 @@ THREE.SelectionBox = ( function () {
 		startPoint = startPoint || this.startPoint;
 		endPoint = endPoint || this.endPoint;
 
+		// Avoid invalid frustum
+
+		if ( startPoint.x === endPoint.x ) {
+
+			endPoint.x += Number.EPSILON;
+
+		}
+
+		if ( startPoint.y === endPoint.y ) {
+
+			endPoint.y += Number.EPSILON;
+
+		}
+
 		this.camera.updateProjectionMatrix();
 		this.camera.updateMatrixWorld();
 
@@ -65,7 +80,7 @@ THREE.SelectionBox = ( function () {
 			endPoint.x = Math.max( startPoint.x, endPoint.x );
 			endPoint.y = Math.min( startPoint.y, endPoint.y );
 
-			vecNear.copy( this.camera.position );
+			vecNear.setFromMatrixPosition( this.camera.matrixWorld );
 			vecTopLeft.copy( tmpPoint );
 			vecTopRight.set( endPoint.x, tmpPoint.y, 0 );
 			vecDownRight.copy( endPoint );
@@ -102,8 +117,6 @@ THREE.SelectionBox = ( function () {
 
 		} else if ( this.camera.isOrthographicCamera ) {
 
-			if ( startPoint.equals( endPoint ) ) endPoint.addScalar( Number.EPSILON ); // avoid invalid frustum
-
 			var left = Math.min( startPoint.x, endPoint.x );
 			var top = Math.max( startPoint.y, endPoint.y );
 			var right = Math.max( startPoint.x, endPoint.x );

+ 1 - 0
examples/js/interactive/SelectionHelper.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.SelectionHelper: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author HypnosNova / https://www.threejs.org.cn/gallery
  */

+ 1 - 0
examples/js/lights/LightProbeGenerator.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.LightProbeGenerator: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  */

+ 1 - 0
examples/js/lights/RectAreaLightUniformsLib.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.RectAreaLightUniformsLib: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * Uniforms library for RectAreaLight shared webgl shaders
  * @author abelnation

+ 1 - 0
examples/js/lines/Line2.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.Line2: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  *

+ 1 - 0
examples/js/lines/LineGeometry.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.LineGeometry: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  *

+ 1 - 0
examples/js/lines/LineMaterial.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.LineMaterial: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  *

+ 1 - 0
examples/js/lines/LineSegments2.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.LineSegments2: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  *

+ 1 - 0
examples/js/lines/LineSegmentsGeometry.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.LineSegmentsGeometry: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  *

+ 1 - 0
examples/js/lines/Wireframe.js

@@ -1,3 +1,4 @@
+console.warn( "THREE.Wireframe: As part of the transition to ES6 Modules, the files in 'examples/js' were deprecated in May 2020 (r117) and will be deleted in December 2020 (r124). You can find more information about developing using ES6 Modules in https://threejs.org/docs/index.html#manual/en/introduction/Import-via-modules." );
 /**
  * @author WestLangley / http://github.com/WestLangley
  *

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