Unity中裁剪空间推导(使用FOV来调节)

文章目录


前言

在之前的文章中,我们控制透视相机使用的是SIze。但是,在透视相机中,我们使用的是FOV角度来控制。


一、使用FOV代替之前使用的Size(h)

c o t ( F O V 2 ) = n h 2 = 2 n h cot(\frac{FOV}{2}) = \frac{n}{\frac{h}{2}} = \frac{2n}{h} cot(2FOV)=2hn=h2n

  • OpenGL
    2 n w 0 0 0 0 2 n h 0 0 0 0 n + f n − f 2 n f n − f 0 0 − 1 0 \begin{bmatrix} \frac{2n}{w} & 0 & 0 & 0 \\ 0 & \frac{2n}{h} & 0 &0\\ 0 & 0 & \frac{n+f}{n-f} &\frac{2nf}{n-f}\\ 0 & 0 & -1 & 0\\ \end{bmatrix} w2n0000h2n0000n−fn+f−100n−f2nf0
  • DirectX
    2 n w 0 0 0 0 2 n h 0 0 0 0 n f − n n f f − n 0 0 − 1 0 \begin{bmatrix} \frac{2n}{w} & 0 & 0 & 0 \\ 0 & \frac{2n}{h} & 0 &0\\ 0 & 0 & \frac{n}{f-n} &\frac{nf}{f-n}\\ 0 & 0 & -1 & 0\\ \end{bmatrix} w2n0000h2n0000f−nn−100f−nnf0

1、我们可以把矩阵中使用到 h(高) 和 w(宽) 的部分使用比值替换掉。

r = w h r = \frac{w}{h} r=hw

r在1920x1080下为1.77

2 n w = 2 n r h = 1 r c o t ( F O V 2 ) \frac{2n}{w} = \frac{2n}{rh} = \frac{1}{r}cot(\frac{FOV}{2}) w2n=rh2n=r1cot(2FOV)

2 n h = c o t ( F O V 2 ) \frac{2n}{h}=cot(\frac{FOV}{2}) h2n=cot(2FOV)

2、替换后

  • OpenGL
    1 r c o t ( F O V 2 ) 0 0 0 0 c o t ( F O V 2 ) 0 0 0 0 n + f n − f 2 n f n − f 0 0 − 1 0 \begin{bmatrix} \frac{1}{r}cot(\frac{FOV}{2}) & 0 & 0 & 0 \\ 0 & cot(\frac{FOV}{2}) & 0 &0\\ 0 & 0 & \frac{n+f}{n-f} &\frac{2nf}{n-f}\\ 0 & 0 & -1 & 0\\ \end{bmatrix} r1cot(2FOV)0000cot(2FOV)0000n−fn+f−100n−f2nf0
  • DirectX
    1 r c o t ( F O V 2 ) 0 0 0 0 c o t ( F O V 2 ) 0 0 0 0 n f − n n f f − n 0 0 − 1 0 \begin{bmatrix} \frac{1}{r}cot(\frac{FOV}{2}) & 0 & 0 & 0 \\ 0 & cot(\frac{FOV}{2}) & 0 &0\\ 0 & 0 & \frac{n}{f-n} &\frac{nf}{f-n}\\ 0 & 0 & -1 & 0\\ \end{bmatrix} r1cot(2FOV)0000cot(2FOV)0000f−nn−100f−nnf0
相关推荐
魔士于安1 天前
unity 丑陋哥布林 哥布林有humannoid 动画没 带动画
unity·游戏引擎·材质·贴图·模型
微三云 - 廖会灵 (私域系统开发)2 天前
企业大模型应用工程化思考:跳出 Demo 陷阱,构建「业务‑资产‑Agent」三层落地架构
人工智能·矩阵·重构
tryxr2 天前
矩阵的几种基础变换
java·数据结构·算法·矩阵
小贺儿开发2 天前
Unity 家居视频遥控(细节优化)
科技·unity·程序员·udp·视频·工具·通信
淡海水2 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
小小数媒成员3 天前
UGUI 性能优化(详细,全,深入)
开发语言·unity·游戏引擎
俗人六哥AI企业获客盈利系统3 天前
知识库才是AI落地的分水岭
人工智能·线性代数·矩阵·自动化
林川~013 天前
Unity新输入系统使用笔记
unity·input system
小贺儿开发4 天前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字
goujunwe4 天前
GEO 评估方法:如何自测你的内容,会不会被 AI 引用
搜索引擎·网络安全·游戏引擎·全文检索·中文分词