2013-02-22 57 views
2

我想渲染隐藏的对象并获得与Stage3D中链接中显示的效果类似的效果。我可以让Stage3D写入Z缓冲区吗?

Silhouette Effect in Torchlight 2

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

    与正常设置
  • 一旦并用不同的深度排序模式,其中只有那些后面呈现几何像素被示出
  • 一次。 ,为了防止后面奇怪的影响,这些像素不能被渲染到深度缓冲区。

我可以在Stage3D中使用Context3DCompareMode.GREATER设置正确的深度排序模式。 也可以让Stage3D将像素渲染到后台缓冲区,但不是z缓冲区?

如果我无法从渲染深度缓存不断的Stage3D,效果会是这样的:

Glitchy Silhoutte Effect

回答

0

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

0

如果有人遇到这样,有两件事情你应该知道的:

1)由于Volgogradetzzz确保你有一个模板/深度缓存为使用Context3D.configureBackBuffer(...)

2的后备缓冲的一部分)如果您需要打开或关闭在不同的时刻深度像素写入您可以使用设置此功能的depthMask参数:

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

有点陌生,发现这个名字的函数这一特点,深度写掩码affec结果,而不是测试本身。