A game about forced loneliness, made by TACStudios
1namespace UnityEngine.Rendering
2{
3 /// <summary>
4 /// Utility class to bind Hammersley shader constants for Compute Shader
5 /// </summary>
6 public static class Hammersley
7 {
8 static float[] k_Hammersley2dSeq16 = {
9 0.00000000f, 0.00000000f, 0.0f, 0.0f,
10 0.06250000f, 0.50000000f, 0.0f, 0.0f,
11 0.12500000f, 0.25000000f, 0.0f, 0.0f,
12 0.18750000f, 0.75000000f, 0.0f, 0.0f,
13 0.25000000f, 0.12500000f, 0.0f, 0.0f,
14 0.31250000f, 0.62500000f, 0.0f, 0.0f,
15 0.37500000f, 0.37500000f, 0.0f, 0.0f,
16 0.43750000f, 0.87500000f, 0.0f, 0.0f,
17 0.50000000f, 0.06250000f, 0.0f, 0.0f,
18 0.56250000f, 0.56250000f, 0.0f, 0.0f,
19 0.62500000f, 0.31250000f, 0.0f, 0.0f,
20 0.68750000f, 0.81250000f, 0.0f, 0.0f,
21 0.75000000f, 0.18750000f, 0.0f, 0.0f,
22 0.81250000f, 0.68750000f, 0.0f, 0.0f,
23 0.87500000f, 0.43750000f, 0.0f, 0.0f,
24 0.93750000f, 0.93750000f, 0.0f, 0.0f,
25 };
26
27 static float[] k_Hammersley2dSeq32 = {
28 0.00000000f, 0.00000000f, 0.0f, 0.0f,
29 0.03125000f, 0.50000000f, 0.0f, 0.0f,
30 0.06250000f, 0.25000000f, 0.0f, 0.0f,
31 0.09375000f, 0.75000000f, 0.0f, 0.0f,
32 0.12500000f, 0.12500000f, 0.0f, 0.0f,
33 0.15625000f, 0.62500000f, 0.0f, 0.0f,
34 0.18750000f, 0.37500000f, 0.0f, 0.0f,
35 0.21875000f, 0.87500000f, 0.0f, 0.0f,
36 0.25000000f, 0.06250000f, 0.0f, 0.0f,
37 0.28125000f, 0.56250000f, 0.0f, 0.0f,
38 0.31250000f, 0.31250000f, 0.0f, 0.0f,
39 0.34375000f, 0.81250000f, 0.0f, 0.0f,
40 0.37500000f, 0.18750000f, 0.0f, 0.0f,
41 0.40625000f, 0.68750000f, 0.0f, 0.0f,
42 0.43750000f, 0.43750000f, 0.0f, 0.0f,
43 0.46875000f, 0.93750000f, 0.0f, 0.0f,
44 0.50000000f, 0.03125000f, 0.0f, 0.0f,
45 0.53125000f, 0.53125000f, 0.0f, 0.0f,
46 0.56250000f, 0.28125000f, 0.0f, 0.0f,
47 0.59375000f, 0.78125000f, 0.0f, 0.0f,
48 0.62500000f, 0.15625000f, 0.0f, 0.0f,
49 0.65625000f, 0.65625000f, 0.0f, 0.0f,
50 0.68750000f, 0.40625000f, 0.0f, 0.0f,
51 0.71875000f, 0.90625000f, 0.0f, 0.0f,
52 0.75000000f, 0.09375000f, 0.0f, 0.0f,
53 0.78125000f, 0.59375000f, 0.0f, 0.0f,
54 0.81250000f, 0.34375000f, 0.0f, 0.0f,
55 0.84375000f, 0.84375000f, 0.0f, 0.0f,
56 0.87500000f, 0.21875000f, 0.0f, 0.0f,
57 0.90625000f, 0.71875000f, 0.0f, 0.0f,
58 0.93750000f, 0.46875000f, 0.0f, 0.0f,
59 0.96875000f, 0.96875000f, 0.0f, 0.0f,
60 };
61
62 static float[] k_Hammersley2dSeq64 = {
63 0.00000000f, 0.00000000f, 0.0f, 0.0f,
64 0.01562500f, 0.50000000f, 0.0f, 0.0f,
65 0.03125000f, 0.25000000f, 0.0f, 0.0f,
66 0.04687500f, 0.75000000f, 0.0f, 0.0f,
67 0.06250000f, 0.12500000f, 0.0f, 0.0f,
68 0.07812500f, 0.62500000f, 0.0f, 0.0f,
69 0.09375000f, 0.37500000f, 0.0f, 0.0f,
70 0.10937500f, 0.87500000f, 0.0f, 0.0f,
71 0.12500000f, 0.06250000f, 0.0f, 0.0f,
72 0.14062500f, 0.56250000f, 0.0f, 0.0f,
73 0.15625000f, 0.31250000f, 0.0f, 0.0f,
74 0.17187500f, 0.81250000f, 0.0f, 0.0f,
75 0.18750000f, 0.18750000f, 0.0f, 0.0f,
76 0.20312500f, 0.68750000f, 0.0f, 0.0f,
77 0.21875000f, 0.43750000f, 0.0f, 0.0f,
78 0.23437500f, 0.93750000f, 0.0f, 0.0f,
79 0.25000000f, 0.03125000f, 0.0f, 0.0f,
80 0.26562500f, 0.53125000f, 0.0f, 0.0f,
81 0.28125000f, 0.28125000f, 0.0f, 0.0f,
82 0.29687500f, 0.78125000f, 0.0f, 0.0f,
83 0.31250000f, 0.15625000f, 0.0f, 0.0f,
84 0.32812500f, 0.65625000f, 0.0f, 0.0f,
85 0.34375000f, 0.40625000f, 0.0f, 0.0f,
86 0.35937500f, 0.90625000f, 0.0f, 0.0f,
87 0.37500000f, 0.09375000f, 0.0f, 0.0f,
88 0.39062500f, 0.59375000f, 0.0f, 0.0f,
89 0.40625000f, 0.34375000f, 0.0f, 0.0f,
90 0.42187500f, 0.84375000f, 0.0f, 0.0f,
91 0.43750000f, 0.21875000f, 0.0f, 0.0f,
92 0.45312500f, 0.71875000f, 0.0f, 0.0f,
93 0.46875000f, 0.46875000f, 0.0f, 0.0f,
94 0.48437500f, 0.96875000f, 0.0f, 0.0f,
95 0.50000000f, 0.01562500f, 0.0f, 0.0f,
96 0.51562500f, 0.51562500f, 0.0f, 0.0f,
97 0.53125000f, 0.26562500f, 0.0f, 0.0f,
98 0.54687500f, 0.76562500f, 0.0f, 0.0f,
99 0.56250000f, 0.14062500f, 0.0f, 0.0f,
100 0.57812500f, 0.64062500f, 0.0f, 0.0f,
101 0.59375000f, 0.39062500f, 0.0f, 0.0f,
102 0.60937500f, 0.89062500f, 0.0f, 0.0f,
103 0.62500000f, 0.07812500f, 0.0f, 0.0f,
104 0.64062500f, 0.57812500f, 0.0f, 0.0f,
105 0.65625000f, 0.32812500f, 0.0f, 0.0f,
106 0.67187500f, 0.82812500f, 0.0f, 0.0f,
107 0.68750000f, 0.20312500f, 0.0f, 0.0f,
108 0.70312500f, 0.70312500f, 0.0f, 0.0f,
109 0.71875000f, 0.45312500f, 0.0f, 0.0f,
110 0.73437500f, 0.95312500f, 0.0f, 0.0f,
111 0.75000000f, 0.04687500f, 0.0f, 0.0f,
112 0.76562500f, 0.54687500f, 0.0f, 0.0f,
113 0.78125000f, 0.29687500f, 0.0f, 0.0f,
114 0.79687500f, 0.79687500f, 0.0f, 0.0f,
115 0.81250000f, 0.17187500f, 0.0f, 0.0f,
116 0.82812500f, 0.67187500f, 0.0f, 0.0f,
117 0.84375000f, 0.42187500f, 0.0f, 0.0f,
118 0.85937500f, 0.92187500f, 0.0f, 0.0f,
119 0.87500000f, 0.10937500f, 0.0f, 0.0f,
120 0.89062500f, 0.60937500f, 0.0f, 0.0f,
121 0.90625000f, 0.35937500f, 0.0f, 0.0f,
122 0.92187500f, 0.85937500f, 0.0f, 0.0f,
123 0.93750000f, 0.23437500f, 0.0f, 0.0f,
124 0.95312500f, 0.73437500f, 0.0f, 0.0f,
125 0.96875000f, 0.48437500f, 0.0f, 0.0f,
126 0.98437500f, 0.98437500f, 0.0f, 0.0f,
127 };
128
129 static float[] k_Hammersley2dSeq256 = {
130 0.00000000f, 0.00000000f, 0.0f, 0.0f,
131 0.00390625f, 0.50000000f, 0.0f, 0.0f,
132 0.00781250f, 0.25000000f, 0.0f, 0.0f,
133 0.01171875f, 0.75000000f, 0.0f, 0.0f,
134 0.01562500f, 0.12500000f, 0.0f, 0.0f,
135 0.01953125f, 0.62500000f, 0.0f, 0.0f,
136 0.02343750f, 0.37500000f, 0.0f, 0.0f,
137 0.02734375f, 0.87500000f, 0.0f, 0.0f,
138 0.03125000f, 0.06250000f, 0.0f, 0.0f,
139 0.03515625f, 0.56250000f, 0.0f, 0.0f,
140 0.03906250f, 0.31250000f, 0.0f, 0.0f,
141 0.04296875f, 0.81250000f, 0.0f, 0.0f,
142 0.04687500f, 0.18750000f, 0.0f, 0.0f,
143 0.05078125f, 0.68750000f, 0.0f, 0.0f,
144 0.05468750f, 0.43750000f, 0.0f, 0.0f,
145 0.05859375f, 0.93750000f, 0.0f, 0.0f,
146 0.06250000f, 0.03125000f, 0.0f, 0.0f,
147 0.06640625f, 0.53125000f, 0.0f, 0.0f,
148 0.07031250f, 0.28125000f, 0.0f, 0.0f,
149 0.07421875f, 0.78125000f, 0.0f, 0.0f,
150 0.07812500f, 0.15625000f, 0.0f, 0.0f,
151 0.08203125f, 0.65625000f, 0.0f, 0.0f,
152 0.08593750f, 0.40625000f, 0.0f, 0.0f,
153 0.08984375f, 0.90625000f, 0.0f, 0.0f,
154 0.09375000f, 0.09375000f, 0.0f, 0.0f,
155 0.09765625f, 0.59375000f, 0.0f, 0.0f,
156 0.10156250f, 0.34375000f, 0.0f, 0.0f,
157 0.10546875f, 0.84375000f, 0.0f, 0.0f,
158 0.10937500f, 0.21875000f, 0.0f, 0.0f,
159 0.11328125f, 0.71875000f, 0.0f, 0.0f,
160 0.11718750f, 0.46875000f, 0.0f, 0.0f,
161 0.12109375f, 0.96875000f, 0.0f, 0.0f,
162 0.12500000f, 0.01562500f, 0.0f, 0.0f,
163 0.12890625f, 0.51562500f, 0.0f, 0.0f,
164 0.13281250f, 0.26562500f, 0.0f, 0.0f,
165 0.13671875f, 0.76562500f, 0.0f, 0.0f,
166 0.14062500f, 0.14062500f, 0.0f, 0.0f,
167 0.14453125f, 0.64062500f, 0.0f, 0.0f,
168 0.14843750f, 0.39062500f, 0.0f, 0.0f,
169 0.15234375f, 0.89062500f, 0.0f, 0.0f,
170 0.15625000f, 0.07812500f, 0.0f, 0.0f,
171 0.16015625f, 0.57812500f, 0.0f, 0.0f,
172 0.16406250f, 0.32812500f, 0.0f, 0.0f,
173 0.16796875f, 0.82812500f, 0.0f, 0.0f,
174 0.17187500f, 0.20312500f, 0.0f, 0.0f,
175 0.17578125f, 0.70312500f, 0.0f, 0.0f,
176 0.17968750f, 0.45312500f, 0.0f, 0.0f,
177 0.18359375f, 0.95312500f, 0.0f, 0.0f,
178 0.18750000f, 0.04687500f, 0.0f, 0.0f,
179 0.19140625f, 0.54687500f, 0.0f, 0.0f,
180 0.19531250f, 0.29687500f, 0.0f, 0.0f,
181 0.19921875f, 0.79687500f, 0.0f, 0.0f,
182 0.20312500f, 0.17187500f, 0.0f, 0.0f,
183 0.20703125f, 0.67187500f, 0.0f, 0.0f,
184 0.21093750f, 0.42187500f, 0.0f, 0.0f,
185 0.21484375f, 0.92187500f, 0.0f, 0.0f,
186 0.21875000f, 0.10937500f, 0.0f, 0.0f,
187 0.22265625f, 0.60937500f, 0.0f, 0.0f,
188 0.22656250f, 0.35937500f, 0.0f, 0.0f,
189 0.23046875f, 0.85937500f, 0.0f, 0.0f,
190 0.23437500f, 0.23437500f, 0.0f, 0.0f,
191 0.23828125f, 0.73437500f, 0.0f, 0.0f,
192 0.24218750f, 0.48437500f, 0.0f, 0.0f,
193 0.24609375f, 0.98437500f, 0.0f, 0.0f,
194 0.25000000f, 0.00781250f, 0.0f, 0.0f,
195 0.25390625f, 0.50781250f, 0.0f, 0.0f,
196 0.25781250f, 0.25781250f, 0.0f, 0.0f,
197 0.26171875f, 0.75781250f, 0.0f, 0.0f,
198 0.26562500f, 0.13281250f, 0.0f, 0.0f,
199 0.26953125f, 0.63281250f, 0.0f, 0.0f,
200 0.27343750f, 0.38281250f, 0.0f, 0.0f,
201 0.27734375f, 0.88281250f, 0.0f, 0.0f,
202 0.28125000f, 0.07031250f, 0.0f, 0.0f,
203 0.28515625f, 0.57031250f, 0.0f, 0.0f,
204 0.28906250f, 0.32031250f, 0.0f, 0.0f,
205 0.29296875f, 0.82031250f, 0.0f, 0.0f,
206 0.29687500f, 0.19531250f, 0.0f, 0.0f,
207 0.30078125f, 0.69531250f, 0.0f, 0.0f,
208 0.30468750f, 0.44531250f, 0.0f, 0.0f,
209 0.30859375f, 0.94531250f, 0.0f, 0.0f,
210 0.31250000f, 0.03906250f, 0.0f, 0.0f,
211 0.31640625f, 0.53906250f, 0.0f, 0.0f,
212 0.32031250f, 0.28906250f, 0.0f, 0.0f,
213 0.32421875f, 0.78906250f, 0.0f, 0.0f,
214 0.32812500f, 0.16406250f, 0.0f, 0.0f,
215 0.33203125f, 0.66406250f, 0.0f, 0.0f,
216 0.33593750f, 0.41406250f, 0.0f, 0.0f,
217 0.33984375f, 0.91406250f, 0.0f, 0.0f,
218 0.34375000f, 0.10156250f, 0.0f, 0.0f,
219 0.34765625f, 0.60156250f, 0.0f, 0.0f,
220 0.35156250f, 0.35156250f, 0.0f, 0.0f,
221 0.35546875f, 0.85156250f, 0.0f, 0.0f,
222 0.35937500f, 0.22656250f, 0.0f, 0.0f,
223 0.36328125f, 0.72656250f, 0.0f, 0.0f,
224 0.36718750f, 0.47656250f, 0.0f, 0.0f,
225 0.37109375f, 0.97656250f, 0.0f, 0.0f,
226 0.37500000f, 0.02343750f, 0.0f, 0.0f,
227 0.37890625f, 0.52343750f, 0.0f, 0.0f,
228 0.38281250f, 0.27343750f, 0.0f, 0.0f,
229 0.38671875f, 0.77343750f, 0.0f, 0.0f,
230 0.39062500f, 0.14843750f, 0.0f, 0.0f,
231 0.39453125f, 0.64843750f, 0.0f, 0.0f,
232 0.39843750f, 0.39843750f, 0.0f, 0.0f,
233 0.40234375f, 0.89843750f, 0.0f, 0.0f,
234 0.40625000f, 0.08593750f, 0.0f, 0.0f,
235 0.41015625f, 0.58593750f, 0.0f, 0.0f,
236 0.41406250f, 0.33593750f, 0.0f, 0.0f,
237 0.41796875f, 0.83593750f, 0.0f, 0.0f,
238 0.42187500f, 0.21093750f, 0.0f, 0.0f,
239 0.42578125f, 0.71093750f, 0.0f, 0.0f,
240 0.42968750f, 0.46093750f, 0.0f, 0.0f,
241 0.43359375f, 0.96093750f, 0.0f, 0.0f,
242 0.43750000f, 0.05468750f, 0.0f, 0.0f,
243 0.44140625f, 0.55468750f, 0.0f, 0.0f,
244 0.44531250f, 0.30468750f, 0.0f, 0.0f,
245 0.44921875f, 0.80468750f, 0.0f, 0.0f,
246 0.45312500f, 0.17968750f, 0.0f, 0.0f,
247 0.45703125f, 0.67968750f, 0.0f, 0.0f,
248 0.46093750f, 0.42968750f, 0.0f, 0.0f,
249 0.46484375f, 0.92968750f, 0.0f, 0.0f,
250 0.46875000f, 0.11718750f, 0.0f, 0.0f,
251 0.47265625f, 0.61718750f, 0.0f, 0.0f,
252 0.47656250f, 0.36718750f, 0.0f, 0.0f,
253 0.48046875f, 0.86718750f, 0.0f, 0.0f,
254 0.48437500f, 0.24218750f, 0.0f, 0.0f,
255 0.48828125f, 0.74218750f, 0.0f, 0.0f,
256 0.49218750f, 0.49218750f, 0.0f, 0.0f,
257 0.49609375f, 0.99218750f, 0.0f, 0.0f,
258 0.50000000f, 0.00390625f, 0.0f, 0.0f,
259 0.50390625f, 0.50390625f, 0.0f, 0.0f,
260 0.50781250f, 0.25390625f, 0.0f, 0.0f,
261 0.51171875f, 0.75390625f, 0.0f, 0.0f,
262 0.51562500f, 0.12890625f, 0.0f, 0.0f,
263 0.51953125f, 0.62890625f, 0.0f, 0.0f,
264 0.52343750f, 0.37890625f, 0.0f, 0.0f,
265 0.52734375f, 0.87890625f, 0.0f, 0.0f,
266 0.53125000f, 0.06640625f, 0.0f, 0.0f,
267 0.53515625f, 0.56640625f, 0.0f, 0.0f,
268 0.53906250f, 0.31640625f, 0.0f, 0.0f,
269 0.54296875f, 0.81640625f, 0.0f, 0.0f,
270 0.54687500f, 0.19140625f, 0.0f, 0.0f,
271 0.55078125f, 0.69140625f, 0.0f, 0.0f,
272 0.55468750f, 0.44140625f, 0.0f, 0.0f,
273 0.55859375f, 0.94140625f, 0.0f, 0.0f,
274 0.56250000f, 0.03515625f, 0.0f, 0.0f,
275 0.56640625f, 0.53515625f, 0.0f, 0.0f,
276 0.57031250f, 0.28515625f, 0.0f, 0.0f,
277 0.57421875f, 0.78515625f, 0.0f, 0.0f,
278 0.57812500f, 0.16015625f, 0.0f, 0.0f,
279 0.58203125f, 0.66015625f, 0.0f, 0.0f,
280 0.58593750f, 0.41015625f, 0.0f, 0.0f,
281 0.58984375f, 0.91015625f, 0.0f, 0.0f,
282 0.59375000f, 0.09765625f, 0.0f, 0.0f,
283 0.59765625f, 0.59765625f, 0.0f, 0.0f,
284 0.60156250f, 0.34765625f, 0.0f, 0.0f,
285 0.60546875f, 0.84765625f, 0.0f, 0.0f,
286 0.60937500f, 0.22265625f, 0.0f, 0.0f,
287 0.61328125f, 0.72265625f, 0.0f, 0.0f,
288 0.61718750f, 0.47265625f, 0.0f, 0.0f,
289 0.62109375f, 0.97265625f, 0.0f, 0.0f,
290 0.62500000f, 0.01953125f, 0.0f, 0.0f,
291 0.62890625f, 0.51953125f, 0.0f, 0.0f,
292 0.63281250f, 0.26953125f, 0.0f, 0.0f,
293 0.63671875f, 0.76953125f, 0.0f, 0.0f,
294 0.64062500f, 0.14453125f, 0.0f, 0.0f,
295 0.64453125f, 0.64453125f, 0.0f, 0.0f,
296 0.64843750f, 0.39453125f, 0.0f, 0.0f,
297 0.65234375f, 0.89453125f, 0.0f, 0.0f,
298 0.65625000f, 0.08203125f, 0.0f, 0.0f,
299 0.66015625f, 0.58203125f, 0.0f, 0.0f,
300 0.66406250f, 0.33203125f, 0.0f, 0.0f,
301 0.66796875f, 0.83203125f, 0.0f, 0.0f,
302 0.67187500f, 0.20703125f, 0.0f, 0.0f,
303 0.67578125f, 0.70703125f, 0.0f, 0.0f,
304 0.67968750f, 0.45703125f, 0.0f, 0.0f,
305 0.68359375f, 0.95703125f, 0.0f, 0.0f,
306 0.68750000f, 0.05078125f, 0.0f, 0.0f,
307 0.69140625f, 0.55078125f, 0.0f, 0.0f,
308 0.69531250f, 0.30078125f, 0.0f, 0.0f,
309 0.69921875f, 0.80078125f, 0.0f, 0.0f,
310 0.70312500f, 0.17578125f, 0.0f, 0.0f,
311 0.70703125f, 0.67578125f, 0.0f, 0.0f,
312 0.71093750f, 0.42578125f, 0.0f, 0.0f,
313 0.71484375f, 0.92578125f, 0.0f, 0.0f,
314 0.71875000f, 0.11328125f, 0.0f, 0.0f,
315 0.72265625f, 0.61328125f, 0.0f, 0.0f,
316 0.72656250f, 0.36328125f, 0.0f, 0.0f,
317 0.73046875f, 0.86328125f, 0.0f, 0.0f,
318 0.73437500f, 0.23828125f, 0.0f, 0.0f,
319 0.73828125f, 0.73828125f, 0.0f, 0.0f,
320 0.74218750f, 0.48828125f, 0.0f, 0.0f,
321 0.74609375f, 0.98828125f, 0.0f, 0.0f,
322 0.75000000f, 0.01171875f, 0.0f, 0.0f,
323 0.75390625f, 0.51171875f, 0.0f, 0.0f,
324 0.75781250f, 0.26171875f, 0.0f, 0.0f,
325 0.76171875f, 0.76171875f, 0.0f, 0.0f,
326 0.76562500f, 0.13671875f, 0.0f, 0.0f,
327 0.76953125f, 0.63671875f, 0.0f, 0.0f,
328 0.77343750f, 0.38671875f, 0.0f, 0.0f,
329 0.77734375f, 0.88671875f, 0.0f, 0.0f,
330 0.78125000f, 0.07421875f, 0.0f, 0.0f,
331 0.78515625f, 0.57421875f, 0.0f, 0.0f,
332 0.78906250f, 0.32421875f, 0.0f, 0.0f,
333 0.79296875f, 0.82421875f, 0.0f, 0.0f,
334 0.79687500f, 0.19921875f, 0.0f, 0.0f,
335 0.80078125f, 0.69921875f, 0.0f, 0.0f,
336 0.80468750f, 0.44921875f, 0.0f, 0.0f,
337 0.80859375f, 0.94921875f, 0.0f, 0.0f,
338 0.81250000f, 0.04296875f, 0.0f, 0.0f,
339 0.81640625f, 0.54296875f, 0.0f, 0.0f,
340 0.82031250f, 0.29296875f, 0.0f, 0.0f,
341 0.82421875f, 0.79296875f, 0.0f, 0.0f,
342 0.82812500f, 0.16796875f, 0.0f, 0.0f,
343 0.83203125f, 0.66796875f, 0.0f, 0.0f,
344 0.83593750f, 0.41796875f, 0.0f, 0.0f,
345 0.83984375f, 0.91796875f, 0.0f, 0.0f,
346 0.84375000f, 0.10546875f, 0.0f, 0.0f,
347 0.84765625f, 0.60546875f, 0.0f, 0.0f,
348 0.85156250f, 0.35546875f, 0.0f, 0.0f,
349 0.85546875f, 0.85546875f, 0.0f, 0.0f,
350 0.85937500f, 0.23046875f, 0.0f, 0.0f,
351 0.86328125f, 0.73046875f, 0.0f, 0.0f,
352 0.86718750f, 0.48046875f, 0.0f, 0.0f,
353 0.87109375f, 0.98046875f, 0.0f, 0.0f,
354 0.87500000f, 0.02734375f, 0.0f, 0.0f,
355 0.87890625f, 0.52734375f, 0.0f, 0.0f,
356 0.88281250f, 0.27734375f, 0.0f, 0.0f,
357 0.88671875f, 0.77734375f, 0.0f, 0.0f,
358 0.89062500f, 0.15234375f, 0.0f, 0.0f,
359 0.89453125f, 0.65234375f, 0.0f, 0.0f,
360 0.89843750f, 0.40234375f, 0.0f, 0.0f,
361 0.90234375f, 0.90234375f, 0.0f, 0.0f,
362 0.90625000f, 0.08984375f, 0.0f, 0.0f,
363 0.91015625f, 0.58984375f, 0.0f, 0.0f,
364 0.91406250f, 0.33984375f, 0.0f, 0.0f,
365 0.91796875f, 0.83984375f, 0.0f, 0.0f,
366 0.92187500f, 0.21484375f, 0.0f, 0.0f,
367 0.92578125f, 0.71484375f, 0.0f, 0.0f,
368 0.92968750f, 0.46484375f, 0.0f, 0.0f,
369 0.93359375f, 0.96484375f, 0.0f, 0.0f,
370 0.93750000f, 0.05859375f, 0.0f, 0.0f,
371 0.94140625f, 0.55859375f, 0.0f, 0.0f,
372 0.94531250f, 0.30859375f, 0.0f, 0.0f,
373 0.94921875f, 0.80859375f, 0.0f, 0.0f,
374 0.95312500f, 0.18359375f, 0.0f, 0.0f,
375 0.95703125f, 0.68359375f, 0.0f, 0.0f,
376 0.96093750f, 0.43359375f, 0.0f, 0.0f,
377 0.96484375f, 0.93359375f, 0.0f, 0.0f,
378 0.96875000f, 0.12109375f, 0.0f, 0.0f,
379 0.97265625f, 0.62109375f, 0.0f, 0.0f,
380 0.97656250f, 0.37109375f, 0.0f, 0.0f,
381 0.98046875f, 0.87109375f, 0.0f, 0.0f,
382 0.98437500f, 0.24609375f, 0.0f, 0.0f,
383 0.98828125f, 0.74609375f, 0.0f, 0.0f,
384 0.99218750f, 0.49609375f, 0.0f, 0.0f,
385 0.99609375f, 0.99609375f, 0.0f, 0.0f,
386 };
387
388 [GenerateHLSL(needAccessors = false, generateCBuffer = true)]
389 unsafe struct Hammersley2dSeq16
390 {
391 [HLSLArray(16, typeof(Vector4))]
392 public fixed float hammersley2dSeq16[16 * 4];
393 }
394
395 [GenerateHLSL(needAccessors = false, generateCBuffer = true)]
396 unsafe struct Hammersley2dSeq32
397 {
398 [HLSLArray(32, typeof(Vector4))]
399 public fixed float hammersley2dSeq32[32 * 4];
400 }
401
402 [GenerateHLSL(needAccessors = false, generateCBuffer = true)]
403 unsafe struct Hammersley2dSeq64
404 {
405 [HLSLArray(64, typeof(Vector4))]
406 public fixed float hammersley2dSeq64[64 * 4];
407 }
408
409 [GenerateHLSL(needAccessors = false, generateCBuffer = true)]
410 unsafe struct Hammersley2dSeq256
411 {
412 [HLSLArray(256, typeof(Vector4))]
413 public fixed float hammersley2dSeq256[256 * 4];
414 }
415
416 static readonly int s_hammersley2DSeq16Id = Shader.PropertyToID("Hammersley2dSeq16");
417 static readonly int s_hammersley2DSeq32Id = Shader.PropertyToID("Hammersley2dSeq32");
418 static readonly int s_hammersley2DSeq64Id = Shader.PropertyToID("Hammersley2dSeq64");
419 static readonly int s_hammersley2DSeq256Id = Shader.PropertyToID("Hammersley2dSeq256");
420
421 /// <summary>
422 /// Initializing Hammersley constants.
423 /// </summary>
424 unsafe public static void Initialize()
425 {
426 Hammersley2dSeq16 hammersley2DSeq16 = new Hammersley2dSeq16();
427 Hammersley2dSeq32 hammersley2DSeq32 = new Hammersley2dSeq32();
428 Hammersley2dSeq64 hammersley2DSeq64 = new Hammersley2dSeq64();
429 Hammersley2dSeq256 hammersley2DSeq256 = new Hammersley2dSeq256();
430
431 for (int i = 0; i < k_Hammersley2dSeq16.Length; ++i)
432 hammersley2DSeq16.hammersley2dSeq16[i] = k_Hammersley2dSeq16[i];
433
434 for (int i = 0; i < k_Hammersley2dSeq32.Length; ++i)
435 hammersley2DSeq32.hammersley2dSeq32[i] = k_Hammersley2dSeq32[i];
436
437 for (int i = 0; i < k_Hammersley2dSeq64.Length; ++i)
438 hammersley2DSeq64.hammersley2dSeq64[i] = k_Hammersley2dSeq64[i];
439
440 for (int i = 0; i < k_Hammersley2dSeq256.Length; ++i)
441 hammersley2DSeq256.hammersley2dSeq256[i] = k_Hammersley2dSeq256[i];
442
443 ConstantBuffer.UpdateData(hammersley2DSeq16);
444 ConstantBuffer.UpdateData(hammersley2DSeq32);
445 ConstantBuffer.UpdateData(hammersley2DSeq64);
446 ConstantBuffer.UpdateData(hammersley2DSeq256);
447 }
448
449 /// <summary>
450 /// Bind the constant buffer to a compute shader via a command buffer using Hammersley constants.
451 /// </summary>
452 /// <param name="cmd">Command Buffer used to execute the graphic commands.</param>
453 /// <param name="cs">Compute shader to which the constant buffer should be bound.</param>
454 public static void BindConstants(CommandBuffer cmd, ComputeShader cs)
455 {
456 ConstantBuffer.Set<Hammersley2dSeq16>(cmd, cs, s_hammersley2DSeq16Id);
457 ConstantBuffer.Set<Hammersley2dSeq32>(cmd, cs, s_hammersley2DSeq32Id);
458 ConstantBuffer.Set<Hammersley2dSeq64>(cmd, cs, s_hammersley2DSeq64Id);
459 ConstantBuffer.Set<Hammersley2dSeq256>(cmd, cs, s_hammersley2DSeq256Id);
460 }
461 }
462}