moyasiエフェクト館

主にエフェクト関係の記事を上げていこうかと思います。


エフェクトに関係する記事上げてきます
エフェクト関係の記事の内容は緩く募集中
自分がわかる範囲であれば書いていこうかなと。

【UE5】色編集用のポストプロセス

Verは5.44です

 

【初めに】

tktknkyo.hatenadiary.jp

上記の記事の続きのポスプロ用マテリアルの中身になります

 

【ポスプロの中身】

 

左上の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を使用しています

 

 

 

今回の記事は以上となります

 

*1:saturate(Reduction)*233+2

*2:saturate(Reduction)*233+2