ShaderMaterial
繼承: Material < Resource < RefCounted < Object
自訂 Shader 程式定義的材質及其著色器參數的值。
說明
使用自訂 Shader 程式算繪視覺專案(畫布專案、網格、天空、霧)或處理粒子的材質。與其他材質相比,ShaderMaterial 給予對產生的著色器程式碼進行更深入的控制。有關更多信息,請參閱下面的著色器檔案索引。
多個ShaderMaterial可以使用相同的著色器並為著色器製服配置不同的值。
注意:基於效能原因,僅當Resource.resource_name變更時才會發出Resource.changed訊號。僅在編輯器中,它也會針對 shader 變更發出。
教學
屬性
方法
get_shader_parameter(param: StringName) const |
|
void |
set_shader_parameter(param: StringName, value: Variant) |
屬性說明
用於算繪此材質的 Shader 程式。
方法說明
Variant get_shader_parameter(param: StringName) const 🔗
返回在著色器中此 uniform 材質的目前值。
void set_shader_parameter(param: StringName, value: Variant) 🔗
更改這個材質的著色器中為某個 uniform 設定的值。
注意:param 大小寫敏感,必須完全配對程式碼中 uniform 的名稱(不是屬性檢視器中首字母大寫後的名稱)。
注意:對著色器 uniform 的修改會在使用這個 ShaderMaterial 的所有實例上生效。要防止這種行為,請通過 GeometryInstance3D.set_instance_shader_parameter() 使用單實例 uniform,或者使用 Resource.duplicate() 製作該 ShaderMaterial 的副本。單實例 uniform 可以更好地複用著色器,因此速度也更快,所以應該盡可能優先使用,而不是製作 ShaderMaterial 的副本。