Description

This sounds legit. Anyone mess with the if node recently? There seems to be a regression where existing content is broken. This should be fixed ASAP and patched into 4.6.

https://forums.unrealengine.com/showthread.php?53834-4-6-BUG-All-Material-Functions-Stopped-Working

Looks to be caused by this

Change 2341146 by Andrew.B on 2014/10/27 11:14:16
Prevent Const material parameter values from crashing
#jira [Link Removed] : LIVE: EDITOR: MATERIALS: CRASH: Setting the MipValueMode for MipLevel or MipBias to 4 or higher will crash the editor
#change Modifiied those Const values to be ran through the compiler than used as is (three occurances that I could see).

Old:
int32 Arg4 = AEqualsB.Expression ? AEqualsB.Compile(Compiler) : ConstAEqualsB;

New:
int32 Arg4 = AEqualsB.Expression ? AEqualsB.Compile(Compiler) : Compiler->Constant(ConstAEqualsB);

ConstAEqualsB is

float ConstAEqualsB;
ConstAEqualsB = INDEX_NONE;

The hlsl translator does

virtual int32 If(int32 A,int32 B,int32 AGreaterThanB,int32 AEqualsB,int32 ALessThanB,int32 ThresholdArg) override
{

if (AEqualsB != INDEX_NONE)

{ ... }
else{ ... }

So it used to never take the top branch, unless an artist modified ConstAEqualsB. Now it always takes the top branch.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-6428 in the post.

0
Login to Vote

Fixed
ComponentUE - Graphics Features
Affects Versions4.6
Target Fix4.6.1
Fix Commit2384073
CreatedDec 9, 2014
ResolvedDec 10, 2014
UpdatedApr 27, 2018