Javaゲーム制作記

いろいろ作ってます  

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | Comment(-)

実用化に向けて・・・

Poly3Dを高速化していて分かりましたが、
「ピクセル単位での実数演算は禁物」
です。
floatをintにキャストするだけでもかなりの時間がかかります(640*480の場合307200回以上)。
実数除算なんか以ての外です(実はそれをやっていたりするわけですが・・・)。
それともう一つ
「ビット演算子やシフト演算子をうまく使う」
これも重要です。

・・・とまあ上記のことを踏まえたうえで高速化した・・・
つもりだったんですがあんまり速くなってないですねw
そのデモがこれです↓


(画像をクリックで(ry)(リンク切れ)

しかし3D迷路の方と比べると結構な差があります。
高速化したほうでは90FPSが稀に出るくらいになってました。
テクスチャのパースペクティブ補正をしないと120FPSは出ますが、
歪みが恐ろしいことになるので注意です。
[ 2010/04/07 15:31 ] 3D | Comment(5)

ソフトウェアレンダリングの革命

今まで機能重視で作ってきたPoly3Dですが、ゲームに使うには重すぎます。
(自分の環境ではホームページの3D迷路は60FPSがギリギリでした)
あらゆるJavaのパフォーマンス向上テクニックを使いましたが
実際に高速化された時間は1~2msという・・・(0.001~0.002秒)
ならばと思い一度全部作り直してみましたがやっぱり変わらず・・・
これがソフトウェアレンダリングの限界か・・・

・・・と思っていたんですが。

なんと、こんなものを見つけてしまいました。
Off-Road Rally


すごいです。
Javaのフルポリゴン3Dレースゲームです。
最初はJOGLかなんかを使ってると思ってたんですが
どうもソフトウェアレンダリングっぽいです。

画面サイズはDirectX標準の640*480、それでも問題ない速度で動いています。
すごいなぁ、このレンダラー作った人誰だろう・・・
と思っていたら、Anfy3DAPIを使っているっぽい感じです。
で、もちろんAnfy3DAPIについても調べてみました。
そしたらコアの部分のクラス数が3つだけだったんです。
余計なアクセスやオブジェクトの生成がないため、高速に動作していたのです。
オブジェクト指向の意味が薄れてしまうような気もしますが、API内だけなので多分問題ないです。


P.S.
後で気付きましたが、Anfy3DAPIではなく、jPCTを使っていたことが判明しました。
こっちはもっとすごい・・・
[ 2010/04/02 15:19 ] 3D | Comment(3)
プロフィール

saharan

Author:saharan

Twitter
検索フォーム


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。