我正在尝试在XNA 4.0中完成一个简单的任务(或者我认为)。我有需要发光的对象(渲染和高斯模糊它们然后将它们添加到主场景)。这些物体可以处于不同的深度,因此我需要确保它们被主场景中的物体遮挡。这是3D。
由于深度缓冲区无法在XNA 4.0中重复使用,因此我很难弄清楚如何实现这一目标?
我找不到此过程的示例或教程或解释。 XNA的bloom post进程示例也不能完全满足我的需要,因为它会处理整个场景。
我知道我可以使用PreserveContents保存RenderTarget信息,但听起来很慢。有没有办法在不使用PreserveContents的情况下实现这一目标?
任何帮助将不胜感激。 谢谢, 里安
答案 0 :(得分:1)
我尝试使用第二个渲染对象来渲染发光对象以存储其深度......这是一种多目标渲染技术......
我想你将需要另一个用于非发光物体..(或使用相同的,存储两个深度和添加混合)以在后处理时间比较它们......
稍后在后期处理中,可以知道发光物体是可见的还是隐藏的。