Graphics 三维计算机图形学中的插值

Graphics 三维计算机图形学中的插值,graphics,3d,interpolation,x3d,Graphics,3d,Interpolation,X3d,我想知道是否有人能帮我简单地解释一下什么是插值,以及它是如何在3d计算机图形学中使用的插值是从一件事到另一件事的平滑调整。它用于动画 例如,如果一个对象位于位置1,并且我们希望在六秒钟内将其移动到位置2,则需要在两个端点之间缓慢插值其位置。插值还指在该路径上搜索某个位置。插值是基于其他点对点的“猜测” 例如,当您有点(0,0)和(2,2)时,您可能会“猜测”该点(1,1)也属于该集合 simples的应用是从两点推导出一条直线 同样的东西在3维或实际上是n维中起作用 在3D图形中,它将被使用

我想知道是否有人能帮我简单地解释一下什么是插值,以及它是如何在3d计算机图形学中使用的插值是从一件事到另一件事的平滑调整。它用于动画


例如,如果一个对象位于位置1,并且我们希望在六秒钟内将其移动到位置2,则需要在两个端点之间缓慢插值其位置。插值还指在该路径上搜索某个位置。

插值是基于其他点对点的“猜测”

例如,当您有点(0,0)和(2,2)时,您可能会“猜测”该点(1,1)也属于该集合

simples的应用是从两点推导出一条直线

同样的东西在3维或实际上是n维中起作用

在3D图形中,它将被使用

  • 对于动画,根据开始和结束坐标计算物体的位置
  • 计算线
  • 梯度
  • 图形缩放 可能还有更多

    • 简单地说:给定两个点A和B,在它们之间找到一个点

      例如,如果我想在一个步骤中将某物沿直线从位置x=1移动到x=4:

      1-----------------------4
      
      第一步在位置1,第二步在位置4,因此对象立即从一个位置移动到另一个位置。但是,如果我想让对象花费一定的时间或帧数来进行过渡,我需要通过找到间隔均匀的中间点来优化它

      如果我希望对象采取两个步骤(或帧)从1移动到4

      1-----------X-----------4
      
      我需要计算新的点(X)是什么,这样我就可以在适当的时间在那里绘制对象。在这种情况下,点X将为

                                        (max-min)
      location = min + (current_step) * --------
                                          steps
      
      位置
      是我们想要找到的
      min
      =1,
      max
      =4,在本例中,
      步骤
      =2,因为我们要将跨度分为两个步骤:

      step:   location:
      0       1
      1       2.5
      2       4
      
      1------------(2.5)-----------4
      
      如果我们想采取4个步骤:

      step:   location:
      0       1
      1       1.75
      2       2.5
      3       3.25
      4       4
      
      1---(1.75)---(2.5)---(3.25)---4
      
      等等。对于四个步骤,对象每帧移动总距离的25%。对于10个步骤,10%,等等

      对于多个维度(当一个对象具有二维或三维轨迹时),只需将其分别应用于每个X、Y、Z轴

      这是线性插值。还有其他种类。一如既往

      其他应用包括纹理贴图、抗锯齿、图像平滑和缩放等,当然还有游戏和图形之外的许多其他用途


      注意:许多框架已经提供了这一点。例如,在XNA中,它是。

      一般定义

      插值(在数学中)可以看作是从一个值到另一个值的转换。插值通常使用0到1范围内的值,如百分比。0是起始值,1是结束值。插值的主要目的是找到给定值之间的值

      插值类型

      各种程序中使用的插值类型很多,最常见的是线性插值。这种类型的插值是最简单、最直接的;它用于查找两点或数字之间的线段中的值。还有:三次插值、二次插值、双线性、三线性等。有关更多信息,请访问此处:

      在3D图形中的应用

      插值,特别是线性、双线性和三线性,对于计算几何体中的碎片(几何体的纹理和视觉效果)、混合体积纹理、mip贴图(纹理上的景深效果)和照明(如虚幻引擎的体积光照贴图)非常重要。插值的结果可能会有所不同,但可能会产生非常现实的结果。这是一个相当大的计算量,特别是当插值是在三维或更高的空间(超空间)中时

      插值示例

      在1维中:

      n1 = 1
      n2 = 2
      
      i = 0.5
      
      n3 = (n1 - n1 * i) + n2 * i
      
      ///////////////////////////////////////
      
                        n3
      ├────────┼────────┼────────┼────────┤
      1       1.25     1.5      1.75      2
      
      ///////////////////////////////////////
      
      在2个维度中:

      v1 = {1, 1}
      v2 = {1.5, 2}
      
      i = 0.5
      d = √((v1.x - v2.x)^2 + (v1.y - v2.y)^2)
      
      v3 = {v1.x + -d * i * ((v1.x - v2.x) / d),v1.y + -d * i * ((v1.y - v2.y) / d)} 
      
      ///////////////////////////////
      
        2 ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
          ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
          ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
          ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
          ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼ v2
      1.5 ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─●
          ┼─┼─┼─┼─┼─┼─┼v3─┼─┼─┼─┼─┼
          ┼─┼─┼─┼─┼─┼─●─┼─┼─┼─┼─┼─┼
          ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
          ┼v1─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
          ●─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼
         1           1.5          2
      
      ///////////////////////////////
      

      插值不仅仅用于移动对象。您还可以在颜色之间进行插值,例如,使用此颜色的80%和另一种颜色的20%创建一个新颜色。@FlorinM请参见第二段至最后一段,其中提到了其他应用程序。