OpenGL学习笔记(LearnOpenGL)-第三部分 绘制矩形

索引缓冲对象

想要绘制一个矩形时,可以考虑的思路是绘制两个三角形拼接在一起,而这样就需要绘制6个顶点,对比矩形本身的4个顶点有很大的额外开销,索引缓冲对象EBO可以存储顶点的索引,而在绘制时调用矩形四个顶点的索引并按照顺序绘制。

实现这个功能需要我们定义索引:

与VBO类似,我们先绑定EBO然后用glBufferData把索引复制到缓冲里。同样,和VBO类似,我们会把这些函数调用放在绑定和解绑函数调用之间,与其对应的缓冲目标为GL_ELEMENT_ARRAY_BUFFER,使用glBindBuffer、glBufferData时将其作为对象,并且使用

glDrawElements方法绘制。

过程如下:

此外,使用glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) 表示对三角形的正面与背面均用线绘制,即生成线框,直到我们用glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)将其设置回默认模式。

创建两个不同三角形,使用不同VAO与VBO

类似的过程重复两遍,更改命名 

 

使用不同shader分别绘制两个三角形

过程是类似的,编写新的fragmentshader GLSL程序,完成编译后,创建两个shaderprogram将vertexshader分别于两个fragmentshader绑定形成两个shaderprogram,在绘制时分别调用。注意区分命名。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值