2013-07-02 151 views
0

我在libgdx中有片段着色器問題。以下是我的片段着色器。片段着色器:在着色器中沒有統一名稱

#ifdef GL_ES 
precision mediump float; 
#endif 
uniform float u_aspectRatio; 
varying vec2 v_texCoords; 
uniform sampler2D u_texture;  
void main()     
{      
    gl_FragColor = texture2D(u_texture, v_texCoords); 
} 

在節目我做

shader.setUniformi("u_texture", 0); // work fine 
shader.setUniformf("u_aspectRatio", 0.0f); //no uniform with name 'u_aspectRatio' in shader 

shader.isCompiled()返回true和第一套做工精細,但在第二次我有錯誤「名爲‘u_aspectRatio’着色器沒有統一的」。如果刪除行:

uniform float u_aspectRatio; 

從着色器都工作正常,但是當我加入這一行(在功能,我想與此對象的工作),並嘗試建立一些數據我有錯誤。

+0

我找到答案。在着色器不能統一哪個不使用psobject – Dima

回答

2

我在爲你所得到的同樣的問題,但下面的解決方案爲我

使用float均勻像這樣:

int a = shader.getUniformLocation("u_aspectRatio"); 
shader.setUniformf(a ,0.0f); 
1

這是因爲着色器編譯器優化了未曾使用過的制服。你可以忽略它。如果你不能,使用一個着色器程序類。

相關問題