2017-04-03 4 views
1

私はblenderとBufferGeometryからエクスポートしたthree.js jsonモデルファイルにテクスチャファイルを加えました。three.js jsonファイルからポイントを削除する

オブジェクトにノイズがあり、jsonファイル自体をエクスポート後に処理してクリーンアップしようとしています(いくつかの頂点を削除する必要がありますが、これはスムージングやデシメーションの操作ではありませんこの仕事の他の場所よりもjsonデータ)。

したがって、データの観点からファイルを操作する場合は、2つの質問があります。

  1. ポイントデータを削除する以外にファイルに何かする必要がありますか?私は対応するUVと法線があるはずですか?しかし、インデックスはどうですか?
  2. リストからポイントを削除するのではなく、nullに設定できますか?そこにデータがなくても、インデックスに何かを割り当てることができますか?
  3. 私は2で逃げることができないので、jsonファイルで各アレイのデータを一貫して削除することはできません。ブレンダーなどに戻らずにインデックスを再計算する方法はありますか?私はこれを行う必要があります - 私はインデックス配列を完全に削除できますか?

このポイントの削除は、現在サーバー側(Pythonは現在)のブラウザでは行われていませんが、これに対処するより良い方法があればブラウザで行うこともできます。また、モデルは約250k頂点でかなり大きいです

答えて

0

私はあなたの現在の方法(サーバー上の)を削除する正しい方法は、特に再インデックスを処理すると思います。

  1. すべての頂点アイテムについて、関連付けられた属性(法線、UV)を削除するだけでなく、インデックスを更新する必要があり、潜在的に大幅に変更する必要があります。いくつかの三角形の中で共有頂点を考える。あなたはどうやってそれについて説明しますか?それは私がブラウザに取り組もうとしているよりもはるかに難しい問題のように思えます。
  2. いいえ。頂点リストに値を設定する必要があります。メソッドが完全に破壊的にならないようにするには、必要のない頂点を無視するようにインデックスを調整することができますが、これは小さなタスクではありません。
  3. 描画モードには、THREE.TrianglesDrawMode,THREE.TriangleStripDrawModeTHREE.TriangleFanDrawModeの3種類があります。 THREE.TrianglesDrawModeの共有頂点の場合は、索引付けが必要です。インデックス作成を削除するには、すべての三角形を別々の頂点の三つ組(潜在的に重複データのLOTS)として定義する必要があります。 THREE.TriangleStripDrawModeTHREE.TriangleFanDrawModeの場合、いくつかの頂点は共有されますが、バッファ内の順序は重要です。これを行うためにジオメトリを設定することは、インデックスをリファクタリングすることと同じくらい難しいことです。

私は尋ねる必要があります:雑音の多い頂点を削除するのではなく、調整するのはなぜでしょうか?これははるかに簡単な作業で、はるかに簡単な数学で、インデックスの再作成について心配する必要はありません。

+0

あなたの質問に答えるために、ノイズリダクションと、モデルが複雑で、別のシステムによって生成されているため、モデルの一部を完全に削除して無関係と考える2つのことがあります。 生の3jsデータだけを手動で処理するすべてのものを再計算するのではなく、Blender経由でこれをスクリプト化するのが全体的に迅速かつ簡単でした。 3つのデータだけで試してみましたが、Blenderは全体的に最高の/最も速いオプションでした。既に完成したPythonの作業は、簡単にミキサーに戻すことができました。 – CoderChris

関連する問題