gpt4 book ai didi

android - 使用 libgdx 和 OpenGL ES 制作橡皮擦效果

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:04 30 4
gpt4 key购买 nike

请考虑以下图片作为说明: enter image description here

最初我用单独的图像填充整个屏幕/舞台,直到屏幕变成粉红色。每个粉红色 Blob 都是我添加到舞台上的一个单独的图像 Actor 。

现在我想以这样一种方式实现 touchDown 方法,即每次用户触摸屏幕时,它都会删除图像中发生触摸事件的部分。但是,该触摸事件不应影响粉红色 blob actor 后面或上方的其他 Images/actors/TextureRegions。我应该如何使用 OpenGL ES 在 libgdx 中实现这一点?请在这方面帮助我。

我找到了解释如何修改 TextureRegion 的链接,但我不知道如何使用此博客中解释的技术来解决我的问题。 Here is the link

最佳答案

可以使用 FBO 和模板缓冲区吗?

为您的“粉红色”层设置一个 FBO 并为其设置一个模板缓冲区。着陆时,将您的触摸作为 mask 绘制到粉红色 FBO 的模板缓冲区。现在,当您绘制粉色 FBO 时,您触摸的区域将不会被渲染,因此您将能够看到它背后的背景 FBO。

此链接http://www.opengl.org/archives/resources/faq/technical/rasterization.htm ,第 14.050 节告诉您如何设置模板缓冲区:

You can set up OpenGL state as follows:

glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_ALWAYS, 0x1, 0x1);
glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);

Subsequent rendering will set a 1 bit in the stencil buffer for every pixel rendered.

您可能需要摆弄一些东西,以便您的 mask 以正确的方式出现( mask 您触摸的地方,而不是您没有触摸的地方。)

关于android - 使用 libgdx 和 OpenGL ES 制作橡皮擦效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373847/

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