【问题标题】:Is there a way to reproject/interpolate vertex colors with OpenMesh?有没有办法用 OpenMesh 重新投影/插入顶点颜色?
【发布时间】:2019-05-20 11:07:24
【问题描述】:

我正在使用 OpenMesh 重新划分/管理一些网格对象。 使用 OpenFlipper 的 subdivide/decimate/smooth 和其他工具,我可以更改网格拓扑。

然而,这会导致顶点颜色失去其意义,因为新顶点都将具有黑色,并且在网格拓扑发生变化时没有插值,从而导致视觉伪影。

有没有办法告诉 OpenMesh 将顶点颜色重新投影回旧网格以插入顶点颜色? 如果没有,手动执行此操作的好方法是什么?顶点反投影是否有最先进的技术?

【问题讨论】:

    标签: openmesh


    【解决方案1】:

    在使用 requestTriangleBsp() 的 OpenFlipper 中,您可以为原始网格对象请求 BSP 树。 (只要您想使用该 BSP 树,您就必须保留原始网格的副本。)当您想将一个点投影到原始网格上时,您可以使用 BSP 树上的nearest() 成员函数为了获得最接近提供点的面。之后,只需将您的点投影到该面上,计算重心坐标并插入顶点颜色即可。

    【讨论】:

    • 让我开心。像魅力一样工作。
    【解决方案2】:

    我认为您想获取输出网格的以下信息:VertexInfo = {origin face id, barycentric coordinate}。您可以将顶点投影到原始网格以计算 VertexInfo。但是,不建议从几何信息计算拓扑信息。只是认为您有一个几乎平坦的盒子网格,我认为您无法通过重新投影获得正确的 VertexInfo。获取 VertexInfo 的最佳方法是通过拓扑信息在每个具体命令中计算它,就像你提到的细分/抽取等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多