@woosh/meep-engine 2.43.16 → 2.43.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/core/assert.js +3 -1
  2. package/core/bvh2/aabb3/aabb3_intersects_ray.js +14 -9
  3. package/core/bvh2/aabb3/aabb3_intersects_ray_branchless.js +52 -0
  4. package/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.d.ts +2 -0
  5. package/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.js +214 -5
  6. package/core/bvh2/bvh3/bvh_query_leaves_ray.js +32 -29
  7. package/core/collection/array/typed/typed_array_copy.js +2 -2
  8. package/core/geom/3d/aabb/compute_aabb_from_points.js +4 -3
  9. package/core/geom/3d/compute_triangle_normal.js +76 -0
  10. package/core/geom/3d/topology/samples/sampleFloodFill.js +1 -1
  11. package/core/geom/3d/topology/simplify/compute_face_normal_change_dot_product.js +1 -1
  12. package/core/geom/3d/topology/simplify/quadratic/Quadratic3.js +1 -1
  13. package/core/geom/3d/topology/struct/TopoTriangle.js +1 -57
  14. package/core/geom/3d/topology/tm_face_normal.js +1 -1
  15. package/core/geom/3d/topology/tm_vertex_compute_normal.js +1 -1
  16. package/core/geom/3d/triangle/computeTriangleRayIntersection.js +195 -27
  17. package/core/geom/Vector3.js +12 -12
  18. package/core/math/physics/brdf/D_GGX.js +13 -0
  19. package/editor/tools/v2/prototypeTransformControls.js +14 -2
  20. package/engine/ecs/parent/EntityNode.js +80 -7
  21. package/engine/ecs/parent/EntityNodeFlags.js +8 -0
  22. package/engine/ecs/terrain/tiles/TerrainTile.js +7 -9
  23. package/engine/graphics/ecs/path/PathDisplaySystem.d.ts +3 -0
  24. package/engine/graphics/ecs/path/PathDisplaySystem.js +10 -0
  25. package/engine/graphics/geometry/AttributeSpec.js +18 -3
  26. package/engine/graphics/geometry/VertexDataSpec.js +53 -3
  27. package/engine/graphics/micron/format/VirtualGeometry.js +7 -0
  28. package/engine/graphics/micron/render/VirtualGeometryBuilder.js +1 -1
  29. package/engine/graphics/micron/render/refinement/get_geometry_patch_cut.js +5 -2
  30. package/engine/graphics/particles/particular/engine/parameter/sample/RGBA_LUT_HEATMAP_IR.js +11 -0
  31. package/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +2 -9
  32. package/engine/graphics/sh3/README.md +1 -0
  33. package/engine/graphics/sh3/path_tracer/GeometryBVHBatched.js +324 -0
  34. package/engine/graphics/sh3/path_tracer/PathTracedMesh.js +85 -0
  35. package/engine/graphics/sh3/path_tracer/PathTracer.js +469 -0
  36. package/engine/graphics/sh3/path_tracer/apply_texture_clamping_to_coordinate.js +22 -0
  37. package/engine/graphics/sh3/path_tracer/compute_triangle_group_aabb3.js +36 -0
  38. package/engine/graphics/sh3/path_tracer/getBiasedNormalSample.js +55 -0
  39. package/engine/graphics/sh3/path_tracer/make_sky_hosek.js +44 -0
  40. package/engine/graphics/sh3/path_tracer/make_sky_rtiw.js +15 -0
  41. package/engine/graphics/sh3/path_tracer/prototypePathTracer.js +619 -0
  42. package/engine/graphics/sh3/path_tracer/random_in_hemisphere.js +39 -0
  43. package/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.js +42 -0
  44. package/engine/graphics/sh3/path_tracer/ray_reflect.js +27 -0
  45. package/engine/graphics/sh3/path_tracer/sample_triangle_attribute.js +35 -0
  46. package/engine/graphics/sh3/path_tracer/vec3_uint8_to_float.js +12 -0
  47. package/engine/graphics/sh3/sky/hosek/README.md +4 -0
  48. package/engine/graphics/sh3/sky/hosek/prototype_hosek.js +71 -0
  49. package/engine/graphics/sh3/sky/hosek/sky_hosek_compute_irradiance_by_direction.js +4171 -0
  50. package/engine/graphics/texture/sampler/convertTexture2Sampler2D.js +2 -0
  51. package/package.json +1 -1
  52. package/view/elements/progress/SmoothProgressBar.js +1 -1
  53. package/view/task/TaskProgressView.js +6 -8
