OpenGL glsl 实现指定颜色透明效果,写出顶点着色器和片元着色器,分别说明着色器中参数的取值范围
时间: 2023-02-08 14:29:01 浏览: 217
OPenGL着色器语言(GLSL)
5星 · 资源好评率100%
顶点着色器中不需要进行颜色透明操作,所以可以简单地输出顶点位置。
```
#version 410
layout (location = 0) in vec3 position;
uniform mat4 MVP;
void main()
{
gl_Position = MVP * vec4(position, 1.0);
}
```
片元着色器中可以使用discard关键字进行颜色透明操作。如果指定了color变量,那么将color的值与alpha的值进行比较,如果color的值大于alpha的值,则透明。
```
#version 410
uniform vec4 color;
uniform float alpha;
out vec4 outputColor;
void main()
{
if (color.r > alpha)
discard;
outputColor = color;
}
```
其中color变量的值为vec4, 范围为0~1. alpha变量的值为float,取值范围也为0~1.
阅读全文