2013-07-10 95 views
0

我正在繪製一些線條並希望它們淡出。我是着色器編碼的新手,我不確定我的問題是什麼。我爲這條線和一個轉換矩陣傳遞了一個矢量數組,以及一個統一的顏色和淡入淡出的起點。我正在使用變量來將頂點着色器上的位置傳遞給片段着色器。該代碼表示​​片段着色器未編譯。在着色器中實現淡出的OpenGL-ES 2.0問題

的Vertex Shader

attribute vec4 position; 
uniform mat4 matrix; 
varying vec4 pointLocation; 

void main() { 
    gl_Position = matrix * position; 
    pointLocation = gl_Position; 
} 

片段着色器

precision mediump float; 

uniform vec4 uniformColor; 
uniform vec1 fadeStart; 
varying vec4 pointLocation; 

void main() { 
    lowp vec1 distance; 
    lowp vec4 color; 

    color = uniformColor; 
    distance = pointLocation.x - fadeStart; 

    if (distance < 30) { 
     color.w = distance/30; 
    } 

    gl_FragColor = color; 
} 
+0

什麼,具體是編譯器錯誤? – Ani

+0

30應該是30.0 - 請參閱關於@ vasaka的反應的評論。 – reza

回答

1

沒有VEC 1它只是浮動。你也可以用OpenGL得到編譯​​器錯誤,它會給你提供你有什麼語法錯誤的線索。

+0

我怎樣才能得到opengl編譯錯誤?我通過monosouch爲ios做到了這一點。 – reza

+0

@reza使用glGetShaderInfoLog使用示例很容易找到 – Vasaka

+0

我使用的代碼確實獲取了日誌,但它們似乎是空的。它首先檢查logLength,如果> 0,那麼它執行GetProframInfoLog - 但沒有任何輸出。 - 我也改變了var1浮動,但沒有去。我正在嘗試一些小的迭代改變來看看它是什麼打破了它。 – reza