Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup: mergeBufferGeometries() -> mergeGeometries() #25657

Merged
merged 1 commit into from
Mar 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions examples/jsm/utils/LDrawUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
Mesh
} from 'three';

import { mergeBufferGeometries } from './BufferGeometryUtils.js';
import { mergeGeometries } from './BufferGeometryUtils.js';

class LDrawUtils {

Expand Down Expand Up @@ -165,7 +165,7 @@ class LDrawUtils {
for ( const meshMaterialsId of meshMaterialsIds ) {

const meshGeometry = meshGeometries[ meshMaterialsId ];
const mergedGeometry = mergeBufferGeometries( meshGeometry.arr );
const mergedGeometry = mergeGeometries( meshGeometry.arr );
mergedObject.add( new Mesh( mergedGeometry, meshGeometry.mat ) );

}
Expand All @@ -174,7 +174,7 @@ class LDrawUtils {
for ( const linesMaterialsId of linesMaterialsIds ) {

const lineGeometry = linesGeometries[ linesMaterialsId ];
const mergedGeometry = mergeBufferGeometries( lineGeometry.arr );
const mergedGeometry = mergeGeometries( lineGeometry.arr );
mergedObject.add( new LineSegments( mergedGeometry, lineGeometry.mat ) );

}
Expand All @@ -183,7 +183,7 @@ class LDrawUtils {
for ( const condLinesMaterialsId of condLinesMaterialsIds ) {

const condLineGeometry = condLinesGeometries[ condLinesMaterialsId ];
const mergedGeometry = mergeBufferGeometries( condLineGeometry.arr );
const mergedGeometry = mergeGeometries( condLineGeometry.arr );
const condLines = new LineSegments( mergedGeometry, condLineGeometry.mat );
condLines.isConditionalLine = true;
mergedObject.add( condLines );
Expand Down
2 changes: 1 addition & 1 deletion examples/webgl_custom_attributes_points2.html
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
sphereGeometry = BufferGeometryUtils.mergeVertices( sphereGeometry );
boxGeometry = BufferGeometryUtils.mergeVertices( boxGeometry );

const combinedGeometry = BufferGeometryUtils.mergeBufferGeometries( [ sphereGeometry, boxGeometry ] );
const combinedGeometry = BufferGeometryUtils.mergeGeometries( [ sphereGeometry, boxGeometry ] );
const positionAttribute = combinedGeometry.getAttribute( 'position' );

const colors = [];
Expand Down
2 changes: 1 addition & 1 deletion examples/webgl_geometry_minecraft.html
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@

}

const geometry = BufferGeometryUtils.mergeBufferGeometries( geometries );
const geometry = BufferGeometryUtils.mergeGeometries( geometries );
geometry.computeBoundingSphere();

const texture = new THREE.TextureLoader().load( 'textures/minecraft/atlas.png' );
Expand Down
2 changes: 1 addition & 1 deletion examples/webgl_instancing_performance.html
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@

}

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries( geometries );
const mergedGeometry = BufferGeometryUtils.mergeGeometries( geometries );

scene.add( new THREE.Mesh( mergedGeometry, material ) );

Expand Down
4 changes: 2 additions & 2 deletions examples/webgl_interactive_cubes_gpu.html
Original file line number Diff line number Diff line change
Expand Up @@ -150,10 +150,10 @@

}

const objects = new THREE.Mesh( BufferGeometryUtils.mergeBufferGeometries( geometriesDrawn ), defaultMaterial );
const objects = new THREE.Mesh( BufferGeometryUtils.mergeGeometries( geometriesDrawn ), defaultMaterial );
scene.add( objects );

pickingScene.add( new THREE.Mesh( BufferGeometryUtils.mergeBufferGeometries( geometriesPicking ), pickingMaterial ) );
pickingScene.add( new THREE.Mesh( BufferGeometryUtils.mergeGeometries( geometriesPicking ), pickingMaterial ) );

highlightBox = new THREE.Mesh(
new THREE.BoxGeometry(),
Expand Down
4 changes: 2 additions & 2 deletions manual/en/optimize-lots-of-objects-animated.html
Original file line number Diff line number Diff line change
Expand Up @@ -250,15 +250,15 @@ <h1>Optimize Lots of Objects Animated</h1>

...

- const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
- const mergedGeometry = BufferGeometryUtils.mergeGeometries(
- geometries, false);
- const material = new THREE.MeshBasicMaterial({
- vertexColors: true,
- });
- const mesh = new THREE.Mesh(mergedGeometry, material);
- scene.add(mesh);
- return mesh;
+ return BufferGeometryUtils.mergeBufferGeometries(
+ return BufferGeometryUtils.mergeGeometries(
+ geometries, false);
}
</pre>
Expand Down
6 changes: 3 additions & 3 deletions manual/en/optimize-lots-of-objects.html
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ <h1>Optimize Lots of Objects</h1>
});
});

