Mr.doob 1 year ago
parent
commit
5147fc6269
100 changed files with 1173 additions and 809 deletions
  1. 44 53
      build/three.cjs
  2. 44 53
      build/three.module.js
  3. 0 0
      build/three.module.min.js
  4. 7 8
      docs/api/ar/constants/Textures.html
  5. 1 1
      docs/api/ar/core/Uniform.html
  6. 0 4
      docs/api/ar/materials/ShaderMaterial.html
  7. 1 3
      docs/api/ar/objects/SkinnedMesh.html
  8. 0 47
      docs/api/ar/renderers/WebGL1Renderer.html
  9. 1 1
      docs/api/ar/renderers/WebGLRenderer.html
  10. 2 1
      docs/api/en/animation/AnimationMixer.html
  11. 7 11
      docs/api/en/constants/Textures.html
  12. 1 1
      docs/api/en/core/Uniform.html
  13. 1 1
      docs/api/en/materials/Material.html
  14. 1 6
      docs/api/en/materials/ShaderMaterial.html
  15. 0 7
      docs/api/en/objects/BatchedMesh.html
  16. 1 1
      docs/api/en/objects/InstancedMesh.html
  17. 1 3
      docs/api/en/objects/SkinnedMesh.html
  18. 0 48
      docs/api/en/renderers/WebGL1Renderer.html
  19. 1 2
      docs/api/en/renderers/WebGLRenderTarget.html
  20. 1 1
      docs/api/en/renderers/WebGLRenderer.html
  21. 6 0
      docs/api/en/scenes/Scene.html
  22. 1 2
      docs/api/en/textures/Data3DTexture.html
  23. 1 2
      docs/api/en/textures/DataArrayTexture.html
  24. 1 3
      docs/api/en/textures/DepthTexture.html
  25. 2 8
      docs/api/fr/constants/Textures.html
  26. 2 6
      docs/api/fr/materials/ShaderMaterial.html
  27. 6 11
      docs/api/it/constants/Textures.html
  28. 1 1
      docs/api/it/core/Uniform.html
  29. 2 6
      docs/api/it/materials/ShaderMaterial.html
  30. 1 3
      docs/api/it/objects/SkinnedMesh.html
  31. 0 52
      docs/api/it/renderers/WebGL1Renderer.html
  32. 1 1
      docs/api/it/renderers/WebGLRenderer.html
  33. 1 1
      docs/api/it/textures/Data3DTexture.html
  34. 0 1
      docs/api/it/textures/DataArrayTexture.html
  35. 0 2
      docs/api/it/textures/DepthTexture.html
  36. 2 7
      docs/api/ko/constants/Textures.html
  37. 1 1
      docs/api/ko/core/Uniform.html
  38. 2 8
      docs/api/pt-br/constants/Textures.html
  39. 2 8
      docs/api/zh/constants/Textures.html
  40. 2 2
      docs/api/zh/core/Raycaster.html
  41. 1 1
      docs/api/zh/core/Uniform.html
  42. 1 6
      docs/api/zh/materials/ShaderMaterial.html
  43. 0 7
      docs/api/zh/objects/BatchedMesh.html
  44. 1 3
      docs/api/zh/objects/SkinnedMesh.html
  45. 0 52
      docs/api/zh/renderers/WebGL1Renderer.html
  46. 1 1
      docs/api/zh/renderers/WebGLRenderTarget.html
  47. 1 1
      docs/api/zh/renderers/WebGLRenderer.html
  48. 1 1
      docs/api/zh/textures/Data3DTexture.html
  49. 1 1
      docs/api/zh/textures/DataArrayTexture.html
  50. 0 1
      docs/api/zh/textures/DepthTexture.html
  51. 2 2
      docs/examples/en/geometries/TextGeometry.html
  52. 4 4
      docs/examples/en/loaders/3DMLoader.html
  53. 2 2
      docs/examples/zh/geometries/TextGeometry.html
  54. 4 4
      docs/examples/zh/loaders/3DMLoader.html
  55. 0 5
      docs/list.json
  56. 3 3
      docs/manual/ar/introduction/Installation.html
  57. 2 2
      docs/manual/en/introduction/Installation.html
  58. 2 2
      docs/manual/fr/introduction/Creating-a-scene.html
  59. 3 3
      docs/manual/fr/introduction/Installation.html
  60. 2 2
      docs/manual/it/introduction/Creating-a-scene.html
  61. 3 3
      docs/manual/it/introduction/Installation.html
  62. 2 2
      docs/manual/ja/introduction/Creating-a-scene.html
  63. 3 3
      docs/manual/ja/introduction/Installation.html
  64. 2 2
      docs/manual/ko/introduction/Creating-a-scene.html
  65. 3 3
      docs/manual/ko/introduction/Installation.html
  66. 2 2
      docs/manual/pt-br/introduction/Creating-a-scene.html
  67. 3 3
      docs/manual/pt-br/introduction/Installation.html
  68. 2 2
      docs/manual/ru/introduction/Creating-a-scene.html
  69. 3 3
      docs/manual/ru/introduction/Installation.html
  70. 2 2
      docs/manual/zh/introduction/Installation.html
  71. 2 2
      editor/index.html
  72. 2 2
      editor/js/Loader.js
  73. 3 3
      editor/js/Menubar.Edit.js
  74. 1 1
      editor/js/Sidebar.Geometry.js
  75. 1 1
      editor/js/Sidebar.Material.js
  76. 1 1
      editor/js/Sidebar.Object.js
  77. 3 3
      editor/js/Sidebar.Project.Image.js
  78. 1 1
      editor/js/Sidebar.Script.js
  79. 2 1
      editor/js/Sidebar.Settings.js
  80. 351 0
      editor/js/Strings.js
  81. 1 1
      editor/js/Viewport.ViewHelper.js
  82. 8 1
      examples/files.json
  83. 3 3
      examples/jsm/controls/TransformControls.js
  84. 21 4
      examples/jsm/exporters/GLTFExporter.js
  85. 15 0
      examples/jsm/exporters/USDZExporter.js
  86. 10 2
      examples/jsm/geometries/TextGeometry.js
  87. 7 9
      examples/jsm/interactive/HTMLMesh.js
  88. 338 192
      examples/jsm/libs/fflate.module.js
  89. 0 2
      examples/jsm/lines/LineMaterial.js
  90. 2 0
      examples/jsm/loaders/3MFLoader.js
  91. 89 19
      examples/jsm/loaders/EXRLoader.js
  92. 6 0
      examples/jsm/loaders/GLTFLoader.js
  93. 2 6
      examples/jsm/loaders/KTX2Loader.js
  94. 0 15
      examples/jsm/loaders/LUT3dlLoader.js
  95. 0 14
      examples/jsm/loaders/LUTCubeLoader.js
  96. 0 14
      examples/jsm/loaders/LUTImageLoader.js
  97. 16 0
      examples/jsm/loaders/RGBMLoader.js
  98. 0 6
      examples/jsm/misc/GPUComputationRenderer.js
  99. 6 1
      examples/jsm/nodes/Nodes.js
  100. 78 0
      examples/jsm/nodes/accessors/BatchNode.js

File diff suppressed because it is too large
+ 44 - 53
build/three.cjs


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


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


+ 7 - 8
docs/api/ar/constants/Textures.html

@@ -124,6 +124,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type 
 		THREE.UnsignedShort5551Type 
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 		<p>
 		<p>
 			للاستخدام مع خاصية [page:Texture.type type] للقوام ، التي يجب
 			للاستخدام مع خاصية [page:Texture.type type] للقوام ، التي يجب
@@ -139,6 +140,7 @@
 		THREE.RedIntegerFormat 
 		THREE.RedIntegerFormat 
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat 
 		THREE.RGIntegerFormat 
+		THREE.RGBFormat
 		THREE.RGBAFormat 
 		THREE.RGBAFormat 
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat 
 		THREE.LuminanceFormat 
@@ -154,21 +156,21 @@
 			ويقرأ فقط المكون الألفا. <br /> <br />
 			ويقرأ فقط المكون الألفا. <br /> <br />
 		 
 		 
 			[page:constant RedFormat] يتجاهل المكونات الخضراء والزرقاء ويقرأ
 			[page:constant RedFormat] يتجاهل المكونات الخضراء والزرقاء ويقرأ
-			فقط المكون الأحمر. (يمكن استخدامه فقط مع سياق WebGL 2).
+			فقط المكون الأحمر.
 			<br /> <br />
 			<br /> <br />
 		 
 		 
 			[page:constant RedIntegerFormat] يتجاهل المكونات الخضراء والزرقاء
 			[page:constant RedIntegerFormat] يتجاهل المكونات الخضراء والزرقاء
 			ويقرأ فقط المكون الأحمر. يتم قراءة `texels` كأعداد صحيحة بدلاً من
 			ويقرأ فقط المكون الأحمر. يتم قراءة `texels` كأعداد صحيحة بدلاً من
-			نقطة عائمة. (يمكن استخدامه فقط مع سياق WebGL 2).
+			نقطة عائمة.
 			<br /> <br />
 			<br /> <br />
 		 
 		 
 			[page:constant RGFormat] يتجاهل المكونات الألفا والزرقاء ويقرأ
 			[page:constant RGFormat] يتجاهل المكونات الألفا والزرقاء ويقرأ
-			المكونات الحمراء والخضراء. (يمكن استخدامه فقط مع سياق WebGL 2).
+			المكونات الحمراء والخضراء.
 			<br /> <br />
 			<br /> <br />
 		 
 		 
 			[page:constant RGIntegerFormat] يتجاهل المكونات الألفا والزرقاء
 			[page:constant RGIntegerFormat] يتجاهل المكونات الألفا والزرقاء
 			ويقرأ المكونات الحمراء والخضراء. يتم قراءة `texels` كأعداد صحيحة بدلاً من
 			ويقرأ المكونات الحمراء والخضراء. يتم قراءة `texels` كأعداد صحيحة بدلاً من
-			نقطة عائمة. (يمكن استخدامه فقط مع سياق WebGL 2).
+			نقطة عائمة.
 			<br /> <br />
 			<br /> <br />
 		 
 		 
 			[page:constant RGBAFormat] هو الافتراضي ويلتقط المكونات الحمراء والخضراء والزرقاء
 			[page:constant RGBAFormat] هو الافتراضي ويلتقط المكونات الحمراء والخضراء والزرقاء
@@ -176,7 +178,7 @@
 		 
 		 
 			[page:constant RGBAIntegerFormat] هو الافتراضي ويلتقط المكونات الحمراء والخضراء ،
 			[page:constant RGBAIntegerFormat] هو الافتراضي ويلتقط المكونات الحمراء والخضراء ،
 			الزرقاء والألفا. يتم قراءة `texels` كأعداد صحيحة بدلاً من
 			الزرقاء والألفا. يتم قراءة `texels` كأعداد صحيحة بدلاً من
-			نقطة عائمة. (يمكن استخدامه فقط مع سياق WebGL 2).
+			نقطة عائمة.
 			<br /> <br />
 			<br /> <br />
 		 
 		 
 			[page:constant LuminanceFormat] يقرأ كل عنصر كمكون إضاءة واحد
 			[page:constant LuminanceFormat] يقرأ كل عنصر كمكون إضاءة واحد
@@ -378,9 +380,6 @@
 		</code>
 		</code>
 
 
 		<p>
 		<p>
-			تنبيه: تغيير التنسيق الداخلي للقوام سيؤثر فقط على
-			القوام عند استخدام سياق WebGL 2. <br /> <br />
-		 
 			للاستخدام مع خاصية [page:Texture.internalFormat internalFormat] للقوام ،
 			للاستخدام مع خاصية [page:Texture.internalFormat internalFormat] للقوام ،
 			هذه تحدد كيفية تخزين عناصر قوام ، أو `texels` ،
 			هذه تحدد كيفية تخزين عناصر قوام ، أو `texels` ،
 			على وحدة معالجة الرسومات. <br /> <br />
 			على وحدة معالجة الرسومات. <br /> <br />

+ 1 - 1
docs/api/ar/core/Uniform.html

@@ -55,7 +55,7 @@
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td>uint (WebGL 2)</td>
+					<td>uint</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>

+ 0 - 4
docs/api/ar/materials/ShaderMaterial.html

