透视校正插值(Perspective-Correct Interpolation)

在渲染器光栅化每个三角形的过程中,需要对根据顶点属性对三角形进行扫描线插值。此时由于投影面上顶点的2D坐标与顶点属性不成线性关系,因此是不能简单地使用线性插值来计算顶点属性的。

此时应当利用透视校正插值(Perspective-Correct Interpolation)来计算。

设3D空间中存在一条线段,它的两个端点为A和B,3D坐标分别为(x1,y1,z1)和(x2,y2,z2)。这两点投影到camera坐标系投影面的两点为a(p1,q1)、b(p2,q2)。那么:

设该线段之间存在一个三维点C(2D中我们用c来表示),它的三维和二维坐标分别为(x3,y3,z3)、(p3,q3),

c=(1-t)a+tb。则可以证明

1/z3=(1-t)*(1/z1)+t*(1/z2),

因为在网格模型中顶点属性与顶点的坐标值成线性关系,因此可以利用求出的z值来计算相应的顶点属性。

具体的推导可以件这两篇博客:

http://blog.csdn.net/popy007/article/details/5556639

http://blog.csdn.net/popy007/article/details/5570803

时间: 2024-10-06 21:41:37

透视校正插值(Perspective-Correct Interpolation)的相关文章

透视校正插值

在投影变换视口变换后,需要对投影到屏幕上的平面三角形顶点属性进行线性插值,例如颜色,纹理,深度等.但对于投影前在3D空间的三角形来说,这个插值并不是线性的.下面来推导一下这个插值. 假设屏幕空间的三角形的三个顶点分别为\(v_0,v_1,v_2\),\(v_p\)是位于三角形一边上的点\(v_0 + t(v_1 - v_0)\). 那么有: \[ x_p = x_0 + t(x_1 - x_0) \] 其中,$ 0 \leq t \leq 1$.对于投影前的三角形,根据投影变换则有: \[ \d

uniapp属性插值报错Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead.

解决方法: 因为vue 2.x不支持对属性使用插值{{}}的方式赋值,所以要使用v-bind指令(或简写“:”)来指定属性. v-bind指令 v-bind:id="item.id" v-bind简写指令: :id="item.id" 原文地址:https://www.cnblogs.com/XiaoYEBLog/p/11546343.html

Direct3D11学习:(六)渲染管线

转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 这篇文章主要讲解渲染管线(rendering pipeline)的理论知识. 渲染管线是指:在给定一个3D场景的几何描述及一架已确定位置和方向的虚拟摄像机(virtual camera)时,根据虚拟摄像机的视角生成2D图像的一系列步骤. 下图所示为构成渲染管线的各个阶段,以及与各个阶段相关的内存资源. 从上图中我们可以看到,渲染管线就像工厂中的流水线,把各个处理过程分成不同的阶段,各个阶段可以独立工作,这样,

图形渲染管线简介

The Graphics Rendering Pipeline 渲染管线,这章主要讲光栅化渲染管线. 毕业前实习时,也实现过一个简单的软光栅化渲染管线,再复习一下. 在计算机图形学领域,shading指基于表面相对灯光的角度.距灯光的距离.相对于相机的角度和材质的属性等来修改物体/表面/多边形的颜色,进而创造一个具有真实感效果的过程. In computer graphics, shading refers to the process of altering the color of an o

Unity Shader入门精要学习笔记 - 第4章 学习 Shader 所需的数学基础

摘录自 冯乐乐的<Unity Shader入门精要> 笛卡尔坐标系 1)二维笛卡尔坐标系 在游戏制作中,我们使用的数学绝大部分都是计算位置.距离.角度等变量.而这些计算大部分都是在笛卡尔坐标系下进行的. 一个二维的笛卡尔坐标系包含了两个部分的信息: 一个特殊的位置,即原点,它是整个坐标系的中心. 两条过原点的互相垂直的矢量,即X轴和Y轴.这些坐标轴也被称为是该坐标的矢量. OpenGL 和 DirectX 使用了不同的二维笛卡尔坐标系.如下图所示: 2)三维笛卡尔坐标系 在三维笛卡尔坐标系中,

透视纹理引发的对于插值的思考

插值还没有系统的学过,最近在实现BlackWalnut3D的纹理映射时,才慢慢发现3D中的插值和我们数学上的插值还是有点不同的. 个人认为,插值可以和向量,矩阵一起称为计算机图形学中最最基本的数学基础. 在构造物体时,可以只设置几个参考点,使用插值完成贝塞尔曲线的逼近.在进行裁剪时,为了获得规范的,可以方便进行裁剪的裁剪立方体CVV,将透视和插值融合实现了透视矩阵,同时,在具体的裁剪过程中,使用插值获得各种裁剪后的坐标.在光栅化的阶段,使用插值完成将一个平面离散到屏幕像素上,并且利用插值完成正确

插值-样条插值

百度百科定义 插值:在离散数据的基础上插补连续函数,使得这条连续曲线经过全部离散点,同时也可以估计出函数在其他点的近似值. 样条插值:一种以 可变样条 来作出一条经过一系列点的光滑曲线的数学方法.插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定的,这样,任意的两个相邻的多项式以及它们的导数在连接点处都是连续的. 样条插值法 简单理解,就是每两个点之间确定一个函数,这个函数就是一个样条,函数不同,样条就不同,所以定义中说 可变样条,然后把所有样条分段结合成一个函数,就是最终的插

常见的查找算法(三):插值查找

插值搜索法(Interpolation search)是利用插值公式来计算猜测搜索键值的位置.搜索方式与二分搜索相同 插值公式: 插值 = (设算数 -­ 最小数) / (最大数 -­ 最小数): [2] 搜索键值 = left + parseInt( ( key - data[ left ] ) / ( data[ right ] - data[ left ] ) ) * ( right - left ) ) 插值搜索之算法与二分搜索算法几乎完全相同,差别在: 二分搜索法:猜测键值在中间位置(

IT英语4-计算机英语缩写术语

1.CPU 3DNow!(3D no waiting,无须等待的3D处理) AAM(AMD Analyst Meeting,AMD分析家会议) ABP(Advanced Branch Prediction,高级分支预测) ACG(Aggressive Clock Gating,主动时钟选择) AIS(Alternate Instruction Set,交替指令集) ALAT(advanced load table,高级载入表) ALU(Arithmetic Logic Unit,算术逻辑单元)