我有两个精灵A和B A - 不透明的,Z = 1乙 - 半透明的,Z = 0的绘图调用顺序A - > B.
根据MSDN ,我应该使用标志D3DXSPRITE_SORT_DEPTH_BACKTOFRONT
绘制不同深度的透明精灵时。 问题是,它的工作原理,反之亦然-只能用标志D3DXSPRITE_SORT_DEPTH_FRONTTOBACK
。
请解释如何深度排序作品ID3DXSprite
和其中的Z值增长(我假设从0到1,1是最远离屏幕)。
我有两个精灵A和B A - 不透明的,Z = 1乙 - 半透明的,Z = 0的绘图调用顺序A - > B.
根据MSDN ,我应该使用标志D3DXSPRITE_SORT_DEPTH_BACKTOFRONT
绘制不同深度的透明精灵时。 问题是,它的工作原理,反之亦然-只能用标志D3DXSPRITE_SORT_DEPTH_FRONTTOBACK
。
请解释如何深度排序作品ID3DXSprite
和其中的Z值增长(我假设从0到1,1是最远离屏幕)。
如果你使用D3DXSPRITE_SORT_DEPTH_FRONTTOBACK
,你会得到这个顺序呈现的精灵:
Z = 1.0
Z = 0.0
所以,你的不透明精灵在第一次绘制,那么你的半透明精灵是在它的上面渲染。 如果您没想到看到两个小精灵(你会与这种情况),那么也许问题是,你的透明精灵有错误的Z坐标-您绘制它的不透明精灵的后面 。
我不能在此刻找到一个链接到一个特定的参考,但事实是,具有较低的Z值的精灵与更高的价值背后的精灵绘制。 这更像窗口,而不是作为用于深度测试的上下文的Z顺序。 也许这是因为精灵本身是2D。
从这里 ,你可以看到这一点: