繁体   English   中英

在Libgdx(Android)的Camera视图之外,是否会自动不绘制精灵

[英]Will the sprite be automatically not drawn when outside the Camera's view in Libgdx (Android)

当使用camera.translate(-x,-y)方法时,它是否自动不在其视图之外绘制精灵,或者我是否必须手动操作而不是在摄像机视图外绘制精灵?

如果您正在使用舞台,它会为您做到:

从Libgdx API,Groups绘制方法:

吸引所有孩子。 如果transform为true,则应在此方法之前调用applyTransform(Batch,Matrix4)并调用resetTransform(Batch)。 如果transform为false,则不需要调用这些方法,在绘制时,子位置会暂时被组位置偏移。 如果设置,此方法可避免将儿童完全吸引到剔除区域之外

因此,如果没有舞台,您需要手动执行此操作。

它被绘制,但GPU开销会降低,因为它不必在该sprite的任何片段上运行片段着色器。 CPU开销将是相同的。

在相机平截头体外手动检查精灵和剔除是否有意义取决于你可以一次做多少。 如果你必须手动检查每个单独的精灵,它可能是不值得的,因为你将花费大约相同的CPU开销检查它们,就像你在屏幕上绘制它们一样。 但如果你能快速检查它们的组,那么它可能是值得的。

如果您正在使用标准的正交相机并且没有做任何过于质朴的事情(除了翻译),那么它应该自动执行此操作。 但它可能取决于具体如何设置。

当然,在房间内外绘制荒谬数量的精灵时,您总是可以尝试测试性能。

还有ScissorStack; https://github.com/libgdx/libgdx/wiki/Clipping%2C-with-the-use-of-scissorstack

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM