2

我想渲染隐藏的对象并达到与 Stage3D 中的链接中显示的效果类似的效果。

Torchlight 2 中的剪影效果

我已经知道如何在理论上做到这一点。我必须绘制对象两次:

  • 一旦正常设置和
  • 一次使用不同的深度排序模式,其中仅显示渲染几何图形后面的像素。此外,为了防止以后出现奇怪的效果,这些像素不能渲染到深度缓冲区中。

我可以在 Stage3D 中使用Context3DCompareMode.GREATER. 是否也可以让 Stage3D 将像素渲染到后台缓冲区,而不是 z 缓冲区?

如果我不能阻止 Stage3D 渲染到深度缓冲区,效果将如下所示:

毛刺剪影效果

4

2 回答 2

0

是的,您可以关闭深度和模板缓冲区。检查 context3d.configureBackBuffer 方法。

于 2013-02-23T10:54:26.493 回答
0

如果有人遇到这种情况,您应该注意两件事:

1)作为 Volgogradetzzz 确保你有一个模板/深度缓冲区作为你的后台缓冲区的一部分,使用Context3D.configureBackBuffer(...)

2)如果您需要在不同的时刻打开或关闭深度像素写入,您可以在此函数中使用设置 depthMask 参数:

public function setDepthTest(depthMask:Boolean, passCompareMode:String):void

在这个名字的函数中找到这个特性有点奇怪,因为深度写入掩码会影响结果,而不是测试本身。

于 2014-02-12T17:04:52.197 回答