首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

投影矩阵推导_矩阵投影变换

概要 投影变换是计算机图形学的基础,理解并推导投影矩阵也是很有必要的。正交投影比较简单,没有透视失真效果(近大远小)。而透视投影比较符合人类的眼睛感知,平行线在远处会相交于一点。...投影是通过一个4×4的矩阵来完成的,将视锥映射成标准观察体(齐次裁剪空间)。...: 得到投影矩阵: 当然也可以用一个平移和缩放矩阵的级联矩阵,来达到一样的效果。...透视投影 OpenGL 设P(Px, Py, Pz, 1)是在视锥体内的一点,那么它在近平面z=-n上的投影点,利用相似三角形原则,可以得到: 类似于正交投影,将x,y轴坐标映射到[-1, 1]...区间内,得到: 然而和正交投影不同,z轴的坐标并不是线性的。

87630

透视投影矩阵_透视投影矩阵推导知乎

透视投影矩阵 关于透视投影矩阵的使用 设置投影矩阵 glFrustum() 设置屏幕坐标 gluPerspective() 首先,重要的是要记住OpenGL中的矩阵是使用列主顺序(而不是行主顺序)定义的...r:立方体的左,右在X轴上的投影 b, t:立方体的下,上在X轴上的投影 n:近平面在Z轴上的投影 f:远平面在Z轴上的投影 关于OpenGL透视投影矩阵的推导,可参考链接link....在这里我们推荐另外一种大佬关于投影矩阵的推导方法,是基于计算机图形学投影矩阵的推导,求出来的结果会和OpenGL的透视投影矩阵有差别,但是在推导过程上更加简单,易于理解。可参照以下链接: link....关于透视投影矩阵的使用 在旧的固定函数渲染管道中,使用两个函数来设置屏幕坐标和投影矩阵,这两个函数分别是gluPerspective(它是glu库的一部分)和glFrustum。...设置投影矩阵 glFrustum() 在OpenGL中设置透视投影矩阵是通过调用glFrustum来完成的。

1.1K20

透视投影变换矩阵推导_矩阵的投影

如果你曾经看过投影矩阵,你会发现你的常识不足以告诉你它是怎么来的。而且,我在网上还未看到许多关于如何推导投影矩阵的教程资源。本文的话题就是如何推导投影矩阵。...现在,可以进入实际的投影变换了。有许多投影方法,我将介绍最常见的2种:正交和透视。...正交投影(Orthographic Projection) 正交投影,之所以这么称呼是因为所有的投影线都与最终的绘图表面垂直,是一种相对简单的投影技术。...透视投影(Perspective Projection) 透视投影是稍复杂的一种投影方法,并且用的越来越平凡,因为它创造了距离感,因此会生成更逼真的图像。...由于空间体形状的这种变换,透视投影不能像正交投影那样简单的表达为一个平移和一个缩放。你必须制定一些不同的东西。但是,这并不意味着你在正交投影上做的工作是无用的。

1.2K20

地图投影

