顔の皮膚の陰影表現というのはリアルタイム3Dグラフィックス、とくにゲームグラフィックスでの実装はかなり難しいとされてきた。それは人間の皮膚が光を反射、吸収、拡散するだけでなく、透明度は低いものの、皮膚下に浸透して散乱し再び出てくるという複雑な反射モデルになっているからだ。
この難しい人間の皮膚の陰影処理も、PS3,Xbox360といった最新ゲーム機や、今世代のDirectX 10世代のGPUでは、リアルタイムでもかなりレベルの高い表現ができるようになっている。
NVIDIAは、この皮膚の陰影処理についての最新技術についての解説を行った。
人間の皮膚の陰影処理モデルを考える
人間の肌の陰影処理はスキン・シェーディング(Skin Shading)と呼ばれ、これを行うために特化したシェーダーをスキン・シェーダーと呼んでいる。
動画 | |||||
---|---|---|---|---|---|
![]() |
![]() |
||||
|
|
このスキンシェーディングはリアルタイム3Dグラフィックスや3Dゲームグラフィックスにおける研究テーマとしては広く研究されてきており、近年では「大体これで行けるのではないか」というものが確立されつつある。
それが、今回、NVIDIAの「高度なスキンレンダリング」で解説された内容だ。
なお、内容そのものについてはNVIDIAが中心になって編纂した最新グラフィックス技術をまとめた専門書「GPU Gems3」(Addison Wesley刊)が元になっている(北米地域で発売中、日本語版は発売の予定はあるとするも時期は未定)。
AMD(ATI)が同社のデモの女性キャラクタRubyに適用しているスキン・シェーダーもコードレベルでは違うものの、採用した技術の方向性は今回NVIDIAが紹介したものとほぼ同じだ。
人肌の陰影処理は漠然と考えるとその実現はとても困難に思えるが、その反射性質をいくつかの処理に分けて考え、それぞれを簡単な近似モデルに落とし込むことで、なんとかできるのではないか……。これが今回のNVIDIAが実装したスキン・シェーダーのコンセプトでありアプローチだ。
皮膚は図のように大まかに考えると薄い脂質部分、表皮、真皮という層に分かれる。
入射してくる光のうちわずか6%が表皮までに反射し、残りの94%は皮下で散乱する。
つまり、大ざっぱではあるが、表皮反射と皮下散乱の2つに処理を分けて考えられないかという方針が浮上するわけだ。