RDShaderSPIRV¶
继承: Resource < RefCounted < Object
SPIR-V中间表示作为RDShaderFile的一部分(由RenderingDevice使用)。
描述¶
RDShaderSPIRV表示用于各种着色器阶段的RDShaderFile的SPIR-V代码,以及可能的编译错误消息。SPIR-V是一种低级中间着色器表示。这种中间表示不会被GPU直接用于渲染,但它可以编译成GPU可以理解的二进制着色器。与编译的着色器不同,SPIR-V可以跨GPU模型和驱动程序版本移植。
此对象由RenderingDevice使用。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
get_stage_bytecode(stage: ShaderStage) const |
|
get_stage_compile_error(stage: ShaderStage) const |
|
void |
set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray) |
void |
set_stage_compile_error(stage: ShaderStage, compile_error: String) |
属性说明¶
PackedByteArray bytecode_compute = PackedByteArray() 🔗
void set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray)
PackedByteArray get_stage_bytecode(stage: ShaderStage) const
计算着色器阶段的SPIR-V字节码。
提示: 返回的数组是 副本,对其进行的任何修改都不会更新原始属性值。有关更多详细信息,请参阅 PackedByteArray. .. rst-class:: classref-item-separator
PackedByteArray bytecode_fragment = PackedByteArray() 🔗
void set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray)
PackedByteArray get_stage_bytecode(stage: ShaderStage) const
片段着色器阶段的SPIR-V字节码。
提示: 返回的数组是 副本,对其进行的任何修改都不会更新原始属性值。有关更多详细信息,请参阅 PackedByteArray.
PackedByteArray bytecode_tesselation_control = PackedByteArray() 🔗
void set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray)
PackedByteArray get_stage_bytecode(stage: ShaderStage) const
用于镶嵌控制着色器阶段的SPIR-V字节码。
提示: 返回的数组是 副本,对其进行的任何修改都不会更新原始属性值。有关更多详细信息,请参阅 PackedByteArray.
PackedByteArray bytecode_tesselation_evaluation = PackedByteArray() 🔗
void set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray)
PackedByteArray get_stage_bytecode(stage: ShaderStage) const
用于镶嵌评估着色器阶段的SPIR-V字节码。
提示: 返回的数组是 副本,对其进行的任何修改都不会更新原始属性值。有关更多详细信息,请参阅 PackedByteArray.
PackedByteArray bytecode_vertex = PackedByteArray() 🔗
void set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray)
PackedByteArray get_stage_bytecode(stage: ShaderStage) const
顶点着色器阶段的SPIR-V字节码。
提示: 返回的数组是 副本,对其进行的任何修改都不会更新原始属性值。有关更多详细信息,请参阅 PackedByteArray.
String compile_error_compute = "" 🔗
void set_stage_compile_error(stage: ShaderStage, compile_error: String)
String get_stage_compile_error(stage: ShaderStage) const
计算着色器阶段的编译错误消息(由SPIR-V编译器和i3D设置)。如果为空,则着色器编译成功。
String compile_error_fragment = "" 🔗
void set_stage_compile_error(stage: ShaderStage, compile_error: String)
String get_stage_compile_error(stage: ShaderStage) const
片段着色器阶段的编译错误消息(由SPIR-V编译器和i3D设置)。如果为空,则着色器编译成功。
String compile_error_tesselation_control = "" 🔗
void set_stage_compile_error(stage: ShaderStage, compile_error: String)
String get_stage_compile_error(stage: ShaderStage) const
镶嵌控制着色器阶段的编译错误消息(由SPIR-V编译器和i3D设置)。如果为空,则着色器编译成功。
String compile_error_tesselation_evaluation = "" 🔗
void set_stage_compile_error(stage: ShaderStage, compile_error: String)
String get_stage_compile_error(stage: ShaderStage) const
镶嵌评估着色器阶段的编译错误消息(由SPIR-V编译器和i3D设置)。如果为空,则着色器编译成功。
String compile_error_vertex = "" 🔗
void set_stage_compile_error(stage: ShaderStage, compile_error: String)
String get_stage_compile_error(stage: ShaderStage) const
顶点着色器阶段的编译错误消息(由SPIR-V编译器和i3D设置)。如果为空,则着色器编译成功。
方法说明¶
PackedByteArray get_stage_bytecode(stage: ShaderStage) const 🔗
相当于得到bytecode_compute、bytecode_fragment、bytecode_tesselation_control、bytecode_tesselation_evaluation、bytecode_vertex中的一个。
String get_stage_compile_error(stage: ShaderStage) const 🔗
返回给定着色器stage的编译错误消息。相当于获取compile_error_compute、compile_error_fragment、compile_error_tesselation_control、compile_error_tesselation_evaluation、compile_error_vertex之一。
void set_stage_bytecode(stage: ShaderStage, bytecode: PackedByteArray) 🔗
为给定的着色器stage设置SPIR-Vbytecode。相当于设置bytecode_compute、bytecode_fragment、bytecode_tesselation_control、bytecode_tesselation_evaluation、bytecode_vertex之一。
void set_stage_compile_error(stage: ShaderStage, compile_error: String) 🔗
将给定着色器stage的编译错误消息设置为compile_error。相当于设置compile_error_compute、compile_error_fragment、compile_error_tesselation_control、compile_error_tesselation_evaluation、compile_error_vertex之一。