|
Blender
V2.93
|
#include <float.h>#include <math.h>#include <string.h>#include "MEM_guardedalloc.h"#include "DNA_ID.h"#include "DNA_color_types.h"#include "DNA_customdata_types.h"#include "DNA_image_types.h"#include "DNA_material_types.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_texture_types.h"#include "BLI_blenlib.h"#include "BLI_math.h"#include "BLI_math_base_safe.h"#include "BLI_rand.h"#include "BLI_threads.h"#include "BLI_utildefines.h"#include "BKE_colorband.h"#include "BKE_colortools.h"#include "BKE_global.h"#include "BKE_image.h"#include "BKE_main.h"#include "BKE_material.h"#include "BKE_node.h"#include "BKE_texture.h"#include "NOD_shader.h"#include "node_util.h"#include "BLT_translation.h"#include "IMB_colormanagement.h"#include "RE_pipeline.h"#include "RE_texture.h"#include "GPU_material.h"#include "GPU_texture.h"#include "GPU_uniform_buffer.h"Go to the source code of this file.
Classes | |
| struct | ShaderCallData |
Typedefs | |
| typedef struct ShaderCallData | ShaderCallData |
Functions | |
| bool | sh_node_poll_default (struct bNodeType *ntype, struct bNodeTree *ntree, const char **r_disabled_hint) |
| void | sh_node_type_base (struct bNodeType *ntype, int type, const char *name, short nclass, short flag) |
| void | sh_fn_node_type_base (struct bNodeType *ntype, int type, const char *name, short nclass, short flag) |
| void | nodestack_get_vec (float *in, short type_in, bNodeStack *ns) |
| void | node_gpu_stack_from_data (struct GPUNodeStack *gs, int type, struct bNodeStack *ns) |
| void | node_data_from_gpu_stack (struct bNodeStack *ns, struct GPUNodeStack *gs) |
| void | node_shader_gpu_bump_tex_coord (struct GPUMaterial *mat, struct bNode *node, struct GPUNodeLink **link) |
| void | node_shader_gpu_default_tex_coord (struct GPUMaterial *mat, struct bNode *node, struct GPUNodeLink **link) |
| void | node_shader_gpu_tex_mapping (struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out) |
| void | ntreeExecGPUNodes (struct bNodeTreeExec *exec, struct GPUMaterial *mat, struct bNode *output_node) |
| typedef struct ShaderCallData ShaderCallData |
| void node_data_from_gpu_stack | ( | struct bNodeStack * | ns, |
| struct GPUNodeStack * | gs | ||
| ) |
Definition at line 154 of file node_shader_util.c.
References copy_v4_v4(), bNodeStack::data, GPUNodeStack::link, GPUNodeStack::sockettype, bNodeStack::sockettype, GPUNodeStack::vec, and bNodeStack::vec.
Referenced by data_from_gpu_stack_list(), and group_gpu_copy_inputs().
| void node_gpu_stack_from_data | ( | struct GPUNodeStack * | gs, |
| int | type, | ||
| struct bNodeStack * | ns | ||
| ) |
Definition at line 107 of file node_shader_util.c.
References bNodeStack::data, GPU_CLOSURE, GPU_FLOAT, GPU_NONE, GPU_VEC3, GPU_VEC4, GPUNodeStack::hasinput, bNodeStack::hasinput, GPUNodeStack::hasoutput, bNodeStack::hasoutput, GPUNodeStack::link, nodestack_get_vec(), NULL, SOCK_FLOAT, SOCK_INT, SOCK_RGBA, SOCK_SHADER, SOCK_VECTOR, GPUNodeStack::sockettype, bNodeStack::sockettype, type, 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 | ( | struct GPUMaterial * | mat, |
| struct bNode * | node, | ||
| struct GPUNodeLink ** | link | ||
| ) |
Definition at line 282 of file node_shader_util.c.
References GPU_link(), and node.
Referenced by node_shader_gpu_attribute(), node_shader_gpu_default_tex_coord(), node_shader_gpu_geometry(), node_shader_gpu_tex_coord(), node_shader_gpu_tex_environment(), node_shader_gpu_tex_image(), and node_shader_gpu_uvmap().
| void node_shader_gpu_default_tex_coord | ( | struct GPUMaterial * | mat, |
| struct bNode * | node, | ||
| struct GPUNodeLink ** | link | ||
| ) |
Definition at line 297 of file node_shader_util.c.
References CD_ORCO, GPU_attribute(), GPU_builtin(), GPU_link(), GPU_VIEW_POSITION, node, and node_shader_gpu_bump_tex_coord().
Referenced by node_shader_gpu_tex_brick(), node_shader_gpu_tex_checker(), node_shader_gpu_tex_gradient(), node_shader_gpu_tex_magic(), node_shader_gpu_tex_musgrave(), node_shader_gpu_tex_noise(), node_shader_gpu_tex_sky(), node_shader_gpu_tex_voronoi(), and node_shader_gpu_tex_wave().
| void node_shader_gpu_tex_mapping | ( | struct GPUMaterial * | mat, |
| struct bNode * | node, | ||
| struct GPUNodeStack * | in, | ||
| struct GPUNodeStack * | out | ||
| ) |
| void nodestack_get_vec | ( | float * | in, |
| short | type_in, | ||
| bNodeStack * | ns | ||
| ) |
Definition at line 68 of file node_shader_util.c.
References copy_v3_v3(), copy_v4_v4(), from, SOCK_FLOAT, SOCK_RGBA, SOCK_VECTOR, bNodeStack::sockettype, and bNodeStack::vec.
Referenced by node_gpu_stack_from_data(), node_shader_exec_combhsv(), node_shader_exec_combrgb(), node_shader_exec_curve_rgb(), node_shader_exec_curve_vec(), node_shader_exec_gamma(), node_shader_exec_hue_sat(), node_shader_exec_invert(), node_shader_exec_mix_rgb(), node_shader_exec_normal(), node_shader_exec_rgbtobw(), node_shader_exec_sephsv(), node_shader_exec_seprgb(), node_shader_exec_squeeze(), and node_shader_exec_valtorgb().
| void ntreeExecGPUNodes | ( | struct bNodeTreeExec * | exec, |
| struct GPUMaterial * | mat, | ||
| struct bNode * | output_node | ||
| ) |
Definition at line 242 of file node_shader_util.c.
References bNodeExec::data, data_from_gpu_stack_list(), exec(), gpu_stack_from_data_list(), MAX_SOCKET, node, bNodeExec::node, NODE_CLASS_OUTPUT, node_get_stack(), and NULL.
Referenced by gpu_group_execute(), and ntreeGPUMaterialNodes().
| void sh_fn_node_type_base | ( | struct bNodeType * | ntype, |
| int | type, | ||
| const char * | name, | ||
| short | nclass, | ||
| short | flag | ||
| ) |
Definition at line 60 of file node_shader_util.c.
References bNodeType::poll, sh_fn_poll_default(), sh_node_type_base(), and type.
Referenced by register_node_type_sh_clamp(), register_node_type_sh_combrgb(), register_node_type_sh_combxyz(), register_node_type_sh_map_range(), register_node_type_sh_math(), register_node_type_sh_seprgb(), register_node_type_sh_sepxyz(), 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 | ( | struct bNodeType * | ntype, |
| struct bNodeTree * | ntree, | ||
| const char ** | r_disabled_hint | ||
| ) |
| void sh_node_type_base | ( | struct bNodeType * | ntype, |
| int | type, | ||
| const char * | name, | ||
| short | nclass, | ||
| short | flag | ||
| ) |
Definition at line 50 of file node_shader_util.c.
References bNodeType::insert_link, node_insert_link_default(), node_type_base(), node_update_internal_links_default(), bNodeType::poll, sh_node_poll_default(), type, and bNodeType::update_internal_links.
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_blackbody(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_anisotropic(), 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_principled(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bsdf_velvet(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_combhsv(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), 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_rgb(), 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_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_script(), 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_brick(), register_node_type_sh_tex_checker(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_gradient(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_magic(), register_node_type_sh_tex_musgrave(), register_node_type_sh_tex_noise(), register_node_type_sh_tex_pointdensity(), register_node_type_sh_tex_sky(), register_node_type_sh_tex_voronoi(), register_node_type_sh_tex_wave(), register_node_type_sh_tex_white_noise(), 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().