プログラミング

USDを使ってみた話

CGアニメでおなじみのPixer社がオープンソースで公開している汎用的なシーン記述フォーマット「Universal Scene Description (USD)」について、使ってみたので感想や引っかかったこと、メリット・デメリットなんかをつらつらと書いていきます。 USDについて…

OpenKinectの始め方

Windows7上で動いたので、Demoの起動までを覚え書き的に書いてみます。 まず、以下からドライバとデモ(ソース付き)をDLします。 http://openkinect.org/wiki/Getting_Started_Windows 上の方に"kinect-v??-withsource.zip"と言うのがあるので落とします。 こ…

ddx, ddyの挙動を調べてみた

微妙に謎がある勾配命令 ddx, ddy(アセンブリ命令では dsx, dsy) について調べてみました。 これはGPUごとに動作の違いがあるかもしれないので私が調べたものがすべてのGPUに適用されるわけではないでしょうからお気を付けください。 ちなみに、うちのGPU…

Dynamic Shader Linkage vs Uber Shader

ビックカメラで安かった『Far Cry 2』を買って遊んだんですが、リアルにすればそれで良いとか考えてるゲーム開発者は死ねばいいんだ、とちょっと思った。 基本的にJRPGと同じでお使い、作業の連続。それでいて移動には時間がかかるし、行ったり来たりも多い…

パフォーマンス計測

昨日、SetRenderState()とかをキャッシュするStateManagerを作成したので、今日はそのパフォーマンステストプログラムを作成してみました。 SetRenderState()の発行回数は当然減らせるだけ減らすべきなので、無駄な発行を行わないようにキャッシュしておくの…

OpenGL ES 2.0 その04

前回はDirectXでいうところのDrawPrimitiveUP()と同じ描画方法をやりましたが、今回は頂点バッファとインデックスバッファを使用した場合の描画方法をやります。 OpenGLにはディスプレイリストが存在するのですが(2.0でもあるかどうかは知らない)、GLES2.0…

OpenGL ES 2.0 その03

前回、シェーダプログラムを設定するところまでやりました。 今回でやっと描画です。といっても、トライアングルを出すだけですが。 今回はDirectXで言うところのDrawPrimitiveUP()系の解説になるので注意してください。DirectXの場合、シェーダプログラムを…

OpenGL ES 2.0 その02

1日1HaloWars状態のMonshoです。 さすがに慣れてきたのでヒロイックでも余裕です。 そろそろいろいろ縛りプレーでもしようかな。GLES2.0プログラムその02はシェーダコンパイルです。 なぜいきなりシェーダなのかというと、GLES2.0には固定シェーダがないから…

mapやsetを大量に使うのはありなのか?

ここ最近遊んだデモと言えば、PS3の『KILLZONE2』とXbox360の『Halo Wars』。 KZ2はコンシューマFPSとしては最高峰のグラフィックで、特にモーションはずば抜けていると言っていいでしょう。 GoW1みたいに色が薄い、と言うかモノクロ調なので派手さは感じま…

OpenGL ES 2.0 その01

