CheapContrastのMaterialFunctionノードの実装について

お世話になっております。

エンジンの MaterialFunction’/Engine/Functions/Engine_MaterialFunctions01/ImageAdjustment/CheapContrast.CheapContrast’ についてですが、無駄なベクトル演算にってしまっているようなので確認をお願いいたします。

このノード自体はスカラーで計算を完結するような形に変更しました。

なお、この問題は自動生成されたシェーダーを見ていて

float2 v0;
v0.x = f0;
v0.y = f1;
float3 v1;
v1.xy = v0;
v1.z = f2;

のようなコードを見つけて、その問題が大体この3要素を作るときのAppendでした。

MakeFloat3などを使用して

float3 v1 = float3(f0,f1,f2);

となるのが望ましいと思います。

なお、このAppendの場合のコードをシェーダーコンパイルした結果も最適化されずに無駄な命令が発生することがあるようです。

よろしくお願いいたします。

お世話になっております。
本件こちらでも確認させていただきましたが、たしかにスカラーにて完結できる処理のようです。
また展開したシェーダーに関してFloat2を作成してからFloat3を作成しており最適化が見込めそうです。
上記挙動を確認できましたので、機能改善として以下登録させていただきました。
[UE-74690] Optimization of Cheap Contrast of Material Function Node

不具合ではなく改善要求のため進捗は公開されないませんが、
何か進展がありましたらご連絡させて頂ければと思います。
よろしくお願いいたします。

お世話になっております。
こちらの件、スカラーでの処理にCL6541534として修正し、
4.23で取り込まれる見込みとなっております。

Appendの挙動に関しましては、今後検討される見込みです。
よろしくお願いいたします。

お世話になっております。

変更ありがとうございました!