我必須在這裏錯過簡單的東西......我希望。iOS 9 Sprite Kit自定義着色器似乎被忽略
我在使用Xcode 7和iOS 9 SDK製作自定義着色器時遇到了麻煩。與精靈套件模板開始我改變了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中工作,但我也沒有發現其他人抱怨自定義着色器不工作,所以我有點失落。
另一個需要注意的是,控制檯上沒有關於着色器的信息。例如,如果我有意在我的片段着色器中創建一個錯誤,我希望在控制檯中有日誌消息,但沒有。這幾乎就像自定義着色器被忽略了一樣。當然,我設置該值時驗證了着色器對象的存在;所以它正在讀着色器文件,但似乎從未編譯它。