#pragma once #include "kernel/sample/mapping.h" CCL_NAMESPACE_BEGIN typedef struct LtcSheenBsdf { SHADER_CLOSURE_BASE; float reflectance; float A, B; } LtcSheenBsdf; static_assert(sizeof(ShaderClosure) >= sizeof(LtcSheenBsdf), "LtcSheenBsdf is too large!"); namespace { extern float3 ltcTable[32][32]; } ccl_device int bsdf_ltc_sheen_setup(ccl_private LtcSheenBsdf *bsdf) { bsdf->type = CLOSURE_BSDF_LTC_SHEEN_ID; return SD_BSDF | SD_BSDF_HAS_EVAL; } // Helpers ccl_device float azimuth(float3 w) { float phi = atan2f(w.y, w.x); if (phi < 0.0f) { phi += M_2PI_F; } return phi; } ccl_device float eval_ltc(float3 wo, float A, float B) { // Evaluate LTC distribution in a standard coordinate system where the // shading normal is aligned with vector [0, 0, 1]. // // The (inverse) transform matrix is given by // // [[A 0 B] // M^{-1} = [0 A 0] // [0 0 1]]. // // The transformed direction is therefore // // [[A * wo.x + B * wo.z] // wo_original = M^{-1} * wo = [A * wo.y ] // [A * wo.z ]] // // that is subsequently normalized. The determinant of this matrix is // // |M^{-1}| = A * A // // which is used to compute the Jacobian determinant of the complete mapping // including the normalization. float3 wo_original = make_float3(A * wo.x + B * wo.z, A * wo.y, wo.z); float length = len(wo_original); wo_original = wo_original / length; float det = A * A; float jacobian = det / (length * length * length); float pdf_cos_hemisphere = fmaxf(0.0f, wo_original.z) * M_1_PI_F; return pdf_cos_hemisphere * jacobian; } ccl_device float3 sample_ltc(float2 rand, float A, float B) { // Sample LTC distribution in a standard coordinate system where the // shading normal is aligned with vector [0, 0, 1]. // // The (inverse) transform matrix is given by // // [[A 0 B] // M^{-1} = [0 A 0] // [0 0 1]]. // // The non-inverted matrix is therefore // // [[1/A 0 -B/A] // M = [0 1/A 0 ] // [0 0 1 ]]. // // and the transformed direction is // // [[wo_original.x/A - wo_original.z*B/A] // wo = M * wo_original = [wo_original.y/A ] // [wo_original.z ]] // // that is subsequently normalized. float pdf; float3 wo_original; sample_cos_hemisphere(make_float3(0.0f, 0.0f, 1.0f), rand, &wo_original, &pdf); float3 wo = make_float3(wo_original.x / A - wo_original.z * B / A, wo_original.y / A, wo_original.z); return normalize(wo); } ccl_device float3 fetch_ltc_coefficients(float cosNI, float randomness) { // Fetch the LTC coefficients from the lookup table via bilinear interpolation float row = fmaxf(0.0f, fminf(randomness, 1.0f)) * 31; float col = fmaxf(0.0f, fminf(cosNI, 1.0f)) * 31; float r = floorf(row); float c = floorf(col); float rf = row - r; float cf = col - c; int ri = int(r); int ci = int(c); return (ltcTable[ri][ci] * (1.0f - cf) + ltcTable[ri][ci + 1] * cf) * (1.0f - rf) + (ltcTable[ri + 1][ci] * (1.0f - cf) + ltcTable[ri + 1][ci + 1] * cf) * rf; } // Evaluation and sampling ccl_device Spectrum bsdf_ltc_sheen_eval(ccl_private const ShaderClosure *sc, const float3 wi, const float3 wo, ccl_private float *pdf) { ccl_private const LtcSheenBsdf *bsdf = (ccl_private const LtcSheenBsdf *)sc; float3 N = bsdf->N; if (dot(N, wo) < 0.0f) { *pdf = 0.0f; return zero_spectrum(); } // Work in a standard coordinate system where N is aligned with [0, 0, 1] float3 T, B; make_orthonormals(N, &T, &B); float3 wiStd = make_float3(dot(wi, T), dot(wi, B), dot(wi, N)); float3 woStd = make_float3(dot(wo, T), dot(wo, B), dot(wo, N)); // Rotate coordinate frame to align with the incident direction wi float phiStd = azimuth(wiStd); woStd = rotate_around_axis(woStd, make_float3(0.0f, 0.0f, 1.0f), -phiStd); // Evaluate the actual LTC in the local coordinate system. float ltc = eval_ltc(woStd, bsdf->A, bsdf->B); *pdf = ltc; return make_spectrum(bsdf->reflectance * ltc); } ccl_device int bsdf_ltc_sheen_sample(ccl_private const ShaderClosure *sc, float3 Ng, float3 wi, const float2 rand, ccl_private Spectrum *eval, ccl_private float3 *wo, ccl_private float *pdf) { ccl_private const LtcSheenBsdf *bsdf = (ccl_private const LtcSheenBsdf *)sc; // Work in a standard coordinate system where N is aligned with [0, 0, 1] float3 N = bsdf->N; float3 T, B; make_orthonormals(N, &T, &B); float3 wiStd = make_float3(dot(wi, T), dot(wi, B), dot(wi, N)); // Sample the actual LTC in the local coordinate system. float3 woStd = sample_ltc(rand, bsdf->A, bsdf->B); // Rotate coordinate frame to align with the incident direction wi float phiStd = azimuth(wiStd); woStd = rotate_around_axis(woStd, make_float3(0.0f, 0.0f, 1.0f), phiStd); // Transform back into original coordinate system *wo = woStd.x * T + woStd.y * B + woStd.z * N; if (dot(N, *wo) < 0.0f || dot(Ng, *wo) < 0.0f) { *pdf = 0.0f; *eval = zero_spectrum(); } else { *eval = bsdf_ltc_sheen_eval(sc, wi, *wo, pdf); } return LABEL_REFLECT | LABEL_DIFFUSE; } namespace { float3 ltcTable[32][32] = { { make_float3(0.01415f, 0.00060f, 0.00001), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000) }, { make_float3(0.01941f, -0.00232f, 0.05839), make_float3(0.01741f, -0.00581f, 0.00071), make_float3(0.04610f, -0.00769f, 0.00007), make_float3(0.10367f, -0.00740f, 0.00002), make_float3(0.06244f, -0.02445f, 0.00000), make_float3(0.23927f, -0.00242f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000) }, { make_float3(0.01927f, -0.01424f, 0.38834), make_float3(0.01895f, -0.00218f, 0.09768), make_float3(0.03002f, -0.00194f, 0.01072), make_float3(0.03912f, -0.00384f, 0.00150), make_float3(0.04938f, -0.00668f, 0.00039), make_float3(0.05239f, -0.01107f, 0.00012), make_float3(0.06018f, -0.00746f, 0.00006), make_float3(0.06520f, -0.01591f, 0.00003), make_float3(0.08253f, -0.01052f, 0.00002), make_float3(0.21093f, -0.01495f, 0.00002), make_float3(0.12785f, -0.01530f, 0.00001), make_float3(0.19030f, -0.01428f, 0.00001), make_float3(0.15254f, -0.01276f, 0.00000), make_float3(0.16585f, -0.02071f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000) }, { make_float3(0.03084f, -0.04909f, 0.55348), make_float3(0.03764f, -0.00710f, 0.29827), make_float3(0.03952f, -0.00236f, 0.11755), make_float3(0.04092f, -0.00201f, 0.03677), make_float3(0.04433f, -0.00298f, 0.00983), make_float3(0.05014f, -0.00546f, 0.00288), make_float3(0.05570f, -0.00834f, 0.00101), make_float3(0.06215f, -0.01121f, 0.00046), make_float3(0.06660f, -0.01294f, 0.00023), make_float3(0.07902f, -0.01692f, 0.00014), make_float3(0.10099f, -0.01639f, 0.00010), make_float3(0.10794f, -0.01738f, 0.00006), make_float3(0.10632f, -0.02032f, 0.00004), make_float3(0.12623f, -0.01947f, 0.00003), make_float3(0.13931f, -0.02354f, 0.00002), make_float3(0.15353f, -0.02910f, 0.00002), make_float3(0.16109f, -0.02565f, 0.00001), make_float3(0.14583f, -0.02903f, 0.00001), make_float3(0.27891f, -0.03066f, 0.00001), make_float3(0.22622f, -0.03044f, 0.00001), make_float3(0.18932f, -0.04045f, 0.00001), make_float3(0.20219f, -0.03226f, 0.00000), make_float3(0.30269f, -0.03443f, 0.00000), make_float3(0.38379f, -0.03023f, 0.00000), make_float3(0.39038f, -0.03610f, 0.00000), make_float3(0.46310f, -0.02022f, 0.00000), make_float3(0.44663f, -0.02590f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000), make_float3(0.00000f, 0.00000f, 0.00000) }, { make_float3(0.04118f, -0.10668f, 0.63273), make_float3(0.05152f, -0.02772f, 0.42999), make_float3(0.05724f, -0.00717f, 0.24931), make_float3(0.05863f, -0.00421f, 0.13040), make_float3(0.05952f, -0.00351f, 0.05910), make_float3(0.06149f, -0.00399f, 0.02430), make_float3(0.06448f, -0.00522f, 0.00981), make_float3(0.07004f, -0.00676f, 0.00433), make_float3(0.07774f, -0.00866f, 0.00200), make_float3(0.08632f, -0.01099f, 0.00105), make_float3(0.09629f, -0.01332f, 0.00062), make_float3(0.10592f, -0.01590f, 0.00039), make_float3(0.10718f, -0.01724f, 0.00024), make_float3(0.12207f, -0.02041f, 0.00018), make_float3(0.13413f, -0.02237f, 0.00013), make_float3(0.13702f, -0.02503f, 0.00009), make_float3(0.15294f, -0.02664f, 0.00008), make_float3(0.15121f, -0.02803f, 0.00006), make_float3(0.17652f, -0.03188f, 0.00005), make_float3(0.19532f, -0.03147f, 0.00004), make_float3(0.20831f, -0.03346f, 0.00003), make_float3(0.19762f, -0.03476f, 0.00002), make_float3(0.24202f, -0.03464f, 0.00002), make_float3(0.32995f, -0.03125f, 0.00002), make_float3(0.30857f, -0.03303f, 0.00002), make_float3(0.39596f, -0.03009f, 0.00002), make_float3(0.38346f, -0.03198f, 0.00001), make_float3(0.42503f, -0.02518f, 0.00001), make_float3(0.41592f, -0.03195f, 0.00001), make_float3(0.42512f, -0.01668f, 0.00001), make_float3(0.36714f, -0.02978f, 0.00001), make_float3(0.46502f, -0.00394f, 0.00001) }, { make_float3(0.05088f, -0.16006f, 0.67021), make_float3(0.06485f, -0.05552f, 0.50797), make_float3(0.07697f, -0.01274f, 0.34475), make_float3(0.08334f, -0.00932f, 0.22264), make_float3(0.08654f, -0.00582f, 0.13300), make_float3(0.08950f, -0.00507f, 0.07375), make_float3(0.09263f, -0.00531f, 0.03867), make_float3(0.09711f, -0.00616f, 0.02006), make_float3(0.10113f, -0.00792f, 0.01032), make_float3(0.10913f, -0.00949f, 0.00570), make_float3(0.11586f, -0.01167f, 0.00324), make_float3(0.12425f, -0.01421f, 0.00197), make_float3(0.12986f, -0.01635f, 0.00122), make_float3(0.13530f, -0.01858f, 0.00080), make_float3(0.15037f, -0.02237f, 0.00059), make_float3(0.15165f, -0.02450f, 0.00040), make_float3(0.15858f, -0.02714f, 0.00030), make_float3(0.16660f, -0.03145f, 0.00022), make_float3(0.18051f, -0.03321f, 0.00018), make_float3(0.18022f, -0.03295f, 0.00013), make_float3(0.19896f, -0.03492f, 0.00012), make_float3(0.21095f, -0.03365f, 0.00009), make_float3(0.21862f, -0.03733f, 0.00008), make_float3(0.23861f, -0.03930f, 0.00007), make_float3(0.25384f, -0.03879f, 0.00006), make_float3(0.27394f, -0.03580f, 0.00005), make_float3(0.28563f, -0.04089f, 0.00004), make_float3(0.29160f, -0.03604f, 0.00003), make_float3(0.29300f, -0.03863f, 0.00003), make_float3(0.33458f, -0.03575f, 0.00002), make_float3(0.36514f, -0.02621f, 0.00002), make_float3(0.38746f, 0.00124f, 0.00002) }, { make_float3(0.06054f, -0.18133f, 0.68765), make_float3(0.07710f, -0.08871f, 0.55387), make_float3(0.09569f, -0.02800f, 0.41042), make_float3(0.10917f, -0.01456f, 0.29613), make_float3(0.11813f, -0.01052f, 0.20481), make_float3(0.12469f, -0.00904f, 0.13463), make_float3(0.12958f, -0.00864f, 0.08432), make_float3(0.13406f, -0.00898f, 0.05135), make_float3(0.13801f, -0.01019f, 0.03073), make_float3(0.14324f, -0.01110f, 0.01861), make_float3(0.14801f, -0.01354f, 0.01132), make_float3(0.15359f, -0.01614f, 0.00706), make_float3(0.15945f, -0.01922f, 0.00454), make_float3(0.16688f, -0.02116f, 0.00304), make_float3(0.17552f, -0.02363f, 0.00212), make_float3(0.17956f, -0.02606f, 0.00145), make_float3(0.18275f, -0.02887f, 0.00102), make_float3(0.19293f, -0.03270f, 0.00078), make_float3(0.20081f, -0.03492f, 0.00059), make_float3(0.20817f, -0.03607f, 0.00046), make_float3(0.21658f, -0.03714f, 0.00036), make_float3(0.22866f, -0.03827f, 0.00030), make_float3(0.23912f, -0.03832f, 0.00025), make_float3(0.24736f, -0.03918f, 0.00020), make_float3(0.26573f, -0.04071f, 0.00017), make_float3(0.26821f, -0.04382f, 0.00013), make_float3(0.28767f, -0.03860f, 0.00012), make_float3(0.30592f, -0.03690f, 0.00010), make_float3(0.31228f, -0.04032f, 0.00008), make_float3(0.35297f, -0.03136f, 0.00008), make_float3(0.35570f, -0.02365f, 0.00006), make_float3(0.37077f, -0.00281f, 0.00006) }, { make_float3(0.07075f, -0.18042f, 0.69478), make_float3(0.08974f, -0.10806f, 0.58263), make_float3(0.11306f, -0.04959f, 0.45689), make_float3(0.13241f, -0.02418f, 0.35318), make_float3(0.14704f, -0.01632f, 0.26617), make_float3(0.15763f, -0.01333f, 0.19342), make_float3(0.16591f, -0.01204f, 0.13650), make_float3(0.17258f, -0.01177f, 0.09391), make_float3(0.17781f, -0.01198f, 0.06299), make_float3(0.18234f, -0.01284f, 0.04183), make_float3(0.18700f, -0.01408f, 0.02782), make_float3(0.19101f, -0.01571f, 0.01845), make_float3(0.19657f, -0.01794f, 0.01259), make_float3(0.20165f, -0.02041f, 0.00864), make_float3(0.20731f, -0.02235f, 0.00604), make_float3(0.21150f, -0.02516f, 0.00421), make_float3(0.21692f, -0.02822f, 0.00303), make_float3(0.22536f, -0.03168f, 0.00228), make_float3(0.23235f, -0.03631f, 0.00172), make_float3(0.23720f, -0.03840f, 0.00129), make_float3(0.24295f, -0.04024f, 0.00099), make_float3(0.25154f, -0.04645f, 0.00079), make_float3(0.26200f, -0.04435f, 0.00066), make_float3(0.26907f, -0.04644f, 0.00052), make_float3(0.28040f, -0.04369f, 0.00044), make_float3(0.28922f, -0.05007f, 0.00034), make_float3(0.30452f, -0.04809f, 0.00029), make_float3(0.31567f, -0.04719f, 0.00024), make_float3(0.33294f, -0.04179f, 0.00021), make_float3(0.35084f, -0.03537f, 0.00019), make_float3(0.37226f, -0.02633f, 0.00017), make_float3(0.37956f, 0.00196f, 0.00013) }, { make_float3(0.08222f, -0.17531f, 0.69794), make_float3(0.10394f, -0.13135f, 0.60100), make_float3(0.13034f, -0.08092f, 0.49085), make_float3(0.15361f, -0.04065f, 0.39802), make_float3(0.17244f, -0.02431f, 0.31773), make_float3(0.18620f, -0.01864f, 0.24683), make_float3(0.19671f, -0.01620f, 0.18787), make_float3(0.20509f, -0.01498f, 0.13964), make_float3(0.21199f, -0.01460f, 0.10220), make_float3(0.21726f, -0.01487f, 0.07319), make_float3(0.22245f, -0.01549f, 0.05252), make_float3(0.22702f, -0.01665f, 0.03747), make_float3(0.23174f, -0.01802f, 0.02685), make_float3(0.23571f, -0.01985f, 0.01915), make_float3(0.23966f, -0.02185f, 0.01375), make_float3(0.24384f, -0.02424f, 0.00996), make_float3(0.24877f, -0.02636f, 0.00733), make_float3(0.25548f, -0.02871f, 0.00552), make_float3(0.26047f, -0.03133f, 0.00415), make_float3(0.26863f, -0.03455f, 0.00322), make_float3(0.27404f, -0.03705f, 0.00247), make_float3(0.28088f, -0.03931f, 0.00194), make_float3(0.29010f, -0.04546f, 0.00157), make_float3(0.29704f, -0.04797f, 0.00126), make_float3(0.30559f, -0.04990f, 0.00102), make_float3(0.31519f, -0.04903f, 0.00082), make_float3(0.32721f, -0.04842f, 0.00069), make_float3(0.33828f, -0.04495f, 0.00059), make_float3(0.35424f, -0.04310f, 0.00048), make_float3(0.36868f, -0.03925f, 0.00042), make_float3(0.38570f, -0.02709f, 0.00037), make_float3(0.39707f, 0.00103f, 0.00030) }, { make_float3(0.09597f, -0.17397f, 0.69862), make_float3(0.11972f, -0.15003f, 0.61474), make_float3(0.14796f, -0.10394f, 0.51662), make_float3(0.17350f, -0.06278f, 0.43321), make_float3(0.19481f, -0.03698f, 0.35989), make_float3(0.21136f, -0.02667f, 0.29352), make_float3(0.22369f, -0.02186f, 0.23483), make_float3(0.23330f, -0.01962f, 0.18491), make_float3(0.24109f, -0.01854f, 0.14298), make_float3(0.24787f, -0.01810f, 0.10960), make_float3(0.25359f, -0.01829f, 0.08309), make_float3(0.25878f, -0.01882f, 0.06268), make_float3(0.26320f, -0.01990f, 0.04689), make_float3(0.26831f, -0.02103f, 0.03539), make_float3(0.27305f, -0.02243f, 0.02666), make_float3(0.27810f, -0.02425f, 0.02015), make_float3(0.28206f, -0.02611f, 0.01519), make_float3(0.28734f, -0.02809f, 0.01160), make_float3(0.29228f, -0.03045f, 0.00888), make_float3(0.29719f, -0.03211f, 0.00683), make_float3(0.30256f, -0.03413f, 0.00531), make_float3(0.30857f, -0.03666f, 0.00417), make_float3(0.31652f, -0.03882f, 0.00334), make_float3(0.32438f, -0.04150f, 0.00270), make_float3(0.33291f, -0.04323f, 0.00220), make_float3(0.34012f, -0.04376f, 0.00178), make_float3(0.35087f, -0.04590f, 0.00148), make_float3(0.36243f, -0.04591f, 0.00123), make_float3(0.37467f, -0.04202f, 0.00101), make_float3(0.38986f, -0.03859f, 0.00087), make_float3(0.40394f, -0.03046f, 0.00073), make_float3(0.41719f, 0.00025f, 0.00061) }, { make_float3(0.11173f, -0.17686f, 0.69840), make_float3(0.13694f, -0.16229f, 0.62456), make_float3(0.16797f, -0.12071f, 0.53780), make_float3(0.19358f, -0.08778f, 0.46227), make_float3(0.21571f, -0.05746f, 0.39486), make_float3(0.23427f, -0.03882f, 0.33234), make_float3(0.24900f, -0.03044f, 0.27724), make_float3(0.26011f, -0.02620f, 0.22722), make_float3(0.26884f, -0.02412f, 0.18345), make_float3(0.27668f, -0.02290f, 0.14737), make_float3(0.28326f, -0.02247f, 0.11687), make_float3(0.28928f, -0.02235f, 0.09223), make_float3(0.29445f, -0.02283f, 0.07219), make_float3(0.29932f, -0.02349f, 0.05639), make_float3(0.30454f, -0.02444f, 0.04424), make_float3(0.30943f, -0.02562f, 0.03460), make_float3(0.31431f, -0.02725f, 0.02709), make_float3(0.31861f, -0.02859f, 0.02113), make_float3(0.32326f, -0.03047f, 0.01656), make_float3(0.32881f, -0.03199f, 0.01309), make_float3(0.33479f, -0.03417f, 0.01041), make_float3(0.34094f, -0.03618f, 0.00831), make_float3(0.34705f, -0.03771f, 0.00665), make_float3(0.35341f, -0.03920f, 0.00534), make_float3(0.36079f, -0.04070f, 0.00434), make_float3(0.36863f, -0.04138f, 0.00355), make_float3(0.37512f, -0.04066f, 0.00288), make_float3(0.38607f, -0.04125f, 0.00241), make_float3(0.39611f, -0.03916f, 0.00200), make_float3(0.41085f, -0.03764f, 0.00170), make_float3(0.42341f, -0.02956f, 0.00142), make_float3(0.43959f, 0.00020f, 0.00123) }, { make_float3(0.12869f, -0.17952f, 0.69766), make_float3(0.15653f, -0.16921f, 0.63215), make_float3(0.18847f, -0.13634f, 0.55391), make_float3(0.21397f, -0.10854f, 0.48615), make_float3(0.23632f, -0.08164f, 0.42355), make_float3(0.25652f, -0.05663f, 0.36707), make_float3(0.27273f, -0.04256f, 0.31348), make_float3(0.28564f, -0.03522f, 0.26549), make_float3(0.29568f, -0.03124f, 0.22185), make_float3(0.30413f, -0.02895f, 0.18403), make_float3(0.31142f, -0.02760f, 0.15141), make_float3(0.31801f, -0.02688f, 0.12380), make_float3(0.32424f, -0.02653f, 0.10104), make_float3(0.32941f, -0.02669f, 0.08149), make_float3(0.33479f, -0.02714f, 0.06598), make_float3(0.33933f, -0.02784f, 0.05291), make_float3(0.34444f, -0.02878f, 0.04275), make_float3(0.34892f, -0.02988f, 0.03428), make_float3(0.35415f, -0.03136f, 0.02771), make_float3(0.35873f, -0.03261f, 0.02222), make_float3(0.36457f, -0.03429f, 0.01807), make_float3(0.36975f, -0.03567f, 0.01456), make_float3(0.37684f, -0.03742f, 0.01195), make_float3(0.38258f, -0.03792f, 0.00969), make_float3(0.39038f, -0.03954f, 0.00798), make_float3(0.39755f, -0.04002f, 0.00653), make_float3(0.40428f, -0.04014f, 0.00534), make_float3(0.41192f, -0.03889f, 0.00441), make_float3(0.42141f, -0.03739f, 0.00368), make_float3(0.43074f, -0.03386f, 0.00307), make_float3(0.44659f, -0.02810f, 0.00264), make_float3(0.46013f, 0.00013f, 0.00224) }, { make_float3(0.14693f, -0.17953f, 0.69641), make_float3(0.17828f, -0.17294f, 0.63746), make_float3(0.20991f, -0.14837f, 0.56861), make_float3(0.23513f, -0.12458f, 0.50592), make_float3(0.25809f, -0.10127f, 0.44888), make_float3(0.27850f, -0.07912f, 0.39646), make_float3(0.29576f, -0.05884f, 0.34628), make_float3(0.30999f, -0.04715f, 0.30001), make_float3(0.32128f, -0.04041f, 0.25727), make_float3(0.33053f, -0.03637f, 0.21872), make_float3(0.33854f, -0.03401f, 0.18530), make_float3(0.34549f, -0.03244f, 0.15569), make_float3(0.35212f, -0.03165f, 0.13073), make_float3(0.35806f, -0.03113f, 0.10901), make_float3(0.36371f, -0.03104f, 0.09059), make_float3(0.36901f, -0.03134f, 0.07509), make_float3(0.37416f, -0.03173f, 0.06205), make_float3(0.37907f, -0.03225f, 0.05112), make_float3(0.38378f, -0.03304f, 0.04199), make_float3(0.38887f, -0.03406f, 0.03458), make_float3(0.39366f, -0.03515f, 0.02839), make_float3(0.39953f, -0.03594f, 0.02356), make_float3(0.40534f, -0.03728f, 0.01946), make_float3(0.41134f, -0.03825f, 0.01604), make_float3(0.41832f, -0.03910f, 0.01337), make_float3(0.42583f, -0.03960f, 0.01115), make_float3(0.43323f, -0.03950f, 0.00925), make_float3(0.44084f, -0.03877f, 0.00766), make_float3(0.44897f, -0.03647f, 0.00639), make_float3(0.45832f, -0.03283f, 0.00536), make_float3(0.47095f, -0.02659f, 0.00456), make_float3(0.48340f, -0.00002f, 0.00390) }, { make_float3(0.16755f, -0.17802f, 0.69548), make_float3(0.20139f, -0.17499f, 0.64297), make_float3(0.23191f, -0.15708f, 0.57917), make_float3(0.25781f, -0.13619f, 0.52314), make_float3(0.28103f, -0.11601f, 0.47074), make_float3(0.30124f, -0.09763f, 0.42115), make_float3(0.31874f, -0.07926f, 0.37424), make_float3(0.33379f, -0.06262f, 0.33015), make_float3(0.34648f, -0.05277f, 0.29017), make_float3(0.35662f, -0.04616f, 0.25188), make_float3(0.36536f, -0.04217f, 0.21825), make_float3(0.37289f, -0.03952f, 0.18762), make_float3(0.37956f, -0.03771f, 0.16043), make_float3(0.38585f, -0.03664f, 0.13705), make_float3(0.39167f, -0.03576f, 0.11638), make_float3(0.39736f, -0.03561f, 0.09898), make_float3(0.40272f, -0.03531f, 0.08360), make_float3(0.40787f, -0.03537f, 0.07050), make_float3(0.41311f, -0.03577f, 0.05948), make_float3(0.41811f, -0.03606f, 0.04991), make_float3(0.42324f, -0.03657f, 0.04182), make_float3(0.42871f, -0.03725f, 0.03523), make_float3(0.43459f, -0.03790f, 0.02974), make_float3(0.44015f, -0.03830f, 0.02485), make_float3(0.44634f, -0.03850f, 0.02085), make_float3(0.45322f, -0.03897f, 0.01764), make_float3(0.46073f, -0.03886f, 0.01489), make_float3(0.46815f, -0.03764f, 0.01243), make_float3(0.47699f, -0.03576f, 0.01052), make_float3(0.48579f, -0.03199f, 0.00882), make_float3(0.49728f, -0.02678f, 0.00762), make_float3(0.50776f, -0.00003f, 0.00638) }, { make_float3(0.19101f, -0.17570f, 0.69518), make_float3(0.22471f, -0.17630f, 0.64677), make_float3(0.25559f, -0.16233f, 0.58896), make_float3(0.28173f, -0.14459f, 0.53726), make_float3(0.30495f, -0.12739f, 0.48924), make_float3(0.32541f, -0.11162f, 0.44375), make_float3(0.34337f, -0.09667f, 0.40045), make_float3(0.35848f, -0.08188f, 0.35844), make_float3(0.37152f, -0.06821f, 0.31901), make_float3(0.38267f, -0.05887f, 0.28296), make_float3(0.39205f, -0.05240f, 0.24905), make_float3(0.40013f, -0.04793f, 0.21813), make_float3(0.40731f, -0.04499f, 0.19041), make_float3(0.41385f, -0.04300f, 0.16557), make_float3(0.41996f, -0.04151f, 0.14360), make_float3(0.42572f, -0.04033f, 0.12396), make_float3(0.43136f, -0.03975f, 0.10719), make_float3(0.43675f, -0.03947f, 0.09240), make_float3(0.44210f, -0.03943f, 0.07951), make_float3(0.44729f, -0.03917f, 0.06811), make_float3(0.45254f, -0.03889f, 0.05809), make_float3(0.45786f, -0.03887f, 0.04960), make_float3(0.46336f, -0.03909f, 0.04242), make_float3(0.46904f, -0.03903f, 0.03607), make_float3(0.47514f, -0.03922f, 0.03098), make_float3(0.48162f, -0.03917f, 0.02650), make_float3(0.48829f, -0.03827f, 0.02249), make_float3(0.49548f, -0.03702f, 0.01911), make_float3(0.50339f, -0.03465f, 0.01630), make_float3(0.51184f, -0.03118f, 0.01385), make_float3(0.52150f, -0.02485f, 0.01187), make_float3(0.53151f, -0.00021f, 0.01004) }, { make_float3(0.21608f, -0.17314f, 0.69404), make_float3(0.24910f, -0.17599f, 0.65077), make_float3(0.28069f, -0.16514f, 0.59738), make_float3(0.30724f, -0.15021f, 0.55038), make_float3(0.33032f, -0.13557f, 0.50616), make_float3(0.35096f, -0.12161f, 0.46415), make_float3(0.36879f, -0.10876f, 0.42260), make_float3(0.38457f, -0.09665f, 0.38393), make_float3(0.39755f, -0.08454f, 0.34548), make_float3(0.40917f, -0.07412f, 0.31090), make_float3(0.41915f, -0.06463f, 0.27757), make_float3(0.42790f, -0.05848f, 0.24745), make_float3(0.43555f, -0.05371f, 0.21932), make_float3(0.44253f, -0.05046f, 0.19400), make_float3(0.44886f, -0.04821f, 0.17119), make_float3(0.45491f, -0.04588f, 0.15001), make_float3(0.46058f, -0.04438f, 0.13153), make_float3(0.46590f, -0.04412f, 0.11577), make_float3(0.47137f, -0.04304f, 0.10099), make_float3(0.47670f, -0.04215f, 0.08803), make_float3(0.48207f, -0.04161f, 0.07655), make_float3(0.48730f, -0.04144f, 0.06667), make_float3(0.49275f, -0.04059f, 0.05763), make_float3(0.49832f, -0.04032f, 0.05000), make_float3(0.50411f, -0.03974f, 0.04326), make_float3(0.51004f, -0.03905f, 0.03745), make_float3(0.51646f, -0.03800f, 0.03233), make_float3(0.52320f, -0.03639f, 0.02793), make_float3(0.53028f, -0.03436f, 0.02410), make_float3(0.53801f, -0.03031f, 0.02070), make_float3(0.54612f, -0.02493f, 0.01799), make_float3(0.55540f, 0.00004f, 0.01521) }, { make_float3(0.24162f, -0.17052f, 0.69373), make_float3(0.27454f, -0.17439f, 0.65370), make_float3(0.30746f, -0.16579f, 0.60556), make_float3(0.33408f, -0.15358f, 0.56229), make_float3(0.35697f, -0.14112f, 0.52099), make_float3(0.37775f, -0.12867f, 0.48220), make_float3(0.39587f, -0.11735f, 0.44396), make_float3(0.41165f, -0.10700f, 0.40686), make_float3(0.42539f, -0.09729f, 0.37145), make_float3(0.43716f, -0.08817f, 0.33754), make_float3(0.44735f, -0.07945f, 0.30538), make_float3(0.45639f, -0.07137f, 0.27528), make_float3(0.46453f, -0.06390f, 0.24688), make_float3(0.47188f, -0.05902f, 0.22137), make_float3(0.47840f, -0.05627f, 0.19867), make_float3(0.48473f, -0.05274f, 0.17677), make_float3(0.49060f, -0.05014f, 0.15718), make_float3(0.49627f, -0.04809f, 0.13948), make_float3(0.50156f, -0.04704f, 0.12389), make_float3(0.50672f, -0.04617f, 0.10988), make_float3(0.51205f, -0.04471f, 0.09688), make_float3(0.51720f, -0.04402f, 0.08560), make_float3(0.52258f, -0.04284f, 0.07528), make_float3(0.52812f, -0.04140f, 0.06603), make_float3(0.53331f, -0.04084f, 0.05819), make_float3(0.53939f, -0.03922f, 0.05082), make_float3(0.54508f, -0.03852f, 0.04467), make_float3(0.55110f, -0.03648f, 0.03901), make_float3(0.55773f, -0.03362f, 0.03404), make_float3(0.56432f, -0.02977f, 0.02969), make_float3(0.57204f, -0.02257f, 0.02565), make_float3(0.58012f, 0.00013f, 0.02208) }, { make_float3(0.26781f, -0.16726f, 0.69374), make_float3(0.30184f, -0.17130f, 0.65782), make_float3(0.33546f, -0.16494f, 0.61300), make_float3(0.36236f, -0.15479f, 0.57350), make_float3(0.38543f, -0.14389f, 0.53560), make_float3(0.40587f, -0.13313f, 0.49892), make_float3(0.42394f, -0.12315f, 0.46321), make_float3(0.43980f, -0.11396f, 0.42810), make_float3(0.45355f, -0.10555f, 0.39357), make_float3(0.46600f, -0.09751f, 0.36179), make_float3(0.47658f, -0.08994f, 0.33055), make_float3(0.48605f, -0.08303f, 0.30167), make_float3(0.49437f, -0.07661f, 0.27438), make_float3(0.50188f, -0.07012f, 0.24851), make_float3(0.50886f, -0.06435f, 0.22461), make_float3(0.51521f, -0.06079f, 0.20331), make_float3(0.52114f, -0.05751f, 0.18338), make_float3(0.52686f, -0.05490f, 0.16512), make_float3(0.53234f, -0.05237f, 0.14824), make_float3(0.53760f, -0.05016f, 0.13281), make_float3(0.54305f, -0.04763f, 0.11850), make_float3(0.54802f, -0.04636f, 0.10604), make_float3(0.55334f, -0.04452f, 0.09447), make_float3(0.55850f, -0.04311f, 0.08417), make_float3(0.56350f, -0.04186f, 0.07499), make_float3(0.56858f, -0.04059f, 0.06675), make_float3(0.57426f, -0.03828f, 0.05906), make_float3(0.57961f, -0.03642f, 0.05240), make_float3(0.58579f, -0.03293f, 0.04618), make_float3(0.59207f, -0.02837f, 0.04061), make_float3(0.59839f, -0.02183f, 0.03571), make_float3(0.60588f, 0.00014f, 0.03099) }, { make_float3(0.29552f, -0.16307f, 0.69478), make_float3(0.33034f, -0.16735f, 0.66097), make_float3(0.36464f, -0.16269f, 0.62010), make_float3(0.39162f, -0.15439f, 0.58318), make_float3(0.41468f, -0.14491f, 0.54812), make_float3(0.43479f, -0.13568f, 0.51374), make_float3(0.45273f, -0.12677f, 0.48033), make_float3(0.46884f, -0.11827f, 0.44784), make_float3(0.48278f, -0.11077f, 0.41543), make_float3(0.49535f, -0.10366f, 0.38456), make_float3(0.50635f, -0.09707f, 0.35481), make_float3(0.51611f, -0.09088f, 0.32656), make_float3(0.52482f, -0.08505f, 0.29983), make_float3(0.53261f, -0.07920f, 0.27402), make_float3(0.53981f, -0.07391f, 0.25049), make_float3(0.54631f, -0.06982f, 0.22916), make_float3(0.55239f, -0.06584f, 0.20899), make_float3(0.55818f, -0.06111f, 0.18974), make_float3(0.56348f, -0.05885f, 0.17283), make_float3(0.56875f, -0.05560f, 0.15672), make_float3(0.57406f, -0.05216f, 0.14161), make_float3(0.57898f, -0.04974f, 0.12804), make_float3(0.58395f, -0.04738f, 0.11552), make_float3(0.58890f, -0.04525f, 0.10412), make_float3(0.59356f, -0.04361f, 0.09392), make_float3(0.59866f, -0.04122f, 0.08435), make_float3(0.60366f, -0.03869f, 0.07566), make_float3(0.60857f, -0.03626f, 0.06785), make_float3(0.61392f, -0.03267f, 0.06058), make_float3(0.61896f, -0.02853f, 0.05418), make_float3(0.62446f, -0.02146f, 0.04812), make_float3(0.63114f, 0.00013f, 0.04224) }, { make_float3(0.32493f, -0.15800f, 0.69636), make_float3(0.36044f, -0.16239f, 0.66479), make_float3(0.39500f, -0.15918f, 0.62662), make_float3(0.42214f, -0.15229f, 0.59208), make_float3(0.44504f, -0.14422f, 0.55948), make_float3(0.46513f, -0.13589f, 0.52832), make_float3(0.48260f, -0.12801f, 0.49686), make_float3(0.49819f, -0.12058f, 0.46577), make_float3(0.51220f, -0.11368f, 0.43550), make_float3(0.52491f, -0.10715f, 0.40640), make_float3(0.53607f, -0.10121f, 0.37791), make_float3(0.54604f, -0.09561f, 0.35063), make_float3(0.55497f, -0.09044f, 0.32440), make_float3(0.56304f, -0.08553f, 0.29963), make_float3(0.57042f, -0.08073f, 0.27592), make_float3(0.57716f, -0.07643f, 0.25430), make_float3(0.58338f, -0.07244f, 0.23411), make_float3(0.58922f, -0.06816f, 0.21474), make_float3(0.59463f, -0.06506f, 0.19748), make_float3(0.59983f, -0.06156f, 0.18085), make_float3(0.60510f, -0.05721f, 0.16496), make_float3(0.60997f, -0.05394f, 0.15071), make_float3(0.61473f, -0.05071f, 0.13745), make_float3(0.61957f, -0.04764f, 0.12513), make_float3(0.62409f, -0.04512f, 0.11401), make_float3(0.62852f, -0.04243f, 0.10365), make_float3(0.63251f, -0.04049f, 0.09444), make_float3(0.63750f, -0.03634f, 0.08526), make_float3(0.64231f, -0.03217f, 0.07697), make_float3(0.64613f, -0.02798f, 0.06969), make_float3(0.65086f, -0.02084f, 0.06274), make_float3(0.65651f, -0.00002f, 0.05589) }, { make_float3(0.35603f, -0.15221f, 0.69769), make_float3(0.39159f, -0.15659f, 0.66832), make_float3(0.42682f, -0.15414f, 0.63306), make_float3(0.45440f, -0.14815f, 0.60175), make_float3(0.47706f, -0.14135f, 0.57114), make_float3(0.49652f, -0.13430f, 0.54130), make_float3(0.51370f, -0.12720f, 0.51227), make_float3(0.52869f, -0.12066f, 0.48316), make_float3(0.54234f, -0.11418f, 0.45520), make_float3(0.55442f, -0.10835f, 0.42705), make_float3(0.56541f, -0.10297f, 0.39979), make_float3(0.57520f, -0.09810f, 0.37306), make_float3(0.58426f, -0.09325f, 0.34799), make_float3(0.59238f, -0.08885f, 0.32368), make_float3(0.59985f, -0.08462f, 0.30051), make_float3(0.60666f, -0.08047f, 0.27914), make_float3(0.61307f, -0.07647f, 0.25902), make_float3(0.61890f, -0.07278f, 0.24017), make_float3(0.62438f, -0.06918f, 0.22242), make_float3(0.62953f, -0.06581f, 0.20569), make_float3(0.63458f, -0.06234f, 0.18950), make_float3(0.63958f, -0.05873f, 0.17436), make_float3(0.64422f, -0.05531f, 0.16053), make_float3(0.64882f, -0.05182f, 0.14758), make_float3(0.65331f, -0.04822f, 0.13555), make_float3(0.65733f, -0.04527f, 0.12469), make_float3(0.66150f, -0.04160f, 0.11431), make_float3(0.66582f, -0.03748f, 0.10458), make_float3(0.66990f, -0.03270f, 0.09545), make_float3(0.67332f, -0.02788f, 0.08731), make_float3(0.67675f, -0.02071f, 0.07957), make_float3(0.68186f, 0.00002f, 0.07179) }, { make_float3(0.38874f, -0.14547f, 0.69990), make_float3(0.42458f, -0.14938f, 0.67322), make_float3(0.46012f, -0.14757f, 0.63986), make_float3(0.48761f, -0.14257f, 0.61072), make_float3(0.51008f, -0.13671f, 0.58210), make_float3(0.52938f, -0.13046f, 0.55452), make_float3(0.54611f, -0.12415f, 0.52757), make_float3(0.56050f, -0.11845f, 0.49993), make_float3(0.57333f, -0.11284f, 0.47308), make_float3(0.58470f, -0.10773f, 0.44623), make_float3(0.59503f, -0.10264f, 0.42075), make_float3(0.60417f, -0.09831f, 0.39479), make_float3(0.61278f, -0.09386f, 0.37078), make_float3(0.62064f, -0.08976f, 0.34736), make_float3(0.62794f, -0.08593f, 0.32486), make_float3(0.63473f, -0.08203f, 0.30393), make_float3(0.64102f, -0.07852f, 0.28339), make_float3(0.64684f, -0.07474f, 0.26497), make_float3(0.65232f, -0.07134f, 0.24680), make_float3(0.65750f, -0.06788f, 0.23017), make_float3(0.66247f, -0.06462f, 0.21383), make_float3(0.66730f, -0.06134f, 0.19836), make_float3(0.67176f, -0.05808f, 0.18437), make_float3(0.67590f, -0.05475f, 0.17126), make_float3(0.68040f, -0.05106f, 0.15847), make_float3(0.68408f, -0.04764f, 0.14730), make_float3(0.68813f, -0.04367f, 0.13611), make_float3(0.69178f, -0.03955f, 0.12594), make_float3(0.69592f, -0.03412f, 0.11582), make_float3(0.69962f, -0.02813f, 0.10669), make_float3(0.70287f, -0.02016f, 0.09818), make_float3(0.70573f, 0.00006f, 0.09005) }, { make_float3(0.42286f, -0.13764f, 0.70253), make_float3(0.45893f, -0.14091f, 0.67808), make_float3(0.49450f, -0.13944f, 0.64711), make_float3(0.52171f, -0.13527f, 0.61953), make_float3(0.54404f, -0.13016f, 0.59306), make_float3(0.56282f, -0.12479f, 0.56710), make_float3(0.57891f, -0.11949f, 0.54128), make_float3(0.59290f, -0.11426f, 0.51588), make_float3(0.60505f, -0.10951f, 0.48993), make_float3(0.61587f, -0.10470f, 0.46536), make_float3(0.62546f, -0.10029f, 0.44072), make_float3(0.63399f, -0.09638f, 0.41598), make_float3(0.64186f, -0.09229f, 0.39289), make_float3(0.64911f, -0.08880f, 0.36972), make_float3(0.65567f, -0.08519f, 0.34812), make_float3(0.66186f, -0.08157f, 0.32779), make_float3(0.66775f, -0.07846f, 0.30734), make_float3(0.67323f, -0.07504f, 0.28886), make_float3(0.67844f, -0.07174f, 0.27113), make_float3(0.68333f, -0.06833f, 0.25452), make_float3(0.68809f, -0.06521f, 0.23828), make_float3(0.69262f, -0.06204f, 0.22301), make_float3(0.69697f, -0.05878f, 0.20869), make_float3(0.70127f, -0.05553f, 0.19491), make_float3(0.70529f, -0.05205f, 0.18216), make_float3(0.70896f, -0.04825f, 0.17048), make_float3(0.71278f, -0.04429f, 0.15888), make_float3(0.71635f, -0.03988f, 0.14822), make_float3(0.71997f, -0.03495f, 0.13785), make_float3(0.72323f, -0.02900f, 0.12826), make_float3(0.72673f, -0.02079f, 0.11891), make_float3(0.72944f, 0.00004f, 0.11016) }, { make_float3(0.45873f, -0.12835f, 0.70614), make_float3(0.49433f, -0.13100f, 0.68304), make_float3(0.52949f, -0.12981f, 0.65400), make_float3(0.55633f, -0.12616f, 0.62850), make_float3(0.57809f, -0.12174f, 0.60424), make_float3(0.59634f, -0.11714f, 0.57985), make_float3(0.61180f, -0.11273f, 0.55495), make_float3(0.62517f, -0.10827f, 0.53092), make_float3(0.63669f, -0.10407f, 0.50671), make_float3(0.64685f, -0.09994f, 0.48305), make_float3(0.65584f, -0.09624f, 0.45902), make_float3(0.66376f, -0.09244f, 0.43645), make_float3(0.67113f, -0.08921f, 0.41315), make_float3(0.67765f, -0.08575f, 0.39173), make_float3(0.68370f, -0.08256f, 0.37068), make_float3(0.68930f, -0.07941f, 0.35059), make_float3(0.69443f, -0.07619f, 0.33162), make_float3(0.69947f, -0.07326f, 0.31286), make_float3(0.70415f, -0.07019f, 0.29534), make_float3(0.70855f, -0.06708f, 0.27878), make_float3(0.71287f, -0.06409f, 0.26263), make_float3(0.71661f, -0.06080f, 0.24796), make_float3(0.72066f, -0.05775f, 0.23332), make_float3(0.72451f, -0.05456f, 0.21962), make_float3(0.72821f, -0.05117f, 0.20663), make_float3(0.73152f, -0.04735f, 0.19465), make_float3(0.73501f, -0.04351f, 0.18279), make_float3(0.73849f, -0.03929f, 0.17160), make_float3(0.74160f, -0.03433f, 0.16118), make_float3(0.74481f, -0.02845f, 0.15104), make_float3(0.74776f, -0.02023f, 0.14164), make_float3(0.75105f, 0.00006f, 0.13208) }, { make_float3(0.49554f, -0.11754f, 0.70978), make_float3(0.53027f, -0.11957f, 0.68862), make_float3(0.56475f, -0.11844f, 0.66139), make_float3(0.59075f, -0.11545f, 0.63717), make_float3(0.61170f, -0.11182f, 0.61414), make_float3(0.62919f, -0.10788f, 0.59143), make_float3(0.64398f, -0.10410f, 0.56846), make_float3(0.65664f, -0.10044f, 0.54542), make_float3(0.66758f, -0.09697f, 0.52211), make_float3(0.67700f, -0.09338f, 0.49989), make_float3(0.68535f, -0.09011f, 0.47731), make_float3(0.69283f, -0.08701f, 0.45504), make_float3(0.69943f, -0.08398f, 0.43352), make_float3(0.70556f, -0.08119f, 0.41218), make_float3(0.71100f, -0.07822f, 0.39227), make_float3(0.71624f, -0.07555f, 0.37245), make_float3(0.72083f, -0.07263f, 0.35421), make_float3(0.72523f, -0.06975f, 0.33639), make_float3(0.72925f, -0.06691f, 0.31941), make_float3(0.73339f, -0.06419f, 0.30275), make_float3(0.73715f, -0.06130f, 0.28712), make_float3(0.74070f, -0.05852f, 0.27199), make_float3(0.74402f, -0.05539f, 0.25799), make_float3(0.74744f, -0.05231f, 0.24427), make_float3(0.75049f, -0.04891f, 0.23147), make_float3(0.75399f, -0.04558f, 0.21879), make_float3(0.75685f, -0.04169f, 0.20716), make_float3(0.75973f, -0.03736f, 0.19611), make_float3(0.76249f, -0.03256f, 0.18534), make_float3(0.76538f, -0.02662f, 0.17518), make_float3(0.76785f, -0.01865f, 0.16553), make_float3(0.77115f, 0.00005f, 0.15588) }, { make_float3(0.53272f, -0.10493f, 0.71478), make_float3(0.56610f, -0.10643f, 0.69461), make_float3(0.59929f, -0.10534f, 0.66938), make_float3(0.62423f, -0.10298f, 0.64618), make_float3(0.64430f, -0.10006f, 0.62412), make_float3(0.66087f, -0.09686f, 0.60285), make_float3(0.67490f, -0.09377f, 0.58132), make_float3(0.68693f, -0.09079f, 0.55910), make_float3(0.69725f, -0.08792f, 0.53711), make_float3(0.70612f, -0.08524f, 0.51494), make_float3(0.71373f, -0.08232f, 0.49425), make_float3(0.72045f, -0.07970f, 0.47333), make_float3(0.72654f, -0.07708f, 0.45290), make_float3(0.73215f, -0.07461f, 0.43265), make_float3(0.73731f, -0.07219f, 0.41291), make_float3(0.74188f, -0.06976f, 0.39410), make_float3(0.74597f, -0.06728f, 0.37624), make_float3(0.74997f, -0.06490f, 0.35873), make_float3(0.75337f, -0.06230f, 0.34249), make_float3(0.75709f, -0.05978f, 0.32632), make_float3(0.76060f, -0.05720f, 0.31088), make_float3(0.76378f, -0.05462f, 0.29607), make_float3(0.76659f, -0.05180f, 0.28230), make_float3(0.76955f, -0.04891f, 0.26889), make_float3(0.77230f, -0.04571f, 0.25622), make_float3(0.77514f, -0.04252f, 0.24377), make_float3(0.77793f, -0.03908f, 0.23184), make_float3(0.78043f, -0.03509f, 0.22064), make_float3(0.78282f, -0.03041f, 0.21005), make_float3(0.78468f, -0.02457f, 0.20018), make_float3(0.78754f, -0.01737f, 0.19021), make_float3(0.78995f, 0.00006f, 0.18089) }, { make_float3(0.56932f, -0.09075f, 0.71955), make_float3(0.60103f, -0.09168f, 0.70070), make_float3(0.63267f, -0.09087f, 0.67652), make_float3(0.65651f, -0.08897f, 0.65469), make_float3(0.67543f, -0.08664f, 0.63411), make_float3(0.69104f, -0.08420f, 0.61379), make_float3(0.70419f, -0.08174f, 0.59365), make_float3(0.71550f, -0.07948f, 0.57227), make_float3(0.72506f, -0.07710f, 0.55184), make_float3(0.73326f, -0.07491f, 0.53105), make_float3(0.74047f, -0.07278f, 0.51035), make_float3(0.74675f, -0.07074f, 0.49002), make_float3(0.75230f, -0.06867f, 0.47031), make_float3(0.75728f, -0.06656f, 0.45135), make_float3(0.76209f, -0.06453f, 0.43250), make_float3(0.76616f, -0.06249f, 0.41451), make_float3(0.76990f, -0.06046f, 0.39705), make_float3(0.77334f, -0.05835f, 0.38038), make_float3(0.77650f, -0.05612f, 0.36453), make_float3(0.77934f, -0.05390f, 0.34929), make_float3(0.78214f, -0.05159f, 0.33447), make_float3(0.78495f, -0.04919f, 0.32031), make_float3(0.78732f, -0.04660f, 0.30694), make_float3(0.78980f, -0.04409f, 0.29376), make_float3(0.79245f, -0.04133f, 0.28119), make_float3(0.79502f, -0.03835f, 0.26903), make_float3(0.79706f, -0.03500f, 0.25765), make_float3(0.79938f, -0.03151f, 0.24642), make_float3(0.80116f, -0.02721f, 0.23605), make_float3(0.80364f, -0.02228f, 0.22580), make_float3(0.80529f, -0.01553f, 0.21630), make_float3(0.80743f, 0.00008f, 0.20694) }, { make_float3(0.60446f, -0.07481f, 0.72541), make_float3(0.63433f, -0.07540f, 0.70789), make_float3(0.66433f, -0.07476f, 0.68481), make_float3(0.68668f, -0.07333f, 0.66418), make_float3(0.70457f, -0.07166f, 0.64427), make_float3(0.71943f, -0.06986f, 0.62480), make_float3(0.73164f, -0.06808f, 0.60530), make_float3(0.74200f, -0.06634f, 0.58563), make_float3(0.75088f, -0.06465f, 0.56577), make_float3(0.75865f, -0.06301f, 0.54574), make_float3(0.76531f, -0.06140f, 0.52594), make_float3(0.77096f, -0.05975f, 0.50704), make_float3(0.77604f, -0.05817f, 0.48812), make_float3(0.78047f, -0.05654f, 0.46984), make_float3(0.78462f, -0.05499f, 0.45179), make_float3(0.78846f, -0.05337f, 0.43440), make_float3(0.79171f, -0.05168f, 0.41775), make_float3(0.79502f, -0.04998f, 0.40149), make_float3(0.79763f, -0.04815f, 0.38649), make_float3(0.80039f, -0.04639f, 0.37146), make_float3(0.80272f, -0.04448f, 0.35737), make_float3(0.80522f, -0.04252f, 0.34354), make_float3(0.80755f, -0.04044f, 0.33020), make_float3(0.80954f, -0.03811f, 0.31798), make_float3(0.81129f, -0.03571f, 0.30606), make_float3(0.81256f, -0.03305f, 0.29475), make_float3(0.81479f, -0.03031f, 0.28330), make_float3(0.81667f, -0.02709f, 0.27265), make_float3(0.81865f, -0.02350f, 0.26226), make_float3(0.82066f, -0.01932f, 0.25205), make_float3(0.82209f, -0.01368f, 0.24262), make_float3(0.82367f, 0.00002f, 0.23366) }, { make_float3(0.63783f, -0.05754f, 0.73110), make_float3(0.66580f, -0.05784f, 0.71450), make_float3(0.69379f, -0.05736f, 0.69314), make_float3(0.71493f, -0.05642f, 0.67318), make_float3(0.73184f, -0.05529f, 0.65409), make_float3(0.74566f, -0.05410f, 0.63543), make_float3(0.75715f, -0.05290f, 0.61665), make_float3(0.76684f, -0.05171f, 0.59776), make_float3(0.77502f, -0.05055f, 0.57875), make_float3(0.78192f, -0.04938f, 0.56005), make_float3(0.78802f, -0.04824f, 0.54142), make_float3(0.79346f, -0.04716f, 0.52249), make_float3(0.79805f, -0.04606f, 0.50438), make_float3(0.80183f, -0.04480f, 0.48754), make_float3(0.80557f, -0.04364f, 0.47040), make_float3(0.80900f, -0.04245f, 0.45369), make_float3(0.81218f, -0.04128f, 0.43725), make_float3(0.81485f, -0.03999f, 0.42211), make_float3(0.81744f, -0.03873f, 0.40702), make_float3(0.81962f, -0.03727f, 0.39305), make_float3(0.82179f, -0.03580f, 0.37945), make_float3(0.82385f, -0.03429f, 0.36620), make_float3(0.82598f, -0.03268f, 0.35338), make_float3(0.82778f, -0.03089f, 0.34141), make_float3(0.82910f, -0.02898f, 0.33004), make_float3(0.83055f, -0.02688f, 0.31907), make_float3(0.83184f, -0.02463f, 0.30846), make_float3(0.83322f, -0.02206f, 0.29842), make_float3(0.83509f, -0.01925f, 0.28818), make_float3(0.83626f, -0.01574f, 0.27866), make_float3(0.83803f, -0.01128f, 0.26919), make_float3(0.83936f, -0.00001f, 0.26038) }, { make_float3(0.66881f, -0.03902f, 0.73750), make_float3(0.69495f, -0.03917f, 0.72144), make_float3(0.72127f, -0.03890f, 0.70116), make_float3(0.74089f, -0.03836f, 0.68204), make_float3(0.75676f, -0.03768f, 0.66379), make_float3(0.76971f, -0.03701f, 0.64562), make_float3(0.78031f, -0.03631f, 0.62792), make_float3(0.78909f, -0.03559f, 0.61014), make_float3(0.79688f, -0.03488f, 0.59193), make_float3(0.80339f, -0.03421f, 0.57344), make_float3(0.80909f, -0.03354f, 0.55536), make_float3(0.81375f, -0.03284f, 0.53793), make_float3(0.81807f, -0.03212f, 0.52063), make_float3(0.82174f, -0.03140f, 0.50374), make_float3(0.82535f, -0.03066f, 0.48732), make_float3(0.82861f, -0.02992f, 0.47141), make_float3(0.83083f, -0.02915f, 0.45633), make_float3(0.83320f, -0.02828f, 0.44181), make_float3(0.83559f, -0.02745f, 0.42730), make_float3(0.83745f, -0.02649f, 0.41385), make_float3(0.84005f, -0.02553f, 0.40059), make_float3(0.84070f, -0.02440f, 0.38881), make_float3(0.84245f, -0.02332f, 0.37643), make_float3(0.84401f, -0.02210f, 0.36506), make_float3(0.84503f, -0.02076f, 0.35431), make_float3(0.84665f, -0.01940f, 0.34339), make_float3(0.84777f, -0.01782f, 0.33324), make_float3(0.84905f, -0.01601f, 0.32345), make_float3(0.84999f, -0.01390f, 0.31425), make_float3(0.85072f, -0.01143f, 0.30523), make_float3(0.85236f, -0.00812f, 0.29632), make_float3(0.85341f, 0.00002f, 0.28782) }, { make_float3(0.69740f, -0.01972f, 0.74339), make_float3(0.72178f, -0.01980f, 0.72804), make_float3(0.74630f, -0.01969f, 0.70892), make_float3(0.76475f, -0.01946f, 0.69082), make_float3(0.77931f, -0.01916f, 0.67367), make_float3(0.79173f, -0.01888f, 0.65573), make_float3(0.80171f, -0.01860f, 0.63826), make_float3(0.81003f, -0.01833f, 0.62090), make_float3(0.81725f, -0.01802f, 0.60355), make_float3(0.82283f, -0.01768f, 0.58677), make_float3(0.82781f, -0.01737f, 0.56971), make_float3(0.83251f, -0.01712f, 0.55229), make_float3(0.83628f, -0.01681f, 0.53567), make_float3(0.83983f, -0.01645f, 0.51970), make_float3(0.84284f, -0.01610f, 0.50407), make_float3(0.84559f, -0.01577f, 0.48879), make_float3(0.84790f, -0.01538f, 0.47446), make_float3(0.85013f, -0.01498f, 0.46044), make_float3(0.85214f, -0.01455f, 0.44710), make_float3(0.85384f, -0.01407f, 0.43403), make_float3(0.85537f, -0.01356f, 0.42174), make_float3(0.85665f, -0.01304f, 0.41005), make_float3(0.85860f, -0.01251f, 0.39844), make_float3(0.85961f, -0.01189f, 0.38755), make_float3(0.86039f, -0.01119f, 0.37756), make_float3(0.86098f, -0.01040f, 0.36805), make_float3(0.86192f, -0.00953f, 0.35846), make_float3(0.86278f, -0.00857f, 0.34911), make_float3(0.86425f, -0.00751f, 0.33962), make_float3(0.86491f, -0.00614f, 0.33144), make_float3(0.86581f, -0.00433f, 0.32300), make_float3(0.86677f, 0.00002f, 0.31508) }, { make_float3(0.72363f, 0.00000f, 0.74973), make_float3(0.74617f, -0.00002f, 0.73527), make_float3(0.76908f, 0.00000f, 0.71668), make_float3(0.78618f, -0.00002f, 0.69953), make_float3(0.79981f, -0.00003f, 0.68291), make_float3(0.81110f, -0.00001f, 0.66623), make_float3(0.82060f, -0.00001f, 0.64940), make_float3(0.82853f, -0.00004f, 0.63212), make_float3(0.83504f, -0.00002f, 0.61545), make_float3(0.84058f, -0.00003f, 0.59849), make_float3(0.84521f, -0.00005f, 0.58226), make_float3(0.84932f, -0.00002f, 0.56605), make_float3(0.85275f, -0.00000f, 0.55034), make_float3(0.85605f, -0.00001f, 0.53461), make_float3(0.85877f, -0.00001f, 0.51974), make_float3(0.86129f, -0.00001f, 0.50561), make_float3(0.86320f, -0.00005f, 0.49191), make_float3(0.86521f, -0.00004f, 0.47875), make_float3(0.86654f, -0.00002f, 0.46632), make_float3(0.86846f, -0.00002f, 0.45401), make_float3(0.86997f, -0.00001f, 0.44209), make_float3(0.87153f, 0.00003f, 0.43044), make_float3(0.87288f, 0.00002f, 0.42005), make_float3(0.87352f, 0.00003f, 0.40990), make_float3(0.87465f, 0.00004f, 0.39997), make_float3(0.87549f, 0.00003f, 0.39069), make_float3(0.87626f, 0.00006f, 0.38171), make_float3(0.87676f, 0.00004f, 0.37342), make_float3(0.87714f, 0.00006f, 0.36523), make_float3(0.87859f, 0.00006f, 0.35675), make_float3(0.87952f, 0.00009f, 0.34897), make_float3(0.87958f, 0.00003f, 0.34187) } }; } CCL_NAMESPACE_END