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) | ドリームキャスト開発 | このブログの読者になる | 更新情報をチェックする

2017年12月23日

ロボファイト

以前からお世話になっているプログラミングの師匠に、使えるものは使ったほうがいいとアドバイスをもらったので色々吹っ切れました。

フルC言語(+アセンブラ)フルスクラッチで全部作るぞー!と意気込んでいたのですが、やはり今の自分のレベルでは無理だと分かり、KallistiOSを使いC++で書きなおしています。やはり圧倒的ですね。
といっても3Dゲームなど作ったことがないので、セガの「ゲームプログラマになる前に覚えておきたい技術」を読みながら、サンプルのロボファイトを丸パクリ中です。

dc3dtest01.png
14章ぐらいです。ドリキャス上で動いてます。
モデル差し替えまで行ったら動画をアップしようかと思います。

カメラ回りでどうもうまくいかなかったのですが、KallistiOSの行列演算の関数「mat_transform」がうまく動いていなかったようです。うそん。4次元ベクタを返すはずが、3つ目の値がうまく帰らず。引数が正しくないのでしょうか?
とりあえずMarcusさんのサンプルから似たような関数を引っ張ってきました。もうちょっと調べようかな。

来年は2018年ですね。ドリームキャスト20周年です。
ということは二作目のリリース予定日は11月27日で決まりですね。ウフフフ。(無理)
posted by たあし at 22:23| Comment(0) | ドリームキャスト開発 | このブログの読者になる | 更新情報をチェックする