07 WebGL 着色器编程语言GLSL ES的取样器(纹理)

来源:互联网 发布:python httplib 编辑:程序博客网 时间:2024/05/16 06:34

将GLSL ES支持的一种内置类型称为取样器(sampler),我们必须通过该类型变量访问纹理。有两种基本的取样器类型:sampler2D和samplerCube。取样器变量只能是uniform变量,或者需要访问纹理的函数,如texture2D()函数的参数。比如:

uniform sampler2D u_Sampler;
此外,唯一能赋值给取样器变量的就是纹理单元编号,而且你必须使用WebGL方法gl.uniform1i()来进行赋值。比如在WebGL纹理相关章节,我们就使用了gl.uniform1i(u_Sampler,0)将纹理单元编号0传给着色器。

除了=、==和!=,取样器变量不可以作为操作数参与运算。

和前几节中介绍的其他类型不同,取样器类型变量受到着色器支持的纹理单元的最大数量限制,见表6.10。该表格中,mediump是一个精度限定字。



原创粉丝点击