Download

Distorted and double reflections on glass panels

Hey guys, I get weird bent reflections when I get camera close to an object and also double reflections when using raytraced translucency.

This is always visible even in very basic materials and it doesn’t matter if I use thin translucent or other translucent shading model. I first thought that I need to disable twosided option but that turns objects opaque.

here’s an example

look at the reflected column on the left side. One reflection is at proper distance and straight as it should be and there’s another weirdly bent one. This makes me think I’m forgetting some setting on the engine or materials but I’m out of ideas.

A part of it is refraction. Can you post the material graph of the glass? What Refraction Mode is the glass material using (Index of Refrac or Pixel Depth Offset)?

here’s material… Very basic - using index of refraction, pixel offset looks the same so do other shading models. I noticed this in 4.25.3 and now I’m using 4.26p3. I think it’s the internal(backface) reflections that are bent like this.

If I get camera inside of a glass objects I get this spherical reflection. I think the problem could be solved If I could simply disable reflection on backfaces somehow.

I encountered the exact same in a project I’m testing refraction in. What I tried doing to fix the curvature of reflections so they’re reflected like a rectangular mirror or window is connect a 3-vector (1, 1, 1) node to the Normal input. But I saw that it actually produces the effect of curving reflections. So I set it to (0, 0, 0) and it straightens things. I think you’re correct that the problem is in the backfaces reflecting in a distorted shape, and when I tried a cone it did that too (consistent with a cone’s curvature / stretching). Disabling two-sided, however, has the result of making it appear too thin and not as realistic as glass with refraction or solid thickness. I suggest trying to input a normal vector into the fresnel nodes with (0, 0, 0) set to start, make them parameters, and plug in another of the same in the Normal input of the main material node. I think that the refraction input doesn’t fully take into account the normal of the object and the camera without a directive for it to do something with, as it would do since refraction is not easy to simulate for every 3D object and material. It may require more than that to get corrections to the reflections, but it’s a starting point.

Actually refraction input doesn’t do anything for raytraced refraction. Specular is controling refraction. It’s a mess, I don’t even understand how is this supposed to work.

Well, I was saying it happens with non-RT. So, it could be something other than RT or whether Specular or Refraction inputs are used. I don’t remember how I got the translucent, double reflections of certain actors to be removed. I’m definitely not understanding this enough yet either.

Oh, I see…

Anyways, while further testing I noticed that in the docs they use very low refraction values. Values like 0.04 in specular pretty much gives nice result for something like drinking glass etc, for glass panels in windows it’s a bit too much but lower values can work(minimizing the bending).

Specular value 0 removes refraction and thus the bending of the reflection on backfaces, this works for some arch glass(windows etc…)

What I’m confused about is, if the weird bending is expected behaviour due to some misconfiguration on user part, and also how to transfer proper IOR values to specular in unreal.

I tried for days but couldn’t get glass looking anything like this: https://www.youtube.com/watch?v=WTABH-f8rbE&ab_channel=RyanBrucks I always get the visible backfaces looking kinda weird.

So far, I haven’t seen a guide or tutorial that teaches how to create that quality level of glass (from the video). It’s difficult when starting from not knowing how UE works, or how it processes certain values for specular / refraction / etc. It’s like a chemistry lab I’ve never used before with chemicals and containers, and I’m a rookie mad scientist.

The bending is basically the refraction, which is expected with transparent materials, it just seems to be way to strong, with normal values. I have trouble with that myself, and i started to reduce the values by a factor of 10, to get more normal looking results, so it seems, that maybe there is some internal calculation error, that results in way to strong refraction, if normal values are used.

