JP2010039680A - 画像処理装置、画像処理プログラムおよび画像処理方法 - Google Patents

画像処理装置、画像処理プログラムおよび画像処理方法 Download PDF

Info

Publication number
JP2010039680A
JP2010039680A JP2008200607A JP2008200607A JP2010039680A JP 2010039680 A JP2010039680 A JP 2010039680A JP 2008200607 A JP2008200607 A JP 2008200607A JP 2008200607 A JP2008200607 A JP 2008200607A JP 2010039680 A JP2010039680 A JP 2010039680A
Authority
JP
Japan
Prior art keywords
vertex
value
display screen
triangle
intersection
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.)
Withdrawn
Application number
JP2008200607A
Other languages
English (en)
Inventor
Yasushi Sukama
康 洲鎌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008200607A priority Critical patent/JP2010039680A/ja
Publication of JP2010039680A publication Critical patent/JP2010039680A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

【課題】表示画面に三次元表示される三角形の形状にかかわらず効率的な描画を実現すること。
【解決手段】画像処理装置では、表示画面110を基準としたx値、y値の二次元座標値に加えて、表示画面110に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形Sの頂点V0〜V2のうちw値が負の値となる頂点V0を抽出する。そして、頂点V0からw値が正の値になる頂点V1,V2へそれぞれ結んだ線分の延長線と、表示画面110の枠との交点V1',V2'を算出し、V1,V2およびV1',V2'に外接する矩形101を設定する。そして、設定された矩形101に対してラスタライズをおこなって三角形Sまたはその一部を表示画面110に射影した図形Pを描画する。
【選択図】図1

Description

