Blender  V3.3
Macros | Typedefs | Enumerations | Functions
volume_stack.h File Reference

Go to the source code of this file.

Macros

#define VOLUME_READ_LAMBDA(function_call)    auto volume_read_lambda_pass = [=](const int i) { return function_call; };
 
#define VOLUME_WRITE_LAMBDA(function_call)    auto volume_write_lambda_pass = [=](const int i, VolumeStack entry) { function_call; };
 

Typedefs

typedef enum VolumeSampleMethod VolumeSampleMethod
 

Enumerations

enum  VolumeSampleMethod { VOLUME_SAMPLE_NONE = 0 , VOLUME_SAMPLE_DISTANCE = (1 << 0) , VOLUME_SAMPLE_EQUIANGULAR = (1 << 1) , VOLUME_SAMPLE_MIS = (VOLUME_SAMPLE_DISTANCE | VOLUME_SAMPLE_EQUIANGULAR) }
 

Functions

template<typename StackReadOp , typename StackWriteOp >
ccl_device void volume_stack_enter_exit (KernelGlobals kg, ccl_private const ShaderData *sd, StackReadOp stack_read, StackWriteOp stack_write)
 
ccl_device void volume_stack_enter_exit (KernelGlobals kg, IntegratorState state, ccl_private const ShaderData *sd)
 
ccl_device void shadow_volume_stack_enter_exit (KernelGlobals kg, IntegratorShadowState state, ccl_private const ShaderData *sd)
 
ccl_device_inline void volume_stack_clean (KernelGlobals kg, IntegratorState state)
 
template<typename StackReadOp >
ccl_device float volume_stack_step_size (KernelGlobals kg, StackReadOp stack_read)
 
ccl_device VolumeSampleMethod volume_stack_sample_method (KernelGlobals kg, IntegratorState state)
 

Macro Definition Documentation

◆ VOLUME_READ_LAMBDA

#define VOLUME_READ_LAMBDA (   function_call)     auto volume_read_lambda_pass = [=](const int i) { return function_call; };

Definition at line 10 of file volume_stack.h.

◆ VOLUME_WRITE_LAMBDA

#define VOLUME_WRITE_LAMBDA (   function_call)     auto volume_write_lambda_pass = [=](const int i, VolumeStack entry) { function_call; };

Definition at line 12 of file volume_stack.h.

Typedef Documentation

◆ VolumeSampleMethod

Enumeration Type Documentation

◆ VolumeSampleMethod

Enumerator
VOLUME_SAMPLE_NONE 
VOLUME_SAMPLE_DISTANCE 
VOLUME_SAMPLE_EQUIANGULAR 
VOLUME_SAMPLE_MIS 

Definition at line 166 of file volume_stack.h.

Function Documentation

◆ shadow_volume_stack_enter_exit()

ccl_device void shadow_volume_stack_enter_exit ( KernelGlobals  kg,
IntegratorShadowState  state,
ccl_private const ShaderData sd 
)

◆ volume_stack_clean()

ccl_device_inline void volume_stack_clean ( KernelGlobals  kg,
IntegratorState  state 
)

Definition at line 114 of file volume_stack.h.

References INTEGRATOR_STATE_ARRAY_WRITE, kernel_data, SHADER_NONE, and state.

Referenced by integrator_shade_volume().

◆ volume_stack_enter_exit() [1/2]

template<typename StackReadOp , typename StackWriteOp >
ccl_device void volume_stack_enter_exit ( KernelGlobals  kg,
ccl_private const ShaderData sd,
StackReadOp  stack_read,
StackWriteOp  stack_write 
)

◆ volume_stack_enter_exit() [2/2]

ccl_device void volume_stack_enter_exit ( KernelGlobals  kg,
IntegratorState  state,
ccl_private const ShaderData sd 
)

◆ volume_stack_sample_method()

ccl_device VolumeSampleMethod volume_stack_sample_method ( KernelGlobals  kg,
IntegratorState  state 
)

◆ volume_stack_step_size()

template<typename StackReadOp >
ccl_device float volume_stack_step_size ( KernelGlobals  kg,
StackReadOp  stack_read 
)