c# - 我可以在一个着色器中使用 MainCamera Depth,它可以在 Unity3D 中的第二个摄像头上替换运行吗?
问题描述
我正在尝试使用 _CameraDepthTexture 在第二个摄像头的替换着色器中对主摄像头的深度进行采样。但这似乎不起作用,深度缓冲区始终为 1。替换着色器没有执行任何 zwrites。我的第二个相机渲染到渲染纹理。我为主摄像头启用了 depthTextureMode 并为辅助摄像头禁用了它。
在顶点着色器中,我使用 o.projPos = ComputeScreenPos(o.pos) 来计算屏幕空间纹理采样坐标。
片段着色器如下所示:
float depth = Linear01Depth (tex2Dproj(_CameraDepthTexture,
UNITY_PROJ_COORD(i.projPos)).r);
half4 c;
c.r = depth;
c.g = depth;
c.b = depth;
c.a = 1;
return c;
我应该能够访问 MainCamera 的 DepthTexture 吗?
亲切的问候
弗洛里安
解决方案
推荐阅读
- python - 图神经网络仅预测二元分类器中的一个值 [Pytorch Geometric]
- node.js - 从过滤器中提取特定信息;
- amazon-web-services - 与云端数据分析(数据清理)相关的成本
- r - 使用矩阵方法在 R 中为 n 参数创建线性回归函数
- android - 在 android Studio 中切换风格时,有人知道如何修复无法识别的(红色)类吗?
- r - 如何使训练数据观察类似于我在 R 中的测试数据?我的观察结果比预期的要少
- wordpress - 如何在 wordpress 中添加元框以附加没有插件的图像?
- r - 在闪亮中使用两个相互依赖的反应物
- jquery - JQuery autcomplete不适用于多个输入字段
- python - 插入错误 Python MySQL 连接器:执行操作失败