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>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

+ 3 - 3
threejs/background.html

@@ -22,9 +22,9 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -97,7 +97,7 @@ Tout d'abord, chargeons three.js :
 
 ```html
 <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>
 ```
 
@@ -121,7 +121,7 @@ dans le document html :
 
 ```html
 <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() {
 +  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>
 <pre class=prettyprint>
 &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
 <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>
 
 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
 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` を追加します。
 
 ```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
@@ -701,8 +701,8 @@ for (const countryInfo of countryInfos) {
 値を操作できるようにGUIを追加します。
 
 ```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';
 ```
 

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

@@ -254,8 +254,8 @@ const scene = new THREE.Scene();
 残作業はカメラを動かせるように `OrbitControls` を追加します。
 
 ```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

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

@@ -400,8 +400,8 @@ for (let z = 0; z < cellsDeep; ++z) {
 * `OrbitControls`を追加してください。
 
 ```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

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

@@ -33,7 +33,7 @@ Three.jsはcanvasに描画するため、canvasをthree.jsに渡す必要があ
 
 ```html
 <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() {
   const canvas = document.querySelector('#c');
@@ -292,7 +292,7 @@ es6モジュールはスクリプトのロードに <code>import</code> を使
 </p>
 <pre class=prettyprint>
 &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する必要があります。
 
 ```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を利用できます。
@@ -434,9 +434,9 @@ gui.add(light, 'penumbra', 0, 1, 0.01);
 ライトを可視化するために `RectAreaLightHelper` をimportします。
 
 ```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` を呼び出します。

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

@@ -97,10 +97,10 @@ mtlLoader.loadMtl('resources/models/windmill/windmill-fixed.mtl', (mtl) => {
 また `OBJLoader` を取り除き `GLTFLoader` を含める必要があります。
 
 ```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` のローダーをコードに含める必要があります。
 
 ```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を渡し、ロードされたモデルをシーンに追加するコールバックを渡します。
@@ -118,10 +118,10 @@ blenderで **File->External Data->Unpack All Into Files** を選択し、これ
 `MTLLoader` をimportする必要があります。
 
 ```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ファイルをロードします。

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

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

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

@@ -259,7 +259,7 @@ function main() {
 次にHTMLファイルには既に `main` があり、`init` と `state` をエクスポートする必要があるため `main` の名前を `init` に変更します。
 
 ```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 = {
 +export const state = {
@@ -613,7 +613,7 @@ window.addEventListener('touchend', clearPickPosition);
 OrbitControlsは `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
 * mousedown
@@ -640,7 +640,7 @@ OrbitControlsが必要とする機能をサポートする必要があります
 ここにWorker部分のコードがあります。
 
 ```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 {
   constructor() {
@@ -721,8 +721,8 @@ self.onmessage = function(e) {
 共有のthree.jsコードでは `OrbitControls` をインポートして設定する必要があります。
 
 ```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) {
 -  const {canvas} = data;

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

@@ -343,10 +343,10 @@ showFileInfo(fileInfos, fileInfos[0]);
 アニメーションライブラリをimportする必要があります。
 
 ```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` を作成します。

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

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

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

@@ -99,10 +99,10 @@ composer.addPass(filmPass);
 これらのクラスを使用するには、以下をインポートする必要があります。
 
 ```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` が必須です。

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

@@ -20,7 +20,7 @@ es6モジュールはスクリプトの中で `import` キーワード、また
 
 ```html
 <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` を追加します。これで何かの変更を反映してレンダリングする事ができます。
 
 ```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で値の変更時にレンダリングを要求してみましょう。
 
 ```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';
 ```
 

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

@@ -26,8 +26,8 @@ TOC: HTML 요소를 3D로 정렬하기
 여기에 `OrbitControls`를 넣습니다. [조명에 관한 글](threejs-lights.html)에서 다뤘었죠.
 
 ```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
@@ -652,8 +652,8 @@ for (const countryInfo of countryInfos) {
 마지막으로 어떤 값이 적당한지 알기 어려우니 이 값을 조정할 수 있도록 GUI를 추가합니다.
 
 ```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';
 ```
 

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

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

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

@@ -236,8 +236,8 @@ const scene = new THREE.Scene();
 마지막으로 `OrbitControls`를 넣어 카메라를 움직일 수 있도록 합니다.
 
 ```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

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

@@ -422,8 +422,8 @@ for (let z = 0; z < cellsDeep; ++z) {
 `OrbitControls`를 추가하고,
 
 ```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

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

@@ -85,7 +85,7 @@ Three.js는 3차원 세계를 다루므로, 우리는 정육면체(cube)를 3차
 
 ```html
 <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>
 ```
 
@@ -107,7 +107,7 @@ import * as THREE from './resources/threejs/r122/build/three.module.js';
 
 ```html
 <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() {
 +  const canvas = document.querySelector('#c');
@@ -389,7 +389,7 @@ es6 모듈은 js 파일이나 인라인 <code>&lt;script type="module"&gt;</code
 </p>
 <pre class=prettyprint>
 &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`이라는 함수가 있어 이를 쉽게 구현할 수 있죠. 먼저 해당 모듈을 불러오겠습니다.
 
 ```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를 이용해 위 디버깅 요소들를 켜고 끌 수 있도록 합니다.
 
 ```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';
 ```
 

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

@@ -26,8 +26,8 @@ const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
 별도 모듈이므로, 먼저 페이지에 로드해야 합니다.
 
 ```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 이벤트를 감지할 수 있도록
@@ -447,9 +447,9 @@ gui.add(light, 'penumbra', 0, 1, 0.01);
 `RectAreaLightHelper`도 같이 불러와 조명을 시각화하겠습니다.
 
 ```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` 메서드를 호출합니다.

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

@@ -103,10 +103,10 @@ mtlLoader.loadMtl('resources/models/windmill/windmill-fixed.mtl', (mtl) => {
 추가합니다.
 
 ```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` 모듈을 스크립트에 로드합니다.
 
 ```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 파일의 경로와 콜백 함수를 넘겨
@@ -133,10 +133,10 @@ map_Ns windmill_001_base_SPEC.jpg
 `MTLLoader` 모듈을 불러옵니다.
 
 ```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"}}}

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

@@ -455,7 +455,7 @@ document.querySelectorAll('[data-diagram]').forEach((elem) => {
 불러옵니다.
 
 ```js
-import { TrackballControls } from './resources/threejs/r122/examples/jsm/controls/TrackballControls.js';
+import { TrackballControls } from './resources/threejs/r125/examples/jsm/controls/TrackballControls.js';
 ```
 
 그리고 각 장면에 대응하는 요소에 `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 시켜줘야 합니다.
 
 ```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 = {
 +export const state = {
@@ -572,7 +572,7 @@ window.addEventListener('touchend', clearPickPosition);
 
 여태까지는 전역 `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
 * mousedown
@@ -597,7 +597,7 @@ wheel 이벤트는 `deltaY` 속성만,
 아래는 워커 안의 코드입니다.
 
 ```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 {
   constructor() {
@@ -675,8 +675,8 @@ self.onmessage = function(e) {
 Three.js의 공통 코드에 `OrbitControls` 모듈도 불러와 설정해야 합니다.
 
 ```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) {
 -  const { canvas } = data;

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

@@ -313,10 +313,10 @@ showFileInfo(fileInfos, fileInfos[0]);
 먼저 라이브러리를 불러옵니다.
 
 ```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 속성에 애니메이션을 줍니다.

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

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

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

@@ -82,10 +82,10 @@ composer.addPass(filmPass);
 또 이 클래스들을 사용하기 위해 여러 스크립트를 불러와야 합니다.
 
 ```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`가 필수입니다.

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

@@ -20,7 +20,7 @@ ES2015 모듈은 스크립트 안에서 `import` 키워드나, 인라인 `<scrip
 
 ```html
 <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`를 추가합니다.
 
 ```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를 추가해 반복 렌더링 여부를 제어할 수 있도록 하겠습니다.
 
 ```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';
 ```
 

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

@@ -368,8 +368,8 @@ gui.add(new AllMaterialPropertyGUIHelper('transparent', scene), 'value')
 물론 dat.GUI 모듈도 불러와야죠.
 
 ```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';
 ```
 

+ 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';
 
 {

+ 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';
 
 {
@@ -20,38 +20,7 @@ import {threejsLessonUtils} from './threejs-lesson-utils.js';
   threejsLessonUtils.addDiagrams({
     geometryCylinder: {
       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: {

+ 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';
 
 {

+ 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 = {
   _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';
 
 {

+ 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 {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';
 
 {

+ 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';
 
 {
@@ -812,8 +812,7 @@ const geometry = new THREE.WireframeGeometry(
     const promise = (result instanceof Promise) ? result : Promise.resolve(result);
 
     let diagramInfo = await promise;
-    if (diagramInfo instanceof THREE.BufferGeometry ||
-        diagramInfo instanceof THREE.Geometry) {
+    if (diagramInfo instanceof THREE.BufferGeometry) {
       const geometry = diagramInfo;
       diagramInfo = {
         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';
 
 {

+ 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';
 
 {

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

@@ -381,8 +381,8 @@ for (let z = 0; z < cellsDeep; ++z) {
 * добавим `OrbitControls`
 
 ```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

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

@@ -44,7 +44,7 @@ Three.js будет рисовать на этом холсте, так что 
 
 ```
 <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() {
   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
-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` камеру для 
@@ -469,9 +469,9 @@ gui.add(light, 'penumbra', 0, 1, 0.01);
 Для использования `RectAreaLight` нам нужно включить некоторые дополнительные возможности three.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

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

@@ -472,7 +472,7 @@ document.querySelectorAll('[data-diagram]').forEach((elem) => {
 Сначала мы добавляем скрипт для контролов.
 
 ```js
-import {TrackballControls} from './resources/threejs/r122/examples/jsm/controls/TrackballControls.js';
+import {TrackballControls} from './resources/threejs/r125/examples/jsm/controls/TrackballControls.js';
 ```
 
 И затем мы можем добавить `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` и состояние
 
 ```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 = {
 +export const state = {
@@ -617,7 +617,7 @@ window.addEventListener('touchend', clearPickPosition);
 
 В отличие от нашего кода, мы не можем использовать объект глобального `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
-import {EventDispatcher} from './resources/threejs/r122/build/three.module.js';
+import {EventDispatcher} from './resources/threejs/r125/build/three.module.js';
 
 class ElementProxyReceiver extends EventDispatcher {
   constructor() {
@@ -726,8 +726,8 @@ self.onmessage = function(e) {
 Нам также нужно добавить `OrbitControls` в начало скрипта.
 
 ```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) {
 -  const {canvas} = data;

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

@@ -366,10 +366,10 @@ showFileInfo(fileInfos, fileInfos[0]);
 Нам нужно включить библиотеку 
 
 ```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` чтобы оживить влияние.

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

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

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

@@ -21,7 +21,7 @@ TOC: Необходимые условия
 
 ```html
 <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, чтобы можно было что-то изменить, что мы можем сделать в ответ. 
 
 ```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 и внесем его изменения по запросу. 
 
 ```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';
 ```
 

+ 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).
 
 ```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
@@ -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
 
 ```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';
 ```
 

+ 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.
 
 ```js
-import {OrbitControls} from './resources/threejs/r122/examples/jsm/controls/OrbitControls.js';
+import {OrbitControls} from './resources/threejs/r125/examples/jsm/controls/OrbitControls.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.
 
 ```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

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

@@ -269,27 +269,24 @@ geometry.setAttribute(
 
 {{{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
-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>
     <div data-diagram="bufferGeometryCylinder"></div>
-    <div class="code">BufferGeometry</div>
-  </div>
-  <div>
-    <div data-diagram="geometryCylinder"></div>
-    <div class="code">Geometry</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
-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.
 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`
 
 ```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

+ 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!
 You can look inside on [github](https://github.com/mrdoob/three.js).
 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.
 

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

@@ -96,7 +96,7 @@ First let's load three.js
 
 ```html
 <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>
 ```
 
@@ -119,7 +119,7 @@ We will ask three.js to draw into that canvas so we need to look it up.
 
 ```html
 <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() {
 +  const canvas = document.querySelector('#c');
@@ -417,7 +417,7 @@ both
 </p>
 <pre class=prettyprint>
 &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.
 
 ```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
@@ -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
 
 ```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';
 ```
 

+ 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
 
 ```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
@@ -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
 
 ```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`

+ 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`.
 
 ```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

+ 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.
 
 ```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`,
@@ -143,10 +143,10 @@ Now that we have the textures available we can load the .MTL file.
 First we need to include the `MTLLoader`;
 
 ```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

+ 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.
 
 ```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.

+ 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`
 
 ```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 = {
 +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. 
 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.
 
 * contextmenu
@@ -678,7 +678,7 @@ tell the difference.
 Here's the code for the worker part.
 
 ```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 {
   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.
 
 ```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) {
 -  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
 
 ```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.

+ 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`
 
 ```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

+ 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.
 
 ```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`

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

@@ -24,7 +24,7 @@ both
 
 ```html
 <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.
 
 ```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
@@ -179,8 +179,8 @@ below slides.
 Let's also add a simple dat.GUI GUI and make its changes render on demand.
 
 ```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';
 ```
 

+ 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
 
 ```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';
 ```
 

+ 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
 
 ```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

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

@@ -53,7 +53,7 @@ ES6的语法。[点击这里查看你需要提前掌握的东西](threejs-prereq
 
 ```html
 <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>
 ```
 
@@ -71,7 +71,7 @@ Three.js需要使用这个canvas标签来绘制,所以我们要先获取它然
 
 ```html
 <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() {
 +  const canvas = document.querySelector('#c');
@@ -302,7 +302,7 @@ function render(time) {
 </p>
 <pre class=prettyprint>
 &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 的可选模块,所以我们首先需要引入这个模块。
 
 ```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 元素。
@@ -392,9 +392,9 @@ Three.js 中还有一种类型的光照,矩形区域光(`RectAreaLight`),
 为了使用 `RectAreaLight`,我们需要引入 three.js 的`RectAreaLightUniformsLib` 模块,同时使用 `RectAreaLightHelper` 来辅助查看灯光对象。
 
 ```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`

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

@@ -28,7 +28,7 @@ TOC: 加载 .OBJ 文件
 第一件要做的事就是将`OBJLoader`添加到代码中。
 
 ```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)里。
@@ -109,10 +109,10 @@ map_Ns windmill_001_base_SPEC.jpg
 首先要引用 `MTLLoader`;
 
 ```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"}}}

+ 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 = {
   width: 300,   // canvas default

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

@@ -1,5 +1,5 @@
 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() {
 }

+ 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 = {
   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 */
   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 = {
   width: 300,   // canvas default

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

@@ -59,8 +59,8 @@
     </div>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -59,8 +59,8 @@
     </div>
   </body>
 <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';
 
 function main() {

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

@@ -56,8 +56,8 @@
     </div>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -58,8 +58,8 @@
     </div>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -56,8 +56,8 @@
     </div>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -23,7 +23,7 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,7 +21,7 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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() {
   const canvas = document.querySelector('#c');

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

@@ -21,8 +21,8 @@
     <canvas id="c"></canvas>
   </body>
 <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';
 
 function main() {

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