Announcement

Collapse
No announcement yet.

Distorted and double reflections on glass panels

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    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.

    https://docs.unrealengine.com/en-US/...ing/index.html

    Different values applied to the Specular input affect the index of refraction for the translucent material.



    Dragging the slider shows the amount of refraction being applied from 0.01, 0.05, and 0.1.
    This is the picture for 0.1, their highest value.

    Leave a comment:


  • replied
    Originally posted by UElaci View Post

    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).

    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.
    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:

    Code:
    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

    I tried for days but couldn't get glass looking anything like this: https://www.youtube.com/watch?v=WTAB...nel=RyanBrucks
    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.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    Originally posted by presto423 View Post
    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=WTAB...nel=RyanBrucks I always get the visible backfaces looking kinda weird.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    Originally posted by presto423 View Post
    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.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    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.

    Click image for larger version

Name:	internal.jpg
Views:	135
Size:	236.7 KB
ID:	1823875

    Leave a comment:


  • replied
    Originally posted by presto423 View Post
    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.


    Leave a comment:


  • replied
    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)?

    Leave a comment:


  • started a topic Distorted and double reflections on glass panels

    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
    Click image for larger version

Name:	glasspanels.jpg
Views:	192
Size:	237.6 KB
ID:	1823590

    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.
Working...
X