Browse Source

Merge remote-tracking branch 'mrdoob/dev' into csm-cascade-blend

# Conflicts:
#	examples/jsm/csm/CSM.js
Garrett Johnson 5 năm trước cách đây
mục cha
commit
dc3fe137c9
100 tập tin đã thay đổi với 742 bổ sung1601 xóa
  1. 7 11
      README.md
  2. 18 453
      build/three.js
  3. 493 502
      build/three.min.js
  4. 18 453
      build/three.module.js
  5. 1 1
      docs/api/en/animation/KeyframeTrack.html
  6. 3 3
      docs/api/en/cameras/StereoCamera.html
  7. 2 2
      docs/api/en/deprecated/DeprecatedList.html
  8. 1 1
      docs/api/en/lights/RectAreaLight.html
  9. 2 2
      docs/api/en/loaders/CompressedTextureLoader.html
  10. 1 1
      docs/api/en/loaders/DataTextureLoader.html
  11. 17 4
      docs/api/en/renderers/shaders/UniformsUtils.html
  12. 1 1
      docs/api/zh/animation/KeyframeTrack.html
  13. 3 3
      docs/api/zh/cameras/StereoCamera.html
  14. 3 3
      docs/api/zh/deprecated/DeprecatedList.html
  15. 1 1
      docs/api/zh/geometries/TorusKnotBufferGeometry.html
  16. 1 1
      docs/api/zh/lights/RectAreaLight.html
  17. 2 2
      docs/api/zh/loaders/CompressedTextureLoader.html
  18. 1 1
      docs/api/zh/loaders/DataTextureLoader.html
  19. 14 3
      docs/api/zh/renderers/shaders/UniformsUtils.html
  20. 2 2
      docs/examples/en/animations/CCDIKSolver.html
  21. 3 3
      docs/examples/en/animations/MMDAnimationHelper.html
  22. 3 3
      docs/examples/en/animations/MMDPhysics.html
  23. 6 6
      docs/examples/en/controls/DeviceOrientationControls.html
  24. 3 3
      docs/examples/en/controls/DragControls.html
  25. 1 1
      docs/examples/en/controls/FirstPersonControls.html
  26. 1 1
      docs/examples/en/controls/FlyControls.html
  27. 2 2
      docs/examples/en/controls/OrbitControls.html
  28. 1 1
      docs/examples/en/controls/PointerLockControls.html
  29. 1 1
      docs/examples/en/controls/TrackballControls.html
  30. 1 1
      docs/examples/en/controls/TransformControls.html
  31. 2 2
      docs/examples/en/exporters/ColladaExporter.html
  32. 2 2
      docs/examples/en/exporters/GLTFExporter.html
  33. 2 2
      docs/examples/en/exporters/PLYExporter.html
  34. 2 2
      docs/examples/en/geometries/ConvexBufferGeometry.html
  35. 2 2
      docs/examples/en/geometries/ConvexGeometry.html
  36. 2 2
      docs/examples/en/geometries/DecalGeometry.html
  37. 1 1
      docs/examples/en/helpers/FaceNormalsHelper.html
  38. 1 1
      docs/examples/en/helpers/RectAreaLightHelper.html
  39. 1 1
      docs/examples/en/helpers/VertexNormalsHelper.html
  40. 1 1
      docs/examples/en/helpers/VertexTangentsHelper.html
  41. 5 5
      docs/examples/en/loaders/BasisTextureLoader.html
  42. 3 3
      docs/examples/en/loaders/DRACOLoader.html
  43. 5 5
      docs/examples/en/loaders/GLTFLoader.html
  44. 2 2
      docs/examples/en/loaders/MMDLoader.html
  45. 1 1
      docs/examples/en/loaders/MTLLoader.html
  46. 2 2
      docs/examples/en/loaders/OBJLoader.html
  47. 1 1
      docs/examples/en/loaders/OBJLoader2.html
  48. 2 2
      docs/examples/en/loaders/PCDLoader.html
  49. 2 2
      docs/examples/en/loaders/PDBLoader.html
  50. 2 2
      docs/examples/en/loaders/PRWMLoader.html
  51. 2 2
      docs/examples/en/loaders/SVGLoader.html
  52. 2 2
      docs/examples/en/loaders/TGALoader.html
  53. 2 2
      docs/examples/en/math/Lut.html
  54. 2 2
      docs/examples/en/math/MeshSurfaceSampler.html
  55. 1 1
      docs/examples/en/math/convexhull/ConvexHull.html
  56. 1 1
      docs/examples/en/math/convexhull/Face.html
  57. 1 1
      docs/examples/en/math/convexhull/HalfEdge.html
  58. 1 1
      docs/examples/en/math/convexhull/VertexList.html
  59. 1 1
      docs/examples/en/math/convexhull/VertexNode.html
  60. 5 5
      docs/examples/en/objects/Lensflare.html
  61. 1 1
      docs/examples/en/postprocessing/EffectComposer.html
  62. 1 1
      docs/examples/en/renderers/CSS2DRenderer.html
  63. 1 1
      docs/examples/en/renderers/CSS3DRenderer.html
  64. 1 1
      docs/examples/en/renderers/SVGRenderer.html
  65. 1 1
      docs/examples/en/utils/BufferGeometryUtils.html
  66. 1 1
      docs/examples/en/utils/SceneUtils.html
  67. 1 1
      docs/examples/en/utils/SkeletonUtils.html
  68. 2 2
      docs/examples/zh/animations/CCDIKSolver.html
  69. 3 3
      docs/examples/zh/animations/MMDAnimationHelper.html
  70. 3 3
      docs/examples/zh/animations/MMDPhysics.html
  71. 1 1
      docs/examples/zh/controls/DeviceOrientationControls.html
  72. 2 2
      docs/examples/zh/controls/DragControls.html
  73. 1 1
      docs/examples/zh/controls/FirstPersonControls.html
  74. 1 1
      docs/examples/zh/controls/FlyControls.html
  75. 2 2
      docs/examples/zh/controls/OrbitControls.html
  76. 1 1
      docs/examples/zh/controls/PointerLockControls.html
  77. 1 1
      docs/examples/zh/controls/TrackballControls.html
  78. 1 1
      docs/examples/zh/controls/TransformControls.html
  79. 2 2
      docs/examples/zh/exporters/ColladaExporter.html
  80. 2 2
      docs/examples/zh/exporters/GLTFExporter.html
  81. 2 2
      docs/examples/zh/exporters/PLYExporter.html
  82. 2 2
      docs/examples/zh/geometries/ConvexBufferGeometry.html
  83. 2 2
      docs/examples/zh/geometries/ConvexGeometry.html
  84. 2 2
      docs/examples/zh/geometries/DecalGeometry.html
  85. 1 1
      docs/examples/zh/helpers/FaceNormalsHelper.html
  86. 1 1
      docs/examples/zh/helpers/RectAreaLightHelper.html
  87. 1 1
      docs/examples/zh/helpers/VertexNormalsHelper.html
  88. 1 1
      docs/examples/zh/helpers/VertexTangentsHelper.html
  89. 5 5
      docs/examples/zh/loaders/BasisTextureLoader.html
  90. 3 3
      docs/examples/zh/loaders/DRACOLoader.html
  91. 5 5
      docs/examples/zh/loaders/GLTFLoader.html
  92. 2 2
      docs/examples/zh/loaders/MMDLoader.html
  93. 1 1
      docs/examples/zh/loaders/MTLLoader.html
  94. 2 2
      docs/examples/zh/loaders/OBJLoader.html
  95. 1 1
      docs/examples/zh/loaders/OBJLoader2.html
  96. 2 2
      docs/examples/zh/loaders/PCDLoader.html
  97. 2 2
      docs/examples/zh/loaders/PDBLoader.html
  98. 2 2
      docs/examples/zh/loaders/PRWMLoader.html
  99. 2 2
      docs/examples/zh/loaders/SVGLoader.html
  100. 2 2
      docs/examples/zh/loaders/TGALoader.html

+ 7 - 11
README.md

@@ -1,10 +1,9 @@
 three.js
 ========
 
-[![NPM package][npm]][npm-url]
+[![NPM Package][npm]][npm-url]
 [![Build Size][build-size]][build-size-url]
-[![Build Status][build-status]][build-status-url]
-[![Dependencies][dependencies]][dependencies-url]
+[![NPM Downloads][npm-downloads]][npmtrends-url]
 [![Dev Dependencies][dev-dependencies]][dev-dependencies-url]
 [![Language Grade][lgtm]][lgtm-url]
 
