OpenGL Shader编程语言

内置的特殊变量

 highp vec4 gl_Position放置顶点坐标信息
 mediump float gl_PointSize 需要绘制点的大小
 mediump vec4 gl_FragCoord片元在framebuffer画面的相对位置 
 bool gl_FrontFacing 标志当前图元是不是正面图元的一部分 
 mediump vec2 gl_PointCoord 经过插值计算后的纹理坐标,点的范围是0.0到1.0
 mediump vec4 gl_FragColor设置当前片点的颜色
 mediump vec4 gl_FragData[n] 设置当前片点的颜色,使用glDrawBuffers数据数组。

内置函数库

 T abs(T x)返回x的绝对值
 T sign(T x)比较x与0的值,大于,等于,小于分别返回1.0,0.0,-1.0
 T floor(Tx)返回<=x的最大整数
 T ceil(T x)返回>=等于x的最小整数
 T fract(T x)获取x的小数部分
 T mod(Tx, Ty)
 T mod(T x, float y)取x,y的余数
 T min(T x, Ty)
 T min(T x, float y)取x,y的最小值
 T max(Tx, Ty)
 T max(T x, float y)取x,y的最大值
 T clamp(T x, T minVal, T maxVal)
 T clamp(T x, float minVal,float maxVal) min(max(x, minVal), maxVal), 返回值被限定
 在minVal,maxVal之间
 T mix(T x, Ty, Ta)
 T mix(T x, Ty, float a)取x,y的线性混合,x*(1-a)+y*a
 T step(T edge, Tx)
 T step(float edge, Tx)如果x<edge返回0.0 否则返回1.0
 T smoothstep(T edge0, T edge1, Tx)
 T smoothstep(float edge0,float edge1, Tx)如果x<edgeo 返回 0.0
 如果x>edge1返回1.0,否则返回Hermite插值

角度三角函数:

T radians(T degrees)
角度转弧度
 T degrees(T radians)
弧度转角度
 T sin(T angle)
正弦函数,角度是弧度
 T cos(T angle)
余弦函数,角度是弧度
 T tan(T angle)
正切函数,角度是弧度
 T asin(T x)
反正弦函数,返回值是弧度
 T acos(T x)
反余弦函数,返回值是弧度
 T atan(T y, Tx)
 T atan(Ty_over_x)
反正切函数,返回值是弧度

指数函数:

T pow(T x, Ty)
返回x的y次幕xy
T exp(Tx)
返回x的自然指数幕ex
T log(T x)
返回x的自然对数In
T exp2(T x)
返回2的x次幕2x
T log2(T x)
返回2为底的对数log2
T sqrt(T x)
开根号vx
T inversesqrt(Tx)
先开根号,在取倒数,就是1/Vx

矩阵函数:

mat matrixCompMult(mat x, mat y)
将矩阵x和y的元素逐分量相乘

几何函数:

 float length(Tx)
返回矢量x的长度
 float distance(T po, Tp1)
返回po p1两点的距离
 float dot(T x, Ty)
返回x y的点积
 vec3 cross(vec3 x, vec3 y)
返回x y的叉积
 T normalize(Tx)
对x进行归一化,保持向量方向不变但长度变为1
 T faceforward(T N. TI T Nref)
根据 矢量N与Nrei调整法问量
 T reflect(TI, TN)
返回1-2*dot(N,I)*N,结果是入射矢量
关于法向量N的镜面反射矢量
 T refract(TI, T N, float eta)
返回入射矢量关于法向量N的折射矢量,
折射率为eta
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rnwater

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值