Opengl es AndEngine--在一个纹理上重叠的多个纹理

Opengl es AndEngine--在一个纹理上重叠的多个纹理,opengl-es,bitmap,textures,andengine,atlas,Opengl Es,Bitmap,Textures,Andengine,Atlas,我已经在AndEngine上工作了一段时间,并且已经成功地让大多数东西工作起来了,但是我在处理我的最新bug时遇到了一些困难。长话短说,我想在一个BitmapTextureAtlas上组合一些图像 这些图像不能一开始就全部合并,因为某些图像不会始终显示,并且每个图像也会根据用户输入进行各自的后处理。然而,在完成所有这些输入之后,将这些图像组合到一个纹理上,并且只有一个精灵来显示所有这些图像(大约六层),这将使事情变得更容易,并略微提高性能 我一直试图通过做类似于以下的事情来做到这一点:

我已经在AndEngine上工作了一段时间,并且已经成功地让大多数东西工作起来了,但是我在处理我的最新bug时遇到了一些困难。长话短说,我想在一个BitmapTextureAtlas上组合一些图像

这些图像不能一开始就全部合并,因为某些图像不会始终显示,并且每个图像也会根据用户输入进行各自的后处理。然而,在完成所有这些输入之后,将这些图像组合到一个纹理上,并且只有一个精灵来显示所有这些图像(大约六层),这将使事情变得更容易,并略微提高性能

我一直试图通过做类似于以下的事情来做到这一点:

    this.mBitmapTextureAtlas = new BitmapTextureAtlas(512, 1024, TextureOptions.NEAREST_PREMULTIPLYALPHA);

    this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(mBitmapTextureAtlas, this, "layer1.png",0 ,0);
    this.mFaceTextureRegion2 = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "layer2.png",0 ,0);
这几乎是可行的,问题是(至少从我的角度来看)它覆盖了每个像素,所以只有最后添加的层才会显示出来。作为一名业余开发人员,我试图通过AndEngine了解我需要做些什么才能让它正常工作,这有点让人难以承受,所以我希望有一位比我更有经验的人能给我一些关于如何管理它的提示


当然,对于我的问题,我也愿意接受其他建议,这是我提出的解决方案,但我相信还有其他方法

您无法通过反复写入纹理来完成此操作(正如您已经了解的那样) 这个解决方案需要做一些工作,但完全有可能

首先,您可以使用android操作系统将一组图像合成在一起。已经有堆栈溢出问题可以回答这个问题,其中用户提供代码来合并位图数组

然后,您需要在Andengine中创建TextureSource,以从位图而不是资源或资源创建区域

最后,您可以将该纹理区域传递给您的精灵


(第3步:盈利!)

您无法通过反复写入纹理来实现这一点(正如您已经了解的那样) 这个解决方案需要做一些工作,但完全有可能

首先,您可以使用android操作系统将一组图像合成在一起。已经有堆栈溢出问题可以回答这个问题,其中用户提供代码来合并位图数组

然后,您需要在Andengine中创建TextureSource,以从位图而不是资源或资源创建区域

最后,您可以将该纹理区域传递给您的精灵


(第3步:盈利!)

我从未想过尝试使用AndEngine之外的命令来实现这一点,但我知道它是如何工作的。我现在正在处理一个神秘的NullPointerException,试图让它运行起来,但我想知道在以这种方式合并这些位图之前,我对它们有多大的控制?当我按照之前的方式做事情时,我或多或少知道如何做所有的处理工作,但是有了这些位图,它是否需要通过某种形式的逐像素计算来完成?单击上面的链接“android:如何将位图数组合并到一个位图中?”以查看所需的代码。这并不难。最棘手的一点是理解如何正确使用画布对象。我一直在努力,为了满足我的要求,我不得不稍微改变一些事情,但我现在似乎走在了正确的道路上!谢谢。我从来没有想过尝试使用AndEngine之外的命令来实现这一点,但我知道它是如何工作的。我现在正在处理一个神秘的NullPointerException,试图让它运行起来,但我想知道在以这种方式合并这些位图之前,我对它们有多大的控制?当我按照之前的方式做事情时,我或多或少知道如何做所有的处理工作,但是有了这些位图,它是否需要通过某种形式的逐像素计算来完成?单击上面的链接“android:如何将位图数组合并到一个位图中?”以查看所需的代码。这并不难。最棘手的一点是理解如何正确使用画布对象。我一直在努力,为了满足我的要求,我不得不稍微改变一些事情,但我现在似乎走在了正确的道路上!非常感谢。