2016-05-17 4 views
3

私はWindows上でOpenGLを使って正常に動作する頂点シェーダを持っています。私はOpenGL ES2.0をサポートするiPad上で同じシェーダを使いたいと思っています。私は、iPadがサポートしません「アウト」キーワードに必要なGLSL 1.5を読んだものからOpenGL GLSL 'out'キーワードに相当するGLSL ES?

Invalid storage qualifiers 'out' in global variable context 

:シェーダーの

コンパイルで失敗します。フラグメント・シェーダーに色を渡すために使用できる 'out'と同等のキーワードがありますか?

attribute vec4 vPosition; 
attribute vec4 vColor; 

uniform mat4 MVP; 

out vec4 pass_Color; 

void main() 
{ 
    gl_Position = MVP * vPosition; 
    pass_Color = vColor; 
} 

この頂点シェーダは、勾配のブレンドを作成するために、私が使用されているので、私は、三角形の各頂点に色を割り当てることだし、次いで、フラグメントシェーダは、各頂点間の色を補間します。そのため、フラグメントシェーダーに直接色を直接渡すわけではありません。

+0

注:ここで働いてシェーダーです。 –

+0

@RetoKoradi私は1つ所有したいと思う:) – SparkyNZ

答えて

1

解決済み!私が使っているGLSL ES 1.0では、 'in'と 'out'の代わりに 'varying'を使う必要があります。より多くの互換性のあるデスクトップのOpenGLのより新しいバージョンであるすべての多少の最近のiPadは、ES 3.0をサポート

attribute vec4 vPosition; 
attribute vec4 vColor; 

uniform mat4 MVP; 

varying vec4 pass_Color; 

void main() 
{ 
    gl_Position = MVP * vPosition; 
    pass_Color = vColor; 
} 
関連する問題