OpenGL学习笔记(六)

着色器程序

简介

着色器程序对象(Shader Program Object)是多个着色器合并之后并最终链接完成的版本。使用着色器前,必须先把它们链接(Link)为一个着色器程序对象,然后在渲染对象的时候激活这个着色器程序,已激活着色器程序的着色器将在发送渲染调用的时候被使用。

当链接着色器至一个程序的时候,它会把每个着色器的输出链接到下个着色器的输入。当输出和输入不匹配的时候,会报连接错误。

使用

首先创建一个着色器程序:

unsigned int shaderProgram;
shaderProgram = glCreateProgram();

glCreateProgram函数创建一个程序,并返回新创建程序对象的ID引用。

接下来,把已经编译的着色器附加到程序对象上,然后用glLinkProgram链接它们:

glAttachShader(shaderProgram, vertexShader);
glAttachShader(shaderProgram, fragmentShader);
glLinkProgram(shaderProgram);

调用glUseProgram函数,以激活刚创建的程序对象:

glUseProgram(shaderProgram);

在glUseProgram函数调用之后,每个着色器调用和渲染调用都会使用这个程序对象(即附加上的着色器)了。

另外,在把着色器对象链接到程序对象以后,记得删除着色器对象:

glDeleteShader(vertexShader);
glDeleteShader(fragmentShader);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值