1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
static const char* g_ReconstructNormal_PS_GL =
"#version 150\n"
"struct vec1 {\n"
" float x;\n"
"};\n"
"struct uvec1 {\n"
" uint x;\n"
"};\n"
"struct ivec1 {\n"
" int x;\n"
"};\n"
"layout(std140) uniform;\n"
"uniform GlobalConstantBuffer {\n"
" uvec4 GlobalConstantBuffer_0;\n"
" vec2 GlobalConstantBuffer_1;\n"
" vec2 GlobalConstantBuffer_2;\n"
" vec2 GlobalConstantBuffer_3;\n"
" vec2 GlobalConstantBuffer_4;\n"
" float GlobalConstantBuffer_5;\n"
" float GlobalConstantBuffer_6;\n"
" float GlobalConstantBuffer_7;\n"
" float GlobalConstantBuffer_8;\n"
" float GlobalConstantBuffer_9;\n"
" float GlobalConstantBuffer_10;\n"
" float GlobalConstantBuffer_11;\n"
" int GlobalConstantBuffer_12;\n"
" float GlobalConstantBuffer_13;\n"
" float GlobalConstantBuffer_14;\n"
" float GlobalConstantBuffer_15;\n"
" float GlobalConstantBuffer_16;\n"
" float GlobalConstantBuffer_17;\n"
" float GlobalConstantBuffer_18;\n"
" float GlobalConstantBuffer_19;\n"
" float GlobalConstantBuffer_20;\n"
" vec2 GlobalConstantBuffer_21;\n"
" float GlobalConstantBuffer_22;\n"
" float GlobalConstantBuffer_23;\n"
" float GlobalConstantBuffer_24;\n"
" float GlobalConstantBuffer_25;\n"
" int GlobalConstantBuffer_26;\n"
" vec4 GlobalConstantBuffer_27[4];\n"
" float GlobalConstantBuffer_28;\n"
" float GlobalConstantBuffer_29;\n"
"};\n"
"uniform sampler2D g_t0;\n"
" in vec4 VtxGeoOutput1;\n"
"vec4 Input1;\n"
"out vec4 PixOutput0;\n"
"#define Output0 PixOutput0\n"
"vec4 Temp[5];\n"
"ivec4 Temp_int[5];\n"
"uvec4 Temp_uint[5];\n"
"void main()\n"
"{\n"
" Input1 = VtxGeoOutput1;\n"
" Temp[0].y = vec4(GlobalConstantBuffer_2.xxxy.z).y;\n"
" Temp[0].z = vec4(0.000000).z;\n"
" Temp[0].xy = vec4(Temp[0].yzyy + Input1.xyxx).xy;\n"
" Temp[0].zw = vec4(GlobalConstantBuffer_3.xyxx.xxxy * Temp[0].xxxy + GlobalConstantBuffer_4.xxxy.zzzw).zw;\n"
" Temp[1].x = (textureLod(g_t0, Temp[0].xy, 0.000000)).x;\n"
" Temp[1].yz = vec4(Temp[0].zzwz * Temp[1].xxxx).yz;\n"
" Temp[0].xy = vec4(GlobalConstantBuffer_3.xyxx.yxyy * Input1.yxyy + GlobalConstantBuffer_4.xxxy.wzww).xy;\n"
" Temp[2].y = (textureLod(g_t0, Input1.xy, 0.000000).yxzw).y;\n"
" Temp[2].xz = vec4(Temp[0].xxyx * Temp[2].yyyy).xz;\n"
" Temp[0].xyz = vec4(Temp[1].xyzx + -Temp[2].yzxy).xyz;\n"
" Temp[0].w = vec4(dot((Temp[0].xyzx).xyz, (Temp[0].xyzx).xyz)).w;\n"
" Temp[1].y = vec4(-GlobalConstantBuffer_2.xxxy.z).y;\n"
" Temp[1].z = vec4(0.000000).z;\n"
" Temp[1].xy = vec4(Temp[1].yzyy + Input1.xyxx).xy;\n"
" Temp[1].zw = vec4(GlobalConstantBuffer_3.xyxx.xxxy * Temp[1].xxxy + GlobalConstantBuffer_4.xxxy.zzzw).zw;\n"
" Temp[3].x = (textureLod(g_t0, Temp[1].xy, 0.000000)).x;\n"
" Temp[3].yz = vec4(Temp[1].zzwz * Temp[3].xxxx).yz;\n"
" Temp[1].xyz = vec4(Temp[2].yzxy + -Temp[3].xyzx).xyz;\n"
" Temp[1].w = vec4(dot((Temp[1].xyzx).xyz, (Temp[1].xyzx).xyz)).w;\n"
" Temp_uint[0].w = ((Temp[0].w)< (Temp[1].w)) ? 0xFFFFFFFFu : 0u;\n"
" if(vec4(Temp_uint[0].wwww).x != 0.0) {\n"
" Temp[0].xyz = vec4(Temp[0].xyzx).xyz;\n"
" } else {\n"
" Temp[0].xyz = vec4(Temp[1].xyzx).xyz;\n"
" }\n"
" Temp[1].z = vec4(0.000000).z;\n"
" Temp[1].x = vec4(GlobalConstantBuffer_2.xxxy.w).x;\n"
" Temp[1].xy = vec4(Temp[1].xzxx + Input1.yxyy).xy;\n"
" Temp[1].zw = vec4(GlobalConstantBuffer_3.xyxx.yyyx * Temp[1].xxxy + GlobalConstantBuffer_4.xxxy.wwwz).zw;\n"
" Temp[3].y = (textureLod(g_t0, Temp[1].yx, 0.000000).yxzw).y;\n"
" Temp[3].xz = vec4(Temp[1].zzwz * Temp[3].yyyy).xz;\n"
" Temp[1].xyz = vec4(-Temp[2].xyzx + Temp[3].xyzx).xyz;\n"
" Temp[0].w = vec4(dot((Temp[1].xyzx).xyz, (Temp[1].xyzx).xyz)).w;\n"
" Temp[3].z = vec4(0.000000).z;\n"
" Temp[3].x = vec4(-GlobalConstantBuffer_2.xxxy.w).x;\n"
" Temp[3].xy = vec4(Temp[3].xzxx + Input1.yxyy).xy;\n"
" Temp[3].zw = vec4(GlobalConstantBuffer_3.xyxx.yyyx * Temp[3].xxxy + GlobalConstantBuffer_4.xxxy.wwwz).zw;\n"
" Temp[4].y = (textureLod(g_t0, Temp[3].yx, 0.000000).yxzw).y;\n"
" Temp[4].xz = vec4(Temp[3].zzwz * Temp[4].yyyy).xz;\n"
" Temp[2].xyz = vec4(Temp[2].xyzx + -Temp[4].xyzx).xyz;\n"
" Temp[1].w = vec4(dot((Temp[2].xyzx).xyz, (Temp[2].xyzx).xyz)).w;\n"
" Temp_uint[0].w = ((Temp[0].w)< (Temp[1].w)) ? 0xFFFFFFFFu : 0u;\n"
" if(vec4(Temp_uint[0].wwww).x != 0.0) {\n"
" Temp[1].xyz = vec4(Temp[1].xyzx).xyz;\n"
" } else {\n"
" Temp[1].xyz = vec4(Temp[2].xyzx).xyz;\n"
" }\n"
" Temp[2].xyz = vec4(Temp[0].xyzx * Temp[1].xyzx).xyz;\n"
" Temp[0].xyz = vec4(Temp[0].zxyz * Temp[1].yzxy + -Temp[2].xyzx).xyz;\n"
" Temp[0].w = vec4(dot((Temp[0].xyzx).xyz, (Temp[0].xyzx).xyz)).w;\n"
" Temp[0].w = vec4(inversesqrt(Temp[0].w)).w;\n"
" Temp[0].xyz = vec4(Temp[0].wwww * Temp[0].xyzx).xyz;\n"
" Output0.xyz = vec4(Temp[0].xyzx * vec4(0.500000, 0.500000, 0.500000, 0.000000) + vec4(0.500000, 0.500000, 0.500000, 0.000000)).xyz;\n"
" Output0.w = vec4(0.000000).w;\n"
" return;\n"
"}\n"
;
namespace Generated
{
void ReconstructNormal_PS::Create(DevicePointer Device)
{
m_Shader.Create(Device, g_ReconstructNormal_PS_GL, sizeof(g_ReconstructNormal_PS_GL));
}
void ReconstructNormal_PS::Release(DevicePointer Device)
{
m_Shader.Release(Device);
}
}
|