【发布时间】:2011-01-28 13:53:41
【问题描述】:
将SpriteSortMode 用作FrontToBack 或BackToFront 有什么区别和后果?就是FrontToBack是先绘制layer值小的对象,BackToFront是layer值小的对象最后绘制?
【问题讨论】:
将SpriteSortMode 用作FrontToBack 或BackToFront 有什么区别和后果?就是FrontToBack是先绘制layer值小的对象,BackToFront是layer值小的对象最后绘制?
【问题讨论】:
它们使用传递给精灵绘制调用的 layerDepth 值。值 0 表示前面,值 1 表示后面,以及介于这些值之间的所有值。
XNA 中的所有排序模式都会改变渲染精灵的时间和方式。 FrontToBack 和 BackToFront 与 Deferred 模式相同,这意味着精灵仅在调用 SpriteBatch.End() 时呈现。如果您使用 FrontToBack 或 BackToFront,则在调用 End 时,所有精灵都根据它们的 layerDepth 进行排序,在 FrontToBack 中,首先绘制接近 0 的值,反之亦然。这意味着,例如,在 BackToFront 中,后面的精灵(或 layerDepths 最接近 1)将首先绘制,因此出现在更靠近前面的精灵下方(值更接近 0)。
由于它会为您进行排序,因此这些排序模式比其他模式要慢一些。
【讨论】:
[0.0f - 1.0f] 之外的 layerDepth 值可能根本不会呈现。