Javaゲーム制作記

いろいろ作ってます  

スポンサーサイト

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

実用化に向けて・・・

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

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


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

しかし3D迷路の方と比べると結構な差があります。
高速化したほうでは90FPSが稀に出るくらいになってました。
テクスチャのパースペクティブ補正をしないと120FPSは出ますが、
歪みが恐ろしいことになるので注意です。
[ 2010/04/07 15:31 ] 3D | Comment(5)
おお、確かに早くなってます!
中々大変そうですが頑張ってくださいね。
拍手ですー。
[ 2010/04/07 22:30 ] [ 編集 ]
処理スピードが
速くなってますw
30FPSほど。

え?こちらでは130FPSくらい…w


確かに、3Dになってからピクセル単位の計算はしなくなりましたねw

整数で除算なんかすると、やはり誤差が大きくなりすぎてしまいますw

C言語では、intのほうが処理速度が速いと聞いてますが……。

なんかC言語では、
floatの……何算か忘れましたが、
floatの割った分のあまりの計算ができないんですよね><
エラーになるw



ところで、当たり判定の真中の柱はやはり円のあたり判定なんですか?




[ 2010/04/07 22:50 ] [ 編集 ]
>>HTRE さん
速くなってますか!
ありがとうございます。
よかったです。
大変ですが頑張ります!

>>PATOLE さん
なんと!
130FPSとはw
高速化に上限はないのでひたすら進めるだけです!
>>C言語では、intのほうが処理速度が速いと聞いてますが……。
intは整数ですもんねw
どの言語でもfloatやdoubleよりも速いと思います。
ちなみに整数を2で割るときは、
変数名>>=1で2で割ることができます。
三倍ほど高速に(ビット演算なので)。
>>floatの割った分のあまりの計算ができないんですよね><
なるほど、%演算子ですね。
試してみましたがJavaではエラーにはなりませんでした。
C(++)をやっていたときはエラーになった記憶がありますw
>>ところで、当たり判定の真中の柱はやはり円のあたり判定なんですか?
そうです!
移動範囲がxz平面なので自分の位置をpos、柱の位置をhposとすると、
if(sqrt((pos.x-hpos.x)*(pos.x-hpos.x)+(pos.z-hpos.z)*(pos.z-hpos.z)) < 半径)
で判定が出来ます!
円(球)は楽でいいですw

そろそろ新しいCGをうpしようかな・・・
[ 2010/04/08 13:29 ] [ 編集 ]
3Dフィールドすごいですね!
ここからFPS(シューティングゲームの方)に発展できそう!

それから、自分のヘボいPCの場合だと、30FPSという怖ろしいことに……。
これは明らかにマシンの性能不足ですよね;
やっぱり新しいPCが欲しいな~ww


[ 2010/04/09 01:33 ] [ 編集 ]
>>二つの、うさぎ さん
ありがとうございます!
>>ここからFPS(シューティングゲームの方)に発展できそう!
実はFPSをイメージしながら作ってたり。
できるかなぁw
>>それから、自分のヘボいPCの場合だと、30FPSという怖ろしいことに……。
>>これは明らかにマシンの性能不足ですよね;
うーん、自分も他に何かをやっていたりすると急にFPSが落ちますからねぇ・・・
ただできるだけユーザーの環境を限定せずに遊んでもらいたい!
ので、もっと高速化させたいです。
まだまだ改善の余地があると信じてますので。
[ 2010/04/09 16:00 ] [ 編集 ]
コメントの投稿




※URL記述の際はttp://としてください


プロフィール

saharan

Author:saharan

Twitter
検索フォーム


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