ここでは、頂点ライティングについて説明します。
頂点ライティングに使用する計算式や、ライティング結果が出力されるまでの流れについては、別途用意されている「CTR-グラフィックス入門」を参照してください。
頂点ライティングとは頂点単位でライティングの計算を行う処理のことです。
光源の位置や色、頂点の位置などから、各頂点のカラー値(RGB)を計算した後、頂点間でカラー値を補間します。
以下の図は、頂点シェーダーで、頂点単位に陰影をつけたイメージです。
ここでは、頂点ライティングを行うさいの「ライト」と「マテリアル」の設定について説明します。
頂点ライトで使用できるライトの種類
●「ディレクショナルライト」「ポイントライト」「スポットライト」
●「半球ライト」
半球ライトは巨大な球体の内側から、照明と反射をライティングします。
一方の半球からスカイカラーを、もう一方の半球からグラウンドカラーをモデルに照射します。
シーンに合ったスカイカラーとグラウンドカラーを設定することで、間接光を受けているようなライティングをすることができます。
以下の表は、ライトの種類ごとの設定項目についてまとめたものです。
| カテゴリ | 項目 | 説明 |
|---|---|---|
| ライトの色 | アンビエントカラー ( 環境光 ) |
マテリアルのアンビエントカラーに影響を与える、ライトの色とアルファ値です。 |
| ディフューズカラー ( 拡散光 ) |
マテリアルのディフューズカラーに影響を与える、ライトの色とアルファ値です。 | |
| スカイカラー | 半球ライトで設定できるパラメータです。法線が上向きである頂点に影響を与えるライトの色です。 | |
| グラウンドカラー |
半球ライトで設定できるパラメータです。法線が下向きである頂点に影響を与えるライトの色です。 | |
| ライトの姿勢 | 位置 | ライトの位置です。頂点ライトにおいて、ワールド座標系で設定します。 |
| 方向 | ライトの方向です。頂点ライトにおいて、ワールド座標系で設定します。アニメーションのついているノードと階層を組むことで、上位の階層から値を受け継ぐことができます。 | |
| ライトの減衰率 | 距離減衰 | 光の届く距離を減衰率で指定します。ポイントライトとスポットライトで使用します。 |
| スポットライト減衰 | 光の届く範囲を参照テーブルを用いた減衰率で指定します。スポットライトで使用します。 | |
| スカイカラーウェイト | 半球ライトで設定できるパラメータです。スカイカラーウェイトの数値を 1 に近づけるとスカイカラーが強くなり、0 に近づけるとグラウンドカラーが強くなります。 |
以下の表は、マテリアルごとに設定できる項目についてまとめたものです。
| カテゴリ | 項目 | 説明 |
|---|---|---|
| 全般 | オクルージョンを有効にする | 半球ライトで設定できるパラメータです。 3DCG ツールで設定した頂点アルファを利用して、半球ライトの照射に変化を与えることができます。 項目の名称はオクルージョンですが、あくまで頂点アルファ利用して半球ライトの照射に変化を与えるための項目です。 一般的なアンビエントオクルージョンに限定された項目ではありません。 |
| マテリアルの色 | エミッションカラー ( 放射色 ) |
頂点ライティングでは使用しません。 |
| アンビエントカラー ( 環境色 ) |
物体の陰側を表現する色です。マテリアルで設定します。 | |
| ディフューズカラー ( 拡散色 ) |
物体表面の質感を表現する色です。マテリアルで設定します。 | |
| スペキュラーカラー 0 ( 鏡面色 0 ) |
頂点ライティングでは使用しません。 | |
| スペキュラーカラー 1 ( 鏡面色 1 ) |
頂点ライティングでは使用しません。 | |
| シーン全体の環境光 | グローバルアンビエントカラー | 頂点ライティングでは使用しません。 |
| ハイライトの制御 | 分布 0 | 頂点ライティングでは使用しません。 |
| 分布 1 | 頂点ライティングでは使用しません。 | |
| 反射 | 頂点ライティングでは使用しません。 | |
| フレネル | 頂点ライティングでは使用しません。 |
マテリアルカラーとは、頂点ライティングの計算に必要な、ポリゴンモデルのカラーです。 2 種類のカラーを設定できます。
以下の図は、左上方向から光があてられた球体モデルを例に、各マテリアルカラーの場所を示したものです。