纯色填充
1 / 30
写你的第一行着色器代码,用 gl_FragColor 和 vec4 把整块画布填成你想要的颜色。
示例代码让整个画面变成了红色,核心就是这一行:
我们来拆开理解它。
gl_FragColor 是什么
着色器的工作是:屏幕上每个像素都问它「我该是什么颜色?」,着色器就回答一个颜色。
gl_FragColor 就是你写答案的地方。把颜色写在这里,像素就显示这个颜色。
vec4 是什么
vec4 里放了 4 个数字,分别代表红、绿、蓝、透明度:
每个数字的范围是 0.0 到 1.0,你可以把它理解成百分比:
1.0= 100%,这个颜色开到最大0.5= 50%,这个颜色开一半0.0= 0%,这个颜色完全关掉
所以 vec4(1.0, 0.0, 0.0, 1.0) 的意思是:红色 100%,绿色 0%,蓝色 0%,不透明 → 纯红色。
透明度一般都写 1.0,先不用管它。
试着改一改
对照下面的表格,在示例代码里换几个数字,感受一下效果:
| 颜色 | 代码 |
|---|---|
| 绿 | vec4(0.0, 1.0, 0.0, 1.0) |
| 蓝 | vec4(0.0, 0.0, 1.0, 1.0) |
| 白 | vec4(1.0, 1.0, 1.0, 1.0) |
| 黑 | vec4(0.0, 0.0, 0.0, 1.0) |
练习
练习区的画面现在是黑色的,修改 vec4 里的数字,让它变成红色。
答案解析
答案就是把第一个数改成 1.0:
四个数字分别对应:
1.0→ 红色开到最大0.0→ 绿色关掉0.0→ 蓝色关掉1.0→ 完全不透明(固定写这个就行)
练习代码的初始状态是 vec4(0.0, 0.0, 0.0, 1.0),四个颜色通道全是 0,所以是黑色。把第一个 0.0 改成 1.0,红色通道打开,就变成红色了。
试着把 1.0 换成 0.5,看看会变成什么颜色。