【一步步学OpenGL 10】 -《索引绘制》

教程10

索引绘制

原文: http://ogldev.atspace.co.uk/www/tutorial10/tutorial10.html

CSDN完整版专栏: http://blog.csdn.net/column/details/13062.html


背景

OpenGL提供了几个绘制函数,其中我们之前使用的glDrawArrays()属于顺序绘制的一个函数。顺序绘制是从指定的偏移量依次扫描顶点缓冲区所有图元的每一个顶点,这样很简单易用,但是缺点是如果一个顶点是多个图元的共同顶点,那么这个顶点将会在顶点缓冲区出现多次,也就是没有顶点共享的概念。顶点共享是通过索引绘制类的函数来实现的。这里除了顶点缓冲器额外需要有一个索引缓冲,索引缓冲中存储着顶点缓冲中的顶点的索引值。扫描索引缓冲和扫描顶点缓冲类似:每一个X索引按照图元的顶点依次排放。顶点共享就是对于多个图元出现的共同的一个顶点,只要在索引缓冲中重复顶点在顶点缓冲中的索引即可,不需要将这个顶点在顶点缓冲存储多次。共享对于内存的高效利用非常重要,因为多数物体都是通过一些由三角形图元组成的封闭的网格表示的,而多数顶点都会在多个三角形图元中出现作为三角形的其中一个顶点。

这里是一个顺序绘制的例子:

你可能感兴趣的:(一步步学OpenGL3.3+)