|
Blender V5.0
|
#include <eevee_shader.hh>
Public Member Functions | |
| ShaderGroups | static_shaders_load_async (ShaderGroups request_bits) |
| ShaderGroups | static_shaders_wait_ready (ShaderGroups request_bits) |
GPU Materials | |
| GPUMaterial * | material_shader_get (::Material *blender_mat, bNodeTree *nodetree, eMaterialPipeline pipeline_type, eMaterialGeometry geometry_type, bool deferred_compilation, ::Material *default_mat) |
| GPUMaterial * | world_shader_get (::World *blender_world, bNodeTree *nodetree, eMaterialPipeline pipeline_type, bool deferred_compilation) |
| void | material_create_info_amend (GPUMaterial *mat, GPUCodegenOutput *codegen) |
Module | |
| ShaderModule () | |
| ~ShaderModule () | |
| static ShaderModule * | module_get () |
| static void | module_free () |
Static shaders | |
| bool | request_specializations (bool block_until_ready, int render_buffers_shadow_id, int shadow_ray_count, int shadow_ray_step_count, bool use_split_indirect, bool use_lightprobe_eval) |
| gpu::Shader * | static_shader_get (eShaderType shader_type) |
Shader module. shared between instances.
Definition at line 205 of file eevee_shader.hh.
| blender::eevee::ShaderModule::ShaderModule | ( | ) |
Definition at line 45 of file eevee_shader.cc.
References BLI_assert, BLI_assert_msg, GPU_shader_create_info_get(), i, blender::eevee::MAX_SHADER_TYPE, and name.
Referenced by module_get().
| blender::eevee::ShaderModule::~ShaderModule | ( | ) |
Definition at line 62 of file eevee_shader.cc.
References GPU_shader_batch_specializations_cancel().
| void blender::eevee::ShaderModule::material_create_info_amend | ( | GPUMaterial * | mat, |
| GPUCodegenOutput * | codegen ) |
Hair attributes come from sampler buffer. Transfer attributes to sampler.
NOTE: Orco is generated from strand position for now.
Only orco layer is supported by world and it is procedurally generated. These are here to make the attribs_load function calls valid.
Volume grid attributes come from 3D textures. Transfer attributes to samplers.
Definition at line 615 of file eevee_shader.cc.
References ShaderCreateInfo::additional_info(), ShaderCreateInfo::additional_infos_, blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::eevee::ATOMIC_RASTER, GPUCodegenOutput::attr_load, blender::gpu::shader::BARYCENTRIC_COORD, blender::gpu::shader::BATCH, ShaderCreateInfo::batch_resources_, BLI_assert_unreachable, ShaderCreateInfo::builtins(), StringRefNull::c_str(), blender::gpu::shader::CLIP_CONTROL, blender::eevee::CLOSURE_CLEARCOAT, blender::eevee::CLOSURE_DIFFUSE, blender::eevee::CLOSURE_REFLECTION, blender::eevee::CLOSURE_REFRACTION, blender::eevee::CLOSURE_SSS, blender::eevee::CLOSURE_TRANSLUCENT, GPUCodegenOutput::create_info, ShaderCreateInfo::define(), GPUGraphOutput::dependencies, GPUCodegenOutput::displacement, ELEM, GPUGraphOutput::empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::extend(), ShaderCreateInfo::generated_sources, blender::eevee::geometry_type_has_surface(), blender::eevee::SamplerSlots::get(), GPU_ATTRIBUTE_UBO_BLOCK_NAME, GPU_material_flag_get(), GPU_material_uniform_attributes(), GPU_material_uuid_get(), GPU_MATFLAG_AO, GPU_MATFLAG_BARYCENTRIC, GPU_MATFLAG_COAT, GPU_MATFLAG_DIFFUSE, GPU_MATFLAG_GLOSSY, GPU_MATFLAG_REFLECTION_MAYBE_COLORED, GPU_MATFLAG_REFRACT, GPU_MATFLAG_REFRACTION_MAYBE_COLORED, GPU_MATFLAG_SHADER_TO_RGBA, GPU_MATFLAG_SUBSURFACE, GPU_MATFLAG_TRANSLUCENT, GPU_MATFLAG_TRANSPARENT, inout, StageInterfaceInfo::inouts, input, StageInterfaceInfo::instance_name, blender::eevee::MAT_DISPLACEMENT_BUMP, blender::eevee::MAT_GEOM_CURVES, blender::eevee::MAT_GEOM_MESH, blender::eevee::MAT_GEOM_POINTCLOUD, blender::eevee::MAT_GEOM_VOLUME, blender::eevee::MAT_GEOM_WORLD, blender::eevee::MAT_PIPE_CAPTURE, blender::eevee::MAT_PIPE_DEFERRED, blender::eevee::MAT_PIPE_FORWARD, blender::eevee::MAT_PIPE_PREPASS_DEFERRED, blender::eevee::MAT_PIPE_PREPASS_DEFERRED_VELOCITY, blender::eevee::MAT_PIPE_PREPASS_FORWARD, blender::eevee::MAT_PIPE_PREPASS_FORWARD_VELOCITY, blender::eevee::MAT_PIPE_PREPASS_OVERLAP, blender::eevee::MAT_PIPE_PREPASS_PLANAR, blender::eevee::MAT_PIPE_SHADOW, blender::eevee::MAT_PIPE_VOLUME_MATERIAL, blender::eevee::MAT_PIPE_VOLUME_OCCUPANCY, blender::eevee::MAT_THICKNESS_SLAB, GPUCodegenOutput::material_functions, blender::eevee::material_type_from_shader_uuid(), StageInterfaceInfo::name, ShaderCreateInfo::name_, resource, blender::gpu::shader::ShaderCreateInfo::Resource::SAMPLER, ShaderCreateInfo::sampler(), GPUGraphOutput::serialized, GPUGraphOutput::serialized_or_default(), blender::eevee::shader_closure_bits_from_flag(), blender::eevee::ShadowModule::shadow_technique, GPUCodegenOutput::surface, GPUCodegenOutput::thickness, blender::eevee::TILE_COPY, blender::eevee::to_gbuffer_bin_count(), blender::gpu::shader::ShaderCreateInfo::Resource::UNIFORM_BUFFER, ShaderCreateInfo::vertex_inputs_, ShaderCreateInfo::vertex_out_interfaces_, and GPUCodegenOutput::volume.
Referenced by blender::eevee::codegen_callback().
| GPUMaterial * blender::eevee::ShaderModule::material_shader_get | ( | ::Material * | blender_mat, |
| bNodeTree * | nodetree, | ||
| eMaterialPipeline | pipeline_type, | ||
| eMaterialGeometry | geometry_type, | ||
| bool | deferred_compilation, | ||
| ::Material * | default_mat ) |
Definition at line 1232 of file eevee_shader.cc.
References Material::blend_flag, BLI_assert, blender::eevee::codegen_callback(), Material::displacement_method, GPU_MAT_EEVEE, GPU_material_from_nodetree(), Material::gpumaterial, Material::id, GPUMaterialFromNodeTreeResult::material, ID::name, blender::eevee::pass_replacement_cb(), blender::eevee::shader_uuid_from_material_type(), blender::eevee::store_node_tree_errors(), Material::thickness_mode, blender::eevee::to_displacement_type(), and blender::eevee::to_thickness_type().
Referenced by blender::eevee::pass_replacement_cb().
|
static |
Definition at line 40 of file eevee_shader.cc.
Referenced by blender::eevee::Engine::free_static().
Only to be used by Instance constructor.
Definition at line 35 of file eevee_shader.cc.
References ShaderModule().
| bool blender::eevee::ShaderModule::request_specializations | ( | bool | block_until_ready, |
| int | render_buffers_shadow_id, | ||
| int | shadow_ray_count, | ||
| int | shadow_ray_step_count, | ||
| bool | use_split_indirect, | ||
| bool | use_lightprobe_eval ) |
Definition at line 270 of file eevee_shader.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::eevee::DEFERRED_LIGHT_SINGLE, GPU_shader_batch_specializations(), GPU_shader_batch_specializations_is_ready(), GPU_shader_get_constant(), GPU_shader_get_default_constant_state(), i, lock, blender::gpu::shader::SpecializationConstants::set_value(), and static_shader_get().
| gpu::Shader * blender::eevee::ShaderModule::static_shader_get | ( | eShaderType | shader_type | ) |
Definition at line 565 of file eevee_shader.cc.
Referenced by request_specializations().
|
inline |
Definition at line 258 of file eevee_shader.hh.
|
inline |
Definition at line 264 of file eevee_shader.hh.
| GPUMaterial * blender::eevee::ShaderModule::world_shader_get | ( | ::World * | blender_world, |
| bNodeTree * | nodetree, | ||
| eMaterialPipeline | pipeline_type, | ||
| bool | deferred_compilation ) |
Definition at line 1265 of file eevee_shader.cc.
References blender::eevee::codegen_callback(), GPU_MAT_EEVEE, GPU_material_from_nodetree(), World::gpumaterial, World::id, blender::eevee::MAT_GEOM_WORLD, GPUMaterialFromNodeTreeResult::material, ID::name, blender::eevee::shader_uuid_from_material_type(), and blender::eevee::store_node_tree_errors().