【问题标题】:Custom shader with SpriteKit & Swift has some difference使用 SpriteKit 和 Swift 的自定义着色器有一些不同
【发布时间】:2014-07-16 05:37:34
【问题描述】:

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

//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)

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

【问题讨论】:

    标签: swift sprite-kit shader


    【解决方案1】:

    回答一个非常老的问题,但你可以在着色器中添加一个 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;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2018-01-09
      • 2018-01-06
      • 2012-09-28
      • 2012-10-12
      • 1970-01-01
      • 2016-05-05
      相关资源
      最近更新 更多