Не можете передать значение с плавающей запятой в GLSL? - PullRequest
1 голос
/ 17 декабря 2011

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

1 Ответ

1 голос
/ 18 декабря 2011

Я наконец нашел его.

Я портирую свою программу на Android, она хорошо работает

Это проблема моего компьютера (90% - это драйвер графической карты)

...