|
Blender V4.3
|
#include <cfloat>#include <cmath>#include "BKE_node.hh"#include "DNA_node_types.h"#include "GPU_material.hh"#include "NOD_socket_declarations.hh"#include "node_shader_register.hh"Go to the source code of this file.
Classes | |
| struct | XYZ_to_RGB |
Macros | |
| #define | NODE_SHADER_MATERIALX_BEGIN blender::bke::NodeMaterialXFunction node_shader_materialx = nullptr; |
| #define | NODE_SHADER_MATERIALX_END |
| #define NODE_SHADER_MATERIALX_BEGIN blender::bke::NodeMaterialXFunction node_shader_materialx = nullptr; |
Definition at line 27 of file node_shader_util.hh.
| #define NODE_SHADER_MATERIALX_END |
Definition at line 29 of file node_shader_util.hh.
| void get_XYZ_to_RGB_for_gpu | ( | XYZ_to_RGB * | data | ) |
Definition at line 398 of file node_shader_util.cc.
References IMB_colormanagement_get_xyz_to_scene_linear(), and xyz_to_rgb().
Referenced by blender::nodes::node_shader_tex_sky_cc::node_shader_gpu_tex_sky().
| bool line_style_shader_nodes_poll | ( | const bContext * | C | ) |
Definition at line 66 of file node_shader_util.cc.
References CTX_wm_space_node(), SpaceNode::shaderfrom, and SNODE_SHADER_LINESTYLE.
Referenced by register_node_type_sh_output_linestyle(), and register_node_type_sh_uvalongstroke().
| void node_data_from_gpu_stack | ( | bNodeStack * | ns, |
| GPUNodeStack * | gs ) |
Definition at line 194 of file node_shader_util.cc.
References copy_v4_v4(), bNodeStack::data, GPUNodeStack::link, bNodeStack::sockettype, GPUNodeStack::sockettype, bNodeStack::vec, and GPUNodeStack::vec.
Referenced by data_from_gpu_stack_list(), and group_gpu_copy_inputs().
| void node_gpu_stack_from_data | ( | GPUNodeStack * | gs, |
| int | type, | ||
| bNodeStack * | ns ) |
Definition at line 144 of file node_shader_util.cc.
References bNodeStack::data, GPU_CLOSURE, GPU_FLOAT, GPU_NONE, GPU_VEC3, GPU_VEC4, bNodeStack::hasinput, GPUNodeStack::hasinput, bNodeStack::hasoutput, GPUNodeStack::hasoutput, GPUNodeStack::link, nodestack_get_vec(), SOCK_BOOLEAN, SOCK_FLOAT, SOCK_INT, SOCK_RGBA, SOCK_SHADER, SOCK_VECTOR, bNodeStack::sockettype, GPUNodeStack::sockettype, GPUNodeStack::type, GPUNodeStack::vec, and zero_v4().
Referenced by gpu_stack_from_data_list(), and group_gpu_move_outputs().
| void node_shader_gpu_bump_tex_coord | ( | GPUMaterial * | mat, |
| bNode * | node, | ||
| GPUNodeLink ** | link ) |
Definition at line 355 of file node_shader_util.cc.
References GPU_link().
Referenced by blender::nodes::node_shader_attribute_cc::node_shader_gpu_attribute(), node_shader_gpu_default_tex_coord(), blender::nodes::node_shader_geometry_cc::node_shader_gpu_geometry(), blender::nodes::node_shader_tex_coord_cc::node_shader_gpu_tex_coord(), blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), and blender::nodes::node_shader_uvmap_cc::node_shader_gpu_uvmap().
| void node_shader_gpu_default_tex_coord | ( | GPUMaterial * | mat, |
| bNode * | node, | ||
| GPUNodeLink ** | link ) |
Definition at line 360 of file node_shader_util.cc.
References CD_ORCO, GPU_attribute(), and node_shader_gpu_bump_tex_coord().
Referenced by blender::nodes::node_shader_tex_brick_cc::node_shader_gpu_tex_brick(), blender::nodes::node_shader_tex_checker_cc::node_shader_gpu_tex_checker(), blender::nodes::node_shader_tex_gabor_cc::node_shader_gpu_tex_gabor(), blender::nodes::node_shader_tex_gradient_cc::node_shader_gpu_tex_gradient(), blender::nodes::node_shader_tex_magic_cc::node_shader_gpu_tex_magic(), blender::nodes::node_shader_tex_noise_cc::node_shader_gpu_tex_noise(), blender::nodes::node_shader_tex_sky_cc::node_shader_gpu_tex_sky(), blender::nodes::node_shader_tex_voronoi_cc::node_shader_gpu_tex_voronoi(), and blender::nodes::node_shader_tex_wave_cc::node_shader_gpu_tex_wave().
| void node_shader_gpu_tex_mapping | ( | GPUMaterial * | mat, |
| bNode * | node, | ||
| GPUNodeStack * | in, | ||
| GPUNodeStack * | out ) |
Definition at line 368 of file node_shader_util.cc.
References TexMapping::flag, FLT_MAX, GPU_link(), GPU_uniform(), TexMapping::mat, max, TexMapping::max, min, TexMapping::min, NodeTexBase::tex_mapping, TEXMAP_CLIP_MAX, TEXMAP_CLIP_MIN, TEXMAP_TYPE_NORMAL, TEXMAP_UNIT_MATRIX, and TexMapping::type.
Referenced by blender::nodes::node_shader_tex_brick_cc::node_shader_gpu_tex_brick(), blender::nodes::node_shader_tex_checker_cc::node_shader_gpu_tex_checker(), blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), blender::nodes::node_shader_tex_gabor_cc::node_shader_gpu_tex_gabor(), blender::nodes::node_shader_tex_gradient_cc::node_shader_gpu_tex_gradient(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), blender::nodes::node_shader_tex_magic_cc::node_shader_gpu_tex_magic(), blender::nodes::node_shader_tex_noise_cc::node_shader_gpu_tex_noise(), blender::nodes::node_shader_tex_sky_cc::node_shader_gpu_tex_sky(), blender::nodes::node_shader_tex_voronoi_cc::node_shader_gpu_tex_voronoi(), and blender::nodes::node_shader_tex_wave_cc::node_shader_gpu_tex_wave().
| bool node_socket_not_black | ( | const GPUNodeStack & | socket | ) |
Definition at line 420 of file node_shader_util.cc.
References GPUNodeStack::link, and GPUNodeStack::vec.
Referenced by blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled(), and blender::nodes::node_shader_volume_scatter_cc::node_shader_gpu_volume_scatter().
| bool node_socket_not_white | ( | const GPUNodeStack & | socket | ) |
Definition at line 416 of file node_shader_util.cc.
References GPUNodeStack::link, and GPUNodeStack::vec.
Referenced by blender::nodes::node_shader_volume_absorption_cc::node_shader_gpu_volume_absorption(), and blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled().
| bool node_socket_not_zero | ( | const GPUNodeStack & | socket | ) |
Definition at line 412 of file node_shader_util.cc.
References GPUNodeStack::link, and GPUNodeStack::vec.
Referenced by blender::nodes::node_shader_volume_absorption_cc::node_shader_gpu_volume_absorption(), blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled(), and blender::nodes::node_shader_volume_scatter_cc::node_shader_gpu_volume_scatter().
| void ntreeExecGPUNodes | ( | bNodeTreeExec * | exec, |
| GPUMaterial * | mat, | ||
| bNode * | output_node, | ||
| int * | depth_level = nullptr ) |
Definition at line 309 of file node_shader_util.cc.
References BLI_assert, bNodeExec::data, data_from_gpu_stack_list(), exec(), gpu_stack_from_data_list(), MAX_SOCKET, bNodeExec::node, node, NODE_CLASS_OUTPUT, node_get_stack(), and bNode::runtime.
Referenced by gpu_group_execute(), and ntreeGPUMaterialNodes().
| bNodeTreeExec * ntreeShaderBeginExecTree_internal | ( | bNodeExecContext * | context, |
| bNodeTree * | ntree, | ||
| bNodeInstanceKey | parent_key ) |
Definition at line 1253 of file node_shader_tree.cc.
References BLENDER_MAX_THREADS, exec(), LISTBASE_FOREACH, MEM_callocN, blender::bke::node_tree_set_output(), and ntree_exec_begin().
Referenced by ntreeShaderBeginExecTree().
| void ntreeShaderEndExecTree_internal | ( | bNodeTreeExec * | exec | ) |
Definition at line 1298 of file node_shader_tree.cc.
References BLENDER_MAX_THREADS, BLI_freelistN(), exec(), LISTBASE_FOREACH, MEM_freeN(), and ntree_exec_end().
Referenced by ntreeShaderEndExecTree().
| bool object_cycles_shader_nodes_poll | ( | const bContext * | C | ) |
Definition at line 84 of file node_shader_util.cc.
References CTX_data_engine_type(), RenderEngineType::idname, object_shader_nodes_poll(), and STREQ.
Referenced by register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_sheen(), register_node_type_sh_bsdf_toon(), and register_node_type_sh_output_light().
| bool object_eevee_shader_nodes_poll | ( | const bContext * | C | ) |
Definition at line 93 of file node_shader_util.cc.
References CTX_data_engine_type(), RenderEngineType::idname, object_shader_nodes_poll(), and STREQ.
Referenced by register_node_type_sh_eevee_specular(), and register_node_type_sh_shadertorgb().
| bool object_shader_nodes_poll | ( | const bContext * | C | ) |
Definition at line 78 of file node_shader_util.cc.
References CTX_wm_space_node(), SpaceNode::shaderfrom, and SNODE_SHADER_OBJECT.
Referenced by object_cycles_shader_nodes_poll(), object_eevee_shader_nodes_poll(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_metallic(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_ray_portal(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_holdout(), register_node_type_sh_output_material(), register_node_type_sh_subsurface_scattering(), and register_node_type_sh_volume_scatter().
| void sh_fn_node_type_base | ( | blender::bke::bNodeType * | ntype, |
| int | type, | ||
| const char * | name, | ||
| short | nclass ) |
Definition at line 59 of file node_shader_util.cc.
References blender::bke::bNodeType::gather_link_search_ops, blender::bke::bNodeType::poll, blender::nodes::search_link_ops_for_basic_node(), sh_fn_poll_default(), and sh_node_type_base().
Referenced by register_node_type_sh_blackbody(), register_node_type_sh_clamp(), register_node_type_sh_combrgb(), register_node_type_sh_combxyz(), register_node_type_sh_curve_float(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_map_range(), register_node_type_sh_math(), register_node_type_sh_mix(), register_node_type_sh_mix_rgb(), register_node_type_sh_seprgb(), register_node_type_sh_sepxyz(), register_node_type_sh_tex_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_gabor(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), and register_node_type_sh_vector_rotate().
| bool sh_node_poll_default | ( | const blender::bke::bNodeType * | ntype, |
| const bNodeTree * | ntree, | ||
| const char ** | r_disabled_hint ) |
Definition at line 28 of file node_shader_util.cc.
References bNodeTree::idname, RPT_, and STREQ.
Referenced by register_node_type_sh_custom_group(), register_node_type_sh_group(), and sh_node_type_base().
| void sh_node_type_base | ( | blender::bke::bNodeType * | ntype, |
| int | type, | ||
| const char * | name, | ||
| short | nclass ) |
Definition at line 50 of file node_shader_util.cc.
References blender::bke::bNodeType::gather_link_search_ops, blender::bke::bNodeType::insert_link, node_insert_link_default(), blender::bke::node_type_base(), blender::bke::bNodeType::poll, blender::nodes::search_link_ops_for_basic_node(), and sh_node_poll_default().
Referenced by register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_metallic(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_ray_portal(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_sheen(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_combcolor(), register_node_type_sh_combhsv(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_gamma(), register_node_type_sh_geometry(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_mapping(), register_node_type_sh_mix_shader(), register_node_type_sh_normal(), register_node_type_sh_normal_map(), register_node_type_sh_object_info(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_linestyle(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_particle_info(), register_node_type_sh_point_info(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_script(), register_node_type_sh_sepcolor(), register_node_type_sh_sephsv(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_uvalongstroke(), register_node_type_sh_uvmap(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_info(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), register_node_type_sh_wireframe(), and sh_fn_node_type_base().
| bool world_shader_nodes_poll | ( | const bContext * | C | ) |
Definition at line 72 of file node_shader_util.cc.
References CTX_wm_space_node(), SpaceNode::shaderfrom, and SNODE_SHADER_WORLD.
Referenced by register_node_type_sh_background(), and register_node_type_sh_output_world().