プログラム

技術ネタは

はてなブログ(http://katze.hatenablog.jp/)で書くことにしました

HLSLメモ

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

 VAIO T(2013年春モデル)の液晶を色温度6500Kぽくする設定

デスクトップで右クリック→グラフィックプロパティ→ディプレイ→色調整 にて以下の設定 色 全色 明度 -10 コントラスト 50 ガンマ 0.7 色合い 0 彩度 15 デフォルトだと大分青いので、色を確認するには辛かったので、探してみました。 これ以上はお好みで。

ようやくView/Projection行列と脳内イメージが合致した

今年の夏は仕事がド修羅場中で、夏コミ前だってのにそっちはマジで何もやれてねぇ。 とは言うものの時間が無い方が物事は進んだりするもので、3Dベースの2D描画システムを作るべくしこしこと実験中。 ずっとView(カメラ)とProjection(画面への射影)に入…

3Dシステムで2D描画を考えると

板ポリにテクスチャを貼るというより、テクスチャに合わせて板ポリ生成する方が正しいのか。つか、それってまんまモーフィング描画する時の四角形を求めることじゃまいか。四角形の位置決めは行列一発で、それに合わせたテクスチャ補完はGPUがやってくれるの…

マスク処理できたー

Irrlichtのコードを読みつつDirect3Dの理解を進めている感じ。 今日、やったのはマスク処理。プログラム的言うとマスク画像となる1枚目のα値を2枚に適用してαブレンド描画するという処理。 でまぁ、Billboardを使って板ポリ作りつつやったんですが、あれやこ…

カスタムレンダラー

ふう、Direct3Dのことを改めて勉強しなおして良かったぜよ。Irrlichtの機能として無い(使いたいTextureStateやRenderStateの組み合わせが無い時)描画システムの組み込み方をなんとか理解できた。 方法は二つ。 カスタムシーンノードを使う MaterialRendere…

自前でWindow作れるんじゃん……

Irrlictのドキュメントを眺めてたら、createDeviceに別のインターフェイス版が……。設定構造体を渡すタイプなんだけど、そこにwindowIDの文字が! コードおったらそこにHWND渡せばそれに関連付けてDirect3Dを使ってくれるらしい。なんてこったw わざわざIrrl…

Scrat改めSqratらしい

さっそく組み込んでみた。0.5っていってるだけあってたりない機能も多い。C++からSquirrelの関数を呼ぶFunctionテンプレートで呼ばれてるsq_callでエラーチェックしてないのはわりと致命的。あと、ファンクターの作りが甘いような? 一時オブジェクトで使わ…

Squirrel組み込み

BinderはSquirrelフォーラムで今ホットなScratにしてみた。SqPlusの正統後継のような構文だったし、作者が熱心そうで、ライセンスがzlib。完璧w SqPlusのdofile/compileなんちゃらの関数は無いが、それぐらいは自分で用意するべか。とりあえず、C++のクラス…

精査中

タイマーでの見落としを受けて、もうちょいちゃんと読み込もうと思いWindowsな部分を精査中。ふむ、デバイスロスト対策も入ってることは入ってるし、ウインドウ←→フルスク動的変更もそう難しくなくできるかな。 FPSタイマーはIrrlicht内部的に仕込んじゃう予…

まずはタイマー

結局、Irrlicht改造にすることにしました。まぁ、コードは綺麗なので手を入れる気にはなるし。 というわけで、まずはFPSを安定させるためにタイマーを仕込むとこから。実装はyaneSDK3rdからぶっこ抜き(爆) 一応、Irrlichtにもタイマーはあるんだけどマルチ…

ゲームエンジン/フレームワーク探訪

うーん、どうしたものか。 一度はIrrlichtに決めたんだけど、コードを読むとWindwosな部分がいまいち。じゃあ、他には−、と思ったのがSeleneだったけどSeleneの作法がいまいちコードから読み取れない……。 とりあえず、ただウインドウ作ってモデルないしスプ…

Irrlicht

なんかなんでもあるくせー。気になるのはnew/deleteを容赦なくしてるとこだけど、明示的なReferenceCounterで動作してるからタイミング調整はきかせられそうだから、まあ、どうにでもなるかな。何よりコードが綺麗なのでチュートリアルを軸にコードを読み進…

新ゲームフレームワーク制作前の検証作業開始

ようやくベスト作業と仕事が一段落ついたので、ここ1,2年ずっと言い続けてるゲームフレームワークを一新するべく検証作業を始めました*1。半ばそのためにリフ休絡めて今週をずっと休みにしました。 DirectGraphicsにするべく3DエンジンであるIrrlichtと組み…

できたー!!!!

ようやくできた。 Flash上でぐりぐり動かして実測したりしてようやく辿り着いた。 上手くいかなかった原因は2つ。拡縮方向の勘違いとグラフィック座標を得る関数のバグ。 拡縮方向の勘違いは、拡縮原点からの位置ベクトルがn倍になるのが正しいのだけれど、…

あれー

なんか考えすぎなだけは気がするんだけど、頭の中がごちゃごちゃになって上手く実装ができねぇ……。 親の座標系に変換するところがなぜか上手く動いてない。おかしいなー。いつものように、どっかで位置ベクトルと方向ベクトルをごっちゃに考えちゃってる気だ…

あー、ようやく理解できた……

マスターが今日火曜だったので三連休は会社で過ごしました。泊まらずに帰ってはいましたが。うっかり愚痴を書きそうになりましたが、会社のことはさておき。 ここ数日空き時間とか帰ってから、ずっと入れ子になったMovieClipの拡縮回転をFlashと同じ挙動をす…

IrrlichtEngine採用

DirectXな部分も自前で作ろうかと思っていましたが、5日に安藤さんと本と色々話をして、やっぱさっさとゲーム作り始めたいと思った。だから、Engine使う決意。Irrlichtにしたのは、ソースとサンプルコードを眺めて俺好みのコードの書き方だったからってのが…

A.I.M.S.

無駄にどこで話題にするか悩みましたが、プログラム系の話題ははてなにしようと思ったのでここで。 つい、この間、D.N.A.Softwareさん*1が、ゲームエンジンA.I.M.S.を公開されました。 でまぁ、なんで話題にしようかと思ったのかというと、Luna(現在はSelen…

type03にしたいにゃー

マリ打て・BMWを通して作った自分のゲームシステム。 メジャーバージョンアップ*1の前に、マイナーバージョンアップしたいなー、と。 スクリプトエンジン突っ込みてー。exeはそのスクリプトの拡張という立ち位置にしたい。スクリプトの方が主導になる*2とう…

コンパイラの最適化ってすげー(今更)

最近、メモリリークの場所をいい加減真面目に追おうと思って、BMWのプログラムの最適化を切ってデバッグビルドした。そしたら、めちゃくちゃおせーw 何が遅いってspirit。あのtemplateお化けが最適化されないせいで、スクリプトのパースが激遅。動き始めち…

Havok フリー公開キターーーーーー!!!!!

http://tryhavok.intel.com/ さっそくDL。名前と居場所とメアドと目的をフォームから入力すればOK。物理で遊ぶぜ! 第四部が終わったら……。 なんか、これ使って商用ゲーム作りたかったら、$10とライセンス表記でOKとか書いてある気がするんだが……マジ? 安く…

ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER)

いつのまにか、日本語訳が出てたー!!!! いつか読もう読もうとウダウダしてたら、でちゃったw 原著自体はもう5年以上も前の本ですが、パラパラっと見る限り、最近の話題を踏まえて多少加筆されてる模様。 モダンC++のエポック本ですよ。わかりやすく言う…

Javaを見直した

いい加減マルチスレッドを勉強しようと、会社で結城先生の増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編を読んでいて思ったのですが、Java良い。めちゃくちゃわかりやすい。C++でさっぱりわからなかったセマフォだとかミューテックスとか…

H、Havokが!!!

http://www.havok.com/content/view/582/53/ 今年5月に非商用向けにフリー公開だってー!!!!!! ちょま、ヤヴァイヤヴァイ、これはヤヴァイ!! XNAがとうとう一般公開されるていう発表もあったし、同人が非商用として認められるかはわからないけど。 来…

VS2008がすごい件について

VS2005をまったく使っていないので、.NET 2003との比較になりますが。 大きく二つ。 デバッガが良くなった。 C#のようにコードにマウスカーソルを当てると変数の中身がちゃんと見られるようになったおかげで、 特にテンプレパラメタが見やすくてとても良い。…

なんというか

BMWプログラムは、ほとんど奇跡的とも言える勘で、boost::spiritを使っていたらしい。 今、最低限の仕様を満たした状態で、デバッグをしているんです。それで、構文解析系をカタカタ直していて気づいた。 spiritはLLパーサーなので、どこかでマッチに失敗す…

誕生日おめ、俺!

大学(院)生活最後の誕生日を迎えましたが、やってることは修論のプログラムです。さっさと終わらして、BMW作業に戻らねば。 わりと順調にやれて、ノルマ達成。という直前に、うひょー!、なことが・・・。boost::spirit*1の仕様を正しく理解していなかった・…

最高のキレと最低の不具合が同時に・・・

すげー久振りに意味不明・回避手段が見付からない不具合に遭遇しました。とりあえず、その部分はオミット。まぁ、あったら良くね? ぐらいなものなので、しゃあないです。ホント、デバッガで追いかけてもサッパリ原因がわかんね。原因ぽい箇所は見つけたけど…