フェノメナ

実際の用途には、付属のフェノメナで十分なことが多いので、付属のフェノメナを最初に説明します。経験豊富なユーザは、これらをテンプレートしてオリジナルのフェノメナを作成したり、高度なトピックで説明するコンポーネント シェーダを使用したりすることができます。これらのフェノメナは入力パラメータを論理グループにグループ化するための構造を使用します。この論理グループは、mental ray の各種 OEM 統合のユーザインタフェースによって、自動的にグループ化されます。

高速、単純フェノメナ

このフェノメナは(明示的に指定しない限り)自動的に必要なライトマップを生成し、ライトマップデータを入力し、サブサーフェス スキャタリングを使用した一般的な半透明のオブジェクトとしてオブジェクトをシェーディングします。散乱は 2 つに分けて行われ、1 つはオブジェクトの前面、もう 1 つはオブジェクトの面について行います。

シェーダはいくつかのライトの成分を重ね合わせること(misss_fast_shader 参照)によって動作し、最終結果を得ていると言うこともできます。以下の法則を念頭においておきましょう。


カラーのフロー
misss_fast_simple_phen
material "misss_fast_simple_phen" (
    color texture   "lightmap",
    color texture   "depthmap",
    string          "lightmap_group",
    scalar          "lightmap_size",
    integer         "samples",
    shader          "bump",
    struct "d" {
        color       "ambient",
        color       "overall_color",
        color       "diffuse_color",
        scalar      "diffuse_weight",
        color       "front_sss_color",
        scalar      "front_sss_weight",
        scalar      "front_sss_radius",
        color       "back_sss_color",
        scalar      "back_sss_weight",
        scalar      "back_sss_radius",
        scalar      "back_sss_depth"
    },
    struct "s" {
        color       "specular",
        scalar      "exponent"
    },
    struct "a" {
        scalar      "lightmap_gamma",
        boolean     "indirect",
        scalar      "scale_conversion",
        scalar      "scatter_bias",
        scalar      "falloff",
        boolean     "screen_composit"
    },
    integer         "mode",
    array light     "lights")
