使用LibGDX绘制液体

vic*_*vic 5 java rendering libgdx

我对LibGDX和OpenGL很陌生,但我设法使用Box2D API进行简单的液体模拟.看到这个链接(这是别人的动画):

物理液体

目前我将液体粒子渲染为圆形,就像在第一张图像中一样,但我想让它看起来像第三张图片一样自然.

答案可能是使用距离场,我尝试了这种方法,但没有效果.我使用SpriteBatch类将每个粒子绘制为纹理,但可以更改.我制作了一个纹理(来自程序性的Pixmap),它将每个粒子表示为一个实心圆,alpha通道从中心进一步减小,因此效果类似于第二张图.

现在,我必须启用一个阈值过滤器到alpha通道,例如:"只绘制alpha> 0.5的像素".这是后处理步骤,因为在绘制所有粒子之后,像素的alpha通道是多么重要.可能会或可能不会使用着色器(ProgramShader),但经过一些研究后我仍然不知道如何做到这一点.谢谢你的帮助.

编辑: 示例解释了该方法,但它是在ActionScript中实现的.

Tan*_*til 1

这可以使用着色器轻松完成,但有趣的是您不需要编写它们。

在渲染距离场字体(即使放大时看起来也不错的字体)时,也会使用“仅绘制 alpha > 0.5 的像素”。

希望这可以帮助。