我想知道是否有人可以帮助简单地解释插值是什么以及它在3d计算机图形中的使用方式
答案 0 :(得分:10)
简单地说:给出两点A和B,找到它们之间的一个点。
例如,如果我想在一个步骤中从一个位置x = 1到x = 4移动一些东西:
1-----------------------4
第一步是在位置1,第二步是在位置4,因此对象立即从一个位置移动到另一个位置。但是,如果我希望对象花费一定的时间或帧数来进行转换,我需要通过找到均匀间隔的中间点来改进它。
如果我希望对象采取两步(或帧)从1移动到4,
1-----------X-----------4
我需要计算新点(X)是什么,这样我就可以在适当的时候绘制对象。在这种情况下,点X将是
(max-min)
location = min + (current_step) * --------
steps
location
是我们想要找到的。 min
= 1,max
= 4,在此示例中steps
= 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%等等,这是令人作呕的。
对于多个维度(当对象具有2维或3维轨迹时),只需将其单独应用于每个X,Y,Z轴。
这是线性插值。还有其他种类。与往常一样,Google can help you out。
其他应用包括纹理贴图,抗锯齿,图像平滑和缩放等,当然还有游戏和图形之外的许多其他用途。
注意:很多框架已经提供了这个。例如,在XNA中,它是Matrix.Lerp。
答案 1 :(得分:2)
插值是从一件事到另一件事的顺利调整。它用于动画。
例如,如果一个对象位于位置1,并且我们想要在六秒钟内将其移动到位置2,我们需要在两个端点之间缓慢插入其位置。插值也指在该路径上搜索任何位置。
答案 2 :(得分:0)
插值是基于其他点的“猜测点”。
例如,当你有点(0,0)和(2,2)时,你可能会“猜测”点(1,1)也属于该集合。
简单应用程序是从两点推导出一条线。
同样的事情在3或实际上是n维。
在3D图形中,它将被使用
答案 3 :(得分:0)
一般定义
插值(在数学中)可以看作是从一个值到另一个值的过渡。插值通常使用0到1范围内的值(例如百分比)。 0是起始值,1是结束值。插值的主要目的是在给定值之间找到值。
插值类型
各种程序中使用了多种插值类型,最常见的是线性插值。这种插值是最简单直接的方法。它用于查找两个点或数字之间的线段中的值。还有:三次插值,二次插值,双线性,三线性等。有关更多信息,请访问此处: https://en.wikipedia.org/wiki/Interpolation。
3D图形中的应用
插值,尤其是线性,双线性和三线性插值,对于计算几何中的片段(几何的纹理和视觉效果),混合体积纹理,mip映射(对纹理的景深效果)和照明(如虚幻引擎的体积光照贴图)。插值的结果可能会有所不同,但可能会产生非常实际的结果。这是一个相当大的计算,尤其是当插值在3维或更高(超空间)时。
插值示例
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
///////////////////////////////