この発明は、三角形を三次元描写するための画像処理装置、画像処理プログラムおよび画像処理方法に関する。
従来、三角形の三次元描画においては、三角形を含む矩形と描画開始位置を求め、その矩形内のみで画素描画をおこなう技術が広く知られている。この三角形を含む矩形は、一般的にバウンディングボックスと呼ばれている。図11は、三角形を描画するためのバウンディングボックスの一例を示す説明図である。
図11のように、表示画面1100の中に描画対象となる三角形1101が位置する場合、三角形1101の頂点1〜3をすべて通る外接矩形、すなわちバウンディングボックス1102が設定される。そして、三角形1101を描画する際には、バウンディングボックス1102を構成する四隅のいずれか一点から、走査線のようにラスタライズがおこなわれる。図11の例の場合には、左上の頂点から右方向に順番にラスタライズをおこなう様子をあらわしている。このようなバウンディングボックスを設定して効率的に三角形を描画する手法は広く開示されている(たとえば、下記特許文献1参照。)。
特開2005−182547号公報
上述したように効率的に三角形を描画する手法は提供されているが、ポリゴンなどの三角形を用いて三次元画像を描画する場合、描画対象となる三角形は表示画面に対して必ずしも三角形が描画されるとは限らない。通常、三次元画像として描画される三角形には、頂点情報としてx値、y値を示す二次元座標に加えて、頂点の奥行きをあらわすw値が追加された同次座標が与えられている。w値は、表示画面に対する視点を原点として奥を正、手前を負として頂点の位置を表している。
このような、同次座標の三角形の場合、頂点が視点よりも手前に位置する三角形を表示画面に描画する場合には、実際の三角形を表示画面に射影した像が描画される。このような三角形の場合、表示画面上には三角形の一部分しか表示されない。たとえば、図12は、理想的なバウンディングボックス設定の一例を示す説明図である。図12のように、三角形1201は、w値が負の値となる頂点を含んでいるため、表示画面1100に表示されるのは、頂点2,3を含む網掛け部分となる。このような三角形でも上述したように、バウンディングボックスを設定して効率的に描画をおこないたい。そして、最も効率的な描画をおこなうには、バウンディングボックス1202のように、頂点2,3に外接した最小の矩形を設定することが望ましい。
しかしながら、バウンディングボックスを設定する際に、図11にて説明したような、三角形の頂点1〜3に外接する矩形を設定する手法は適用できない。図13は、誤ったバウンディングボックス設定の一例を示す説明図である。図13の三角形1201の場合、頂点1が視野の後ろにあり、表示画面1100には表示されない。すなわち、三角形の頂点1〜3に外接する矩形1301は、バウンディングボックスとして誤った設定となってしまう。
ここで、視点と表示画面との関係について説明する。図14は、視点と表示画面との関係を示す説明図である。また、図15は、視点に応じた三角形の射影画像の一例を示す説明図である。図14では、頂点V0,V1,V2で構成される三角形1401を表示画面1100に表示させた様子を概念的にあらわしている。三角形1401の頂点V0が視点の後ろに位置している(w値が負の値)。このような三角形1401を二次元平面である表示画面1100に射影した場合、本来は頂点V0のx,y座標に−1を掛けて得られる頂点V0’と頂点V1,V2とによって三角形が描画される。すなわち、図15に示した三角形1401のような描画結果が得られる。
上述したように、視点の後ろに位置している頂点を含む三角形を描画する場合には、図15の三角形1401の斜線部分を描画するようにバウンディングボックスを設定しなければならない。たとえば、図16は、従来の射影画像に対するバウンディングボックス設定の一例を示す説明図である。上記特許文献1の技術の場合、三角形1601を構成する各辺の傾きによって開始点を描画領域の4隅のうちいずれかに設定する。ところが、開始点が描画領域である表示画面1100の4隅のいずれかでしか選べない場合、図16のように、描画開始位置が三角形1601内に含まれないケースがあり、この場合には表示画面1100の枠上の4隅が選択された大きなバウンディングボックス1602が設定されてしまう。結果として、三角形1601を含まない表示画面1100部分に対してもラスタライズをおこなうため描画効率が低下してしまうという問題があった。
この発明は、上述した従来技術による問題点を解消するため、表示画面に三次元表示される三角形の形状にかかわらず効率的な描画を実現することのできる画像処理装置、画像処理プログラムおよび画像処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この画像処理装置、画像処理プログラムおよび画像処理方法は、表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうち、w値が負の値となる頂点を抽出する処理と、抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する処理と、交点が算出された表示画面の枠上に位置する点のうち、当該交点をすべて挟んだ二点を結ぶ線分を底辺として、前記三角形の頂点のうちw値が正の値となる頂点の中のy値の最大値を高さとする矩形を設定する処理と、設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する処理とを含んでいることを要件とする。
この画像処理装置、画像処理プログラムおよび画像処理方法によれば、描画対象となる三角形のうち、表示画面に表示される領域を効率的に包括した矩形をバウンディングボックスとして設定することができる。
この画像処理装置、画像処理プログラムおよび画像処理方法によれば、表示画面に三次元表示される三角形の形状にかかわらず効率的な描画を実現することができるという効果を奏する。
以下に添付図面を参照して、この画像処理装置、画像処理プログラムおよび画像処理方法の好適な実施の形態を詳細に説明する。この画像処理装置、画像処理プログラムおよび画像処理方法では、奥行き情報であるw値を含んだ三角形を二次元の表示画面に描画する際に、三角形の形状に応じて、表示される領域のみをあらわす多角形を設定し、この多角形に外接した矩形をバウンディングボックスとしてラスタライズをおこなうことにより効率的な描画処理を図ることができる。
(画像処理の概要)
まず、本実施の形態にかかる画像処理の概要について説明する。図1は、本実施の形態にかかる画像処理の概要を示す説明図である。図1のように、表示画面110に三角形Sを描画する場合を例に挙げて説明する。三角形Sは、x,y座標と奥行き情報を含んだ同次座標が与えられたV0〜V2の3つの頂点から構成されている。これら頂点V0〜V2のうち、V0は、視点よりも手前に位置している(−w)。
したがって、表示画面110には、実図形である三角形Sを射影した射影図Pを描画していなければならない。三角形Sを射影するには、V0からV1への線分を表示画面110まで延長させた線と、V0からV2への線分を表示画面110まで延長させた線と、V1とV2とを結ぶ線によって構成された多角形が射影図Pとなる。当然のことながら、射影図Pを表示できるのは表示画面110内に限定されるため、射影図Pは、表示画面110の枠で分断された状態となる。
すなわち、射影図Pとして描画対象となるのは、射影図Pのうち、表示画面110内に収まる領域(網掛け部分)となる。射影図Pのうち、表示画面110内に収まる領域を描画するための最小面積の矩形101をバウンディングボックスとして設定することによって、必要最低限の描画処理によって射影図Pを描画することができる。
図1に示すように、射影図Pのうち、表示画面110内に収まる領域を描画するための最小面積の矩形とはすなわち外接する矩形101となる。この矩形101を設定するためには、射影図Pと、表示画面110の枠上の交点V1’および交点V2’の算出が必要となる。そして、w値が正(+w)の視点よりも奥にある頂点V1,V2と、算出した交点V1’および交点V2’をあらたな頂点とした多角形に外接する矩形を設定すればよい。したがって、以下に、表示画面110の枠上の交点V1’および交点V2’を算出して表示画面110内に収まる領域を描画するための最小面積の矩形101を設定する機能を備えた描画処理装置の構成および処理手順について説明する。
(画像処理装置のハードウェア構成)
図2−1は、画像処理装置のハードウェア構成を示す説明図である。本実施の形態では、図2−1のような汎用的な情報処理装置に上述したような描画処理を実現するための描画処理プログラムを読み込ませることによって、画像処理装置100として機能させる。
図2−1において、画像処理装置100は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、画像処理装置100の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、画像処理装置100内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(画像処理装置の機能的構成)
つぎに、画像処理装置100の機能的構成について説明する。図2−2は、画像処理装置の機能的構成を示すブロック図である。上述したように、画像処理装置100は、描画処理プログラムを読み込むことによって、抽出部221と、算出部222と、設定部223と、描画部224との各機能部を構成することができる。また、画像処理装置100は、描画した画像を表示させる表示画面110に接続されている。この制御部となる機能(抽出部221〜描画部224)は、具体的には、たとえば、図2−1に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、I/F209を介して接続された他の装置により、その機能を実現する。また、表示画面110は、ディスプレイ208や、I/F209を介して接続された他の装置により実現される。
抽出部221は、表示画面110を基準としたx値、y値の二次元座標値に加えて、表示画面110に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうち、w値が負の値となる頂点を抽出する機能を有する。なお、抽出されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
算出部222は、抽出部221によって抽出された頂点から描画対象となる三角形の頂点のうち、w値が正の値になる頂点へ結んだ線分の延長線と、表示画面110の枠との交点を算出する機能を有する。算出部222の処理は、抽出部221によって抽出された頂点の数に応じて三種類のパターンに分けられる。抽出された頂点の数が一つの場合、二つの場合、そして、抽出されなかった場合の三種類である(頂点の数が三つの場合は、表示画面110に何も表示されないことを意味するため、描画対象とならない)。
具体的に説明すると、抽出部221によってw値が負の値となる頂点が一つ抽出された場合、算出部222は、抽出された頂点から当該頂点以外の一の頂点へ結んだ線分の延長線と、表示画面110の枠とが交差する第一の交点と、抽出された頂点からこの頂点以外の他の頂点へ結んだ線分の延長線と、表示画面110の枠とが交差する第二の交点とを算出する。
また、抽出部221によってw値が負の値となる頂点が二つ抽出された場合、算出部222は、抽出された頂点のうち一の頂点からw値が正の値となる頂点へ結んだ線分の延長線と、表示画面110の枠とが交差する第一の交点と、抽出された頂点のうち他の頂点からw値が正の値となる頂点へ結んだ線分の延長線と、表示画面110の枠とが交差する第二の交点とを算出する。
そして、抽出部221によってw値が負の値となる頂点が抽出されなかった場合、算出部222はあらたな交点を算出することなく、三角形の同次座標情報をそのまま設定部223へ透過させる。w値が負の値となる頂点が抽出されなかった場合とは、すなわち、すべての頂点が視点の奥に位置しているため、残らず表示画面110に表示される場合をあらわしている(x,y座標が表示画面110外に設定されている場合を除く)。したがって、従来のようにそのままバウンディングボックスを設定すればよい。なお、上述した算出部222による算出結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
設定部223は、算出部222によって算出された交点と、w値が正の値となる頂点とによって構成される多角形に外接する矩形を設定する機能を有する。矩形の設定には様々な手法があり、どれを採用してもよい。たとえば、設定部223は、算出部222によって算出された交点と、三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定すればよい。さらに詳細には、設定部223は、算出部222によって算出された交点と、三角形の頂点のうちw値が正の値となる頂点との各点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定すればよい。なお、設定結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
また、設定部223は、上述したように、算出部222が抽出された頂点の数に応じて交点の算出処理をおこなった場合には、これら頂点と、w値が正の値となる頂点とを用いて矩形を設定すればよい。たとえば、抽出部221によってw値が負の値となる頂点が一つ抽出された場合、設定部223は、抽出された頂点以外のw値が正の値となる二つの頂点と、算出部222によって算出された第一の交点および第二の交点との四点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定する。
また、抽出部221によってw値が負の値となる頂点が二つ抽出された場合、設定部223は、抽出された頂点以外のw値が正の値となる一つの頂点と、算出部222によって算出された第一の交点および第二の交点との三点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定する。
さらに、設定部223は、抽出部221によってw値が負の値となる頂点が抽出されなかった場合、三角形の各頂点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定するという従来のバウンディングボックスの設定をおこなう。
描画部224は、設定部223によって設定された矩形に対してラスタライズをおこなって三角形またはその一部(表示画面110をはみ出している場合)を表示画面110に射影した図形を描画する機能を有する。描画された図形は、たとえば、ディスプレイ208への表示、プリンタ213への印刷出力、I/F209による外部装置への送信がなされる。また、描画された図形を、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶してもよい。
(画像処理装置による描画処理の手順)
つぎに、上述した構成を備えた画像処理装置100によって頂点を設定することによってバウンディングボックスに相当する矩形を設定し描画処理をおこなうまでの手順について説明する。図3は、画像処理装置による頂点設定処理の手順を示すフローチャートである。
図3のフローチャートにおいて、まず、描画対象となる三角形の座標情報が入力されたか否かを判断する(ステップS301)。座標情報とは、図2−2にて説明したように、x,yの座標値にwを加えた同次座標値(x,y,w)である。ステップS301では、この座標情報が入力されるまで待ち(ステップS301:Noのループ)、座標情報が入力されると(ステップS301:Yes)、w値が負となる頂点V(−w)を抽出する(ステップS302)。
つぎに、ステップS302の処理によってw値が負となる頂点V(−w)が抽出されたか否かを判断する(ステップS303)。w値が負となる頂点V(−w)が抽出された場合(ステップS303:Yes)、つぎに、ステップS302の処理によって抽出された頂点V(−w)と、w値が正となる頂点V(+w)との線分の延長線と表示画面110の枠との交点を算出する(ステップS304)。
そして、w値が正となる頂点V(+w)と、ステップS304によって算出された交点VCとから構成される図形を含む矩形を設定して(ステップS305)、ステップS306の処理に移行する。なお、ステップS303において、w値が負となる頂点V(−w)が抽出されなかった場合(ステップS303:No)、入力された座標情報の各頂点V(+w)から矩形を設定して(ステップS307)、ステップS306の処理に移行する。
そして、最後に、ステップS305もしくはステップS307によって設定された矩形内をラスタライズすることによって(ステップS306)、表示画面110に三角形もしくはその一部が描画され、一例の処理を終了する。
このように、本実施の形態にかかる画像処理では、描画対象となる三角形の表示位置が、視点の手前になるか否かに応じて、表示画面に射影した図形と表示画面の枠との交点を三角形を包括するための頂点として自動的に算出する。これらの頂点によって構成される多角形に外接した矩形を設定することによって、効率的な描画をおこなうためのバウンディングボックスを提供することができる。
<実施例>
つぎに、本実施の形態にかかる画像処理を具体的な機器に適用した実施例について説明する。まず、本実施例にかかる画像処理装置のハードウェア構成について説明する。図4は、本実施例にかかる画像処理装置400のハードウェア構成を示すブロック図である。上述した実施の形態では、汎用の情報処理装置に本実施の形態にかかる画像処理を実現する画像処理プログラムを読み込ませることによって、画像処理装置を実現していた。しかしながら、実際の画像処理装置は、高速な描画を実現する機能に特化したグラフィックLSIによって実現されることが一般的である。したがって、以下実施例では、グラフィクスLSIを画像処理装置400として機能させる場合の構成および処理手順について説明する。
(画像処理装置のハードウェア構成)
図4に示した画像処理装置400は、グラフィクスLSIによって構成され、描画された画像は、フレームバッファ410に出力される。画像処理装置400を構成する各機能部は、基本的に従来のグラフィックスLSIと変わらないが、バウンディングボックス計算部401のみが、本実施例に独自の構成となっている。したがって、以下に、バウンディングボックス計算部401の詳細な構成について説明する。
図5は、バウンディングボックス計算部の構成を示すブロック図である。図5のように、バウンディングボックス計算部401は、頂点保持バッファ501と、w値判定部502と、出力頂点判定部503と、座標位置比較部504と、交点算出部505と、クランプ処理部506と、バウンディングボックス生成部507と、図形描画処理部508とを含んだ構成になっている。これらの構成のうち、頂点保持バッファ501と、w値判定部502と、出力頂点判定部503と、座標位置比較部504と、交点算出部505と、クランプ処理部506とが、従来のバウンディングボックス計算の機能部にあらたに追加された機能となる。
(描画処理の手順)
つぎに、上述したバウンディングボックス計算部401の各機能部の処理内容について描画処理の手順とあわせて説明する。図6は、画像処理装置による描画処理の手順を示すフローチャートである。バウンディングボックス計算部401には、描画対象となる三角形の頂点座標の座標情報が入力される。入力された座標情報は、頂点保持バッファ501に保持されるとともに、w値判定部502に入力され、座標情報の中からw値が判定される。この、w値の判定結果が出力頂点判定部503に入力されることによって、さらに、頂点のうち、w<0の頂点はいくつかを判定される(ステップS601)。
ステップS601において、w<0の頂点が0個と判断された場合(ステップS601:0個)、座標情報は、バウンディングボックス生成部507に入力され、従来と同じバウンディングボックス算出処理をおこなった(ステップS602)後、図形描画処理部508によって描画処理をおこない(ステップS605)、一連の処理を終了する。
ステップS601において、w<0の頂点が1個と判断された場合(ステップS601:1個)、頂点保持バッファ501に入力された座標情報は、座標位置比較部504と、交点算出部505と、クランプ処理部506と、バウンディングボックス生成部507とによって算出処理1が施され(ステップS603)、図形描画処理部508によって描画処理をおこない(ステップS605)、一連の処理を終了する。
同様に、ステップS601において、w<0の頂点が2個と判断された場合(ステップS601:2個)、頂点保持バッファ501に入力された座標情報は、座標位置比較部504と、交点算出部505と、クランプ処理部506、バウンディングボックス生成部507とによって算出処理2が施され(ステップS604)、図形描画処理部508によって描画処理をおこない(ステップS605)、一連の処理を終了する。
この算出処理1,2は、w<0の頂点を含んだ三角形を描画するための処理である。したがって、つぎに、算出処理1,2の詳細な処理手順について説明する。
(算出処理1の手順)
まず、算出処理1の手順について説明する。算出処理1は、三角形の頂点のうち、一つの頂点が視点よりも手前に位置するような場合の描画を実現するための処理である。図7は、算出処理1の手順を示すフローチャートである。図7のフローチャートにおいて、ステップS601の判断処理が終了すると、まず、w<0の頂点V0、それ以外の頂点をV1,V2に設定する(ステップS701)。当然、V1,V2は、w>0となる頂点である。
つぎに、V0,V1を用いた新頂点V1’の算出処理をおこなうとともに(ステップS702)、V0,V2を用いた新頂点V2’の算出処理をおこなう(ステップS703)。これら算出された新頂点が射影図と表示画面との交点となる。そして、V1,V2と、算出されたV1’,V2’との四点を頂点とした多角形についてのバウンディングボックス算出処理をおこなって(ステップS704)、ステップS605の処理に移行する。ここで、ステップS702およびステップS703における新頂点の算出処理の詳細な手順については詳しく後述する。また、ステップS704のバウンディングボックス算出処理は、ステップS602におけるバウンディングボックス算出処理と同様の従来の矩形設定処理である。
(算出処理2の手順)
つぎに、算出処理2の手順について説明する。算出処理2は、三角形の頂点のうち、二つの頂点が視点よりも手前に位置するような場合の描画を実現するための処理である。図8は、算出処理2の手順を示すフローチャートである。図8のフローチャートにおいて、ステップS601の判断処理が終了すると、まず、w>0の頂点V0、それ以外の頂点をV1,V2に設定する(ステップS801)。当然、V1,V2は、w<0となる頂点である。
つぎに、V0,V1を用いた新頂点V1’の算出処理をおこなうとともに(ステップS802)、V0,V2を用いた新頂点V2’の算出処理をおこなう(ステップS803)。これら算出された新頂点が射影図と表示画面との交点となる。そして、V0と、算出されたV1’,V2’との三点を頂点とした多角形についてのバウンディングボックス算出処理をおこなって(ステップS804)、ステップS605の処理に移行する。ここでも、ステップS802およびステップS803における新頂点の算出処理の詳細な手順については詳しく後述する。また、ステップS704のバウンディングボックス算出処理は、ステップS602におけるバウンディングボックス算出処理と同様の従来の矩形設定処理である。
(新頂点算出処理の手順)
つぎに、図7,8に述べた新頂点算出処理の手順について説明する。新頂点とは、実施の形態で説明したように、表示画面110の枠と射影図との交点であり、効率的なバウンディングボックスを算出するために必要となる頂点情報である。図9−1および図9−2は、新頂点の作成処理の手順を示すフローチャートである。図9−1に示した処理は、新頂点のx座標の値を算出するための処理であり、図9−2に示した処理は、新頂点のy座標の値を算出するための処理である。
まず、図9−1のフローチャートでは、出力頂点判定部503において、描画対象となる三角形の各頂点のうち、w<0である頂点をVA、それ以外の頂点をVB、これから求めたい新頂点をVCと設定する(ステップS901)。なお、w<0である頂点が複数ある場合には、いずれか一つを選択して一連の処理を終了させた後、つぎのw<0となる頂点をVAとして再度処理をおこなえばよい。
つぎに、座標位置比較部504によって、VAのy座標がVBのy座標よりも大きいか否かを判断する(ステップS902)。ここで、図10−1は、wの値が負の頂点が1つの場合の新頂点作成例を示す説明図であり、図10−2は、wの値が負の頂点が2つの場合の新頂点作成例を示す説明図である。
図10−1および図10−2の作成例を参照すると、図10−1のV0のように、VAのy座標がVBのy座標よりも大きいと判断された場合(ステップS902:Yes)、つぎに、交点算出部505によって、VCのx座標を、WYminと直線VA−VBとの交点に設定する(ステップS903)。WYminとは、図10−1および図10−2のように表示画面110の枠のうち下底をあわらしている。
一方、ステップS902において、図10−2のV0のように、VAのy座標がVBのy座標よりも大きくないと判断された場合(ステップS902:No)、つぎに、座標位置比較部504によって、VAのy座標がVBのy座標よりも小さいか否かを判断する(ステップS904)。そして、VAのy座標がVBのy座標よりも小さくはないと判断された場合(ステップS904:No)、VAとVBとのy座標は等しいことになる。すなわち、VA−VBは、表示画面に走査線に直交した直線となるため、交点算出部505によって、VCのx座標は、VAのx座標に設定される(ステップS905)。
さらに、ステップS904において、VAのy座標がVBのy座標よりも小さいと判断された場合(ステップS904:Yes)、交点算出部505によって、VCのx座標はWYmax(表示画面110の上底)と直線VA−VBとの交点に設定される(ステップS906)。
以上説明したステップS906までの処理によってVCのx座標は一端設定される。しかしながら、これは、新頂点が表示画面110に収まる場合の設定であり、実際には、新頂点は、表示画面110の外にはみ出ることもある。したがって、つぎに、表示画面110の枠外にはみ出た場合のx座標の修正処理がおこなわれる。まず、VCのx座標がWXmax(表示画面110の右辺)よりも大きいか否かを判断する(ステップS907)。
そして、VCのx座標がWXmaxよりも大きいと判断された場合(ステップS907:Yes)、VCのx座標をWXmaxに設定する(ステップS908)。一方、ステップS907において、VCのx座標がWXmaxよりも大きくないと判断された場合(ステップS907:No)、さらに、VCのx座標がWXmin(表示画面110の左辺)よりも小さいか否かを判断する(ステップS909)。
ステップS909において、VCのx座標がWXminよりも小さいと判断された場合(ステップS909:Yes)、VCのx座標をWXminに設定する(ステップS910)。なお、ステップS909において、VCのx座標がWXminよりも小さくないと判断された場合(ステップS909:No)、ステップS907の前段で設定されたx座標をそのまま保持する。以上説明したステップS907からステップS910までの処理は、バウンディングボックス生成部507によっておこなわれる。
つぎに、VCのy座標の設定について説明する。まず、座標位置比較部504によって、VAのx座標がVBのx座標よりも大きいか否かを判断する(ステップS911)。図10−2のV0のように、VAのx座標がVBのx座標よりも大きいと判断された場合(ステップS911:Yes)、つぎに、交点算出部505によって、VCのy座標を、WXminとが直線VA−VBとの交点に設定する(ステップS912)。
一方、ステップS911において、図10−1のV0のように、VAのx座標がVBのx座標よりも大きくないと判断された場合(ステップS911:No)、つぎに、座標位置比較部504によって、VAのx座標がVBのx座標よりも小さいか否かを判断する(ステップS913)。そして、VAのx座標がVBのx座標よりも小さくはないと判断された場合(ステップS913:No)、VAとVBとのx座標は等しいことになる。すなわち、VA−VBは、表示画面に走査線に直交した直線となるため、交点算出部505によって、VCのy座標は、VAのy座標に設定される(ステップS914)。
さらに、ステップS913において、VAのx座標がVBのx座標よりも小さいと判断された場合(ステップS913:Yes)、交点算出部505によって、VCのy座標はWXmaxと直線VA−VBとの交点に設定される(ステップS915)。
ここでも、ステップS916までの処理によってVCのy座標は一端設定される。以下は、新頂点が表示画面110の枠からはみ出た場合の修正処理となる。まず、VCのy座標がWYmaxよりも大きいか否かを判断する(ステップS916)。
そして、VCのy座標がWYmaxよりも大きいと判断された場合(ステップS916:Yes)、VCのy座標をWYmaxに設定する(ステップS917)。一方、ステップS916において、VCのy座標がWYmaxよりも大きくないと判断された場合(ステップS916:No)、さらに、VCのy座標がWYminよりも小さいか否かを判断する(ステップS918)。
ステップS918において、VCのy標がWYminよりも小さいと判断された場合(ステップS918:Yes)、VCのy座標をWYminに設定する(ステップS919)。なお、ステップS918において、VCのy座標がWYminよりも小さくないと判断された場合(ステップS918:No)、ステップS916の前段で設定されたy座標をそのまま保持し、x,y座標の値が保持された状態で一連の処理が終了する。ここでも、ステップS916からステップS919までの処理は、バウンディングボックス生成部507によっておこなわれる。
このように、本実施例の算出処理1,2では、上述した手順によって表示画面110と描画対象となる三角形との位置関係に応じた最適な頂点を作成することができる。そして、作成された新頂点とw値が正となる頂点とによって構成される多角形1001,1003が設定される。そして、バウンディングボックス生成部507によって多角形1001,1003に外接する矩形1002,1004が生成され、描画処理に利用される。
以上説明したように、本実施の形態によれば、描画対象となる三角形のうち、表示画面に表示される領域を効率的に包括した矩形をバウンディングボックスとして設定するため、表示画面に三次元表示される三角形の形状にかかわらず効率的な描画を実現することができる。
なお、本実施の形態で説明した画像処理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
また、本実施の形態で説明した画像処理装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した画像処理装置100の機能(抽出部〜描画部)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、画像処理装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうちw値が負の値となる頂点を抽出する抽出手段と、
前記抽出手段によって抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する算出手段と、
前記算出手段によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定する設定手段と、
前記設定手段によって設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する描画手段と、
を備えることを特徴とする画像処理装置。
(付記2)前記設定手段は、前記算出手段によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定することを特徴とする付記1に記載の画像処理装置。
(付記3)前記算出手段は、前記抽出手段によってw値が負の値となる頂点が一つ抽出された場合、抽出された頂点から当該頂点以外の一の頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第一の交点と、当該抽出された頂点から当該頂点以外の他の頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第二の交点とを算出し、
前記設定手段は、前記一の頂点および他の頂点と、前記算出手段によって算出された第一の交点および第二の交点との四点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定することを特徴とする付記1または2に記載の画像処理装置。
(付記4)前記算出手段は、前記抽出手段によってw値が負の値となる頂点が二つ抽出された場合、抽出された頂点のうち一の頂点から、w値が正の値となる頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第一の交点と、当該抽出された頂点のうち他の頂点からw値が正の値となる頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第二の交点とを算出し、
前記設定手段は、前記w値が正の値となる頂点と、前記算出手段によって算出された第一の交点および第二の交点との三点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定することを特徴とする付記1または2に記載の画像処理装置。
(付記5)前記設定手段は、前記抽出手段によってw値が負の値となる頂点が抽出されなかった場合、前記三角形の各頂点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定することを特徴とする付記1または2に記載の画像処理装置。
(付記6)所定の表示画面に接続可能なコンピュータを、
表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうちw値が負の値となる頂点を抽出する抽出手段、
前記抽出手段によって抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する算出手段、
前記算出手段によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定する設定手段、
前記設定手段によって設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する描画手段、
として機能させることを特徴とする画像処理プログラム。
(付記7)コンピュータが、
表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうちw値が負の値となる頂点を抽出する抽出工程と、
前記抽出工程によって抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する算出工程と、
前記算出工程によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定する設定工程と、
前記設定工程によって設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する描画工程と、
を実行することを特徴とする画像処理方法。
本実施の形態にかかる画像処理の概要を示す説明図である。 画像処理装置のハードウェア構成を示す説明図である。 画像処理装置の機能的構成を示すブロック図である。 画像処理装置による頂点設定処理の手順を示すフローチャートである。 本実施例にかかる画像処理装置のハードウェア構成を示すブロック図である。 バウンディングボックス計算部の構成を示すブロック図である。 画像処理装置による描画処理の手順を示すフローチャートである。 算出処理1の手順を示すフローチャートである。 算出処理2の手順を示すフローチャートである。 新頂点の作成処理の手順を示すフローチャート(その1)である。 新頂点の作成処理の手順を示すフローチャート(その2)である。 wの値が負の頂点が1つの場合の新頂点作成例を示す説明図である。 wの値が負の頂点が2つの場合の新頂点作成例を示す説明図である。 三角形を描画するためのバウンディングボックスの一例を示す説明図である。 理想的なバウンディングボックス設定の一例を示す説明図である。 誤ったバウンディングボックス設定の一例を示す説明図である。 視点と表示画面との関係を示す説明図である。 視点に応じた三角形の射影画像の一例を示す説明図である。 従来の射影画像に対するバウンディングボックス設定の一例を示す説明図である。
符号の説明
100,400 画像処理装置
110 表示画面
200 バス
201 CPU
202 ROM
203 RAM
204 磁気ディスクドライブ
205 磁気ディスク
206 光ディスクドライブ
207 光ディスク
208 ディスプレイ
209 I/F
210 キーボード
211 マウス
212 スキャナ
213 プリンタ
214 ネットワーク(NET)
221 抽出部
222 算出部
223 設定部
224 描画部

