Browse Source

bump to three r125.2

Gregg Tavares 4 years ago
parent
commit
6a0b213f99
100 changed files with 266 additions and 306 deletions
  1. 3 3
      threejs/background-v01.html
  2. 3 3
      threejs/background.html
  3. 3 3
      threejs/lessons/fr/threejs-fundamentals.md
  4. 1 1
      threejs/lessons/fr/threejs-prerequisites.md
  5. 1 1
      threejs/lessons/fr/threejs-primitives.md
  6. 4 4
      threejs/lessons/ja/threejs-align-html-elements-to-3d.md
  7. 2 2
      threejs/lessons/ja/threejs-canvas-textures.md
  8. 2 2
      threejs/lessons/ja/threejs-custom-geometry.md
  9. 2 2
      threejs/lessons/ja/threejs-fundamentals.md
  10. 5 5
      threejs/lessons/ja/threejs-lights.md
  11. 4 4
      threejs/lessons/ja/threejs-load-gltf.md
  12. 5 5
      threejs/lessons/ja/threejs-load-obj.md
  13. 1 1
      threejs/lessons/ja/threejs-multiple-scenes.md
  14. 5 5
      threejs/lessons/ja/threejs-offscreencanvas.md
  15. 4 4
      threejs/lessons/ja/threejs-optimize-lots-of-objects-animated.md
  16. 1 1
      threejs/lessons/ja/threejs-optimize-lots-of-objects.md
  17. 4 4
      threejs/lessons/ja/threejs-post-processing.md
  18. 1 1
      threejs/lessons/ja/threejs-prerequisites.md
  19. 4 4
      threejs/lessons/ja/threejs-rendering-on-demand.md
  20. 4 4
      threejs/lessons/kr/threejs-align-html-elements-to-3d.md
  21. 1 1
      threejs/lessons/kr/threejs-backgrounds.md
  22. 2 2
      threejs/lessons/kr/threejs-canvas-textures.md
  23. 2 2
      threejs/lessons/kr/threejs-custom-geometry.md
  24. 3 3
      threejs/lessons/kr/threejs-fundamentals.md
  25. 8 8
      threejs/lessons/kr/threejs-game.md
  26. 5 5
      threejs/lessons/kr/threejs-lights.md
  27. 4 4
      threejs/lessons/kr/threejs-load-gltf.md
  28. 5 5
      threejs/lessons/kr/threejs-load-obj.md
  29. 1 1
      threejs/lessons/kr/threejs-multiple-scenes.md
  30. 5 5
      threejs/lessons/kr/threejs-offscreencanvas.md
  31. 4 4
      threejs/lessons/kr/threejs-optimize-lots-of-objects-animated.md
  32. 1 1
      threejs/lessons/kr/threejs-optimize-lots-of-objects.md
  33. 4 4
      threejs/lessons/kr/threejs-post-processing.md
  34. 1 1
      threejs/lessons/kr/threejs-prerequisites.md
  35. 4 4
      threejs/lessons/kr/threejs-rendering-on-demand.md
  36. 2 2
      threejs/lessons/kr/threejs-transparency.md
  37. 1 1
      threejs/lessons/resources/threejs-cameras.js
  38. 2 33
      threejs/lessons/resources/threejs-custom-buffergeometry.js
  39. 2 2
      threejs/lessons/resources/threejs-fog.js
  40. 2 2
      threejs/lessons/resources/threejs-lesson-utils.js
  41. 2 2
      threejs/lessons/resources/threejs-lights.js
  42. 1 1
      threejs/lessons/resources/threejs-lots-of-objects.js
  43. 1 1
      threejs/lessons/resources/threejs-materials.js
  44. 2 3
      threejs/lessons/resources/threejs-primitives.js
  45. 1 1
      threejs/lessons/resources/threejs-textures.js
  46. 2 2
      threejs/lessons/resources/threejs-voxel-geometry.js
  47. 2 2
      threejs/lessons/ru/threejs-custom-geometry.md
  48. 1 1
      threejs/lessons/ru/threejs-fundamentals.md
  49. 5 5
      threejs/lessons/ru/threejs-lights.md
  50. 1 1
      threejs/lessons/ru/threejs-multiple-scenes.md
  51. 5 5
      threejs/lessons/ru/threejs-offscreencanvas.md
  52. 4 4
      threejs/lessons/ru/threejs-optimize-lots-of-objects-animated.md
  53. 1 1
      threejs/lessons/ru/threejs-optimize-lots-of-objects.md
  54. 1 1
      threejs/lessons/ru/threejs-prerequisites.md
  55. 4 4
      threejs/lessons/ru/threejs-rendering-on-demand.md
  56. 4 4
      threejs/lessons/threejs-align-html-elements-to-3d.md
  57. 1 1
      threejs/lessons/threejs-backgrounds.md
  58. 2 2
      threejs/lessons/threejs-canvas-textures.md
  59. 9 12
      threejs/lessons/threejs-custom-buffergeometry.md
  60. 2 2
      threejs/lessons/threejs-custom-geometry.md
  61. 0 5
      threejs/lessons/threejs-debugging-javascript.md
  62. 3 3
      threejs/lessons/threejs-fundamentals.md
  63. 8 8
      threejs/lessons/threejs-game.md
  64. 5 5
      threejs/lessons/threejs-lights.md
  65. 4 4
      threejs/lessons/threejs-load-gltf.md
  66. 5 5
      threejs/lessons/threejs-load-obj.md
  67. 1 1
      threejs/lessons/threejs-multiple-scenes.md
  68. 5 5
      threejs/lessons/threejs-offscreencanvas.md
  69. 4 4
      threejs/lessons/threejs-optimize-lots-of-objects-animated.md
  70. 1 1
      threejs/lessons/threejs-optimize-lots-of-objects.md
  71. 4 4
      threejs/lessons/threejs-post-processing.md
  72. 1 1
      threejs/lessons/threejs-prerequisites.md
  73. 4 4
      threejs/lessons/threejs-rendering-on-demand.md
  74. 2 2
      threejs/lessons/threejs-transparency.md
  75. 2 2
      threejs/lessons/threejs-webvr.md
  76. 3 3
      threejs/lessons/zh_cn/threejs-fundamentals.md
  77. 5 5
      threejs/lessons/zh_cn/threejs-lights.md
  78. 5 5
      threejs/lessons/zh_cn/threejs-load-obj.md
  79. 1 1
      threejs/offscreencanvas-cubes.js
  80. 1 1
      threejs/offscreencanvas-worker-orbitcontrols.js
  81. 1 1
      threejs/shared-cubes.js
  82. 2 2
      threejs/shared-orbitcontrols.js
  83. 1 1
      threejs/shared-picking.js
  84. 2 2
      threejs/threejs-align-html-elements-to-3d-globe-too-many-labels.html
  85. 2 2
      threejs/threejs-align-html-elements-to-3d-globe.html
  86. 2 2
      threejs/threejs-align-html-to-3d-w-hiding.html
  87. 2 2
      threejs/threejs-align-html-to-3d-w-sorting.html
  88. 2 2
      threejs/threejs-align-html-to-3d.html
  89. 1 1
      threejs/threejs-background-css.html
  90. 2 2
      threejs/threejs-background-cubemap.html
  91. 2 2
      threejs/threejs-background-equirectangularmap.html
  92. 1 1
      threejs/threejs-background-scene-background-fixed-aspect.html
  93. 1 1
      threejs/threejs-background-scene-background.html
  94. 1 1
      threejs/threejs-background-separate-scene-bad-aspect.html
  95. 1 1
      threejs/threejs-background-separate-scene.html
  96. 2 2
      threejs/threejs-billboard-labels-w-sprites-adjust-height.html
  97. 2 2
      threejs/threejs-billboard-labels-w-sprites.html
  98. 2 2
      threejs/threejs-billboard-trees-no-billboards.html
  99. 2 2
      threejs/threejs-billboard-trees-static-billboards.html
  100. 2 2
      threejs/threejs-cameras-logarithmic-depth-buffer.html

+ 3 - 3
threejs/background-v01.html

@@ -22,9 +22,9 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {GLTFLoader} from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {GLTFLoader} from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 3 - 3
threejs/background.html

@@ -22,9 +22,9 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {GLTFLoader} from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {GLTFLoader} from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 3 - 3
threejs/lessons/fr/threejs-fundamentals.md

@@ -97,7 +97,7 @@ Tout d'abord, chargeons three.js :
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 </script>
 </script>
 ```
 ```
 
 
