JP2682191B2 - エリアシング除去方法およびその装置 - Google Patents
エリアシング除去方法およびその装置Info
- Publication number
- JP2682191B2 JP2682191B2 JP6175490A JP6175490A JP2682191B2 JP 2682191 B2 JP2682191 B2 JP 2682191B2 JP 6175490 A JP6175490 A JP 6175490A JP 6175490 A JP6175490 A JP 6175490A JP 2682191 B2 JP2682191 B2 JP 2682191B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- type
- pixel
- polygon
- determined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
Description
【発明の詳細な説明】 <産業上の利用分野> この発明はエリアシング除去方法(anti−aliasing)
およびその装置に関し、さらに詳細にいえば、矩形領域
における描画対象図形の寄与率に基づいて輝度値を算出
するようにしたエリアシング除去方法およびその装置に
関する。
およびその装置に関し、さらに詳細にいえば、矩形領域
における描画対象図形の寄与率に基づいて輝度値を算出
するようにしたエリアシング除去方法およびその装置に
関する。
<従来の技術、および発明が解決しようとする課題> 従来からグラフィックス表示装置においては表示速度
の高速化および表示品質の向上が強く要求されている。
したがって、ラスター画像においては、エリアシングを
除去することにより画像品質を向上させることが必須に
なる。
の高速化および表示品質の向上が強く要求されている。
したがって、ラスター画像においては、エリアシングを
除去することにより画像品質を向上させることが必須に
なる。
このエリアシングは、生成画像の解像度を上げれば何
ら特別の処理を行なわなくても殆ど除去できるのである
が、解像度を上げればそれだけ計算時間が長くなり、表
示速度の高速化を達成できなくなる。このため、解像度
を特に上げることなくエリアシングを除去し、表示速度
の高速化および品質の向上を達成しようとしている。
ら特別の処理を行なわなくても殆ど除去できるのである
が、解像度を上げればそれだけ計算時間が長くなり、表
示速度の高速化を達成できなくなる。このため、解像度
を特に上げることなくエリアシングを除去し、表示速度
の高速化および品質の向上を達成しようとしている。
従来から採用されているエリアシング除去方法として
は、スーパーサンプリング法およびエリアサンプリング
法がある。このうち、スーパーサンプリング法は、単純
にサンプル点を増加させることによりエリアシングを除
去する方法であり、アルゴリズムが簡単で、しかも適用
が容易であるという利点を有しているが、サンプル点を
増加させればそれだけ計算時間が長くなり、表示速度の
高速化を阻害するという不都合がある。また、サンプル
点を増加させても、第11図に示すように、何れのサンプ
ル点も含まない図形を描画する場合には十分なエリアシ
ング除去を達成できないという不都合がある。また、エ
リアサンプリング法は、画素内の各描画図形の面積に比
例した輝度を該当する画素の輝度とすることによりエリ
アシングを除去する方法であり、スーパーサンプリング
法にみられるようなエリアシング除去の限界があるとい
う不都合はなく、高精度のエリアシング除去を達成でき
る。しかし、隠面処理を考慮した面積計算アルゴリズム
が複雑で、処理時間が長くなり、表示の高速化を阻害し
てしまうという不都合がある。
は、スーパーサンプリング法およびエリアサンプリング
法がある。このうち、スーパーサンプリング法は、単純
にサンプル点を増加させることによりエリアシングを除
去する方法であり、アルゴリズムが簡単で、しかも適用
が容易であるという利点を有しているが、サンプル点を
増加させればそれだけ計算時間が長くなり、表示速度の
高速化を阻害するという不都合がある。また、サンプル
点を増加させても、第11図に示すように、何れのサンプ
ル点も含まない図形を描画する場合には十分なエリアシ
ング除去を達成できないという不都合がある。また、エ
リアサンプリング法は、画素内の各描画図形の面積に比
例した輝度を該当する画素の輝度とすることによりエリ
アシングを除去する方法であり、スーパーサンプリング
法にみられるようなエリアシング除去の限界があるとい
う不都合はなく、高精度のエリアシング除去を達成でき
る。しかし、隠面処理を考慮した面積計算アルゴリズム
が複雑で、処理時間が長くなり、表示の高速化を阻害し
てしまうという不都合がある。
<発明の目的> この発明は上記の問題点に鑑みてなされたものであ
り、高精度のエリアシング除去を達成でき、しかもエリ
アシング除去処理の高速化を達成できる新規なエリアシ
ング除去方法およびその装置を提供することを目的とし
ている。
り、高精度のエリアシング除去を達成でき、しかもエリ
アシング除去処理の高速化を達成できる新規なエリアシ
ング除去方法およびその装置を提供することを目的とし
ている。
<課題を解決するための手段> 上記の目的を達成するための、この発明のエリアシン
グ除去方法は、各画素領域が、隠面処理された場合に表
示されるべき図形として、2種類の図形のみまたは1種
類の図形および背景のみを含んでいるか、1種類の図形
のみを含んでいるか、図形を全く含んでいないか、これ
ら以外かを判別し、これら以外であると判別された場合
には、画素領域を分割して分割された小領域が、2種類
の図形のみまたは1種類の図形および背景のみを含んで
いるか、1種類の図形のみを含んでいるか、図形を全く
含んでいないか、これら以外かを判別し、これら以外で
あると判別された場合には、小領域の分割および判別を
反復し、最終的に得られた、2種類の図形のみまたは1
種類の図形および背景のみを含んでいる画素領域または
小領域におけるポリゴン断片の面積を算出し、算出され
た面積に基づいて画素領域または小領域内における各図
形の面積を算出し、最終的に算出された面積に基づいて
輝度値を算出する方法である。この場合において、ポリ
ゴン断片の面積の算出方法としては、ポリゴン断片の面
積を画素中心または小領域の中心からの描画対象図形の
エッジ・ラインまでの水平距離および/または垂直距離
に基づいて算出する方法であることが好ましい。
グ除去方法は、各画素領域が、隠面処理された場合に表
示されるべき図形として、2種類の図形のみまたは1種
類の図形および背景のみを含んでいるか、1種類の図形
のみを含んでいるか、図形を全く含んでいないか、これ
ら以外かを判別し、これら以外であると判別された場合
には、画素領域を分割して分割された小領域が、2種類
の図形のみまたは1種類の図形および背景のみを含んで
いるか、1種類の図形のみを含んでいるか、図形を全く
含んでいないか、これら以外かを判別し、これら以外で
あると判別された場合には、小領域の分割および判別を
反復し、最終的に得られた、2種類の図形のみまたは1
種類の図形および背景のみを含んでいる画素領域または
小領域におけるポリゴン断片の面積を算出し、算出され
た面積に基づいて画素領域または小領域内における各図
形の面積を算出し、最終的に算出された面積に基づいて
輝度値を算出する方法である。この場合において、ポリ
ゴン断片の面積の算出方法としては、ポリゴン断片の面
積を画素中心または小領域の中心からの描画対象図形の
エッジ・ラインまでの水平距離および/または垂直距離
に基づいて算出する方法であることが好ましい。
上記の目的を達成するための、この発明のエリアシン
グ除去装置は、画素領域または画素領域を分割して得ら
れた小領域を分割する分割手段と、各画素領域または分
割された小領域が、隠面処理された場合に表示されるべ
き図形として、2種類の図形のみまたは1種類の図形お
よび背景のみを含んでいるか、1種類の図形のみを含ん
でいるか、図形を全く含んでいないか、これら以外かを
判別する判別手段と、判別手段においてこれら以外であ
ると判別された場合に、画素領域を分割すべく分割手段
を動作させる分割反復手段と、最終的に得られた、2種
類の図形のみまたは1種類の図形および背景のみを含ん
でいる画素領域または小領域におけるポリゴン断片の面
積を算出する面積算出手段と、算出された面積に基づい
て画素領域または小領域内における各図形の面積を算出
し、最終的に算出された面積に基づいて輝度値を算出す
る輝度値算出手段とを含んでいる。この場合において、
面積算出手段としては、ポリゴン断片の面積を画素中心
または小領域の中心からな描画対象図形のエッジ・ライ
ンまでの水平距離および/または垂直距離に基づいて算
出するものであることが好ましい。
グ除去装置は、画素領域または画素領域を分割して得ら
れた小領域を分割する分割手段と、各画素領域または分
割された小領域が、隠面処理された場合に表示されるべ
き図形として、2種類の図形のみまたは1種類の図形お
よび背景のみを含んでいるか、1種類の図形のみを含ん
でいるか、図形を全く含んでいないか、これら以外かを
判別する判別手段と、判別手段においてこれら以外であ
ると判別された場合に、画素領域を分割すべく分割手段
を動作させる分割反復手段と、最終的に得られた、2種
類の図形のみまたは1種類の図形および背景のみを含ん
でいる画素領域または小領域におけるポリゴン断片の面
積を算出する面積算出手段と、算出された面積に基づい
て画素領域または小領域内における各図形の面積を算出
し、最終的に算出された面積に基づいて輝度値を算出す
る輝度値算出手段とを含んでいる。この場合において、
面積算出手段としては、ポリゴン断片の面積を画素中心
または小領域の中心からな描画対象図形のエッジ・ライ
ンまでの水平距離および/または垂直距離に基づいて算
出するものであることが好ましい。
但し、上記何れの場合においても、2種類の図形のみ
を含む領域または1種類の図形および背景のみを含む領
域であっても、ポリゴンの頂点、自由曲面の曲率が大き
い箇所を含む場合には、これ以外の領域に含めることに
より分割の対象にする。
を含む領域または1種類の図形および背景のみを含む領
域であっても、ポリゴンの頂点、自由曲面の曲率が大き
い箇所を含む場合には、これ以外の領域に含めることに
より分割の対象にする。
<作用> 以上のエリアシング除去方法であれば、各画素領域
が、隠面処理された場合に表示されるべき図形として、
2種類の図形のみまたは1種類の図形および背景のみを
含んでいるか、1種類の図形のみを含んでいるか、図形
を全く含んでいないか、これら以外かを判別手段により
判別できる。そして、これら以外であると判別された場
合にのみ、該当する画素領域を分割手段により分割し、
分割された小領域が2種類の図形のみまたは1種類の図
形および背景のみを含んでいるか、1種類の図形のみを
含んでいるか、図形を全く含んでいないか、これら以外
かを再び判別手段により判別する。この分割および判別
を必要回数だけ反復し、最終的に得られた画素領域また
は小領域におけるポリゴン断片の面積を算出し、算出さ
れた面積に基づいて画素領域または小領域内における各
図形の面積を算出し、最終的に算出された面積に基づい
て輝度値を算出することによりエリアシング除去を達成
する。即ち、画素領域が上記これら以外に該当する場合
にのみ分割を必要回数だけ反復し、最終的に得られた小
領域に含まれる図形の面積の算出および面積に基づく輝
度値の算出を行なうことができ、逆に、図形のみを含ん
でいるか、図形を全く含んでいないかの何れかの場合に
は面積の算出を行なうことなく直ちに輝度値を決定でき
る。したがって、高精度のエリアシング除去を行なった
状態での図形描画を高速に達成できる。
が、隠面処理された場合に表示されるべき図形として、
2種類の図形のみまたは1種類の図形および背景のみを
含んでいるか、1種類の図形のみを含んでいるか、図形
を全く含んでいないか、これら以外かを判別手段により
判別できる。そして、これら以外であると判別された場
合にのみ、該当する画素領域を分割手段により分割し、
分割された小領域が2種類の図形のみまたは1種類の図
形および背景のみを含んでいるか、1種類の図形のみを
含んでいるか、図形を全く含んでいないか、これら以外
かを再び判別手段により判別する。この分割および判別
を必要回数だけ反復し、最終的に得られた画素領域また
は小領域におけるポリゴン断片の面積を算出し、算出さ
れた面積に基づいて画素領域または小領域内における各
図形の面積を算出し、最終的に算出された面積に基づい
て輝度値を算出することによりエリアシング除去を達成
する。即ち、画素領域が上記これら以外に該当する場合
にのみ分割を必要回数だけ反復し、最終的に得られた小
領域に含まれる図形の面積の算出および面積に基づく輝
度値の算出を行なうことができ、逆に、図形のみを含ん
でいるか、図形を全く含んでいないかの何れかの場合に
は面積の算出を行なうことなく直ちに輝度値を決定でき
る。したがって、高精度のエリアシング除去を行なった
状態での図形描画を高速に達成できる。
また、画素領域が上記これら以外の場合に該当する場
合には、画素領域の分割を必要回数だけ反復するので、
分割のための時間がかかるが、分割は比較的簡単に、か
つ高速に達成できるものであるから、分割後に各小領域
毎に面積の算出を行ない、面積に基づいて輝度値の算出
を行なう作業が高速に達成できることと相埃って高精度
のエリアシング除去を高速に達成できる。
合には、画素領域の分割を必要回数だけ反復するので、
分割のための時間がかかるが、分割は比較的簡単に、か
つ高速に達成できるものであるから、分割後に各小領域
毎に面積の算出を行ない、面積に基づいて輝度値の算出
を行なう作業が高速に達成できることと相埃って高精度
のエリアシング除去を高速に達成できる。
但し、上記分割反復回数としては、すべての小領域が
簡単に面積を算出できるようになるまで分割を反復する
ものであることが好ましく、エリアシング除去精度を著
しく高めることができる。但し、グラフィックス表示装
置の操作者が任意に定めた所定の回数であってもよい。
簡単に面積を算出できるようになるまで分割を反復する
ものであることが好ましく、エリアシング除去精度を著
しく高めることができる。但し、グラフィックス表示装
置の操作者が任意に定めた所定の回数であってもよい。
以上の構成のエリアシング除去装置であれば、各画素
領域が、隠面処理された場合に表示されるべき図形とし
て、2種類の図形のみまたは1種類の図形および背景の
みを含んでいるか、1種類の図形のみを含んでいるか、
図形を全く含んでいないか、これら以外かを判別手段に
より判別する。したがって、1種類の図形のみ、または
背景のみを含んでいる画素領域については直ちに該当す
る画素の輝度値を決定することができる。また、2種類
の図形のみ、または1種類の図形および背景のみを含ん
でいる画素領域については、含まれている図形の面積を
算出することにより該当する画素の輝度値を決定するこ
とができる。
領域が、隠面処理された場合に表示されるべき図形とし
て、2種類の図形のみまたは1種類の図形および背景の
みを含んでいるか、1種類の図形のみを含んでいるか、
図形を全く含んでいないか、これら以外かを判別手段に
より判別する。したがって、1種類の図形のみ、または
背景のみを含んでいる画素領域については直ちに該当す
る画素の輝度値を決定することができる。また、2種類
の図形のみ、または1種類の図形および背景のみを含ん
でいる画素領域については、含まれている図形の面積を
算出することにより該当する画素の輝度値を決定するこ
とができる。
また、判別手段においてこれら以外であると判別され
た場合には、分割手段により該当する画素領域を分割
し、分割された小領域が2種類の図形のみまたは1種類
の図形および背景のみを含んでいるか、1種類の図形の
みを含んでいるか、図形を全く含んでいないか、これら
以外かを判別手段により判別する。したがって、1種類
の図形のみを含んでいるか、または図形を全く含んでい
ない小領域については直ちに該当する画素の輝度値を決
定することができ、2種類の図形のみ、または1種類の
図形および背景のみを含んでいる画素領域については、
含まれている図形の面積を算出することにより該当する
画素の輝度値を決定することができる。また、小領域が
上記これら以外である場合には、分割反復手段により、
分割手段による小領域の分割を必要回数だけ反復し、判
別手段により何れの種別の領域であるかを判別する。
た場合には、分割手段により該当する画素領域を分割
し、分割された小領域が2種類の図形のみまたは1種類
の図形および背景のみを含んでいるか、1種類の図形の
みを含んでいるか、図形を全く含んでいないか、これら
以外かを判別手段により判別する。したがって、1種類
の図形のみを含んでいるか、または図形を全く含んでい
ない小領域については直ちに該当する画素の輝度値を決
定することができ、2種類の図形のみ、または1種類の
図形および背景のみを含んでいる画素領域については、
含まれている図形の面積を算出することにより該当する
画素の輝度値を決定することができる。また、小領域が
上記これら以外である場合には、分割反復手段により、
分割手段による小領域の分割を必要回数だけ反復し、判
別手段により何れの種別の領域であるかを判別する。
そして、最終的に得られた画素領域または小領域のう
ち、1種類の図形のみを含んでいる画素領域または小領
域については、特別に面積を算出する必要がなく、直ち
に輝度値を得ることができる。また、上記2種類の図形
のみ、または1種類の図形および背景のみを含んでいる
画素領域または小領域については、面積算出手段により
該当する領域内における図形の面積を算出することがで
き、これら算出された面積に基づいて輝度値算出手段に
より該当する画素の輝度値を算出することができる。し
たがって、最終的に得られた輝度値に基づいて図形を描
画することにより、高精度のエリアシング除去を達成で
き、しかもエリアシング除去を含む描画速度を高速化で
きる。
ち、1種類の図形のみを含んでいる画素領域または小領
域については、特別に面積を算出する必要がなく、直ち
に輝度値を得ることができる。また、上記2種類の図形
のみ、または1種類の図形および背景のみを含んでいる
画素領域または小領域については、面積算出手段により
該当する領域内における図形の面積を算出することがで
き、これら算出された面積に基づいて輝度値算出手段に
より該当する画素の輝度値を算出することができる。し
たがって、最終的に得られた輝度値に基づいて図形を描
画することにより、高精度のエリアシング除去を達成で
き、しかもエリアシング除去を含む描画速度を高速化で
きる。
<実施例> 以下、実施例を示す添付図面によって詳細に説明す
る。
る。
第1図はこの発明のエリアシング除去方法の一実施例
を示すフローチャートであり、ステップにおいて各画
素領域が1種類の図形のみを含んでいるか(第6図
(A)参照。以下、Aタイプと称する)、図形を全く含
んでいないか(第6図(C)参照。以下、Cタイプと称
する)、2種類の図形のみを含んでいるか(第6図
(B)参照)。以下、B1タイプと称する)、これら以外
か(第6図(D)参照。以下、B2タイプと称する)を識
別するとともに、B2タイプの画素領域が存在しているか
否かを判別する。
を示すフローチャートであり、ステップにおいて各画
素領域が1種類の図形のみを含んでいるか(第6図
(A)参照。以下、Aタイプと称する)、図形を全く含
んでいないか(第6図(C)参照。以下、Cタイプと称
する)、2種類の図形のみを含んでいるか(第6図
(B)参照)。以下、B1タイプと称する)、これら以外
か(第6図(D)参照。以下、B2タイプと称する)を識
別するとともに、B2タイプの画素領域が存在しているか
否かを判別する。
このステップにおいて画素領域がB2タイプであると
判別された場合には、ステップにおいて該当する画素
領域を4つの正方形の小領域に分割し、ステップにお
いて各小領域がAタイプか、B1タイプか、B2タイプか、
Cタイプかを識別するとともに、B2タイプの小領域が存
在しているか否かを判別する。そして、B2タイプの小領
域が存在していると判別された場合には、再びステップ
の分割処理を行なう。但し、この判別については、先
ず、Aタイプ、Cタイプの何れかに該当するか否かを判
別しておき、何れにも該当しないと判別された場合にの
みB1タイプか、B2タイプかを判別するようにしてもよ
い。
判別された場合には、ステップにおいて該当する画素
領域を4つの正方形の小領域に分割し、ステップにお
いて各小領域がAタイプか、B1タイプか、B2タイプか、
Cタイプかを識別するとともに、B2タイプの小領域が存
在しているか否かを判別する。そして、B2タイプの小領
域が存在していると判別された場合には、再びステップ
の分割処理を行なう。但し、この判別については、先
ず、Aタイプ、Cタイプの何れかに該当するか否かを判
別しておき、何れにも該当しないと判別された場合にの
みB1タイプか、B2タイプかを判別するようにしてもよ
い。
逆に、ステップまたはステップにおいてB2タイプ
の画素領域または小領域が存在していないと判別された
場合には、ステップにおいて画素領域または小領域内
における図形の面積を算出し、ステップにおいて、算
出された面積に基づいて画素領域内における図形の面積
を算出し、ステップにおいて、ステップにおいて算
出された面積に基づいて該当する画素の輝度値を算出
し、ステップにおいて全ての画素についての処理が終
了したか否かを判別し、終了していなければ再びステッ
プの処理および判別を行なう。逆に、全ての画素につ
いての処理が終了したと判別された場合には、ステップ
において、算出された輝度値に基づく図形の描画を行
なう。但し、上記ステップの処理については、例え
ば、寄与率バッファを予め準備しておいて、小領域毎に
面積を計算する毎に寄与率バッファの内容に加えるよう
にしてもよい。また、図形の描画については、輝度値が
得られた画素を直ちに描画してもよく、このようにすれ
ば、算出された輝度値を保持しておくためのメモリが不
要になる。
の画素領域または小領域が存在していないと判別された
場合には、ステップにおいて画素領域または小領域内
における図形の面積を算出し、ステップにおいて、算
出された面積に基づいて画素領域内における図形の面積
を算出し、ステップにおいて、ステップにおいて算
出された面積に基づいて該当する画素の輝度値を算出
し、ステップにおいて全ての画素についての処理が終
了したか否かを判別し、終了していなければ再びステッ
プの処理および判別を行なう。逆に、全ての画素につ
いての処理が終了したと判別された場合には、ステップ
において、算出された輝度値に基づく図形の描画を行
なう。但し、上記ステップの処理については、例え
ば、寄与率バッファを予め準備しておいて、小領域毎に
面積を計算する毎に寄与率バッファの内容に加えるよう
にしてもよい。また、図形の描画については、輝度値が
得られた画素を直ちに描画してもよく、このようにすれ
ば、算出された輝度値を保持しておくためのメモリが不
要になる。
第2図は第1図のフローチャートのステップの処理
を詳細に示すフローチャートであり、第3図に示すよう
に、画素領域が1×1の正方形領域であり、画素領域の
中心からエッジ・ラインまでのx軸方向距離がdx(但
し、dxは正の数)、y軸方向距離がdyに設定されてあ
る。
を詳細に示すフローチャートであり、第3図に示すよう
に、画素領域が1×1の正方形領域であり、画素領域の
中心からエッジ・ラインまでのx軸方向距離がdx(但
し、dxは正の数)、y軸方向距離がdyに設定されてあ
る。
ステップ〜においてそれぞれdx=0か、0<dx<
0.5か、dx=0.5か、dxが無限大か、0.5<dxかを判別す
る。
0.5か、dx=0.5か、dxが無限大か、0.5<dxかを判別す
る。
そして、ステップにおいてdx=0と判別された場合
には、ステップにおいて、dyの値に拘らず、図形の面
積Sを0.5とする。
には、ステップにおいて、dyの値に拘らず、図形の面
積Sを0.5とする。
ステップにおいて0<dx<0.5と判別された場合に
は、ステップ〜において、それぞれdy=0か、0<
|dy|≦dx/(1+2・dx)か、dx/(1+2・dx)<|dy|
<dx/(1−2・dx)か、dx/(1−2・dx)≦|dy|かを
判別する。そして、ステップにおいてdy=0と判別さ
れた場合には、ステップにおいてS=0.5とし、ステ
ップにおいて0<|dy|≦dx/(1+2・dx)と判別さ
れた場合には、ステップにおいてS=0.5−|dy|と
し、ステップにおいてdx/(1+2・dx)<|dy|<dx/
(1−2・dx)と判別された場合には、ステップにお
いてS=(dx+|dy|−2・dx・|dy|)2/8・dx・|dy|と
し、ステップにおいてdx/(1−2・dx)≦|dy|と判
別された場合には、ステップにおいてS=0.5−|dx|
とする。
は、ステップ〜において、それぞれdy=0か、0<
|dy|≦dx/(1+2・dx)か、dx/(1+2・dx)<|dy|
<dx/(1−2・dx)か、dx/(1−2・dx)≦|dy|かを
判別する。そして、ステップにおいてdy=0と判別さ
れた場合には、ステップにおいてS=0.5とし、ステ
ップにおいて0<|dy|≦dx/(1+2・dx)と判別さ
れた場合には、ステップにおいてS=0.5−|dy|と
し、ステップにおいてdx/(1+2・dx)<|dy|<dx/
(1−2・dx)と判別された場合には、ステップにお
いてS=(dx+|dy|−2・dx・|dy|)2/8・dx・|dy|と
し、ステップにおいてdx/(1−2・dx)≦|dy|と判
別された場合には、ステップにおいてS=0.5−|dx|
とする。
ステップにおいてdx=0.5と判別された場合には、
ステップにおいて、それぞれ0<|dy|<0.25か、
|dy|=0.25か、|dy|>0.25かを判別する。そして、ステ
ップにおいて0<|dy|<0.25と判別された場合には、
ステップにおいてS=0.5−|dy|とし、ステップに
おいて|dy|=0.25と判別された場合には、ステップに
おいてS=0.25とし、ステップにおいて|dy|>0.25と
判別された場合には、ステップにおいてS=0.125・|
dy|とする。
ステップにおいて、それぞれ0<|dy|<0.25か、
|dy|=0.25か、|dy|>0.25かを判別する。そして、ステ
ップにおいて0<|dy|<0.25と判別された場合には、
ステップにおいてS=0.5−|dy|とし、ステップに
おいて|dy|=0.25と判別された場合には、ステップに
おいてS=0.25とし、ステップにおいて|dy|>0.25と
判別された場合には、ステップにおいてS=0.125・|
dy|とする。
ステップにおいてdxが無限大であると判別された場
合には、ステップにおいて、それぞれ|dy|が無限
大であるか、|dy|≧0.5か、|dy|<0.5かを判別する。そ
して、ステップにおいて|dy|が無限大であると判別さ
れた場合には、ステップにおいてS=0とし、ステッ
プにおいて|dy|≧0.5であると判別された場合には、
ステップにおいてS=0とし、ステップにおいて|d
y|<0.5であると判別された場合には、ステップにお
いてS=0.5−|dy|とする。
合には、ステップにおいて、それぞれ|dy|が無限
大であるか、|dy|≧0.5か、|dy|<0.5かを判別する。そ
して、ステップにおいて|dy|が無限大であると判別さ
れた場合には、ステップにおいてS=0とし、ステッ
プにおいて|dy|≧0.5であると判別された場合には、
ステップにおいてS=0とし、ステップにおいて|d
y|<0.5であると判別された場合には、ステップにお
いてS=0.5−|dy|とする。
ステップにおいて0.5<dxと判別された場合には、
ステップにおいて0<|dy|≦dx/(2・dx+1)
か、dx/(2・dx+1)<|dy|<dx/(2・dx−1)か、
|dy|≧dx/(2・dx−1)かを判別する。そして、ステ
ップにおいて0<|dy|≦dx/(2・dx+1)であると
判別された場合には、ステップにおいてS=0.5−|dy
|とし、ステップにおいてdx/(2・dx+1)<|dy|<
dx/(2・dx−1)であると判別された場合には、ステ
ップにおいてS=(dx+|dy|−2・dx・|dy|)2/8・d
x・|dy|とし、ステップにおいて|dy|≧dx/(2・dx−
1)であると判別された場合には、ステップにおいて
S=0とする。
ステップにおいて0<|dy|≦dx/(2・dx+1)
か、dx/(2・dx+1)<|dy|<dx/(2・dx−1)か、
|dy|≧dx/(2・dx−1)かを判別する。そして、ステ
ップにおいて0<|dy|≦dx/(2・dx+1)であると
判別された場合には、ステップにおいてS=0.5−|dy
|とし、ステップにおいてdx/(2・dx+1)<|dy|<
dx/(2・dx−1)であると判別された場合には、ステ
ップにおいてS=(dx+|dy|−2・dx・|dy|)2/8・d
x・|dy|とし、ステップにおいて|dy|≧dx/(2・dx−
1)であると判別された場合には、ステップにおいて
S=0とする。
以上の一連の処理を行なうことにより、簡単に画素領
域内における図形の面積を算出することができる。但
し、上記フローチャートは、図形が画素領域の中心を覆
っていない場合の面積算出動作であるから、図形が画素
領域の中心を覆っている場合には、画素領域の面積から
上記算出された面積を除算すればよい。また、dxが負の
数の場合には、dxの符号を変化させて同様に適用すれば
よい。但し、dxとして絶対値を用いれば、符号を特別に
考慮する必要がなくなるので好ましい。
域内における図形の面積を算出することができる。但
し、上記フローチャートは、図形が画素領域の中心を覆
っていない場合の面積算出動作であるから、図形が画素
領域の中心を覆っている場合には、画素領域の面積から
上記算出された面積を除算すればよい。また、dxが負の
数の場合には、dxの符号を変化させて同様に適用すれば
よい。但し、dxとして絶対値を用いれば、符号を特別に
考慮する必要がなくなるので好ましい。
以上の説明から明らかなように、例えば、第4図に示
すように、画素領域が3つの図形を含んでいる場合であ
っても、3回だけ画素領域を分割することにより、全て
の小領域が、Aタイプか、B1タイプか、Cタイプかにな
るので、第2図に示すフローチャートに基づく処理を施
すことにより各小領域毎の図形の面積を算出することが
できる。したがって、各小領域毎の面積に基づいて元の
画素領域内における各図形の面積を算出し、最終的に算
出された面積に基づいて輝度値を算出することができ
る。
すように、画素領域が3つの図形を含んでいる場合であ
っても、3回だけ画素領域を分割することにより、全て
の小領域が、Aタイプか、B1タイプか、Cタイプかにな
るので、第2図に示すフローチャートに基づく処理を施
すことにより各小領域毎の図形の面積を算出することが
できる。したがって、各小領域毎の面積に基づいて元の
画素領域内における各図形の面積を算出し、最終的に算
出された面積に基づいて輝度値を算出することができ
る。
この輝度値は高精度にエリアシング除去を達成できる
値であるから、全ての画素について算出された輝度値に
基づいて図形を描画するだけでよく、高精度のエリアシ
ング除去および高速描画を達成できる。
値であるから、全ての画素について算出された輝度値に
基づいて図形を描画するだけでよく、高精度のエリアシ
ング除去および高速描画を達成できる。
<実施例2> 第5図はこの発明のエリアシング除去装置の一実施例
を示すブロック図であり、各画素領域または画素領域を
分割して得られた小領域が、図形Aタイプか、B1タイプ
か、B2タイプか、Cタイプかを識別する識別部(2)
と、上記B2タイプに該当する画素領域または小領域の有
無を判別する判別部(3)と、上記2Bタイプの画素領域
または小領域が存在することを示す判別部(3)からの
判別結果に基づいて、上記B2タイプの領域を4分割する
分割部(4)と、上記B2タイプの領域に基づく分割、識
別および判別を反復させるべく分割部(4)および識別
部(2)を必要回数だけ反復動作させる反復制御部
(5)と、上記B2タイプに該当する画素領域が存在しな
いことを示す判別部(3)からの判別結果または必要回
数の反復動作が終了したことに基づいて、最終的に得ら
れた領域における図形の面積を算出する第1面積算出部
(6)と、各領域毎に算出された面積に基づいて画素領
域における各描画図形毎の面積を算出する第2面積算出
部(7)と、各画素領域における描画図形毎の面積に基
づいて輝度値を算出する輝度値算出部(8)とを有して
いる。
を示すブロック図であり、各画素領域または画素領域を
分割して得られた小領域が、図形Aタイプか、B1タイプ
か、B2タイプか、Cタイプかを識別する識別部(2)
と、上記B2タイプに該当する画素領域または小領域の有
無を判別する判別部(3)と、上記2Bタイプの画素領域
または小領域が存在することを示す判別部(3)からの
判別結果に基づいて、上記B2タイプの領域を4分割する
分割部(4)と、上記B2タイプの領域に基づく分割、識
別および判別を反復させるべく分割部(4)および識別
部(2)を必要回数だけ反復動作させる反復制御部
(5)と、上記B2タイプに該当する画素領域が存在しな
いことを示す判別部(3)からの判別結果または必要回
数の反復動作が終了したことに基づいて、最終的に得ら
れた領域における図形の面積を算出する第1面積算出部
(6)と、各領域毎に算出された面積に基づいて画素領
域における各描画図形毎の面積を算出する第2面積算出
部(7)と、各画素領域における描画図形毎の面積に基
づいて輝度値を算出する輝度値算出部(8)とを有して
いる。
尚、上記第1面積算出部(6)における面積算出動作
は、第2図のフローチャートに示すとおりである。
は、第2図のフローチャートに示すとおりである。
上記の構成のエリアシング除去装置の動作は次のとお
りである。
りである。
先ず、識別部(2)により、各画素領域が、Aタイプ
か、B1タイプか、B2タイプか、Cタイプかを識別すると
ともに、判別部(3)によりB2タイプの領域の有無を判
別する。判別部(3)においてB2タイプの領域が存在す
ると判別された場合には、識別部(2)によりB2タイプ
の領域であると識別された画素領域について、分割部
(4)により4分割して第1の小領域を得る。そして、
この4つの第1の小領域について、再び識別部(2)に
より、各第1の小領域が、Aタイプか、B1タイプか、B2
タイプか、Cタイプかを識別するとともに、判別部
(3)によりB2タイプの領域の有無を判別うする。判別
部(3)においてB2タイプの領域が存在すると判別され
た場合には、反復制御部(5)により、上記分割部
(4)、識別部(2)および判別部(3)を動作させる
ことにより第1の小領域をさらに分割し、同様の識別お
よび判別を行なう。この分割部(4)、識別部(2)お
よび判別部(3)の反復動作は、上記B2タイプの領域が
存在しなくなったと判別されるまで、または予め設定さ
れた反復回数に達するまで反復される。したがって、最
終的に得られる領域の殆どは、Aタイプ、B1タイプおよ
びCタイプの何れかの領域になる。
か、B1タイプか、B2タイプか、Cタイプかを識別すると
ともに、判別部(3)によりB2タイプの領域の有無を判
別する。判別部(3)においてB2タイプの領域が存在す
ると判別された場合には、識別部(2)によりB2タイプ
の領域であると識別された画素領域について、分割部
(4)により4分割して第1の小領域を得る。そして、
この4つの第1の小領域について、再び識別部(2)に
より、各第1の小領域が、Aタイプか、B1タイプか、B2
タイプか、Cタイプかを識別するとともに、判別部
(3)によりB2タイプの領域の有無を判別うする。判別
部(3)においてB2タイプの領域が存在すると判別され
た場合には、反復制御部(5)により、上記分割部
(4)、識別部(2)および判別部(3)を動作させる
ことにより第1の小領域をさらに分割し、同様の識別お
よび判別を行なう。この分割部(4)、識別部(2)お
よび判別部(3)の反復動作は、上記B2タイプの領域が
存在しなくなったと判別されるまで、または予め設定さ
れた反復回数に達するまで反復される。したがって、最
終的に得られる領域の殆どは、Aタイプ、B1タイプおよ
びCタイプの何れかの領域になる。
これら最終的に得られた領域のそれぞれ(1画素領域
を構成する領域のそれぞれ)について第1面積算出部
(6)において各図形の面積が算出され(但し、B2タイ
プの領域については、例えば領域の面積の1/2を図形の
面積とし)、第2面積算出部(7)において該当する画
素領域における各図形の総面積が算出されるので、各図
形の総面積に基づいて輝度値算出部(8)において該当
する画素領域の輝度値を算出することができる。但し、
第2面積算出部(7)として寄与率バッファを予め準備
しておき、第1面積算出部(6)における面積算出動作
が1回行なわれる毎に算出された面積を寄与率バッファ
に加えるようにしておくこともでき、この場合には、両
面積算出部(6)(7)における面積算出動作がほぼ並
行して行なわれるので、所要時間を短縮できる。
を構成する領域のそれぞれ)について第1面積算出部
(6)において各図形の面積が算出され(但し、B2タイ
プの領域については、例えば領域の面積の1/2を図形の
面積とし)、第2面積算出部(7)において該当する画
素領域における各図形の総面積が算出されるので、各図
形の総面積に基づいて輝度値算出部(8)において該当
する画素領域の輝度値を算出することができる。但し、
第2面積算出部(7)として寄与率バッファを予め準備
しておき、第1面積算出部(6)における面積算出動作
が1回行なわれる毎に算出された面積を寄与率バッファ
に加えるようにしておくこともでき、この場合には、両
面積算出部(6)(7)における面積算出動作がほぼ並
行して行なわれるので、所要時間を短縮できる。
したがって、その後は、全ての画素領域についての輝
度値が得られたことを条件として描画を行なえばよく、
高品質のエリアシング除去を達成できる。但し、輝度値
が得られ毎に該当する画素を描画してもよく、全画素の
輝度値を保持しておくためのメモリを不要にできる。ま
た、面積算出動作が比較的簡単であるとともに、領域分
割処理も比較的簡単であり、しかも一部の画素領域につ
いてのみ領域分割を行なえばよいのであるから、エリア
シング除去のための所要時間を従来のエリアサンプリン
グ法と比較して大巾に短縮できる。
度値が得られたことを条件として描画を行なえばよく、
高品質のエリアシング除去を達成できる。但し、輝度値
が得られ毎に該当する画素を描画してもよく、全画素の
輝度値を保持しておくためのメモリを不要にできる。ま
た、面積算出動作が比較的簡単であるとともに、領域分
割処理も比較的簡単であり、しかも一部の画素領域につ
いてのみ領域分割を行なえばよいのであるから、エリア
シング除去のための所要時間を従来のエリアサンプリン
グ法と比較して大巾に短縮できる。
<実施例3> 第7図はこの発明のエリアシング除去方法の他の実施
例を示すフローチャートであり、上記実施例と大きく異
なる点はこの実施例がスキャン・ラインZバッファ法に
エリアシング除去方法を適用した点のみである。
例を示すフローチャートであり、上記実施例と大きく異
なる点はこの実施例がスキャン・ラインZバッファ法に
エリアシング除去方法を適用した点のみである。
第7図(A)はこの実施例において適用されるスキャ
ン・ラインZバッファ法を示すフローチャートであり、
従来のスキャン・ラインZバッファ・アルゴリズムと同
様に透視変換後、ポリゴン頂点が1画素1頂点に変換さ
れたポリゴンのデータ{このデータは、従来のスキャン
・ラインZバッファ法においても必要なエッジ・ライン
のy方向の高さ、x方向の長さおよびエッジ・ラインの
傾きdx/dyの他に、エッジ・ラインに関して上下左右何
れの側がポリゴン内部であるかを示す情報、スキャン・
ライン・エリアの領域下境界線との交点(crossx)、頂
点であるか否かを示す情報、ポリゴンの傾き(何れの側
が最も手前であるか)を示す情報、分割を行なうことな
く処理できるB1タイプのポリゴンである場合に何れのエ
ッジ・ラインであるかを示す情報およびポリゴンの平面
方程式の係数を含む}に基づいて、ステップにおい
て、ポリゴン頂点から縦(y)方向におけるポリゴン侵
入テーブルを作成する。したがって、このポリゴン侵入
テーブルを参照すれば、現在のスキャン・ライン・エリ
ア(y座標値)へ初めて侵入するポリゴンを認識でき
る。次いで、ステップにおいて、縦ループ中での横
(x)方向のポリゴン侵入テーブルを作成する。具体的
には、従来のスキャン・ラインZバッファ法では、プレ
ゼンハム・アルゴリズムに基づいてポリゴンの侵入テー
ブルを作成するのであるが、この実施例においては、ポ
リゴンのエッジ・ラインの傾きdx/dyを用いてx座標値
をインクリメントした際、エッジ・ラインが次のスキャ
ン・ライン内のいくつかの連続した画素領域を通過する
場合に、これらの画素のうち、ポリゴンに対して最も外
側のx座標側(エッジ・ラインの傾きによっては、スキ
ャン・ライン・エリアの領域上境界線との交点になり、
または領域下境界線との交点になる)をポリゴン侵入テ
ーブルにエントリーするようにしている。
ン・ラインZバッファ法を示すフローチャートであり、
従来のスキャン・ラインZバッファ・アルゴリズムと同
様に透視変換後、ポリゴン頂点が1画素1頂点に変換さ
れたポリゴンのデータ{このデータは、従来のスキャン
・ラインZバッファ法においても必要なエッジ・ライン
のy方向の高さ、x方向の長さおよびエッジ・ラインの
傾きdx/dyの他に、エッジ・ラインに関して上下左右何
れの側がポリゴン内部であるかを示す情報、スキャン・
ライン・エリアの領域下境界線との交点(crossx)、頂
点であるか否かを示す情報、ポリゴンの傾き(何れの側
が最も手前であるか)を示す情報、分割を行なうことな
く処理できるB1タイプのポリゴンである場合に何れのエ
ッジ・ラインであるかを示す情報およびポリゴンの平面
方程式の係数を含む}に基づいて、ステップにおい
て、ポリゴン頂点から縦(y)方向におけるポリゴン侵
入テーブルを作成する。したがって、このポリゴン侵入
テーブルを参照すれば、現在のスキャン・ライン・エリ
ア(y座標値)へ初めて侵入するポリゴンを認識でき
る。次いで、ステップにおいて、縦ループ中での横
(x)方向のポリゴン侵入テーブルを作成する。具体的
には、従来のスキャン・ラインZバッファ法では、プレ
ゼンハム・アルゴリズムに基づいてポリゴンの侵入テー
ブルを作成するのであるが、この実施例においては、ポ
リゴンのエッジ・ラインの傾きdx/dyを用いてx座標値
をインクリメントした際、エッジ・ラインが次のスキャ
ン・ライン内のいくつかの連続した画素領域を通過する
場合に、これらの画素のうち、ポリゴンに対して最も外
側のx座標側(エッジ・ラインの傾きによっては、スキ
ャン・ライン・エリアの領域上境界線との交点になり、
または領域下境界線との交点になる)をポリゴン侵入テ
ーブルにエントリーするようにしている。
同図(B)は以上のようにして作成されたポリゴン侵
入テーブルを用いてエリアシング除去を行なう方法を示
すフローチャートであり、ステップにおいて縦方向の
ポリゴン侵入テーブルをサーチしてポリゴンが存在する
か否かを判別し、ポリゴンが存在すると判別された場合
には、ステップにおいて横方向のポリゴン侵入テーブ
ルをサーチしてポリゴンが存在するか否かを判別し、ス
テップにおいてもポリゴンが存在すると判別された場
合には、ステップにおいてポリゴンをポリゴン・テー
ブルに格納し、ステップにおいてポリゴン・テーブル
のポリゴンに対して、上記実施例と同様に画素領域内に
おける各図形の面積を算出してエリアシング除去処理を
施し、ステップにおいてx座標値をインクリメント
し、ステップにおいてx座標値が限界値(描画範囲に
おけるx座標値の最大値)か否かを判別し、限界値でな
ければ、ステップにおいてポリゴン・テーブルを更新
して再びステップの処理を行なう。また、上記ステッ
プにおいてポリゴンが存在しないと判別された場合に
は、ステップにおいてx座標値をインクリメントし、
再びステップの処理を行なう。
入テーブルを用いてエリアシング除去を行なう方法を示
すフローチャートであり、ステップにおいて縦方向の
ポリゴン侵入テーブルをサーチしてポリゴンが存在する
か否かを判別し、ポリゴンが存在すると判別された場合
には、ステップにおいて横方向のポリゴン侵入テーブ
ルをサーチしてポリゴンが存在するか否かを判別し、ス
テップにおいてもポリゴンが存在すると判別された場
合には、ステップにおいてポリゴンをポリゴン・テー
ブルに格納し、ステップにおいてポリゴン・テーブル
のポリゴンに対して、上記実施例と同様に画素領域内に
おける各図形の面積を算出してエリアシング除去処理を
施し、ステップにおいてx座標値をインクリメント
し、ステップにおいてx座標値が限界値(描画範囲に
おけるx座標値の最大値)か否かを判別し、限界値でな
ければ、ステップにおいてポリゴン・テーブルを更新
して再びステップの処理を行なう。また、上記ステッ
プにおいてポリゴンが存在しないと判別された場合に
は、ステップにおいてx座標値をインクリメントし、
再びステップの処理を行なう。
また、上記ステップにおいてポリゴンが存在しない
と判別された場合、またはステップにおいてx座標値
が限界値であると判別された場合には、ステップにお
いてy座標値をインクリメントし、ステップにおいて
y座標値が限界値(描画範囲におけるy座標値の最大
値)であるか否かを判別し、限界値でないと判別された
場合には、ステップにおいて横方向のポリゴン侵入テ
ーブルを更新し、ステップにおいてポリゴン・テーブ
ルを更新して再びステップの処理を行なう。逆に、上
記ステップにおいてy座標値が限界値であると判別さ
れた場合には、そのまま一連の処理を終了する。
と判別された場合、またはステップにおいてx座標値
が限界値であると判別された場合には、ステップにお
いてy座標値をインクリメントし、ステップにおいて
y座標値が限界値(描画範囲におけるy座標値の最大
値)であるか否かを判別し、限界値でないと判別された
場合には、ステップにおいて横方向のポリゴン侵入テ
ーブルを更新し、ステップにおいてポリゴン・テーブ
ルを更新して再びステップの処理を行なう。逆に、上
記ステップにおいてy座標値が限界値であると判別さ
れた場合には、そのまま一連の処理を終了する。
同図(C1)は同図(B)のステップの処理を詳細に
示すフローチャートであり、ステップにおいて画素領
域におけるポリゴン断片がAタイプか、Bタイプか、C
タイプかを識別し、Aタイプであれば、ステップにお
いて画素領域に含まれるポリゴン断片のz値の最小値z
min(左手系の場合であり、視点に最も近いz値であ
る)および最大値z maxを算出する。この両値z min,z m
axの算出は、上記ポリゴンの傾き情報に基づいて得るこ
とができ、画素領域の1つの隅がz min、対角側の隅がz
maxとなるので、簡単に両値z min,z maxを算出するこ
とができる。また、Bタイプであれば、ステップにお
いて、画素領域に含まれるポリゴン断片のz値の最小値
z minを算出する。そして、ステップにおいてCタイ
プであると判別された場合、またはステップあるいは
ステップの処理を行なった後は、ステップにおいて
全てのポリゴン断片についての処理が終了したか否かを
判別し、処理が終了していないポリゴン断片が存在すれ
ば、再びステップの処理を行なう。
示すフローチャートであり、ステップにおいて画素領
域におけるポリゴン断片がAタイプか、Bタイプか、C
タイプかを識別し、Aタイプであれば、ステップにお
いて画素領域に含まれるポリゴン断片のz値の最小値z
min(左手系の場合であり、視点に最も近いz値であ
る)および最大値z maxを算出する。この両値z min,z m
axの算出は、上記ポリゴンの傾き情報に基づいて得るこ
とができ、画素領域の1つの隅がz min、対角側の隅がz
maxとなるので、簡単に両値z min,z maxを算出するこ
とができる。また、Bタイプであれば、ステップにお
いて、画素領域に含まれるポリゴン断片のz値の最小値
z minを算出する。そして、ステップにおいてCタイ
プであると判別された場合、またはステップあるいは
ステップの処理を行なった後は、ステップにおいて
全てのポリゴン断片についての処理が終了したか否かを
判別し、処理が終了していないポリゴン断片が存在すれ
ば、再びステップの処理を行なう。
上記ステップにおいて全てのポリゴン段本について
の処理が終了したと判別された場合には、ステップに
おいてAタイプのポリゴン断片の奥側に位置するポリゴ
ン断片を全て処理の対象から外し、ステップにおい
て、処理の対象となっている全てのポリゴン断片を考慮
して領域がAタイプか、Cタイプか、これら以外のタイ
プ(以下、Bタイプと称する)かを識別する。そして、
Aタイプであると判別された場合には、ステップにお
いて該当する領域の面積を算出する。また、Bタイプで
あると判別された場合には、ステップにおいて処理可
能であるか否か、即ち、B1タイプであるかB2タイプであ
るかを判別し、B2タイプであると判別された場合には、
ステップにおいて領域を分割し、分割した各小領域に
ついてステップの識別を行なう。また、ステップに
おいてB1タイプであると判別された場合には、ステップ
において、該当する領域に含まれるポリゴン断片の面
積を算出する。
の処理が終了したと判別された場合には、ステップに
おいてAタイプのポリゴン断片の奥側に位置するポリゴ
ン断片を全て処理の対象から外し、ステップにおい
て、処理の対象となっている全てのポリゴン断片を考慮
して領域がAタイプか、Cタイプか、これら以外のタイ
プ(以下、Bタイプと称する)かを識別する。そして、
Aタイプであると判別された場合には、ステップにお
いて該当する領域の面積を算出する。また、Bタイプで
あると判別された場合には、ステップにおいて処理可
能であるか否か、即ち、B1タイプであるかB2タイプであ
るかを判別し、B2タイプであると判別された場合には、
ステップにおいて領域を分割し、分割した各小領域に
ついてステップの識別を行なう。また、ステップに
おいてB1タイプであると判別された場合には、ステップ
において、該当する領域に含まれるポリゴン断片の面
積を算出する。
そして、ステップにおいてCタイプであると識別さ
れた場合、またはステップあるいはステップの処理
を行なった場合には、ステップにおいて未処理の領域
が存在しているか否かを判別し、未処理の領域が存在し
ている場合には、再びステップの識別を行なう。逆
に、未処理の領域が存在していないと判別された場合に
は、ステップにおいて、既に算出された面積に基づい
て輝度値を算出して描画処理を行なう。
れた場合、またはステップあるいはステップの処理
を行なった場合には、ステップにおいて未処理の領域
が存在しているか否かを判別し、未処理の領域が存在し
ている場合には、再びステップの識別を行なう。逆
に、未処理の領域が存在していないと判別された場合に
は、ステップにおいて、既に算出された面積に基づい
て輝度値を算出して描画処理を行なう。
尚、この反復回数は予め定められていてもよく、また
は処理可能でないB2タイプの領域が存在しなくなるまで
反復するようにしてあってもよい。
は処理可能でないB2タイプの領域が存在しなくなるまで
反復するようにしてあってもよい。
但し、上記Bタイプの場合には、画素領域の一部のみ
にポリゴンが存在するので、簡単には両値z min,z max
を算出することができない。この不都合を解消するため
に、ステップの処理を行なう前に以下の一連の処理を
行なってテーブル(z min,z max候補テーブル)を作成
しておき、このテーブルの内容に基づいてAタイプか、
Bタイプか、Cタイプかの判別を行なうとともに、z mi
n,z maxを算出するようにしている。即ち、同図(C2)
のフローチャートに示すように、ステップにおいて、
エッジ・ラインの、スキャン・ライン・エリアの領域下
境界線との交点(Lcx)領域上境界線との交点(Ucx)、
画素領域の左境界線(x座標値がxL)との交点、右境界
線(x座標値がxR)との交点、画素領域の隅の情報(例
えば、第7図(D)に示すように、0,1,2,3の隅として
割り当てているが、上記テーブルにおいては、隅0,1,3,
2の順に割り当てている)および画素領域の中心の情報
を含むテーブル(第7図(E1)(E2)参照)を作成す
る。但し、Ucx1,Ucx2は共にスキャン・ライン・エリア
領域の上境界線との交点の存在を示すビットであるが、
Ucx1はエッジ・ラインの右側がポリゴン内部である場合
に、Ucx2は左側がポリゴン内部である場合に、それぞれ
“1"にセットされる。同様にLcx1はエッジ・ラインの左
側がポリゴン内部である場合に、Lcx2は右側がポリゴン
内部である場合に、それぞれ“1"にセットされる。ま
た、左境界線との交点はxL1,xL2で示されているが、xL1
はエッジ・ラインの下側がポリゴン内部である場合に、
xL2は上側がポリゴン内部である場合に、それぞれ“1"
にセットされる。右境界銭との交点はxR1,x2Rで示され
ているが、xR1はエッジ・ラインの上側がポリゴン内部
である場合に、xR2は下側がポリゴン内部である場合
に、それぞれ“1"にセットされる。
にポリゴンが存在するので、簡単には両値z min,z max
を算出することができない。この不都合を解消するため
に、ステップの処理を行なう前に以下の一連の処理を
行なってテーブル(z min,z max候補テーブル)を作成
しておき、このテーブルの内容に基づいてAタイプか、
Bタイプか、Cタイプかの判別を行なうとともに、z mi
n,z maxを算出するようにしている。即ち、同図(C2)
のフローチャートに示すように、ステップにおいて、
エッジ・ラインの、スキャン・ライン・エリアの領域下
境界線との交点(Lcx)領域上境界線との交点(Ucx)、
画素領域の左境界線(x座標値がxL)との交点、右境界
線(x座標値がxR)との交点、画素領域の隅の情報(例
えば、第7図(D)に示すように、0,1,2,3の隅として
割り当てているが、上記テーブルにおいては、隅0,1,3,
2の順に割り当てている)および画素領域の中心の情報
を含むテーブル(第7図(E1)(E2)参照)を作成す
る。但し、Ucx1,Ucx2は共にスキャン・ライン・エリア
領域の上境界線との交点の存在を示すビットであるが、
Ucx1はエッジ・ラインの右側がポリゴン内部である場合
に、Ucx2は左側がポリゴン内部である場合に、それぞれ
“1"にセットされる。同様にLcx1はエッジ・ラインの左
側がポリゴン内部である場合に、Lcx2は右側がポリゴン
内部である場合に、それぞれ“1"にセットされる。ま
た、左境界線との交点はxL1,xL2で示されているが、xL1
はエッジ・ラインの下側がポリゴン内部である場合に、
xL2は上側がポリゴン内部である場合に、それぞれ“1"
にセットされる。右境界銭との交点はxR1,x2Rで示され
ているが、xR1はエッジ・ラインの上側がポリゴン内部
である場合に、xR2は下側がポリゴン内部である場合
に、それぞれ“1"にセットされる。
そして、ステップにおいて、スキャン・ライン・エ
リアの領域下境界線との交点Lcx=crossxおよび領域上
境界線との交点Ucx=crossx+dx/dyを得る。その後、ス
テップにおいてスキャン・ライン・エリアの領域下境
界線および領域上境界線との交点および左右の境界線と
の相互関係に基づいて両境界線との交点を算出し、上記
テーブルに追加する。この場合に、ポリゴン断片の内部
であるはずの隅を別個のテーブル(コーナーのテーブ
ル)に保存する。具体的には、第7図(F)に示すよう
に、Lcx<xLの場合に、エッジ・ラインの右側がポリゴ
ン内部であれば、隅3,2をテーブルに保存し、そうでな
ければテーブルは更新しない。そして、xL<Ucx<xRの
場合に、エッジ・ラインの右側がポリゴン内部であれ
ば、隅1をテーブルに保存し、そうでなければ隅0をテ
ーブルに保存する。また、同図(G)に示すように、Lc
x>xRの場合に、エッジ・ラインの右側がポリゴン内部
であればテーブルを更新せず、そうでなければ隅3,2を
テーブルに保存する。そして、xR<Ucxの場合に、エッ
ジ・ラインの右側がポリゴン内部であれば、テーブルを
更新せず、そうでなければ隅0,1をテーブルに保存す
る。即ち、スキャン・ライン・エリアの領域下境界線と
の交点および領域上境界線との交点に基づいて何れの隅
がポリゴンの内部に位置するかの可能性が分るのであ
る。したがって、これらの情報と、各交点Ucx,LcxとxL,
xRとの大小関係との考慮することにより、内部に位置す
る隅に対応してテーブルの該当ビットに“1"を書き込
み、そうでなければ“0"のままにする。具体的には、同
図(H1)に示すようにxL<Ucx,Lcx<xRである場合に、
エッジ・ラインの右側がポリゴン内部であれば、同図
(E2)に示すテーブルのUcx1とLcx2に対応するビットを
“1"とする。そして、隅0,1と隅3,2との排他的論理和
(以下XORと略称する)をとれば、“01"と“01"のXORに
なるので“00"となり、xRとxL、つまり左右の何れの境
界線にもエッジ・ラインとの交点が存在しないことが分
る。したがって、テーブルのxL1,xL2,xR1,xR2の何れも
内容を更新しない。同図(H2)に示す状態であれば、
“01"と“11"とのXORをとった結果“10"になるので、左
側の境界線に交点が存在することが分り、同図(H3)に
示す状態であれば、“01"と“00"とのXORをとった結果
“01"になるので、右側の境界線に交点が存在すること
が分り、同図(H4)に示す状態であれば、“00"と“11"
とのXORをとった結果“11"になるので、左側および右側
の境界線に交点が存在することが分る。以上のように交
点の有無が分れば、テーブルのxL1,xL2,xR1,xR2のうち
対応する0個、2個または4個を記録する。但し、以上
の処理は画素領域がポリゴンの頂点を含んでいない場合
に対応しており、頂点を含んでいるか否かは頂点フラグ
に基づいて簡単に判定できる。
リアの領域下境界線との交点Lcx=crossxおよび領域上
境界線との交点Ucx=crossx+dx/dyを得る。その後、ス
テップにおいてスキャン・ライン・エリアの領域下境
界線および領域上境界線との交点および左右の境界線と
の相互関係に基づいて両境界線との交点を算出し、上記
テーブルに追加する。この場合に、ポリゴン断片の内部
であるはずの隅を別個のテーブル(コーナーのテーブ
ル)に保存する。具体的には、第7図(F)に示すよう
に、Lcx<xLの場合に、エッジ・ラインの右側がポリゴ
ン内部であれば、隅3,2をテーブルに保存し、そうでな
ければテーブルは更新しない。そして、xL<Ucx<xRの
場合に、エッジ・ラインの右側がポリゴン内部であれ
ば、隅1をテーブルに保存し、そうでなければ隅0をテ
ーブルに保存する。また、同図(G)に示すように、Lc
x>xRの場合に、エッジ・ラインの右側がポリゴン内部
であればテーブルを更新せず、そうでなければ隅3,2を
テーブルに保存する。そして、xR<Ucxの場合に、エッ
ジ・ラインの右側がポリゴン内部であれば、テーブルを
更新せず、そうでなければ隅0,1をテーブルに保存す
る。即ち、スキャン・ライン・エリアの領域下境界線と
の交点および領域上境界線との交点に基づいて何れの隅
がポリゴンの内部に位置するかの可能性が分るのであ
る。したがって、これらの情報と、各交点Ucx,LcxとxL,
xRとの大小関係との考慮することにより、内部に位置す
る隅に対応してテーブルの該当ビットに“1"を書き込
み、そうでなければ“0"のままにする。具体的には、同
図(H1)に示すようにxL<Ucx,Lcx<xRである場合に、
エッジ・ラインの右側がポリゴン内部であれば、同図
(E2)に示すテーブルのUcx1とLcx2に対応するビットを
“1"とする。そして、隅0,1と隅3,2との排他的論理和
(以下XORと略称する)をとれば、“01"と“01"のXORに
なるので“00"となり、xRとxL、つまり左右の何れの境
界線にもエッジ・ラインとの交点が存在しないことが分
る。したがって、テーブルのxL1,xL2,xR1,xR2の何れも
内容を更新しない。同図(H2)に示す状態であれば、
“01"と“11"とのXORをとった結果“10"になるので、左
側の境界線に交点が存在することが分り、同図(H3)に
示す状態であれば、“01"と“00"とのXORをとった結果
“01"になるので、右側の境界線に交点が存在すること
が分り、同図(H4)に示す状態であれば、“00"と“11"
とのXORをとった結果“11"になるので、左側および右側
の境界線に交点が存在することが分る。以上のように交
点の有無が分れば、テーブルのxL1,xL2,xR1,xR2のうち
対応する0個、2個または4個を記録する。但し、以上
の処理は画素領域がポリゴンの頂点を含んでいない場合
に対応しており、頂点を含んでいるか否かは頂点フラグ
に基づいて簡単に判定できる。
以上の処理のうち、隅情報に関する処理を各エッジ・
ラインについて行なえば、ポリゴン断片が何れの隅を含
んでいるかを判定するのに十分な情報を得ることができ
る。そして、各エッジ・ラインの処理により作成された
コーナーのテーブル同士の論理積をとることによりポリ
ゴン断片内に何れの隅が含まれているかを判定できる。
具体的には、同図(I)に示すポリゴンと画素領域(P
1)(P2)(P3)との関係についてみれば、画素領域(P
1)については、隅0,1,3,2に関してエッジ・ラインE1は
“0101"であり、エッジ・ラインE2は“1111"であり、エ
ッジ・ラインE3は"1111"であるから、これらの論理積を
とれば、“0101"となり、ポリゴン断片の内部には隅1,2
が含まれることが分る。また、画素領域(P2)について
は、エッジ・ラインE1は“1111"であり、エッジ・ライ
ンE2は“1011"であり、エッジ・ラインE3は“1110"であ
るから、これらの論理積をとれば、“1010"となり、ポ
リゴン断片の内部には隅0,3が含まれることが分る。ま
た、画素領域(P3)については、エッジ・ラインE1は
“1111"であり、エッジ・ラインE2は“0011"であり、エ
ッジ・ラインE3は“1100"であるから、これらの論理積
をとれば、“0000"となり、ポリゴン断片の内部には隅
が全く含まれていないことが分る。
ラインについて行なえば、ポリゴン断片が何れの隅を含
んでいるかを判定するのに十分な情報を得ることができ
る。そして、各エッジ・ラインの処理により作成された
コーナーのテーブル同士の論理積をとることによりポリ
ゴン断片内に何れの隅が含まれているかを判定できる。
具体的には、同図(I)に示すポリゴンと画素領域(P
1)(P2)(P3)との関係についてみれば、画素領域(P
1)については、隅0,1,3,2に関してエッジ・ラインE1は
“0101"であり、エッジ・ラインE2は“1111"であり、エ
ッジ・ラインE3は"1111"であるから、これらの論理積を
とれば、“0101"となり、ポリゴン断片の内部には隅1,2
が含まれることが分る。また、画素領域(P2)について
は、エッジ・ラインE1は“1111"であり、エッジ・ライ
ンE2は“1011"であり、エッジ・ラインE3は“1110"であ
るから、これらの論理積をとれば、“1010"となり、ポ
リゴン断片の内部には隅0,3が含まれることが分る。ま
た、画素領域(P3)については、エッジ・ラインE1は
“1111"であり、エッジ・ラインE2は“0011"であり、エ
ッジ・ラインE3は“1100"であるから、これらの論理積
をとれば、“0000"となり、ポリゴン断片の内部には隅
が全く含まれていないことが分る。
頂点フラグに基づいて画素領域がポリゴンの頂点を含
むと判定され、ポリゴンの頂点に関して画素領域の境界
線との交点を求める場合には、通常のスキャン・ライン
Zバッファ法では予め与えられているポリゴンの高さお
よび横方向の長さが、スキャン・ラインおよび画素が更
新される毎に“1"ずつデクリメントされるので、画素領
域の中心を境として下側で0になり、これ以外、即ち1
以上の場合には上側となることが分る、したがって、第
7図(C3)のフローチャートに示すように、ステップ
においてエッジ・ラインの長さが0と等しくないか否か
(または0より大きいか否か)を判別し、長さが0と等
しくなれければ、ステップにおいてエッジ・ラインの
傾きの絶対値が1より小さいか否かを判別し、傾きの絶
対値が1より小さければ、ステップにおいてエッジ・
ラインの右側がポリゴンの内部か否かを判別し、右側が
ポリゴンの内部であれば、ステップにおいてテーブル
のLcx2を“1"にセットし、左側がポリゴンの内部であれ
ば、ステップにおいてテーブルのLcx1を“1"にセット
する。逆に、ステップにおいてエッジ・ラインの傾き
の絶対値が1より大きいと判別された場合には、ステッ
プにおいて傾きが1より大きいか否かを判別し、1よ
り大きいと判別された場合には、ステップにおいてエ
ッジ・ラインの右側がポリゴンの内部か否かを判別し、
右側がポリゴンの内部であれば、ステップにおいてテ
ーブルのxL1を“1"にセットし、左側がポリゴンの内部
であれば、ステップにおいてテーブルのxL2を“1"に
セットする。また、ステップにおいて傾きが−1より
も小さいと判別された場合には、ステップにおいてエ
ッジ・ラインの右側がポリゴンの内部か否かを判別し、
右側がポリゴンの内部であれば、ステップにおいてテ
ーブルのxR1を“1"にセットし、左側がポリゴンの内部
であれば、ステップにおいてテーブルのxR2を“1"に
セットする。
むと判定され、ポリゴンの頂点に関して画素領域の境界
線との交点を求める場合には、通常のスキャン・ライン
Zバッファ法では予め与えられているポリゴンの高さお
よび横方向の長さが、スキャン・ラインおよび画素が更
新される毎に“1"ずつデクリメントされるので、画素領
域の中心を境として下側で0になり、これ以外、即ち1
以上の場合には上側となることが分る、したがって、第
7図(C3)のフローチャートに示すように、ステップ
においてエッジ・ラインの長さが0と等しくないか否か
(または0より大きいか否か)を判別し、長さが0と等
しくなれければ、ステップにおいてエッジ・ラインの
傾きの絶対値が1より小さいか否かを判別し、傾きの絶
対値が1より小さければ、ステップにおいてエッジ・
ラインの右側がポリゴンの内部か否かを判別し、右側が
ポリゴンの内部であれば、ステップにおいてテーブル
のLcx2を“1"にセットし、左側がポリゴンの内部であれ
ば、ステップにおいてテーブルのLcx1を“1"にセット
する。逆に、ステップにおいてエッジ・ラインの傾き
の絶対値が1より大きいと判別された場合には、ステッ
プにおいて傾きが1より大きいか否かを判別し、1よ
り大きいと判別された場合には、ステップにおいてエ
ッジ・ラインの右側がポリゴンの内部か否かを判別し、
右側がポリゴンの内部であれば、ステップにおいてテ
ーブルのxL1を“1"にセットし、左側がポリゴンの内部
であれば、ステップにおいてテーブルのxL2を“1"に
セットする。また、ステップにおいて傾きが−1より
も小さいと判別された場合には、ステップにおいてエ
ッジ・ラインの右側がポリゴンの内部か否かを判別し、
右側がポリゴンの内部であれば、ステップにおいてテ
ーブルのxR1を“1"にセットし、左側がポリゴンの内部
であれば、ステップにおいてテーブルのxR2を“1"に
セットする。
上記ステップにおいてエッジ・ラインの長さが0で
あると判別された場合には、ステップにおいてエッジ
・ラインの傾きの絶対値が1より小さいか否かを判別
し、傾きの絶対値が1より小さければ、ステップにお
いてエッジ・ラインの右側がポリゴンの内部か否かを判
別し、右側がポリゴンの内部であれば、ステップにお
いてテーブルのLcx1を“1"にセットし、左側がポリゴン
の内部であれば、ステップにおいてテーブルのLcx2を
“1"にセットする。逆に、ステップにおいてエッジ・
ラインの傾きの絶対値が1より大きいと判別された場合
には、ステップにおいて傾きが1より大きいか否かを
判別し、1より大きいと判別された場合には、ステップ
においてエッジ・ラインの右側がポリゴンの内部か否
かを判別し、右側がポリゴンの内部であれば、ステップ
においてテーブルのxR2を“1"にセットし、左側がポ
リゴンの内部であれば、ステップにおいてテーブルの
xR1を“1"にセットする。また、ステップにおいて傾
きが−1よりも小さいと判別された場合には、ステップ
においてエッジ・ラインの右側がポリゴンの内部か否
かを判別し、右側がポリゴンの内部であれば、ステップ
においてテーブルのxL2を“1"にセットし、左側がポ
リゴンの内部であれば、ステップにおいてテーブルの
xL1を“1"にセットする。また、以上の何れの場合に
も、頂点フラグに基づいて頂点であることが分っている
のであるから、中心の存在を示す、テーブル中のビット
cを“1"にセットし、ポリゴン頂点であることを示す。
あると判別された場合には、ステップにおいてエッジ
・ラインの傾きの絶対値が1より小さいか否かを判別
し、傾きの絶対値が1より小さければ、ステップにお
いてエッジ・ラインの右側がポリゴンの内部か否かを判
別し、右側がポリゴンの内部であれば、ステップにお
いてテーブルのLcx1を“1"にセットし、左側がポリゴン
の内部であれば、ステップにおいてテーブルのLcx2を
“1"にセットする。逆に、ステップにおいてエッジ・
ラインの傾きの絶対値が1より大きいと判別された場合
には、ステップにおいて傾きが1より大きいか否かを
判別し、1より大きいと判別された場合には、ステップ
においてエッジ・ラインの右側がポリゴンの内部か否
かを判別し、右側がポリゴンの内部であれば、ステップ
においてテーブルのxR2を“1"にセットし、左側がポ
リゴンの内部であれば、ステップにおいてテーブルの
xR1を“1"にセットする。また、ステップにおいて傾
きが−1よりも小さいと判別された場合には、ステップ
においてエッジ・ラインの右側がポリゴンの内部か否
かを判別し、右側がポリゴンの内部であれば、ステップ
においてテーブルのxL2を“1"にセットし、左側がポ
リゴンの内部であれば、ステップにおいてテーブルの
xL1を“1"にセットする。また、以上の何れの場合に
も、頂点フラグに基づいて頂点であることが分っている
のであるから、中心の存在を示す、テーブル中のビット
cを“1"にセットし、ポリゴン頂点であることを示す。
ポリゴンのエッジ・ラインが画素領域に水平に交差し
ている場合には、第7図(C4)のフローチャートに示す
ように、ステップにおいてエッジ・ラインの上側がポ
リゴンの内部であるか否かを判別し、上側がポリゴンの
内部であれば、ステップにおいてテーブルのxL2,xR1
を“1"にセットし、隅0,1をコーナーのテーブルに保存
する。そして、ステップにおいてポリゴンの頂点であ
るか否かを判別し、頂点であると判別された場合には、
ステップにおいてエッジ・ラインの長さが0であるか
否かを判別し、長さが0であれば(つまり、頂点という
ことなので頂点フラグに基づいて判定できる)、ステッ
プにおいてテーブルのxR1のビットをリセットしてxL2
のみを“1"とし、逆に長さが0でなければステップに
おいてテーブルのxL2のビットをリセットしてxR1のみを
“1"とする。また、上記ステップにおいて頂点でない
と判別された場合には、テーブルの値を何ら変更しな
い。即ち、xL2,xR1、隅0,1のビットが“1"である。
ている場合には、第7図(C4)のフローチャートに示す
ように、ステップにおいてエッジ・ラインの上側がポ
リゴンの内部であるか否かを判別し、上側がポリゴンの
内部であれば、ステップにおいてテーブルのxL2,xR1
を“1"にセットし、隅0,1をコーナーのテーブルに保存
する。そして、ステップにおいてポリゴンの頂点であ
るか否かを判別し、頂点であると判別された場合には、
ステップにおいてエッジ・ラインの長さが0であるか
否かを判別し、長さが0であれば(つまり、頂点という
ことなので頂点フラグに基づいて判定できる)、ステッ
プにおいてテーブルのxR1のビットをリセットしてxL2
のみを“1"とし、逆に長さが0でなければステップに
おいてテーブルのxL2のビットをリセットしてxR1のみを
“1"とする。また、上記ステップにおいて頂点でない
と判別された場合には、テーブルの値を何ら変更しな
い。即ち、xL2,xR1、隅0,1のビットが“1"である。
上記ステップにおいて下側がポリゴンの内部である
と判別された場合には、ステップにおいてテーブルの
xL1,xR2を“1"にセットし、隅2,3をコーナーのテーブル
に格納する。そして、ステップにおいてポリゴンの頂
点であるか否かを判別し、頂点であると判別された場合
には、ステップにおいてエッジ・ラインの長さが0で
あるか否かを判別し、長さが0であればステップにお
いてテーブルのxR2のビットをリセットしてxL1のみを
“1"とし、逆に長さが0と等しくなければステップに
おいてテーブルのxL1のビットをリセットしてxR2のみを
“1"とする。また、上記ステップにおいて頂点でない
と判別された場合には、テーブルの値を何ら変更しな
い。即ち、xL1,xR2、隅2,3のビットが“1"である。
と判別された場合には、ステップにおいてテーブルの
xL1,xR2を“1"にセットし、隅2,3をコーナーのテーブル
に格納する。そして、ステップにおいてポリゴンの頂
点であるか否かを判別し、頂点であると判別された場合
には、ステップにおいてエッジ・ラインの長さが0で
あるか否かを判別し、長さが0であればステップにお
いてテーブルのxR2のビットをリセットしてxL1のみを
“1"とし、逆に長さが0と等しくなければステップに
おいてテーブルのxL1のビットをリセットしてxR2のみを
“1"とする。また、上記ステップにおいて頂点でない
と判別された場合には、テーブルの値を何ら変更しな
い。即ち、xL1,xR2、隅2,3のビットが“1"である。
以上の全処理および判別を行なうことにより、該当す
るポリゴン断片におけるテーブルが完成し、完成したテ
ーブル内には、ポリゴン断片のz minまたはz maxの候補
になり得る0個から4個の隅と、画素領域の上下左右の
境界線との交点と、画素領域内にポリゴンの頂点が含ま
れている場合に頂点が含まれていることを示す情報とが
蓄えられることになる。即ち、第8図(A)に示すポリ
ゴンの場合には、隅1,3および画素領域の境界線との交
点Ucx1,xL1,xR1,Lcx2に対応するビットが“1"にセット
されたテーブル“0110101010010"が得られ、同図(B)
に示すポリゴンの場合には、隅3および交点xL1,Lcx2に
対応するビットが“1"にセットされたテーブル“001010
0000010"が得られる。
るポリゴン断片におけるテーブルが完成し、完成したテ
ーブル内には、ポリゴン断片のz minまたはz maxの候補
になり得る0個から4個の隅と、画素領域の上下左右の
境界線との交点と、画素領域内にポリゴンの頂点が含ま
れている場合に頂点が含まれていることを示す情報とが
蓄えられることになる。即ち、第8図(A)に示すポリ
ゴンの場合には、隅1,3および画素領域の境界線との交
点Ucx1,xL1,xR1,Lcx2に対応するビットが“1"にセット
されたテーブル“0110101010010"が得られ、同図(B)
に示すポリゴンの場合には、隅3および交点xL1,Lcx2に
対応するビットが“1"にセットされたテーブル“001010
0000010"が得られる。
以上のようにして得られたテーブルに基づいてAタイ
プ、BタイプまたはCタイプの何れのタイプの画素領域
であるかが識別できる。但し、タイプ分けだけであれ
ば、コーナーのテーブルだけで判定できるのので、交点
テーブルまで考慮する必要はない。即ち、テーブルの下
位4ビットが全て“1"であればAタイプの画素領域であ
り、下位4ビットが全て“0"であればCタイプの画素領
域であり、下位4ビットが上記以外であればBタイプの
画素領域である。そして、Bタイプの画素領域であると
識別された場合には、各エッジ・ラインを処理する際
に、頂点ではなく、画素領域の境界線との交点を2個有
しているエッジ・ラインが存在すれば初めにこのエッジ
・ラインを記録しておき、その後、境界線との交点を有
するエッジ・ラインがさらに存在することが分れば、こ
の画素領域はそのままでは処理できないBタイプ、即
ち、B2タイプであり、分割の対象にする。また、他の全
てのエッジ・ラインの処理を行なった結果、境界線との
交点を有するエッジ・ラインが1個しか存在しないこと
が分れば、この画素領域はそのままで処理可能なBタイ
プ、即ち、B1タイプであり、面積算出および輝度値算出
を分割処理することなしに行なうことができる。また、
これらの場合において、エッジ・ラインに対する隅に関
する4ビットの情報のみを記録しておいて、後のエッジ
・ラインの判定の結果、最も手前の2個のBタイプのエ
ッジ・ラインが互に一致し、かつ隅に関する情報の論理
和の下位4ビットが全て“1"ならばそのままで処理可能
なBタイプであるから、面積算出および輝度値算出を行
なうことができる。また、予め設定された回数の分割を
行なってもそのままでは処理できないBタイプの小領域
が存在する場合には、例えば小領域の1/2をポリゴン断
片の面積とすればよい。しかし、精度を重視するのであ
れば、処理できないBタイプが存在しなくなるまで分割
を反復すればよい、即ち、エリアシング除去精度と処理
時間との兼ね合いを自由に調節できる。
プ、BタイプまたはCタイプの何れのタイプの画素領域
であるかが識別できる。但し、タイプ分けだけであれ
ば、コーナーのテーブルだけで判定できるのので、交点
テーブルまで考慮する必要はない。即ち、テーブルの下
位4ビットが全て“1"であればAタイプの画素領域であ
り、下位4ビットが全て“0"であればCタイプの画素領
域であり、下位4ビットが上記以外であればBタイプの
画素領域である。そして、Bタイプの画素領域であると
識別された場合には、各エッジ・ラインを処理する際
に、頂点ではなく、画素領域の境界線との交点を2個有
しているエッジ・ラインが存在すれば初めにこのエッジ
・ラインを記録しておき、その後、境界線との交点を有
するエッジ・ラインがさらに存在することが分れば、こ
の画素領域はそのままでは処理できないBタイプ、即
ち、B2タイプであり、分割の対象にする。また、他の全
てのエッジ・ラインの処理を行なった結果、境界線との
交点を有するエッジ・ラインが1個しか存在しないこと
が分れば、この画素領域はそのままで処理可能なBタイ
プ、即ち、B1タイプであり、面積算出および輝度値算出
を分割処理することなしに行なうことができる。また、
これらの場合において、エッジ・ラインに対する隅に関
する4ビットの情報のみを記録しておいて、後のエッジ
・ラインの判定の結果、最も手前の2個のBタイプのエ
ッジ・ラインが互に一致し、かつ隅に関する情報の論理
和の下位4ビットが全て“1"ならばそのままで処理可能
なBタイプであるから、面積算出および輝度値算出を行
なうことができる。また、予め設定された回数の分割を
行なってもそのままでは処理できないBタイプの小領域
が存在する場合には、例えば小領域の1/2をポリゴン断
片の面積とすればよい。しかし、精度を重視するのであ
れば、処理できないBタイプが存在しなくなるまで分割
を反復すればよい、即ち、エリアシング除去精度と処理
時間との兼ね合いを自由に調節できる。
また、ポリゴン断片のz min,z maxを求める場合に
は、上記ポリゴンの傾きを示す情報およびポリゴンの平
面式の係数を用いる。即ち、第9図(A)(B)(C)
(D)に矢印で示すように、画素領域の隅0,1,3,2の何
れかが最も手前になることを示す4種類の情報のそれぞ
れに対して、同図(A)の場合には隅0→Ucx1,xL1→Uc
x2,xL2→隅1,3(頂点がある場合)→xR2,Lcx2→xR1,Lcx
1→隅2の順に、同図(B)の場合には隅1→Ucx2,xR2
→Ucx1,xR1→隅0,2(頂点がある場合)→xL1,Lcx1→xL
2,Lcx2→隅3の順に、同図(C)の場合には隅3→xL2,
Lcx2→xL1,Lcx1→隅0,2(頂点がある場合)→Ucx1,xR1
→Ucx2,xR2→隅1の順に、同図(D)の場合には隅2→
xR1,Lcx1→xR2,Lcx2→隅1,3(頂点がある場合)→Ucx2,
xL2→Ucx1,xL1→隅0の順に判定ルーチンを予め定めて
おき、この順にテーブルを参照して最も最初にテーブル
に“1"が存在する要素を得、この要素に対してポリゴン
の平面式を考慮することによりz値を算出することがで
きる。但し、Bタイプの場合にはz minのみを算出すれ
ばよいのであるから、同図(A)の場合におけるUcx2,x
L2およびxR1,Lcx1は省略できる。同図(B)(C)
(D)の場合も同様である。この方法を採用すれば、z
値の最大値z max、最小値z minとなり得る候補全てにつ
いてz値を算出して比較するよりも著しく効率的であ
り、しかも、画素領域中の一点のみを増分法に基づいて
z値を更新する方法と比較して正確にポリゴン断片のz
max,z minを算出することができる。また、例えば、第
9図(A)の場合におけるxL1とUcx1とは同等のランク
でz minまたはz maxになる可能性があるので両方のz値
を算出し、比較する必要があるが、全ての候補のz値を
算出して比較するよりも効率的である。但し、xL1また
はUcx1の一方のみについてz値を算出し、他方のz値を
算出しないようにした場合にも殆ど不都合は生じないこ
とが実験的に確認されたので、このようにすることによ
り一層の効率化を達成できる。
は、上記ポリゴンの傾きを示す情報およびポリゴンの平
面式の係数を用いる。即ち、第9図(A)(B)(C)
(D)に矢印で示すように、画素領域の隅0,1,3,2の何
れかが最も手前になることを示す4種類の情報のそれぞ
れに対して、同図(A)の場合には隅0→Ucx1,xL1→Uc
x2,xL2→隅1,3(頂点がある場合)→xR2,Lcx2→xR1,Lcx
1→隅2の順に、同図(B)の場合には隅1→Ucx2,xR2
→Ucx1,xR1→隅0,2(頂点がある場合)→xL1,Lcx1→xL
2,Lcx2→隅3の順に、同図(C)の場合には隅3→xL2,
Lcx2→xL1,Lcx1→隅0,2(頂点がある場合)→Ucx1,xR1
→Ucx2,xR2→隅1の順に、同図(D)の場合には隅2→
xR1,Lcx1→xR2,Lcx2→隅1,3(頂点がある場合)→Ucx2,
xL2→Ucx1,xL1→隅0の順に判定ルーチンを予め定めて
おき、この順にテーブルを参照して最も最初にテーブル
に“1"が存在する要素を得、この要素に対してポリゴン
の平面式を考慮することによりz値を算出することがで
きる。但し、Bタイプの場合にはz minのみを算出すれ
ばよいのであるから、同図(A)の場合におけるUcx2,x
L2およびxR1,Lcx1は省略できる。同図(B)(C)
(D)の場合も同様である。この方法を採用すれば、z
値の最大値z max、最小値z minとなり得る候補全てにつ
いてz値を算出して比較するよりも著しく効率的であ
り、しかも、画素領域中の一点のみを増分法に基づいて
z値を更新する方法と比較して正確にポリゴン断片のz
max,z minを算出することができる。また、例えば、第
9図(A)の場合におけるxL1とUcx1とは同等のランク
でz minまたはz maxになる可能性があるので両方のz値
を算出し、比較する必要があるが、全ての候補のz値を
算出して比較するよりも効率的である。但し、xL1また
はUcx1の一方のみについてz値を算出し、他方のz値を
算出しないようにした場合にも殆ど不都合は生じないこ
とが実験的に確認されたので、このようにすることによ
り一層の効率化を達成できる。
<具体例> 第10図に示す(1,2)の画素領域の処理は次のように
して行なわれる。但し、画素領域の境界線がそれぞれx
=xL,xR、y=yU,yLであり、エッジ・ラインの傾きがそ
れぞれdx/dy1,dx/dy2,dx/,y3であり、ポリゴンのエッジ
・ライン番号がI,II,IIIであり、ポリゴンの傾きが第9
図(B)に示す状態であり、ポリゴン方程式がαx+β
y+γz+δ=0であり、コーナーテーブルが隅0,1,3,
2の順に定められている。
して行なわれる。但し、画素領域の境界線がそれぞれx
=xL,xR、y=yU,yLであり、エッジ・ラインの傾きがそ
れぞれdx/dy1,dx/dy2,dx/,y3であり、ポリゴンのエッジ
・ライン番号がI,II,IIIであり、ポリゴンの傾きが第9
図(B)に示す状態であり、ポリゴン方程式がαx+β
y+γz+δ=0であり、コーナーテーブルが隅0,1,3,
2の順に定められている。
エッジ・ラインが画素領域に対して水平に交差してお
らず、しかも頂点に含んでいないので、各エッジ・ライ
ンと境界線との交点を求める必要があるが、Lcxは既に
得られているのであるから、傾きを考慮して、 Ucx1=Lcx1+dx/dy1 Ucx2=Lcx2+dx/dy2 Ucx3=Lcx3+dx/dy3 の演算を行なうことによりUcxを得る。そして、Lcx1<x
L、xL<Ucx1<xRかつエッジ・ラインIの右側がポリゴ
ン内部であるから、コーナーのテーブルを“0111"に設
定するとともに、全テーブルのUcx1のビットを“1"と
し、Lcx2>xR、Ucx2=xRかつエッジ・ラインIIの左側が
ポリゴン内部であるから、コーナーのテーブルを“111
1"とし、xL<Lcx3<xR、Ucx3>xRかつエッジ・ラインII
Iの左側がポリゴン内部であるから、コーナーのテーブ
ルを“1110"に設定するとともに、全テーブルのUcx1を
“1"とする。
らず、しかも頂点に含んでいないので、各エッジ・ライ
ンと境界線との交点を求める必要があるが、Lcxは既に
得られているのであるから、傾きを考慮して、 Ucx1=Lcx1+dx/dy1 Ucx2=Lcx2+dx/dy2 Ucx3=Lcx3+dx/dy3 の演算を行なうことによりUcxを得る。そして、Lcx1<x
L、xL<Ucx1<xRかつエッジ・ラインIの右側がポリゴ
ン内部であるから、コーナーのテーブルを“0111"に設
定するとともに、全テーブルのUcx1のビットを“1"と
し、Lcx2>xR、Ucx2=xRかつエッジ・ラインIIの左側が
ポリゴン内部であるから、コーナーのテーブルを“111
1"とし、xL<Lcx3<xR、Ucx3>xRかつエッジ・ラインII
Iの左側がポリゴン内部であるから、コーナーのテーブ
ルを“1110"に設定するとともに、全テーブルのUcx1を
“1"とする。
そして、各コーナーのテーブルにおける隅0,1と隅3,2
とのXORをとれば、それぞれ“10"“00"“01"となり、左
右の境界線との交点の数が得られる。また、この結果お
よびエッジ・ラインに対するポリゴン内部の関係に基づ
いて全テーブルのxL1,xR1を“1"に設定する。また、全
てのコーナーのテーブルの論理積を得れば、“0110"に
なる。したがって、最終的に得られるテーブルは“0110
101010100"となり、Bタイプであることが分る。したが
って、z minのみを求めればよい。
とのXORをとれば、それぞれ“10"“00"“01"となり、左
右の境界線との交点の数が得られる。また、この結果お
よびエッジ・ラインに対するポリゴン内部の関係に基づ
いて全テーブルのxL1,xR1を“1"に設定する。また、全
てのコーナーのテーブルの論理積を得れば、“0110"に
なる。したがって、最終的に得られるテーブルは“0110
101010100"となり、Bタイプであることが分る。したが
って、z minのみを求めればよい。
また、ポリゴンの傾き情報と判定順序とに基づいてテ
ーブルを参照することにより、最も優先度が高い隅1が
存在することが分るので、隅1の座標(xR,yU)および
ポリゴンの平面方程式に基づいてz min=−(αxR+βy
U+δ)/γを得ることができる。
ーブルを参照することにより、最も優先度が高い隅1が
存在することが分るので、隅1の座標(xR,yU)および
ポリゴンの平面方程式に基づいてz min=−(αxR+βy
U+δ)/γを得ることができる。
以上の説明から明らかなように、スキャン・ライン内
にみえるポリゴンのエントリー情報および、ポリゴン頂
点座標とエッジ・ラインの傾き情報を用いてエリアサン
プリングを行なうことができるのであるから、第2図の
フローチャートに示す面積計算ルーチンを追加するとと
もに、ポリゴンのデータ構造を少し追加するだけで、簡
単にスキャン・ラインZバッファ法に適用することがで
きる。この点において、柴本、荒岡:拡張Zバッファ・
アルゴリズム,PIXEL,No.66,(1988)が、A−バッファ
法の特徴を生かして計算負荷を軽減できたものの、スー
パーサンプリング法の範疇に属する方法である関係上エ
リアシング除去精度を余り高めることができないのと比
較して著しく優れている。
にみえるポリゴンのエントリー情報および、ポリゴン頂
点座標とエッジ・ラインの傾き情報を用いてエリアサン
プリングを行なうことができるのであるから、第2図の
フローチャートに示す面積計算ルーチンを追加するとと
もに、ポリゴンのデータ構造を少し追加するだけで、簡
単にスキャン・ラインZバッファ法に適用することがで
きる。この点において、柴本、荒岡:拡張Zバッファ・
アルゴリズム,PIXEL,No.66,(1988)が、A−バッファ
法の特徴を生かして計算負荷を軽減できたものの、スー
パーサンプリング法の範疇に属する方法である関係上エ
リアシング除去精度を余り高めることができないのと比
較して著しく優れている。
また、上記の一連の処理により画素領域を通るエッジ
・ラインの検出を高速に行なうことができるとともに、
エッジ・ラインのz値をも正確に得ることができるの
で、エッジ強調表示に適用すれば、エッジ強調ポリゴン
のぬりつぶし処理を高速化できるとともに、画像品質を
高めることができる。但し、この、場合には、画素領域
内におけるポリゴン断片の面積を算出する必要はない。
・ラインの検出を高速に行なうことができるとともに、
エッジ・ラインのz値をも正確に得ることができるの
で、エッジ強調表示に適用すれば、エッジ強調ポリゴン
のぬりつぶし処理を高速化できるとともに、画像品質を
高めることができる。但し、この、場合には、画素領域
内におけるポリゴン断片の面積を算出する必要はない。
<発明の効果> 以上のように第1の発明は、従来は相入れないものと
されていた高品質のエリアシング除去と高速処理とを両
立させることができるという特有の効果を奏する。
されていた高品質のエリアシング除去と高速処理とを両
立させることができるという特有の効果を奏する。
第2の発明も、従来は相入れないものとされていた高
品質のエリアシング除去と高速処理とを両立させること
ができるという特有の効果を奏する。
品質のエリアシング除去と高速処理とを両立させること
ができるという特有の効果を奏する。
第1図はこの発明のエリアシング除去方法の一実施例を
示すフローチャート、 第2図は第1図のフローチャートのステップの処理を
詳細に示すフローチャート、 第3図は画素領域に対するエッジ・ラインの状態を示す
図、 第4図は画素領域の分割を説明する図、 第5図はこの発明のエリアシング除去装置の一実施例を
示すブロック図、 第6図は画素領域の類型を示す図、 第7図(A)(B)(C1)(C2)(C3)(C4)はこの発
明のエリアシング除去方法の他の実施例を示すフローチ
ャート、 第7図(D)〜(I)はエリアシング除去方法を説明す
る図、 第8図はポリゴンと画素領域との関係を例示する図、 第9図はポリゴンの傾きを例示する図であり、同図
(A)は隅0が最も手前側の場合を、同図(B)は隅1
が最も手前側の場合を、同図(C)は隅3が最も手前側
の場合を、同図(D)は隅2が最も手前側の場合をそれ
ぞれ示す、 第10図は具体例を示す図、 第11図はスーパーサンプリング法の不都合を説明する
図。 (2)……識別部、(3)……判別部、 (4)……分割部、(5)……反復制御部、 (6)……第1面積算出部、(8)……輝度値算出部
示すフローチャート、 第2図は第1図のフローチャートのステップの処理を
詳細に示すフローチャート、 第3図は画素領域に対するエッジ・ラインの状態を示す
図、 第4図は画素領域の分割を説明する図、 第5図はこの発明のエリアシング除去装置の一実施例を
示すブロック図、 第6図は画素領域の類型を示す図、 第7図(A)(B)(C1)(C2)(C3)(C4)はこの発
明のエリアシング除去方法の他の実施例を示すフローチ
ャート、 第7図(D)〜(I)はエリアシング除去方法を説明す
る図、 第8図はポリゴンと画素領域との関係を例示する図、 第9図はポリゴンの傾きを例示する図であり、同図
(A)は隅0が最も手前側の場合を、同図(B)は隅1
が最も手前側の場合を、同図(C)は隅3が最も手前側
の場合を、同図(D)は隅2が最も手前側の場合をそれ
ぞれ示す、 第10図は具体例を示す図、 第11図はスーパーサンプリング法の不都合を説明する
図。 (2)……識別部、(3)……判別部、 (4)……分割部、(5)……反復制御部、 (6)……第1面積算出部、(8)……輝度値算出部
Claims (4)
- 【請求項1】各画素領域が、隠面処理された場合に表示
されるべき図形として、2種類の図形のみまたは1種類
の図形および背景のみを含んでいるか、1種類の図形の
みを含んでいるか、図形を全く含んでいないか、これら
以外かを判別し、これら以外であると判別された場合に
は、画素領域を分割して、分割された各小領域が2種類
の図形のみまたは1種類の図形および背景のみを含んで
いるか、1種類の図形のみを含んでいるか、図形を全く
含んでいないか、これら以外かを判別し、これら以外で
あると判別された場合には、小領域の分割および判別を
反復し、最終的に得られた、2種類の図形のみまたは1
種類の図形および背景のみを含んでいる画素領域または
小領域におけるポリゴン断片の面積を算出し、算出され
た面積に基づいて画素領域または小領域内における各図
形の面積を算出し、最終的に算出された面積に基づいて
輝度値を算出することを特徴とするエリアシング除去方
法。 - 【請求項2】ポリゴン断片の面積を画素中心または小領
域の中心からの描画対象図形のエッジ・ラインまでの水
平距離および/または垂直距離に基づいて算出する上記
特許請求の範囲第1項に記載のエリアシング除去方法。 - 【請求項3】画素領域または画素領域を分割して得られ
た小領域を分割する分割手段(4)と、各画素領域また
は分割された小領域が、隠面処理された場合に表示され
るべき図形として、2種類の図形のみまたは1種類の図
形および背景のみを含んでいるか、1種類の図形のみを
含んでいるか、図形を全く含んでいないか、これら以外
かを判別する判別手段(2)(3)と、判別手段(2)
(3)においてこれら以外であると判別された場合に、
領域を分割すべく分割手段(4)を動作させる分割反復
手段(5)と、最終的に得られた、2種類の図形のみま
たは1種類の図形および背景のみを含んでいる画素領域
または小領域におけるポリゴン断片の面積を算出する面
積算出手段(6)と、算出された面積に基づいて画素領
域または小領域内における各図形の面積を算出し、最終
的に算出された面積に基づいて輝度値を算出する輝度値
算出手段(8)とを含むことを特徴とするエリアシング
除去装置。 - 【請求項4】面積算出手段(6)は、最終的に得られ
た、2種類の図形のみまたは1種類の図形および背景の
みを含んでいる画素領域または小領域におけるポリゴン
断片の面積を画素中心または小領域の中心からの描画対
象図形のエッジ・ラインまでの水平距離および/または
垂直距離に基づいて算出するものである上記特許請求の
範囲第3項に記載のエリアシング除去装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6175490A JP2682191B2 (ja) | 1990-03-13 | 1990-03-13 | エリアシング除去方法およびその装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6175490A JP2682191B2 (ja) | 1990-03-13 | 1990-03-13 | エリアシング除去方法およびその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03262082A JPH03262082A (ja) | 1991-11-21 |
JP2682191B2 true JP2682191B2 (ja) | 1997-11-26 |
Family
ID=13180264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6175490A Expired - Lifetime JP2682191B2 (ja) | 1990-03-13 | 1990-03-13 | エリアシング除去方法およびその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2682191B2 (ja) |
-
1990
- 1990-03-13 JP JP6175490A patent/JP2682191B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH03262082A (ja) | 1991-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1127337B2 (en) | Shading 3-dimensional computer generated images | |
US4907174A (en) | Z-buffer allocated for window identification | |
US6577305B1 (en) | Apparatus and method for performing setup operations in a 3-D graphics pipeline using unified primitive descriptors | |
US6201545B1 (en) | Method and apparatus for generating sub pixel masks in a three dimensional graphic processing system | |
US8154547B2 (en) | Method and system for early Z test in title-based three-dimensional rendering | |
KR960016886B1 (ko) | 다수의 3차원 객체로부터 가시 객체를 픽크하는 장치 및 방법과 그를 이용한 비디오 디스플레이 시스템 | |
EP1125253B2 (en) | Shading 3-dimensional computer generated images | |
CN100399358C (zh) | 图像处理装置及其方法 | |
US6850234B2 (en) | Method and system for determining visible parts of transparent and nontransparent surfaces of there-dimensional objects | |
US5295234A (en) | Apparatus for displaying a three dimensional object which appears substantially the same in different display directions by modifying stored image data by a scale factor | |
US4930091A (en) | Triangle classification setup method and apparatus for 3-D graphics display system | |
US6172680B1 (en) | Method and apparatus for a three-dimensional graphics processing system including anti-aliasing | |
JPH0927045A (ja) | 画像処理装置 | |
JP2682191B2 (ja) | エリアシング除去方法およびその装置 | |
EP1139294B1 (en) | Graphical image system and apparatus | |
US7170528B1 (en) | Fast glyph rendering for vector based fonts | |
JP2001148028A (ja) | 図形表示装置及びその方法 | |
JP2569952B2 (ja) | Aーバッファ法における隠面処理方法およびその装置 | |
EP0568360B1 (en) | Graphics system using quadratic polynomial fragments | |
JPS63305478A (ja) | パタ−ン情報復元装置 | |
JP3587105B2 (ja) | 図形データ処理装置 | |
Šrámek | Fast ray-tracing of rectilinear volume data | |
JPS60198690A (ja) | 高速図形処理方式 | |
CN102646281B (zh) | 用于对椭圆弧进行栅格化的方法和系统 | |
Keating | Efficient shadow antialiasing using an a-buffer |