Blender  V3.3
Public Member Functions | List of all members
blender::eevee::Sampling Class Reference

#include <eevee_sampling.hh>

Public Member Functions

 Sampling (Instance &inst)
 
 ~Sampling ()
 
void reset ()
 
bool is_reset () const
 
void bind_resources (DRWShadingGroup *grp)
 
float rng_get (eSamplingDimension dimension) const
 
float2 rng_2d_get (eSamplingDimension starting_dimension) const
 
float3 rng_3d_get (eSamplingDimension starting_dimension) const
 
bool finished () const
 
bool finished_viewport () const
 
bool interactive_mode () const
 
uint64_t sample_count () const
 
bool do_render_sync () const
 
uint64_t dof_ring_count_get () const
 
uint64_t dof_sample_count_get () const
 
Sampling
void init (const Scene *scene)
 
void end_sync ()
 
void step ()
 

Static Public Member Functions

Cumulative Distribution Function (CDF)
static void cdf_from_curvemapping (const CurveMapping &curve, Vector< float > &cdf)
 
static void cdf_invert (Vector< float > &cdf, Vector< float > &inverted_cdf)
 

Sampling patterns

void dof_disk_sample_get (float *r_radius, float *r_theta) const
 
static float3 sample_ball (const float3 &rand)
 
static float2 sample_disk (const float2 &rand)
 
static float2 sample_spiral (const float2 &rand)
 

Detailed Description

Definition at line 25 of file eevee_sampling.hh.

Constructor & Destructor Documentation

◆ Sampling()

blender::eevee::Sampling::Sampling ( Instance inst)
inline

Definition at line 65 of file eevee_sampling.hh.

◆ ~Sampling()

blender::eevee::Sampling::~Sampling ( )
inline

Definition at line 66 of file eevee_sampling.hh.

Member Function Documentation

◆ bind_resources()

void blender::eevee::Sampling::bind_resources ( DRWShadingGroup grp)
inline

Definition at line 85 of file eevee_sampling.hh.

References data_, and DRW_shgroup_storage_block_ref.

◆ cdf_from_curvemapping()

void blender::eevee::Sampling::cdf_from_curvemapping ( const CurveMapping curve,
Vector< float > &  cdf 
)
static

◆ cdf_invert()

void blender::eevee::Sampling::cdf_invert ( Vector< float > &  cdf,
Vector< float > &  inverted_cdf 
)
static

◆ do_render_sync()

bool blender::eevee::Sampling::do_render_sync ( ) const
inline

Definition at line 133 of file eevee_sampling.hh.

◆ dof_disk_sample_get()

void blender::eevee::Sampling::dof_disk_sample_get ( float r_radius,
float r_theta 
) const

Special RNG for depth of field. Returns radius and theta angle offset to apply to the web sampling pattern.

Definition at line 187 of file eevee_sampling.cc.

References float(), and M_PI.

◆ dof_ring_count_get()

uint64_t blender::eevee::Sampling::dof_ring_count_get ( ) const
inline

Returns sample count inside the jittered depth of field web pattern.

Definition at line 171 of file eevee_sampling.hh.

◆ dof_sample_count_get()

uint64_t blender::eevee::Sampling::dof_sample_count_get ( ) const
inline

Returns sample count inside the jittered depth of field web pattern.

Definition at line 179 of file eevee_sampling.hh.

◆ end_sync()

void blender::eevee::Sampling::end_sync ( )

◆ finished()

bool blender::eevee::Sampling::finished ( ) const
inline

Definition at line 109 of file eevee_sampling.hh.

Referenced by blender::eevee::Instance::render_frame().

◆ finished_viewport()

bool blender::eevee::Sampling::finished_viewport ( ) const
inline

Definition at line 115 of file eevee_sampling.hh.

Referenced by blender::eevee::Instance::draw_viewport().

◆ init()

void blender::eevee::Sampling::init ( const Scene scene)

◆ interactive_mode()

bool blender::eevee::Sampling::interactive_mode ( ) const
inline

Definition at line 121 of file eevee_sampling.hh.

Referenced by blender::eevee::Film::end_sync().

◆ is_reset()

bool blender::eevee::Sampling::is_reset ( ) const
inline

Definition at line 80 of file eevee_sampling.hh.

Referenced by blender::eevee::Film::end_sync().

◆ reset()

void blender::eevee::Sampling::reset ( )
inline

◆ rng_2d_get()

float2 blender::eevee::Sampling::rng_2d_get ( eSamplingDimension  starting_dimension) const
inline

Definition at line 97 of file eevee_sampling.hh.

References data_.

Referenced by blender::eevee::Film::pixel_jitter_get().

◆ rng_3d_get()

float3 blender::eevee::Sampling::rng_3d_get ( eSamplingDimension  starting_dimension) const
inline

Definition at line 103 of file eevee_sampling.hh.

References data_.

◆ rng_get()

float blender::eevee::Sampling::rng_get ( eSamplingDimension  dimension) const
inline

Definition at line 91 of file eevee_sampling.hh.

References data_.

◆ sample_ball()

float3 blender::eevee::Sampling::sample_ball ( const float3 rand)
static

Special ball distribution: Point are distributed in a way that when they are orthogonally projected into any plane, the resulting distribution is (close to) a uniform disc distribution. rand is 3 random float in the [0..1] range. Returns point in a ball of radius 1 and centered on the origin.

Definition at line 156 of file eevee_sampling.cc.

References cosf, fmaxf, M_PI, r, sample, sinf, sqrtf, and square_f().

◆ sample_count()

uint64_t blender::eevee::Sampling::sample_count ( ) const
inline

Definition at line 126 of file eevee_sampling.hh.

Referenced by blender::eevee::Film::init().

◆ sample_disk()

float2 blender::eevee::Sampling::sample_disk ( const float2 rand)
static

Uniform disc distribution. rand is 2 random float in the [0..1] range. Returns point in a disk of radius 1 and centered on the origin.

Definition at line 171 of file eevee_sampling.cc.

References cosf, M_PI, sinf, and sqrtf.

Referenced by blender::eevee::Film::pixel_jitter_get().

◆ sample_spiral()

float2 blender::eevee::Sampling::sample_spiral ( const float2 rand)
static

Uniform disc distribution using Fibonacci spiral sampling. rand is 2 random float in the [0..1] range. Returns point in a disk of radius 1 and centered on the origin.

Definition at line 177 of file eevee_sampling.cc.

References cosf, M_PI, r, sinf, and sqrtf.

◆ step()

void blender::eevee::Sampling::step ( )

Definition at line 86 of file eevee_sampling.cc.

References BLI_halton_2d(), BLI_halton_3d(), fractf(), offset, and r.


The documentation for this class was generated from the following files: