Announcement

Collapse
No announcement yet.

Distorted and double reflections on glass panels

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

    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:	150
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.
    my behance and instagram

    #2
    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)?

    Comment


      #3
      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.


      my behance and instagram

      Comment


        #4
        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:	101
Size:	236.7 KB
ID:	1823875
        my behance and instagram

        Comment


          #5
          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.

          Comment


            #6
            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.
            my behance and instagram

            Comment


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

              Comment


                #8
                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.
                my behance and instagram

                Comment


                  #9
                  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.

                  Comment


                    #10
                    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.

                    Comment


                      #11
                      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.

                      Comment

                      Working...
                      X