@@ -18,7 +17,6 @@ The aim of the project is to create an easy to use, lightweight, 3D library with
 [Migrating](https://github.com/mrdoob/three.js/wiki/Migration-Guide) —
 [Questions](http://stackoverflow.com/questions/tagged/three.js) —
 [Forum](https://discourse.threejs.org/) —
-[Gitter](https://gitter.im/mrdoob/three.js) —
 [Slack](https://join.slack.com/t/threejs/shared_invite/enQtMzYxMzczODM2OTgxLTQ1YmY4YTQxOTFjNDAzYmQ4NjU2YzRhNzliY2RiNDEyYjU2MjhhODgyYWQ5Y2MyZTU3MWNkOGVmOGRhOTQzYTk)
 
 ### Usage ###
@@ -72,15 +70,13 @@ If everything went well you should see [this](https://jsfiddle.net/f2Lommf5/).
 [Releases](https://github.com/mrdoob/three.js/releases)
 
 
-[npm]: https://img.shields.io/npm/v/three.svg
+[npm]: https://img.shields.io/npm/v/three
 [npm-url]: https://www.npmjs.com/package/three
 [build-size]: https://badgen.net/bundlephobia/minzip/three
 [build-size-url]: https://bundlephobia.com/result?p=three
-[build-status]: https://travis-ci.org/mrdoob/three.js.svg?branch=dev
-[build-status-url]: https://travis-ci.org/mrdoob/three.js
-[dependencies]: https://img.shields.io/david/mrdoob/three.js.svg
-[dependencies-url]: https://david-dm.org/mrdoob/three.js
-[dev-dependencies]: https://img.shields.io/david/dev/mrdoob/three.js.svg
+[npm-downloads]: https://img.shields.io/npm/dw/three
+[npmtrends-url]: https://www.npmtrends.com/three
+[dev-dependencies]: https://img.shields.io/david/dev/mrdoob/three.js
 [dev-dependencies-url]: https://david-dm.org/mrdoob/three.js#info=devDependencies
-[lgtm]: https://img.shields.io/lgtm/grade/javascript/g/mrdoob/three.js.svg?label=code%20quality
+[lgtm]: https://img.shields.io/lgtm/alerts/github/mrdoob/three.js
 [lgtm-url]: https://lgtm.com/projects/g/mrdoob/three.js/

+ 18 - 453
build/three.js

@@ -6400,8 +6400,7 @@
 				_box.copy( geometry.boundingBox );
 				_box.applyMatrix4( object.matrixWorld );
 
-				this.expandByPoint( _box.min );
-				this.expandByPoint( _box.max );
+				this.union( _box );
 
 			}
 
@@ -17968,8 +17967,6 @@
 
 		var prefixVertex, prefixFragment;
 
-		var numMultiviewViews = parameters.numMultiviewViews;
-
 		if ( parameters.isRawShaderMaterial ) {
 
 			prefixVertex = [
@@ -18267,59 +18264,6 @@
 				'#define textureCubeGradEXT textureGrad'
 			].join( '\n' ) + '\n' + prefixFragment;
 
-			// Multiview
-
-			if ( numMultiviewViews > 0 ) {
-
-				prefixVertex = prefixVertex.replace(
-					'#version 300 es\n',
-					[
-						'#version 300 es\n',
-						'#extension GL_OVR_multiview2 : require',
-						'layout(num_views = ' + numMultiviewViews + ') in;',
-						'#define VIEW_ID gl_ViewID_OVR'
-					].join( '\n' )
-				);
-
-				prefixVertex = prefixVertex.replace(
-					[
-						'uniform mat4 modelViewMatrix;',
-						'uniform mat4 projectionMatrix;',
-						'uniform mat4 viewMatrix;',
-						'uniform mat3 normalMatrix;'
-					].join( '\n' ),
-					[
-						'uniform mat4 modelViewMatrices[' + numMultiviewViews + '];',
-						'uniform mat4 projectionMatrices[' + numMultiviewViews + '];',
-						'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
-						'uniform mat3 normalMatrices[' + numMultiviewViews + '];',
-
-						'#define modelViewMatrix modelViewMatrices[VIEW_ID]',
-						'#define projectionMatrix projectionMatrices[VIEW_ID]',
-						'#define viewMatrix viewMatrices[VIEW_ID]',
-						'#define normalMatrix normalMatrices[VIEW_ID]'
-					].join( '\n' )
-				);
-
-				prefixFragment = prefixFragment.replace(
-					'#version 300 es\n',
-					[
-						'#version 300 es\n',
-						'#extension GL_OVR_multiview2 : require',
-						'#define VIEW_ID gl_ViewID_OVR'
-					].join( '\n' )
-				);
-
-				prefixFragment = prefixFragment.replace(
-					'uniform mat4 viewMatrix;',
-					[
-						'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
-						'#define viewMatrix viewMatrices[VIEW_ID]'
-					].join( '\n' )
-				);
-
-			}
-
 		}
 
 		var vertexGlsl = prefixVertex + vertexShader;
@@ -18464,7 +18408,6 @@
 		this.program = program;
 		this.vertexShader = glVertexShader;
 		this.fragmentShader = glFragmentShader;
-		this.numMultiviewViews = numMultiviewViews;
 
 		return this;
 
@@ -18504,7 +18447,7 @@
 		};
 
 		var parameterNames = [
-			"precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing", "numMultiviewViews",
+			"precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing",
 			"map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding", "envMapCubeUV",
 			"lightMap", "lightMapEncoding", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "tangentSpaceNormalMap", "clearcoatNormalMap", "displacementMap", "specularMap",
 			"roughnessMap", "metalnessMap", "gradientMap",
@@ -18638,7 +18581,6 @@
 			material.onBeforeCompile( shaderobject, renderer );
 
 			var currentRenderTarget = renderer.getRenderTarget();
-			var numMultiviewViews = currentRenderTarget && currentRenderTarget.isWebGLMultiviewRenderTarget ? currentRenderTarget.numViews : 0;
 
 			var parameters = {
 
@@ -18660,7 +18602,6 @@
 				instancing: object.isInstancedMesh === true,
 
 				supportsVertexTextures: vertexTextures,
-				numMultiviewViews: numMultiviewViews,
 				outputEncoding: ( currentRenderTarget !== null ) ? getTextureEncodingFromMap( currentRenderTarget.texture ) : renderer.outputEncoding,
 				map: !! material.map,
 				mapEncoding: getTextureEncodingFromMap( material.map ),
@@ -21603,21 +21544,6 @@
 
 			}
 
-			if ( renderTarget.isWebGLMultiviewRenderTarget ) {
-
-				_gl.deleteTexture( renderTargetProperties.__webglColorTexture );
-				_gl.deleteTexture( renderTargetProperties.__webglDepthStencilTexture );
-
-				info.memory.textures -= 2;
-
-				for ( var i = 0, il = renderTargetProperties.__webglViewFramebuffers.length; i < il; i ++ ) {
-
-					_gl.deleteFramebuffer( renderTargetProperties.__webglViewFramebuffers[ i ] );
-
-				}
-
-			}
-
 			properties.remove( renderTarget.texture );
 			properties.remove( renderTarget );
 
@@ -22315,7 +22241,6 @@
 
 			var isCube = ( renderTarget.isWebGLCubeRenderTarget === true );
 			var isMultisample = ( renderTarget.isWebGLMultisampleRenderTarget === true );
-			var isMultiview = ( renderTarget.isWebGLMultiviewRenderTarget === true );
 			var supportsMips = isPowerOfTwo( renderTarget ) || isWebGL2;
 
 			// Setup framebuffer
@@ -22369,48 +22294,6 @@
 
 					}
 
-				} else if ( isMultiview ) {
-
-					var width = renderTarget.width;
-					var height = renderTarget.height;
-					var numViews = renderTarget.numViews;
-
-					_gl.bindFramebuffer( 36160, renderTargetProperties.__webglFramebuffer );
-
-					var ext = extensions.get( 'OVR_multiview2' );
-
-					info.memory.textures += 2;
-
-					var colorTexture = _gl.createTexture();
-					_gl.bindTexture( 35866, colorTexture );
-					_gl.texParameteri( 35866, 10240, 9728 );
-					_gl.texParameteri( 35866, 10241, 9728 );
-					_gl.texImage3D( 35866, 0, 32856, width, height, numViews, 0, 6408, 5121, null );
-					ext.framebufferTextureMultiviewOVR( 36160, 36064, colorTexture, 0, 0, numViews );
-
-					var depthStencilTexture = _gl.createTexture();
-					_gl.bindTexture( 35866, depthStencilTexture );
-					_gl.texParameteri( 35866, 10240, 9728 );
-					_gl.texParameteri( 35866, 10241, 9728 );
-					_gl.texImage3D( 35866, 0, 35056, width, height, numViews, 0, 34041, 34042, null );
-					ext.framebufferTextureMultiviewOVR( 36160, 33306, depthStencilTexture, 0, 0, numViews );
-
-					var viewFramebuffers = new Array( numViews );
-					for ( var i = 0; i < numViews; ++ i ) {
-
-						viewFramebuffers[ i ] = _gl.createFramebuffer();
-						_gl.bindFramebuffer( 36160, viewFramebuffers[ i ] );
-						_gl.framebufferTextureLayer( 36160, 36064, colorTexture, 0, i );
-
-					}
-
-					renderTargetProperties.__webglColorTexture = colorTexture;
-					renderTargetProperties.__webglDepthStencilTexture = depthStencilTexture;
-					renderTargetProperties.__webglViewFramebuffers = viewFramebuffers;
-
-					_gl.bindFramebuffer( 36160, null );
-					_gl.bindTexture( 35866, null );
-
 				}
 
 			}
@@ -22436,7 +22319,7 @@
 
 				state.bindTexture( 34067, null );
 
-			} else if ( ! isMultiview ) {
+			} else {
 
 				state.bindTexture( 3553, textureProperties.__webglTexture );
 				setTextureParameters( 3553, renderTarget.texture, supportsMips );
@@ -22783,271 +22666,6 @@
 
 	}
 
-	/**
-	 * @author fernandojsg / http://fernandojsg.com
-	 * @author Takahiro https://github.com/takahirox
-	 */
-
-	function WebGLMultiviewRenderTarget( width, height, numViews, options ) {
-
-		WebGLRenderTarget.call( this, width, height, options );
-
-		this.depthBuffer = false;
-		this.stencilBuffer = false;
-
-		this.numViews = numViews;
-
-	}
-
-	WebGLMultiviewRenderTarget.prototype = Object.assign( Object.create( WebGLRenderTarget.prototype ), {
-
-		constructor: WebGLMultiviewRenderTarget,
-
-		isWebGLMultiviewRenderTarget: true,
-
-		copy: function ( source ) {
-
-			WebGLRenderTarget.prototype.copy.call( this, source );
-
-			this.numViews = source.numViews;
-
-			return this;
-
-		},
-
-		setNumViews: function ( numViews ) {
-
-			if ( this.numViews !== numViews ) {
-
-				this.numViews = numViews;
-				this.dispose();
-
-			}
-
-			return this;
-
-		}
-
-	} );
-
-	/**
-	 * @author fernandojsg / http://fernandojsg.com
-	 * @author Takahiro https://github.com/takahirox
-	 */
-
-	function WebGLMultiview( renderer, gl ) {
-
-		var DEFAULT_NUMVIEWS = 2;
-
-		var extensions = renderer.extensions;
-		var properties = renderer.properties;
-
-		var renderTarget, currentRenderTarget;
-		var mat3, mat4, cameraArray, renderSize;
-
-		var available;
-		var maxNumViews = 0;
-
-		//
-
-		function isAvailable() {
-
-			if ( available === undefined ) {
-
-				var extension = extensions.get( 'OVR_multiview2' );
-
-				available = extension !== null && gl.getContextAttributes().antialias === false;
-
-				if ( available ) {
-
-					maxNumViews = gl.getParameter( extension.MAX_VIEWS_OVR );
-					renderTarget = new WebGLMultiviewRenderTarget( 0, 0, DEFAULT_NUMVIEWS );
-
-					renderSize = new Vector2();
-					mat4 = [];
-					mat3 = [];
-					cameraArray = [];
-
-					for ( var i = 0; i < maxNumViews; i ++ ) {
-
-						mat4[ i ] = new Matrix4();
-						mat3[ i ] = new Matrix3();
-
-					}
-
-				}
-
-			}
-
-			return available;
-
-		}
-
-		function getCameraArray( camera ) {
-
-			if ( camera.isArrayCamera ) { return camera.cameras; }
-
-			cameraArray[ 0 ] = camera;
-
-			return cameraArray;
-
-		}
-
-		function updateCameraProjectionMatricesUniform( camera, uniforms ) {
-
-			var cameras = getCameraArray( camera );
-
-			for ( var i = 0; i < cameras.length; i ++ ) {
-
-				mat4[ i ].copy( cameras[ i ].projectionMatrix );
-
-			}
-
-			uniforms.setValue( gl, 'projectionMatrices', mat4 );
-
-		}
-
-		function updateCameraViewMatricesUniform( camera, uniforms ) {
-
-			var cameras = getCameraArray( camera );
-
-			for ( var i = 0; i < cameras.length; i ++ ) {
-
-				mat4[ i ].copy( cameras[ i ].matrixWorldInverse );
-
-			}
-
-			uniforms.setValue( gl, 'viewMatrices', mat4 );
-
-		}
-
-		function updateObjectMatricesUniforms( object, camera, uniforms ) {
-
-			var cameras = getCameraArray( camera );
-
-			for ( var i = 0; i < cameras.length; i ++ ) {
-
-				mat4[ i ].multiplyMatrices( cameras[ i ].matrixWorldInverse, object.matrixWorld );
-				mat3[ i ].getNormalMatrix( mat4[ i ] );
-
-			}
-
-			uniforms.setValue( gl, 'modelViewMatrices', mat4 );
-			uniforms.setValue( gl, 'normalMatrices', mat3 );
-
-		}
-
-		function isMultiviewCompatible( camera ) {
-
-			if ( camera.isArrayCamera === undefined ) { return true; }
-
-			var cameras = camera.cameras;
-
-			if ( cameras.length > maxNumViews ) { return false; }
-
-			for ( var i = 1, il = cameras.length; i < il; i ++ ) {
-
-				if ( cameras[ 0 ].viewport.z !== cameras[ i ].viewport.z ||
-					cameras[ 0 ].viewport.w !== cameras[ i ].viewport.w ) { return false; }
-
-			}
-
-			return true;
-
-		}
-
-		function resizeRenderTarget( camera ) {
-
-			if ( currentRenderTarget ) {
-
-				renderSize.set( currentRenderTarget.width, currentRenderTarget.height );
-
-			} else {
-
-				renderer.getDrawingBufferSize( renderSize );
-
-			}
-
-			if ( camera.isArrayCamera ) {
-
-				var viewport = camera.cameras[ 0 ].viewport;
-
-				renderTarget.setSize( viewport.z, viewport.w );
-				renderTarget.setNumViews( camera.cameras.length );
-
-			} else {
-
-				renderTarget.setSize( renderSize.x, renderSize.y );
-				renderTarget.setNumViews( DEFAULT_NUMVIEWS );
-
-			}
-
-		}
-
-		function attachCamera( camera ) {
-
-			if ( isMultiviewCompatible( camera ) === false ) { return; }
-
-			currentRenderTarget = renderer.getRenderTarget();
-			resizeRenderTarget( camera );
-			renderer.setRenderTarget( renderTarget );
-
-		}
-
-		function detachCamera( camera ) {
-
-			if ( renderTarget !== renderer.getRenderTarget() ) { return; }
-
-			renderer.setRenderTarget( currentRenderTarget );
-
-			flush( camera );
-
-		}
-
-		function flush( camera ) {
-
-			var srcRenderTarget = renderTarget;
-			var numViews = srcRenderTarget.numViews;
-
-			var srcFramebuffers = properties.get( srcRenderTarget ).__webglViewFramebuffers;
-
-			var viewWidth = srcRenderTarget.width;
-			var viewHeight = srcRenderTarget.height;
-
-			if ( camera.isArrayCamera ) {
-
-				for ( var i = 0; i < numViews; i ++ ) {
-
-					var viewport = camera.cameras[ i ].viewport;
-
-					var x1 = viewport.x;
-					var y1 = viewport.y;
-					var x2 = x1 + viewport.z;
-					var y2 = y1 + viewport.w;
-
-					gl.bindFramebuffer( 36008, srcFramebuffers[ i ] );
-					gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728 );
-
-				}
-
-			} else {
-
-				gl.bindFramebuffer( 36008, srcFramebuffers[ 0 ] );
-				gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, 0, 0, renderSize.x, renderSize.y, 16384, 9728 );
-
-			}
-
-		}
-
-		this.isAvailable = isAvailable;
-		this.attachCamera = attachCamera;
-		this.detachCamera = detachCamera;
-		this.updateCameraProjectionMatricesUniform = updateCameraProjectionMatricesUniform;
-		this.updateCameraViewMatricesUniform = updateCameraViewMatricesUniform;
-		this.updateObjectMatricesUniforms = updateObjectMatricesUniforms;
-
-	}
-
 	/**
 	 * @author mrdoob / http://mrdoob.com/
 	 */
