2012-02-14 322 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