2011-12-17 18 views
1

私はGLSLに値を送信しようとしますが、intはちょうど良いですが、浮動小数点は奇妙になります。float値を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に移植するとうまくいきます。

それは私がfinallそれを発見した(90%が、グラフィックカードのドライバである)

+2

「奇妙な」定義 - ランタイムエラーを?正しくないビジュアルですか? –

+0

intを使用すると頂点xは+1になりますが、floatを使用すると頂点xは変更されません(PS:上のコードを編集しています) – windclose

+0

Ok。質問に対する回答が見つかった場合は、回答として投稿し、回答としてマークしてください。ありがとう。 –

答えて

1

私のコンピュータの問題です。アンドロイドへ

Iポート私のプログラムを、それがうまく

仕事それは私のコンピュータの問題だ(90%は、グラフィックカードのドライバである)