@@ -324,10 +324,6 @@ this.defaultAttributeValues = {
 			كائن يحتوي على الخصائص التالية:
 			كائن يحتوي على الخصائص التالية:
 			<code>
 			<code>
 this.extensions = { 
 this.extensions = { 
-	derivatives: false, // set to use derivatives
-	fragDepth: false, // set to use fragment depth values 
-	drawBuffers: false, // set to use draw buffers 
-	shaderTextureLOD: false, // set to use shader texture LOD
 	clipCullDistance: false, // set to use vertex shader clipping
 	clipCullDistance: false, // set to use vertex shader clipping
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 };
 };

+ 1 - 3
docs/api/ar/objects/SkinnedMesh.html

@@ -13,9 +13,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 		شبكة لديها [page:Skeleton] مع [page:Bone bones] يمكن استخدامها بعد ذلك
 		شبكة لديها [page:Skeleton] مع [page:Bone bones] يمكن استخدامها بعد ذلك
-		لتحريك رؤوس الهندسة.<br /> <br />
-			
-		يمكن استخدام [name] فقط مع WebGL 2.
+		لتحريك رؤوس الهندسة.
 		</p>
 		</p>
 			
 			
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>

+ 0 - 47
docs/api/ar/renderers/WebGL1Renderer.html

@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="ar">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body class="rtl">
-		[page:WebGLRenderer] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-		منذ r118 [page:WebGLRenderer] يستخدم تلقائيًا سياق عرض WebGL 2. عند الترقية
-		مشروع موجود إلى => r118 ، قد تتعطل التطبيقات لسببين:
-		</p>
-		<ul>
-			<li>يجب أن يكون كود الشادر المخصص مطابقًا لـ GLSL 3.0.</li>
-			<li>يجب تغيير فحوصات ملحقات WebGL 1.</li>
-		</ul>
-		<p>
-		إذا لم تتمكن من تحمل الوقت لترقية الكود الخاص بك ولكنك ما زلت ترغب في استخدام
-		أحدث إصدار ، يمكنك استخدام [name]. هذه الإصدارة من المُعالج ستفرض
-		سياق عرض WebGL 1.
-		</p>
-		 
-		<h2>المنشئ (Constructor)</h2>
-		 
-		<h3>[name]( [param:Object parameters] )</h3>
-		<p>ينشئ [name] جديدًا.</p>
-		 
-		<h2>الخصائص (Properties)</h2>
-		<p>انظر فئة [page:WebGLRenderer] الأساسية للحصول على خصائص شائعة.</p>
-		 
-		<h3>[property:Boolean isWebGL1Renderer]</h3>
-		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
-		 
-		<h2>الطرق (Methods)</h2>
-		<p>انظر فئة [page:WebGLRenderer] الأساسية للحصول على طرق شائعة.</p>
-		 
-		<h2>المصدر (Source)</h2>
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

+ 1 - 1
docs/api/ar/renderers/WebGLRenderer.html

@@ -50,7 +50,7 @@
 		 
 		 
 		[page:Boolean stencil] - ما إذا كانت ذاكرة التخزين المؤقت للرسم لديها
 		[page:Boolean stencil] - ما إذا كانت ذاكرة التخزين المؤقت للرسم لديها
 		[link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer] من على
 		[link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer] من على
-		الأقل 8 بت. الافتراضي هو `true`. <br />
+		الأقل 8 بت. الافتراضي هو `false`. <br />
 		 
 		 
 		[page:Boolean preserveDrawingBuffer] - ما إذا كان سيتم الحفاظ على المخابئ
 		[page:Boolean preserveDrawingBuffer] - ما إذا كان سيتم الحفاظ على المخابئ
 		حتى يتم مسحها يدويًا أو استبدالها. الافتراضي هو `false`. <br />
 		حتى يتم مسحها يدويًا أو استبدالها. الافتراضي هو `false`. <br />

+ 2 - 1
docs/api/en/animation/AnimationMixer.html

@@ -102,7 +102,8 @@
 		<p>
 		<p>
 			Deallocates all memory resources for a root object. Before using this
 			Deallocates all memory resources for a root object. Before using this
 			method make sure to call [page:AnimationAction.stop]() for all related
 			method make sure to call [page:AnimationAction.stop]() for all related
-			actions.
+			actions or alternatively [page:.stopAllAction]() when the mixer operates 
+			on a single root.
 		</p>
 		</p>
 
 
 		<h3>[method:undefined uncacheAction]([param:AnimationClip clip], [param:Object3D optionalRoot])
 		<h3>[method:undefined uncacheAction]([param:AnimationClip clip], [param:Object3D optionalRoot])

+ 7 - 11
docs/api/en/constants/Textures.html

@@ -136,6 +136,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type 
 		THREE.UnsignedShort5551Type 
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 		<p>
 		<p>
 			For use with a texture's [page:Texture.type type] property, which must
 			For use with a texture's [page:Texture.type type] property, which must
@@ -151,6 +152,7 @@
 		THREE.RedIntegerFormat 
 		THREE.RedIntegerFormat 
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat 
 		THREE.RGIntegerFormat 
+		THREE.RGBFormat
 		THREE.RGBAFormat 
 		THREE.RGBAFormat 
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat 
 		THREE.LuminanceFormat 
@@ -166,24 +168,21 @@
 			and reads just the alpha component.<br /><br />
 			and reads just the alpha component.<br /><br />
 
 
 			[page:constant RedFormat] discards the green and blue components and reads
 			[page:constant RedFormat] discards the green and blue components and reads
-			just the red component. (can only be used with a WebGL 2 rendering
-			context).
+			just the red component.
 			<br /><br />
 			<br /><br />
 
 
 			[page:constant RedIntegerFormat] discards the green and blue components
 			[page:constant RedIntegerFormat] discards the green and blue components
 			and reads just the red component. The texels are read as integers instead
 			and reads just the red component. The texels are read as integers instead
-			of floating point. (can only be used with a WebGL 2 rendering context).
+			of floating point.
 			<br /><br />
 			<br /><br />
 
 
 			[page:constant RGFormat] discards the alpha, and blue components and reads
 			[page:constant RGFormat] discards the alpha, and blue components and reads
-			the red, and green components. (can only be used with a WebGL 2 rendering
-			context).
+			the red, and green components.
 			<br /><br />
 			<br /><br />
 
 
 			[page:constant RGIntegerFormat] discards the alpha, and blue components
 			[page:constant RGIntegerFormat] discards the alpha, and blue components
 			and reads the red, and green components. The texels are read as integers
 			and reads the red, and green components. The texels are read as integers
-			instead of floating point. (can only be used with a WebGL 2 rendering
-			context).
+			instead of floating point.
 			<br /><br />
 			<br /><br />
 
 
 			[page:constant RGBAFormat] is the default and reads the red, green, blue
 			[page:constant RGBAFormat] is the default and reads the red, green, blue
@@ -191,7 +190,7 @@
 
 
 			[page:constant RGBAIntegerFormat] is the default and reads the red, green,
 			[page:constant RGBAIntegerFormat] is the default and reads the red, green,
 			blue and alpha components. The texels are read as integers instead of
 			blue and alpha components. The texels are read as integers instead of
-			floating point. (can only be used with a WebGL 2 rendering context).
+			floating point.
 			<br /><br />
 			<br /><br />
 
 
 			[page:constant LuminanceFormat] reads each element as a single luminance
 			[page:constant LuminanceFormat] reads each element as a single luminance
@@ -393,9 +392,6 @@
 		</code>
 		</code>
 
 
 		<p>
 		<p>
-			Heads up: changing the internal format of a texture will only affect the
-			texture when using a WebGL 2 rendering context.<br /><br />
-
 			For use with a texture's [page:Texture.internalFormat internalFormat]
 			For use with a texture's [page:Texture.internalFormat internalFormat]
 			property, these define how elements of a texture, or `texels`, are stored
 			property, these define how elements of a texture, or `texels`, are stored
 			on the GPU.<br /><br />
 			on the GPU.<br /><br />

+ 1 - 1
docs/api/en/core/Uniform.html

@@ -55,7 +55,7 @@
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td>uint (WebGL 2)</td>
+					<td>uint</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>

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

@@ -340,7 +340,7 @@
 		<h3>[property:Boolean toneMapped]</h3>
 		<h3>[property:Boolean toneMapped]</h3>
 		<p>
 		<p>
 			Defines whether this material is tone mapped according to the renderer's			
 			Defines whether this material is tone mapped according to the renderer's			
-			[page:WebGLRenderer.toneMapping toneMapping] setting. It is ignored when rendering to a render target.
+			[page:WebGLRenderer.toneMapping toneMapping] setting. It is ignored when rendering to a render target or using post processing.
 			Default is `true`.
 			Default is `true`.
 		</p>
 		</p>
 
 

+ 1 - 6
docs/api/en/materials/ShaderMaterial.html

@@ -342,10 +342,6 @@ this.defaultAttributeValues = {
 			An object with the following properties:
 			An object with the following properties:
 			<code>
 			<code>
 this.extensions = { 
 this.extensions = { 
-	derivatives: false, // set to use derivatives
-	fragDepth: false, // set to use fragment depth values 
-	drawBuffers: false, // set to use draw buffers 
-	shaderTextureLOD: false, // set to use shader texture LOD
 	clipCullDistance: false, // set to use vertex shader clipping
 	clipCullDistance: false, // set to use vertex shader clipping
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 };
 };
@@ -368,8 +364,7 @@ this.extensions = {
 
 
 		<h3>[property:String glslVersion]</h3>
 		<h3>[property:String glslVersion]</h3>
 		<p>
 		<p>
-			Defines the GLSL version of custom shader code. Only relevant for WebGL 2
-			in order to define whether to specify GLSL 3.0 or not. Valid values are
+			Defines the GLSL version of custom shader code. Valid values are
 			`THREE.GLSL1` or `THREE.GLSL3`. Default is `null`.
 			`THREE.GLSL1` or `THREE.GLSL3`. Default is `null`.
 		</p>
 		</p>
 
 

+ 0 - 7
docs/api/en/objects/BatchedMesh.html

@@ -213,13 +213,6 @@
 			Replaces the geometry at `index` with the provided geometry. Throws an error if there is not enough space reserved for geometry at the index.
 			Replaces the geometry at `index` with the provided geometry. Throws an error if there is not enough space reserved for geometry at the index.
 		</p>
 		</p>
 
 
-		<h3>
-			[method:this deleteGeometry]( [param:Integer index] )
-		</h3>
-		<p>
-			Marks the geometry at the given index as deleted and to not be rendered anymore.
-		</p>
-
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>

+ 1 - 1
docs/api/en/objects/InstancedMesh.html

@@ -189,7 +189,7 @@
 			range [0, count].
 			range [0, count].
 		</p>
 		</p>
 		<p>
 		<p>
-			[page:Matrix4 matrix]: A mesh with [page:Mesh.morphTargetInfluences .morphTargetInfluences] property containing the morph target weights
+			[page:Mesh mesh]: A mesh with [page:Mesh.morphTargetInfluences .morphTargetInfluences] property containing the morph target weights
 			of a single instance.
 			of a single instance.
 		</p>
 		</p>
 		<p>
 		<p>

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

@@ -13,9 +13,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			A mesh that has a [page:Skeleton] with [page:Bone bones] that can then be
 			A mesh that has a [page:Skeleton] with [page:Bone bones] that can then be
-			used to animate the vertices of the geometry.<br /><br />
-
-			[name] can only be used with WebGL 2.
+			used to animate the vertices of the geometry.
 		</p>
 		</p>
 
 
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>

+ 0 - 48
docs/api/en/renderers/WebGL1Renderer.html

@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:WebGLRenderer] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-			Since r118 [page:WebGLRenderer] automatically uses a WebGL 2 rendering
-			context. When upgrading an existing project to => r118, applications might
-			break because of two reasons:
-		</p>
-		<ul>
-			<li>Custom shader code needs to be GLSL 3.0 conform.</li>
-			<li>WebGL 1 extension checks have to be changed.</li>
-		</ul>
-		<p>
-			If you can't afford the time to upgrade your code but still want to use
-			the latest version, you can use [name]. This version of the renderer will
-			enforce a WebGL 1 rendering context.
-		</p>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [param:Object parameters] )</h3>
-		<p>Creates a new [name].</p>
-
-		<h2>Properties</h2>
-		<p>See the base [page:WebGLRenderer] class for common properties.</p>
-
-		<h3>[property:Boolean isWebGL1Renderer]</h3>
-		<p>Read-only flag to check if a given object is of type [name].</p>
-
-		<h2>Methods</h2>
-		<p>See the base [page:WebGLRenderer] class for common methods.</p>
-
-		<h2>Source</h2>
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

+ 1 - 2
docs/api/en/renderers/WebGLRenderTarget.html

@@ -103,8 +103,7 @@
 
 
 		<h3>[property:Number samples]</h3>
 		<h3>[property:Number samples]</h3>
 		<p>
 		<p>
-			Defines the count of MSAA samples. Can only be used with WebGL 2. Default
-			is `0`.
+			Defines the count of MSAA samples. Default is `0`.
 		</p>
 		</p>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>

+ 1 - 1
docs/api/en/renderers/WebGLRenderer.html

@@ -49,7 +49,7 @@
 
 
 			[page:Boolean stencil] - whether the drawing buffer has a
 			[page:Boolean stencil] - whether the drawing buffer has a
 			[link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer] of at
 			[link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer] of at
-			least 8 bits. Default is `true`.<br />
+			least 8 bits. Default is `false`.<br />
 
 
 			[page:Boolean preserveDrawingBuffer] - whether to preserve the buffers
 			[page:Boolean preserveDrawingBuffer] - whether to preserve the buffers
 			until manually cleared or overwritten. Default is `false`.<br />
 			until manually cleared or overwritten. Default is `false`.<br />

+ 6 - 0
docs/api/en/scenes/Scene.html

@@ -62,6 +62,12 @@
 			[page:MeshStandardMaterial.envMap]. Default is `null`.
 			[page:MeshStandardMaterial.envMap]. Default is `null`.
 		</p>
 		</p>
 
 
+		<h3>[property:Float environmentIntensity]</h3>
+		<p>
+			Attenuates the color of the environment. Only influences environment maps
+			assigned to [page:Scene.environment]. Default is `1`.
+		</p>
+
 		<h3>[property:Euler environmentRotation]</h3>
 		<h3>[property:Euler environmentRotation]</h3>
 		<p>
 		<p>
 			The rotation of the environment map in radians. Only influences physical materials 
 			The rotation of the environment map in radians. Only influences physical materials 

+ 1 - 2
docs/api/en/textures/Data3DTexture.html

@@ -13,8 +13,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			Creates a three-dimensional texture from raw data, with parameters to
 			Creates a three-dimensional texture from raw data, with parameters to
-			divide it into width, height, and depth. This type of texture can only be
-			used with a WebGL 2 rendering context.
+			divide it into width, height, and depth.
 		</p>
 		</p>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>

+ 1 - 2
docs/api/en/textures/DataArrayTexture.html

@@ -13,8 +13,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			Creates an array of textures directly from raw data, width and height and
 			Creates an array of textures directly from raw data, width and height and
-			depth. This type of texture can only be used with a WebGL 2 rendering
-			context.
+			depth.
 		</p>
 		</p>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>

+ 1 - 3
docs/api/en/textures/DepthTexture.html

@@ -13,9 +13,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			This class can be used to automatically save the depth information of a
 			This class can be used to automatically save the depth information of a
-			rendering into a texture. When using a WebGL 1 rendering context, [name]
-			requires support for the
-			[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/ WEBGL_depth_texture] extension.
+			rendering into a texture.
 		</p>
 		</p>
 
 
 		<h2>Examples</h2>
 		<h2>Examples</h2>

+ 2 - 8
docs/api/fr/constants/Textures.html

@@ -129,6 +129,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 		<p>
 		<p>
 		À utiliser avec la propriété [page:Texture.type type] d'une texture, qui doit correspondre au format correct. Voir ci-dessous pour plus de détails.<br /><br />
 		À utiliser avec la propriété [page:Texture.type type] d'une texture, qui doit correspondre au format correct. Voir ci-dessous pour plus de détails.<br /><br />
@@ -143,6 +144,7 @@
 		THREE.RedIntegerFormat
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
 		THREE.RGIntegerFormat
+		THREE.RGBFormat
 		THREE.RGBAFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
 		THREE.LuminanceFormat
@@ -160,23 +162,19 @@
 
 
 		[page:constant RedIntegerFormat] supprime les composants vert et bleu et lit uniquement le composant rouge.
 		[page:constant RedIntegerFormat] supprime les composants vert et bleu et lit uniquement le composant rouge.
 		Les texels sont lus comme des entiers au lieu de points flottants.
 		Les texels sont lus comme des entiers au lieu de points flottants.
-		(ne peut être utilisé qu'avec un contexte de rendu WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGFormat] supprime les composants alpha et bleu et lit les composants rouge et vert.
 		[page:constant RGFormat] supprime les composants alpha et bleu et lit les composants rouge et vert.
-		(ne peut être utilisé qu'avec un contexte de rendu WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGIntegerFormat] supprime les composants alpha et bleu et lit les composants rouge et vert.
 		[page:constant RGIntegerFormat] supprime les composants alpha et bleu et lit les composants rouge et vert.
 		Les texels sont lus comme des entiers au lieu de points flottants.
 		Les texels sont lus comme des entiers au lieu de points flottants.
-		(ne peut être utilisé qu'avec un contexte de rendu WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGBAFormat] est la valeur par défaut et lit les composants rouge, vert, bleu et alpha.<br /><br />
 		[page:constant RGBAFormat] est la valeur par défaut et lit les composants rouge, vert, bleu et alpha.<br /><br />
 
 
 		[page:constant RGBAIntegerFormat] est la valeur par défaut et lit les composants rouge, vert, bleu et alpha.
 		[page:constant RGBAIntegerFormat] est la valeur par défaut et lit les composants rouge, vert, bleu et alpha.
 		Les texels sont lus comme des entiers au lieu de points flottants.
 		Les texels sont lus comme des entiers au lieu de points flottants.
-		(ne peut être utilisé qu'avec un contexte de rendu WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant LuminanceFormat] lit chaque élément comme une seule composante de luminance.
 		[page:constant LuminanceFormat] lit chaque élément comme une seule composante de luminance.
@@ -346,10 +344,6 @@
 		</code>
 		</code>
 
 
 		<p>
 		<p>
-
-		Attention : changer le format interne d'une texture n'affectera que le
-		texture lors de l'utilisation d'un contexte de rendu WebGL 2.<br /><br />
-
 		À utiliser avec la propriété de texture [page:Texture.internalFormat internalFormat],
 		À utiliser avec la propriété de texture [page:Texture.internalFormat internalFormat],
 		ceux-ci définissent comment les éléments d'une texture, ou "texels", sont stockés sur le GPU.<br /><br />
 		ceux-ci définissent comment les éléments d'une texture, ou "texels", sont stockés sur le GPU.<br /><br />
 
 

+ 2 - 6
docs/api/fr/materials/ShaderMaterial.html

@@ -313,10 +313,6 @@ et la page [page:BufferAttribute] pour un aperçu détaillé de l'API `BufferAtt
 		Un objet avec les propriétés suivantes :
 		Un objet avec les propriétés suivantes :
 		<code>
 		<code>
 			this.extensions = {
 			this.extensions = {
-				derivatives: false, // set to use derivatives
-				fragDepth: false, // set to use fragment depth values
-				drawBuffers: false, // set to use draw buffers
-				shaderTextureLOD: false, // set to use shader texture LOD
 				clipCullDistance: false, // set to use vertex shader clipping
 				clipCullDistance: false, // set to use vertex shader clipping
 				multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 				multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 			};
 			};
@@ -340,8 +336,8 @@ et la page [page:BufferAttribute] pour un aperçu détaillé de l'API `BufferAtt
 
 
 		<h3>[property:String glslVersion]</h3>
 		<h3>[property:String glslVersion]</h3>
 		<p>
 		<p>
-			Définit la version GLSL du code de shader personnalisé. Pertinent uniquement pour WebGL 2 afin de définir s'il faut spécifier
-			GLSL 3.0 ou pas. Les valeurs valides sont `THREE.GLSL1` ou `THREE.GLSL3`. La valeur par défaut est `null`.
+			Définit la version GLSL du code de shader personnalisé. Les valeurs valides sont `THREE.GLSL1` ou `THREE.GLSL3`.
+			La valeur par défaut est `null`.
 		</p>
 		</p>
 
 
 		<h3>[property:String index0AttributeName]</h3>
 		<h3>[property:String index0AttributeName]</h3>

+ 6 - 11
docs/api/it/constants/Textures.html

@@ -125,6 +125,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 		<p>
 		<p>
       Da usare con la proprietà [page:Texture.type type] della texture, la quale deve corrispondere al formato corretto. Vedi sotto per i dettagli.<br /><br />
       Da usare con la proprietà [page:Texture.type type] della texture, la quale deve corrispondere al formato corretto. Vedi sotto per i dettagli.<br /><br />
@@ -139,6 +140,7 @@
 		THREE.RedIntegerFormat
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
 		THREE.RGIntegerFormat
+		THREE.RGBFormat
 		THREE.RGBAFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
 		THREE.LuminanceFormat
@@ -155,21 +157,17 @@
       [page:constant RedFormat] elimina i componenti verde e blu e legge solo il componente rosso.<br /><br />
       [page:constant RedFormat] elimina i componenti verde e blu e legge solo il componente rosso.<br /><br />
 
 
       [page:constant RedIntegerFormat] elimina i componenti verde e blu e legge solo il componente rosso.
       [page:constant RedIntegerFormat] elimina i componenti verde e blu e legge solo il componente rosso.
-      I texel sono letti come interi invece che come floating point.
-      (può essere utilizzato solo in un contesto di rendering WebGL 2).<br /><br />
+      I texel sono letti come interi invece che come floating point.<br /><br />
 
 
-      [page:constant RGFormat] elimina i componenti alfa e blu e legge i componenti rosso e verde.
-      (può essere utilizzato solo in un contesto di rendering WebGL 2).<br /><br />
+      [page:constant RGFormat] elimina i componenti alfa e blu e legge i componenti rosso e verde.<br /><br />
 
 
       [page:constant RGIntegerFormat] elimina i componenti alfa e blu e legge i componenti rosso e verde.
       [page:constant RGIntegerFormat] elimina i componenti alfa e blu e legge i componenti rosso e verde.
-      I texel sono letti come numeri interi invece che come floating point.
-      (può essere utilizzato solo in un contesto di rendering WebGL 2).<br /><br />
+      I texel sono letti come numeri interi invece che come floating point.<br /><br />
 
 
       [page:constant RGBAFormat] è l'impostazione predefinita e legge i componenti rosso, verde, blu e alfa.<br /><br />
       [page:constant RGBAFormat] è l'impostazione predefinita e legge i componenti rosso, verde, blu e alfa.<br /><br />
 
 
       [page:constant RGBAIntegerFormat] è l'impostazione di default e legge i componenti rosso, verde, blu e alfa.
       [page:constant RGBAIntegerFormat] è l'impostazione di default e legge i componenti rosso, verde, blu e alfa.
-      I texel sono letti come numeri interi invece che come floating point.
-      (può essere utilizzato solo in un contesto di rendering WebGL 2).<br /><br />
+      I texel sono letti come numeri interi invece che come floating point.<br /><br />
 
 
       [page:constant LuminanceFormat] legge ogni elemento come un singolo componente di luminanza.
       [page:constant LuminanceFormat] legge ogni elemento come un singolo componente di luminanza.
       Questo viene quindi convertito in floating point, fissato all'intervallo [0,1], e quindi assemblato
       Questo viene quindi convertito in floating point, fissato all'intervallo [0,1], e quindi assemblato
@@ -346,9 +344,6 @@
 		</code>
 		</code>
 
 
 		<p>
 		<p>
-      Attenzione: la modifica di un formato interno di una texture avrà effetto solo 
-      quando si utilizza un contesto di rendering WebGL 2.<br /><br />
-
       Da usare con la proprietà [page:Texture.internalFormat internalFormat] della texture,
       Da usare con la proprietà [page:Texture.internalFormat internalFormat] della texture,
       definiscono come gli elementi della texture, o `toxel`, sono memorizzati nella GPU.<br /><br />
       definiscono come gli elementi della texture, o `toxel`, sono memorizzati nella GPU.<br /><br />
 
 

+ 1 - 1
docs/api/it/core/Uniform.html

@@ -50,7 +50,7 @@
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td>uint (WebGL 2)</td>
+					<td>uint</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>

+ 2 - 6
docs/api/it/materials/ShaderMaterial.html

@@ -318,10 +318,6 @@ this.defaultAttributeValues = {
 			Un oggetto con le seguenti proprietà:
 			Un oggetto con le seguenti proprietà:
 		<code>
 		<code>
 this.extensions = {
 this.extensions = {
-	derivatives: false, // impostato per utilizzare le direttive
-	fragDepth: false, // impostato per utilizzare i valori di profondità del frammento
-	drawBuffers: false, // impostato per utilizzare i buffer di disegno
-	shaderTextureLOD: false, // impostato per utilizzare la texture dello shader LOD
 	clipCullDistance: false, // set to use vertex shader clipping
 	clipCullDistance: false, // set to use vertex shader clipping
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 };
 };
@@ -345,8 +341,8 @@ this.extensions = {
 
 
 		<h3>[property:String glslVersion]</h3>
 		<h3>[property:String glslVersion]</h3>
 		<p>
 		<p>
-			Definisce la versione GLSL del codice dello shader personalizzato. Rilevante solo per WebGL 2 per definire se 
-			specificare o meno GLSL 3.0. I valori validi sono `THREE.GLSL1` o `THREE.GLSL3`. Il valore predefinito è `null`.
+			Definisce la versione GLSL del codice dello shader personalizzato. I valori validi sono `THREE.GLSL1` o `THREE.GLSL3`. 
+			Il valore predefinito è `null`.
 		</p>
 		</p>
 
 
 		<h3>[property:String index0AttributeName]</h3>
 		<h3>[property:String index0AttributeName]</h3>

+ 1 - 3
docs/api/it/objects/SkinnedMesh.html

@@ -13,9 +13,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			Una mesh che ha uno [page:Skeleton scheletro] con [page:Bone ossa] che può essere 
 			Una mesh che ha uno [page:Skeleton scheletro] con [page:Bone ossa] che può essere 
-			utilizzata per animare i vertici della geometria.<br /><br />
-
-			[name] può essere utilizzata solo con WebGL 2.
+			utilizzata per animare i vertici della geometria.
 		</p>
 		</p>
 
 
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>

+ 0 - 52
docs/api/it/renderers/WebGL1Renderer.html

@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="it">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:WebGLRenderer] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-		Poiché la versione r118 [page:WebGLRenderer] utilizza automaticamente un contesto di rendering WebGL 2, quando viene aggiornato un progetto estistente a
-		=> r118, l'applicazione potrebbe rompersi per due ragioni:
-
-		<ul>
-			<li>Il codice dello shader personalizzato deve essere conforme a GLSL 3.0.</li>
-			<li>I controlli dell'estensione WebGL 1 devono essere cambiati.</li>
-		</ul>
-
-		Se non hai tempo di cambiare il tuo codice ma vuoi ancora utilizzare l'ultima versione, puoi usare [name]. 
-		Questa versione di renderer forzerà un contesto di rendering WebGL 1.
-		</p>
-
-		<h2>Costruttore</h2>
-
-		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-		Crea un nuovo [name].
-		</p>
-
-		<h2>Proprietà</h2>
-		<p>Vedi la classe base [page:WebGLRenderer] per le proprietà comuni.</p>
-
-		<h3>[property:Boolean isWebGL1Renderer]</h3>
-		<p>
-			Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].
-		</p>
-
-
-		<h2>Metodi</h2>
-		<p>Vedi la classe base [page:WebGLRenderer] per i metodi comuni.</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

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

@@ -45,7 +45,7 @@
 
 
 		[page:Boolean stencil] - Indica se il buffer di disegno ha un
 		[page:Boolean stencil] - Indica se il buffer di disegno ha un
 		[link:https://en.wikipedia.org/wiki/Stencil_buffer buffer stencil] di almeno 8 bit.
 		[link:https://en.wikipedia.org/wiki/Stencil_buffer buffer stencil] di almeno 8 bit.
-		Il valore predefinito è `true`.<br />
+		Il valore predefinito è `false`.<br />
 
 
 		[page:Boolean preserveDrawingBuffer] - Indica se conservare i buffer finché non verranno cancellati
 		[page:Boolean preserveDrawingBuffer] - Indica se conservare i buffer finché non verranno cancellati
 		o sovrascritti manualmente. Il valore predefinito è `false`.<br />
 		o sovrascritti manualmente. Il valore predefinito è `false`.<br />

+ 1 - 1
docs/api/it/textures/Data3DTexture.html

@@ -11,7 +11,7 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<p class="desc">Crea una texture tridimensionale. Questo tipo di texture può solo essere utilizzata in un contesto di rendering WebGL 2.</p>
+		<p class="desc">Crea una texture tridimensionale.</p>
 
 
 		<h2>Costruttore</h2>
 		<h2>Costruttore</h2>
 
 

+ 0 - 1
docs/api/it/textures/DataArrayTexture.html

@@ -13,7 +13,6 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			Crea un array di texture direttamente da dati grezzi, dalla larghezza, dall'altezza e dalla profondità.
 			Crea un array di texture direttamente da dati grezzi, dalla larghezza, dall'altezza e dalla profondità.
-			Questo tipo di texture può solo essere utilizzata in un contesto di rendering WebGL 2.
 		</p>
 		</p>
 
 
 		<h2>Costruttore</h2>
 		<h2>Costruttore</h2>

+ 0 - 2
docs/api/it/textures/DepthTexture.html

@@ -13,8 +13,6 @@
 
 
 		<p class="desc">
 		<p class="desc">
 			Questa classe può essere utilizzata per salvare automaticamente le informazioni di profondità di un rendering in una texture.
 			Questa classe può essere utilizzata per salvare automaticamente le informazioni di profondità di un rendering in una texture.
-			Quando viene utilizzato un contesto di rendering WebGL 1, [name] richiede supporto per l'estensione
-			[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/ WEBGL_depth_texture].
 		</p>
 		</p>
 
 
 		<h2>Esempi</h2>
 		<h2>Esempi</h2>

+ 2 - 7
docs/api/ko/constants/Textures.html

@@ -126,6 +126,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 		<p>
 		<p>
 		텍스쳐의 [page:Texture.type type] 프로퍼티와 함께 사용되며, 정확한 포맷이어야 합니다. 아래 세부 사항을 확인하세요.<br /><br />
 		텍스쳐의 [page:Texture.type type] 프로퍼티와 함께 사용되며, 정확한 포맷이어야 합니다. 아래 세부 사항을 확인하세요.<br /><br />
@@ -140,6 +141,7 @@
 		THREE.RedIntegerFormat
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
 		THREE.RGIntegerFormat
+		THREE.RGBFormat
 		THREE.RGBAFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
 		THREE.LuminanceFormat
@@ -157,23 +159,19 @@
 
 
 		[page:constant RedIntegerFormat] green 및 blue 요소를 버리고 red 요소만 읽어들입니다.
 		[page:constant RedIntegerFormat] green 및 blue 요소를 버리고 red 요소만 읽어들입니다.
 		texel은 부동 소수점 대신 정수로 읽어들입니다.
 		texel은 부동 소수점 대신 정수로 읽어들입니다.
-		(WebGL 2 렌더링 시에만 사용 가능).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGFormat] alpha, blue 요소를 버리고 red, green 요소만 읽어들입니다.
 		[page:constant RGFormat] alpha, blue 요소를 버리고 red, green 요소만 읽어들입니다.
-		(WebGL 2 렌더링 시에만 사용 가능).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGIntegerFormat] alpha, blue 요소를 버리고 red, green 요소만 읽어들입니다.
 		[page:constant RGIntegerFormat] alpha, blue 요소를 버리고 red, green 요소만 읽어들입니다.
 		texel은 부동 소수점 대신 정수로 읽어들입니다.
 		texel은 부동 소수점 대신 정수로 읽어들입니다.
-		(WebGL 2 렌더링 시에만 사용 가능).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGBAFormat]는 기본값이며 red, green, blue 및 alpha 요소를 읽어들입니다.<br /><br />
 		[page:constant RGBAFormat]는 기본값이며 red, green, blue 및 alpha 요소를 읽어들입니다.<br /><br />
 
 
 		[page:constant RGBAIntegerFormat]는 기본값이며 red, green, blue 및 alpha 요소를 읽어들입니다.
 		[page:constant RGBAIntegerFormat]는 기본값이며 red, green, blue 및 alpha 요소를 읽어들입니다.
 		texel은 부동 소수점 대신 정수로 읽어들입니다.
 		texel은 부동 소수점 대신 정수로 읽어들입니다.
-		(WebGL 2 렌더링 시에만 사용 가능).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant LuminanceFormat]은 각 요소(element)를 단일 휘도 요소(component)로 읽어들입니다.
 		[page:constant LuminanceFormat]은 각 요소(element)를 단일 휘도 요소(component)로 읽어들입니다.
@@ -335,9 +333,6 @@
 		</code>
 		</code>
 
 
 		<p>
 		<p>
-
-		주의: WebGL 2 렌더링의 경우에만 텍스쳐 내부 포맷 변경이 텍스쳐에 영향을 줄 것입니다.<br /><br />
-
 		텍스쳐의 [page:Texture.internalFormat internalFormat] 프로퍼티와 함께 사용되며,
 		텍스쳐의 [page:Texture.internalFormat internalFormat] 프로퍼티와 함께 사용되며,
 		텍스쳐 혹은 *texels*의 요소들이 GPU에 어떻게 저장될지 정의합니다.<br /><br />
 		텍스쳐 혹은 *texels*의 요소들이 GPU에 어떻게 저장될지 정의합니다.<br /><br />
 
 

+ 1 - 1
docs/api/ko/core/Uniform.html

@@ -46,7 +46,7 @@
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td>uint (WebGL 2)</td>
+					<td>uint</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>

+ 2 - 8
docs/api/pt-br/constants/Textures.html

@@ -129,6 +129,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 		<p>
 		<p>
 		Para uso com a propriedade [page:Texture.type type] de uma textura, que deve corresponder ao formato correto. Veja abaixo para detalhes.<br /><br />
 		Para uso com a propriedade [page:Texture.type type] de uma textura, que deve corresponder ao formato correto. Veja abaixo para detalhes.<br /><br />
@@ -143,6 +144,7 @@
 		THREE.RedIntegerFormat
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
 		THREE.RGIntegerFormat
+		THREE.RGBFormat
 		THREE.RGBAFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
 		THREE.LuminanceFormat
@@ -160,23 +162,19 @@
 
 
 		[page:constant RedIntegerFormat] descarta os componentes verde e azul e lê apenas o componente vermelho.
 		[page:constant RedIntegerFormat] descarta os componentes verde e azul e lê apenas o componente vermelho.
 		Os texels são lidos como inteiros em vez de ponto flutuante.
 		Os texels são lidos como inteiros em vez de ponto flutuante.
-		(só pode ser usado com um contexto de renderização WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGFormat] descarta os componentes alfa e azul e lê os componentes vermelho e verde.
 		[page:constant RGFormat] descarta os componentes alfa e azul e lê os componentes vermelho e verde.
-		(só pode ser usado com um contexto de renderização WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGIntegerFormat] descarta os componentes alfa e azul e lê os componentes vermelho e verde.
 		[page:constant RGIntegerFormat] descarta os componentes alfa e azul e lê os componentes vermelho e verde.
 		Os texels são lidos como inteiros em vez de ponto flutuante.
 		Os texels são lidos como inteiros em vez de ponto flutuante.
-		(só pode ser usado com um contexto de renderização WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGBAFormat] é o padrão e lê os componentes vermelho, verde, azul e alfa.<br /><br />
 		[page:constant RGBAFormat] é o padrão e lê os componentes vermelho, verde, azul e alfa.<br /><br />
 
 
 		[page:constant RGBAIntegerFormat] é o padrão e lê os componentes vermelho, verde, azul e alfa.
 		[page:constant RGBAIntegerFormat] é o padrão e lê os componentes vermelho, verde, azul e alfa.
 		Os texels são lidos como inteiros em vez de ponto flutuante.
 		Os texels são lidos como inteiros em vez de ponto flutuante.
-		(só pode ser usado com um contexto de renderização WebGL 2).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant LuminanceFormat] lê cada elemento como um único componente de luminância.
 		[page:constant LuminanceFormat] lê cada elemento como um único componente de luminância.
@@ -346,10 +344,6 @@
 		</code>
 		</code>
 
 
 		<p>
 		<p>
-
-		Atenção: alterar o formato interno de uma textura afetará a
-		textura apenas quando for usado um contexto de renderização WebGL 2.<br /><br />
-
 		Para uso com a propriedade  [page:Texture.internalFormat internalFormat] de uma textura,
 		Para uso com a propriedade  [page:Texture.internalFormat internalFormat] de uma textura,
 		definem como os elementos de uma textura, ou `texels`, são armazenados na GPU.<br /><br />
 		definem como os elementos de uma textura, ou `texels`, são armazenados na GPU.<br /><br />
 
 

+ 2 - 8
docs/api/zh/constants/Textures.html

@@ -119,6 +119,7 @@
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort4444Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedShort5551Type
 		THREE.UnsignedInt248Type
 		THREE.UnsignedInt248Type
+		THREE.UnsignedInt5999Type
 		</code>
 		</code>
 	<p>
 	<p>
 		这些常量用于纹理的[page:Texture.type type]属性,这些属性必须与正确的格式相对应。详情请查看下方。<br /><br />
 		这些常量用于纹理的[page:Texture.type type]属性,这些属性必须与正确的格式相对应。详情请查看下方。<br /><br />
@@ -133,6 +134,7 @@
 		THREE.RedIntegerFormat
 		THREE.RedIntegerFormat
 		THREE.RGFormat
 		THREE.RGFormat
 		THREE.RGIntegerFormat
 		THREE.RGIntegerFormat
+		THREE.RGBFormat
 		THREE.RGBAFormat
 		THREE.RGBAFormat
 		THREE.RGBAIntegerFormat
 		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
 		THREE.LuminanceFormat
@@ -149,23 +151,19 @@
 
 
 		[page:constant RedIntegerFormat] discards the green and blue components and reads just the red component.
 		[page:constant RedIntegerFormat] discards the green and blue components and reads just the red component.
 		The texels are read as integers instead of floating point.
 		The texels are read as integers instead of floating point.
-		(can only be used with a WebGL 2 rendering context).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGFormat] discards the alpha, and blue components and reads the red, and green components.
 		[page:constant RGFormat] discards the alpha, and blue components and reads the red, and green components.
-		(can only be used with a WebGL 2 rendering context).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGIntegerFormat] discards the alpha, and blue components and reads the red, and green components.
 		[page:constant RGIntegerFormat] discards the alpha, and blue components and reads the red, and green components.
 		The texels are read as integers instead of floating point.
 		The texels are read as integers instead of floating point.
