GLSL——常用内建函数与应用

GLSL——常用内建函数与应用

STEP函数

step(a, b);当b > a时, 返回1;当b < a时,返回0。
函数原型

float step(float a, float x)
{
   
    if (a < x)
    {
   
        return x;
    }
    else
    {
   
        return a;
    }
}

应用
对控件着色时,x坐标小于0.5时,使用黑色渲染;x坐标大于0.5时,使用红色渲染。
代码段

varying mediump vec2 texCoord0;
 
void main()
{
   
	precision mediump float;
	float color = 0.;
//  使用step函数原型实现
//	if (texCoord0.x > 0.5)
//	{
   
//		color = 1.;
//	}
//	else
//	{
   
//		color = 0.;
//	}
 
    //使用step函数实现
	color = step(0.5, texCoord0.x);
    gl_FragColor = vec4(vec3(color, 0., 0.), 1.);
}

效果
在这里插入图片描述

MIX

mix(colorA, colorB, weight); 两种颜色混合渲染,weight为colorB的渲染权重,1-weight为colorA的渲染权重,应用于颜色混合叠加效果。
函数原型

vec4 mix(vec4 colorA, vec4 colorB, float a)
{
   
    return x * (1 - a) + y * a;
}

应用
将黑色和红色进行混合,黑色权重按x坐标增加
代码段

varying mediump vec2 texCoord0;
 
void main()
{
   
	precision mediump float;
	vec4 colorRed = vec4(1.0, 0., 0., 1.);
	vec4 colorBlack = vec4(0., 0., 0., 1.);
 
    //使用mix原型实现
    //gl_FragColor = colorRed * (1 - texCoord0.x) + colorBlack * texCoord0.x;
    
    //使用mix函数实现		
    gl_FragColor = mix(colorRed, colorBlack, texCoord0.x);
}

效果
在这里插入图片描述

CLAMP

clamp(x, min, max);当x大于max时,返回max, 当x小于min时,返回min,当x介于min和max之间时,返回x本身
函数原型

float clamp(float x, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值