モコモコフレンズの3DモデルをWindows 98のOpenGLで鑑賞する

まとめ: http://d.hatena.ne.jp/mjt/20150422/p1 From: http://www.columbia-games.com/3ds/mocomoco/

キャラクターデータ提供:見習い魔女とモコモコフレンズ

今日も懲りずにモコモコフレンズのキャンペーンで提供される3Dモデルを表示させてみる。一日一モコモコ

昨日使用したIrrlichtは、実はMSVC2005でもビルドできるため、Win9xでも普通に動く。というわけで、今回はこれを利用してWin9xのOpenGLで表示させてみる。当然ソフトウェアレンダリング
残念ながら、Irrlichtは256色パレットモードをサポートしていないので、今回は16bit colorで表示させている。

9x用のVESAドライバの導入

VESAを使用したドライバがWindowsに標準添付されたのは結構最近で、Win9x系では標準のドライバでサポートしているのはなんとVGA16色。このため、S3あたりの適当なビデオカードをエミュレートするか、専用のドライバの導入が必要になる。

幸いなことに、Win9x用のVBEドライバが公開されているので、これを導入することでVirtualBox上でも多色環境が使用できる。

Win9xの開発環境構築

開発環境構築といっても、単にVisualStudio 2005を導入すれば良い。たぶん2003でも行けるが未検証。
VisualStudio 2008以降はPEフォーマットが変更されているのでWin9xで動作するバイナリを出力することができない。

OpenGLは特にSDKを用意しなくてもビルドすることができる。DirectX8、9もWin9xで使用できるが、これらの世代のDirectXはソフトウェアレンダリングをサポートしていないので多分意味が無い。

Irrlichtでの表示

殆ど昨日の手順と同一 ...と、言いたいところだが、なぜかミチル師匠をassimpでCOLLADAに変換しても正常にIrrlichtでロードできなかった。ちょっとチビッコ連中フレンズよりも複雑でボーンも多いのが原因かもしれない。
というわけで、以下の手順で変換した:

  1. open3modでWavefront .objを出力
  2. 昨日と同様にテクスチャをpngに変換
  3. Meshlab( http://meshlab.sourceforge.net/ )でimport meshし、COLLADAを出力
  4. Meshlabで出力した方のCOLLADAを編集してテクスチャのパスを修正

Wavefront obj形式はメジャーなメッシュフォーマットで、ソフト同士のメッシュの交換に悩んだらとりあえずこれを選択すれば間違いない。obj形式はテキストデータなので編集やパースが容易という特徴も有る。