【问题标题】:In 2d graphics, what's the performance overhead of rendering to a target, then to the screen?在 2d 图形中,渲染到目标然后渲染到屏幕的性能开销是多少?
【发布时间】:2012-03-05 22:33:10
【问题描述】:

我正在制作分屏游戏。当我渲染每个分屏时,屏幕边界外都有一些重叠。

屏幕将是 10x10 块大。如果向右移动半个图块,假设分屏视图居中,现在屏幕上显示的左右边缘各有半个图块。

但是,我无法渲染半个图块,因此会渲染整个图块。我必须渲染一个额外的图块(我实际上渲染了 12 个以使其更容易),这样当您移动时,边缘就不会出现黑色间隙。

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

我认为解决方案是将每个分屏渲染为纹理,并将纹理绘制到屏幕上,裁剪掉与边界重叠的位。

我想不出为什么会有很多与此相关的性能开销,因为它将在没有效果转换的情况下将一个纹理渲染到屏幕上。但我想知道我是不是弄错了,也许这会大大减慢游戏速度。

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

【问题讨论】:

    标签: graphics 2d culling


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      • 2017-11-05
      相关资源
      最近更新 更多