+ const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+ const mergedGeometry = BufferGeometryUtils.mergeGeometries(
+ geometries, false);
+ const material = new THREE.MeshBasicMaterial({color:'red'});
+ const mesh = new THREE.Mesh(mergedGeometry, material);
Expand All @@ -401,7 +401,7 @@ <h1>Optimize Lots of Objects</h1>
box and since we are going to use <code class="notranslate" translate="no">applyMatrix</code> to move the vertices of each box
geometry we might as well do it once instead of twice.</p>
<p>At the end we pass an array of all the geometries to
<code class="notranslate" translate="no">BufferGeometryUtils.mergeBufferGeometries</code> which will combined all of
<code class="notranslate" translate="no">BufferGeometryUtils.mergeGeometries</code> which will combined all of
them into a single mesh.</p>
<p>We also need to include the <code class="notranslate" translate="no">BufferGeometryUtils</code></p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
Expand Down Expand Up @@ -475,7 +475,7 @@ <h1>Optimize Lots of Objects</h1>
attribute from the geometry. We then create a <code class="notranslate" translate="no">Uint8Array</code> to put the colors in.
It then adds that as an attribute by calling <code class="notranslate" translate="no">geometry.setAttribute</code>.</p>
<p>Lastly we need to tell three.js to use the vertex colors. </p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
-const material = new THREE.MeshBasicMaterial({color:'red'});
+const material = new THREE.MeshBasicMaterial({
Expand Down
2 changes: 1 addition & 1 deletion manual/examples/lots-of-objects-animated.html
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
});
});

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
const material = new THREE.MeshBasicMaterial({
vertexColors: true,
Expand Down
2 changes: 1 addition & 1 deletion manual/examples/lots-of-objects-merged-vertexcolors.html
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
});
});

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
const material = new THREE.MeshBasicMaterial({
vertexColors: true,
Expand Down
2 changes: 1 addition & 1 deletion manual/examples/lots-of-objects-merged.html
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@
});
});

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
const material = new THREE.MeshBasicMaterial({color:'red'});
const mesh = new THREE.Mesh(mergedGeometry, material);
Expand Down
2 changes: 1 addition & 1 deletion manual/examples/lots-of-objects-morphtargets.html
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@
});
});

return BufferGeometryUtils.mergeBufferGeometries(
return BufferGeometryUtils.mergeGeometries(
geometries, false);
}

Expand Down
2 changes: 1 addition & 1 deletion manual/examples/lots-of-objects-multiple-data-sets.html
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@
});
});

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
const material = new THREE.MeshBasicMaterial({
vertexColors: true,
Expand Down
2 changes: 1 addition & 1 deletion manual/examples/voxel-geometry-merged.html
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
}
}

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
const material = new THREE.MeshPhongMaterial({color: 'green'});
const mesh = new THREE.Mesh(mergedGeometry, material);
Expand Down
4 changes: 2 additions & 2 deletions manual/ja/optimize-lots-of-objects-animated.html
Original file line number Diff line number Diff line change
Expand Up @@ -224,15 +224,15 @@ <h1>でアニメーションする多くのオブジェクトを最適化</h1>

