OpenGL二次颜色的用途是什么?

OpenGL二次颜色的用途是什么?,opengl,Opengl,glSecondaryColor允许指定第二种颜色。第二种颜色对什么有用 我已经检查了,但没有多大帮助: 二级颜色被插值并应用于每个片段 在光栅化过程中,当启用GL\U COLOR\U SUM时。当灯光不亮时 如果已启用,并且指定了GL_分离_镜面反射_颜色,则 将为“次颜色”指定根据镜面反射项计算的值 照明计算的一个重要方面。一次和二次电流 颜色将应用于每个片段,而与片段的状态无关 GL_颜色_总和,在此条件下。当GL_分离_镜面_颜色时 如果指定,则为查询当前辅助对象时返回的值 颜色未定义

glSecondaryColor
允许指定第二种颜色。第二种颜色对什么有用

我已经检查了,但没有多大帮助:

二级颜色被插值并应用于每个片段 在光栅化过程中,当启用GL\U COLOR\U SUM时。当灯光不亮时 如果已启用,并且指定了GL_分离_镜面反射_颜色,则 将为“次颜色”指定根据镜面反射项计算的值 照明计算的一个重要方面。一次和二次电流 颜色将应用于每个片段,而与片段的状态无关 GL_颜色_总和,在此条件下。当GL_分离_镜面_颜色时 如果指定,则为查询当前辅助对象时返回的值 颜色未定义


这种二次颜色的东西甚至可能看起来像旧GL版本的遗留物。。。我错了吗?

在固定功能照明模型中,主颜色和/或纹理颜色应用于漫反射照明和镜面反射照明。因此,不可能有一个闪亮的黑色表面,因为黑色原色/纹理颜色将乘以镜面照明,使其实际上为零

提供副色并启用
GL_SEPARATE_SPECULAR_color
将意味着镜面照明值将乘以副色而不是原色。因此,可以使用黑色主/纹理颜色,辅颜色为1.0。这样,即使在曲面的黑暗区域,也可以获得明亮的高光

当然,这是GL 3.1中丢弃的所有固定功能垃圾。使用着色器,可以编写任何照明模型