12/18/2009

[&] SIGGRAPH Asia 2009 (Try Realtime Shader for artist)

Try Realtime Shader for artist
アーティスト(デザイナー)もリアルタイムシェーダーをやってみよう
ーーーーーーーーーーーーーーーーーーーーーーーーー

数年たったアーティスト用
アーティストが Shader を学ぶことの利点など。

グラフィックツールの開発や、R&Dを行なっている。
Softimage をメインにツール開発やサポートを行なっている。
テクニカルアーティストという立場。

デザイナーがシェーダーが書けることの利点;
 プログラマの時間を拘束しないで、表現の調整にこだわることができる。
 現在制作上のデータがゲーム上でどういう表現がなされるのかを試すことができる。
 シェーダーで何ができるのかが分かり、表現の幅が広がる。
 もしもアーティストが書けなかったとしても、可能な表現をしることで表現の幅が広がることが重要

明るいところで肌が透き通る現象。サブサーフェーススキャッタリング。
使い古された技術ではある。フェイクのシェーダーを書けるようになるまでの道のり。
最初にイメージベーストライティングの例から始める。

◆最初のハードル。内積 (dot)
シェーダーの基本は normal vector と light vector の組み合わせ。
法線ベクトルとライトベクトルが 60度の場合、Brightness は 0.5 になる。
Cg shader で表現すると 1行。
float dif1 = dot(normal, light)
softimage に Cg シェーダーを適用する方法の説明。
スペキュラーの意味や効果を試したりすることができる。
オブジェクトの輪郭が光ったような表現も可能になる。

◆次のハードル。Normal Map、環境マップ
Normal はオブジェクトそのものデータが平坦だとしても、でこぼこを表現することができる。
頂点数を増やすこと無く、質感表現を豊かにすることができる。
Object space normal map は
法線データを RGB の色で表現したもので、見ただけでどの方向かが分かるようになっている。

c.f. こんなやつ
http://www.surlybird.com/tutorials/TangentSpace/images/gargoyle-uv_world_space.jpg

tangent space normal map の説明
法線をどちらに倒したらよいのかを把握。

環境マップ。ゲームでは環境(風景)をテクスチャに焼き込んでいく表現が多く使われる。
Simple Environment mapping (sphere) オブジェクト方向によって、移り込みが変化しないもの
Dual Paraborid maping
cube mapping GPU サポートによりハードウェアサポートしている。6方向の絵で表現する。

Dual Paraborid maping
テクスチャや半球の移り込みを前後を表現した1枚の素材から生成する。
softimage の環境マップでも Dual Paraborid maping が採用されている

◆最後のハードル、Shader Blending
今まで使ったシェーダーを足したりかけたりして、最終的なシェーダーをつくる
フェイクのフルネルと環境マップを合わせたものを作る
一番の難関はテクスチャをぼかすこと。
シャドーマップをぼかすのに使っている数式をあてはめて実現する。
プログラムを1から考えるのは難しいので GPU Gems を参考に作る。

ぼかしのパラメータを softimage のカスタムパラメータにすることによって調整が可能になる。
softimage ではシェーダーの動的な変化をコントロールすることができる。
指の動きによって、浮き出す血管などの表現ができるようになる。
一枚のポリゴンなのに、水際のような表現ができる。

シェーダーの細かいパラメータを調整することのできる CgFx は Dxfx を使う
ある程度なれたら、FX 形式に切り替えるのが良い。

情報をイントラネット上に載せておき、
時間があるときにオンラインで学べるような素材を用意している。