e7bf8d2f48
Makes maintenance easier with less clutter.
647 lines
32 KiB
JavaScript
647 lines
32 KiB
JavaScript
; 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
|