Blender  V3.3
workbench_prepass_info.hh File Reference
#include "gpu_shader_create_info.hh"

Go to the source code of this file.

Functions

Pipeline Type
 fragment_out (0, Type::VEC4, "transparentAccum") .fragment_out(1
 
revealageAccum fragment_out(2, Type::UINT, "objectId") .push_constant(Type fragment_out (0, Type::VEC4, "materialData") .fragment_out(1
 
revealageAccum fragment_out(2, Type::UINT, "objectId") .push_constant(Type normalData fragment_out (2, Type::UINT, "objectId") .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_TEXTURE_VARIATIONS(prefix, ...)
 
#define WORKBENCH_DATATYPE_VARIATIONS(prefix, ...)
 
#define WORKBENCH_PIPELINE_VARIATIONS(prefix, ...)
 
 WORKBENCH_PIPELINE_VARIATIONS (workbench, "workbench_material")
 

Object Type

 au
 
 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_mesh") .additional_info("draw_resource_handle")
 
 sampler (0, ImageType::FLOAT_BUFFER, "ac", Frequency::BATCH) .sampler(1
 
Frequency::BATCH vertex_source ("workbench_prepass_hair_vert.glsl") .additional_info("draw_hair") .additional_info("draw_resource_handle")
 
 vertex_source ("workbench_prepass_pointcloud_vert.glsl") .additional_info("draw_pointcloud") .additional_info("draw_resource_handle")
 

Texture Type

sampler(2, ImageType::FLOAT_2D, "imageTexture", Frequency::BATCH) .push_constant(Type imageTileData
 
 GPU_SHADER_CREATE_INFO (workbench_texture_none).define("TEXTURE_NONE")
 
sampler(2, ImageType::FLOAT_2D, "imageTexture", Frequency::BATCH) .push_constant(Type sampler (2, ImageType::FLOAT_2D_ARRAY, "imageTileArray", Frequency::BATCH) .sampler(3
 

Lighting Type (only for transparent)

 matcap_diffuse_tx
 
 GPU_SHADER_CREATE_INFO (workbench_lighting_flat).define("V3D_LIGHTING_FLAT")
 
 GPU_SHADER_CREATE_INFO (workbench_lighting_studio).define("V3D_LIGHTING_STUDIO")
 
 define ("V3D_LIGHTING_MATCAP") .sampler(4
 
Frequency::PASS sampler (5, ImageType::FLOAT_2D, "matcap_specular_tx", Frequency::PASS)
 

Material Interface

smooth(Type::VEC3, "normal_interp") .smooth(Type vec4
 
smooth(Type::VEC3, "normal_interp") .smooth(Type materials_data [4096]
 
smooth(Type::VEC3, "normal_interp") .smooth(Type uniform_buf (4, "WorldData", "world_data", Frequency::PASS) .uniform_buf(5
 

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 119 of file workbench_prepass_info.hh.

◆ WORKBENCH_DATATYPE_VARIATIONS

#define WORKBENCH_DATATYPE_VARIATIONS (   prefix,
  ... 
)
Value:
WORKBENCH_TEXTURE_VARIATIONS(prefix##_mesh, "workbench_mesh", __VA_ARGS__) \
WORKBENCH_TEXTURE_VARIATIONS(prefix##_hair, "workbench_hair", __VA_ARGS__) \
WORKBENCH_TEXTURE_VARIATIONS(prefix##_ptcloud, "workbench_pointcloud", __VA_ARGS__)
#define WORKBENCH_TEXTURE_VARIATIONS(prefix,...)

Definition at line 128 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 116 of file workbench_prepass_info.hh.

◆ WORKBENCH_PIPELINE_VARIATIONS

#define WORKBENCH_PIPELINE_VARIATIONS (   prefix,
  ... 
)
Value:
WORKBENCH_DATATYPE_VARIATIONS(prefix##_transp_studio, \
"workbench_transparent_accum", \
"workbench_lighting_studio", \
__VA_ARGS__) \
WORKBENCH_DATATYPE_VARIATIONS(prefix##_transp_matcap, \
"workbench_transparent_accum", \
"workbench_lighting_matcap", \
__VA_ARGS__) \
WORKBENCH_DATATYPE_VARIATIONS(prefix##_transp_flat, \
"workbench_transparent_accum", \
"workbench_lighting_flat", \
__VA_ARGS__) \
WORKBENCH_DATATYPE_VARIATIONS(prefix##_opaque, "workbench_opaque", __VA_ARGS__)
#define WORKBENCH_DATATYPE_VARIATIONS(prefix,...)

Definition at line 133 of file workbench_prepass_info.hh.

◆ WORKBENCH_TEXTURE_VARIATIONS

#define WORKBENCH_TEXTURE_VARIATIONS (   prefix,
  ... 
)
Value:
WORKBENCH_CLIPPING_VARIATIONS(prefix##_tex_none, "workbench_texture_none", __VA_ARGS__) \
WORKBENCH_CLIPPING_VARIATIONS(prefix##_tex_single, "workbench_texture_single", __VA_ARGS__) \
WORKBENCH_CLIPPING_VARIATIONS(prefix##_tex_tile, "workbench_texture_tile", __VA_ARGS__)
#define WORKBENCH_CLIPPING_VARIATIONS(prefix,...)

Definition at line 123 of file workbench_prepass_info.hh.

Function Documentation

◆ define()

define ( "V3D_LIGHTING_MATCAP"  )

◆ fragment_out() [1/3]

revealageAccum fragment_out (2, Type::UINT, "objectId") .push_constant(Type fragment_out ( ,
Type::VEC4  ,
"materialData"   
)

◆ fragment_out() [2/3]

fragment_out ( ,
Type::VEC4  ,
"transparentAccum"   
)

◆ fragment_out() [3/3]

revealageAccum fragment_out (2, Type::UINT, "objectId") .push_constant(Type normalData fragment_out ( ,
Type::UINT  ,
"objectId"   
)

◆ GPU_SHADER_CREATE_INFO() [1/3]

GPU_SHADER_CREATE_INFO ( workbench_lighting_flat  )

◆ GPU_SHADER_CREATE_INFO() [2/3]

GPU_SHADER_CREATE_INFO ( workbench_lighting_studio  )

◆ GPU_SHADER_CREATE_INFO() [3/3]

GPU_SHADER_CREATE_INFO ( workbench_texture_none  )

◆ sampler() [1/3]

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

◆ sampler() [2/3]

sampler (2, ImageType::FLOAT_2D, "imageTexture", Frequency::BATCH) .push_constant(Type sampler ( ,
ImageType::FLOAT_2D_ARRAY  ,
"imageTileArray"  ,
Frequency::BATCH   
)

◆ sampler() [3/3]

Frequency::PASS sampler ( ,
ImageType::FLOAT_2D  ,
"matcap_specular_tx"  ,
Frequency::PASS   
)

◆ uniform_buf()

smooth (Type::VEC3, "normal_interp") .smooth(Type uniform_buf ( ,
"WorldData"  ,
"world_data"  ,
Frequency::PASS   
)

◆ vertex_in() [1/2]

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

◆ vertex_in() [2/2]

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

◆ vertex_source() [1/3]

Frequency::BATCH vertex_source ( "workbench_prepass_hair_vert.glsl"  )

◆ vertex_source() [2/3]

vertex_source ( "workbench_prepass_pointcloud_vert.glsl"  )

◆ vertex_source() [3/3]

nor au vertex_source ( "workbench_prepass_vert.glsl"  )

◆ WORKBENCH_PIPELINE_VARIATIONS()

WORKBENCH_PIPELINE_VARIATIONS ( workbench  ,
"workbench_material"   
)

Variable Documentation

◆ au

au

Definition at line 20 of file workbench_prepass_info.hh.

Referenced by rect_light_sample().

◆ imageTileData

sampler (2, ImageType::FLOAT_2D, "imageTexture", Frequency::BATCH) .push_constant(Type imageTileData

Definition at line 46 of file workbench_prepass_info.hh.

◆ matcap_diffuse_tx

matcap_diffuse_tx

Definition at line 62 of file workbench_prepass_info.hh.

◆ materials_data

smooth (Type::VEC3, "normal_interp") .smooth(Type materials_data[4096]

Definition at line 82 of file workbench_prepass_info.hh.

Referenced by BKE_object_material_get_eval().

◆ vec4

smooth (Type::VEC3, "normal_interp") .smooth(Type vec4

Definition at line 82 of file workbench_prepass_info.hh.