openGL学习—顶点着色器/片段着色器

本文介绍了OpenGL中顶点着色器和片段着色器的作用,以及如何创建、绑定源码、编译和连接这两个着色器的过程。顶点着色器负责处理3D坐标,而片段着色器处理颜色、光照等效果。通过glCreateShader、glShaderSource、glCompileShader等函数,可以实现着色器的编译和链接,并最终删除不再使用的着色器。
摘要由CSDN通过智能技术生成

一.概念

顶点着色器

  1. 顶点做色器主要作用是指定形状
  2. 以数组(顶点数据)的形式传递3个3D坐标作为这个过程的输入

片段着色器

     1.片段着色器主要指定颜色、光照、阴影等光影效果

二.使用

1.创建顶点着色器并绑定其ID

GLuint glCreateShader(GLenum shaderType

参数:指定创建的着色器类型。只能为GL_VERTEX_SHADER/GL_FRAGMENT_SHADER

                   顶点着色器/片段着色器

unsigned int vertexShader=glCreateShader(GL_VERTEX_SHADER)

2.绑定着色器的源码

将着色器中的源代码设置为string指定的字符串数组中的源代码

void  glShaderSource(GLuint shader,GLsizei count,const GLchar * const *string,const GLint *length

参数一:着色器的ID

参数二:源码字符串或数组个数

参数三:指定的源码字符串或数组指针

参数四:指定字符串长度

glShaderSourse(vertexShader,1,&vetrexShaderSource,NULL);

 3.编译一个着色器对象

void glCompileShader(GLuint shader);

参数:指定着色器ID

glCompileShader(vertexShader);

4.连接定点着色器与片段着色器

unsigned int shaderProgram=glCreatProgram();//创建

 附加一个着色器对象到程序对象

void glAttachShader(GLuint program, GLuint shader);

参数一:program的ID

参数二:着色器ID

 glAttachShader(shaderProgram,vertexShader); //加入定点着色器
 glAttachShader(shaderProgram,fragmentShader);//加入片段着色器
					

 将着色器连接起来

glLinkProgram(shaderProgram);

5.删除着色器

glDeleteShader(vertexShader);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值