4.2 动态连续三角网
世界空间中的格网是通过对每一个二叉树顶点赋一个世界空间位置w(v)确定的。当任意两个三角形在公用点或者公用边上不重合时,三角形二叉树就形成了连续的格网,这种连续的格网叫做二叉树三角网。
图4显示了二叉树三角网中具有典型相邻关系的三角形T,我们把TB称作共享基边(V0,V1)的基邻居,把TL称作共享左边(Va,V0)的左邻居,把TR称作共享右边(V1,Va)的右邻居。
二叉树三角网的一个重要性质为:邻居既可能来自与T相同的二叉树l层,也可能是较精细的l+1层的左邻居或右邻居,或者是比T更粗糙的l-1层的基邻居。
当T和TB属于同一层l时,我们把对(T,TB)称为一个方块,图4显示了包含方块的三角网的分割和合并过程。分割以后孩子 (T0,T1) 代替了T,而 (TB0,TB1) 则代替了TB。分割操作在方块的中心产生了一个新的结点VC。如果三角形T没有基邻居TB,则只有T进行分割。当T和TB(如果存在TB)的孩子都在同一三角网中时,方块(T,TB)就能够合并。我们把这样的情况称作三角网中可合并的方块。
分割和合并操作的一个重要特征时,三角网可能可以由经过一系列分割和合并操作后产生的三角网确定。
通常使用提供简单的临时邻接形式的顶点来激活分割和合并操作。当时间间隔 时,考虑图4中 (T,TB) 的分割情况。我们可以先不直接把VC移动到新的位置Wc=W(Vc)上,而是根据时间从未分割的基边中点Wm=(W(V0)+W(V1))/2线性的移动,其移动函数为Wa(t)=(1-t)Wm+tWc。合并也可以用同样的方法激活。
当三角形T的基邻居TB来自更粗糙的层次时,它不能直接分割。为了使T强制分割,必须首先使TB强制分割,可以看出,这样将会引起更深层次的递归分割。图5 显示了一个4次分割的情况。
大于一个三角形的基本网格就可以用于表示带有边界的任意类型的曲面。