15static_assert(
sizeof(
GSAlias) == 12);
22 uint
Sample(
float u,
float& pdf)
const;
23 float PDF(uint sample)
const {
return mBins[sample].prob; }
35 float Sample(
float u,
float& pdf, uint& offset)
const;
36 float PDF(
float sample)
const {
37 uint offset = clamp(
static_cast<uint
>(sample *
mF.size()), 0u,
static_cast<uint
>(
mF.size() - 1));
53 float2
Sample(float2 u,
float& pdf, uint2& offset)
const;
54 float PDF(float2 sample)
const;
float ReflectionRoughnessFromMip(uint32_t mip, uint32_t numMips)
Definition Precompute.cpp:210
FTexture PrefilterEnvmapSpecular(const FTexture &source, JobSystem *jobs, Allocator *alloc)
Definition Precompute.cpp:264
void PrefilterEnvmapSH9(const FTexture &source, Span< float3 > sh9, JobSystem *jobs, Allocator *alloc)
Definition Precompute.cpp:220
bool AliasTableRunSelfTests(Allocator *alloc, String *outError=nullptr)
Definition Precompute.cpp:65
float ReflectionMipFromRoughness(float roughness, uint32_t numMips)
Definition Precompute.cpp:215
Allocator interface (noexcept)
Definition Allocator.hpp:29
Definition JobSystem.hpp:135
std::vector< T, StlAllocator< T > > Vector
std::vector with explicit Foundation::Core::StlAllocator constructor
Definition Container.hpp:149
std::basic_string< char, std::char_traits< char >, StlDefaultAllocator< char > > String
Alias for std::basic_string<char>, without an explicit allocator constructor.
Definition Container.hpp:120
std::unique_ptr< T, Deleter > UniquePtr
std::unique_ptr with custom deleter that uses a Foundation::Core::Allocator to deallocate memory.
Definition Allocator.hpp:180
std::span< T > Span
Alias for std::span
Definition Container.hpp:62
Definition Allocator.hpp:6
Definition Precompute.hpp:18
Vector< GSAlias > mBins
Definition Precompute.hpp:19
uint Sample(float u, float &pdf) const
Definition Precompute.cpp:53
float PDF(uint sample) const
Definition Precompute.hpp:23
Definition Texture.hpp:79
Definition Precompute.hpp:11
float select
Definition Precompute.hpp:12
float prob
Definition Precompute.hpp:12
uint alias
Definition Precompute.hpp:13
Definition Precompute.hpp:28
float Int() const
Definition Precompute.hpp:33
Vector< float > mF
Definition Precompute.hpp:29
float PDF(float sample) const
Definition Precompute.hpp:36
float Sample(float u, float &pdf, uint &offset) const
Definition Precompute.cpp:121
float mInt
Definition Precompute.hpp:30
Vector< float > mCDF
Definition Precompute.hpp:29
Definition Precompute.hpp:43
UniquePtr< PiecewiseConstant1D > mMarginal
Definition Precompute.hpp:45
uint2 Domain() const
Definition Precompute.hpp:50
float PDF(float2 sample) const
Definition Precompute.cpp:154
Vector< float > mF
Definition Precompute.hpp:44
float Int() const
Definition Precompute.hpp:52
Vector< UniquePtr< PiecewiseConstant1D > > mConditional
Definition Precompute.hpp:46
float2 Sample(float2 u, float &pdf, uint2 &offset) const
Definition Precompute.cpp:146