由于无法在着色器本身中更改着色器采样器的值,因此必须在使用可用的Uniform Set函数之一调用着色器之前设置它。但是,为了能够执行,必须首先调用此函数以获取要设置的着色器采样器的"句柄"。
注意尽管着色器由两个独立的程序(Vertex和Fragment)组成,但此函数不会区分这两个程序,并将从其中任何一个程序返回着色器示例的句柄。
shader_get_sampler_index(shader, uniform);
参数 | 类型 | 描述 |
---|---|---|
shader | Shader Asset | 要使用的着色器的索引。 |
uniform | String | 获取(字符串)句柄的着色器采样器。 |
glassshader_bgsampler = shader_get_sampler_index(GlassShader, "s_BackgroundSampler")
spr = sprite_get_texture(sprite_index, 0);
shader_set(GlassShader);
texture_set_stage(glassshader_bgsampler, spr);
shader_reset();
上面的代码将获取被索引为"GlassShader"的着色器中的采样器的句柄,然后将着色器常量设置为给定的精灵纹理。