@@ -0,0 +1,4171 @@
1
+ // --- Mathematical constants -------------------------------------------------
2
+
3
+ import { clamp } from "../../../../../core/math/clamp.js";
4
+ import { vec3 } from "gl-matrix";
5
+ import { clamp01 } from "../../../../../core/math/clamp01.js";
6
+ import { lerp } from "../../../../../core/math/lerp.js";
7
+ import { v3_dot } from "../../../../../core/geom/v3_dot.js";
8
+
9
+ const vl_pi = (3.14159265358979323846);
10
+ const vl_halfPi = (vl_pi / 2.0);
11
+ const vl_quarterPi = (vl_pi / 4.0);
12
+ const vl_twoPi = (2.0 * vl_pi);
13
+
14
+ /**
15
+ * [albedo][turbidity][quinticCoeffs][coeffs]
16
+ * float kHosekCoeffsX[2][10][6][9]
17
+ * @type {Float32Array}
18
+ */
19
+ const kHosekCoeffsX = new Float32Array([
20
+ // albedo 0, turbidity 1
21
+ -1.117001e+000,
22
+ -1.867262e-001,
23
+ -1.113505e+001,
24
+ 1.259865e+001,
25
+ -3.937339e-002,
26
+ 1.167571e+000,
27
+
28
+ 7.100686e-003,
29
+ 3.592678e+000,
30
+ 6.083296e-001,
31
+ -1.152006e+000,
32
+ -1.926669e-001,
33
+ 6.152049e+000,
34
+
35
+ -4.770802e+000,
36
+ -8.704701e-002,
37
+ 7.483626e-001,
38
+ 3.372718e-002,
39
+ 4.464592e+000,
40
+ 4.036546e-001,
41
+ -1.072371e+000,
42
+ -2.696632e-001,
43
+ 2.816168e-001,
44
+ 1.820571e+000,
45
+ -3.742666e-001,
46
+ 2.080607e+000,
47
+ -7.675295e-002,
48
+ -2.835366e+000,
49
+ 1.129329e+000,
50
+ -1.109935e+000,
51
+ -1.532764e-001,
52
+ 1.198787e+000,
53
+ -9.015183e-001,
54
+ 5.173015e-003,
55
+ 5.749178e-001,
56
+ 1.075633e-001,
57
+ 4.387949e+000,
58
+ 2.650413e-001,
59
+ -1.052297e+000,
60
+ -2.229452e-001,
61
+ 1.952347e+000,
62
+ 5.727205e-001,
63
+ -4.885070e+000,
64
+ 1.984016e+000,
65
+ -1.106197e-001,
66
+ -4.898361e-001,
67
+ 8.907873e-001,
68
+ -1.070108e+000,
69
+ -1.600465e-001,
70
+ 1.593886e+000,
71
+ -4.479251e-005,
72
+ -3.306541e+000,
73
+ 9.390193e-001,
74
+ 9.513168e-002,
75
+ 2.343583e+000,
76
+ 5.335404e-001,
77
+ // albedo 0, turbidity 2
78
+ -1.113253e+000,
79
+ -1.699600e-001,
80
+ -1.038822e+001,
81
+ 1.137513e+001,
82
+ -4.040911e-002,
83
+ 1.037455e+000,
84
+ 4.991792e-002,
85
+ 4.801919e+000,
86
+ 6.302710e-001,
87
+ -1.135747e+000,
88
+ -1.678594e-001,
89
+ 4.970755e+000,
90
+ -4.430230e+000,
91
+ -6.657408e-002,
92
+ 3.636161e-001,
93
+ 1.558009e-001,
94
+ 6.013370e+000,
95
+ 3.959601e-001,
96
+ -1.095892e+000,
97
+ -2.732595e-001,
98
+ 7.666496e-001,
99
+ 1.350731e+000,
100
+ -4.401401e-001,
101
+ 2.470135e+000,
102
+ -1.707929e-001,
103
+ -3.260793e+000,
104
+ 1.170337e+000,
105
+ -1.073668e+000,
106
+ -2.603929e-002,
107
+ -1.944589e-001,
108
+ 4.575207e-001,
109
+ 6.878164e-001,
110
+ -1.390770e-001,
111
+ 3.690299e-001,
112
+ 7.885781e+000,
113
+ 1.877694e-001,
114
+ -1.070091e+000,
115
+ -2.798957e-001,
116
+ 2.338478e+000,
117
+ -2.647221e+000,
118
+ -7.387808e+000,
119
+ 2.329210e+000,
120
+ -1.644639e-001,
121
+ -2.003710e+000,
122
+ 9.874527e-001,
123
+ -1.067120e+000,
124
+ -1.418866e-001,
125
+ 1.254090e+000,
126
+ 6.053048e+000,
127
+ -2.918892e+000,
128
+ 5.322812e-001,
129
+ 1.613053e-001,
130
+ 3.018161e+000,
131
+ 5.274090e-001,
132
+ // albedo 0, turbidity 3
133
+ -1.129483e+000,
134
+ -1.890619e-001,
135
+ -9.065101e+000,
136
+ 9.659923e+000,
137
+ -3.607819e-002,
138
+ 8.314359e-001,
139
+ 8.181661e-002,
140
+ 4.768868e+000,
141
+ 6.339777e-001,
142
+ -1.146420e+000,
143
+ -1.883579e-001,
144
+ 3.309173e+000,
145
+ -3.127882e+000,
146
+ -6.938176e-002,
147
+ 3.987113e-001,
148
+ 1.400581e-001,
149
+ 6.283042e+000,
150
+ 5.267076e-001,
151
+ -1.128348e+000,
152
+ -2.641305e-001,
153
+ 1.223176e+000,
154
+ 5.514952e-002,
155
+ -3.490649e-001,
156
+ 1.997784e+000,
157
+ -4.123709e-002,
158
+ -2.251251e+000,
159
+ 9.483466e-001,
160
+ -1.025820e+000,
161
+ 1.404690e-002,
162
+ -1.187406e+000,
163
+ 2.729900e+000,
164
+ 5.877588e-001,
165
+ -2.761140e-001,
166
+ 4.602633e-001,
167
+ 8.305125e+000,
168
+ 3.945001e-001,
169
+ -1.083957e+000,
170
+ -2.606679e-001,
171
+ 2.207108e+000,
172
+ -7.202803e+000,
173
+ -5.968103e+000,
174
+ 2.129455e+000,
175
+ -7.789512e-002,
176
+ -1.137688e+000,
177
+ 8.871769e-001,
178
+ -1.062465e+000,
179
+ -1.512189e-001,
180
+ 1.042881e+000,
181
+ 1.427839e+001,
182
+ -4.242214e+000,
183
+ 4.038100e-001,
184
+ 1.997780e-001,
185
+ 2.814449e+000,
186
+ 5.803196e-001,
187
+ // albedo 0, turbidity 4
188
+ -1.175099e+000,
189
+ -2.410789e-001,
190
+ -1.108587e+001,
191
+ 1.133404e+001,
192
+ -1.819300e-002,
193
+ 6.772942e-001,
194
+ 9.605043e-002,
195
+ 4.231166e+000,
196
+ 6.239972e-001,
197
+ -1.224207e+000,
198
+ -2.883527e-001,
199
+ 3.002206e+000,
200
+ -2.649612e+000,
201
+ -4.795418e-002,
202
+ 4.984398e-001,
203
+ 3.251434e-002,
204
+ 4.851611e+000,
205
+ 6.551019e-001,
206
+ -1.136955e+000,
207
+ -2.423048e-001,
208
+ 1.058823e+000,
209
+ -2.489236e-001,
210
+ -2.462179e-001,
211
+ 1.933140e+000,
212
+ 9.106828e-002,
213
+ -1.905869e-001,
214
+ 8.171065e-001,
215
+ -1.014535e+000,
216
+ -8.262500e-003,
217
+ -1.448017e+000,
218
+ 2.295788e+000,
219
+ 3.510334e-001,
220
+ -1.477418e+000,
221
+ 5.432449e-001,
222
+ 5.762796e+000,
223
+ 4.908751e-001,
224
+ -1.070666e+000,
225
+ -2.379780e-001,
226
+ 1.844589e+000,
227
+ -5.442448e+000,
228
+ -4.012768e+000,
229
+ 2.945275e+000,
230
+ 9.854725e-003,
231
+ 8.455959e-002,
232
+ 8.145030e-001,
233
+ -1.071525e+000,
234
+ -1.777132e-001,
235
+ 8.076590e-001,
236
+ 9.925865e+000,
237
+ -3.324623e+000,
238
+ -6.367437e-001,
239
+ 2.844581e-001,
240
+ 2.248384e+000,
241
+ 6.544022e-001,
242
+ // albedo 0, turbidity 5
243
+ -1.218818e+000,
244
+ -2.952382e-001,
245
+ -1.345975e+001,
246
+ 1.347153e+001,
247
+ -6.814585e-003,
248
+ 5.079068e-001,
249
+ 1.197230e-001,
250
+ 3.776949e+000,
251
+ 5.836961e-001,
252
+ -1.409868e+000,
253
+ -5.114330e-001,
254
+ 2.776539e+000,
255
+ -2.039001e+000,
256
+ -2.673769e-002,
257
+ 4.145288e-001,
258
+ 7.829342e-004,
259
+ 2.275883e+000,
260
+ 6.629691e-001,
261
+ -1.069151e+000,
262
+ -9.434247e-002,
263
+ 7.293972e-001,
264
+ -1.222473e+000,
265
+ -1.533461e-001,
266
+ 2.160357e+000,
267
+ 4.626837e-002,
268
+ 3.852415e+000,
269
+ 8.593570e-001,
270
+ -1.021306e+000,
271
+ -1.149551e-001,
272
+ -1.108414e+000,
273
+ 4.178343e+000,
274
+ 4.013665e-001,
275
+ -2.222814e+000,
276
+ 6.929462e-001,
277
+ 1.392652e+000,
278
+ 4.401662e-001,
279
+ -1.074251e+000,
280
+ -2.224002e-001,
281
+ 1.372356e+000,
282
+ -8.858704e+000,
283
+ -3.922660e+000,
284
+ 3.020018e+000,
285
+ -1.458724e-002,
286
+ 1.511186e+000,
287
+ 8.288064e-001,
288
+ -1.062048e+000,
289
+ -1.526582e-001,
290
+ 4.921067e-001,
291
+ 1.485522e+001,
292
+ -3.229936e+000,
293
+ -8.426604e-001,
294
+ 3.916243e-001,
295
+ 2.678994e+000,
296
+ 6.689264e-001,
297
+ // albedo 0, turbidity 6
298
+ -1.257023e+000,
299
+ -3.364700e-001,
300
+ -1.527795e+001,
301
+ 1.504223e+001,
302
+ 2.717715e-003,
303
+ 3.029910e-001,
304
+ 1.636851e-001,
305
+ 3.561663e+000,
306
+ 5.283161e-001,
307
+ -1.635124e+000,
308
+ -7.329993e-001,
309
+ 3.523939e+000,
310
+ -2.566337e+000,
311
+ -1.902543e-002,
312
+ 5.505483e-001,
313
+ -6.242176e-002,
314
+ 1.065992e+000,
315
+ 6.654236e-001,
316
+ -9.295823e-001,
317
+ 4.845834e-002,
318
+ -2.992990e-001,
319
+ -2.001327e-001,
320
+ -8.019339e-002,
321
+ 1.807806e+000,
322
+ 9.020277e-002,
323
+ 5.095372e+000,
324
+ 8.639936e-001,
325
+ -1.093740e+000,
326
+ -2.148608e-001,
327
+ -5.216240e-001,
328
+ 2.119777e+000,
329
+ 9.506454e-002,
330
+ -1.831439e+000,
331
+ 6.961204e-001,
332
+ 1.102084e-001,
333
+ 4.384319e-001,
334
+ -1.044181e+000,
335
+ -1.849257e-001,
336
+ 9.071246e-001,
337
+ -4.648901e+000,
338
+ -2.279385e+000,
339
+ 2.356502e+000,
340
+ -4.169147e-002,
341
+ 1.932557e+000,
342
+ 8.296550e-001,
343
+ -1.061451e+000,
344
+ -1.458745e-001,
345
+ 2.952267e-001,
346
+ 8.967214e+000,
347
+ -3.726228e+000,
348
+ -5.022316e-001,
349
+ 5.684877e-001,
350
+ 3.102347e+000,
351
+ 6.658443e-001,
352
+ // albedo 0, turbidity 7
353
+ -1.332391e+000,
354
+ -4.127769e-001,
355
+ -9.328643e+000,
356
+ 9.046194e+000,
357
+ 3.457775e-003,
358
+ 3.377425e-001,
359
+ 1.530909e-001,
360
+ 3.301209e+000,
361
+ 4.997917e-001,
362
+ -1.932002e+000,
363
+ -9.947777e-001,
364
+ -2.042329e+000,
365
+ 3.586940e+000,
366
+ -5.642182e-002,
367
+ 8.130478e-001,
368
+ -8.195988e-002,
369
+ 1.118294e-001,
370
+ 5.617231e-001,
371
+ -8.707374e-001,
372
+ 1.286999e-001,
373
+ 1.820054e+000,
374
+ -4.674706e+000,
375
+ 3.317471e-003,
376
+ 5.919018e-001,
377
+ 1.975278e-001,
378
+ 6.686519e+000,
379
+ 9.631727e-001,
380
+ -1.070378e+000,
381
+ -3.030579e-001,
382
+ -9.041938e-001,
383
+ 6.200201e+000,
384
+ 1.232207e-001,
385
+ -3.650628e-001,
386
+ 5.029403e-001,
387
+ -2.903162e+000,
388
+ 3.811408e-001,
389
+ -1.063035e+000,
390
+ -1.637545e-001,
391
+ 5.853072e-001,
392
+ -7.889906e+000,
393
+ -1.200641e+000,
394
+ 1.035018e+000,
395
+ 1.192093e-001,
396
+ 3.267054e+000,
397
+ 8.416151e-001,
398
+ -1.053655e+000,
399
+ -1.562286e-001,
400
+ 2.423683e-001,
401
+ 1.128575e+001,
402
+ -4.363262e+000,
403
+ -7.314160e-002,
404
+ 5.642088e-001,
405
+ 2.514023e+000,
406
+ 6.670457e-001,
407
+ // albedo 0, turbidity 8
408
+ -1.366112e+000,
409
+ -4.718287e-001,
410
+ -7.876222e+000,
411
+ 7.746900e+000,
412
+ -9.182309e-003,
413
+ 4.716076e-001,
414
+ 8.320252e-002,
415
+ 3.165603e+000,
416
+ 5.392334e-001,
417
+ -2.468204e+000,
418
+ -1.336340e+000,
419
+ -5.386723e+000,
420
+ 7.072672e+000,
421
+ -8.329266e-002,
422
+ 8.636876e-001,
423
+ -1.978177e-002,
424
+ -1.326218e-001,
425
+ 2.979222e-001,
426
+ -9.653522e-001,
427
+ -2.373416e-002,
428
+ 1.810250e+000,
429
+ -6.467262e+000,
430
+ 1.410706e-001,
431
+ -4.753717e-001,
432
+ 3.003095e-001,
433
+ 6.551163e+000,
434
+ 1.151083e+000,
435
+ -8.943186e-001,
436
+ -2.487152e-001,
437
+ -2.308960e-001,
438
+ 8.512648e+000,
439
+ 1.298402e-001,
440
+ 1.034705e+000,
441
+ 2.303509e-001,
442
+ -3.924095e+000,
443
+ 2.982717e-001,
444
+ -1.146999e+000,
445
+ -2.318784e-001,
446
+ 8.992419e-002,
447
+ -9.933614e+000,
448
+ -8.860920e-001,
449
+ -3.071656e-002,
450
+ 2.852012e-001,
451
+ 3.046199e+000,
452
+ 8.599001e-001,
453
+ -1.032399e+000,
454
+ -1.645145e-001,
455
+ 2.683599e-001,
456
+ 1.327701e+001,
457
+ -4.407670e+000,
458
+ 7.709869e-002,
459
+ 4.951727e-001,
460
+ 1.957277e+000,
461
+ 6.630943e-001,
462
+ // albedo 0, turbidity 9
463
+ -1.469070e+000,
464
+ -6.135092e-001,
465
+ -6.506263e+000,
466
+ 6.661315e+000,
467
+ -3.835383e-002,
468
+ 7.150413e-001,
469
+ 7.784318e-003,
470
+ 2.820577e+000,
471
+ 6.756784e-001,
472
+ -2.501583e+000,
473
+ -1.247404e+000,
474
+ -1.523462e+001,
475
+ 1.633191e+001,
476
+ -1.204803e-002,
477
+ 5.896471e-001,
478
+ -2.002023e-002,
479
+ 1.144647e+000,
480
+ 6.177874e-002,
481
+ -2.438672e+000,
482
+ -1.127291e+000,
483
+ 5.731172e+000,
484
+ -1.021350e+001,
485
+ 6.165610e-002,
486
+ -7.752641e-001,
487
+ 4.708254e-001,
488
+ 4.176847e+000,
489
+ 1.200881e+000,
490
+ -1.513427e-001,
491
+ 9.792731e-002,
492
+ -1.612349e+000,
493
+ 9.814289e+000,
494
+ 5.188921e-002,
495
+ 1.716403e+000,
496
+ -7.039255e-002,
497
+ -2.815115e+000,
498
+ 3.291874e-001,
499
+ -1.318511e+000,
500
+ -3.650554e-001,
501
+ 4.221268e-001,
502
+ -9.294529e+000,
503
+ -4.397520e-002,
504
+ -8.100625e-001,
505
+ 3.742719e-001,
506
+ 1.834166e+000,
507
+ 8.223450e-001,
508
+ -1.016009e+000,
509
+ -1.820264e-001,
510
+ 1.278426e-001,
511
+ 1.182696e+001,
512
+ -4.801528e+000,
513
+ 4.947899e-001,
514
+ 4.660378e-001,
515
+ 1.601254e+000,
516
+ 6.702359e-001,
517
+ // albedo 0, turbidity 10
518
+ -1.841310e+000,
519
+ -9.781779e-001,
520
+ -4.610903e+000,
521
+ 4.824662e+000,
522
+ -5.100806e-002,
523
+ 6.463776e-001,
524
+ -6.377724e-006,
525
+ 2.216875e+000,
526
+ 8.618530e-001,
527
+ -2.376373e+000,
528
+ -1.108657e+000,
529
+ -1.489799e+001,
530
+ 1.546458e+001,
531
+ 4.091025e-002,
532
+ 9.761780e-002,
533
+ -1.048958e-002,
534
+ 2.165834e+000,
535
+ -1.609171e-001,
536
+ -4.710318e+000,
537
+ -2.261963e+000,
538
+ 6.947327e+000,
539
+ -1.034828e+001,
540
+ -1.325542e-001,
541
+ 7.508674e-001,
542
+ 2.247553e-001,
543
+ 2.873142e+000,
544
+ 1.297100e+000,
545
+ 2.163750e-001,
546
+ -1.944345e-001,
547
+ -2.437860e+000,
548
+ 1.011314e+001,
549
+ 4.450500e-001,
550
+ 3.111492e-001,
551
+ 2.751323e-001,
552
+ -1.627906e+000,
553
+ 2.531213e-001,
554
+ -1.258794e+000,
555
+ -3.524641e-001,
556
+ 8.425444e-001,
557
+ -1.085313e+001,
558
+ -1.154381e+000,
559
+ -4.638014e-001,
560
+ -2.781115e-003,
561
+ 4.344498e-001,
562
+ 8.507091e-001,
563
+ -1.018938e+000,
564
+ -1.804153e-001,
565
+ -6.354054e-002,
566
+ 1.573150e+001,
567
+ -4.386999e+000,
568
+ 6.211115e-001,
569
+ 5.294648e-001,
570
+ 1.580749e+000,
571
+ 6.586655e-001,
572
+ // albedo 1, turbidity 1
573
+ -1.116416e+000,
574
+ -1.917524e-001,
575
+ -1.068233e+001,
576
+ 1.222221e+001,
577
+ -3.668978e-002,
578
+ 1.054022e+000,
579
+ 1.592132e-002,
580
+ 3.180583e+000,
581
+ 5.627370e-001,
582
+ -1.132341e+000,
583
+ -1.671286e-001,
584
+ 5.976499e+000,
585
+ -4.227366e+000,
586
+ -9.542489e-002,
587
+ 8.664938e-001,
588
+ 8.351793e-003,
589
+ 4.876068e+000,
590
+ 4.492779e-001,
591
+ -1.087635e+000,
592
+ -3.173679e-001,
593
+ 4.314407e-001,
594
+ 1.100555e+000,
595
+ -4.410057e-001,
596
+ 1.677253e+000,
597
+ -3.005925e-002,
598
+ -4.201249e+000,
599
+ 1.070902e+000,
600
+ -1.083031e+000,
601
+ -8.847705e-002,
602
+ 1.291773e+000,
603
+ 4.546776e-001,
604
+ 3.091894e-001,
605
+ 7.261760e-001,
606
+ 4.203659e-002,
607
+ 5.990615e+000,
608
+ 3.704756e-001,
609
+ -1.057899e+000,
610
+ -2.246706e-001,
611
+ 2.329563e+000,
612
+ -1.219656e+000,
613
+ -5.335260e+000,
614
+ 8.545378e-001,
615
+ -3.906209e-002,
616
+ -9.025499e-001,
617
+ 7.797348e-001,
618
+ -1.073305e+000,
619
+ -1.522553e-001,
620
+ 1.767063e+000,
621
+ 1.904280e+000,
622
+ -3.101673e+000,
623
+ 3.995856e-001,
624
+ 2.905192e-002,
625
+ 2.563977e+000,
626
+ 5.753067e-001,
627
+ // albedo 1, turbidity 2
628
+ -1.113674e+000,
629
+ -1.759694e-001,
630
+ -9.754125e+000,
631
+ 1.087391e+001,
632
+ -3.841093e-002,
633
+ 9.524272e-001,
634
+ 5.680219e-002,
635
+ 4.227034e+000,
636
+ 6.029571e-001,
637
+ -1.126496e+000,
638
+ -1.680281e-001,
639
+ 5.332352e+000,
640
+ -4.575579e+000,
641
+ -6.761755e-002,
642
+ 3.295335e-001,
643
+ 1.194896e-001,
644
+ 5.570901e+000,
645
+ 4.536185e-001,
646
+ -1.103074e+000,
647
+ -2.681801e-001,
648
+ 6.571479e-002,
649
+ 2.396522e+000,
650
+ -4.551280e-001,
651
+ 2.466331e+000,
652
+ -1.232022e-001,
653
+ -3.023201e+000,
654
+ 1.086379e+000,
655
+ -1.053299e+000,
656
+ -2.697173e-002,
657
+ 8.379121e-001,
658
+ -9.681458e-001,
659
+ 5.890692e-001,
660
+ -4.872027e-001,
661
+ 2.936929e-001,
662
+ 7.510139e+000,
663
+ 3.079122e-001,
664
+ -1.079553e+000,
665
+ -2.710448e-001,
666
+ 2.462379e+000,
667
+ -3.713554e-001,
668
+ -8.534512e+000,
669
+ 1.828242e+000,
670
+ -1.686398e-001,
671
+ -1.961340e+000,
672
+ 8.941077e-001,
673
+ -1.069741e+000,
674
+ -1.396394e-001,
675
+ 1.657868e+000,
676
+ 3.236313e+000,
677
+ -2.706344e+000,
678
+ -2.948122e-001,
679
+ 1.314816e-001,
680
+ 2.868457e+000,
681
+ 5.413403e-001,
682
+ // albedo 1, turbidity 3
683
+ -1.131649e+000,
684
+ -1.954455e-001,
685
+ -7.751595e+000,
686
+ 8.685861e+000,
687
+ -4.910871e-002,
688
+ 8.992952e-001,
689
+ 4.710143e-002,
690
+ 4.254818e+000,
691
+ 6.821116e-001,
692
+ -1.156689e+000,
693
+ -1.884324e-001,
694
+ 3.163519e+000,
695
+ -3.091522e+000,
696
+ -6.613927e-002,
697
+ -2.575883e-002,
698
+ 1.640065e-001,
699
+ 6.073643e+000,
700
+ 4.453468e-001,
701
+ -1.079224e+000,
702
+ -2.621389e-001,
703
+ 9.446437e-001,
704
+ 1.448479e+000,
705
+ -3.969384e-001,
706
+ 2.626638e+000,
707
+ -8.101186e-002,
708
+ -3.016355e+000,
709
+ 1.076295e+000,
710
+ -1.080832e+000,
711
+ 1.033057e-002,
712
+ -3.500156e-001,
713
+ -3.281419e-002,
714
+ 5.655512e-001,
715
+ -1.156742e+000,
716
+ 4.534710e-001,
717
+ 8.774122e+000,
718
+ 2.772869e-001,
719
+ -1.051202e+000,
720
+ -2.679975e-001,
721
+ 2.719109e+000,
722
+ -2.190316e+000,
723
+ -6.878798e+000,
724
+ 2.250481e+000,
725
+ -2.030252e-001,
726
+ -2.026527e+000,
727
+ 9.701096e-001,
728
+ -1.089849e+000,
729
+ -1.598589e-001,
730
+ 1.564748e+000,
731
+ 6.869187e+000,
732
+ -3.053670e+000,
733
+ -6.110435e-001,
734
+ 1.644472e-001,
735
+ 2.370452e+000,
736
+ 5.511770e-001,
737
+ // albedo 1, turbidity 4
738
+ -1.171419e+000,
739
+ -2.429746e-001,
740
+ -8.991334e+000,
741
+ 9.571216e+000,
742
+ -2.772861e-002,
743
+ 6.688262e-001,
744
+ 7.683478e-002,
745
+ 3.785611e+000,
746
+ 6.347635e-001,
747
+ -1.228554e+000,
748
+ -2.917562e-001,
749
+ 2.753986e+000,
750
+ -2.491780e+000,
751
+ -4.663434e-002,
752
+ 3.118303e-001,
753
+ 7.546506e-002,
754
+ 4.463096e+000,
755
+ 5.955071e-001,
756
+ -1.093124e+000,
757
+ -2.447767e-001,
758
+ 9.097406e-001,
759
+ 5.448296e-001,
760
+ -2.957824e-001,
761
+ 2.024167e+000,
762
+ -5.152333e-004,
763
+ -1.069081e+000,
764
+ 9.369565e-001,
765
+ -1.056994e+000,
766
+ 1.569507e-002,
767
+ -8.217491e-001,
768
+ 1.870818e+000,
769
+ 7.061930e-001,
770
+ -1.483928e+000,
771
+ 5.978206e-001,
772
+ 6.864902e+000,
773
+ 3.673332e-001,
774
+ -1.054871e+000,
775
+ -2.758129e-001,
776
+ 2.712807e+000,
777
+ -5.950110e+000,
778
+ -6.554039e+000,
779
+ 2.447523e+000,
780
+ -1.895171e-001,
781
+ -1.454292e+000,
782
+ 9.131738e-001,
783
+ -1.100218e+000,
784
+ -1.746241e-001,
785
+ 1.438505e+000,
786
+ 1.115481e+001,
787
+ -3.266076e+000,
788
+ -8.837357e-001,
789
+ 1.970100e-001,
790
+ 1.991595e+000,
791
+ 5.907821e-001,
792
+ // albedo 1, turbidity 5
793
+ -1.207267e+000,
794
+ -2.913610e-001,
795
+ -1.103767e+001,
796
+ 1.140724e+001,
797
+ -1.416800e-002,
798
+ 5.564047e-001,
799
+ 8.476262e-002,
800
+ 3.371255e+000,
801
+ 6.221335e-001,
802
+ -1.429698e+000,
803
+ -5.374218e-001,
804
+ 2.837524e+000,
805
+ -2.221936e+000,
806
+ -2.422337e-002,
807
+ 9.313758e-002,
808
+ 7.190250e-002,
809
+ 1.869022e+000,
810
+ 5.609035e-001,
811
+ -1.002274e+000,
812
+ -6.972810e-002,
813
+ 4.031308e-001,
814
+ -3.932997e-001,
815
+ -1.521923e-001,
816
+ 2.390646e+000,
817
+ -6.893990e-002,
818
+ 2.999661e+000,
819
+ 1.017843e+000,
820
+ -1.081168e+000,
821
+ -1.178666e-001,
822
+ -4.968080e-001,
823
+ 3.919299e+000,
824
+ 6.046866e-001,
825
+ -2.440615e+000,
826
+ 7.891538e-001,
827
+ 2.140835e+000,
828
+ 2.740470e-001,
829
+ -1.050727e+000,
830
+ -2.307688e-001,
831
+ 2.276396e+000,
832
+ -9.454407e+000,
833
+ -5.505176e+000,
834
+ 2.992620e+000,
835
+ -2.450942e-001,
836
+ 6.078372e-001,
837
+ 9.606765e-001,
838
+ -1.103752e+000,
839
+ -1.810202e-001,
840
+ 1.375044e+000,
841
+ 1.589095e+001,
842
+ -3.438954e+000,
843
+ -1.265669e+000,
844
+ 2.475172e-001,
845
+ 1.680768e+000,
846
+ 5.978056e-001,
847
+ // albedo 1, turbidity 6
848
+ -1.244324e+000,
849
+ -3.378542e-001,
850
+ -1.111001e+001,
851
+ 1.137784e+001,
852
+ -7.896794e-003,
853
+ 4.808023e-001,
854
+ 9.249904e-002,
855
+ 3.025816e+000,
856
+ 5.880239e-001,
857
+ -1.593165e+000,
858
+ -7.027621e-001,
859
+ 2.220896e+000,
860
+ -1.437709e+000,
861
+ -1.534738e-002,
862
+ 6.286958e-002,
863
+ 6.644555e-002,
864
+ 1.091727e+000,
865
+ 5.470080e-001,
866
+ -9.136506e-001,
867
+ 1.344874e-002,
868
+ 7.772636e-001,
869
+ -1.209396e+000,
870
+ -1.408978e-001,
871
+ 2.433718e+000,
872
+ -1.041938e-001,
873
+ 3.791244e+000,
874
+ 1.037916e+000,
875
+ -1.134968e+000,
876
+ -1.803315e-001,
877
+ -9.267335e-001,
878
+ 4.576670e+000,
879
+ 6.851928e-001,
880
+ -2.805000e+000,
881
+ 8.687208e-001,
882
+ 1.161483e+000,
883
+ 2.571688e-001,
884
+ -1.017037e+000,
885
+ -2.053943e-001,
886
+ 2.361640e+000,
887
+ -9.887818e+000,
888
+ -5.122889e+000,
889
+ 3.287088e+000,
890
+ -2.594102e-001,
891
+ 8.578927e-001,
892
+ 9.592340e-001,
893
+ -1.118723e+000,
894
+ -1.934942e-001,
895
+ 1.226023e+000,
896
+ 1.674140e+001,
897
+ -3.277335e+000,
898
+ -1.629809e+000,
899
+ 2.765232e-001,
900
+ 1.637713e+000,
901
+ 6.113963e-001,
902
+ // albedo 1, turbidity 7
903
+ -1.314779e+000,
904
+ -4.119915e-001,
905
+ -1.241150e+001,
906
+ 1.241578e+001,
907
+ 2.344284e-003,
908
+ 2.980837e-001,
909
+ 1.414613e-001,
910
+ 2.781731e+000,
911
+ 4.998556e-001,
912
+ -1.926199e+000,
913
+ -1.020038e+000,
914
+ 2.569200e+000,
915
+ -1.081159e+000,
916
+ -2.266833e-002,
917
+ 3.588668e-001,
918
+ 8.750078e-003,
919
+ -2.452171e-001,
920
+ 4.796758e-001,
921
+ -7.780002e-001,
922
+ 1.850647e-001,
923
+ 4.445456e-002,
924
+ -2.409297e+000,
925
+ -7.816346e-002,
926
+ 1.546790e+000,
927
+ -2.807227e-002,
928
+ 5.998176e+000,
929
+ 1.132396e+000,
930
+ -1.179326e+000,
931
+ -3.578330e-001,
932
+ -2.392933e-001,
933
+ 6.467883e+000,
934
+ 5.904596e-001,
935
+ -1.869975e+000,
936
+ 8.045839e-001,
937
+ -2.498121e+000,
938
+ 1.610633e-001,
939
+ -1.009956e+000,
940
+ -1.311896e-001,
941
+ 1.726577e+000,
942
+ -1.219356e+001,
943
+ -3.466239e+000,
944
+ 2.343602e+000,
945
+ -2.252205e-001,
946
+ 2.573681e+000,
947
+ 1.027109e+000,
948
+ -1.112460e+000,
949
+ -2.063093e-001,
950
+ 1.233051e+000,
951
+ 2.058946e+001,
952
+ -4.578074e+000,
953
+ -1.145643e+000,
954
+ 3.160192e-001,
955
+ 1.420159e+000,
956
+ 5.860212e-001,
957
+ // albedo 1, turbidity 8
958
+ -1.371689e+000,
959
+ -4.914196e-001,
960
+ -1.076610e+001,
961
+ 1.107405e+001,
962
+ -1.485077e-002,
963
+ 5.936218e-001,
964
+ 3.685482e-002,
965
+ 2.599968e+000,
966
+ 6.002204e-001,
967
+ -2.436997e+000,
968
+ -1.377939e+000,
969
+ 2.130141e-002,
970
+ 1.079593e+000,
971
+ -1.796232e-002,
972
+ -3.933248e-002,
973
+ 1.610711e-001,
974
+ -6.901181e-001,
975
+ 1.206416e-001,
976
+ -8.743368e-001,
977
+ 7.331370e-002,
978
+ 8.734259e-001,
979
+ -3.743126e+000,
980
+ -3.151167e-002,
981
+ 1.297596e+000,
982
+ -7.634926e-002,
983
+ 6.532873e+000,
984
+ 1.435737e+000,
985
+ -9.810197e-001,
986
+ -3.521634e-001,
987
+ -2.855205e-001,
988
+ 7.134674e+000,
989
+ 6.839748e-001,
990
+ -1.394841e+000,
991
+ 6.952036e-001,
992
+ -4.633104e+000,
993
+ -2.173401e-002,
994
+ -1.122958e+000,
995
+ -1.691536e-001,
996
+ 1.382360e+000,
997
+ -1.102913e+001,
998
+ -2.608171e+000,
999
+ 1.865111e+000,
1000
+ -1.345154e-001,
1001
+ 3.112342e+000,
1002
+ 1.094134e+000,
1003
+ -1.075586e+000,
1004
+ -2.077415e-001,
1005
+ 1.171477e+000,
1006
+ 1.793270e+001,
1007
+ -4.656858e+000,
1008
+ -1.036839e+000,
1009
+ 3.338295e-001,
1010
+ 1.042793e+000,
1011
+ 5.739374e-001,
1012
+ // albedo 1, turbidity 9
1013
+ -1.465871e+000,
1014
+ -6.364486e-001,
1015
+ -8.833718e+000,
1016
+ 9.343650e+000,
1017
+ -3.223600e-002,
1018
+ 7.552848e-001,
1019
+ -3.121341e-006,
1020
+ 2.249164e+000,
1021
+ 8.094662e-001,
1022
+ -2.448924e+000,
1023
+ -1.270878e+000,
1024
+ -4.823703e+000,
1025
+ 5.853058e+000,
1026
+ -2.149127e-002,
1027
+ 3.581132e-002,
1028
+ -1.230276e-003,
1029
+ 4.892553e-001,
1030
+ -1.597657e-001,
1031
+ -2.419809e+000,
1032
+ -1.071337e+000,
1033
+ 1.575648e+000,
1034
+ -4.983580e+000,
1035
+ 9.545185e-003,
1036
+ 5.032615e-001,
1037
+ 4.186266e-001,
1038
+ 4.634147e+000,
1039
+ 1.433517e+000,
1040
+ -1.383278e-001,
1041
+ -2.797095e-002,
1042
+ -1.943067e-001,
1043
+ 6.679623e+000,
1044
+ 4.118280e-001,
1045
+ -2.744289e-001,
1046
+ -2.118722e-002,
1047
+ -4.337025e+000,
1048
+ 1.505072e-001,
1049
+ -1.341872e+000,
1050
+ -2.518572e-001,
1051
+ 1.027009e+000,
1052
+ -6.527103e+000,
1053
+ -1.081271e+000,
1054
+ 1.015465e+000,
1055
+ 2.845789e-001,
1056
+ 2.470371e+000,
1057
+ 9.278120e-001,
1058
+ -1.040640e+000,
1059
+ -2.367454e-001,
1060
+ 1.100744e+000,
1061
+ 8.827253e+000,
1062
+ -4.560794e+000,
1063
+ -7.287017e-001,
1064
+ 2.842503e-001,
1065
+ 6.336593e-001,
1066
+ 6.327335e-001,
1067
+ // albedo 1, turbidity 10
1068
+ -1.877993e+000,
1069
+ -1.025135e+000,
1070
+ -4.311037e+000,
1071
+ 4.715016e+000,
1072
+ -4.711631e-002,
1073
+ 6.335844e-001,
1074
+ -7.665398e-006,
1075
+ 1.788017e+000,
1076
+ 9.001409e-001,
1077
+ -2.281540e+000,
1078
+ -1.137668e+000,
1079
+ -1.036869e+001,
1080
+ 1.136254e+001,
1081
+ 1.961739e-002,
1082
+ -9.836174e-002,
1083
+ -6.734567e-003,
1084
+ 1.320918e+000,
1085
+ -2.400807e-001,
1086
+ -4.904054e+000,
1087
+ -2.315781e+000,
1088
+ 5.735999e+000,
1089
+ -8.626257e+000,
1090
+ -1.255643e-001,
1091
+ 1.545446e+000,
1092
+ 1.396860e-001,
1093
+ 2.972897e+000,
1094
+ 1.429934e+000,
1095
+ 4.077067e-001,
1096
+ -1.833688e-001,
1097
+ -2.450939e+000,
1098
+ 9.119433e+000,
1099
+ 4.505361e-001,
1100
+ -1.340828e+000,
1101
+ 3.973690e-001,
1102
+ -1.785370e+000,
1103
+ 9.628711e-002,
1104
+ -1.296052e+000,
1105
+ -3.250526e-001,
1106
+ 1.813294e+000,
1107
+ -1.031485e+001,
1108
+ -1.388690e+000,
1109
+ 1.239733e+000,
1110
+ -8.989196e-002,
1111
+ -3.389637e-001,
1112
+ 9.639560e-001,
1113
+ -1.062181e+000,
1114
+ -2.423444e-001,
1115
+ 7.577592e-001,
1116
+ 1.566938e+001,
1117
+ -4.462264e+000,
1118
+ -5.742810e-001,
1119
+ 3.262259e-001,
1120
+ 9.461672e-001,
1121
+ 6.232887e-001,
1122
+ ]);
1123
+
1124
+ /**
1125
+ * [albedo][turbidity][quinticCoeffs]
1126
+ * float kHosekRadX[2][10][6]
1127
+ * @type {Float32Array}
1128
+ */
1129
+ const kHosekRadX = new Float32Array([
1130
+ // albedo 0, turbidity 1
1131
+ 1.560219e+000,
1132
+ 1.417388e+000,
1133
+ 1.206927e+000,
1134
+ 1.091949e+001,
1135
+ 5.931416e+000,
1136
+ 7.304788e+000,
1137
+ // albedo 0, turbidity 2
1138
+ 1.533049e+000,
1139
+ 1.560532e+000,
1140
+ 3.685059e-001,
1141
+ 1.355040e+001,
1142
+ 5.543711e+000,
1143
+ 7.792189e+000,
1144
+ // albedo 0, turbidity 3
1145
+ 1.471043e+000,
1146
+ 1.746088e+000,
1147
+ -9.299697e-001,
1148
+ 1.720362e+001,
1149
+ 5.473384e+000,
1150
+ 8.336416e+000,
1151
+ // albedo 0, turbidity 4
1152
+ 1.355991e+000,
1153
+ 2.109348e+000,
1154
+ -3.295855e+000,
1155
+ 2.264843e+001,
1156
+ 5.454607e+000,
1157
+ 9.304656e+000,
1158
+ // albedo 0, turbidity 5
1159
+ 1.244963e+000,
1160
+ 2.547533e+000,
1161
+ -5.841485e+000,
1162
+ 2.756879e+001,
1163
+ 5.576104e+000,
1164
+ 1.043287e+001,
1165
+ // albedo 0, turbidity 6
1166
+ 1.175532e+000,
1167
+ 2.784634e+000,
1168
+ -7.212225e+000,
1169
+ 2.975347e+001,
1170
+ 6.472980e+000,
1171
+ 1.092331e+001,
1172
+ // albedo 0, turbidity 7
1173
+ 1.082973e+000,
1174
+ 3.118094e+000,
1175
+ -8.934293e+000,
1176
+ 3.186879e+001,
1177
+ 8.473885e+000,
1178
+ 1.174019e+001,
1179
+ // albedo 0, turbidity 8
1180
+ 9.692500e-001,
1181
+ 3.349574e+000,
1182
+ -1.003810e+001,
1183
+ 3.147654e+001,
1184
+ 1.338931e+001,
1185
+ 1.272547e+001,
1186
+ // albedo 0, turbidity 9
1187
+ 8.547044e-001,
1188
+ 3.151538e+000,
1189
+ -9.095567e+000,
1190
+ 2.554995e+001,
1191
+ 2.273219e+001,
1192
+ 1.410398e+001,
1193
+ // albedo 0, turbidity 10
1194
+ 7.580340e-001,
1195
+ 2.311153e+000,
1196
+ -5.170814e+000,
1197
+ 1.229669e+001,
1198
+ 3.686529e+001,
1199
+ 1.598882e+001,
1200
+ // albedo 1, turbidity 1
1201
+ 1.664273e+000,
1202
+ 1.574468e+000,
1203
+ 1.422078e+000,
1204
+ 9.768247e+000,
1205
+ 1.447338e+001,
1206
+ 1.644988e+001,
1207
+ // albedo 1, turbidity 2
1208
+ 1.638295e+000,
1209
+ 1.719586e+000,
1210
+ 5.786675e-001,
1211
+ 1.239846e+001,
1212
+ 1.415419e+001,
1213
+ 1.728605e+001,
1214
+ // albedo 1, turbidity 3
1215
+ 1.572623e+000,
1216
+ 1.921559e+000,
1217
+ -7.714802e-001,
1218
+ 1.609246e+001,
1219
+ 1.420954e+001,
1220
+ 1.825908e+001,
1221
+ // albedo 1, turbidity 4
1222
+ 1.468395e+000,
1223
+ 2.211970e+000,
1224
+ -2.845869e+000,
1225
+ 2.075027e+001,
1226
+ 1.524822e+001,
1227
+ 1.937622e+001,
1228
+ // albedo 1, turbidity 5
1229
+ 1.355047e+000,
1230
+ 2.556469e+000,
1231
+ -4.960920e+000,
1232
+ 2.460237e+001,
1233
+ 1.648360e+001,
1234
+ 2.065648e+001,
1235
+ // albedo 1, turbidity 6
1236
+ 1.291642e+000,
1237
+ 2.742036e+000,
1238
+ -6.061967e+000,
1239
+ 2.602002e+001,
1240
+ 1.819144e+001,
1241
+ 2.116712e+001,
1242
+ // albedo 1, turbidity 7
1243
+ 1.194565e+000,
1244
+ 2.972120e+000,
1245
+ -7.295779e+000,
1246
+ 2.691805e+001,
1247
+ 2.124880e+001,
1248
+ 2.201819e+001,
1249
+ // albedo 1, turbidity 8
1250
+ 1.083631e+000,
1251
+ 3.047021e+000,
1252
+ -7.766096e+000,
1253
+ 2.496261e+001,
1254
+ 2.744264e+001,
1255
+ 2.291875e+001,
1256
+ // albedo 1, turbidity 9
1257
+ 9.707994e-001,
1258
+ 2.736459e+000,
1259
+ -6.308284e+000,
1260
+ 1.760860e+001,
1261
+ 3.776291e+001,
1262
+ 2.392150e+001,
1263
+ // albedo 1, turbidity 10
1264
+ 8.574294e-001,
1265
+ 1.865155e+000,
1266
+ -2.364707e+000,
1267
+ 4.337793e+000,
1268
+ 5.092831e+001,
1269
+ 2.523432e+001,
1270
+ ]);
1271
+
1272
+
1273
+ const kHosekCoeffsY = new Float32Array([
1274
+ // albedo 0, turbidity 1
1275
+ -1.127942e+000,
1276
+ -1.905548e-001,
1277
+ -1.252356e+001,
1278
+ 1.375799e+001,
1279
+ -3.624732e-002,
1280
+ 1.055453e+000,
1281
+ 1.385036e-002,
1282
+ 4.176970e+000,
1283
+ 5.928345e-001,
1284
+ -1.155260e+000,
1285
+ -1.778135e-001,
1286
+ 6.216056e+000,
1287
+ -5.254116e+000,
1288
+ -8.787445e-002,
1289
+ 8.434621e-001,
1290
+ 4.025734e-002,
1291
+ 6.195322e+000,
1292
+ 3.111856e-001,
1293
+ -1.125624e+000,
1294
+ -3.217593e-001,
1295
+ 5.043919e-001,
1296
+ 1.686284e+000,
1297
+ -3.536071e-001,
1298
+ 1.476321e+000,
1299
+ -7.899019e-002,
1300
+ -4.522531e+000,
1301
+ 1.271691e+000,
1302
+ -1.081801e+000,
1303
+ -1.033234e-001,
1304
+ 9.995550e-001,
1305
+ 7.482946e-003,
1306
+ -6.776018e-002,
1307
+ 1.463141e+000,
1308
+ 9.492021e-002,
1309
+ 5.612723e+000,
1310
+ 1.298846e-001,
1311
+ -1.075320e+000,
1312
+ -2.402711e-001,
1313
+ 2.141284e+000,
1314
+ -1.203359e+000,
1315
+ -4.945188e+000,
1316
+ 1.437221e+000,
1317
+ -8.096750e-002,
1318
+ -1.028378e+000,
1319
+ 1.004164e+000,
1320
+ -1.073337e+000,
1321
+ -1.516517e-001,
1322
+ 1.639379e+000,
1323
+ 2.304669e+000,
1324
+ -3.214244e+000,
1325
+ 1.286245e+000,
1326
+ 5.613957e-002,
1327
+ 2.480902e+000,
1328
+ 4.999363e-001,
1329
+ // albedo 0, turbidity 2
1330
+ -1.128399e+000,
1331
+ -1.857793e-001,
1332
+ -1.089863e+001,
1333
+ 1.172984e+001,
1334
+ -3.768099e-002,
1335
+ 9.439285e-001,
1336
+ 4.869335e-002,
1337
+ 4.845114e+000,
1338
+ 6.119211e-001,
1339
+ -1.114002e+000,
1340
+ -1.399280e-001,
1341
+ 4.963800e+000,
1342
+ -4.685500e+000,
1343
+ -7.780879e-002,
1344
+ 4.049736e-001,
1345
+ 1.586297e-001,
1346
+ 7.770264e+000,
1347
+ 3.449006e-001,
1348
+ -1.185472e+000,
1349
+ -3.403543e-001,
1350
+ 6.588322e-001,
1351
+ 1.133713e+000,
1352
+ -4.118674e-001,
1353
+ 2.061191e+000,
1354
+ -1.882768e-001,
1355
+ -4.372586e+000,
1356
+ 1.223530e+000,
1357
+ -1.002272e+000,
1358
+ 2.000703e-002,
1359
+ 7.073269e-002,
1360
+ 1.485075e+000,
1361
+ 5.005589e-001,
1362
+ 4.301494e-001,
1363
+ 3.626541e-001,
1364
+ 7.921098e+000,
1365
+ 1.574766e-001,
1366
+ -1.121006e+000,
1367
+ -3.007777e-001,
1368
+ 2.242051e+000,
1369
+ -4.571561e+000,
1370
+ -7.761071e+000,
1371
+ 2.053404e+000,
1372
+ -1.524018e-001,
1373
+ -1.886162e+000,
1374
+ 1.018208e+000,
1375
+ -1.058864e+000,
1376
+ -1.358673e-001,
1377
+ 1.389667e+000,
1378
+ 8.633409e+000,
1379
+ -3.437249e+000,
1380
+ 7.295429e-001,
1381
+ 1.514700e-001,
1382
+ 2.842513e+000,
1383
+ 5.014325e-001,
1384
+ // albedo 0, turbidity 3
1385
+ -1.144464e+000,
1386
+ -2.043799e-001,
1387
+ -1.020188e+001,
1388
+ 1.071247e+001,
1389
+ -3.256693e-002,
1390
+ 7.860205e-001,
1391
+ 6.872719e-002,
1392
+ 4.824771e+000,
1393
+ 6.259836e-001,
1394
+ -1.170104e+000,
1395
+ -2.118626e-001,
1396
+ 4.391405e+000,
1397
+ -4.198900e+000,
1398
+ -7.111559e-002,
1399
+ 3.890442e-001,
1400
+ 1.024831e-001,
1401
+ 6.282535e+000,
1402
+ 5.365688e-001,
1403
+ -1.129171e+000,
1404
+ -2.552880e-001,
1405
+ 2.238298e-001,
1406
+ 7.314295e-001,
1407
+ -3.562730e-001,
1408
+ 1.881931e+000,
1409
+ -3.078716e-002,
1410
+ -1.039120e+000,
1411
+ 9.096301e-001,
1412
+ -1.042294e+000,
1413
+ 4.450203e-003,
1414
+ -5.116033e-001,
1415
+ 2.627589e+000,
1416
+ 6.098996e-001,
1417
+ -1.264638e-001,
1418
+ 4.325281e-001,
1419
+ 7.080503e+000,
1420
+ 4.583646e-001,
1421
+ -1.082293e+000,
1422
+ -2.723056e-001,
1423
+ 2.065076e+000,
1424
+ -8.143133e+000,
1425
+ -7.892212e+000,
1426
+ 2.142231e+000,
1427
+ -7.106240e-002,
1428
+ -1.122398e+000,
1429
+ 8.338505e-001,
1430
+ -1.071715e+000,
1431
+ -1.426568e-001,
1432
+ 1.095351e+000,
1433
+ 1.729783e+001,
1434
+ -3.851931e+000,
1435
+ 4.360514e-001,
1436
+ 2.114440e-001,
1437
+ 2.970832e+000,
1438
+ 5.944389e-001,
1439
+ // albedo 0, turbidity 4
1440
+ -1.195909e+000,
1441
+ -2.590449e-001,
1442
+ -1.191037e+001,
1443
+ 1.207947e+001,
1444
+ -1.589842e-002,
1445
+ 6.297846e-001,
1446
+ 9.054772e-002,
1447
+ 4.285959e+000,
1448
+ 5.933752e-001,
1449
+ -1.245763e+000,
1450
+ -3.316637e-001,
1451
+ 4.293660e+000,
1452
+ -3.694011e+000,
1453
+ -4.699947e-002,
1454
+ 4.843684e-001,
1455
+ 2.130425e-002,
1456
+ 4.097549e+000,
1457
+ 6.530809e-001,
1458
+ -1.148742e+000,
1459
+ -1.902509e-001,
1460
+ -2.393233e-001,
1461
+ -2.441254e-001,
1462
+ -2.610918e-001,
1463
+ 1.846988e+000,
1464
+ 3.532866e-002,
1465
+ 2.660106e+000,
1466
+ 8.358294e-001,
1467
+ -1.016080e+000,
1468
+ -7.444960e-002,
1469
+ -5.053436e-001,
1470
+ 4.388855e+000,
1471
+ 6.054987e-001,
1472
+ -1.208300e+000,
1473
+ 5.817215e-001,
1474
+ 2.543570e+000,
1475
+ 4.726568e-001,
1476
+ -1.072027e+000,
1477
+ -2.101440e-001,
1478
+ 1.518378e+000,
1479
+ -1.060119e+001,
1480
+ -6.016546e+000,
1481
+ 2.649475e+000,
1482
+ -5.166992e-002,
1483
+ 1.571269e+000,
1484
+ 8.344622e-001,
1485
+ -1.072365e+000,
1486
+ -1.511201e-001,
1487
+ 7.478010e-001,
1488
+ 1.900732e+001,
1489
+ -3.950387e+000,
1490
+ -3.473907e-001,
1491
+ 3.797211e-001,
1492
+ 2.782949e+000,
1493
+ 6.296808e-001,
1494
+ // albedo 0, turbidity 5
1495
+ -1.239423e+000,
1496
+ -3.136289e-001,
1497
+ -1.351100e+001,
1498
+ 1.349468e+001,
1499
+ -7.070423e-003,
1500
+ 5.012315e-001,
1501
+ 1.106008e-001,
1502
+ 3.803619e+000,
1503
+ 5.577948e-001,
1504
+ -1.452524e+000,
1505
+ -5.676944e-001,
1506
+ 2.993153e+000,
1507
+ -2.277288e+000,
1508
+ -2.168954e-002,
1509
+ 3.056720e-001,
1510
+ 1.152338e-002,
1511
+ 1.852697e+000,
1512
+ 6.427228e-001,
1513
+ -1.061421e+000,
1514
+ -4.590521e-002,
1515
+ 6.057022e-001,
1516
+ -1.096835e+000,
1517
+ -1.504952e-001,
1518
+ 2.344921e+000,
1519
+ -5.491832e-002,
1520
+ 5.268322e+000,
1521
+ 9.082253e-001,
1522
+ -1.042373e+000,
1523
+ -1.769498e-001,
1524
+ -1.075388e+000,
1525
+ 3.831712e+000,
1526
+ 3.154140e-001,
1527
+ -2.416458e+000,
1528
+ 7.909032e-001,
1529
+ -1.492892e-002,
1530
+ 3.854049e-001,
1531
+ -1.064159e+000,
1532
+ -1.892684e-001,
1533
+ 1.438685e+000,
1534
+ -8.166362e+000,
1535
+ -3.616364e+000,
1536
+ 3.275206e+000,
1537
+ -1.203825e-001,
1538
+ 2.039491e+000,
1539
+ 8.688057e-001,
1540
+ -1.070120e+000,
1541
+ -1.569508e-001,
1542
+ 4.124760e-001,
1543
+ 1.399683e+001,
1544
+ -3.547085e+000,
1545
+ -1.046326e+000,
1546
+ 4.973825e-001,
1547
+ 2.791231e+000,
1548
+ 6.503286e-001,
1549
+ // albedo 0, turbidity 6
1550
+ -1.283579e+000,
1551
+ -3.609518e-001,
1552
+ -1.335397e+001,
1553
+ 1.315248e+001,
1554
+ -4.431938e-004,
1555
+ 3.769526e-001,
1556
+ 1.429824e-001,
1557
+ 3.573613e+000,
1558
+ 4.998696e-001,
1559
+ -1.657952e+000,
1560
+ -7.627948e-001,
1561
+ 1.958222e+000,
1562
+ -7.949816e-001,
1563
+ -2.882837e-002,
1564
+ 5.356149e-001,
1565
+ -5.191946e-002,
1566
+ 8.869955e-001,
1567
+ 6.263320e-001,
1568
+ -9.527600e-001,
1569
+ 6.494189e-002,
1570
+ 5.361303e-001,
1571
+ -2.129590e+000,
1572
+ -9.258630e-002,
1573
+ 1.604776e+000,
1574
+ 5.067770e-002,
1575
+ 6.376055e+000,
1576
+ 9.138052e-001,
1577
+ -1.080827e+000,
1578
+ -2.523120e-001,
1579
+ -7.154262e-001,
1580
+ 4.120085e+000,
1581
+ 1.878228e-001,
1582
+ -1.492158e+000,
1583
+ 6.881655e-001,
1584
+ -1.446611e+000,
1585
+ 4.040631e-001,
1586
+ -1.054075e+000,
1587
+ -1.665498e-001,
1588
+ 9.191052e-001,
1589
+ -6.636943e+000,
1590
+ -1.894826e+000,
1591
+ 2.107810e+000,
1592
+ -3.680499e-002,
1593
+ 2.655452e+000,
1594
+ 8.413840e-001,
1595
+ -1.061127e+000,
1596
+ -1.448849e-001,
1597
+ 2.667493e-001,
1598
+ 1.034103e+001,
1599
+ -4.285769e+000,
1600
+ -3.874504e-001,
1601
+ 5.998752e-001,
1602
+ 3.132426e+000,
1603
+ 6.652753e-001,
1604
+ // albedo 0, turbidity 7
1605
+ -1.347345e+000,
1606
+ -4.287832e-001,
1607
+ -9.305553e+000,
1608
+ 9.133813e+000,
1609
+ -3.173527e-003,
1610
+ 3.977564e-001,
1611
+ 1.151420e-001,
1612
+ 3.320564e+000,
1613
+ 4.998134e-001,
1614
+ -1.927296e+000,
1615
+ -9.901372e-001,
1616
+ -2.593499e+000,
1617
+ 4.087421e+000,
1618
+ -5.833993e-002,
1619
+ 8.158929e-001,
1620
+ -4.681279e-002,
1621
+ 2.423716e-001,
1622
+ 4.938052e-001,
1623
+ -9.470092e-001,
1624
+ 7.325237e-002,
1625
+ 2.064735e+000,
1626
+ -5.167540e+000,
1627
+ -1.313751e-002,
1628
+ 4.832169e-001,
1629
+ 1.126295e-001,
1630
+ 6.970522e+000,
1631
+ 1.035022e+000,
1632
+ -1.022557e+000,
1633
+ -2.762616e-001,
1634
+ -9.375748e-001,
1635
+ 6.696739e+000,
1636
+ 2.200765e-001,
1637
+ -1.133253e-001,
1638
+ 5.492505e-001,
1639
+ -3.109391e+000,
1640
+ 3.321914e-001,
1641
+ -1.087444e+000,
1642
+ -1.836263e-001,
1643
+ 6.225024e-001,
1644
+ -8.576765e+000,
1645
+ -1.107637e+000,
1646
+ 7.859427e-001,
1647
+ 9.910909e-002,
1648
+ 3.112938e+000,
1649
+ 8.596261e-001,
1650
+ -1.051544e+000,
1651
+ -1.546262e-001,
1652
+ 2.371731e-001,
1653
+ 1.200502e+001,
1654
+ -4.527291e+000,
1655
+ 7.268862e-002,
1656
+ 5.571478e-001,
1657
+ 2.532873e+000,
1658
+ 6.662000e-001,
1659
+ // albedo 0, turbidity 8
1660
+ -1.375576e+000,
1661
+ -4.840019e-001,
1662
+ -8.121290e+000,
1663
+ 8.058140e+000,
1664
+ -1.445661e-002,
1665
+ 5.123314e-001,
1666
+ 5.813321e-002,
1667
+ 3.203219e+000,
1668
+ 5.442318e-001,
1669
+ -2.325221e+000,
1670
+ -1.241463e+000,
1671
+ -7.063430e+000,
1672
+ 8.741369e+000,
1673
+ -7.829950e-002,
1674
+ 8.844273e-001,
1675
+ -3.471106e-002,
1676
+ 1.740583e-001,
1677
+ 2.814079e-001,
1678
+ -1.228700e+000,
1679
+ -2.013412e-001,
1680
+ 2.949042e+000,
1681
+ -7.371945e+000,
1682
+ 1.071753e-001,
1683
+ -2.491970e-001,
1684
+ 2.265223e-001,
1685
+ 6.391504e+000,
1686
+ 1.172389e+000,
1687
+ -7.601786e-001,
1688
+ -1.680631e-001,
1689
+ -7.584444e-001,
1690
+ 8.541356e+000,
1691
+ 8.222291e-002,
1692
+ 6.729633e-001,
1693
+ 3.206615e-001,
1694
+ -3.700940e+000,
1695
+ 2.710054e-001,
1696
+ -1.191166e+000,
1697
+ -2.672347e-001,
1698
+ 2.927498e-001,
1699
+ -9.713613e+000,
1700
+ -4.783721e-001,
1701
+ 2.352803e-001,
1702
+ 2.161949e-001,
1703
+ 2.691481e+000,
1704
+ 8.745447e-001,
1705
+ -1.030135e+000,
1706
+ -1.653301e-001,
1707
+ 2.263443e-001,
1708
+ 1.296157e+001,
1709
+ -4.650644e+000,
1710
+ 7.055709e-003,
1711
+ 5.091975e-001,
1712
+ 2.000370e+000,
1713
+ 6.603839e-001,
1714
+ // albedo 0, turbidity 9
1715
+ -1.508018e+000,
1716
+ -6.460933e-001,
1717
+ -6.402745e+000,
1718
+ 6.545995e+000,
1719
+ -3.750320e-002,
1720
+ 6.921803e-001,
1721
+ 3.309819e-003,
1722
+ 2.797527e+000,
1723
+ 6.978446e-001,
1724
+ -2.333308e+000,
1725
+ -1.167837e+000,
1726
+ -1.746787e+001,
1727
+ 1.868630e+001,
1728
+ -8.948229e-003,
1729
+ 5.621946e-001,
1730
+ -3.402626e-002,
1731
+ 1.217943e+000,
1732
+ 1.149865e-002,
1733
+ -2.665953e+000,
1734
+ -1.226307e+000,
1735
+ 7.169725e+000,
1736
+ -1.159434e+001,
1737
+ 3.583420e-002,
1738
+ -3.074378e-001,
1739
+ 3.412248e-001,
1740
+ 4.422122e+000,
1741
+ 1.283791e+000,
1742
+ -9.705116e-002,
1743
+ 8.312991e-002,
1744
+ -2.160462e+000,
1745
+ 1.028235e+001,
1746
+ 3.543357e-002,
1747
+ 1.032049e+000,
1748
+ 1.058310e-001,
1749
+ -2.972898e+000,
1750
+ 2.418628e-001,
1751
+ -1.329617e+000,
1752
+ -3.699557e-001,
1753
+ 5.560117e-001,
1754
+ -9.730113e+000,
1755
+ 9.938865e-002,
1756
+ -3.071488e-001,
1757
+ 2.510691e-001,
1758
+ 1.777111e+000,
1759
+ 8.705142e-001,
1760
+ -1.019387e+000,
1761
+ -1.893247e-001,
1762
+ 1.194079e-001,
1763
+ 1.239436e+001,
1764
+ -4.799224e+000,
1765
+ 2.940213e-001,
1766
+ 4.841268e-001,
1767
+ 1.529724e+000,
1768
+ 6.582615e-001,
1769
+ // albedo 0, turbidity 10
1770
+ -1.896737e+000,
1771
+ -1.005442e+000,
1772
+ -6.411032e+000,
1773
+ 6.548220e+000,
1774
+ -3.227596e-002,
1775
+ 5.717262e-001,
1776
+ -8.115192e-006,
1777
+ 2.296704e+000,
1778
+ 9.000749e-001,
1779
+ -2.411116e+000,
1780
+ -1.225587e+000,
1781
+ -1.753629e+001,
1782
+ 1.829393e+001,
1783
+ 1.247555e-002,
1784
+ 2.364616e-001,
1785
+ -5.114637e-003,
1786
+ 1.603778e+000,
1787
+ -2.224156e-001,
1788
+ -4.707121e+000,
1789
+ -2.074977e+000,
1790
+ 7.942300e+000,
1791
+ -1.132407e+001,
1792
+ -5.415654e-002,
1793
+ 5.446811e-001,
1794
+ 1.032493e-001,
1795
+ 4.010235e+000,
1796
+ 1.369802e+000,
1797
+ 1.010482e-001,
1798
+ -4.013305e-001,
1799
+ -2.674579e+000,
1800
+ 9.779409e+000,
1801
+ 1.782506e-001,
1802
+ 7.053045e-001,
1803
+ 4.200002e-001,
1804
+ -2.400671e+000,
1805
+ 1.953165e-001,
1806
+ -1.243526e+000,
1807
+ -3.391255e-001,
1808
+ 8.848882e-001,
1809
+ -9.789025e+000,
1810
+ -3.997324e-001,
1811
+ -9.546227e-001,
1812
+ -1.044017e-001,
1813
+ 6.010593e-001,
1814
+ 8.714462e-001,
1815
+ -1.014633e+000,
1816
+ -1.730009e-001,
1817
+ -7.738934e-002,
1818
+ 1.390903e+001,
1819
+ -4.847307e+000,
1820
+ 1.076059e+000,
1821
+ 5.685743e-001,
1822
+ 1.572992e+000,
1823
+ 6.561432e-001,
1824
+ // albedo 1, turbidity 1
1825
+ -1.122998e+000,
1826
+ -1.881183e-001,
1827
+ -1.030709e+001,
1828
+ 1.158932e+001,
1829
+ -4.079495e-002,
1830
+ 9.603774e-001,
1831
+ 3.079436e-002,
1832
+ 4.009235e+000,
1833
+ 5.060745e-001,
1834
+ -1.134790e+000,
1835
+ -1.539688e-001,
1836
+ 5.478405e+000,
1837
+ -4.217270e+000,
1838
+ -1.043858e-001,
1839
+ 7.165008e-001,
1840
+ 1.524765e-002,
1841
+ 6.473623e+000,
1842
+ 4.207882e-001,
1843
+ -1.134957e+000,
1844
+ -3.513318e-001,
1845
+ 7.393837e-001,
1846
+ 1.354415e+000,
1847
+ -4.764078e-001,
1848
+ 1.690441e+000,
1849
+ -5.492640e-002,
1850
+ -5.563523e+000,
1851
+ 1.145743e+000,
1852
+ -1.058344e+000,
1853
+ -5.758503e-002,
1854
+ 1.168230e+000,
1855
+ 3.269824e-001,
1856
+ 1.795193e-001,
1857
+ 7.849011e-001,
1858
+ 7.441853e-002,
1859
+ 6.904804e+000,
1860
+ 2.818790e-001,
1861
+ -1.075194e+000,
1862
+ -2.355813e-001,
1863
+ 2.463685e+000,
1864
+ -1.536505e+000,
1865
+ -7.505771e+000,
1866
+ 9.619712e-001,
1867
+ -6.465851e-002,
1868
+ -1.355492e+000,
1869
+ 8.489847e-001,
1870
+ -1.079030e+000,
1871
+ -1.465328e-001,
1872
+ 1.773838e+000,
1873
+ 2.310131e+000,
1874
+ -3.136065e+000,
1875
+ 3.507952e-001,
1876
+ 4.435014e-002,
1877
+ 2.819225e+000,
1878
+ 5.689008e-001,
1879
+ // albedo 1, turbidity 2
1880
+ -1.125833e+000,
1881
+ -1.870849e-001,
1882
+ -9.555833e+000,
1883
+ 1.059713e+001,
1884
+ -4.225402e-002,
1885
+ 9.164663e-001,
1886
+ 4.338796e-002,
1887
+ 4.400980e+000,
1888
+ 6.056119e-001,
1889
+ -1.127440e+000,
1890
+ -1.551891e-001,
1891
+ 4.755621e+000,
1892
+ -4.408806e+000,
1893
+ -7.851763e-002,
1894
+ 2.268284e-001,
1895
+ 1.460070e-001,
1896
+ 7.048003e+000,
1897
+ 3.525997e-001,
1898
+ -1.143788e+000,
1899
+ -3.170178e-001,
1900
+ 5.480669e-001,
1901
+ 2.041830e+000,
1902
+ -4.532139e-001,
1903
+ 2.302233e+000,
1904
+ -1.887419e-001,
1905
+ -4.489221e+000,
1906
+ 1.250967e+000,
1907
+ -1.032849e+000,
1908
+ 7.376031e-003,
1909
+ 5.666073e-001,
1910
+ -2.312203e-001,
1911
+ 4.862894e-001,
1912
+ -1.748294e-001,
1913
+ 3.572870e-001,
1914
+ 8.380522e+000,
1915
+ 1.302333e-001,
1916
+ -1.093728e+000,
1917
+ -2.786977e-001,
1918
+ 2.641272e+000,
1919
+ -1.507494e+000,
1920
+ -8.731243e+000,
1921
+ 1.684055e+000,
1922
+ -2.023377e-001,
1923
+ -2.176398e+000,
1924
+ 1.013249e+000,
1925
+ -1.076578e+000,
1926
+ -1.456205e-001,
1927
+ 1.693935e+000,
1928
+ 2.945003e+000,
1929
+ -2.822673e+000,
1930
+ -2.520033e-001,
1931
+ 1.517034e-001,
1932
+ 2.649109e+000,
1933
+ 5.179094e-001,
1934
+ // albedo 1, turbidity 3
1935
+ -1.146417e+000,
1936
+ -2.119353e-001,
1937
+ -7.187525e+000,
1938
+ 8.058599e+000,
1939
+ -5.256438e-002,
1940
+ 8.375733e-001,
1941
+ 3.887093e-002,
1942
+ 4.222111e+000,
1943
+ 6.695347e-001,
1944
+ -1.173674e+000,
1945
+ -2.067025e-001,
1946
+ 2.899359e+000,
1947
+ -2.804918e+000,
1948
+ -8.473899e-002,
1949
+ 3.944225e-003,
1950
+ 1.340641e-001,
1951
+ 6.160887e+000,
1952
+ 4.527141e-001,
1953
+ -1.090098e+000,
1954
+ -2.599633e-001,
1955
+ 9.180856e-001,
1956
+ 1.092710e+000,
1957
+ -4.215019e-001,
1958
+ 2.427660e+000,
1959
+ -9.277667e-002,
1960
+ -2.123523e+000,
1961
+ 1.058159e+000,
1962
+ -1.084460e+000,
1963
+ 8.056181e-003,
1964
+ -2.453510e-001,
1965
+ 6.619567e-001,
1966
+ 4.668118e-001,
1967
+ -9.526719e-001,
1968
+ 4.648454e-001,
1969
+ 8.001572e+000,
1970
+ 3.054194e-001,
1971
+ -1.053728e+000,
1972
+ -2.765784e-001,
1973
+ 2.792388e+000,
1974
+ -3.489517e+000,
1975
+ -8.150535e+000,
1976
+ 2.195757e+000,
1977
+ -2.017234e-001,
1978
+ -2.128017e+000,
1979
+ 9.326589e-001,
1980
+ -1.099348e+000,
1981
+ -1.593939e-001,
1982
+ 1.568292e+000,
1983
+ 7.247853e+000,
1984
+ -2.933000e+000,
1985
+ -5.890481e-001,
1986
+ 1.724440e-001,
1987
+ 2.433484e+000,
1988
+ 5.736558e-001,
1989
+ // albedo 1, turbidity 4
1990
+ -1.185983e+000,
1991
+ -2.581184e-001,
1992
+ -7.761056e+000,
1993
+ 8.317053e+000,
1994
+ -3.351773e-002,
1995
+ 6.676667e-001,
1996
+ 5.941733e-002,
1997
+ 3.820727e+000,
1998
+ 6.324032e-001,
1999
+ -1.268591e+000,
2000
+ -3.398067e-001,
2001
+ 2.348503e+000,
2002
+ -2.023779e+000,
2003
+ -5.368458e-002,
2004
+ 1.083282e-001,
2005
+ 8.402858e-002,
2006
+ 3.910254e+000,
2007
+ 5.577481e-001,
2008
+ -1.071353e+000,
2009
+ -1.992459e-001,
2010
+ 7.878387e-001,
2011
+ 1.974702e-001,
2012
+ -3.033058e-001,
2013
+ 2.335298e+000,
2014
+ -8.205259e-002,
2015
+ 7.954454e-001,
2016
+ 9.972312e-001,
2017
+ -1.089513e+000,
2018
+ -3.104364e-002,
2019
+ -5.995746e-001,
2020
+ 2.330281e+000,
2021
+ 6.581939e-001,
2022
+ -1.821467e+000,
2023
+ 6.679973e-001,
2024
+ 5.090195e+000,
2025
+ 3.125161e-001,
2026
+ -1.040214e+000,
2027
+ -2.570934e-001,
2028
+ 2.660489e+000,
2029
+ -6.506045e+000,
2030
+ -7.053586e+000,
2031
+ 2.763153e+000,
2032
+ -2.433632e-001,
2033
+ -7.648176e-001,
2034
+ 9.452937e-001,
2035
+ -1.116052e+000,
2036
+ -1.831993e-001,
2037
+ 1.457694e+000,
2038
+ 1.163608e+001,
2039
+ -3.216426e+000,
2040
+ -1.045594e+000,
2041
+ 2.285002e-001,
2042
+ 1.817407e+000,
2043
+ 5.810396e-001,
2044
+ // albedo 1, turbidity 5
2045
+ -1.230134e+000,
2046
+ -3.136264e-001,
2047
+ -8.909301e+000,
2048
+ 9.145006e+000,
2049
+ -1.055387e-002,
2050
+ 4.467317e-001,
2051
+ 1.016826e-001,
2052
+ 3.342964e+000,
2053
+ 5.633840e-001,
2054
+ -1.442907e+000,
2055
+ -5.593147e-001,
2056
+ 2.156447e+000,
2057
+ -1.241657e+000,
2058
+ -3.512130e-002,
2059
+ 3.050274e-001,
2060
+ 1.797175e-002,
2061
+ 1.742358e+000,
2062
+ 5.977153e-001,
2063
+ -1.027627e+000,
2064
+ -6.481539e-002,
2065
+ 4.351975e-001,
2066
+ -1.051677e+000,
2067
+ -2.030672e-001,
2068
+ 1.942684e+000,
2069
+ -3.615993e-002,
2070
+ 4.050266e+000,
2071
+ 9.801624e-001,
2072
+ -1.082110e+000,
2073
+ -1.578209e-001,
2074
+ -3.397511e-001,
2075
+ 4.163851e+000,
2076
+ 6.650368e-001,
2077
+ -1.841730e+000,
2078
+ 7.062544e-001,
2079
+ 6.789881e-001,
2080
+ 3.172623e-001,
2081
+ -1.047447e+000,
2082
+ -1.977560e-001,
2083
+ 2.183364e+000,
2084
+ -8.805249e+000,
2085
+ -5.483962e+000,
2086
+ 2.551309e+000,
2087
+ -1.779640e-001,
2088
+ 1.519501e+000,
2089
+ 9.212536e-001,
2090
+ -1.111853e+000,
2091
+ -1.935736e-001,
2092
+ 1.394408e+000,
2093
+ 1.392405e+001,
2094
+ -3.465430e+000,
2095
+ -1.068432e+000,
2096
+ 2.388671e-001,
2097
+ 1.455336e+000,
2098
+ 6.233425e-001,
2099
+ // albedo 1, turbidity 6
2100
+ -1.262238e+000,
2101
+ -3.546341e-001,
2102
+ -1.008703e+001,
2103
+ 1.020084e+001,
2104
+ -1.852187e-003,
2105
+ 3.537580e-001,
2106
+ 1.239199e-001,
2107
+ 3.056093e+000,
2108
+ 5.132052e-001,
2109
+ -1.613810e+000,
2110
+ -7.355585e-001,
2111
+ 2.760123e+000,
2112
+ -1.685253e+000,
2113
+ -2.517552e-002,
2114
+ 2.914258e-001,
2115
+ 4.743448e-003,
2116
+ 8.689596e-001,
2117
+ 5.674192e-001,
2118
+ -9.462336e-001,
2119
+ 2.950767e-002,
2120
+ -2.613816e-001,
2121
+ -7.398653e-001,
2122
+ -1.315558e-001,
2123
+ 1.901042e+000,
2124
+ -6.447844e-002,
2125
+ 4.969341e+000,
2126
+ 1.027342e+000,
2127
+ -1.111481e+000,
2128
+ -2.194054e-001,
2129
+ -9.004538e-002,
2130
+ 3.983442e+000,
2131
+ 4.871278e-001,
2132
+ -1.965315e+000,
2133
+ 7.956121e-001,
2134
+ -2.363225e-001,
2135
+ 2.718037e-001,
2136
+ -1.036397e+000,
2137
+ -1.827106e-001,
2138
+ 1.964747e+000,
2139
+ -8.870759e+000,
2140
+ -4.208011e+000,
2141
+ 2.461215e+000,
2142
+ -2.158905e-001,
2143
+ 1.561676e+000,
2144
+ 9.436866e-001,
2145
+ -1.113769e+000,
2146
+ -1.947819e-001,
2147
+ 1.300720e+000,
2148
+ 1.516476e+001,
2149
+ -4.088732e+000,
2150
+ -1.069384e+000,
2151
+ 2.836434e-001,
2152
+ 1.671451e+000,
2153
+ 6.229612e-001,
2154
+ // albedo 1, turbidity 7
2155
+ -1.328069e+000,
2156
+ -4.244047e-001,
2157
+ -8.417040e+000,
2158
+ 8.552244e+000,
2159
+ -6.813504e-003,
2160
+ 4.127422e-001,
2161
+ 9.619897e-002,
2162
+ 2.854227e+000,
2163
+ 5.059880e-001,
2164
+ -1.927552e+000,
2165
+ -1.025290e+000,
2166
+ 9.529576e-001,
2167
+ 4.255950e-001,
2168
+ -3.738779e-002,
2169
+ 2.584586e-001,
2170
+ 4.911004e-002,
2171
+ -2.640913e-001,
2172
+ 4.138626e-001,
2173
+ -8.488094e-001,
2174
+ 1.435988e-001,
2175
+ 6.356807e-001,
2176
+ -2.895732e+000,
2177
+ -8.473961e-002,
2178
+ 1.701305e+000,
2179
+ -1.323908e-001,
2180
+ 6.499338e+000,
2181
+ 1.210928e+000,
2182
+ -1.128313e+000,
2183
+ -3.397048e-001,
2184
+ -4.043140e-001,
2185
+ 6.265097e+000,
2186
+ 5.482395e-001,
2187
+ -2.057614e+000,
2188
+ 8.884087e-001,
2189
+ -2.943879e+000,
2190
+ 9.760301e-002,
2191
+ -1.039764e+000,
2192
+ -1.494772e-001,
2193
+ 1.781915e+000,
2194
+ -1.153012e+001,
2195
+ -3.379232e+000,
2196
+ 2.517231e+000,
2197
+ -2.764393e-001,
2198
+ 2.588849e+000,
2199
+ 1.052120e+000,
2200
+ -1.108447e+000,
2201
+ -2.012251e-001,
2202
+ 1.198640e+000,
2203
+ 1.925331e+001,
2204
+ -4.423892e+000,
2205
+ -1.257122e+000,
2206
+ 3.395690e-001,
2207
+ 1.481220e+000,
2208
+ 5.880175e-001,
2209
+ // albedo 1, turbidity 8
2210
+ -1.374185e+000,
2211
+ -4.967434e-001,
2212
+ -7.401318e+000,
2213
+ 7.724021e+000,
2214
+ -2.345723e-002,
2215
+ 5.979653e-001,
2216
+ 2.436346e-002,
2217
+ 2.658970e+000,
2218
+ 6.014891e-001,
2219
+ -2.310933e+000,
2220
+ -1.290290e+000,
2221
+ -1.301909e+000,
2222
+ 2.557806e+000,
2223
+ -3.744449e-002,
2224
+ 8.982861e-002,
2225
+ 1.090613e-001,
2226
+ -4.398363e-001,
2227
+ 1.184329e-001,
2228
+ -1.124730e+000,
2229
+ -9.921830e-002,
2230
+ 1.366902e+000,
2231
+ -4.172489e+000,
2232
+ -5.078016e-002,
2233
+ 1.393597e+000,
2234
+ -9.323843e-002,
2235
+ 6.452721e+000,
2236
+ 1.435913e+000,
2237
+ -8.468477e-001,
2238
+ -2.744819e-001,
2239
+ -4.347200e-001,
2240
+ 6.713362e+000,
2241
+ 6.127133e-001,
2242
+ -1.685634e+000,
2243
+ 7.360941e-001,
2244
+ -4.535502e+000,
2245
+ -2.920866e-002,
2246
+ -1.165242e+000,
2247
+ -2.008697e-001,
2248
+ 1.438778e+000,
2249
+ -1.008936e+001,
2250
+ -2.214771e+000,
2251
+ 2.102909e+000,
2252
+ -1.763085e-001,
2253
+ 2.859075e+000,
2254
+ 1.093470e+000,
2255
+ -1.074614e+000,
2256
+ -2.066374e-001,
2257
+ 1.131891e+000,
2258
+ 1.630063e+001,
2259
+ -4.801441e+000,
2260
+ -1.112590e+000,
2261
+ 3.595785e-001,
2262
+ 1.122227e+000,
2263
+ 5.794610e-001,
2264
+ // albedo 1, turbidity 9
2265
+ -1.521515e+000,
2266
+ -6.835604e-001,
2267
+ -5.571044e+000,
2268
+ 6.028774e+000,
2269
+ -4.253715e-002,
2270
+ 6.875746e-001,
2271
+ -5.279456e-006,
2272
+ 2.180150e+000,
2273
+ 8.487705e-001,
2274
+ -2.240415e+000,
2275
+ -1.171166e+000,
2276
+ -7.182771e+000,
2277
+ 8.417068e+000,
2278
+ -1.932866e-002,
2279
+ 1.101887e-001,
2280
+ -1.098862e-002,
2281
+ 6.242195e-001,
2282
+ -2.393875e-001,
2283
+ -2.712354e+000,
2284
+ -1.198830e+000,
2285
+ 3.180200e+000,
2286
+ -6.768130e+000,
2287
+ -2.563386e-003,
2288
+ 7.984607e-001,
2289
+ 2.764376e-001,
2290
+ 4.695358e+000,
2291
+ 1.557045e+000,
2292
+ -3.655172e-002,
2293
+ -2.142321e-002,
2294
+ -9.138120e-001,
2295
+ 7.932786e+000,
2296
+ 3.516542e-001,
2297
+ -7.994343e-001,
2298
+ 1.786761e-001,
2299
+ -4.208399e+000,
2300
+ 1.820576e-002,
2301
+ -1.368610e+000,
2302
+ -2.656212e-001,
2303
+ 1.249397e+000,
2304
+ -8.317818e+000,
2305
+ -8.962772e-001,
2306
+ 1.423249e+000,
2307
+ 1.478381e-001,
2308
+ 2.191660e+000,
2309
+ 1.007748e+000,
2310
+ -1.041753e+000,
2311
+ -2.453366e-001,
2312
+ 1.061102e+000,
2313
+ 1.130172e+001,
2314
+ -4.739312e+000,
2315
+ -9.223334e-001,
2316
+ 2.982776e-001,
2317
+ 6.162931e-001,
2318
+ 6.080302e-001,
2319
+ // albedo 1, turbidity 10
2320
+ -1.989159e+000,
2321
+ -1.095160e+000,
2322
+ -2.915550e+000,
2323
+ 3.275339e+000,
2324
+ -5.735765e-002,
2325
+ 5.742174e-001,
2326
+ -7.683288e-006,
2327
+ 1.763400e+000,
2328
+ 9.001342e-001,
2329
+ -2.070020e+000,
2330
+ -1.086338e+000,
2331
+ -1.095898e+001,
2332
+ 1.206960e+001,
2333
+ 3.780123e-002,
2334
+ -1.774699e-002,
2335
+ -5.881348e-004,
2336
+ 1.333819e+000,
2337
+ -2.605423e-001,
2338
+ -5.249653e+000,
2339
+ -2.383040e+000,
2340
+ 6.160406e+000,
2341
+ -9.097138e+000,
2342
+ -1.955319e-001,
2343
+ 1.651785e+000,
2344
+ 6.016463e-004,
2345
+ 3.021824e+000,
2346
+ 1.493574e+000,
2347
+ 4.685432e-001,
2348
+ -2.358662e-001,
2349
+ -2.666433e+000,
2350
+ 9.685763e+000,
2351
+ 5.804928e-001,
2352
+ -1.521875e+000,
2353
+ 5.668989e-001,
2354
+ -1.548136e+000,
2355
+ 1.688642e-002,
2356
+ -1.296891e+000,
2357
+ -3.449031e-001,
2358
+ 1.928548e+000,
2359
+ -1.167560e+001,
2360
+ -1.627615e+000,
2361
+ 1.355603e+000,
2362
+ -1.929074e-001,
2363
+ -6.568952e-001,
2364
+ 1.009774e+000,
2365
+ -1.067288e+000,
2366
+ -2.410392e-001,
2367
+ 7.147961e-001,
2368
+ 1.783840e+001,
2369
+ -4.374399e+000,
2370
+ -6.588777e-001,
2371
+ 3.329831e-001,
2372
+ 1.012066e+000,
2373
+ 6.118645e-001,
2374
+ ]);
2375
+
2376
+ const kHosekRadY = new Float32Array([
2377
+ // albedo 0, turbidity 1
2378
+ 1.632341e+000,
2379
+ 1.395230e+000,
2380
+ 1.375634e+000,
2381
+ 1.238193e+001,
2382
+ 5.921102e+000,
2383
+ 7.766508e+000,
2384
+ // albedo 0, turbidity 2
2385
+ 1.597115e+000,
2386
+ 1.554617e+000,
2387
+ 3.932382e-001,
2388
+ 1.505284e+001,
2389
+ 5.725234e+000,
2390
+ 8.158155e+000,
2391
+ // albedo 0, turbidity 3
2392
+ 1.522034e+000,
2393
+ 1.844545e+000,
2394
+ -1.322862e+000,
2395
+ 1.918382e+001,
2396
+ 5.440769e+000,
2397
+ 8.837119e+000,
2398
+ // albedo 0, turbidity 4
2399
+ 1.403048e+000,
2400
+ 2.290852e+000,
2401
+ -4.013792e+000,
2402
+ 2.485100e+001,
2403
+ 5.521888e+000,
2404
+ 9.845547e+000,
2405
+ // albedo 0, turbidity 5
2406
+ 1.286364e+000,
2407
+ 2.774498e+000,
2408
+ -6.648221e+000,
2409
+ 2.964151e+001,
2410
+ 5.923777e+000,
2411
+ 1.097075e+001,
2412
+ // albedo 0, turbidity 6
2413
+ 1.213544e+000,
2414
+ 3.040195e+000,
2415
+ -8.092676e+000,
2416
+ 3.186082e+001,
2417
+ 6.789782e+000,
2418
+ 1.158899e+001,
2419
+ // albedo 0, turbidity 7
2420
+ 1.122622e+000,
2421
+ 3.347465e+000,
2422
+ -9.649016e+000,
2423
+ 3.343824e+001,
2424
+ 9.347715e+000,
2425
+ 1.231374e+001,
2426
+ // albedo 0, turbidity 8
2427
+ 1.007356e+000,
2428
+ 3.543858e+000,
2429
+ -1.053520e+001,
2430
+ 3.239842e+001,
2431
+ 1.483962e+001,
2432
+ 1.331718e+001,
2433
+ // albedo 0, turbidity 9
2434
+ 8.956642e-001,
2435
+ 3.278700e+000,
2436
+ -9.254933e+000,
2437
+ 2.557923e+001,
2438
+ 2.489677e+001,
2439
+ 1.476166e+001,
2440
+ // albedo 0, turbidity 10
2441
+ 7.985143e-001,
2442
+ 2.340404e+000,
2443
+ -4.928274e+000,
2444
+ 1.141787e+001,
2445
+ 3.961501e+001,
2446
+ 1.682448e+001,
2447
+ // albedo 1, turbidity 1
2448
+ 1.745162e+000,
2449
+ 1.639467e+000,
2450
+ 1.342721e+000,
2451
+ 1.166033e+001,
2452
+ 1.490124e+001,
2453
+ 1.774031e+001,
2454
+ // albedo 1, turbidity 2
2455
+ 1.708439e+000,
2456
+ 1.819144e+000,
2457
+ 2.834399e-001,
2458
+ 1.448066e+001,
2459
+ 1.459214e+001,
2460
+ 1.858679e+001,
2461
+ // albedo 1, turbidity 3
2462
+ 1.631720e+000,
2463
+ 2.094799e+000,
2464
+ -1.378825e+000,
2465
+ 1.843198e+001,
2466
+ 1.463173e+001,
2467
+ 1.962881e+001,
2468
+ // albedo 1, turbidity 4
2469
+ 1.516536e+000,
2470
+ 2.438729e+000,
2471
+ -3.624121e+000,
2472
+ 2.298621e+001,
2473
+ 1.599782e+001,
2474
+ 2.070027e+001,
2475
+ // albedo 1, turbidity 5
2476
+ 1.405863e+000,
2477
+ 2.785191e+000,
2478
+ -5.705236e+000,
2479
+ 2.645121e+001,
2480
+ 1.768330e+001,
2481
+ 2.191903e+001,
2482
+ // albedo 1, turbidity 6
2483
+ 1.344052e+000,
2484
+ 2.951807e+000,
2485
+ -6.683851e+000,
2486
+ 2.744271e+001,
2487
+ 1.985706e+001,
2488
+ 2.229452e+001,
2489
+ // albedo 1, turbidity 7
2490
+ 1.245827e+000,
2491
+ 3.182923e+000,
2492
+ -7.822960e+000,
2493
+ 2.791395e+001,
2494
+ 2.327254e+001,
2495
+ 2.315910e+001,
2496
+ // albedo 1, turbidity 8
2497
+ 1.132305e+000,
2498
+ 3.202593e+000,
2499
+ -8.008429e+000,
2500
+ 2.521093e+001,
2501
+ 3.000014e+001,
2502
+ 2.405306e+001,
2503
+ // albedo 1, turbidity 9
2504
+ 1.020330e+000,
2505
+ 2.820556e+000,
2506
+ -6.238704e+000,
2507
+ 1.709276e+001,
2508
+ 4.077916e+001,
2509
+ 2.509949e+001,
2510
+ // albedo 1, turbidity 10
2511
+ 9.031570e-001,
2512
+ 1.863917e+000,
2513
+ -1.955738e+000,
2514
+ 3.032665e+000,
2515
+ 5.434290e+001,
2516
+ 2.641780e+001,
2517
+ ]);
2518
+
2519
+ const kHosekCoeffsZ = new Float32Array([
2520
+ // albedo 0, turbidity 1
2521
+ -1.310023e+000,
2522
+ -4.407658e-001,
2523
+ -3.640340e+001,
2524
+ 3.683292e+001,
2525
+ -8.124762e-003,
2526
+ 5.297961e-001,
2527
+ 1.188633e-002,
2528
+ 3.138320e+000,
2529
+ 5.134778e-001,
2530
+ -1.424100e+000,
2531
+ -5.501606e-001,
2532
+ -1.753510e+001,
2533
+ 1.822769e+001,
2534
+ -1.539272e-002,
2535
+ 6.366826e-001,
2536
+ 2.661996e-003,
2537
+ 2.659915e+000,
2538
+ 4.071138e-001,
2539
+ -1.103436e+000,
2540
+ -1.884105e-001,
2541
+ 6.425322e+000,
2542
+ -6.910579e+000,
2543
+ -2.019861e-002,
2544
+ 3.553271e-001,
2545
+ -1.589061e-002,
2546
+ 5.345985e+000,
2547
+ 8.790218e-001,
2548
+ -1.186200e+000,
2549
+ -4.307514e-001,
2550
+ -3.957947e+000,
2551
+ 5.979352e+000,
2552
+ -5.348869e-002,
2553
+ 1.736117e+000,
2554
+ 3.491346e-002,
2555
+ -2.692261e+000,
2556
+ 5.610506e-001,
2557
+ -1.006038e+000,
2558
+ -1.305995e-001,
2559
+ 4.473513e+000,
2560
+ -3.806719e+000,
2561
+ 1.419407e-001,
2562
+ -2.148238e-002,
2563
+ -5.081185e-002,
2564
+ 3.735362e+000,
2565
+ 5.358280e-001,
2566
+ -1.078507e+000,
2567
+ -1.633754e-001,
2568
+ -3.812368e+000,
2569
+ 4.381700e+000,
2570
+ 2.988122e-002,
2571
+ 1.754224e+000,
2572
+ 1.472376e-001,
2573
+ 3.722798e+000,
2574
+ 4.999157e-001,
2575
+ // albedo 0, turbidity 2
2576
+ -1.333582e+000,
2577
+ -4.649908e-001,
2578
+ -3.359528e+001,
2579
+ 3.404375e+001,
2580
+ -9.384242e-003,
2581
+ 5.587511e-001,
2582
+ 5.726310e-003,
2583
+ 3.073145e+000,
2584
+ 5.425529e-001,
2585
+ -1.562624e+000,
2586
+ -7.107068e-001,
2587
+ -1.478170e+001,
2588
+ 1.559839e+001,
2589
+ -1.462375e-002,
2590
+ 5.050133e-001,
2591
+ 2.516017e-002,
2592
+ 1.604696e+000,
2593
+ 2.902403e-001,
2594
+ -8.930158e-001,
2595
+ 4.068077e-002,
2596
+ 1.373481e+000,
2597
+ -2.342752e+000,
2598
+ -2.098058e-002,
2599
+ 6.248686e-001,
2600
+ -5.258363e-002,
2601
+ 7.058214e+000,
2602
+ 1.150373e+000,
2603
+ -1.262823e+000,
2604
+ -4.818353e-001,
2605
+ 8.892610e-004,
2606
+ 1.923120e+000,
2607
+ -4.979718e-002,
2608
+ 1.040693e+000,
2609
+ 1.558103e-001,
2610
+ -2.852480e+000,
2611
+ 2.420691e-001,
2612
+ -9.968383e-001,
2613
+ -1.200648e-001,
2614
+ 1.324342e+000,
2615
+ -9.430889e-001,
2616
+ 1.931098e-001,
2617
+ 4.436916e-001,
2618
+ -7.320456e-002,
2619
+ 4.215931e+000,
2620
+ 7.898019e-001,
2621
+ -1.078185e+000,
2622
+ -1.718192e-001,
2623
+ -1.720191e+000,
2624
+ 2.358918e+000,
2625
+ 2.765637e-002,
2626
+ 1.260245e+000,
2627
+ 2.021941e-001,
2628
+ 3.395483e+000,
2629
+ 5.173628e-001,
2630
+ // albedo 0, turbidity 3
2631
+ -1.353023e+000,
2632
+ -4.813523e-001,
2633
+ -3.104920e+001,
2634
+ 3.140156e+001,
2635
+ -9.510741e-003,
2636
+ 5.542030e-001,
2637
+ 8.135471e-003,
2638
+ 3.136646e+000,
2639
+ 5.215989e-001,
2640
+ -1.624704e+000,
2641
+ -7.990201e-001,
2642
+ -2.167125e+001,
2643
+ 2.246341e+001,
2644
+ -1.163533e-002,
2645
+ 5.415746e-001,
2646
+ 2.618378e-002,
2647
+ 1.139214e+000,
2648
+ 3.444357e-001,
2649
+ -7.983610e-001,
2650
+ 1.417476e-001,
2651
+ 9.914841e+000,
2652
+ -1.081503e+001,
2653
+ -1.218845e-002,
2654
+ 3.411392e-001,
2655
+ -6.137698e-002,
2656
+ 7.445848e+000,
2657
+ 1.180080e+000,
2658
+ -1.266679e+000,
2659
+ -4.288977e-001,
2660
+ -5.818701e+000,
2661
+ 6.986437e+000,
2662
+ -8.180711e-002,
2663
+ 1.397403e+000,
2664
+ 2.016916e-001,
2665
+ -1.275731e+000,
2666
+ 2.592773e-001,
2667
+ -1.009707e+000,
2668
+ -1.537754e-001,
2669
+ 3.496378e+000,
2670
+ -3.013726e+000,
2671
+ 2.421150e-001,
2672
+ -2.831925e-001,
2673
+ 3.003395e-002,
2674
+ 3.702862e+000,
2675
+ 7.746320e-001,
2676
+ -1.075646e+000,
2677
+ -1.768747e-001,
2678
+ -1.347762e+000,
2679
+ 1.989004e+000,
2680
+ 1.375836e-002,
2681
+ 1.764810e+000,
2682
+ 1.330018e-001,
2683
+ 3.230864e+000,
2684
+ 6.626210e-001,
2685
+ // albedo 0, turbidity 4
2686
+ -1.375269e+000,
2687
+ -5.103569e-001,
2688
+ -3.442661e+001,
2689
+ 3.478703e+001,
2690
+ -8.460009e-003,
2691
+ 5.408643e-001,
2692
+ 4.813323e-003,
2693
+ 3.016078e+000,
2694
+ 5.062069e-001,
2695
+ -1.821679e+000,
2696
+ -9.766461e-001,
2697
+ -1.926488e+001,
2698
+ 1.997912e+001,
2699
+ -9.822567e-003,
2700
+ 3.649556e-001,
2701
+ 4.316092e-002,
2702
+ 8.930190e-001,
2703
+ 4.166527e-001,
2704
+ -6.633542e-001,
2705
+ 1.997841e-001,
2706
+ 2.395592e+000,
2707
+ -3.117175e+000,
2708
+ -1.080884e-002,
2709
+ 8.983814e-001,
2710
+ -1.375825e-001,
2711
+ 6.673463e+000,
2712
+ 1.115663e+000,
2713
+ -1.303240e+000,
2714
+ -3.612712e-001,
2715
+ 8.292959e-002,
2716
+ 3.381364e-001,
2717
+ -6.078648e-002,
2718
+ 3.229247e-001,
2719
+ 3.680987e-001,
2720
+ 7.046755e-001,
2721
+ 3.144924e-001,
2722
+ -9.952598e-001,
2723
+ -2.039076e-001,
2724
+ 4.026851e-001,
2725
+ 2.686684e-001,
2726
+ 1.640712e-001,
2727
+ 5.186341e-001,
2728
+ -1.205520e-002,
2729
+ 2.659613e+000,
2730
+ 8.030394e-001,
2731
+ -1.098579e+000,
2732
+ -2.151992e-001,
2733
+ 6.558198e-001,
2734
+ -7.436900e-004,
2735
+ -1.421817e-003,
2736
+ 1.073701e+000,
2737
+ 1.886875e-001,
2738
+ 2.536857e+000,
2739
+ 6.673923e-001,
2740
+ // albedo 0, turbidity 5
2741
+ -1.457986e+000,
2742
+ -5.906842e-001,
2743
+ -3.812464e+001,
2744
+ 3.838539e+001,
2745
+ -6.024357e-003,
2746
+ 4.741484e-001,
2747
+ 1.209223e-002,
2748
+ 2.818432e+000,
2749
+ 5.012433e-001,
2750
+ -1.835728e+000,
2751
+ -1.003405e+000,
2752
+ -6.848129e+000,
2753
+ 7.601943e+000,
2754
+ -1.277375e-002,
2755
+ 4.785598e-001,
2756
+ 3.366853e-002,
2757
+ 1.097701e+000,
2758
+ 4.636635e-001,
2759
+ -8.491348e-001,
2760
+ 9.466365e-003,
2761
+ -2.685226e+000,
2762
+ 2.004060e+000,
2763
+ -1.168708e-002,
2764
+ 6.752316e-001,
2765
+ -1.543371e-001,
2766
+ 5.674759e+000,
2767
+ 1.039534e+000,
2768
+ -1.083379e+000,
2769
+ -1.506790e-001,
2770
+ 7.328236e-001,
2771
+ -5.095568e-001,
2772
+ -8.609153e-002,
2773
+ 4.448820e-001,
2774
+ 4.174662e-001,
2775
+ 1.481556e+000,
2776
+ 3.942551e-001,
2777
+ -1.117089e+000,
2778
+ -3.337605e-001,
2779
+ 2.502281e-001,
2780
+ 4.036323e-001,
2781
+ 2.673899e-001,
2782
+ 2.829817e-001,
2783
+ 2.242450e-002,
2784
+ 2.043207e+000,
2785
+ 7.706902e-001,
2786
+ -1.071648e+000,
2787
+ -2.126200e-001,
2788
+ 6.069466e-001,
2789
+ -1.456290e-003,
2790
+ -5.515960e-001,
2791
+ 1.046755e+000,
2792
+ 1.985021e-001,
2793
+ 2.290245e+000,
2794
+ 6.876058e-001,
2795
+ // albedo 0, turbidity 6
2796
+ -1.483903e+000,
2797
+ -6.309647e-001,
2798
+ -4.380213e+001,
2799
+ 4.410537e+001,
2800
+ -5.712161e-003,
2801
+ 5.195992e-001,
2802
+ 2.028428e-003,
2803
+ 2.687114e+000,
2804
+ 5.098321e-001,
2805
+ -2.053976e+000,
2806
+ -1.141473e+000,
2807
+ 5.109183e-001,
2808
+ 8.060391e-002,
2809
+ -1.033983e-002,
2810
+ 4.066532e-001,
2811
+ 4.869627e-002,
2812
+ 1.161722e+000,
2813
+ 4.039525e-001,
2814
+ -6.348185e-001,
2815
+ 7.651292e-002,
2816
+ -1.031327e+001,
2817
+ 1.007598e+001,
2818
+ -2.083688e-002,
2819
+ 7.359516e-001,
2820
+ -2.029459e-001,
2821
+ 5.013257e+000,
2822
+ 1.077649e+000,
2823
+ -1.228630e+000,
2824
+ -1.650496e-001,
2825
+ 4.077157e-002,
2826
+ -7.189167e-001,
2827
+ -5.092220e-002,
2828
+ 2.959814e-001,
2829
+ 5.111496e-001,
2830
+ 2.540433e+000,
2831
+ 3.615330e-001,
2832
+ -1.041883e+000,
2833
+ -3.278413e-001,
2834
+ -6.691911e-002,
2835
+ 1.307364e+000,
2836
+ 2.166663e-001,
2837
+ 3.000595e-001,
2838
+ -3.157136e-003,
2839
+ 1.389208e+000,
2840
+ 7.999026e-001,
2841
+ -1.103556e+000,
2842
+ -2.443602e-001,
2843
+ 4.705347e-001,
2844
+ -9.296482e-004,
2845
+ -5.309920e-001,
2846
+ 9.654511e-001,
2847
+ 2.142587e-001,
2848
+ 2.244723e+000,
2849
+ 6.839976e-001,
2850
+ // albedo 0, turbidity 7
2851
+ -1.555684e+000,
2852
+ -6.962113e-001,
2853
+ -4.647983e+001,
2854
+ 4.674270e+001,
2855
+ -5.034895e-003,
2856
+ 4.755090e-001,
2857
+ -9.502561e-007,
2858
+ 2.626569e+000,
2859
+ 5.056194e-001,
2860
+ -1.998288e+000,
2861
+ -1.124720e+000,
2862
+ -1.629586e+000,
2863
+ 2.187993e+000,
2864
+ -8.284384e-003,
2865
+ 3.845258e-001,
2866
+ 5.726240e-002,
2867
+ 1.185644e+000,
2868
+ 4.255812e-001,
2869
+ -1.032570e+000,
2870
+ -2.513850e-001,
2871
+ -3.721112e+000,
2872
+ 3.506967e+000,
2873
+ -2.186561e-002,
2874
+ 9.436049e-001,
2875
+ -2.451412e-001,
2876
+ 4.725724e+000,
2877
+ 1.039256e+000,
2878
+ -8.597532e-001,
2879
+ 9.073332e-002,
2880
+ -2.553741e+000,
2881
+ 1.993237e+000,
2882
+ -4.390891e-002,
2883
+ -2.046928e-001,
2884
+ 5.515623e-001,
2885
+ 1.909127e+000,
2886
+ 3.948212e-001,
2887
+ -1.210482e+000,
2888
+ -4.477622e-001,
2889
+ -2.267805e-001,
2890
+ 1.219488e+000,
2891
+ 1.336186e-001,
2892
+ 6.866897e-001,
2893
+ 2.808997e-002,
2894
+ 1.600403e+000,
2895
+ 7.816409e-001,
2896
+ -1.078168e+000,
2897
+ -2.699261e-001,
2898
+ 2.537282e-001,
2899
+ 3.820684e-001,
2900
+ -4.425103e-001,
2901
+ 5.298235e-001,
2902
+ 2.185217e-001,
2903
+ 1.728679e+000,
2904
+ 6.882743e-001,
2905
+ // albedo 0, turbidity 8
2906
+ -1.697968e+000,
2907
+ -8.391488e-001,
2908
+ -5.790105e+001,
2909
+ 5.814120e+001,
2910
+ -3.404760e-003,
2911
+ 4.265140e-001,
2912
+ -1.796301e-006,
2913
+ 2.368442e+000,
2914
+ 5.324429e-001,
2915
+ -2.141552e+000,
2916
+ -1.172230e+000,
2917
+ 1.677872e+001,
2918
+ -1.641470e+001,
2919
+ -5.732425e-003,
2920
+ 2.002199e-001,
2921
+ 6.841834e-002,
2922
+ 1.485338e+000,
2923
+ 3.215763e-001,
2924
+ -1.442946e+000,
2925
+ -7.264245e-001,
2926
+ -9.503706e+000,
2927
+ 9.650462e+000,
2928
+ -2.120995e-002,
2929
+ 1.419263e+000,
2930
+ -2.893098e-001,
2931
+ 3.860731e+000,
2932
+ 1.120857e+000,
2933
+ -5.696752e-001,
2934
+ 3.411279e-001,
2935
+ -2.931035e-001,
2936
+ -6.512552e-001,
2937
+ -1.068437e-001,
2938
+ -1.085661e+000,
2939
+ 6.107549e-001,
2940
+ 1.459503e+000,
2941
+ 3.210336e-001,
2942
+ -1.313839e+000,
2943
+ -5.921371e-001,
2944
+ -2.332222e-001,
2945
+ 1.648196e+000,
2946
+ 2.492787e-001,
2947
+ 1.381033e+000,
2948
+ -1.993392e-002,
2949
+ 9.812560e-001,
2950
+ 8.316329e-001,
2951
+ -1.087464e+000,
2952
+ -3.195534e-001,
2953
+ 2.902095e-001,
2954
+ 3.383709e-001,
2955
+ -8.798482e-001,
2956
+ 1.494668e-002,
2957
+ 2.529703e-001,
2958
+ 1.452644e+000,
2959
+ 6.693870e-001,
2960
+ // albedo 0, turbidity 9
2961
+ -2.068582e+000,
2962
+ -1.118605e+000,
2963
+ -5.081598e+001,
2964
+ 5.097486e+001,
2965
+ -3.280669e-003,
2966
+ 4.067371e-001,
2967
+ -2.544951e-006,
2968
+ 2.179497e+000,
2969
+ 5.778017e-001,
2970
+ -1.744693e+000,
2971
+ -8.537207e-001,
2972
+ 2.234361e+001,
2973
+ -2.208318e+001,
2974
+ -5.932616e-003,
2975
+ 1.035049e-001,
2976
+ 5.742772e-002,
2977
+ 1.977880e+000,
2978
+ 2.124846e-001,
2979
+ -3.287515e+000,
2980
+ -2.140268e+000,
2981
+ -1.249566e+001,
2982
+ 1.240091e+001,
2983
+ -2.409349e-002,
2984
+ 1.397821e+000,
2985
+ -2.371627e-001,
2986
+ 2.771192e+000,
2987
+ 1.170496e+000,
2988
+ 5.502311e-001,
2989
+ 1.046630e+000,
2990
+ 2.193517e+000,
2991
+ -2.220400e+000,
2992
+ -1.064394e-001,
2993
+ -1.017926e+000,
2994
+ 4.795457e-001,
2995
+ 1.030644e+000,
2996
+ 3.177516e-001,
2997
+ -1.719734e+000,
2998
+ -9.536198e-001,
2999
+ -6.586821e-001,
3000
+ 1.386361e+000,
3001
+ -2.513065e-002,
3002
+ 1.187011e+000,
3003
+ 6.542539e-002,
3004
+ 5.296055e-001,
3005
+ 8.082660e-001,
3006
+ -1.005700e+000,
3007
+ -3.028096e-001,
3008
+ 4.470957e-002,
3009
+ 1.007760e+000,
3010
+ -8.119016e-001,
3011
+ 3.153338e-002,
3012
+ 2.311321e-001,
3013
+ 1.182208e+000,
3014
+ 6.824758e-001,
3015
+ // albedo 0, turbidity 10
3016
+ -2.728867e+000,
3017
+ -1.580388e+000,
3018
+ -3.079627e+001,
3019
+ 3.092586e+001,
3020
+ -4.197673e-003,
3021
+ 3.154759e-001,
3022
+ -3.897675e-006,
3023
+ 1.920567e+000,
3024
+ 6.664791e-001,
3025
+ -1.322495e+000,
3026
+ -7.249275e-001,
3027
+ 1.477660e+001,
3028
+ -1.468154e+001,
3029
+ -9.044857e-003,
3030
+ 5.624314e-002,
3031
+ 6.498392e-002,
3032
+ 2.047389e+000,
3033
+ 6.367540e-002,
3034
+ -6.102376e+000,
3035
+ -3.473018e+000,
3036
+ -9.926071e+000,
3037
+ 9.637797e+000,
3038
+ -1.097909e-002,
3039
+ 1.103498e+000,
3040
+ -2.424521e-001,
3041
+ 2.520748e+000,
3042
+ 1.240260e+000,
3043
+ 1.351796e+000,
3044
+ 1.018588e+000,
3045
+ 2.009081e+000,
3046
+ -1.333394e+000,
3047
+ -1.979125e-001,
3048
+ -3.318292e-001,
3049
+ 4.476624e-001,
3050
+ 9.095235e-001,
3051
+ 2.955611e-001,
3052
+ -1.774467e+000,
3053
+ -1.079880e+000,
3054
+ -8.084680e-002,
3055
+ 2.577697e-001,
3056
+ -1.149295e-001,
3057
+ 4.975303e-001,
3058
+ 2.931611e-003,
3059
+ -3.803171e-001,
3060
+ 8.002794e-001,
3061
+ -9.898401e-001,
3062
+ -2.542513e-001,
3063
+ -7.530911e-002,
3064
+ 1.870355e+000,
3065
+ -1.521918e+000,
3066
+ 2.405164e-001,
3067
+ 2.964615e-001,
3068
+ 1.334800e+000,
3069
+ 6.789053e-001,
3070
+ // albedo 1, turbidity 1
3071
+ -1.279730e+000,
3072
+ -4.290674e-001,
3073
+ -4.277972e+001,
3074
+ 4.343305e+001,
3075
+ -6.541826e-003,
3076
+ 4.945086e-001,
3077
+ 1.425338e-002,
3078
+ 2.685244e+000,
3079
+ 5.011313e-001,
3080
+ -1.449506e+000,
3081
+ -5.766374e-001,
3082
+ -1.688496e+001,
3083
+ 1.781118e+001,
3084
+ -1.121649e-002,
3085
+ 3.545020e-001,
3086
+ 2.287338e-002,
3087
+ 1.904281e+000,
3088
+ 4.936998e-001,
3089
+ -1.021980e+000,
3090
+ -1.897574e-001,
3091
+ 2.482462e+000,
3092
+ -2.941725e+000,
3093
+ -1.570448e-002,
3094
+ 7.532578e-001,
3095
+ -4.256800e-002,
3096
+ 5.239660e+000,
3097
+ 4.983116e-001,
3098
+ -1.162608e+000,
3099
+ -3.428049e-001,
3100
+ 3.974358e+000,
3101
+ -1.527935e+000,
3102
+ -3.919201e-002,
3103
+ 8.758593e-001,
3104
+ 7.291363e-002,
3105
+ -3.455257e+000,
3106
+ 8.007426e-001,
3107
+ -9.929985e-001,
3108
+ -8.712006e-002,
3109
+ -7.397313e-001,
3110
+ 1.348372e+000,
3111
+ 9.511685e-002,
3112
+ 3.233584e-001,
3113
+ -7.549148e-002,
3114
+ 5.806452e+000,
3115
+ 4.990042e-001,
3116
+ -1.084996e+000,
3117
+ -1.739767e-001,
3118
+ 1.580475e-001,
3119
+ 9.088180e-001,
3120
+ 6.871433e-002,
3121
+ 5.933079e-001,
3122
+ 1.188921e-001,
3123
+ 3.074079e+000,
3124
+ 4.999327e-001,
3125
+ // albedo 1, turbidity 2
3126
+ -1.317009e+000,
3127
+ -4.661946e-001,
3128
+ -4.255347e+001,
3129
+ 4.312782e+001,
3130
+ -5.727235e-003,
3131
+ 4.285447e-001,
3132
+ 2.189854e-002,
3133
+ 2.608310e+000,
3134
+ 5.190700e-001,
3135
+ -1.469236e+000,
3136
+ -6.282139e-001,
3137
+ -1.241404e+001,
3138
+ 1.348765e+001,
3139
+ -1.204770e-002,
3140
+ 5.070285e-001,
3141
+ -7.280216e-004,
3142
+ 1.491533e+000,
3143
+ 3.635064e-001,
3144
+ -9.713808e-001,
3145
+ -8.138038e-002,
3146
+ 3.709854e-001,
3147
+ -1.041174e+000,
3148
+ -1.814075e-002,
3149
+ 5.060860e-001,
3150
+ -2.053756e-002,
3151
+ 6.161431e+000,
3152
+ 1.093736e+000,
3153
+ -1.159057e+000,
3154
+ -3.698074e-001,
3155
+ 2.711209e+000,
3156
+ -6.006479e-001,
3157
+ -4.896926e-002,
3158
+ 9.273957e-001,
3159
+ 1.137712e-001,
3160
+ -3.496828e+000,
3161
+ 2.867109e-001,
3162
+ -1.011601e+000,
3163
+ -8.201890e-002,
3164
+ 2.105725e-001,
3165
+ 4.597520e-001,
3166
+ 1.478925e-001,
3167
+ 2.138940e-001,
3168
+ -5.660670e-002,
3169
+ 6.057755e+000,
3170
+ 7.859121e-001,
3171
+ -1.078020e+000,
3172
+ -1.811580e-001,
3173
+ 1.646622e-001,
3174
+ 8.348426e-001,
3175
+ 1.149064e-001,
3176
+ 4.985738e-001,
3177
+ 1.376605e-001,
3178
+ 2.746607e+000,
3179
+ 4.999626e-001,
3180
+ // albedo 1, turbidity 3
3181
+ -1.325672e+000,
3182
+ -4.769313e-001,
3183
+ -4.111215e+001,
3184
+ 4.168293e+001,
3185
+ -6.274997e-003,
3186
+ 4.649469e-001,
3187
+ 1.119411e-002,
3188
+ 2.631267e+000,
3189
+ 5.234546e-001,
3190
+ -1.619391e+000,
3191
+ -8.000253e-001,
3192
+ -1.534098e+001,
3193
+ 1.632706e+001,
3194
+ -1.012023e-002,
3195
+ 4.242255e-001,
3196
+ 2.931597e-002,
3197
+ 8.925807e-001,
3198
+ 3.314765e-001,
3199
+ -7.356979e-001,
3200
+ 1.368406e-001,
3201
+ 2.972579e+000,
3202
+ -3.535359e+000,
3203
+ -1.318948e-002,
3204
+ 4.607620e-001,
3205
+ -7.182778e-002,
3206
+ 6.254100e+000,
3207
+ 1.236299e+000,
3208
+ -1.316217e+000,
3209
+ -4.194427e-001,
3210
+ 3.489902e-002,
3211
+ 1.289849e+000,
3212
+ -4.755960e-002,
3213
+ 1.138222e+000,
3214
+ 1.975992e-001,
3215
+ -8.991542e-001,
3216
+ 2.290572e-001,
3217
+ -9.502188e-001,
3218
+ -1.172703e-001,
3219
+ 1.405202e+000,
3220
+ -3.061919e-001,
3221
+ 1.058772e-001,
3222
+ -3.760592e-001,
3223
+ -1.983179e-002,
3224
+ 3.562353e+000,
3225
+ 7.895959e-001,
3226
+ -1.100117e+000,
3227
+ -1.900567e-001,
3228
+ 4.925030e-001,
3229
+ 5.250225e-001,
3230
+ 1.576804e-001,
3231
+ 1.042701e+000,
3232
+ 7.330743e-002,
3233
+ 2.796064e+000,
3234
+ 6.749783e-001,
3235
+ // albedo 1, turbidity 4
3236
+ -1.354183e+000,
3237
+ -5.130625e-001,
3238
+ -4.219268e+001,
3239
+ 4.271772e+001,
3240
+ -5.365373e-003,
3241
+ 4.136743e-001,
3242
+ 1.235172e-002,
3243
+ 2.520122e+000,
3244
+ 5.187269e-001,
3245
+ -1.741434e+000,
3246
+ -9.589761e-001,
3247
+ -8.230339e+000,
3248
+ 9.296799e+000,
3249
+ -9.600162e-003,
3250
+ 4.994969e-001,
3251
+ 2.955452e-002,
3252
+ 3.667099e-001,
3253
+ 3.526999e-001,
3254
+ -6.917347e-001,
3255
+ 2.154887e-001,
3256
+ -8.760264e-001,
3257
+ 2.334121e-001,
3258
+ -1.909621e-002,
3259
+ 4.748033e-001,
3260
+ -1.138514e-001,
3261
+ 6.515360e+000,
3262
+ 1.225097e+000,
3263
+ -1.293189e+000,
3264
+ -4.218700e-001,
3265
+ 1.620952e+000,
3266
+ -7.858597e-001,
3267
+ -3.769410e-002,
3268
+ 6.636786e-001,
3269
+ 3.364945e-001,
3270
+ -5.341017e-001,
3271
+ 2.128347e-001,
3272
+ -9.735521e-001,
3273
+ -1.325495e-001,
3274
+ 1.007517e+000,
3275
+ 2.598258e-001,
3276
+ 6.762169e-002,
3277
+ 1.421018e-003,
3278
+ -6.915987e-002,
3279
+ 3.185897e+000,
3280
+ 8.641956e-001,
3281
+ -1.094800e+000,
3282
+ -1.962062e-001,
3283
+ 5.755591e-001,
3284
+ 2.906259e-001,
3285
+ 2.625748e-001,
3286
+ 7.644049e-001,
3287
+ 1.347492e-001,
3288
+ 2.677126e+000,
3289
+ 6.465460e-001,
3290
+ // albedo 1, turbidity 5
3291
+ -1.393063e+000,
3292
+ -5.578338e-001,
3293
+ -4.185249e+001,
3294
+ 4.233504e+001,
3295
+ -5.435640e-003,
3296
+ 4.743765e-001,
3297
+ 7.422477e-003,
3298
+ 2.442801e+000,
3299
+ 5.211707e-001,
3300
+ -1.939487e+000,
3301
+ -1.128509e+000,
3302
+ -8.974257e+000,
3303
+ 9.978383e+000,
3304
+ -7.965597e-003,
3305
+ 2.948830e-001,
3306
+ 4.436763e-002,
3307
+ 2.839868e-001,
3308
+ 3.440424e-001,
3309
+ -6.011562e-001,
3310
+ 2.354877e-001,
3311
+ -3.079820e+000,
3312
+ 2.585094e+000,
3313
+ -2.002701e-002,
3314
+ 7.793909e-001,
3315
+ -1.598414e-001,
3316
+ 5.834678e+000,
3317
+ 1.202856e+000,
3318
+ -1.315676e+000,
3319
+ -3.903446e-001,
3320
+ 1.701900e+000,
3321
+ -1.304609e+000,
3322
+ -1.045121e-002,
3323
+ 2.747707e-001,
3324
+ 4.143967e-001,
3325
+ 3.197102e-001,
3326
+ 2.637580e-001,
3327
+ -9.618628e-001,
3328
+ -1.625841e-001,
3329
+ 1.187138e+000,
3330
+ 1.497802e-001,
3331
+ -5.590954e-006,
3332
+ 3.178475e-002,
3333
+ -4.153145e-002,
3334
+ 2.496096e+000,
3335
+ 8.195082e-001,
3336
+ -1.111554e+000,
3337
+ -2.365546e-001,
3338
+ 7.831875e-001,
3339
+ 2.018684e-001,
3340
+ 2.074369e-001,
3341
+ 7.395978e-001,
3342
+ 1.225730e-001,
3343
+ 1.876478e+000,
3344
+ 6.821167e-001,
3345
+ // albedo 1, turbidity 6
3346
+ -1.427879e+000,
3347
+ -5.994879e-001,
3348
+ -3.531016e+001,
3349
+ 3.581581e+001,
3350
+ -6.431497e-003,
3351
+ 4.554192e-001,
3352
+ 7.348731e-004,
3353
+ 2.334619e+000,
3354
+ 5.233377e-001,
3355
+ -1.998177e+000,
3356
+ -1.206633e+000,
3357
+ -2.146510e+001,
3358
+ 2.242237e+001,
3359
+ -5.857596e-003,
3360
+ 2.755663e-001,
3361
+ 6.384795e-002,
3362
+ 1.358244e-001,
3363
+ 3.328437e-001,
3364
+ -6.440630e-001,
3365
+ 2.058571e-001,
3366
+ 2.155499e+000,
3367
+ -2.587968e+000,
3368
+ -1.840023e-002,
3369
+ 8.826555e-001,
3370
+ -2.222452e-001,
3371
+ 5.847073e+000,
3372
+ 1.228387e+000,
3373
+ -1.229071e+000,
3374
+ -3.360441e-001,
3375
+ -3.429599e-001,
3376
+ 6.179469e-001,
3377
+ 2.029610e-003,
3378
+ 8.899319e-002,
3379
+ 5.041624e-001,
3380
+ 1.882964e-001,
3381
+ 2.252040e-001,
3382
+ -1.022905e+000,
3383
+ -2.101621e-001,
3384
+ 1.915689e+000,
3385
+ -6.498794e-001,
3386
+ -3.463651e-002,
3387
+ 8.954605e-002,
3388
+ -6.797854e-002,
3389
+ 2.417705e+000,
3390
+ 8.568618e-001,
3391
+ -1.082538e+000,
3392
+ -2.007723e-001,
3393
+ 4.731009e-001,
3394
+ 4.077267e-001,
3395
+ 1.324289e-001,
3396
+ 6.514880e-001,
3397
+ 1.702912e-001,
3398
+ 2.309383e+000,
3399
+ 6.600895e-001,
3400
+ // albedo 1, turbidity 7
3401
+ -1.472139e+000,
3402
+ -6.499815e-001,
3403
+ -3.428465e+001,
3404
+ 3.469659e+001,
3405
+ -5.747023e-003,
3406
+ 4.174167e-001,
3407
+ 1.688597e-003,
3408
+ 2.323046e+000,
3409
+ 5.395191e-001,
3410
+ -2.161176e+000,
3411
+ -1.353089e+000,
3412
+ -2.226827e+001,
3413
+ 2.329138e+001,
3414
+ -5.583808e-003,
3415
+ 2.364793e-001,
3416
+ 6.096656e-002,
3417
+ 1.944666e-003,
3418
+ 2.861624e-001,
3419
+ -6.593044e-001,
3420
+ 1.393558e-001,
3421
+ 4.698373e+000,
3422
+ -5.193883e+000,
3423
+ -1.998390e-002,
3424
+ 1.095635e+000,
3425
+ -2.391254e-001,
3426
+ 5.598103e+000,
3427
+ 1.236193e+000,
3428
+ -1.195717e+000,
3429
+ -2.972715e-001,
3430
+ 4.648953e-002,
3431
+ 3.024588e-001,
3432
+ 5.003313e-003,
3433
+ -3.754741e-001,
3434
+ 5.247265e-001,
3435
+ -1.381312e-001,
3436
+ 2.493896e-001,
3437
+ -1.020139e+000,
3438
+ -2.253524e-001,
3439
+ 3.548437e-001,
3440
+ 7.030485e-001,
3441
+ -2.107076e-002,
3442
+ 4.581395e-001,
3443
+ -3.243757e-002,
3444
+ 2.453259e+000,
3445
+ 8.323623e-001,
3446
+ -1.098770e+000,
3447
+ -2.435780e-001,
3448
+ 8.761614e-001,
3449
+ 1.941613e-001,
3450
+ -1.990692e-001,
3451
+ 3.761139e-001,
3452
+ 1.657412e-001,
3453
+ 1.590503e+000,
3454
+ 6.741417e-001,
3455
+ // albedo 1, turbidity 8
3456
+ -1.648007e+000,
3457
+ -8.205121e-001,
3458
+ -4.435106e+001,
3459
+ 4.479801e+001,
3460
+ -4.181353e-003,
3461
+ 3.854830e-001,
3462
+ -1.842385e-006,
3463
+ 2.000281e+000,
3464
+ 5.518363e-001,
3465
+ -2.140986e+000,
3466
+ -1.282239e+000,
3467
+ -3.979213e+000,
3468
+ 4.672459e+000,
3469
+ -5.008582e-003,
3470
+ 2.421920e-001,
3471
+ 6.253602e-002,
3472
+ 6.612713e-001,
3473
+ 2.555851e-001,
3474
+ -1.300502e+000,
3475
+ -5.137898e-001,
3476
+ 5.179821e-001,
3477
+ -4.032341e-001,
3478
+ -2.066785e-002,
3479
+ 1.087929e+000,
3480
+ -2.615309e-001,
3481
+ 4.225887e+000,
3482
+ 1.229237e+000,
3483
+ -6.963340e-001,
3484
+ 9.241060e-002,
3485
+ 6.936356e-002,
3486
+ -3.588571e-001,
3487
+ -5.461843e-002,
3488
+ -5.616643e-001,
3489
+ 5.484166e-001,
3490
+ -4.776267e-002,
3491
+ 2.414935e-001,
3492
+ -1.233179e+000,
3493
+ -4.325498e-001,
3494
+ 6.479813e-001,
3495
+ 8.368356e-001,
3496
+ 2.458875e-001,
3497
+ 6.464752e-001,
3498
+ -2.897097e-002,
3499
+ 1.561773e+000,
3500
+ 8.518598e-001,
3501
+ -1.051023e+000,
3502
+ -2.533690e-001,
3503
+ 1.004294e+000,
3504
+ 3.028083e-001,
3505
+ -1.520108e+000,
3506
+ 1.607013e-001,
3507
+ 1.619975e-001,
3508
+ 1.131094e+000,
3509
+ 6.706655e-001,
3510
+ // albedo 1, turbidity 9
3511
+ -1.948249e+000,
3512
+ -1.097383e+000,
3513
+ -4.453697e+001,
3514
+ 4.494902e+001,
3515
+ -3.579939e-003,
3516
+ 3.491605e-001,
3517
+ -2.500253e-006,
3518
+ 1.740442e+000,
3519
+ 6.188022e-001,
3520
+ -2.154253e+000,
3521
+ -1.209559e+000,
3522
+ 4.144894e+000,
3523
+ -3.562411e+000,
3524
+ -5.638843e-003,
3525
+ 1.067169e-001,
3526
+ 7.594858e-002,
3527
+ 1.005280e+000,
3528
+ 1.072543e-001,
3529
+ -2.513259e+000,
3530
+ -1.507208e+000,
3531
+ -1.602979e+000,
3532
+ 1.404154e+000,
3533
+ -5.560750e-003,
3534
+ 1.240490e+000,
3535
+ -2.852117e-001,
3536
+ 3.485252e+000,
3537
+ 1.349321e+000,
3538
+ -7.832214e-002,
3539
+ 3.655626e-001,
3540
+ 3.856288e-001,
3541
+ 6.867894e-001,
3542
+ -1.609523e-001,
3543
+ -6.704306e-001,
3544
+ 5.357301e-001,
3545
+ -6.457935e-001,
3546
+ 1.479503e-001,
3547
+ -1.354784e+000,
3548
+ -5.454375e-001,
3549
+ 8.797469e-001,
3550
+ -1.466514e+000,
3551
+ 7.134420e-001,
3552
+ 5.934903e-001,
3553
+ -2.911178e-002,
3554
+ 8.643737e-001,
3555
+ 9.030724e-001,
3556
+ -1.048324e+000,
3557
+ -2.738736e-001,
3558
+ 8.783074e-001,
3559
+ 3.246188e+000,
3560
+ -4.435369e+000,
3561
+ 1.251791e-001,
3562
+ 1.783486e-001,
3563
+ 1.064657e+000,
3564
+ 6.522878e-001,
3565
+ // albedo 1, turbidity 10
3566
+ -2.770408e+000,
3567
+ -1.618911e+000,
3568
+ -2.504031e+001,
3569
+ 2.531674e+001,
3570
+ -4.239279e-003,
3571
+ 3.241013e-001,
3572
+ -3.764484e-006,
3573
+ 1.586843e+000,
3574
+ 7.035906e-001,
3575
+ -1.913500e+000,
3576
+ -1.144014e+000,
3577
+ -1.080587e+001,
3578
+ 1.153677e+001,
3579
+ -1.003197e-002,
3580
+ 1.577515e-001,
3581
+ 5.217789e-002,
3582
+ 1.225278e+000,
3583
+ 5.172771e-003,
3584
+ -5.293208e+000,
3585
+ -2.876463e+000,
3586
+ 2.087053e+000,
3587
+ -3.201552e+000,
3588
+ 3.892964e-003,
3589
+ 5.323930e-001,
3590
+ -2.034512e-001,
3591
+ 2.617760e+000,
3592
+ 1.273597e+000,
3593
+ 9.060340e-001,
3594
+ 3.773409e-001,
3595
+ -6.399945e-001,
3596
+ 3.213979e+000,
3597
+ -9.112172e-002,
3598
+ 6.494055e-001,
3599
+ 3.953280e-001,
3600
+ 5.047796e-001,
3601
+ 2.998695e-001,
3602
+ -1.482179e+000,
3603
+ -6.778310e-001,
3604
+ 1.161775e+000,
3605
+ -3.004872e+000,
3606
+ 4.774797e-001,
3607
+ -4.969248e-001,
3608
+ -3.512074e-003,
3609
+ -1.307190e+000,
3610
+ 7.927378e-001,
3611
+ -9.863181e-001,
3612
+ -1.803364e-001,
3613
+ 5.810824e-001,
3614
+ 4.580570e+000,
3615
+ -3.863454e+000,
3616
+ 5.328174e-001,
3617
+ 2.272821e-001,
3618
+ 1.771114e+000,
3619
+ 6.791814e-001,
3620
+ ]);
3621
+
3622
+ const kHosekRadZ = new Float32Array([
3623
+ // albedo 0, turbidity 1
3624
+ 1.168084e+000,
3625
+ 2.156455e+000,
3626
+ -3.980314e+000,
3627
+ 1.989302e+001,
3628
+ 1.328335e+001,
3629
+ 1.435621e+001,
3630
+ // albedo 0, turbidity 2
3631
+ 1.135488e+000,
3632
+ 2.294701e+000,
3633
+ -4.585886e+000,
3634
+ 2.090208e+001,
3635
+ 1.347840e+001,
3636
+ 1.467658e+001,
3637
+ // albedo 0, turbidity 3
3638
+ 1.107408e+000,
3639
+ 2.382765e+000,
3640
+ -5.112357e+000,
3641
+ 2.147823e+001,
3642
+ 1.493128e+001,
3643
+ 1.460882e+001,
3644
+ // albedo 0, turbidity 4
3645
+ 1.054193e+000,
3646
+ 2.592891e+000,
3647
+ -6.115000e+000,
3648
+ 2.268967e+001,
3649
+ 1.635672e+001,
3650
+ 1.518999e+001,
3651
+ // albedo 0, turbidity 5
3652
+ 1.006946e+000,
3653
+ 2.705420e+000,
3654
+ -6.698930e+000,
3655
+ 2.291830e+001,
3656
+ 1.834324e+001,
3657
+ 1.570651e+001,
3658
+ // albedo 0, turbidity 6
3659
+ 9.794044e-001,
3660
+ 2.742440e+000,
3661
+ -6.805283e+000,
3662
+ 2.225271e+001,
3663
+ 2.050797e+001,
3664
+ 1.563130e+001,
3665
+ // albedo 0, turbidity 7
3666
+ 9.413577e-001,
3667
+ 2.722009e+000,
3668
+ -6.760707e+000,
3669
+ 2.098242e+001,
3670
+ 2.342588e+001,
3671
+ 1.605011e+001,
3672
+ // albedo 0, turbidity 8
3673
+ 8.917923e-001,
3674
+ 2.592780e+000,
3675
+ -6.152635e+000,
3676
+ 1.774141e+001,
3677
+ 2.858324e+001,
3678
+ 1.657910e+001,
3679
+ // albedo 0, turbidity 9
3680
+ 8.288391e-001,
3681
+ 2.153434e+000,
3682
+ -4.118327e+000,
3683
+ 1.078118e+001,
3684
+ 3.681710e+001,
3685
+ 1.738139e+001,
3686
+ // albedo 0, turbidity 10
3687
+ 7.623528e-001,
3688
+ 1.418187e+000,
3689
+ -8.845235e-001,
3690
+ 7.590129e-001,
3691
+ 4.629859e+001,
3692
+ 1.921657e+001,
3693
+ // albedo 1, turbidity 1
3694
+ 1.352858e+000,
3695
+ 2.048862e+000,
3696
+ -2.053393e+000,
3697
+ 1.405874e+001,
3698
+ 3.045344e+001,
3699
+ 3.044430e+001,
3700
+ // albedo 1, turbidity 2
3701
+ 1.330497e+000,
3702
+ 2.126497e+000,
3703
+ -2.466296e+000,
3704
+ 1.467559e+001,
3705
+ 3.090738e+001,
3706
+ 3.069707e+001,
3707
+ // albedo 1, turbidity 3
3708
+ 1.286344e+000,
3709
+ 2.200436e+000,
3710
+ -2.877228e+000,
3711
+ 1.492701e+001,
3712
+ 3.236288e+001,
3713
+ 3.077223e+001,
3714
+ // albedo 1, turbidity 4
3715
+ 1.234428e+000,
3716
+ 2.289628e+000,
3717
+ -3.404699e+000,
3718
+ 1.499436e+001,
3719
+ 3.468390e+001,
3720
+ 3.084842e+001,
3721
+ // albedo 1, turbidity 5
3722
+ 1.178660e+000,
3723
+ 2.306071e+000,
3724
+ -3.549159e+000,
3725
+ 1.411006e+001,
3726
+ 3.754188e+001,
3727
+ 3.079730e+001,
3728
+ // albedo 1, turbidity 6
3729
+ 1.151366e+000,
3730
+ 2.333005e+000,
3731
+ -3.728627e+000,
3732
+ 1.363374e+001,
3733
+ 3.905894e+001,
3734
+ 3.092599e+001,
3735
+ // albedo 1, turbidity 7
3736
+ 1.101593e+000,
3737
+ 2.299422e+000,
3738
+ -3.565787e+000,
3739
+ 1.196745e+001,
3740
+ 4.188472e+001,
3741
+ 3.102755e+001,
3742
+ // albedo 1, turbidity 8
3743
+ 1.038322e+000,
3744
+ 2.083539e+000,
3745
+ -2.649585e+000,
3746
+ 8.037389e+000,
3747
+ 4.700869e+001,
3748
+ 3.065948e+001,
3749
+ // albedo 1, turbidity 9
3750
+ 9.596146e-001,
3751
+ 1.671470e+000,
3752
+ -8.751538e-001,
3753
+ 1.679772e+000,
3754
+ 5.345784e+001,
3755
+ 3.054520e+001,
3756
+ // albedo 1, turbidity 10
3757
+ 8.640731e-001,
3758
+ 9.858301e-001,
3759
+ 1.854956e+000,
3760
+ -6.798097e+000,
3761
+ 5.936468e+001,
3762
+ 3.110255e+001,
3763
+ ]);
3764
+
3765
+ /**
3766
+ *
3767
+ * @param {vec3} out
3768
+ * @param {vec3} input
3769
+ */
3770
+ function XYZ_TO_RGB(out, input) {
3771
+ const x = input[0];
3772
+ const y = input[1];
3773
+ const z = input[2];
3774
+
3775
+ out[0] = 3.2404542 * x - 1.5371385 * y - 0.4985314 * z;
3776
+ out[1] = (-0.9692660) * x + 1.8760108 * y + 0.0415560 * z;
3777
+ out[2] = 0.0556434 * x - 0.2040259 * y + 1.0572252 * z;
3778
+ }
3779
+
3780
+ /**
3781
+ *
3782
+ * @param {vec3} out
3783
+ * @param {vec3} input
3784
+ */
3785
+ function RGB_TO_XYZ(out, input) {
3786
+
3787
+ const x = input[0];
3788
+ const y = input[1];
3789
+ const z = input[2];
3790
+
3791
+ out[0] = 0.4124564 * x + 0.3575761 * y + 0.1804375 * z;
3792
+ out[1] = 0.2126729 * x + 0.7151522 * y + 0.0721750 * z;
3793
+ out[2] = 0.0193339 * x + 0.1191920 * y + 0.9503041 * z;
3794
+ }
3795
+
3796
+ /**
3797
+ *
3798
+ * @param {number[]|Float32Array} w float[6]
3799
+ * @param {number[]|Float32Array} data float[6]
3800
+ * @param {number} data_offset
3801
+ * @return {number}
3802
+ */
3803
+ function EvalQuintic_2(w, data, data_offset) {
3804
+ return w[0] * data[data_offset + 0]
3805
+ + w[1] * data[data_offset + 1]
3806
+ + w[2] * data[data_offset + 2]
3807
+ + w[3] * data[data_offset + 3]
3808
+ + w[4] * data[data_offset + 4]
3809
+ + w[5] * data[data_offset + 5];
3810
+ }
3811
+
3812
+ /**
3813
+ *
3814
+ * @param {number[]|Float32Array} w float[6]
3815
+ * @param {number[]|Float32Array} data float[6][9] flattened
3816
+ * @param {number} data_offset
3817
+ * @param {number[]|Float32Array} coeffs float[9] output is written here
3818
+ * @param {number} coeffs_offset
3819
+ */
3820
+ function EvalQuintic_3(w, data, data_offset, coeffs, coeffs_offset) {
3821
+ for (let i = 0; i < 9; i++) {
3822
+ coeffs[coeffs_offset + i] = w[0] * data[data_offset + 0 * 6 + i]
3823
+ + w[1] * data[data_offset + 1 * 6 + i]
3824
+ + w[2] * data[data_offset + 2 * 6 + i]
3825
+ + w[3] * data[data_offset + 3 * 6 + i]
3826
+ + w[4] * data[data_offset + 4 * 6 + i]
3827
+ + w[5] * data[data_offset + 5 * 6 + i];
3828
+ }
3829
+ }
3830
+
3831
+ /**
3832
+ *
3833
+ * @param {number} s
3834
+ * @param {number[]|ArrayLike<number>|Float32Array} w
3835
+ */
3836
+ function FindQuinticWeights(s, w) {
3837
+ const s1 = s;
3838
+ const s2 = s1 * s1;
3839
+ const s3 = s1 * s2;
3840
+ const s4 = s2 * s2;
3841
+ const s5 = s2 * s3;
3842
+
3843
+ const is1 = 1.0 - s1;
3844
+ const is2 = is1 * is1;
3845
+ const is3 = is1 * is2;
3846
+ const is4 = is2 * is2;
3847
+ const is5 = is2 * is3;
3848
+
3849
+ w[0] = is5;
3850
+ w[1] = is4 * s1 * 5.0;
3851
+ w[2] = is3 * s2 * 10.0;
3852
+ w[3] = is2 * s3 * 10.0;
3853
+ w[4] = is1 * s4 * 5.0;
3854
+ w[5] = s5;
3855
+ }
3856
+
3857
+ /**
3858
+ *
3859
+ * @param {number[]|Float32Array} dataset9 albedo x 2, turbidity x 10, quintics x 6, weights x 9
3860
+ * @param {number[]|Float32Array} datasetR albedo x 2, turbidity x 10, quintics x 6
3861
+ * @param {number} turbidity
3862
+ * @param {number} albedo
3863
+ * @param {number} solarElevation
3864
+ * @param {number[]|Float32Array} coeffs result is written here
3865
+ * @param {number} coeffs_offset
3866
+ * @return {number}
3867
+ * @constructor
3868
+ */
3869
+ function FindHosekCoeffs
3870
+ (
3871
+ dataset9,
3872
+ datasetR,
3873
+ turbidity,
3874
+ albedo,
3875
+ solarElevation,
3876
+ coeffs,
3877
+ coeffs_offset
3878
+ ) {
3879
+ const tbi = clamp(Math.floor(turbidity), 1, 9);
3880
+
3881
+ const tbf = turbidity - tbi;
3882
+
3883
+ const s = Math.pow(solarElevation / vl_halfPi, (1.0 / 3.0));
3884
+
3885
+ const quinticWeights = new Float32Array(6);
3886
+ FindQuinticWeights(s, quinticWeights);
3887
+
3888
+ const ic = new Float32Array(4 * 9);
3889
+
3890
+ const size_set9_1 = 6 * 9;
3891
+ const size_set9_0 = 10 * size_set9_1;
3892
+ EvalQuintic_3(quinticWeights, dataset9, (tbi - 1) * size_set9_1, ic, 0);
3893
+ EvalQuintic_3(quinticWeights, dataset9, size_set9_0 + (tbi - 1) * size_set9_1, ic, 9);
3894
+ EvalQuintic_3(quinticWeights, dataset9, tbi * size_set9_1, ic, 18);
3895
+ EvalQuintic_3(quinticWeights, dataset9, size_set9_0 + tbi * size_set9_1, ic, 27);
3896
+
3897
+ const size_set_R_1 = 6;
3898
+ const size_set_R_0 = 10 * size_set_R_1;
3899
+ const ir = [
3900
+ EvalQuintic_2(quinticWeights, datasetR, (tbi - 1) * size_set_R_1),
3901
+ EvalQuintic_2(quinticWeights, datasetR, size_set_R_0 + (tbi - 1) * size_set_R_1),
3902
+ EvalQuintic_2(quinticWeights, datasetR, tbi * size_set_R_1),
3903
+ EvalQuintic_2(quinticWeights, datasetR, size_set_R_0 + tbi * size_set_R_1),
3904
+ ];
3905
+
3906
+ const cw = [
3907
+ (1.0 - albedo) * (1.0 - tbf),
3908
+ albedo * (1.0 - tbf),
3909
+ (1.0 - albedo) * tbf,
3910
+ albedo * tbf,
3911
+ ];
3912
+
3913
+ for (let i = 0; i < 9; i++) {
3914
+ coeffs[coeffs_offset + i] = cw[0] * ic[ i]
3915
+ + cw[1] * ic[9 + i]
3916
+ + cw[2] * ic[2 * 9 + i]
3917
+ + cw[3] * ic[3 * 9 + i];
3918
+ }
3919
+
3920
+ return cw[0] * ir[0] + cw[1] * ir[1] + cw[2] * ir[2] + cw[3] * ir[3];
3921
+ }
3922
+
3923
+ /**
3924
+ *
3925
+ * Hosek:
3926
+ * (1 + A e ^ (B / cos(t))) (1 + C e ^ (D g) + E cos(g) ^ 2 + F mieM(g, G) + H cos(t)^1/2 + (I - 1))
3927
+ *
3928
+ * These bits are the same as Preetham, but do different jobs in some cases
3929
+ * A: sky gradient, carries white -> blue gradient
3930
+ * B: sky tightness
3931
+ * C: sun, carries most of sun-centred blue term
3932
+ * D: sun tightness, higher = tighter
3933
+ * E: rosy hue around sun
3934
+ *
3935
+ * Hosek-specific:
3936
+ * F: mie term, does most of the heavy lifting for sunset glow
3937
+ * G: mie tuning
3938
+ * H: zenith gradient
3939
+ * I: constant term balanced with H
3940
+ *
3941
+ * Notes:
3942
+ * A/B still carries some of the "blue" base of sky, but much comes from C/D
3943
+ * C/E minimal effect in sunset situations, carry bulk of sun halo in sun-overhead
3944
+ * F/G sunset glow, but also takes sun halo from yellowish to white overhead
3945
+ * @param {number[]|Float32Array} coeffs
3946
+ * @param {number} coeffs_offset
3947
+ * @param {number} cosTheta
3948
+ * @param {number} gamma
3949
+ * @param {number} cosGamma
3950
+ * @return {number}
3951
+ * @constructor
3952
+ */
3953
+ function EvalHosekCoeffs(
3954
+ coeffs,
3955
+ coeffs_offset,
3956
+ cosTheta,
3957
+ gamma,
3958
+ cosGamma
3959
+ ) {
3960
+ const c_0 = coeffs[coeffs_offset + 0];
3961
+ const c_1 = coeffs[coeffs_offset + 1];
3962
+ const c_2 = coeffs[coeffs_offset + 2];
3963
+ const c_3 = coeffs[coeffs_offset + 3];
3964
+ const c_4 = coeffs[coeffs_offset + 4];
3965
+ const c_5 = coeffs[coeffs_offset + 5];
3966
+ const c_6 = coeffs[coeffs_offset + 6];
3967
+ const c_7 = coeffs[coeffs_offset + 7];
3968
+ const c_8 = coeffs[coeffs_offset + 8];
3969
+
3970
+ // Current coeffs ordering is AB I CDEF HG
3971
+ // 01 2 3456 78
3972
+ const expM = Math.exp(c_4 * gamma); // D g
3973
+ const rayM = cosGamma * cosGamma; // Rayleigh scattering
3974
+ const mieM = (1.0 + rayM) / Math.pow((1.0 + c_8 * c_8 - 2.0 * c_8 * cosGamma), 1.5); // G
3975
+ const zenith = Math.sqrt(cosTheta); // vertical zenith gradient
3976
+
3977
+ return (
3978
+ 1.0 + c_0 * Math.exp(c_1 / (cosTheta + 0.01)) // A, B
3979
+ )
3980
+ * (1.0
3981
+ + c_3 * expM // C
3982
+ + c_5 * rayM // E
3983
+ + c_6 * mieM // F
3984
+ + c_7 * zenith // H
3985
+ + (c_2 - 1.0) // I
3986
+ );
3987
+ }
3988
+
3989
+ /**
3990
+ *
3991
+ * @param {number} thetaS
3992
+ * @param {number} T
3993
+ * @return {number}
3994
+ */
3995
+ function ZenithLuminance(thetaS, T) {
3996
+ const chi = (4.0 / 9.0 - T / 120.0) * (vl_pi - 2.0 * thetaS);
3997
+ let Lz = (4.0453 * T - 4.9710) * Math.tan(chi) - 0.2155 * T + 2.4192;
3998
+ Lz *= 1000.0; // conversion from kcd/m^2 to cd/m^2
3999
+ return Lz;
4000
+ }
4001
+
4002
+ /**
4003
+ * @see https://github.com/andrewwillmott/sun-sky/blob/master/SunSky.cpp
4004
+ * @param {number[]} mCoeffsXYZ output, float[3][9], Hosek 9-term distribution coefficients
4005
+ * @param {number[]} mRadXYZ output, vec3, Overall average radiance
4006
+ * @param {vec3} sun_direction
4007
+ * @param {number} turbidity should be between 1 and 10
4008
+ * @param {vec3} rgbAlbedo albedo in linear color space (make sure it's not sRGB)
4009
+ * @param {number} overcast
4010
+ */
4011
+ export function sky_hosek_precompute(
4012
+ mCoeffsXYZ,
4013
+ mRadXYZ,
4014
+ sun_direction,
4015
+ turbidity,
4016
+ rgbAlbedo,
4017
+ overcast
4018
+ ) {
4019
+
4020
+ const mToSun = sun_direction;
4021
+
4022
+ const sun_x = mToSun[0];
4023
+ const sun_y = mToSun[1];
4024
+ const sun_z = mToSun[2];
4025
+
4026
+ const solarElevation = sun_z > 0 ? Math.asin(sun_z) : 0;
4027
+
4028
+ const albedo = [];
4029
+ RGB_TO_XYZ(albedo, rgbAlbedo);
4030
+
4031
+ /**
4032
+ * Hosek 9-term distribution coefficients
4033
+ * float[3][9]
4034
+ * @type {Float32Array}
4035
+ */
4036
+ // const mCoeffsXYZ = new Float32Array(3 * 9);
4037
+
4038
+ /**
4039
+ * Overall average radiance
4040
+ * Vec3f
4041
+ * @type {Float32Array}
4042
+ */
4043
+ //const mRadXYZ = new Float32Array(3);
4044
+
4045
+ // Note that the hosek coefficients change with time of day, vs. Preetham where the 'upper' coefficients stay the same,
4046
+ // and only the scaler mPerezInvDen, consisting of time-dependent normalisation and zenith luminnce factors, changes.
4047
+ mRadXYZ[0] = FindHosekCoeffs(kHosekCoeffsX, kHosekRadX, turbidity, albedo[0], solarElevation, mCoeffsXYZ, 0);
4048
+ mRadXYZ[1] = FindHosekCoeffs(kHosekCoeffsY, kHosekRadY, turbidity, albedo[1], solarElevation, mCoeffsXYZ, 9);
4049
+ mRadXYZ[2] = FindHosekCoeffs(kHosekCoeffsZ, kHosekRadZ, turbidity, albedo[2], solarElevation, mCoeffsXYZ, 18);
4050
+
4051
+ vec3.scale(mRadXYZ, mRadXYZ, 683); // convert to luminance in lumens
4052
+
4053
+
4054
+ if (sun_z < 0.0) // sun below horizon?
4055
+ {
4056
+ const s = clamp01(1.0 + sun_z * 50.0); // goes from 1 to 0 as the sun sets
4057
+ const is = 1.0 - s;
4058
+
4059
+ // Emulate Preetham's zenith darkening
4060
+ const darken = ZenithLuminance(Math.acos(sun_z), turbidity) / ZenithLuminance(vl_halfPi, turbidity);
4061
+
4062
+ // Take C/E/F which control sun term to zero
4063
+ for (let j = 0; j < 3; j++) {
4064
+ mCoeffsXYZ[j * 9 + 3] *= s;
4065
+ mCoeffsXYZ[j * 9 + 5] *= s;
4066
+ mCoeffsXYZ[j * 9 + 6] *= s;
4067
+
4068
+ // Take horizon term H to zero, as it's an orange glow at this point
4069
+ mCoeffsXYZ[j * 9 + 7] *= s;
4070
+
4071
+ // Take I term back to 1
4072
+ mCoeffsXYZ[j * 9 + 2] *= s;
4073
+ mCoeffsXYZ[j * 9 + 2] += is;
4074
+ }
4075
+
4076
+ vec3.scale(mRadXYZ, mRadXYZ, darken);
4077
+ }
4078
+
4079
+ if (overcast !== 0.0) // Handle overcast term
4080
+ {
4081
+ const is = overcast;
4082
+ const s = 1.0 - overcast; // goes to 0 as we go to overcast
4083
+
4084
+ // Hosek isn't self-normalising, unlike Preetham/CIE, which divides by PreethamLower().
4085
+ // Thus when we lerp to the CIE overcast model, we get some non-linearities.
4086
+ // We deal with this by using ratios of normalisation terms to balance.
4087
+ // Another difference is that Hosek is relative to the average radiance,
4088
+ // whereas CIE is the zenith radiance, so rather than taking the zenith
4089
+ // as normalising as in CIE, we average over the zenith and two horizon
4090
+ // points.
4091
+ const cosGammaZ = sun_z;
4092
+ const gammaZ = Math.acos(cosGammaZ);
4093
+ const cosGammaH = sun_y;
4094
+ const gammaHP = Math.acos(sun_y);
4095
+ const gammaHN = vl_pi - gammaHP;
4096
+
4097
+ const sc0 = EvalHosekCoeffs(mCoeffsXYZ, 1 * 9, 1.0, gammaZ, cosGammaZ) * 2.0
4098
+ + EvalHosekCoeffs(mCoeffsXYZ, 1 * 9, 0.0, gammaHP, +cosGammaH)
4099
+ + EvalHosekCoeffs(mCoeffsXYZ, 1 * 9, 0.0, gammaHN, -cosGammaH);
4100
+
4101
+ for (let j = 0; j < 3; j++) {
4102
+ // sun flare -> 0 strength/base chroma
4103
+ // Take C/E/F which control sun term to zero
4104
+ mCoeffsXYZ[j * 9 + 3] *= s;
4105
+ mCoeffsXYZ[j * 9 + 5] *= s;
4106
+ mCoeffsXYZ[j * 9 + 6] *= s;
4107
+
4108
+ // Take H back to 0
4109
+ mCoeffsXYZ[j * 9 + 7] *= s;
4110
+
4111
+ // Take I term back to 1
4112
+ mCoeffsXYZ[j * 9 + 2] *= s;
4113
+ mCoeffsXYZ[j * 9 + 2] += is;
4114
+
4115
+ // Take A/B to CIE cloudy sky model: 4, -0.7
4116
+ mCoeffsXYZ[j * 9 + 0] = lerp(mCoeffsXYZ[j * 9 + 0], 4.0, is);
4117
+ mCoeffsXYZ[j * 9 + 1] = lerp(mCoeffsXYZ[j * 9 + 1], -0.7, is);
4118
+ }
4119
+
4120
+ const sc1 = EvalHosekCoeffs(mCoeffsXYZ, 1 * 9, 1.0, gammaZ, cosGammaZ) * 2.0
4121
+ + EvalHosekCoeffs(mCoeffsXYZ, 1 * 9, 0.0, gammaHP, +cosGammaH)
4122
+ + EvalHosekCoeffs(mCoeffsXYZ, 1 * 9, 0.0, gammaHN, -cosGammaH);
4123
+
4124
+ const rescale = sc0 / sc1;
4125
+ vec3.scale(mRadXYZ, mRadXYZ, rescale);
4126
+
4127
+
4128
+ // move back to white point
4129
+ mRadXYZ[0] = lerp(mRadXYZ[0], mRadXYZ[1], is);
4130
+ mRadXYZ[2] = lerp(mRadXYZ[2], mRadXYZ[1], is);
4131
+ }
4132
+
4133
+ }
4134
+
4135
+
4136
+ /**
4137
+ *
4138
+ * @param {number[]} out vec3 in RGB color space
4139
+ * @param {number[]} mCoeffsXYZ float[3][9]
4140
+ * @param {number[]} mRadXYZ vec3
4141
+ * @param {number[]} mToSun vec3
4142
+ * @param {number} direction_x
4143
+ * @param {number} direction_y
4144
+ * @param {number} direction_z
4145
+ */
4146
+ export function sky_hosek_compute_irradiance_by_direction(
4147
+ out,
4148
+ mCoeffsXYZ,
4149
+ mRadXYZ,
4150
+ mToSun,
4151
+ direction_x,
4152
+ direction_y,
4153
+ direction_z,
4154
+ ) {
4155
+ let cosTheta = direction_z;
4156
+ const cosGamma = v3_dot(mToSun[0], mToSun[1], mToSun[2], direction_x, direction_y, direction_z);
4157
+ const gamma = Math.acos(cosGamma);
4158
+
4159
+ if (cosTheta < 0.0)
4160
+ cosTheta = 0.0;
4161
+
4162
+ const x = EvalHosekCoeffs(mCoeffsXYZ, 0, cosTheta, gamma, cosGamma);
4163
+ const y = EvalHosekCoeffs(mCoeffsXYZ, 9, cosTheta, gamma, cosGamma);
4164
+ const z = EvalHosekCoeffs(mCoeffsXYZ, 18, cosTheta, gamma, cosGamma);
4165
+
4166
+ out[0] = x * mRadXYZ[0];
4167
+ out[1] = y * mRadXYZ[1];
4168
+ out[2] = z * mRadXYZ[2];
4169
+
4170
+ XYZ_TO_RGB(out, out);
4171
+ }