2018年03月25日

はじめてのLightwaveプラグイン開発

Lightwave2018が出ましたね。
中古で買ったまま眠らせていたLWをアップグレードしたので、しばらくLWをメインで使っていこうと思います。LWBrushに惚れた。
・・・そのはずだったのですが、ここ2週間ほどドリームキャストの自作ゲーム用のファイル出力の為のプラグイン開発に苦戦していました。やっと終わったー!うおおおお!

以下LWのプラグイン作成して気づいた事など。

・最近はPythonがナウいらしいのですが、Pythonはわからないので今回は無視。
・SDKのドキュメントの翻訳が9.3で止まっていますが、ほぼ変わってないです。ラッキー。
・SDKがC++じゃなくて純粋C。クラスが関数ポインタ等で実装。ナウくない(?)。
・ライブラリのバイナリは無いので、SDK使う時はSDK本体のビルドが必要。

最新ツールだからC++とかC#とかだと思っていましたが、CのみのSDKでした。ビックリです。
個人的にC好きなのと、今回でコールバック関数について理解できたので良かったのですが、今後を考えるならやっぱりPython覚えなきゃならないかなあと思ったり。

うん。これからよろしくLW。
posted by たあし at 23:53| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2018年02月28日

トライアングルストリップのシザリング

おお見事にカタカナのタイトルです。なんかこう賢くなった気がしますね。
This report is a scissoring for Triangle Strips on Dreamcast.

03/25追記:動画追加しました。



3DというのはカメラのXYZ座標を(0,0,0)として、カメラからの距離であるZでXとYを割ることで遠くにあるものが小さくなり遠近感が生まれるわけですが、ここで問題があります。
カメラをまたぐ、つまり(0,0,0)をまたぐポリゴンはどうなるのか、ということです。

結論:化けます。Zの絶対値は0に近づくにつれ小さくなりますが、0を跨ぐとまた大きくなります。

おまけにZもW(=Z)で割るので、カメラの後ろにあるはずが符号が反転してまたカメラの前に現れます。
まるでデルフィック領域に入ったようです。(気にしないでください)
最近のGPUはハードウェアでこれをうまく処理してくれるようです。うらやましい。しかし、ドリームキャストのPowerVR2にはこういう機能がありません。つまりソフトウェア実装する必要があります。

PowerVR2は、トライアングルストリップをサポートしています。というかほぼトライアングルストリップしかありません。なので、トライアングルストリップをカメラの前の平面でカット(シザリングというらしい)する必要があります。三回も言いました。
資料がなく途方に暮れていたのですが、こんなサイトがありました。

Patrick-Gilles Maillot
"tstrips.pdf" on that site is a scessoring algorithm for Triangle strips!
And there is C source!

このサイトの「tstrips.pdf」にトライアングルストリップのシザリング方法が紹介されていました。ありがたい!おまけにC言語での実装もありました。愛してる!
これをコピペもとい参考にしてシザリングを実装できました!ポリゴン化けない!最高!


描画関係がまとまったら動画上げます。といいつつかなりご無沙汰ですね。
でも結構まともな動画になるはずグフフ。
posted by たあし at 13:06| Comment(0) | ドリームキャスト開発 | このブログの読者になる | 更新情報をチェックする

2017年12月26日

MPEG1デコーダー0.01

ドリームキャストのゲームに自分の描いたアニメを載せるのが夢なので、前にも挑戦して挫折していましたが、少し進みました。
ドリームキャスト用MPEG1ビデオデコーダーです。
This is Mpeg1 video decoder for dreamcast. It's based "berkely Mpeg1 decoder".


フルスクラッチで作るのは無理だと悟ったので、有名な「berkeley MPEG1 decoder」を移植しました。
とりあえず全体を把握するためにコードを読んで、要らないコードをバッサバッサ削除して、なんとかテクスチャ上に絵を出すところまでいけました。うおおおお!

速度が全然追いついていないので、とりあえず高速化などしていきたいです。
形になったらソースをアップしようかな。


さてメインのゲーム作らねば。
posted by たあし at 14:27| Comment(0) | ドリームキャスト開発 | このブログの読者になる | 更新情報をチェックする