OpenGL glColorPointer重复颜色?

qua*_*ano 6 opengl colors repeat fill

想象一下,你有这些家伙之一:

alt text http://www.codesampler.com/d3dbook/chapter_05/chapter_05_files/image007.jpg

Aka GL_TRIANGLE_STRIP.如果你想用不同的颜色给它上色,你可以使用:

glColorPointer(4, GL_UNSIGNED_BYTE, 0, colorArray);
glEnableClientState(GL_COLOR_ARRAY);
Run Code Online (Sandbox Code Playgroud)

其中颜色数组中的每个"项"与条带中的顶点匹配.但是如果颜色在两种不同的颜色之间交替怎么办?如果只有两种"真正的"不同颜色,则不必为每个顶点定义颜色.所以我的问题是,是否可以定义一个只有两种颜色的colorArray,并且当它在循环顶点数组上循环时,以某种方式使opengl在这两者之间交替.

是的,我在opengl是一个完整的菜鸟,所以也许这是一个愚蠢的问题......

Ree*_*sey 4

您可以使用OpenGL 颜色索引模式来做到这一点。但是,请注意,根据我的经验,在大多数现代显卡上,这实际上比仅指定每个顶点颜色要慢。

在颜色索引模式下,您发送一个单独的颜色数组,然后每个顶点指定该数组的索引,而不是完整的 rgb/rgba。它的内存效率更高,但在大多数硬件驱动程序中并未得到优化。