...

- const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
- const mergedGeometry = BufferGeometryUtils.mergeGeometries(
- geometries, false);
- const material = new THREE.MeshBasicMaterial({
- vertexColors: true,
- });
- const mesh = new THREE.Mesh(mergedGeometry, material);
- scene.add(mesh);
- return mesh;
+ return BufferGeometryUtils.mergeBufferGeometries(
+ return BufferGeometryUtils.mergeGeometries(
+ geometries, false);
}
</pre>
Expand Down
6 changes: 3 additions & 3 deletions manual/ja/optimize-lots-of-objects.html
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ <h1>で多くのオブジェクトを最適化</h1>
});
});

+ const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+ const mergedGeometry = BufferGeometryUtils.mergeGeometries(
+ geometries, false);
+ const material = new THREE.MeshBasicMaterial({color:'red'});
+ const mesh = new THREE.Mesh(mergedGeometry, material);
Expand All @@ -364,7 +364,7 @@ <h1>で多くのオブジェクトを最適化</h1>
<p>上記ではボックスジオメトリの中心点を変更していたコードを削除し、代わりに <code class="notranslate" translate="no">originHelper</code> を追加しています。
前は同じジオメトリを19000回も使っていました。
今回は1つ1つのジオメトリを新しく作成し、各ボックスジオメトリの頂点を移動するために <code class="notranslate" translate="no">applyMatrix</code> を使用するので、2回ではなく1回にした方が良いかもしれません。</p>
<p>最後に全てのジオメトリの配列を <code class="notranslate" translate="no">BufferGeometryUtils.mergeBufferGeometries</code> に渡します。
<p>最後に全てのジオメトリの配列を <code class="notranslate" translate="no">BufferGeometryUtils.mergeGeometries</code> に渡します。
また <code class="notranslate" translate="no">BufferGeometryUtils</code> も含める必要があります。</p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
</pre>
Expand Down Expand Up @@ -434,7 +434,7 @@ <h1>で多くのオブジェクトを最適化</h1>
<p>上記のコードではジオメトリから <code class="notranslate" translate="no">position</code> を取得して必要な頂点の数を調べています。
次に色を入れるための変数を <code class="notranslate" translate="no">Uint8Array</code> で作成します。その後に <code class="notranslate" translate="no">geometry.setAttribute</code> を呼び出して属性として追加します。</p>
<p>最後に頂点カラーを扱うようにthree.jsで指定する必要があります。</p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
-const material = new THREE.MeshBasicMaterial({color:'red'});
+const material = new THREE.MeshBasicMaterial({
Expand Down
4 changes: 2 additions & 2 deletions manual/ko/optimize-lots-of-objects-animated.html
Original file line number Diff line number Diff line change
Expand Up @@ -208,15 +208,15 @@ <h1>다중 애니메이션 요소 최적화하기</h1>

...

- const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
- const mergedGeometry = BufferGeometryUtils.mergeGeometries(
- geometries, false);
- const material = new THREE.MeshBasicMaterial({
- vertexColors: true,
- });
- const mesh = new THREE.Mesh(mergedGeometry, material);
- scene.add(mesh);
- return mesh;
+ return BufferGeometryUtils.mergeBufferGeometries(
+ return BufferGeometryUtils.mergeGeometries(
+ geometries, false);
}
</pre>
Expand Down
6 changes: 3 additions & 3 deletions manual/ko/optimize-lots-of-objects.html
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ <h1>다중 요소 렌더링 최적화하기</h1>
});

