2012-03-05 55 views
2

我在做一个分屏游戏。当我渲染每个分屏时,屏幕边界外有一些重叠。在2D图形中,渲染到目标,然后渲染到屏幕的性能开销是多少?

屏幕会说10x10瓷砖大。如果向右移动一半瓦片,假设分屏视图居中,则屏幕上显示的左侧和右侧边缘现在为半个瓦片。

但是,我不可能渲染一半的图块,所以完整的图块会被渲染。我必须渲染一个额外的贴图(我实际上会渲染12以使其更容易),这样当您移动时,边缘处没有黑色缝隙。

如果splitscreen是屏幕的全尺寸,这个重叠不是问题。但是,如果您并排渲染两个分屏,则最后绘制的任何一个将与另一个重叠,如果有任何位超出行的位置,例如可见半瓦的另一半。

我在想,解决方案是将每个splitscreen渲染到纹理,并在屏幕上绘制纹理,裁剪重叠边界的位。

我不明白为什么应该有很多与此相关的性能开销,因为它将一个纹理渲染到屏幕上,而没有效果转换。但是我想知道我是否错了,如果这可能会大大减缓比赛的速度。

有没有更好的解决方案,或者这个应该没问题?

回答

1

一般来说,这应该可以忽略不计。我曾经使用的所有图形硬件都呈现给视频内存中的交替缓冲区。将渲染目标设置为内存中的任意纹理通常同样简单。然后,唯一的开销是将纹理复制到渲染缓冲区的操作。不是零时间,但非常少。如果您比我更聪明,那么您可以将标准渲染缓冲区的片段视为纹理,并避免复制。 但是,我当然不是未指定,任意或虚构图形系统的专家,所以我猜想没有更多的信息我不应该这么放肆;)