gpt4 book ai didi

iOS 9 Sprite Kit 自定义着色器似乎被忽略

转载 作者:行者123 更新时间:2023-12-02 04:58:38 24 4
gpt4 key购买 nike

我一定错过了一些简单的东西......我希望如此。

我在使自定义着色器与 Xcode 7 和 iOS 9 SDK 配合使用时遇到问题。从 Sprite 套件模板开始,我将 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 中有效,但我也没有发现其他人提示自定义着色器不起作用,所以我有点迷失。

另一个注意事项是控制台上没有打印任何有关着色器的内容。例如,如果我故意在片段着色器中创建错误,我希望控制台中会有日志消息,但实际上没有。这几乎就像自定义着色器被忽略一样。当然,我在设置值时验证了着色器对象是否存在;所以它正在读取着色器文件,但似乎从未编译它。

最佳答案

我解决了我的问题...要获取 OpenGL 相关的调试信息,您必须在实际设备上运行。在模拟器中我根本没有得到任何信息。然而,当我在设备上运行时,它就开始喷出大量数据来帮助追踪问题。

那么上面的代码有什么问题呢?我忘记了一个“;”在着色器中。我把这件事归咎于 swift ;)

顺便说一句,当着色器正确时,它也可以在模拟器中工作。

关于iOS 9 Sprite Kit 自定义着色器似乎被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com