Blender  V2.93
Classes | Typedefs | Functions
kernel/closure/volume.h File Reference

Go to the source code of this file.

Classes

struct  HenyeyGreensteinVolume
 

Typedefs

typedef ccl_addr_space struct HenyeyGreensteinVolume HenyeyGreensteinVolume
 

Functions

CCL_NAMESPACE_BEGIN ccl_device void volume_extinction_setup (ShaderData *sd, float3 weight)
 
ccl_device float single_peaked_henyey_greenstein (float cos_theta, float g)
 
ccl_device int volume_henyey_greenstein_setup (HenyeyGreensteinVolume *volume)
 
ccl_device bool volume_henyey_greenstein_merge (const ShaderClosure *a, const ShaderClosure *b)
 
ccl_device float3 volume_henyey_greenstein_eval_phase (const ShaderClosure *sc, const float3 I, float3 omega_in, float *pdf)
 
ccl_device float3 henyey_greenstrein_sample (float3 D, float g, float randu, float randv, float *pdf)
 
ccl_device int volume_henyey_greenstein_sample (const ShaderClosure *sc, float3 I, float3 dIdx, float3 dIdy, float randu, float randv, float3 *eval, float3 *omega_in, float3 *domega_in_dx, float3 *domega_in_dy, float *pdf)
 
ccl_device float3 volume_phase_eval (const ShaderData *sd, const ShaderClosure *sc, float3 omega_in, float *pdf)
 
ccl_device int volume_phase_sample (const ShaderData *sd, const ShaderClosure *sc, float randu, float randv, float3 *eval, float3 *omega_in, differential3 *domega_in, float *pdf)
 

Typedef Documentation

◆ HenyeyGreensteinVolume

Function Documentation

◆ henyey_greenstrein_sample()

ccl_device float3 henyey_greenstrein_sample ( float3  D,
float  g,
float  randu,
float  randv,
float pdf 
)

◆ single_peaked_henyey_greenstein()

ccl_device float single_peaked_henyey_greenstein ( float  cos_theta,
float  g 
)

Definition at line 49 of file kernel/closure/volume.h.

References M_1_PI_F, and safe_powf().

Referenced by henyey_greenstrein_sample(), and volume_henyey_greenstein_eval_phase().

◆ volume_extinction_setup()

CCL_NAMESPACE_BEGIN ccl_device void volume_extinction_setup ( ShaderData sd,
float3  weight 
)

◆ volume_henyey_greenstein_eval_phase()

ccl_device float3 volume_henyey_greenstein_eval_phase ( const ShaderClosure sc,
const float3  I,
float3  omega_in,
float pdf 
)

◆ volume_henyey_greenstein_merge()

ccl_device bool volume_henyey_greenstein_merge ( const ShaderClosure a,
const ShaderClosure b 
)

Definition at line 65 of file kernel/closure/volume.h.

References Freestyle::a, and HenyeyGreensteinVolume::g.

Referenced by bsdf_merge().

◆ volume_henyey_greenstein_sample()

ccl_device int volume_henyey_greenstein_sample ( const ShaderClosure sc,
float3  I,
float3  dIdx,
float3  dIdy,
float  randu,
float  randv,
float3 eval,
float3 omega_in,
float3 domega_in_dx,
float3 domega_in_dy,
float pdf 
)

◆ volume_henyey_greenstein_setup()

ccl_device int volume_henyey_greenstein_setup ( HenyeyGreensteinVolume volume)

◆ volume_phase_eval()

ccl_device float3 volume_phase_eval ( const ShaderData sd,
const ShaderClosure sc,
float3  omega_in,
float pdf 
)

◆ volume_phase_sample()

ccl_device int volume_phase_sample ( const ShaderData sd,
const ShaderClosure sc,
float  randu,
float  randv,
float3 eval,
float3 omega_in,
differential3 domega_in,
float pdf 
)