コードスペランカー

ゲーム開発日誌など

XNA

XNAではどこまでポリゴン描けるの?その2

XNA

前回の様子をタスクマネージャで観察するとCPUは非常に暇なことがわかった。 稼働率6%ぐらいの状態・・・・・ つまり、GPU周りがボトルネック!!・・・・のはず・・・一応FF11で遊べる程度の性能があるPCなんだけどなぁ(涙)。 モノの試しにDXライブラリ…

XNAではどこまでポリゴン描けるの?

ってわけで、実験 新規プロジェクトを作成して フィールドに変数を追加 BasicEffect effect; //デバグ用FPS表示 private SpriteFont _font; private double _fps; private double _updateInterval = 1.0; private double _timeSinceLastUpdate = 0.0; privat…

同一メッシュへのテクスチャの重ね貼

描画とEffect(HLSLについて)で同一メッシュに複数枚のテクスチャを重ねて貼るには、自分でシェーダー作るしかないぜ!見たいな事を言ったが、全然そんなことはなかった。 同じ場所に同じメッシュを違うテクスチャで重ねれば良いだけだった。

HLSL入門

基礎的なところから・・・ technique MyTechnique { pass MyPass { //ここに利用するパスを書く } }まずはテクニックの定義。 おおさっぱに言うと、こんなことするぞっていう定義になるだろうか? techniqueの中にあるpassっていうのが、具体的な手段の塊を…

描画とEffect(HLSLについて)

ポリゴンなんかを描画するために使っていたBasicEffectやAlphaTestEffectが何者なのかわかったっぽいのでメモする。 あれはシェーダーを使うためのインタフェースらしい。 そのシェーダーっていうのは、GPUにこんな感じで画面に書くんだぞっていうプログラム…

XNA4.0でのポリゴン描画その4

3.1でポリゴンを書くのに使っていたGraphicsDevice.RenderStateだが、がらりと変更されていて、4つのプロパティに分けられている。・BlendState アルファブレンド等の半透明処理に関する項目 ・DepthStencilState 深度バッファなどに関する項目 ・Rasterizer…

XNA4.0でのポリゴン描画その5

XNA4.0でのポリゴン描画その2で解決してなかった部分が解決したのでメモ3.1→4.0にあたって、3.1のBasicEffectをそのまま使えると思っていたのが間違えのようで、アルファテストの機能が丸ごと削除になり、代わりにアルファテストが使えるEffectであるAlphaT…

作り捨てても大丈夫そうなオブジェクト

int、floatといった基礎的なオブジェクトは大丈夫っぽい listとかはけっこう気を使う必要がありそう

XNAでの重たい処理

XNAというかC#全般でもいえるのかもしれないが newとガベージコレクションは結構重いのではと重いはじめてる 処理中にnewのあるメソッドを呼ぶと1回や2回ではそうでもないが DrawやUpdete内部で100回ぐらい呼ぶと、確実にFPSが下がるnewで作った領域をガベー…

ゲーム内でのテクスチャの作成

4.0への移行が面倒になったので3.1でやっとります。 テクスチャのアルファ問題まだ解決しないってわけで、3.1でやり始めて、問題が起きたのでメモしておくゲーム内でテクスチャを作るのに便利な RenderTarget2Dクラス これで新たなターゲットを作って Graphi…

XNA4.0でのポリゴン描画その2

今回は、被写界深度にちょっと癖があるようで 変なところでつまずいたのでメモする この二つの画像は、板ポリゴンにアルファ付テクスチャを張ったものを描画したがそうなのだが。 表示の順番を変えることで、アルファの反映が違うらしい。 両方とも深度バッ…

XNA4.0でのポリゴン描画その3

気がついたのでメモ ”new BasicEffect(_graphics.GraphicsDevice)”の処理はすごく重たいので使い回しをするべし。

XNA4.0でのポリゴン描画

とりあえず、単純にポリゴンを描画できるところまで来たのでメモする //頂点データの定義 VertexBuffer vb = new VertexBuffer (_graphics.GraphicsDevice, typeof(VertexPositionColor), _vatexData.Length, BufferUsage.None); //エフェクト宣言 BasicEffe…

XNA4.0

10月21日にXNA4.0の日本語化パックがMSから公開されたので、早速触ってみた。まあ、日本語化といっても、リファレンスやら、コメントやらが日本語になるだけで、本体は当然英語版と一緒のもの。 現在停滞中のゲームの見直しをするのにも、早速移植作業を…

描画の重さ

処理の方法や手順をいろいろ変えてみた結果 「表示する」という処理そのものの重さであるような印象を受けるたとえば、4頂点しかもたないビルボード1枚の描画と50頂点ほどのメッシュでも1つを描画する処理にかかる時間的なコストがあまり変わらない印象…

XNAでの描画処理3

前回の続き 前々回で誤解していた部分が判明 重たくなっている原因の処理は、プリミティブを利用したポリゴン描画部分であることが判明。具体的には、ポリゴンを描画するためのエフェクトを宣言している BasicEffect effect = new BasicEffect(Game1.graphic…

XNAでの描画処理2

前回での失敗を解決。 ゲーム内でポリゴンを作って使おうと思うと、設定の重複が激しそうなので、それっぽい板ポリゴンを用意して使うことにした。 これで、速度面は解決したと思う。これで、だいぶソースがすっきりした

なぞの境界線

ビルボードの実装をやってみて、うまくいっているみたいなので 透過PNG画像を張ったところ、透過部分と非透過部分の間に謎の境界線が発生した。この境界線はどうやらGraphicsDevice.Clearで塗りつぶしたときの色なようだが、なぜこんなことが発生するのかま…

XNAでの描画処理

3D関連は、やったことがないに等しい俺が挑戦!!XNAでの描画処理は一律Game1.Drawメソッドに記述することになる 3次元の処理を2次元に描画するためには、いくつかステップを踏む必要があって その中に、カメラの設定とか、材質の設定とかいろいろあって、…