私はopengl-esについて知りません。私はアンドロイドアプリで.obj 3Dモデルの機能を使用する必要があります。 .objファイルには、Vertices、Texcoords、Normalsがあります。インデックスはなく、代わりに顔の要素があります。 誰かが.objファイルからインデックスを取得する方法を私に明確に説明できますか?.objからインデックスを取得
0
A
答えて
2
OBJが頂点と考えるものは、OpenGLが頂点と考えるものではないため、明らかに少し難しいかもしれません。見つけよう...
OBJファイルは、obj-vertices(v
)、テクスチャ座標(vt
)、法線(n
)のリストを設定します。おそらくこれをOpenGLに渡したいとは思わないでしょう(ただし、警告の終わりにスキップしてください)。彼らはただなど
あなたの積載コードがv1
、vt3
の意味を確立するための方法、OpenGLの頂点がf
ステートメント内で指定されている唯一の場所です。例えば。 v1/vt1/vn1
は、 "位置、テクスチャ座標、およびノーマルがリストに戻って指定されたOpenGL頂点"を意味します。
だから負荷に対する実行可能な解決策は、擬似コードである:
- は、OpenGL頂点インデックスに
v/vt/vn
トリプルから空のハッシュマップ、空OpenGLの頂点のリスト、およびそれ以降のインデックスの空のリストをインスタンス化します願書glDrawElements
へ; OBJファイル内 各トリプルについて
- に:それはそうならば、インデックスを取得し、あなたの要素のリストに追加し、OpenGLの頂点リストにすでに存在するかどうかを判断するためにハッシュマップに
- 表情。
- もしそうでなければ、次の利用可能なインデックスをトリプルに割り当てて(これはちょうど増分する数字です)、それをハッシュマップと要素リストに入れ、トリプルを結合してそれをOpenGL頂点リストに挿入します。
あなたはそれが時間の描画であなたのOpenGL-頂点リストに暗示性の高いランダムアクセスを最小限に抑えるために試みることによってそれよりも良いことをしようことができますが、途中で最適化しません。
警告:
あなたのGPUは頂点テクスチャは、(頂点シェーダ内すなわちテクスチャサンプリング)をフェッチサポートしている場合は、あなただけに、など、OBJ-頂点を蓄積した、OpenGLの直接トリプルを供給できますテクスチャマップを作成し、頂点シェーダで間接参照を行います。頂点テクスチャフェッチでは、テクスチャは実際にはランダムアクセス2次元配列になります。しかし、多くのAndroid GPUは頂点テクスチャのフェッチをサポートしていません(ES3をサポートしていても、それが表面的に必要とするものであっても、最大ゼロサンプラをサポートするよう指定できます)。
関連する問題
- 1. xtsインデックスから時間を取得
- 2. SQLクエリ - レベルと子インデックスから親インデックスを取得
- 3. インデックスから変更を取得できますか?
- 4. 特定のUISegmentedControlインデックスからフレームを取得しますか?
- 5. C++ STL Vectors:インデックスからイテレータを取得しますか?
- 6. アイテムのFirebaseListAdapterからobjキーを取得する方法をクリックします。 FirebaseUI
- 7. インデックスを指定してArrayListからelemntを取得
- 8. 埋め込みPython:インポートされたモジュールからfunc objを取得する
- 9. Doctrineエンティティのインデックスを取得
- 10. プッシュ後にインデックスを取得
- 11. フレックスタブを取得するインデックス
- 12. アンカー/ハッシュのインデックスを取得
- 13. div要素からインデックスを取得する
- 14. C#のリストボックスのインデックスからテキスト値を取得する方法
- 15. テキストの値からSelect Optionのインデックスを取得
- 16. web_reg_save_paramから特定のインデックス値を取得する方法arrray
- 17. 削除したアイテムのインデックスをバインディングリストから取得する
- 18. リストボックス内のハイパーリンクからインデックスを取得する
- 19. 文字列から大文字のインデックスを取得します
- 20. observableArrayからオブジェクトをインデックスで取得する
- 21. WKPickerInterfaceから選択したインデックスを取得
- 22. セット内の任意のインデックスから要素を取得する
- 23. Areablockのインデックスからオブジェクトを取得する方法は?
- 24. Java strutsはインデックスからプロパティを取得します
- 25. jqueryでgridviewから選択したインデックスを取得
- 26. MultiIndexのインデックス列から一意の値を取得
- 27. インデックスから行と列を取得するには?
- 28. Mootoolsは親から要素の子インデックスを取得します
- 29. jquery .each()関数からインデックス値を取得する方法
- 30. リストを中断しながらインデックスを取得する
Wavefrontオブジェクトファイルの仕様 – Raki
を読む必要があります。 http://www.martinreddy.net/gfx/3d/OBJ.spec –
はい、それはウィキペディアのようなものです。それを使って、顔からインデックスを取得する方法を知っています。顔はインデックスのみを使用して形成されます。 – Raki