lightmap
depthmap
通常は指定しません。これらは、シェーダがシェーダ間で自動的に作成されたライトマップの名前を伝達するために使用する、特殊なパラメータです。経験豊富なユーザは書き込み可能なテクスチャを渡し、lightmap_group および lightmap_size の両パラメータを未定義にしておくことができます。詳細は、自動でライトマップを生成するを参照してください。
lightmap_group
散乱グループの名前です。ライトマップ/デプスマップのペアが内部的に作成され、この名前が付けられます。相互の内部に光を散乱するすべてのオブジェクトは、同じ散乱グループに属する必要があります。メモリを節約するために、散乱グループの数はできるだけ少なくします。人の手や顔などは、同じ散乱グループを使用できます(異なる複数の人物の手や顔であってもその方が効率的です)。一般に、別の散乱グループを使用する必要があるのは、同じグループを使用することが原因となってオブジェクトが相互の内部に不正確に散乱され、可視の問題が発生する場合のみです。たとえば、2 人のキャラクタが握手する場合には、2 人の手を別の散乱グループに属させる必要があります(ネットワーク レンダリングの注意事項も参照してください)。
lightmap_size
ライトマップのサイズをレンダー サイズのパーセンテージで指定します。ライトマップはレンダー空間に作成され、ファイナル レンダーのスクリーン ピクセルに関連付けられます。50 %以下でも十分な場合もあります(既定でもあります)が、エッジ アーティファクトが見受けられた場合にはこの値を増加します。
samples
レンダリング後の個々のレイごとに、ライトマップからのサンプル量を(最大で)どれほど考慮するかを、できれば 2 の累乗で設定します。使用可能な範囲での最小値は 32 で、通常は 128 で十分です。ただし、散乱の半径が大きい場合は、イメージノイズを回避するためにサンプル数を増加する必要があります。
bump
法線を摂動させることですべてのシェーダーにバンプを与えます。シェーダのカラー出力(設定されている場合)は使用されません。
ambient
任意のシェーダによって追加されるアンビエント コンポーネントまたは追加の拡散ライトです。このライトはライトマップにも追加され、他の光源と同じように散乱されるため、HDRI ライトを追加するのに適した場所です。HDRI ライトは環境マップおよびオクルージョン マップに基づきます。
overall_color
全体的な拡散カラーです。これに続くすべての拡散カラーにこのグローバル カラーが乗算されて、最終結果が得られます。このパラメータは最終的に計算された拡散カラーを要求に応じて色づけする場合や、すべての拡散光を減衰するようなマップを適用する場合に便利です。たとえば、ほくろはその下からの光をほぼすべて遮るため(散乱があったとしても)、汚れやテクスチャリングされた眉などと同様にこのシェーダの用途として考えられます。
diffuse_color
diffuse_weight
通常の Lambert の拡散ライティングのカラーとウェイト(簡単に調整を行うための単純な乗数)で、配下にある散乱された拡散光の上位にレイヤー化されます。
front_sss_color
front_sss_weight
前面サーフェス スキャタリングに使用するカラーとウェイトです。
front_sss_radius
前面サーフェスの散乱半径です。光はサーフェス上でこの距離を散乱し、モデルの作成に使用された単位に関わらず、サーフェス上で scale_conversion パラメータによって除算されます。
back_sss_color
back_sss_weight
後面サーフェス スキャタリング(すなわちオブジェクトを貫通する光)に使用するカラーとウェイトです。
back_sss_radius
back_sss_depth
後面サーフェスからの光が前面サーフェスで可視である場合の散乱の半径および深度です。半径と深度は同じ値に設定するのが普通です(深度が指定されていない場合には既定で半径と同じ値に設定されます)が、個別に設定してより詳細にコントロールすることもできます。
specular
exponent
スペキュラ ハイライトで使用するスペキュラ カラーおよび phong の指数です。
lightmap_gamma
ライトマップに格納される光のガンマ曲線です。この値が 1.0 の場合は、通常の Lambert 拡散光が格納されます。1.0 よりも小さい場合は、曲線は「フラット化」され、光は入射する光に対して垂直な領域に向かって放出されます。1.0 よりも大きい場合は、曲線は「狭め」られ、光は光源に垂直に面した領域に集中します。0.4 から 0.8 までの範囲で十分な場合がほとんどです。
indirect
true の場合は、ライトマップに含まれるすべての間接ライティング(フォトン、ファイナル ギャザー、その他)が散乱されます。この処理はレンダリング時間を要するため、散乱が見て取れるほど間接ライトの影響があるか、わざわざレンダリング時間を費やすに値するほどの差がないかを、1 つ 1 つ判断しなくてはなりません。
scale_conversion
すべての距離をリニアに分割できる単純なユーティリティ機能です。散乱は距離に依存するので、インチ単位を使用したモデル用に設計されたマテリアルをメートル単位のモデルにロードしてもうまくいかなかったり、またその逆のこともあります。そのような場合は、ここで変換係数を渡します。
scatter_bias
0.0 に設定すると散乱は完全に均等になります。正の値では前面に多く散乱、負の値では後面に多く散乱します。可能な範囲は -1.0 から 1.0 までですが、実際に役に立つ範囲はさらに狭くなります。まず 0.1(わずかに前面に多く散乱より)から始めるとよいでしょう。
falloff
散乱半径に沿った距離減衰のシェイプを設定します。この値が高いほど減衰は急になり、低いほど緩やかな減衰になりますが、同時に明確な散乱距離も短くなるので、もう少し「ソフトな」外観を得たいという場合には、実際の散乱距離を長くすることによって埋め合わせる必要があります。値が高い場合(1.0 から 10.0)は、散乱半径よりも小さいサンプルのうちほぼすべてのウェイトが同等になります。値が低い場合(0.1 から 1.0)は、散乱半径のエッジに近いサンプルのウェイトは少なくなります。
screen_composit
オンにした場合は、スクリーン合成が選択されます。多数のライトのレイヤの成分を単純に加算すると、露出過多で白飛びしてしまいがちですが、人間の目は本質的にリニアではなく、別の方法で強度を感知します。このオプションでは、多くの合成アプリケーションでレイヤ間におけるスクリーン転送モードと呼ばれる、よりソフトでより見栄えのよい結果を生み出す機能を使用できます。オフにした場合は、通常の追加が使用されます。ハイダイナミックレンジでレンダリングし、最終出力段階ですでに最終的な輝度を圧縮して適切なトーンオペレータを適用してあるのであれば、このオプションはオフにします。
mode
ライト リストで使用するモード セレクタです。
lights
直接ライトのリストです。