-		(can only be used with a WebGL 2 rendering context).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant RGBAFormat] 是默认值,它将读取红、绿、蓝和Alpha分量。<br /><br />
 		[page:constant RGBAFormat] 是默认值,它将读取红、绿、蓝和Alpha分量。<br /><br />
 
 
 		[page:constant RGBAIntegerFormat] is the default and reads the red, green, blue and alpha components.
 		[page:constant RGBAIntegerFormat] is the default and reads the red, green, blue and alpha components.
 		The texels are read as integers instead of floating point.
 		The texels are read as integers instead of floating point.
-		(can only be used with a WebGL 2 rendering context).
 		<br /><br />
 		<br /><br />
 
 
 		[page:constant LuminanceFormat] 将每个元素作为单独的亮度分量来读取。
 		[page:constant LuminanceFormat] 将每个元素作为单独的亮度分量来读取。
@@ -329,10 +327,6 @@
 	</code>
 	</code>
 
 
 	<p>
 	<p>
-
-	Heads up: changing the internal format of a texture will only affect the
-	texture when using a WebGL 2 rendering context.<br /><br />
-
 	For use with a texture's [page:Texture.internalFormat internalFormat]	property,
 	For use with a texture's [page:Texture.internalFormat internalFormat]	property,
 	these define how elements of a texture, or *texels*, are stored on the GPU.<br /><br />
 	these define how elements of a texture, or *texels*, are stored on the GPU.<br /><br />
 
 

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

@@ -185,9 +185,9 @@
 			[page:Integer faceIndex] —— 相交的面的索引<br />
 			[page:Integer faceIndex] —— 相交的面的索引<br />
 			[page:Object3D object] —— 相交的物体<br />
 			[page:Object3D object] —— 相交的物体<br />
 			[page:Vector2 uv] —— 相交部分的点的UV坐标。<br />
 			[page:Vector2 uv] —— 相交部分的点的UV坐标。<br />
-			[page:Vector2 uv1] —— Second set of U,V coordinates at point of intersection<br />
+			[page:Vector2 uv1] —— 相交部分的点的第二组UV坐标<br />
 			[page:Vector3 normal] - 交点处的内插法向量<br />
 			[page:Vector3 normal] - 交点处的内插法向量<br />
