在 3D 网格上模拟量化时存在孔洞
Presence of Holes while simulating Quantification on 3D Meshes
我正在使用 3D 网格的数据库,这些网格已因 3D 坐标的量化而失真。我的问题是为什么这些 3D 网格中有孔?你能深入解释一下吗,因为我不熟悉量化。 (我只知道二维图像中的量化允许为我们正在采样的信号的一部分分配一个数字(符号))。
如果你的网格制作正确,那么你在量化后应该不会有任何漏洞。至多,你的一些三角形可能会重复使用单个顶点,这将使它们的面积 = 0.
如果出现孔洞,则可能是几何本身有问题,我想到了两种情况:
您可能有两个多边形,看起来它们共享一个顶点或边(例如两堵墙之间的角),但实际上它们的端点略有不同。其中一个可能以 2.499 结束,另一个以 2.501 开始。在量化之前,误差太小以至于无法注意到,但在量化之后,您最终会看到一堵墙从 2.0 开始,另一堵墙从 3.0 开始。
另一个在 3D 模型中经常出现的问题是当一个多边形与另一个多边形接触时,但它们不共享顶点。换句话说 - 第一个多边形的顶点位于第二个多边形的边缘上。把它想象成一面墙和靠近墙的一张桌子,当桌子接触墙壁但它们不共享一个顶点时。如果你量化这样的模型,你可能会得到一个网格,当墙上的触摸点(在两个量化端之间插值)与桌子上的点(单独量化)不匹配时。这也可能会给您的网格带来漏洞。这个问题的解决方案是在接触点处分割一堵墙,使其由几个多边形组成,这些多边形实际上与墙共享一个或多个顶点。
我现在不能画图,我知道很难用文字来解释,但我希望这个描述可以。如果您仍然无法理解这一点,我可能会尝试举一些例子,让我知道。
编辑:
量化只是一个过程,您将一些数值转换为更小数量的可能数值,例如将 float
转换为 int
或将价格四舍五入为 10 美分硬币……就是这么简单您可以将其应用于任何数值。
让您难以理解的是,您对 mesh - image 类比做出了错误的假设。请记住,典型的网格是基于矢量的,而位图图像是基于光栅的。
2D 光栅图像的 3D 类比是 3D 光栅图像 - 就像 3D 纹理,我们有时称它为体素(来自体积像素)。
另一方面,3D 网格的 2D 类比是矢量图像,如 SVG。
在基于栅格的数据中,您有一个像素网格,每个像素都有一些值,如颜色、亮度等;在基于矢量的数据中,您有单独的顶点,它们具有位置、uv、法线等值,所有这些数字都可以量化。
您也可以多次量化值,以获得不同数量的结果值。假设你的数码相机有 10 位 CCD,它在你拍照时首先进行量化,然后这些数据需要保存为 jpeg,它支持每通道 8 位,然后你将它转换为 gif,它只支持 256颜色等。每次您对数据进行另一次量化时。
我正在使用 3D 网格的数据库,这些网格已因 3D 坐标的量化而失真。我的问题是为什么这些 3D 网格中有孔?你能深入解释一下吗,因为我不熟悉量化。 (我只知道二维图像中的量化允许为我们正在采样的信号的一部分分配一个数字(符号))。
如果你的网格制作正确,那么你在量化后应该不会有任何漏洞。至多,你的一些三角形可能会重复使用单个顶点,这将使它们的面积 = 0.
如果出现孔洞,则可能是几何本身有问题,我想到了两种情况:
您可能有两个多边形,看起来它们共享一个顶点或边(例如两堵墙之间的角),但实际上它们的端点略有不同。其中一个可能以 2.499 结束,另一个以 2.501 开始。在量化之前,误差太小以至于无法注意到,但在量化之后,您最终会看到一堵墙从 2.0 开始,另一堵墙从 3.0 开始。
另一个在 3D 模型中经常出现的问题是当一个多边形与另一个多边形接触时,但它们不共享顶点。换句话说 - 第一个多边形的顶点位于第二个多边形的边缘上。把它想象成一面墙和靠近墙的一张桌子,当桌子接触墙壁但它们不共享一个顶点时。如果你量化这样的模型,你可能会得到一个网格,当墙上的触摸点(在两个量化端之间插值)与桌子上的点(单独量化)不匹配时。这也可能会给您的网格带来漏洞。这个问题的解决方案是在接触点处分割一堵墙,使其由几个多边形组成,这些多边形实际上与墙共享一个或多个顶点。
我现在不能画图,我知道很难用文字来解释,但我希望这个描述可以。如果您仍然无法理解这一点,我可能会尝试举一些例子,让我知道。
编辑:
量化只是一个过程,您将一些数值转换为更小数量的可能数值,例如将 float
转换为 int
或将价格四舍五入为 10 美分硬币……就是这么简单您可以将其应用于任何数值。
让您难以理解的是,您对 mesh - image 类比做出了错误的假设。请记住,典型的网格是基于矢量的,而位图图像是基于光栅的。 2D 光栅图像的 3D 类比是 3D 光栅图像 - 就像 3D 纹理,我们有时称它为体素(来自体积像素)。 另一方面,3D 网格的 2D 类比是矢量图像,如 SVG。
在基于栅格的数据中,您有一个像素网格,每个像素都有一些值,如颜色、亮度等;在基于矢量的数据中,您有单独的顶点,它们具有位置、uv、法线等值,所有这些数字都可以量化。
您也可以多次量化值,以获得不同数量的结果值。假设你的数码相机有 10 位 CCD,它在你拍照时首先进行量化,然后这些数据需要保存为 jpeg,它支持每通道 8 位,然后你将它转换为 gif,它只支持 256颜色等。每次您对数据进行另一次量化时。