(57)【特許請求の範囲】
【請求項１】
物体を構成する面の面データを入力する入力手段と、
前記面データに基づいて、前記物体を構成する面の法線ベクトルを作成する面法線ベクトル作成手段と、
前記面データに基づいて、前記物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成する直方体作成手段と、
作成された直方体を構成する面のうち、最も面積が大きい面を選択する最大面積ビュー面選択手段と、
選択された面の基準ベクトルを作成するビュー面基準ベクトル作成手段と、
前記面法線ベクトル作成手段によって作成された法線ベクトルと前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルとの交差角度に基づいて、前記法線ベクトルの方向を揃える面法線ベクトル揃え手段とを有し、
前記直方体作成手段は、直方体を構成する各辺が、３次元直交座標系のＸ軸、Ｙ軸、Ｚ軸のいずれかの軸に平行になるように、前記最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成し、
前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物部品であるか、小物部品であるかを判断し、大物部品であれば、前記最大面積ビュー面選択手段によって選択された面が、Ｘ、Ｙビュー、Ｙ、Ｚビュー、Ｚ、Ｘビューのいずれから見た面であるのかを判断し、Ｘ、Ｙビューであれば、＋Ｚの方向を基準ベクトルの方向に設定し、Ｙ、Ｚビューであれば、前記選択された面の凸方向を判断して凸方向である＋Ｘまたは−Ｘの方向を基準ベクトルの方向に設定し、Ｚ、Ｘビューであれば、＋Ｙの方向を基準ベクトルの方向に設定することを特徴とする図形表裏設定装置。
【請求項２】
前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物部品であるか、小物部品であるかを判断し、小物部品であれば、前記選択された面の凸方向を判断して凸方向であるＸ、Ｙ、Ｚのいずれかの＋または−方向を基準ベクトルの方向に設定することを特徴とする請求項１に記載の図形表裏設定装置。
【請求項３】
前記面法線ベクトル揃え手段は、法線ベクトルと基準ベクトルとの交差角度が９０度を超えていれば前記法線ベクトルの方向を１８０度反転させ、９０度以下であれば前記法線ベクトルの方向をそのままとすることを特徴とする請求項１に記載の図形表裏設定装置。
【請求項４】
入力手段により物体を構成する面の面データを入力する段階と、
前記面データに基づいて、面法線ベクトル作成手段により前記物体を構成する面の法線ベクトルを作成する段階と、
前記面データに基づいて、直方体作成手段により前記物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成する段階と、
作成された直方体を構成する面のうち、最大面積ビュー面選択手段により最も面積が大きい面を選択する段階と、
選択された面の基準ベクトルをビュー面基準ベクトル作成手段により作成する段階と、
前記面法線ベクトル作成手段によって作成された法線ベクトルと前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルとの交差角度に基づいて、面法線ベクトル揃え手段により前記法線ベクトルの方向を揃える段階とを含み、
前記直方体作成手段は、直方体を構成する各辺が、３次元直交座標系のＸ軸、Ｙ軸、Ｚ軸のいずれかの軸に平行になるように、前記最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成し、
前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物部品であるか、小物部品であるかを判断し、大物部品であれば、前記最大面積ビュー面選択手段によって選択された面が、Ｘ、Ｙビュー、Ｙ、Ｚビュー、Ｚ、Ｘビューのいずれから見た面であるのかを判断し、Ｘ、Ｙビューであれば、＋Ｚの方向を基準ベクトルの方向に設定し、Ｙ、Ｚビューであれば、前記選択された面の凸方向を判断して凸方向である＋Ｘまたは−Ｘの方向を基準ベクトルの方向に設定し、Ｚ、Ｘビューであれば、＋Ｙの方向を基準ベクトルの方向に設定することを特徴とする図形表裏設定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元コンピュータグラフィックス描画装置や３次元ＣＡＤなどの図形描画装置に適用する図形表裏設定装置および図形表裏設定方法に関する。
【０００２】
【従来の技術】
３次元コンピュータグラフィックス描画装置や３次元ＣＡＤなどの図形描画装置において、３次元立体の幾何モデルの表現方法として、ワイヤーフレームモデル、サーフェスモデル、ソリッドモデルの３種類の表現方法が用いられている。これらの表現方法のうち、シェーディング処理（隠線消去、隠面消去）が可能なのは、サーフェスモデルとソリッドモデルの２種類の表現方法である。サーフェスモデルの表現方法は、ソリッドモデルの表現方法とは違って、厚みを表現することはできないが、表示に必要なデータ量が少なくて済み、また、表示のための計算量も少なくて済むという利点がある。したがって、自動車の車体パネルのような薄板物は、厚みを表現できなくとも実用上の問題は発生しないため、サーフェスモデルの表現方法を用いて描画している。
【０００３】
サーフェスモデルの表現方法を用いて物体を描画する場合、その物体を構成する面として、平面、円筒面、自由曲面が一般的に用いられる。なお、サーフェスモデルの表現方法は、１つの物体を表現する場合に、その物体を構成する面と面とが離れていてもモデルとしては成立するという特徴を持っている。
【０００４】
サーフェスモデルの表現方法を用いて描画した物体にシェーディング処理を施して、その物体を３次元立体として表示できるようにするためには、まず、その物体を構成しているそれぞれの面の表裏がわからなければならない。視点に対するそれぞれの面の表裏の判断は、たとえば、特開平５−６７２１９号公報に開示されているように、３次元図形に対する視方向ベクトルと３次元図形を構成する面の法線ベクトルとがなす角度から行うものがある。そして、それぞれの面についての表裏の設定は、特開平１０−１７２００７号公報に開示されているように、基準パッチの表裏を基準として基準パッチ以外のすべてのパッチの表裏を設定するものがある。また、物体を速く描画できるようにするためには、シェーディング処理が高速で行われるのが好ましい。シェーディング処理の高速化は、たとえば、特開平７−３２００８７号公報に開示されているように、無駄な表示判定処理を行わないようにすることで達成される。
【０００５】
サーフェスモデルの表現方法を用いて物体を描画する場合、その物体を描画するための面のデータには、必ずその面の表裏を表すためのデータを含んでいる。一般的には、その面の法線ベクトルの方向が表となる。面の法線ベクトルの方向は、面ごとに存在するため、１つの物体を構成する各面の法線ベクトルの方向が必ず揃うとは限らない。
【０００６】
たとえば、図７（ａ）に示してあるような、折れ曲がった板を構成する３つの面のデータ（面の頂点座標や稜線データ）を入力するときに、面の表裏をそろえることを意識していないでその入力を行ってしまうと、データの入力の順序によっては、本来は表と判断されなければならない面が裏と判断されてしまう場合がある。
【０００７】
視点から見て表と判断されるべき面が表と判断されれば、面の法線ベクトルの方向が光線方向を向くことになるので、シェーディング処理後は、図７（ｂ）のように３つの面がきれいに表れ、３つの面が立体的に表示されるが、本来は表と判断されるべき面が間違って裏と判断されてしまうと、その面の法線ベクトルの方向は光線方向とは反対の方向を向くことになり、その面には光が当たらなくなる。このため、たとえば、３つの面のうちの真中の面が裏と判断されたときには、シェーディング処理後は、図７（ｃ）のように１つの面が存在していないかのような表示がされ、面の抜けが発生してしまう。
【０００８】
実際の物体に対してシェーディング処理を行った結果、上記のような面の抜けが発生してしまうと、たとえば図８に示すように、表示される物体のうち、面の抜けた部分はまだらな模様となって表示されるため、物体は、きれいな３次元立体としては表示されなくなってしまう。
【０００９】
シェーディング後の物体がきれいな３次元立体として表示されるようにするため、面の抜けが発生した面の法線ベクトルの方向をオペレータが手作業で反転させたり、コンピュータによって自動的に反転させたりして、間違って裏と判断されてしまった面を、強制的に表と判断させるための作業を行っている。
【００１０】
コンピュータによって、面の法線ベクトルの方向を揃える作業は、具体的には、次のような手順で行っている。まず、面を揃えるために基準の面を決定する。基準の面の決定は、人間が任意の面を適当に選択することによって行う。つぎに、選択した基準の面と隣り合う面を探す。隣り合っているかどうかは、面同士の頂点座標の一致、稜線の一致に基づいて図形描画装置が自動的に行う。なお、基準の面と隣り合う面を探すためは、物体を構成している基準の面以外のすべての面に対して、面同士の頂点座標が一致しているか否か、稜線が一致しているか否か、を調べなければならない。このため、隣り合う面を探すために、たとえば自動車の車体パネルを例に取れば、数千の面を対象とすることになり、隣り合う面を探すためにも多くの時間を要する。
【００１１】
隣り合う面が見つかると、隣り合う面の向きを基準の面の向きと同じくする。つまり、両面の法線ベクトルの方向を揃える。法線ベクトルの方向を揃える処理が終了した面には、処理済みの印を付けて、基準の面に処理済の面を含める。つまり、処理済の面の集合が基準の面となる。以上のような処理を、物体を構成するすべての面に対して行う。この処理によれば、物体を構成する面がすべて隣接していれば、鋭角的な折れがあったとしても、すべての面の法線ベクトルの方向を揃えることができる。
【００１２】
【発明が解決しようとする課題】
しかしながら、上記のような従来の図形描画装置では、ある面を基準として、面同士の頂点座標の一致、稜線の一致に基づいて隣り合う面を見つけるようにしていたため、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じてしまった場合には、法線ベクトルの方向を揃える処理がすべての面に対して実行されず、すべての面の方向を揃えることができなくなってしまうという問題がある。
【００１３】
また、上記のような従来の図形描画装置では、隣り合う面を面同士の頂点座標の一致、稜線の一致に基づいて順次探し出さなければならなかったため、隣り合う面を探し出すのに時間がかかるという問題があった。特に、自動車の車体パネルのように自由曲面の数が大きい大規模な物体では、多大の時間がかかることになる。また、面の数が多いと、法線ベクトルの方向を揃える処理にも多大な時間がかかる。
【００１４】
本発明は、このような従来の図形描画装置の問題点を解決するために成されたものであり、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能な、図形表裏設定装置および図形表裏設定方法の提供を目的とする。
【００１５】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、請求項１に記載の発明にかかる図形表裏設定装置は、物体を構成する面の面データを入力する入力手段と、前記面データに基づいて、前記物体を構成する面の法線ベクトルを作成する面法線ベクトル作成手段と、前記面データに基づいて、前記物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成する直方体作成手段と、作成された直方体を構成する面のうち、最も面積が大きい面を選択する最大面積ビュー面選択手段と、選択された面の基準ベクトルを作成するビュー面基準ベクトル作成手段と、前記面法線ベクトル作成手段によって作成された法線ベクトルと前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルとの交差角度に基づいて、前記法線ベクトルの方向を揃える面法線ベクトル揃え手段とを有し、前記直方体作成手段は、直方体を構成する各辺が、３次元直交座標系のＸ軸、Ｙ軸、Ｚ軸のいずれかの軸に平行になるように、前記最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成し、前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物部品であるか、小物部品であるかを判断し、大物部品であれば、前記最大面積ビュー面選択手段によって選択された面が、Ｘ、Ｙビュー、Ｙ、Ｚビュー、Ｚ、Ｘビューのいずれから見た面であるのかを判断し、Ｘ、Ｙビューであれば、＋Ｚの方向を基準ベクトルの方向に設定し、Ｙ、Ｚビューであれば、前記選択された面の凸方向を判断して凸方向である＋Ｘまたは−Ｘの方向を基準ベクトルの方向に設定し、Ｚ、Ｘビューであれば、＋Ｙの方向を基準ベクトルの方向に設定することを特徴とする。
【００１６】
この請求項１に記載の発明では、法線ベクトルと基準ベクトルの交差角度にしたがって、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えている。したがって、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の方向を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このために、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
また、面の方向を揃えるための基準方向を、Ｘ、Ｙ、Ｚの３軸に平行な方向に限定しているので、基準方向の選択を容易に行うことができ、面の表裏方向を揃える処理の高速化を図ることができる。
さらに、Ｘ、Ｙ、Ｚの３軸のいずれかの方向を、面を揃える方向として選択しているので、実用的な精度で面の方向を揃えることができる。車体パネルは、Ｘ、Ｙ、Ｚの軸平行な方向のビュー（Ｘ、Ｙビュー、Ｙ、Ｚビュー、Ｚ、Ｘビュー）のうちのいずれかから見れば、車体パネルの構成面は、ほとんど重なることなく見ることができるからである。
【００２１】
請求項２に記載の発明にかかる図形表裏設定装置は、請求項１に記載の図形表裏設定装置において、前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物部品であるか、小物部品であるかを判断し、小物部品であれば、前記選択された面の凸方向を判断して凸方向であるＸ、Ｙ、Ｚのいずれかの＋または−方向を基準ベクトルの方向に設定することを特徴とする。
【００２２】
請求項２に記載の発明では、面の方向を揃えるための基準の方向（表側の方向）を車体パネルの大きさや形状の特徴によって決定している。車体パネルの場合、大物部品は形状の特徴よりもビューで、小物部品はビューよりも形状の特徴で表裏を判断するのが望ましい。このような判断に基づいて面の方向を決定すれば、どのような部品でも確実に面の方向を判定することができる。
【００２３】
請求項３に記載の発明にかかる図形表裏設定装置は、請求項１に記載の図形表裏設定装置において、前記面法線ベクトル揃え手段は、法線ベクトルと基準ベクトルとの交差角度が９０度を超えていれば前記法線ベクトルの方向を１８０度反転させ、９０度以下であれば前記法線ベクトルの方向をそのままとすることを特徴とする。
【００２４】
請求項３に記載の発明では、隣接する面の表裏とは無関係に、法線ベクトルと基準ベクトルとの交差角度によって、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えている。したがって、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の表裏方向を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このために、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
【００２５】
請求項４に記載の発明にかかる図形表裏設定方法は、入力手段により物体を構成する面の面データを入力する段階と、前記面データに基づいて、面法線ベクトル作成手段により前記物体を構成する面の法線ベクトルを作成する段階と、前記面データに基づいて、直方体作成手段により前記物体を構成する面を包含する最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成する段階と、作成された直方体を構成する面のうち、最大面積ビュー面選択手段により最も面積が大きい面を選択する段階と、選択された面の基準ベクトルをビュー面基準ベクトル作成手段により作成する段階と、前記面法線ベクトル作成手段によって作成された法線ベクトルと前記ビュー面基準ベクトル作成手段によって作成された基準ベクトルとの交差角度に基づいて、面法線ベクトル揃え手段により前記法線ベクトルの方向を揃える段階とを含み、前記直方体作成手段は、直方体を構成する各辺が、３次元直交座標系のＸ軸、Ｙ軸、Ｚ軸のいずれかの軸に平行になるように、前記最小体積の直方体、あるいは当該直方体と相似形状の直方体を作成し、前記ビュー面基準ベクトル作成手段は、前記最大面積ビュー面選択手段によって選択された面の面積に基づいて、前記物体が大物部品であるか、小物部品であるかを判断し、大物部品であれば、前記最大面積ビュー面選択手段によって選択された面が、Ｘ、Ｙビュー、Ｙ、Ｚビュー、Ｚ、Ｘビューのいずれから見た面であるのかを判断し、Ｘ、Ｙビューであれば、＋Ｚの方向を基準ベクトルの方向に設定し、Ｙ、Ｚビューであれば、前記選択された面の凸方向を判断して凸方向である＋Ｘまたは−Ｘの方向を基準ベクトルの方向に設定し、Ｚ、Ｘビューであれば、＋Ｙの方向を基準ベクトルの方向に設定することを特徴とする。
【００２６】
この請求項４に記載の発明では、法線ベクトルと基準ベクトルの交差角度にしたがって、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えている。したがって、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の表裏方向を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このために、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
また、面の方向を揃えるための基準方向を、Ｘ、Ｙ、Ｚの３軸に平行な方向に限定しているので、基準方向の選択を容易に行うことができ、面の表裏方向を揃える処理の高速化を図ることができる。
さらに、Ｘ、Ｙ、Ｚの３軸のいずれかの方向を、面を揃える方向として選択しているので、実用的な精度で面の方向を揃えることができる。車体パネルは、Ｘ、Ｙ、Ｚの軸平行な方向のビュー（Ｘ、Ｙビュー、Ｙ、Ｚビュー、Ｚ、Ｘビュー）のうちのいずれかから見れば、車体パネルの構成面は、ほとんど重なることなく見ることができるからである。
【００２７】
【発明の効果】
以上説明したように、請求項1または４に記載の発明によれば、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の表裏方向を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このために、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になるという効果を奏する。
また、面の方向を揃えるための基準方向を、Ｘ、Ｙ、Ｚの３軸に平行な方向に限定しているので、基準方向の選択を容易に行うことができ、面の表裏方向を揃える処理の高速化を図ることができるという効果を奏する。
さらに、Ｘ、Ｙ、Ｚの３軸のいずれかの方向を、面を揃える方向として選択しているので、実用的な精度で面の方向を揃えることができるという効果を奏する。
【００３０】
請求項２に記載の発明によれば、面の方向を揃えるための基準の方向（表側の方向）を車体パネルの大きさや形状の特徴によって決定しているので、どのような部品でも確実に面の方向を判定することができる。
【００３１】
請求項３に記載の発明によれば、隣接する面の表裏とは無関係に、法線ベクトルと基準ベクトルとの交差角度によって、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えているので、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
【００３２】
請求項４に記載の発明によれば、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このために、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になるという効果を奏する。
また、面の方向を揃えるための基準方向を、Ｘ、Ｙ、Ｚの３軸に平行な方向に限定しているので、基準方向の選択を容易に行うことができ、面の表裏方向を揃える処理の高速化を図ることができるという効果を奏する。
さらに、Ｘ、Ｙ、Ｚの３軸のいずれかの方向を、面を揃える方向として選択しているので、実用的な精度で面の方向を揃えることができるという効果を奏する。
【００３３】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる図形表裏設定装置および図形表裏設定方法の好適な実施の形態を詳細に説明する。
【００３４】
図１は、本発明にかかる図形表裏設定装置の概略構成を示すブロック図である。本発明にかかる図形表裏設定装置は、たとえば、３次元コンピュータグラフィックス描画装置や３次元ＣＡＤなどの図形描画装置内に設置される。
【００３５】
データ入力部１０は、物体を構成する面の面データ（たとえば、頂点座標データ、稜線に関するデータ）を入力し、入力した面データを、後段の直方体作成部１１と面法線ベクトル作成部１２に出力する。
【００３６】
直方体作成部１１は、データ入力部１０から出力された面データから、その面データで構成される物体を包含する、最も体積の小さな直方体、あるいは当該直方体と相似形状の直方体を作成する。なお、直方体作成部１１は、その直方体を構成する各辺が、３次元直交座標系のＸ軸、Ｙ軸、Ｚ軸のいずれかの軸に平行になるように直方体を作成する。たとえば、物体が図２の車体パネル２０であれば、図３のように、その車体パネル２０を包含する直方体３０を作成する。車体パネル２０に関するデータと作成された直方体３０に関するデータは、後段のビュー面面積演算部１３に送られる。
【００３７】
面法線ベクトル作成部１２は、データ入力部１０から出力された面データから、その面の中心付近（中心付近でなくても良いが）の法線ベクトルを、たとえば、特開平５−６７２１９号公報にも開示されているような従来の方法で作成する。面の法線ベクトルの方向は、その面の表裏を表す。たとえば、法線ベクトルの方向がその面から外側に向かう方向であれば、その面は光線の当たる表の面であり、逆に、法線ベクトルの方向がその面に向かう方向であれば、その面は光線の当たらない裏の面である。
【００３８】
ビュー面面積演算部１３は、直方体作成部１１によって作成された直方体３０の各頂点の座標データに基づいて、図４のように、各ビュー（Ｘ、Ｙ、Ｚの３方向）から見た、直方体３０を構成する３つの面（ａ、ｂ、ｃ）の面積を求める。求めたそれぞれの面の面積は、後段の最大面積ビュー面選択部１４に送られる。
【００３９】
最大面積ビュー面選択部１４は、ビュー面面積演算部１３から送られてきた３つの面（ａ、ｂ、ｃ）の面積の内、最も面積の大きい面を選択し、その面がどのビューから見たものであるかを判断する。ビュー面面積演算部１３から送られてきた３つの面（ａ、ｂ、ｃ）の面積が図４に示すようなものであれば、最大面積ビュー面選択部１４は、最も面積が大きいｂの面を選択し、ｂの面は、ＹＺビューから見た面であると判断する。選択された面の面積と、判断されたビューは、後段のビュー面基準ベクトル作成部１５に送られる。
【００４０】
ビュー面基準ベクトル作成部１５は、最大面積ビュー面選択部１４から送られてきた面の面積に基づいて、その物体が大物部品であるか、大物部品でないかを判断する。大物部品であるか、大物部品でないかの判断は、たとえば面の面積が１ｍ2よりも大きいか、小さいかによって行う。大物部品と判断されたときには、最大面積ビュー面選択部１４から送られてきたビューに基づいて、基準ベクトルを作成する。なお、基準ベクトルの方向は、Ｘ軸、Ｙ軸、Ｚ軸のいずれかの軸に沿う方向である。また、大物部品でないと判断されたときには、直方体作成部１１が持っている、その物体の面データを入力し、その面データに基づいて、その物体が最大面積ビュー面選択部１４から送られてきたビューのどちら側（手前側、奥側）に凸であるかが判断され、その判断に基づいて基準ベクトルを作成する。作成された基準ベクトルは、後段の面法線ベクトル揃え部１６に送られる。
【００４１】
面法線ベクトル揃え部１６は、ビュー面基準ベクトル作成部１５によって作成された任意の面の基準ベクトルと、面法線ベクトル作成部１２によって作成されたその面の法線ベクトルとが成す角度を求める。その角度が９０度よりも大きければ、その面に対する表裏の判断が逆である可能性が高いので、その面の法線ベクトルの向きを１８０度反転させる。法線ベクトルの向きが揃えられた後の法線ベクトルの方向に関するデータおよびその面の面データは、データ出力部１７に送られる。
【００４２】
データ出力部１７は、送られてきた、法線ベクトルの方向に関するデータおよび面データを外部に出力する。
【００４３】
図形表裏設定装置を構成する各ブロックの概略の機能は以上のとおりである。つぎに、図５および図６のフローチャートに基づいて、図形表裏設定装置の一連の動作を具体的に説明する。
【００４４】
図形表裏設定装置の動作には、大きく分けて２つの動作がある。１つは、物体を構成する各面の形状を調べて、各面の基準ベクトルの方向を求める第１の処理である。そしてもう１つは、求めた基準ベクトルの方向から、各面の法線ベクトルの方向を揃える第２の処理である。
【００４５】
第１の処理は、図５のフローチャートに示されている処理であり、図１に示した、直方体作成部１１、ビュー面面積演算部１３、最大面積ビュー面選択部１４およびビュー面基準ベクトル作成部１５によって実行される。
【００４６】
第２の処理は、図６のフローチャートに示されている処理であり、図１に示した、面法線ベクトル作成部１２、面法線ベクトル揃え部１６によって実行される。
【００４７】
まず、第１の処理について説明する。この処理は、図５に示してあるフローチャートの手順で実行される。ここでは、処理の対象となる物体を、図２に示した車体パネル２０とする。
【００４８】
データ入力部１０は、車体パネル２０の面データ（たとえば、頂点座標データ、稜線に関するデータ）を入力し、この面データを、後段の直方体作成部１１と面法線ベクトル作成部１２に出力する。直方体作成部１１は、データ入力部１０から出力された面データから、車体パネル２０を包含する、最も体積の小さな直方体（あるいは、当該直方体と相似形状の直方体）３０（図３参照）を作成する。なお、本実施の形態では、座標系は、図３に示すように幅方向をＸ、長さ方向をＹ、高さ方向をＺとする３次元の直交座標系を用いている。座標系は、この直交座標系以外に、極座標系、円筒座標系を用いても良い（Ｓ１）。
【００４９】
つぎに、ビュー面面積演算部１３は、直方体作成部１１によって作成された直方体３０の８つの頂点の座標から、図４のように、各ビュー（Ｘ、Ｙ、Ｚの３方向）から見た、直方体３０を構成する３つの面（ａ、ｂ、ｃ）それぞれの面積を求める。（Ｓ２）。
【００５０】
最大面積ビュー面選択部１４は、ビュー面面積演算部１３から送られてきた３つの面（ａ、ｂ、ｃ）それぞれの面積の内、最も面積の大きい面を選択し、その面がどのビューから見たものであるかを判断する。ビュー面面積演算部１３から送られてきた３つの面（ａ、ｂ、ｃ）の面積の大きさが、図４に示すようなものであれば、最大面積ビュー面選択部１４は、最も面積が大きいｂの面を選択し、ｂの面は、ＹＺビューから見た面であると判断する。このように、最も大きな面積の面を、基準ベクトルを作成するための候補として選択するのは、車体パネル２０の場合、面積の大きい面が通常は表面または裏面となる可能性が高いからである（Ｓ３）。
【００５１】
ビュー面基準ベクトル作成部１５は、最大面積ビュー面選択部１４から送られてきた面の面積から、その物体が大物部品であるか、大物部品でないかを判断する。大物部品であるか、大物部品でないかの判断は、たとえば面の面積が１ｍ2よりも大きいか、小さいかによって行われる（Ｓ４）。
【００５２】
大物部品であると判断されたときには、ビュー面基準ベクトル作成部１５は、最大面積ビュー面選択部１４から送られてきたビューを調べる（Ｓ５）。
【００５３】
判断されたビューが平面ビュー（Ｘ、Ｙビュー）であれば、＋Ｚ方向を基準ベクトルに設定する。図４でみれば、面ｃが選択された場合であり、基準ベクトルＢｃは、ｃの面から上に離れる方向に設定される（Ｓ６）。一方、認識されたビューが側面ビュー（Ｙ、Ｚビュー）であれば、さらに、車体パネル２０の面データから、車体パネル２０を構成するすべての面のＸ座標の平均値を求め（Ｓ７）、求めた平均値が正の値であれば（Ｓ８）、＋Ｘ方向を基準ベクトルに設定する（Ｓ９）。一方、求めた平均値が負の値であれば（Ｓ８）、−Ｘ方向を基準ベクトルに設定する（Ｓ１０）。このように、Ｘ座標の平均値が＋か−かを求めるのは、車体パネル２０がどちらの方向に凸形状になっているかを判断するためである。また、Ｘ座標の平均値が＋か−かによって基準ベクトルの方向を決めているのは、車体パネル２０の場合、一般的に、凸形状になっている方が表側となる可能性が高いからである。さらに、認識されたビューが正面ビュー（Ｚ、Ｘビュー）であれば、＋Ｙ方向を基準ベクトルに設定する。図４でみれば、面ａが選択された場合であり、基準ベクトルＢａは、ａの面から離れる方向（車両の後ろ方向）に設定される（Ｓ１１）。
【００５４】
大物部品でないと判断されたときには（Ｓ４）、ビュー面基準ベクトル作成部１５は、直方体作成部１１が持っている、車体パネル２０の面データを入力し、その面データに基づいて、最大面積ビュー面選択部１４から送られてきたビューのどちら側（手前側、奥側）に凸であるかが判断され、その判断に基づいて基準ベクトルを作成する。どちら側に凸であるかの判断は、Ｓ８からＳ１０のステップの説明と同じく、車体パネル２０を構成するすべての面のＸ座標の平均値が＋か−かを求めることによって行う（Ｓ１２）。求めた平均値が正の値であれば、＋Ｘ方向を基準ベクトルに設定する。一方、求めた平均値が負の値であれば、−Ｘ方向を基準ベクトルに設定する。つまり、凸形状になっている方の面が表側になるように基準ベクトルを設定する（Ｓ１３）。
【００５５】
車体パネル２０の場合、ほとんどは金型プレスで形成されるため、形状の特徴を単品で見ると、どちらかの側が膨らんでいて、閉じているものはほとんどない。また、車体パネル２０は、その膨らんでいる面の方を外側にして組みつけられる場合が一般的であり、膨らんでいる面の方を表になるように基準ベクトルを設定したほうが面の抜けが生じる確率が少なくなる。ただし、このような基準ベクトルの設定を、すべてのパネルに対して適用してしまうと、たとえば、ホイールハウス系やフロアー系のパネルでは、必ずしも面の抜けが生じる確率が少なくなるとは限らなくなる。また、一般に、大物と呼ばれる部品は、前述のように、ビューによって表の方向を決定しても、面の抜けが生じる確率は少ない。このように、車体部品の特性を考慮して面の表の方向を決定すれば、本来は表と判断されるべき面が間違って裏と判断されることが少なくなり、現実的な方向の決定ができるようになる。
【００５６】
つぎに、第２の処理について説明する。この処理は、図６に示してあるフローチャートの手順で実行される。
【００５７】
面法線ベクトル作成部１２は、データ入力部１０から出力された面データから、１つの面に相当する面データを入手し、その面の中心付近の法線ベクトルを、たとえば、特開平５−６７２１９号公報にも開示されているような従来の方法で作成する。なお、中心付近の法線ベクトルを求めるのは、車体パネル２０の場合、たとえば９０度以上の角度で曲がっているような、極端に曲がった曲面を有していることはほとんど考えられないからであり、中心付近の法線ベクトルを求めれば、ほとんどの場合、車体パネル２０の面の方向を特定することができるからである。面の法線ベクトルの方向は、その面の表裏を表す。たとえば、法線ベクトルの方向がその面から外側に向かう方向であれば、その面は光線の当たる表の面となり、逆に、法線ベクトルの方向がその面に向かう方向であれば、その面は光線の当たらない裏の面となる（Ｓ２１）。
【００５８】
つぎに、面法線ベクトル揃え部１６は、面法線ベクトル作成部１２によって作成された任意の面の法線ベクトルと、図５に示した、第１の処理で求められたその面の基準ベクトル（Ｘ、Ｙ、Ｚの３方向のいずれか）とが成す角度を求める。つまり、ある面の法線ベクトルと基準ベクトルとの交差角度を求める（Ｓ２２）。
【００５９】
面法線ベクトル揃え部１６は、求めた交差角度が９０度を超える場合には（Ｓ２３）、面法線ベクトル作成部１２によって作成された法線ベクトルの方向が反対であると判断し、その法線ベクトルの向きを１８０度反転させる。つまり、その面の表方向と判断された方向を、裏方向と判断させるようにする（Ｓ２４）。一方、求めた交差角度が９０度よりも小さければ（Ｓ２３）、作成された法線ベクトルの方向は正しいと判断し、法線ベクトルの方向はそのままにする（Ｓ２４）。
【００６０】
以上の処理は、車体パネル２０を構成するすべての面について１面ずつ行われる。
【００６１】
このように、本実施の形態では、法線ベクトルと基準ベクトルの交差角度にしたがって、その面の法線ベクトルの方向が正しいか、正しくないかを自動的に判断し、法線ベクトルの方向を揃えるようにしたので、演算誤差などによって、物体を構成するすべての面の内、隣り合っていない面（交差、離れなど）が生じている場合でも、その面の法線ベクトルの方向を揃えることができるようになり、また、面の表裏を揃えるために、面同士の頂点座標の一致、稜線の一致に基づいて、隣り合う面を順次探し出す必要もなくなる。このため、物体を構成する面の表裏方向を高速に、かつ、実用的な精度で揃えることが可能になる。
【図面の簡単な説明】
【図１】本発明にかかる図形表裏設定装置の概略構成を示すブロック図である。
【図２】自動車の車体パネルの形状の一例を示す図である。
【図３】車体パネルを包含する直方体を作成する処理の説明に供する図である。
【図４】直方体の各ビューの面積を求める処理の説明に供する図である。
【図５】基準ベクトルの方向を求める第１の処理を示すフローチャートである。
【図６】各面の法線ベクトルの方向を揃える第２の処理を示すフローチャートである。
【図７】従来のシェーディング処理の説明に供する図である。
【図８】従来のシェーディング処理の問題点の説明に供する図である。
【符号の説明】
１０…データ入力部、
１１…直方体作成部、
１２…面法線ベクトル作成部、
１３…ビュー面面積演算部、
１４…最大面積ビュー面選択部、
１５…ビュー面基準ベクトル作成部、
１６…面法線ベクトル揃え部、
１７…データ出力部、
２０…車体パネル、
３０…直方体。
【図１】
0003900839.tif 000002
【図２】
0003900839.tif 000003
【図３】
0003900839.tif 000004
【図４】
0003900839.tif 000005
【図５】
0003900839.tif 000006
【図６】
0003900839.tif 000007
【図７】
0003900839.tif 000008
【図８】
0003900839.tif 000009