OpenGL学习随笔(三)

本文介绍OpenGL中使用数组配置方式批量绘制多边形的方法,包括顶点数组配置、索引数组应用及多组索引的快速绘制技巧。同时分享了作者在研究过程中遇到的问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果每个顶点都要用glVertex这样去输入,那对于动辄几千个多边形的模型来说,恐怕每一帧几千次函数调用会让某些系统“疯”掉。

一个比较容易想到方法是把顶点放在一起然后用一个命令将顶点数组的首地址配置给OpenGL。当然OpenGL也提供了这样的方法,而且不仅仅是针对顶点,所有需要频繁配置的数据OpenGL都为其设计了数组式配置的接口。

使用数组配置方式有两个步骤,

1. 使用glEnableClientState,并带上标志位,表示启用某种数据的数组配置方式,否则就只能使用单点方式
2. glVertexPointer等函数来配置特定类型的数组给OpenGL。

配置完成之后就是如何引用了。有两种方式,一种是单个索引方式,另一种是索引数组方式。

单个索引方式使用glArrayElement,指定索引后,会自动把相应索引的顶点,颜色等数据都配置给OpenGL,当前前提时使用了glEnableClientState开启了相应数据类型的数组配置模式。glArrayElement还是要与glBegin/glEnd联合使用。

更快捷的引用方式是使用索引数组。即把一个多边形的顶点的索引放在一个数组里,然后通过glDrawElements配置下去,这种方式不需要联合glBegin/glEnd使用。

更近一步,把多个glDrawElements调用所需的索引数组再放到一个数组里,使用glMultiDrawElements配置下去。

有了这些简单的配置方式之后,很难想像为什么还要用原始的方式了。

今天研究投影花了好多时间,后了发现自己走了弯路,再次感叹方法和交流是多么重要。关于投影的内容打算明天再好好理解一下,在明天的笔记中整理吧。

同样是研究投影时,突然发现原来买来一直没看的几本书(《几何原本》、《数学手册》,还有若干关于OpenGL的书)在我最需要的时候发挥作用了。所谓“书到用时方恨少”,平时有预见性的多储备一些好书是很必要的。而且书是很直接的知识获取方式,随时随地都可以看,相比互联网搜索、电子书,有其不可取代的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值