Blackbody ノード
説明
黒体放射の効果をシミュレートするグラデーション (Gradient) をサンプリングします。このノード内の計算は Mitchell Charity 氏の収集したデータに基づいて実行されます。このノードは、リニア RGB 空間で色を出力し、D65 白色点と CIE 1964 10°色空間を使用して変換を実行します。詳細は "What color is a blackbody?" を参照してください。
ポート
Name | Direction | タイプ | バインディング | 説明 |
---|---|---|---|---|
Temperature | 入力 | Vector 1 | なし | サンプリングする温度あるいは温度マップ (単位: ケルビン) |
Out | 出力 | Vector 3 | なし | 色の示す彩度の Vector 3 値 |
生成されるコードの例
以下のサンプルコードは、このノードの出力の一例を示したものです。
void Unity_Blackbody_float(float Temperature, out float3 Out)
{
float3 color = float3(255.0, 255.0, 255.0);
color.x = 56100000. * pow(Temperature,(-3.0 / 2.0)) + 148.0;
color.y = 100.04 * log(Temperature) - 623.6;
if (Temperature > 6500.0) color.y = 35200000.0 * pow(Temperature,(-3.0 / 2.0)) + 184.0;
color.z = 194.18 * log(Temperature) - 1448.6;
color = clamp(color, 0.0, 255.0)/255.0;
if (Temperature < 1000.0) color *= Temperature/1000.0;
Out = color;
}