【问题标题】:Corona SDK crash when trying to combine filters/effects尝试组合过滤器/效果时 Corona SDK 崩溃
【发布时间】:2015-01-07 19:02:17
【问题描述】:

我正在尝试通过结合现有效果和 Corona Simulator 崩溃来创建新效果。

这是我的代码

graphics.defineEffect({
    language = "glsl",
    category = "filter",
    name = "myEffect",
    graph = {
        gray = { effect = "filter.grayscale", input1 = "paint1" },
        --final = { effect = "filter.contrast", input1 = "gray" },
    },
    output = "gray"
});

local rect = display.newRect(100, 100, 100, 100);
rect:setFillColor(1, 0, 0);
rect.fill.effect = "filter.myEffect";

还有关于过滤器参数的问题。如何在此示例中指定过滤器对比度的参数?

谢谢

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    这最近也给我带来了麻烦。我发现它可以通过在节点表中声明效果的图形定义来解决。

    我在下面包含了解决方案和更正的语法。

    graphics.defineEffect({
        language = "glsl",
        category = "filter",
        name = "myEffect",
        graph = {
          nodes = {
             gray = { effect = "filter.grayscale", input1 = "paint1" }
             --final = { effect = "filter.contrast", input1 = "gray" },
          },
           output = "gray"
        }
    })
    
    local rect = display.newRect(100, 100, 100, 100);
    rect:setFillColor(1, 0, 0);
    rect.fill.effect = "filter.myEffect";
    

    关于对比问题,如果我误解了,请原谅,但这应该是一个可行的解决方案

    graphics.defineEffect({
        language = "glsl",
        category = "filter",
        name = "myEffect",
        graph = {
          nodes = {
             gray = { effect = "filter.grayscale", input1 = "paint1" },
             final = { effect = "filter.contrast", input1 = "gray" }
          },
           output = "final"
        }
    })
    
    local rect = display.newRect(100, 100, 100, 100);
    rect:setFillColor(1, 0, 0);
    rect.fill.effect = "filter.myEffect";
    rect.fill.effect.final.contrast = 2
    

    一个很好的介绍是Tutorial: Multi-Pass Shaders in Graphics 2.0 by Bryan Smith

    【讨论】:

    • 感谢您的回答。我试过你写的第二个代码,它可以工作,但形状是红色而不是灰色。
    • 这是有意的。尝试将对比度更改为 0 以查看它没有效果。这回答了您为什么会崩溃以及如何更改节点过滤器中的对比度参数的问题。要获得预期的效果,您将不得不稍微尝试一下实现。到目前为止,您可以提出另一个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2020-11-05
    • 2023-03-24
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多