浏览代码

Precompute IBL samples on GPU

/main
Evgenii Golubev 8 年前
当前提交
846d4f8d
共有 10 个文件被更改,包括 120 次插入631 次删除
  1. 22
      Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/Lit.cs
  2. 2
      Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/Lit.hlsl
  3. 17
      Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/Resources/GGXConvolve.shader
  4. 30
      Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/SkyManager.cs
  5. 14
      Assets/ScriptableRenderLoop/ShaderLibrary/Common.hlsl
  6. 23
      Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl
  7. 49
      Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/Resources/PrecomputeIblGgxData.compute
  8. 9
      Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/Resources/PrecomputeIblGgxData.compute.meta
  9. 573
      Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/IblSampleData.GGX.cs
  10. 12
      Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/IblSampleData.GGX.cs.meta

22
Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/Lit.cs


// For image based lighting
private Material m_InitPreFGD;
private RenderTexture m_PreIntegratedFGD;
private Texture2D m_IblGgxSamples;
const int k_IblGgxMaxSampleCount = 89;
const int k_IblGgxMipCountMinusOne = 6; // UNITY_SPECCUBE_LOD_STEPS
// For area lighting
private Texture2D m_LtcGGXMatrix; // RGBA

return tex;
}
// Load LUT with four scalars in a tex2D
Texture2D LoadLUT(TextureFormat format, int width, int height, float[,] data)
{
int count = width * height;
Color[] pixels = new Color[count];
for (int i = 0; i < count; i++)
{
pixels[i] = new Color(data[i, 0], data[i, 1], data[i, 2], data[i, 3]);
}
return CreateLUT(width, height, format, pixels);
}
// Load LUT with one scalar in alpha of a tex2D
Texture2D LoadLUT(TextureFormat format, float[] LUTScalar)
{

public void Build()
{
m_InitPreFGD = CreateEngineMaterial("Hidden/HDRenderPipeline/PreIntegratedFGD");
m_IblGgxSamples = LoadLUT(TextureFormat.RGBAFloat, k_IblGgxMaxSampleCount, k_IblGgxMipCountMinusOne, s_IblGgxSampleData);
m_LtcGGXMatrix = LoadLUT(TextureFormat.RGBAHalf, s_LtcGGXMatrixData);
m_LtcDisneyDiffuseMatrix = LoadLUT(TextureFormat.RGBAHalf, s_LtcDisneyDiffuseMatrixData);

public void Cleanup()
{
Utilities.Destroy(m_InitPreFGD);
Utilities.Destroy(m_IblGgxSamples);
// TODO: how to delete RenderTexture ? or do we need to do it ?
isInit = false;

public void Bind()
{
Shader.SetGlobalTexture("_PreIntegratedFGD", m_PreIntegratedFGD);
Shader.SetGlobalTexture("_IblGgxSamples", m_IblGgxSamples);
Shader.SetGlobalTexture("_LtcGGXMatrix", m_LtcGGXMatrix);
Shader.SetGlobalTexture("_LtcDisneyDiffuseMatrix", m_LtcDisneyDiffuseMatrix);
Shader.SetGlobalTexture("_LtcMultiGGXFresnelDisneyDiffuse", m_LtcMultiGGXFresnelDisneyDiffuse);

2
Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/Lit.hlsl


float3 iblR = reflect(-V, iblNormalWS);
preLightData.iblDirWS = GetSpecularDominantDir(bsdfData.normalWS, iblR, bsdfData.roughness, preLightData.NdotV);
preLightData.iblMipLevel = perceptualRoughnessToMipmapLevel(bsdfData.perceptualRoughness);
preLightData.iblMipLevel = PerceptualRoughnessToMipmapLevel(bsdfData.perceptualRoughness);
// Area light specific
// UVs for sampling the LUTs

17
Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/Resources/GGXConvolve.shader


// Remove view-dependency from GGX, effectively making the BSDF isotropic.
float3 V = N;
float perceptualRoughness = mipmapLevelToPerceptualRoughness(_Level);
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness);
float perceptualRoughness = MipmapLevelToPerceptualRoughness(_Level);
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness);
uint sampleCount = GetIBLRuntimeFilterSampleCount(_Level);
#ifdef USE_MIS
float4 val = IntegrateLD_MIS(TEXTURECUBE_PARAM(_MainTex, sampler_MainTex),

1024,
false);
#else
uint sampleCount = 0;
switch (_Level)
{
case 1: sampleCount = 21; break;
case 2: sampleCount = 34; break;
case 3: sampleCount = 55; break;
case 4: sampleCount = 89; break;
case 5: sampleCount = 89; break;
case 6: sampleCount = 89; break; // UNITY_SPECCUBE_LOD_STEPS
}
float4 val = IntegrateLD(TEXTURECUBE_PARAM(_MainTex, sampler_MainTex),
_IblGgxSamples,
V, N,

30
Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/SkyManager.cs


RenderTexture m_SkyboxGGXCubemapRT = null;
RenderTexture m_SkyboxMarginalRowCdfRT = null;
RenderTexture m_SkyboxConditionalCdfRT = null;
RenderTexture m_IblGgxSamples = null;
ComputeShader m_InitIblGgxSamples = null;
const int k_IblGgxMaxSampleCount = 89;
const int k_IblGgxMipCountMinusOne = 6; // UNITY_SPECCUBE_LOD_STEPS
ComputeShader m_BuildProbabilityTablesCS = null;
int m_ConditionalDensitiesKernel = -1;

if (m_Renderer != null)
m_Renderer.Build();
m_InitIblGgxSamples = Resources.Load<ComputeShader>("PrecomputeIblGgxData");
// TODO: We need to have an API to send our sky information to Enlighten. For now use a workaround through skybox/cubemap material...
m_StandardSkyboxMaterial = Utilities.CreateEngineMaterial("Skybox/Cubemap");
m_GGXConvolveMaterial = Utilities.CreateEngineMaterial("Hidden/HDRenderPipeline/GGXConvolve");

public void Cleanup()
{
Utilities.Destroy(m_IblGgxSamples);
Utilities.Destroy(m_StandardSkyboxMaterial);
Utilities.Destroy(m_GGXConvolveMaterial);
Utilities.Destroy(m_SkyboxCubemapRT);

return;
}
if (m_IblGgxSamples == null)
{
// Precompute the samples. It is done only once (lazy initialization).
m_IblGgxSamples = new RenderTexture(k_IblGgxMaxSampleCount, k_IblGgxMipCountMinusOne, 1, RenderTextureFormat.ARGBFloat);
m_IblGgxSamples.dimension = TextureDimension.Tex2D;
m_IblGgxSamples.useMipMap = false;
m_IblGgxSamples.autoGenerateMips = false;
m_IblGgxSamples.enableRandomWrite = true;
m_IblGgxSamples.filterMode = FilterMode.Point;
m_IblGgxSamples.Create();
int kernel = m_InitIblGgxSamples.FindKernel("PrecomputeIblGgxData");
m_InitIblGgxSamples.SetTexture(kernel, "output", m_IblGgxSamples);
var cmd = new CommandBuffer();
cmd.name = "Init IBL GGX Samples";
cmd.DispatchCompute(m_InitIblGgxSamples, kernel, 1, 1, 1);
renderContext.ExecuteCommandBuffer(cmd);
cmd.Dispose();
}
if (m_useMIS)
{
BuildProbabilityTables(renderContext);

float invOmegaP = (6.0f * input.width * input.width) / (4.0f * Mathf.PI); // Solid angle associated to a pixel of the cubemap;
m_GGXConvolveMaterial.SetTexture("_MainTex", input);
m_GGXConvolveMaterial.SetTexture("_IblGgxSamples", m_IblGgxSamples);
m_GGXConvolveMaterial.SetFloat("_MaxLevel", mipCount - 1);
m_GGXConvolveMaterial.SetFloat("_InvOmegaP", invOmegaP);

14
Assets/ScriptableRenderLoop/ShaderLibrary/Common.hlsl


return x * x * (3.0 - (2.0 * x));
}
const float3x3 k_identity3x3 = {1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0};
static const float3x3 k_identity3x3 = {1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0};
const float4x4 k_identity4x4 = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0 };
static const float4x4 k_identity4x4 = {1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0};
// Using pow often result to a warning like this
// "pow(f, e) will not work for negative f, use abs(f) or conditionally handle negative values if you expect them"

23
Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl


// approximating the cone of the specular lobe, and then computing the MIP map level
// which (approximately) covers the footprint of the lobe with a single texel.
// Improves the perceptual roughness distribution.
float perceptualRoughnessToMipmapLevel(float perceptualRoughness)
float PerceptualRoughnessToMipmapLevel(float perceptualRoughness)
{
perceptualRoughness = perceptualRoughness * (1.7 - 0.7 * perceptualRoughness);

// which (approximately) covers the footprint of the lobe with a single texel.
// Improves the perceptual roughness distribution and adds reflection (contact) hardening.
// TODO: optimize!
float perceptualRoughnessToMipmapLevel(float perceptualRoughness, float NdotR)
float PerceptualRoughnessToMipmapLevel(float perceptualRoughness, float NdotR)
{
float m = PerceptualRoughnessToRoughness(perceptualRoughness);

}
// The inverse of the *approximated* version of perceptualRoughnessToMipmapLevel().
float mipmapLevelToPerceptualRoughness(float mipmapLevel)
float MipmapLevelToPerceptualRoughness(float mipmapLevel)
{
float perceptualRoughness = saturate(mipmapLevel / UNITY_SPECCUBE_LOD_STEPS);

}
return acc / sampleCount;
}
uint GetIBLRuntimeFilterSampleCount(uint mipLevel)
{
uint sampleCount = 0;
switch (mipLevel)
{
case 1: sampleCount = 21; break;
case 2: sampleCount = 34; break;
case 3: sampleCount = 55; break;
case 4: sampleCount = 89; break;
case 5: sampleCount = 89; break;
case 6: sampleCount = 89; break; // UNITY_SPECCUBE_LOD_STEPS
}
return sampleCount;
}
// Ref: Listing 19 in "Moving Frostbite to PBR"

49
Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/Resources/PrecomputeIblGgxData.compute


// Precomputes data for IntegrateLD(). See that function for a detailed description.
#include "Common.hlsl"
#include "ImageBasedLighting.hlsl"
#define MAX_IBL_SAMPLE_CNT 89
RWTexture2D<float4> output; // [MAX_SAMPLE_CNT x UNITY_SPECCUBE_LOD_STEPS]
#pragma kernel PrecomputeIblGgxData
[numthreads(MAX_IBL_SAMPLE_CNT, UNITY_SPECCUBE_LOD_STEPS, 1)]
void PrecomputeIblGgxData(uint3 groupThreadId : SV_GroupThreadID)
{
uint sampleIndex = groupThreadId.x;
uint mipLevel = groupThreadId.y + 1;
uint sampleCount = GetIBLRuntimeFilterSampleCount(mipLevel);
if (sampleIndex >= sampleCount)
{
output[groupThreadId.xy] = float4(0, 0, 0, 0);
return;
}
float perceptualRoughness = MipmapLevelToPerceptualRoughness(mipLevel);
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness);
float bias = 0.5 * roughness;
float2 u = Fibonacci2d(sampleIndex, sampleCount);
u.x = lerp(u.x, 0, bias);
float3 localL;
float NdotL, NdotH, VdotH;
SampleGGXDir(u, float3(0, 0, 1), k_identity3x3, roughness, localL, NdotL, NdotH, VdotH, true);
if (NdotL <= 0)
{
// We are not supposed to generate wasteful samples.
output[groupThreadId.xy] = float4(0, 0, 0, 0);
return;
}
float pdf = D_GGX(NdotH, roughness) * 0.25;
float omegaS = rcp(sampleCount * pdf);
output[groupThreadId.xy] = float4(localL, omegaS);
}

9
Assets/ScriptableRenderLoop/HDRenderPipeline/Sky/Resources/PrecomputeIblGgxData.compute.meta


fileFormatVersion: 2
guid: d1d990f8fa3bd5040b4ceb3aaa64fa07
timeCreated: 1484498071
licenseType: Pro
ComputeShaderImporter:
currentAPIMask: 4
userData:
assetBundleName:
assetBundleVariant:

573
Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/IblSampleData.GGX.cs


using UnityEngine;
using UnityEngine.Rendering;
using System;
namespace UnityEngine.Experimental.Rendering.HDPipeline
{
namespace Lit
{
public partial class RenderLoop : Object
{
// This LUT contains light sample directions (in local space) and the
// associated solid angles obtained by importance sampling GGX with V = N.
// 2D Fibonacci point sets were used for sampling.
// GGX importance sampling bias was applied: bias = 0.5 * roughness.
// Texture dimensions: MAX_SAMPLE_CNT(89) x MIP_CNT_MINUS_ONE(6).
// The first row corresponds to the MIP level 1.
static float[,] s_IblGgxSampleData = new float[k_IblGgxMaxSampleCount * k_IblGgxMipCountMinusOne, 4]
{
// MIP level 1 | 21 samples | 0.010 roughness | 0.005 bias
{0.00000000f, 0.00000000f, 1.00000000f, 0.00006565f},
{-0.00343319f, -0.00318553f, 0.99998903f, 0.00007238f},
{0.00050561f, 0.00674687f, 0.99997711f, 0.00008006f},
{0.00532545f, -0.00667790f, 0.99996352f, 0.00008929f},
{-0.01001200f, 0.00150906f, 0.99994874f, 0.00009990f},
{0.00964864f, 0.00657834f, 0.99993181f, 0.00011279f},
{-0.00293958f, -0.01287919f, 0.99991274f, 0.00012824f},
{-0.00738078f, 0.01278385f, 0.99989104f, 0.00014703f},
{0.01564237f, -0.00482501f, 0.99986601f, 0.00017029f},
{-0.01627065f, -0.00783556f, 0.99983692f, 0.00019948f},
{0.00726336f, 0.01850682f, 0.99980235f, 0.00023716f},
{0.00798533f, -0.02034621f, 0.99976110f, 0.00028638f},
{-0.02165784f, 0.01042982f, 0.99971104f, 0.00035236f},
{0.02534001f, 0.00781633f, 0.99964833f, 0.00044463f},
{-0.01469555f, -0.02545355f, 0.99956799f, 0.00057854f},
{-0.00730240f, 0.03199312f, 0.99946147f, 0.00078305f},
{0.03062413f, -0.02087907f, 0.99931294f, 0.00112004f},
{-0.04211283f, -0.00634747f, 0.99909270f, 0.00173060f},
{0.03140466f, 0.03938041f, 0.99873060f, 0.00302138f},
{0.00469370f, -0.06262814f, 0.99802589f, 0.00655750f},
{-0.06505067f, 0.06035785f, 0.99605495f, 0.02363589f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
// MIP level 2 | 34 samples | 0.046 roughness | 0.023 bias
{0.00000000f, 0.00000000f, 1.00000000f, 0.00079176f},
{-0.01177001f, -0.01072978f, 0.99987316f, 0.00083924f},
{0.00210823f, 0.02275135f, 0.99973893f, 0.00089095f},
{0.01713089f, -0.02268498f, 0.99959588f, 0.00094778f},
{-0.03278111f, 0.00612786f, 0.99944383f, 0.00101019f},
{0.03222347f, 0.01995195f, 0.99928147f, 0.00107890f},
{-0.01155654f, -0.04061696f, 0.99910796f, 0.00115493f},
{-0.02069133f, 0.04155389f, 0.99892199f, 0.00123921f},
{0.04712203f, -0.01825520f, 0.99872226f, 0.00133309f},
{-0.05093895f, -0.01973387f, 0.99850684f, 0.00143816f},
{0.02617586f, 0.05256835f, 0.99827421f, 0.00155610f},
{0.01720255f, -0.06046094f, 0.99802232f, 0.00168910f},
{-0.05702727f, 0.03530983f, 0.99774808f, 0.00184009f},
{0.07016677f, 0.01311624f, 0.99744904f, 0.00201205f},
{-0.04569431f, -0.06050879f, 0.99712116f, 0.00220939f},
{-0.00742077f, 0.08008410f, 0.99676049f, 0.00243726f},
{0.06298404f, -0.05741762f, 0.99636149f, 0.00270221f},
{-0.09026616f, -0.00000001f, 0.99591774f, 0.00301306f},
{0.07063522f, 0.06439260f, 0.99542165f, 0.00338059f},
{-0.00934018f, -0.10079834f, 0.99486297f, 0.00381970f},
{-0.06464887f, 0.08560856f, 0.99422920f, 0.00435034f},
{0.11185911f, -0.02091047f, 0.99350411f, 0.00499972f},
{-0.10278057f, -0.06363869f, 0.99266630f, 0.00580645f},
{0.03521204f, 0.12375664f, 0.99168760f, 0.00682504f},
{0.06120121f, -0.12290888f, 0.99052912f, 0.00813722f},
{-0.13707662f, 0.05310382f, 0.98913598f, 0.00986752f},
{0.14739041f, 0.05709840f, 0.98742890f, 0.01221541f},
{-0.07617619f, -0.15298057f, 0.98528886f, 0.01551215f},
{-0.05093374f, 0.17901641f, 0.98252672f, 0.02034893f},
{0.17403820f, -0.10776073f, 0.97882491f, 0.02785896f},
{-0.22434834f, -0.04193730f, 0.97360629f, 0.04044538f},
{0.15648657f, 0.20722081f, 0.96569735f, 0.06397969f},
{0.02815735f, -0.30387148f, 0.95229685f, 0.11611945f},
{-0.28144234f, 0.25656903f, 0.92464179f, 0.27248538f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
// MIP level 3 | 55 samples | 0.117 roughness | 0.059 bias
{0.00000000f, 0.00000000f, 1.00000000f, 0.00313998f},
{-0.02278881f, -0.02091539f, 0.99952149f, 0.00324871f},
{0.00377568f, 0.04395950f, 0.99902618f, 0.00336326f},
{0.03328645f, -0.04316663f, 0.99851328f, 0.00348393f},
{-0.06257077f, 0.01082829f, 0.99798185f, 0.00361119f},
{0.06026313f, 0.03872871f, 0.99743092f, 0.00374558f},
{-0.02013302f, -0.07659405f, 0.99685913f, 0.00388764f},
{-0.04029320f, 0.07636393f, 0.99626547f, 0.00403787f},
{0.08776528f, -0.03131456f, 0.99564886f, 0.00419699f},
{-0.09192818f, -0.03884914f, 0.99500751f, 0.00436574f},
{0.04413510f, 0.09664211f, 0.99434012f, 0.00454485f},
{0.03478301f, -0.10705069f, 0.99364501f, 0.00473529f},
{-0.10342781f, 0.05840831f, 0.99292046f, 0.00493790f},
{0.12168971f, 0.02829770f, 0.99216467f, 0.00515378f},
{-0.07397142f, -0.10818019f, 0.99137545f, 0.00538413f},
{-0.01951802f, 0.13575242f, 0.99055052f, 0.00563030f},
{0.11089097f, -0.09067502f, 0.98968744f, 0.00589379f},
{-0.14911324f, -0.00852704f, 0.98878342f, 0.00617614f},
{0.10837391f, 0.11151395f, 0.98783582f, 0.00647926f},
{-0.00461711f, -0.16162941f, 0.98684072f, 0.00680538f},
{-0.10998456f, 0.12692952f, 0.98579532f, 0.00715656f},
{0.17314994f, -0.01986707f, 0.98469502f, 0.00753581f},
{-0.14620167f, -0.10622229f, 0.98353547f, 0.00794602f},
{0.03718640f, 0.18352085f, 0.98231214f, 0.00839059f},
{0.10013434f, -0.16605377f, 0.98101944f, 0.00887353f},
{-0.19257875f, 0.05654553f, 0.97965103f, 0.00939950f},
{0.18635695f, 0.09162545f, 0.97820032f, 0.00997359f},
{-0.07792884f, -0.20015629f, 0.97665983f, 0.01060181f},
{-0.08058599f, 0.20698093f, 0.97502047f, 0.01129147f},
{0.20608941f, -0.10132726f, 0.97327280f, 0.01205063f},
{-0.22780928f, -0.06689001f, 0.97140545f, 0.01288911f},
{0.12675533f, 0.21020247f, 0.96940601f, 0.01381805f},
{0.05040024f, -0.24873354f, 0.96725982f, 0.01485126f},
{-0.21231350f, 0.15425555f, 0.96494979f, 0.01600486f},
{0.26966494f, 0.03094278f, 0.96245694f, 0.01729820f},
{-0.18390264f, -0.21223591f, 0.95975822f, 0.01875504f},
{-0.00829959f, 0.29053900f, 0.95682716f, 0.02040401f},
{0.20976071f, -0.21583579f, 0.95363271f, 0.02228018f},
{-0.31132311f, 0.01780117f, 0.95013738f, 0.02442765f},
{0.25028002f, 0.20465267f, 0.94629663f, 0.02690127f},
{-0.04774154f, -0.33203915f, 0.94205672f, 0.02977046f},
{-0.19664462f, 0.28758112f, 0.93735158f, 0.03312462f},
{0.35278621f, -0.08203682f, 0.93210077f, 0.03707916f},
{-0.32829332f, -0.18539429f, 0.92620331f, 0.04178653f},
{0.12144668f, 0.37378061f, 0.91953182f, 0.04745066f},
{0.17047039f, -0.37327704f, 0.91192323f, 0.05434978f},
{-0.39543182f, 0.16711211f, 0.90316510f, 0.06287069f},
{0.42392790f, 0.15125988f, 0.89297569f, 0.07356459f},
{-0.22081040f, -0.41848409f, 0.88097322f, 0.08723815f},
{-0.12684350f, 0.48256609f, 0.86662602f, 0.10511132f},
{0.44428018f, -0.28551739f, 0.84917307f, 0.12909718f},
{-0.55326670f, -0.09574822f, 0.82748306f, 0.16233879f},
{0.36655140f, 0.47535142f, 0.79980057f, 0.21029000f},
{0.05529571f, -0.64374053f, 0.76324350f, 0.28310764f},
{-0.51677507f, 0.47429970f, 0.71272951f, 0.40150756f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
{0.00000000f, 0.00000000f, 0.00000000f, 0.00000000f},
// MIP level 4 | 89 samples | 0.242 roughness | 0.121 bias
{0.00000000f, 0.00000000f, 1.00000000f, 0.00825416f},
{-0.03560546f, -0.03259428f, 0.99883431f, 0.00840986f},
{0.00604293f, 0.06829937f, 0.99764657f, 0.00857000f},
{0.05125186f, -0.06699660f, 0.99643606f, 0.00873476f},
{-0.09632101f, 0.01717890f, 0.99520206f, 0.00890432f},
{0.09282251f, 0.05881506f, 0.99394399f, 0.00907889f},
{-0.03164188f, -0.11671428f, 0.99266130f, 0.00925861f},
{-0.06019185f, 0.11660332f, 0.99135286f, 0.00944373f},
{0.13224782f, -0.04872275f, 0.99001843f, 0.00963444f},
{-0.13901287f, -0.05686359f, 0.98865670f, 0.00983101f},
{0.06793235f, 0.14383601f, 0.98726708f, 0.01003367f},
{0.04954604f, -0.16014795f, 0.98584872f, 0.01024264f},
{-0.15185000f, 0.08886627f, 0.98440051f, 0.01045821f},
{0.17991231f, 0.03868398f, 0.98292172f, 0.01068067f},
{-0.11115526f, -0.15644827f, 0.98141146f, 0.01091029f},
{-0.02460236f, 0.19812216f, 0.97986853f, 0.01114738f},
{0.15769863f, -0.13444763f, 0.97829187f, 0.01139232f},
{-0.21456523f, -0.00757589f, 0.97668022f, 0.01164540f},
{0.15840127f, 0.15562946f, 0.97503257f, 0.01190706f},
{-0.01213806f, -0.22901207f, 0.97334790f, 0.01217755f},
{-0.15025344f, 0.18267325f, 0.97162467f, 0.01245739f},
{0.24123199f, -0.03428965f, 0.96986145f, 0.01274703f},
{-0.20692597f, -0.14158820f, 0.96805698f, 0.01304688f},
{0.05862306f, 0.25100112f, 0.96621007f, 0.01335739f},
{0.12966399f, -0.23081671f, 0.96431887f, 0.01367914f},
{-0.25810486f, 0.08487367f, 0.96238160f, 0.01401269f},
{0.25400969f, 0.11452697f, 0.96039712f, 0.01435854f},
{-0.11275995f, -0.26234561f, 0.95836318f, 0.01471740f},
{-0.09624267f, 0.27616903f, 0.95627815f, 0.01508983f},
{0.26354322f, -0.14199357f, 0.95413983f, 0.01547666f},
{-0.29696217f, -0.07490728f, 0.95194662f, 0.01587847f},
{0.17226347f, 0.26153949f, 0.94969600f, 0.01629617f},
{0.05062981f, -0.31606454f, 0.94738573f, 0.01673057f},
{-0.25619525f, 0.20325762f, 0.94501334f, 0.01718258f},
{0.33315820f, 0.02355580f, 0.94257665f, 0.01765313f},
{-0.23463860f, -0.24740277f, 0.94007266f, 0.01814332f},
{0.00614264f, 0.34793523f, 0.93749851f, 0.01865423f},
{0.23507178f, -0.26607120f, 0.93485147f, 0.01918700f},
{-0.36009899f, 0.03827932f, 0.93212843f, 0.01974289f},
{0.29720083f, 0.21914646f, 0.92932582f, 0.02032332f},
{-0.07262582f, -0.36936998f, 0.92644006f, 0.02092975f},
{-0.19960216f, 0.32766762f, 0.92346787f, 0.02156367f},
{0.37548077f, -0.10894589f, 0.92040473f, 0.02222687f},
{-0.35711432f, -0.17643218f, 0.91724652f, 0.02292120f},
{0.14696646f, 0.37818596f, 0.91398913f, 0.02364852f},
{0.14967021f, -0.38517094f, 0.91062737f, 0.02441104f},
{-0.37726033f, 0.18639094f, 0.90715653f, 0.02521095f},
{0.41147003f, 0.11938291f, 0.90357071f, 0.02605097f},
{-0.22691552f, -0.37249553f, 0.89986467f, 0.02693362f},
{-0.08565241f, 0.43564937f, 0.89603198f, 0.02786187f},
{0.36371121f, -0.26820251f, 0.89206588f, 0.02883899f},
{-0.45734575f, -0.04861132f, 0.88795936f, 0.02986844f},
{0.30989701f, 0.35075530f, 0.88370508f, 0.03095402f},
{0.00840139f, -0.47620389f, 0.87929469f, 0.03209981f},
{-0.33348951f, 0.35163951f, 0.87471962f, 0.03331044f},
{0.49187535f, -0.03478956f, 0.86997032f, 0.03459087f},
{-0.39304408f, -0.31181407f, 0.86503661f, 0.03594662f},
{0.08075088f, 0.50402218f, 0.85990751f, 0.03738363f},
{0.28565308f, -0.43371618f, 0.85457152f, 0.03890853f},
{-0.51232064f, 0.12923045f, 0.84901536f, 0.04052879f},
{0.47324473f, 0.25497067f, 0.84322554f, 0.04225226f},
{-0.17998630f, -0.51645249f, 0.83718681f, 0.04408810f},
{-0.21972615f, 0.51122838f, 0.83088267f, 0.04604630f},
{0.51612091f, -0.23271409f, 0.82429564f, 0.04813781f},
{-0.54723829f, -0.17993973f, 0.81740564f, 0.05037524f},
{0.28709647f, 0.51104319f, 0.81019163f, 0.05277234f},
{0.13564992f, -0.58084756f, 0.80263019f, 0.05534464f},
{-0.50095171f, 0.34279159f, 0.79469568f, 0.05810969f},
{0.61162317f, 0.08692364f, 0.78635955f, 0.06108733f},
{-0.39943513f, -0.48559675f, 0.77759075f, 0.06429981f},
{-0.03387107f, 0.63912761f, 0.76835459f, 0.06777249f},
{0.46475548f, -0.45662829f, 0.75861257f, 0.07153439f},
{-0.66292226f, 0.02341448f, 0.74832207f, 0.07561836f},
{0.51398247f, 0.43819055f, 0.73743546f, 0.08006237f},
{-0.08476690f, -0.68255723f, 0.72589958f, 0.08490986f},
{-0.40571031f, 0.57104909f, 0.71365410f, 0.09021144f},
{0.69757724f, -0.15000308f, 0.70063180f, 0.09602539f},
{-0.62736100f, -0.36712921f, 0.68675637f, 0.10242011f},
{0.21890688f, 0.70751339f, 0.67194092f, 0.10947555f},
{0.32227716f, -0.68241310f, 0.65608662f, 0.11728595f},
{-0.71188378f, 0.29120037f, 0.63908058f, 0.12596294f},
{0.73563951f, 0.27101925f, 0.62079221f, 0.13563964f},
{-0.36659747f, -0.71015513f, 0.60107064f, 0.14647597f},
{-0.21319282f, 0.78641546f, 0.57974088f, 0.15866466f},
{0.70176136f, -0.44466823f, 0.55659789f, 0.17244048f},
{-0.83396351f, -0.14872484f, 0.53139979f, 0.18809158f},
{0.52484196f, 0.68605065f, 0.50386041f, 0.20597427f},
{0.07760318f, -0.87729424f, 0.47363743f, 0.22653419f},
{-0.66224253f, 0.60626262f, 0.44031867f, 0.25033316f},
// MIP level 5 | 89 samples | 0.464 roughness | 0.232 bias
{0.00000000f, 0.00000000f, 1.00000000f, 0.03043108f},
{-0.06376997f, -0.05837689f, 0.99625570f, 0.03084721f},
{0.01080235f, 0.12209190f, 0.99245995f, 0.03127197f},
{0.09143607f, -0.11952554f, 0.98861176f, 0.03170556f},
{-0.17149557f, 0.03058632f, 0.98470998f, 0.03214823f},
{0.16492921f, 0.10450399f, 0.98075348f, 0.03260023f},
{-0.05610531f, -0.20695014f, 0.97674137f, 0.03306183f},
{-0.10650261f, 0.20631626f, 0.97267205f, 0.03353331f},
{0.23349695f, -0.08602495f, 0.96854466f, 0.03401492f},
{-0.24490517f, -0.10017911f, 0.96435761f, 0.03450702f},
{0.11941493f, 0.25284222f, 0.96010989f, 0.03500986f},
{0.08689858f, -0.28088278f, 0.95580000f, 0.03552375f},
{-0.26571783f, 0.15550445f, 0.95142657f, 0.03604906f},
{0.31408951f, 0.06753419f, 0.94698840f, 0.03658609f},
{-0.19359507f, -0.27248028f, 0.94248360f, 0.03713525f},
{-0.04274596f, 0.34423202f, 0.93791109f, 0.03769685f},
{0.27332604f, -0.23302698f, 0.93326914f, 0.03827128f},
{-0.37096068f, -0.01309791f, 0.92855620f, 0.03885895f},
{0.27316326f, 0.26838326f, 0.92377067f, 0.03946025f},
{-0.02087812f, -0.39391318f, 0.91891056f, 0.04007562f},
{-0.25776431f, 0.31338146f, 0.91397470f, 0.04070547f},
{0.41273332f, -0.05866751f, 0.90896064f, 0.04135035f},
{-0.35307166f, -0.24158773f, 0.90386707f, 0.04201064f},
{0.09974921f, 0.42708740f, 0.89869159f, 0.04268686f},
{0.22000432f, -0.39163283f, 0.89343268f, 0.04337955f},
{-0.43667063f, 0.14359218f, 0.88808793f, 0.04408925f},
{0.42848095f, 0.19319193f, 0.88265568f, 0.04481645f},
{-0.18964201f, -0.44121829f, 0.87713307f, 0.04556188f},
{-0.16136923f, 0.46305022f, 0.87151843f, 0.04632602f},
{0.44050547f, -0.23733845f, 0.86580908f, 0.04710956f},
{-0.49479049f, -0.12480853f, 0.86000293f, 0.04791315f},
{0.28609234f, 0.43436047f, 0.85409725f, 0.04873747f},
{0.08380773f, -0.52318287f, 0.84808958f, 0.04958321f},
{-0.42265239f, 0.33531970f, 0.84197718f, 0.05045120f},
{0.54773188f, 0.03872714f, 0.83575714f, 0.05134222f},
{-0.38440654f, -0.40531799f, 0.82942694f, 0.05225695f},
{0.01002737f, 0.56797695f, 0.82298338f, 0.05319644f},
{0.38233286f, -0.43275189f, 0.81642348f, 0.05416145f},
{-0.58349556f, 0.06202687f, 0.80974412f, 0.05515294f},
{0.47973907f, 0.35374436f, 0.80294168f, 0.05617196f},
{-0.11677469f, -0.59390813f, 0.79601312f, 0.05721948f},
{-0.31966013f, 0.52475518f, 0.78895468f, 0.05829656f},
{0.59887624f, -0.17376415f, 0.78176296f, 0.05940431f},
{-0.56720746f, -0.28022861f, 0.77443367f, 0.06054399f},
{0.23243302f, 0.59811544f, 0.76696336f, 0.06171672f},
{0.23567648f, -0.60650498f, 0.75934726f, 0.06292393f},
{-0.59139740f, 0.29218847f, 0.75158167f, 0.06416688f},
{0.64207685f, 0.18629061f, 0.74366206f, 0.06544700f},
{-0.35243285f, -0.57853985f, 0.73558336f, 0.06676584f},
{-0.13239318f, 0.67338449f, 0.72734123f, 0.06812493f},
{0.55942935f, -0.41252607f, 0.71893048f, 0.06952597f},
{-0.69991034f, -0.07439353f, 0.71034575f, 0.07097065f},
{0.47181261f, 0.53401864f, 0.70158172f, 0.07246090f},
{0.01272334f, -0.72117829f, 0.69263273f, 0.07399850f},
{-0.50230765f, 0.52964550f, 0.68349290f, 0.07558559f},
{0.73674864f, -0.05210906f, 0.67415583f, 0.07722434f},
{-0.58535349f, -0.46437910f, 0.66461515f, 0.07891692f},
{0.11955572f, 0.74623001f, 0.65486431f, 0.08066577f},
{0.42037740f, -0.63827240f, 0.64489627f, 0.08247342f},
{-0.74928564f, 0.18900375f, 0.63470352f, 0.08434247f},
{0.68773675f, 0.37053284f, 0.62427837f, 0.08627582f},
{-0.25985375f, -0.74562401f, 0.61361289f, 0.08827644f},
{-0.31509635f, 0.73312247f, 0.60269868f, 0.09034745f},
{0.73502374f, -0.33141530f, 0.59152693f, 0.09249220f},
{-0.77379602f, -0.25443512f, 0.58008844f, 0.09471423f},
{0.40298298f, 0.71732581f, 0.56837338f, 0.09701728f},
{0.18896966f, -0.80916059f, 0.55637175f, 0.09940538f},
{-0.69244146f, 0.47382435f, 0.54407287f, 0.10188279f},
{0.83865273f, 0.11918898f, 0.53146553f, 0.10445394f},
{-0.54318500f, -0.66035473f, 0.51853794f, 0.10712367f},
{-0.04566898f, 0.86174750f, 0.50527781f, 0.10989708f},
{0.62114173f, -0.61027986f, 0.49167216f, 0.11277959f},
{-0.87797165f, 0.03101004f, 0.47770712f, 0.11577711f},
{0.67435849f, 0.57491750f, 0.46336865f, 0.11889561f},
{-0.11014411f, -0.88689870f, 0.44864127f, 0.12214188f},
{-0.52192205f, 0.73462063f, 0.43350893f, 0.12552293f},
{0.88816553f, -0.19098610f, 0.41795492f, 0.12904632f},
{-0.79028356f, -0.46247086f, 0.40196094f, 0.13272023f},
{0.27273160f, 0.88147652f, 0.38550833f, 0.13655330f},
{0.39697057f, -0.84057438f, 0.36857724f, 0.14055479f},
{-0.86661929f, 0.35449591f, 0.35114625f, 0.14473483f},
{0.88472718f, 0.32594508f, 0.33319306f, 0.14910409f},
{-0.43540248f, -0.84344095f, 0.31469360f, 0.15367429f},
{-0.24995568f, 0.92202449f, 0.29562283f, 0.15845785f},
{0.81190068f, -0.51445758f, 0.27595395f, 0.16346824f},
{-0.95175141f, -0.16973053f, 0.25565779f, 0.16872011f},
{0.59063482f, 0.77205217f, 0.23470432f, 0.17422926f},
{0.08609016f, -0.97323865f, 0.21306096f, 0.18001269f},
{-0.72405887f, 0.66285360f, 0.19069323f, 0.18608889f},
// MIP level 6 | 89 samples | 1.000 roughness | 0.500 bias
{0.00000000f, 0.00000000f, 1.00000000f, 0.14119518f},
{-0.11026057f, -0.10093575f, 0.98876417f, 0.14119518f},
{0.01857882f, 0.20998432f, 0.97752815f, 0.14119518f},
{0.15642373f, -0.20447765f, 0.96629208f, 0.14119518f},
{-0.29181993f, 0.05204623f, 0.95505619f, 0.14119518f},
{0.27914071f, 0.17687173f, 0.94382036f, 0.14119518f},
{-0.09444684f, -0.34837675f, 0.93258423f, 0.14119518f},
{-0.17831427f, 0.34542942f, 0.92134827f, 0.14119518f},
{0.38881341f, -0.14324664f, 0.91011238f, 0.14119518f},
{-0.40558189f, -0.16590436f, 0.89887649f, 0.14119518f},
{0.19667551f, 0.41642928f, 0.88764042f, 0.14119518f},
{0.14233239f, -0.46006176f, 0.87640440f, 0.14119518f},
{-0.43281227f, 0.25329211f, 0.86516851f, 0.14119518f},
{0.50875610f, 0.10939058f, 0.85393268f, 0.14119518f},
{-0.31182855f, -0.43889096f, 0.84269667f, 0.14119518f},
{-0.06846525f, 0.55134869f, 0.83146077f, 0.14119518f},
{0.43531030f, -0.37112841f, 0.82022470f, 0.14119518f},
{-0.58745813f, -0.02074203f, 0.80898875f, 0.14119518f},
{0.43012124f, 0.42259470f, 0.79775274f, 0.14119518f},
{-0.03268640f, -0.61670333f, 0.78651685f, 0.14119518f},
{-0.40123153f, 0.48780417f, 0.77528089f, 0.14119518f},
{0.63874233f, -0.09079332f, 0.76404500f, 0.14119518f},
{-0.54324055f, -0.37170994f, 0.75280905f, 0.14119518f},
{0.15258056f, 0.65329069f, 0.74157298f, 0.14119518f},
{0.33455697f, -0.59554958f, 0.73033708f, 0.14119518f},
{-0.66013086f, 0.21707352f, 0.71910113f, 0.14119518f},
{0.64392221f, 0.29032931f, 0.70786518f, 0.14119518f},
{-0.28330210f, -0.65912652f, 0.69662917f, 0.14119518f},
{-0.23962826f, 0.68761498f, 0.68539321f, 0.14119518f},
{0.65021688f, -0.35032818f, 0.67415732f, 0.14119518f},
{-0.72594982f, -0.18311736f, 0.66292143f, 0.14119518f},
{0.41721293f, 0.63343471f, 0.65168542f, 0.14119518f},
{0.12147591f, -0.75833237f, 0.64044946f, 0.14119518f},
{-0.60888094f, 0.48306790f, 0.62921339f, 0.14119518f},
{0.78423798f, 0.05544920f, 0.61797750f, 0.14119518f},
{-0.54700333f, -0.57675987f, 0.60674161f, 0.14119518f},
{0.01418058f, 0.80322587f, 0.59550571f, 0.14119518f},
{0.53733480f, -0.60819423f, 0.58426976f, 0.14119518f},
{-0.81494015f, 0.08662994f, 0.57303375f, 0.14119518f},
{0.66583490f, 0.49096552f, 0.56179768f, 0.14119518f},
{-0.16105431f, -0.81911123f, 0.55056185f, 0.14119518f},
{-0.43808970f, 0.71916962f, 0.53932595f, 0.14119518f},
{0.81555253f, -0.23663290f, 0.52808982f, 0.14119518f},
{-0.76751351f, -0.37918976f, 0.51685399f, 0.14119518f},
{0.31250766f, 0.80416995f, 0.50561804f, 0.14119518f},
{0.31483802f, -0.81022429f, 0.49438202f, 0.14119518f},
{-0.78496140f, 0.38782158f, 0.48314601f, 0.14119518f},
{0.84672803f, 0.24566759f, 0.47191003f, 0.14119518f},
{-0.46175489f, -0.75799859f, 0.46067423f, 0.14119518f},
{-0.17233352f, 0.87653089f, 0.44943821f, 0.14119518f},
{0.72345120f, -0.53347665f, 0.43820229f, 0.14119518f},
{-0.89920247f, -0.09557631f, 0.42696622f, 0.14119518f},
{0.60218149f, 0.68157601f, 0.41573027f, 0.14119518f},
{0.01613221f, -0.91439819f, 0.40449440f, 0.14119518f},
{-0.63268882f, 0.66712260f, 0.39325848f, 0.14119518f},
{0.92185014f, -0.06520099f, 0.38202253f, 0.14119518f},
{-0.72756791f, -0.57720220f, 0.37078646f, 0.14119518f},
{0.14761630f, 0.92137551f, 0.35955045f, 0.14119518f},
{0.51559305f, -0.78284138f, 0.34831467f, 0.14119518f},
{-0.91288209f, 0.23027018f, 0.33707854f, 0.14119518f},
{0.83231086f, 0.44842520f, 0.32584265f, 0.14119518f},
{-0.31238189f, -0.89634818f, 0.31460679f, 0.14119518f},
{-0.37626365f, 0.87543809f, 0.30337083f, 0.14119518f},
{0.87185007f, -0.39310902f, 0.29213479f, 0.14119518f},
{-0.91171533f, -0.29978493f, 0.28089893f, 0.14119518f},
{0.47164342f, 0.83954418f, 0.26966295f, 0.14119518f},
{0.21969330f, -0.94071794f, 0.25842690f, 0.14119518f},
{-0.79966921f, 0.54719824f, 0.24719109f, 0.14119518f},
{0.96209633f, 0.13673273f, 0.23595506f, 0.14119518f},
{-0.61901581f, -0.75254285f, 0.22471912f, 0.14119518f},
{-0.05170150f, 0.97557771f, 0.21348323f, 0.14119518f},
{0.69857514f, -0.68635917f, 0.20224717f, 0.14119518f},
{-0.98097622f, 0.03464817f, 0.19101131f, 0.14119518f},
{0.74858660f, 0.63819987f, 0.17977528f, 0.14119518f},
{-0.12148041f, -0.97818041f, 0.16853929f, 0.14119518f},
{-0.57196331f, 0.80505508f, 0.15730336f, 0.14119518f},
{0.96716654f, -0.20797402f, 0.14606741f, 0.14119518f},
{-0.85519719f, -0.50045806f, 0.13483147f, 0.14119518f},
{0.29331225f, 0.94799370f, 0.12359550f, 0.14119518f},
{0.42433089f, -0.89850909f, 0.11235959f, 0.14119518f},
{-0.92081374f, 0.37666446f, 0.10112353f, 0.14119518f},
{0.93454713f, 0.34429938f, 0.08988766f, 0.14119518f},
{-0.45728686f, -0.88583446f, 0.07865163f, 0.14119518f},
{-0.26105496f, 0.96296698f, 0.06741564f, 0.14119518f},
{0.84336555f, -0.53439516f, 0.05617974f, 0.14119518f},
{-0.98347306f, -0.17538762f, 0.04494384f, 0.14119518f},
{0.60726190f, 0.79378635f, 0.03370785f, 0.14119518f},
{0.08809110f, -0.99585891f, 0.02247192f, 0.14119518f},
{-0.73754740f, 0.67520195f, 0.01123601f, 0.14119518f}
};
}
}
}

12
Assets/ScriptableRenderLoop/HDRenderPipeline/Material/Lit/IblSampleData.GGX.cs.meta


fileFormatVersion: 2
guid: b5814ac87b722da4f89b958b72ec4646
timeCreated: 1484495319
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存