若区域与多边形为下面的四种情况, 不必再做进一步的分割,可直接绘制。 1.所有的多边形与区域分离,所以在区 域内只需显示背景值。 2.只有一个相交的多边形,或者只有一 个被包含的多边形。这时可以对区域首先 填充背景值,然后对多边形进行扫描转换。 在某些显示设备上,将整个帧缓冲存储器 都初始化为背景值,可能更为方便。对于 相交的多边形,只是被包含的部分被扫描 转换
若区域与多边形为下面的四种情况, 不必再做进一步的分割,可直接绘制。 1. 所有的多边形与区域分离,所以在区 域内只需显示背景值。 2. 只有一个相交的多边形,或者只有一 个被包含的多边形。这时可以对区域首先 填充背景值,然后对多边形进行扫描转换。 在某些显示设备上,将整个帧缓冲存储器 都初始化为背景值,可能更为方便。对于 相交的多边形,只是被包含的部分被扫描 转换
3. 只有一个包围的多边形,无其它的多 边形。整个区域填充该多边形的象素值。 4.有多于一个的包围的、相交的或被包 围的多边形,且至少有一个包围的多边形。 检查是否能有一个包围的多边形,它位于 所有其它多边形的前面。如果有,就可以 让整个区域都填充为这个多边形的象素值。 具体的检查方法是,对所有的多边形,计 算其所在平面在区域的四个角点的应有深 度,即相应的z坐标,如果有一个包围的 多边形的响应四个z坐标,都小于其它多 边形的对应z坐标,那么这个包围的多边 形就位于所有其它多边形的前面
3. 只有一个包围的多边形,无其它的多 边形。整个区域填充该多边形的象素值。 4. 有多于一个的包围的、相交的或被包 围的多边形,且至少有一个包围的多边形。 检查是否能有一个包围的多边形,它位于 所有其它多边形的前面。如果有,就可以 让整个区域都填充为这个多边形的象素值。 具体的检查方法是,对所有的多边形,计 算其所在平面在区域的四个角点的应有深 度,即相应的z坐标,如果有一个包围的 多边形的响应四个z坐标,都小于其它多 边形的对应z坐标,那么这个包围的多边 形就位于所有其它多边形的前面
区域经过分割变小以后,只需要考虑 包含的多边形和相交的多边形的变化。 因为分离的或包围的多边形,对变小 的区域,仍然保持是分离的或包围的。分 割进行到达到显示设备的分辨能力之后就 可以停止,即最小的区域可以是显示表面 上的一个象素单位。如果在做了准备做的 最大数目的分割之后,仍然不能做出应该 如何填充的决定,那么,就计算所有有关 多边形在这个不可再分区域对应的点的范 围的中心处的z坐标值,取z坐标最小的多 边形象素值填充这个区域
区域经过分割变小以后,只需要考虑 包含的多边形和相交的多边形的变化。 因为分离的或包围的多边形,对变小 的区域,仍然保持是分离的或包围的。分 割进行到达到显示设备的分辨能力之后就 可以停止,即最小的区域可以是显示表面 上的一个象素单位。如果在做了准备做的 最大数目的分割之后,仍然不能做出应该 如何填充的决定,那么,就计算所有有关 多边形在这个不可再分区域对应的点的范 围的中心处的z坐标值,取z坐标最小的多 边形象素值填充这个区域
Wanock首先提出的最初的区 域分割算法是每次把区域分成四 个正方形。下图所示是对一个投 影是一个三角形和一个长方体的 场景,做了5次区域分割的情形, 其中区域内标出的数字,表示可 以作出决定的前面所说的四种情 形中的哪一种。没有标出数字的 区域是还不能做出决定
Wanock首先提出的最初的区 域分割算法是每次把区域分成四 个正方形。下图所示是对一个投 影是一个三角形和一个长方体的 场景,做了5次区域分割的情形, 其中区域内标出的数字,表示可 以作出决定的前面所说的四种情 形中的哪一种。没有标出数字的 区域是还不能做出决定
区域分割不一定总是等分,当区域内有多 边形的顶点时,可以按照顶点位置来做分割, 这样显然可以少做一些分割。 2 2 2 B 围绕多边形顶 2 点分割(先是 2 2 A,后是B)
区域分割不一定总是等分,当区域内有多 边形的顶点时,可以按照顶点位置来做分割, 这样显然可以少做一些分割。 围绕多边形顶 点分割(先是 A,后是B)