Spiral Blur in Post Process Not Working in 4.12?

I can’t get Spiral Blur to work at all. Following the instructions [on the wiki][1] and in the [release notes][2] seems to just end up giving me a white screen.

Here’s my material graph:

Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_55"
   Begin Object Class=EdGraphPin Name="EdGraphPin_6229"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6228"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6227"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6226"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6225"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6224"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6223"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6222"
   End Object
   Begin Object Class=EdGraphPin Name="EdGraphPin_6221"
   End Object
   Begin Object Class=MaterialExpressionMaterialFunctionCall Name="MaterialExpressionMaterialFunctionCall_3"
   End Object
   Begin Object Name="EdGraphPin_6229"
      PinName="SceneColor clamp to 0"
      Direction=EGPD_Output
   End Object
   Begin Object Name="EdGraphPin_6228"
      PinName="Result"
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_Root_1.EdGraphPin_6199'
   End Object
   Begin Object Name="EdGraphPin_6227"
      PinName="Distance Mask (S)"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_60.EdGraphPin_6234'
   End Object
   Begin Object Name="EdGraphPin_6226"
      PinName="TempAA Distance Blur (S)"
      PinType=(PinCategory="optional")
   End Object
   Begin Object Name="EdGraphPin_6225"
      PinName="TempAA Radial Blur (S)"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_59.EdGraphPin_6233'
   End Object
   Begin Object Name="EdGraphPin_6224"
      PinName="Radial Offset (S)"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_58.EdGraphPin_6232'
   End Object
   Begin Object Name="EdGraphPin_6223"
      PinName="Radial Steps (S)"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_57.EdGraphPin_6231'
   End Object
   Begin Object Name="EdGraphPin_6222"
      PinName="Distance Steps (S)"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_57.EdGraphPin_6231'
   End Object
   Begin Object Name="EdGraphPin_6221"
      PinName="Distance (S)"
      PinType=(PinCategory="optional")
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_56.EdGraphPin_6230'
   End Object
   Begin Object Name="MaterialExpressionMaterialFunctionCall_3"
      MaterialFunction=MaterialFunction'/Engine/Functions/Engine_MaterialFunctions01/Texturing/SpiralBlur-SceneTexture.SpiralBlur-SceneTexture'
      FunctionInputs(0)=(ExpressionInputId=7CC6063741354B194A27C5BFBF5AEFC6,Input=(Expression=MaterialExpressionConstant'MaterialGraphNode_56.MaterialExpressionConstant_13',InputName="Distance"))
      FunctionInputs(1)=(ExpressionInputId=999268474CE8F923FC5CA297555C451B,Input=(Expression=MaterialExpressionConstant'MaterialGraphNode_57.MaterialExpressionConstant_14',InputName="Distance Steps"))
      FunctionInputs(2)=(ExpressionInputId=2D450737453F92D15333EDA2A8A9C9FB,Input=(Expression=MaterialExpressionConstant'MaterialGraphNode_57.MaterialExpressionConstant_14',InputName="Radial Steps"))
      FunctionInputs(3)=(ExpressionInputId=E0C339BD412802ACF8D1CFA66E382F99,Input=(Expression=MaterialExpressionConstant'MaterialGraphNode_58.MaterialExpressionConstant_15',InputName="Radial Offset"))
      FunctionInputs(4)=(ExpressionInputId=748401E04D67576D20CF0D84378BBBB2,Input=(Expression=MaterialExpressionConstant'MaterialGraphNode_59.MaterialExpressionConstant_16',InputName="TempAA Radial Blur"))
      FunctionInputs(5)=(ExpressionInputId=0D1F10574FA92039F60F69A2D8E6E6A7,Input=(OutputIndex=-1,InputName="TempAA Distance Blur"))
      FunctionInputs(6)=(ExpressionInputId=2B07D31B49FF9616FAECE38AD587118B,Input=(Expression=MaterialExpressionConstant'MaterialGraphNode_60.MaterialExpressionConstant_17',InputName="Distance Mask"))
      FunctionOutputs(0)=(ExpressionOutputId=F121DEB046D973F044644E80BD424FF0,Output=(OutputName="Result"))
      FunctionOutputs(1)=(ExpressionOutputId=A1CD670D4016FA118BA6669E743CD957,Output=(OutputName="SceneColor clamp to 0"))
      MaterialExpressionEditorX=-576
      MaterialExpressionEditorY=-160
      MaterialExpressionGuid=66549F0247D0B96185C4E4AE851BDB8F
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
      Outputs(0)=(OutputName="Result")
      Outputs(1)=(OutputName="SceneColor clamp to 0")
   End Object
   MaterialExpression=MaterialExpressionMaterialFunctionCall'MaterialExpressionMaterialFunctionCall_3'
   Pins(0)=EdGraphPin'EdGraphPin_6221'
   Pins(1)=EdGraphPin'EdGraphPin_6222'
   Pins(2)=EdGraphPin'EdGraphPin_6223'
   Pins(3)=EdGraphPin'EdGraphPin_6224'
   Pins(4)=EdGraphPin'EdGraphPin_6225'
   Pins(5)=EdGraphPin'EdGraphPin_6226'
   Pins(6)=EdGraphPin'EdGraphPin_6227'
   Pins(7)=EdGraphPin'EdGraphPin_6228'
   Pins(8)=EdGraphPin'EdGraphPin_6229'
   NodePosX=-576
   NodePosY=-160
   NodeGuid=CEE1EB7B48CB1EDDD9C7C9B0587723DF
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_56"
   Begin Object Class=EdGraphPin Name="EdGraphPin_6230"
   End Object
   Begin Object Class=MaterialExpressionConstant Name="MaterialExpressionConstant_13"
   End Object
   Begin Object Name="EdGraphPin_6230"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_55.EdGraphPin_6221'
   End Object
   Begin Object Name="MaterialExpressionConstant_13"
      R=0.010000
      MaterialExpressionEditorX=-742
      MaterialExpressionEditorY=-190
      MaterialExpressionGuid=4D8B16D449CFAE0934F5C2932428BCE8
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
   End Object
   MaterialExpression=MaterialExpressionConstant'MaterialExpressionConstant_13'
   Pins(0)=EdGraphPin'EdGraphPin_6230'
   NodePosX=-742
   NodePosY=-190
   NodeGuid=E24B46894B242316E238BE9FBCF76FFC
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_57"
   Begin Object Class=EdGraphPin Name="EdGraphPin_6231"
   End Object
   Begin Object Class=MaterialExpressionConstant Name="MaterialExpressionConstant_14"
   End Object
   Begin Object Name="EdGraphPin_6231"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_55.EdGraphPin_6222'
      LinkedTo(1)=EdGraphPin'MaterialGraphNode_55.EdGraphPin_6223'
   End Object
   Begin Object Name="MaterialExpressionConstant_14"
      R=16.000000
      MaterialExpressionEditorX=-736
      MaterialExpressionEditorY=-128
      MaterialExpressionGuid=4D8B16D449CFAE0934F5C2932428BCE8
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
   End Object
   MaterialExpression=MaterialExpressionConstant'MaterialExpressionConstant_14'
   Pins(0)=EdGraphPin'EdGraphPin_6231'
   NodePosX=-736
   NodePosY=-128
   NodeGuid=5C6E5FE04C938A74A439C79290DF69DE
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_58"
   Begin Object Class=EdGraphPin Name="EdGraphPin_6232"
   End Object
   Begin Object Class=MaterialExpressionConstant Name="MaterialExpressionConstant_15"
   End Object
   Begin Object Name="EdGraphPin_6232"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_55.EdGraphPin_6224'
   End Object
   Begin Object Name="MaterialExpressionConstant_15"
      R=1.000000
      MaterialExpressionEditorX=-736
      MaterialExpressionEditorY=-48
      MaterialExpressionGuid=4D8B16D449CFAE0934F5C2932428BCE8
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
   End Object
   MaterialExpression=MaterialExpressionConstant'MaterialExpressionConstant_15'
   Pins(0)=EdGraphPin'EdGraphPin_6232'
   NodePosX=-736
   NodePosY=-48
   NodeGuid=F2024EEF4A2E96257AD74CBDBF82FBF4
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_59"
   Begin Object Class=EdGraphPin Name="EdGraphPin_6233"
   End Object
   Begin Object Class=MaterialExpressionConstant Name="MaterialExpressionConstant_16"
   End Object
   Begin Object Name="EdGraphPin_6233"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_55.EdGraphPin_6225'
   End Object
   Begin Object Name="MaterialExpressionConstant_16"
      R=2.000000
      MaterialExpressionEditorX=-736
      MaterialExpressionEditorY=16
      MaterialExpressionGuid=4D8B16D449CFAE0934F5C2932428BCE8
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
   End Object
   MaterialExpression=MaterialExpressionConstant'MaterialExpressionConstant_16'
   Pins(0)=EdGraphPin'EdGraphPin_6233'
   NodePosX=-736
   NodePosY=16
   NodeGuid=676FAC21440125C7C47E7CBD4C6554B8