For the transformation from IOR to specular, there was a formula for this. i created a tiny IOR2Specular function for that, including a “debug” feature to massively weaken the result, and therefore the resulting refraction.
You can try it, smash this code into a new function, then use an IOR value as input, and connect the output to the specular input from the material. The “IOR to strong” is basically the weakener, it divides by 10. Maybe i should replace this constant with a parameter to make it dynamic and adjustable:


Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_0"
Begin Object Class=/Script/Engine.MaterialExpressionFunctionOutput Name="MaterialExpressionFunctionOutput_0"
End Object
Begin Object Name="MaterialExpressionFunctionOutput_0"
A=(Expression=MaterialExpressionDivide'"MaterialGraphNode_18.MaterialExpressionDivide_1"')
bLastPreviewed=True
Id=19AF4C434A1FA9F0518E7C82D9FED0EB
MaterialExpressionEditorX=200
MaterialExpressionEditorY=300
MaterialExpressionGuid=257680124AD64DD5444AD1B38F436884
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionFunctionOutput'"MaterialExpressionFunctionOutput_0"'
NodePosX=200
NodePosY=300
NodeGuid=90C948384C21B22F145833A40D101D4E
CustomProperties Pin (PinId=30A4B59446B70053DB88F2BAFFD77277,PinName="Input",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_18 CAF9A76C45AA4FD0C67A9C9D5810D60B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=3047599E411B9EE609FBB78F9FD3AAAC,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_1"
Begin Object Class=/Script/Engine.MaterialExpressionFunctionInput Name="MaterialExpressionFunctionInput_0"
End Object
Begin Object Name="MaterialExpressionFunctionInput_0"
InputName="IOR"
Id=B09FFC4545D3323A30E635ADC2ACE2F8
InputType=FunctionInput_Scalar
MaterialExpressionEditorX=-1616
MaterialExpressionEditorY=256
MaterialExpressionGuid=F615AF8147DDB563B1F6069F4A022603
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionFunctionInput'"MaterialExpressionFunctionInput_0"'
NodePosX=-1616
NodePosY=256
NodeGuid=989F2B2F4D895B5AC99C528F67A9F3FF
CustomProperties Pin (PinId=4AC90B934674692F4C8319A955D30BD1,PinName="Preview",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=FA045A004A60842DFBF45FA46E2391F6,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_8 EAB03F27421784B95B75959C6171BE67,MaterialGraphNode_13 0CB839CF4FE4901BA07559AC219F4101,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14"
Begin Object Class=/Script/Engine.MaterialExpressionSubtract Name="MaterialExpressionSubtract_0"
End Object
Begin Object Name="MaterialExpressionSubtract_0"
A=(Expression=MaterialExpressionStaticSwitchParameter'"MaterialGraphNode_13.MaterialExpressionStaticSwitchParameter_0"')
MaterialExpressionEditorX=-594
MaterialExpressionEditorY=247
MaterialExpressionGuid=4C79179045B547C909DC7F97EB7DEF4C
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionSubtract'"MaterialExpressionSubtract_0"'
NodePosX=-594
NodePosY=247
NodeGuid=B92F362B4D08C1D3DB1BBF868AF47AFB
CustomProperties Pin (PinId=5CBAACE74A99A72C0A608199B20F9409,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 A89AE11B44C1B052A882F2A65E62F59C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4DA521EA4DB43256C6F13EAFAADE5A3A,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=1D9EDBDA43BDADE92185009E106AEB9A,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_17 D65EA395430BD960AC6F389C3EA53CB5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_15"
Begin Object Class=/Script/Engine.MaterialExpressionAdd Name="MaterialExpressionAdd_0"
End Object
Begin Object Name="MaterialExpressionAdd_0"
A=(Expression=MaterialExpressionStaticSwitchParameter'"MaterialGraphNode_13.MaterialExpressionStaticSwitchParameter_0"')
MaterialExpressionEditorX=-588
MaterialExpressionEditorY=355
MaterialExpressionGuid=6857841545CE451AB7CE12A22D9CAAB8
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionAdd'"MaterialExpressionAdd_0"'
NodePosX=-588
NodePosY=355
NodeGuid=7A085F36412331C527EC68949D41CE7B
CustomProperties Pin (PinId=D6B52D7742447969C35A4F9CFEFCD620,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 A89AE11B44C1B052A882F2A65E62F59C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=43967D03452218F290FD8FB018444355,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=7D1C03C34D9DC6248B62969DE3C133F3,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_17 54D3103A4F31DE697A62278DE147C649,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_16"
Begin Object Class=/Script/Engine.MaterialExpressionPower Name="MaterialExpressionPower_0"
End Object
Begin Object Name="MaterialExpressionPower_0"
Base=(Expression=MaterialExpressionDivide'"MaterialGraphNode_17.MaterialExpressionDivide_0"')
MaterialExpressionEditorX=-188
MaterialExpressionEditorY=307
MaterialExpressionGuid=59661E63401AAE9C1E4984BD08B6944D
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionPower'"MaterialExpressionPower_0"'
NodePosX=-188
NodePosY=307
NodeGuid=5BE280E24983EFFB760167A2E230BF0E
CustomProperties Pin (PinId=17628A5249CBFE18764469843CAEEE66,PinName="Base",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_17 E28A725D4120713431A2679F9C5CFDF6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=826C89784E195CA56DFB37A4B9BEA94D,PinName="Exp",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=2814FBD54B2A730BEC3869ABF831D876,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_18 D9D2DFEA41A60EC234FCF0A33D7222FE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_17"
Begin Object Class=/Script/Engine.MaterialExpressionDivide Name="MaterialExpressionDivide_0"
End Object
Begin Object Name="MaterialExpressionDivide_0"
A=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_14.MaterialExpressionSubtract_0"')
B=(Expression=MaterialExpressionAdd'"MaterialGraphNode_15.MaterialExpressionAdd_0"')
MaterialExpressionEditorX=-364
MaterialExpressionEditorY=307
MaterialExpressionGuid=A218A1C543D3EF4EE1559C9D0478B53A
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionDivide'"MaterialExpressionDivide_0"'
NodePosX=-364
NodePosY=307
NodeGuid=DADED18A485A18D440210EAFFCB21DDC
CustomProperties Pin (PinId=D65EA395430BD960AC6F389C3EA53CB5,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 1D9EDBDA43BDADE92185009E106AEB9A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=54D3103A4F31DE697A62278DE147C649,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_15 7D1C03C34D9DC6248B62969DE3C133F3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=E28A725D4120713431A2679F9C5CFDF6,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_16 17628A5249CBFE18764469843CAEEE66,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_18"
Begin Object Class=/Script/Engine.MaterialExpressionDivide Name="MaterialExpressionDivide_1"
End Object
Begin Object Name="MaterialExpressionDivide_1"
A=(Expression=MaterialExpressionPower'"MaterialGraphNode_16.MaterialExpressionPower_0"')
B=(Expression=MaterialExpressionConstant'"MaterialGraphNode_19.MaterialExpressionConstant_0"')
MaterialExpressionEditorY=336
MaterialExpressionGuid=73BBACDD463CA13AB76CE8B1E9E0F719
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionDivide'"MaterialExpressionDivide_1"'
NodePosY=336
NodeGuid=A45D23E140E51A223A23ACB25399CA30
CustomProperties Pin (PinId=D9D2DFEA41A60EC234FCF0A33D7222FE,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_16 2814FBD54B2A730BEC3869ABF831D876,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4E6CFB7C44B0040FD8F755B3F745655F,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_19 7C6237B94E164C8F18A033B36DFB876D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=CAF9A76C45AA4FD0C67A9C9D5810D60B,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_0 30A4B59446B70053DB88F2BAFFD77277,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_19"
Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_0"
End Object
Begin Object Name="MaterialExpressionConstant_0"
R=0.080000
MaterialExpressionEditorX=-160
MaterialExpressionEditorY=432
MaterialExpressionGuid=8467B5C640AB9782E2726C9578C232AC
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionConstant'"MaterialExpressionConstant_0"'
NodePosX=-160
NodePosY=432
NodeGuid=A7929BC347122571BD0A36B3A5DFF374
CustomProperties Pin (PinId=7C6237B94E164C8F18A033B36DFB876D,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_18 4E6CFB7C44B0040FD8F755B3F745655F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_8"
Begin Object Class=/Script/Engine.MaterialExpressionSubtract Name="MaterialExpressionSubtract_1"
End Object
Begin Object Name="MaterialExpressionSubtract_1"
A=(Expression=MaterialExpressionFunctionInput'"MaterialGraphNode_1.MaterialExpressionFunctionInput_0"')
MaterialExpressionEditorX=-1349
MaterialExpressionEditorY=212
MaterialExpressionGuid=E134D94547EF83CDDF97F7AAFB827786
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionSubtract'"MaterialExpressionSubtract_1"'
NodePosX=-1349
NodePosY=212
NodeGuid=76640844411E36B50B5990A72028CD32
CustomProperties Pin (PinId=EAB03F27421784B95B75959C6171BE67,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_1 FA045A004A60842DFBF45FA46E2391F6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=5FE0C213423FA24A868EE0A95ED0F66A,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=01255F1C46C4C94B832339B09A2B4641,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 D65EA395430BD960AC6F389C3EA53CB5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_5"
Begin Object Class=/Script/Engine.MaterialExpressionDivide Name="MaterialExpressionDivide_2"
End Object
Begin Object Name="MaterialExpressionDivide_2"
A=(Expression=MaterialExpressionSubtract'"MaterialGraphNode_8.MaterialExpressionSubtract_1"')
B=(Expression=MaterialExpressionConstant'"MaterialGraphNode_10.MaterialExpressionConstant_1"')
MaterialExpressionEditorX=-1152
MaterialExpressionEditorY=240
MaterialExpressionGuid=A218A1C543D3EF4EE1559C9D0478B53A
Material=Material'"/Engine/Transient.Material_3"'
Function=MaterialFunction'"/Engine/Transient.IOR2Specular"'
End Object
MaterialExpression=MaterialExpressionDivide'"MaterialExpressionDivide_2"'
NodePosX=-1152
NodePosY=240
NodeGuid=CA314DAD4CBCBC18AD1EA3A83B66AE2B
CustomProperties Pin (PinId=D65EA395430BD960AC6F389C3EA53CB5,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_8 01255F1C46C4C94B832339B09A2B4641,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=54D3103A4F31DE697A62278DE147C649,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_10 0FBDF4E74ECE4051A75DFB915A470065,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=E28A725D4120713431A2679F9C5CFDF6,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_3 D6B52D7742447969C35A4F9CFEFCD620,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_10"
Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_1"
End Object
Begin Object Name="MaterialExpressionConstant_1"
R=10.000000
MaterialExpressionEditorX=-1296
MaterialExpressionEditorY=320
MaterialExpressionGuid=DFCCC62A4DEF6CAB7F79C7B5A473EB81
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionConstant'"MaterialExpressionConstant_1"'
NodePosX=-1296
NodePosY=320
NodeGuid=78CC2CC04A7F823FD918C483B231870B
CustomProperties Pin (PinId=0FBDF4E74ECE4051A75DFB915A470065,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 54D3103A4F31DE697A62278DE147C649,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_3"
Begin Object Class=/Script/Engine.MaterialExpressionAdd Name="MaterialExpressionAdd_1"
End Object
Begin Object Name="MaterialExpressionAdd_1"
A=(Expression=MaterialExpressionDivide'"MaterialGraphNode_5.MaterialExpressionDivide_2"')
MaterialExpressionEditorX=-1008
MaterialExpressionEditorY=240
MaterialExpressionGuid=6857841545CE451AB7CE12A22D9CAAB8
Material=Material'"/Engine/Transient.Material_3"'
Function=MaterialFunction'"/Engine/Transient.IOR2Specular"'
End Object
MaterialExpression=MaterialExpressionAdd'"MaterialExpressionAdd_1"'
NodePosX=-1008
NodePosY=240
NodeGuid=FEC652014A7D8FFF23243DB3D48E4972
CustomProperties Pin (PinId=D6B52D7742447969C35A4F9CFEFCD620,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 E28A725D4120713431A2679F9C5CFDF6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=43967D03452218F290FD8FB018444355,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=7D1C03C34D9DC6248B62969DE3C133F3,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 59ED40664A591B04326E3D8A5B6595A6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_13"
Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_0"
End Object
Begin Object Name="MaterialExpressionStaticSwitchParameter_0"
A=(Expression=MaterialExpressionAdd'"MaterialGraphNode_3.MaterialExpressionAdd_1"')
B=(Expression=MaterialExpressionFunctionInput'"MaterialGraphNode_1.MaterialExpressionFunctionInput_0"')
ParameterName="IOR to strong"
ExpressionGUID=AC3E893E4676A8FCD19CA3A9BF5559BB
MaterialExpressionEditorX=-848
MaterialExpressionEditorY=272
MaterialExpressionGuid=7AB4848649E081DD407031A69B74D116
Material=Material'"/Engine/Transient.Material_3"'
End Object
MaterialExpression=MaterialExpressionStaticSwitchParameter'"MaterialExpressionStaticSwitchParameter_0"'
NodePosX=-848
NodePosY=272
bCanRenameNode=True
NodeGuid=7978E9074D9EFCA8C6397C84BE8F724F
CustomProperties Pin (PinId=59ED40664A591B04326E3D8A5B6595A6,PinName="True",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_3 7D1C03C34D9DC6248B62969DE3C133F3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=0CB839CF4FE4901BA07559AC219F4101,PinName="False",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_1 FA045A004A60842DFBF45FA46E2391F6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A89AE11B44C1B052A882F2A65E62F59C,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 5CBAACE74A99A72C0A608199B20F9409,MaterialGraphNode_15 D6B52D7742447969C35A4F9CFEFCD620,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object



As the description says, this is a new experimental feature at work, so not released until now. Hopefully it gets released in the final version of 4.26, because yeah, it looks awesome.

Hello again, just wanted to let you know, until UE 4.25, even the documentation uses values between 0.01 to 0.1 as input for specular to get a more realistic refraction.

This is the picture for 0.1, their highest value.