Admin * New entry * Up load * All archives 

C++&DirectXでプチプチゲーム制作をしています。文章力?気合で乗り越えるさ。

 

旧 ゲーム的な何か。

01«1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.»03
2009年02月の記事一覧

« 01月     03月 »

Posted on --:--:-- «edit»

Category:スポンサー広告

スポンサーサイト 

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

tb: --     com: --

go page top

Posted on 23:56:12 «edit»

Category:プログラミングとか

処理速度検証 

5000弱の弾

素晴らしいですね。このスクショでは5000個近い弾が表示されています。処理落ちなし。
あるサイトで見つけたコードを組み込んだ結果こうなりました。
先日話していたDrawPrimitiveUPの呼び出し回数もだいぶ減っています。(同じテクスチャを使いまわしているため、弾の表示に関して言うと約5000回→30数回)

ちなみに高速化前のプログラムではFPSが48程度しか出ませんでした。
どうやらタスクが増えれば増えるほど効果が増すみたいです。

コードが少々汚いのでそれさえどうにかすれば高速化完了ですね。遅くなったらまた新たな処置を考えればいいでしょう。

ちなみに上の弾幕ですが、方向弾と加速度の組み合わせだけで出来ています。ほかにも数種類似たのを作ってはありますがアップロードが面倒なので省略します。

ではでは。
スポンサーサイト

テーマ: プログラミング

ジャンル: コンピュータ

tb: (0)     com: (0)

go page top

Posted on 00:01:58 «edit»

Category:異境

高速化。 

なかなかシューティングゲーム自体の組み立てに入れないSignalです。
まぁ簡単に言いますと、処理速度が遅くて実用にならないわけです。
昨日の発言をすべてひっくり返した気がしますが、まぁまぁ。
今日はプログラム関係の話を。

この後エフェクトにしろ何にしろどんどん画像(ポリゴン)の表示枚数が増えるわけで。。ひたすら高速化です。

とりあえず今日はビルボードをカメラに向ける、なーんていうどうでもいい処理を省いて座標変換済みのデータ処理にしました。
まぁFVFの設定をD3DFVF_XYZからD3DFVF_XYZRHWにして微調整を加えただけです。
もっともこれで早くなったわけではないみたいですね。ついでに整理したのでコードは大分減りましたが。

今のところ大玉640個の表示が精いっぱい。それ以上だと家のデスクトップで処理落ちが出ます。おそらくスペックの低いPCだと300個ぐらいで悲鳴あげそうです。

たぶん原因としては、

テクスチャの重ね合わせの設定

theDevice->SetTexture( 0, g_pBillboardTexture[texType] );

theDevice->SetFVF(kD3DFVF_CUSTOMVERTEX);
theDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, vertex, sizeof(theCUSTOMVERTEX));

この処理を毎回繰り返しているからでしょうね。上の3つに関しては省略可能なので、そこを減らすだけで相当軽くなるはずです。
後やることとしてはDrawPrimitiveUPの呼び出し回数を減らすことでしょうね。
どうやらバッファにデータをいくらか蓄えてまとめてDrawPrimitiveUPで描画、という方法で呼び出し回数を減らせるみたいです。

大玉1500程度が処理落ちせずに表示されたら作業再開するかと思います。
ホントは弾の画像等は一枚にまとめてその一部を指定して描画、にすれば軽くなるんでしょうがその画像もありません。。
まぁ暫く。

ではでは。

テーマ: プログラミング

ジャンル: コンピュータ

tb: (0)     com: (0)

go page top

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