高速スキン フェノメナ

スキン シェーディング用のより高度なフェノメナには、3 レイヤ散乱およびスキン固有の鏡面反射性機能があります。多くのパラメータは misss_fast_simple_phen と共有です。


スキン シェーダの構造

レイヤにおけるスキンのシミュレートは、最上位の反射光沢レイヤ(鏡面反射性およびサーフェスの非散乱 Lambert 拡散反射に使用)、二重レイヤのサブサーフェス スキャタリング(表皮とその下のレイヤ(ここでは集合的に「皮下」と呼びます)における散乱をシミュレート)、後面からの「貫通」散乱によって実現されます。

misss_fast_skin_phen
material "misss_fast_skin_phen" (
    color texture   "lightmap",
    color texture   "depthmap",
    string          "lightmap_group",
    scalar          "lightmap_size",
    integer         "samples",
    shader          "bump",
    struct "d" {
        color       "ambient",
        color       "overall_color",
        color       "diffuse_color",
        scalar      "diffuse_weight",

        color       "front_sss_color",
        scalar      "front_sss_weight",
        scalar      "front_sss_radius",
        color       "mid_sss_color",
        scalar      "mid_sss_weight",
        scalar      "mid_sss_radius",
        color       "back_sss_color",
        scalar      "back_sss_weight",
        scalar      "back_sss_radius",
        scalar      "back_sss_depth"
    },
    struct "s" {
        scalar      "overall_weight",
        scalar      "edge_factor",
        color       "primary_spec_color",
        scalar      "primary_weight",
        scalar      "primary_edge_weight",
        scalar      "primary_shinyness",

        color       "secondary_spec_color",
        scalar      "secondary_weight",
        scalar      "secondary_edge_weight",
        scalar      "secondary_shinyness",

        scalar      "reflect_weight",
        scalar      "reflect_edge_weight",
        scalar      "reflect_shinyness",
        boolean     "reflect_environment_only",
        shader      "environment"
    },
    struct "a" {
        scalar      "lightmap_gamma",
        boolean     "indirect",
        scalar      "scale_conversion",
        scalar      "scatter_bias",
        scalar      "falloff",
        boolean     "screen_composit"
    },
    integer         "mode",
    array light     "lights")

パラメータ lightmapdepthmaplightmap_grouplightmap_sizesamplesbumpambientlightmap_gammaindirectscale_conversionscatter_biasfalloffscreen_composit はすべて misss_fast_simple_phen における各パラメータと同じように動作します。

