OpenGL取景变换(视图变换)矩阵推导

本文结合数学知识详细推导了OpenGL中的视图变换矩阵,从基本坐标变换公式开始,逐步引入齐次坐标,最终得出包含平移和旋转的4x4变换矩阵。并解析了iOS平台下OpenGL实现取景变换的源代码,阐述了坐标变换的逆向理论。
摘要由CSDN通过智能技术生成

OpenGL取景变换(视图变换)矩阵推导

标签(空格分隔): OpenGL VR 游戏开发


前言

关于取景变换(视图变换)矩阵的推导本人查过许多资料, 包过关于openGL的和数学方面, 数学方面的资料很严谨, 推导过程环环相扣, 但是数书知识毕竟是理论, 怎么将理论变成实现的代码, 数学知识是不涉及的. 代码原理方面的知识只能查找openGL或图形学相关的资料, 但是这些资料有个缺点就是涉及数学原理的地方不会写的很清楚, 很多东西都是一笔带过, 没有那种环环相扣的严谨性, 所以到最后就发现查了很多资料都发现推导过程是脱节的, 代码不是从数学知识平滑过渡过来的.
本文旨在结合数学知识一步一步的推导出取景变换的变换矩阵, 从最基本的向量相乘到最终的代码实现.

使用线性变换推导基本坐标变换公式

先从简单的情况入手, 让两个坐标系的原点相同, 基向量不同, 设世界坐标系 W {O;i,j,k} , 观察坐标系 V {O;u,v,n} , 其中观察坐标系的基向量分别为 u⃗ =(xu,yu,zu) , v⃗ =(xv,yv,zv) , n⃗ =(xn,yn,zn) , 从而存在:

u=xui+yuj+zukv=xvi+yvj+zvkn=xni+ynj+znk

即:

(u,v,n)=(i,j,k)xuyuzuxvyvzvxnynzn

令:

A=xuyvznxvyvznxnyvzn

则有 V=WA , 由线性代数知识得知, A 称为从 W V 过渡矩阵. 由上式可以得出 W=VA1 , 即:

(i,j,k)=(u,v,n)A1

称之为坐标转换公式.

设世界坐标系中 W 的一点 X0 坐标为 (x0,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值