我想爲點精靈製作着色器 - 迄今爲止,everthing在iOS上工作。但Mac OS X. 我的頂點着色器:在Mac上不能使用gl_PointCoord?
attribute vec4 position;
attribute vec4 color;
attribute vec2 texcoord;
varying vec4 colorVarying;
uniform mat4 modelViewProjectionMatrix;
uniform float pointSize;
void main()
{
gl_Position = modelViewProjectionMatrix * position;
colorVarying = color;
gl_PointSize = pointSize;
}
我的片段着色器:
varying lowp vec4 colorVarying;
uniform lowp float textureFlag;
uniform sampler2D texture;
void main()
{
gl_FragColor = textureFlag * texture2D(texture, gl_PointCoord) * colorVarying +
(1.0 - textureFlag) * colorVarying;
}
片段着色器無法編譯,因爲 「gl_PointCoord」 在Mac上。在Mac上,我在着色器中添加了「#define lowp」作爲預處理器。
如果我在着色器上添加了「#version 120 \ n」,它在Mac上編譯得很好,但沒有顯示任何內容(但是在iOS上它不起作用,如果我使用#version在着色器的頂部標記 - 也許,因爲1.2版會錯過「lowp」)。
那麼,原因是什麼?我的Mac說,它使用GLSL 1.2(我認爲有gl_PointCoord添加)。 任何想法?!?