End Object
Begin Object Class=MaterialGraphNode Name="MaterialGraphNode_60"
   Begin Object Class=EdGraphPin Name="EdGraphPin_6234"
   End Object
   Begin Object Class=MaterialExpressionConstant Name="MaterialExpressionConstant_17"
   End Object
   Begin Object Name="EdGraphPin_6234"
      PinName="Output"
      PinFriendlyName=" "
      Direction=EGPD_Output
      LinkedTo(0)=EdGraphPin'MaterialGraphNode_55.EdGraphPin_6227'
   End Object
   Begin Object Name="MaterialExpressionConstant_17"
      R=1.000000
      MaterialExpressionEditorX=-704
      MaterialExpressionEditorY=144
      MaterialExpressionGuid=D73BC8314CD57BEBC8B6438CD0466CE5
      Material=PreviewMaterial'/Engine/Transient.PreviewMaterial_1'
   End Object
   MaterialExpression=MaterialExpressionConstant'MaterialExpressionConstant_17'
   Pins(0)=EdGraphPin'EdGraphPin_6234'
   NodePosX=-704
   NodePosY=144
   NodeGuid=11FC00E746B07D03B95D80B7CB85997F
End Object

this is happening to me too =(

Hi, did anyone find a solution? I’m getting this white-out behaviour too.

I don’t know whether its related, but I also can’t get DoF to display when I change the settings for that.

Same problem here! UE version 4.15.Still got it!

Also in 4.17.1 it doesn’t work

Ok, let me just try to explain how my case manifests and how i managed to “solve the issue”.

First, the whiteout issues was not present all the time and in all levels i had. It was also present as a material for the mes and as a post process material .For example in the example map i was never able to reproduce it. It seemed to be dependent on camera position and direction, but with no logic connecting it to something like small bounds or something like that. I observed that if you put several objects in screen space with the same shader the whiteout happens instantly on all three in certain angles. So, that led me to start  digging a bit through the custom node that creates the blur. So, me being an artist it took me some time to understand what the code is doing and i found one very strange thing that caught my eye. In the custom expression node after all the variable statements and some fiddly code stuff i don’t understand there starts an If statement that basically does the blur effect and it goes like this :

int i=0;
if (DistanceSteps<1)
{
return DecodeSceneColorForMaterialNode(NewUV);
}
else
{
//CurDistance += 0.5*StepSize;
while ( i < (int) DistanceSteps)
{

//CurDistance+=StepSize;…  etc.

ok, so the first part tells me that if my distance step setting in my material are less than one the shader will return  some function “DecodeSceneColorForMaterialNode(NewUV)” , to test this i put my step size to 0.7 or some value lest than one to see if this function returns me just the scene color with no blur as it is suppose to do, and of course it does but the witheout stuff was still present i the image which led me to believe that there was something wrong with this function. To bypass this i substituted this function with a vector 3 input i made and called it “SceneColor” , next i plugged in a scene color with a mask (r,g,b) in the node and looked at the result, and it worked! Yay!!!  ook so i started moving forward and just for the sake of testing i pumped the distance steps to 16 to what will happen, The code says that it should behave exactly like before since that part of the code was not altered, but to my surprise and to the surprise of my lead programmer that helped a bit with the code the whiteout was not present anymore. Puzzled by this we sad, ok lets put the code back as it was and see what will happen. So we did and the wihteout wasn’t there anymore   …   oO… what ?  how is that possible?.. so now even more puzzled than before i start doing supid crazy stuff … so i took out the scene color and replaced it with a vector 3 … now the whiteout returned… whaaat? how is that possible if the input i created on the custom node is not being used anywhere, how can that alter the result…wtf? We havent been able to understand why does it work only if the scene color is hooked even if it is not used but never the less it works for now. I would like for someone that understands this to explain what happened so i don’t run into the same problems again…

for you guys that have these issues here is the code from the node just in case i forgot i altered something and an image of the material expression setu…

float3 CurColor;
float2 BaseUV = MaterialFloat2(ScreenAlignedPosition(Parameters.ScreenPosition).xy);
float2 NewUV = BaseUV;
float StepSize = Distance / (int) DistanceSteps;
float CurDistance=0;
float2 CurOffset;
float TwoPi = 6.283185;
float Substep;
float2 ScenePixels=View.BufferSizeAndInvSize.xyBaseUV;
ScenePixels+=View.TemporalAAParams.r;
float2 RandomSamp = ((uint)(ScenePixels.x) + 2 * (uint)(ScenePixels.y)) % 5;
RandomSamp+=Texture2DSample(Tex,TexSampler,ScenePixels);
RandomSamp/=5;
RandomSamp-=0.5;
TempAARotation
=RandomSamp;
TempAADistance*=StepSize*RandomSamp;

int i=0;
if (DistanceSteps<1)
{
return DecodeSceneColorForMaterialNode(NewUV);
}
else
{
//CurDistance += 0.5*StepSize;
while ( i < (int) DistanceSteps)
{

//CurDistance+=StepSize;
for (int j = 0; j < (int) RadialSteps; j++)
{
CurOffset.x = cos(TwoPi*((TempAARotation+Substep) / RadialSteps));
CurOffset.y = sin(TwoPi*((TempAARotation+Substep) / RadialSteps));
CurOffset =DistanceMask;
NewUV.x = BaseUV.x + (CurOffset.x * (CurDistance+(RandomSamp
TempAADistance)));
NewUV.y = BaseUV.y + (CurOffset.y * (CurDistance+(RandomSampTempAADistance)));
CurColor += DecodeSceneColorForMaterialNode(NewUV);
//CurDistance+=(StepSize+(TempAADistance))/RadialSteps;
Substep++;
}
CurDistance+=StepSize;
Substep+=RadialOffset;
i++;
}
CurColor = CurColor / ((int)DistanceSteps
(int)RadialSteps);
return CurColor;
}

I’ve just set this up and I still get a whiteout? I’ve double checked everything so it’s exactly how you laid it out in the custom node, but it still whites out. Not quite sure whats going on there

The second output must be hooked to Opacity, else you will just get bright white.

246343-spiralwhite.png