带 SpriteKit 的 ShaderToy?
ShaderToy with SpriteKit?
有人可以提供一些关于如何使用 shadertoy site in sprite kit? This works with other shaders in an .fsh file but I can't seem to get any code from shadertoy 中的代码工作的指导。我正在使用 .sks 文件将我的 SpriteNode 添加到场景中。我在界面生成器中使用 SKNode 检查器将自定义着色器应用到 SpriteNode。
我已经设法从 shadertoy web-site 中获得了一些着色器来与 Sprite Kit 一起工作。
首先,在您看到的着色器中:
void mainImage( out vec4 fragColor, in vec2 fragCoord )</pre>
将其更改为:
void main ()</pre>
通常,您需要更改这些变量的名称:
iGlobalTime
到 u_time
fragColor
到 gl_FragColor
fragCoord
到 gl_FragCoord
iResolution
到 u_sprite_size
但是在iOS9中,u_sprite_size
坏了。我一直在遵循其他地方建议的解决方案,方法是创建自己的制服并将其命名为 c_sprite_size
并在检查器的 sks 文件中设置值。
SpriteKit 制服列表在这里:
全局变量在 fsh 文件中似乎不太适用;在某些情况下,我不得不更改代码以将变量值作为函数参数传递;我对着色器编程很陌生;可能还有其他方法可以使变量如何声明为统一和变化等。
我遇到过一些着色器无法在模拟器或 Sprite Kit 场景编辑器中运行,但可以在设备上运行。我一直在使用 iPhone 6s 和 iOS 9.2.
最后,值得注意的是,当您 运行 在 iDevice 上运行应用程序时,着色器编译错误将显示在调试控制台中。例如
Jet: Error Domain=MTLLibraryErrorDomain Code=3 "Compilation failed: </p>
<p>program_source:6:1: error: unknown type name 'precision'
precision mediump float;
^
program_source:6:19: error: expected unqualified-id
precision mediump float;
^
program_source:8:1: error: unknown type name 'varying'
varying vec2 position;
^
program_source:8:13: error: expected ';' after top level declarator
varying vec2 position;
^
</pre>
我能够通过这种方式修复一些着色器。
有人可以提供一些关于如何使用 shadertoy site in sprite kit? This works with other shaders in an .fsh file but I can't seem to get any code from shadertoy 中的代码工作的指导。我正在使用 .sks 文件将我的 SpriteNode 添加到场景中。我在界面生成器中使用 SKNode 检查器将自定义着色器应用到 SpriteNode。
我已经设法从 shadertoy web-site 中获得了一些着色器来与 Sprite Kit 一起工作。
首先,在您看到的着色器中:
void mainImage( out vec4 fragColor, in vec2 fragCoord )</pre>
将其更改为:
void main ()</pre>
通常,您需要更改这些变量的名称:
iGlobalTime
到u_time
fragColor
到gl_FragColor
fragCoord
到gl_FragCoord
iResolution
到u_sprite_size
但是在iOS9中,
u_sprite_size
坏了。我一直在遵循其他地方建议的解决方案,方法是创建自己的制服并将其命名为c_sprite_size
并在检查器的 sks 文件中设置值。SpriteKit 制服列表在这里:
全局变量在 fsh 文件中似乎不太适用;在某些情况下,我不得不更改代码以将变量值作为函数参数传递;我对着色器编程很陌生;可能还有其他方法可以使变量如何声明为统一和变化等。
我遇到过一些着色器无法在模拟器或 Sprite Kit 场景编辑器中运行,但可以在设备上运行。我一直在使用 iPhone 6s 和 iOS 9.2.
最后,值得注意的是,当您 运行 在 iDevice 上运行应用程序时,着色器编译错误将显示在调试控制台中。例如
Jet: Error Domain=MTLLibraryErrorDomain Code=3 "Compilation failed: </p> <p>program_source:6:1: error: unknown type name 'precision' precision mediump float; ^ program_source:6:19: error: expected unqualified-id precision mediump float; ^ program_source:8:1: error: unknown type name 'varying' varying vec2 position; ^ program_source:8:13: error: expected ';' after top level declarator varying vec2 position; ^ </pre>
我能够通过这种方式修复一些着色器。