gles中片元着色器常用

 

5.随机

http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/

float rand(vec2 co)
{
   return fract(sin(dot(co.xy,vec2(12.9898,78.233))) * 43758.5453);
}

改善后的

highp float rand(vec2 co)
{
    highp float a = 12.9898;
    highp float b = 78.233;
    highp float c = 43758.5453;
    highp float dt= dot(co.xy ,vec2(a,b));
    highp float sn= mod(dt,3.14);
    return fract(sin(sn) * c);
}

 

//4.gl_FragCoord:当前片元相对于窗口位置的坐标值(绝对值,不是相对值哦,也就是说最大值是窗口的宽高)

 

//3.得到当前像素点的纹理坐标

vec2 texCoord(vec2 viewWH){

  return vec2(gl_FragCoord.x, viewWH.y-gl_FragCoord.y)/viewWH;//得到当前片元的纹理坐标(相对值)

}

 

//2.一个像素占比:在View中的一个像素,在纹理坐标里占多宽多长

vec2 pixel(vec2 viewWH){

  return vec2(1.0,1.0)/viewWH;

}

 

//1.沿中心对纹理坐标进行缩放之后的新坐标(也是从0.0到1.0)

vec2 scaleCorByCenter(vec2 originCor,vec2 scaleST){

float nexCorS=(originCor.x-0.5)/scaleST.x+0.5;

float newCorT=(originCor.y-0.5)/scaleST.y+0.5;

return vec2(nexCorS,newCorT);

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值