0

我的问题是关于使用来自另一个投影的模板缓冲区作为另一个投影中的掩码。我不确定如何解决这个问题,所以我将继续编写一些代码:

spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, AlwaysStencilState, null, alphaEffect2, Camera.Projection);

// Draw stuff used as a stencil in Camera.Projection space

spriteBatch.End();

spriteBatch.Begin(SpriteSortMode.Immediate, null, SamplerState.PointClamp, EqualStencilState, null, null);

// Draw a background behind

spriteBatch.End();

好吧,如果我将 Camera.Projection 从第一个方程中取出并渲染到屏幕坐标空间,这将起作用。但是,这不适用于相机投影。我的理解是,与在屏幕空间中发生的后者绘制调用相比,渲染只是对“很远”的模板缓冲区进行。

如何使用第一个操作的模板作为第二个操作的掩码?

4

1 回答 1

0

好的。我发现我实际上可以只使用原始效果的投影(0,0,宽度,高度)并将效果的世界矩阵设置为对应于相机的投影矩阵,一切都开始神奇地工作。

于 2013-12-01T01:01:16.143 回答