overall_color
すべての拡散コンポーネントの全体的な配色です。このカラーは配下にあるすべてのレイヤ(非散乱、表皮、皮下、後面)に影響し、全体的なカラーの調整およびほくろ、テクスチャリングした眉、汚れなどといった、その下の光を遮るようなサーフェスフィーチャのテクスチャ マッピングに使用します。
diffuse_color
diffuse_weight
通常の Lambert 拡散コンポーネントのカラーとウェイトです。小さなバンプがすべて配置される、スキンの最上位のレイヤーを表します。白色人種のスキンの場合は、カラーはほぼ白色(場合によってはわずかに青を加えたもの)、適切な拡散のウェイトは 0.3 前後になります。
front_sss_color
front_sss_weight
front_sss_radius
表皮のスキンレイヤ内のカラー、ウェイト、散乱半径で、表面の下にある白または黄色がかったレイヤです。適切な値は、わずかに黄色がかったカラーに、ウェイトは 0.5、半径は 5mm から 10mm (0.2 インチから 0.4 インチ)程度です。
mid_sss_color
mid_sss_weight
mid_sss_radius
皮下のスキン レイヤのカラー、ウェイト、散乱半径です。これらのパラメータの機能は front_ で開始されるもののパラメータと同じですが、これは上位のレイヤの下にある別のレイヤのもので、より深く赤みがかった「肉」らしい散乱です。赤みまたはオレンジがかったカラーに 0.5 前後のウェイト、10mm から 25mm (0.4 インチから 1.0 インチ)程度の半径から試してみるとよいでしょう。
back_sss_color
back_sss_weight
back_sss_radius

back_sss_depth
肉をまっすぐに貫通する光を表します(「耳が赤くなる」様子など)。
overall_weight
鏡面反射性および反射の全体的なレベルです。一般に、あらゆる鏡面反射性マップはここで追加され、その後関連するすべての鏡面反射性オプションのレベルに影響します。
edge_factor
エッジ反射エフェクトの「エッジの幅」を設定します。スキンの反射はほぼ垂直に近い角度から見たときに最大になります(「フレネル効果」と呼ばれます)が、このパラメータはこのエッジの最も細い幅を設定します。値を大きくするほどエッジが狭くなっていきます。このエッジ幅は以下にリストされるすべてのエッジのウェイトに適用されます。
primary_spec_color
primary_spec_weight
鏡面反射性のある最初のレイヤで使用するカラーとベース ウェイトです。スキンの鏡面反射性機能は 2 層構造で、スキンの幅広いソフトな鏡面反射性と、最上位のレイヤの油分および水分による反射に近い鏡面反射性の両方をシミュレートできます。
primary_edge_weight
エッジにおける最終的な鏡面反射性が weight edge weight の合計になるような、エッジ用の追加の乗数を設定します。
primary_shinyness
スペキュラ指数です。値が大きいほど小さく鋭いスペキュラ ハイライト(エッジをソフトにした phong モデルの変形)が作成されます。
secondary_spec_color
secondary_spec_weight

secondary_edge_weight
secondary_shinyness
primary_ で始まるパラメータとまったく同じように動作する、鏡面反射性のある 2 つ目のレイヤー用のパラメータです。スキンの場合は、最初のスペキュラレイヤの光沢を非常に低く(3.0 から 8.0)、かつレベルも低く(0.1 から 0.3)しておき、エッジ ウェイトは高く(0.5 から 1.0)、わずかに青みがかったカラーにしておき、2 つ目のレイヤでは光沢を高く(20 から 100)、レベルは中程度(0.3 から 0.6)にし、エッジの強調は行わない、というのが一般的な指針です。鏡面反射性チャネルにマッピングを追加すると、リアルさが大幅に向上します。
reflect_weight
reflect_edge_weight
反射のウェイトとエッジ ウェイトです。この値がゼロ以外である場合は、実際の(光沢のある)反射が追加されます。
reflect_shinyness
光沢のある反射の光沢の値です。0.0 の場合は、標準のレイトレースされたミラー反射が使用されますが、ゼロ以外の値の場合は光沢のある反射が生成され、レンダリング時間が増加します。
reflect_environment_only
true の場合は現在の環境マップが反射用にサンプリングされ、実際のレイはトレーシングされません。
environment
ローカル環境シェーダを指定します。
mode
ライト リストで使用するモード セレクタです。
lights
直接ライトのリストです。

