Wave Saver 1 V1.1 Tech.

Rendering Effectなど

RealTime IK.

サーファーの腰から上とボードの動きを分離して足の動きはReal Timeに計算。機械臭さが軽減されました。

乗り物にはIKです。本作では既成のモデルデータからボーンマトリクスを抜いてIKします。概形をモデラでアニメーションを調整してから実際の動作でIKをつけられる点が特徴です。
まだ腕、目、頭がモデルデータのままなので、まだまだ機械臭さが残ってしまっています。


■解説Movie(DivX5)■

Color Encoded Polygonal Volume Fog
for Light Tower / Sea.

ポリゴンで作った箱の中にFogをかける技術により、海の表面化拡散を実現。より自然な色合い・深みを実現しています。また、雲から漏れる光を動的ポリゴンフォグで表現、雲の移動についていきます。

Volume Fogを使うと海の色が自然になる事は分かっていたのですが、工作的に困難なので、なかなか手がでませんでした。今回、nVidiaから出ているSampleを改良・単純化してなんとか実装しました。ATIでは浮動小数点精度カラーのRendering Target Textureがサポートされているので比較的容易ですが、nVidiaは8ビットカラーしかないので、深度をカラーにEncodeする部分が大変でした。
nVidiaのオリジナルサンプルを追求した Greig氏は、PixelShader1.1からVolumeFogを実現しようとして、相当な苦労がソースに残されています。WS1V11も当初 GF3クラスの PS1.3を目指して作っていたのですが、さっぱり動かないのでやっぱりPS2.0オンリーにあきらめてしまいました。この技術が一般商品に盛り込まれるのはさらにさらに先になるでしょう。 (PS2.0のみサポートソフト、などという営業にならないソフトはPrivate系でないと無理という事ですね、、、、)

また、Greig氏のサンプルではインターセクティングという試みも実装されています。これはVolumeの遮蔽体をVolumeに食い込ませる事ができる技術です。WS1V11では当初インターセクティングを入れていたのですが、無限薄境界付近で色がうまくでなかったり、ポリゴンが欠けたりというバグが出て見送りました。このデバッグはとっても大変そうでした。それでインターセクティング用の海のVolumeを手動でnon-Intersectingに造形しなおすのが、とてもとても大変でした。
あと、深度はZ値ではなくW値を使うと、きれいにできます。ということをsampleからイタダキ!ました。

Color Encoded Depth Culling

サーファーの海面下のみCubeMap作成、サーファーの海面上のみCubeMap作成により、反射像、屈折像を作成していますが、この時Color Encoded Depthを使用する事でnVidiaでもATIと同じ映像になっています。

一旦海面のDepthをCaptureし、この境界でDepthCullingしながら海面上・海面下のCubeMapを作成します。V1.0では、nVidiaでは深度8ビットで海面深度を出していたので境界がきれいに切れていませんでした。そこで海面深度をColorEncodingする事で精度を出しています。ちなみに、普通のZ-Bufferを使用した方法では、うまくいきません。「Z-Bufferしつつ、海面の、向こう側を残す」からです。

Normal Map Pre-emphasis.

ノーマルマップで海面の微妙な揺らぎを8ビットカラーで作成するとビットが足らずに反射画像がガクガクになってしまうのを防止し、滑らかにする技術です。

単純に海面のNormalを8ビットに落とすと最下位ビット数ビットしか使用しないため、本当にガクガクになります。そこで、NormalMapに落とす時には10倍程度にPre-emphasisしておき、Normal-Map LookUp時に、1/10にDe-Emphasisします。これもPS1.3でやろうとすると大変な事になりますが、PS2.0だと数行(cg)です。なお、 Δx とΔyからΔzは作ります。

Tron-Glare

高速に全面Glareを処理し、雲の逆光部、太陽光、Beach Chairの反射光を滲ませます。

nVidia社発表のGlare技術と同じです。Game Tron Version2.0(日本未公開)も同じ処理を使っています。
今回は雲の逆光部に使うというユーティリティ面が新しいです。

一般技術

Dynamic F

画面に太陽が入ってきたときに、一瞬絞りが追いつかずにホワイトアウトする効果です。

最終段のGammaRampで実装してあるので、アイデア一発実装らくちんな技術です。

Rainbow Effect

虹の効果です。陸からだとなかなか見れない虹です。

本作ではちょっとしぶきの表現が稚拙なのに対し、虹がわざとらしいので、かなーり不自然になってしまいました。