コードスペランカー

ゲーム開発日誌など

2010-01-01から1年間の記事一覧

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次元に描画するためには、いくつかステップを踏む必要があって その中に、カメラの設定とか、材質の設定とかいろいろあって、…

ArrayListを使った自分自身の削除

C#

最近C#をはじめたので、そっちの勉強ArrayListにいっぱい詰め込んで 詰め込んだものを順番に処理 そして、今処理してるやつをArrayListから削除したいと思ったときに foreach (Object it in obj) { obj.Remove(it); } とかやると、エラーが出て使えない。 そ…

.net Frameworkのお勉強02

今度はボタンをつける testForm.rb require "mscorlib" require "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" require "System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3…

.net Frameworkのお勉強01

まずはフォームを作る。 まぁ定番なので、フォーム用クラスをつくってそいつを呼びだそう。 testForm.rb require "mscorlib" require "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" require "System.Drawing,…

IronRuby 1.0

MS謹製のRubyであるIronRubyのバージョン1がちょっと前に公開され、自由にDLできるようになった。 これで手軽にRubyでWindowsアプリを作れるぜ!と思っているのだが、.NET Frameworkという壁が大きく立ちふさがる。元々RubyはGUIで動くことが前提の環境育ち…

の謎

Rails2.3.5を触っててERBで書かれた部分の謎のコード <%=h hoge %>は、ここに書いたRubyコードを実行せよは、ここに書いたRubyコードを実行して結果をHTML内に挿入しろ他の仕様は無いはずのeRubyなのですが、ここを見て謎が解けました。 <%= h hoge %>という…

scaffoldでつくったアプリの消し方

いろいろ作って、失敗してと繰り返しているわけですが 適当にscaffoldしたやつを消す方法をGoogle先生に教えてもらったので書いておく >script/destroy scaffold productこれでOK!!しかしまぁ、1系の情報が、けっこうな割合で役立たずになっていて、買った本…

Railsでアプリケーションを作ってみる

ってわけで、お勉強、お勉強 まずは適当にプロジェクトを作る >rails test ・・・中略・・・ >cd testデフォルトの設定なので2.3.5ではデータベースはSQLite3だ。でアプリケーションの雛形を作るコマンドを入れる >ruby script/generate scaffold person nam…

SQLite3について

>gem install railsではデフォルトのDBであるSQLite3がインストールされていないようで DB周りがまったく動かないことが判明 最終的にはMySQLになるんだからいんでは?なんて考えたが、気持ち悪いのでRubyで使えるSQLite3のインストール・・・といっても >ge…

Ruby 1,9 の日本語処理(マジックワード)

何度も忘れるので、ここに書いておく UTF-8の場合 # -*- encoding: UTF-8 -*- Shift JIS # -*- coding: shift_jis -*-

MSが作ったRuby

ってわけで、.NETをRuby経由で使えるようにしてくれているようなので遊んでみる。しかし、オレには.NETの知識などくそも無いわけだが、Google先生という強い見方がついているので恐れず突き進む。この記事を書いている時点ではIronRubyより1.0-rc2がダウンロ…

しょうがないから1.8.7

1,9,1でのインストールに失敗したので、1.8.7でやってみる。 バイナリはActiveScriptRubyを使用した http://arton.hp.infoseek.co.jp/indexj.htmlまずはgemのアップデート >gem update --system続いてRailsのインストール >gem install rails -y最後に開発用…