+ // 생성한 geometry를 전부 합칩니다.
+ const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+ const mergedGeometry = BufferGeometryUtils.mergeGeometries(
+ geometries, false);
+ const material = new THREE.MeshBasicMaterial({ color:'red' });
+ const mesh = new THREE.Mesh(mergedGeometry, material);
Expand All @@ -348,7 +348,7 @@ <h1>다중 요소 렌더링 최적화하기</h1>
}
</pre>
<p>위 코드에서는 육면체의 중심을 옮기는 대신 <code class="notranslate" translate="no">originHelper</code>를 새로 만들어 중심축을 옮겼습니다. 이전에는 같은 geometry를 19000번 재활용했지만, 이번에는 데이터마다 geometry를 새로 생성했죠. 또한 <code class="notranslate" translate="no">applyMatrix</code>를 이용해 육면체 자체의 정점을 이동시키므로 메서드를 두 번 쓰는 대신 한 번만 썼습니다.</p>
<p>그리고 생성한 육면체를 전부 배열에 저장한 뒤 이 배열을 <code class="notranslate" translate="no">BufferGeometryUtils.mergeBufferGeometries</code>에 넘겨 하나의 geometry로 합쳤습니다.</p>
<p>그리고 생성한 육면체를 전부 배열에 저장한 뒤 이 배열을 <code class="notranslate" translate="no">BufferGeometryUtils.mergeGeometries</code>에 넘겨 하나의 geometry로 합쳤습니다.</p>
<p>물론 <code class="notranslate" translate="no">BufferGeometryUtils</code>을 불러와야죠.</p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">import { BufferGeometryUtils } from 'three/addons/utils/BufferGeometryUtils.js';
</pre>
Expand Down Expand Up @@ -415,7 +415,7 @@ <h1>다중 요소 렌더링 최적화하기</h1>
</pre>
<p>추가한 코드에서는 먼저 geometry의 <code class="notranslate" translate="no">position</code> 속성을 가져와 정점의 개수를 파악했습니다. 그런 다음 색상을 지정하기 위해 <code class="notranslate" translate="no">Uint8Array</code>로 변환한 뒤, 이를 <code class="notranslate" translate="no">geometry.setAttribute</code> 메서드로 geometry의 <code class="notranslate" translate="no">color</code> 속성에 지정했죠.</p>
<p>마지막으로 재질(material)이 정점 색상을 사용하도록 설정합니다.</p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
-const material = new THREE.MeshBasicMaterial({color:'red'});
+const material = new THREE.MeshBasicMaterial({
Expand Down
2 changes: 1 addition & 1 deletion manual/resources/threejs-voxel-geometry.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import { threejsLessonUtils } from './threejs-lesson-utils.js';

}

const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries( geometries, false );
const mergedGeometry = BufferGeometryUtils.mergeGeometries( geometries, false );
const material = new THREE.MeshBasicMaterial( {
color: colors.wire,
wireframe: true,
Expand Down
4 changes: 2 additions & 2 deletions manual/ru/optimize-lots-of-objects-animated.html
Original file line number Diff line number Diff line change
Expand Up @@ -234,15 +234,15 @@ <h1>Оптимизация большого количества анимиро

...

- const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
- const mergedGeometry = BufferGeometryUtils.mergeGeometries(
- geometries, false);
- const material = new THREE.MeshBasicMaterial({
- vertexColors: true,
- });
- const mesh = new THREE.Mesh(mergedGeometry, material);
- scene.add(mesh);
- return mesh;
+ return BufferGeometryUtils.mergeBufferGeometries(
+ return BufferGeometryUtils.mergeGeometries(
+ geometries, false);
}
</pre>
Expand Down
6 changes: 3 additions & 3 deletions manual/ru/optimize-lots-of-objects.html
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ <h1>Оптимизация большого количества объекто
});
});

