本文主要是介绍WebGPU Inter-stage 变量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. webgpu Inter-stage 变量
Inter-stage变量在顶点着色器和片段着色器之间发挥作用。
这里我们声明了一个结构体 struct,这是在顶点着色器和片段着色器之间增加 Inter-stage 变量的一种简便方法。
struct OurVertexShaderOutput {@builtin(position) position : vec4f,@location(0) color : vec4f
}
然后,我们声明顶点着色器将返回该类型的结构体
@vertex fn vs(@builtin(vertex_index) vertexIndex : u32 ) -> OurVertexShaderOutput {}
我们创建一个有3种颜色的数组
var color = array<vec4f, 3>(vec4f(1, 0, 0, 1),vec4f(0, 1, 0, 1),vec4f(0, 0, 1, 1),
)
然后,我们不再只返回一个表示位置的vec4f,而是声明一个结构体的实例,填充并返回它
var vsOutput : OurVertexShaderOutput;
vsOutput.position = vec4f(pos[vertexIndex], 0.0, 1.0);
vsOutput.color = color[vertexIndex];
return vsOutput;
在片段着色器重,我们声明将其中一个结构体作为参数的函数
@fragment fn fs(fsInput : OurVertexShaderOutput) -> @location(0) vec4f {return fsInput.color;
}
这篇关于WebGPU Inter-stage 变量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!