VisualShader
继承: Shader < Resource < RefCounted < Object
带有可视化编辑器的自定义着色器程序。
描述
该类提供了一个类似图形的可视化编辑器,用于创建 Shader。尽管 VisualShader 不需要编码,但它们与脚本着色器共享相同的逻辑。它们使用可以相互连接的 VisualShaderNode 来控制着色器的流。可视化着色器图在幕后被转换为脚本着色器。
教程
属性
|
方法
void | add_node ( Type type, VisualShaderNode node, Vector2 position, int id ) |
void | add_varying ( String name, VaryingMode mode, VaryingType type ) |
can_connect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port ) const | |
connect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port ) | |
void | connect_nodes_forced ( Type type, int from_node, int from_port, int to_node, int to_port ) |
void | disconnect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port ) |
get_node_connections ( Type type ) const | |
get_node_list ( Type type ) const | |
get_node_position ( Type type, int id ) const | |
get_valid_node_id ( Type type ) const | |
has_varying ( String name ) const | |
is_node_connection ( Type type, int from_node, int from_port, int to_node, int to_port ) const | |
void | remove_node ( Type type, int id ) |
void | remove_varying ( String name ) |
void | replace_node ( Type type, int id, StringName new_class ) |
void | |
void | set_node_position ( Type type, int id, Vector2 position ) |
枚举
enum Type:
Type TYPE_VERTEX = 0
顶点着色器,对顶点进行操作。
Type TYPE_FRAGMENT = 1
片段着色器,对片段(像素)进行操作。
Type TYPE_LIGHT = 2
用于光线计算的着色器。
Type TYPE_START = 3
粒子着色器的“开始”阶段所使用的函数。
Type TYPE_PROCESS = 4
粒子着色器的“处理”阶段所使用的函数。
Type TYPE_COLLIDE = 5
粒子着色器的“碰撞”阶段所使用的函数(粒子碰撞处理器)。
Type TYPE_START_CUSTOM = 6
粒子着色器的“开始”阶段所使用的函数,带自定义输出。
Type TYPE_PROCESS_CUSTOM = 7
粒子着色器的“处理”阶段所使用的函数,带自定义输出。
Type TYPE_SKY = 8
3D 环境中天空的着色器。
Type TYPE_FOG = 9
为体积雾贴图的每个片段体素运行的一种计算着色器。
Type TYPE_MAX = 10
代表 Type 枚举的大小。
enum VaryingMode:
VaryingMode VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0
Varying 从 Vertex
函数传到 Fragment
和 Light
函数。
VaryingMode VARYING_MODE_FRAG_TO_LIGHT = 1
Varying 从 Fragment
函数传到 Light
函数。
VaryingMode VARYING_MODE_MAX = 2
代表 VaryingMode 枚举的大小。
enum VaryingType:
VaryingType VARYING_TYPE_FLOAT = 0
Varying 的类型为 float。
VaryingType VARYING_TYPE_INT = 1
Varying 的类型为 int。
VaryingType VARYING_TYPE_UINT = 2
Varying 的类型为无符号 int。
VaryingType VARYING_TYPE_VECTOR_2D = 3
Varying 的类型为 Vector2。
VaryingType VARYING_TYPE_VECTOR_3D = 4
Varying 的类型为 Vector3。
VaryingType VARYING_TYPE_VECTOR_4D = 5
Varying 的类型为 Vector2。
VaryingType VARYING_TYPE_BOOLEAN = 6
Varying 的类型为 bool。
VaryingType VARYING_TYPE_TRANSFORM = 7
Varying 的类型为 Transform2D。
VaryingType VARYING_TYPE_MAX = 8
代表 VaryingType 枚举的大小。
常量
NODE_ID_INVALID = -1
表示无效的 VisualShader 节点。
NODE_ID_OUTPUT = 0
表示 VisualShader 的输出节点。
属性说明
Vector2 graph_offset = Vector2(0, 0)
整个图的偏移向量。
方法说明
void add_node ( Type type, VisualShaderNode node, Vector2 position, int id )
向着色器中添加指定的节点 node
。
void add_varying ( String name, VaryingMode mode, VaryingType type )
向着色器中添加新的 varying 值节点。
bool can_connect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port ) const
如果指定节点和端口可以连接在一起,则返回 true
。
Error connect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port )
连接指定的节点和端口。
void connect_nodes_forced ( Type type, int from_node, int from_port, int to_node, int to_port )
连接指定的节点和端口,即使它们无法连接。这样的连接是无效的,将不能正常工作。
void disconnect_nodes ( Type type, int from_node, int from_port, int to_node, int to_port )
连接指定的节点和端口。
VisualShaderNode get_node ( Type type, int id ) const
返回具有指定 type
和 id
的着色器节点实例。
Dictionary[] get_node_connections ( Type type ) const
返回具有指定类型的连接节点的列表。
PackedInt32Array get_node_list ( Type type ) const
返回着色器中具有指定类型的所有节点的列表。
Vector2 get_node_position ( Type type, int id ) const
返回指定节点在着色器图中的位置。
int get_valid_node_id ( Type type ) const
返回能够加入到着色器图中的下一个有效节点 ID。
bool has_varying ( String name ) const
如果着色器中存在名为 name
的 varying 则返回 true
。
bool is_node_connection ( Type type, int from_node, int from_port, int to_node, int to_port ) const
如果指定的节点和端口连接存在,返回 true
。
void remove_node ( Type type, int id )
从着色器中删除指定的节点。
void remove_varying ( String name )
返回名为 name
的 varying 值节点。如果不存在该名称的节点则输出错误。
void replace_node ( Type type, int id, StringName new_class )
将指定节点替换为新类型的节点。
void set_mode ( Mode mode )
设置该着色器的模式。
void set_node_position ( Type type, int id, Vector2 position )
设置指定节点的位置。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.