問題タブ [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.
javascript - 影を更新しないモーフ属性を持つアニメーション化されたバッファジオメトリ
MD2 コードをライブラリから変換して、メモリ フットプリントを大幅に改善するTHREE.BufferGeometry
代わりに使用しました。THREE.Geometry
これを行うにTHREE.BufferGeometry
は、ロードが完了した後にモデルを変換するだけです。MorphBlendMesh
の属性を使用するようにコードを変更する必要もありましたmorphTargetInfluences
。
これは、アニメーション中に影が更新されず、常にアニメーションの最初のフレームの影を使用するという問題を除いて、うまく機能しています。
属性に関するドキュメントを見たことがないmorphTargetInfluences
ので、これ以上続ける必要はありません。
コードベース全体に分散しすぎているため、コードを実際に投稿することはできません。
誰かがモーフ アニメーション中に影がどのように更新されるかについて何らかの洞察を持ち、この問題を調査する方法について正しい方向性を示してくれることを願っています。
three.js - 「scene.add」を複数回使用せずに、子を持つ BufferGeometry を更新する方法
私の質問は非常に具体的です。いくつかのパラメータによって更新される bufferGeometry でメッシュ (Mesh1) を作成しましたが、「add」メソッド (Mesh1.add(Mesh2)) によって別のメッシュ (Mesh2) が追加されました。初期化のために Scene.add(Mesh1) を実行すると、明らかに両方のメッシュが画面に表示されます。ただし、Mesh1 を更新すると、もう一度 Scene.add(Mesh1) を実行しない限り、Mesh2 は消えます。これは、Mesh1 をもう一度画面に追加するためです。誰かがこれで私を助けることができるかどうか疑問に思っていました。ありがとうございました。
javascript - THREE.js SphereBufferGeometry から BufferGeometry へのコピー
一連の三角形を格納する BufferGeometry を作成しました (後で頂点シェーダーを使用して操作するため)。頂点の位置座標と色はランダムに生成され、bufferGeometry.attributes プロパティ内の配列として追加されました。メッシュの作成に使用すると、うまく機能しました。ここにコードがあります:-
次に、同様の BufferGeometry を作成したいのですが、今回は三角形を最初に球状の「表面」に配置する必要があります。そこで、適切な構成で「ドナー」の SphereBufferGeometry を作成しました。
次に、関連データをドナー SphereBufferGeometry から BufferGeometry に単純にコピーするというアイデアでした。
これが私が使用しているコードです:-
何らかの理由で、SphereBufferGeometry から BufferGeometry にコピーしてメッシュを作成すると、三角形のごく一部 (約 20 ~ 25%?) のみが実際にプロットされます。
質問
私の質問は次のとおりです。すべての三角形をプロットするにはどうすればよいですか?
更新1
対照的に、次の方法は問題なく動作します: (1) SphereGeometry でメッシュを作成し、(2) .setFromObject(mesh) で新しい BufferGeometry を作成します (3) 以前の BufferGeometry から新しい BufferGeometry にコピーし、後者を使用して新しいメッシュ。しかし、これは長ったらしいアプローチのようです。
更新2
Cgeometry が SphereBufferGeometry の場合、次のメソッドも問題なく動作します。
元の問題は、インデックス作成が SphereBufferGeometry で使用されており、新しい BufferGeometry でデフォルトでインデックスが構築されていないことが原因のようです。
インデックスを SphereBufferGeometry から新しい BufferGeometry にコピーする簡単な方法はないようです。
BufferGeomtry のアイデアには、インデックスを作成せずに行うことが含まれていると思ったので、少し混乱しています。
javascript - Three.JSで2つのBufferGeometryを1つのBufferGeometryにマージする方法は?
THREE.BufferGeometry
ThreeJSで 2 つのバッファ ジオメトリを 1 つにマージする方法は?
では何もしませんmodelGeometry
。これらのジオメトリを正しくマージするにはどうすればよいですか?
javascript - Thee.js での BufferGeometry のレンダリング順序
前の質問に続いて、BufferGeometry でモデルを構築する作業を行っていますが、transparent
フラグがレンダリングの順序に影響することに気付きました。透明なマテリアルを持つオブジェクトは、透明でないオブジェクトの後にレンダリングされます。
また、私はこのスレッドを読み、 JSFiddleで実験を行い、BufferGeometry の面のレンダリング順序がバッファーで指定されている順序と同じであるが、カメラからの距離ではないことに気付きました。(上記の実験では、バッファ内で最初により近い三角形を指定し、その背後にある他の三角形を覆い隠します。)
だから私の質問は: BufferGeometry で顔のレンダリング順序を手動で設定することは可能ですか? 私の場合、建物要素の透明度を動的に変更する必要があるかもしれません。( Object3Dを設定できるというスレッドを読みました。)renderOrder
ありがとうございました。
javascript - THREE.js の BufferGeometry の STL エクスポーター
シーンを構成する多数の BufferGeometry があり、それらのメッシュは異なる位置に転送されています。BufferGeometry を含むこのシーンをメッシュから STL ファイルにエクスポートする方法があるかどうか疑問に思っていました。どうもありがとうございました。