ディスプレイスメントによる高速スキン

このフェノメナは misss_fast_skin_phen とまったく同じものですが、ディスプレイスメント マッピングをサポートしています。個別のフェノメナとして提供されている理由は、ディスプレイスメントを使用したフェノメナは常にオブジェクトをディスプレイスしようと試みるためです。

misss_fast_skin_phen_d
material "misss_fast_skin_phen_d" (
    color texture   "lightmap",
    color texture   "depthmap",
    string          "lightmap_group",
    scalar          "lightmap_size",
    integer         "samples",
    shader          "displace",
    shader          "bump",
    struct "d" {
        ...
    }
    integer         "mode",
    array light     "lights")
displace
サーフェスをディスプレイスするシェーダです。

その他のパラメータはすべて misss_fast_skin_phen と同じです。

新しい高速スキン 2

このフェノメナは misss_fast_skin_phen に似ていますが、次の 2 つの重要な違いがあります。
misss_mia_skin2_phen
material "misss_mia_skin2_phen" (
    color texture  "lightmap",
    color texture  "depthmap",
    string         "lightmap_group",
    scalar         "lightmap_size" default 50,
    integer        "samples" default 64,
    shader         "bump",
    struct "d" {
        color   "ambient"           default 0 0 0 0 ,
        boolean "ao_on"             default on,
        scalar  "ao_distance"       default 1.0,
        integer "ao_samples"        default 16,
        color   "diffuse_color"     default .95 .95 1 ,
        scalar  "diffuse_roughness" default 0.3,
        scalar  "diffuse_weight"    default 0.5 ,

        color   "epi_sss_color"         default 1 0.85 0.6 ,
        scalar  "epi_sss_weight"        default 0.5 ,
        vector  "epi_sss_radius"        default 20 10 5,
        color   "epi_sss_radius_mod"    default 1 1 1,

        color   "front_sss_color"       default 1 0.85 0.6 ,
        scalar  "front_sss_weight"      default 0.5 ,
        vector  "front_sss_radius"      default 20 10 5,
        color   "front_sss_radius_mod"  default 1 1 1,

        color   "back_sss_color"        default 0.7 0.1 0.1 ,
        scalar  "back_sss_weight"       default 0.5,
        vector  "back_sss_radius"       default 20 10 5,
        color   "back_sss_radius_mod"   default 25,
        scalar  "back_sss_depth"        default 25,
        scalar  "sampling_radius_mult"  default 5
    },
    struct "r" {
        scalar  "reflectivity"        default 0.5,
        color   "refl_color"          default 0.75 0.9 1,
        scalar  "brdf_90_degree_refl" default 1.0 ,
        scalar  "brdf_0_degree_refl"  default 0.025 ,
        scalar  "refl_gloss"          default 0.25,
        integer "refl_samples"        default 16,
        scalar  "refl_falloff_dist"   default 0.0,
        scalar  "hl_vs_refl_balance"  default 1.0,
        boolean "refl_hl_only"        default off,
        boolean "single_env_sample"   default off,
        shader  "environment",
        boolean "refl_interpolate"    default off
    },
    struct "s" {
        scalar  "overall_weight" default 0.8,
        scalar  "edge_factor" default 5.0, 
        color   "primary_spec_color" default 0.75 0.9 1,
        scalar  "primary_weight" default 0.3,
        scalar  "primary_edge_weight" default 0.8 ,
        scalar  "primary_shinyness" default 5.0 ,

        color   "secondary_spec_color" default 0.9 0.95 1.0 ,
        scalar  "secondary_weight" default 0.3,
        scalar  "secondary_edge_weight" default 0.0,
        scalar  "secondary_shinyness" default 33.0
    },
    struct "i" {
        integer "intr_grid_density"   default 2,
        integer "intr_refl_samples"   default 2
    },
    struct "a" {
        scalar  "lightmap_gamma"   default 0.75,
        boolean "indirect" default on,
        scalar  "scale_conversion" default 1.0,
        scalar  "scatter_bias"     default 0.12,
        boolean "screen_composit"  default off,
        color   "additional_color" default 0 0 0
    },
    integer     "mode",      
    array light "lights")

