3Dゲームグラフィックスでは人間のキャラクタ取り扱うことが多く、その際に避けられないのが人肌の表現だ。

ただ、肌色に塗ったテクスチャを貼り付けて拡散反射のライティングを行っただけでは素焼きの焼き物かプラスチックのように見えてしまう。みずみずしい生きている肌の感じを出すため、これまでに、さまざまな手段が試みられてきた。

今回からは、最も基本的な疑似手法と、比較的物理的に正しい処理を行ってリアルな結果を出せる手法を紹介していこう。

ハーフライフ2で採用された疑似ラジオシティライティング「ハーフ・ランバート・ライティング」

米VALVE SOFTWAREが開発した「ハーフライフ2」(2004年)では、人間キャラクタなどの動的キャラクタには同社独自開発の「ハーフ・ランバート・ライティング」(Half Lambart Lighting)と呼ばれる特別なライティングが実装されていた。

この技法は、物理的には全く正しくない完全な模擬方法なのだが、複雑な相互反射によるライティング(ラジオシティ:Radiosity)ライクな柔らかい陰影が出るため、柔らかい光に満ちた空間でのライティング表現が可能になる。ハーライフ2ではこれがフォトリアルなビジュアルイメージの実現に大きな役割を果たしていた。

ハーフ・ランバート・ライティングの原形は、もちろんあの「ランバート・ライティング」だ。

ランバート・ライティングは拡散反射の陰影処理のよく知られた一般系で、視線方向に依存しない光源の入射方向と面の向き(法線ベクトル)だけで算出される陰影処理技法になる。この技法では「その地点の明るさは、面の向きと光の入射方向が織りなす角度θのCOSθに比例する」という「ランバートの余弦則」が定義されているが、実際にこれでライティングすると明暗がかなり強烈に出る特性がある。

ランバートの余弦則

ハーフライフ2では、このドラスティックに変化するコサインカーブにバイアスをかけて暗部階調を持ち上げる工夫をした。ランバートの余弦則のコサインカーブが半分になるように"1/2"を掛けて"1/2"を足して、さらにこれを二乗して緩やかなカーブに変換して陰影処理を行うから「"ハーフ"・ランバート・ライティング」というわけだ。(続く)

赤色のカーブがランバートの余弦則の基本コサインカーブ。青色のカーブがハーフ・ランバート・ライティングのカーブ。左が通常のランバート・ライティングの結果、右がハーフ・ランバート・ライティングの結果

(トライゼット西川善司)