|
Blender V4.3
|
#include "kernel/closure/volume_util.h"#include "kernel/closure/volume_draine.h"#include "kernel/closure/volume_fournier_forand.h"#include "kernel/closure/volume_henyey_greenstein.h"#include "kernel/closure/volume_rayleigh.h"Go to the source code of this file.
Macros | |
| #define | VOLUME_THROUGHPUT_EPSILON 1e-6f |
Functions | |
| CCL_NAMESPACE_BEGIN ccl_device void | volume_extinction_setup (ccl_private ShaderData *sd, Spectrum weight) |
| ccl_device Spectrum | volume_phase_eval (ccl_private const ShaderData *sd, ccl_private const ShaderVolumeClosure *svc, float3 wo, ccl_private float *pdf) |
| ccl_device int | volume_phase_sample (ccl_private const ShaderData *sd, ccl_private const ShaderVolumeClosure *svc, float2 rand, ccl_private Spectrum *eval, ccl_private float3 *wo, ccl_private float *pdf) |
| ccl_device bool | volume_phase_equal (ccl_private const ShaderClosure *c1, ccl_private const ShaderClosure *c2) |
| ccl_device float | volume_phase_get_g (ccl_private const ShaderVolumeClosure *svc) |
| ccl_device Spectrum | volume_color_transmittance (Spectrum sigma, float t) |
| ccl_device float | volume_channel_get (Spectrum value, int channel) |
| ccl_device int | volume_sample_channel (Spectrum albedo, Spectrum throughput, ccl_private float *rand, ccl_private Spectrum *pdf) |
Definition at line 130 of file kernel/closure/volume.h.
| ccl_device float volume_channel_get | ( | Spectrum | value, |
| int | channel ) |
Definition at line 137 of file kernel/closure/volume.h.
References GET_SPECTRUM_CHANNEL.
| ccl_device Spectrum volume_color_transmittance | ( | Spectrum | sigma, |
| float | t ) |
Definition at line 132 of file kernel/closure/volume.h.
References exp().
| CCL_NAMESPACE_BEGIN ccl_device void volume_extinction_setup | ( | ccl_private ShaderData * | sd, |
| Spectrum | weight ) |
Definition at line 18 of file kernel/closure/volume.h.
References SD_EXTINCTION.
Referenced by osl_closure_absorption_setup(), osl_closure_draine_setup(), osl_closure_fournier_forand_setup(), osl_closure_henyey_greenstein_setup(), osl_closure_rayleigh_setup(), svm_node_closure_volume(), and svm_node_principled_volume().
| ccl_device bool volume_phase_equal | ( | ccl_private const ShaderClosure * | c1, |
| ccl_private const ShaderClosure * | c2 ) |
Definition at line 75 of file kernel/closure/volume.h.
References ccl_private, CLOSURE_VOLUME_DRAINE_ID, CLOSURE_VOLUME_FOURNIER_FORAND_ID, CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID, CLOSURE_VOLUME_RAYLEIGH_ID, and v2.
| ccl_device Spectrum volume_phase_eval | ( | ccl_private const ShaderData * | sd, |
| ccl_private const ShaderVolumeClosure * | svc, | ||
| float3 | wo, | ||
| ccl_private float * | pdf ) |
Definition at line 31 of file kernel/closure/volume.h.
References CLOSURE_VOLUME_DRAINE_ID, CLOSURE_VOLUME_FOURNIER_FORAND_ID, CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID, CLOSURE_VOLUME_RAYLEIGH_ID, kernel_assert, volume_draine_eval(), volume_fournier_forand_eval(), volume_henyey_greenstein_eval(), volume_rayleigh_eval(), and zero_spectrum.
| ccl_device float volume_phase_get_g | ( | ccl_private const ShaderVolumeClosure * | svc | ) |
Definition at line 107 of file kernel/closure/volume.h.
References ccl_private, CLOSURE_VOLUME_DRAINE_ID, CLOSURE_VOLUME_FOURNIER_FORAND_ID, CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID, and CLOSURE_VOLUME_RAYLEIGH_ID.
| ccl_device int volume_phase_sample | ( | ccl_private const ShaderData * | sd, |
| ccl_private const ShaderVolumeClosure * | svc, | ||
| float2 | rand, | ||
| ccl_private Spectrum * | eval, | ||
| ccl_private float3 * | wo, | ||
| ccl_private float * | pdf ) |
Definition at line 52 of file kernel/closure/volume.h.
References CLOSURE_VOLUME_DRAINE_ID, CLOSURE_VOLUME_FOURNIER_FORAND_ID, CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID, CLOSURE_VOLUME_RAYLEIGH_ID, kernel_assert, volume_draine_sample(), volume_fournier_forand_sample(), volume_henyey_greenstein_sample(), and volume_rayleigh_sample().
| ccl_device int volume_sample_channel | ( | Spectrum | albedo, |
| Spectrum | throughput, | ||
| ccl_private float * | rand, | ||
| ccl_private Spectrum * | pdf ) |
Definition at line 142 of file kernel/closure/volume.h.
References fabs(), FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, make_spectrum, reduce_add(), and SPECTRUM_CHANNELS.