次のパラメータが使用されます。

lightmap
depthmap
lightmap_group
samples
bump
これらはすべて misss_fast_skin_phen と同じように動作します。
ambient
ao_on
ao_distance
ao_samples
組み込みの mia_material のパラメータです。 これにより、間接光(または用意されているアンビエント ライティング条件)にディテール強化として適用される組み込みのアンビエント オクルージョンを使用できます。 詳細は、mia_material のドキュメントを参照してください。
diffuse_color
mia_material の拡散カラーです。 これは機能的には misss_fast_skin_phenunscattered_diffuse と同じです。
diffuse_roughness
拡散 Oren-Nayar の粗さです。 範囲は 0.0 ~ 1.0 です。ゼロの場合は、均等拡散シェーディングが使用されます。
diffuse_weight
散乱されない拡散成分の量です。
epi_sss_color
epi_sss_weight
前述の「表皮」散乱のカラーとウェイトです。
epi_sss_radius
epi_sss_radius_mod
赤、緑、青のそれぞれの散乱半径を示すベクトルとこれらの半径に変更を適用するためのカラー値です。 この 3 つの半径と色の変更の動作の詳細は、misss_fast_shader2 のドキュメントを参照してください。
sub_sss_color
sub_sss_weight
sub_sss_radius
sub_sss_radius_mod
皮下散乱に相当するパラメータです。
back_sss_color
back_sss_weight
back_sss_radius
back_sss_radius_mod
back_sss_depth
後面(貫通)散乱に相当するパラメータです。 追加の depth パラメータがあります。このパラメータをゼロに設定すると、赤の半径と同じ深度が適用されます。
sampling_radius_mult
実際のサンプルを取得する範囲の半径を(前の半径のうち最大のものの倍数として)設定します。 このパラメータが散乱半径に関してどのように動作するかについての技術的な詳細は、misss_fast_shader2 のドキュメントを参照してください。
reflectivity
refl_color
マテリアルの全体的な反射とカラーです。 反射はすべて、組み込みの mia_material によって処理されます。
brdf_90_degree_refl
brdf_0_degree_refl
法線に対する 90 度(グレージング角度)および 0 度(入射角度)の反射です。 古い misss_skin_specular シェーダの「エッジ」反射パラメータに似た、カスタマイズされたフレネル効果が得られます。
refl_gloss
refl_samples
反射の光沢とそのレンダリングに使用されるサンプル(レイ)の数です(mia_material のパラメータです)。
refl_falloff_dist
ゼロ以外の値に設定すると、反射をレイの長さに制限してパフォーマンスを向上させることができます。 これは古いフェノメナの reflect_environment_only に似ていますが、粗雑なオン/オフ スイッチの代わりに実際の反射をレンダリングする範囲の距離を使用できます。
hl_vs_refl_balance
refl_hl_only
single_env_sample
refl_interpolate
これらはすべて、組み込みの mia_material の高度な反射パラメータです。 詳細は、このシェーダのドキュメントを参照してください。これらは高度な用途向けのパラメータであり、既定値はほとんどの物理的に正確な結果に適しています。
refl_interpolate
intr_grid_density
intr_refl_samples
mia_material の補間された(滑らかな)光沢のある反射のパラメータです。 補間はアニメーション用に最適化されていないことに注意してください。なぜなら、このアルゴリズムはフレーム間の密着性を保証するものではなく、高解像度の静止画をレンダリングすることをより大きな目的としているからです。
overall_weight
edge_factor
primary_spec_color
primary_weight
primary_edge_weight
primary_shinyness
secondary_spec_color
secondary_weight
secondary_edge_weight
secondary_shinyness
このフェノメナの鏡面反射の大部分は mia_material に含まれているものですが、コントロール性を高めるために、misss_skin_specular のインスタンスも組み込まれています。 これらはそのシェーダのパラメータで、鏡面反射の複数のレイヤを追加するために使用できます。
additional_color
このシェーダの全体の出力に単に追加される追加の入力です。 これを使用すると、サーフェスの放射領域を追加したり、他のシェーダを重ね合わせ方式で接続することができます。
lightmap_gamma
indirect
scale_conversion
scatter_bias
screen_composit
mode
lights
これらはすべて misss_fast_skin_phen と同じように動作します。

