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

  插值还没有系统的学过,最近在实现BlackWalnut3D的纹理映射时,才慢慢发现3D中的插值和我们数学上的插值还是有点不同的。

  个人认为,插值可以和向量,矩阵一起称为计算机图形学中最最基本的数学基础。

  在构造物体时,可以只设置几个参考点,使用插值完成贝塞尔曲线的逼近。在进行裁剪时,为了获得规范的,可以方便进行裁剪的裁剪立方体CVV,将透视和插值融合实现了透视矩阵,同时,在具体的裁剪过程中,使用插值获得各种裁剪后的坐标。在光栅化的阶段,使用插值完成将一个平面离散到屏幕像素上,并且利用插值完成正确的纹理透视,使效果看起来更棒。

  可以发现,在pipeline的整个阶段都可能用到插值。其重要性并不亚于向量和矩阵。那么,就先简单的介绍一下插值,以后系统的学习过后,再系统的写一写。

首先,插值只适用于线性关系中。对于非线性关系,插值并不适用。

  其次,计算机中的插值,和数学中插值的基本含义一样,具体用法上,多数使用的是比例关系。

数学上,线性关系表示为:y = ax+b,其中a,b为实数,x,y可以为向量或者实数。也就是说,知道a,b后,每一个确定的x,有一个确定的y和其对应。

  而再计算机中,我们通常使用的是其比例关系。设y = ax+b , 如y从y0开始,到y0和y3之间的一个值y2,那么x也就从x0开始,到x0和x3之间的一个值x2,这中情况下,如果要求x2的值,有

x2 = (x3-x0)*(y2-y0)/(y3 - y0) + x0 。不用具体求出a和b的值。

  在下面这篇文章中,使用的就是上面的插值方式:

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

由上面这篇文章可知,只要能知道两个量之间关系是线性关系即可,不用计算a和b的具体值。  

时间: 2024-07-29 04:11:48

透视纹理引发的对于插值的思考的相关文章

一个贴子引发的对回调的思考

一个贴子引发的对回调的思考 网上看到一个贴子:http://topic.csdn.net/u/20080728/20/d60f719a-c103-44b8-8d0c-bc1c818b768a.html 觉得蛮有意思,在学习的工程中又引申出不少东西,真有趣!! 定义在类中方法之外的内部类分为实例内部类和静态内部类. 实例内部类自动持有外部类的实例的引用,即可以访问外部类的所有变量: 静态内部类可以直接访问外部类的静态成员: 定义在方法中的内部类叫局部内部类,该类只能访问被final修饰的局部变量和

Navicat连接mysql出现2003——can't connect to mysql server on localhost(10061)引发的关于人生的思考)

(0)目录 走,是一辈子,不走,也是一辈子(程序猿之路) Navicat连接mysql出现2003--can't connect to mysql server on localhost(10061) 一:起因 (0)最近由于病了一场,闲暇时间(即生病期间)一直思考如下问题: 思考一:如何做一名合格的程序猿,怎么才能成为一名名副其实的程序猿? 思考二:还有就是到底,值不值得熬夜加班去搞研发(或转型或做相对轻松的其它IT岗位~~~对于这个问题,我一时无法给出答案,希望各位帮我分析一下,不胜感激!!

Unity3D Camera透视相机到正交相机插值

事实上效果并不怎么好,因为延迟光照下的很多效果不支持正交,许多后期效果会炸掉,需要酌情使用 通过对投影矩阵进行插值来实现 如果透视相机的远截面和正交相机的远截面差太多,插值时会很奇怪,需要注意. 效果: 代码: using UnityEngine; using System.Collections; public class ProjectionLerp : MonoBehaviour { [Range(0, 0.9f)] public float lerp; public float near

抛砖引玉之一 —— 由12306引发的抢购模式的思考

本文不涉及数据库原理,不会简单的对比oracle.mysql.sqlserver这些RDBMS的优异(事实上也很难得出结论),只是基于个人观点引发的一点思考,欢迎拍砖: 一个话题总要有切入点,但这次的切入点显得有些突兀: 事实上,我们是从数据库的负载均衡问题聊起来的.前面的内容不再赘述,只是话题忽的引到12306订单系统如何应对大并发的问题上: 由于没有现成的资料,无法评论12306的应用以及数据库架构是否合理.不过从表象上可以猜到一些倪端: 表象:在春运期间,一般车票是提前N天开始预订,但在放

Topk引发的一些简单的思考

软件工程课程的一个题目:写一个程序,分析一个文本文件中各个词出现的频率,并且把频率最高的10个词打印出来.文本文件大约是30KB~300KB大小. 首先说一下这边的具体的实现都是在linux上实现的.没有大型IDE的性能检测.其实30KB还不是瞬间的事情,基于语言和一些简单的策略.所以在后面可能会尝试考虑增加文件大小到G级,然后发生的东西.我只能是从简单的原理研究.至于调试我只能写个简单的shell来自己检测一下.嗯,就这样吧.能力还是有点小白,特别是看了v_JULY_v 的海量数据处理http

由移动端级联选择器所引发的对于数据结构的思考

GitHub:https://github.com/nzbin/Framework7-CityPicker Demo:https://nzbin.github.io/Framework7-CityPicker/ 前言 最近在做移动端项目的时候遇到了省市区选择的功能.以往做项目时都是省市区分开的下拉框样式.这次希望实现效果图要求的级联选择器.我是 Framework7 框架的忠实粉丝,庆幸的是 Framework7 已经有模拟 iOS 选择框效果的 Picker 组件.在开发之前我先搜索了现有的一

一块抹布引发的关于测试策略的思考

一 其实,这篇文章最开始的标题是<如何用一个抹布一次清理完一个落满灰尘的工位>,读来读去觉得有点绕,写到最后也发现,哇,这个抹布好惨呀,就把标题改为<一块抹布引发的惨案>,又感觉有标题党的嫌疑,最终就确定了目前这个标题. 言归正传,不知道读到这的同学里面有没有杠精,做测试的话,我相信肯定有,不管怎样,我先解释一下,本次主要是讨论测试策略的话题,比如如何尽早发现严重程度比较高的 Bug,有人会说,这和抹布有什么关系?别着急,继续看. 二 我一直觉得,测试不只是单纯的技术输出型工种,有

BFC引发的关于position的思考

BFC布局规则: 内部的Box会在垂直方向,一个接一个地放置. Box垂直方向的距离由margin决定.属于同一个BFC的两个相邻Box的margin会发生重叠 每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反).即使存在浮动也是如此. BFC的区域不会与float box重叠. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素.反之也如此. 计算BFC的高度时,浮动元素也参与计算 其中第4条:BFC的区域

setTimeout(fn, 0)引发的JavaScipt线程的思考

起因 周五改一个checkbox的display属性被错误地设置为none的bug. 经debug发现, 有两个地方修改了display属性: 1) checkbox的controller; 2) checkbox的parent(container). 前者先将display属性更新为block(正确), 后者再次更新为none(错误). 普通的思路是, 修改checkbox的container的代码, 使其能正确更新display值. 但另有一种更巧妙的方法, 就是修改checkbox的con