@@ -23891,10 +23509,6 @@
 
 		this.xr = xr;
 
-		// Multiview
-
-		var multiview = new WebGLMultiview( _this, _gl );
-
 		// shadow map
 
 		var shadowMap = new WebGLShadowMap( _this, objects, capabilities.maxTextureSize );
@@ -24792,12 +24406,6 @@
 
 			}
 
-			if ( xr.enabled && multiview.isAvailable() ) {
-
-				multiview.attachCamera( camera );
-
-			}
-
 			//
 
 			background.render( currentRenderList, scene, camera, forceClear );
@@ -24852,16 +24460,6 @@
 
 			state.setPolygonOffset( false );
 
-			if ( xr.enabled ) {
-
-				if ( multiview.isAvailable() ) {
-
-					multiview.detachCamera( camera );
-
-				}
-
-			}
-
 			// _gl.finish();
 
 			currentRenderList = null;
@@ -25009,27 +24607,19 @@
 
 					_currentArrayCamera = camera;
 
-					if ( xr.enabled && multiview.isAvailable() ) {
-
-						renderObject( object, scene, camera, geometry, material, group );
-
-					} else {
+					var cameras = camera.cameras;
 
-						var cameras = camera.cameras;
+					for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
 
-						for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
+						var camera2 = cameras[ j ];
 
-							var camera2 = cameras[ j ];
+						if ( object.layers.test( camera2.layers ) ) {
 
-							if ( object.layers.test( camera2.layers ) ) {
+							state.viewport( _currentViewport.copy( camera2.viewport ) );
 
-								state.viewport( _currentViewport.copy( camera2.viewport ) );
+							currentRenderState.setupLights( camera2 );
 
-								currentRenderState.setupLights( camera2 );
-
-								renderObject( object, scene, camera2, geometry, material, group );
-
-							}
+							renderObject( object, scene, camera2, geometry, material, group );
 
 						}
 
@@ -25311,15 +24901,7 @@
 
 			if ( refreshProgram || _currentCamera !== camera ) {
 
-				if ( program.numMultiviewViews > 0 ) {
-
-					multiview.updateCameraProjectionMatricesUniform( camera, p_uniforms );
-
-				} else {
-
-					p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
-
-				}
+				p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
 
 				if ( capabilities.logarithmicDepthBuffer ) {
 
@@ -25380,15 +24962,7 @@
 					material.isShaderMaterial ||
 					material.skinning ) {
 
-					if ( program.numMultiviewViews > 0 ) {
-
-						multiview.updateCameraViewMatricesUniform( camera, p_uniforms );
-
-					} else {
-
-						p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
-
-					}
+					p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
 
 				}
 
@@ -25593,17 +25167,8 @@
 
 			// common matrices
 
-			if ( program.numMultiviewViews > 0 ) {
-
-				multiview.updateObjectMatricesUniforms( object, camera, p_uniforms );
-
-			} else {
-
-				p_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );
-				p_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );
-
-			}
-
+			p_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );
+			p_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );
 			p_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );
 
 			return program;
@@ -50193,19 +49758,19 @@
 
 		createMultiMaterialObject: function ( /* geometry, materials */ ) {
 
-			console.error( 'THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js' );
+			console.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );
 
 		},
 
 		detach: function ( /* child, parent, scene */ ) {
 
-			console.error( 'THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js' );
+			console.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );
 
 		},
 
 		attach: function ( /* child, scene, parent */ ) {
 
-			console.error( 'THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js' );
+			console.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );
 
 		}
 
@@ -50215,7 +49780,7 @@
 
 	function LensFlare() {
 
-		console.error( 'THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js' );
+		console.error( 'THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js' );
 
 	}
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 493 - 502
build/three.min.js


+ 18 - 453
build/three.module.js

