void njCnkSetIntensityLightMode( eLight, eMode )
NJD_CNK_INTENSITY_LIGHT eLight
NJD_CNK_INTENSITY_MODE eMode
eLight ライト番号 eMode ライト種類
なし
インテンシティライトの種類を設定します。ライト番号にはNJD_CNK_INTENSITY_LIGHT_0〜7が指定できます。 ライトの種類は以下の3つがあります。
定義 意味 NJD_CNK_INTENSITY_MODE_DIR 平行光源 NJD_CNK_INTENSITY_MODE_POINT 点光源 NJD_CNK_INTENSITY_MODE_DIR_POINT 平行点光源
njCnkSetIntensityLightMode( NJD_CNK_INTENSITY_LIGHT_0, NJD_CNK_INTENSITY_MODE_DIR ); njCnkSetIntensityLightMode( NJD_CNK_INTENSITY_LIGHT_1, NJD_CNK_INTENSITY_MODE_POINT ); njCnkSetIntensityLightMode( NJD_CNK_INTENSITY_LIGHT_2, NJD_CNK_INTENSITY_MODE_DIR_POINT );
平行点光源とはモデルの方向を向く平行光源です。■ライトの計算
ディフューズの合計値を初期化
TotalDiff = 0.fスペキュラの合計値を初期化
TotalSpec = 0.f(1)平行光源と平行点光源の場合
i = Normal・Vector頂点の法線と光源ベクトルとの内積/結果が負の場合は計算打ち切り
TotalDiff += Diff * i
Diffはディフューズ強度
TotalSpec += Spec * i^Exp
Specはスペキュラ強度、Expはエクスポーネント(2)点光源の場合
i = Normal・Vector
頂点法線と光源から頂点へのベクトルとの内積/結果が負の場合は計算打ち切り/距離がファーレンジを超えている場合は打ち切り
d = Diff * iDiffはディフューズ強度
s = Spec * i^Exp
Specはスペキュラ強度、Expはエクスポーネント距離がニアレンジ内のときは次の減衰処理はスキップ
d *= i * Near * Near / Range * Range
s *= i * Near * Near / Range * Range
距離の2乗で割って減衰させた後にニアを掛ける
TotalDiff += d
TotalSpec += s以上の計算を光源毎にやったあとに
TotalDiff += OffsDiffOffsDiffはディフューズのオフセット値
TotalSpec += OffsSpecOffsSpecはスペキュラのオフセット値
最終的な頂点カラーは以下のようになります。
ディフューズカラー
α = マテリアルのα
R = DiffColor.R * TotalDiff
G = DiffColor.G * TotalDiff
B = DiffColor.B * TotalDiffスペキュラカラー
R = SpecColor.R * TotalSpec
G = SpecColor.G * TotalSpec
B = SpecColor.B * TotalSpec
njCnkSetIntensityLightSwitch() インテンシティライトのオンオフ njCnkSetIntensityLightVector() インテンシティライトの平行光源のベクトルの設定 njCnkSetIntensityLightPoint() インテンシティライトの点光源、平行点光源の位置の設定 njCnkSetIntensityLightExp() インテンシティライトのエクスポーネントを設定します njCnkSetIntensityLightSet() インテンシティライトの強度の設定 njCnkSetIntensityLightRange() インテンシティライトの点光源のレンジの設定 njCnkSetIntensityLightDiffColor() インテンシティライトのディフューズカラーを設定します。 njCnkSetIntensityLightSpecColor() インテンシティライトのスペキュラカラーを設定します。 njCnkSetIntensityLightOffset() インテンシティライトのオフセットを設定します。 njCnkSetIntensityLightConst() インテンシティライトのコンスト値を設定します。 njCnkSetIntensityLightEnvRatio() インテンシティライトの環境マップの比率の設定