我實現了一個簡化的延遲着色(我沒有計算點光源的邊界),其中填充g-buffer後的 我只是使用全屏四元組計算照明。我在第二階段使用 混合(glBlendFunc(GL_ONE,GL_ONE))來處理多個燈光。 然後,glClearColor中的rgb值應設置爲0,以獲得正確的結果。填充緩衝區 glClearColor可以是任何顏色(某些顏色可能只會改變最終圖像中的背景顏色)。 現在我想知道我應該如何在最終圖像中設置背景顏色。要做到這一點 一種方式是填充G-緩衝過程中使用glClearColor(0,0,0),然後使用在片段着色器follwing if語句:延期着色和背景顏色
if((normal.x == 0.0) && (normal.y == 0.0) && (normal.z == 0.0))
{
fragColor = vec4(1, 0, 0, 1); // here we can set a background color
}
else
{
fragColor = computeLighting(worldPos, normal, diffM, specM, specMS);
}
它工作正常,但如果語句可能導致一些性能損失。這是設置 背景顏色的唯一方法嗎?