Unity中Shader 齐次坐标

文章目录


前言

在之前的文章中,我们进行了正交相机视图空间转化到裁剪空间的推导。

在这篇文章中,我们进行透视相机视图空间转化到裁剪空间的推导的前置准备------齐次坐标是什么。


一、什么是齐次坐标

齐次坐标:就是将一个原本是 n 维的向量 用一个n + 1维向量来表示


二、齐次坐标增加分量 w 的意义

  • (x,y,z) -> (x,y,z,w)

1、当 w ≠ \neq = 0时:

可以把式子化简为 (x/w,y/w,z/w,1)

用(1,2,3)为例,以下式子都是等价的:

  • (1,2,3)
  • (1,2,3,1)
  • (2,4,6,2)
  • (3,6,9,3)
  • (......)

2、当 w = 0时:

(x,y,z,0)表示的是一个无穷远的点

3、用方程组,直观的看一下w的意义

  • Ax + By + C = 0(不动的那条线)
  • Ax + By + D = 0(下面移动的那条线)
  1. 若 C ≠ \neq = D,则方程无解
  2. 若 C = D,则表示的是同一直线
  3. 此时,我们使用 x w 代替 x \frac{x}{w}代替x wx代替x, y w 代替 y \frac{y}{w}代替y wy代替y
  • A x w + B y w + C = 0 A\frac{x}{w} + B \frac{y}{w} + C = 0 Awx+Bwy+C=0
  • A x w + B y w + D = 0 A\frac{x}{w} + B \frac{y}{w} + D = 0 Awx+Bwy+D=0

->

  • A x + B y + C w = 0 Ax + By + Cw = 0 Ax+By+Cw=0
  • A x + B y + D w = 0 Ax + By + Dw = 0 Ax+By+Dw=0

若C ≠ \neq =D,则有唯一解(x,y,0)

若w = 0,表示的点是无穷远处

相关推荐
LONGZETECH2 小时前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
丁小未2 小时前
Unity 几种常见合批手段的要求
游戏·unity·合批·srpbatcher·动态合批·静态合批
旧物有情1 天前
游戏开发常用架构 #MVP,MVC
游戏·unity·架构·mvc
勇踏前人未索之境1 天前
Unity打包运行于鸿蒙手机
unity·智能手机·harmonyos
玖玥拾1 天前
Unity 3D 笔记(十一)UI 框架进阶:栈弹窗交互、BasePanel 基类虚方法、DoTween 界面动画
笔记·3d·unity
郝学胜-神的一滴1 天前
中级OpenGL教程 023:Assimp模型加载全解——从源码到架构的骈文探秘
c++·unity·游戏引擎·cmake·unreal engine·opengl
xcLeigh2 天前
Unity基础:GameObject与Component——Unity核心架构思想彻底理解
unity·教程·component·gameobject
郝学胜-神的一滴2 天前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
weixin_424294673 天前
Unity的测试Edit Mode和Play Mode,有什么区别?
unity