添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

原文链接: http://www.nicemxp.com/articles/27

之前的总结中介绍过仿射纹理映射,仿射纹理映射中纹理坐标是根据三角形屏幕坐标线性插值得到的,但是三角形在3d空间中映射到屏幕坐标时是与三角形的z轴分量相关的。所以直接直接通过屏幕坐标线性插值得到的纹理坐标是有误差的。

我们可以看一下仿射纹理映射:

这是将一个纹理图直接根据平面坐标线性插值得出纹理坐标的效果图,使用的纹理图:

我们可以明显看出效果图中的纹理映射很扭曲,这就是仿射纹理映射的问题,在于线性插值不能计算在屏幕空间中不呈线性变化的量。因此它不适用于纹理坐标,甚至颜色强度。投影到视平面时使用的是透视变换,这扭曲了这些数据。

图中我们可以看出在屏幕空间中通过线性插值计算得到的纹理坐标值是错误的。

经过透视变换进入屏幕空间后,纹理坐标不再是线性变化的,要让它继续是线性的,必须除以z.

图中是视景体的侧视图,我们看到视景体中的线段AB映射到视平面上ab,然而AB是3d空间中的,而ab却是2d空间中的。

我们可以进行下推导:点A(y1, z1),B(y2, z2)

线段AB可以表示为:a*y + b*z = c

在透视变换时,我们转换为视平面时有

yper = (y * d) / z

d是视距我们可以看为一个常数,所以有:

y = yper * z * (1/d)

将y带入线段AB的公式中有:

a*(yper * z * (1/d)) + b*z = c

=> z = c / (a*yper*(1/d) + b)

=>1/z = a * (1/d) * (1/c) * yper + b/c

所以我们可以看出顶点视平面中的透视坐标是与1/z成线性关系的,这样意味着计算3D空间中的纹理坐标u,v等,必须先将他们除以z,通过线性插值计算除以z后的值,然后再除以1/z得到3d空间中的纹理坐标,这样得到的结果才是最终正确的纹理坐标。

下面是透视矫正后的效果图:

我们可以看出比上面未经过透视矫正的效果好多了。

设直线方程为:            a * y + b * z = c根据相似三角形:         p / y = d / z==>                          y = p / d * z代入直线方程得:         a * p / d * z + b * z = c==>                          z = c / (a * p / Gouraud着色 着色是一种游戏物体线框或者网格的填充模式,因为游戏的物体线框和网格都是由三角形组成的,所以着色就是对三角形进行填充,是在二维空间中进行的,gouraud着色是根据三角形顶点的颜色,进行插值计算来完成三... 之前进行的 纹理映射 过程中,包括仿射 纹理映射 透视 纹理映射 ,采用的都是点采样,即使用 纹理 坐标u和v,丢弃了它的小数部分(或者进行四舍五入)。 这样做的问题就是本来可以用作绘制更高的图像信息被丢弃了,这就是双线性滤波的作用,不丢弃小数部分,而是根据 纹理 坐标u,v采集 纹理 图中... 本文介绍了如何使用OpenCV库进行 透视 变换以校正倾斜物体的图像。通过提取物体区域、确定源点和目标点、计算 透视 变换矩阵以及应用 透视 变换,我们能够获得校正后的图像。 透视 变换是一种常用的图像处理技术,对于纠正倾斜物体的图像非常有用。通过使用OpenCV提供的函数和方法,我们可以轻松地实现这一功能。 透视 变换是一种常用的图像处理技术,用于校正倾斜物体的图像。该技术可以通过调整图像的 透视 投影来使物体在图像中呈现出正常的形状和角度。在本篇文章中,我们将使用OpenCV库来实现 透视 变换,并提供相应的源代码。 二 世纪六 年代兴起的OCR(Optical Character Recognition,光学字符识别)技术,使得文档能以图像的形式被分析与识别,一定程度上实现了文本识别的自动化。然而,文档图像识别效果的优劣与其质量有着密切的联系,其中几何质量更为重中之重。随着移动摄像终端数量剧增,随手拍照已成为一种对文档进行数字化记录的普遍方式,由于手持移动设备摄像的特殊性,文本成像常存在多种类型的形变叠加,这不可避免对文本图像识别造成极大干扰。因此,文本图像的畸变 矫正 一直是伴随着OCR的一个重点研究方向,在... 透视 矫正 插值和图形渲染管线 总结 1 透视 矫正 插值(Perspective-Correct Interpolation) 正如上一文章中所提到的,我们的重心坐标往往都是在屏幕空间下所得到的,如果直接使用屏幕空间下的重心坐标进行插值会造成一定的误差,与在view space下是不一样的,那么本节内容就会具体介绍如何 矫正 这种误差,利用屏幕空间下的重心坐标达到正确的插值。在此之后也会对到目前为止的所有内容... -潘宏-2010年5月3日-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: [email protected]在这篇文章中,我们将探讨图形流水线中另一个复杂的主题—— 透视 纹理映射 (Perspective Texture Mapping)。你可能听说过仿射 纹理映射 (Affine Texture Mapping)(没听过?没关系,我会让你理解的),并且知