ここでは、CreativeStudio の参照テーブルを使ったマテリアルの表現方法を解説します。
まず左の球と右の球を見比べてください。見た目がかなり違っていますが、ライトはどちらも 1 灯しか置いていません。
なぜこんなことができるかというと、それは参照テーブルというものがあるからです。
図 1 . 参照テーブルを使用した表現の違い
参照テーブルというとわかりにくいですが、カーブのことです。
通常のライティングだと始点と終点が直線で結ばれますが、そこをカーブを参照し、置き換えています。
たとえば、光の強さだけなら1本のカーブで調整できますし、さらに3本のカーブがあれば、
それをR・G・Bに見立て、始点から終点までを自由な色に変えることができます。
ちなみに、図 1 .の参照テーブルは以下の6本のカーブにより表現されています。
参照テーブルは他にも、スポットライトの形状やフォグの分布にも仕様されますが、ここではシェーディングに限定して説明します。
参照テーブルの作り方自体は簡単ですが、使いこなす為に覚えないといけない設定が 2 つあります。
特に入力角は覚えて使うと応用表現がいろいろできる部分なので、ぜひこの機会に覚えてください。
マテリアルの設定で、参照テーブルを使うと以下の 3 種類の設定ができます。
本来は明るいところから暗いところまでのグラデーションは一定ですが、
このグラデーションを自由に変えることができます。
分布0や分布1同様の使い方になりますが、色を設定するために 3 つのカーブが必要になります。
使用例として、明るいところを赤に、そこから徐々に暗く、本来一番暗くなる場所にあて色として青を、とかができます。
こうすると、 1 つのライトだけで 2 つのライトがあるような表現が可能になります。
フレネルとは本来、反射率の変化に使われる言葉ですが、
CreativeStudio では透明度 ( アルファ ) の分布の変化表現として使われます。
透明度の表現となるため、コンバイナではアルファ成分として使用します。
CreativeStudio において、本来の「フレネル」に近い表現は「ジオメトリックファクタ」になります。

光は、いろいろな要素の影響を受けた結果「見え方」が変わります。
CreativeStudio では、その光の見え方を変える要素のことを「入力角」と呼んでいます。
そして、入力角の要素として挙げられるのが「ライト」や「視点」「法線」等です。
たとえば、モデルのスペキュラー ( ハイライト ) は視点とライト、法線の位置により見え方が変わります。
入力角は角度のことで、その角度を決定するためには2つの要素 ( =線分 ) が必要となります。
そして、2つの要素が作り出す角度は最大でも180度 ( -180度 ) を超えることはありません。
※入力角を定義づける線分のことを「ベクトル」とも呼びます。
1 は光が強くなるときの角度、0 は光が弱くなるときの角度です。
たとえば、入力角がライトベクトルと法線ベクトルのとき、
2 つの線分のなす角度が 0 度の場所はもっとも明るくなり、そのとき入力角は 1 となります。
逆に、2 つの線分のなす角度が 180 度 ( -180度 ) の場所は最も暗くなり、そのとき入力角は 0 になります。
角度なのに指定が 0 ~ 1 でわかりづらいと思いますが、これは計算をしやすいように個々の要素をなるべく 0 ~ 1 で表現しているためです。これを正規化と呼んでいます。
参照テーブルを使うと光の当たらないところの設定も可能であり、そのとき入力角の -1 ~ 0 を使用します。
ライトから見たモデルの裏側にも光を当てたいとき、
参照テーブルセットプロパティ内で参照テーブルの「絶対値(=常にプラス)」のチェックを外すと、
-1~1 にかけてのカーブを描くことができ、光源側から光の当たらないところまでの設定ができるようになります。
ライトの位置とモデルの頂点を結ぶ線分です。
モデルの表面に対し、どのようにライトが入ってきているか、になります。
モデル表面の法線のことです。
モデルがスムース設定をしている場合、任意の頂点の法線の向きは
隣り合うポリゴン同士の角度により確定します。
モデルを見ている視線とモデルの表面を結ぶ線です。
これだけちょっと難しいかもしれないですが、
ライトベクトルと視線ベクトルの作る角度の半分の位置にあるベクトルです。
中間なので「ハーフ」です。これはライトと視点の影響を受けます。
スペキュラーの設定に必要なベクトルです。詳しくは入力角の要素のところで説明します。

スペキュラー表現をするための入力角です。
スペキュラーの場合、法線・ライト・視線・反射の 4 ベクトルの影響を受けますが、
入力角の角度は 2 つのベクトルにより決定されるものなので、
この 4 ベクトルの影響を 2 つのベクトルに簡略化する役割をするのがハーフベクトルです。
スペキュラーが最大のとき、ライトの反射ベクトルと視線ベクトルが正対し、
さらにこのとき、ライトベクトルと視線ベクトルの中間のハーフベクトルが法線ベクトルに対し正対しています。
つまり、NHのなす角が 0 になるとスペキュラーが最大となるのです。

