.OFFファイルでエンコードされた3Dメッシュがあります。頂点、これらの頂点の座標、および接続のみが符号化されます。いくつかの論文では、3Dメッシュを単位境界ボックスで正規化することができます。これは本当に何を意味しますか?私たちはこれをどうやってできるのですか?ユニット境界ボックス内の3D非着色メッシュを正規化する方法
-1
A
答えて
1
つまり、メッシュは、サイズが1
の軸合わせキューブによって定義されたスペースに収まることを意味します。たとえば、角:A(-0.5,-0.5,-0.5)
とB(+0.5,+0.5,+0.5)
で定義されます。すべての使用の頂点を通じてだから、ループの実際のバウンディングボックスに
を取得し、各軸A0(xmin,ymin,zmin),B0(xmax,ymax,zmax)
座標最小値と最大値を覚えて
:これを達成するために
。
ノーマライズバウンディングボックス
A,B
(線形補間によって)だから、再び各頂点をループし、それらを再計算します。たとえば、次のようになります。
Vertex[i].x=A.x + (B.x-A.x)*(Vertex[i].x-A0.x)/(B0.x-A0.x) Vertex[i].y=A.y + (B.y-A.y)*(Vertex[i].y-A0.y)/(B0.y-A0.y) Vertex[i].z=A.z + (B.z-A.z)*(Vertex[i].z-A0.z)/(B0.z-A0.z)
問題はアスペクト比を考慮しないことです。
scale = min((B.x-A.x)/(B0.x-A0.x)), (B.y-A.y)/(B0.y-A0.y), (B.z-A.z)/(B0.z-A0.z)) Vertex[i].x=(Vertex[i].x-0.5*(A0.x+B0.x))*scale+0.5*(A.x+B.x) Vertex[i].y=(Vertex[i].y-0.5*(A0.y+B0.y))*scale+0.5*(A.y+B.y) Vertex[i].z=(Vertex[i].z-0.5*(A0.z+B0.z))*scale+0.5*(A.z+B.z)
私は右のSO/SEエディタでそれを得て、私は間違いをしなかった希望:ケースでは、メッシュは、あなたがこれを変更する必要があり、それを維持する必要があります。新しい境界ボックスのサイズ(最大のメッシュ軸のサイズが新しい境界ボックスに正確に収まる)を超えていないmax
scale
を計算し、古い境界ボックスの中心が新しい境界ボックスの中心になるように、メッシュを再スケーリングします。一部のメッシュには、独自の変換行列も含まれています。その場合、頂点をそのまま残して、この変換をこの行列に直接エンコードすることができます。しかし、通常、メッシュの正規化が必要な場合は、いくつかの頂点の操作でそれを必要とするため、頂点を変更する方が一般的です。
関連する問題
- 1. イメージ内の境界ボックスを埋める方法は?
- 2. Python:3D非構造メッシュを2Dに投影する方法は?
- 3. Three.jsで3Dメッシュを2Dシェイプに「平坦化」する方法
- 4. 非常に少ないユニットでテストコードをユニット化する方法
- 5. 3Dメッシュをラスタライズする方法は?
- 6. Googleマップを計算する方法Javaの境界ボックスのズームレベル
- 7. Java - より大きな地理的境界ボックスから始まる内部境界ボックスを生成する
- 8. 着色された3Dプロット
- 9. Pythonの正規表現の境界
- 10. Python3の正規表現の境界
- 11. m色のn個のボックスの着色
- 12. Androidの単語境界正規表現
- 13. 実世界のデータをキャンバス内で正規化するwpf
- 14. XNA 4.0で境界ボックスを作成する方法は?
- 15. 正規表現ワード境界(バックスペース)テストケース
- 16. 単語境界正規表現問題
- 17. 境界ボックス内の交点を計算する
- 18. GWTテキストボックスの境界線の色を変更する方法
- 19. AndroidでEdittextの色の境界線を変更する方法
- 20. テキストエリアの境界線の色を変更する方法:focus
- 21. フォームの境界線の色を変更する方法C#?
- 22. カードビューで色付きの境界線を設定する方法
- 23. 反復するmysqlデータを非正規化する方法は?
- 24. データフレームのデータを非正規化する方法
- 25. 非正規化IEEE
- 26. 境界線の幅をゼロ幅の要素に適用すると、境界線の色が変化する
- 27. Elasticsearchのデータを非正規化する
- 28. 2色の境界線
- 29. Qpainterを使用して境界線を作る方法も黒色の境界を持っています
- 30. ユニティ3Dのパースペクティブモードのカメラ境界