ID3DXSprite深度排序(ID3DXSprite depth sorting)

2019-10-19 04:43发布

我有两个精灵A和B A - 不透明的,Z = 1乙 - 半透明的,Z = 0的绘图调用顺序A - > B.

根据MSDN ,我应该使用标志D3DXSPRITE_SORT_DEPTH_BACKTOFRONT绘制不同深度的透明精灵时。 问题是,它的工作原理,反之亦然-只能用标志D3DXSPRITE_SORT_DEPTH_FRONTTOBACK

请解释如何深度排序作品ID3DXSprite和其中的Z值增长(我假设从0到1,1是最远离屏幕)。

Answer 1:

如果你使用D3DXSPRITE_SORT_DEPTH_FRONTTOBACK ,你会得到这个顺序呈现的精灵:

Z = 1.0
Z = 0.0

所以,你的不透明精灵在第一次绘制,那么你的半透明精灵是在它的上面渲染。 如果您没想到看到两个小精灵(你会与这种情况),那么也许问题是,你的透明精灵有错误的Z坐标-您绘制它的不透明精灵的后面

我不能在此刻找到一个链接到一个特定的参考,但事实是,具有较低的Z值的精灵与更高的价值背后的精灵绘制。 这更像窗口,而不是作为用于深度测试的上下文的Z顺序。 也许这是因为精灵本身是2D。

从这里 ,你可以看到这一点:



文章来源: ID3DXSprite depth sorting