OpenGL01

GLSL中的gl_FragColor是一个四维向量,用于输出RGB颜色和Alpha透明度。精度设置如mediumpfloat影响渲染速度和质量。变量类型包括vec4、int、float和bool,不支持类型自动转换。可以定义函数,如red()返回红色向量。
摘要由CSDN通过智能技术生成

Hello Shader

GLSL 最后输出为 gl_FragColor 为一个四维向量(vector4)

这个四维向量 分别为 R G B A

#ifdef GL_ES
precision mediump float;
#endif

void main() {
	gl_FragColor = vec4(1.0,0.0,1.0,1.0);
}

R G B 分别对应了屏幕中的红 绿 蓝

A指的是Alpha通道 也就是透明度

变量

对于c语言中 有 int float char 等等变量类型

对于Glsl 有向量类型 vec4 vec4 vec2 这些统称为浮点向量

除去浮点向量 Glsl还提供了 int float bool 类型

define

在mian之前 我们使用了与c语言类似的宏定义 与c语言相同 都是进行预编译处理

precision(精度) 第二行表示讲默认精度设置为 mediump float(中等精度)

当然此处也可以使用 low float(低精度) 与 highp float(高精度)

此处的精度在shader中极为重要 越低的精度代表了越快的渲染速度 此时就是以质量为代价

Tips

glsl的语言规范中不会保证变量类型的自动转换 如果使用以下代码 就有可能会出错

void main() {
    gl_FragColor = vec4(1,0,0,1);   // 出错
}

你也可以在glsl中写入与c语言类似的函数

vec4 red(){
    return vec4(1.0,0.0,0.0,1.0);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值