问题描述
|
我有一张代表投影的图像。我将用一个例子来解释这个问题:
在屏幕上,有一条线从一个点E(100,200)到另一点
H(150,100)。 A代表一分
在现实世界中是在200厘米
距离,而B是在
现实世界距离300厘米。
我想知道的是:
给定通过这两个点的直线的一个点,是否有一种方法可以计算出它应该具有的z距离数据?
如果z距离不是线性函数而是某个对数函数,该怎么办?
如果不清楚,问我一切,
干杯
解决方法
我认为您正在获得的是透视正确的插值。如果您知道E处的深度和H处的深度,并且B在连接这两个点的线上(在图像中),请使用以下方法求解B处的深度:
1/Zb = s * 1/Ze + (1-s) * 1/Zh
其中s是沿着屏幕空间中的线的归一化距离/插值参数(0到1之间),表示B = s * E + (1-s) * H
,使用齐次坐标,该坐标可以在屏幕空间中线性插值(用于深度和纹理):http://www.cs.unc.edu/~olano/papers/2dh-tri/