Blender  V3.3
Classes | Macros | Typedefs | Functions
kernel/closure/volume.h File Reference

Go to the source code of this file.

Classes

struct  HenyeyGreensteinVolume
 

Macros

#define VOLUME_THROUGHPUT_EPSILON   1e-6f
 

Typedefs

typedef struct HenyeyGreensteinVolume HenyeyGreensteinVolume
 

Functions

CCL_NAMESPACE_BEGIN ccl_device void volume_extinction_setup (ccl_private ShaderData *sd, float3 weight)
 
ccl_device float single_peaked_henyey_greenstein (float cos_theta, float g)
 
ccl_device int volume_henyey_greenstein_setup (ccl_private HenyeyGreensteinVolume *volume)
 
ccl_device float3 volume_henyey_greenstein_eval_phase (ccl_private const ShaderVolumeClosure *svc, const float3 I, float3 omega_in, ccl_private float *pdf)
 
ccl_device float3 henyey_greenstrein_sample (float3 D, float g, float randu, float randv, ccl_private float *pdf)
 
ccl_device int volume_henyey_greenstein_sample (ccl_private const ShaderVolumeClosure *svc, float3 I, float3 dIdx, float3 dIdy, float randu, float randv, ccl_private float3 *eval, ccl_private float3 *omega_in, ccl_private float3 *domega_in_dx, ccl_private float3 *domega_in_dy, ccl_private float *pdf)
 
ccl_device float3 volume_phase_eval (ccl_private const ShaderData *sd, ccl_private const ShaderVolumeClosure *svc, float3 omega_in, ccl_private float *pdf)
 
ccl_device int volume_phase_sample (ccl_private const ShaderData *sd, ccl_private const ShaderVolumeClosure *svc, float randu, float randv, ccl_private float3 *eval, ccl_private float3 *omega_in, ccl_private differential3 *domega_in, ccl_private float *pdf)
 
ccl_device float3 volume_color_transmittance (float3 sigma, float t)
 
ccl_device float volume_channel_get (float3 value, int channel)
 
ccl_device int volume_sample_channel (float3 albedo, float3 throughput, float rand, ccl_private float3 *pdf)
 

Macro Definition Documentation

◆ VOLUME_THROUGHPUT_EPSILON

#define VOLUME_THROUGHPUT_EPSILON   1e-6f

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

Typedef Documentation

◆ HenyeyGreensteinVolume

Function Documentation

◆ henyey_greenstrein_sample()

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

◆ single_peaked_henyey_greenstein()

ccl_device float single_peaked_henyey_greenstein ( float  cos_theta,
float  g 
)

◆ volume_channel_get()

ccl_device float volume_channel_get ( float3  value,
int  channel 
)

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

References float3::x, float3::y, and float3::z.

Referenced by subsurface_random_walk().

◆ volume_color_transmittance()

ccl_device float3 volume_color_transmittance ( float3  sigma,
float  t 
)

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

References exp(), and t.

Referenced by subsurface_random_walk_pdf().

◆ volume_extinction_setup()

CCL_NAMESPACE_BEGIN ccl_device void volume_extinction_setup ( ccl_private ShaderData sd,
float3  weight 
)

◆ volume_henyey_greenstein_eval_phase()

ccl_device float3 volume_henyey_greenstein_eval_phase ( ccl_private const ShaderVolumeClosure svc,
const float3  I,
float3  omega_in,
ccl_private float pdf 
)

◆ volume_henyey_greenstein_sample()

ccl_device int volume_henyey_greenstein_sample ( ccl_private const ShaderVolumeClosure svc,
float3  I,
float3  dIdx,
float3  dIdy,
float  randu,
float  randv,
ccl_private float3 eval,
ccl_private float3 omega_in,
ccl_private float3 domega_in_dx,
ccl_private float3 domega_in_dy,
ccl_private float pdf 
)

◆ volume_henyey_greenstein_setup()

ccl_device int volume_henyey_greenstein_setup ( ccl_private HenyeyGreensteinVolume volume)

◆ volume_phase_eval()

ccl_device float3 volume_phase_eval ( ccl_private const ShaderData sd,
ccl_private const ShaderVolumeClosure svc,
float3  omega_in,
ccl_private float pdf 
)

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

References volume_henyey_greenstein_eval_phase().

◆ volume_phase_sample()

ccl_device int volume_phase_sample ( ccl_private const ShaderData sd,
ccl_private const ShaderVolumeClosure svc,
float  randu,
float  randv,
ccl_private float3 eval,
ccl_private float3 omega_in,
ccl_private differential3 domega_in,
ccl_private float pdf 
)

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

References volume_henyey_greenstein_sample().

◆ volume_sample_channel()

ccl_device int volume_sample_channel ( float3  albedo,
float3  throughput,
float  rand,
ccl_private float3 pdf 
)

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

References fabs(), make_float3, float3::x, x, float3::y, and float3::z.

Referenced by subsurface_random_walk().