30 constexpr
static uint64_t dof_web_density_ = 6;
32 constexpr
static uint64_t infinite_sample_count_ = 0xFFFFFFu;
34 constexpr
static uint64_t interactive_sample_max_ = 8;
54 bool interactive_mode_ =
false;
60 static constexpr
int interactive_mode_threshold = 3;
62 SamplingDataBuf data_;
91 float rng_get(eSamplingDimension dimension)
const
93 return data_.dimensions[dimension];
99 return *
reinterpret_cast<const float2 *
>(&
data_.dimensions[starting_dimension]);
105 return *
reinterpret_cast<const float3 *
>(&
data_.dimensions[starting_dimension]);
111 return (sample_ >= sample_count_);
117 return (viewport_sample_ >= sample_count_) && !interactive_mode_;
123 return interactive_mode_;
128 return sample_count_;
135 return ((sample_ % (sample_count_ / motion_blur_steps_)) == 0);
173 return dof_ring_count_;
181 return dof_sample_count_;
#define DRW_shgroup_storage_block_ref(shgroup, name, ssbo)
A running instance of the engine.
void bind_resources(DRWShadingGroup *grp)
float rng_get(eSamplingDimension dimension) const
bool finished_viewport() const
float3 rng_3d_get(eSamplingDimension starting_dimension) const
static void cdf_invert(Vector< float > &cdf, Vector< float > &inverted_cdf)
bool interactive_mode() const
static float2 sample_disk(const float2 &rand)
float2 rng_2d_get(eSamplingDimension starting_dimension) const
uint64_t dof_ring_count_get() const
void dof_disk_sample_get(float *r_radius, float *r_theta) const
uint64_t sample_count() const
uint64_t dof_sample_count_get() const
void init(const Scene *scene)
static float2 sample_spiral(const float2 &rand)
static void cdf_from_curvemapping(const CurveMapping &curve, Vector< float > &cdf)
bool do_render_sync() const
static float3 sample_ball(const float3 &rand)
float inverted_cdf[FILTER_CDF_TABLE_SIZE]
unsigned __int64 uint64_t