2008年6月アーカイブ

ボイスが無い時代のゲームだったけど、当然ながら脳内再生ボイスは主題歌のWHITE ALBUMと挿入歌のSOUND OF DESTINYの声でしたよねー^^;;;

あの空気感が伝わってくる雰囲気が好きなので冬になるとやりたくなるゲームです。

MSAAでMRTってできない?

どちらかというと今のところ問題はStretchRectに出ているのだが、BackBufferを使わないでMSAAのRenderTargetとテクスチャ+非MSAARenderTarget→MSAAへレンダリング→StretchRectでコピーはうまくいった。

しかし、MRTにした途端StretchRectがS_OKを返しておきながら動作しておらず、StretchRectを一切しない意味のないコードと結果が同じになった。要するに未初期化のVRAMなテクスチャのままだ。DXのdebugランタイムもエラーでないし。

どっかでタコミスしてそうな気もするのだが、ざっと見た感じは問題なさそうなコードなのになあ。begin~endとRenderTarget切り替え&コピーのタイミングが重要なのかもしれないが調査中。

とりあえずwebを調べまわった感じではMSAA+MRTの資料がみあたらん。どれもBackBufferからとってくるか(単一しかありえない)、単一のRenderTargetだなあ。

 

追記:

http://msdn.microsoft.com/en-us/library/bb147221(VS.85).aspx

  • No antialiasing is supported.
  •  

    その割にはエラー出力がでないよなあ。

    1月あたりにOblivionの小さなModを某所に公開して、その時のログを某所2に掲載して頂いていたのだが、そこが消えてしまったぽいのでこのサイトに置く予定。

    アス比16:9なんてテストしていなかったのだが、とりあえず動いてるようなので一安心。

    リリース後に使ってて気がついたobのシステム的に回避しようがない問題点とかもあったのでドキュメント更新しないと。

    特定の状況で通常通りの動作を行うと整合性が変になってバグが生じるので、これを回避するような動作を入れたら、それをユーザにバグと言われるとか。

    仕様に対して違う挙動だとか、仕様そのものの誤りによる本来のバグではなく、ユーザにとって思いもよらぬことが起こるとバグバグ言われるようになるとは大変ですのう。

    cubeenv.jpg

    texCUBEの前に用いるreflectないしはrefractにはワールド系での視線と法線が必要になるわけだが、これを使うためには頂点シェーダからワールド系に変換済みの頂点座標とカメラ位置と法線を持ってこないと駄目なわけです。(使った雰囲気で多分)

    そうすると、頂点ごとにワールド系に変換する負荷を押さえるためにモデルにあわせて回転させておいたパーピクセルランバートとパーピクセルスペキュラのためのライト方向とカメラ位置が無駄になってしまうのだが、どうすればいいんだろうか。ちなみに、回転させたカメラ位置と未回転法線でreflectするとモデルのみの回転ですらキューブマップの参照先がカメラを動かしたようになってしまう。

    現実的な順から解決策を書くと

    1. オーソドックスにワールド系をそのまま使って定数を減らすか
    2. 環境マッピングの有無でそれらを切り替えるか
    3. なんとかして回転済みカメラ位置と未回転法線でreflectできる方法を探すか

    になるんだろうけど、1は当然一番重いし、2は今時はそこら辺のマテリアルすら環境マッピングを用いることが多いので1とあまり変わらなさそうだし、3は適当に考えた感じだとreflectした後に回転させないと駄目で現実味が無いんだよなあ。

    普通の環境マッピングなんて初歩的なので未だにワールド系使うサンプルしか見たこと無いし、どうしたもんかしら。

    シングルはまあ、こんなもんか。

    マルチはラグが酷いんですが。ラグが酷くないときは結構面白いのに。恐らく海外に繋がってたのだろうけど、今時走ったと思ったら元に戻っていたとか、めり込みすぎて死亡したとか無いだろう。

    でもまあグレネードゲーかと思いきや、今のところは特に圧倒的に強い兵科も無い感じなのがいいですね。戦車が強いのは初代からだし。

    特に気になったところは、デモで用意されてる金塊攻防ルールだと以前の旗取りよりも戦略性がイマイチな点ですかね。裏取りも無いし、一本道に近いので金塊取られたら守備側は前線が下がるだけで攻め側はひたすら特攻になりがちです。

    あとラジオチャットをプレイヤーが任意に行えないのが残念。ウンコスナイパーはどのゲームでもいますね。

    しかしHalo3の通信は凄いですね。海外でも余程のことが無い限りそれなりに遊べてしまう。

    洋ゲーなんてどうでもいいと思う人にはどうでもいい内容ではある。

    ぱっと英文渡されて、読もうとすらしないで反射的に閉じちゃう人と、読めないながらもとりあえず読んでみるか読み解こうとする人に大別できそうな感じではあるが、ここに大きく洋ゲー適正の隔たりがあるように思う。
    もっとも、ナチュラルに読める人は差し置いて。

    大げさに言うなら未知への好奇心だ。

    まあ、読み解こうとしても多くの英文は意味不明だったり、解釈を間違ったりするので、見向きもしない人よりもえらいんだという気は毛頭無く、むしろ対して理解できるわけでもないのに時間を相応に割いているわけで馬鹿やってるよなあと思うことも多い。
    それでも幾らかは内容が分かってくるわけで、洋ゲーを遊ぶ上でこの差は大きいに違いない。

    個人的な問題としてはここまでどっぷり英語に触れてるというのに英語を読む力が殆ど向上していないということだ。やっぱり字幕が出たまま止めれるゲームだと辞書ひいて逐一訳すスタイルじゃないと駄目なのかしら。電子辞書が欲しいがタイポしにくい印象しかない。

    一番最近のGTA4の場合はスラングきつすぎて英語ですら無いようなものも多かった。Jacob何言ってるんだよ。

    やっぱりライティングといえば3ポイントライティングですよねー。

    ということで昨今リムライトの代用でフレネルがよく用いられますが、リムライトの色ってうまく計算から自動で出せないのかしら。
    とりあえずその辺のゲームを見た感じでは、大抵凝ったことをしてるわけではなくて、まわりこみとして陰とか区別無く全部均質にキーカラーと同じ色使ってる場合が多い印象。

    しかしながら陰部分にあたるカラーは手動で設定してやると輪郭の引き締まりが違っていてやはり良い感じになるなあ。キーカラーと反対の色を算出して補正すればそれっぽくはなりそうだが、彩度の低く効果的でない色になるケースも多くなるんだよなあ。やっぱ手動が一番かのう。

    あとは他に光源追加しまくってると白く飛びそうな部分ではあるので、海外ゲーのように光源を多用したようなゲームだと色が混ざり合っちゃうので、そういう場合は前述のように単純にした方がいいのかも。個人制作だとデータの手間が増大するので光源たくさんおけませんがね。