|
Blender
V2.93
|
#include <shader.h>
Inherited by SVMShaderManager.
Public Types | |
| enum | : uint32_t { SHADER_ADDED = (1 << 0) , SHADER_MODIFIED = (1 << 2) , INTEGRATOR_MODIFIED = (1 << 3) , UPDATE_ALL = ~0u , UPDATE_NONE = 0u } |
Public Member Functions | |
| virtual | ~ShaderManager () |
| virtual void | reset (Scene *scene)=0 |
| virtual bool | use_osl () |
| virtual void | device_update (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress)=0 |
| virtual void | device_free (Device *device, DeviceScene *dscene, Scene *scene)=0 |
| void | device_update_common (Device *device, DeviceScene *dscene, Scene *scene, Progress &progress) |
| void | device_free_common (Device *device, DeviceScene *dscene, Scene *scene) |
| uint | get_attribute_id (ustring name) |
| uint | get_attribute_id (AttributeStandard std) |
| int | get_shader_id (Shader *shader, bool smooth=false) |
| void | update_shaders_used (Scene *scene) |
| void | get_requested_features (Scene *scene, DeviceRequestedFeatures *requested_features) |
| float | linear_rgb_to_gray (float3 c) |
| string | get_cryptomatte_materials (Scene *scene) |
| void | tag_update (Scene *scene, uint32_t flag) |
| bool | need_update () const |
| void | init_xyz_transforms () |
Static Public Member Functions | |
| static ShaderManager * | create (int shadingsystem) |
| static void | add_default (Scene *scene) |
| static void | free_memory () |
Protected Types | |
| typedef unordered_map< ustring, uint, ustringHash > | AttributeIDMap |
Protected Member Functions | |
| ShaderManager () | |
| void | get_requested_graph_features (ShaderGraph *graph, DeviceRequestedFeatures *requested_features) |
Protected Attributes | |
| uint32_t | update_flags |
| AttributeIDMap | unique_attribute_id |
| size_t | beckmann_table_offset |
| thread_spin_lock | attribute_lock_ |
| float3 | xyz_to_r |
| float3 | xyz_to_g |
| float3 | xyz_to_b |
| float3 | rgb_to_y |
Static Protected Attributes | |
| static thread_mutex | lookup_table_mutex |
| static vector< float > | beckmann_table |
| static bool | beckmann_table_ready = false |
|
protected |
| anonymous enum : uint32_t |
|
virtual |
Definition at line 406 of file shader.cpp.
|
protected |
Definition at line 398 of file shader.cpp.
References beckmann_table_offset, init_xyz_transforms(), TABLE_OFFSET_INVALID, UPDATE_ALL, and update_flags.
|
static |
Definition at line 625 of file shader.cpp.
References Scene::create_node(), Scene::default_background, Scene::default_empty, Scene::default_light, Scene::default_surface, Scene::default_volume, graph, make_float3, ShaderNode::output(), scene, and shader().
Referenced by Scene::reset(), and Scene::Scene().
|
static |
Definition at line 410 of file shader.cpp.
References SHADINGSYSTEM_OSL.
Referenced by Scene::Scene().
|
pure virtual |
Implemented in SVMShaderManager.
Referenced by Scene::free_memory().
| void ShaderManager::device_free_common | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene | ||
| ) |
Definition at line 618 of file shader.cpp.
References beckmann_table_offset, device_vector< T >::free(), Scene::lookup_tables, LookupTables::remove_table(), scene, and DeviceScene::shaders.
Referenced by SVMShaderManager::device_free().
|
pure virtual |
Implemented in SVMShaderManager.
Referenced by Scene::device_update().
| void ShaderManager::device_update_common | ( | Device * | device, |
| DeviceScene * | dscene, | ||
| Scene * | scene, | ||
| Progress & | progress | ||
| ) |
Definition at line 512 of file shader.cpp.
References LookupTables::add_table(), device_vector< T >::alloc(), KernelTables::beckmann_offset, beckmann_table, beckmann_table_build(), beckmann_table_offset, beckmann_table_ready, KernelShader::constant_emission, device_vector< T >::copy_to_device(), KernelShader::cryptomatte_id, DeviceScene::data, DISPLACE_BUMP, KernelData::film, KernelShader::flags, float3_to_float4(), device_vector< T >::free(), DeviceInfo::has_volume_decoupled, Device::info, KernelData::integrator, lookup_table_mutex, Scene::lookup_tables, KernelShader::pass_id, KernelFilm::rgb_to_y, rgb_to_y, scene, SD_HAS_BSSRDF_BUMP, SD_HAS_BUMP, SD_HAS_CONSTANT_EMISSION, SD_HAS_DISPLACEMENT, SD_HAS_ONLY_VOLUME, SD_HAS_TRANSPARENT_SHADOW, SD_HAS_VOLUME, SD_HETEROGENEOUS_VOLUME, SD_NEED_VOLUME_ATTRIBUTES, SD_USE_MIS, SD_VOLUME_CUBIC, SD_VOLUME_EQUIANGULAR, SD_VOLUME_MIS, shader(), DeviceScene::shaders, Scene::shaders, TABLE_OFFSET_INVALID, KernelData::tables, KernelIntegrator::transparent_shadows, KernelIntegrator::use_volumes, util_hash_to_float(), util_murmur_hash3(), VOLUME_INTERPOLATION_CUBIC, VOLUME_SAMPLING_EQUIANGULAR, VOLUME_SAMPLING_MULTIPLE_IMPORTANCE, float3::x, KernelFilm::xyz_to_b, xyz_to_b, KernelFilm::xyz_to_g, xyz_to_g, KernelFilm::xyz_to_r, xyz_to_r, float3::y, float3::z, and zero_float3().
|
static |
Definition at line 758 of file shader.cpp.
References beckmann_table, and ColorSpaceManager::free_memory().
Referenced by exit_func().
| uint ShaderManager::get_attribute_id | ( | AttributeStandard | std | ) |
Definition at line 444 of file shader.cpp.
| uint ShaderManager::get_attribute_id | ( | ustring | name | ) |
Definition at line 429 of file shader.cpp.
References ATTR_STD_NUM, attribute_lock_, id, and unique_attribute_id.
Referenced by SVMCompiler::attribute(), and emit_attribute_mapping().
| string ShaderManager::get_cryptomatte_materials | ( | Scene * | scene | ) |
Definition at line 774 of file shader.cpp.
References scene, shader(), Scene::shaders, string_printf(), and util_murmur_hash3().
Referenced by BlenderSession::stamp_view_layer_metadata().
| void ShaderManager::get_requested_features | ( | Scene * | scene, |
| DeviceRequestedFeatures * | requested_features | ||
| ) |
Definition at line 729 of file shader.cpp.
References DISPLACE_BOTH, get_requested_graph_features(), ShaderNode::input(), ShaderInput::link, max, DeviceRequestedFeatures::max_nodes_group, NODE_FEATURE_BUMP, NODE_FEATURE_BUMP_STATE, NODE_GROUP_LEVEL_0, NODE_GROUP_LEVEL_1, DeviceRequestedFeatures::nodes_features, NULL, scene, shader(), Scene::shaders, and DeviceRequestedFeatures::use_volume.
Referenced by Scene::get_requested_device_features().
|
protected |
Definition at line 701 of file shader.cpp.
References CLOSURE_IS_PRINCIPLED, CLOSURE_IS_VOLUME, BsdfBaseNode::get_closure_type(), graph, max, DeviceRequestedFeatures::max_nodes_group, node, NODE_FEATURE_VOLUME, DeviceRequestedFeatures::nodes_features, SHADER_SPECIAL_TYPE_CLOSURE, DeviceRequestedFeatures::use_principled, DeviceRequestedFeatures::use_shader_raytrace, DeviceRequestedFeatures::use_subsurface, and DeviceRequestedFeatures::use_transparent.
Referenced by get_requested_features().
| int ShaderManager::get_shader_id | ( | Shader * | shader, |
| bool | smooth = false |
||
| ) |
Definition at line 449 of file shader.cpp.
References id, shader(), SHADER_AREA_LIGHT, SHADER_CAST_SHADOW, and SHADER_SMOOTH_NORMAL.
Referenced by LightManager::device_update_points(), Hair::pack_curves(), and Mesh::pack_shaders().
| void ShaderManager::init_xyz_transforms | ( | ) |
Definition at line 832 of file shader.cpp.
References float4_to_float3(), make_float3, make_transform(), rgb_to_y, transform_inverse(), float3::x, xyz_to_b, xyz_to_g, xyz_to_r, xyz_to_rgb(), Transform::y, float3::y, and float3::z.
Referenced by ShaderManager().
Definition at line 769 of file shader.cpp.
References Freestyle::c, dot(), and rgb_to_y.
Referenced by RGBToBWNode::constant_fold(), and ConvertNode::constant_fold().
| bool ShaderManager::need_update | ( | ) | const |
Definition at line 796 of file shader.cpp.
References update_flags, and UPDATE_NONE.
Referenced by SVMShaderManager::device_update(), Scene::need_data_update(), and update_shaders_used().
|
pure virtual |
Implemented in SVMShaderManager.
Referenced by Scene::reset().
Definition at line 790 of file shader.cpp.
References UPDATE_ALL, and update_flags.
Referenced by Scene::create_node(), Shader::tag_update(), Integrator::tag_update(), and Shader::tag_used().
| void ShaderManager::update_shaders_used | ( | Scene * | scene | ) |
Definition at line 464 of file shader.cpp.
References Scene::background, Scene::default_background, Scene::default_empty, Scene::default_light, Scene::default_surface, Scene::geometry, Background::get_shader(), Scene::lights, need_update(), node, Scene::procedurals, scene, shader(), Scene::shaders, and Shader::used.
Referenced by Scene::update().
|
inlinevirtual |
Definition at line 184 of file shader.h.
Referenced by add_node(), GeometryManager::device_update_attributes(), Scene::get_max_closure_count(), ShaderGraph::simplify(), and xml_read_shader_graph().
|
protected |
Definition at line 243 of file shader.h.
Referenced by get_attribute_id().
Definition at line 235 of file shader.h.
Referenced by device_update_common(), and free_memory().
|
protected |
Definition at line 238 of file shader.h.
Referenced by device_free_common(), device_update_common(), and ShaderManager().
|
staticprotected |
Definition at line 236 of file shader.h.
Referenced by device_update_common().
|
staticprotected |
Definition at line 234 of file shader.h.
Referenced by device_update_common().
|
protected |
Definition at line 248 of file shader.h.
Referenced by device_update_common(), init_xyz_transforms(), and linear_rgb_to_gray().
|
protected |
Definition at line 232 of file shader.h.
Referenced by get_attribute_id().
|
protected |
Definition at line 229 of file shader.h.
Referenced by need_update(), ShaderManager(), and tag_update().
|
protected |
Definition at line 247 of file shader.h.
Referenced by device_update_common(), and init_xyz_transforms().
|
protected |
Definition at line 246 of file shader.h.
Referenced by device_update_common(), and init_xyz_transforms().
|
protected |
Definition at line 245 of file shader.h.
Referenced by device_update_common(), and init_xyz_transforms().