|
Blender V5.0
|
#include "kernel/types.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 |
| #define VOLUME_THROUGHPUT_EPSILON 1e-6f |
Definition at line 132 of file kernel/closure/volume.h.
| ccl_device float volume_channel_get | ( | Spectrum | value, |
| const int | channel ) |
Definition at line 139 of file kernel/closure/volume.h.
References ccl_device, and GET_SPECTRUM_CHANNEL.
| ccl_device Spectrum volume_color_transmittance | ( | Spectrum | sigma, |
| const float | t ) |
Definition at line 134 of file kernel/closure/volume.h.
References ccl_device, and 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 ccl_device, ccl_private, and 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(), svm_node_principled_volume(), and svm_node_volume_coefficients().
| ccl_device bool volume_phase_equal | ( | const ccl_private ShaderClosure * | c1, |
| const ccl_private ShaderClosure * | c2 ) |
Definition at line 75 of file kernel/closure/volume.h.
References ccl_device, 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 | ( | const ccl_private ShaderData * | sd, |
| const ccl_private ShaderVolumeClosure * | svc, | ||
| const float3 | wo, | ||
| ccl_private float * | pdf ) |
Definition at line 31 of file kernel/closure/volume.h.
References ccl_device, ccl_private, 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 | ( | const ccl_private ShaderVolumeClosure * | svc | ) |
Definition at line 107 of file kernel/closure/volume.h.
References ccl_device, 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 | ( | const ccl_private ShaderData * | sd, |
| const ccl_private ShaderVolumeClosure * | svc, | ||
| const 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 ccl_device, ccl_private, 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 163 of file kernel/closure/volume.h.
References ccl_device, ccl_private, FOREACH_SPECTRUM_CHANNEL, GET_SPECTRUM_CHANNEL, i, SPECTRUM_CHANNELS, and volume_sample_channel_pdf().
| ccl_device_inline Spectrum volume_sample_channel_pdf | ( | Spectrum | albedo, |
| Spectrum | throughput ) |
Definition at line 149 of file kernel/closure/volume.h.
References ccl_device_inline, fabs(), make_spectrum, reduce_add(), and SPECTRUM_CHANNELS.
Referenced by volume_sample_channel().