@@ -6394,8 +6394,7 @@ Object.assign( Box3.prototype, {
 			_box.copy( geometry.boundingBox );
 			_box.applyMatrix4( object.matrixWorld );
 
-			this.expandByPoint( _box.min );
-			this.expandByPoint( _box.max );
+			this.union( _box );
 
 		}
 
@@ -17955,8 +17954,6 @@ function WebGLProgram( renderer, cacheKey, parameters ) {
 
 	var prefixVertex, prefixFragment;
 
-	var numMultiviewViews = parameters.numMultiviewViews;
-
 	if ( parameters.isRawShaderMaterial ) {
 
 		prefixVertex = [
@@ -18254,59 +18251,6 @@ function WebGLProgram( renderer, cacheKey, parameters ) {
 			'#define textureCubeGradEXT textureGrad'
 		].join( '\n' ) + '\n' + prefixFragment;
 
-		// Multiview
-
-		if ( numMultiviewViews > 0 ) {
-
-			prefixVertex = prefixVertex.replace(
-				'#version 300 es\n',
-				[
-					'#version 300 es\n',
-					'#extension GL_OVR_multiview2 : require',
-					'layout(num_views = ' + numMultiviewViews + ') in;',
-					'#define VIEW_ID gl_ViewID_OVR'
-				].join( '\n' )
-			);
-
-			prefixVertex = prefixVertex.replace(
-				[
-					'uniform mat4 modelViewMatrix;',
-					'uniform mat4 projectionMatrix;',
-					'uniform mat4 viewMatrix;',
-					'uniform mat3 normalMatrix;'
-				].join( '\n' ),
-				[
-					'uniform mat4 modelViewMatrices[' + numMultiviewViews + '];',
-					'uniform mat4 projectionMatrices[' + numMultiviewViews + '];',
-					'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
-					'uniform mat3 normalMatrices[' + numMultiviewViews + '];',
-
-					'#define modelViewMatrix modelViewMatrices[VIEW_ID]',
-					'#define projectionMatrix projectionMatrices[VIEW_ID]',
-					'#define viewMatrix viewMatrices[VIEW_ID]',
-					'#define normalMatrix normalMatrices[VIEW_ID]'
-				].join( '\n' )
-			);
-
-			prefixFragment = prefixFragment.replace(
-				'#version 300 es\n',
-				[
-					'#version 300 es\n',
-					'#extension GL_OVR_multiview2 : require',
-					'#define VIEW_ID gl_ViewID_OVR'
-				].join( '\n' )
-			);
-
-			prefixFragment = prefixFragment.replace(
-				'uniform mat4 viewMatrix;',
-				[
-					'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
-					'#define viewMatrix viewMatrices[VIEW_ID]'
-				].join( '\n' )
-			);
-
-		}
-
 	}
 
 	var vertexGlsl = prefixVertex + vertexShader;
@@ -18451,7 +18395,6 @@ function WebGLProgram( renderer, cacheKey, parameters ) {
 	this.program = program;
 	this.vertexShader = glVertexShader;
 	this.fragmentShader = glFragmentShader;
-	this.numMultiviewViews = numMultiviewViews;
 
 	return this;
 
@@ -18491,7 +18434,7 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
 	};
 
 	var parameterNames = [
-		"precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing", "numMultiviewViews",
+		"precision", "isWebGL2", "supportsVertexTextures", "outputEncoding", "instancing",
 		"map", "mapEncoding", "matcap", "matcapEncoding", "envMap", "envMapMode", "envMapEncoding", "envMapCubeUV",
 		"lightMap", "lightMapEncoding", "aoMap", "emissiveMap", "emissiveMapEncoding", "bumpMap", "normalMap", "objectSpaceNormalMap", "tangentSpaceNormalMap", "clearcoatNormalMap", "displacementMap", "specularMap",
 		"roughnessMap", "metalnessMap", "gradientMap",
@@ -18625,7 +18568,6 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
 		material.onBeforeCompile( shaderobject, renderer );
 
 		var currentRenderTarget = renderer.getRenderTarget();
-		var numMultiviewViews = currentRenderTarget && currentRenderTarget.isWebGLMultiviewRenderTarget ? currentRenderTarget.numViews : 0;
 
 		var parameters = {
 
@@ -18647,7 +18589,6 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
 			instancing: object.isInstancedMesh === true,
 
 			supportsVertexTextures: vertexTextures,
-			numMultiviewViews: numMultiviewViews,
 			outputEncoding: ( currentRenderTarget !== null ) ? getTextureEncodingFromMap( currentRenderTarget.texture ) : renderer.outputEncoding,
 			map: !! material.map,
 			mapEncoding: getTextureEncodingFromMap( material.map ),
@@ -21592,21 +21533,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 		}
 
-		if ( renderTarget.isWebGLMultiviewRenderTarget ) {
-
-			_gl.deleteTexture( renderTargetProperties.__webglColorTexture );
-			_gl.deleteTexture( renderTargetProperties.__webglDepthStencilTexture );
-
-			info.memory.textures -= 2;
-
-			for ( var i = 0, il = renderTargetProperties.__webglViewFramebuffers.length; i < il; i ++ ) {
-
-				_gl.deleteFramebuffer( renderTargetProperties.__webglViewFramebuffers[ i ] );
-
-			}
-
-		}
-
 		properties.remove( renderTarget.texture );
 		properties.remove( renderTarget );
 
@@ -22307,7 +22233,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 		var isCube = ( renderTarget.isWebGLCubeRenderTarget === true );
 		var isMultisample = ( renderTarget.isWebGLMultisampleRenderTarget === true );
-		var isMultiview = ( renderTarget.isWebGLMultiviewRenderTarget === true );
 		var supportsMips = isPowerOfTwo( renderTarget ) || isWebGL2;
 
 		// Setup framebuffer
@@ -22361,48 +22286,6 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 				}
 
-			} else if ( isMultiview ) {
-
-				var width = renderTarget.width;
-				var height = renderTarget.height;
-				var numViews = renderTarget.numViews;
-
-				_gl.bindFramebuffer( 36160, renderTargetProperties.__webglFramebuffer );
-
-				var ext = extensions.get( 'OVR_multiview2' );
-
-				info.memory.textures += 2;
-
-				var colorTexture = _gl.createTexture();
-				_gl.bindTexture( 35866, colorTexture );
-				_gl.texParameteri( 35866, 10240, 9728 );
-				_gl.texParameteri( 35866, 10241, 9728 );
-				_gl.texImage3D( 35866, 0, 32856, width, height, numViews, 0, 6408, 5121, null );
-				ext.framebufferTextureMultiviewOVR( 36160, 36064, colorTexture, 0, 0, numViews );
-
-				var depthStencilTexture = _gl.createTexture();
-				_gl.bindTexture( 35866, depthStencilTexture );
-				_gl.texParameteri( 35866, 10240, 9728 );
-				_gl.texParameteri( 35866, 10241, 9728 );
-				_gl.texImage3D( 35866, 0, 35056, width, height, numViews, 0, 34041, 34042, null );
-				ext.framebufferTextureMultiviewOVR( 36160, 33306, depthStencilTexture, 0, 0, numViews );
-
-				var viewFramebuffers = new Array( numViews );
-				for ( var i = 0; i < numViews; ++ i ) {
-
-					viewFramebuffers[ i ] = _gl.createFramebuffer();
-					_gl.bindFramebuffer( 36160, viewFramebuffers[ i ] );
-					_gl.framebufferTextureLayer( 36160, 36064, colorTexture, 0, i );
-
-				}
-
-				renderTargetProperties.__webglColorTexture = colorTexture;
-				renderTargetProperties.__webglDepthStencilTexture = depthStencilTexture;
-				renderTargetProperties.__webglViewFramebuffers = viewFramebuffers;
-
-				_gl.bindFramebuffer( 36160, null );
-				_gl.bindTexture( 35866, null );
-
 			}
 
 		}
@@ -22428,7 +22311,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 			state.bindTexture( 34067, null );
 
-		} else if ( ! isMultiview ) {
+		} else {
 
 			state.bindTexture( 3553, textureProperties.__webglTexture );
 			setTextureParameters( 3553, renderTarget.texture, supportsMips );
@@ -22775,271 +22658,6 @@ function WebGLUtils( gl, extensions, capabilities ) {
 
 }
 
-/**
- * @author fernandojsg / http://fernandojsg.com
- * @author Takahiro https://github.com/takahirox
- */
-
-function WebGLMultiviewRenderTarget( width, height, numViews, options ) {
-
-	WebGLRenderTarget.call( this, width, height, options );
-
-	this.depthBuffer = false;
-	this.stencilBuffer = false;
-
-	this.numViews = numViews;
-
-}
-
-WebGLMultiviewRenderTarget.prototype = Object.assign( Object.create( WebGLRenderTarget.prototype ), {
-
-	constructor: WebGLMultiviewRenderTarget,
-
-	isWebGLMultiviewRenderTarget: true,
-
-	copy: function ( source ) {
-
-		WebGLRenderTarget.prototype.copy.call( this, source );
-
-		this.numViews = source.numViews;
-
-		return this;
-
-	},
-
-	setNumViews: function ( numViews ) {
-
-		if ( this.numViews !== numViews ) {
-
-			this.numViews = numViews;
-			this.dispose();
-
-		}
-
-		return this;
-
-	}
-
-} );
-
-/**
- * @author fernandojsg / http://fernandojsg.com
- * @author Takahiro https://github.com/takahirox
- */
-
-function WebGLMultiview( renderer, gl ) {
-
-	var DEFAULT_NUMVIEWS = 2;
-
-	var extensions = renderer.extensions;
-	var properties = renderer.properties;
-
-	var renderTarget, currentRenderTarget;
-	var mat3, mat4, cameraArray, renderSize;
-
-	var available;
-	var maxNumViews = 0;
-
-	//
-
-	function isAvailable() {
-
-		if ( available === undefined ) {
-
-			var extension = extensions.get( 'OVR_multiview2' );
-
-			available = extension !== null && gl.getContextAttributes().antialias === false;
-
-			if ( available ) {
-
-				maxNumViews = gl.getParameter( extension.MAX_VIEWS_OVR );
-				renderTarget = new WebGLMultiviewRenderTarget( 0, 0, DEFAULT_NUMVIEWS );
-
-				renderSize = new Vector2();
-				mat4 = [];
-				mat3 = [];
-				cameraArray = [];
-
-				for ( var i = 0; i < maxNumViews; i ++ ) {
-
-					mat4[ i ] = new Matrix4();
-					mat3[ i ] = new Matrix3();
-
-				}
-
-			}
-
-		}
-
-		return available;
-
-	}
-
-	function getCameraArray( camera ) {
-
-		if ( camera.isArrayCamera ) return camera.cameras;
-
-		cameraArray[ 0 ] = camera;
-
-		return cameraArray;
-
-	}
-
-	function updateCameraProjectionMatricesUniform( camera, uniforms ) {
-
-		var cameras = getCameraArray( camera );
-
-		for ( var i = 0; i < cameras.length; i ++ ) {
-
-			mat4[ i ].copy( cameras[ i ].projectionMatrix );
-
-		}
-
-		uniforms.setValue( gl, 'projectionMatrices', mat4 );
-
-	}
-
-	function updateCameraViewMatricesUniform( camera, uniforms ) {
-
-		var cameras = getCameraArray( camera );
-
-		for ( var i = 0; i < cameras.length; i ++ ) {
-
-			mat4[ i ].copy( cameras[ i ].matrixWorldInverse );
-
-		}
-
-		uniforms.setValue( gl, 'viewMatrices', mat4 );
-
-	}
-
-	function updateObjectMatricesUniforms( object, camera, uniforms ) {
-
-		var cameras = getCameraArray( camera );
-
-		for ( var i = 0; i < cameras.length; i ++ ) {
-
-			mat4[ i ].multiplyMatrices( cameras[ i ].matrixWorldInverse, object.matrixWorld );
-			mat3[ i ].getNormalMatrix( mat4[ i ] );
-
-		}
-
-		uniforms.setValue( gl, 'modelViewMatrices', mat4 );
-		uniforms.setValue( gl, 'normalMatrices', mat3 );
-
-	}
-
-	function isMultiviewCompatible( camera ) {
-
-		if ( camera.isArrayCamera === undefined ) return true;
-
-		var cameras = camera.cameras;
-
-		if ( cameras.length > maxNumViews ) return false;
-
-		for ( var i = 1, il = cameras.length; i < il; i ++ ) {
-
-			if ( cameras[ 0 ].viewport.z !== cameras[ i ].viewport.z ||
-				cameras[ 0 ].viewport.w !== cameras[ i ].viewport.w ) return false;
-
-		}
-
-		return true;
-
-	}
-
-	function resizeRenderTarget( camera ) {
-
-		if ( currentRenderTarget ) {
-
-			renderSize.set( currentRenderTarget.width, currentRenderTarget.height );
-
-		} else {
-
-			renderer.getDrawingBufferSize( renderSize );
-
-		}
-
-		if ( camera.isArrayCamera ) {
-
-			var viewport = camera.cameras[ 0 ].viewport;
-
-			renderTarget.setSize( viewport.z, viewport.w );
-			renderTarget.setNumViews( camera.cameras.length );
-
-		} else {
-
-			renderTarget.setSize( renderSize.x, renderSize.y );
-			renderTarget.setNumViews( DEFAULT_NUMVIEWS );
-
-		}
-
-	}
-
-	function attachCamera( camera ) {
-
-		if ( isMultiviewCompatible( camera ) === false ) return;
-
-		currentRenderTarget = renderer.getRenderTarget();
-		resizeRenderTarget( camera );
-		renderer.setRenderTarget( renderTarget );
-
-	}
-
-	function detachCamera( camera ) {
-
-		if ( renderTarget !== renderer.getRenderTarget() ) return;
-
-		renderer.setRenderTarget( currentRenderTarget );
-
-		flush( camera );
-
-	}
-
-	function flush( camera ) {
-
-		var srcRenderTarget = renderTarget;
-		var numViews = srcRenderTarget.numViews;
-
-		var srcFramebuffers = properties.get( srcRenderTarget ).__webglViewFramebuffers;
-
-		var viewWidth = srcRenderTarget.width;
-		var viewHeight = srcRenderTarget.height;
-
-		if ( camera.isArrayCamera ) {
-
-			for ( var i = 0; i < numViews; i ++ ) {
-
-				var viewport = camera.cameras[ i ].viewport;
-
-				var x1 = viewport.x;
-				var y1 = viewport.y;
-				var x2 = x1 + viewport.z;
-				var y2 = y1 + viewport.w;
-
-				gl.bindFramebuffer( 36008, srcFramebuffers[ i ] );
-				gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, x1, y1, x2, y2, 16384, 9728 );
-
-			}
-
-		} else {
-
-			gl.bindFramebuffer( 36008, srcFramebuffers[ 0 ] );
-			gl.blitFramebuffer( 0, 0, viewWidth, viewHeight, 0, 0, renderSize.x, renderSize.y, 16384, 9728 );
-
-		}
-
-	}
-
-	this.isAvailable = isAvailable;
-	this.attachCamera = attachCamera;
-	this.detachCamera = detachCamera;
-	this.updateCameraProjectionMatricesUniform = updateCameraProjectionMatricesUniform;
-	this.updateCameraViewMatricesUniform = updateCameraViewMatricesUniform;
-	this.updateObjectMatricesUniforms = updateObjectMatricesUniforms;
-
-}
-
 /**
  * @author mrdoob / http://mrdoob.com/
  */
@@ -23883,10 +23501,6 @@ function WebGLRenderer( parameters ) {
 
 	this.xr = xr;
 
-	// Multiview
-
-	var multiview = new WebGLMultiview( _this, _gl );
-
 	// shadow map
 
 	var shadowMap = new WebGLShadowMap( _this, objects, capabilities.maxTextureSize );
@@ -24784,12 +24398,6 @@ function WebGLRenderer( parameters ) {
 
 		}
 
-		if ( xr.enabled && multiview.isAvailable() ) {
-
-			multiview.attachCamera( camera );
-
-		}
-
 		//
 
 		background.render( currentRenderList, scene, camera, forceClear );
@@ -24844,16 +24452,6 @@ function WebGLRenderer( parameters ) {
 
 		state.setPolygonOffset( false );
 
-		if ( xr.enabled ) {
-
-			if ( multiview.isAvailable() ) {
-
-				multiview.detachCamera( camera );
-
-			}
-
-		}
-
 		// _gl.finish();
 
 		currentRenderList = null;
@@ -25001,27 +24599,19 @@ function WebGLRenderer( parameters ) {
 
 				_currentArrayCamera = camera;
 
-				if ( xr.enabled && multiview.isAvailable() ) {
-
-					renderObject( object, scene, camera, geometry, material, group );
-
-				} else {
+				var cameras = camera.cameras;
 
-					var cameras = camera.cameras;
+				for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
 
-					for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
+					var camera2 = cameras[ j ];
 
-						var camera2 = cameras[ j ];
+					if ( object.layers.test( camera2.layers ) ) {
 
-						if ( object.layers.test( camera2.layers ) ) {
+						state.viewport( _currentViewport.copy( camera2.viewport ) );
 
-							state.viewport( _currentViewport.copy( camera2.viewport ) );
+						currentRenderState.setupLights( camera2 );
 
-							currentRenderState.setupLights( camera2 );
-
-							renderObject( object, scene, camera2, geometry, material, group );
-
-						}
+						renderObject( object, scene, camera2, geometry, material, group );
 
 					}
 
@@ -25303,15 +24893,7 @@ function WebGLRenderer( parameters ) {
 
 		if ( refreshProgram || _currentCamera !== camera ) {
 
-			if ( program.numMultiviewViews > 0 ) {
-
-				multiview.updateCameraProjectionMatricesUniform( camera, p_uniforms );
-
-			} else {
-
-				p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
-
-			}
+			p_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );
 
 			if ( capabilities.logarithmicDepthBuffer ) {
 
@@ -25372,15 +24954,7 @@ function WebGLRenderer( parameters ) {
 				material.isShaderMaterial ||
 				material.skinning ) {
 
-				if ( program.numMultiviewViews > 0 ) {
-
-					multiview.updateCameraViewMatricesUniform( camera, p_uniforms );
-
-				} else {
-
-					p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
-
-				}
+				p_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );
 
 			}
 
@@ -25585,17 +25159,8 @@ function WebGLRenderer( parameters ) {
 
 		// common matrices
 
-		if ( program.numMultiviewViews > 0 ) {
-
-			multiview.updateObjectMatricesUniforms( object, camera, p_uniforms );
-
-		} else {
-
-			p_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );
-			p_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );
-
-		}
-
+		p_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );
+		p_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );
 		p_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );
 
 		return program;
@@ -50343,19 +49908,19 @@ var SceneUtils = {
 
 	createMultiMaterialObject: function ( /* geometry, materials */ ) {
 
-		console.error( 'THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js' );
+		console.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );
 
 	},
 
 	detach: function ( /* child, parent, scene */ ) {
 
-		console.error( 'THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js' );
+		console.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );
 
 	},
 
 	attach: function ( /* child, scene, parent */ ) {
 
-		console.error( 'THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js' );
+		console.error( 'THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js' );
 
 	}
 
