【发布时间】:2015-12-16 22:48:58
【问题描述】:
我一定是遗漏了一些简单的东西......我希望。
我无法让自定义着色器与 Xcode 7 和 iOS 9 SDK 一起使用。从 sprite kit 模板开始,我将 GameScene 更改为如下所示:
class GameScene: SKScene {
var backgroundShader = SKShader(fileNamed: "BackgroundShader")
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder) is not used in this app")
}
override init(size: CGSize) {
super.init(size: size)
anchorPoint = CGPoint(x: 0.5, y: 0.5)
let background = SKSpriteNode(color: SKColor.brownColor(), size: size)
background.shader = backgroundShader
addChild(background)
}
}
我的“BackgroundShader”看起来像这样:
void main()
{
gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0)
}
所以,我希望我的背景应该是绿色,而不是棕色。我也尝试过为 SKSpriteNode 使用纹理,但这没有帮助。
我几乎肯定这在 iOS 8 中有效,但我也没有发现其他人抱怨自定义着色器不起作用,所以我有点迷茫。
另一个注意事项是控制台没有打印关于着色器的任何内容。例如,如果我故意在片段着色器中创建错误,我希望控制台中有日志消息,但没有。就好像自定义着色器被忽略了一样。当然,我在设置值时验证了着色器对象存在;所以它正在读取着色器文件,但似乎从未编译它。
【问题讨论】:
标签: ios sprite-kit ios9