Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Shader

继承: Resource < RefCounted < Object

派生: VisualShader

用 Godot 着色语言实现的着色器。

描述

用 Godot 着色语言实现的自定义着色器程序,使用 .gdshader 扩展名保存。

这个类由 ShaderMaterial 使用,能够让你编写渲染可视项目或更新粒子信息时的自定义行为。详细解释和用法请参考下列教程链接。

教程

属性

String

code

""

方法

Texture2D

get_default_texture_parameter ( StringName name, int index=0 ) const

Mode

get_mode ( ) const

Array

get_shader_uniform_list ( bool get_groups=false )

void

set_default_texture_parameter ( StringName name, Texture2D texture, int index=0 )


枚举

enum Mode:

Mode MODE_SPATIAL = 0

用于绘制所有 3D 对象的模式。

Mode MODE_CANVAS_ITEM = 1

用于绘制所有 2D 对象的模式。

Mode MODE_PARTICLES = 2

用于基于每个粒子计算粒子信息的模式。不用于绘图。

Mode MODE_SKY = 3

用于绘制天空的模式。仅适用于附加到 Sky 对象的着色器。

Mode MODE_FOG = 4

用于设置体积雾效果的颜色和密度的模式。


属性说明

String code = ""

返回用户编写的着色器代码,而不是内部使用的完整生成代码。


方法说明

Texture2D get_default_texture_parameter ( StringName name, int index=0 ) const

返回被设置为指定参数的默认值的纹理。

注意:name 必须与代码中的 uniform 名称完全匹配。

注意:如果使用采样器数组,则使用 index 访问指定的纹理。


Mode get_mode ( ) const

返回着色器的着色器模式。


Array get_shader_uniform_list ( bool get_groups=false )

获取可以赋值给 ShaderMaterial 的着色器 uniform 列表,可用于 ShaderMaterial.set_shader_parameterShaderMaterial.get_shader_parameter。返回的参数包含在字典内,与 Object.get_property_list 返回的格式类似。

如果参数 get_groups 为 true,则会提供参数分组提示。


void set_default_texture_parameter ( StringName name, Texture2D texture, int index=0 )

设置要与纹理 uniform 一起使用的默认纹理。如果未在 ShaderMaterial 中设置纹理,则使用该默认值。

注意:name 必须与代码中的 uniform 名称完全匹配。

注意:如果使用采样器数组,则使用 index 访问指定的纹理。