0
試圖獲得一些簡單的教程級着色器用於LWJGL。我有一個工作設置,當我在着色器中指定所有顏色時,可以簡單地在一個塊中着色,但現在我試圖將一個浮點值傳遞給着色器以指定簡單的灰度。無法將統一值傳遞給LWJGL中的着色器
破片着色器看起來是這樣的:
varying vec4 vertColor;
uniform float light;
void main()
{
gl_FragColor = vec4(light, light, light, 1);
}
和代碼正確渲染塊之前:
if(useShader)
{
int loc = ARBShaderObjects.glGetUniformLocationARB(program, "light");
System.out.println("LOC: " + loc);
ARBShaderObjects.glUniform1fARB(loc, 1.0f);
ARBShaderObjects.glUseProgramObjectARB(program);
}
破片着色器最初指定gl_FragColor = vertColor
,其工作方式,我可以在vec4
更換light
與任何浮點值和它的作品。但就我所知,無論我傳遞給ARBShaderObjects.glUniform1fARB
,當我渲染廣場時,廣場總是黑色的;我假設這是由於uniform float light
默認爲0.0f
,這聽起來像我的統一變量沒有被設置。
如果在所有相關的,我打印出來時,看到LOC爲0。
想知道我錯過了什麼。
不能相信我沒有嘗試過那個,但它的工作。謝謝! – user2154199 2013-03-10 17:32:07