最近因为这东西卡好几天了, 希望有经验的前辈能够帮忙看一下
想请问有没有办法能够在shader中使用render texture的depth buffer
也就是说, 我有一个camera 是render到render texture
有一个效果我需要读取render texture中的depth 资讯
但是问题来了, 在render texture中我唯一找得到跟depth有关系的东西是
rendertexture.depthBuffer, 但是这东西没有办法丢进material 中
的setTexture 参数, 我也查不到有什么办法能够把render buffer转成
texture的方式
虽然的确是有办法可以绕过这个限制, 例如说可以建立两个render texture
一个是color, 一个是depth, 然后再用
_sceneCamera.SetTargetBuffers(_renderTexture.colorBuffer,
_depthTexture.depthBuffer);
这方法来抓depth value
但是这方法不适用于当我想使用post processing的时候, 当我想要用PP时
我唯一能让该camera成功有PP的方式就是 _sceneCamera.targetTexture =
_renderTexture;
但这方法又会没办法让我读取depth texture
后来我又尝试把 depbuffer转成textture2D
_renderTexture = new RenderTexture(Screen.width, Screen.height, 24,
RenderTextureFormat.Default);
_renderTexture.Create();
_textDepth = Texture2D.CreateExternalTexture(_renderTexture.width,
_renderTexture.height, TextureFormat.RGB24, false, false,
_renderTexture.GetNativeDepthBufferPtr());
但是unity直接crash
希望我的解释够清楚 感谢回答