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


      插值还没有系统的学过,最近在实现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的具体值。  

  • 相关阅读:
    关于js的语句类型运算符等
    关于flex的布局理解
    三天来都在写项目;今天开始学习了js
    12.13的学习内容
    Css多列语法笔记
    Css3关键帧动画
    codevs1085数字游戏(环形DP+划分DP )
    codevs1040统计单词个数(区间+划分型dp)
    POJ1062昂贵的聘礼
    POJ3687Labeling Balls
  • 原文地址:https://www.cnblogs.com/BlackWalnut/p/4234968.html
Copyright © 2020-2023  润新知