我有一個關於OpenGL渲染管道的問題。如果在具有兩種不同顏色的相同位置處有兩個頂點,則片段會得到什麼顏色?
我最近一直在閱讀有關GLSL的幾何着色器的理論。我認爲我確實瞭解如何發佈新幾何並將顏色分配給新頂點的基礎知識。但是,我不確定如果其中一個新頂點與從Vertex着色器進入的頂點具有相同的位置,則該片段將獲得什麼顏色。
考慮這個例子: 據我所知,我能夠使用頂點着色器處理單個頂點。我做了一些轉變,並將其存儲在glPosition中。此外,還可以將顏色分配給該頂點,例如,通過將其存儲到glFrontColor。作爲一個例子,我給它紅色。如果所有通道都有32位,那將是0xFFFFFFFF'00000000'00000000'00000000,對吧? 接下來,涉及幾何着色器。我想讓我的幾何着色器發出一些額外的頂點。至少其中一個與來自頂點着色器的原始頂點位於相同的位置。然而,它被賦予另一種顏色,例如,綠色。那將是0x00000000'FFFFFFFF'00000000'00000000,對吧? 遲早,在每個頂點被處理之後,就會發生光柵化。據我所知,兩個頂點都被光柵化,因此會變成非常相同的片段。所以,我們走了。該特定片段會得到什麼顏色?是否有某種自動混合,碎片變黃?或者是紅色的還是比較綠色的?
這個問題可能很愚蠢。但我不清楚這一點,並希望有人能爲我澄清這一點。
如果沒有混合(我認爲),我怎麼可能創建混合效果?
非常感謝 沃爾特