sprite-kit - SpriteKit 中的顶点着色器

标签 sprite-kit

是否可以在 SpriteKit 中使用顶点着色器和片段着色器运行 openGL 着色器程序?

似乎只有片段着色器可用。

SceneKit 通过 SCNProgram 类提供它

最佳答案

实际上,顶点着色器不仅仅用于转换和投影。最有用的功能之一是在每个顶点进行计算,然后让硬件对结果进行插值,通过“可变”变量将它们传递给片段着色器。 (这比尝试在片段着色器本身中计算插值更有效。)

最简单的示例是 gouraud 着色:您可以在顶点着色器中计算光照,并让硬件对这些值进行插值,以便在片段着色器中使用。这比计算后者中的照明效率要高得多。 (然而,这只是一个简单的例子。还有更多有用的例子。例如,许多模糊着色器使用这种技术,因为它更有效。)

cocos2d 库支持顶点着色器(这些技术可以与它一起使用。)所以它不像是没有人使用的东西。

目前在 SpriteKit 中可能无法使用顶点着色器。通过使用 SceneKit 对象(可以无缝嵌入到 SpriteKit 场景中),您可能会获得更好的运气。

关于sprite-kit - SpriteKit 中的顶点着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597314/

相关文章:

swift - 命中 fatal error : unexpectedly found nil while unwrapping an Optional value (lldb)

ios - 我如何判断 SKEmitterNode 何时达到其最大粒子数?

swift - SpriteKit 跟踪多个触摸

ios - 在 Swift 和 sprite kit 中如何检测滑动的 Sprite ?

ios - 向下滑动标签

swift - 如何在歌曲重复时无滞后/延迟地循环背景音乐(无缝)

swift - Sprite Kit - 有时球会从屏幕上消失?

Swift SpriteKit 展开和包装

swift - 如何统一填充 SKShapeNode

ios - Spritekit - 动态添加 child 会降低性能