【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

pc01_02 for Windows Mobile

n7shi2009-10-13


id:n7shi:20091011で移植したid:m107さんのmikotoローダ(pc01_02)をOpenGL ESに移植してWindows Mobileで動かしました。Windows XP/Vista/7(32/64)とWindows Mobileに対応したバイナリとソースを置いておきます。

いくつか問題があります。あまりに処理が遅いため背景の描画は省略して真っ黒です。陰面処理が不完全なためポリゴン欠けが多発しています。フルバージョンのOpenGLでは同じコードできちんと描画できていることから、Vincent ESの制限だと思われます。何か特有の描画順序等があると思われますが、現段階では不明のため、止むを得ず不完全なまま公開しています。

移植手順

まずSDL依存部分をGLUTに置き換えました。そこからフォークさせてOpenGL ESで動くように足りない関数を補ったりして移植しました。元のGLUTを残しておいたのは、独自実装して補った関数をフルバージョンのOpenGLでも動作確認するためです。参考までにES版と同じコードをフルバージョンのOpenGLGLUTで動かしているソースとバイナリを置いておきます。

GLUT版でもES版と同じ独自実装のglBegin()やglEnd()を用いていますが、ポリゴン欠けもなく正常に描画できています。Vincent ESでは処理を軽減するために陰面処理が一部省かれていると思われます。

ちなみにid:n7shi:20091012で書いたようにテクスチャのα値が0になっていることに気付かずにハマりました。