gpt4 book ai didi

unity3d - 提取 _CameraDepthTexture 值 Unity

转载 作者:行者123 更新时间:2023-12-02 03:17:35 26 4
gpt4 key购买 nike

我需要提取相机屏幕的深度值并写入文件。我读到 _CameraDepthTexture 只能从着色器访问。我对着色器不是很熟悉是否可以在着色器代码中写入文件?或者有没有其他方法可以从 _CameraDepthTexture 中提取这些信息?

最佳答案

这个“可能”在理论上可行,但我还没有测试过。我假设这是某种按需调试或测试,将在需要时调用?如果您尝试将每一帧都写到文件中,这将不会非常友好。

1) 创建第二个渲染到纹理的相机。将其放在与主摄像头相同的位置和方向。

2) 在第二个摄像头上启用深度缓冲区。

3) 编写一个简单的像素着色器,它获取深度缓冲区值并将它们作为颜色值输出。

4) 使用 Unity 提供的 Texture2D 工具将渲染的纹理转换为 png 或 jpg 并写入文件。

您可以只使用主摄像头来完成此操作,方法是在主摄像头上启用一两个帧的后期处理效果并抓取它。同样,我还没有对此进行测试。

这是一个完整的 hack,但无法直接在着色器中写入文件(它在 GPU 上运行),也无法在脚本中获取最终的深度缓冲区。

这位先生向您展示了这一原理作为后处理效果的基础知识。您必须扩展他的示例才能获得所需的内容。

Unity Shaders – Depth and Normal Textures (Part 1) - by William Chyr

抱歉,我不能用一个有效的例子来更具体。我现在无法访问我的 Unity 机器来测试它。

关于unity3d - 提取 _CameraDepthTexture 值 Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35656935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com