着色语言的内置函数-pt100换算表

时间:2024-07-31 06:22:24
【文件属性】:

文件名称:着色语言的内置函数-pt100换算表

文件大小:20.23MB

文件格式:PDF

更新时间:2024-07-31 06:22:24

OpenGL ES

4.4 着色语言的内置函数 说明 上面的代码片段 可以理解为着色语 言 本身内建的,如果想要访问 gl_DepthRangeParameters 结构体内的内容,则只需要直接通过 uniform 的内建变量 gl_DepthRange 进行访问即可。 4.4 着色语言的内置函数 与其他高级语言类似,为了方便开发,OpenGL ES 着色语言中也提供了很多的内置函数。这 些函数大都已经被重载,一般具有 4 种变体,分别用来接收和返回 genType、genIType、genUType 和 genBType 类型的值。对于此 4 种变体具体情况如表 4-9 所列。 表 4-9 4 种变体及说明 变 体 类 型 说 明 变 体 类 型 说 明 genType float,vec2,vec3,vec4 genUType uint,uvec2,uvec3,uvec4 genIType int,ivec2,ivec3,ivec4 genBType bool,bvec2,bvec3,bvec4 说明 从表 4-9 中可以看出 genType、genIType、genUType 和 genBType 分别代表的是 浮点型系列、整型系列、无符号整型系列和布尔型系列。之所以要这样,是为了后 面讲解函数时方便,否则需要每种具体类型都列出,过于繁琐。 这些内置函数通常是以最优方式来实现的,有部分函数甚至由硬件直接支持,这提高了执行 效率。大部分内置函数同时适用于顶点着色器与片元着色器,但是也有部分内置函数只适用于顶 点着色器或者片元着色器。内置函数按照设计目的可以分为 3 个类别。  提供独特硬件功能的访问接口,如纹理采样系列的函数,这些函数用户是无法自己开发的。 着色语言通过提供特定内置函数对这些硬件功能进行封装,建立了用户调用这些硬件功能的接口。  简单的数学函数,如 abs(求绝对值)、floor(下取整)等。这些数学函数本身非常简单, 开发人员也可以自己开发,但可能由于对底层硬件的不了解,采用的实现方式很低效。而内置函 数是厂商根据硬件的特点用最高效的方式实现的,调用内置函数来完成这些简单的操作不但可以 提高开发效率还可以提高执行效率。  一些复杂的函数,如三角函数等,用户可以自己编写,但是编写过程特别繁琐,要用到很 多高等数学的知识。不但开发繁琐,可以想象效率也会很低。而当下的主流硬件往往都有进行这 些计算的指令,因此,对这些操作也提供了高效的内置函数。 4.4.1 角度转换与三角函数 角度转换与三角函数同时适用于顶点着色器与片元着色器,并且每个角度转换与三角函数都 有 4 种重载变体,具体情况如表 4-10 所列。 表 4-10 角度转换与三角函数 内置函数签名 说 明 genType radians (genType degrees) 此函数功能为将角度转换为弧度,即返回值 result=(π /180) * degrees,degrees 参数表示需要转换的角度 genType degrees (genType radians) 此函数功能为将弧度转换为角度,即返回值 result=(180/π )* radians,radians 参数表示需要转换的弧度


网友评论