Blender V4.3
kernel/tables.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5/* clang-format off */
6
8 {1.61919106e+03f, -2.05010916e-03f, 5.02995757e+00f},
9 {2.48845471e+03f, -1.11330907e-03f, 3.22621544e+00f},
10 {3.34143193e+03f, -4.86551192e-04f, 1.76486769e+00f},
11 {4.09461742e+03f, -1.27446582e-04f, 7.25731635e-01f},
12 {4.67028036e+03f, 2.91258199e-05f, 1.26703442e-01f},
13 {4.59509185e+03f, 2.87495649e-05f, 1.50345020e-01f},
14 {3.78717450e+03f, 9.35907826e-06f, 3.99075871e-01f}
15};
16
18 {-4.88999748e+02f, 6.04330754e-04f, -7.55807526e-02f},
19 {-7.55994277e+02f, 3.16730098e-04f, 4.78306139e-01f},
20 {-1.02363977e+03f, 1.20223470e-04f, 9.36662319e-01f},
21 {-1.26571316e+03f, 4.87340896e-06f, 1.27054498e+00f},
22 {-1.42529332e+03f, -4.01150431e-05f, 1.43972784e+00f},
23 {-1.17554822e+03f, -2.16378048e-05f, 1.30408023e+00f},
24 {-5.00799571e+02f, -4.59832026e-06f, 1.09098763e+00f}
25};
26
28 {5.96945309e-11f, -4.85742887e-08f, -9.70622247e-05f, -4.07936148e-03f},
29 {2.40430366e-11f, 5.55021075e-08f, -1.98503712e-04f, 2.89312858e-02f},
30 {-1.40949732e-11f, 1.89878968e-07f, -3.56632824e-04f, 9.10767778e-02f},
31 {-3.61460868e-11f, 2.84822009e-07f, -4.93211319e-04f, 1.56723440e-01f},
32 {-1.97075738e-11f, 1.75359352e-07f, -2.50542825e-04f, -2.22783266e-02f},
33 {-1.61997957e-13f, -1.64216008e-08f, 3.86216271e-04f, -7.38077418e-01f},
34 {6.72650283e-13f, -2.73078809e-08f, 4.24098264e-04f, -7.52335691e-01f}
35};
36
38 {0.0014f, 0.0000f, 0.0065f}, {0.0022f, 0.0001f, 0.0105f}, {0.0042f, 0.0001f, 0.0201f},
39 {0.0076f, 0.0002f, 0.0362f}, {0.0143f, 0.0004f, 0.0679f}, {0.0232f, 0.0006f, 0.1102f},
40 {0.0435f, 0.0012f, 0.2074f}, {0.0776f, 0.0022f, 0.3713f}, {0.1344f, 0.0040f, 0.6456f},
41 {0.2148f, 0.0073f, 1.0391f}, {0.2839f, 0.0116f, 1.3856f}, {0.3285f, 0.0168f, 1.6230f},
42 {0.3483f, 0.0230f, 1.7471f}, {0.3481f, 0.0298f, 1.7826f}, {0.3362f, 0.0380f, 1.7721f},
43 {0.3187f, 0.0480f, 1.7441f}, {0.2908f, 0.0600f, 1.6692f}, {0.2511f, 0.0739f, 1.5281f},
44 {0.1954f, 0.0910f, 1.2876f}, {0.1421f, 0.1126f, 1.0419f}, {0.0956f, 0.1390f, 0.8130f},
45 {0.0580f, 0.1693f, 0.6162f}, {0.0320f, 0.2080f, 0.4652f}, {0.0147f, 0.2586f, 0.3533f},
46 {0.0049f, 0.3230f, 0.2720f}, {0.0024f, 0.4073f, 0.2123f}, {0.0093f, 0.5030f, 0.1582f},
47 {0.0291f, 0.6082f, 0.1117f}, {0.0633f, 0.7100f, 0.0782f}, {0.1096f, 0.7932f, 0.0573f},
48 {0.1655f, 0.8620f, 0.0422f}, {0.2257f, 0.9149f, 0.0298f}, {0.2904f, 0.9540f, 0.0203f},
49 {0.3597f, 0.9803f, 0.0134f}, {0.4334f, 0.9950f, 0.0087f}, {0.5121f, 1.0000f, 0.0057f},
50 {0.5945f, 0.9950f, 0.0039f}, {0.6784f, 0.9786f, 0.0027f}, {0.7621f, 0.9520f, 0.0021f},
51 {0.8425f, 0.9154f, 0.0018f}, {0.9163f, 0.8700f, 0.0017f}, {0.9786f, 0.8163f, 0.0014f},
52 {1.0263f, 0.7570f, 0.0011f}, {1.0567f, 0.6949f, 0.0010f}, {1.0622f, 0.6310f, 0.0008f},
53 {1.0456f, 0.5668f, 0.0006f}, {1.0026f, 0.5030f, 0.0003f}, {0.9384f, 0.4412f, 0.0002f},
54 {0.8544f, 0.3810f, 0.0002f}, {0.7514f, 0.3210f, 0.0001f}, {0.6424f, 0.2650f, 0.0000f},
55 {0.5419f, 0.2170f, 0.0000f}, {0.4479f, 0.1750f, 0.0000f}, {0.3608f, 0.1382f, 0.0000f},
56 {0.2835f, 0.1070f, 0.0000f}, {0.2187f, 0.0816f, 0.0000f}, {0.1649f, 0.0610f, 0.0000f},
57 {0.1212f, 0.0446f, 0.0000f}, {0.0874f, 0.0320f, 0.0000f}, {0.0636f, 0.0232f, 0.0000f},
58 {0.0468f, 0.0170f, 0.0000f}, {0.0329f, 0.0119f, 0.0000f}, {0.0227f, 0.0082f, 0.0000f},
59 {0.0158f, 0.0057f, 0.0000f}, {0.0114f, 0.0041f, 0.0000f}, {0.0081f, 0.0029f, 0.0000f},
60 {0.0058f, 0.0021f, 0.0000f}, {0.0041f, 0.0015f, 0.0000f}, {0.0029f, 0.0010f, 0.0000f},
61 {0.0020f, 0.0007f, 0.0000f}, {0.0014f, 0.0005f, 0.0000f}, {0.0010f, 0.0004f, 0.0000f},
62 {0.0007f, 0.0002f, 0.0000f}, {0.0005f, 0.0002f, 0.0000f}, {0.0003f, 0.0001f, 0.0000f},
63 {0.0002f, 0.0001f, 0.0000f}, {0.0002f, 0.0001f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f},
64 {0.0001f, 0.0000f, 0.0000f}, {0.0001f, 0.0000f, 0.0000f}, {0.0000f, 0.0000f, 0.0000f}
65};
66
67/*
68 * The direction vectors for the first four dimensions of the Sobol
69 * sequence, stored with reversed-order bits.
70 *
71 * This is used in the Sobol-Burley sampler implementation. We don't
72 * need more than four dimensions because we achieve higher dimensions
73 * with padding. They're stored with reversed bits because we need
74 * them reversed for the fast hash-based Owen scrambling anyway, and
75 * this avoids doing that at run time.
76 */
78 {
79 0x00000001, 0x00000002, 0x00000004, 0x00000008,
80 0x00000010, 0x00000020, 0x00000040, 0x00000080,
81 0x00000100, 0x00000200, 0x00000400, 0x00000800,
82 0x00001000, 0x00002000, 0x00004000, 0x00008000,
83 0x00010000, 0x00020000, 0x00040000, 0x00080000,
84 0x00100000, 0x00200000, 0x00400000, 0x00800000,
85 0x01000000, 0x02000000, 0x04000000, 0x08000000,
86 0x10000000, 0x20000000, 0x40000000, 0x80000000,
87 },
88 {
89 0x00000001, 0x00000003, 0x00000005, 0x0000000f,
90 0x00000011, 0x00000033, 0x00000055, 0x000000ff,
91 0x00000101, 0x00000303, 0x00000505, 0x00000f0f,
92 0x00001111, 0x00003333, 0x00005555, 0x0000ffff,
93 0x00010001, 0x00030003, 0x00050005, 0x000f000f,
94 0x00110011, 0x00330033, 0x00550055, 0x00ff00ff,
95 0x01010101, 0x03030303, 0x05050505, 0x0f0f0f0f,
96 0x11111111, 0x33333333, 0x55555555, 0xffffffff,
97 },
98 {
99 0x00000001, 0x00000003, 0x00000006, 0x00000009,
100 0x00000017, 0x0000003a, 0x00000071, 0x000000a3,
101 0x00000116, 0x00000339, 0x00000677, 0x000009aa,
102 0x00001601, 0x00003903, 0x00007706, 0x0000aa09,
103 0x00010117, 0x0003033a, 0x00060671, 0x000909a3,
104 0x00171616, 0x003a3939, 0x00717777, 0x00a3aaaa,
105 0x01170001, 0x033a0003, 0x06710006, 0x09a30009,
106 0x16160017, 0x3939003a, 0x77770071, 0xaaaa00a3,
107 },
108 {
109 0x00000001, 0x00000003, 0x00000004, 0x0000000a,
110 0x0000001f, 0x0000002e, 0x00000045, 0x000000c9,
111 0x0000011b, 0x000002a4, 0x0000079a, 0x00000b67,
112 0x0000101e, 0x0000302d, 0x00004041, 0x0000a0c3,
113 0x0001f104, 0x0002e28a, 0x000457df, 0x000c9bae,
114 0x0011a105, 0x002a7289, 0x0079e7db, 0x00b6dba4,
115 0x0100011a, 0x030002a7, 0x0400079e, 0x0a000b6d,
116 0x1f001001, 0x2e003003, 0x45004004, 0xc900a00a,
117 },
118};
119
120/* clang-format on */
#define ccl_inline_constant
ccl_inline_constant unsigned int sobol_burley_table[4][32]
ccl_inline_constant float blackbody_table_r[][3]
ccl_inline_constant float cie_color_match[][3]
ccl_inline_constant float blackbody_table_g[][3]
ccl_inline_constant float blackbody_table_b[][4]