平滑算法,2.5D
Smoothing algorithm, 2.5D
下图为三角面网格。它的顶点正好在原始 3D 对象的表面上,但直边和面当然在原始表面弯曲处存在一些几何误差,我需要一些算法来估计光滑的原始表面。
详细信息:我有这个表面(的可投影部分)的高度场(一个 2.5D 三角剖分,其中每个 x,y 对都有一个唯一的高度 z),我需要计算任意 x 的高度 z, y 对。例如,图像中光标指向的点的 z 值。
如果是二维问题,我会使用三次样条,但对于曲面,我不确定什么是最佳解决方案。
正如@Darren 所评论的,您需要的是 补丁 。
它可以是双线性补丁或双二次或库恩补丁或其他。
我在快速搜索时没有找到太多参考,但是这个链接:
- 提供概述:http://www.cs.cornell.edu/Courses/cs4620/2013fa/lectures/17surfaces.pdf
- 虽然这更具技术性:https://www.doc.ic.ac.uk/~dfg/graphics/graphics2010/GraphicsHandout05.pdf
概念是您计算沿边的样条曲线(相对于直边段本身的高度函数),然后在由边分隔的曲面内部进行混合。
补丁 os 负责混合,这意味着在任何面内你都有一个高度,它是面内点 pos 坐标和定义在同一张脸的边缘。
据我所知,在四边形网格上使用这种方法非常容易(因为定义在哪些边序列上进行样条曲线变得很容易),但我不确定如果你被迫要如何应用进行实际的三角测量。
下图为三角面网格。它的顶点正好在原始 3D 对象的表面上,但直边和面当然在原始表面弯曲处存在一些几何误差,我需要一些算法来估计光滑的原始表面。
详细信息:我有这个表面(的可投影部分)的高度场(一个 2.5D 三角剖分,其中每个 x,y 对都有一个唯一的高度 z),我需要计算任意 x 的高度 z, y 对。例如,图像中光标指向的点的 z 值。
如果是二维问题,我会使用三次样条,但对于曲面,我不确定什么是最佳解决方案。
正如@Darren 所评论的,您需要的是 补丁 。
它可以是双线性补丁或双二次或库恩补丁或其他。
我在快速搜索时没有找到太多参考,但是这个链接:
- 提供概述:http://www.cs.cornell.edu/Courses/cs4620/2013fa/lectures/17surfaces.pdf
- 虽然这更具技术性:https://www.doc.ic.ac.uk/~dfg/graphics/graphics2010/GraphicsHandout05.pdf
概念是您计算沿边的样条曲线(相对于直边段本身的高度函数),然后在由边分隔的曲面内部进行混合。 补丁 os 负责混合,这意味着在任何面内你都有一个高度,它是面内点 pos 坐标和定义在同一张脸的边缘。
据我所知,在四边形网格上使用这种方法非常容易(因为定义在哪些边序列上进行样条曲线变得很容易),但我不确定如果你被迫要如何应用进行实际的三角测量。