2012-02-14 223 views
1

我很熟悉OpenGL中的纹理使用。我也熟悉顶点之间颜色的着色和插值。两者可以相互结合使用吗?这样做是否使用每个顶点提供的颜色对纹理着色?我正在渲染一种老式的游戏格式,所以我正在试图弄清楚它们是否可以协同工作来为纹理创建变体。在OpenGL中使用顶点颜色和纹理?

干杯。

回答

4

是的,你可以做到这一点。如果将顶点上的颜色设置为白色以外的任何其他颜色,则应用的纹理将按给定的颜色进行过滤。如果同一个多边形上的不同顶点具有不同的颜色,并且存在纹理,则插值的颜色与无纹理的插值完全相同。

+3

请注意,纹理如何与顶点颜色结合*完全取决于纹理单元的纹理环境设置('glTexEnv')。所以默认情况下可能会“过滤”,但其他设置可能会导致不同的效果(添加等)。 – 2012-02-14 03:31:47

+0

特别是,'GL_MODULATE'会告诉渲染引擎将纹理颜色乘以顶点颜色,如@ Jarryd的回答中所述。 'GL_DECAL'使纹理与顶点颜色混合,这也是有用的(就像应用贴花时一样)调制每个顶点颜色的纹理着色,贴图将纹理应用到有色表面的顶部,表面显示直通纹理的透明部分。 – Olie 2013-06-04 20:13:43