[かみやんのたわごとへ戻る]


counter

ProjectDP

 今日は、全国の3D野郎が集う3D Fellows Conference98だね。今は、東京への出発前だが今から楽しみ。俺の出展作品は、自作3Dライブラリだ。その名もProjectDP。これは、去年の夏休みに作ったやつで、リリースの時期を逸して今やっと公開だ。

ProjectDPを一言で言えば、DirectDraw+Software3Dライブラリだ。

DirectX5に付属のDirect3Dは、ドライバのバグが多くてすべての環境できちんと動かすことは至難の業。まぁ、ハードウェアごとにある程度、出力に差が出るのは仕方がないとしても、HELぐらいはマトモに動いてほしい。でも、DirectX5のDirect3DのHELは、半透明やアルファグローは効かない。OpenGLは、開発当時、俺のグラフィックカードのViRGEではハードウェアが使われずソフトウェアエミュレーションしかない。マイクロソフトが実装したOpenGLのソフトウェアエンジンは死ぬほど遅い。そんな状況に、嫌気が差し俺は自作ソフトウェア3Dライブラリを作ることを決意した。

とりあえずの目標は、PlayStation並みの機能をめざした。DOS時代、Windows3.1、95時代に作ってきた拙作ライブラリMethodのポリゴン描画機能は、

という、今ではショボイ機能しかなかったが、ProjectDPでは、大幅に強化し、

となった。高速化にあたっては、DrawPolygon()という関数の下に、160通りのポリゴン描画関数を作った(詳しくはヘルプ参照)。

ProjectDPは、ラスタライズステージを担当するDpLowと、ジオメトリ&ライティングを担当するDpHighから成る。DpHighは、まだ、開発中で、未実装の部分も多いが、以下の機能がある。

などだ。DpHighを使って作ってみたサンプルがこれだ。

DpFace.gif (22028 バイト)  マルチカラーライトソースを使って、sPatchでモデリングした鏡島レイカを、Xファイルで読み込み、岩のテクスチャを平行マッピングで投影して、RGBの3色の平行光源を上・左上・右下から照光したものだ。

いまさら...?!

 ProjectDPは、開発当初、俺のViRGEが半透明が効かなくて悔しくて作ったが、今のマシンは、PII-300+ATI RAGE PROで、半透明もバリバリ。Direct3D HALを使えば、ProjectDPより高速だろう。しかし、Direct3Dのドライバのバグは、未だ絶えず、すべての環境で動作するプログラムを作るのは難しい。OpenGLにしてもOpenGLに対応したグラフィックカードを持っていない人は、満足行かないだろう。

 下位のライブラリ(OpenGLやDirect3DのDrawPrimitive)に透過な上位ライブラリを自作している人なんかは、下位にDpLowを使ってくれると嬉しかったり。

 まぁ、何よりも、根っからの3D野郎な俺としては、すべて自分でやらないと気が済まないとか、こういうことやっていて楽しいとか、そういう気持ちで作ってます。まぁ、Methodのときもそういう気持ちでやっていて、友達とかたくさんできたし、ちょっとは有名になったし。って感じですか(あ〜、かなり言い分けモード)。

 ちびちび、デモとかゲームとか作れたらいいなと。

Download

ダウンロードは、「かみやんのホームページ」「作品紹介」にて。


[かみやんのたわごとへ戻る]