Skip to main content

Description

Interior Window Mapping

A paste-in node group that fakes a real 3D room behind a flat window pane — the trick city-builder facades use to give thousands of windows depth for basically free. Drop it into any window material and wire three outputs.

It ray-marches the view direction into a little interior box and hands you back a Room UVW to sample a room cubemap or atlas with. As you move the camera, the room parallaxes correctly — no per-pixel step loop like parallax occlusion, no refraction, just one box intersection. The window tiles into a grid so one material covers a whole building front, and each cell gets its own Cell ID seed (randomise the room behind every window) plus a Wall Face index (0 back, 1 left, 2 right, 3 floor, 4 ceiling) so you can light or texture faces differently.

This is the reusable engine on its own. If you want a finished, ready-to-drop material that uses it with a fully procedural room (no textures needed), grab Fake Interior Window instead.

What you get

  • One clean Custom HLSL Interior Mapping Engine block doing the ray-box math
  • 3 outputs: Room UVW (Float3), Wall Face (Float1), Cell ID (Float2)
  • 4 params: RoomDepth, TilingX, TilingY, RoomUVScale
  • Reads UVs and the tangent-space camera vector internally — you don't feed it either
  • No animated noise, so it's stable under TSR

How to use it

  1. Paste into the graph of the window material you're building (Ctrl+V).
  2. Wire Result (Room UVW) into a room lookup (a TextureCube, or split .xy for a flat atlas).
  3. Wire Wall Face for per-face tint/texture, Cell ID into a hash for per-window variation.
  4. The mesh needs valid tangents and UV0 spanning 0–1 per window cell — a plain plane works.

Notes

This is a node group, not a complete material — there's no Material node to wire, you connect its outputs into your own graph. It assumes square-ish window cells (match TilingX:TilingY to the mesh aspect). Built and exported clean against UE 5.6+; in-engine look is pending a paste-test, so treat it as a starting point you can tune.

material graph

Preview only · open in editor for full material editing

Want this graph on your blog or forum?

0 comments

Sign in to join the discussion.

No comments yet. Be the first.

