3D透视投影

前置理论

齐次除法:[x, y, z, w] => [xw\frac{x}{w},yw\frac{y}{w},zw\frac{z}{w}]
透视投影 - 齐次除法:[x, y, z, z] => [xz\frac{x}{z},yz\frac{y}{z},1]
标准观察体(Canonical View Volume, CVV):标准立方体 x,y,zx,y,z\in[-1,1]

这边讨论的是左手系一般情况下的CVV, origin在中心 (区别于DirectX

视锥体图示

3D透视投影 - 1.左手系一般情况下的矩阵推导

分析

PcamP_{cam} >>>投影>>> PfilmP_{film} >>>齐次除法>>> PcvvP_{cvv}

分析x:

PcamxPcamz=Pfilmxd=Pfilmxn=>Pfilmx=nPcamxPcamz\frac{P_{camx}}{P_{camz}} = \frac{P_{filmx}}{d} = \frac{P_{filmx}}{n} =>P_{filmx} = \frac{nP_{camx}}{P_{camz}}

PfilmxH=Pcvvx2=>Pcvvx=2PfilmxH=2nH1PcamzPcamx=zoomx1PcamzPcamx\frac{P_{filmx}}{H} = \frac{P_{cvvx}}{2}=>P_{cvvx} = \frac{2P_{filmx}}{H} = \frac{2n}{H}\frac{1}{P_{camz}}P_{camx} = zoom_x\frac{1}{P_{camz}}P_{camx}

同理可得y:
zoomy1PcamzPcamyzoom_y\frac{1}{P_{camz}}P_{camy}

分析z:

引入Clip坐标系,即未进行齐次除法前的坐标系,四维向量 (x, y, z, w)

Pclip=(xclip,yclip,zclip,w)P_{clip} = (x_{clip},y_{clip},z_{clip},w)
透视除法定义Pclip=(xclip,yclip,zclip,Pcamz)P_{clip} = (x_{clip}, y_{clip},z_{clip}, P_{camz})

执行透视除法Pcvv=(xclipPcamz,yclipPcamz,zclipPcamz,Pcamz)P_{cvv} = (\frac{x_{clip}}{P_{camz}}, \frac{y_{clip}}{P_{camz}}, \frac{z_{clip}}{P_{camz}},P_{camz})

联立分析建立PcamP_{cam}PcvvP_{cvv}关系:
Pcvvz=zclipPcamzP_{cvvz} = \frac{z_{clip}}{P_{camz}}

根据线性变换,我们可以定义

zclip=aPcamz+bz_{clip} = aP_{camz} + b

aPcamz+bPcamz=1,Pcamz=n\frac{aP_{camz} + b}{P_{camz}} = -1, P_{camz} = n

aPcamz+bPcamz=1,Pcamz=f\frac{aP_{camz} + b}{P_{camz}} = 1, P_{camz} = f

=>=>

a=f+nfna = \frac{f+n}{f-n}

b=2nffnb = \frac{-2nf}{f-n}

将线性关系整理一下:

Pcvvx=zoomxPcamxP_{cvvx} = zoom_xP_{camx}

Pcvvy=zoomyPcamyP_{cvvy} = zoom_yP_{camy}

Pcvvz=f+nfnPcamz+2nffnP_{cvvz} = \frac{f+n}{f-n}P_{camz} + \frac{-2nf}{f-n}

Pcvvw=PcamzP_{cvvw} = P_{camz}

构造PcamP_{cam}PcvvP_{cvv }矩阵:
3D透视投影 - 1.左手系一般情况下的矩阵推导

注意

由于计算机实现“film"同焦距d缩放,因此焦距d并不影响最终成像。

这边体现的是不管是否真实世界还是计算机实现,要影响成像必须修改视锥体
3D透视投影 - 1.左手系一般情况下的矩阵推导

下一篇:原创 3D透视投影 - 2.左手系DirectX的矩阵推导

相关文章:

  • 2021-06-30
  • 2021-10-04
  • 2021-06-13
  • 2021-06-15
  • 2022-12-23
猜你喜欢
  • 2021-09-23
  • 2021-12-02
  • 2021-12-27
  • 2021-08-28
  • 2021-09-30
  • 2022-01-11
相关资源
相似解决方案