問題タブ [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.
three.js - Three.js PlaneBufferGeometry がレンダリングされない
planeBufferGeometry をレンダリングできません。何が間違っているのかわかりません。これは、BufferGeometry を使用した最初の試みです。コードを Geometry.Sphere またはその他の Geometry オブジェクトに置き換えると、これはうまく機能します。
カメラ位置
const WIDTH = window.innerWidth; const HEIGHT = window.innerHeight;
ありがとう
javascript - javascript を使用した 2 進小数点データの解析
問題
3D 空間内の色付きポイントのグループを記述する API からバイナリ データを受信しています。その意図は、ポイントを解析し、それらを Three.js の buffergeometry で使用することです。
バイナリ形式のデータを操作することになると、ここで少し頭を悩ませているので、あなたの助けが必要です.
API からのバイナリ データについて:
バイナリ データは、次の形式のヘッダーで始まります。
ヘッダーの後に空白行が続き、次にこれらのポイントが次の形式で示されます。
32 バイトごと:
- X: double (8 バイト)
- Y: double (8 バイト)
- Z: ダブル (8 バイト)
- R: unsigned char (1バイト)
- G: unsigned char (1バイト)
- B: unsigned char (1バイト)
- 残りのスペースを埋めるための 5 ガベージ バイト
私がこれまでにいる場所:
binaryPoints変数が API からの生のバイナリ データを保持しているとします。私がこれまでに理解しているように、最初にデータを arrayBuffer にバイトサイズ 32 (各ポイントのサイズ) で追加する必要があります。次に、そのバッファーを操作するために DataView オブジェクトに追加します。
なので、まだあまり持っていません。ここでは、オフセットを実装してヘッダーが占めるスペースを考慮する必要があると思います。ヘッダーからポイント数を取得したいと思います。
私が見たいくつかの例とその他の SO の質問から、一度に 32 バイトずつバッファをループして、xyzrgb 値を読み上げる必要があると思います。次のようになります。
……が、正直なところ、ここまで来てしまった情報をどうしたらいいのか分からなかった。私が見つけたいくつかの例では、ループは 1 種類の情報のみを持つバイナリ データを処理します (私の場合は、X 値しかないかのようになります)。
ポイントの新しいプレーンJavaScript配列を作成し、次のような値を追加する必要があります:
次のステップで Typed Arrays を Three.js bufferGeometries に直接転記する予定であり、[大きな] 余分な単純な JS 配列を保持するとオーバーヘッドが追加されるため、おそらくそうではありません。
次のステップ: ポイントを Three.js bufferGeometry に取得する
Three.js の bufferGeometry のポイントを使用して、ポイント クラウドをレンダリングします。これにより、前の部分から必要な出力が得られることを理解しています。
次のようになります。
これまでのところ、これはすべて非常にルーズなものであることはわかっていますが、暗闇の中で動き回っているだけなので、これをすべて書き留めておくと、考えるのに役立ちます.
three.js - THREE.js - BufferGeometry (ObjLoader) の頂点の座標
Three.js は初めてで、2 つの頂点の座標を取得する際に問題があります。サイズを計算して描画するには、x、y、z 座標が必要です。
私は ObjLoader を使用し、頂点の ID (インデックス) を正確に知っています - 11889 と 11877。
BufferGeometry のいくつかのプロパティを使用しようとしましたが、明らかに間違っています。だからここに私がとどまっている簡単なコードがあります。
同様の質問をいくつか読みましたが、私の問題に答えを適応させることができませんでした。座標を取得するにはどうすればよいですか? ありがとう!