是否可以在 SpriteKit 中使用顶点着色器和片段着色器运行 openGL 着色器程序?
似乎只有片段着色器可用。
SceneKit 通过 SCNProgram 类提供它
最佳答案
实际上,顶点着色器不仅仅用于转换和投影。最有用的功能之一是在每个顶点进行计算,然后让硬件对结果进行插值,通过“可变”变量将它们传递给片段着色器。 (这比尝试在片段着色器本身中计算插值更有效。)
最简单的示例是 gouraud 着色:您可以在顶点着色器中计算光照,并让硬件对这些值进行插值,以便在片段着色器中使用。这比计算后者中的照明效率要高得多。 (然而,这只是一个简单的例子。还有更多有用的例子。例如,许多模糊着色器使用这种技术,因为它更有效。)
cocos2d 库支持顶点着色器(这些技术可以与它一起使用。)所以它不像是没有人使用的东西。
目前在 SpriteKit 中可能无法使用顶点着色器。通过使用 SceneKit 对象(可以无缝嵌入到 SpriteKit 场景中),您可能会获得更好的运气。
关于sprite-kit - SpriteKit 中的顶点着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597314/