Jelajahi Sumber

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

WestLangley 2 tahun lalu
induk
melakukan
7b3c58b5dd

+ 4 - 4
examples/jsm/utils/LDrawUtils.js

@@ -7,7 +7,7 @@ import {
 	Mesh
 } from 'three';
 
-import { mergeBufferGeometries } from './BufferGeometryUtils.js';
+import { mergeGeometries } from './BufferGeometryUtils.js';
 
 class LDrawUtils {
 
@@ -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 ) );
 
 		}
@@ -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 ) );
 
 		}
@@ -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 );

+ 1 - 1
examples/webgl_custom_attributes_points2.html

@@ -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 = [];

+ 1 - 1
examples/webgl_geometry_minecraft.html

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

+ 1 - 1
examples/webgl_instancing_performance.html

@@ -201,7 +201,7 @@
 
 			}
 
-			const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries( geometries );
+			const mergedGeometry = BufferGeometryUtils.mergeGeometries( geometries );
 
 			scene.add( new THREE.Mesh( mergedGeometry, material ) );
 

+ 2 - 2
examples/webgl_interactive_cubes_gpu.html

@@ -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(),

+ 2 - 2
manual/en/optimize-lots-of-objects-animated.html

@@ -250,7 +250,7 @@ the <code class="notranslate" translate="no">position</code> attribute from each
 
   ...
 
--  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+-  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 -      geometries, false);
 -  const material = new THREE.MeshBasicMaterial({
 -    vertexColors: true,
@@ -258,7 +258,7 @@ the <code class="notranslate" translate="no">position</code> attribute from each
 -  const mesh = new THREE.Mesh(mergedGeometry, material);
 -  scene.add(mesh);
 -  return mesh;
-+  return BufferGeometryUtils.mergeBufferGeometries(
++  return BufferGeometryUtils.mergeGeometries(
 +     geometries, false);
 }
 </pre>

+ 3 - 3
manual/en/optimize-lots-of-objects.html

@@ -387,7 +387,7 @@ geometry we'd remove 18999 operations.</p>
     });
   });
 
-+  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
++  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 +      geometries, false);
 +  const material = new THREE.MeshBasicMaterial({color:'red'});
 +  const mesh = new THREE.Mesh(mergedGeometry, material);
@@ -401,7 +401,7 @@ geometry 19000 times. This time we are creating new geometry for every single
 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';
@@ -475,7 +475,7 @@ data.forEach((row, latNdx) =&gt; {
 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({

+ 1 - 1
manual/examples/lots-of-objects-animated.html

@@ -228,7 +228,7 @@ function main() {
       });
     });
 
-    const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+    const mergedGeometry = BufferGeometryUtils.mergeGeometries(
         geometries, false);
     const material = new THREE.MeshBasicMaterial({
       vertexColors: true,

+ 1 - 1
manual/examples/lots-of-objects-merged-vertexcolors.html

@@ -174,7 +174,7 @@ function main() {
       });
     });
 
-    const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+    const mergedGeometry = BufferGeometryUtils.mergeGeometries(
         geometries, false);
     const material = new THREE.MeshBasicMaterial({
       vertexColors: true,

+ 1 - 1
manual/examples/lots-of-objects-merged.html

@@ -150,7 +150,7 @@ function main() {
       });
     });
 
-    const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+    const mergedGeometry = BufferGeometryUtils.mergeGeometries(
         geometries, false);
     const material = new THREE.MeshBasicMaterial({color:'red'});
     const mesh = new THREE.Mesh(mergedGeometry, material);

+ 1 - 1
manual/examples/lots-of-objects-morphtargets.html

@@ -237,7 +237,7 @@ function main() {
       });
     });
 
-    return BufferGeometryUtils.mergeBufferGeometries(
+    return BufferGeometryUtils.mergeGeometries(
        geometries, false);
   }
 

+ 1 - 1
manual/examples/lots-of-objects-multiple-data-sets.html

@@ -195,7 +195,7 @@ function main() {
       });
     });
 
-    const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+    const mergedGeometry = BufferGeometryUtils.mergeGeometries(
         geometries, false);
     const material = new THREE.MeshBasicMaterial({
       vertexColors: true,

+ 1 - 1
manual/examples/voxel-geometry-merged.html

@@ -81,7 +81,7 @@ function main() {
     }
   }
 
-  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
         geometries, false);
   const material = new THREE.MeshPhongMaterial({color: 'green'});
   const mesh = new THREE.Mesh(mergedGeometry, material);

+ 2 - 2
manual/ja/optimize-lots-of-objects-animated.html

@@ -224,7 +224,7 @@ depth関数とブレンディングを使い修正できる可能性がありま
 
   ...
 
--  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+-  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 -      geometries, false);
 -  const material = new THREE.MeshBasicMaterial({
 -    vertexColors: true,
@@ -232,7 +232,7 @@ depth関数とブレンディングを使い修正できる可能性がありま
 -  const mesh = new THREE.Mesh(mergedGeometry, material);
 -  scene.add(mesh);
 -  return mesh;
-+  return BufferGeometryUtils.mergeBufferGeometries(
++  return BufferGeometryUtils.mergeGeometries(
 +     geometries, false);
 }
 </pre>

+ 3 - 3
manual/ja/optimize-lots-of-objects.html

@@ -353,7 +353,7 @@ renderが必要なのは連続的なレンダリングでなく、<a href="rende
     });
   });
 