@@ -50365,7 +49930,7 @@ var SceneUtils = {
 
 function LensFlare() {
 
-	console.error( 'THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js' );
+	console.error( 'THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js' );
 
 }
 

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

@@ -58,7 +58,7 @@
 
 		<p>
 			Some examples of how to manually create [page:AnimationClip AnimationClips] with different sorts
-			of KeyframeTracks can be found in the [link:https://threejs.org/examples/js/animation/AnimationClipCreator.js AnimationClipCreator]
+			of KeyframeTracks can be found in the [link:https://threejs.org/examples/jsm/animation/AnimationClipCreator.js AnimationClipCreator]
 			file.
 		</p>
 

+ 3 - 3
docs/api/en/cameras/StereoCamera.html

@@ -25,9 +25,9 @@
 
 		<p>
 		This class is used internally in the files<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/AnaglyphEffect.js examples/js/effects/AnaglyphEffect.js]<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/ParallaxBarrierEffect.js examples/js/effects/ParallaxBarrierEffect.js]<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/StereoEffect.js examples/js/effects/StereoEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/effects/AnaglyphEffect.js examples/jsm/effects/AnaglyphEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/effects/ParallaxBarrierEffect.js examples/jsm/effects/ParallaxBarrierEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/effects/StereoEffect.js examples/jsm/effects/StereoEffect.js]<br /><br />
 		used in the above examples.
 		</p>
 

+ 2 - 2
docs/api/en/deprecated/DeprecatedList.html

@@ -473,7 +473,7 @@
 
 		<h3>[page:LensFlare]</h3>
 		<p>
-			LensFlare has been moved to [link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/Lensflare.js /examples/js/objects/Lensflare.js].
+			LensFlare has been moved to [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/objects/Lensflare.js /examples/jsm/objects/Lensflare.js].
 		</p>
 
 
@@ -509,7 +509,7 @@
 		<h3>[page:Projector]</h3>
 		<p>
 			Projector has been moved to
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/Projector.js 	/examples/js/renderers/Projector.js].<br /><br />
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/Projector.js 	/examples/jsm/renderers/Projector.js].<br /><br />
 
 			Projector.projectVector() is now [page:Vector.project]().<br /><br />
 

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

@@ -20,7 +20,7 @@
 			<ul>
 				<li>There is no shadow support.</li>
 				<li>Only [page:MeshStandardMaterial MeshStandardMaterial] and [page:MeshPhysicalMaterial MeshPhysicalMaterial] are supported.</li>
-				<li>You have to include [link:https://threejs.org/examples/js/lights/RectAreaLightUniformsLib.js RectAreaLightUniformsLib] into your scene and call *init()*.</li>
+				<li>You have to include [link:https://threejs.org/examples/jsm/lights/RectAreaLightUniformsLib.js RectAreaLightUniformsLib] into your scene and call *init()*.</li>
 			</ul>
 		</p>
 

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

@@ -20,8 +20,8 @@
 		<h2>Examples</h2>
 
 		<p>
-			See the [link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/DDSLoader.js DDSLoader]
-			and [link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PVRLoader.js PVRLoader]
+			See the [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/DDSLoader.js DDSLoader]
+			and [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PVRLoader.js PVRLoader]
 			for examples of derived classes.
 		</p>
 

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

@@ -21,7 +21,7 @@
 		<h2>Examples</h2>
 
 		<p>
-			See the [link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/RGBELoader.js RGBELoader]
+			See the [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/RGBELoader.js RGBELoader]
 			for an example of a derived class.
 		</p>
 

+ 17 - 4
docs/api/en/renderers/shaders/UniformsUtils.html

@@ -10,15 +10,28 @@
 	<body>
 		<h1>[name]</h1>
 
-		<p class="desc">Uniform Utilities. Support merging and cloning of uniform variables</p>
-
-		<h2>Properties</h2>
+		<p class="desc">
+			Provides utility functions for managing uniforms.
+		</p>
 
+		<h2>Methods</h2>
 
+		<h3>[method:Object clone]( [param:Object src] )</h3>
+		<p>
+		src -- An object representing uniform definitions.<br /><br />
 
-		<h2>Methods</h2>
+		Clones the given uniform definitions by performing a deep-copy. That means if
+		the [page:Uniform.value value] of a uniform refers to an object like a [page:Vector3]
+		or [page:Texture], the cloned uniform will refer to a new object reference.
+		</p>
 
+		<h3>[method:Object merge]( [param:Array uniforms] )</h3>
+		<p>
+		uniforms -- An array of objects containing uniform definitions.<br /><br />
 
+		Merges the given uniform definitions into a single object. Since the method
+		internally uses [page:.clone](), it performs a deep-copy when producing the
+		merged uniform definitions.
 
 		<h2>Source</h2>
 

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

@@ -49,7 +49,7 @@
 		</ul>
 
 		<p>
-			可以在[link:https://threejs.org/examples/js/animation/AnimationClipCreator.js AnimationClipCreator]文件中找到用不同类型的关键帧轨道创建动画剪辑([page:AnimationClip AnimationClips])的示例。
+			可以在[link:https://threejs.org/examples/jsm/animation/AnimationClipCreator.js AnimationClipCreator]文件中找到用不同类型的关键帧轨道创建动画剪辑([page:AnimationClip AnimationClips])的示例。
 		</p>
 
 		<p>

+ 3 - 3
docs/api/zh/cameras/StereoCamera.html

@@ -25,9 +25,9 @@
 
 		<p>
 			这些类在以上示例中的文件内部使用:<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/AnaglyphEffect.js examples/js/effects/AnaglyphEffect.js]<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/ParallaxBarrierEffect.js examples/js/effects/ParallaxBarrierEffect.js]<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/StereoEffect.js examples/js/effects/StereoEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/effects/AnaglyphEffect.js examples/jsm/effects/AnaglyphEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/effects/ParallaxBarrierEffect.js examples/jsm/effects/ParallaxBarrierEffect.js]<br /><br />
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/effects/StereoEffect.js examples/jsm/effects/StereoEffect.js]<br /><br />
 		</p>
 
 

+ 3 - 3
docs/api/zh/deprecated/DeprecatedList.html

@@ -454,7 +454,7 @@
 
 		<h3>[page:LensFlare]</h3>
 		<p>
-			LensFlare 已被移动到了 [link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/Lensflare.js /examples/js/objects/Lensflare.js].
+			LensFlare 已被移动到了 [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/objects/Lensflare.js /examples/jsm/objects/Lensflare.js].
 		</p>
 
 
@@ -484,13 +484,13 @@
 
 		<h3>[page:Projector]</h3>
 		<p>
-			CanvasRenderer 已被移动到了 [link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CanvasRenderer.js /examples/js/renderers/CanvasRenderer.js].
+			CanvasRenderer has been removed.
 		</p>
 
 		<h3>[page:Projector]</h3>
 		<p>
 			Projector 已被移动到了
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/Projector.js 	/examples/js/renderers/Projector.js]。<br /><br />
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/Projector.js 	/examples/jsm/renderers/Projector.js]。<br /><br />
 
 			Projector.projectVector() 现在是 [page:Vector.project]()。<br /><br />
 

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

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

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

@@ -19,7 +19,7 @@
 			<ul>
 				<li>不支持阴影。</li>
 				<li>只支持 [page:MeshStandardMaterial MeshStandardMaterial] 和 [page:MeshPhysicalMaterial MeshPhysicalMaterial] 两种材质。</li>
