Love2d extern image breaks shader(爱2D外部图像破坏着色器)

我正在使用Love2D(版本0.9.2,我无法更新)制作混合模式着色器。然而,由于它已经破损,我已经把它缩小到这个样子:

[[
    extern Image base;

    vec4 effect(vec4 tint, sampler2D tex, vec2 tex_coords, vec2 pos) {
        vec4 color = texture2D(tex, tex_coords);

        return color;
    }
]]

问题是,一旦我使用

shader:send("base", image)

在love.draw()中,它会导致一个黑屏(空屏)。

我在这里可能做错了什么?

点赞
用户6558652
用户6558652

我发现了以下问题:

A. 我在着色器中没有使用“base”变量。

B. 控制台库“Cupid”会吞噬某些图形错误,所以我没有得到任何响应。

要修复着色器,只需将类似以下代码添加到“effect”函数中:

vec4 baseColor = Texel(base, tex_coords);

这样,外部图像“base”就会被保留,而不是在编译时被丢弃以提高效率。

2017-02-13 10:20:45