-			[page:Integer instanceId] – The index number of the instance where the ray intersects the InstancedMesh
+			[page:Integer instanceId] – 与InstancedMesh物体相交时的instance索引
 		</p>
 		</p>
 		<p>
 		<p>
 			当计算这条射线是否和物体相交的时候,*Raycaster*将传入的对象委托给[page:Object3D.raycast raycast]方法。
 			当计算这条射线是否和物体相交的时候,*Raycaster*将传入的对象委托给[page:Object3D.raycast raycast]方法。

+ 1 - 1
docs/api/zh/core/Uniform.html

@@ -47,7 +47,7 @@
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td>uint (WebGL 2)</td>
+					<td>uint</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>

+ 1 - 6
docs/api/zh/materials/ShaderMaterial.html

@@ -280,10 +280,6 @@ this.defaultAttributeValues = {
 		<p> 一个有如下属性的对象:
 		<p> 一个有如下属性的对象:
 		<code>
 		<code>
 this.extensions = {
 this.extensions = {
-	derivatives: false, // set to use derivatives
-	fragDepth: false, // set to use fragment depth values
-	drawBuffers: false, // set to use draw buffers
-	shaderTextureLOD: false, // set to use shader texture LOD
 	clipCullDistance: false, // set to use vertex shader clipping
 	clipCullDistance: false, // set to use vertex shader clipping
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 	multiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID
 };
 };
@@ -305,8 +301,7 @@ this.extensions = {
 
 
 		<h3>[property:String glslVersion]</h3>
 		<h3>[property:String glslVersion]</h3>
 		<p>
 		<p>
-		Defines the GLSL version of custom shader code. Only relevant for WebGL 2 in order to define whether to specify
-		GLSL 3.0 or not. Valid values are *THREE.GLSL1* or *THREE.GLSL3*. Default is *null*.
+		Defines the GLSL version of custom shader code. Valid values are *THREE.GLSL1* or *THREE.GLSL3*. Default is *null*.
 		</p>
 		</p>
 
 
 		<h3>[property:String index0AttributeName]</h3>
 		<h3>[property:String index0AttributeName]</h3>

+ 0 - 7
docs/api/zh/objects/BatchedMesh.html

@@ -191,13 +191,6 @@
 		用提供的几何图形替换 `index` 的几何图形。如果索引处没有为几何体保留足够的空间,则会引发错误。
 		用提供的几何图形替换 `index` 的几何图形。如果索引处没有为几何体保留足够的空间,则会引发错误。
 	</p>
 	</p>
 
 
-	<h3>
-		[method:this deleteGeometry]( [param:Integer index] )
-	</h3>
-	<p>
-		将给定索引处的几何体标记为已删除并且不再渲染。
-	</p>
-
 	<h2>源代码</h2>
 	<h2>源代码</h2>
 
 
 	<p>
 	<p>

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

@@ -12,9 +12,7 @@
 		<h1>蒙皮网格([name])</h1>
 		<h1>蒙皮网格([name])</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-			具有[page:Skeleton](骨架)和[page:Bone bones](骨骼)的网格,可用于给几何体上的顶点添加动画。<br /><br />
-
-			[name] can only be used with WebGL 2.
+			具有[page:Skeleton](骨架)和[page:Bone bones](骨骼)的网格,可用于给几何体上的顶点添加动画。
 		</p>
 		</p>
 
 
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>
 		<iframe id="scene" src="scenes/bones-browser.html"></iframe>

+ 0 - 52
docs/api/zh/renderers/WebGL1Renderer.html

@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:WebGLRenderer] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-		自r118起,[page:WebGLRenderer]会自动使用 WebGL 2 渲染上下文。当升级一个已存在的项目到 => r118 ,
-		应用程序可能会因为下列两种原因而损坏:
-
-		<ul>
-			<li>自定义着色器代码必须符合GLSL 3.0。</li>
-			<li>WebGL 1扩展检查到被更改</li>
-		</ul>
-
-		如果你不能够花时间来升级你的代码,但仍然想要使用最新版本,那你就可以使用[name]。
-		这一版本的渲染器会强制使用 WebGL 1 渲染上下文。
-		</p>
-
-		<h2>构造函数</h2>
-
-		<h3>[name]( [param:Object parameters] )</h3>
-		<p>
-		Creates a new [name].
-		</p>
-
-		<h2>属性</h2>
-		<p>See the base [page:WebGLRenderer] class for common properties.</p>
-
-		<h3>[property:Boolean isWebGL1Renderer]</h3>
-		<p>
-			Read-only flag to check if a given object is of type [name].
-		</p>
-
-
-		<h2>方法</h2>
-		<p>See the base [page:WebGLRenderer] class for common methods.</p>
-
-		<h2>源码</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

+ 1 - 1
docs/api/zh/renderers/WebGLRenderTarget.html

@@ -104,7 +104,7 @@
 
 
 		<h3>[property:Number samples]</h3>
 		<h3>[property:Number samples]</h3>
 		<p>
 		<p>
-		Defines the count of MSAA samples. Can only be used with WebGL 2. Default is *0*.
+		Defines the count of MSAA samples. Default is *0*.
 		</p>
 		</p>
 
 
 		<h2>方法</h2>
 		<h2>方法</h2>

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

@@ -38,7 +38,7 @@
 
 
 		[page:Boolean antialias] - 是否执行抗锯齿。默认为*false*.<br />
 		[page:Boolean antialias] - 是否执行抗锯齿。默认为*false*.<br />
 
 
-		[page:Boolean stencil] - 绘图缓存是否有一个至少8位的模板缓存([link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer])。默认为*true*<br />
+		[page:Boolean stencil] - 绘图缓存是否有一个至少8位的模板缓存([link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer])。默认为*false*<br />
 
 
 		[page:Boolean preserveDrawingBuffer] -是否保留缓直到手动清除或被覆盖。 默认*false*.<br />
 		[page:Boolean preserveDrawingBuffer] -是否保留缓直到手动清除或被覆盖。 默认*false*.<br />
 
 

+ 1 - 1
docs/api/zh/textures/Data3DTexture.html

@@ -11,7 +11,7 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<p class="desc">创建一个三维的纹理贴图。这种纹理贴图只能被用于WebGL 2渲染环境中。</p>
+		<p class="desc">创建一个三维的纹理贴图。</p>
 
 
 		<h2>构造函数</h2>
 		<h2>构造函数</h2>
 
 

+ 1 - 1
docs/api/zh/textures/DataArrayTexture.html

@@ -12,7 +12,7 @@
 		<h1>数据数组纹理([name])</h1>
 		<h1>数据数组纹理([name])</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-			直接从原始数据、宽度、高度和深度创建纹理数组。这种类型的纹理只能与 WebGL 2 渲染上下文一起使用。
+			直接从原始数据、宽度、高度和深度创建纹理数组。
 		</p>
 		</p>
 
 
 
 

+ 0 - 1
docs/api/zh/textures/DepthTexture.html

@@ -13,7 +13,6 @@
 
 
 		<p class="desc">
 		<p class="desc">
 		This class can be used to automatically save the depth information of a rendering into a texture.
 		This class can be used to automatically save the depth information of a rendering into a texture.
-		When using a WebGL 1 rendering context, [name] requires support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/ WEBGL_depth_texture] extension.
 		</p>
 		</p>
 
 
 		<h2>例子</h2>
 		<h2>例子</h2>

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

