我已經使用Qt3D設置了延遲渲染管線。到目前爲止這麼好,但現在我想在場景中渲染的網格周圍添加選擇框。推遲渲染如何從燈光貢獻中排除網格
不幸的是,選擇框網格是受燈光影響,我不希望(請參閱「陰影」圖片下面)。例如,我可能想要將環境光強度設置爲0,並且選擇框仍應可見。另一個例子是,如果我想在一個視口角中顯示典型的X/Y/Z指示器。
我已經得到了光的貢獻計算,這是典型的通光着色器(簡稱)這樣的:
void main()
{
vec2 texCoord = gl_FragCoord.xy/winSize;
vec4 col = texture(color, texCoord);
vec3 pos = texture(position, texCoord).xyz;
vec3 norm = texture(normal, texCoord).xyz;
... calculate lights contribution...
fragColor = vec4(col.rgb * lightColor, col.a);
}
如果我更換fragColor行:
fragColor = vec4(col.rgb, col.a);
我得到非陰影下面的圖片,它顯示了我想要的選擇框的顏色。
從光通中排除特定網格是否有任何技巧或常見做法?
我已經試着用特殊的數值「欺騙」着色器,比如顏色alpha = 0.123,但它根本沒有任何幫助。
罩
非陰影
BDL,謝謝,我想我會選擇第二個。我發佈這個10分鐘後,我意識到我可以用一個單獨的着色器來渲染這些網格物體。我唯一擔心的是他們如何與gbuffer碎片混合時看起來如何。如果我取得了一些好成績,我會發布更新。 –