Blender V5.0
volume_util.h File Reference
#include "util/math_fast.h"
#include "util/projection.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device float3 phase_sample_direction (const float3 D, const float cos_theta, const float rand)
ccl_device float phase_henyey_greenstein (const float cos_theta, const float g)
ccl_device float3 phase_henyey_greenstein_sample (const float3 D, const float g, const float2 rand, ccl_private float *pdf)
ccl_device float phase_rayleigh (const float cos_theta)
ccl_device float3 phase_rayleigh_sample (const float3 D, const float2 rand, ccl_private float *pdf)
ccl_device float phase_draine (const float cos_theta, const float g, float alpha)
ccl_device float phase_draine_sample_cos (const float g, const float alpha, const float rand)
ccl_device float3 phase_draine_sample (const float3 D, const float g, float alpha, const float2 rand, ccl_private float *pdf)
ccl_device float phase_fournier_forand_delta (const float n, const float sin_htheta_sqr)
ccl_device_inline float3 phase_fournier_forand_coeffs (const float B, const float IOR)
ccl_device_inline float phase_fournier_forand_impl (float cos_theta, const float delta, const float pow_delta_v, const float v, float sin_htheta_sqr, const float pf_coeff)
ccl_device float phase_fournier_forand (const float cos_theta, const float3 coeffs)
ccl_device float phase_fournier_forand_newton (const float rand, const float3 coeffs)
ccl_device float3 phase_fournier_forand_sample (const float3 D, const float3 coeffs, const float2 rand, ccl_private float *pdf)
ccl_device void phase_mie_fitted_parameters (float d, ccl_private float *g_HG, ccl_private float *g_D, ccl_private float *alpha, ccl_private float *w)

Function Documentation

◆ phase_draine()

ccl_device float phase_draine ( const float cos_theta,
const float g,
float alpha )

◆ phase_draine_sample()

◆ phase_draine_sample_cos()

ccl_device float phase_draine_sample_cos ( const float g,
const float alpha,
const float rand )

Definition at line 96 of file volume_util.h.

References ccl_device, fabsf, fast_inv_cbrtf(), M_CBRT2_F, sqr, sqrtf, T10, T2, T3, T4, T5, T6, T7, T8, and T9.

Referenced by phase_draine_sample().

◆ phase_fournier_forand()

ccl_device float phase_fournier_forand ( const float cos_theta,
const float3 coeffs )

◆ phase_fournier_forand_coeffs()

ccl_device_inline float3 phase_fournier_forand_coeffs ( const float B,
const float IOR )

◆ phase_fournier_forand_delta()

ccl_device float phase_fournier_forand_delta ( const float n,
const float sin_htheta_sqr )

◆ phase_fournier_forand_impl()

ccl_device_inline float phase_fournier_forand_impl ( float cos_theta,
const float delta,
const float pow_delta_v,
const float v,
float sin_htheta_sqr,
const float pf_coeff )

Definition at line 165 of file volume_util.h.

References ccl_device_inline, cos_theta(), fabsf, M_4PI_F, m_delta, M_PI_F, pf, sqr, and v.

Referenced by phase_fournier_forand(), and phase_fournier_forand_newton().

◆ phase_fournier_forand_newton()

ccl_device float phase_fournier_forand_newton ( const float rand,
const float3 coeffs )

◆ phase_fournier_forand_sample()

ccl_device float3 phase_fournier_forand_sample ( const float3 D,
const float3 coeffs,
const float2 rand,
ccl_private float * pdf )

◆ phase_henyey_greenstein()

ccl_device float phase_henyey_greenstein ( const float cos_theta,
const float g )

◆ phase_henyey_greenstein_sample()

ccl_device float3 phase_henyey_greenstein_sample ( const float3 D,
const float g,
const float2 rand,
ccl_private float * pdf )

◆ phase_mie_fitted_parameters()

ccl_device void phase_mie_fitted_parameters ( float d,
ccl_private float * g_HG,
ccl_private float * g_D,
ccl_private float * alpha,
ccl_private float * w )

◆ phase_rayleigh()

ccl_device float phase_rayleigh ( const float cos_theta)

Definition at line 55 of file volume_util.h.

References ccl_device, cos_theta(), M_1_PI_F, and sqr.

Referenced by phase_draine(), phase_rayleigh_sample(), and volume_rayleigh_eval().

◆ phase_rayleigh_sample()

ccl_device float3 phase_rayleigh_sample ( const float3 D,
const float2 rand,
ccl_private float * pdf )

◆ phase_sample_direction()