在SKShader / iOS的.fsh着色器文件中使用OpenGL扩展

时间:2017-12-21 20:32:11

标签: ios xcode opengl-es glsl

在我的iOS应用程序中,我有一个带TestShader.fsh扩展名的着色器文件GL_EXT_shader_framebuffer_fetch

#extension GL_EXT_shader_framebuffer_fetch : require
void main() {
     lowp vec4 destColor = gl_LastFragData[0];
     ...
}

根据apple-ref,我可以使用扩展程序来获取目标颜色。然后我使用着色器

spriteNode.shader = SKShader(fileNamed: "TestShader.fsh")

但是着色器源无法使用输出

进行编译
error: invalid preprocessing directive
#extension GL_EXT_shader_framebuffer_fetch : require

error: use of undeclared identifier 'gl_LastFragData'
lowp vec4 destColor = gl_LastFragData[0];

如果没有扩展名,则会成功加载着色器。所以我的问题是 - 在iOS应用程序的着色器文件中包含OpenGL扩展的正确方法是什么?如果这很重要,我正在运行iPhone SE,iOS11,Xcode 9.2

1 个答案:

答案 0 :(得分:0)

如上所述 apple forumapple doc

  

SKShader不支持OpenGL扩展程序

-_-