2010-06-03 27 views
2

我想修改片段着色器,它是標準的iPhone/XCode OpenGL ES模板的一部分。我想讓它的每一行像素都是透明的。我到目前爲止這樣的代碼:如何修改iPhone OpenGL ES模板中的着色器以產生此效果?

varying lowp vec4 colorVarying; 

void main() 
{ 
    gl_FragColor = vec4(colorVarying.x, colorVarying.y, colorVarying.z, floor(mod(gl_FragCoord.y, 2.0))); 

} 

但是,當我編譯和運行我仍然得到同樣的方上下移動,沒有其他影響。

這裏是我的頂點着色器(我的鍵盤剛剛分手所以沒有返回鍵!DOH!)

attribute vec4 position; 
attribute vec4 color; 

varying vec4 colorVarying; 

uniform float translate; 

void main() 
{ 
    gl_Position = position; 
    gl_Position.y += sin(translate)/2.0; 

    colorVarying = color; 
} 

使用這個頂點着色器及以上片段着色器,我沒有得到任何「掃描線效應」這是我所期待的。我正在使用iPad模擬器以及3.1.3 iPhone模擬器進行測試。

我在這裏做錯了什麼?我在Glsl是一個完整的n00b - 我試圖教自己非常基礎(從this tutorial開始)。

回答

0

你可以發佈你的頂點着色器嗎?假設它是在經過vec4 colorVarying沒有理由當壓扁成相對於兩行代碼樣本中(貼在下面)一行

float odd = floor(mod(gl_FragCoord.y, 2.0)); 
gl_FragColor = vec4(colorVarying.x, colorVarying.y, colorVarying.z, odd); 

其他唯一的區別我看到的是它不應該工作你指定lowp - 嘗試沒有。