直線上に配置

そゲコンプ

マトリクス

「そゲコンプ・マトリクス」は、
そゲコンプ の2005年ひとやすみ版です。

  • 2000年のFishSaver1から始まり、足かけ5年間イロイロやってきました。2005年HakowarV1.1をリリースしてからGraphic動向を見渡しますと、2000−2005年、ついに大きな節目に来たと感じています。
  • DirectX8からDirectX9 に変わり、例外的に長く9が続いています。10は出ないんでしょうか?しばらく出ないようです。それは、現在のハードウェアテキュノロジーで出来ることは9のVS3.0/PS3.0を使えばおおむねできてしまうという事です。
    次に控えているソフト技術を見渡して見ますと、Ambient Occlusion、Indirect Lighting、PRTなど、グローバルイルミネーションを簡略化させてリアルタイムでやろうと言う、激しくハードルの高い内容となっています。これらは現在のVideoカードで動作している物もあり、1フレームRenderingするのに6秒〜10秒かかる、と言った内容が多いです。これが30〜60FPSになるのは?
    2006後半〜2007年
    じゃないでしょうか。2年後、再びGraphicの革命が再起動されるのでしょう。さてそれまでは?
  • 2005年までは、いちはやくペーパーをGetしてすばやく実装したり、付随してアイデアを盛り込む事で先端性をアピールする事ができました。
    これはMarimoSoftの基本的な戦略でもあります。しかし2005年、技術は爛熟期となり、目新しさだけではダメでその質が厳しく問われる年となるでしょう。例えば、バンプは、手に取れるように立体感が無くてはいけません、モーションは、違和感無く動かなくてはならず、ビデオポストは、美しく溶けなくてはいけないんです。
    このように、アイデア一発ドカンから質に比重が移ってしまいますとプライベートプログラマーとしては非常につらい状況と言えます。
    この問題はプライベートプログラマにとどまらず、小さいプロダクションでも無視できない問題と言えるでしょう。
  • それで、どうしましょうか〜〜〜
    マリモの事は、まぁ考えるとして〜〜あるいは〜〜考えないとして〜〜
    とりあえず〜〜 どんなテキュニョロジーを使えるのか〜 あるいは捨てられるのか〜
    整理してみましょうか〜〜。 整理だけならできるでしょう〜〜、多分〜。
  • なんちゃって、エラそうにしちゃいましたケド、自分用です。ハイ


採用優先コード
A 画に与える効果が大きく、歴史も古い、まずやりましょう
B 画に一段品をプラスするが、Aほど簡単ではない。
C 技術的に難しい。A/Bをやらずにこれだけやっても画がアンバランスに浮く


採用コード)名前 概要 良くできているソフト
A)ステンシル シャドウ オブジェクトの頂点演算だけでシャドウボリューム体を作る。ボリューム体の表面で塗り、裏面で消しとしてシーン中にレンダリングするとシャドウ投影体と交差している部分に影が残る。
メリット:頂点処理がメインなので面倒なRendering工程が無い。このため複数光源などに向く
デメリット:原理的に、エッジが硬く出る。微妙にづらした複数光源で何回も描いたり、オブジェクトから遠いところでは影を薄くするなどで和らぐ。
The Chronicle of Riddck
A)シャドウマップ オブジェクトを太陽からみて一回レンダリングし、深さを保存して置く。シャドウ投影体をRenderingする際、光源方向のシャドウマップを見て影の中にいるのか、外にいるのかを判断。