@@ -121,7 +121,7 @@ dans le document html :
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 +function main() {
 +function main() {
 +  const canvas = document.querySelector('#c');
 +  const canvas = document.querySelector('#c');
@@ -415,7 +415,7 @@ par le biais d'une balise <code>&lt;script type="module"&gt;</code>. Voici un ex
 </p>
 </p>
 <pre class=prettyprint>
 <pre class=prettyprint>
 &lt;script type="module"&gt;
 &lt;script type="module"&gt;
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 1 - 1
threejs/lessons/fr/threejs-prerequisites.md

@@ -25,7 +25,7 @@ ou en ligne via une balise `<script type="module">`. Voici un exemple des deux
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 1 - 1
threejs/lessons/fr/threejs-primitives.md

@@ -62,7 +62,7 @@ triangulaire à un <code>WireframeGeometry</code> vous obtenez une nouvelle géo
 3 segments de lignes utilisant 6 points.</div>
 3 segments de lignes utilisant 6 points.</div>
 
 
 Nous reviendrons sur la création de géométrie personnalisée dans
 Nous reviendrons sur la création de géométrie personnalisée dans
-[un autre article](threejs-custom-buffer-geometry.html). Pour l'instant,
+[un autre article](threejs-custom-buffergeometry.html). Pour l'instant,
 faisons un exemple en créant chaque type de primitive. Nous
 faisons un exemple en créant chaque type de primitive. Nous
 commencerons par les [exemples vus dans l'article précédent](threejs-responsive.html).
 commencerons par les [exemples vus dans l'article précédent](threejs-responsive.html).
 
 

+ 4 - 4
threejs/lessons/ja/threejs-align-html-elements-to-3d.md

@@ -37,8 +37,8 @@ TOC: HTML要素を3Dに揃える
 [ライティングの記事](threejs-lights.html)のように `OrbitControls` を追加します。
 [ライティングの記事](threejs-lights.html)のように `OrbitControls` を追加します。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js
@@ -701,8 +701,8 @@ for (const countryInfo of countryInfos) {
 値を操作できるようにGUIを追加します。
 値を操作できるようにGUIを追加します。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 2 - 2
threejs/lessons/ja/threejs-canvas-textures.md

@@ -254,8 +254,8 @@ const scene = new THREE.Scene();
 残作業はカメラを動かせるように `OrbitControls` を追加します。
 残作業はカメラを動かせるように `OrbitControls` を追加します。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 2 - 2
threejs/lessons/ja/threejs-custom-geometry.md

@@ -400,8 +400,8 @@ for (let z = 0; z < cellsDeep; ++z) {
 * `OrbitControls`を追加してください。
 * `OrbitControls`を追加してください。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 2 - 2
threejs/lessons/ja/threejs-fundamentals.md

@@ -33,7 +33,7 @@ Three.jsはcanvasに描画するため、canvasをthree.jsに渡す必要があ
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');
@@ -292,7 +292,7 @@ es6モジュールはスクリプトのロードに <code>import</code> を使
 </p>
 </p>
 <pre class=prettyprint>
 <pre class=prettyprint>
 &lt;script type="module"&gt;
 &lt;script type="module"&gt;
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 5 - 5
threejs/lessons/ja/threejs-lights.md

@@ -26,8 +26,8 @@ const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
 `OrbitControls` はthree.jsのオプション機能なので、importする必要があります。
 `OrbitControls` はthree.jsのオプション機能なので、importする必要があります。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 これでOrbitControlsを利用できます。
 これでOrbitControlsを利用できます。
@@ -434,9 +434,9 @@ gui.add(light, 'penumbra', 0, 1, 0.01);
 ライトを可視化するために `RectAreaLightHelper` をimportします。
 ライトを可視化するために `RectAreaLightHelper` をimportします。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {RectAreaLightUniformsLib} from './resources/threejs/r122/examples/jsm/lights/RectAreaLightUniformsLib.js';
-+import {RectAreaLightHelper} from './resources/threejs/r122/examples/jsm/helpers/RectAreaLightHelper.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {RectAreaLightUniformsLib} from './resources/threejs/r125/examples/jsm/lights/RectAreaLightUniformsLib.js';
++import {RectAreaLightHelper} from './resources/threejs/r125/examples/jsm/helpers/RectAreaLightHelper.js';
 ```
 ```
 
 
 `RectAreaLightUniformsLib.init` を呼び出します。
 `RectAreaLightUniformsLib.init` を呼び出します。

+ 4 - 4
threejs/lessons/ja/threejs-load-gltf.md

@@ -97,10 +97,10 @@ mtlLoader.loadMtl('resources/models/windmill/windmill-fixed.mtl', (mtl) => {
 また `OBJLoader` を取り除き `GLTFLoader` を含める必要があります。
 また `OBJLoader` を取り除き `GLTFLoader` を含める必要があります。
 
 
 ```html
 ```html
--import {LoaderSupport} from './resources/threejs/r122/examples/jsm/loaders/LoaderSupport.js';
--import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
--import {MTLLoader} from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
-+import {GLTFLoader} from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
+-import {LoaderSupport} from './resources/threejs/r125/examples/jsm/loaders/LoaderSupport.js';
+-import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
+-import {MTLLoader} from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
++import {GLTFLoader} from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
 ```
 ```
 
 
 実行すると以下になりました。
 実行すると以下になりました。

+ 5 - 5
threejs/lessons/ja/threejs-load-obj.md

@@ -32,7 +32,7 @@ blendファイルをダウンロードし[Blender](https://blender.org)で読み
 まず最初に `OBJLoader` のローダーをコードに含める必要があります。
 まず最初に `OBJLoader` のローダーをコードに含める必要があります。
 
 
 ```js
 ```js
-import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
+import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
 ```
 ```
 
 
 次にOBJファイルをロードするために `OBJLoader` のインスタンスを作成し、OBJファイルのURLを渡し、ロードされたモデルをシーンに追加するコールバックを渡します。
 次にOBJファイルをロードするために `OBJLoader` のインスタンスを作成し、OBJファイルのURLを渡し、ロードされたモデルをシーンに追加するコールバックを渡します。
@@ -118,10 +118,10 @@ blenderで **File->External Data->Unpack All Into Files** を選択し、これ
 `MTLLoader` をimportする必要があります。
 `MTLLoader` をimportする必要があります。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
-+import {MTLLoader} from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
++import {MTLLoader} from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
 ```
 ```
 
 
 まず、MTLファイルをロードします。
 まず、MTLファイルをロードします。

+ 1 - 1
threejs/lessons/ja/threejs-multiple-scenes.md

@@ -450,7 +450,7 @@ document.querySelectorAll('[data-diagram]').forEach((elem) => {
 最初にコントロール用のスクリプトを追加します。
 最初にコントロール用のスクリプトを追加します。
 
 
 ```js
 ```js
-import {TrackballControls} from './resources/threejs/r122/examples/jsm/controls/TrackballControls.js';
+import {TrackballControls} from './resources/threejs/r125/examples/jsm/controls/TrackballControls.js';
 ```
 ```
 
 
 そして `TrackballControls` を各シーンに追加し、シーンに関連付けられた要素を渡します。
 そして `TrackballControls` を各シーンに追加し、シーンに関連付けられた要素を渡します。

+ 5 - 5
threejs/lessons/ja/threejs-offscreencanvas.md

@@ -259,7 +259,7 @@ function main() {
 次にHTMLファイルには既に `main` があり、`init` と `state` をエクスポートする必要があるため `main` の名前を `init` に変更します。
 次にHTMLファイルには既に `main` があり、`init` と `state` をエクスポートする必要があるため `main` の名前を `init` に変更します。
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 -const state = {
 -const state = {
 +export const state = {
 +export const state = {
@@ -613,7 +613,7 @@ window.addEventListener('touchend', clearPickPosition);
 OrbitControlsは `HTMLElement` を取り、それに使用するDOMイベントのほとんどをアタッチします。
 OrbitControlsは `HTMLElement` を取り、それに使用するDOMイベントのほとんどをアタッチします。
 OrbitControlsが必要とする機能をサポートする必要があります。
 OrbitControlsが必要とする機能をサポートする必要があります。
 
 
-[OrbitControlsのソースコード](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r122/examples/js/controls/OrbitControls.js)を掘り下げてみると、次のイベントを処理する必要があるように見えます。
+[OrbitControlsのソースコード](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r125/examples/js/controls/OrbitControls.js)を掘り下げてみると、次のイベントを処理する必要があるように見えます。
 
 
 * contextmenu
 * contextmenu
 * mousedown
 * mousedown
@@ -640,7 +640,7 @@ OrbitControlsが必要とする機能をサポートする必要があります
 ここにWorker部分のコードがあります。
 ここにWorker部分のコードがあります。
 
 
 ```js
 ```js
-import {EventDispatcher} from './resources/threejs/r122/build/three.module.js';
+import {EventDispatcher} from './resources/threejs/r125/build/three.module.js';
 
 
 class ElementProxyReceiver extends EventDispatcher {
 class ElementProxyReceiver extends EventDispatcher {
   constructor() {
   constructor() {
@@ -721,8 +721,8 @@ self.onmessage = function(e) {
 共有のthree.jsコードでは `OrbitControls` をインポートして設定する必要があります。
 共有のthree.jsコードでは `OrbitControls` をインポートして設定する必要があります。
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 export function init(data) {
 export function init(data) {
 -  const {canvas} = data;
 -  const {canvas} = data;

+ 4 - 4
threejs/lessons/ja/threejs-optimize-lots-of-objects-animated.md

@@ -343,10 +343,10 @@ showFileInfo(fileInfos, fileInfos[0]);
 アニメーションライブラリをimportする必要があります。
 アニメーションライブラリをimportする必要があります。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {BufferGeometryUtils} from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-+import {TWEEN} from './resources/threejs/r122/examples/jsm/libs/tween.min.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {BufferGeometryUtils} from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
++import {TWEEN} from './resources/threejs/r125/examples/jsm/libs/tween.min.js';
 ```
 ```
 
 
 そして、影響を与えるアニメーションの `Tween` を作成します。
 そして、影響を与えるアニメーションの `Tween` を作成します。

+ 1 - 1
threejs/lessons/ja/threejs-optimize-lots-of-objects.md

@@ -387,7 +387,7 @@ function addBoxes(file) {
 また `BufferGeometryUtils` も含める必要があります。
 また `BufferGeometryUtils` も含める必要があります。
 
 
 ```js
 ```js
-import {BufferGeometryUtils} from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
+import {BufferGeometryUtils} from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
 ```
 ```
 
 
 少なくとも私のマシンでは毎秒60フレームになりました。
 少なくとも私のマシンでは毎秒60フレームになりました。

+ 4 - 4
threejs/lessons/ja/threejs-post-processing.md

@@ -99,10 +99,10 @@ composer.addPass(filmPass);
 これらのクラスを使用するには、以下をインポートする必要があります。
 これらのクラスを使用するには、以下をインポートする必要があります。
 
 
 ```js
 ```js
-import {EffectComposer} from './resources/threejs/r122/examples/jsm/postprocessing/EffectComposer.js';
-import {RenderPass} from './resources/threejs/r122/examples/jsm/postprocessing/RenderPass.js';
-import {BloomPass} from './resources/threejs/r122/examples/jsm/postprocessing/BloomPass.js';
-import {FilmPass} from './resources/threejs/r122/examples/jsm/postprocessing/FilmPass.js';
+import {EffectComposer} from './resources/threejs/r125/examples/jsm/postprocessing/EffectComposer.js';
+import {RenderPass} from './resources/threejs/r125/examples/jsm/postprocessing/RenderPass.js';
+import {BloomPass} from './resources/threejs/r125/examples/jsm/postprocessing/BloomPass.js';
+import {FilmPass} from './resources/threejs/r125/examples/jsm/postprocessing/FilmPass.js';
 ```
 ```
 
 
 ほとんどのポストプロセスには `EffectComposer.js` と `RenderPass.js` が必須です。
 ほとんどのポストプロセスには `EffectComposer.js` と `RenderPass.js` が必須です。

+ 1 - 1
threejs/lessons/ja/threejs-prerequisites.md

@@ -20,7 +20,7 @@ es6モジュールはスクリプトの中で `import` キーワード、また
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 4 - 4
threejs/lessons/ja/threejs-rendering-on-demand.md

@@ -24,8 +24,8 @@ requestAnimationFrame(render);
 最初に `OrbitControls` を追加します。これで何かの変更を反映してレンダリングする事ができます。
 最初に `OrbitControls` を追加します。これで何かの変更を反映してレンダリングする事ができます。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 次に以下のように設定します。
 次に以下のように設定します。
@@ -167,8 +167,8 @@ render();
 シンプルなdat.GUIを追加し、GUIで値の変更時にレンダリングを要求してみましょう。
 シンプルなdat.GUIを追加し、GUIで値の変更時にレンダリングを要求してみましょう。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 4 - 4
threejs/lessons/kr/threejs-align-html-elements-to-3d.md

@@ -26,8 +26,8 @@ TOC: HTML 요소를 3D로 정렬하기
 여기에 `OrbitControls`를 넣습니다. [조명에 관한 글](threejs-lights.html)에서 다뤘었죠.
 여기에 `OrbitControls`를 넣습니다. [조명에 관한 글](threejs-lights.html)에서 다뤘었죠.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js
@@ -652,8 +652,8 @@ for (const countryInfo of countryInfos) {
 마지막으로 어떤 값이 적당한지 알기 어려우니 이 값을 조정할 수 있도록 GUI를 추가합니다.
 마지막으로 어떤 값이 적당한지 알기 어려우니 이 값을 조정할 수 있도록 GUI를 추가합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 1 - 1
threejs/lessons/kr/threejs-backgrounds.md

@@ -172,7 +172,7 @@ function render(time) {
 카메라도 조작이 가능하도록 만듭니다.
 카메라도 조작이 가능하도록 만듭니다.
 
 
 ```js
 ```js
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 2 - 2
threejs/lessons/kr/threejs-canvas-textures.md

@@ -236,8 +236,8 @@ const scene = new THREE.Scene();
 마지막으로 `OrbitControls`를 넣어 카메라를 움직일 수 있도록 합니다.
 마지막으로 `OrbitControls`를 넣어 카메라를 움직일 수 있도록 합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 2 - 2
threejs/lessons/kr/threejs-custom-geometry.md

@@ -422,8 +422,8 @@ for (let z = 0; z < cellsDeep; ++z) {
 `OrbitControls`를 추가하고,
 `OrbitControls`를 추가하고,
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 3 - 3
threejs/lessons/kr/threejs-fundamentals.md

@@ -85,7 +85,7 @@ Three.js는 3차원 세계를 다루므로, 우리는 정육면체(cube)를 3차
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 </script>
 </script>
 ```
 ```
 
 
@@ -107,7 +107,7 @@ import * as THREE from './resources/threejs/r122/build/three.module.js';
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 +function main() {
 +function main() {
 +  const canvas = document.querySelector('#c');
 +  const canvas = document.querySelector('#c');
@@ -389,7 +389,7 @@ es6 모듈은 js 파일이나 인라인 <code>&lt;script type="module"&gt;</code
 </p>
 </p>
 <pre class=prettyprint>
 <pre class=prettyprint>
 &lt;script type="module"&gt;
 &lt;script type="module"&gt;
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 8 - 8
threejs/lessons/kr/threejs-game.md

@@ -181,10 +181,10 @@ function init() {
 [이전 glTF 파일 예제](threejs-load-gltf.html)와 달리 이번에는 각 모델을 하나 이상 배치할 계획입니다. 그러니 파일을 불러온 뒤 바로 장면에 넣는 대신 각 glTF의 씬 그래프(scene), 이 경우에는 움직이는 캐릭터를 복사해야 합니다. 다행히 Three.js에는 `SkeletonUtil.clone`이라는 함수가 있어 이를 쉽게 구현할 수 있죠. 먼저 해당 모듈을 불러오겠습니다.
 [이전 glTF 파일 예제](threejs-load-gltf.html)와 달리 이번에는 각 모델을 하나 이상 배치할 계획입니다. 그러니 파일을 불러온 뒤 바로 장면에 넣는 대신 각 glTF의 씬 그래프(scene), 이 경우에는 움직이는 캐릭터를 복사해야 합니다. 다행히 Three.js에는 `SkeletonUtil.clone`이라는 함수가 있어 이를 쉽게 구현할 수 있죠. 먼저 해당 모듈을 불러오겠습니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import { GLTFLoader } from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
-+import { SkeletonUtils } from './resources/threejs/r122/examples/jsm/utils/SkeletonUtils.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import { GLTFLoader } from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
++import { SkeletonUtils } from './resources/threejs/r125/examples/jsm/utils/SkeletonUtils.js';
 ```
 ```
 
 
 그리고 아까 불러왔던 모델을 복사합니다.
 그리고 아까 불러왔던 모델을 복사합니다.
@@ -1492,10 +1492,10 @@ class Animal extends Component {
 추가로 dat.GUI를 이용해 위 디버깅 요소들를 켜고 끌 수 있도록 합니다.
 추가로 dat.GUI를 이용해 위 디버깅 요소들를 켜고 끌 수 있도록 합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import { GLTFLoader } from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
-import { SkeletonUtils } from './resources/threejs/r122/examples/jsm/utils/SkeletonUtils.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import { GLTFLoader } from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
+import { SkeletonUtils } from './resources/threejs/r125/examples/jsm/utils/SkeletonUtils.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 5 - 5
threejs/lessons/kr/threejs-lights.md

@@ -26,8 +26,8 @@ const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
 별도 모듈이므로, 먼저 페이지에 로드해야 합니다.
 별도 모듈이므로, 먼저 페이지에 로드해야 합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 이제 `OrbitControls`에 카메라와, DOM 이벤트를 감지할 수 있도록
 이제 `OrbitControls`에 카메라와, DOM 이벤트를 감지할 수 있도록
@@ -447,9 +447,9 @@ gui.add(light, 'penumbra', 0, 1, 0.01);
 `RectAreaLightHelper`도 같이 불러와 조명을 시각화하겠습니다.
 `RectAreaLightHelper`도 같이 불러와 조명을 시각화하겠습니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import { RectAreaLightUniformsLib } from './resources/threejs/r122/examples/jsm/lights/RectAreaLightUniformsLib.js';
-+import { RectAreaLightHelper } from './resources/threejs/r122/examples/jsm/helpers/RectAreaLightHelper.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import { RectAreaLightUniformsLib } from './resources/threejs/r125/examples/jsm/lights/RectAreaLightUniformsLib.js';
++import { RectAreaLightHelper } from './resources/threejs/r125/examples/jsm/helpers/RectAreaLightHelper.js';
 ```
 ```
 
 
 모듈을 불러온 후 `RectAreaLightUniformsLib.init` 메서드를 호출합니다.
 모듈을 불러온 후 `RectAreaLightUniformsLib.init` 메서드를 호출합니다.

+ 4 - 4
threejs/lessons/kr/threejs-load-gltf.md

@@ -103,10 +103,10 @@ mtlLoader.loadMtl('resources/models/windmill/windmill-fixed.mtl', (mtl) => {
 추가합니다.
 추가합니다.
 
 
 ```html
 ```html
--import { LoaderSupport } from './resources/threejs/r122/examples/jsm/loaders/LoaderSupport.js';
--import { OBJLoader } from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
--import { MTLLoader } from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
-+import { GLTFLoader } from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
+-import { LoaderSupport } from './resources/threejs/r125/examples/jsm/loaders/LoaderSupport.js';
+-import { OBJLoader } from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
+-import { MTLLoader } from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
++import { GLTFLoader } from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
 ```
 ```
 
 
 이제 실행해보죠.
 이제 실행해보죠.

+ 5 - 5
threejs/lessons/kr/threejs-load-obj.md

@@ -41,7 +41,7 @@ Three.js로 프로젝트를 진행할 때, 3D 모델 파일을 불러와 사용
 다음으로 먼저 `OBJLoader` 모듈을 스크립트에 로드합니다.
 다음으로 먼저 `OBJLoader` 모듈을 스크립트에 로드합니다.
 
 
 ```js
 ```js
-import { OBJLoader } from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
+import { OBJLoader } from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
 ```
 ```
 
 
 `OBJLoader`의 인스턴스를 생성한 뒤 .OBJ 파일의 경로와 콜백 함수를 넘겨
 `OBJLoader`의 인스턴스를 생성한 뒤 .OBJ 파일의 경로와 콜백 함수를 넘겨
@@ -133,10 +133,10 @@ map_Ns windmill_001_base_SPEC.jpg
 `MTLLoader` 모듈을 불러옵니다.
 `MTLLoader` 모듈을 불러옵니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import { OBJLoader } from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
-+import { MTLLoader } from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import { OBJLoader } from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
++import { MTLLoader } from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
 ```
 ```
 
 
 {{{warning msgId="badTranslation"}}}
 {{{warning msgId="badTranslation"}}}

+ 1 - 1
threejs/lessons/kr/threejs-multiple-scenes.md

@@ -455,7 +455,7 @@ document.querySelectorAll('[data-diagram]').forEach((elem) => {
 불러옵니다.
 불러옵니다.
 
 
 ```js
 ```js
-import { TrackballControls } from './resources/threejs/r122/examples/jsm/controls/TrackballControls.js';
+import { TrackballControls } from './resources/threejs/r125/examples/jsm/controls/TrackballControls.js';
 ```
 ```
 
 
 그리고 각 장면에 대응하는 요소에 `TrackballControls`를 추가합니다.
 그리고 각 장면에 대응하는 요소에 `TrackballControls`를 추가합니다.

+ 5 - 5
threejs/lessons/kr/threejs-offscreencanvas.md

@@ -226,7 +226,7 @@ function main() {
 `shared-cubes.js`와 `offscreencanvas-worker-cubes.js`는 단순히 이전 `offscreencanvas-cubes.js` 파일을 쪼갠 것입니다. 먼저 `offscreencanvas-cube.js`를 `shared-cube.js`로 옮긴 뒤, 메인 HTML 파일에 이미 `main` 함수가 있어 `main` 함수의 이름만 `init`으로 바꿔야 하죠. 여기에 추가로 `init`과 `state` 함수를 export 시켜줘야 합니다.
 `shared-cubes.js`와 `offscreencanvas-worker-cubes.js`는 단순히 이전 `offscreencanvas-cubes.js` 파일을 쪼갠 것입니다. 먼저 `offscreencanvas-cube.js`를 `shared-cube.js`로 옮긴 뒤, 메인 HTML 파일에 이미 `main` 함수가 있어 `main` 함수의 이름만 `init`으로 바꿔야 하죠. 여기에 추가로 `init`과 `state` 함수를 export 시켜줘야 합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
  
  
 -const state = {
 -const state = {
 +export const state = {
 +export const state = {
@@ -572,7 +572,7 @@ window.addEventListener('touchend', clearPickPosition);
 
 
 여태까지는 전역 `state` 객체를 사용했지만, `OrbitControls`의 경우는 객체 속성이 너무 많아 그걸 전부 다 하드 코딩하는 건 너무 번거롭습니다. `OrbitControls`는 필요한 DOM 이벤트의 대부분을 인자로 받는 `HTMLElement`에 바인딩합니다. 이를 이용해 DOM 요소와 같은 구조의 객체를 넘겨준다면 어떨까요? `OrbitControls`에 필요한 기능만 살려서 말이죠.
 여태까지는 전역 `state` 객체를 사용했지만, `OrbitControls`의 경우는 객체 속성이 너무 많아 그걸 전부 다 하드 코딩하는 건 너무 번거롭습니다. `OrbitControls`는 필요한 DOM 이벤트의 대부분을 인자로 받는 `HTMLElement`에 바인딩합니다. 이를 이용해 DOM 요소와 같은 구조의 객체를 넘겨준다면 어떨까요? `OrbitControls`에 필요한 기능만 살려서 말이죠.
 
 
-[`OrbitControls`의 소스 코드](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r122/examples/js/controls/OrbitControls.js)를 분석해보니 아래의 이벤트만 지원하면 될 듯합니다.
+[`OrbitControls`의 소스 코드](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r125/examples/js/controls/OrbitControls.js)를 분석해보니 아래의 이벤트만 지원하면 될 듯합니다.
 
 
 * contextmenu
 * contextmenu
 * mousedown
 * mousedown
@@ -597,7 +597,7 @@ wheel 이벤트는 `deltaY` 속성만,
 아래는 워커 안의 코드입니다.
 아래는 워커 안의 코드입니다.
 
 
 ```js
 ```js
-import { EventDispatcher } from './resources/threejs/r122/build/three.module.js';
+import { EventDispatcher } from './resources/threejs/r125/build/three.module.js';
 
 
 class ElementProxyReceiver extends EventDispatcher {
 class ElementProxyReceiver extends EventDispatcher {
   constructor() {
   constructor() {
@@ -675,8 +675,8 @@ self.onmessage = function(e) {
 Three.js의 공통 코드에 `OrbitControls` 모듈도 불러와 설정해야 합니다.
 Three.js의 공통 코드에 `OrbitControls` 모듈도 불러와 설정해야 합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-+import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
++import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 export function init(data) {
 export function init(data) {
 -  const { canvas } = data;
 -  const { canvas } = data;

+ 4 - 4
threejs/lessons/kr/threejs-optimize-lots-of-objects-animated.md

@@ -313,10 +313,10 @@ showFileInfo(fileInfos, fileInfos[0]);
 먼저 라이브러리를 불러옵니다.
 먼저 라이브러리를 불러옵니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { BufferGeometryUtils } from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-+import { TWEEN } from './resources/threejs/r122/examples/jsm/libs/tween.min.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { BufferGeometryUtils } from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
++import { TWEEN } from './resources/threejs/r125/examples/jsm/libs/tween.min.js';
 ```
 ```
 
 
 그리고 `Tween`으로 influence 속성에 애니메이션을 줍니다.
 그리고 `Tween`으로 influence 속성에 애니메이션을 줍니다.

+ 1 - 1
threejs/lessons/kr/threejs-optimize-lots-of-objects.md

@@ -375,7 +375,7 @@ function addBoxes(file) {
 물론 `BufferGeometryUtils`을 불러와야죠.
 물론 `BufferGeometryUtils`을 불러와야죠.
 
 
 ```js
 ```js
-import { BufferGeometryUtils } from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
+import { BufferGeometryUtils } from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
 ```
 ```
 
 
 이제 제 컴퓨터에서는 적어도 60 프레임 이상이 나오네요.
 이제 제 컴퓨터에서는 적어도 60 프레임 이상이 나오네요.

+ 4 - 4
threejs/lessons/kr/threejs-post-processing.md

@@ -82,10 +82,10 @@ composer.addPass(filmPass);
 또 이 클래스들을 사용하기 위해 여러 스크립트를 불러와야 합니다.
 또 이 클래스들을 사용하기 위해 여러 스크립트를 불러와야 합니다.
 
 
 ```js
 ```js
-import { EffectComposer } from './resources/threejs/r122/examples/jsm/postprocessing/EffectComposer.js';
-import { RenderPass } from './resources/threejs/r122/examples/jsm/postprocessing/RenderPass.js';
-import { BloomPass } from './resources/threejs/r122/examples/jsm/postprocessing/BloomPass.js';
-import { FilmPass } from './resources/threejs/r122/examples/jsm/postprocessing/FilmPass.js';
+import { EffectComposer } from './resources/threejs/r125/examples/jsm/postprocessing/EffectComposer.js';
+import { RenderPass } from './resources/threejs/r125/examples/jsm/postprocessing/RenderPass.js';
+import { BloomPass } from './resources/threejs/r125/examples/jsm/postprocessing/BloomPass.js';
+import { FilmPass } from './resources/threejs/r125/examples/jsm/postprocessing/FilmPass.js';
 ```
 ```
 
 
 대부분의 후처리에는 `EffectComposer.js`와 `RenderPass.js`가 필수입니다.
 대부분의 후처리에는 `EffectComposer.js`와 `RenderPass.js`가 필수입니다.

+ 1 - 1
threejs/lessons/kr/threejs-prerequisites.md

@@ -20,7 +20,7 @@ ES2015 모듈은 스크립트 안에서 `import` 키워드나, 인라인 `<scrip
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 4 - 4
threejs/lessons/kr/threejs-rendering-on-demand.md

@@ -30,8 +30,8 @@ requestAnimationFrame(render);
 먼저 뭔가 변화를 일으킬 수 있는 요소가 필요하니 `OrbitControls`를 추가합니다.
 먼저 뭔가 변화를 일으킬 수 있는 요소가 필요하니 `OrbitControls`를 추가합니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 ...
 ...
 
 
@@ -176,8 +176,8 @@ render();
 간단한 dat.GUI를 추가해 반복 렌더링 여부를 제어할 수 있도록 하겠습니다.
 간단한 dat.GUI를 추가해 반복 렌더링 여부를 제어할 수 있도록 하겠습니다.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 2 - 2
threejs/lessons/kr/threejs-transparency.md

@@ -368,8 +368,8 @@ gui.add(new AllMaterialPropertyGUIHelper('transparent', scene), 'value')
 물론 dat.GUI 모듈도 불러와야죠.
 물론 dat.GUI 모듈도 불러와야죠.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import { OrbitControls } from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import { OrbitControls } from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 +import { GUI } from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 1 - 1
threejs/lessons/resources/threejs-cameras.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {

+ 2 - 33
threejs/lessons/resources/threejs-custom-buffergeometry.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {
@@ -20,38 +20,7 @@ import {threejsLessonUtils} from './threejs-lesson-utils.js';
   threejsLessonUtils.addDiagrams({
   threejsLessonUtils.addDiagrams({
     geometryCylinder: {
     geometryCylinder: {
       create() {
       create() {
-        const numSegments = 24;
-        const geometry = new THREE.Geometry();
-        const wrap = ndx => ndx % (numSegments * 2);
-        for (let s = 0; s < numSegments; ++s) {
-          const u = s / numSegments;
-          const a = u * Math.PI * 2;
-          const x = Math.sin(a);
-          const z = Math.cos(a);
-          geometry.vertices.push(new THREE.Vector3(x, -1, z));
-          geometry.vertices.push(new THREE.Vector3(x,  1, z));
-
-          // share the start and end positions
-          const ndx = s * 2;
-          geometry.faces.push(new THREE.Face3(ndx, wrap(ndx + 2), ndx + 1));
-          geometry.faces.push(new THREE.Face3(ndx + 1, wrap(ndx + 2), wrap(ndx + 3)));
-
-          const u2 = (s + 1) / numSegments;
-          geometry.faceVertexUvs[0].push([
-            new THREE.Vector2(u, 0),
-            new THREE.Vector2(u2, 0),
-            new THREE.Vector2(u, 1),
-          ]);
-          geometry.faceVertexUvs[0].push([
-            new THREE.Vector2(u, 1),
-            new THREE.Vector2(u2, 0),
-            new THREE.Vector2(u2, 1),
-          ]);
-        }
-
-        geometry.computeVertexNormals();
-        geometry.scale(5, 5, 5);
-        return makeMesh(geometry);
+        return new THREE.Object3D();
       },
       },
     },
     },
     bufferGeometryCylinder: {
     bufferGeometryCylinder: {

+ 2 - 2
threejs/lessons/resources/threejs-fog.js

@@ -1,5 +1,5 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
-import {GLTFLoader} from '../../resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
+import {GLTFLoader} from '../../resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {

+ 2 - 2
threejs/lessons/resources/threejs-lesson-utils.js

@@ -1,5 +1,5 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from '../../resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from '../../resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 export const threejsLessonUtils = {
 export const threejsLessonUtils = {
   _afterPrettifyFuncs: [],
   _afterPrettifyFuncs: [],

+ 2 - 2
threejs/lessons/resources/threejs-lights.js

@@ -1,5 +1,5 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from '../../resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from '../../resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {

+ 1 - 1
threejs/lessons/resources/threejs-lots-of-objects.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {GUI} from '../../../3rdparty/dat.gui.module.js';
 import {GUI} from '../../../3rdparty/dat.gui.module.js';
 
 

+ 1 - 1
threejs/lessons/resources/threejs-materials.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {

+ 2 - 3
threejs/lessons/resources/threejs-primitives.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {
@@ -812,8 +812,7 @@ const geometry = new THREE.WireframeGeometry(
     const promise = (result instanceof Promise) ? result : Promise.resolve(result);
     const promise = (result instanceof Promise) ? result : Promise.resolve(result);
 
 
     let diagramInfo = await promise;
     let diagramInfo = await promise;
-    if (diagramInfo instanceof THREE.BufferGeometry ||
-        diagramInfo instanceof THREE.Geometry) {
+    if (diagramInfo instanceof THREE.BufferGeometry) {
       const geometry = diagramInfo;
       const geometry = diagramInfo;
       diagramInfo = {
       diagramInfo = {
         geometry,
         geometry,

+ 1 - 1
threejs/lessons/resources/threejs-textures.js

@@ -1,4 +1,4 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {

+ 2 - 2
threejs/lessons/resources/threejs-voxel-geometry.js

@@ -1,5 +1,5 @@
-import * as THREE from '../../resources/threejs/r122/build/three.module.js';
-import {BufferGeometryUtils} from '../../resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
+import * as THREE from '../../resources/threejs/r125/build/three.module.js';
+import {BufferGeometryUtils} from '../../resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 import {threejsLessonUtils} from './threejs-lesson-utils.js';
 
 
 {
 {

+ 2 - 2
threejs/lessons/ru/threejs-custom-geometry.md

@@ -381,8 +381,8 @@ for (let z = 0; z < cellsDeep; ++z) {
 * добавим `OrbitControls`
 * добавим `OrbitControls`
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 1 - 1
threejs/lessons/ru/threejs-fundamentals.md

@@ -44,7 +44,7 @@ Three.js будет рисовать на этом холсте, так что 
 
 
 ```
 ```
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 5 - 5
threejs/lessons/ru/threejs-lights.md

@@ -29,8 +29,8 @@ const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
 включить их в нашу страницу.
 включить их в нашу страницу.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 Теперь мы можем использовать их. Мы передаем в `OrbitControls` камеру для 
 Теперь мы можем использовать их. Мы передаем в `OrbitControls` камеру для 
@@ -469,9 +469,9 @@ gui.add(light, 'penumbra', 0, 1, 0.01);
 Для использования `RectAreaLight` нам нужно включить некоторые дополнительные возможности three.js
 Для использования `RectAreaLight` нам нужно включить некоторые дополнительные возможности three.js
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {RectAreaLightUniformsLib} from './resources/threejs/r122/examples/jsm/lights/RectAreaLightUniformsLib.js';
-+import {RectAreaLightHelper} from './resources/threejs/r122/examples/jsm/helpers/RectAreaLightHelper.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {RectAreaLightUniformsLib} from './resources/threejs/r125/examples/jsm/lights/RectAreaLightUniformsLib.js';
++import {RectAreaLightHelper} from './resources/threejs/r125/examples/jsm/helpers/RectAreaLightHelper.js';
 ```
 ```
 
 
 ```js
 ```js

+ 1 - 1
threejs/lessons/ru/threejs-multiple-scenes.md

@@ -472,7 +472,7 @@ document.querySelectorAll('[data-diagram]').forEach((elem) => {
 Сначала мы добавляем скрипт для контролов.
 Сначала мы добавляем скрипт для контролов.
 
 
 ```js
 ```js
-import {TrackballControls} from './resources/threejs/r122/examples/jsm/controls/TrackballControls.js';
+import {TrackballControls} from './resources/threejs/r125/examples/jsm/controls/TrackballControls.js';
 ```
 ```
 
 
 И затем мы можем добавить `TrackballControls` к каждой сцене, передавая элемент, связанный с этой сценой.
 И затем мы можем добавить `TrackballControls` к каждой сцене, передавая элемент, связанный с этой сценой.

+ 5 - 5
threejs/lessons/ru/threejs-offscreencanvas.md

@@ -261,7 +261,7 @@ function main() {
 предыдущего файла `offscreencanvas-cubes.js`. Сначала мы копируем весь файл `offscreencanvas-cubes.js` в `shared-cube.js`. Затем мы переименовываем `main` в `init`, так как у нас уже есть `main` в нашем HTML-файле, и нам нужно экспортировать `init` и состояние
 предыдущего файла `offscreencanvas-cubes.js`. Сначала мы копируем весь файл `offscreencanvas-cubes.js` в `shared-cube.js`. Затем мы переименовываем `main` в `init`, так как у нас уже есть `main` в нашем HTML-файле, и нам нужно экспортировать `init` и состояние
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 -const state = {
 -const state = {
 +export const state = {
 +export const state = {
@@ -617,7 +617,7 @@ window.addEventListener('touchend', clearPickPosition);
 
 
 В отличие от нашего кода, мы не можем использовать объект глобального `state`, не переписав весь код `OrbitControls` для работы с ним. `OrbitControls` принимают элемент, к которому они присоединяют большинство используемых ими событий DOM. Возможно, мы могли бы передать наш собственный объект, имеющий ту же поверхность API, что и элемент DOM. Нам нужно только поддерживать функции, которые необходимы `OrbitControls`.
 В отличие от нашего кода, мы не можем использовать объект глобального `state`, не переписав весь код `OrbitControls` для работы с ним. `OrbitControls` принимают элемент, к которому они присоединяют большинство используемых ими событий DOM. Возможно, мы могли бы передать наш собственный объект, имеющий ту же поверхность API, что и элемент DOM. Нам нужно только поддерживать функции, которые необходимы `OrbitControls`.
 
 
-Копаясь в  [исходном коде OrbitControls](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r122/examples/js/controls/OrbitControls.js)
+Копаясь в  [исходном коде OrbitControls](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r125/examples/js/controls/OrbitControls.js)
 похоже, что нам нужно обработать следующие события.
 похоже, что нам нужно обработать следующие события.
 
 
 
 
@@ -647,7 +647,7 @@ window.addEventListener('touchend', clearPickPosition);
 Вот код рабочей части.
 Вот код рабочей части.
 
 
 ```js
 ```js
-import {EventDispatcher} from './resources/threejs/r122/build/three.module.js';
+import {EventDispatcher} from './resources/threejs/r125/build/three.module.js';
 
 
 class ElementProxyReceiver extends EventDispatcher {
 class ElementProxyReceiver extends EventDispatcher {
   constructor() {
   constructor() {
@@ -726,8 +726,8 @@ self.onmessage = function(e) {
 Нам также нужно добавить `OrbitControls` в начало скрипта.
 Нам также нужно добавить `OrbitControls` в начало скрипта.
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 export function init(data) {
 export function init(data) {
 -  const {canvas} = data;
 -  const {canvas} = data;

+ 4 - 4
threejs/lessons/ru/threejs-optimize-lots-of-objects-animated.md

@@ -366,10 +366,10 @@ showFileInfo(fileInfos, fileInfos[0]);
 Нам нужно включить библиотеку 
 Нам нужно включить библиотеку 
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {BufferGeometryUtils} from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-+import {TWEEN} from './resources/threejs/r122/examples/jsm/libs/tween.min.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {BufferGeometryUtils} from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
++import {TWEEN} from './resources/threejs/r125/examples/jsm/libs/tween.min.js';
 ```
 ```
 
 
 А затем создайте `Tween` чтобы оживить влияние.
 А затем создайте `Tween` чтобы оживить влияние.

+ 1 - 1
threejs/lessons/ru/threejs-optimize-lots-of-objects.md

@@ -413,7 +413,7 @@ function addBoxes(file) {
 Нам также нужно включить `BufferGeometryUtils` 
 Нам также нужно включить `BufferGeometryUtils` 
 
 
 ```js
 ```js
-import {BufferGeometryUtils} from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
+import {BufferGeometryUtils} from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
 ```
 ```
 
 
 И теперь, по крайней мере на моей машине, я получаю 60 кадров в секунду 
 И теперь, по крайней мере на моей машине, я получаю 60 кадров в секунду 

+ 1 - 1
threejs/lessons/ru/threejs-prerequisites.md

@@ -21,7 +21,7 @@ TOC: Необходимые условия
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 4 - 4
threejs/lessons/ru/threejs-rendering-on-demand.md

@@ -26,8 +26,8 @@ requestAnimationFrame(render);
 Сначала мы добавим в OrbitControls, чтобы можно было что-то изменить, что мы можем сделать в ответ. 
 Сначала мы добавим в OrbitControls, чтобы можно было что-то изменить, что мы можем сделать в ответ. 
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 и настроить их
 и настроить их
@@ -172,8 +172,8 @@ render();
 Давайте также добавим простой графический интерфейс dat.GUI и внесем его изменения по запросу. 
 Давайте также добавим простой графический интерфейс dat.GUI и внесем его изменения по запросу. 
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 4 - 4
threejs/lessons/threejs-align-html-elements-to-3d.md

@@ -35,8 +35,8 @@ with an example from [the article on responsive pages](threejs-responsive.html)
 We'll add some `OrbitControls` like we did in [the article on lighting](threejs-lights.html).
 We'll add some `OrbitControls` like we did in [the article on lighting](threejs-lights.html).
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js
@@ -724,8 +724,8 @@ Finally, since I'm not sure what good values are for these settings lets
 add a GUI so we can play with them
 add a GUI so we can play with them
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 1 - 1
threejs/lessons/threejs-backgrounds.md

@@ -180,7 +180,7 @@ function render(time) {
 Let's add some controls in so we can rotate the camera.
 Let's add some controls in so we can rotate the camera.
 
 
 ```js
 ```js
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 2 - 2
threejs/lessons/threejs-canvas-textures.md

@@ -261,8 +261,8 @@ What's left is to add some `OrbitControls` so we can move
 the camera.
 the camera.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 9 - 12
threejs/lessons/threejs-custom-buffergeometry.md

@@ -269,27 +269,24 @@ geometry.setAttribute(
 
 
 {{{example url="../threejs-custom-buffergeometry-cube-indexed.html"}}}
 {{{example url="../threejs-custom-buffergeometry-cube-indexed.html"}}}
 
 
-Just like `Geometry`, `BufferGeometry` has a [`computeVertexNormals`](BufferGeometry.computeVertexNormals) method for computing normals if you
-are not supplying them. Unlike the `Geometry` version of the same function,
+`BufferGeometry` has a [`computeVertexNormals`](BufferGeometry.computeVertexNormals) method for computing normals if you
+are not supplying them. Unfortunately, 
 since positions can not be shared if any other part of a vertex is different
 since positions can not be shared if any other part of a vertex is different
-the results of calling `computeVertexNormals` will be different.
+the results of calling `computeVertexNormals` will generate seams if your
+geometry is supposed to connect to itself like a sphere or a cylinder.
 
 
 <div class="spread">
 <div class="spread">
   <div>
   <div>
     <div data-diagram="bufferGeometryCylinder"></div>
     <div data-diagram="bufferGeometryCylinder"></div>
-    <div class="code">BufferGeometry</div>
-  </div>
-  <div>
-    <div data-diagram="geometryCylinder"></div>
-    <div class="code">Geometry</div>
   </div>
   </div>
 </div>
 </div>
 
 
-Here are 2 cylinders where the normals were created using `computeVertexNormals`.
-If you look closely there is a seam on the left cylinder. This is because there
+For the cylinder above the normals were created using `computeVertexNormals`.
+If you look closely there is a seam on the cylinder. This is because there
 is no way to share the vertices at the start and end of the cylinder since they
 is no way to share the vertices at the start and end of the cylinder since they
-require different UVs. Just a small thing to be aware of. The solution is
-to supply your own normals.
+require different UVs so the function to compute them has no idea those are
+the same vertices and to smooth over them. Just a small thing to be aware of.
+The solution is to supply your own normals.
 
 
 We can also use [TypedArrays](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) from the start instead of native JavaScript arrays.
 We can also use [TypedArrays](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) from the start instead of native JavaScript arrays.
 The disadvantage to TypedArrays is you must specify their size up front. Of
 The disadvantage to TypedArrays is you must specify their size up front. Of

+ 2 - 2
threejs/lessons/threejs-custom-geometry.md

@@ -440,8 +440,8 @@ A few minor changes to make it easier to view.
 * include the `OrbitControls`
 * include the `OrbitControls`
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 ```js
 ```js

+ 0 - 5
threejs/lessons/threejs-debugging-javascript.md

@@ -415,11 +415,6 @@ is a math bug somewhere.
 THREE.js is Open Source. Don't be afraid to look inside the code!
 THREE.js is Open Source. Don't be afraid to look inside the code!
 You can look inside on [github](https://github.com/mrdoob/three.js).
 You can look inside on [github](https://github.com/mrdoob/three.js).
 You can also look inside by stepping into functions in the debugger.
 You can also look inside by stepping into functions in the debugger.
-When you do that consider using `three.js` instead of the more common
-`three.min.js`. `three.min.js` is the minified, compressed, and therefore
-smaller to download version. `three.js` is the larger but easier to
-debug version. I often switch my code to use `three.js` to step through
-the code and see what is going on.
 
 
 ## Put `requestAnimationFrame` at bottom of your render function.
 ## Put `requestAnimationFrame` at bottom of your render function.
 
 

+ 3 - 3
threejs/lessons/threejs-fundamentals.md

@@ -96,7 +96,7 @@ First let's load three.js
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 </script>
 </script>
 ```
 ```
 
 
@@ -119,7 +119,7 @@ We will ask three.js to draw into that canvas so we need to look it up.
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 +function main() {
 +function main() {
 +  const canvas = document.querySelector('#c');
 +  const canvas = document.querySelector('#c');
@@ -417,7 +417,7 @@ both
 </p>
 </p>
 <pre class=prettyprint>
 <pre class=prettyprint>
 &lt;script type="module"&gt;
 &lt;script type="module"&gt;
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 8 - 8
threejs/lessons/threejs-game.md

@@ -243,10 +243,10 @@ it for skinned animated characters. Fortunately there's a utility function,
 the utils.
 the utils.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {GLTFLoader} from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
-+import {SkeletonUtils} from './resources/threejs/r122/examples/jsm/utils/SkeletonUtils.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {GLTFLoader} from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
++import {SkeletonUtils} from './resources/threejs/r125/examples/jsm/utils/SkeletonUtils.js';
 ```
 ```
 
 
 Then we can clone the models we just loaded
 Then we can clone the models we just loaded
@@ -1690,10 +1690,10 @@ While we're at it lets make it so we can turn them on/off using dat.GUI like
 we've used else where
 we've used else where
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {GLTFLoader} from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
-import {SkeletonUtils} from './resources/threejs/r122/examples/jsm/utils/SkeletonUtils.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {GLTFLoader} from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
+import {SkeletonUtils} from './resources/threejs/r125/examples/jsm/utils/SkeletonUtils.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 5 - 5
threejs/lessons/threejs-lights.md

@@ -29,8 +29,8 @@ an optional feature of three.js so first we need to include them
 in our page
 in our page
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 Then we can use them. We pass the `OrbitControls` a camera to
 Then we can use them. We pass the `OrbitControls` a camera to
@@ -477,9 +477,9 @@ To use the `RectAreaLight` we need to include some extra three.js optional data
 include the `RectAreaLightHelper` to help us visualize the light
 include the `RectAreaLightHelper` to help us visualize the light
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {RectAreaLightUniformsLib} from './resources/threejs/r122/examples/jsm/lights/RectAreaLightUniformsLib.js';
-+import {RectAreaLightHelper} from './resources/threejs/r122/examples/jsm/helpers/RectAreaLightHelper.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {RectAreaLightUniformsLib} from './resources/threejs/r125/examples/jsm/lights/RectAreaLightUniformsLib.js';
++import {RectAreaLightHelper} from './resources/threejs/r125/examples/jsm/helpers/RectAreaLightHelper.js';
 ```
 ```
 
 
 and we need to call `RectAreaLightUniformsLib.init`
 and we need to call `RectAreaLightUniformsLib.init`

+ 4 - 4
threejs/lessons/threejs-load-gltf.md

@@ -103,10 +103,10 @@ I kept the auto framing code as before
 We also need to include the `GLTFLoader` and we can get rid of the `OBJLoader`.
 We also need to include the `GLTFLoader` and we can get rid of the `OBJLoader`.
 
 
 ```html
 ```html
--import {LoaderSupport} from './resources/threejs/r122/examples/jsm/loaders/LoaderSupport.js';
--import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
--import {MTLLoader} from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
-+import {GLTFLoader} from './resources/threejs/r122/examples/jsm/loaders/GLTFLoader.js';
+-import {LoaderSupport} from './resources/threejs/r125/examples/jsm/loaders/LoaderSupport.js';
+-import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
+-import {MTLLoader} from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
++import {GLTFLoader} from './resources/threejs/r125/examples/jsm/loaders/GLTFLoader.js';
 ```
 ```
 
 
 And running that we get
 And running that we get

+ 5 - 5
threejs/lessons/threejs-load-obj.md

@@ -46,7 +46,7 @@ that were being added to the scene.
 From that the first thing we need to do is include the `OBJLoader` loader in our script.
 From that the first thing we need to do is include the `OBJLoader` loader in our script.
 
 
 ```js
 ```js
-import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
+import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
 ```
 ```
 
 
 Then to load the .OBJ file we create an instance of `OBJLoader`,
 Then to load the .OBJ file we create an instance of `OBJLoader`,
@@ -143,10 +143,10 @@ Now that we have the textures available we can load the .MTL file.
 First we need to include the `MTLLoader`;
 First we need to include the `MTLLoader`;
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
-+import {MTLLoader} from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
++import {MTLLoader} from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
 ```
 ```
 
 
 Then we first load the .MTL file. When it's finished loading we add
 Then we first load the .MTL file. When it's finished loading we add

+ 1 - 1
threejs/lessons/threejs-multiple-scenes.md

@@ -445,7 +445,7 @@ No change to the visuals but the code is even more generic.
 Adding interactively, for example a `TrackballControls` is just as easy. First we add the script for the control.
 Adding interactively, for example a `TrackballControls` is just as easy. First we add the script for the control.
 
 
 ```js
 ```js
-import {TrackballControls} from './resources/threejs/r122/examples/jsm/controls/TrackballControls.js';
+import {TrackballControls} from './resources/threejs/r125/examples/jsm/controls/TrackballControls.js';
 ```
 ```
 
 
 And then we can add a `TrackballControls` to each scene passing in the element associated with that scene.
 And then we can add a `TrackballControls` to each scene passing in the element associated with that scene.

+ 5 - 5
threejs/lessons/threejs-offscreencanvas.md

@@ -280,7 +280,7 @@ we rename `main` to `init` since we already have a `main` in our
 HTML file and we need to export `init` and `state`
 HTML file and we need to export `init` and `state`
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 -const state = {
 -const state = {
 +export const state = {
 +export const state = {
@@ -644,7 +644,7 @@ of the DOM events they use. Maybe we could pass in our own
 object that has the same API surface as a DOM element. 
 object that has the same API surface as a DOM element. 
 We only need to support the features the OrbitControls need.
 We only need to support the features the OrbitControls need.
 
 
-Digging through the [OrbitControls source code](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r122/examples/js/controls/OrbitControls.js)
+Digging through the [OrbitControls source code](https://github.com/gfxfundamentals/threejsfundamentals/blob/master/threejs/resources/threejs/r125/examples/js/controls/OrbitControls.js)
 it looks like we need to handle the following events.
 it looks like we need to handle the following events.
 
 
 * contextmenu
 * contextmenu
@@ -678,7 +678,7 @@ tell the difference.
 Here's the code for the worker part.
 Here's the code for the worker part.
 
 
 ```js
 ```js
-import {EventDispatcher} from './resources/threejs/r122/build/three.module.js';
+import {EventDispatcher} from './resources/threejs/r125/build/three.module.js';
 
 
 class ElementProxyReceiver extends EventDispatcher {
 class ElementProxyReceiver extends EventDispatcher {
   constructor() {
   constructor() {
@@ -763,8 +763,8 @@ self.onmessage = function(e) {
 In our shared three.js code we need to import the `OrbitControls` and set them up.
 In our shared three.js code we need to import the `OrbitControls` and set them up.
 
 
 ```js
 ```js
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 export function init(data) {
 export function init(data) {
 -  const {canvas} = data;
 -  const {canvas} = data;

+ 4 - 4
threejs/lessons/threejs-optimize-lots-of-objects-animated.md

@@ -373,10 +373,10 @@ because the original webgl globe uses
 We need to include the library
 We need to include the library
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {BufferGeometryUtils} from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-+import {TWEEN} from './resources/threejs/r122/examples/jsm/libs/tween.min.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {BufferGeometryUtils} from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
++import {TWEEN} from './resources/threejs/r125/examples/jsm/libs/tween.min.js';
 ```
 ```
 
 
 And then create a `Tween` to animate the influences.
 And then create a `Tween` to animate the influences.

+ 1 - 1
threejs/lessons/threejs-optimize-lots-of-objects.md

@@ -429,7 +429,7 @@ them into a single mesh.
 We also need to include the `BufferGeometryUtils`
 We also need to include the `BufferGeometryUtils`
 
 
 ```js
 ```js
-import {BufferGeometryUtils} from './resources/threejs/r122/examples/jsm/utils/BufferGeometryUtils.js';
+import {BufferGeometryUtils} from './resources/threejs/r125/examples/jsm/utils/BufferGeometryUtils.js';
 ```
 ```
 
 
 And now, at least on my machine, I get 60 frames per second
 And now, at least on my machine, I get 60 frames per second

+ 4 - 4
threejs/lessons/threejs-post-processing.md

@@ -107,10 +107,10 @@ render to the next render target.
 To use these classes we need to import a bunch of scripts.
 To use these classes we need to import a bunch of scripts.
 
 
 ```js
 ```js
-import {EffectComposer} from './resources/threejs/r122/examples/jsm/postprocessing/EffectComposer.js';
-import {RenderPass} from './resources/threejs/r122/examples/jsm/postprocessing/RenderPass.js';
-import {BloomPass} from './resources/threejs/r122/examples/jsm/postprocessing/BloomPass.js';
-import {FilmPass} from './resources/threejs/r122/examples/jsm/postprocessing/FilmPass.js';
+import {EffectComposer} from './resources/threejs/r125/examples/jsm/postprocessing/EffectComposer.js';
+import {RenderPass} from './resources/threejs/r125/examples/jsm/postprocessing/RenderPass.js';
+import {BloomPass} from './resources/threejs/r125/examples/jsm/postprocessing/BloomPass.js';
+import {FilmPass} from './resources/threejs/r125/examples/jsm/postprocessing/FilmPass.js';
 ```
 ```
 
 
 For pretty much any post processing `EffectComposer.js`, and `RenderPass.js`
 For pretty much any post processing `EffectComposer.js`, and `RenderPass.js`

+ 1 - 1
threejs/lessons/threejs-prerequisites.md

@@ -24,7 +24,7 @@ both
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 4 - 4
threejs/lessons/threejs-rendering-on-demand.md

@@ -30,8 +30,8 @@ First we'll add in the `OrbitControls` so there is something that could change
 that we can render in response to.
 that we can render in response to.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 and set them up
 and set them up
@@ -179,8 +179,8 @@ below slides.
 Let's also add a simple dat.GUI GUI and make its changes render on demand.
 Let's also add a simple dat.GUI GUI and make its changes render on demand.
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 2 - 2
threejs/lessons/threejs-transparency.md

@@ -381,8 +381,8 @@ gui.add(new AllMaterialPropertyGUIHelper('transparent', scene), 'value')
 and of course we need to include dat.gui
 and of course we need to include dat.gui
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 +import {GUI} from '../3rdparty/dat.gui.module.js';
 ```
 ```
 
 

+ 2 - 2
threejs/lessons/threejs-webvr.md

@@ -52,8 +52,8 @@ The first thing we need to do is include the VR support after
 including three.js
 including three.js
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {VRButton} from './resources/threejs/r122/examples/jsm/webxr/VRButton.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {VRButton} from './resources/threejs/r125/examples/jsm/webxr/VRButton.js';
 ```
 ```
 
 
 Then we need to enable three.js's WebXR support and add its
 Then we need to enable three.js's WebXR support and add its

+ 3 - 3
threejs/lessons/zh_cn/threejs-fundamentals.md

@@ -53,7 +53,7 @@ ES6的语法。[点击这里查看你需要提前掌握的东西](threejs-prereq
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 </script>
 </script>
 ```
 ```
 
 
@@ -71,7 +71,7 @@ Three.js需要使用这个canvas标签来绘制,所以我们要先获取它然
 
 
 ```html
 ```html
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 +function main() {
 +function main() {
 +  const canvas = document.querySelector('#c');
 +  const canvas = document.querySelector('#c');
@@ -302,7 +302,7 @@ function render(time) {
 </p>
 </p>
 <pre class=prettyprint>
 <pre class=prettyprint>
 &lt;script type="module"&gt;
 &lt;script type="module"&gt;
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 ...
 ...
 
 

+ 5 - 5
threejs/lessons/zh_cn/threejs-lights.md

@@ -20,8 +20,8 @@ const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
 然后我们添加一个 `OrbitControls`。`OrbitControls` 让我们可以围绕某一个点旋转控制相机。`OrbitControls` 是 three.js 的可选模块,所以我们首先需要引入这个模块。
 然后我们添加一个 `OrbitControls`。`OrbitControls` 让我们可以围绕某一个点旋转控制相机。`OrbitControls` 是 three.js 的可选模块,所以我们首先需要引入这个模块。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 ```
 ```
 
 
 然后我们就可以使用了。创建 `OrbitControls` 时传入两个参数,一个是要控制的相机对象,第二个是检测事件的 DOM 元素。
 然后我们就可以使用了。创建 `OrbitControls` 时传入两个参数,一个是要控制的相机对象,第二个是检测事件的 DOM 元素。
@@ -392,9 +392,9 @@ Three.js 中还有一种类型的光照,矩形区域光(`RectAreaLight`),
 为了使用 `RectAreaLight`,我们需要引入 three.js 的`RectAreaLightUniformsLib` 模块,同时使用 `RectAreaLightHelper` 来辅助查看灯光对象。
 为了使用 `RectAreaLight`,我们需要引入 three.js 的`RectAreaLightUniformsLib` 模块,同时使用 `RectAreaLightHelper` 来辅助查看灯光对象。
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-+import {RectAreaLightUniformsLib} from './resources/threejs/r122/examples/jsm/lights/RectAreaLightUniformsLib.js';
-+import {RectAreaLightHelper} from './resources/threejs/r122/examples/jsm/helpers/RectAreaLightHelper.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
++import {RectAreaLightUniformsLib} from './resources/threejs/r125/examples/jsm/lights/RectAreaLightUniformsLib.js';
++import {RectAreaLightHelper} from './resources/threejs/r125/examples/jsm/helpers/RectAreaLightHelper.js';
 ```
 ```
 
 
 我们需要先调用 `RectAreaLightUniformsLib.init`
 我们需要先调用 `RectAreaLightUniformsLib.init`

+ 5 - 5
threejs/lessons/zh_cn/threejs-load-obj.md

@@ -28,7 +28,7 @@ TOC: 加载 .OBJ 文件
 第一件要做的事就是将`OBJLoader`添加到代码中。
 第一件要做的事就是将`OBJLoader`添加到代码中。
 
 
 ```js
 ```js
-import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
+import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
 ```
 ```
 
 
 然后创建`OBJLoader`的实例并通过URL加载我们的.OBJ文件,并在回调函数中将已加载完的模型添加到场景(scene)里。
 然后创建`OBJLoader`的实例并通过URL加载我们的.OBJ文件,并在回调函数中将已加载完的模型添加到场景(scene)里。
@@ -109,10 +109,10 @@ map_Ns windmill_001_base_SPEC.jpg
 首先要引用 `MTLLoader`;
 首先要引用 `MTLLoader`;
 
 
 ```js
 ```js
-import * as THREE from './resources/three/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
-import {OBJLoader} from './resources/threejs/r122/examples/jsm/loaders/OBJLoader.js';
-+import {MTLLoader} from './resources/threejs/r122/examples/jsm/loaders/MTLLoader.js';
+import * as THREE from './resources/three/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
+import {OBJLoader} from './resources/threejs/r125/examples/jsm/loaders/OBJLoader.js';
++import {MTLLoader} from './resources/threejs/r125/examples/jsm/loaders/MTLLoader.js';
 ```
 ```
 
 
 {{{warning msgId="badTranslation"}}}
 {{{warning msgId="badTranslation"}}}

+ 1 - 1
threejs/offscreencanvas-cubes.js

@@ -1,4 +1,4 @@
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 const state = {
 const state = {
   width: 300,   // canvas default
   width: 300,   // canvas default

+ 1 - 1
threejs/offscreencanvas-worker-orbitcontrols.js

@@ -1,5 +1,5 @@
 import {init} from './shared-orbitcontrols.js';
 import {init} from './shared-orbitcontrols.js';
-import {EventDispatcher} from './resources/threejs/r122/build/three.module.js';
+import {EventDispatcher} from './resources/threejs/r125/build/three.module.js';
 
 
 function noop() {
 function noop() {
 }
 }

+ 1 - 1
threejs/shared-cubes.js

@@ -1,4 +1,4 @@
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 export const state = {
 export const state = {
   width: 300,   // canvas default
   width: 300,   // canvas default

+ 2 - 2
threejs/shared-orbitcontrols.js

@@ -1,5 +1,5 @@
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 export function init(data) {   /* eslint-disable-line no-unused-vars */
 export function init(data) {   /* eslint-disable-line no-unused-vars */
   const {canvas, inputElement} = data;
   const {canvas, inputElement} = data;

+ 1 - 1
threejs/shared-picking.js

@@ -1,4 +1,4 @@
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 export const state = {
 export const state = {
   width: 300,   // canvas default
   width: 300,   // canvas default

+ 2 - 2
threejs/threejs-align-html-elements-to-3d-globe-too-many-labels.html

@@ -59,8 +59,8 @@
     </div>
     </div>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-align-html-elements-to-3d-globe.html

@@ -59,8 +59,8 @@
     </div>
     </div>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 import {GUI} from '../3rdparty/dat.gui.module.js';
 import {GUI} from '../3rdparty/dat.gui.module.js';
 
 
 function main() {
 function main() {

+ 2 - 2
threejs/threejs-align-html-to-3d-w-hiding.html

@@ -56,8 +56,8 @@
     </div>
     </div>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-align-html-to-3d-w-sorting.html

@@ -58,8 +58,8 @@
     </div>
     </div>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-align-html-to-3d.html

@@ -56,8 +56,8 @@
     </div>
     </div>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 1 - 1
threejs/threejs-background-css.html

@@ -23,7 +23,7 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-background-cubemap.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-background-equirectangularmap.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 1 - 1
threejs/threejs-background-scene-background-fixed-aspect.html

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 1 - 1
threejs/threejs-background-scene-background.html

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 1 - 1
threejs/threejs-background-separate-scene-bad-aspect.html

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 1 - 1
threejs/threejs-background-separate-scene.html

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-billboard-labels-w-sprites-adjust-height.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-billboard-labels-w-sprites.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-billboard-trees-no-billboards.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-billboard-trees-static-billboards.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 
 
 function main() {
 function main() {
   const canvas = document.querySelector('#c');
   const canvas = document.querySelector('#c');

+ 2 - 2
threejs/threejs-cameras-logarithmic-depth-buffer.html

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
     <canvas id="c"></canvas>
   </body>
   </body>
 <script type="module">
 <script type="module">
-import * as THREE from './resources/threejs/r122/build/three.module.js';
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import * as THREE from './resources/threejs/r125/build/three.module.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.js';
 import {GUI} from '../3rdparty/dat.gui.module.js';
 import {GUI} from '../3rdparty/dat.gui.module.js';
 
 
 function main() {
 function main() {

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