gpt4 book ai didi

c# - 三角网格的良好数据结构

转载 作者:行者123 更新时间:2023-11-30 16:14:45 25 4
gpt4 key购买 nike

<分区>

我正在为 3D 网格或由三角形组成的面集寻找一种内存高效且方便的数据结构。

目前我正在使用这种“经典”结构:

  • 点列表和三角形列表。
  • 每个点都有一个 X、Y 和 Z 值。
  • 每个三角形都有三个索引i0、i1、i2,分别指向点列表中的一个点。

这是我能想到的最紧凑的布局。如果我只想绘制网格,而不修改或过滤它,那就太完美了。然而它确实使大多数修改网格或生成新的局部网格的操作变得非常繁琐,例如:

  • 删除三角形的效率非常低。
  • 生成一个新网格,该网格仅包含少于 3 个邻居的三角形
  • 查找并删除在给定边界框内有一个或所有点的所有三角形
  • 找到特定角度的所有边
  • 移除所有短于特定长度的边

基本上,任何需要修改网格、迭代边缘或查找相邻面/边缘的东西,都需要生成和丢弃多个临时字典和哈希集。没有简单的方法来遍历单个面的点或边缘,或单个点周围的边缘/面。删除一个点意味着从每个三角形中删除它,然后更改所有三角形中所有其他点的索引值,等等。

是否有没有这些缺点但内存效率高的规范数据结构?

我不是在寻找一个完整的库,只是一个我可以自己实现的结构(尽管了解特定库如何解决这个问题可能会很有趣)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com