-+  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
++  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 +      geometries, false);
 +  const material = new THREE.MeshBasicMaterial({color:'red'});
 +  const mesh = new THREE.Mesh(mergedGeometry, material);
@@ -364,7 +364,7 @@ renderが必要なのは連続的なレンダリングでなく、<a href="rende
 <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>
@@ -434,7 +434,7 @@ data.forEach((row, latNdx) =&gt; {
 <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({

+ 2 - 2
manual/ko/optimize-lots-of-objects-animated.html

@@ -208,7 +208,7 @@ showFileInfo(fileInfos, fileInfos[0]);
 
   ...
 
--  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+-  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 -      geometries, false);
 -  const material = new THREE.MeshBasicMaterial({
 -    vertexColors: true,
@@ -216,7 +216,7 @@ showFileInfo(fileInfos, fileInfos[0]);
 -  const mesh = new THREE.Mesh(mergedGeometry, material);
 -  scene.add(mesh);
 -  return mesh;
-+  return BufferGeometryUtils.mergeBufferGeometries(
++  return BufferGeometryUtils.mergeGeometries(
 +     geometries, false);
 }
 </pre>

+ 3 - 3
manual/ko/optimize-lots-of-objects.html

@@ -339,7 +339,7 @@ function hsl(h, s, l) {
   });
 
 +  // 생성한 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);
@@ -348,7 +348,7 @@ function hsl(h, s, l) {
 }
 </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>
@@ -415,7 +415,7 @@ data.forEach((row, latNdx) =&gt; {
 </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({

+ 1 - 1
manual/resources/threejs-voxel-geometry.js

@@ -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,

+ 2 - 2
manual/ru/optimize-lots-of-objects-animated.html

@@ -234,7 +234,7 @@ showFileInfo(fileInfos, fileInfos[0]);
 
   ...
 
--  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+-  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 -      geometries, false);
 -  const material = new THREE.MeshBasicMaterial({
 -    vertexColors: true,
@@ -242,7 +242,7 @@ showFileInfo(fileInfos, fileInfos[0]);
 -  const mesh = new THREE.Mesh(mergedGeometry, material);
 -  scene.add(mesh);
 -  return mesh;
-+  return BufferGeometryUtils.mergeBufferGeometries(
++  return BufferGeometryUtils.mergeGeometries(
 +     geometries, false);
 }
 </pre>

+ 3 - 3
manual/ru/optimize-lots-of-objects.html

@@ -365,7 +365,7 @@ THREE.Object3D, как мы покрывали в <a href="scenegraph.html">гр
     });
   });
 
-+  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
++  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 +      geometries, false);
 +  const material = new THREE.MeshBasicMaterial({color:'red'});
 +  const mesh = new THREE.Mesh(mergedGeometry, material);
@@ -378,7 +378,7 @@ THREE.Object3D, как мы покрывали в <a href="scenegraph.html">гр
 одну и ту же геометрию 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>
@@ -452,7 +452,7 @@ data.forEach((row, latNdx) =&gt; {
 Затем мы создаем <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({

+ 2 - 2
manual/zh/optimize-lots-of-objects-animated.html

@@ -209,7 +209,7 @@ showFileInfo(fileInfos, fileInfos[0]);
 
   ...
 
--  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
+-  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 -      geometries, false);
 -  const material = new THREE.MeshBasicMaterial({
 -    vertexColors: true,
@@ -217,7 +217,7 @@ showFileInfo(fileInfos, fileInfos[0]);
 -  const mesh = new THREE.Mesh(mergedGeometry, material);
 -  scene.add(mesh);
 -  return mesh;
-+  return BufferGeometryUtils.mergeBufferGeometries(
++  return BufferGeometryUtils.mergeGeometries(
 +     geometries, false);
 }
 </pre>

+ 3 - 3
manual/zh/optimize-lots-of-objects.html

@@ -335,7 +335,7 @@ function hsl(h, s, l) {
     });
   });
 
-+  const mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(
++  const mergedGeometry = BufferGeometryUtils.mergeGeometries(
 +      geometries, false);
 +  const material = new THREE.MeshBasicMaterial({color:'red'});
 +  const mesh = new THREE.Mesh(mergedGeometry, material);
@@ -344,7 +344,7 @@ function hsl(h, s, l) {
 }
 </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>
@@ -409,7 +409,7 @@ data.forEach((row, latNdx) =&gt; {
 </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({

+ 1 - 1
src/core/BufferGeometry.js

@@ -728,7 +728,7 @@ class BufferGeometry extends EventDispatcher {
 
 	merge() { // @deprecated, r144
 
-		console.error( 'THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeBufferGeometries() instead.' );
+		console.error( 'THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeGeometries() instead.' );
 		return this;
 
 	}