- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GLSL内建函数.
?GLSL 内建函数 OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。 内建函数基本上可以分为一下三类:(1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图。这些函数单独通过着色器是无法模拟出来的。(2)它们展示了一些可以常简单的写入的繁琐操作(clamp, mix等),但是这些操作非常普遍,并且提供直接对硬件的支持。对于编译器来说,将表达式映射到复杂的装配线指令上是非常困难的。(3)它们提供了对图形硬件的操作,并且在适当时候进行加速。三角函数就是一个很好的例子。 有些函数名称和常见的C库函数类似,但是它们支持向量的输入和更多的传统标量输入。 建议应用程序尽量使用内建函数而不是在着色器中实现相同的计算,因为内建函数是经过最大优化的(如,有些内建函数是直接操作硬件的)。 用户定义的代码可以重载内建函数,但最好不要重新定义它们。 内建函数的输入参数(和相应的输出的参数)可以是float, vec2, vec3, vec4。对于函数的任何特定应用,实际的类型必须和所有的参数和返回值相同。就像mat,必须为mat2, mat3, mat4. 参数和返回值的精度修饰符是隐藏的,对于材质函数,返回类型的精度必须和采样器类型匹配。uniform lowp sampler2D sampler;highp vec2 coord;...lowp vec4 col = texture2D (sampler, coord); // texture2D 返回类型的精度为lowp 其他内建函数形参的精度修饰是没有任何关联的。内建函数的调用将返回输入参数的最高精度。1? 角度和三角函数 标识为angle的函数参数假定以弧度为单位。这些函数不可能出现被0除的情况,如果被除数为0,结果是未定义的。 radian函数是将角度转换为弧度,degrees函数是将弧度转换为角度。sin, cos, tan都是标准的三角函数。asin, acos, atan是反三角函数。genType有点像面向对象中泛型,即如果genType是float型的,那么genType pow (genType x, genType y)就变成了:float pow (float x, float y)同理,如果genType是int型的,那么就变成了:int pow (int x, int y);2? 指数函数(1)genType pow (genType x, genType y) x的y次方。如果x小于0,结果是未定义的。同样,如果x=0并且y=0,结果也是未定义的。使用时应特别注意。(2)genType exp (genType x) e的x次方(3)genType log (genType x) 计算满足x等于e的y次方的y的值。如果x的值小于0,结果是未定义的。(4)genType exp2 (genType x) 计算2的x次方(5)genType log2 (genType x) 计算满足x等于2的y次方的y的值。如果x的值小于0,结果是未定义的。(6)genType sqrt (genType x) 计算x的开方。如果x小于0,结果是未定义的。(7)genType inversesqrt (genType x) 计算x的开方之一的值,如果x小于等于0,结果是未定义的。3? 常用函数(1)genType abs (genType x)返回x的绝对值(2)genType sign (genType x)如果x0,返回1.0;如果x=0,返回0,如果x0,返回-1.0(3)genType floor (genType x)返回小于等于x的最大整数值(4)genType ceil (genType x)返回大于等于x的最小整数值(5)genType fract (genType x)返回x-floor(x),即返回x的小数部分(6)genType mod (genType x, float y)、genType mod (genType x, genType y)返回x – y * floor (x/y),即求模计算%(7)genType min (genType x, genType y),genType min (genType x, float y)返回x和y的值较小的那个值。(8)genType max (genType x, genType y),genType max (genType x, float y)返回x和y的值较大的那个值。(9)genType clamp (genType x, genType minVal, genType maxVa
文档评论(0)