如何在XCode中编写OpenGL ES片段着色器?

Mys*_*ake 3 opengl-es fragment-shader sprite-kit skspritenode swift

我正在尝试将自己的着色器用作SKSphaN的SKShader,但我只是不知道正确的方法.我想要的只是一种用自动完成来编写着色器代码的方法,并且可以看到着色器,而不必等待很长时间来编译它,但它似乎比我想象的更难.

我已经安装了GLFW3以及其他一些奇怪的东西,因为大多数教程都建议使用OpenGL这样的东西,但它似乎更多的是整个OpenGL,而不仅仅是一种特定的着色器.

TL; DR:有没有人知道在SpriteKit中编写着色器以用作SKShaders的快速而简单的方法?

Luc*_*tti 5

让我们从你的精灵开始吧

let spaceship = SKSpriteNode(imageNamed: "Spaceship")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

SKShader对象

您需要将其连接到SKShader对象

spaceship.shader = SKShader(fileNamed: "MyShader.fsh")
Run Code Online (Sandbox Code Playgroud)

着色器代码

接下来,您可以创建MyShader.fsh文件并在其中写入片段着色器的逻辑.

在以下示例中,我将设置为每个像素0blue组件

void main() {
    vec4 color = texture2D(u_texture, v_tex_coord);
    color.b = 0.0;
    gl_FragColor = color;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述