引っ越し


引っ越し確定

引っ越し日時が確定しました。来週11日に朝から引っ越しです。
荷造りも今までやっていたのですが、業者からの部材で潤沢になったので、本格的に詰める作業が開始です。

サーバーも停止になるし、録画サーバーも止まるし、
果たして次、さっくりと復活できるでしょうか…。ちょっと心配です。

CEDEC 3日目感想

さすがにファミ通には、Imagire Dayの部分は載っていないようで。
VF5の話もあったのに、中身は専門的で除外したのか。

難しいところたくさんで、100%理解できた部分は数少ないですね。
NormalMapのFilteringについては、ちょっとやってみてもいいかなって感じが。

それでも昨年の、CubemapからBRDF変換するコードを勉強しなきゃって感じで、実装までは長そうです。

絆創膏

この絆創膏がいいらしい。
結構値段するらしいが、治りが早いなら出す価値がありそう。

http://www.jnj.co.jp/consumer/bandaid/products/medicaltools/power_pad.html


CEDEC


CEDEC行ってきた(2日目)

今日のメインは、『もうちょっと肩の力を抜いてゲームを作ってみたらどうだい?』という趣旨のセッション。

次世代といっている現行ゲーム機ですが、要素を絞って挑戦を避けて、
別の場所に力をかけるなり、短期間開発するなりしたら?ってメッセージ。

なかなか定員いっぱいにならないなと思っていたら、場所がすごかった。安田講堂とは…行ってみてびっくり。
今回のCEDECは東京大学で開催だけど、悪くない。今まで参加した中で環境一番いい気がする。

なかなか社外の知り合いが増えない。今年は特にそんな感じ。
気付けば社内の人と名刺交換が8割占めてる…。

明日は、Imagire Day。
今日とは打って変わって最新・最先端をいく技術の数々。
自分にはその場理解できないとは思うが、楽しみです。


Monster-X買った


Monster-X買ってきました。

PV4欲しい!!といっていましたが、見つけたのはMonster-X。

友人からは、高嶺の花を狙うよりも今見つけた同等のモノを手に入れた方が幸せになれるよ、との助言もあり買っちゃいました。
まだ数枚は在庫あるみたいでしたし、ネット情報でもそこそこ色々な店で在庫があるみたいだし、急ぐ必要はなかったのかもですが。
ただ、これすでに生産終了らしいんです。

問題は手持ちの環境でD4以上出力できる機器がないので動作未チェック。
別PCからコンポーネント経由で注入しようとしたら、色々とトラブルでて、起動不能に。そんなわけで、偽テスト環境まで奪われてしまった。

会社の後輩から、近日WiiでテストしてOKもらったのでまずはそれで。
360/PS3とか無いとハイビジョンの入力テストは難しいですねぇ。
さっさと、HDDレコーダを買えばいいんですけどね


Spamassassinメモ


SpamAssassinの学習方法メモ

たくさんのスパムと、誤認識してしまうメールを放置していたので、
そろそろ学習させてみようと思います。

そのためのメモ。

上記のスクリプト走らせれば、学習される仕組みになっています。

hamは、Spamと誤認識したメールを学習させるモードで、うちでは、missJudgeフォルダにそういったメールを移動させているようにしています


XSI ModTool使ってみた


XSI ModTool使ってみた

Gamefestでは散々XSIModToolを推すので、早速ダウンロードしてインストールしてみました。

モデラー自体初心者なのでまずはサイトからpdfダウンロードしてきて、
チュートリアルを進めてみました。

