.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. 3DオブジェクトのThreeJS 2D境界ボックス
- 2. ノード内の正規表現の境界
- 3. Tkinter Buttonの境界を着色する方法はありませんか?
- 4. イメージ内の境界ボックスを埋める方法は?
- 5. 境界ボックス
- 6. Python:3D非構造メッシュを2Dに投影する方法は?
- 7. SceneKitオブジェクトがメッシュの代わりに境界ボックスで衝突する
- 8. 非常に少ないユニットでテストコードをユニット化する方法
- 9. Three.jsで3Dメッシュを2Dシェイプに「平坦化」する方法
- 10. 3Dメッシュをラスタライズする方法は?
- 11. Googleマップを計算する方法Javaの境界ボックスのズームレベル
- 12. Matplotlib:x-ラベル境界ボックスの幅を指定する方法
- 13. Pythonの正規表現の境界
- 14. Python3の正規表現の境界
- 15. Java - より大きな地理的境界ボックスから始まる内部境界ボックスを生成する
- 16. 着色された3Dプロット
- 17. m色のn個のボックスの着色
- 18. 実世界のデータをキャンバス内で正規化するwpf
- 19. Androidの単語境界正規表現
- 20. XNA 4.0で境界ボックスを作成する方法は?
- 21. 正規表現ワード境界(バックスペース)テストケース
- 22. 単語境界正規表現問題
- 23. 境界ボックス内の交点を計算する
- 24. テキストエリアの境界線の色を変更する方法:focus
- 25. AndroidでEdittextの色の境界線を変更する方法
- 26. フォームの境界線の色を変更する方法C#?
- 27. GWTテキストボックスの境界線の色を変更する方法
- 28. UIviewの境界線の色を変更する方法は?
- 29. 反復するmysqlデータを非正規化する方法は?
- 30. データフレームのデータを非正規化する方法