モデルビューア用にColladaローダーを作成しました。
今すぐ書くと、すべての頂点とインデックスをループし、メッシュをレンダリングできるようにインデックスと頂点バッファを作成します。
モデルが三角測量されていない場合、2つのオプションがあります。インデックスがバッファに書き込まれるときにインデックスを処理することもできます(つまり、インデックスを計算して追加し、三角形を作成します)。
または、バッファを書き込む前にメッシュ全体を三角測量し、バッファシステムをそのままにしておくこともできます(メッシュは事前に三角測量されていると想定されます)。
事前にモデルを切り捨てるには、リスト全体をリンクリストループにロードし、新しいインデックスを挿入して4つ以上のポリゴンを三角形にハックする必要があります。
メッシュを作成するときに三角形分割した場合、4つ以上のポリゴンの書き込みを拒否し、それらを別のバッファーに入れ、そのバッファーに4つ以上のポリゴン全体が含まれているときに、三角形分割して新しいインデックスを書き込む必要があります。
これにより、基本的に、4つ以上の三角形に遭遇するたびにのみトリガーされる別のforループが追加されます。
これは私がこれまでに書いた中で最も複雑なことであり、どちらの方向がより効率的になるかについて頭を包むのに非常に苦労しています。
1つは、メッシュ全体を複製して処理できるようにすることで、使用しているメモリの量を2倍にすることです。もう1つは、4つ以上のポリゴンに遭遇したときにのみトリガーされるネストされたforループを含みます。
両方を実際に作成してテストせずに、2つのオプションの複雑さを測定する方法について、誰かがアドバイスを提供できますか?