Blender V4.3
workbench_prepass_info.hh File Reference

Go to the source code of this file.

Functions

Pipeline Type
 fragment_out (0, Type::VEC4, "out_transparent_accum") .fragment_out(1
 
out_revealage_accum fragment_out(2, Type::UINT, "out_object_id") .push_constant(Type fragment_out (0, Type::VEC4, "out_material") .fragment_out(1
 
out_revealage_accum fragment_out(2, Type::UINT, "out_object_id") .push_constant(Type out_normal fragment_out (2, Type::UINT, "out_object_id") .typedef_source("workbench_shader_shared.h") .fragment_source("workbench_prepass_frag.glsl")
 

Variations Declaration

#define WORKBENCH_FINAL_VARIATION(name, ...)    GPU_SHADER_CREATE_INFO(name).additional_info(__VA_ARGS__).do_static_compilation(true);
 
#define WORKBENCH_CLIPPING_VARIATIONS(prefix, ...)
 
#define WORKBENCH_COLOR_VARIATIONS(prefix, ...)
 
#define WORKBENCH_SHADING_VARIATIONS(prefix, ...)
 
#define WORKBENCH_PIPELINE_VARIATIONS(prefix, ...)
 
#define WORKBENCH_GEOMETRY_VARIATIONS(prefix, ...)
 
 GPU_SHADER_CREATE_INFO (workbench_flat).define("WORKBENCH_SHADING_FLAT")
 
 GPU_SHADER_CREATE_INFO (workbench_studio).define("WORKBENCH_SHADING_STUDIO")
 
 GPU_SHADER_CREATE_INFO (workbench_matcap).define("WORKBENCH_SHADING_MATCAP")
 
 WORKBENCH_GEOMETRY_VARIATIONS (workbench_prepass, "workbench_prepass")
 

Object Type

nor au draw_resource_handle_new
 
 au
 
Frequency::BATCH draw_hair_new
 
 draw_pointcloud_new
 
 vertex_in (0, Type::VEC3, "pos") .vertex_in(1
 
nor vertex_in (2, Type::VEC4, "ac") .vertex_in(3
 
nor au vertex_source ("workbench_prepass_vert.glsl") .additional_info("draw_modelmat_new_with_custom_id"
 
 sampler (WB_CURVES_COLOR_SLOT, ImageType::FLOAT_BUFFER, "ac", Frequency::BATCH) .sampler(WB_CURVES_UV_SLOT
 
Frequency::BATCH push_constant (Type::INT, "emitter_object_id") .vertex_source("workbench_prepass_hair_vert.glsl") .additional_info("draw_modelmat_new_with_custom_id"
 
 vertex_source ("workbench_prepass_pointcloud_vert.glsl") .additional_info("draw_modelmat_new_with_custom_id"
 

Lighting Type (only for transparent)

 matcap_tx
 
 GPU_SHADER_CREATE_INFO (workbench_lighting_flat).define("WORKBENCH_LIGHTING_FLAT")
 
 GPU_SHADER_CREATE_INFO (workbench_lighting_studio).define("WORKBENCH_LIGHTING_STUDIO")
 
 define ("WORKBENCH_LIGHTING_MATCAP") .sampler(WB_MATCAP_SLOT
 

Material Interface

smooth(Type::VEC3, "normal_interp") .smooth(Type vec4
 
smooth(Type::VEC3, "normal_interp") .smooth(Type materials_data []
 
materials_data[] imageTileArray
 
 WorldData
 
smooth(Type::VEC3, "normal_interp") .smooth(Type define ("WORKBENCH_COLOR_MATERIAL") .storage_buf(WB_MATERIAL_SLOT
 
 define ("WORKBENCH_COLOR_TEXTURE") .define("WORKBENCH_TEXTURE_IMAGE_ARRAY") .define("WORKBENCH_COLOR_MATERIAL") .storage_buf(WB_MATERIAL_SLOT
 
materials_data[] sampler (WB_TEXTURE_SLOT, ImageType::FLOAT_2D, "imageTexture", Frequency::BATCH) .sampler(WB_TILE_ARRAY_SLOT
 
materials_data[] Frequency::BATCH sampler(WB_TILE_DATA_SLOT, ImageType::FLOAT_1D_ARRAY, "imageTileData", Frequency::BATCH) .push_constant(Type GPU_SHADER_CREATE_INFO (workbench_color_vertex).define("WORKBENCH_COLOR_VERTEX")
 
 define ("WORKBENCH_NEXT") .uniform_buf(WB_WORLD_SLOT
 
world_data vertex_out (workbench_material_iface) .additional_info("draw_view")
 

Macro Definition Documentation

◆ WORKBENCH_CLIPPING_VARIATIONS

#define WORKBENCH_CLIPPING_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_FINAL_VARIATION(prefix##_clip, "drw_clipped", __VA_ARGS__) \
WORKBENCH_FINAL_VARIATION(prefix##_no_clip, __VA_ARGS__)
#define WORKBENCH_FINAL_VARIATION(name,...)

Definition at line 122 of file workbench_prepass_info.hh.

◆ WORKBENCH_COLOR_VARIATIONS

#define WORKBENCH_COLOR_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_CLIPPING_VARIATIONS(prefix##_material, "workbench_color_material", __VA_ARGS__) \
WORKBENCH_CLIPPING_VARIATIONS(prefix##_texture, "workbench_color_texture", __VA_ARGS__) \
WORKBENCH_CLIPPING_VARIATIONS(prefix##_vertex, "workbench_color_vertex", __VA_ARGS__)
#define WORKBENCH_CLIPPING_VARIATIONS(prefix,...)

Definition at line 126 of file workbench_prepass_info.hh.

◆ WORKBENCH_FINAL_VARIATION

#define WORKBENCH_FINAL_VARIATION ( name,
... )    GPU_SHADER_CREATE_INFO(name).additional_info(__VA_ARGS__).do_static_compilation(true);

Definition at line 119 of file workbench_prepass_info.hh.

◆ WORKBENCH_GEOMETRY_VARIATIONS

#define WORKBENCH_GEOMETRY_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_PIPELINE_VARIATIONS(prefix##_mesh, "workbench_mesh", __VA_ARGS__) \
WORKBENCH_PIPELINE_VARIATIONS(prefix##_curves, "workbench_curves", __VA_ARGS__) \
WORKBENCH_PIPELINE_VARIATIONS(prefix##_ptcloud, "workbench_pointcloud", __VA_ARGS__)
#define WORKBENCH_PIPELINE_VARIATIONS(prefix,...)

Definition at line 140 of file workbench_prepass_info.hh.

◆ WORKBENCH_PIPELINE_VARIATIONS

#define WORKBENCH_PIPELINE_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_SHADING_VARIATIONS(prefix##_transparent, "workbench_transparent_accum", __VA_ARGS__) \
WORKBENCH_SHADING_VARIATIONS(prefix##_opaque, "workbench_opaque", __VA_ARGS__)
#define WORKBENCH_SHADING_VARIATIONS(prefix,...)

Definition at line 136 of file workbench_prepass_info.hh.

◆ WORKBENCH_SHADING_VARIATIONS

#define WORKBENCH_SHADING_VARIATIONS ( prefix,
... )
Value:
WORKBENCH_COLOR_VARIATIONS(prefix##_flat, "workbench_lighting_flat", __VA_ARGS__) \
WORKBENCH_COLOR_VARIATIONS(prefix##_studio, "workbench_lighting_studio", __VA_ARGS__) \
WORKBENCH_COLOR_VARIATIONS(prefix##_matcap, "workbench_lighting_matcap", __VA_ARGS__)
#define WORKBENCH_COLOR_VARIATIONS(prefix,...)

Definition at line 131 of file workbench_prepass_info.hh.

Function Documentation

◆ define() [1/4]

smooth(Type::VEC3, "normal_interp") .smooth(Type define ( "WORKBENCH_COLOR_MATERIAL" )

◆ define() [2/4]

define ( "WORKBENCH_COLOR_TEXTURE" )

◆ define() [3/4]

define ( "WORKBENCH_LIGHTING_MATCAP" )

◆ define() [4/4]

define ( "WORKBENCH_NEXT" )

◆ fragment_out() [1/3]

out_revealage_accum fragment_out(2, Type::UINT, "out_object_id") .push_constant(Type fragment_out ( 0 ,
Type::VEC4 ,
"out_material"  )

◆ fragment_out() [2/3]

fragment_out ( 0 ,
Type::VEC4 ,
"out_transparent_accum"  )

◆ fragment_out() [3/3]

out_revealage_accum fragment_out(2, Type::UINT, "out_object_id") .push_constant(Type out_normal fragment_out ( 2 ,
Type::UINT ,
"out_object_id"  )

◆ GPU_SHADER_CREATE_INFO() [1/6]

materials_data[] Frequency::BATCH sampler(WB_TILE_DATA_SLOT, ImageType::FLOAT_1D_ARRAY, "imageTileData", Frequency::BATCH) .push_constant(Type GPU_SHADER_CREATE_INFO ( workbench_color_vertex )

◆ GPU_SHADER_CREATE_INFO() [2/6]

GPU_SHADER_CREATE_INFO ( workbench_flat )

◆ GPU_SHADER_CREATE_INFO() [3/6]

GPU_SHADER_CREATE_INFO ( workbench_lighting_flat )

◆ GPU_SHADER_CREATE_INFO() [4/6]

GPU_SHADER_CREATE_INFO ( workbench_lighting_studio )

◆ GPU_SHADER_CREATE_INFO() [5/6]

GPU_SHADER_CREATE_INFO ( workbench_matcap )

◆ GPU_SHADER_CREATE_INFO() [6/6]

GPU_SHADER_CREATE_INFO ( workbench_studio )

◆ push_constant()

Frequency::BATCH push_constant ( Type::INT ,
"emitter_object_id"  )

◆ sampler() [1/2]

sampler ( WB_CURVES_COLOR_SLOT ,
ImageType::FLOAT_BUFFER ,
"ac" ,
Frequency::BATCH  )

◆ sampler() [2/2]

materials_data[] sampler ( WB_TEXTURE_SLOT ,
ImageType::FLOAT_2D ,
"imageTexture" ,
Frequency::BATCH  )

◆ vertex_in() [1/2]

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

◆ vertex_in() [2/2]

nor vertex_in ( 2 ,
Type::VEC4 ,
"ac"  )

◆ vertex_out()

world_data vertex_out ( workbench_material_iface )

◆ vertex_source() [1/2]

vertex_source ( "workbench_prepass_pointcloud_vert.glsl" )

◆ vertex_source() [2/2]

nor au vertex_source ( "workbench_prepass_vert.glsl" )

◆ WORKBENCH_GEOMETRY_VARIATIONS()

WORKBENCH_GEOMETRY_VARIATIONS ( workbench_prepass ,
"workbench_prepass"  )

Variable Documentation

◆ au

au

Definition at line 22 of file workbench_prepass_info.hh.

◆ draw_hair_new

Frequency::BATCH draw_hair_new

Definition at line 27 of file workbench_prepass_info.hh.

◆ draw_pointcloud_new

draw_pointcloud_new

Definition at line 33 of file workbench_prepass_info.hh.

◆ draw_resource_handle_new

draw_resource_handle_new

Definition at line 18 of file workbench_prepass_info.hh.

◆ imageTileArray

materials_data[] imageTileArray

Definition at line 72 of file workbench_prepass_info.hh.

◆ matcap_tx

matcap_tx

Definition at line 45 of file workbench_prepass_info.hh.

◆ materials_data

materials_data

Definition at line 64 of file workbench_prepass_info.hh.

Referenced by BKE_object_material_get_eval().

◆ vec4

vec4

Definition at line 64 of file workbench_prepass_info.hh.

◆ WorldData

WorldData

Definition at line 82 of file workbench_prepass_info.hh.