| ; SPIR-V |
| ; Version: 1.0 |
| ; Generator: Khronos Glslang Reference Front End; 3 |
| ; Bound: 1532 |
| ; Schema: 0 |
| OpCapability Shader |
| %1 = OpExtInstImport "GLSL.std.450" |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint Fragment %main "main" %IN_HPosition %IN_Uv_EdgeDistance1 %IN_UvStuds_EdgeDistance2 %IN_Color %IN_LightPosition_Fog %IN_View_Depth %IN_Normal_SpecPower %IN_Tangent %IN_PosLightSpace_Reflectance %IN_studIndex %_entryPointOutput |
| OpExecutionMode %main OriginUpperLeft |
| OpSource HLSL 500 |
| OpName %main "main" |
| OpName %VertexOutput "VertexOutput" |
| OpMemberName %VertexOutput 0 "HPosition" |
| OpMemberName %VertexOutput 1 "Uv_EdgeDistance1" |
| OpMemberName %VertexOutput 2 "UvStuds_EdgeDistance2" |
| OpMemberName %VertexOutput 3 "Color" |
| OpMemberName %VertexOutput 4 "LightPosition_Fog" |
| OpMemberName %VertexOutput 5 "View_Depth" |
| OpMemberName %VertexOutput 6 "Normal_SpecPower" |
| OpMemberName %VertexOutput 7 "Tangent" |
| OpMemberName %VertexOutput 8 "PosLightSpace_Reflectance" |
| OpMemberName %VertexOutput 9 "studIndex" |
| OpName %Surface "Surface" |
| OpMemberName %Surface 0 "albedo" |
| OpMemberName %Surface 1 "normal" |
| OpMemberName %Surface 2 "specular" |
| OpMemberName %Surface 3 "gloss" |
| OpMemberName %Surface 4 "reflectance" |
| OpMemberName %Surface 5 "opacity" |
| OpName %SurfaceInput "SurfaceInput" |
| OpMemberName %SurfaceInput 0 "Color" |
| OpMemberName %SurfaceInput 1 "Uv" |
| OpMemberName %SurfaceInput 2 "UvStuds" |
| OpName %Globals "Globals" |
| OpMemberName %Globals 0 "ViewProjection" |
| OpMemberName %Globals 1 "ViewRight" |
| OpMemberName %Globals 2 "ViewUp" |
| OpMemberName %Globals 3 "ViewDir" |
| OpMemberName %Globals 4 "CameraPosition" |
| OpMemberName %Globals 5 "AmbientColor" |
| OpMemberName %Globals 6 "Lamp0Color" |
| OpMemberName %Globals 7 "Lamp0Dir" |
| OpMemberName %Globals 8 "Lamp1Color" |
| OpMemberName %Globals 9 "FogParams" |
| OpMemberName %Globals 10 "FogColor" |
| OpMemberName %Globals 11 "LightBorder" |
| OpMemberName %Globals 12 "LightConfig0" |
| OpMemberName %Globals 13 "LightConfig1" |
| OpMemberName %Globals 14 "LightConfig2" |
| OpMemberName %Globals 15 "LightConfig3" |
| OpMemberName %Globals 16 "RefractionBias_FadeDistance_GlowFactor" |
| OpMemberName %Globals 17 "OutlineBrightness_ShadowInfo" |
| OpMemberName %Globals 18 "ShadowMatrix0" |
| OpMemberName %Globals 19 "ShadowMatrix1" |
| OpMemberName %Globals 20 "ShadowMatrix2" |
| OpName %CB0 "CB0" |
| OpMemberName %CB0 0 "CB0" |
| OpName %_ "" |
| OpName %LightMapTexture "LightMapTexture" |
| OpName %LightMapSampler "LightMapSampler" |
| OpName %ShadowMapSampler "ShadowMapSampler" |
| OpName %ShadowMapTexture "ShadowMapTexture" |
| OpName %EnvironmentMapTexture "EnvironmentMapTexture" |
| OpName %EnvironmentMapSampler "EnvironmentMapSampler" |
| OpName %IN_HPosition "IN.HPosition" |
| OpName %IN_Uv_EdgeDistance1 "IN.Uv_EdgeDistance1" |
| OpName %IN_UvStuds_EdgeDistance2 "IN.UvStuds_EdgeDistance2" |
| OpName %IN_Color "IN.Color" |
| OpName %IN_LightPosition_Fog "IN.LightPosition_Fog" |
| OpName %IN_View_Depth "IN.View_Depth" |
| OpName %IN_Normal_SpecPower "IN.Normal_SpecPower" |
| OpName %IN_Tangent "IN.Tangent" |
| OpName %IN_PosLightSpace_Reflectance "IN.PosLightSpace_Reflectance" |
| OpName %IN_studIndex "IN.studIndex" |
| OpName %_entryPointOutput "@entryPointOutput" |
| OpName %DiffuseMapSampler "DiffuseMapSampler" |
| OpName %DiffuseMapTexture "DiffuseMapTexture" |
| OpName %NormalMapSampler "NormalMapSampler" |
| OpName %NormalMapTexture "NormalMapTexture" |
| OpName %NormalDetailMapTexture "NormalDetailMapTexture" |
| OpName %NormalDetailMapSampler "NormalDetailMapSampler" |
| OpName %StudsMapTexture "StudsMapTexture" |
| OpName %StudsMapSampler "StudsMapSampler" |
| OpName %SpecularMapSampler "SpecularMapSampler" |
| OpName %SpecularMapTexture "SpecularMapTexture" |
| OpName %Params "Params" |
| OpMemberName %Params 0 "LqmatFarTilingFactor" |
| OpName %CB2 "CB2" |
| OpMemberName %CB2 0 "CB2" |
| OpMemberDecorate %Globals 0 ColMajor |
| OpMemberDecorate %Globals 0 Offset 0 |
| OpMemberDecorate %Globals 0 MatrixStride 16 |
| OpMemberDecorate %Globals 1 Offset 64 |
| OpMemberDecorate %Globals 2 Offset 80 |
| OpMemberDecorate %Globals 3 Offset 96 |
| OpMemberDecorate %Globals 4 Offset 112 |
| OpMemberDecorate %Globals 5 Offset 128 |
| OpMemberDecorate %Globals 6 Offset 144 |
| OpMemberDecorate %Globals 7 Offset 160 |
| OpMemberDecorate %Globals 8 Offset 176 |
| OpMemberDecorate %Globals 9 Offset 192 |
| OpMemberDecorate %Globals 10 Offset 208 |
| OpMemberDecorate %Globals 11 Offset 224 |
| OpMemberDecorate %Globals 12 Offset 240 |
| OpMemberDecorate %Globals 13 Offset 256 |
| OpMemberDecorate %Globals 14 Offset 272 |
| OpMemberDecorate %Globals 15 Offset 288 |
| OpMemberDecorate %Globals 16 Offset 304 |
| OpMemberDecorate %Globals 17 Offset 320 |
| OpMemberDecorate %Globals 18 Offset 336 |
| OpMemberDecorate %Globals 19 Offset 352 |
| OpMemberDecorate %Globals 20 Offset 368 |
| OpMemberDecorate %CB0 0 Offset 0 |
| OpDecorate %CB0 Block |
| OpDecorate %_ DescriptorSet 0 |
| OpDecorate %_ Binding 0 |
| OpDecorate %LightMapTexture DescriptorSet 1 |
| OpDecorate %LightMapTexture Binding 6 |
| OpDecorate %LightMapSampler DescriptorSet 1 |
| OpDecorate %LightMapSampler Binding 6 |
| OpDecorate %ShadowMapSampler DescriptorSet 1 |
| OpDecorate %ShadowMapSampler Binding 1 |
| OpDecorate %ShadowMapTexture DescriptorSet 1 |
| OpDecorate %ShadowMapTexture Binding 1 |
| OpDecorate %EnvironmentMapTexture DescriptorSet 1 |
| OpDecorate %EnvironmentMapTexture Binding 2 |
| OpDecorate %EnvironmentMapSampler DescriptorSet 1 |
| OpDecorate %EnvironmentMapSampler Binding 2 |
| OpDecorate %IN_HPosition BuiltIn FragCoord |
| OpDecorate %IN_Uv_EdgeDistance1 Location 0 |
| OpDecorate %IN_UvStuds_EdgeDistance2 Location 1 |
| OpDecorate %IN_Color Location 2 |
| OpDecorate %IN_LightPosition_Fog Location 3 |
| OpDecorate %IN_View_Depth Location 4 |
| OpDecorate %IN_Normal_SpecPower Location 5 |
| OpDecorate %IN_Tangent Location 6 |
| OpDecorate %IN_PosLightSpace_Reflectance Location 7 |
| OpDecorate %IN_studIndex Location 8 |
| OpDecorate %_entryPointOutput Location 0 |
| OpDecorate %DiffuseMapSampler DescriptorSet 1 |
| OpDecorate %DiffuseMapSampler Binding 3 |
| OpDecorate %DiffuseMapTexture DescriptorSet 1 |
| OpDecorate %DiffuseMapTexture Binding 3 |
| OpDecorate %NormalMapSampler DescriptorSet 1 |
| OpDecorate %NormalMapSampler Binding 4 |
| OpDecorate %NormalMapTexture DescriptorSet 1 |
| OpDecorate %NormalMapTexture Binding 4 |
| OpDecorate %NormalDetailMapTexture DescriptorSet 1 |
| OpDecorate %NormalDetailMapTexture Binding 8 |
| OpDecorate %NormalDetailMapSampler DescriptorSet 1 |
| OpDecorate %NormalDetailMapSampler Binding 8 |
| OpDecorate %StudsMapTexture DescriptorSet 1 |
| OpDecorate %StudsMapTexture Binding 0 |
| OpDecorate %StudsMapSampler DescriptorSet 1 |
| OpDecorate %StudsMapSampler Binding 0 |
| OpDecorate %SpecularMapSampler DescriptorSet 1 |
| OpDecorate %SpecularMapSampler Binding 5 |
| OpDecorate %SpecularMapTexture DescriptorSet 1 |
| OpDecorate %SpecularMapTexture Binding 5 |
| OpMemberDecorate %Params 0 Offset 0 |
| OpMemberDecorate %CB2 0 Offset 0 |
| OpDecorate %CB2 Block |
| %void = OpTypeVoid |
| %3 = OpTypeFunction %void |
| %float = OpTypeFloat 32 |
| %_ptr_Function_float = OpTypePointer Function %float |
| %8 = OpTypeFunction %float %_ptr_Function_float |
| %v4float = OpTypeVector %float 4 |
| %_ptr_Function_v4float = OpTypePointer Function %v4float |
| %v3float = OpTypeVector %float 3 |
| %18 = OpTypeFunction %v3float %_ptr_Function_v4float |
| %_ptr_Function_v3float = OpTypePointer Function %v3float |
| %23 = OpTypeFunction %v4float %_ptr_Function_v3float |
| %27 = OpTypeFunction %float %_ptr_Function_v3float |
| %31 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float |
| %36 = OpTypeSampler |
| %_ptr_Function_36 = OpTypePointer Function %36 |
| %38 = OpTypeImage %float 2D 0 0 0 1 Unknown |
| %_ptr_Function_38 = OpTypePointer Function %38 |
| %40 = OpTypeFunction %float %_ptr_Function_36 %_ptr_Function_38 %_ptr_Function_v3float %_ptr_Function_float |
| %VertexOutput = OpTypeStruct %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v3float %v4float %float |
| %_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput |
| %Surface = OpTypeStruct %v3float %v3float %float %float %float %float |
| %50 = OpTypeFunction %Surface %_ptr_Function_VertexOutput |
| %54 = OpTypeFunction %v4float %_ptr_Function_VertexOutput |
| %v2float = OpTypeVector %float 2 |
| %_ptr_Function_v2float = OpTypePointer Function %v2float |
| %60 = OpTypeFunction %v4float %_ptr_Function_36 %_ptr_Function_38 %_ptr_Function_v2float %_ptr_Function_float %_ptr_Function_float |
| %SurfaceInput = OpTypeStruct %v4float %v2float %v2float |
| %_ptr_Function_SurfaceInput = OpTypePointer Function %SurfaceInput |
| %70 = OpTypeFunction %Surface %_ptr_Function_SurfaceInput %_ptr_Function_v2float |
| %float_0 = OpConstant %float 0 |
| %float_1 = OpConstant %float 1 |
| %float_2 = OpConstant %float 2 |
| %mat4v4float = OpTypeMatrix %v4float 4 |
| %Globals = OpTypeStruct %mat4v4float %v4float %v4float %v4float %v3float %v3float %v3float %v3float %v3float %v4float %v3float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float %v4float |
| %CB0 = OpTypeStruct %Globals |
| %_ptr_Uniform_CB0 = OpTypePointer Uniform %CB0 |
| %_ = OpVariable %_ptr_Uniform_CB0 Uniform |
| %int = OpTypeInt 32 1 |
| %int_0 = OpConstant %int 0 |
| %int_15 = OpConstant %int 15 |
| %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float |
| %int_14 = OpConstant %int 14 |
| %128 = OpConstantComposite %v3float %float_1 %float_1 %float_1 |
| %133 = OpTypeImage %float 3D 0 0 0 1 Unknown |
| %_ptr_UniformConstant_133 = OpTypePointer UniformConstant %133 |
| %LightMapTexture = OpVariable %_ptr_UniformConstant_133 UniformConstant |
| %_ptr_UniformConstant_36 = OpTypePointer UniformConstant %36 |
| %LightMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %140 = OpTypeSampledImage %133 |
| %int_11 = OpConstant %int 11 |
| %uint = OpTypeInt 32 0 |
| %float_9 = OpConstant %float 9 |
| %float_20 = OpConstant %float 20 |
| %float_0_5 = OpConstant %float 0.5 |
| %183 = OpTypeSampledImage %38 |
| %uint_0 = OpConstant %uint 0 |
| %uint_1 = OpConstant %uint 1 |
| %int_17 = OpConstant %int 17 |
| %uint_3 = OpConstant %uint 3 |
| %_ptr_Uniform_float = OpTypePointer Uniform %float |
| %float_0_25 = OpConstant %float 0.25 |
| %int_5 = OpConstant %int 5 |
| %float_0_00333333 = OpConstant %float 0.00333333 |
| %int_16 = OpConstant %int 16 |
| %_ptr_Function_Surface = OpTypePointer Function %Surface |
| %int_6 = OpConstant %int 6 |
| %int_7 = OpConstant %int 7 |
| %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float |
| %int_8 = OpConstant %int 8 |
| %ShadowMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %_ptr_UniformConstant_38 = OpTypePointer UniformConstant %38 |
| %ShadowMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant |
| %367 = OpTypeImage %float Cube 0 0 0 1 Unknown |
| %_ptr_UniformConstant_367 = OpTypePointer UniformConstant %367 |
| %EnvironmentMapTexture = OpVariable %_ptr_UniformConstant_367 UniformConstant |
| %EnvironmentMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %373 = OpTypeSampledImage %367 |
| %float_1_5 = OpConstant %float 1.5 |
| %int_10 = OpConstant %int 10 |
| %_ptr_Input_v4float = OpTypePointer Input %v4float |
| %IN_HPosition = OpVariable %_ptr_Input_v4float Input |
| %IN_Uv_EdgeDistance1 = OpVariable %_ptr_Input_v4float Input |
| %IN_UvStuds_EdgeDistance2 = OpVariable %_ptr_Input_v4float Input |
| %IN_Color = OpVariable %_ptr_Input_v4float Input |
| %IN_LightPosition_Fog = OpVariable %_ptr_Input_v4float Input |
| %IN_View_Depth = OpVariable %_ptr_Input_v4float Input |
| %IN_Normal_SpecPower = OpVariable %_ptr_Input_v4float Input |
| %_ptr_Input_v3float = OpTypePointer Input %v3float |
| %IN_Tangent = OpVariable %_ptr_Input_v3float Input |
| %IN_PosLightSpace_Reflectance = OpVariable %_ptr_Input_v4float Input |
| %_ptr_Input_float = OpTypePointer Input %float |
| %IN_studIndex = OpVariable %_ptr_Input_float Input |
| %_ptr_Output_v4float = OpTypePointer Output %v4float |
| %_entryPointOutput = OpVariable %_ptr_Output_v4float Output |
| %bool = OpTypeBool |
| %DiffuseMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %DiffuseMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant |
| %NormalMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %NormalMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant |
| %NormalDetailMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant |
| %NormalDetailMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %float_0_3 = OpConstant %float 0.3 |
| %StudsMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant |
| %StudsMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %SpecularMapSampler = OpVariable %_ptr_UniformConstant_36 UniformConstant |
| %SpecularMapTexture = OpVariable %_ptr_UniformConstant_38 UniformConstant |
| %float_0_75 = OpConstant %float 0.75 |
| %float_256 = OpConstant %float 256 |
| %689 = OpConstantComposite %v2float %float_2 %float_256 |
| %float_0_01 = OpConstant %float 0.01 |
| %692 = OpConstantComposite %v2float %float_0 %float_0_01 |
| %float_0_8 = OpConstant %float 0.8 |
| %float_120 = OpConstant %float 120 |
| %697 = OpConstantComposite %v2float %float_0_8 %float_120 |
| %Params = OpTypeStruct %v4float |
| %CB2 = OpTypeStruct %Params |
| %_ptr_Uniform_CB2 = OpTypePointer Uniform %CB2 |
| %false = OpConstantFalse %bool |
| %1509 = OpUndef %VertexOutput |
| %1510 = OpUndef %SurfaceInput |
| %1511 = OpUndef %v2float |
| %1512 = OpUndef %v4float |
| %1531 = OpUndef %Surface |
| %main = OpFunction %void None %3 |
| %5 = OpLabel |
| %501 = OpLoad %v4float %IN_HPosition |
| %1378 = OpCompositeInsert %VertexOutput %501 %1509 0 |
| %504 = OpLoad %v4float %IN_Uv_EdgeDistance1 |
| %1380 = OpCompositeInsert %VertexOutput %504 %1378 1 |
| %507 = OpLoad %v4float %IN_UvStuds_EdgeDistance2 |
| %1382 = OpCompositeInsert %VertexOutput %507 %1380 2 |
| %510 = OpLoad %v4float %IN_Color |
| %1384 = OpCompositeInsert %VertexOutput %510 %1382 3 |
| %513 = OpLoad %v4float %IN_LightPosition_Fog |
| %1386 = OpCompositeInsert %VertexOutput %513 %1384 4 |
| %516 = OpLoad %v4float %IN_View_Depth |
| %1388 = OpCompositeInsert %VertexOutput %516 %1386 5 |
| %519 = OpLoad %v4float %IN_Normal_SpecPower |
| %1390 = OpCompositeInsert %VertexOutput %519 %1388 6 |
| %523 = OpLoad %v3float %IN_Tangent |
| %1392 = OpCompositeInsert %VertexOutput %523 %1390 7 |
| %526 = OpLoad %v4float %IN_PosLightSpace_Reflectance |
| %1394 = OpCompositeInsert %VertexOutput %526 %1392 8 |
| %530 = OpLoad %float %IN_studIndex |
| %1396 = OpCompositeInsert %VertexOutput %530 %1394 9 |
| %1400 = OpCompositeInsert %SurfaceInput %510 %1510 0 |
| %954 = OpVectorShuffle %v2float %504 %504 0 1 |
| %1404 = OpCompositeInsert %SurfaceInput %954 %1400 1 |
| %958 = OpVectorShuffle %v2float %507 %507 0 1 |
| %1408 = OpCompositeInsert %SurfaceInput %958 %1404 2 |
| %1410 = OpCompositeExtract %float %1408 2 1 |
| %962 = OpExtInst %float %1 Fract %1410 |
| %965 = OpFAdd %float %962 %530 |
| %966 = OpFMul %float %965 %float_0_25 |
| %1414 = OpCompositeInsert %SurfaceInput %966 %1408 2 1 |
| %1416 = OpCompositeExtract %float %1396 5 3 |
| %970 = OpFMul %float %1416 %float_0_00333333 |
| %971 = OpFSub %float %float_1 %970 |
| %987 = OpExtInst %float %1 FClamp %971 %float_0 %float_1 |
| %976 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_16 %uint_1 |
| %977 = OpLoad %float %976 |
| %978 = OpFMul %float %1416 %977 |
| %979 = OpFSub %float %float_1 %978 |
| %990 = OpExtInst %float %1 FClamp %979 %float_0 %float_1 |
| %1024 = OpVectorTimesScalar %v2float %954 %float_1 |
| %1029 = OpLoad %36 %DiffuseMapSampler |
| %1030 = OpLoad %38 %DiffuseMapTexture |
| OpBranch %1119 |
| %1119 = OpLabel |
| OpLoopMerge %1120 %1121 None |
| OpBranch %1122 |
| %1122 = OpLabel |
| %1124 = OpFOrdEqual %bool %float_0 %float_0 |
| OpSelectionMerge %1125 None |
| OpBranchConditional %1124 %1126 %1127 |
| %1126 = OpLabel |
| %1130 = OpSampledImage %183 %1030 %1029 |
| %1132 = OpImageSampleImplicitLod %v4float %1130 %1024 |
| OpBranch %1120 |
| %1127 = OpLabel |
| %1134 = OpFSub %float %float_1 %float_0 |
| %1135 = OpFDiv %float %float_1 %1134 |
| %1138 = OpSampledImage %183 %1030 %1029 |
| %1140 = OpVectorTimesScalar %v2float %1024 %float_0_25 |
| %1141 = OpImageSampleImplicitLod %v4float %1138 %1140 |
| %1144 = OpSampledImage %183 %1030 %1029 |
| %1146 = OpImageSampleImplicitLod %v4float %1144 %1024 |
| %1149 = OpFMul %float %987 %1135 |
| %1152 = OpFMul %float %float_0 %1135 |
| %1153 = OpFSub %float %1149 %1152 |
| %1161 = OpExtInst %float %1 FClamp %1153 %float_0 %float_1 |
| %1155 = OpCompositeConstruct %v4float %1161 %1161 %1161 %1161 |
| %1156 = OpExtInst %v4float %1 FMix %1141 %1146 %1155 |
| OpBranch %1120 |
| %1125 = OpLabel |
| %1157 = OpUndef %v4float |
| OpBranch %1120 |
| %1121 = OpLabel |
| OpBranchConditional %false %1119 %1120 |
| %1120 = OpLabel |
| %1517 = OpPhi %v4float %1132 %1126 %1156 %1127 %1157 %1125 %1512 %1121 |
| %1035 = OpVectorTimesScalar %v4float %1517 %float_1 |
| %1036 = OpLoad %36 %NormalMapSampler |
| %1037 = OpLoad %38 %NormalMapTexture |
| OpBranch %1165 |
| %1165 = OpLabel |
| OpLoopMerge %1166 %1167 None |
| OpBranch %1168 |
| %1168 = OpLabel |
| OpSelectionMerge %1171 None |
| OpBranchConditional %1124 %1172 %1173 |
| %1172 = OpLabel |
| %1176 = OpSampledImage %183 %1037 %1036 |
| %1178 = OpImageSampleImplicitLod %v4float %1176 %1024 |
| OpBranch %1166 |
| %1173 = OpLabel |
| %1180 = OpFSub %float %float_1 %float_0 |
| %1181 = OpFDiv %float %float_1 %1180 |
| %1184 = OpSampledImage %183 %1037 %1036 |
| %1186 = OpVectorTimesScalar %v2float %1024 %float_0_25 |
| %1187 = OpImageSampleImplicitLod %v4float %1184 %1186 |
| %1190 = OpSampledImage %183 %1037 %1036 |
| %1192 = OpImageSampleImplicitLod %v4float %1190 %1024 |
| %1195 = OpFMul %float %990 %1181 |
| %1198 = OpFMul %float %float_0 %1181 |
| %1199 = OpFSub %float %1195 %1198 |
| %1206 = OpExtInst %float %1 FClamp %1199 %float_0 %float_1 |
| %1201 = OpCompositeConstruct %v4float %1206 %1206 %1206 %1206 |
| %1202 = OpExtInst %v4float %1 FMix %1187 %1192 %1201 |
| OpBranch %1166 |
| %1171 = OpLabel |
| %1203 = OpUndef %v4float |
| OpBranch %1166 |
| %1167 = OpLabel |
| OpBranchConditional %false %1165 %1166 |
| %1166 = OpLabel |
| %1523 = OpPhi %v4float %1178 %1172 %1202 %1173 %1203 %1171 %1512 %1167 |
| %1210 = OpVectorShuffle %v2float %1523 %1523 3 1 |
| %1211 = OpVectorTimesScalar %v2float %1210 %float_2 |
| %1212 = OpCompositeConstruct %v2float %float_1 %float_1 |
| %1213 = OpFSub %v2float %1211 %1212 |
| %1216 = OpFNegate %v2float %1213 |
| %1218 = OpDot %float %1216 %1213 |
| %1219 = OpFAdd %float %float_1 %1218 |
| %1220 = OpExtInst %float %1 FClamp %1219 %float_0 %float_1 |
| %1221 = OpExtInst %float %1 Sqrt %1220 |
| %1222 = OpCompositeExtract %float %1213 0 |
| %1223 = OpCompositeExtract %float %1213 1 |
| %1224 = OpCompositeConstruct %v3float %1222 %1223 %1221 |
| %1042 = OpLoad %38 %NormalDetailMapTexture |
| %1043 = OpLoad %36 %NormalDetailMapSampler |
| %1044 = OpSampledImage %183 %1042 %1043 |
| %1046 = OpVectorTimesScalar %v2float %1024 %float_0 |
| %1047 = OpImageSampleImplicitLod %v4float %1044 %1046 |
| %1228 = OpVectorShuffle %v2float %1047 %1047 3 1 |
| %1229 = OpVectorTimesScalar %v2float %1228 %float_2 |
| %1231 = OpFSub %v2float %1229 %1212 |
| %1234 = OpFNegate %v2float %1231 |
| %1236 = OpDot %float %1234 %1231 |
| %1237 = OpFAdd %float %float_1 %1236 |
| %1238 = OpExtInst %float %1 FClamp %1237 %float_0 %float_1 |
| %1239 = OpExtInst %float %1 Sqrt %1238 |
| %1240 = OpCompositeExtract %float %1231 0 |
| %1241 = OpCompositeExtract %float %1231 1 |
| %1242 = OpCompositeConstruct %v3float %1240 %1241 %1239 |
| %1050 = OpVectorShuffle %v2float %1242 %1242 0 1 |
| %1051 = OpVectorTimesScalar %v2float %1050 %float_0 |
| %1053 = OpVectorShuffle %v2float %1224 %1224 0 1 |
| %1054 = OpFAdd %v2float %1053 %1051 |
| %1056 = OpVectorShuffle %v3float %1224 %1054 3 4 2 |
| %1059 = OpVectorShuffle %v2float %1056 %1056 0 1 |
| %1060 = OpVectorTimesScalar %v2float %1059 %990 |
| %1062 = OpVectorShuffle %v3float %1056 %1060 3 4 2 |
| %1430 = OpCompositeExtract %float %1062 0 |
| %1065 = OpFMul %float %1430 %float_0_3 |
| %1066 = OpFAdd %float %float_1 %1065 |
| %1069 = OpVectorShuffle %v3float %510 %510 0 1 2 |
| %1071 = OpVectorShuffle %v3float %1035 %1035 0 1 2 |
| %1072 = OpFMul %v3float %1069 %1071 |
| %1074 = OpVectorTimesScalar %v3float %1072 %1066 |
| %1075 = OpLoad %38 %StudsMapTexture |
| %1076 = OpLoad %36 %StudsMapSampler |
| %1077 = OpSampledImage %183 %1075 %1076 |
| %1434 = OpCompositeExtract %v2float %1414 2 |
| %1080 = OpImageSampleImplicitLod %v4float %1077 %1434 |
| %1436 = OpCompositeExtract %float %1080 0 |
| %1083 = OpFMul %float %1436 %float_2 |
| %1085 = OpVectorTimesScalar %v3float %1074 %1083 |
| %1086 = OpLoad %36 %SpecularMapSampler |
| %1087 = OpLoad %38 %SpecularMapTexture |
| OpBranch %1246 |
| %1246 = OpLabel |
| OpLoopMerge %1247 %1248 None |
| OpBranch %1249 |
| %1249 = OpLabel |
| %1251 = OpFOrdEqual %bool %float_0_75 %float_0 |
| OpSelectionMerge %1252 None |
| OpBranchConditional %1251 %1253 %1254 |
| %1253 = OpLabel |
| %1257 = OpSampledImage %183 %1087 %1086 |
| %1259 = OpImageSampleImplicitLod %v4float %1257 %1024 |
| OpBranch %1247 |
| %1254 = OpLabel |
| %1261 = OpFSub %float %float_1 %float_0_75 |
| %1262 = OpFDiv %float %float_1 %1261 |
| %1265 = OpSampledImage %183 %1087 %1086 |
| %1267 = OpVectorTimesScalar %v2float %1024 %float_0_25 |
| %1268 = OpImageSampleImplicitLod %v4float %1265 %1267 |
| %1271 = OpSampledImage %183 %1087 %1086 |
| %1273 = OpImageSampleImplicitLod %v4float %1271 %1024 |
| %1276 = OpFMul %float %990 %1262 |
| %1279 = OpFMul %float %float_0_75 %1262 |
| %1280 = OpFSub %float %1276 %1279 |
| %1287 = OpExtInst %float %1 FClamp %1280 %float_0 %float_1 |
| %1282 = OpCompositeConstruct %v4float %1287 %1287 %1287 %1287 |
| %1283 = OpExtInst %v4float %1 FMix %1268 %1273 %1282 |
| OpBranch %1247 |
| %1252 = OpLabel |
| %1284 = OpUndef %v4float |
| OpBranch %1247 |
| %1248 = OpLabel |
| OpBranchConditional %false %1246 %1247 |
| %1247 = OpLabel |
| %1530 = OpPhi %v4float %1259 %1253 %1283 %1254 %1284 %1252 %1512 %1248 |
| %1091 = OpVectorShuffle %v2float %1530 %1530 0 1 |
| %1093 = OpFMul %v2float %1091 %689 |
| %1094 = OpFAdd %v2float %1093 %692 |
| %1097 = OpCompositeConstruct %v2float %990 %990 |
| %1098 = OpExtInst %v2float %1 FMix %697 %1094 %1097 |
| %1438 = OpCompositeInsert %Surface %1085 %1531 0 |
| %1440 = OpCompositeInsert %Surface %1062 %1438 1 |
| %1442 = OpCompositeExtract %float %1098 0 |
| %1444 = OpCompositeInsert %Surface %1442 %1440 2 |
| %1446 = OpCompositeExtract %float %1098 1 |
| %1448 = OpCompositeInsert %Surface %1446 %1444 3 |
| %1450 = OpCompositeExtract %float %1091 1 |
| %1112 = OpFMul %float %1450 %990 |
| %1113 = OpFMul %float %1112 %float_0 |
| %1452 = OpCompositeInsert %Surface %1113 %1448 4 |
| %1456 = OpCompositeExtract %float %1396 3 3 |
| %764 = OpCompositeExtract %float %1085 0 |
| %765 = OpCompositeExtract %float %1085 1 |
| %766 = OpCompositeExtract %float %1085 2 |
| %767 = OpCompositeConstruct %v4float %764 %765 %766 %1456 |
| %770 = OpVectorShuffle %v3float %519 %519 0 1 2 |
| %773 = OpExtInst %v3float %1 Cross %770 %523 |
| %1462 = OpCompositeExtract %float %1452 1 0 |
| %778 = OpVectorTimesScalar %v3float %523 %1462 |
| %1466 = OpCompositeExtract %float %1452 1 1 |
| %782 = OpVectorTimesScalar %v3float %773 %1466 |
| %783 = OpFAdd %v3float %778 %782 |
| %1468 = OpCompositeExtract %float %1452 1 2 |
| %789 = OpVectorTimesScalar %v3float %770 %1468 |
| %790 = OpFAdd %v3float %783 %789 |
| %791 = OpExtInst %v3float %1 Normalize %790 |
| %793 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_7 |
| %794 = OpLoad %v3float %793 |
| %795 = OpFNegate %v3float %794 |
| %796 = OpDot %float %791 %795 |
| %1290 = OpExtInst %float %1 FClamp %796 %float_0 %float_1 |
| %799 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_6 |
| %800 = OpLoad %v3float %799 |
| %801 = OpVectorTimesScalar %v3float %800 %1290 |
| %803 = OpFNegate %float %796 |
| %804 = OpExtInst %float %1 FMax %803 %float_0 |
| %805 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_8 |
| %806 = OpLoad %v3float %805 |
| %807 = OpVectorTimesScalar %v3float %806 %804 |
| %808 = OpFAdd %v3float %801 %807 |
| %810 = OpExtInst %float %1 Step %float_0 %796 |
| %813 = OpFMul %float %810 %1442 |
| %820 = OpVectorShuffle %v3float %513 %513 0 1 2 |
| %1296 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_15 |
| %1297 = OpLoad %v4float %1296 |
| %1298 = OpVectorShuffle %v3float %1297 %1297 0 1 2 |
| %1300 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_14 |
| %1301 = OpLoad %v4float %1300 |
| %1302 = OpVectorShuffle %v3float %1301 %1301 0 1 2 |
| %1303 = OpFSub %v3float %820 %1302 |
| %1304 = OpExtInst %v3float %1 FAbs %1303 |
| %1305 = OpExtInst %v3float %1 Step %1298 %1304 |
| %1307 = OpDot %float %1305 %128 |
| %1328 = OpExtInst %float %1 FClamp %1307 %float_0 %float_1 |
| %1309 = OpLoad %133 %LightMapTexture |
| %1310 = OpLoad %36 %LightMapSampler |
| %1311 = OpSampledImage %140 %1309 %1310 |
| %1313 = OpVectorShuffle %v3float %820 %820 1 2 0 |
| %1317 = OpVectorTimesScalar %v3float %1313 %1328 |
| %1318 = OpFSub %v3float %1313 %1317 |
| %1319 = OpImageSampleImplicitLod %v4float %1311 %1318 |
| %1321 = OpAccessChain %_ptr_Uniform_v4float %_ %int_0 %int_11 |
| %1322 = OpLoad %v4float %1321 |
| %1324 = OpCompositeConstruct %v4float %1328 %1328 %1328 %1328 |
| %1325 = OpExtInst %v4float %1 FMix %1319 %1322 %1324 |
| %822 = OpLoad %36 %ShadowMapSampler |
| %823 = OpLoad %38 %ShadowMapTexture |
| %826 = OpVectorShuffle %v3float %526 %526 0 1 2 |
| %1482 = OpCompositeExtract %float %1325 3 |
| %1337 = OpSampledImage %183 %823 %822 |
| %1339 = OpVectorShuffle %v2float %826 %826 0 1 |
| %1340 = OpImageSampleImplicitLod %v4float %1337 %1339 |
| %1341 = OpVectorShuffle %v2float %1340 %1340 0 1 |
| %1484 = OpCompositeExtract %float %826 2 |
| %1486 = OpCompositeExtract %float %1341 0 |
| %1363 = OpExtInst %float %1 Step %1486 %1484 |
| %1365 = OpFSub %float %1484 %float_0_5 |
| %1366 = OpExtInst %float %1 FAbs %1365 |
| %1367 = OpFMul %float %float_20 %1366 |
| %1368 = OpFSub %float %float_9 %1367 |
| %1369 = OpExtInst %float %1 FClamp %1368 %float_0 %float_1 |
| %1370 = OpFMul %float %1363 %1369 |
| %1488 = OpCompositeExtract %float %1341 1 |
| %1350 = OpFMul %float %1370 %1488 |
| %1351 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17 %uint_3 |
| %1352 = OpLoad %float %1351 |
| %1353 = OpFMul %float %1350 %1352 |
| %1354 = OpFSub %float %float_1 %1353 |
| %1356 = OpFMul %float %1354 %1482 |
| %830 = OpLoad %367 %EnvironmentMapTexture |
| %831 = OpLoad %36 %EnvironmentMapSampler |
| %832 = OpSampledImage %373 %830 %831 |
| %835 = OpVectorShuffle %v3float %516 %516 0 1 2 |
| %836 = OpFNegate %v3float %835 |
| %838 = OpExtInst %v3float %1 Reflect %836 %791 |
| %839 = OpImageSampleImplicitLod %v4float %832 %838 |
| %840 = OpVectorShuffle %v3float %839 %839 0 1 2 |
| %842 = OpVectorShuffle %v3float %767 %767 0 1 2 |
| %845 = OpCompositeConstruct %v3float %1113 %1113 %1113 |
| %846 = OpExtInst %v3float %1 FMix %842 %840 %845 |
| %848 = OpVectorShuffle %v4float %767 %846 4 5 6 3 |
| %849 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_5 |
| %850 = OpLoad %v3float %849 |
| %853 = OpVectorTimesScalar %v3float %808 %1356 |
| %854 = OpFAdd %v3float %850 %853 |
| %856 = OpVectorShuffle %v3float %1325 %1325 0 1 2 |
| %857 = OpFAdd %v3float %854 %856 |
| %859 = OpVectorShuffle %v3float %848 %848 0 1 2 |
| %860 = OpFMul %v3float %857 %859 |
| %865 = OpFMul %float %813 %1356 |
| %873 = OpExtInst %v3float %1 Normalize %835 |
| %874 = OpFAdd %v3float %795 %873 |
| %875 = OpExtInst %v3float %1 Normalize %874 |
| %876 = OpDot %float %791 %875 |
| %877 = OpExtInst %float %1 FClamp %876 %float_0 %float_1 |
| %879 = OpExtInst %float %1 Pow %877 %1446 |
| %880 = OpFMul %float %865 %879 |
| %881 = OpVectorTimesScalar %v3float %800 %880 |
| %884 = OpFAdd %v3float %860 %881 |
| %886 = OpVectorShuffle %v4float %1512 %884 4 5 6 3 |
| %1494 = OpCompositeExtract %float %848 3 |
| %1496 = OpCompositeInsert %v4float %1494 %886 3 |
| %896 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17 %uint_0 |
| %897 = OpLoad %float %896 |
| %898 = OpFMul %float %978 %897 |
| %899 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17 %uint_1 |
| %900 = OpLoad %float %899 |
| %901 = OpFAdd %float %898 %900 |
| %1373 = OpExtInst %float %1 FClamp %901 %float_0 %float_1 |
| %905 = OpVectorShuffle %v2float %504 %504 3 2 |
| %908 = OpVectorShuffle %v2float %507 %507 3 2 |
| %909 = OpExtInst %v2float %1 FMin %905 %908 |
| %1504 = OpCompositeExtract %float %909 0 |
| %1506 = OpCompositeExtract %float %909 1 |
| %914 = OpExtInst %float %1 FMin %1504 %1506 |
| %916 = OpFDiv %float %914 %978 |
| %919 = OpFSub %float %float_1_5 %916 |
| %920 = OpFMul %float %1373 %919 |
| %922 = OpFAdd %float %920 %916 |
| %1376 = OpExtInst %float %1 FClamp %922 %float_0 %float_1 |
| %925 = OpVectorShuffle %v3float %1496 %1496 0 1 2 |
| %926 = OpVectorTimesScalar %v3float %925 %1376 |
| %928 = OpVectorShuffle %v4float %1496 %926 4 5 6 3 |
| %1508 = OpCompositeExtract %float %1396 4 3 |
| %931 = OpExtInst %float %1 FClamp %1508 %float_0 %float_1 |
| %932 = OpAccessChain %_ptr_Uniform_v3float %_ %int_0 %int_10 |
| %933 = OpLoad %v3float %932 |
| %935 = OpVectorShuffle %v3float %928 %928 0 1 2 |
| %937 = OpCompositeConstruct %v3float %931 %931 %931 |
| %938 = OpExtInst %v3float %1 FMix %933 %935 %937 |
| %940 = OpVectorShuffle %v4float %928 %938 4 5 6 3 |
| OpStore %_entryPointOutput %940 |
| OpReturn |
| OpFunctionEnd |