LN はライトと法線の関係で、ライトと法線が正対するところが明るくなり、正対しなくなるところは暗くなります。
また、ライトの位置や法線の向きにより照らされる部分の明るさが変わります。
この表現はもっとも基本的な CG のライティングであるディフューズ ( 拡散反射光 ) を表現するもので、
スペキュラーのように視点が変わってもモデルの照らされ方は変わりません。
CreativeStudioでは、基本的には、入力角LNとプライマリカラーが作るシェーディングは同じ役割をします。
LN の入力角を利用することで、フラグメントライトの向きに合わせモデルの色や陰影の入り方を調整でき、
また、参照テーブルの絶対値をオフにすることで、通常のライティングではできない
光の当たらない裏側のライティング設定も可能になります。

法線ベクトルと視線ベクトルの影響を受ける入力角です。視線ベクトルはカメラのことです。
カメラから見たモデルの法線の向きにより、光の強さや色を変えるシェーディング設定が可能です。
たとえば、カメラから見たモデルのキワを強調するような効果のあるリムライト表現は NVで作れます。
テクスチャマッピング手法におけるスフィアマッピングと考え方が似ています。
見る角度により反射率が変わる表現とも言えるため「フレネル反射」にも考え方が近いです。

視線ベクトル ( カメラ ) とハーフベクトルの影響を受ける入力角です。
ハーフベクトルはライトと視線ベクトルの中間ベクトルであり、VH のなす角度が 0 になるとき入力値が最大ですが、
このときライトもハーフベクトルと同じ位置に来るため、ライトとカメラは同じ所からモデルを見ていることになります。
また、VH は法線情報を見ないため、VH の設定をしているマテリアルはすべてが同じ明るさになります。
見え方の例としては、カメラの前に VH の設定をした透明の板を置くことで、
太陽の方向をみた時だけカメラの前がギラつくような表現ができると思います。

SP はスポットライトに使われるものです。
入力角はライトベクトルとスポットライトベクトルのなす角です。
CreativeStudio のスポットライトの向きを指定できますが、これはスポットライトベクトルで、
ライトベクトルというのはモデルの表面のある 1 点とライトを結ぶ線分のことです。
ライトベクトルとスポットライトベクトルが正対してる部分が明るくなります。
モデルの表面には目に見えない非常に細かな 凹凸 があります。
光はその細かな溝にも入り込み反射をするため、逆方向に跳ね返り目に届かない光も出てきます。
たとえば、髪の毛 1 本 1 本が作り出す細かな溝が髪の毛の陰影に影響を与えることはないですが、
髪の毛に反射する光は細かな溝にさえぎられ、結果天使の輪のようなハイライトが乗ることになります。
このマテリアル表面の細かな溝のことを「微小面」とか「マイクロファセット」と呼ぶのですが、
その細かな溝によるハイライトの変化をCreativeStudioでは入力角CPとタンジェントマップにより行っています。
CPは処理負荷がほかの入力角の要素に比べ重いため、効果的に使える場所のみで使用するのをお勧めします。

ライトと視点が同じであれば、同じ接平面のとある接断面上のピクセルは
ハーフベクトルの角度は違くとも交差ベクトルの向きがすべて同じとなるため、
接ベクトルとの角度が一定になり、参照テーブル横軸の同じ値を参照します。
よって、これをすべての断面で行うと、平面上であればCDのように、
曲面上であれば天使の輪のようなハイライトが入るようになります。
接平面とはモデルの法線と垂直な平面のことで、接ベクトルは接平面上にあるベクトルです。接ベクトルの確認は、Mayaであれば、 ディスプレイ > ポリゴン > 接線 で確認できます。

作成 > 参照テーブルセット で作成した参照テーブルセットを選択し、プロパティで新規カーブを作成し名前を変更します。
カーブのキーは S です。マウスポインタのある場所にキーが追加されます。
カーブは自由に書いて感覚をつかんでみてください。 ここでは絶対値についてだけ説明します。
絶対値のチェックがあるとマイナス値もプラスにしてしまうので、
このチェックを外すことで 0 ~ -1 の入力角の指定を有効にします。
あとはそのままカーブエディタを開き、カーブを作成するだけです。
2つのカーブを作成します。 1 つは絶対値があるので 0 ~ 1 でグラデーション、
もう1つは絶対値のチェックを外しているので -1 ~ 1 までのグラデーションです。
これを 2 つのモデルにそれぞれ入力角 LN で設定し、
コンバイナの指定はセカンダリのみにします。

プライマリのディフューズとセカンダリの LN はまったく同じことをしているので、コンバイナ式をプライマリ+セカンダリにする必要はないです。
シーンにはディレクショナルライトが真上から焚かれているだけです。
絶対値付きのライティング表現は業界的には「ハーフランバート」と呼ばれる表現とほぼ同じだと思います。
ライトが 1 つだけでもシェーディングが急激に暗くならず、柔らかい質感表現ができるのでリアルタイムレンダリングでは重宝されている技法です。
一通りの流れを説明しましたので、あとはこのページの最初のサンプルと同じものを実際に作ってみてください。