当使用camera.translate(-x,-y)方法时,它是自动不绘制它的视图之外的精灵,还是我必须手动不绘制相机视图之外的精灵?
发布于 2016-04-20 19:45:21
如果您正在使用stage,它将为您完成以下操作:
在Libgdx API中,分组绘制方法:
绘制所有子项。如果transform为true,则应在此方法之前调用applyTransform(Batch,Matrix4),并在此方法之后调用resetTransform(Batch)。如果transform为false,则不需要调用这些方法,绘制时,子代位置会被组位置临时偏移。如果设置为,则此方法可避免完全在剔除区域之外绘制子对象。
因此,如果没有stage,您需要手动完成此操作。
发布于 2016-04-20 20:49:43
它是绘制的,但GPU开销将较低,因为它不必对该精灵的任何碎片运行碎片着色器。CPU开销将是相同的。
手动检查精灵和剔除相机截体外的精灵是否有意义,取决于你一次可以做多少。如果你必须手动检查每个独立的精灵,这可能是不值得的,因为你将花费大约一样多的CPU开销来检查它们,就像你将它们从屏幕上拉出来一样。但是,如果你可以快速地检查它们的组,那么它可能是值得的。
发布于 2016-04-20 19:23:13
如果你使用的是一个标准的正射相机,并且不会用它做任何过于时髦的事情(除了翻译),那么它应该会自动完成这项工作。但这可能取决于所有内容的确切设置方式。
可以肯定的是,当在房间内外绘制数量惊人的精灵时,您总是可以尝试测试性能。
还有ScissorStack;https://github.com/libgdx/libgdx/wiki/Clipping%2C-with-the-use-of-scissorstack
https://stackoverflow.com/questions/36738913
复制相似问题