glSecondaryColor
允许指定第二种颜色。这第二种颜色有用吗?
我检查了kronos reference并没有多大帮助:
对次要颜色进行插值并应用于每个片段 在光栅化期间启用GL_COLOR_SUM时。当照明是 启用,并指定GL_SEPARATE_SPECULAR_COLOR,该值为 辅助颜色分配从镜面术语计算的值 照明计算。初级和次级电流 颜色应用于每个片段,无论状态如何 GL_COLOR_SUM,在这种条件下。当GL_SEPARATE_SPECULAR_COLOR时 指定,查询当前辅助节点返回的值 颜色未定义。
这种二次色的东西甚至可能看起来像旧款GL版本的残羹剩饭......我错了吗?
答案 0 :(得分:7)
在固定功能照明模型中,主要颜色和/或纹理颜色应用于漫反射光源和高光照明。因此,不可能有一个闪亮的黑色表面,因为黑色原色/纹理颜色将成倍增加到镜面光照,使其实际上为零。
提供辅助颜色并启用GL_SEPARATE_SPECULAR_COLOR
意味着镜面反射光值将乘以辅助颜色而不是原色。因此,您可以使用黑色主色/纹理颜色,辅助颜色为1.0。即使在表面的黑暗区域,这也可以让你拥有明亮的闪亮亮点。
当然,这是GL 3.1中丢弃的所有固定功能垃圾。使用着色器,您可以拥有可以编码的任何照明模型。