2011-12-17 77 views
1

我尝试将值发送给GLSL,int正好,但浮动出来奇怪。无法将浮点值传递给GLSL?

Ubuntu的10.04LTS

显卡:G105M

这里是我的顶点着色器:

#version 110 

attribute vec4 a_vertex; 
attribute vec3 a_texCoord; 

varying vec2 v_texCoord; 

uniform float u_time; 

void main() 
{ 
    gl_Position=vec4(a_vertex.x+u_time,a_vertex.y,a_vertex.z,1); 
    v_texCoord=a_texCoord.xy; 
} 

这里是我的C代码:

GLint timeLoc=glGetUniformLocation(splash_screen.proHandle,"u_time"); 
glUniform1f(timeLoc,1.0); 

这里是奇怪的事情:如果我将u_time更改为int类型,则它可以正常工作。但是如果我带着一个浮球走,这很奇怪。

如果我使用int,顶点x将+1,但是如果我使用float,顶点x不会改变。

我想我找到了。

我将我的程序移植到Android上,它运行良好。

这是我电脑的问题(90%是图形卡驱动程序)

+2

定义“奇怪” - 运行时错误?视觉不正确? – 2011-12-17 06:57:46

回答

1

我finall发现它。

我端口我的程序到Android,它做工精良

这是我电脑的问题(90%是图形卡驱动程序)