Claims (5)

  1. 表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうちw値が負の値となる頂点を抽出する抽出手段と、
    前記抽出手段によって抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する算出手段と、
    前記算出手段によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定する設定手段と、
    前記設定手段によって設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する描画手段と、
    を備えることを特徴とする画像処理装置。
  2. 前記算出手段は、前記抽出手段によってw値が負の値となる頂点が一つ抽出された場合、抽出された頂点から当該頂点以外の一の頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第一の交点と、当該抽出された頂点から当該頂点以外の他の頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第二の交点とを算出し、
    前記設定手段は、前記一の頂点および他の頂点と、前記算出手段によって算出された第一の交点および第二の交点との四点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記算出手段は、前記抽出手段によってw値が負の値となる頂点が二つ抽出された場合、抽出された頂点のうち一の頂点からw値が正の値となる頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第一の交点と、当該抽出された頂点のうち他の頂点からw値が正の値となる頂点へ結んだ線分の延長線と、前記表示画面の枠とが交差する第二の交点とを算出し、
    前記設定手段は、前記w値が正の値となる頂点と、前記算出手段によって算出された第一の交点および第二の交点との三点の二次元座標値の中から、x座標およびy座標の最大値と最小値との組み合わせを頂点とした矩形を設定することを特徴とする請求項1に記載の画像処理装置。
  4. 所定の表示画面に接続可能なコンピュータを、
    表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうちw値が負の値となる頂点を抽出する抽出手段、
    前記抽出手段によって抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する算出手段、
    前記算出手段によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定する設定手段、
    前記設定手段によって設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する描画手段、
    として機能させることを特徴とする画像処理プログラム。
  5. コンピュータが、
    表示画面を基準としたx値、y値の二次元座標値に加えて、前記表示画面に対する視点を原点として奥を正、手前を負とした値をとるw値を含んだ同次座標によってあらわされた三角形の頂点のうちw値が負の値となる頂点を抽出する抽出工程と、
    前記抽出工程によって抽出された頂点から、前記三角形の頂点のうちw値が正の値になる頂点へ結んだ線分の延長線と、前記表示画面の枠との交点を算出する算出工程と、
    前記算出工程によって算出された交点と、前記三角形の頂点のうちw値が正の値となる頂点との各点を頂点とする多角形に外接する矩形を設定する設定工程と、
    前記設定工程によって設定された矩形に対してラスタライズをおこなって前記三角形またはその一部を前記表示画面に射影した図形を描画する描画工程と、
    を実行することを特徴とする画像処理方法。
JP2008200607A 2008-08-04 2008-08-04 画像処理装置、画像処理プログラムおよび画像処理方法 Withdrawn JP2010039680A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008200607A JP2010039680A (ja) 2008-08-04 2008-08-04 画像処理装置、画像処理プログラムおよび画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008200607A JP2010039680A (ja) 2008-08-04 2008-08-04 画像処理装置、画像処理プログラムおよび画像処理方法

Publications (1)

Publication Number Publication Date
JP2010039680A true JP2010039680A (ja) 2010-02-18

Family

ID=42012178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008200607A Withdrawn JP2010039680A (ja) 2008-08-04 2008-08-04 画像処理装置、画像処理プログラムおよび画像処理方法

Country Status (1)

Country Link
JP (1) JP2010039680A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186786A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 図形描画装置および方法
CN110554798A (zh) * 2018-05-31 2019-12-10 日本航空电子工业株式会社 触摸面板
CN115063739A (zh) * 2022-06-10 2022-09-16 嘉洋智慧安全生产科技发展(北京)有限公司 异常行为的检测方法、装置、设备及计算机存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186786A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 図形描画装置および方法
CN110554798A (zh) * 2018-05-31 2019-12-10 日本航空电子工业株式会社 触摸面板
CN110554798B (zh) * 2018-05-31 2023-06-23 日本航空电子工业株式会社 触摸面板
CN115063739A (zh) * 2022-06-10 2022-09-16 嘉洋智慧安全生产科技发展(北京)有限公司 异常行为的检测方法、装置、设备及计算机存储介质
CN115063739B (zh) * 2022-06-10 2023-06-16 嘉洋智慧安全科技(北京)股份有限公司 异常行为的检测方法、装置、设备及计算机存储介质

