mirror of
https://github.com/Eragon-Brisingr/UShaderLab.git
synced 2026-09-15 14:54:36 +00:00
Fix -Game no matieral error
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
// Copyright UShaderLab. All Rights Reserved.
|
||||
//
|
||||
// Per-instance intrinsics.
|
||||
|
||||
#include "ShaderLabIntrinsics.h"
|
||||
|
||||
#include "Materials/MaterialExpressionPerInstanceCustomData.h"
|
||||
#include "Materials/MaterialExpressionPerInstanceFadeAmount.h"
|
||||
#include "Materials/MaterialExpressionPerInstanceRandom.h"
|
||||
|
||||
void RegisterInstancingIntrinsics(FShaderLabIntrinsicRegistry& Registry)
|
||||
{
|
||||
using namespace ShaderLabIntrinsic_Private;
|
||||
using EFreq = EShaderLabIntrinsicFrequency;
|
||||
|
||||
AddSimple(Registry, TEXT("PerInstanceRandom"), EFreq::Any, TEXT("float"), [](UMaterial& M) { return MakeSimple<UMaterialExpressionPerInstanceRandom>(M); });
|
||||
AddSimple(Registry, TEXT("PerInstanceFadeAmount"), EFreq::Any, TEXT("float"), [](UMaterial& M) { return MakeSimple<UMaterialExpressionPerInstanceFadeAmount>(M); });
|
||||
|
||||
// PerInstanceCustomData(DataIndex[, ConstDefaultValue]) — const args + optional input pin at default.
|
||||
{
|
||||
FShaderLabIntrinsicDesc Desc;
|
||||
Desc.Name = FName(TEXT("PerInstanceCustomData"));
|
||||
Desc.ReturnType = TEXT("float");
|
||||
Desc.Params = { { TEXT("int"), TEXT("DataIndex"), TEXT("") },
|
||||
{ TEXT("float"), TEXT("ConstDefaultValue"), TEXT("0") } };
|
||||
Desc.MakeNode = [](UMaterial& M, const TArray<FString>& Args, FString&) -> UMaterialExpression*
|
||||
{
|
||||
UMaterialExpressionPerInstanceCustomData* E = NewObject<UMaterialExpressionPerInstanceCustomData>(&M);
|
||||
if (Args.Num() >= 1) { E->DataIndex = static_cast<uint32>(FCString::Atoi(*Args[0])); }
|
||||
if (Args.Num() >= 2) { E->ConstDefaultValue = FCString::Atof(*Args[1]); }
|
||||
M.GetExpressionCollection().AddExpression(E);
|
||||
return E;
|
||||
};
|
||||
Registry.Register(MoveTemp(Desc));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user