You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取深度值线性化函数的逆变换函数?

线性化深度的逆变换函数

你需要的是将线性深度值转换回原非线性深度值的逆函数,我们可以通过对原函数进行代数推导得到:

设原函数的返回值为z(线性深度),输入的非线性深度为d,原函数表达式为:

float linearize_depth(float d, float zNear, float zFar)
{
    return zNear * zFar / (zFar + d * (zNear - zFar));
}

对该式逆推求解d,最终得到逆函数如下:

float nonlinearize_depth(float z, float zNear, float zFar)
{
    return (zFar * (zNear - z)) / (z * (zNear - zFar));
}

也可以整理成更直观的形式(分子分母同乘-1,结果一致):

float nonlinearize_depth(float z, float zNear, float zFar)
{
    return (zFar * (z - zNear)) / (z * (zFar - zNear));
}

这里的z是原linearize_depth函数输出的线性深度值,返回的d就是对应原函数输入的非线性深度(通常是NDC空间下的深度值,范围一般为[0,1]或[-1,1],取决于你的渲染API配置)。

内容的提问来源于stack exchange,提问作者HenriV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:12:11