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)
{ ... }So it used to never take the top branch, unless an artist modified ConstAEqualsB. Now it always takes the top branch.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-6428 in the post.
0 |
Component | UE - Graphics Features |
---|---|
Affects Versions | 4.6 |
Target Fix | 4.6.1 |
Fix Commit | 2384073 |
---|
Created | Dec 9, 2014 |
---|---|
Resolved | Dec 10, 2014 |
Updated | Apr 27, 2018 |