2
我想寫一個着色器程序,它將呈現不同顏色的網格的三角形(所以我可以選擇一個三角形)。我嘗試使用gl_PrimitiveID,但它總是返回0,例如:GLSL - 片段着色器 - 每個三角形都有不同的顏色
#version 330
out uvec3 FragColor;
void main()
{
FragColor = uvec3(0.0, 0.0, gl_PrimitiveID);
}
此着色器總是呈現黑色。
爲什麼使用浮點常量作爲無符號整數vec3?你的GLSL編譯器是否應該至少抱怨這種情況? (例如,採用2個浮點組件和一個整數的「uvec3(...)」沒有超載)。對於這個問題,你是否誠實地繪製成一個整數顏色緩衝區?或者這是你試圖做的一件事情,使'gl_PrimitiveID'工作? –
對不起,我的壞,gl_PrimitiveID工作正常,問題是與我的幀緩衝區。 – user1784182