OpenGL glColorPointer重复颜色?
假设你有一个这样的人:OpenGL glColorPointer重复颜色?,opengl,colors,fill,repeat,Opengl,Colors,Fill,Repeat,假设你有一个这样的人: (来源:) 又名三角带。如果要使用不同的颜色对其进行着色,可以使用: glColorPointer(4, GL_UNSIGNED_BYTE, 0, colorArray); glEnableClientState(GL_COLOR_ARRAY); 其中,颜色数组中的每个“项”都与条带中的顶点匹配。但是如果颜色只是在两种不同的颜色之间交替呢?如果只有两种“真实”不同的颜色,则无需为每个顶点定义颜色。所以我的问题是,是否有可能定义一个只有两种颜色的colorArray,并
(来源:) 又名三角带。如果要使用不同的颜色对其进行着色,可以使用:
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colorArray);
glEnableClientState(GL_COLOR_ARRAY);
其中,颜色数组中的每个“项”都与条带中的顶点匹配。但是如果颜色只是在两种不同的颜色之间交替呢?如果只有两种“真实”不同的颜色,则无需为每个顶点定义颜色。所以我的问题是,是否有可能定义一个只有两种颜色的colorArray,并在顶点数组上循环时,以某种方式使opengl在这两种颜色之间交替
是的,我在opengl是一个彻头彻尾的傻瓜,所以这可能是一个愚蠢的问题…你可以使用。但是,请注意,根据我的经验,在大多数现代图形卡上,这实际上比仅指定每个顶点颜色要慢
在“颜色索引”模式下,发送一个单独的颜色数组,然后每个顶点指定数组中的索引,而不是完整的rgb/rgba。它的内存效率更高,但在大多数硬件驱动程序中没有得到优化。您可以使用顶点着色器来实现这一点,方法是为每个顶点发送一个布尔标志,描述要使用的颜色。实际上,最简单/最快的事情可能就是提交每个顶点的颜色 如果opengl有能力拥有多个顶点流和索引,那么它们可能会工作(但也可能不值得)