メリット:PixelShaderのシャドウをRenderする際、1パスか2パスでエッジディザリングができる。
デメリット:Shadow ObjectをShadow MapにRendering、Shadowを Rendering、など、とにかくRendering工程が煩雑
B)オフスクリーンレンダリング 最終Rendering Screenを一旦テキスチャ書き出し、以下の効果に使用
オフスクリーンはRenderingは多少煩雑ですが、以下のオフスクリーンテキスチャを使った表現が一気に使用可能に。
B)非線形背景 オフスクリーンレンダリングした背景をシーンに貼り付ける際、通常の1:1で貼り付けず、歪ませる。
中央に集める−魚眼レンズ ( HALO )
波波に揺らせる−昏睡から覚め混乱画 (Max Payne 2)
HALO
Max Payne2
C)DOF 遠景 (Zが深いエリア)に、近接フィルタを加えてぼやかせる。従来、近景の主人公のエッジが背景に溶け込んでしまう不具合があったが、最近解消するペーパーがちらほら カオス・レギオンIntl
B)グレア 太陽光、窓からの光などの視野内での滲みを表現。
オフスクリーンに一旦Renderしてから隣接Filterするが、他のオフスクリーン技術と違う点は解像度を下げる事によりFilteringの負荷を下げる。
Far Cry
B)屈折 オブジェクトをレンダリングする際、ノーマルと視線ベクトルとの関係により、オフスクリーンで作った背景テキスチャからずらして読み込む。屈折に見える。
また、海面を揺らせ、水底を揺らせる事で透明な水を表現(Half Life2)
HALO
Half Life2
B)床面反射 ステンシルで床面マスクを作り、反射物体を水平面ミラーマトリクスで描画。床面内に反射オブジェクトが逆さまに描画される。 SeriousSam
C)海面反射 床面反射をさらにオフスクリーンでテキスチャに撮る。海面のノーマルで歪みRenderする。
遠景からの風景に向くが、HalfLife2では市街レベルでもハイレベルにまとまっている。
Far Cry
HalfLife2
A)ポリフォグ フォグのボリューム感を狙い、色の薄いフォグ板をたくさん重ねて配置する。効果はあるが、原理的にアルファの重ね塗りは処理が重い。 The Chronicle Of Riddick
Serious Sam2
A)全面ブラー 最終レンダリング画面を全面Clearせず、そのまま使用して重ね塗りしていく。
A)ボーンスキニング 関節キャラクターの基本で、メーカーの高価なライブラリを使用せずにやろうとすると、もはや無理なくらい障壁は高いが、キャラが欲しければやるしかない。
A)ウェイトモーフ 魚などに単純な変形を行う場合は、変形パターンを通個持っておき、線形補間で変形させる。
単純だがパターンを複数持つと幅が広がる。
C)パーシャルウェイトモーフ ウェイトモーフを、ボーンスキニングキャラクターの一部(顔、指、など)に適用しようとすると一気に難易度は高まる。原理的に理解できても工作が難解で、なかなか動くところまでいかない。 The Chronicle of Riddck
B)バンプ バンプマップを用意し、デコボコ感を表現する。
最新のゲームでは、画質が果てしなく向上できる事が証明されている。
バンプを採用するか・しないかが、画を設計する大きな目安
The Chronicle of Riddck
A)フレア 太陽光ベクトルとの関係でフレアを描画する。遮蔽物に太陽が隠れるとフレアを消す。
遮蔽物検索は ポリゴンピック、幾何学的な演算で行う。Dx9の非同期Occulsion Countを拾えるハードウェアでは、ピクセルシェーダーから見え隠れしている場合も演算可。アルファ抜きの木の葉の木漏れ日が可能
C)IK 主にボーンスキニングキャラクターに対しLookAt IK (注視する) EndPoint IK (乗り物で膝が曲がる)を行う。 The Chronicle of Riddck
B)Physics(Rigid) 剛体が、単体で衝突するだけの問題は、頑張れば不可能ではない。
資金が潤沢ならHavok2.0/Havok1.5あるいは、他に商用のエンジンがある。エンジン購入時にも、それなりのフィッティングは必要と思われる。
Painkiller
C)Physics
(Combined)
ヒトオチのような複数の物体を結合した物体を落とす場合は、専任で頑張らないと苦しいと思われる。
特に、ヒトオチをさせる場合各関節がどのように曲がっても良いという分けではない。(Constraint)
Painkiller


え〜「まとめ」と言いつつ、休憩してみたり。ムフ。
以下次号


直線上に配置