【问题标题】:LibGDX - Comparing Sprites in the Fragment ShaderLibGDX - 在片段着色器中比较精灵
【发布时间】:2013-06-10 19:24:44
【问题描述】:

我正在处理一个 LibGDX 项目,我希望能够修改精灵的颜色和 alpha 等内容,特别是在与先前放置的部分重叠的任何部分上。据我所知,这只能通过以某种方式比较片段着色器内部的两个片段,然后在其中根据需要修改各个片段来实现。

我目前的问题是我无法弄清楚如何将两个精灵的数据获取到片段着色器中以进行这些比较。由于任何需要这样做的精灵将始终使用彼此相同的纹理,我是否只需要为我正在比较的精灵引入坐标数据,因为另一个加载了“纹理”?

整个过程对我来说有点莫名其妙,因为我以前从未做过类似的事情,所以任何关于尝试什么的想法都值得赞赏。在这一点上,我可以通过片段着色器很好地控制单个精灵,它只是比较片段着色器中两个单独放置的精灵,看看它们重叠的地方超出了我的范围。

【问题讨论】:

    标签: libgdx shader textures sprite


    【解决方案1】:

    我认为您最好在 Java 代码中计算两个精灵的交集,然后使用相对基本的着色器渲染生成的重叠区域。 (只需将它绘制在精灵的香草渲染之上。)

    【讨论】:

    • 我不知道可以在 Java 本身中进行非常具体的像素检查。我究竟会寻找什么来研究这种可能性?正如我需要的那样,这听起来像是在几乎不断地完成时会非常费力的事情。我相当肯定我一直在走的着色器路线是可行的,因为我能够通过在着色器中创建纹理的假副本、偏移纹理坐标并将其用于比较来部分伪造效果。它显然在做我需要它做的事情,但显然它不是简单、可控测试之外的实际解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多