视频加载失败

附:透视矫正插值的推导

268 字
1 分钟
附:透视矫正插值的推导
附:透视矫正插值的推导

推导透视正确修正#

设三角形三个点在三维空间中的齐次坐标为:

Ci′ C'_i

三角形内某点在三维空间中的坐标为:

P′=∑iβiCi′,∑βi=1 P'= \sum_i{\beta_i C'_i},\quad\sum{\beta_i}=1

其中β\beta为三维空间中的重心坐标
然后经过投影矩阵MM后:

P=MP′=M∑iβiCi′=∑iβiMCi′=∑iβiCi P = MP'= M\sum_i{\beta_i C'_i} = \sum_i{\beta_i MC'_i} = \sum_i{\beta_i C_i}

其中PP是该点在裁剪空间中的坐标,CiC_i是三角形顶点在裁剪空间中的坐标
取该点的xx坐标为例,有:

XP=∑iβiXi,wP=∑iβiwi X_P = \sum_i{\beta_iX_i},\quad w_P = \sum_i{\beta_iw_i}

接下来做透视除法,xx坐标为:

x=XPwP=∑iβiXi∑iβiwi x = \frac{X_P}{w_P} = \frac{\sum_i{\beta_iX_i}}{\sum_i{\beta_iw_i}}

整理上式,令S=∑iβiwiS = \sum_i{\beta_iw_i}:

x=∑iβiXiS=∑iβiwiSXiwi=∑iβiwi∑jβjwjXiwi x = \frac{\sum_i{\beta_iX_i}}{S} = \sum_i{\frac{\beta_iw_i}{S}\frac{X_i}{w_i}} = \sum_i{\boxed{\frac{\beta_iw_i}{\sum_j{\beta_jw_j}}}\frac{X_i}{w_i}}

由于Xi/wiX_i/w_i即为原先的三角形投影到屏幕后的屏幕xx坐标,根据重心坐标的定义,有:

λi=βiwi∑jβjwj \lambda_i = \frac{\beta_iw_i}{\sum_j{\beta_jw_j}}

根据重心坐标的性质,有∑iβi=1\sum_i{\beta_i}=1,设S=∑jβjwjS = \sum_j{\beta_jw_j},经过一些数学计算:

λi=βiwi∑jβjwj⟹λiwi=βiS⟹∑jλjwj=∑jβjS=1S⟹βi=Sλiwi=λi/wi∑jλj/wj \lambda_i = \frac{\beta_iw_i}{\sum_j{\beta_jw_j}} \Longrightarrow \frac{\lambda_i}{w_i} = \frac{\beta_i}{S} \Longrightarrow \sum_j{\frac{\lambda_j}{w_j}} = \frac{\sum_j{\beta_j}}{S} = \frac{1}{S} \Longrightarrow \beta_i = S\frac{\lambda_i}{w_i} = \frac{\lambda_i/w_i}{\sum_j{\lambda_j/w_j}}

推导出三维空间的重心坐标值之后,我们就可以用来进行插值了!

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

附:透视矫正插值的推导
https://blog-zeta-seven-36.vercel.app/posts/graphics-study/games-101-study/附透视插值矫正的推导/
作者
机巧叶片
发布于
2026-10-16
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
机巧叶片
给互联网留下一点微小的贡献
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
26
分类
6
标签
22
总字数
27,977
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录