Blender V4.3
workbench_volume_info.hh File Reference

Go to the source code of this file.

Macros

Variations Declaration
#define WORKBENCH_VOLUME_SLICE_VARIATIONS(prefix, ...)
 
#define WORKBENCH_VOLUME_COBA_VARIATIONS(prefix, ...)
 
#define WORKBENCH_VOLUME_INTERP_VARIATIONS(prefix, ...)
 
#define WORKBENCH_VOLUME_SMOKE_VARIATIONS(prefix, ...)
 

Functions

Volume shader base
 vertex_in (0, Type::VEC3, "pos") .fragment_out(0
 
fragColor sampler (0, ImageType::DEPTH_2D, "depthBuffer") .sampler(1
 
fragColor densityTexture push_constant(Type::INT, "samplesLen") .push_constant(Type define ("WORKBENCH_NEXT") .sampler(6
 
fragColor densityTexture push_constant(Type::INT, "samplesLen") .push_constant(Type stencil_tx additional_info ("workbench_volume_common", "draw_object_infos_new", "draw_view")
 
Smoke variation
 define ("VOLUME_SMOKE") .sampler(2
 
flameTexture sampler (3, ImageType::FLOAT_1D, "flameColorTexture") .additional_info("draw_resource_id_varying")
 
define("VOLUME_OBJECT") .push_constant(Type additional_info ("workbench_volume_smoke_common", "draw_modelmat_new")
 
 additional_info ("workbench_volume_object_common", "draw_volume_new")
 
Color Band variation
 define ("USE_COBA") .sampler(4
 
Sampling variation
 GPU_SHADER_CREATE_INFO (workbench_volume_linear).define("USE_TRILINEAR")
 
 GPU_SHADER_CREATE_INFO (workbench_volume_cubic).define("USE_TRICUBIC")
 
 GPU_SHADER_CREATE_INFO (workbench_volume_closest).define("USE_CLOSEST")
 
Slice variation
GPU_SHADER_INTERFACE_INFO(workbench_volume_iface, "").smooth(Type define ("VOLUME_SLICE") .vertex_in(1
 

Macro Definition Documentation

◆ WORKBENCH_VOLUME_COBA_VARIATIONS

#define WORKBENCH_VOLUME_COBA_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_VOLUME_SLICE_VARIATIONS(prefix##_coba, "workbench_volume_coba", __VA_ARGS__) \
WORKBENCH_VOLUME_SLICE_VARIATIONS(prefix##_no_coba, "workbench_volume_no_coba", __VA_ARGS__)
#define WORKBENCH_VOLUME_SLICE_VARIATIONS(prefix,...)

Definition at line 111 of file workbench_volume_info.hh.

◆ WORKBENCH_VOLUME_INTERP_VARIATIONS

#define WORKBENCH_VOLUME_INTERP_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_VOLUME_COBA_VARIATIONS(prefix##_linear, "workbench_volume_linear", __VA_ARGS__) \
WORKBENCH_VOLUME_COBA_VARIATIONS(prefix##_cubic, "workbench_volume_cubic", __VA_ARGS__) \
WORKBENCH_VOLUME_COBA_VARIATIONS(prefix##_closest, "workbench_volume_closest", __VA_ARGS__)
#define WORKBENCH_VOLUME_COBA_VARIATIONS(prefix,...)

Definition at line 115 of file workbench_volume_info.hh.

◆ WORKBENCH_VOLUME_SLICE_VARIATIONS

#define WORKBENCH_VOLUME_SLICE_VARIATIONS ( prefix,
... )
Value:
GPU_SHADER_CREATE_INFO(prefix##_slice) \
.additional_info("workbench_volume_slice", __VA_ARGS__) \
.do_static_compilation(true); \
GPU_SHADER_CREATE_INFO(prefix##_no_slice) \
.additional_info(__VA_ARGS__) \
.do_static_compilation(true);
#define GPU_SHADER_CREATE_INFO(_info)

Definition at line 103 of file workbench_volume_info.hh.

◆ WORKBENCH_VOLUME_SMOKE_VARIATIONS

#define WORKBENCH_VOLUME_SMOKE_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_VOLUME_INTERP_VARIATIONS(prefix##_smoke, "workbench_volume_smoke", __VA_ARGS__) \
WORKBENCH_VOLUME_INTERP_VARIATIONS(prefix##_object, "workbench_volume_object", __VA_ARGS__)
#define WORKBENCH_VOLUME_INTERP_VARIATIONS(prefix,...)

Definition at line 120 of file workbench_volume_info.hh.

Function Documentation

◆ additional_info() [1/3]

fragColor densityTexture push_constant(Type::INT, "samplesLen") .push_constant(Type stencil_tx additional_info ( "workbench_volume_common" ,
"draw_object_infos_new" ,
"draw_view"  )

◆ additional_info() [2/3]

additional_info ( "workbench_volume_object_common" ,
"draw_volume_new"  )

◆ additional_info() [3/3]

define("VOLUME_OBJECT") .push_constant(Type additional_info ( "workbench_volume_smoke_common" ,
"draw_modelmat_new"  )

◆ define() [1/4]

define ( "USE_COBA" )

◆ define() [2/4]

GPU_SHADER_INTERFACE_INFO(workbench_volume_iface, "").smooth(Type define ( "VOLUME_SLICE" )

◆ define() [3/4]

define ( "VOLUME_SMOKE" )

◆ define() [4/4]

fragColor densityTexture push_constant(Type::INT, "samplesLen") .push_constant(Type define ( "WORKBENCH_NEXT" )

◆ GPU_SHADER_CREATE_INFO() [1/3]

GPU_SHADER_CREATE_INFO ( workbench_volume_closest )

◆ GPU_SHADER_CREATE_INFO() [2/3]

GPU_SHADER_CREATE_INFO ( workbench_volume_cubic )

◆ GPU_SHADER_CREATE_INFO() [3/3]

GPU_SHADER_CREATE_INFO ( workbench_volume_linear )

◆ sampler() [1/2]

fragColor sampler ( 0 ,
ImageType::DEPTH_2D ,
"depthBuffer"  )

◆ sampler() [2/2]

flameTexture sampler ( 3 ,
ImageType::FLOAT_1D ,
"flameColorTexture"  )

◆ vertex_in()

vertex_in ( 0 ,
Type::VEC3 ,
"pos"  )