9_2_Directional_Light - gaj-cg/ray-mmd-docs-ja GitHub Wiki

9.ライト

9-2.Directional Light(指向性ライト、平行光)

Directional Lightは、遥か遠方からの照明で太陽光として利用されます。
このライトで作られる影は全て平行になるため、シーンの中でのライトの位置(座標)は照明効果に影響を与えません。つまり、何処に置いても結果は同じで、回転による向きだけが影響します。(距離による光源の減衰もありません。)

割り当てるfxファイルによって下記の効果が利用可能です。

ライト
あり

なし
スペキュラ
あり
スペキュラ
なし
GIF LED IBL フォグ
DirectionalLight
  • サンプル画像 9_2_DirectionalLight_v152 「光源位置」ボーンのx軸を135度回転して後上方からライトが当たるようにした状態。
    ※MMDのライトはray_controllerのSunLight-でオフにしています。

Directional Lightはシーン全体の影を計算する必要があるため、計算コストは全てのライトの中で最大です。(MMDが持つ照明も同様にDirectionalLightとして扱われます。)
MMD標準のライトと比較すると、ボーンの回転やIKで向きを決定出来るのが利点です。

Directional Light ファイル一覧

  • Lighting フォルダ

    ファイル名 説明
    DirectionalLight.pmx Directional Light のモデル兼コントローラー
  • Lighting\DirectionalLight フォルダ

    これらのファイルは特にユーザーが操作することはありません。

    ファイル名 設定先 タブ 説明
    directional_lighting.fxsub ―― Defaultフォルダ内のfxの共通処理
    PSSM.fxsub ―― 同フォルダのPSSM1~4.fx用の共通処理
    PSSM1~4.fx PSSM1~4 Directional Lightの影設定
    (_with_shadowのfxを割り当てると自動的に割り当てられる)
  • Lighting\DirectionalLight\Default フォルダ

    ライトの使用目的(影の有りなし、スペキュラの有りなし)でLightMapタブに設定するfxを選択します。

    ファイル名 設定先 タブ 説明
    directional_lighting.fx LightMap 影なし:DirectionalLight.pmxを追加した時にデフォルトで「LightMap」タブに設定される。
    directional_lighting_with_shadow.fx LightMap 影あり:
    directional_lighting_ambient.fx LightMap 影なし:_ambientはスペキュラ(ハイライト)が乗らない。
    directional_lighting_ambient_with_shadow.fx LightMap 影あり:
  • lighting用fxファイルの中身

    LIGHT_PARAMS_TYPE 1 で ambient light、SHADOW_MAP_FROM 1 で影あり。

    directional_lighting.fx directional_lighting_with_shadow.fx directional_lighting_ambient.fx directional_lighting_ambient_with_shadow.fx
    #define LIGHT_PARAMS_TYPE 0 0 1 1
    static const float3 lightBlink 0.0
    static const float3 lightColor 1.0
    static const float2 lightIntensityLimits float2(1.0, 10.0)
    #define SHADOW_MAP_FROM 0 1 0 1
    static const float2 shadowHardness float2(0.15, 0.5)
    static const float sampleRadius 2
    static const float sampleKernel[5] {0.1784, 0.210431, 0.222338, 0.210431, 0.1784}

Directional Light 使い方

  1. ライトモデルの追加
    DirectionalLight.pmxをMMDに追加します。

    「光源位置」ボーンでライトの位置、回転で向きを調整。光源の向きは「光源方向」IKボーンでも調整できます。
    どちらの場合も「光源位置」は向きを決めるための原点に過ぎないので、好きな場所に移動させても光源の向きには影響はありません。

    ※ 「Direction」ボーンは操作出来ないボーンです。

  2. fxファイルの割当
    Lighting\DirectionalLight\Default フォルダ内のfxLightMapタブでDirectionalLight.pmxに割り当てます。
    DirectionalLight.pmxを追加した時に、デフォルトでdirectional_lighting.fxが割り当てられています。

  3. モーフの設定
    必要に応じてDirectionalLight.pmxのモーフを設定します。
    最低限R+,G+,B+を調整しないと効果を確認出来ないでしょう。

    DirectionalLight.pmxそのものを表示させたくない場合は、LightMap以外のタブでDirectionalLight.pmxのチェックをオフにします。

Directional Light コントローラの説明

  • 表情操作パネル 左上

    表示名 機能
    R+ ライトの明るさ(Red)を調整します。
  • 表情操作パネル 右上

    表示名 機能
    G+ ライトの明るさ(Green)を調整します。
  • 表情操作パネル 左下

    表示名 機能
    B+ ライトの明るさ(Blue)を調整します。
  • 表情操作パネル 右下

    表示名 機能
    Range+ / Range- (本来なら光の届く範囲の増減だが、効果が確認出来ないので要調査)
    Intensity+ / Intensity- ライトの強度を調整します。
    Blink ライトの点滅を調整します。0で点滅無し、大きくなるほど早く点滅します。
    Hardness 本来なら下記のような機能だと思うが、最初からぼかしが無いので効果がみられない。
    (光があたっている所とあたっていない所の境界部分のぼかし具合の調整。値を大きくすると境界がくっきりします。
    影ありのfxをLightMapタブに設定した場合に有効。)

Model : Hatsune Miku V4X Model by Digitrevx / pose : 初音ミクホームポジション by Rick

⚠️ **GitHub.com Fallback** ⚠️