[OpenGL]OpenGL顶点着色器、编译着色器、片段着色器

本文介绍了OpenGL中的顶点着色器和片段着色器。顶点着色器用于处理每个顶点的3D坐标,通过GLSL编写,将输入顶点属性赋值给gl_Position。片段着色器则负责计算像素的颜色输出。文章详细讲解了如何编译和链接顶点及片段着色器,最后形成一个着色器程序,用于渲染对象时激活使用。
摘要由CSDN通过智能技术生成

1.顶点着色器(Vertex Shader)

顶点着色器:几个可编程着色器中的一个。
OpenGL用GLSL编写着色器,GLSL看起来很像C语言。

#version 330 core
layout (location = 0) int vec3 aPos;
void main()
{
      gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0)
}

使用in 关键字,在顶点着色器中声明所有的输入顶点属性。GLSL有一个向量数据类型,包含1到4个float分量。由于每个顶点都有一个3D坐标,我们就创建一个vec3输入变量aPos。
为了设置顶点着色器的输出,我们必须把位置数据赋值给预定义的gl_Position,它在幕后的vec4.
在main函数最后,我们将gl_Position设置的值会成为该顶点着色器的输出

编译顶点着色器

(1)创建一个着色器对象,用ID引用,用glCreateShader创建这个着色器

unsigned int vertexShader;
vertexShader = glCreateShader(GL_VERTEX_SHADER);

我们创建的是一个顶点着色器,传递的参数是GL_VERTEX_SHADER
(2)把这个着色器的源码附加到着色器对象上

glShaderSource(v
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值