地图投影分类 根据投影面和地球球面的位置关系 投影面和地轴的关系 正轴投影投影面的中心线与地轴一直) 斜轴投影投影面的中心线与地轴斜交) 横轴投影投影面的中心线与地轴垂直) 投影面和地球面的关系...切投影 (投影面和地球球面相切) 割投影 (投影面和地球球面相割) ?...根据正轴投影时经纬网的形状 圆锥投影投影中纬线为同心圆圆弧,经线为圆的半经) 圆柱投影投影中纬线为一组平行直线,经线为垂直于纬线的另一组平行直线,且两相邻经线之间的距离相等) 方位投影投影中纬线为同心圆...,经线为圆的半径,且经线间的夹角等于地球面上相应的经差) 此外,还有伪圆锥投影,伪圆柱投影,伪方位投影,多圆锥投影等 ?...根据投影的变形 等角投影 (地球表面无穷小图形投影后保持相似) 等面积投影 (地球表面图形在投影后面积保持不变) 任意投影 常用地图投影 我国基本比例尺地形图(1:100万,1:50万,1:25万,1:

1.3K10

投影矩阵介绍

下面就介绍下相平面投影的三种不同方法。...正交投影 正交投影可以理解是透视投影的一种极端情况,f趋近无穷大,f/Z趋近1,这时矩阵形式就写成: 展开为: 这里w为1. 可以看出,相平面上的点就是相机坐标系的点,简单粗暴,直接去掉了Z。...这种投影方式没法反应近大远小的特点,所以就有了下面稍微复杂点的正交投影:缩放正交投影。...缩放正交投影(弱透视模型) 由于正交投影简化过猛,直接丢弃了Z,这里为了体现缩放又把Z加回来了,只不过这里的Z是个常值,比如一个三维的点云,可以将分母设为点云Z的均值,这样就实现了投影的缩放(依然保留了平行直线的关系...x轴做了平移,如果使用弱透视投影投影的结果应该是右下角三张图,看起来人头都没旋转。。

88410

OpenGL投影矩阵

这是关于OpenGL投影矩阵的一篇译文,原文在这里....透视投影 在透视投影中,视锥体(观察空间)中的一个3D坐标点会被映射到一个立方体中(NDC);其中 xxx 坐标范围会从 [l,r][l, r][l,r] 映射到 [−1,1][-1, 1][−1,1]...在 OpenGL 中,观察空间中3D坐标点是投影到近裁剪面(即投影面)上的.下面的示意图展示了一个在观察空间中的坐标点 (xe,ye,ze)(x_e, y_e, z_e)(xe​,ye​,ze​),是如何投影到近裁剪面坐标点...上面的投影矩阵对应于一般的视锥体投影,如果视锥体是上下左右对称的话(即 r=−l,t=−br = -l, t = -br=−l,t=−b),则上面的投影矩阵可以做如下简化: ?...正交投影 为正交投影构建一个 GL_PROJECTION 矩阵比上面说的透视投影要简单多了. ?

1.6K00

投影矩阵详解

这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。...视锥由凹视野(   在上图中,变量   投影矩阵是一个典型的缩放和透视矩阵。投影变换将视锥变换成一个直平行六面体的形状。...4.4 一个W-Friendly投影矩阵Direct3D立即模式可以利用这个顶点的W成分执行雾化效果,并在深度缓冲中执行基于深度的运算。这样的运算需要投影矩阵将W规范化等价于世界空间的Z。...要了解变量D如何被用来建立投影矩阵,请看“什么是投影变换?”部分。 4.2 什么是投影矩阵?D。...这个空间的形状决定了摄像机空间中的模型将被如何投影到屏幕上。透视投影是最常用的一种投影类型,使用这种投影,会使近处的对象看起来比远处的大一些。

1K30

笔记本怎样连接投影仪-linux(ubuntu)下外接投影仪或着显示器的方法

我的笔记本看的时间太长了,笔记本上面的字太小了,眼睛总是受不了,而实验室有空闲的显示器,想把笔记本接上去,最近在网上查了一些关于linux下外接投影仪的办法,最后,我按照这篇博文的方法达到了我的目标...最近linux迷要搞大学生讲坛笔记本怎样连接投影仪,这不,今天早上还在12教试试这电脑能不能连到投影仪上去呢。...环境:笔记本Lenovo Y430安装的是Ubuntu Linux,分辨率是1280×800,投影仪的分辨率是1024×768,一个16:10一个4:3的比例,必然会损失一些显示效果。...只能采取折中的方法了,把我的本本的分辨率也调成1024×768,这样就能实现和投影仪一个效果了,让观众可以看清我的桌面。   OK,要达到的目地很简单,就是让投影仪完整的输出Linux迷本本的屏幕。...重启X-WIndow笔记本怎样连接投影仪,这个比较变态点,是ubuntu linux不同于其他人何一款linux发行版的地方,重启X-window以后接着下面的操作选择 “系统” “系统管理” “NVIDIA

1.8K10

全息投影技术的实现_自制全息投影视频素材

下面我们一起探讨全息投影技术及其原理 全息技术是利用干涉和衍射原理记录并再现物体真实的三维图像的记录和再现的技术。 全息投影是什么?...而我们常看的3D动画电影属于偏光眼镜法,俗称“伪3D全息投影”。...3D全息投影技术原理 ---- 3D全息立体投影设备不是利用数码技术实现的,而是投影设备将不同角度投影至进口的MP全息投影膜上,让你看不到不属于你自身角度的其它图像,因而实现了正真的3D全息立体影像...3D全息投影衍生产品 ---- 全息幻影成像系统:全息幻影成像分为180度成像和360度成像两种,180度的适合单面展示,一般应用在3D成像面积较大的舞台全息投影和成像面积加大的场合使用,并且可以实现互动...---- 3D全息投影源下载 IPAD 3D全息投影源下载地址:http://pan.baidu.com/share/link?

68310

Kotlin 范型之泛型约束、类型投影、星号投影

类型投影(Type projections) 在上一篇文章>中,曾经介绍过 MutableList 是不变的,可读可写,没有使用 in、out 修饰。...在 Kotlin 中,这种行为被称之为类型投影。其主要作用是参数作限定,避免不安全操作。 正是由于 list3 是一个受限制的 MutableList,因此它赋值给 list4 报错也是可以理解了。...三.星号投影(Star-projections) 星号投影用来表明“不知道关于泛型实参的任何信息”。 类似于 Java 中的无界类型通配符?, Kotlin 使用星号投影*。...printList(list2) } fun printList(list: MutableList) { println(list[0]) } 正是由于使用 out 修饰以及星号投影的类型不确定性...因此,星号投影不能写入,只能读取。 四.总结 本文是 Kotlin 范型系列的最后一篇文章。 本文讲述了 Kotlin 泛型约束、类型投影、星号投影的特性。

2.3K20
领券