Advertisement

源码分析学习笔记(11)——半边结构

阅读量:

2021SC@SDUSC
Dust3D在网格无缝缝合时使用了半边数据结构存储相关数据。

一种常用的方法就是通过创建并维护共享的顶点列表和面的列表来实现对多边形网格进行有效表示。这种方法在许多情况下都非常实用和高效,在图形处理和三维建模等领域表现出色;然而,在某些特定的应用场景中可能会因为复杂度较高而导致效率较低的情况出现

举个例子来说,在网格简化过程中通常会将一条边收缩为一个顶点节点。该操作要求移除与其相连的所有面对象,并更新相关顶点信息以反映这些变化。为了完成这种多边形手术过程我们需要明确各组件间的关联情况比如面对应的顶点等信息。当然我们可以利用之前介绍过的某种网格表示方法来实现这一简化过程但这样做会带来较高的计算成本因为通常情况下我们需要遍历所有相关的面或点对象来进行处理。

在一个多边形网格上其他类型的的临近查询包括:

  • 哪一边连接了这个点
  • 哪一边连接了这个点
  • 哪个面相邻于这条边
  • 哪条边相邻于这个面
  • 哪个面相邻于这条边

为了解决这些邻近查询的有效性问题,在开发出了一个更为精细的边界表示方案(b-reps)的基础上,并非只是简单描述其组成部分,而是更清晰地建模了点、边和面,并将邻近信息也相应存储起来了。

这些表示类型中占据主导地位的是'翼边数据结构'。每条边都包含指向其两个顶点的信息,并提供两个邻接面的相关指针;此外还包含指向从其

全部评论 (0)

还没有任何评论哟~