@@ -38,7 +38,7 @@
 			const geometry = new TextGeometry( 'Hello three.js!', {
 			const geometry = new TextGeometry( 'Hello three.js!', {
 				font: font,
 				font: font,
 				size: 80,
 				size: 80,
-				height: 5,
+				depth: 5,
 				curveSegments: 12,
 				curveSegments: 12,
 				bevelEnabled: true,
 				bevelEnabled: true,
 				bevelThickness: 10,
 				bevelThickness: 10,
@@ -64,7 +64,7 @@
 		<ul>
 		<ul>
 			<li>font — an instance of THREE.Font.</li>
 			<li>font — an instance of THREE.Font.</li>
 			<li>size — Float. Size of the text. Default is 100.</li>
 			<li>size — Float. Size of the text. Default is 100.</li>
-			<li>height — Float. Thickness to extrude text.  Default is 50.</li>
+			<li>depth — Float. Thickness to extrude text.  Default is 50.</li>
 			<li>curveSegments — Integer. Number of points on the curves. Default is 12.</li>
 			<li>curveSegments — Integer. Number of points on the curves. Default is 12.</li>
 			<li>bevelEnabled — Boolean. Turn on bevel. Default is False.</li>
 			<li>bevelEnabled — Boolean. Turn on bevel. Default is False.</li>
 			<li>bevelThickness — Float. How deep into text bevel goes. Default is 10.</li>
 			<li>bevelThickness — Float. How deep into text bevel goes. Default is 10.</li>

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

@@ -166,7 +166,7 @@
 			// Specify path to a folder containing WASM/JS libraries or a CDN.
 			// Specify path to a folder containing WASM/JS libraries or a CDN.
 			// For example, /jsm/libs/rhino3dm/ is the location of the library inside the three.js repository
 			// For example, /jsm/libs/rhino3dm/ is the location of the library inside the three.js repository
 			// loader.setLibraryPath( '/path_to_library/rhino3dm/' );
 			// loader.setLibraryPath( '/path_to_library/rhino3dm/' );
-			loader.setLibraryPath( 'https://unpkg.com/[email protected]/' );
+			loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/[email protected]/' );
 	
 	
 			// Load a 3DM file
 			// Load a 3DM file
 			loader.load(
 			loader.load(
@@ -205,13 +205,13 @@
 		</p>
 		</p>
 
 
 		<code>
 		<code>
-		import rhino3dm from 'https://unpkg.com/[email protected]'
+		import rhino3dm from 'https://cdn.jsdelivr.net/npm/[email protected]'
 
 
 		// Instantiate a loader
 		// Instantiate a loader
 		const loader = new Rhino3dmLoader();
 		const loader = new Rhino3dmLoader();
 
 
 		// Specify path to a folder containing WASM/JS libraries or a CDN.
 		// Specify path to a folder containing WASM/JS libraries or a CDN.
-		loader.setLibraryPath( 'https://unpkg.com/[email protected]' );
+		loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/[email protected]' );
 
 
 		const rhino = await rhino3dm();
 		const rhino = await rhino3dm();
 		console.log('Loaded rhino3dm.');
 		console.log('Loaded rhino3dm.');
@@ -244,7 +244,7 @@
 		// Specify path to a folder containing the WASM/JS library:
 		// Specify path to a folder containing the WASM/JS library:
 		loader.setLibraryPath( '/path_to_library/rhino3dm/' );
 		loader.setLibraryPath( '/path_to_library/rhino3dm/' );
 		// or from a CDN:
 		// or from a CDN:
-		loader.setLibraryPath( 'https://unpkg.com/[email protected]' );
+		loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/[email protected]' );
 		</code>
 		</code>
 
 
 		<h3>[method:this setWorkerLimit]( [param:Number workerLimit] )</h3>
 		<h3>[method:this setWorkerLimit]( [param:Number workerLimit] )</h3>

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

@@ -38,7 +38,7 @@
 			const geometry = new TextGeometry( 'Hello three.js!', {
 			const geometry = new TextGeometry( 'Hello three.js!', {
 				font: font,
 				font: font,
 				size: 80,
 				size: 80,
-				height: 5,
+				depth: 5,
 				curveSegments: 12,
 				curveSegments: 12,
 				bevelEnabled: true,
 				bevelEnabled: true,
 				bevelThickness: 10,
 				bevelThickness: 10,
@@ -63,7 +63,7 @@
 		<ul>
 		<ul>
 			<li>font — THREE.Font的实例。</li>
 			<li>font — THREE.Font的实例。</li>
 			<li>size — Float。字体大小,默认值为100。</li>
 			<li>size — Float。字体大小,默认值为100。</li>
-			<li>height — Float。挤出文本的厚度。默认值为50。</li>
+			<li>depth — Float。挤出文本的厚度。默认值为50。</li>
 			<li>curveSegments — Integer。(表示文本的)曲线上点的数量。默认值为12。</li>
 			<li>curveSegments — Integer。(表示文本的)曲线上点的数量。默认值为12。</li>
 			<li>bevelEnabled — Boolean。是否开启斜角,默认为false。</li>
 			<li>bevelEnabled — Boolean。是否开启斜角,默认为false。</li>
 			<li>bevelThickness — Float。文本上斜角的深度,默认值为20。</li>
 			<li>bevelThickness — Float。文本上斜角的深度,默认值为20。</li>

+ 4 - 4
docs/examples/zh/loaders/3DMLoader.html

@@ -171,7 +171,7 @@
 			// Specify path to a folder containing WASM/JS libraries or a CDN.
 			// Specify path to a folder containing WASM/JS libraries or a CDN.
 			// For example, /jsm/libs/rhino3dm/ is the location of the library inside the three.js repository
 			// For example, /jsm/libs/rhino3dm/ is the location of the library inside the three.js repository
 			// loader.setLibraryPath( '/path_to_library/rhino3dm/' );
 			// loader.setLibraryPath( '/path_to_library/rhino3dm/' );
-			loader.setLibraryPath( 'https://unpkg.com/[email protected]/' );
+			loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/[email protected]/' );
 	
 	
 			// Load a 3DM file
 			// Load a 3DM file
 			loader.load(
 			loader.load(
@@ -212,13 +212,13 @@
 	</p>
 	</p>
 
 
 	<code>
 	<code>
-		import rhino3dm from 'https://unpkg.com/[email protected]'
+		import rhino3dm from 'https://cdn.jsdelivr.net/npm/[email protected]'
 
 
 		// Instantiate a loader
 		// Instantiate a loader
 		const loader = new Rhino3dmLoader();
 		const loader = new Rhino3dmLoader();
 
 
 		// Specify path to a folder containing WASM/JS libraries or a CDN.
 		// Specify path to a folder containing WASM/JS libraries or a CDN.
-		loader.setLibraryPath( 'https://unpkg.com/[email protected]' );
+		loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/[email protected]' );
 
 
 		const rhino = await rhino3dm();
 		const rhino = await rhino3dm();
 		console.log('Loaded rhino3dm.');
 		console.log('Loaded rhino3dm.');
@@ -251,7 +251,7 @@
 		// Specify path to a folder containing the WASM/JS library:
 		// Specify path to a folder containing the WASM/JS library:
 		loader.setLibraryPath( '/path_to_library/rhino3dm/' );
 		loader.setLibraryPath( '/path_to_library/rhino3dm/' );
 		// or from a CDN:
 		// or from a CDN:
-		loader.setLibraryPath( 'https://unpkg.com/[email protected]' );
+		loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/[email protected]' );
 		</code>
 		</code>
 
 
 	<h3>[method:this setWorkerLimit]( [param:Number workerLimit] )</h3>
 	<h3>[method:this setWorkerLimit]( [param:Number workerLimit] )</h3>

+ 0 - 5
docs/list.json

@@ -279,7 +279,6 @@
 
 
 			"Renderers": {
 			"Renderers": {
 				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
 				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
-				"WebGL1Renderer": "api/en/renderers/WebGL1Renderer",
 				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
 				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
 				"WebGL3DRenderTarget": "api/en/renderers/WebGL3DRenderTarget",
 				"WebGL3DRenderTarget": "api/en/renderers/WebGL3DRenderTarget",
 				"WebGLArrayRenderTarget": "api/en/renderers/WebGLArrayRenderTarget",
 				"WebGLArrayRenderTarget": "api/en/renderers/WebGLArrayRenderTarget",
@@ -720,7 +719,6 @@
 
 
 			"Renderers": {
 			"Renderers": {
 				"WebGLRenderer": "api/ar/renderers/WebGLRenderer",
 				"WebGLRenderer": "api/ar/renderers/WebGLRenderer",
-				"WebGL1Renderer": "api/ar/renderers/WebGL1Renderer",
 				"WebGLRenderTarget": "api/ar/renderers/WebGLRenderTarget",
 				"WebGLRenderTarget": "api/ar/renderers/WebGLRenderTarget",
 				"WebGL3DRenderTarget": "api/ar/renderers/WebGL3DRenderTarget",
 				"WebGL3DRenderTarget": "api/ar/renderers/WebGL3DRenderTarget",
 				"WebGLArrayRenderTarget": "api/ar/renderers/WebGLArrayRenderTarget",
 				"WebGLArrayRenderTarget": "api/ar/renderers/WebGLArrayRenderTarget",
@@ -1027,7 +1025,6 @@
 
 
 			"渲染器": {
 			"渲染器": {
 				"WebGLRenderer": "api/zh/renderers/WebGLRenderer",
 				"WebGLRenderer": "api/zh/renderers/WebGLRenderer",
-				"WebGL1Renderer": "api/zh/renderers/WebGL1Renderer",
 				"WebGLRenderTarget": "api/zh/renderers/WebGLRenderTarget",
 				"WebGLRenderTarget": "api/zh/renderers/WebGLRenderTarget",
 				"WebGL3DRenderTarget": "api/zh/renderers/WebGL3DRenderTarget",
 				"WebGL3DRenderTarget": "api/zh/renderers/WebGL3DRenderTarget",
 				"WebGLArrayRenderTarget": "api/zh/renderers/WebGLArrayRenderTarget",
 				"WebGLArrayRenderTarget": "api/zh/renderers/WebGLArrayRenderTarget",
@@ -1663,7 +1660,6 @@
 
 
 			"Renderers": {
 			"Renderers": {
 				"WebGLRenderer": "api/it/renderers/WebGLRenderer",
 				"WebGLRenderer": "api/it/renderers/WebGLRenderer",
-				"WebGL1Renderer": "api/it/renderers/WebGL1Renderer",
 				"WebGLRenderTarget": "api/it/renderers/WebGLRenderTarget",
 				"WebGLRenderTarget": "api/it/renderers/WebGLRenderTarget",
 				"WebGL3DRenderTarget": "api/it/renderers/WebGL3DRenderTarget",
 				"WebGL3DRenderTarget": "api/it/renderers/WebGL3DRenderTarget",
 				"WebGLArrayRenderTarget": "api/it/renderers/WebGLArrayRenderTarget",
 				"WebGLArrayRenderTarget": "api/it/renderers/WebGLArrayRenderTarget",
@@ -2190,7 +2186,6 @@
 
 
 			"Renderers": {
 			"Renderers": {
 				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
 				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
-				"WebGL1Renderer": "api/en/renderers/WebGL1Renderer",
 				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
 				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
 				"WebGL3DRenderTarget": "api/en/renderers/WebGL3DRenderTarget",
 				"WebGL3DRenderTarget": "api/en/renderers/WebGL3DRenderTarget",
 				"WebGLArrayRenderTarget": "api/en/renderers/WebGLArrayRenderTarget",
 				"WebGLArrayRenderTarget": "api/en/renderers/WebGLArrayRenderTarget",

+ 3 - 3
docs/manual/ar/introduction/Installation.html

@@ -88,7 +88,7 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 			{
 			{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
 			}
 			}
 			}
 			}
 		&lt;/script>
 		&lt;/script>
@@ -127,8 +127,8 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 			{
 			{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-				"three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+				"three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
 			}
 			}
 			}
 			}
 		&lt;/script>
 		&lt;/script>

+ 2 - 2
docs/manual/en/introduction/Installation.html

@@ -152,8 +152,8 @@ npm install --save-dev vite
 &lt;script type="importmap">
 &lt;script type="importmap">
   {
   {
     "imports": {
     "imports": {
-      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-      "three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+      "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+      "three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
     }
     }
   }
   }
 &lt;/script>
 &lt;/script>

+ 2 - 2
docs/manual/fr/introduction/Creating-a-scene.html

@@ -27,7 +27,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					// Our Javascript will go here.
 					// Our Javascript will go here.
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -129,7 +129,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					const scene = new THREE.Scene();
 					const scene = new THREE.Scene();
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

+ 3 - 3
docs/manual/fr/introduction/Installation.html

@@ -71,7 +71,7 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 		  {
 		  {
 		    "imports": {
 		    "imports": {
-		      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+		      "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
 		    }
 		    }
 		  }
 		  }
 		&lt;/script>
 		&lt;/script>
@@ -110,8 +110,8 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 			{
 			{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-				"three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+				"three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
 			}
 			}
 			}
 			}
 		&lt;/script>
 		&lt;/script>

+ 2 - 2
docs/manual/it/introduction/Creating-a-scene.html

@@ -30,7 +30,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					// Il nostro Javascript andrà qui
 					// Il nostro Javascript andrà qui
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -147,7 +147,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					const scene = new THREE.Scene();
 					const scene = new THREE.Scene();
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

+ 3 - 3
docs/manual/it/introduction/Installation.html

@@ -72,7 +72,7 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 		  {
 		  {
 		    "imports": {
 		    "imports": {
-		      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+		      "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
 		    }
 		    }
 		  }
 		  }
 		&lt;/script>
 		&lt;/script>
@@ -110,8 +110,8 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 			{
 			{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-				"three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+				"three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
 			}
 			}
 			}
 			}
 		&lt;/script>
 		&lt;/script>

+ 2 - 2
docs/manual/ja/introduction/Creating-a-scene.html

@@ -27,7 +27,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					// Our Javascript will go here.
 					// Our Javascript will go here.
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -130,7 +130,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					const scene = new THREE.Scene();
 					const scene = new THREE.Scene();
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

+ 3 - 3
docs/manual/ja/introduction/Installation.html

@@ -72,7 +72,7 @@
 &lt;script type="importmap">
 &lt;script type="importmap">
     {
     {
     "imports": {
     "imports": {
-        "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+        "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
     }
     }
     }
     }
 &lt;/script>
 &lt;/script>
@@ -111,8 +111,8 @@
 &lt;script type="importmap">
 &lt;script type="importmap">
     {
     {
     "imports": {
     "imports": {
-        "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-        "three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+        "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+        "three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
     }
     }
     }
     }
 &lt;/script>
 &lt;/script>

+ 2 - 2
docs/manual/ko/introduction/Creating-a-scene.html

@@ -28,7 +28,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 ´
 ´
 					// Our Javascript will go here.
 					// Our Javascript will go here.
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -133,7 +133,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					const scene = new THREE.Scene();
 					const scene = new THREE.Scene();
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

+ 3 - 3
docs/manual/ko/introduction/Installation.html

@@ -80,7 +80,7 @@
 &lt;script type="importmap">
 &lt;script type="importmap">
     {
     {
     "imports": {
     "imports": {
-        "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+        "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
     }
     }
     }
     }
 &lt;/script>
 &lt;/script>
@@ -123,8 +123,8 @@
 &lt;script type="importmap">
 &lt;script type="importmap">
     {
     {
     "imports": {
     "imports": {
-        "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-        "three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+        "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+        "three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
     }
     }
     }
     }
 &lt;/script>
 &lt;/script>

+ 2 - 2
docs/manual/pt-br/introduction/Creating-a-scene.html

@@ -27,7 +27,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					// Our Javascript will go here.
 					// Our Javascript will go here.
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -131,7 +131,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					const scene = new THREE.Scene();
 					const scene = new THREE.Scene();
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

+ 3 - 3
docs/manual/pt-br/introduction/Installation.html

@@ -56,7 +56,7 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 		  {
 		  {
 		    "imports": {
 		    "imports": {
-		      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+		      "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
 		    }
 		    }
 		  }
 		  }
 		&lt;/script>
 		&lt;/script>
@@ -96,8 +96,8 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 			{
 			{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-				"three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+				"three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
 			}
 			}
 			}
 			}
 		&lt;/script>
 		&lt;/script>

+ 2 - 2
docs/manual/ru/introduction/Creating-a-scene.html

@@ -29,7 +29,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					// Наш Javascript будет здесь..
 					// Наш Javascript будет здесь..
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -130,7 +130,7 @@
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
 				&lt;script type="module"&gt;
 				&lt;script type="module"&gt;
-					import * as THREE from 'https://unpkg.com/three/build/three.module.js';
+					import * as THREE from 'https://cdn.jsdelivr.net/npm/three/build/three.module.js';
 
 
 					const scene = new THREE.Scene();
 					const scene = new THREE.Scene();
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

+ 3 - 3
docs/manual/ru/introduction/Installation.html

@@ -95,7 +95,7 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 		{
 		{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js"
 			}
 			}
 		}
 		}
 		&lt;/script>
 		&lt;/script>
@@ -140,8 +140,8 @@
 		&lt;script type="importmap">
 		&lt;script type="importmap">
 		{
 		{
 			"imports": {
 			"imports": {
-				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-				"three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+				"three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+				"three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
 			}
 			}
 		}
 		}
 		&lt;/script>
 		&lt;/script>

+ 2 - 2
docs/manual/zh/introduction/Installation.html

@@ -151,8 +151,8 @@ npm install --save-dev vite
 &lt;script type="importmap">
 &lt;script type="importmap">
   {
   {
     "imports": {
     "imports": {
-      "three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
-      "three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+      "three": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/build/three.module.js",
+      "three/addons/": "https://cdn.jsdelivr.net/npm/three@&lt;version&gt;/examples/jsm/"
     }
     }
   }
   }
 &lt;/script>
 &lt;/script>

+ 2 - 2
editor/index.html

@@ -61,8 +61,8 @@
 					"three/addons/": "../examples/jsm/",
 					"three/addons/": "../examples/jsm/",
 
 
 					"three/examples/": "../examples/",
 					"three/examples/": "../examples/",
-					"three-gpu-pathtracer": "https://unpkg.com/[email protected]/build/index.module.js",
-					"three-mesh-bvh": "https://unpkg.com/[email protected]/build/index.module.js"
+					"three-gpu-pathtracer": "https://cdn.jsdelivr.net/npm/[email protected]/build/index.module.js",
+					"three-mesh-bvh": "https://cdn.jsdelivr.net/npm/[email protected]/build/index.module.js"
 				}
 				}
 			}
 			}
 		</script>
 		</script>

+ 2 - 2
editor/js/Loader.js

@@ -506,7 +506,7 @@ function Loader( editor ) {
 
 
 					const contents = event.target.result;
 					const contents = event.target.result;
 
 
-					const { PCDLoader } = await import( '../../examples/jsm/loaders/PCDLoader.js' );
+					const { PCDLoader } = await import( 'three/addons/loaders/PCDLoader.js' );
 
 
 					const points = new PCDLoader().parse( contents );
 					const points = new PCDLoader().parse( contents );
 					points.name = filename;
 					points.name = filename;
@@ -653,7 +653,7 @@ function Loader( editor ) {
 
 
 					const contents = event.target.result;
 					const contents = event.target.result;
 
 
-					const { USDZLoader } = await import( '../../examples/jsm/loaders/USDZLoader.js' );
+					const { USDZLoader } = await import( 'three/addons/loaders/USDZLoader.js' );
 
 
 					const group = new USDZLoader().parse( contents );
 					const group = new USDZLoader().parse( contents );
 					group.name = filename;
 					group.name = filename;

+ 3 - 3
editor/js/Menubar.Edit.js

@@ -87,9 +87,9 @@ function MenubarEdit( editor ) {
 		const center = aabb.getCenter( new Vector3() );
 		const center = aabb.getCenter( new Vector3() );
 		const newPosition = new Vector3();
 		const newPosition = new Vector3();
 
 
-		newPosition.x = object.position.x + ( object.position.x - center.x );
-		newPosition.y = object.position.y + ( object.position.y - center.y );
-		newPosition.z = object.position.z + ( object.position.z - center.z );
+		newPosition.x = object.position.x - center.x;
+		newPosition.y = object.position.y - center.y;
+		newPosition.z = object.position.z - center.z;
 
 
 		editor.execute( new SetPositionCommand( editor, object, newPosition ) );
 		editor.execute( new SetPositionCommand( editor, object, newPosition ) );
 
 

+ 1 - 1
editor/js/Sidebar.Geometry.js

@@ -195,7 +195,7 @@ function SidebarGeometry( editor ) {
 		const left = ( screen.width - 500 ) / 2;
 		const left = ( screen.width - 500 ) / 2;
 		const top = ( screen.height - 500 ) / 2;
 		const top = ( screen.height - 500 ) / 2;
 
 
-		const url = URL.createObjectURL( new Blob( [ output ], { type: 'text/plain' } ) );
+		const url = URL.createObjectURL( new Blob( [ output ], { type: 'text/plain;charset=utf-8' } ) );
 		window.open( url, '_blank', `location=no,left=${left},top=${top},width=500,height=500` );
 		window.open( url, '_blank', `location=no,left=${left},top=${top},width=500,height=500` );
 
 
 	} );
 	} );

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

@@ -438,7 +438,7 @@ function SidebarMaterial( editor ) {
 		const left = ( screen.width - 500 ) / 2;
 		const left = ( screen.width - 500 ) / 2;
 		const top = ( screen.height - 500 ) / 2;
 		const top = ( screen.height - 500 ) / 2;
 
 
-		const url = URL.createObjectURL( new Blob( [ output ], { type: 'text/plain' } ) );
+		const url = URL.createObjectURL( new Blob( [ output ], { type: 'text/plain;charset=utf-8' } ) );
 		window.open( url, '_blank', `location=no,left=${left},top=${top},width=500,height=500` );
 		window.open( url, '_blank', `location=no,left=${left},top=${top},width=500,height=500` );
 
 
 	} );
 	} );

+ 1 - 1
editor/js/Sidebar.Object.js

@@ -412,7 +412,7 @@ function SidebarObject( editor ) {
 		const left = ( screen.width - 500 ) / 2;
 		const left = ( screen.width - 500 ) / 2;
 		const top = ( screen.height - 500 ) / 2;
 		const top = ( screen.height - 500 ) / 2;
 
 
-		const url = URL.createObjectURL( new Blob( [ output ], { type: 'text/plain' } ) );
+		const url = URL.createObjectURL( new Blob( [ output ], { type: 'text/plain;charset=utf-8' } ) );
 		window.open( url, '_blank', `location=no,left=${left},top=${top},width=500,height=500` );
 		window.open( url, '_blank', `location=no,left=${left},top=${top},width=500,height=500` );
 
 
 	} );
 	} );

+ 3 - 3
editor/js/Sidebar.Project.Image.js

@@ -2,7 +2,7 @@ import * as THREE from 'three';
 
 
 import { UIBreak, UIButton, UIInteger, UIPanel, UIRow, UISelect, UIText } from './libs/ui.js';
 import { UIBreak, UIButton, UIInteger, UIPanel, UIRow, UISelect, UIText } from './libs/ui.js';
 
 