source
View T3D source (41 KB)expand
Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_0"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C0"
   End Object
   Begin Object Name="MaterialExpressionComment_C0"
      SizeX=560
      SizeY=760
      Text="01 Interior Room"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2160
      MaterialExpressionEditorY=-200
      MaterialExpressionGuid=B009085FA2C708933ED7BB277A71D9DA
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2160
   NodePosY=-200
   NodeWidth=560
   NodeHeight=760
   NodeComment="01 Interior Room"
   NodeGuid=08145401C09CE2AC6EBD7EC009357ED4
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_1"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_1"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_1"
      ParameterName="RoomDepth"
      DefaultValue=1
      SliderMin=0.1
      SliderMax=4
      Group="01 Interior Room"
      SortPriority=0
      Desc="Apparent depth of the room behind the glass, in window-widths. 1.0 = a room as deep as the window is wide; higher = a deeper room (more parallax travel). This is the headline depth dial."
      MaterialExpressionEditorX=-2120
      MaterialExpressionEditorY=-100
      MaterialExpressionGuid=B2D848644B27960C1993DC717CEDE5ED
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_1'"
   NodePosX=-2120
   NodePosY=-100
   NodeGuid=CE2B489A5BF929B005589EB1C3229BD5
   CustomProperties Pin (PinId=8C64C454858F583FCCC4B3B2716C1150,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 E0603A526CB3449EB075DF1E126B5D0F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_2"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_2"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_2"
      ParameterName="TilingX"
      DefaultValue=4
      SliderMin=1
      SliderMax=32
      Group="01 Interior Room"
      SortPriority=1
      Desc="How many window cells across the mesh horizontally. The mesh UV0 is multiplied by this, so one material tiles a whole facade; each cell is an independent little room with its own Cell ID seed."
      MaterialExpressionEditorX=-2120
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=D88A0D6EA47AF9C840AD04828DF5C645
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_2'"
   NodePosX=-2120
   NodePosY=60
   NodeGuid=A103E49F21578626299E174D39410F4D
   CustomProperties Pin (PinId=B87C622E7D7D0FEB419C060AA629E9C8,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 D548641B053D27EAD172241A4B0D33B2,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_3"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_3"
      ParameterName="TilingY"
      DefaultValue=4
      SliderMin=1
      SliderMax=32
      Group="01 Interior Room"
      SortPriority=2
      Desc="How many window cells across the mesh vertically. Pair with TilingX to match the building's window grid."
      MaterialExpressionEditorX=-2120
      MaterialExpressionEditorY=220
      MaterialExpressionGuid=9F057D94C35D2652501BBC50DD705C6D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_3'"
   NodePosX=-2120
   NodePosY=220
   NodeGuid=7E0FA3246E6C5A6B9D429AB6CD269BAC
   CustomProperties Pin (PinId=A5C3CE24C677FC87D4FE5EC806BC0BEA,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 FF7985A0BE2DF15F48330ED747D5F945,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_4"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_4"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_4"
      ParameterName="RoomUVScale"
      DefaultValue=1
      SliderMin=0.25
      SliderMax=4
      Group="01 Interior Room"
      SortPriority=3
      Desc="Zoom on the room contents within each cell. 1.0 = the room fills the window; higher packs the contents tighter (a smaller-looking room), lower zooms out. Scales the box-projected Room UVW."
      MaterialExpressionEditorX=-2120
      MaterialExpressionEditorY=380
      MaterialExpressionGuid=7C06CAF901E10B7710D4B6409D675552
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_4'"
   NodePosX=-2120
   NodePosY=380
   NodeGuid=741CE0FCACEF5CBBA39A4E3C441FFE57
   CustomProperties Pin (PinId=DAC3785DD8D5F1AB0BC099CF6E22CDC4,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 BDA5BEB17B4BEACEE45D0EF4D31B0EC1,),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.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_5"
   End Object
   Begin Object Name="MaterialExpressionTextureCoordinate_5"
      CoordinateIndex=0
      UTiling=1
      VTiling=1
      MaterialExpressionEditorX=-2120
      MaterialExpressionEditorY=560
      MaterialExpressionGuid=79ABB3FF8D944528C844DE5CF815AD6F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_5'"
   NodePosX=-2120
   NodePosY=560
   NodeGuid=B791A8B38FFD55123C8FB22C3B673CC5
   CustomProperties Pin (PinId=91E0914FA6BB2D9915325A87C0092C13,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 5EBD6EC9B7E1794BEB9BB3A894EBBD49,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_6"
   Begin Object Class=/Script/Engine.MaterialExpressionCameraVectorWS Name="MaterialExpressionCameraVectorWS_6"
   End Object
   Begin Object Name="MaterialExpressionCameraVectorWS_6"
      MaterialExpressionEditorX=-1700
      MaterialExpressionEditorY=620
      MaterialExpressionGuid=5C690DAE0449891ABA4841F9788B5CE4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCameraVectorWS'MaterialExpressionCameraVectorWS_6'"
   NodePosX=-1700
   NodePosY=620
   NodeGuid=82CC06780CC3A22B58598C9A755CDAE1
   CustomProperties Pin (PinId=290202A0298C551CBE22C099E89FA0C9,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_7 9B59921BC622FAC2120104A63C15AA33,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=/Script/Engine.MaterialExpressionTransform Name="MaterialExpressionTransform_7"
   End Object
   Begin Object Name="MaterialExpressionTransform_7"
      TransformSourceType=TRANSFORMSOURCE_World
      TransformType=TRANSFORM_Tangent
      Input=(Expression="/Script/Engine.MaterialExpressionCameraVectorWS'MaterialGraphNode_6.MaterialExpressionCameraVectorWS_6'")
      MaterialExpressionEditorX=-1480
      MaterialExpressionEditorY=620
      MaterialExpressionGuid=1652BDA70C50F2D792C3ED8B33D7355D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTransform'MaterialExpressionTransform_7'"
   NodePosX=-1480
   NodePosY=620
   NodeGuid=BF45C1A2ABB6D7C0DBCCA50B45F81A1E
   CustomProperties Pin (PinId=9B59921BC622FAC2120104A63C15AA33,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 290202A0298C551CBE22C099E89FA0C9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=56EEF02D3FBC8F6E77FF75F9773DF2F6,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 39B36C390A24CCD1440C0A03F1ECE82D,),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.MaterialExpressionAppendVector Name="MaterialExpressionAppendVector_8"
   End Object
   Begin Object Name="MaterialExpressionAppendVector_8"
      A=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_2.MaterialExpressionScalarParameter_2'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_3.MaterialExpressionScalarParameter_3'")
      MaterialExpressionEditorX=-1700
      MaterialExpressionEditorY=120
      MaterialExpressionGuid=60A3E44B5BD4D7A9071AF081BB0A361E
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionAppendVector'MaterialExpressionAppendVector_8'"
   NodePosX=-1700
   NodePosY=120
   NodeGuid=0D8925EC40482447AFE1023176CCBF1D
   CustomProperties Pin (PinId=D548641B053D27EAD172241A4B0D33B2,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_2 B87C622E7D7D0FEB419C060AA629E9C8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=FF7985A0BE2DF15F48330ED747D5F945,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_3 A5C3CE24C677FC87D4FE5EC806BC0BEA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=922937C6B8EDE29CE96F6F7B4F656E63,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 A81424AC0E2403BD43ABA61AD3BB7EBF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Custom Name="MaterialGraphNode_Custom_9"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_9"
   End Object
   Begin Object Name="MaterialExpressionCustom_9"
      Code="// Interior box-projection: ray-march the tangent-space view dir into a unit room\r\n// box of depth RoomDepth, return a box-projected room UVW + which wall was hit +\r\n// the window cell id. No step loop, no refraction. No Time -> TSR-safe.\r\nfloat2 tiled = UV * Tiling;\r\nCellID = floor(tiled);\r\nfloat2 cellUV = frac(tiled);                 // 0..1 inside one window cell\r\n\r\n// Ray starts at the glass plane (z=0), centred so the box spans -0.5..0.5 in xy\r\n// and 0..RoomDepth in z (into the wall). dir = -view (surface -> into room).\r\nfloat3 ro = float3(cellUV - 0.5, 0.0);\r\nfloat3 dir = -normalize(ViewTS);\r\ndir.z = (dir.z < 0.0) ? min(dir.z, -1e-3) : max(dir.z, 1e-3);  // keep marching inward\r\n\r\n// Slab intersection: distance to each candidate plane, take the nearest positive.\r\nfloat3 invd = 1.0 / dir;\r\nfloat tx = (sign(dir.x) * 0.5 - ro.x) * invd.x;   // left/right wall\r\nfloat ty = (sign(dir.y) * 0.5 - ro.y) * invd.y;   // floor/ceiling\r\nfloat tz = (RoomDepth - ro.z) * invd.z;           // back wall\r\nfloat t  = min(min(abs(tx), abs(ty)), abs(tz));\r\n\r\nfloat3 hit = ro + dir * t;                        // position on the hit plane\r\n\r\n// Box-project to a 0..1 room UVW (z normalised by depth so atlases sit right).\r\nfloat3 uvw = float3(hit.xy + 0.5, saturate(hit.z / max(RoomDepth, 1e-3)));\r\nuvw.xy = (uvw.xy - 0.5) / max(RoomUVScale, 1e-3) + 0.5;\r\n\r\n// Which plane did we hit? back / left / right / floor / ceiling.\r\nfloat face = 0.0;                                 // 0 = back wall\r\nif (abs(tx) <= abs(ty) && abs(tx) <= abs(tz)) face = (dir.x > 0.0) ? 2.0 : 1.0;  // right / left\r\nelse if (abs(ty) <= abs(tz))                 face = (dir.y > 0.0) ? 4.0 : 3.0;  // ceiling / floor\r\nWallFace = face;\r\n\r\nreturn uvw;\r\n"
      OutputType=CMOT_Float3
      Description="Interior Mapping Engine"
      ShowCode=True
      bShowOutputNameOnPin=True
      Inputs(0)=(InputName="UV",Input=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_5.MaterialExpressionTextureCoordinate_5'"))
      Inputs(1)=(InputName="ViewTS",Input=(Expression="/Script/Engine.MaterialExpressionTransform'MaterialGraphNode_7.MaterialExpressionTransform_7'"))
      Inputs(2)=(InputName="Tiling",Input=(Expression="/Script/Engine.MaterialExpressionAppendVector'MaterialGraphNode_8.MaterialExpressionAppendVector_8'"))
      Inputs(3)=(InputName="RoomDepth",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_1.MaterialExpressionScalarParameter_1'"))
      Inputs(4)=(InputName="RoomUVScale",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_4.MaterialExpressionScalarParameter_4'"))
      AdditionalOutputs(0)=(OutputName="WallFace",OutputType=CMOT_Float1)
      AdditionalOutputs(1)=(OutputName="CellID",OutputType=CMOT_Float2)
      Desc="Ray-box interior mapping: reciprocal of the tangent-space view dir, three slab-plane distances, nearest positive t, pos += t*dir, box-projected to a 0-1 room UVW. Outputs the room UVW, the hit wall face index, and the per-cell window id. No Time - TSR-safe."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=200
      MaterialExpressionGuid=7261D06325DF27FDFB16A41B9364E350
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCustom'MaterialExpressionCustom_9'"
   NodePosX=-1240
   NodePosY=200
   NodeGuid=2E2CA2527CE42CD3CA733B30068A4EFC
   CustomProperties Pin (PinId=5EBD6EC9B7E1794BEB9BB3A894EBBD49,PinName="UV",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_5 91E0914FA6BB2D9915325A87C0092C13,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=39B36C390A24CCD1440C0A03F1ECE82D,PinName="ViewTS",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_7 56EEF02D3FBC8F6E77FF75F9773DF2F6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A81424AC0E2403BD43ABA61AD3BB7EBF,PinName="Tiling",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 922937C6B8EDE29CE96F6F7B4F656E63,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E0603A526CB3449EB075DF1E126B5D0F,PinName="RoomDepth",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_1 8C64C454858F583FCCC4B3B2716C1150,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BDA5BEB17B4BEACEE45D0EF4D31B0EC1,PinName="RoomUVScale",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_4 DAC3785DD8D5F1AB0BC099CF6E22CDC4,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=06FD3FDD11F8203CBD59994EE6ECBF29,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 0D055F1D7E2A6FF0570D8F9B8E39BAF0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=50A99530AA3E0354F36165C82071E7FA,PinName="WallFace",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_14 13825B076144C68F66EDDB5B958527E8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=22D92D9224B08AE13F2FA0CD1A07A928,PinName="CellID",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_17 7C984CF34AD29DBF930E79D12614271C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_10"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C10"
   End Object
   Begin Object Name="MaterialExpressionComment_C10"
      SizeX=520
      SizeY=240
      Text="Room UVW → a room cubemap / atlas sampler's UVW"
      CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
      MaterialExpressionEditorX=-820
      MaterialExpressionEditorY=-160
      MaterialExpressionGuid=18E89EFBA950B6ADECD12FDD6A153C05
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C10'"
   CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
   NodePosX=-820
   NodePosY=-160
   NodeWidth=520
   NodeHeight=240
   NodeComment="Room UVW → a room cubemap / atlas sampler's UVW"
   NodeGuid=0D0697A08CAAC5A1E9133A29481141E8
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_11"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_11"
   End Object
   Begin Object Name="MaterialExpressionMultiply_11"
      A=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_9.MaterialExpressionCustom_9'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_12.MaterialExpressionConstant_12'")
      MaterialExpressionEditorX=-700
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=74D2823C99883085CCFAD26C613EF03F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_11'"
   NodePosX=-700
   NodePosY=-60
   NodeGuid=3B822D2ACC7494A53EEEFC943263EFB1
   CustomProperties Pin (PinId=0D055F1D7E2A6FF0570D8F9B8E39BAF0,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 06FD3FDD11F8203CBD59994EE6ECBF29,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C177BEB9DB219FE603439A9852FA8C65,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_12 629C756CF0CF953FA60DF9075886DEEF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=79B4E36C58150F4774321E747830C747,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=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_12"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_12"
   End Object
   Begin Object Name="MaterialExpressionConstant_12"
      R=1
      MaterialExpressionEditorX=-700
      MaterialExpressionEditorY=80
      MaterialExpressionGuid=48397D7713D758E0FD8C8BB6CA1E9867
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_12'"
   NodePosX=-700
   NodePosY=80
   NodeGuid=545F6CDD230484FD22923FCC22603466
   CustomProperties Pin (PinId=629C756CF0CF953FA60DF9075886DEEF,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 C177BEB9DB219FE603439A9852FA8C65,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_13"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C13"
   End Object
   Begin Object Name="MaterialExpressionComment_C13"
      SizeX=520
      SizeY=220
      Text="Wall Face → per-face tint / texture select (0 back 1 L 2 R 3 floor 4 ceil)"
      CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
      MaterialExpressionEditorX=-820
      MaterialExpressionEditorY=160
      MaterialExpressionGuid=486CC8518679AE30D8AA34E4D7040D4F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C13'"
   CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
   NodePosX=-820
   NodePosY=160
   NodeWidth=520
   NodeHeight=220
   NodeComment="Wall Face → per-face tint / texture select (0 back 1 L 2 R 3 floor 4 ceil)"
   NodeGuid=80F4C38A6EB74EC80DF8B6DF19695505
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_14"
   End Object
   Begin Object Name="MaterialExpressionMultiply_14"
      A=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_9.MaterialExpressionCustom_9'",OutputIndex=1)
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_15.MaterialExpressionConstant_15'")
      MaterialExpressionEditorX=-700
      MaterialExpressionEditorY=260
      MaterialExpressionGuid=FDC9816F570495907AB8B67FAF99FB4D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_14'"
   NodePosX=-700
   NodePosY=260
   NodeGuid=548B139C736B98C72968A27A80AA30B3
   CustomProperties Pin (PinId=13825B076144C68F66EDDB5B958527E8,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 50A99530AA3E0354F36165C82071E7FA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=35C9F24291554685E83BC97BCBB1E000,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_15 47A4B5B6395A0C19B873E7CF513F505E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F72A7DFD903B75B3B6DD5AE2B86C6294,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=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_15"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_15"
   End Object
   Begin Object Name="MaterialExpressionConstant_15"
      R=1
      MaterialExpressionEditorX=-700
      MaterialExpressionEditorY=400
      MaterialExpressionGuid=63FE01DECE861CD73C92013D4A6550E3
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_15'"
   NodePosX=-700
   NodePosY=400
   NodeGuid=FF404C47D99D35B0CACCF6DD3325EA2F
   CustomProperties Pin (PinId=47A4B5B6395A0C19B873E7CF513F505E,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_14 35C9F24291554685E83BC97BCBB1E000,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_16"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C16"
   End Object
   Begin Object Name="MaterialExpressionComment_C16"
      SizeX=520
      SizeY=220
      Text="Cell ID → hash for per-window variation (Float2 grid coord)"
      CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
      MaterialExpressionEditorX=-820
      MaterialExpressionEditorY=460
      MaterialExpressionGuid=098ECCEFD78EAB0B96A3A3C933216717
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C16'"
   CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
   NodePosX=-820
   NodePosY=460
   NodeWidth=520
   NodeHeight=220
   NodeComment="Cell ID → hash for per-window variation (Float2 grid coord)"
   NodeGuid=17A9F0BB25D0588EA6333F65407AFC3B
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_17"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_17"
   End Object
   Begin Object Name="MaterialExpressionMultiply_17"
      A=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_9.MaterialExpressionCustom_9'",OutputIndex=2)
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_18.MaterialExpressionConstant_18'")
      MaterialExpressionEditorX=-700
      MaterialExpressionEditorY=560
      MaterialExpressionGuid=8D0EECB87BAEB262FCCE2E38E9708EC2
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_17'"
   NodePosX=-700
   NodePosY=560
   NodeGuid=78FAEE59D57CFFA76AE58F8E2F8B3D24
   CustomProperties Pin (PinId=7C984CF34AD29DBF930E79D12614271C,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_Custom_9 22D92D9224B08AE13F2FA0CD1A07A928,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=1FA38B825EE543783FE6785992B3A9E8,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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_18 01DB1D7C11ECDDB1C705BBFC94FF5382,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2209E51733CA7CE279F69DA8B5ABBD67,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=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_18"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_18"
   End Object
   Begin Object Name="MaterialExpressionConstant_18"
      R=1
      MaterialExpressionEditorX=-700
      MaterialExpressionEditorY=700
      MaterialExpressionGuid=2DE0A6B0A8A71D90EA99D5982A5F5AB8
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_InteriorWindowMapping'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_18'"
   NodePosX=-700
   NodePosY=700
   NodeGuid=EA5A7F0803A6C7736C02BCE676247269
   CustomProperties Pin (PinId=01DB1D7C11ECDDB1C705BBFC94FF5382,PinName="Output",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,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_17 1FA38B825EE543783FE6785992B3A9E8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Nodes: Comment (x4), ScalarParameter (x4), Constant (x3), Multiply (x3), AppendVector, CameraVectorWS, Custom, Material, TextureCoordinate, Transform

more from @hazesee all

Digital Text Rain (matrix-style falling code)

@hazeUE 5.6+

Signal Lights

@hazeUE 5.6+

Cracked Glass

@hazeUE 5.6+

More like this

Fake Interior Window

@hazeUE 5.6+

Decal Master

@hazeUE 5.6+

Radial Motion Blur

@hazeUE 5.6+

Interior Window Mapping

@hazefounder
UE 5.6UE 5.7

0
license

CC0 1.0: Public Domain

Public domain: use it however you like, no credit required.

dependencies

Zero dependencies

Pastes and works in any UE 5.3+ project. No textures, no material functions, no MPCs.

ue compatibility
UE 5.3UE 5.4UE 5.5UE 5.6UE 5.7

Details

Last update
2 hours ago
Published
2 hours ago
Nodes
19