OPENGL —— 创建顶点着色器

顶点着色器(Vertex Shader)简单的说就是是对顶点进行一系列操作的着色器,其作用于每个顶点,可以生成每个顶点的最终位置

顶点着色器(Vertex Shader)是图形渲染管线的第一个部分,它把一个单独的顶点作为输入。顶点着色器主要的目的是把3D坐标转为另一种3D坐标,同时顶点着色器允许我们对顶点属性进行一些基本处理。

现代OpenGL需要我们自己设置一个顶点顶点着色器,创建顶点着色器需要如下几步:

第一步:使用GLSL语言编写着色器,示例如下:

const char *vertexShader = "#version 420 core\n"
    "layout (location = 0) in vec3 mPos;\n"
    "void main()\n"
    "{\n"
    "   gl_Position = vec4(mPos.x, mPos.y, mPos.z, 1.0);\n"
    "}\0";

第二步:使用glCreateShader创建着色器对象,示例如下:

unsigned int vertexShaderId;
vertexShaderId = glCreateShader(GL_VERTEX_SHADER);

第三步:使用glShaderSource把这个着色器源码附加到着色器对象,示例如下:

glShaderSource(vertexShaderId, 1, &vertexShader, NULL);

第四步:使用glCompileShader编译着色器,示例如下:

glCompileShader(vertexShaderId);

第五步:使用glGetShaderiv检查编译是否成功

int  success;
glGetShaderiv(vertexShaderId, GL_COMPILE_STATUS, &success);

第六步:使用glGetShaderInfoLog获取错误信息

char info[1024]
glGetShaderInfoLog(vertexShaderId, 1024, NULL, info);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值