-import { ViewportPathtracer } from './Viewport.Pathtracer.js';
+// import { ViewportPathtracer } from './Viewport.Pathtracer.js';
 
 
 function SidebarProjectImage( editor ) {
 function SidebarProjectImage( editor ) {
 
 
@@ -66,7 +66,7 @@ function SidebarProjectImage( editor ) {
 
 
 		const scene = loader.parse( json.scene );
 		const scene = loader.parse( json.scene );
 
 
-		const renderer = new THREE.WebGLRenderer( { antialias: true } );		
+		const renderer = new THREE.WebGLRenderer( { antialias: true } );
 		renderer.setSize( imageWidth.getValue(), imageHeight.getValue() );
 		renderer.setSize( imageWidth.getValue(), imageHeight.getValue() );
 
 
 		if ( project.shadows !== undefined ) renderer.shadowMap.enabled = project.shadows;
 		if ( project.shadows !== undefined ) renderer.shadowMap.enabled = project.shadows;
@@ -129,7 +129,7 @@ function SidebarProjectImage( editor ) {
 					if ( output.closed === true ) return;
 					if ( output.closed === true ) return;
 
 
 					requestAnimationFrame( animate );
 					requestAnimationFrame( animate );
-				
+
 					pathtracer.update();
 					pathtracer.update();
 
 
 					// status.textContent = Math.floor( samples );
 					// status.textContent = Math.floor( samples );

+ 1 - 1
editor/js/Sidebar.Script.js

@@ -1,4 +1,4 @@
-import { UIPanel, UIBreak, UIText, UIButton, UIRow, UIInput } from './libs/ui.js';
+import { UIPanel, UIBreak, UIButton, UIRow, UIInput } from './libs/ui.js';
 
 
 import { AddScriptCommand } from './commands/AddScriptCommand.js';
 import { AddScriptCommand } from './commands/AddScriptCommand.js';
 import { SetScriptValueCommand } from './commands/SetScriptValueCommand.js';
 import { SetScriptValueCommand } from './commands/SetScriptValueCommand.js';

+ 2 - 1
editor/js/Sidebar.Settings.js

@@ -20,7 +20,8 @@ function SidebarSettings( editor ) {
 	const options = {
 	const options = {
 		en: 'English',
 		en: 'English',
 		fr: 'Français',
 		fr: 'Français',
-		zh: '中文'
+		zh: '中文',
+		ja: '日本語',
 	};
 	};
 
 
 	const languageRow = new UIRow();
 	const languageRow = new UIRow();

+ 351 - 0
editor/js/Strings.js

@@ -1051,6 +1051,357 @@ function Strings( config ) {
 			'viewport/info/triangles': '三角形',
 			'viewport/info/triangles': '三角形',
 			'viewport/info/rendertime': 'Render time'
 			'viewport/info/rendertime': 'Render time'
 
 
+		},
+
+		ja: {
+
+			'menubar/file': 'ファイル',
+			'menubar/file/new': '新規',
+			'menubar/file/import': 'インポート',
+			'menubar/file/export/drc': 'エクスポート DRC',
+			'menubar/file/export/glb': 'エクスポート GLB',
+			'menubar/file/export/gltf': 'エクスポート GLTF',
+			'menubar/file/export/obj': 'エクスポート OBJ',
+			'menubar/file/export/ply': 'エクスポート PLY',
+			'menubar/file/export/ply_binary': 'エクスポート PLY(バイナリ)',
+			'menubar/file/export/stl': 'エクスポート STL',
+			'menubar/file/export/stl_binary': 'エクスポート STL(バイナリ)',
+			'menubar/file/export/usdz': 'エクスポート USDZ',
+
+			'menubar/edit': '編集',
+			'menubar/edit/undo': '元に戻す(Ctrl+Z)',
+			'menubar/edit/redo': 'やり直す(Ctrl+Shift+Z)',
+			'menubar/edit/center': '中央揃え',
+			'menubar/edit/clone': '複製',
+			'menubar/edit/delete': '削除(Del)',
+
+			'menubar/add': '追加',
+			'menubar/add/group': 'グループ',
+			'menubar/add/plane': '平面',
+			'menubar/add/box': '直方体',
+			'menubar/add/capsule': 'カプセル',
+			'menubar/add/circle': '円',
+			'menubar/add/cylinder': '円柱',
+			'menubar/add/ring': 'リング',
+			'menubar/add/sphere': '球',
+			'menubar/add/dodecahedron': '十二面体',
+			'menubar/add/icosahedron': '二十面体',
+			'menubar/add/octahedron': '八面体',
+			'menubar/add/tetrahedron': '四面体',
+			'menubar/add/torus': 'トーラス',
+			'menubar/add/tube': 'チューブ',
+			'menubar/add/torusknot': 'ノットトーラス',
+			'menubar/add/lathe': '旋盤形',
+			'menubar/add/sprite': 'スプライト',
+			'menubar/add/pointlight': 'ポイントライト',
+			'menubar/add/spotlight': 'スポットライト',
+			'menubar/add/directionallight': 'ディレクショナルライト',
+			'menubar/add/hemispherelight': 'ヘミスフィアライト',
+			'menubar/add/ambientlight': 'アンビエントライト',
+			'menubar/add/perspectivecamera': '透視投影カメラ',
+			'menubar/add/orthographiccamera': '平行投影カメラ',
+
+			'menubar/status/autosave': '自動保存',
+
+			'menubar/examples': 'サンプル',
+			'menubar/examples/Arkanoid': 'ブロック崩し',
+			'menubar/examples/Camera': 'カメラ',
+			'menubar/examples/Particles': 'パーティクル',
+			'menubar/examples/Pong': 'ピンポン',
+			'menubar/examples/Shaders': 'シェーダー',
+
+			'menubar/view': '表示',
+			'menubar/view/fullscreen': 'フルスクリーン',
+
+			'menubar/help': 'ヘルプ',
+			'menubar/help/source_code': 'ソースコード',
+			'menubar/help/icons': 'アイコンパック',
+			'menubar/help/about': 'Three.js について',
+			'menubar/help/manual': 'マニュアル',
+
+			'sidebar/animations': 'アニメーション',
+			'sidebar/animations/play': '再生',
+			'sidebar/animations/stop': '停止',
+			'sidebar/animations/timescale': 'タイムスケール',
+
+			'sidebar/scene': 'シーン',
+			'sidebar/scene/background': '背景',
+			'sidebar/scene/environment': '環境',
+			'sidebar/scene/fog': '霧',
+
+			'sidebar/properties/object': 'オブジェクト',
+			'sidebar/properties/geometry': 'ジオメトリ',
+			'sidebar/properties/material': 'マテリアル',
+			'sidebar/properties/script': 'スクリプト',
+
+			'sidebar/object/type': 'タイプ',
+			'sidebar/object/new': '新規',
+			'sidebar/object/uuid': 'UUID',
+			'sidebar/object/name': '名前',
+			'sidebar/object/position': '位置',
+			'sidebar/object/rotation': '回転',
+			'sidebar/object/scale': 'スケール',
+			'sidebar/object/fov': 'Fov',
+			'sidebar/object/left': '左',
+			'sidebar/object/right': '右',
+			'sidebar/object/top': '上',
+			'sidebar/object/bottom': '下',
+			'sidebar/object/near': '範囲の開始',
+			'sidebar/object/far': '範囲の終了',
+			'sidebar/object/intensity': '強度',
+			'sidebar/object/color': '色',
+			'sidebar/object/groundcolor': '地面の色',
+			'sidebar/object/distance': '距離',
+			'sidebar/object/angle': '角度',
+			'sidebar/object/penumbra': '半影',
+			'sidebar/object/decay': '減衰',
+			'sidebar/object/shadow': '影',
+			'sidebar/object/shadowBias': '影のバイアス',
+			'sidebar/object/shadowNormalBias': '影のノーマルバイアス',
+			'sidebar/object/shadowRadius': '影の半径',
+			'sidebar/object/cast': 'キャスト',
+			'sidebar/object/receive': 'レシーブ',
+			'sidebar/object/visible': '表示',
+			'sidebar/object/frustumcull': 'フラスタムカリング',
+			'sidebar/object/renderorder': '描画順序',
+			'sidebar/object/userdata': 'ユーザーデータ',
+			'sidebar/object/export': 'JSONをエクスポート',
+
+			'sidebar/geometry/type': 'タイプ',
+			'sidebar/geometry/new': '新規',
+			'sidebar/geometry/uuid': 'UUID',
+			'sidebar/geometry/name': '名前',
+			'sidebar/geometry/bounds': '境界',
+			'sidebar/geometry/show_vertex_normals': '頂点法線を表示',
+			'sidebar/geometry/compute_vertex_normals': '頂点法線を計算',
+			'sidebar/geometry/compute_vertex_tangents': '接線を計算',
+			'sidebar/geometry/center': '中央',
+			'sidebar/geometry/export': 'JSONをエクスポート',
+
+			'sidebar/geometry/box_geometry/width': '幅',
+			'sidebar/geometry/box_geometry/height': '高さ',
+			'sidebar/geometry/box_geometry/depth': '奥行き',
+			'sidebar/geometry/box_geometry/widthseg': '幅の分割数',
+			'sidebar/geometry/box_geometry/heightseg': '高さの分割数',
+			'sidebar/geometry/box_geometry/depthseg': '奥行きの分割数',
+
+			'sidebar/geometry/buffer_geometry/attributes': '属性',
+			'sidebar/geometry/buffer_geometry/index': 'インデックス',
+			'sidebar/geometry/buffer_geometry/morphAttributes': 'モーフ属性',
+			'sidebar/geometry/buffer_geometry/morphRelative': '相対モーフ',
+
+			'sidebar/geometry/capsule_geometry/radius': '半径',
+			'sidebar/geometry/capsule_geometry/length': '長さ',
+			'sidebar/geometry/capsule_geometry/capseg': 'キャップの分割数',
+			'sidebar/geometry/capsule_geometry/radialseg': '円の分割数',
+
+			'sidebar/geometry/circle_geometry/radius': '半径',
+			'sidebar/geometry/circle_geometry/segments': 'セグメント',
+			'sidebar/geometry/circle_geometry/thetastart': '開始角度',
+			'sidebar/geometry/circle_geometry/thetalength': '角度の大きさ',
+
+			'sidebar/geometry/cylinder_geometry/radiustop': '上部の半径',
+			'sidebar/geometry/cylinder_geometry/radiusbottom': '下部の半径',
+			'sidebar/geometry/cylinder_geometry/height': '高さ',
+			'sidebar/geometry/cylinder_geometry/radialsegments': '円の分割数',
+			'sidebar/geometry/cylinder_geometry/heightsegments': '高さの分割数',
+			'sidebar/geometry/cylinder_geometry/openended': 'ふた',
+
+			'sidebar/geometry/extrude_geometry/curveSegments': '分割数',
+			'sidebar/geometry/extrude_geometry/steps': 'ステップ',
+			'sidebar/geometry/extrude_geometry/depth': '深さ',
+			'sidebar/geometry/extrude_geometry/bevelEnabled': 'ベベルを有効にするか?',
+			'sidebar/geometry/extrude_geometry/bevelThickness': 'ベベルの厚さ',
+			'sidebar/geometry/extrude_geometry/bevelSize': 'ベベルのサイズ',
+			'sidebar/geometry/extrude_geometry/bevelOffset': 'ベベルのオフセット',
+			'sidebar/geometry/extrude_geometry/bevelSegments': 'ベベルの分割数',
+			'sidebar/geometry/extrude_geometry/shape': '形状に変換',
+
+			'sidebar/geometry/dodecahedron_geometry/radius': '半径',
+			'sidebar/geometry/dodecahedron_geometry/detail': '詳細',
+
+			'sidebar/geometry/icosahedron_geometry/radius': '半径',
+			'sidebar/geometry/icosahedron_geometry/detail': '詳細',
+
+			'sidebar/geometry/octahedron_geometry/radius': '半径',
+			'sidebar/geometry/octahedron_geometry/detail': '詳細',
+
+			'sidebar/geometry/tetrahedron_geometry/radius': '半径',
+			'sidebar/geometry/tetrahedron_geometry/detail': '詳細',
+
+			'sidebar/geometry/lathe_geometry/segments': '分割数',
+			'sidebar/geometry/lathe_geometry/phistart': '開始角度',
+			'sidebar/geometry/lathe_geometry/philength': '角度の大きさ',
+			'sidebar/geometry/lathe_geometry/points': 'ポイント',
+
+			'sidebar/geometry/plane_geometry/width': '幅',
+			'sidebar/geometry/plane_geometry/height': '高さ',
+			'sidebar/geometry/plane_geometry/widthsegments': '幅の分割数',
+			'sidebar/geometry/plane_geometry/heightsegments': '奥行きの分割数',
+
+			'sidebar/geometry/ring_geometry/innerRadius': '内半径',
+			'sidebar/geometry/ring_geometry/outerRadius': '外半径',
+			'sidebar/geometry/ring_geometry/thetaSegments': '円の分割数',
+			'sidebar/geometry/ring_geometry/phiSegments': 'リングの分割数',
+			'sidebar/geometry/ring_geometry/thetastart': '開始角度',
+			'sidebar/geometry/ring_geometry/thetalength': '角度の大きさ',
+
+			'sidebar/geometry/shape_geometry/curveSegments': '分割数',
+			'sidebar/geometry/shape_geometry/extrude': '押し出し',
+
+			'sidebar/geometry/sphere_geometry/radius': '半径',
+			'sidebar/geometry/sphere_geometry/widthsegments': '円の分割数',
+			'sidebar/geometry/sphere_geometry/heightsegments': 'リングの分割数',
+			'sidebar/geometry/sphere_geometry/phistart': '開始角度',
+			'sidebar/geometry/sphere_geometry/philength': '角度の大きさ',
+			'sidebar/geometry/sphere_geometry/thetastart': '開始角度',
+			'sidebar/geometry/sphere_geometry/thetalength': '角度の大きさ',
+
+			'sidebar/geometry/torus_geometry/radius': '半径',
+			'sidebar/geometry/torus_geometry/tube': 'チューブの太さ',
+			'sidebar/geometry/torus_geometry/radialsegments': '小セグメント数',
+			'sidebar/geometry/torus_geometry/tubularsegments': '大セグメント数',
+			'sidebar/geometry/torus_geometry/arc': '弧',
+
+			'sidebar/geometry/torusKnot_geometry/radius': '半径',
+			'sidebar/geometry/torusKnot_geometry/tube': 'チューブの太さ',
+			'sidebar/geometry/torusKnot_geometry/tubularsegments': '小セグメント数',
+			'sidebar/geometry/torusKnot_geometry/radialsegments': '大セグメント数',
+			'sidebar/geometry/torusKnot_geometry/p': 'P',
+			'sidebar/geometry/torusKnot_geometry/q': 'Q',
+
+			'sidebar/geometry/tube_geometry/path': 'パス',
+			'sidebar/geometry/tube_geometry/radius': '半径',
+			'sidebar/geometry/tube_geometry/tube': 'チューブの太さ',
+			'sidebar/geometry/tube_geometry/tubularsegments': '小セグメント数',
+			'sidebar/geometry/tube_geometry/radialsegments': '大セグメント数',
+			'sidebar/geometry/tube_geometry/closed': '閉じる',
+			'sidebar/geometry/tube_geometry/curvetype': 'カーブタイプ',
+			'sidebar/geometry/tube_geometry/tension': 'テンション',
+
+			'sidebar/material/new': '新規作成',
+			'sidebar/material/copy': 'コピー',
+			'sidebar/material/paste': '貼り付け',
+			'sidebar/material/slot': 'スロット',
+			'sidebar/material/type': 'タイプ',
+			'sidebar/material/uuid': 'UUID',
+			'sidebar/material/name': '名前',
+			'sidebar/material/program': 'プログラム',
+			'sidebar/material/info': '情報',
+			'sidebar/material/vertex': '頂点',
+			'sidebar/material/fragment': 'フラグメント',
+			'sidebar/material/color': '色',
+			'sidebar/material/depthPacking': '深度パッキング',
+			'sidebar/material/roughness': '粗さ',
+			'sidebar/material/metalness': '金属度',
+			'sidebar/material/reflectivity': '反射率',
+			'sidebar/material/emissive': '発光',
+			'sidebar/material/specular': '鏡面',
+			'sidebar/material/shininess': '光沢',
+			'sidebar/material/clearcoat': 'クリアコート',
+			'sidebar/material/clearcoatroughness': 'クリアコートの粗さ',
+			'sidebar/material/iridescence': '遊色効果',
+			'sidebar/material/iridescenceIOR': '遊色効果のIOR',
+			'sidebar/material/iridescenceThicknessMax': '遊色効果の厚さ',
+			'sidebar/material/sheen': '光沢',
+			'sidebar/material/sheenroughness': '光沢の粗さ',
+			'sidebar/material/sheencolor': '光沢の色',
+			'sidebar/material/transmission': '透過',
+			'sidebar/material/attenuationDistance': '減衰距離',
+			'sidebar/material/attenuationColor': '減衰色',
+			'sidebar/material/thickness': '厚さ',
+			'sidebar/material/vertexcolors': '頂点色',
+			'sidebar/material/matcap': 'マットキャップ',
+			'sidebar/material/map': 'マップ',
+			'sidebar/material/alphamap': 'アルファマップ',
+			'sidebar/material/bumpmap': 'バンプマップ',
+			'sidebar/material/normalmap': 'ノーマルマップ',
+			'sidebar/material/clearcoatmap': 'クリアコートマップ',
+			'sidebar/material/clearcoatnormalmap': 'クリアコートノーマルマップ',
+			'sidebar/material/clearcoatroughnessmap': 'クリアコート粗さマップ',
+			'sidebar/material/displacementmap': '変位マップ',
+			'sidebar/material/roughnessmap': '粗さマップ',
+			'sidebar/material/metalnessmap': 'メタリックマップ',
+			'sidebar/material/specularmap': '鏡面マップ',
+			'sidebar/material/iridescencemap': '遊色効果マップ',
+			'sidebar/material/iridescencethicknessmap': '遊色効果の厚さマップ',
+			'sidebar/material/sheencolormap': '光沢色マップ',
+			'sidebar/material/sheenroughnessmap': '光沢粗さマップ',
+			'sidebar/material/envmap': '環境マップ',
+			'sidebar/material/lightmap': 'ライトマップ',
+			'sidebar/material/aomap': 'AOマップ',
+			'sidebar/material/emissivemap': '発光マップ',
+			'sidebar/material/gradientmap': 'グラデーションマップ',
+			'sidebar/material/transmissionmap': '透過マップ',
+			'sidebar/material/thicknessmap': '厚さマップ',
+			'sidebar/material/side': '側面',
+			'sidebar/material/size': 'サイズ',
+			'sidebar/material/sizeAttenuation': 'サイズ減衰',
+			'sidebar/material/flatShading': 'フラットシェーディング',
+			'sidebar/material/blending': 'ブレンディング',
+			'sidebar/material/opacity': '不透明度',
+			'sidebar/material/transparent': '透明',
+			'sidebar/material/forcesinglepass': 'シングルパスを強制',
+			'sidebar/material/alphatest': 'アルファテスト',
+			'sidebar/material/depthtest': '深度テスト',
+			'sidebar/material/depthwrite': '深度書き込み',
+			'sidebar/material/wireframe': 'ワイヤーフレーム',
+			'sidebar/material/userdata': 'ユーザーデータ',
+			'sidebar/material/export': 'JSONをエクスポート',
+
+			'sidebar/script/new': '新規',
+			'sidebar/script/edit': '編集',
+			'sidebar/script/remove': '削除',
+
+			'sidebar/project': 'プロジェクト',
+			'sidebar/project/antialias': 'アンチエイリアス',
+			'sidebar/project/shadows': 'シャドウ',
+			'sidebar/project/toneMapping': 'トーンマッピング',
+			'sidebar/project/materials': 'マテリアル',
+			'sidebar/project/Assign': '割り当て',
+
+			'sidebar/project/app': 'アプリ',
+			'sidebar/project/app/play': '再生',
+			'sidebar/project/app/stop': '停止',
+			'sidebar/project/app/title': 'タイトル',
+			'sidebar/project/app/editable': '編集可能',
+			'sidebar/project/app/publish': 'アプリファイルとして保存',
+
+			'sidebar/project/image': '画像',
+			'sidebar/project/video': '動画',
+
+			'sidebar/project/shading': 'シェーディング',
+			'sidebar/project/resolution': '解像度',
+			'sidebar/project/duration': '長さ',
+			'sidebar/project/render': 'レンダー',
+
+			'sidebar/settings': '設定',
+			'sidebar/settings/language': '言語',
+
+			'sidebar/settings/shortcuts': 'ショートカット',
+			'sidebar/settings/shortcuts/translate': '移動',
+			'sidebar/settings/shortcuts/rotate': '回転',
+			'sidebar/settings/shortcuts/scale': 'スケール',
+			'sidebar/settings/shortcuts/undo': '元に戻す',
+			'sidebar/settings/shortcuts/focus': 'フォーカス',
+
+			'sidebar/history': '履歴',
+			'sidebar/history/clear': 'クリア',
+			'sidebar/history/persistent': '永続的',
+
+			'toolbar/translate': '移動',
+			'toolbar/rotate': '回転',
+			'toolbar/scale': 'スケール',
+			'toolbar/local': 'ローカル',
+
+			'viewport/controls/grid': 'グリッド',
+			'viewport/controls/helpers': 'オーバーレイ表示',
+
+			'viewport/info/objects': 'オブジェクト',
+			'viewport/info/vertices': '頂点',
+			'viewport/info/triangles': '三角形',
+			'viewport/info/rendertime': 'レンダリング時間'
+
 		}
 		}
 
 
 	};
 	};

+ 1 - 1
editor/js/Viewport.ViewHelper.js

@@ -1,6 +1,6 @@
 import { UIPanel } from './libs/ui.js';
 import { UIPanel } from './libs/ui.js';
 
 
-import { ViewHelper as ViewHelperBase } from '../../examples/jsm/helpers/ViewHelper.js';
+import { ViewHelper as ViewHelperBase } from 'three/addons/helpers/ViewHelper.js';
 
 
 class ViewHelper extends ViewHelperBase {
 class ViewHelper extends ViewHelperBase {
 
 

+ 8 - 1
examples/files.json

@@ -333,6 +333,7 @@
 		"webgpu_cubemap_dynamic",
 		"webgpu_cubemap_dynamic",
 		"webgpu_cubemap_mix",
 		"webgpu_cubemap_mix",
 		"webgpu_custom_fog",
 		"webgpu_custom_fog",
+		"webgpu_custom_fog_background",
 		"webgpu_depth_texture",
 		"webgpu_depth_texture",
 		"webgpu_equirectangular",
 		"webgpu_equirectangular",
 		"webgpu_instance_mesh",
 		"webgpu_instance_mesh",
@@ -361,6 +362,7 @@
 		"webgpu_portal",
 		"webgpu_portal",
 		"webgpu_reflection",
 		"webgpu_reflection",
 		"webgpu_rtt",
 		"webgpu_rtt",
+		"webgpu_materials_texture_partialupdate",
 		"webgpu_sandbox",
 		"webgpu_sandbox",
 		"webgpu_shadertoy",
 		"webgpu_shadertoy",
 		"webgpu_shadowmap",
 		"webgpu_shadowmap",
@@ -372,12 +374,17 @@
 		"webgpu_tsl_editor",
 		"webgpu_tsl_editor",
 		"webgpu_tsl_transpiler",
 		"webgpu_tsl_transpiler",
 		"webgpu_video_panorama",
 		"webgpu_video_panorama",
+		"webgpu_pmrem_cubemap",
+		"webgpu_pmrem_equirectangular",
+		"webgpu_pmrem_scene",
 		"webgpu_postprocessing_afterimage",
 		"webgpu_postprocessing_afterimage",
 		"webgpu_postprocessing_anamorphic",
 		"webgpu_postprocessing_anamorphic",
 		"webgpu_mirror",
 		"webgpu_mirror",
 		"webgpu_multisampled_renderbuffers",
 		"webgpu_multisampled_renderbuffers",
 		"webgpu_materials_texture_anisotropy",
 		"webgpu_materials_texture_anisotropy",
-		"webgpu_storage_buffer"
+		"webgpu_storage_buffer",
+		"webgpu_mesh_batch",
+		"webgpu_instancing_morph"
 	],
 	],
 	"webaudio": [
 	"webaudio": [
 		"webaudio_orientation",
 		"webaudio_orientation",

+ 3 - 3
examples/jsm/controls/TransformControls.js

@@ -178,8 +178,8 @@ class TransformControls extends Object3D {
 
 
 	}
 	}
 
 
-	// updateMatrixWorld  updates key transformation variables
-	updateMatrixWorld() {
+	// updateMatrixWorld updates key transformation variables
+	updateMatrixWorld( force ) {
 
 
 		if ( this.object !== undefined ) {
 		if ( this.object !== undefined ) {
 
 
@@ -215,7 +215,7 @@ class TransformControls extends Object3D {
 
 
 		}
 		}
 
 
-		super.updateMatrixWorld( this );
+		super.updateMatrixWorld( force );
 
 
 	}
 	}
 
 

+ 21 - 4
examples/jsm/exporters/GLTFExporter.js

@@ -982,7 +982,17 @@ class GLTFWriter {
 
 
 		}
 		}
 
 
-		const byteLength = getPaddedBufferSize( count * attribute.itemSize * componentSize );
+		let byteStride = attribute.itemSize * componentSize;
+
+		if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
+
+			// Each element of a vertex attribute MUST be aligned to 4-byte boundaries
+			// inside a bufferView
+			byteStride = Math.ceil( byteStride / 4 ) * 4;
+
+		}
+
+		const byteLength = getPaddedBufferSize( count * byteStride );
 		const dataView = new DataView( new ArrayBuffer( byteLength ) );
 		const dataView = new DataView( new ArrayBuffer( byteLength ) );
 		let offset = 0;
 		let offset = 0;
 
 
@@ -1047,6 +1057,12 @@ class GLTFWriter {
 
 
 			}
 			}
 
 
+			if ( ( offset % byteStride ) !== 0 ) {
+
+				offset += byteStride - ( offset % byteStride );
+
+			}
+
 		}
 		}
 
 
 		const bufferViewDef = {
 		const bufferViewDef = {
@@ -1062,7 +1078,7 @@ class GLTFWriter {
 		if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
 		if ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {
 
 
 			// Only define byteStride for vertex attributes.
 			// Only define byteStride for vertex attributes.
-			bufferViewDef.byteStride = attribute.itemSize * componentSize;
+			bufferViewDef.byteStride = byteStride;
 
 
 		}
 		}
 
 
@@ -1290,13 +1306,14 @@ class GLTFWriter {
 
 
 				if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||
 				if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||
 					( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||
 					( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||
-					( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {
+					( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||
+					( typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas ) ) {
 
 
 					ctx.drawImage( image, 0, 0, canvas.width, canvas.height );
 					ctx.drawImage( image, 0, 0, canvas.width, canvas.height );
 
 
 				} else {
 				} else {
 
 
-					throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement or ImageBitmap.' );
+					throw new Error( 'THREE.GLTFExporter: Invalid image type. Use HTMLImageElement, HTMLCanvasElement, ImageBitmap or OffscreenCanvas.' );
 
 
 				}
 				}
 
 

+ 15 - 0
examples/jsm/exporters/USDZExporter.js

@@ -409,6 +409,21 @@ function buildPrimvars( attributes ) {
 
 
 	}
 	}
 
 
+	// vertex colors
+
+	const colorAttribute = attributes.color;
+
+	if ( colorAttribute !== undefined ) {
+
+		const count = colorAttribute.count;
+
+		string += `
+	color3f[] primvars:displayColor = [${buildVector3Array( colorAttribute, count )}] (
+		interpolation = "vertex"
+		)`;
+
+	}
+
 	return string;
 	return string;
 
 
 }
 }

+ 10 - 2
examples/jsm/geometries/TextGeometry.js

@@ -5,7 +5,7 @@
  *  font: <THREE.Font>, // font
  *  font: <THREE.Font>, // font
  *
  *
  *  size: <float>, // size of the text
  *  size: <float>, // size of the text
- *  height: <float>, // thickness to extrude text
+ *  depth: <float>, // thickness to extrude text
  *  curveSegments: <int>, // number of points on the curves
  *  curveSegments: <int>, // number of points on the curves
  *
  *
  *  bevelEnabled: <bool>, // turn on bevel
  *  bevelEnabled: <bool>, // turn on bevel
@@ -35,7 +35,15 @@ class TextGeometry extends ExtrudeGeometry {
 
 
 			// translate parameters to ExtrudeGeometry API
 			// translate parameters to ExtrudeGeometry API
 
 
-			parameters.depth = parameters.height !== undefined ? parameters.height : 50;
+			if ( parameters.depth === undefined && parameters.height !== undefined ) {
+
+				console.warn( 'THREE.TextGeometry: .height is now depreciated. Please use .depth instead' ); // @deprecated, r163
+
+			}
+
+			parameters.depth = parameters.depth !== undefined ?
+				parameters.depth : parameters.height !== undefined ?
+					parameters.height : 50;
 
 
 			// defaults
 			// defaults
 
 

+ 7 - 9
examples/jsm/interactive/HTMLMesh.js

@@ -241,6 +241,13 @@ function html2canvas( element ) {
 
 
 	function drawElement( element, style ) {
 	function drawElement( element, style ) {
 
 
+		// Do not render invisible elements, comments and scripts.
+		if ( element.nodeType === Node.COMMENT_NODE || element.nodeName === 'SCRIPT' || ( element.style && element.style.display === 'none' ) ) {
+
+			return;
+
+		}
+
 		let x = 0, y = 0, width = 0, height = 0;
 		let x = 0, y = 0, width = 0, height = 0;
 
 
 		if ( element.nodeType === Node.TEXT_NODE ) {
 		if ( element.nodeType === Node.TEXT_NODE ) {
@@ -258,14 +265,9 @@ function html2canvas( element ) {
 
 
 			drawText( style, x, y, element.nodeValue.trim() );
 			drawText( style, x, y, element.nodeValue.trim() );
 
 
-		} else if ( element.nodeType === Node.COMMENT_NODE ) {
-
-			return;
-
 		} else if ( element instanceof HTMLCanvasElement ) {
 		} else if ( element instanceof HTMLCanvasElement ) {
 
 
 			// Canvas element
 			// Canvas element
-			if ( element.style.display === 'none' ) return;
 
 
 			const rect = element.getBoundingClientRect();
 			const rect = element.getBoundingClientRect();
 
 
@@ -280,8 +282,6 @@ function html2canvas( element ) {
 
 
 		} else if ( element instanceof HTMLImageElement ) {
 		} else if ( element instanceof HTMLImageElement ) {
 
 
-			if ( element.style.display === 'none' ) return;
-
 			const rect = element.getBoundingClientRect();
 			const rect = element.getBoundingClientRect();
 
 
 			x = rect.left - offset.left - 0.5;
 			x = rect.left - offset.left - 0.5;
@@ -293,8 +293,6 @@ function html2canvas( element ) {
 
 
 		} else {
 		} else {
 
 
-			if ( element.style.display === 'none' ) return;
-
 			const rect = element.getBoundingClientRect();
 			const rect = element.getBoundingClientRect();
 
 
 			x = rect.left - offset.left - 0.5;
 			x = rect.left - offset.left - 0.5;

File diff suppressed because it is too large
+ 338 - 192
examples/jsm/libs/fflate.module.js


+ 0 - 2
examples/jsm/lines/LineMaterial.js

@@ -603,12 +603,10 @@ class LineMaterial extends ShaderMaterial {
 		if ( value === true ) {
 		if ( value === true ) {
 
 
 			this.defines.USE_ALPHA_TO_COVERAGE = '';
 			this.defines.USE_ALPHA_TO_COVERAGE = '';
-			this.extensions.derivatives = true;
 
 
 		} else {
 		} else {
 
 
 			delete this.defines.USE_ALPHA_TO_COVERAGE;
 			delete this.defines.USE_ALPHA_TO_COVERAGE;
-			this.extensions.derivatives = false;
 
 
 		}
 		}
 
 

+ 2 - 0
examples/jsm/loaders/3MFLoader.js

@@ -144,6 +144,8 @@ class ThreeMFLoader extends Loader {
 
 
 			}
 			}
 
 
+			if ( relsName === undefined ) throw new Error( 'THREE.ThreeMFLoader: Cannot find relationship file `rels` in 3MF archive.' );
+
 			//
 			//
 
 
 			const relsView = zip[ relsName ];
 			const relsView = zip[ relsName ];

+ 89 - 19
examples/jsm/loaders/EXRLoader.js

@@ -1886,10 +1886,10 @@ class EXRLoader extends DataTextureLoader {
 
 
 		function parseBox2i( dataView, offset ) {
 		function parseBox2i( dataView, offset ) {
 
 
-			const xMin = parseUint32( dataView, offset );
-			const yMin = parseUint32( dataView, offset );
-			const xMax = parseUint32( dataView, offset );
-			const yMax = parseUint32( dataView, offset );
+			const xMin = parseInt32( dataView, offset );
+			const yMin = parseInt32( dataView, offset );
+			const xMax = parseInt32( dataView, offset );
+			const yMax = parseInt32( dataView, offset );
 
 
 			return { xMin: xMin, yMin: yMin, xMax: xMax, yMax: yMax };
 			return { xMin: xMin, yMin: yMin, xMax: xMax, yMax: yMax };
 
 
@@ -1898,7 +1898,8 @@ class EXRLoader extends DataTextureLoader {
 		function parseLineOrder( dataView, offset ) {
 		function parseLineOrder( dataView, offset ) {
 
 
 			const lineOrders = [
 			const lineOrders = [
-				'INCREASING_Y'
+				'INCREASING_Y',
+				'DECREASING_Y'
 			];
 			];
 
 
 			const lineOrder = parseUint8( dataView, offset );
 			const lineOrder = parseUint8( dataView, offset );
@@ -2066,10 +2067,12 @@ class EXRLoader extends DataTextureLoader {
 				width: EXRHeader.dataWindow.xMax - EXRHeader.dataWindow.xMin + 1,
 				width: EXRHeader.dataWindow.xMax - EXRHeader.dataWindow.xMin + 1,
 				height: EXRHeader.dataWindow.yMax - EXRHeader.dataWindow.yMin + 1,
 				height: EXRHeader.dataWindow.yMax - EXRHeader.dataWindow.yMin + 1,
 				channels: EXRHeader.channels.length,
 				channels: EXRHeader.channels.length,
+				channelLineOffsets: {},
+				scanOrder: null,
 				bytesPerLine: null,
 				bytesPerLine: null,
 				lines: null,
 				lines: null,
 				inputSize: null,
 				inputSize: null,
-				type: EXRHeader.channels[ 0 ].pixelType,
+				type: null,
 				uncompress: null,
 				uncompress: null,
 				getter: null,
 				getter: null,
 				format: null,
 				format: null,
@@ -2125,6 +2128,43 @@ class EXRLoader extends DataTextureLoader {
 
 
 			EXRDecoder.scanlineBlockSize = EXRDecoder.lines;
 			EXRDecoder.scanlineBlockSize = EXRDecoder.lines;
 
 
+			const channels = {};
+			for ( const channel of EXRHeader.channels ) {
+
+				switch ( channel.name ) {
+
+					case 'Y':
+					case 'R':
+					case 'G':
+					case 'B':
+					case 'A':
+						channels[ channel.name ] = true;
+						EXRDecoder.type = channel.pixelType;
+
+				}
+
+			}
+
+			// RGB images will be converted to RGBA format, preventing software emulation in select devices.
+			let fillAlpha = false;
+
+			if ( channels.R && channels.G && channels.B ) {
+
+				fillAlpha = ! channels.A;
+				EXRDecoder.outputChannels = 4;
+				EXRDecoder.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };
+
+			} else if ( channels.Y ) {
+
+				EXRDecoder.outputChannels = 1;
+				EXRDecoder.decodeChannels = { Y: 0 };
+
+			} else {
+
+				throw new Error( 'EXRLoader.parse: file contains unsupported data channels.' );
+
+			}
+
 			if ( EXRDecoder.type == 1 ) {
 			if ( EXRDecoder.type == 1 ) {
 
 
 				// half
 				// half
@@ -2164,15 +2204,13 @@ class EXRLoader extends DataTextureLoader {
 
 
 			}
 			}
 
 
-			EXRDecoder.blockCount = ( EXRHeader.dataWindow.yMax + 1 ) / EXRDecoder.scanlineBlockSize;
+			EXRDecoder.blockCount = EXRDecoder.height / EXRDecoder.scanlineBlockSize;
 
 
 			for ( let i = 0; i < EXRDecoder.blockCount; i ++ )
 			for ( let i = 0; i < EXRDecoder.blockCount; i ++ )
 				parseInt64( dataView, offset ); // scanlineOffset
 				parseInt64( dataView, offset ); // scanlineOffset
 
 
 			// we should be passed the scanline offset table, ready to start reading pixel data.
 			// we should be passed the scanline offset table, ready to start reading pixel data.
 
 
-			// RGB images will be converted to RGBA format, preventing software emulation in select devices.
-			EXRDecoder.outputChannels = ( ( EXRDecoder.channels == 3 ) ? 4 : EXRDecoder.channels );
 			const size = EXRDecoder.width * EXRDecoder.height * EXRDecoder.outputChannels;
 			const size = EXRDecoder.width * EXRDecoder.height * EXRDecoder.outputChannels;
 
 
 			switch ( outputType ) {
 			switch ( outputType ) {
@@ -2181,7 +2219,7 @@ class EXRLoader extends DataTextureLoader {
 					EXRDecoder.byteArray = new Float32Array( size );
 					EXRDecoder.byteArray = new Float32Array( size );
 
 
 					// Fill initially with 1s for the alpha value if the texture is not RGBA, RGB values will be overwritten
 					// Fill initially with 1s for the alpha value if the texture is not RGBA, RGB values will be overwritten
-					if ( EXRDecoder.channels < EXRDecoder.outputChannels )
+					if ( fillAlpha )
 						EXRDecoder.byteArray.fill( 1, 0, size );
 						EXRDecoder.byteArray.fill( 1, 0, size );
 
 
 					break;
 					break;
@@ -2189,7 +2227,7 @@ class EXRLoader extends DataTextureLoader {
 				case HalfFloatType:
 				case HalfFloatType:
 					EXRDecoder.byteArray = new Uint16Array( size );
 					EXRDecoder.byteArray = new Uint16Array( size );
 
 
-					if ( EXRDecoder.channels < EXRDecoder.outputChannels )
+					if ( fillAlpha )
 						EXRDecoder.byteArray.fill( 0x3C00, 0, size ); // Uint16Array holds half float data, 0x3C00 is 1
 						EXRDecoder.byteArray.fill( 0x3C00, 0, size ); // Uint16Array holds half float data, 0x3C00 is 1
 
 
 					break;
 					break;
@@ -2200,7 +2238,31 @@ class EXRLoader extends DataTextureLoader {
 
 
 			}
 			}
 
 
-			EXRDecoder.bytesPerLine = EXRDecoder.width * EXRDecoder.inputSize * EXRDecoder.channels;
+			let byteOffset = 0;
+			for ( const channel of EXRHeader.channels ) {
+
+				if ( EXRDecoder.decodeChannels[ channel.name ] !== undefined ) {
+
+					EXRDecoder.channelLineOffsets[ channel.name ] = byteOffset * EXRDecoder.width;
+
+				}
+
+				byteOffset += channel.pixelType * 2;
+
+			}
+
+			EXRDecoder.bytesPerLine = EXRDecoder.width * byteOffset;
+			EXRDecoder.outLineWidth = EXRDecoder.width * EXRDecoder.outputChannels;
+
+			if ( EXRHeader.lineOrder === 'INCREASING_Y' ) {
+
+				EXRDecoder.scanOrder = ( y ) => y;
+
+			} else {
+
+				EXRDecoder.scanOrder = ( y ) => EXRDecoder.height - 1 - y;
+
+			}
 
 
 			if ( EXRDecoder.outputChannels == 4 ) {
 			if ( EXRDecoder.outputChannels == 4 ) {
 
 
@@ -2231,11 +2293,10 @@ class EXRLoader extends DataTextureLoader {
 		const EXRDecoder = setupDecoder( EXRHeader, bufferDataView, uInt8Array, offset, this.type );
 		const EXRDecoder = setupDecoder( EXRHeader, bufferDataView, uInt8Array, offset, this.type );
 
 
 		const tmpOffset = { value: 0 };
 		const tmpOffset = { value: 0 };
-		const channelOffsets = { R: 0, G: 1, B: 2, A: 3, Y: 0 };
 
 
 		for ( let scanlineBlockIdx = 0; scanlineBlockIdx < EXRDecoder.height / EXRDecoder.scanlineBlockSize; scanlineBlockIdx ++ ) {
 		for ( let scanlineBlockIdx = 0; scanlineBlockIdx < EXRDecoder.height / EXRDecoder.scanlineBlockSize; scanlineBlockIdx ++ ) {
 
 
-			const line = parseUint32( bufferDataView, offset ); // line_no
+			const line = parseInt32( bufferDataView, offset ) - EXRHeader.dataWindow.yMin; // line_no
 			EXRDecoder.size = parseUint32( bufferDataView, offset ); // data_len
 			EXRDecoder.size = parseUint32( bufferDataView, offset ); // data_len
 			EXRDecoder.lines = ( ( line + EXRDecoder.scanlineBlockSize > EXRDecoder.height ) ? ( EXRDecoder.height - line ) : EXRDecoder.scanlineBlockSize );
 			EXRDecoder.lines = ( ( line + EXRDecoder.scanlineBlockSize > EXRDecoder.height ) ? ( EXRDecoder.height - line ) : EXRDecoder.scanlineBlockSize );
 
 
@@ -2246,17 +2307,26 @@ class EXRLoader extends DataTextureLoader {
 
 
 			for ( let line_y = 0; line_y < EXRDecoder.scanlineBlockSize; line_y ++ ) {
 			for ( let line_y = 0; line_y < EXRDecoder.scanlineBlockSize; line_y ++ ) {
 
 
-				const true_y = line_y + scanlineBlockIdx * EXRDecoder.scanlineBlockSize;
-				if ( true_y >= EXRDecoder.height ) break;
+				const scan_y = scanlineBlockIdx * EXRDecoder.scanlineBlockSize;
+				const true_y = line_y + EXRDecoder.scanOrder( scan_y );
+				if ( true_y >= EXRDecoder.height ) continue;
+
+				const lineOffset = line_y * EXRDecoder.bytesPerLine;
+				const outLineOffset = ( EXRDecoder.height - 1 - true_y ) * EXRDecoder.outLineWidth;
 
 
 				for ( let channelID = 0; channelID < EXRDecoder.channels; channelID ++ ) {
 				for ( let channelID = 0; channelID < EXRDecoder.channels; channelID ++ ) {
 
 
-					const cOff = channelOffsets[ EXRHeader.channels[ channelID ].name ];
+					const name = EXRHeader.channels[ channelID ].name;
+					const lOff = EXRDecoder.channelLineOffsets[ name ];
+					const cOff = EXRDecoder.decodeChannels[ name ];
+
+					if ( cOff === undefined ) continue;
+
+					tmpOffset.value = lineOffset + lOff;
 
 
 					for ( let x = 0; x < EXRDecoder.width; x ++ ) {
 					for ( let x = 0; x < EXRDecoder.width; x ++ ) {
 
 
-						tmpOffset.value = ( line_y * ( EXRDecoder.channels * EXRDecoder.width ) + channelID * EXRDecoder.width + x ) * EXRDecoder.inputSize;
-						const outIndex = ( EXRDecoder.height - 1 - true_y ) * ( EXRDecoder.width * EXRDecoder.outputChannels ) + x * EXRDecoder.outputChannels + cOff;
+						const outIndex = outLineOffset + x * EXRDecoder.outputChannels + cOff;
 						EXRDecoder.byteArray[ outIndex ] = EXRDecoder.getter( viewer, tmpOffset );
 						EXRDecoder.byteArray[ outIndex ] = EXRDecoder.getter( viewer, tmpOffset );
 
 
 					}
 					}

+ 6 - 0
examples/jsm/loaders/GLTFLoader.js

@@ -2627,6 +2627,12 @@ class GLTFParser {
 
 
 			} ) ).then( function () {
 			} ) ).then( function () {
 
 
+				for ( const scene of result.scenes ) {
+
+					scene.updateMatrixWorld();
+
+				}
+
 				onLoad( result );
 				onLoad( result );
 
 
 			} );
 			} );

+ 2 - 6
examples/jsm/loaders/KTX2Loader.js

@@ -160,12 +160,8 @@ class KTX2Loader extends Loader {
 					|| renderer.extensions.has( 'WEBKIT_WEBGL_compressed_texture_pvrtc' )
 					|| renderer.extensions.has( 'WEBKIT_WEBGL_compressed_texture_pvrtc' )
 			};
 			};
 
 
-			if ( renderer.capabilities.isWebGL2 ) {
-
-				// https://github.com/mrdoob/three.js/pull/22928
-				this.workerConfig.etc1Supported = false;
-
-			}
+			// https://github.com/mrdoob/three.js/pull/22928
+			this.workerConfig.etc1Supported = false;
 
 
 		}
 		}
 
 

+ 0 - 15
examples/jsm/loaders/LUT3dlLoader.js

@@ -3,7 +3,6 @@
 
 
 import {
 import {
 	ClampToEdgeWrapping,
 	ClampToEdgeWrapping,
-	DataTexture,
 	Data3DTexture,
 	Data3DTexture,
 	FileLoader,
 	FileLoader,
 	FloatType,
 	FloatType,
@@ -144,19 +143,6 @@ export class LUT3dlLoader extends Loader {
 
 
 		}
 		}
 
 
-		const texture = new DataTexture();
-		texture.image.data = data;
-		texture.image.width = size;
-		texture.image.height = size * size;
-		texture.format = RGBAFormat;
-		texture.type = this.type;
-		texture.magFilter = LinearFilter;
-		texture.minFilter = LinearFilter;
-		texture.wrapS = ClampToEdgeWrapping;
-		texture.wrapT = ClampToEdgeWrapping;
-		texture.generateMipmaps = false;
-		texture.needsUpdate = true;
-
 		const texture3D = new Data3DTexture();
 		const texture3D = new Data3DTexture();
 		texture3D.image.data = data;
 		texture3D.image.data = data;
 		texture3D.image.width = size;
 		texture3D.image.width = size;
@@ -174,7 +160,6 @@ export class LUT3dlLoader extends Loader {
 
 
 		return {
 		return {
 			size,
 			size,
-			texture,
 			texture3D,
 			texture3D,
 		};
 		};
 
 

+ 0 - 14
examples/jsm/loaders/LUTCubeLoader.js

@@ -2,7 +2,6 @@
 
 
 import {
 import {
 	ClampToEdgeWrapping,
 	ClampToEdgeWrapping,
-	DataTexture,
 	Data3DTexture,
 	Data3DTexture,
 	FileLoader,
 	FileLoader,
 	FloatType,
 	FloatType,
@@ -127,18 +126,6 @@ export class LUTCubeLoader extends Loader {
 
 
 		}
 		}
 
 
-		const texture = new DataTexture();
-		texture.image.data = data;
-		texture.image.width = size;
-		texture.image.height = size * size;
-		texture.type = this.type;
-		texture.magFilter = LinearFilter;
-		texture.minFilter = LinearFilter;
-		texture.wrapS = ClampToEdgeWrapping;
-		texture.wrapT = ClampToEdgeWrapping;
-		texture.generateMipmaps = false;
-		texture.needsUpdate = true;
-
 		const texture3D = new Data3DTexture();
 		const texture3D = new Data3DTexture();
 		texture3D.image.data = data;
 		texture3D.image.data = data;
 		texture3D.image.width = size;
 		texture3D.image.width = size;
@@ -158,7 +145,6 @@ export class LUTCubeLoader extends Loader {
 			size,
 			size,
 			domainMin,
 			domainMin,
 			domainMax,
 			domainMax,
-			texture,
 			texture3D,
 			texture3D,
 		};
 		};
 
 

+ 0 - 14
examples/jsm/loaders/LUTImageLoader.js

@@ -1,7 +1,6 @@
 import {
 import {
 	Loader,
 	Loader,
 	TextureLoader,
 	TextureLoader,
-	DataTexture,
 	Data3DTexture,
 	Data3DTexture,
 	RGBAFormat,
 	RGBAFormat,
 	UnsignedByteType,
 	UnsignedByteType,
@@ -124,18 +123,6 @@ export class LUTImageLoader extends Loader {
 	parse( dataArray, size ) {
 	parse( dataArray, size ) {
 
 
 		const data = new Uint8Array( dataArray );
 		const data = new Uint8Array( dataArray );
-		const texture = new DataTexture();
-		texture.image.data = data;
-		texture.image.width = size;
-		texture.image.height = size * size;
-		texture.format = RGBAFormat;
-		texture.type = UnsignedByteType;
-		texture.magFilter = LinearFilter;
-		texture.minFilter = LinearFilter;
-		texture.wrapS = ClampToEdgeWrapping;
-		texture.wrapT = ClampToEdgeWrapping;
-		texture.generateMipmaps = false;
-		texture.needsUpdate = true;
 
 
 		const texture3D = new Data3DTexture();
 		const texture3D = new Data3DTexture();
 		texture3D.image.data = data;
 		texture3D.image.data = data;
@@ -154,7 +141,6 @@ export class LUTImageLoader extends Loader {
 
 
 		return {
 		return {
 			size,
 			size,
-			texture,
 			texture3D,
 			texture3D,
 		};
 		};
 
 

+ 16 - 0
examples/jsm/loaders/RGBMLoader.js

@@ -36,6 +36,12 @@ class RGBMLoader extends DataTextureLoader {
 
 
 		const texture = new CubeTexture();
 		const texture = new CubeTexture();
 
 
+		for ( let i = 0; i < 6; i ++ ) {
+
+			texture.images[ i ] = undefined;
+
+		}
+
 		let loaded = 0;
 		let loaded = 0;
 
 
 		const scope = this;
 		const scope = this;
@@ -75,6 +81,16 @@ class RGBMLoader extends DataTextureLoader {
 
 
 	}
 	}
 
 
+	loadCubemapAsync( urls, onProgress ) {
+
+		return new Promise( ( resolve, reject ) => {
+
+			this.loadCubemap( urls, resolve, onProgress, reject );
+
+		} );
+
+	}
+
 	parse( buffer ) {
 	parse( buffer ) {
 
 
 		const img = UPNG.decode( buffer );
 		const img = UPNG.decode( buffer );

+ 0 - 6
examples/jsm/misc/GPUComputationRenderer.js

@@ -171,12 +171,6 @@ class GPUComputationRenderer {
 
 
 		this.init = function () {
 		this.init = function () {
 
 
-			if ( renderer.capabilities.isWebGL2 === false && renderer.extensions.has( 'OES_texture_float' ) === false ) {
-
-				return 'No OES_texture_float support for float textures.';
-
-			}
-
 			if ( renderer.capabilities.maxVertexTextures === 0 ) {
 			if ( renderer.capabilities.maxVertexTextures === 0 ) {
 
 
 				return 'No support for vertex shader textures.';
 				return 'No support for vertex shader textures.';

+ 6 - 1
examples/jsm/nodes/Nodes.js

@@ -64,7 +64,6 @@ export { default as RemapNode, remap, remapClamp } from './utils/RemapNode.js';
 export { default as RotateUVNode, rotateUV } from './utils/RotateUVNode.js';
 export { default as RotateUVNode, rotateUV } from './utils/RotateUVNode.js';
 export { default as RotateNode, rotate } from './utils/RotateNode.js';
 export { default as RotateNode, rotate } from './utils/RotateNode.js';
 export { default as SetNode } from './utils/SetNode.js';
 export { default as SetNode } from './utils/SetNode.js';
-export { default as SpecularMIPLevelNode, specularMIPLevel } from './utils/SpecularMIPLevelNode.js';
 export { default as SplitNode } from './utils/SplitNode.js';
 export { default as SplitNode } from './utils/SplitNode.js';
 export { default as SpriteSheetUVNode, spritesheetUV } from './utils/SpriteSheetUVNode.js';
 export { default as SpriteSheetUVNode, spritesheetUV } from './utils/SpriteSheetUVNode.js';
 export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
 export { default as StorageArrayElementNode } from './utils/StorageArrayElementNode.js';
@@ -85,8 +84,10 @@ export { default as CameraNode, cameraProjectionMatrix, cameraProjectionMatrixIn
 export { default as VertexColorNode, vertexColor } from './accessors/VertexColorNode.js';
 export { default as VertexColorNode, vertexColor } from './accessors/VertexColorNode.js';
 export { default as CubeTextureNode, cubeTexture } from './accessors/CubeTextureNode.js';
 export { default as CubeTextureNode, cubeTexture } from './accessors/CubeTextureNode.js';
 export { default as InstanceNode, instance } from './accessors/InstanceNode.js';
 export { default as InstanceNode, instance } from './accessors/InstanceNode.js';
+export { default as BatchNode, batch } from './accessors/BatchNode.js';
 export { default as MaterialNode, materialAlphaTest, materialColor, materialShininess, materialEmissive, materialOpacity, materialSpecularColor, materialSpecularStrength, materialReflectivity, materialRoughness, materialMetalness, materialNormal, materialClearcoat, materialClearcoatRoughness, materialClearcoatNormal, materialRotation, materialSheen, materialSheenRoughness, materialIridescence, materialIridescenceIOR, materialIridescenceThickness, materialLineScale, materialLineDashSize, materialLineGapSize, materialLineWidth, materialLineDashOffset, materialPointWidth } from './accessors/MaterialNode.js';
 export { default as MaterialNode, materialAlphaTest, materialColor, materialShininess, materialEmissive, materialOpacity, materialSpecularColor, materialSpecularStrength, materialReflectivity, materialRoughness, materialMetalness, materialNormal, materialClearcoat, materialClearcoatRoughness, materialClearcoatNormal, materialRotation, materialSheen, materialSheenRoughness, materialIridescence, materialIridescenceIOR, materialIridescenceThickness, materialLineScale, materialLineDashSize, materialLineGapSize, materialLineWidth, materialLineDashOffset, materialPointWidth } from './accessors/MaterialNode.js';
 export { default as MaterialReferenceNode, materialReference } from './accessors/MaterialReferenceNode.js';
 export { default as MaterialReferenceNode, materialReference } from './accessors/MaterialReferenceNode.js';
+export { default as RendererReferenceNode, rendererReference } from './accessors/RendererReferenceNode.js';
 export { default as MorphNode, morphReference } from './accessors/MorphNode.js';
 export { default as MorphNode, morphReference } from './accessors/MorphNode.js';
 export { default as TextureBicubicNode, textureBicubic } from './accessors/TextureBicubicNode.js';
 export { default as TextureBicubicNode, textureBicubic } from './accessors/TextureBicubicNode.js';
 export { default as ModelNode, modelDirection, modelViewMatrix, modelNormalMatrix, modelWorldMatrix, modelPosition, modelViewPosition, modelScale } from './accessors/ModelNode.js';
 export { default as ModelNode, modelDirection, modelViewMatrix, modelNormalMatrix, modelWorldMatrix, modelPosition, modelViewPosition, modelScale } from './accessors/ModelNode.js';
@@ -160,6 +161,10 @@ export { default as EnvironmentNode } from './lighting/EnvironmentNode.js';
 export { default as AONode } from './lighting/AONode.js';
 export { default as AONode } from './lighting/AONode.js';
 export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
 export { default as AnalyticLightNode } from './lighting/AnalyticLightNode.js';
 
 
+// pmrem
+export { default as PMREMNode, pmremTexture } from './pmrem/PMREMNode.js';
+export * as PMREMUtils from './pmrem/PMREMUtils.js';
+
 // procedural
 // procedural
 export { default as CheckerNode, checker } from './procedural/CheckerNode.js';
 export { default as CheckerNode, checker } from './procedural/CheckerNode.js';
 
 

+ 78 - 0
examples/jsm/nodes/accessors/BatchNode.js

@@ -0,0 +1,78 @@
+import Node, { addNodeClass } from '../core/Node.js';
+import { normalLocal } from './NormalNode.js';
+import { positionLocal } from './PositionNode.js';
+import { nodeProxy, vec3, mat3, mat4, int, ivec2, float } from '../shadernode/ShaderNode.js';
+import { textureLoad } from './TextureNode.js';
+import { textureSize } from './TextureSizeNode.js';
+import { attribute } from '../core/AttributeNode.js';
+import { tangentLocal } from './TangentNode.js';
+
+class BatchNode extends Node {
+
+	constructor( batchMesh ) {
+
+		super( 'void' );
+
+		this.batchMesh = batchMesh;
+
+
+		this.instanceColorNode = null;
+
+		this.batchingIdNode = null;
+
+	}
+
+	setup( builder ) {
+
+		// POSITION
+
+		if ( this.batchingIdNode === null ) {
+
+			this.batchingIdNode = attribute( 'batchId' );
+
+		}
+
+		const matriceTexture = this.batchMesh._matricesTexture;
+
+		const size = textureSize( textureLoad( matriceTexture ), 0 );
+		const j = float( int( this.batchingIdNode ) ).mul( 4 ).toVar();
+
+		const x = int( j.mod( size ) );
+		const y = int( j ).div( int( size ) );
+		const batchingMatrix = mat4(
+			textureLoad( matriceTexture, ivec2( x, y ) ),
+			textureLoad( matriceTexture, ivec2( x.add( 1 ), y ) ),
+			textureLoad( matriceTexture, ivec2( x.add( 2 ), y ) ),
+			textureLoad( matriceTexture, ivec2( x.add( 3 ), y ) )
+		);
+
+
+		const bm = mat3(
+			batchingMatrix[ 0 ].xyz,
+			batchingMatrix[ 1 ].xyz,
+			batchingMatrix[ 2 ].xyz
+		 );
+
+		positionLocal.assign( batchingMatrix.mul( positionLocal ) );
+
+		const transformedNormal = normalLocal.div( vec3( bm[ 0 ].dot( bm[ 0 ] ), bm[ 1 ].dot( bm[ 1 ] ), bm[ 2 ].dot( bm[ 2 ] ) ) );
+
+		const batchingNormal = bm.mul( transformedNormal ).xyz;
+
+		normalLocal.assign( batchingNormal );
+
+		if ( builder.hasGeometryAttribute( 'tangent' ) ) {
+
+			tangentLocal.mulAssign( bm );
+
+		}
+
+	}
+
+}
+
+export default BatchNode;
+
+export const batch = nodeProxy( BatchNode );
+
+addNodeClass( 'batch', BatchNode );

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