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

今年最後の更新です。

個人的ゲームオブザイヤーは…なんだろう?

今年のゲームはどれも面白かったんですが(『雷電4』以外)、これはって言う心に残るゲームはなかったんですよね。

どれも面白かったけど、どれも面白さが予想できたというか…予想外や予想以上の面白さってのがなかったんですよ。

それはそれで安定しているといえばしているけど、面白みには欠けますよね。

最近は『フェイブル2』と『ギアーズオブウォー2』をよく遊んでますが、どちらも面白いです。

ただ、バグが多いんですよね。この2本に限った話じゃないけど。

ゲームになってないとか進行不可能になるとかってのはないんですが、GoW2は拳銃以外で盾が使えるとか、フェイブル2は家具が売られないとか、FO3はキャラが消えるとか。

日本のゲームのバグはけっこう色々突っ込まれてるけど(最近だと『メジャーWii』とか)、洋ゲーのバグは「洋ゲーだから」で済まされてる気がしないでもない。

自由度の高いゲームだとバグなのか仕様なのかもわかりにくいのが困ったところ。キャラが消えるなんてAIが勝手にどっか行ってるだけかもしれないしね。

なんにしても、近年のゲームは困ったバグが多いように感じます。グラフィックとかAIとか発展していくのは重要だけど、バグを減らす何らかの手段も必要なんじゃないかな。

最近、シェーダの自動化をやってみようとメタ言語を作ったまではよかったのですが、XSIのModToolだとmental rayのシェーダが使えない事に気付きました。

設定はできるんですが、どんなに頑張ってもテクスチャ1枚とフォンライティングが限界っぽい。

DirectX用とOpenGL用のマテリアルは使えるようですが、基本はHLSLとかを自分で書けって感じだから、自動化なんてできやしない。

それでも普通のライティングとかを自動化できれば何とかなるかと思ってフラグメントをしこしこ作ってる最中なんですが、ちょっと気になることが。

もしかして、今時(Xbox360/PS3)ってパーバーテクスライティングは時代遅れ?

Imagireさんのサンプルとか見てると、頂点シェーダで渡すのは法線やライトのベクトルで、ハーフベクトルを求めたりしてもろもろ計算するのはピクセルシェーダでやってることが多いような。

確かに、バンプマップやパララクスマップをやる場合にはこれらの情報が必要なのはわかります。

しかし、ランバートライティングなら必要ないし、テクスチャルックアップするにしてもnlとかnhとかを頂点単位で計算しておけば住む話かと思ったわけで。

とはいえ、パーピクセルライティングが基本となればまとめられる部分も多くなるし、けっこう便利化と思ったりもします。

で、実際のところどうなんでしょう?法線くらいはピクセルシェーダに標準的に渡したほうがいいのかな?