-				<li>你必须在你的场景中加入 [link:https://threejs.org/examples/js/lights/RectAreaLightUniformsLib.js RectAreaLightUniformsLib] ,并调用*init()*。</li>
+				<li>你必须在你的场景中加入 [link:https://threejs.org/examples/jsm/lights/RectAreaLightUniformsLib.js RectAreaLightUniformsLib] ,并调用*init()*。</li>
 			</ul>
 		</p>
 

+ 2 - 2
docs/api/zh/loaders/CompressedTextureLoader.html

@@ -20,8 +20,8 @@
 		<h2>例子</h2>
 
 		<p>
-			请参考[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/DDSLoader.js DDSLoader]
-			和[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PVRLoader.js PVRLoader]
+			请参考[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/DDSLoader.js DDSLoader]
+			和[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PVRLoader.js PVRLoader]
 			子类的例子
 		</p>
 

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

@@ -21,7 +21,7 @@
 		<h2>例子</h2>
 
 		<p>
-			请参考[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/RGBELoader.js RGBELoader]
+			请参考[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/RGBELoader.js RGBELoader]
 			这个子类的例子。
 		</p>
 

+ 14 - 3
docs/api/zh/renderers/shaders/UniformsUtils.html

@@ -12,13 +12,24 @@
 
 		<p class="desc">Uniform工具. 支持uniform变量的合并和克隆</p>
 
-		<h2>属性</h2>
-
+		<h2>方法</h2>
 
+		<h3>[method:Object clone]( [param:Object src] )</h3>
+		<p>
+		src -- An object representing uniform definitions.<br /><br />
 
-		<h2>方法</h2>
+		Clones the given uniform definitions by performing a deep-copy. That means if
+		the [page:Uniform.value value] of a uniform refers to an object like a [page:Vector3]
+		or [page:Texture], the cloned uniform will refer to a new object reference.
+		</p>
 
+		<h3>[method:Object merge]( [param:Array uniforms] )</h3>
+		<p>
+		uniforms -- An array of objects containing uniform definitions.<br /><br />
 
+		Merges the given uniform definitions into a single object. Since the method
+		internally uses [page:.clone](), it performs a deep-copy when producing the
+		merged uniform definitions.
 
 		<h2>源码</h2>
 

+ 2 - 2
docs/examples/en/animations/CCDIKSolver.html

@@ -21,7 +21,7 @@
 		var ikSolver;
 
 		// Load MMD resources and instantiate CCDIKSolver
-		new THREE.MMDLoader().load(
+		new MMDLoader().load(
 			'models/mmd/miku.pmd',
 			function ( mesh ) {
 
@@ -98,7 +98,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/CCDIKSolver.js examples/js/animation/CCDIKSolver.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/CCDIKSolver.js examples/jsm/animation/CCDIKSolver.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/en/animations/MMDAnimationHelper.html

@@ -19,10 +19,10 @@
 
 		<code>
 		// Instantiate a helper
-		var helper = new THREE.MMDAnimationHelper();
+		var helper = new MMDAnimationHelper();
 
 		// Load MMD resources and add to helper
-		new THREE.MMDLoader().loadWithAnimation(
+		new MMDLoader().loadWithAnimation(
 			'models/mmd/miku.pmd',
 			'models/mmd/dance.vmd',
 			function ( mmd ) {
@@ -165,7 +165,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDAnimationHelper.js examples/js/animation/MMDAnimationHelper.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/MMDAnimationHelper.js examples/jsm/animation/MMDAnimationHelper.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/en/animations/MMDPhysics.html

@@ -20,11 +20,11 @@
 		var physics;
 
 		// Load MMD resources and instantiate MMDPhysics
-		new THREE.MMDLoader().load(
+		new MMDLoader().load(
 			'models/mmd/miku.pmd',
 			function ( mesh ) {
 
-				physics = new THREE.MMDPhysics( mesh )
+				physics = new MMDPhysics( mesh )
 				scene.add( mesh );
 
 			}
@@ -108,7 +108,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDPhysics.js examples/js/animation/MMDPhysics.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/MMDPhysics.js examples/jsm/animation/MMDPhysics.js]
 		</p>
 	</body>
 </html>

+ 6 - 6
docs/examples/en/controls/DeviceOrientationControls.html

@@ -12,7 +12,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			Can be used to orient an object based on the mobile device's orientation.
+			Can be used to orient the camera based on the mobile device's orientation.
 		</p>
 
 		<h2>Example</h2>
@@ -21,10 +21,10 @@
 
 		<h2>Constructor</h2>
 
-		<h3>[name]( [param:Object3D object] )</h3>
+		<h3>[name]( [param:Camera object] )</h3>
 		<p>
 			<p>
-				[page:Object3D object]: The object to be controlled.
+				[page:Camera object]: The camera to be controlled.
 			</p>
 			<p>
 				Creates a new instance of [name].
@@ -48,9 +48,9 @@
 			Whether or not the controls are enabled.
 		</p>
 
-		<h3>[property:Object3D object]</h3>
+		<h3>[property:Camera object]</h3>
 		<p>
-			The object to be controlled.
+			The camera to be controlled.
 		</p>
 
 		<h3>[property:Number screenOrientation]</h3>
@@ -83,7 +83,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DeviceOrientationControls.js examples/js/controls/DeviceOrientationControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/DeviceOrientationControls.js examples/jsm/controls/DeviceOrientationControls.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/en/controls/DragControls.html

@@ -21,7 +21,7 @@
 		<p>[example:misc_controls_drag misc / controls / drag ]</p>
 
 		<code>
-var controls = new THREE.DragControls( objects, camera, renderer.domElement );
+var controls = new DragControls( objects, camera, renderer.domElement );
 
 // add event listener to highlight dragged objects
 
@@ -93,7 +93,7 @@ controls.addEventListener( 'dragend', function ( event ) {
 
 		<h3>[property:Boolean transformGroup]</h3>
 		<p>
-			This option only works if the [page:DragControls.objects] array contains a single draggable group object. 
+			This option only works if the [page:DragControls.objects] array contains a single draggable group object.
 			If set to *true*, [name] does not transform individual objects but the entire group. Default is *false*.
 		</p>
 
@@ -124,7 +124,7 @@ controls.addEventListener( 'dragend', function ( event ) {
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DragControls.js examples/js/controls/DragControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/DragControls.js examples/jsm/controls/DragControls.js]
 		</p>
 	</body>
 </html>

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

@@ -159,7 +159,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FirstPersonControls.js examples/js/controls/FirstPersonControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/FirstPersonControls.js examples/jsm/controls/FirstPersonControls.js]
 		</p>
 	</body>
 </html>

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

@@ -88,7 +88,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FlyControls.js examples/js/controls/FlyControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/FlyControls.js examples/jsm/controls/FlyControls.js]
 		</p>
 	</body>
 </html>

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

@@ -32,7 +32,7 @@ var scene = new THREE.Scene();
 
 var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
 
-var controls = new THREE.OrbitControls( camera, renderer.domElement );
+var controls = new OrbitControls( camera, renderer.domElement );
 
 //controls.update() must be called after any manual changes to the camera's transform
 camera.position.set( 0, 20, 100 );
@@ -292,7 +292,7 @@ controls.touches = {
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/OrbitControls.js examples/js/controls/OrbitControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/OrbitControls.js examples/jsm/controls/OrbitControls.js]
 		</p>
 	</body>
 </html>

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

@@ -143,7 +143,7 @@ controls.addEventListener( 'unlock', function () {
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/PointerLockControls.js examples/js/controls/PointerLockControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/PointerLockControls.js examples/jsm/controls/PointerLockControls.js]
 		</p>
 	</body>
 </html>

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

@@ -201,7 +201,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TrackballControls.js examples/js/controls/TrackballControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/TrackballControls.js examples/jsm/controls/TrackballControls.js]
 		</p>
 	</body>
 </html>

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

@@ -220,7 +220,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TransformControls.js examples/js/controls/TransformControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/TransformControls.js examples/jsm/controls/TransformControls.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/exporters/ColladaExporter.html

@@ -22,7 +22,7 @@
 
 		<code>
 		// Instantiate an exporter
-		var exporter = new THREE.ColladaExporter();
+		var exporter = new ColladaExporter();
 
 		// Parse the input and generate the ply output
 		var data = exporter.parse( scene, null, options );
@@ -77,7 +77,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/ColladaExporter.js examples/js/exporters/ColladaExporter.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/ColladaExporter.js examples/jsm/exporters/ColladaExporter.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/exporters/GLTFExporter.html

@@ -38,7 +38,7 @@
 
 		<code>
 		// Instantiate a exporter
-		var exporter = new THREE.GLTFExporter();
+		var exporter = new GLTFExporter();
 
 		// Parse the input and generate the glTF output
 		exporter.parse( scene, function ( gltf ) {
@@ -108,7 +108,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/GLTFExporter.js examples/js/exporters/GLTFExporter.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/GLTFExporter.js examples/jsm/exporters/GLTFExporter.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/exporters/PLYExporter.html

@@ -23,7 +23,7 @@
 
 		<code>
 		// Instantiate an exporter
-		var exporter = new THREE.PLYExporter();
+		var exporter = new PLYExporter();
 
 		// Parse the input and generate the ply output
 		var data = exporter.parse( scene, options );
@@ -60,7 +60,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/PLYExporter.js examples/js/exporters/PLYExporter.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/PLYExporter.js examples/jsm/exporters/PLYExporter.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/geometries/ConvexBufferGeometry.html

@@ -36,7 +36,7 @@
 
 		<p>[example:webgl_geometry_convex geometry / convex ]</p>
 
-		<code>var geometry = new THREE.ConvexBufferGeometry( points );
+		<code>var geometry = new ConvexBufferGeometry( points );
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -53,7 +53,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/ConvexGeometry.js examples/js/geometries/ConvexGeometry.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/ConvexGeometry.js examples/jsm/geometries/ConvexGeometry.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/geometries/ConvexGeometry.html

@@ -35,7 +35,7 @@
 
 		<p>[example:webgl_geometry_convex geometry / convex ]</p>
 
-		<code>var geometry = new THREE.ConvexGeometry( points );
+		<code>var geometry = new ConvexGeometry( points );
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -52,7 +52,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/ConvexGeometry.js examples/js/geometries/ConvexGeometry.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/ConvexGeometry.js examples/jsm/geometries/ConvexGeometry.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/geometries/DecalGeometry.html

@@ -34,7 +34,7 @@
 
 		<p>[example:webgl_decals WebGL / decals]</p>
 
-		<code>var geometry =  new THREE.DecalGeometry( mesh, position, orientation, size );
+		<code>var geometry =  new DecalGeometry( mesh, position, orientation, size );
 		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -53,7 +53,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/DecalGeometry.js examples/js/geometries/DecalGeometry.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/DecalGeometry.js examples/jsm/geometries/DecalGeometry.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/helpers/FaceNormalsHelper.html

@@ -31,7 +31,7 @@
 		material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		box = new THREE.Mesh( geometry, material );
 
-		helper = new THREE.FaceNormalsHelper( box, 2, 0x00ff00, 1 );
+		helper = new FaceNormalsHelper( box, 2, 0x00ff00, 1 );
 
 		scene.add( box );
 		scene.add( helper );

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

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

+ 1 - 1
docs/examples/en/helpers/VertexNormalsHelper.html

@@ -30,7 +30,7 @@
 		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		var box = new THREE.Mesh( geometry, material );
 
-		var helper = new THREE.VertexNormalsHelper( box, 2, 0x00ff00, 1 );
+		var helper = new VertexNormalsHelper( box, 2, 0x00ff00, 1 );
 
 		scene.add( box );
 		scene.add( helper );

+ 1 - 1
docs/examples/en/helpers/VertexTangentsHelper.html

@@ -30,7 +30,7 @@
 		var material = new THREE.MeshNormalMaterial();
 		var box = new THREE.Mesh( geometry, material );
 
-		var helper = new THREE.VertexTangentsHelper( box, 1, 0x00ffff, 1 );
+		var helper = new VertexTangentsHelper( box, 1, 0x00ffff, 1 );
 
 		scene.add( box );
 		scene.add( helper );

+ 5 - 5
docs/examples/en/loaders/BasisTextureLoader.html

@@ -25,15 +25,15 @@
 			This loader parallelizes the transcoding process across a configurable number
 			of web workers, before transferring the transcoded compressed texture back
 			to the main thread. The required WASM transcoder and JS wrapper are available from the
-			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
+			[link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/basis examples/jsm/libs/basis]
 			directory.
 		</p>
 
 		<h2>Example</h2>
 
 		<code>
-		var basisLoader = new THREE.BasisTextureLoader();
-		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
+		var basisLoader = new BasisTextureLoader();
+		basisLoader.setTranscoderPath( 'examples/jsm/libs/basis/' );
 		basisLoader.detectSupport( renderer );
 		basisLoader.load( 'diffuse.basis', function ( texture ) {
 
@@ -114,7 +114,7 @@
 		</p>
 		<p>
 		The WASM transcoder and JS wrapper are available from the
-		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
+		[link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/basis examples/jsm/libs/basis]
 		directory.
 		</p>
 
@@ -134,7 +134,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BasisTextureLoader.js examples/js/loaders/BasisTextureLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/BasisTextureLoader.js examples/jsm/loaders/BasisTextureLoader.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/en/loaders/DRACOLoader.html

@@ -31,10 +31,10 @@
 
 		<code>
 		// Instantiate a loader
-		var loader = new THREE.DRACOLoader();
+		var loader = new DRACOLoader();
 
 		// Specify path to a folder containing WASM/JS decoding libraries.
-		loader.setDecoderPath( '/examples/js/libs/draco/' );
+		loader.setDecoderPath( '/examples/jsm/libs/draco/' );
 
 		// Optional: Pre-fetch Draco WASM/JS module.
 		loader.preload();
@@ -145,7 +145,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/DRACOLoader.js examples/js/loaders/DRACOLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/DRACOLoader.js examples/jsm/loaders/DRACOLoader.js]
 		</p>
 	</body>
 </html>

+ 5 - 5
docs/examples/en/loaders/GLTFLoader.html

@@ -55,11 +55,11 @@
 
 		<code>
 		// Instantiate a loader
-		var loader = new THREE.GLTFLoader();
+		var loader = new GLTFLoader();
 
 		// Optional: Provide a DRACOLoader instance to decode compressed mesh data
-		var dracoLoader = new THREE.DRACOLoader();
-		dracoLoader.setDecoderPath( '/examples/js/libs/draco/' );
+		var dracoLoader = new DRACOLoader();
+		dracoLoader.setDecoderPath( '/examples/jsm/libs/draco/' );
 		loader.setDRACOLoader( dracoLoader );
 
 		// Load a glTF resource
@@ -183,7 +183,7 @@
 		[page:DRACOLoader dracoLoader] — Instance of THREE.DRACOLoader, to be used for decoding assets compressed with the KHR_draco_mesh_compression extension.
 		</p>
 		<p>
-		Refer to this [link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/draco#readme readme] for the details of Draco and its decoder.
+		Refer to this [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/draco#readme readme] for the details of Draco and its decoder.
 		</p>
 
 		<h3>[method:null setDDSLoader]( [param:DDSLoader ddsLoader] )</h3>
@@ -205,7 +205,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/GLTFLoader.js examples/js/loaders/GLTFLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/GLTFLoader.js examples/jsm/loaders/GLTFLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/loaders/MMDLoader.html

@@ -22,7 +22,7 @@
 
 		<code>
 		// Instantiate a loader
-		var loader = new THREE.MMDLoader();
+		var loader = new MMDLoader();
 
 		// Load a MMD model
 		loader.load(
@@ -118,7 +118,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MMDLoader.js examples/js/loaders/MMDLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/MMDLoader.js examples/jsm/loaders/MMDLoader.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/loaders/MTLLoader.html

@@ -73,7 +73,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/[name].js examples/js/loaders/[name].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/[name].js examples/jsm/loaders/[name].js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/loaders/OBJLoader.html

@@ -24,7 +24,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.OBJLoader();
+		var loader = new OBJLoader();
 
 		// load a resource
 		loader.load(
@@ -102,7 +102,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJLoader.js examples/js/loaders/OBJLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/OBJLoader.js examples/jsm/loaders/OBJLoader.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/loaders/OBJLoader2.html

@@ -22,7 +22,7 @@
 
 		<code>
 		// instantiate the loader
-		let loader = new THREE.OBJLoader2();
+		let loader = new OBJLoader2();
 
 		// function called on successful load
 		function callbackOnLoad ( object3d ) {

+ 2 - 2
docs/examples/en/loaders/PCDLoader.html

@@ -22,7 +22,7 @@
 		<code>
 
 		// instantiate a loader
-		var loader = new THREE.PCDLoader();
+		var loader = new PCDLoader();
 
 		// load a resource
 		loader.load(
@@ -99,7 +99,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PCDLoader.js examples/js/loaders/PCDLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PCDLoader.js examples/jsm/loaders/PCDLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/loaders/PDBLoader.html

@@ -20,7 +20,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.PDBLoader();
+		var loader = new PDBLoader();
 
 		// load a PDB resource
 		loader.load(
@@ -92,7 +92,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PDBLoader.js examples/js/loaders/PDBLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PDBLoader.js examples/jsm/loaders/PDBLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/loaders/PRWMLoader.html

@@ -24,7 +24,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.PRWMLoader();
+		var loader = new PRWMLoader();
 
 		// load a resource
 		loader.load(
@@ -99,7 +99,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PRWMLoader.js examples/jsm/loaders/PRWMLoader.js]
 		</p>
 
 	</body>

+ 2 - 2
docs/examples/en/loaders/SVGLoader.html

@@ -20,7 +20,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.SVGLoader();
+		var loader = new SVGLoader();
 
 		// load a SVG resource
 		loader.load(
@@ -105,7 +105,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js examples/js/loaders/SVGLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/SVGLoader.js examples/jsm/loaders/SVGLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/loaders/TGALoader.html

@@ -20,7 +20,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.TGALoader();
+		var loader = new TGALoader();
 
 		// load a resource
 		var texture = loader.load(
@@ -84,7 +84,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/TGALoader.js examples/js/loaders/TGALoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/TGALoader.js examples/jsm/loaders/TGALoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/math/Lut.html

@@ -18,7 +18,7 @@
 		<h2>Example</h2>
 
 		<code>
-		var lut = new THREE.Lut( 'rainbow', 512 );
+		var lut = new Lut( 'rainbow', 512 );
 		var color = lut.getColor( 0.5 );
 		</code>
 
@@ -140,7 +140,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/[path].js examples/js/math/[path].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/[path].js examples/jsm/math/[path].js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/en/math/MeshSurfaceSampler.html

@@ -18,7 +18,7 @@
 
 		<code>
 		// Create a sampler for a Mesh surface.
-		var sampler = new THREE.MeshSurfaceSampler( surfaceMesh )
+		var sampler = new MeshSurfaceSampler( surfaceMesh )
 			.setWeightAttribute( 'color' )
 			.build();
 
@@ -80,7 +80,7 @@
 		<h2>Source</h2>
 
 		<p>
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/MeshSurfaceSampler.js examples/js/math/MeshSurfaceSampler.js]
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/MeshSurfaceSampler.js examples/jsm/math/MeshSurfaceSampler.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/math/convexhull/ConvexHull.html

@@ -187,7 +187,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/ConvexHull.js examples/js/ConvexHull.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/ConvexHull.js examples/jsm/ConvexHull.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/math/convexhull/Face.html

@@ -85,7 +85,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/ConvexHull.js examples/js/math/ConvexHull.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/ConvexHull.js examples/jsm/math/ConvexHull.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/math/convexhull/HalfEdge.html

@@ -75,7 +75,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/ConvexHull.js examples/js/math/ConvexHull.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/ConvexHull.js examples/jsm/math/ConvexHull.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/math/convexhull/VertexList.html

@@ -87,7 +87,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/ConvexHull.js examples/js/math/ConvexHull.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/ConvexHull.js examples/jsm/math/ConvexHull.js]
 		<p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/math/convexhull/VertexNode.html

@@ -48,7 +48,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/math/ConvexHull.js examples/js/math/ConvexHull.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/ConvexHull.js examples/jsm/math/ConvexHull.js]
 		<p>
 	</body>
 </html>

+ 5 - 5
docs/examples/en/objects/Lensflare.html

@@ -31,11 +31,11 @@ var textureFlare0 = textureLoader.load( "textures/lensflare/lensflare0.png" );
 var textureFlare1 = textureLoader.load( "textures/lensflare/lensflare2.png" );
 var textureFlare2 = textureLoader.load( "textures/lensflare/lensflare3.png" );
 
-var lensflare = new THREE.Lensflare();
+var lensflare = new Lensflare();
 
-lensflare.addElement( new THREE.LensflareElement( textureFlare0, 512, 0 ) );
-lensflare.addElement( new THREE.LensflareElement( textureFlare1, 512, 0 ) );
-lensflare.addElement( new THREE.LensflareElement( textureFlare2, 60, 0.6 ) );
+lensflare.addElement( new LensflareElement( textureFlare0, 512, 0 ) );
+lensflare.addElement( new LensflareElement( textureFlare1, 512, 0 ) );
+lensflare.addElement( new LensflareElement( textureFlare2, 60, 0.6 ) );
 
 light.add( lensflare );
 		</code>
@@ -58,7 +58,7 @@ light.add( lensflare );
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/Lensflare.js examples/js/objects/Lensflare.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/objects/Lensflare.js examples/jsm/objects/Lensflare.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/postprocessing/EffectComposer.html

@@ -151,7 +151,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/postprocessing/EffectComposer.js examples/js/postprocessing/EffectComposer.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/postprocessing/EffectComposer.js examples/jsm/postprocessing/EffectComposer.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/renderers/CSS2DRenderer.html

@@ -61,7 +61,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CSS2DRenderer.js examples/js/renderers/CSS2DRenderer.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/CSS2DRenderer.js examples/jsm/renderers/CSS2DRenderer.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/renderers/CSS3DRenderer.html

@@ -73,7 +73,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CSS3DRenderer.js examples/js/renderers/CSS3DRenderer.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/CSS3DRenderer.js examples/jsm/renderers/CSS3DRenderer.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/en/renderers/SVGRenderer.html

@@ -103,7 +103,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/SVGRenderer.js examples/js/renderers/SVGRenderer.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/SVGRenderer.js examples/jsm/renderers/SVGRenderer.js]
 		</p>
 	</body>
 </html>

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

@@ -86,7 +86,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/BufferGeometryUtils.js examples/js/utils/BufferGeometryUtils.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/BufferGeometryUtils.js examples/jsm/utils/BufferGeometryUtils.js]
 		</p>
 	</body>
 </html>

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

@@ -36,7 +36,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/SceneUtils.js examples/js/utils/SceneUtils.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/SceneUtils.js examples/jsm/utils/SceneUtils.js]
 		</p>
 	</body>
 </html>

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

@@ -56,7 +56,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/utils/SkeletonUtils.js examples/js/utils/SkeletonUtils.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/utils/SkeletonUtils.js examples/jsm/utils/SkeletonUtils.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/animations/CCDIKSolver.html

@@ -21,7 +21,7 @@
 		var ikSolver;
 
 		// Load MMD resources and instantiate CCDIKSolver
-		new THREE.MMDLoader().load(
+		new MMDLoader().load(
 			'models/mmd/miku.pmd',
 			function ( mesh ) {
 
@@ -98,7 +98,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/CCDIKSolver.js examples/js/animation/CCDIKSolver.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/CCDIKSolver.js examples/jsm/animation/CCDIKSolver.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/zh/animations/MMDAnimationHelper.html

@@ -19,10 +19,10 @@
 
 		<code>
 		// Instantiate a helper
-		var helper = new THREE.MMDAnimationHelper();
+		var helper = new MMDAnimationHelper();
 
 		// Load MMD resources and add to helper
-		new THREE.MMDLoader().loadWithAnimation(
+		new MMDLoader().loadWithAnimation(
 			'models/mmd/miku.pmd',
 			'models/mmd/dance.vmd',
 			function ( mmd ) {
@@ -165,7 +165,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDAnimationHelper.js examples/js/animation/MMDAnimationHelper.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/MMDAnimationHelper.js examples/jsm/animation/MMDAnimationHelper.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/zh/animations/MMDPhysics.html

@@ -20,11 +20,11 @@
 		var physics;
 
 		// Load MMD resources and instantiate MMDPhysics
-		new THREE.MMDLoader().load(
+		new MMDLoader().load(
 			'models/mmd/miku.pmd',
 			function ( mesh ) {
 
-				physics = new THREE.MMDPhysics( mesh )
+				physics = new MMDPhysics( mesh )
 				scene.add( mesh );
 
 			}
@@ -108,7 +108,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDPhysics.js examples/js/animation/MMDPhysics.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/MMDPhysics.js examples/jsm/animation/MMDPhysics.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/controls/DeviceOrientationControls.html

@@ -83,7 +83,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DeviceOrientationControls.js examples/js/controls/DeviceOrientationControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/DeviceOrientationControls.js examples/jsm/controls/DeviceOrientationControls.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/controls/DragControls.html

@@ -21,7 +21,7 @@
 		<p>[example:misc_controls_drag misc / controls / drag ]</p>
 
 		<code>
-var controls = new THREE.DragControls( objects, camera, renderer.domElement );
+var controls = new DragControls( objects, camera, renderer.domElement );
 
 // add event listener to highlight dragged objects
 
@@ -124,7 +124,7 @@ controls.addEventListener( 'dragend', function ( event ) {
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/DragControls.js examples/js/controls/DragControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/DragControls.js examples/jsm/controls/DragControls.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/controls/FirstPersonControls.html

@@ -159,7 +159,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FirstPersonControls.js examples/js/controls/FirstPersonControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/FirstPersonControls.js examples/jsm/controls/FirstPersonControls.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/controls/FlyControls.html

@@ -88,7 +88,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/FlyControls.js examples/js/controls/FlyControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/FlyControls.js examples/jsm/controls/FlyControls.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/controls/OrbitControls.html

@@ -32,7 +32,7 @@ var scene = new THREE.Scene();
 
 var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
 
-var controls = new THREE.OrbitControls( camera, renderer.domElement );
+var controls = new OrbitControls( camera, renderer.domElement );
 
 //controls.update() must be called after any manual changes to the camera's transform
 camera.position.set( 0, 20, 100 );
@@ -291,7 +291,7 @@ controls.touches = {
 		<h2>源代码</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/OrbitControls.js examples/js/controls/OrbitControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/OrbitControls.js examples/jsm/controls/OrbitControls.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/controls/PointerLockControls.html

@@ -143,7 +143,7 @@ controls.addEventListener( 'unlock', function () {
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/PointerLockControls.js examples/js/controls/PointerLockControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/PointerLockControls.js examples/jsm/controls/PointerLockControls.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/controls/TrackballControls.html

@@ -201,7 +201,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TrackballControls.js examples/js/controls/TrackballControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/TrackballControls.js examples/jsm/controls/TrackballControls.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/controls/TransformControls.html

@@ -220,7 +220,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TransformControls.js examples/js/controls/TransformControls.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/controls/TransformControls.js examples/jsm/controls/TransformControls.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/exporters/ColladaExporter.html

@@ -22,7 +22,7 @@
 
 		<code>
 		// Instantiate an exporter
-		var exporter = new THREE.ColladaExporter();
+		var exporter = new ColladaExporter();
 
 		// Parse the input and generate the ply output
 		var data = exporter.parse( scene, null, options );
@@ -77,7 +77,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/ColladaExporter.js examples/js/exporters/ColladaExporter.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/ColladaExporter.js examples/jsm/exporters/ColladaExporter.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/exporters/GLTFExporter.html

@@ -38,7 +38,7 @@
 
 		<code>
 		// Instantiate a exporter
-		var exporter = new THREE.GLTFExporter();
+		var exporter = new GLTFExporter();
 
 		// Parse the input and generate the glTF output
 		exporter.parse( scene, function ( gltf ) {
@@ -108,7 +108,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/GLTFExporter.js examples/js/exporters/GLTFExporter.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/GLTFExporter.js examples/jsm/exporters/GLTFExporter.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/exporters/PLYExporter.html

@@ -23,7 +23,7 @@
 
 		<code>
 		// Instantiate an exporter
-		var exporter = new THREE.PLYExporter();
+		var exporter = new PLYExporter();
 
 		// Parse the input and generate the ply output
 		var data = exporter.parse( scene, options );
@@ -60,7 +60,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/PLYExporter.js examples/js/exporters/PLYExporter.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/PLYExporter.js examples/jsm/exporters/PLYExporter.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/geometries/ConvexBufferGeometry.html

@@ -36,7 +36,7 @@
 
 		<p>[example:webgl_geometry_convex geometry / convex ]</p>
 
-		<code>var geometry = new THREE.ConvexBufferGeometry( points );
+		<code>var geometry = new ConvexBufferGeometry( points );
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -53,7 +53,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/ConvexGeometry.js examples/js/geometries/ConvexGeometry.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/ConvexGeometry.js examples/jsm/geometries/ConvexGeometry.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/geometries/ConvexGeometry.html

@@ -35,7 +35,7 @@
 
 		<p>[example:webgl_geometry_convex geometry / convex ]</p>
 
-		<code>var geometry = new THREE.ConvexGeometry( points );
+		<code>var geometry = new ConvexGeometry( points );
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -52,7 +52,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/ConvexGeometry.js examples/js/geometries/ConvexGeometry.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/ConvexGeometry.js examples/jsm/geometries/ConvexGeometry.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/geometries/DecalGeometry.html

@@ -34,7 +34,7 @@
 
 		<p>[example:webgl_decals WebGL / decals]</p>
 
-		<code>var geometry =  new THREE.DecalGeometry( mesh, position, orientation, size );
+		<code>var geometry =  new DecalGeometry( mesh, position, orientation, size );
 		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
 		var mesh = new THREE.Mesh( geometry, material );
 		scene.add( mesh );
@@ -53,7 +53,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/geometries/DecalGeometry.js examples/js/geometries/DecalGeometry.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/DecalGeometry.js examples/jsm/geometries/DecalGeometry.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/helpers/FaceNormalsHelper.html

@@ -31,7 +31,7 @@
 		material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		box = new THREE.Mesh( geometry, material );
 
-		helper = new THREE.FaceNormalsHelper( box, 2, 0x00ff00, 1 );
+		helper = new FaceNormalsHelper( box, 2, 0x00ff00, 1 );
 
 		scene.add( box );
 		scene.add( helper );

+ 1 - 1
docs/examples/zh/helpers/RectAreaLightHelper.html

@@ -21,7 +21,7 @@
 		<code>
 var light = new THREE.RectAreaLight( 0xffffbb, 1.0, 5, 5 );
 
-var helper = new THREE.RectAreaLightHelper( light );
+var helper = new RectAreaLightHelper( light );
 
 scene.add( helper );
 		</code>

+ 1 - 1
docs/examples/zh/helpers/VertexNormalsHelper.html

@@ -30,7 +30,7 @@
 		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		var box = new THREE.Mesh( geometry, material );
 
-		var helper = new THREE.VertexNormalsHelper( box, 2, 0x00ff00, 1 );
+		var helper = new VertexNormalsHelper( box, 2, 0x00ff00, 1 );
 
 		scene.add( box );
 		scene.add( helper );

+ 1 - 1
docs/examples/zh/helpers/VertexTangentsHelper.html

@@ -30,7 +30,7 @@
 		var material = new THREE.MeshNormalMaterial();
 		var box = new THREE.Mesh( geometry, material );
 
-		var helper = new THREE.VertexTangentsHelper( box, 1, 0x00ffff, 1 );
+		var helper = new VertexTangentsHelper( box, 1, 0x00ffff, 1 );
 
 		scene.add( box );
 		scene.add( helper );

+ 5 - 5
docs/examples/zh/loaders/BasisTextureLoader.html

@@ -25,15 +25,15 @@
 			This loader parallelizes the transcoding process across a configurable number
 			of web workers, before transferring the transcoded compressed texture back
 			to the main thread. The required WASM transcoder and JS wrapper are available from the
-			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
+			[link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/basis examples/jsm/libs/basis]
 			directory.
 		</p>
 
 		<h2>Example</h2>
 
 		<code>
-		var basisLoader = new THREE.BasisTextureLoader();
-		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
+		var basisLoader = new BasisTextureLoader();
+		basisLoader.setTranscoderPath( 'examples/jsm/libs/basis/' );
 		basisLoader.detectSupport( renderer );
 		basisLoader.load( 'diffuse.basis', function ( texture ) {
 
@@ -114,7 +114,7 @@
 		</p>
 		<p>
 		The WASM transcoder and JS wrapper are available from the
-		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
+		[link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/basis examples/jsm/libs/basis]
 		directory.
 		</p>
 
@@ -134,7 +134,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/BasisTextureLoader.js examples/js/loaders/BasisTextureLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/BasisTextureLoader.js examples/jsm/loaders/BasisTextureLoader.js]
 		</p>
 	</body>
 </html>

+ 3 - 3
docs/examples/zh/loaders/DRACOLoader.html

@@ -31,10 +31,10 @@
 
 		<code>
 		// Instantiate a loader
-		var loader = new THREE.DRACOLoader();
+		var loader = new DRACOLoader();
 
 		// Specify path to a folder containing WASM/JS decoding libraries.
-		loader.setDecoderPath( '/examples/js/libs/draco/' );
+		loader.setDecoderPath( '/examples/jsm/libs/draco/' );
 
 		// Optional: Pre-fetch Draco WASM/JS module.
 		loader.preload();
@@ -145,7 +145,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/DRACOLoader.js examples/js/loaders/DRACOLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/DRACOLoader.js examples/jsm/loaders/DRACOLoader.js]
 		</p>
 	</body>
 </html>

+ 5 - 5
docs/examples/zh/loaders/GLTFLoader.html

@@ -54,11 +54,11 @@
 
 		<code>
 		// Instantiate a loader
-		var loader = new THREE.GLTFLoader();
+		var loader = new GLTFLoader();
 
 		// Optional: Provide a DRACOLoader instance to decode compressed mesh data
-		var dracoLoader = new THREE.DRACOLoader();
-		dracoLoader.setDecoderPath( '/examples/js/libs/draco/' );
+		var dracoLoader = new DRACOLoader();
+		dracoLoader.setDecoderPath( '/examples/jsm/libs/draco/' );
 		loader.setDRACOLoader( dracoLoader );
 
 		// Load a glTF resource
@@ -178,7 +178,7 @@
 		[page:DRACOLoader dracoLoader] — THREE.DRACOLoader的实例,用于解码使用KHR_draco_mesh_compression扩展压缩过的文件。
 		</p>
 		<p>
-		请参阅[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/draco#readme readme]来了解Draco及其解码器的详细信息。
+		请参阅[link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/draco#readme readme]来了解Draco及其解码器的详细信息。
 		</p>
 
 		<h3>[method:null setDDSLoader]( [param:DDSLoader ddsLoader] )</h3>
@@ -200,7 +200,7 @@
 		<h2>源代码</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/GLTFLoader.js examples/js/loaders/GLTFLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/GLTFLoader.js examples/jsm/loaders/GLTFLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/loaders/MMDLoader.html

@@ -22,7 +22,7 @@
 
 		<code>
 		// Instantiate a loader
-		var loader = new THREE.MMDLoader();
+		var loader = new MMDLoader();
 
 		// Load a MMD model
 		loader.load(
@@ -118,7 +118,7 @@
 		<h2>源代码</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MMDLoader.js examples/js/loaders/MMDLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/MMDLoader.js examples/jsm/loaders/MMDLoader.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/loaders/MTLLoader.html

@@ -73,7 +73,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/[name].js examples/js/loaders/[name].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/[name].js examples/jsm/loaders/[name].js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/loaders/OBJLoader.html

@@ -24,7 +24,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.OBJLoader();
+		var loader = new OBJLoader();
 
 		// load a resource
 		loader.load(
@@ -102,7 +102,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJLoader.js examples/js/loaders/OBJLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/OBJLoader.js examples/jsm/loaders/OBJLoader.js]
 		</p>
 	</body>
 </html>

+ 1 - 1
docs/examples/zh/loaders/OBJLoader2.html

@@ -22,7 +22,7 @@
 
 		<code>
 		// instantiate the loader
-		let loader = new THREE.OBJLoader2();
+		let loader = new OBJLoader2();
 
 		// function called on successful load
 		function callbackOnLoad ( object3d ) {

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

@@ -22,7 +22,7 @@
 		<code>
 
 		// instantiate a loader
-		var loader = new THREE.PCDLoader();
+		var loader = new PCDLoader();
 
 		// load a resource
 		loader.load(
@@ -99,7 +99,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PCDLoader.js examples/js/loaders/PCDLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PCDLoader.js examples/jsm/loaders/PCDLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/loaders/PDBLoader.html

@@ -20,7 +20,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.PDBLoader();
+		var loader = new PDBLoader();
 
 		// load a PDB resource
 		loader.load(
@@ -92,7 +92,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PDBLoader.js examples/js/loaders/PDBLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PDBLoader.js examples/jsm/loaders/PDBLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/loaders/PRWMLoader.html

@@ -24,7 +24,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.PRWMLoader();
+		var loader = new PRWMLoader();
 
 		// load a resource
 		loader.load(
@@ -99,7 +99,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PRWMLoader.js examples/jsm/loaders/PRWMLoader.js]
 		</p>
 
 	</body>

+ 2 - 2
docs/examples/zh/loaders/SVGLoader.html

@@ -20,7 +20,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.SVGLoader();
+		var loader = new SVGLoader();
 
 		// load a SVG resource
 		loader.load(
@@ -105,7 +105,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js examples/js/loaders/SVGLoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/SVGLoader.js examples/jsm/loaders/SVGLoader.js]
 		</p>
 	</body>
 </html>

+ 2 - 2
docs/examples/zh/loaders/TGALoader.html

@@ -20,7 +20,7 @@
 
 		<code>
 		// instantiate a loader
-		var loader = new THREE.TGALoader();
+		var loader = new TGALoader();
 
 		// load a resource
 		var texture = loader.load(
@@ -84,7 +84,7 @@
 		<h2>Source</h2>
 
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/TGALoader.js examples/js/loaders/TGALoader.js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/TGALoader.js examples/jsm/loaders/TGALoader.js]
 		</p>
 	</body>
 </html>

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác