(57)【要約】      （修正有）【課題】  メモリ使用状況やメモリ搭載量に応じて、陰線処理に要するメモリ消費量を柔軟に変更し、スワップ発生による処理速度の低下を防ぐ。【解決手段】  予め、メモリの容量のうち陰線処理に利用する容量の上限値を設定して、２次元平面を複数の領域に分割したとき、投影された前記３次元モデルのうち領域に含まれる部分のポリゴンをそれぞれの領域で抽出し、抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、算出された領域毎のメモリ消費量の最大値が上限値以上の場合、２次元平面を更に分割して分割後の領域に投影された３次元モデルに含まれるポリゴンの抽出を行い、抽出されたポリゴンに基づくメモリ消費量の算出を繰り返し、算出された領域毎のメモリ消費量の最大値が上限値を下回る場合、各領域において、抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、複数の領域の陰線処理データを結合する。【選択図】    図３
2005293467.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置において実行され、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理方法であって、
前記画像処理装置は、前記陰線処理に関するデータと前記陰線処理以外の処理に関するデータを格納するメモリを有しており、
予め、前記メモリの容量のうち前記陰線処理に利用する容量の上限値が設定されており、
前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出し、
前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、
前記算出された領域毎のメモリ消費量の最大値が前記上限値以上の場合、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返し、
前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回る場合、前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、前記複数の領域の陰線処理データを結合することを特徴とする陰線処理方法。
【請求項２】
請求項１において、
前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定されることを特徴とする陰線処理方法。
【請求項３】
請求項１において、
予め、更に、メモリ消費量と処理時間に関する優先度が設定され、
前記処理時間の優先度が前記メモリ消費量の優先度より高い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定され、前記処理時間の優先度が前記メモリ消費量の優先度より低い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量より少ない容量が設定されることを特徴とする陰線処理方法。
【請求項４】
画像処理装置において、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理を実行するプログラムであって、
前記画像処理装置は、前記陰線処理に関するデータと前記陰線処理以外の処理に関するデータを格納するメモリを有しており、
予め、前記メモリの容量のうち前記陰線処理に利用する容量の上限値が設定されており、
前記画像処理装置に、
前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出させ、
前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出させ、
前記算出された領域毎のメモリ消費量の最大値が前記上限値以上の場合、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返させ、
前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回る場合、前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、前記複数の領域の陰線処理データを結合させることを特徴とするプログラム。
【請求項５】
複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理を行う画像処理装置であって、
画像処理に伴うデータが格納され、予め、前記陰線処理に使用可能な容量の上限値が設定されるメモリと、
前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出し、前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回るまで、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返すことにより、前記２次元平面の分割の態様を決定する分割態様決定部と、
前記分割態様決定部により決定される分割の態様によって分割された後の前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い領域毎の陰線処理データを作成する陰線処理部と、
前記複数の領域の陰線処理データを結合する結合部とを有することを特徴とする画像処理措置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際の陰線を消去する、いわゆる陰線処理に関し、特にメモリ消費量を最適化して処理を行う陰線処理方法に関する。
【背景技術】
【０００２】
コンピュータグラフィックスによる３次元形状を紙に印刷したり、ディスプレイに表示する際、３次元形状から稜線や輪郭線を抽出し、それを２次元平面に投影した画像が生成される。このとき、視点から３次元形状を見た場合、他の図形に隠れて実際には見ることのない稜線や輪郭線を消去、または線の種類を点線にするなどの処理、いわゆる陰線処理や陰面処理が行われている。
【０００３】
陰線（面）処理としては、３次元形状がポリゴンの集合体として構成されていた場合、各ポリゴンについて奥行き値（Z値）を計算し、Z値の順にソートして描画するZソート法と画素単位でZ値のより小さな図形（手前側の図形）をフレームバッファに描画するZバッファ法が知られている。他にも、画面を複数の矩形ブロックに分割し陰面消去したブロック画像の生成を繰り返すことにより、陰面消去した画像の生成を高速に行えるようにする方法（特許文献１参照）や、Z値に応じて複数のブロックに分割しブロックでのソートを行うと共に、各ブロック内でのソートも行うことで高精度の描画処理を実現する方法（特許文献２参照）、空間領域を直方体に分割し、さらに各直方体を四面体に分割し、等関数値曲面を近似により求めることで高速に奥行順の決定や陰面消去を行う方法（特許文献３参照）や、稜線や輪郭線とポリゴンとの交差判定を数学的に解き、データを高精度で処理する方法等が提案されている。
【特許文献１】特開平９−１７９９９９号公報
【特許文献２】特開平１０−１３４２０４号公報
【特許文献３】特開平７−９２８３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の方法では、陰線処理としてどの方法を採用するかによってメモリの使用量が固定的に決定されてしまうため、陰線処理を行う計算機に搭載されたメモリが少ない旧型のノートPCにて処理を行う場合や、計算機に搭載されたメモリが他の処理に使用された結果、陰線処理に使用可能なメモリが不足している場合に、メモリの内容をハードディスク上のスワップファイル等に一時的に退避させ、必要に応じてメモリに書き戻す動作（スワップ）が頻繁に発生する。一般的に、メモリへのアクセス速度に比べ、ハードディスクへのアクセス速度は遅いため、スワップが発生すると計算機の処理速度は低下してしまう問題があった。
【０００５】
また、メモリの使用状況や搭載量に応じて、陰線処理に要するメモリの消費量を変更することができないため、例えば、マルチタスクOS(Operating System)でバッチ処理的に陰線処理を実行する際、メモリの使用状況に余裕がない場合やメモリ搭載量の少ないマシンにおいては、他の処理を行うためのメモリを確保するため陰線処理に使用するメモリの消費量を抑えるが、メモリの使用状況に余裕がある場合やメモリを増設した場合には、メモリ消費量を気にせず処理速度を優先させるような陰線処理を行うことができないでいた。
【０００６】
そこで本発明の目的は、メモリの使用状況やメモリの搭載量に応じて、陰線処理に要するメモリ消費量を最適化し、スワップの発生を防止する陰線処理方法を提供する。
【課題を解決するための手段】
【０００７】
上記目的は、本発明の第一の態様として、画像処理装置において実行され、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理方法であって、前記画像処理装置は、前記陰線処理に関するデータと前記陰線処理以外の処理に関するデータを格納するメモリを有しており、予め、前記メモリの容量のうち前記陰線処理に利用する容量の上限値が設定されており、前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出し、前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、前記算出された領域毎のメモリ消費量の最大値が前記上限値以上の場合、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返し、前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回る場合、前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、前記複数の領域の陰線処理データを結合することを特徴とする陰線処理方法を提供することにより達成される。
【０００８】
また、上記目的は、第二の態様として、第一の態様において、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定されることを特徴とする陰線処理方法を提供することにより達成される。
【０００９】
また、上記目的は、第三の態様として、第一の態様において、予め、更に、メモリ消費量と処理時間に関する優先度が設定され、前記処理時間の優先度が前記メモリ消費量の優先度より高い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定され、前記処理時間の優先度が前記メモリ消費量の優先度より低い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量より少ない容量が設定されることを特徴とする陰線処理方法を提供することにより達成される。
【００１０】
また、上記目的は、第四の態様として、画像処理装置において、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理を実行するプログラムであって、前記画像処理装置は、前記陰線処理に関するデータと前記陰線処理以外の処理に関するデータを格納するメモリを有しており、予め、前記メモリの容量のうち前記陰線処理に利用する容量の上限値が設定されており、前記画像処理装置に、前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出させ、前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出させ、前記算出された領域毎のメモリ消費量の最大値が前記上限値以上の場合、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返させ、前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回る場合、前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、前記複数の領域の陰線処理データを結合させることを特徴とするプログラムを提供することにより達成される。
【００１１】
また、上記目的は、第五の態様として、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理を行う画像処理装置であって、画像処理に伴うデータが格納され、予め、前記陰線処理に使用可能な容量の上限値が設定されるメモリと、前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出し、前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回るまで、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返すことにより、前記２次元平面の分割の態様を決定する分割態様決定部と、前記分割態様決定部により決定される分割の態様によって分割された後の前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い領域毎の陰線処理データを作成する陰線処理部と、前記複数の領域の陰線処理データを結合する結合部とを有することを特徴とする画像処理措置を提供することにより達成される。
【発明の効果】
【００１２】
本発明によれば、メモリの使用状況やメモリの搭載量に応じて、陰線処理に要するメモリ消費量を最適化し、スワップの発生を防止する陰線処理方法を実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１４】
図１は、本実施形態の３次元画像データの２次元データへの変換における陰線処理方法を実施する画像処理装置の構成例ブロック図（図１Ａ）及び機能ブロック図（図１Ｂ）である。図１Ａにおいて、ROM２に本発明方法を制御するプログラムが格納される。CPU１は、このプログラムを読み出して実行する。RAM３には、画像処理の途中で生じる中間データ等が格納される。
【００１５】
入力装置４は、キーボード等であり、操作者が陰線処理に必要な設定を入力するのに使用される。出力装置５は、CRT(Cathode Ray Tube)モニタ、プリンタ等であり、変換前の３次元画像、変換後の２次元画像や陰線処理に伴う各種メッセージが表示され、また陰線処理に必要な設定の際のインターフェース画面が提供される。
【００１６】
図１Ｂにおいて、３次元画像データが分割態様決定部７に与えられると、予め設定され、例えばRAM３に格納される上限値を基に、３次元画像データを投影する２次元平面を複数の部分領域へ分割する。分割態様決定部７は、各部分領域に対し陰線処理を行う際消費するメモリ消費量が、上限値を下回るまで、２次元平面の分割を行い、最終的な分割態様を陰線処理部８に与える。陰線処理部８は、入力された分割態様に基づき、各部分領域に含まれるポリゴンから線分を抽出して、部分領域毎に陰線処理を行い、結果を陰線処理データとして結合部９に出力する。結合部９は、部分領域毎に作成される陰線処理データを結合して、例えばRAM３に確保されるフレームバッファに書き込む。画像表示部１０は、フレームバッファに書き込まれたデータを、繰り返し読み出し、ビデオ信号等に変換し、出力装置であるCRT(Cathode Ray Tube)モニタ、プリンタ等に出力する。
【００１７】
図２は、一般的な陰線処理方法の処理過程を示すフローチャートである。まず、陰線処理を行う対象の３次元モデル（３次元画像データ）が決定される（Ｓ１）。３次元モデルが分割態様決定部７に与えられ、この時、合わせて視線方向や出力範囲等も決定される。
【００１８】
次に、分割態様決定部７が、３次元モデルを投影する２次元平面を複数の部分領域へ分割する（Ｓ２）。ステップＳ２は、本実施形態の陰線処理法において特徴的な処理であり、図３において詳細を説明する。
【００１９】
ステップＳ２により、分割態様決定部７が最終的な分割の態様を決定すると、分割された各部分領域で陰線処理が行われ、陰線処理データが作成される（Ｓ３）。陰線処理データとは、各部分領域で陰線処理を施した後の、２次元平面に投影された３次元画像データのことである。ステップＳ２は、各部分領域に対して、陰線処理に要するポリゴンが記憶され、陰線処理部８が、そのポリゴンから同一の部分領域に属する境界線を抽出する。つまり、陰線処理部８は、線分の端点が完全に部分領域に含まれるものはそのまま抽出し、部分領域からはみ出している境界線は部分領域に属する部分のみを抽出する。
【００２０】
そして、陰線処理部８は、各部分領域にて取得した境界線の陰線処理を行う。従って、視線方向からは他のポリゴンに重なって見えない線分が消去あるいは線種が点線にされるなどの処理が施される。ステップＳ３にて各部分領域に対し行う陰線処理の方法は、さまざまな陰線処理方法を採用することができる。しかしながら、従来とは異なり、ステップＳ２の分割を経ていることにより、各部分領域の処理を行うにあたりスワップが発生することがない。該当する部分領域にて陰線処理が終了すると記憶していたポリゴンが削除される。
【００２１】
すべての部分領域にて陰線処理データの作成が完了したら、結合部９が、全部分領域の陰線処理データを結合する（Ｓ４）。そして、結合された陰線処理データは例えばRAM３に設けられたフレームバッファに格納され、画像表示部１０により出力装置５であるディスプレイ装置に表示される（Ｓ５）。フレームバッファは、RAM３とは独立して設けることも可能である。出力装置５としては、プリンタ等であってもよい。
【００２２】
図３は、図２のステップＳ２を詳細に説明するためのフローチャートである。まず、陰線処理に使用可能なメモリ消費量の上限値が決定される（Ｓ２１）。上限値は、例えば、ステップＳ２を処理する時点でのRAM３のうち未使用領域の容量（空き容量）に基づいて決定される。メモリ空き容量は、画像処理装置がシステムコマンドを発行することで自動的に取得可能である。これは、画像処理装置のOS(Operating System)に依存して各種存在するものである。メモリ空き容量は、画像処理装置における他の処理によりRAM３が占有されていれば少なく、処理がほとんど行われていなければ多い。従って、画像処理装置におけるRAM３の使用状況に応じて、上限値が変更されることになる。
【００２３】
また、メモリ空き容量は、画像処理装置に搭載されたRAM３の全容量を超えることはないため、陰線処理にて消費されるメモリ容量が搭載メモリ容量を超えることも防止される。こうして画像処理装置は、取得したメモリ空き容量を上限値として設定し、RAM３に格納する。また、メモリ空き容量をすべて陰線処理に割り当てると、他の処理に必要なメモリを奪ってしまい、他の処理が遅くなることが予想される等の事情がある場合には、メモリ空き容量の８０％が上限値として決定されるよう制御することも可能である。
【００２４】
次に、ステップＳ２１で決定された出力範囲内の３次元モデルを２次元平面に投影して、その２次元平面の分割を開始する（Ｓ２２）。例えば、出力範囲内に一部分でも存在し、表面が視点側を向くポリゴンに対し、幾何中心などの代表点を計算し、二分木分割を行う。これには、ポリゴンの数だけ存在する幾何中心を二分するような領域分割を行えばよい。
【００２５】
ステップＳ２２により、２次元平面は複数の部分領域に分割される。次に、各部分領域の陰線処理を行うのに必要なメモリ消費量が算出される（Ｓ２３）。各部分領域の陰線処理で必要なメモリ消費量は、各部分領域に含まれるポリゴン数に比例するため、ステップＳ２３では各部分領域に含まれるポリゴン数がカウントされる。そして、部分領域に含まれるポリゴン数が分かれば、その部分領域の陰線処理に必要なメモリ消費量に換算することが可能である。
【００２６】
続いて、ステップＳ２３で部分領域毎に算出されたメモリ消費量のうち最大のものが、ステップＳ２１で決定された上限値と比較される（Ｓ２４）。部分領域の処理において１つでも上限値以上のメモリ消費量が要求される場合、スワップの発生が予想されるため分割は十分とはいえない。そこで、ステップＳ２３で求められたメモリ消費量のうち最大のものがステップＳ２１で決定された上限値以上である場合（Ｓ２４Ｎｏ）、更に分割数が増やされ（Ｓ２５）、ステップＳ２２に戻り２分木分割が続行される。こうして、分割後の部分領域に対応するメモリ消費量の最大値が上限値を下回るまで、２次元平面の分割が繰り返され、最終的には、どの部分領域の陰線処理に必要なメモリ消費量もステップＳ２１で決定された上限値を下回ることになる。
【００２７】
ステップＳ２４で、最大メモリ消費量が上限値を下回れば（Ｓ２４Ｙｅｓ）、それ以上の分割は停止され、ステップＳ３に進む。
【００２８】
図３に示される処理を行うことにより、各部分領域に対して陰線処理をする際のメモリ消費量は、必ず上限値を下回る。上限値は予め設定され、画像処理装置に搭載されたメモリ容量を超えることがないため、陰線処理によりスワップが発生することが防止できる。また、上限値として、メモリ空き容量が自動的に設定されるため、操作者が特に設定をすることなく、スワップの防止を実現可能である。その一方で、操作者の経験や勘を設定に反映することもでき、柔軟な運用が可能である。こうして、スワップの発生防止により、画像処理装置において処理速度が低下する現象を回避することが可能になる。
【００２９】
上記動作をより具体的に示すために、一例として次のような正六面体を用いて説明する。
【００３０】
図４は、本実施の形態例で使用する３次元図形（正六面体）と、その構成ポリゴンを示す図である。図４Ａは、正六面体の展開図であり、各面に番号を振ってある。各番号は、図４Ｂの面に対応し、図４Ｂで正面に見える面が面１である。以下、上面が面２、底面が面５、右側面が面３、背面が面６、左側面が面４となる。図４Ｂの正六面体の各面（正方形）は、２つのポリゴン（二等辺三角形）から構成され、面１は、ポリゴン１ａ、ポリゴン１ｂから構成される。他の面も同様に２つのポリゴンから構成される。
【００３１】
図５Ａは、図４の３次元図形のうち出力範囲に含まれるものを２次元平面に投影した図である。図５Ａは、視線方向５１としたとき、表面が視点側を向くポリゴンのみを描いており、面１、面２、面３の計６つのポリゴンが描かれる。これは、ステップＳ１で３次元モデルを設定し、視線方向、出力範囲が決定された状態を表す。
【００３２】
続いて、メモリ消費量の上限値が決定される（Ｓ２）。ここでは、上限値として、ポリゴン数が６個の部分領域を処理するのに必要なメモリ消費量がメモリの空き容量に基づき設定されるものとする。
【００３３】
図５Ｂは、ステップＳ３で２次元平面の分割が開始された初期段階を示す図である。図５Ｂは、図５Ａを単純に中央で二分割したものである。図５Ｂでの分割は、説明を簡単化するために、特にポリゴンの重心を考慮して決定されたものではない。
【００３４】
図３のステップＳ２３、Ｓ２４においては、こうして分割された各部分領域でのメモリ使用量が算出され、上限値と比較されるが、次のようにすればよい。図５Ｂにて、右側の部分領域５３に含まれるポリゴンは、表面が視点側を向くことを考慮に入れると、ポリゴン１ａ、ポリゴン１ｂ、ポリゴン２ａ、ポリゴン２ｂ、ポリゴン３ａ、ポリゴン３ｂの６つである。左側の部分領域５２の場合、ポリゴン１ａ、ポリゴン１ｂ、ポリゴン３ａ、ポリゴン３ｂの４つであり、右側の部分領域５３に含まれるポリゴンの方が左側の部分領域５２に含まれるポリゴン数より多い。従って、各部分領域のメモリ使用量のうち最大となるのは右側の部分領域５３であり、そのメモリ使用量は、ポリゴン数６個に対応するメモリ使用量として算出される。そこで、図３のステップＳ２４において、部分領域５３に含まれるポリゴン数に対応するメモリ消費量が図３のステップＳ２１で決定された上限値を超えるかを判定すればよい。
【００３５】
ここでは、部分領域５３でのメモリ消費量が上限値と等しく、下回っていないため、分割は十分ではない。そして、図５Ｂの分割では、分割が十分でないと判定された結果（Ｓ５Ｎｏ）、分割が繰り返され、更に分割が進むとする。
【００３６】
図６Ａは、分割が十分でないと判定された結果、更に分割が進んだ状態を示す図であり、図６Ｂは、図６Ａの円に含まれる部分領域５４を拡大した図である。図６Ａに現されるようになるまで部分領域の分割が進むとすると、図６Ａの円に含まれる部分領域５４に含まれるポリゴン数が最大で、図６Ｂに示されるようにそのポリゴン数は５個である。従って、ポリゴン数５個に対応するメモリ消費量がこの時設定されている上限値を下回るので、これ以上の分割はされず（Ｓ５Ｙｅｓ）、図６Ａが最終的な分割の態様として決定され、その後各部分領域で陰線処理が行われることとなる（Ｓ８、Ｓ９、Ｓ１０）。
【００３７】
なお、図３のステップＳ２１において、上限値は、画像処理装置が自動的に発行するシステムコマンドにより取得されるメモリ空き容量に基づいて決定されたが、操作者が手動でシステムコマンドを発行し、予め画像処理装置に搭載されたメモリ容量を知っており、操作者がその範囲内で上限値を入力設定することも可能である。
【００３８】
図７Ａは、その際表示される設定画面の例である。操作者は、入力装置４を介して、テキストボックス７１にメガバイト（ＭＢ）単位で数値を入力し、OKボタン７２をクリックすれば、その数値が上限値として設定される。図７Ａのような設定画面を介して、操作者が自由に上限値を設定することができることにより、操作者の経験や勘を生かしたより柔軟な陰線処理が可能となる。この場合、メモリ搭載量を下回る容量しか入力できないよう設定しておけば、分割後の部分領域にて、メモリ搭載量を上回るメモリが消費されることでスワップが発生することは避けられる。
【００３９】
また、操作者がメモリ消費量と処理速度に関する優先度を選択し、その優先度に基づいて上限値が設定されてもよい。図７Ｂは、優先度を選択する際に表示される設定画面の例である。操作者は、メモリ消費量を優先させる場合、マウス等の入力装置４を介して、図７Ｂのスライダーバー７３上のポインタ７４を左へ移動させ、処理速度を優先させる場合、ポインタ７４を右へ移動させる。
【００４０】
図８は、優先度の選択を行う場合、その選択より前に、RAM３に予め格納される優先度情報のデータ構成図である。優先度情報には、メモリ消費量を優先させる際の上限値８２と、処理速度を優先させる際の上限値８１が格納される。なお、処理速度を優先させる際の上限値は、陰線処理実行前のメモリ空き容量に基づいて決定されたものである。メモリ消費量を優先させる際の上限値は、メモリ速度を優先させる際の上限値より少なく設定されるが、これは、図７Ａと同様な画面を用いて操作者により入力された数値でも、メモリ空き容量に基づき自動決定される数値（例えば、メモリ空き容量の５０％等）が使用されてもよい。モード８３には、操作者により選択された優先度が格納され、場合に応じて、メモリ消費量、処理速度、中間が格納される。
【００４１】
モードが中間とは、図７Ｂにおいて、メモリ消費量と処理速度の中間が選択された場合であり、この場合にはその相対的な位置によって、上限値を決定する。例えば、メモリ消費量と処理速度の中間地点（５０％地点）が選択されれば、150+(200-150)*0.5=175メガバイトを上限値として決定することも可能である。より一般には、メモリ消費量優先時の上限値＋（処理速度優先時の上限値−メモリ消費量優先時の上限値）＊スライダーバー７３上でのポインタ７４の相対的位置（割合）で求まる。
【００４２】
メモリ消費量を優先させると、２次元平面がより多くの部分領域に分割される。逆に、処理速度を優先させると、その時点でのRAM３の空き容量を最大容量としてより多くのメモリが陰線処理用に確保されることになる。こうして、RAM３の使用状況に応じて、陰線処理に使用されるメモリ消費量を柔軟に変更することができ、画像処理装置の運用を可能にする。例えば、陰線処理を優先的に行いたい時間帯には、処理速度を優先させ、優先処理に多少の時間がかかることは許容されるが、メモリの消費量を抑えたい時間帯には、メモリ消費量を抑えるといった処理が可能になる。なお、中間地点を選択可能にすることで更に柔軟な上限値の設定が可能になる。
【００４３】
更に、ステップＳ３において、２次元平面の分割を開始する前に、分割を全く行なわない場合に使用されるメモリ消費量を算出し、すなわち、２次元平面に含まれるすべてのポリゴンをカウントし、それに対応するメモリ消費量を算出し、それを出力装置５に表示することも可能である。その場合、操作者は、画像処理装置のメモリ搭載量と比較することによって、陰線処理を行うにあたり、どれくらいメモリを増設すべきか判断することができ、便利である。
【００４４】
以上に述べたように、本実施の形態によれば、まず、上限値が画像処理装置のメモリの搭載量以下に設定され、３次元モデルを投影する２次元平面を部分領域に分割して処理を行う際、各部分領域の陰線処理に必要なメモリ消費量が上限値を下回るため、各部分領域を処理する際にスワップが発生することが防止される。
【００４５】
そして、上限値は、システムコマンドを利用して自動的に取得可能な空きメモリ容量、操作者により入力される数値のいずれが使用されてもよいため、画像処理装置におけるメモリの使用状況や、画像処理装置のメモリ搭載量に合わせた柔軟な処理が可能である。更に、メモリ消費量と処理速度に関する情報が格納された優先度情報を用いて上限値のより細かい設定制御を行うことも可能になる。更に、２次元平面を分割することなく陰線処理を行うために必要なメモリ量を把握することができ、増設の際の目安となる。
【００４６】
以上より、本発明によれば、メモリの使用状況やメモリの搭載量に応じて、陰線処理に要するメモリ消費量を最適化し、スワップの発生を防止する陰線処理方法を実現することができる。
【００４７】
以上まとめると付記のようになる。
【００４８】
（付記１）  画像処理装置において実行され、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理方法であって、
前記画像処理装置は、前記陰線処理に関するデータと前記陰線処理以外の処理に関するデータを格納するメモリを有しており、
予め、前記メモリの容量のうち前記陰線処理に利用する容量の上限値が設定されており、
前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出し、
前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、
前記算出された領域毎のメモリ消費量の最大値が前記上限値以上の場合、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返し、
前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回る場合、前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、前記複数の領域の陰線処理データを結合することを特徴とする陰線処理方法。
【００４９】
（付記２）  付記１において、
前記複数の領域への分割は、２分木分割であることを特徴とする陰線処理方法。
【００５０】
（付記３）  付記１において、
前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定されることを特徴とする陰線処理方法。
【００５１】
（付記４）  付記１において、
予め、更に、メモリ消費量と処理時間に関する優先度が設定され、
前記処理時間の優先度が前記メモリ消費量の優先度より高い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定され、前記処理時間の優先度が前記メモリ消費量の優先度より低い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量より少ない容量が設定されることを特徴とする陰線処理方法。
【００５２】
（付記５）  付記１において、
前記画像処理装置は、更に、前記結合された陰線処理データを表示出力する出力装置が接続され、
分割を行わない場合のメモリ消費量を算出し、前記非分割時のメモリ消費量を前記出力装置を介して表示出力することを特徴とする陰線処理方法。
【００５３】
（付記６）  画像処理装置において、複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理を実行するプログラムであって、
前記画像処理装置は、前記陰線処理に関するデータと前記陰線処理以外の処理に関するデータを格納するメモリを有しており、
予め、前記メモリの容量のうち前記陰線処理に利用する容量の上限値が設定されており、
前記画像処理装置に、
前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出させ、
前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出させ、
前記算出された領域毎のメモリ消費量の最大値が前記上限値以上の場合、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返させ、
前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回る場合、前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い、領域毎の陰線処理データを作成した後、前記複数の領域の陰線処理データを結合させることを特徴とするプログラム。
【００５４】
（付記７）  付記６において、
前記複数の領域への分割は、２分木分割であることを特徴とするプログラム。
【００５５】
（付記８）  付記６において、
前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定されることを特徴とするプログラム。
【００５６】
（付記９）  付記６において、
予め、更に、メモリ消費量と処理時間に関する優先度が設定され、
前記処理時間の優先度が前記メモリ消費量の優先度より高い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定され、前記処理時間の優先度が前記メモリ消費量の優先度より低い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量より少ない容量が設定されることを特徴とするプログラム。
【００５７】
（付記１０）  付記６において、
前記画像処理装置は、更に、前記結合された陰線処理データを表示出力する出力装置が接続され、
前記画像処理装置に、分割を行わない場合のメモリ消費量を算出し、前記非分割時のメモリ消費量を前記出力装置を介して表示出力させることを特徴とするプログラム。
【００５８】
（付記１１）  複数のポリゴンから構成される３次元モデルを２次元平面に投影する際に、前記ポリゴンに隠される線分の投影を回避する陰線処理を行う画像処理装置であって、
画像処理に伴うデータが格納され、予め、前記陰線処理に使用可能な容量の上限値が設定されるメモリと、
前記２次元平面を複数の領域に分割したとき、前記投影された前記３次元モデルのうち前記領域に含まれる部分の前記ポリゴンをそれぞれの領域で抽出し、前記抽出されたポリゴンに基づき各領域で消費されるメモリ消費量を算出し、前記算出された領域毎のメモリ消費量の最大値が前記上限値を下回るまで、前記２次元平面を更に分割して分割後の領域に投影された前記３次元モデルに含まれる前記ポリゴンの抽出を行い、該抽出されたポリゴンに基づく前記メモリ消費量の算出を繰り返すことにより、前記２次元平面の分割の態様を決定する分割態様決定部と、
前記分割態様決定部により決定される分割の態様によって分割された後の前記各領域において、前記抽出されたポリゴンに対し陰線処理を行い領域毎の陰線処理データを作成する陰線処理部と、
前記複数の領域の陰線処理データを結合する結合部とを有することを特徴とする画像処理措置。
【００５９】
（付記１２）  付記１１において、
前記分割態様決定部は、前記２次元平面を２分木分割することを特徴とする画像処理措置。
【００６０】
（付記１３）  付記１１において、
前記上限値は、前記陰線処理開始前の前記メモリの空き容量が設定されることを特徴とする画像処理装置。
【００６１】
（付記１４）  付記１１において、
前記メモリに、更に、メモリ消費量と処理時間に関する優先度が設定され、
前記処理時間の優先度が前記メモリ消費量の優先度より高い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量に基づき設定され、前記処理時間の優先度が前記メモリ消費量の優先度より低い場合、前記上限値は、前記ポリゴンの抽出前の前記メモリの空き容量より少ない容量が設定されることを特徴とする画像処理装置。
【００６２】
（付記１５）  付記１１において、
更に、前記結合された陰線処理データを外部表示用に出力する画像表示部を有し、
前記分割態様決定部は、更に、分割を行わない場合のメモリ消費量を算出し、前記非分割時のメモリ消費量を前記画像表示部を介して外部表示用に出力することを特徴とする画像処理装置。
【図面の簡単な説明】
【００６３】
【図１】Ａは、本発明の実施形態における画像処理装置の構成例ブロック図であり、Ｂは、本発明の実施形態における画像処理装置の機能ブロック図である。
【図２】陰線処理方法の処理過程を示すフローチャートである。
【図３】図２のステップＳ２を詳細に説明するためのフローチャートである。
【図４】本実施の形態例で使用する３次元図形（正六面体）と、その構成ポリゴンを示す図であり、Ａは、正六面体の展開図であり、Ｂは３次元図形をポリゴンへ分解したときの図である。
【図５】Ａは、３次元図形を２次元平面に投影した図であり、Ｂは、２次元平面の分割が開始された初期段階を示す図である。
【図６】Ａは、分割が十分でないと判定された結果、更に分割が進んだ状態を示す図であり、Ｂは、図６Ａの円に含まれる部分領域を拡大した図である。
【図７】Ａは、上限値が操作者により入力設定される際に表示される画面例であり、Ｂは、３次元図形を２次元平面に投影した図であり、Ｂは、優先度を選択する際に表示される設定画面の例である。
【図８】RAMに予め格納される優先度情報のデータ構成図である。
【符号の説明】
【００６４】
１  CPU、２  ROM、３  RAM、４  入力装置、５  出力装置、６  バス
【図１】
2005293467.tif 000003
【図２】
2005293467.tif 000004
【図３】
2005293467.tif 000005
【図４】
2005293467.tif 000006
【図５】
2005293467.tif 000007
【図６】
2005293467.tif 000008
【図７】
2005293467.tif 000009
【図８】
2005293467.tif 000010