我有一个关于 OpenGL 渲染管道的问题。
我最近一直在阅读有关 GLSL 几何着色器的理论。我想我确实了解如何发出新几何图形并将颜色分配给新顶点的基础知识。但是,我不确定如果其中一个新顶点的位置与来自顶点着色器的顶点的位置完全相同,那么片段会得到什么颜色。
考虑这个例子:据我所知,我能够使用顶点着色器处理单个顶点。我进行了一些转换并将位置存储在 glPosition 中。此外,还可以为该顶点分配颜色,例如通过将其存储到 glFrontColor。例如,我将其设为红色。如果所有通道都有 32 位,那将是 0xFFFFFFFF'00000000'00000000'00000000,对吧?接下来,涉及几何着色器。我希望我的几何着色器发出一些额外的顶点。其中至少有一个与从顶点着色器传入的原始顶点处于完全相同的位置。但是,它被分配了另一种颜色,例如绿色。那将是 0x00000000'FFFFFFFF'00000000'00000000,对吧?迟早,在处理完每个顶点之后,就会发生光栅化。我认为,两个顶点都被光栅化,因此将成为同一个片段。所以,我们走了。那个特定的片段会变成什么颜色?是否有某种自动混合和片段变黄?或者是红色还是绿色?
这个问题可能很傻。但我只是不清楚这一点,如果有人能为我澄清这一点,我将不胜感激。
如果没有混合(我假设),我怎么可能创建混合效果?