【问题标题】:Mapping of 3d point to face of Platonic (Archimedian) Solid柏拉图式(阿基米德)实体的 3d 点到面的映射
【发布时间】:2013-03-04 01:41:09
【问题描述】:

我想计算得到的柏拉图(或者可能是阿基米德)实体的表面网格,并为每个面应用置换贴图。网格应显示位移图的精细细节,并且是水密和多方面的(用于 3D 打印)。

为此,我考虑过使用 CGALs 隐式函数 3d 曲面网格器。然后我会将每个体素点映射到相应的面部,应用从体素空间到面部的坐标系变换并查找面部的高度场。我知道如何为每个人脸构建变换矩阵,所以我想到了以下算法来测试实体中是否包含体素:

  1. 找到离点A最近的人脸
    • 对于给定的点 A,通过迭代所有顶点并比较与 A 的距离,找到柏拉图(阿基米德)立体的最近 3 个顶点
    • 根据顶点数组中最小的索引对3个顶点进行排序
    • 从顶点索引中构建一个整数(字典索引):(v[0]nn+v[1]*n+v[3]*1) 其中 n 是顶点数
    • 迭代一个元组数组(字典索引,人脸)并找到具有相同字典索引的人脸
  2. 每个面都有一个预先计算的变换矩阵和一个高度场。应用变换矩阵并查找高度场以了解 A 是在实体内部还是外部

我想有更好的解决方案,尤其是寻找合适的面孔?另一种方法可能是不使用表面网格器,而是从面中构建表面:获取每个面的位移图并将变换矩阵应用于它以构建实体,但是我需要简化每个面网格并将它们合并不知何故,结果是无懈可击的和多方面的(如果置换贴图具有某些值,则面应该支持孔),所以我认为基于体素的隐式函数方法是最通用的工具。

【问题讨论】:

    标签: mesh surface cgal voxel


    【解决方案1】:

    基于体素的方法并不成功:对于许多伪像,对于低分辨率。最后我创建了二维高度图,对其应用简化算法,然后将它们投影到实体的面上,最后通过自定义算法将面网格合并为一个网格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 2019-07-29
      • 2013-03-26
      • 1970-01-01
      • 2021-10-14
      相关资源
      最近更新 更多