ディスプレイスメントによる高速スキン 2

このフェノメナは misss_mia_skin2_phen とまったく同じものですが、ディスプレイスメント マッピングをサポートしています。 個別のフェノメナとして提供されている理由は、ディスプレイスメントを使用したフェノメナは常にオブジェクトをディスプレイスしようと試みるためです。

misss_mia_skin2_phen_d
material "misss_mia_skin2_phen_d" (
    color texture   "lightmap",
    color texture   "depthmap",
    string          "lightmap_group",
    scalar          "lightmap_size",
    integer         "samples",
    shader          "displace",
    shader          "bump",
    struct "d" {
        ...
    }
    integer         "mode",
    array light     "lights")
displace
サーフェスをディスプレイスするシェーダです。

その他のパラメータはすべて misss_mia_skin2_phen と同じです。

分割フェノメナ

上の例はすべてマテリアル フェノメナです。用意されている機能のみを使用する場合はこれで十分です。すべての機能を使いやすい単一のパッケージに自動的にパッケージ化したり、ライトマップを自動的に接続したりできるからです。

ただし、外観のコントロール性を高めるためにシェーダを結合する必要が生じることがあります。このような場合には、事前にパッケージ化されたフェノメナでは不十分です。 このため、分割フェノメナが用意されています。 これは単にライトマッピング用とサーフェス シェーディング用にそれぞれ個別のフェノメナが用意されているという意味です。これらのフェノメナを機能させるには、書き込み可能なテクスチャを使用して両フェノメナを接続する必要があります

misss_lightmap_phen
        struct {
                vector      "point",
                vector      "normal"
                }
        "misss_lightmap_phen" (
                color texture "lightmap",
                boolean       "indirect"       default off,
                scalar        "lightmap_gamma" default 0.75,
                scalar        "scatter_bias"   default 0,
                color         "ambient"        default 0 0 0,
                integer       "mode"           default 4,
                                               #: property "lightmode"
                array light   "lights"         #: property "lightlink"
        )