+ const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+ const mergedGeometry = BufferGeometryUtils.mergeGeometries(
+ geometries, false);
+ const material = new THREE.MeshBasicMaterial({color:'red'});
+ const mesh = new THREE.Mesh(mergedGeometry, material);
Expand All @@ -378,7 +378,7 @@ <h1>Оптимизация большого количества объекто
одну и ту же геометрию 19000 раз. На этот раз мы создаем новую геометрию
для каждого отдельного блока, и, поскольку мы будем использовать <code class="notranslate" translate="no">applyMatrix</code>
для перемещения вершин каждой геометрии блока, мы могли бы сделать это один раз, а не два. </p>
<p>В конце мы передаем массив всех геометрий в <code class="notranslate" translate="no">BufferGeometryUtils.mergeBufferGeometries</code>, который объединит их все в одну сетку. </p>
<p>В конце мы передаем массив всех геометрий в <code class="notranslate" translate="no">BufferGeometryUtils.mergeGeometries</code>, который объединит их все в одну сетку. </p>
<p>Нам также нужно включить <code class="notranslate" translate="no">BufferGeometryUtils</code> </p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
</pre>
Expand Down Expand Up @@ -452,7 +452,7 @@ <h1>Оптимизация большого количества объекто
Затем мы создаем <code class="notranslate" translate="no">Uint8Array</code> для размещения цветов.
Затем он добавляет это как атрибут, вызывая <code class="notranslate" translate="no">geometry.setAttribute</code>. </p>
<p>Наконец, нам нужно указать three.js использовать цвета вершин. </p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
-const material = new THREE.MeshBasicMaterial({color:'red'});
+const material = new THREE.MeshBasicMaterial({
Expand Down
4 changes: 2 additions & 2 deletions manual/zh/optimize-lots-of-objects-animated.html
Original file line number Diff line number Diff line change
Expand Up @@ -209,15 +209,15 @@ <h1>优化对象的同时保持动画效果</h1>

...

- const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
- const mergedGeometry = BufferGeometryUtils.mergeGeometries(
- geometries, false);
- const material = new THREE.MeshBasicMaterial({
- vertexColors: true,
- });
- const mesh = new THREE.Mesh(mergedGeometry, material);
- scene.add(mesh);
- return mesh;
+ return BufferGeometryUtils.mergeBufferGeometries(
+ return BufferGeometryUtils.mergeGeometries(
+ geometries, false);
}
</pre>
Expand Down
6 changes: 3 additions & 3 deletions manual/zh/optimize-lots-of-objects.html
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ <h1>大量对象的优化</h1>
});
});

+ const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+ const mergedGeometry = BufferGeometryUtils.mergeGeometries(
+ geometries, false);
+ const material = new THREE.MeshBasicMaterial({color:'red'});
+ const mesh = new THREE.Mesh(mergedGeometry, material);
Expand All @@ -344,7 +344,7 @@ <h1>大量对象的优化</h1>
}
</pre>
<p>我们移除了之前用来改变盒子几何中心的代码, 取而代之的是<code class="notranslate" translate="no">originHelper</code>. 这次我们要为每个长方体创建新的几何体, 因为我们要使用“applyMatrix”来移动每个长方体几何体的顶点, 所以我们最好只移动一次, 而不是两次.</p>
<p>最后, 我们将所有几何体的数组传入<code class="notranslate" translate="no">BufferGeometryUtils.mergeBufferGeometries</code>, 这个方法将会将其合并到一个mesh中</p>
<p>最后, 我们将所有几何体的数组传入<code class="notranslate" translate="no">BufferGeometryUtils.mergeGeometries</code>, 这个方法将会将其合并到一个mesh中</p>
<p>别忘了引入<code class="notranslate" translate="no">BufferGeometryUtils</code></p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
</pre>
Expand Down Expand Up @@ -409,7 +409,7 @@ <h1>大量对象的优化</h1>
</pre>
<p>上面的代码中, 我们查找几何体中的<code class="notranslate" translate="no">position</code>属性来获取所需的数量和顶点. 然后创建一个<code class="notranslate" translate="no">Uint8Array</code>来输入颜色. 接下来通过调用<code class="notranslate" translate="no">geometry.setAttribute</code>来将其设定为一个属性. </p>
<p>最后告诉three.js使用顶点上色. </p>
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
<pre class="prettyprint showlinemods notranslate lang-js" translate="no">const mergedGeometry = BufferGeometryUtils.mergeGeometries(
geometries, false);
-const material = new THREE.MeshBasicMaterial({color:'red'});
+const material = new THREE.MeshBasicMaterial({
Expand Down
Loading