포인트 스프라이트 용 셰이더를 만들고 싶습니다. 이제까지 iOS에서 모든 것이 작동하고 있습니다. 하지만 맥 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가 추가 된 것 같습니다). 아이디어가 있으십니까?!?