Box2DオブジェクトをなんとかDirect3Dで表示できるようになった。
凸多角形の三角形分割は簡単そうな情報を得たので、8角形まで手で描いてみて規則性を確認してみた。
これで規則性がよくわかったので、分割して表示する方法に変更してみた。描画はインデックスバッファで行うことにした。
その他のシェイプ、円・エッジ・チェインについても描画コードを追加した。円は64角形で近似している。FM-7も円は64角形で近似していたそうである。偶然の一致だ。
ただ今のコードだとあまりパフォーマンス的によくない気がする。インデックスバッファや頂点バッファをシェイプ単位でGPUに渡しているためだ。ほんとは頂点データをできるだけバッファに詰め込んで一気に転送するほうがよいように思う。そういうことをするための支援パラメータが描画命令には備わっている。