これはライトマッピング シェーダと既定のライトマッピング サンプリング シェーダを接続するだけの非常に単純なフェノメナです。 このフェノメナはマテリアルのライトマッピング スロットに接続する必要があります。
lightmap
シェーダが出力を書き込む書き込み可能なテクスチャです。 シェーダは隣接するテクスチャに異なるデータを格納するため、テクスチャには光をサンプリングする解像度の 2 倍の幅が必要です。たとえば、1000x500 のテクスチャの場合、実際には 500x500 の解像度のデータがテクスチャの前面と後面の両方に格納されます。
lightmap_gamma
均等拡散シェーディングの法線余弦減衰に適用される曲線です。これを使用すると、拡散光の幅を広げたり狭めたりできます。 通常、これは 0.75 に設定します。この値に設定すると、サブサーフェス ライトが標準の均等拡散シェーディングよりもやや遠くに放出されます。
scatter_bias
0.0 に設定すると散乱は完全に均等になります。正の値では前面に多く散乱、負の値では後面に多く散乱します。可能な範囲は -1.0 から 1.0 までですが、実際に役に立つ範囲はさらに狭くなります。まず 0.1 (わずかに前面に多く散乱より)から始めるとよいでしょう。
ambient
ライトマップに含まれているアンビエント コンポーネントで、他の光源と同じように散乱されます。
mode
ライト リストで使用するモード セレクタです。
lights
直接ライトのリストです。
misss_mia_skin2_surface_phen
上記のライトマッピング シェーダに対応するサーフェス シェーダで、マテリアルのサーフェス シェーディング スロットに挿入されます。サーフェス シェーディング スロットが他のものと組み合わされている場合は、サーフェス シェーディング スロットに放射するシェード ツリーに挿入されます。
    "misss_mia_skin2_surface_phen" (
        color texture  "lightmap",
        integer        "samples" default 64,
        vector         "bump"           default 0 0 0,
        
        color   "ambient"               default 0 0 0 0 ,
        boolean "ao_on"                 default on,
        scalar  "ao_distance"           default 1.0,
        integer "ao_samples"            default 16,
        color   "diffuse_color"         default .95 .95 1 ,
        scalar  "diffuse_roughness"     default 0.3,
        scalar  "diffuse_weight"        default 0.5,

        color   "epi_sss_color"         default 1 0.85 0.6 ,
        scalar  "epi_sss_weight"        default 0.5 ,
        vector  "epi_sss_radius"        default 20 10 5,
        color   "epi_sss_radius_mod"    default 1 1 1,

        color   "front_sss_color"       default 1 0.85 0.6 ,
        scalar  "front_sss_weight"      default 0.5 ,
        vector  "front_sss_radius"      default 20 10 5,
        color   "front_sss_radius_mod"  default 1 1 1,

        color   "back_sss_color"        default 1 0.85 0.6 ,
        scalar  "back_sss_weight"       default 0.5,
        vector  "back_sss_radius"       default 20 10 5,
        color   "back_sss_radius_mod"   default 1 1 1,
        scalar  "back_sss_depth"        default 0,
        scalar  "sampling_radius_mult"  default 5,

        scalar  "reflectivity"          default 0.5,
        color   "refl_color"            default 0.75 0.9 1,
        scalar  "brdf_90_degree_refl"   default 1.0 ,
        scalar  "brdf_0_degree_refl"    default 0.025 ,
        scalar  "refl_gloss"            default 0.25,
        integer "refl_samples"          default 16,
        scalar  "refl_falloff_dist"     default 0.0,
        scalar  "hl_vs_refl_balance"    default 1.0,
        boolean "refl_hl_only"          default off,
        boolean "single_env_sample"     default off,
        shader  "environment",
        boolean "refl_interpolate"      default off,

        scalar  "overall_weight"        default 0.8,
        scalar  "edge_factor"           default 5.0, 
        color   "primary_spec_color"    default 0.75 0.9 1,
        scalar  "primary_weight"        default 0.3,
        scalar  "primary_edge_weight"   default 0.8 ,
        scalar  "primary_shinyness"     default 5.0,

        color   "secondary_spec_color"  default 0.9 0.95 1.0 ,
        scalar  "secondary_weight"      default 0.3,
        scalar  "secondary_edge_weight" default 0.0,
        scalar  "secondary_shinyness"   default 33.0,

        integer "intr_grid_density"     default 2,
        integer "intr_refl_samples"     default 2,

        scalar  "lightmap_gamma"        default 0.75,
        boolean "indirect"              default on,
        scalar  "scatter_bias"          default 0.12,
        boolean "screen_composit"       default off,
        color   "additional_color"      default 0 0 0,

        integer "mode"                  default 4, 
        array light "lights"
    )
このパラメータ セットは、構造体に収集される点を除いて上記のマテリアル フェノメナとまったく同じです。 詳細は、misss_mia_skin2_phen のドキュメントを参照してください。

Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.