大往生、2月か。侍道3とHaloWarsもあるというのに…。 とはいえ、大往生はすでにAmazonで予約済み。デススマイルズの限定版はすでに品切れ(泣。 さて、スティックをどうするか考えないと。と言うわけでGLES2.0を使ってみようのコーナー、第1回。 前回はイン…

OpenGL ES 2.0 その00

つい先日あったIGDAの新年会で知り合いがiPhoneで3Dオブジェクトを出しているのを見せてもらいました。 で、ちょっと面白そうだったので調べてみると、OpenGL ES 2.0のWindows用エミュレータがあるじゃないか。 …こいつはやるしかねぇな。と言うわけで、短期…

STLのallocatorメモ

『Effective STL』を買いました。 STLはよく使っているものの、効果的な使い方をしていないのではないかと新しい会社に入社して気づきました。 今更って言うな。 で、読みながらちょっとプログラム。STLのコンテナはallocatorを使って独自のメモリ確保が可能…

パーバーテクスライティングは時代遅れ?

今年最後の更新です。 個人的ゲームオブザイヤーは…なんだろう? 今年のゲームはどれも面白かったんですが(『雷電4』以外)、これはって言う心に残るゲームはなかったんですよね。 どれも面白かったけど、どれも面白さが予想できたというか…予想外や予想以…

モンテカルロ木探索

1000円で『レッドクリフ』を見てきたのですが、面白くなかったです。 三国志ファンからするとキャラクタ設定がおかしいというか、孔明がシュウユを友人とかいうのにすげぇ違和感が。 三国志を知らないとキャラクタがよくわからない。あんまり特徴がない。 初…

デュアルクオータニオン

興味があったのでデュアルクオータニオンをやってみました。http://monsho.hp.infoseek.co.jp/files/sample81.zipデュアルクオータニオンは2つのクオータニオン(四元数)で回転と平行移動を表したものです。 積算もできるし、ブレンドもできます。 最終的に…

CEDEC2008 3日目

遅れましたが3日目。まずは1コマ目から。 え、基調講演? ネット上で記事を見かけた人いますか?つまりそういうことなんです。1コマ目はEpicのTim Sweeneyによる未来の技術についてです。これからの10年とか言ってましたが、2012年から2020年くらいの予想の…

三角形ストリップは有効か?

後輩が、三角形ストリップを使うと遅いって本当ですか?とか聞いてきた。 頂点キャッシュを使えば三角形リスト形式でも十分で、ストリップのほうがむしろ遅くなるとかネットで見たとか言うようなことをいってたわけで。 調べてみると、ひげねこさんの所にス…

CEDEC2008 2日目

ちょっと色々事情があって実家に帰ってました。 何があったかとかは察してください。それはともかく2日目。まずはカプコンの稲船氏の基調講演です。 すでに本職の人の記事が上がっているので書く必要もなさそうですが、とりあえず簡単にまとめて見ます。 稲…

CEDEC2008 1日目

さて、今回は個人参加のため会社にレポート提出の義務はありません。 というわけで忘れないようにこちらに書いておきます。まず基調講演はコーエー社長の松原さんが自身のキャリアをちょっと話した後にCEDECの今までとこれからについて話をされました。 今後…

CUDAあれこれ

CUDAをちょっといじってみたので、そこで疑問に思ったことや解決したことを適当に書いてみる。CUDAはNVIDIAが開発した、GPUを汎用用途で使用するためのC言語拡張ライブラリ。 CELLのSPUみたいな感じでGPUを使うのを簡単に行うためのものです。 現在のバージ…

Serializableはうまくいく

最近はマルチは『Halo3』、オフラインは『ライデンファイターズエイシズ』のデモか『トリガーハートエグゼリカ』というゲーム生活。 『エグゼリカ』はもう少しでノーマルワンコインクリアできるんですが、まだまだ努力が足りてない。 4面の後半はだいぶうま…

ContentPipelineのWriteRawObject

久しぶりにブログを更新したと思ったら、去年から更新してなかったのね。 というわけで今年最初の更新。 最近のお勧めは『ライデンファイターズエイシズ』です。 某PSPのアクションゲームはかなりやばい移植ということで盛り上がっていますが、こっちはかな…

CEDEC2007に行ってきました

はい、というわけでタイトルどおりです。まあ、仕事で行ってきたので内容までは書けませんが、大手も中小も苦労してるんだな、とか思いました。私は2,3日目に参加したんですが、1日目は裏CEDECだけ参加してきました。NyaRuRuさんと会ったのって初めてでした…

GDC07報告会の報告

タイムを競うことが基本のレースゲームはGT3のおかげでつまらないと思うようになってしまっています。GT3はいくつかの車が欲しいという動機で遊んでいたわけですが、それが非常につらく苦しい道のりで。しかもあのゲームは微妙な失敗でコンマ以下のタイムが…

ゲームAIセミナーに行ってきました

最新のコメントに”おまえは馬鹿か”って言うのがあるのですが、本文の方が何を言ってるのかさっぱりわからない。英語はそれなりに読めるつもりだったのですが、裏切りとか戦争とかって単語が入ってることがわかるくらい。暇があったら誰か翻訳してください。…

うまくいかないPRT

先週末からマスターアップ休暇だったので実家に帰ってました。その間にPRTをやってみようと作ってみたんですが、どうもうまくいかない。Imagireさんと同じやり方だと面白くなかったので、放射照度環境マップのときと同じように頂点に伝播ベクトルを入れてお…

Squirrel おまけ

Squirrelの話は前回で終了しているのですが、おまけとして日本語を使用する方法を。 Squirrelは基本的にASCIIコードしか使用できません。日本語の代表とも言えるSJISはその特殊性からSquirrelでは使用できません。例えば print("ソース") という命令を実行し…

Squirrel その10

過去ログを見てたらSquirrelの話を終了していないことに気付いた。なのでやる。今回で最後。これだけわかれば多分ゲームに必要な全ての物を用意できるものと思います。 Squirrelではクラスが使えます。メタメソッドによってC++でいうところのoperatorも使え…

Light Space Perspective Shadow Map

最近になって Perspective Shadow Map (PSM)について調べてみた。知らない人はあんまりいないと思いますが、シャドウマップでライトビューを歪めてカメラに近い位置ほど多くの解像度を割り当てるという手法。つまり、カメラから遠いほど影は粗くなり、カメラ…

グローバルIPを取得する

UPnPは関係ないっぽい。どうも、数回フリーズさせるとそれ以降は問題なく動作するらしい。しかも、『旋光の輪舞』を昨日からプレーしてますが、今のところフリーズは一度もない。フリーズしないと決まったわけではないのですが、高確率で落ちるネット対戦を…