我对LibGDX和OpenGL都比较新,但我成功地使用Box2D API制作了一个简单的液体模拟。请查看此链接(这是其他人的动画):
目前,我将液体粒子呈圆形渲染,就像第一张图片一样,但我想让它看起来更自然,就像第三张图片一样。
答案可能是使用距离场,我尝试了这种方法,但没有效果。我使用SpriteBatch类将每个粒子绘制为纹理,但可以更改。我制作了一张纹理(从程序化Pixmap中),表示每个粒子为填充圆,带有alpha通道,从中心进一步减小,因此效果类似于第二张图片。
现在,我必须启用阈值过滤器到alpha通道,类似于:“仅绘制alpha>0.5的像素”。这是后处理步骤,因为重要的是在所有粒子被绘制之后像素的alpha通道是什么。可能或可能不需要使用着色器(ProgramShader),但经过一些研究,我仍然不知道如何做到这一点。感谢任何帮助。
编辑: 这个 示例解释了该方法,但是它是使用ActionScript实现的。