// Copyright UShaderLab. All Rights Reserved. // // Decal intrinsics (meaningful in the Decal domain; the instance/domain gates usage). #include "ShaderLabIntrinsics.h" #include "Materials/MaterialExpressionDecalColor.h" #include "Materials/MaterialExpressionDecalDerivative.h" #include "Materials/MaterialExpressionDecalLifetimeOpacity.h" void RegisterDecalIntrinsics(FShaderLabIntrinsicRegistry& Registry) { using namespace ShaderLabIntrinsic_Private; using EFreq = EShaderLabIntrinsicFrequency; // DecalColor's default output pin is RGB (float3). AddSimple(Registry, TEXT("DecalColor"), EFreq::PixelOnly, TEXT("float3"), [](UMaterial& M) { return MakeSimple(M); }); AddSimple(Registry, TEXT("DecalLifetimeOpacity"), EFreq::PixelOnly, TEXT("float"), [](UMaterial& M) { return MakeSimple(M); }); // DecalDerivative is multi-output (DDX, DDY) — one intrinsic per output pin. AddSimple(Registry, TEXT("DecalDerivativeDDX"), EFreq::PixelOnly, TEXT("float2"), [](UMaterial& M) { return MakeSimple(M); }, 0); AddSimple(Registry, TEXT("DecalDerivativeDDY"), EFreq::PixelOnly, TEXT("float2"), [](UMaterial& M) { return MakeSimple(M); }, 1); }