Я пытаюсь отправить значения в GLSL, с int все в порядке, но float выходит странно.
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% - это драйвер графической карты)