


Verは5.44です
【初めに】
上記の記事の続きのポスプロ用マテリアルの中身になります
【ポスプロの中身】

左上のSceneTextureにはPostProcessinput0
を選択しましょう
float3 OUT = float3(0,0,0);
float3 Grey = float3(0,0,0);
float Greyf = 0;
Grey_Scale = saturate(Grey_Scale); //Lerp用なので0-1に変換
OUT = Base.rgb; //出力用
Reduction = floor*1; //減色処理用、0-1を2-255に変換
Greyf = (OUT.r+OUT.g+OUT.b)/3; //グレー用のFloat変換
Grey = pow(float3(Greyf,Greyf,Greyf),Grey_Pow); //グレーをベクトルに戻して累乗を行う
Grey = floor(Grey * Reduction) / (Reduction-1); //減色処理の適応
OUT = lerp(OUT,Grey,Grey_Scale); //グレスケの適応
OUT = OUT * MultColor.rgb; //色乗算
OUT = OUT + (AddColor.rgb * AddColor.a); //色加算
OUT = lerp(OUT,OUTColor.rgb,OUTColor.a); //色加算の影響度適応
return OUT;
カスタムノードのコードは上記になっています
パラメータ名は上から
Base
OUTColor
MultColor
AddColor
Grey_Scale
Grey_Pow
Reduction
となっています
マテリアルパラメータコレクションのパラメータについて
・OUTColor
RGBの色にAの数値の割合で上書きします、元の色に加算や乗算ではなく上書きになるので、真っ黒や真っ白等だけでなくグレー等の色も指定できます
・MultColor
全体の色を乗算します、Aは使用せずにRGBのみになります
・AddColor
全体の色に加算します、AチャンネルでRGBの加算具合を調整できます
・Grey_Scale
グレースケールへの変換強度、0で無効1で全体がグレーになります
・Grey_Pow
グレースケールに変換する際にべき数
・Color_Reduction
色の諧調を減らす処理、0にすると白と黒の二諧調になります
【中身の解説】
グレースケール変換
Greyf = (OUT.r+OUT.g+OUT.b)/3; //グレー用のFloat変換
Grey = pow(float3(Greyf,Greyf,Greyf),Grey_Pow); //グレーをベクトルに戻して累乗を行う
グレースケールへの変換箇所はここになります
RGBチャンネルの平均を一度Float型に変換してから
変換したFloatの数値をカラーのRGBに適応します
色の諧調数
Reduction = floor*2; //減色処理用、0-1を2-255に変換
諧調数を減らす処理はこの箇所になります
乗算してからFloorの切り捨てを行い、その後除算で0-1に戻すことで色の諧調数を減らします
色加算・乗算
OUT = OUT * MultColor.rgb; //色乗算
OUT = OUT + (AddColor.rgb * AddColor.a); //色加算
OUT = lerp(OUT,OUTColor.rgb,OUTColor.a); //色加算の影響度適応
加算や乗算等の処理はこの箇所になります
加算と乗算は基本的にそのまま計算を行い、色を上書きするOUTColorはLerpを使用しています
今回の記事は以上となります