java – 使用libgdx绘制带纹理的多边形

我使用libgdx的渲染周期有问题,基本上我需要用方形纹理填充一个区域,这个区域的最后一部分可能比纹理更小或者形状不同,所以这意味着我需要渲染任意形状的四边形并在其上拍打纹理,切割我不需要的部分.

关于如何做到这一点我有点迷失,到目前为止我已经看到PolygonRegion和PolygonSpriteBatch可能会为我做这件事,但我有点担心实例化一个新的重物,我只会在一个物体上使用.

还有其他选择吗?也许Mesh课,但我想确定.

最佳答案 我建议使用Mesh来准确定义你想要的区域.定义顶点并将它们映射到纹理坐标有点繁琐,但知道在一些更高级别的API(如*批处理位)下面发生了什么是很好的.此外,* Batch API旨在分担在多个对象上上传单个纹理的权重,这听起来像在这种情况下可能不适用. (另一方面,即使Batch对象有点“重量级”,实际上它们实际上可能不是问题.)

另一种需要考虑的方法是将对象渲染为方形网格,但要为区域外的所有像素定义具有透明像素的纹理. (我假设非方形的形状是你可以离线知道的,而且不是动态的.)

点赞