2010-09-14 108 views
0

我想创建一个特殊的效果,我在屏幕上留下一串粒子,留下慢慢褪色的痕迹。我希望我可以简单地使用glClear与一个小的alpha值来做到这一点,但似乎没有工作。 我的第二个想法是在屏幕的正面画一张黑色的脸,但这似乎并没有给我正确的效果,粒子已经褪色,但背景并没有真正消失。我的下一个想法是渲染纹理并淡化纹理,但这是很多额外的工作,我不确定它是否能解决我的问题。任何人都可以想办法做到这一点?我错过了什么吗?openGL褪色背景

编辑此外,我无法找到有关在Android上渲染纹理的信息。如果有人有一些很棒的文章的链接。

回答

0

假设您的'粒子'只是一堆纹理子画面,您可以使用glVertexPointer()简单地为精灵的每个顶点添加颜色数据。然后,您为顶点设置的颜色将与精灵的纹理混合。您可以轻松更新这些值以实现“衰落”效果。

E.g.如果您为每个顶点设置RGBA =(1,1,1,1),则精灵将像以前一样出现(不透明),设置RGBA =(1,0,0,1)精灵将显示为红色(无半透明) ,设置RGBA =(0.5,0.5,0.5,0.5),精灵将出现半透明等等。您必须事先设置正确的glBlendFunc()以获得所需的行为!

Cheers,Aert。

+0

这就是我正在做的。但我想要的是让粒子留下彩色小道。不清除颜色缓冲区可以实现这一点,但是我希望这些路径淡出。 – skorulis 2010-09-15 04:31:56

+0

啊我明白了;也许只是产生额外的东西,然后淡出它们。我认为这就是你的日常粒子引擎如何做到这一点。看看AndEngine的粒子引擎源代码(http://code.google.com/p/andengine/source/browse/src/org/anddev/andengine/entity/particle/ParticleSystem.java),它可能会给你想到如何去做。 – Aert 2010-09-15 07:45:33