問題タブ [buffer-geometry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
331 参照

javascript - three.js r74 BufferGeometry 四角ではなく球

次のコードがあります。

これにより、立方体がすばやく適切にレンダリングされますが、球体が必要です。それがリビジョン 74 でどのように機能するかを誰かに説明してもらえますか? 私はこの質問を見つけましたが、もう機能していません。

ありがとう!

0 投票する
1 に答える
562 参照

javascript - Three.js BufferGeometry頂点位置配列要素の順序の意味は何ですか?

これは、この three.js ドキュメントから取得した頂点位置の配列です。

この配列の要素 (頂点) の順序を変更すると、結果の形状が変化します。プログラムでシェイプを作成したいので、この要素が特定の順序になっている理由を知りたいです。これを行うには、頂点の順序が重要な理由を知る必要があります。私はこれを自分で理解しようとしましたが、成功しませんでした。

0 投票する
0 に答える
528 参照

javascript - BufferGeometryを使用してThreeJsで頂点配列を変更する

そう-計算されたポリゴンで画面を埋めている状況があります。ポリゴンの形状は常に変化しています。つまり、頂点の数はフレームごとに変化しています。フレームごとに新しいジオメトリを作成すると、突然マシンが効果的に停止し、大量のメモリを消費しているように見えます。ジオメトリ内のバッファを変更する必要があるようです。

だから私はbufferGeometryを使ってみましたが、基本的には:

私のレンダーループで-しかし、まったく機能していないようです。通常のジオメトリのみを使用すると、needsUpdate を設定すると動的に変更されますが、元のベクトルの値を変更した場合に限ります。配列自体を変更すると、表示されないようです。

ここにすべての例があります: http://jsbin.com/fanebah/edit?js,console,output - 「キューブ」を作成する行を交換すると、機能するものから機能しないものになります。

私は bufferGeometry を使用したいと思います - データを生成する方法により速く、近いです - 私は何が間違っていますか? それとも、threejs は動的な buffergeometry をサポートしていないのでしょうか?

0 投票する
2 に答える
5836 参照

javascript - How to add faces to THREE.BufferGeometry?

I have created programmatically a simple mesh:

Problem is that this mesh has only vertices. I have tried to add to it faces like in this question using THREE.Shape.Utils.triangulateShape but BufferGeometry is different than normal geometry and it does not work. Is it possible to add faces to BufferGeometry?

EDIT: Working fiddle

0 投票する
1 に答える
2370 参照

javascript - bufferGeometry から位置属性を取得できません

「シーンを歩き回る」(ある種の 3D ヘビ) ランダムな行があり、次に達成したいことは、その頭の周りにボックスを設定することです。ラインbufferGeometryはによって設定されます

その周りに立方体 (boxGeometryオブジェクト) を設定することを選択し、次のコード行を使用してそれを達成しようとしました。

positioningデバッグすると、配列が未定義であることがわかります。だから私はそこに何か問題があったと思います。

ありがとう。

0 投票する
1 に答える
1012 参照

javascript - bufferGeometry での CSG 操作

現在、形状を作成し、その形状に対して複数の CSG 操作を実行するために three.js ジオメトリ クラスを使用しています。したがって、継続的に形状を再描画します。

複数の csg 操作を実行するこのプロセスは低速です。レイキャスティングを使用してクリック時に形状を取得し、選択した形状と事前定義された形状 (任意の形状またはジオメトリ) の CSG を実行しているためです。

だから私の質問は:

  • THREE.BufferGeometryバッファ ジオメトリを使用すると CSG が高速化されますが、インスタンスで CSG 操作を実行するライブラリはありますか?

  • 他の方法を使用してプロセスを高速化する方法はありますか?

これは私のコードフローです:

このライブラリを CSG 操作に使用しています。全体的なフローは、three.js の例のこの例と似ています。

0 投票する
0 に答える
556 参照

javascript - ラインとメッシュの両方に THREE.BufferGeometry インスタンスを再利用します

バッファ ジオメトリを最大限に活用する方法を学んでいます。それらがどのように機能しているのか、そしてさまざまな可能性が何であるかをゆっくりと理解し始めています.

しかし今、私は輪郭のあるメッシュが欲しいです:

ここに画像の説明を入力

メッシュを取得するには、2 つの面( 0, 1, 2 )とを定義する必要があります( 0, 2, 3 )。したがって、このメッシュを描画するには、インデックス配列は次のようになります。

しかし、アウトラインを描画するには、ポイントを順番に接続する必要がある(0, 1, 2, 3, 0)ため、ライン インデックス配列は次のようになります。

THREE.BufferGeometryしかし、インデックス配列をインスタンスに定義できるのは 1 回だけです。したがって、両方を描画するには、ジオメトリを複製し、一度 に接続し、Mesh一度 として追加する必要がありLineます。これは、すべての位置が 2 回保存されることを意味します。

同じバッファ ジオメトリを使用して線とメッシュの両方を描画することはできませんか? どういうわけか、2 つのインデックス配列を渡すか、たとえば、それらを 1 つに結合して、この質問でここで述べたようにオフセットを使用します。

私のフィドルを見ることができるので、これはうまくいきます

0 投票する
1 に答える
3157 参照

three.js - THREE.BufferGeometry - 頂点法線と面法線

のドキュメントにTHREE.BufferGeometryは次のように書かれています。

normal (itemSize: 3)
このジオメトリの各頂点の面または頂点法線ベクトルの x、y、および z コンポーネントを格納します。.fromGeometry() によって設定されます。

この変数はいつ頂点法線を保持し、いつ法線を保持しますか?

THREE.MeshMaterialaを使用すると法線が面法線として解釈され、aTHREE.LineMaterialを使用すると法線が頂点法線として使用されるのと同じくらい単純ですか? それともそれよりも複雑ですか?

また、フラット シェーディングでメッシュをレンダリングするために使用できることも理解しTHREE.FlatShadingました (面の法線はまっすぐ外側を向いています)。

法線はもう必要ないと思います。このような場合に、バッファ ジオメトリがTHREE.BoxGeometry通常のアトリビュートを保持しているなどから作られているのはなぜですか? この情報はまだレンダリングに使用されていますか、それともバッファ ジオメトリからそれらを削除することで最適化できるのでしょうか?

0 投票する
1 に答える
2828 参照

javascript - Three.js の BufferGeometry の頂点のジオメトリ

静かでシンプルなものが欲しいと思っていたのですが、思ったよりも複雑でした..

私が欲しいのは、THREE.BufferGeometry(球)のすべての頂点のメッシュだけです!

コードペン: codepen.io/cheesyeyes/pen/YwBZGz

これは私が欲しいものです

これは私のバッファジオメトリです:

頂点の位置を取得しようとしています:

では、bufferGeometry のすべての頂点 (ここでは 5 つ) の位置を取得するために、それらを正しく読み取るにはどうすればよいでしょうか?

こんな感じでやってみました。それは実際には機能しますが、非常に醜いと思います:

この配列がどのように配置されているかわかりません..助けてください! ありがとう!