0

我正在尝试为过渡提出一个一般概念,而不必在实际场景中包含任何特定代码。到目前为止,在我看到的所有示例中,场景都会自行处理这些内容。就像淡入/淡出一样,场景必须调整它们的绘制方法,以获得正确的透明度。但这不仅会在每个场景中都令人讨厌,而且通过多种转换,您会很快得到混乱的代码。

所以我一直在想。我能想出的唯一方法来支持这一点,更复杂的过渡,而不在场景本身中处理它,是每个场景的渲染目标。渲染目标将在调用 draw 方法之前从场景管理器中设置。绘制后,渲染目标将重置为管理器的渲染目标,并且场景的纹理将使用有关当前转换的信息进行绘制。如果必须绘制更多场景,则在不清除管理器纹理的情况下会出现更多场景。这样你几乎可以做任何事情(过渡),场景将完全相互独立,并且在实际场景中你不需要一行过渡代码。(作为参考,我希望能够做各种过渡类型。不仅是淡入淡出,还有着色器效果,

嗯,这就是我的理论。我的问题来了:这听起来像是一个可行的计划吗?这是要走的路吗?我读过关于过于频繁地切换渲染目标时的性能问题以及其他问题,这是我犹豫要实现它的主要原因。但到目前为止,我想不出或找到更好的方法。虽然我认为它不应该有所作为,但目前我只关心 2D(以防万一)。

4

1 回答 1

0

这通常是一种合理的方法,但要注意渲染目标切换成本。此外,如果每个场景都在过渡时进行动画处理,您将同时将两个场景渲染到两个不同的渲染目标中,然后在屏幕上合成结果。

于 2012-07-06T14:24:28.467 回答