そしてようやく簡単なモデルを作ってみることまで出来ました。
サンプルでもある壺と象まで到達。
最後に .xファイルをexportしてみようとしたらXSIが落ちました(涙
どうやらシーンファイルを保存してから exportしないといけないようです。

一番手こずったのは、ドキュメントは日本語、ソフトは英語のギャップと、カメラ操作でしょうか。つい、Alt押しながらカメラ移動やってしまう・・・


Gamefest


Gamefest1日目

今日はGamefestに参加してきました。

まず感想として、豪華なレセプションパーティでした。
初めて、立食で(食べたい)食べ物が無くならない状態で、幸せでした。

講演内容もグラフィックスに関して大半しめていたのですが、なかなかおもしろかったです。

DX9とDX10で相当変わっているなぁというのと同時にDX10でパフォーマンス意識するなら、描画エンジンは共通化できないなと思いました。

今月末にはCEDECもあるので、ここでDX関係の話は聞いておきたかったので予想通りの収穫でした。

明日はXNAメインの1日です。


ジェネリックプログラミングの練習2


ジェネリックプログラミング

今日は以前から気になった部分をやってみました。テンプレートで型1から型2への変換が可能かどうかをチェックするという代物です。これにより変換が可能だったら〜というプログラミングが可能になります。

個人的にはこれから多用しそうな予感。

[code lang=”cpp”]
template< class T1, class T2>
struct can_convert {
static yes_type check(T2);
static no_type check(…);
static T1 makeTo();
enum {
  value = (sizeof(check(makeTo())) == sizeof(yes_type))
};
};

class Base { };
class Derived : public Base { };
class Test { };

int main() {
bool canConv1 = can_convert<Derived*, Base*>::value; // true
bool canConv2 = can_convert<Test*, Base*>::value; // false
bool canConv3 = can_convert<int, float>::value; // true (with warning

return 0;
}
[/code]


魔界の前に


しりあらいぜーしょん

どうやらBoostのserialization以外にもC++でシリアライズ目的のライブラリがある模様。

その名も s11n.net という。
こちらも変わらずtemplateを駆使しているみたい。
そして日本語の解説サイトも見あたらないな。

これもちょっと覗いてみるか。Boostに比べれば可愛いくらいのtemplate使用な感じだったし。


いざ魔界へ


Boost魔界へ

以前のリフレクションシステムは、会社でのソースを見た後だったので、
恐ろしく構造が似ていました。いやー、見てもらったらパクリx2 言われてしまった。
実装はtemplateメインにしたのでちょっとは違うのですが。
使うユーザー側にとっては定義の仕方一緒だし…。

そんな中最近のBoostにはserializationが入ったらしいです。
これを使えばシリアライズできるじゃん!ということです。
ただシリアライズはできるもののフィールドに対するメタ情報を扱うわけではないです。

そういう背景もあって自分でなんとか作ってやろうじゃないかと勉強中です。

そのためにはBoostの該当コード理解しないとと思ってますが、魔界です…

正直何やってるかわからない。template地獄。実行させながら追ってみるもののやはりさっぱり。

出直してきます・・・・・ orz

とりあえず自分に足りない要素として、

  • メタプログラミングに対する理解が不十分
  • templateによるジェネリックプログラミングの理解

とくに後者は多段のtemplateが使えるようにならなきゃ話にならないですね。


DirectX10 (D3D10)


Tutorial04

今回はTutorial04を見てました。このサンプルは立方体(キューブ)の表示サンプルでした。
前回のTutorial02の部分に比べて増えたところと言えば、IndexBufferを作っているところです。
ほかには、シェーダーで透視変換させているところ。大きく変わった部分はないです。

IndexBufferもVertexBufferと同じくBufferDescriptionとSubresourceDescriptionの2つを設定して、デバイスのメソッドで作成するだけです。

変更になってる部分はデータをどう使うか指示するところ、
「D3D10_BIND_INDEX_BUFFER」「D3D10_BIND_VERTEX_BUFFER」の違いくらいです

描画する前には以下のように

各バッファをデバイスに設定し、プリミティブタイプを指定しておきます。この辺が若干以前と変わっています。
前はDrawPrimitive系でプリミティブタイプを指定していました。

また、インデックス用のフォーマット指定(D3DFMT_INDEX16/32)がありましたが、
どうやら今回からは統一されたようです。

気になったのはこのサンプル、インデックスに32ビット指定してます。
従来は16ビット(WORD型)を基本的に使っていたのに、このように変更となるとデバイスの最適化もこれからは32ビットインデックスが主流となっていくんですかねぇ…。(※ 現状のデバイス(当時)は16ビットインデックスに最適化されています)

シェーダーに対して、各マトリックスをセットして、パスを回しています。
見てわかるように描画のDrawIndexedの引数が減っています。すっきりしましたね〜。あとDX9世代でBegin/BeginPassで行っていたパスを回す処理が変更になっています。テクニックのDescから値を取得して、回数と使用指示を設定しているようです。

この辺は使う側としてはあまり変更がないといってもいいでしょう。
あまり大きな変更ではないように思います。

気になったのは今までシェーダー定数を書き換えたときには、CommitChangesなどのメソッドを呼んで確定させていた気がしますが、それが消えています。

シェーダーコード

HLSLの中身も若干変わっています。

今までfloat4x4とかやっていた部分がmatrixになっています!

Passの部分も

となっており、ぱっとみてわかる程度の変更です。

ここにジオメトリシェーダーの記述があって、そのうちいじってみたいなとわくわくです。