OpenGL着色器基础

着色器:着色器是提供给用户定制自己特殊渲染需求的一套机制。常用接口如下:

  1. GLuint glCreateShader(GLenum type):创建指定类型的着色器。创建成功时会返回一个当前着色器的唯一标志。
    type指着色器类型。通常取GL_VERTEX_SHADER(顶点着色器),GL_FRAGMENT_SHADER(片段着色器),GL_GEOMETRY_SHADER(几何着色器)等类型中的一种。
  2. void glShaderSource(GLuint shader, GLsizei count, const GLchar conststring, const GLint* length):将着色器源码附加到着色器对象上。
    shader表示着色器唯一标志。
    count表示着色器源码字符串的个数。
    string表示着色器源码字符串的内容数组。
    length表示着色器源码字符串的长度数组,当为NULL时表示每个源码字符串以NULL结尾。
  3. void glCompileShader(GLuint shader):编译着色器。
    shader表示着色器唯一标志。
  4. void glGetShaderiv(GLuint shader, GLenum pname, GLint* params):检测着色器操作状态是否成功。
    shader表示着色器唯一标志。
    pname表示操作状态类型。可以是GL_COMPILE_STATUS(编译状态),GL_LINK_STATUS(链接状态),GL_DELETE_STATUS(删除状态)等操作状态中的一种。
    params就是检测的结果。成功就会返回GL_TRUE,否则就会返回GL_FALSE。
  5. void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog):获取着色器错误消息。
    shader表示着色器唯一标志。
    bufSize表示错误消息容器大小。
    infoLog表示错误消息容器。
    length表示错误消息长度大小。当为NULL时就不返回错误消息长度。
  6. void glDeleteShader(GLuint shader):删除着色器。当着色器以及链接到一个或者多个激活的着色器程序上时,此时着色器就被标记为“可删除”状态,直到着色器程序不再使用时,当前的着色器才会被自动删除。
    shader表示着色器唯一标志。
  7. GLboolean gllsShader(GLuint shader):判定指定着色器是否存在。
    shader表示着色器唯一标志。

着色器程序:着色器程序是多个着色器合并之后并最终链接完成的版本。已激活着色器程序的着色器将在我们发送渲染调用的时候被使用。常用接口如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值