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

テクスチャサイズは2の乗数倍を徹底すべし

・いや、基本的なんでわかってるんですが、動いちゃったりすると1280x512とかで、見落としたまま素材上げられちゃったりするので。 ・DirectXベースだと一部のグラフィックボードでまともに動いても1280→2048に伸長されるのでUVがズレます。リソース管理を徹…

負荷と処理落ち

・最近のPCのCPU(マザーボード?)は処理負荷が少ないと出力を自動で絞ってしまう設定が入ってたりするため、処理負荷の落差が激しいゲームなどは、マシンスペックの割りに処理落ちを多く感じてしまう。 ・一定の負荷を常にかけ続けるか、設定でCPUの自動ク…

placement newの配列

・placement newの配列は先頭数byteをデストラクタが必要な個数として強制的に使用されるため、デストラクタが必要なクラスの配列確保には使用すべきではない。 ・代換案として必要な総サイズ分をAllocateした後にコンストラクタだけ叩くnewを作って配列数分…

テンプレートのインナークラスをメンバ関数の返り値として利用する時

template class A { class B { T t; }; B b; B Return0() { return b; } B Return1(); }; template typename A::B Return1(){ return b; }; ・クラス宣言内部に書くか、typenameで明示的にしないとVC++だと通らないっぽい。

仮想メンバ関数とキャッシュミス

・たとえばそのクラスの継承先がなんであるかを判定したい時に enum{ CLASS_A = 0, CLASS_B, }; class A { virtual int CheckClass() { return CLASS_A; } }; class B : public A { int CheckClass() { return CLASS_B; } }; というように気軽に仮想メンバ関…

TortoiseSVNの常駐を軽くする方法メモ

参考ページ:http://c-brains.jp/blog/wsg/09/08/10-153547.php

リポジトリのレイアウト

・最初にしっかりとレイアウトをしておかないと、ブランチとタグを切るときに面倒。 参考ページ:http://www.chibutsu.org/faf/WebWiki/column/SubversionBestPractices.html

音量調整

・とりあえずノーマライズ。 ・それよりデカくするにはオートマキシマイズを掛ける。日本のCD平均が-10dBらしい? ・コンプレッサーを掛けると可聴領域にあわせて上手い事してくれるので音が太くなる。が、女性ボイスとかは野太くなるので不可っぽい。

最終的な描画出力

・リソースを全て描き終ったあとに、フレームバッファにフリップする直前にテクスチャー化をライブラリレベルで常に行っておくと、解像度の変更や画面出力の調整など色々便利。 ・処理オチとの勝負になったら切るしかないけどね。

DrawIndexedPrimitiveの指定

・第二引数のBaseVertexIndexはIDirect3DDevice9::SetStreamSource()のOffsetInBytesから相対なのが正しいっぽい。 ・ミスってても一部GPU(主にGeforce)だと全転送がデフォルトなので表示されてしまうので注意。

シェーダーのバージョン

・vs_1_1+ps_3_0の組み合わせだと、一部GPUで正常にピクセルへの書き込みが行われないことがあるので注意すること。 ・vs_1_1+ps_2_0ないしvs_3_0+ps_3_0にすべき。

アウトプットのマネージメント

・出力したモノも管理できるようにタグ付けしておくべき。 ・サウンドなどは再生チャンネルに投げっぱなしでなく、IDタグやハンドルと関連付けて管理すべき。 ・描画もPIX使わないでも追えるようにしたい。