gpt4 book ai didi

swift - SpriteKit 和 Swift 的自定义着色器有一些不同

转载 作者:行者123 更新时间:2023-11-28 09:20:45 26 4
gpt4 key购买 nike

这是我的测试着色器源代码。

//Shader/TestShader.fsh
void main() {
vec4 color = texture2D(u_texture, v_tex_coord).rgba;
gl_FragColor.rgb = vec3(1);
gl_FragColor.a = color.a;
}

很简单。这只是为了测试。为了使用这个着色器:

//GameScene.swift 
// override func didMoveToView(view: SKView) {
let sprShader = SKSpriteNode(imageNamed: "Spaceship")
sprShader.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
sprShader.shader = SKShader(fileNamed: "Shader/TestShader.fsh")
self.addChild(sprShader)

我期待雪碧的白色轮廓。但它显示白色矩形。我是初学者。我有什么问题吗?

最佳答案

回答一个非常老的问题,但你可以只向着色器添加一个 if 语句

vec4 color = texture2D(u_texture, v_tex_coord).rgba;
if(color.a > 0.1) {
gl_FragColor.rgb = vec3(1);
}
gl_FragColor.a = color.a;

这样只有不透明的像素会被染成白色

关于swift - SpriteKit 和 Swift 的自定义着色器有一些不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772934/

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