Similar Documents

Publication Publication Date Title
JP5123588B2 (ja) 表示制御装置および表示制御方法
JP3030206B2 (ja) グラフィック多角形をクリップ領域にクリップする方法および装置
US8269767B2 (en) Multiscale three-dimensional reference grid
JP2006172460A (ja) 3次元電子文書のページに注釈を付ける方法
JPH10283158A (ja) ウィンドウの立体表示装置及びその方法
JP4568750B2 (ja) 描画装置、描画プログラムおよび描画方法
KR20060052042A (ko) 3d에서의 하드웨어 가속화된 안티-엘리어싱 방법 및시스템
KR101323082B1 (ko) 머징된 텍스트 경로에 효과를 적용하기 위한 컴퓨터로 구현된 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 장치
US8482567B1 (en) Line rasterization techniques
KR101507776B1 (ko) 3차원 지도의 외곽선 표현 방법
JP2010039680A (ja) 画像処理装置、画像処理プログラムおよび画像処理方法
JP2006139727A (ja) 3次元図形描画処理装置、画像表示装置、3次元図形描画処理方法、これをコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体
JP4425734B2 (ja) 隠線を消去したベクトルイメージを提供する方法
US8605112B2 (en) Graphics drawing apparatus, method, and program and recording medium on which the program is recorded
JP2007122188A (ja) 画像形成装置及び画像処理方法、並びにプログラム
JP3002972B2 (ja) 3次元画像処理装置
JP2007179272A (ja) コンピュータ支援設計装置、そのプログラム及び方法
JP2001184373A (ja) 図面生成方法およびシステムおよび3次元モデルデータから2次元図面を生成する図面生成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5151946B2 (ja) 描画装置
JP5361315B2 (ja) 情報処理装置及び情報処理方法
CN107862740B (zh) 文字三维模型边缘凸起方法
JP2018019212A (ja) 情報処理装置及び描画処理方法、コンピュータプログラム
JP2014182634A (ja) 情報処理装置、情報処理装置の制御方法、コンピュータプログラム
JP2611599B2 (ja) コンピュータグラフイックスのデータ処理方法及び装置
JP2008203994A (ja) 3次元モデル表示装置、そのプログラム及び方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20111004