(WebGL初学者です..)
やりたいこと
blenderでエクスポートした3Dモデルの座標データにパーティクルを撒き散らす
やろうとしている流れ
- blenderで3Dモデルの座標データをglb形式でエクスポート
- three.jsのGLTFLoaderでglbファイルを読み込む
- 読み込んだglbデータから、モデルの3D座標を取得
- 取得した座標にパーティクルをセット
現状
- 読み込んだglbデータから、モデルの3D座標を取得
- 取得した座標にパーティクルをセット
こちらで躓いてます(想定してる形状になりません)
エラーは出てないので、そもそもの考え方のアドバイスをいただけると助かります。
■質問1
- 読み込んだglbデータから、モデルの3D座標を取得
こちらは以下の方法で認識相違ないでしょうか?(それっぽい配列は取得できているようです)
const gltfLoader = new GLTFLoader(); gltfLoader.load(hoge.glb, (gltf) => { const model = gltf.scene; const mesh = model.children[2]; const geometry = mesh.geometry; const position = geometry.getAttribute('position'); const data = position.array; // gltf (BufferGeometry) の座標データ(?) });
■質問2
- 取得した座標にパーティクルをセット
こちらは以下の方法で実現可能でしょうか?
const scene = new THREE.Scene(); const geometry = new THREE.Geometry(); for (let i = 0; i < 3000; i++) { const vertex = new THREE.Vector3(); vertex.x = ???????????; // glbの座標データをランダムに代入したい vertex.y = ???????????; // glbの座標データをランダムに代入したい vertex.z = ???????????; // glbの座標データをランダムに代入したい geometry.vertices.push(vertex); } const material = new THREE.PointsMaterial(); const particle = new THREE.Points(geometry, material); scene.add(particle);
以上、よろしくお願いいたします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/16 17:54 編集
2020/02/16 21:40
2020/02/17 23:02
2020/02/18 03:25