(57)【要約】【課題】三次元モデルに隠された範囲を表示するカメラ位置を自動で設定する画像表示方法を提供する。【解決手段】三次元モデルに隠された範囲を表示するカメラ位置を自動で設定する画像表示方法を実行する情報処理装置は、二次元の平面に投影されている立体の表面上から利用者によって指定された点と対応する三次元モデル上の平面を特定する。次に情報処理装置は、指定された点と対応する三次元モデル上の平面の法線方向を取得し、取得された法線方向に応じて、立体を投影する視点の位置を新たに設定する。そのため、情報処理装置１は、前回の視点からでは立方体によって隠されていた範囲を投影させることができる。結果として、情報処理装置１は、立体に隠された範囲が投影されるように仮想的なカメラの位置を自動的に設定することができる。【選択図】        図１
2011048797.tif 000002
【特許請求の範囲】
【請求項１】
立体が投影された二次元の画像内の一点が指定された場合に、該指定された点に対応する立体の表面を特定する表面特定ステップと、
前記表面特定ステップによって特定された立体の表面の法線方向を取得する法線取得ステップと、
前記法線取得ステップによって取得された法線方向に応じて、前記立体を投影する視点の位置を設定する視点位置設定ステップと、
を含んだことを特徴とする画像表示方法。
【請求項２】
前記指定された点と対応する立体の表面上の点から現在の視点までの距離を計測する視点距離計測ステップをさらに含み、
前記視点位置設定ステップは、前記指定された点と対応する立体の表面上の点から前記法線方向上に存在する点であって、前記指定された点と対応する立体の表面上の点から前記視点距離計測ステップによって計測された前記距離分離れたところに位置する点を新たな視点の位置として設定する事を特徴とする請求項１に記載の画像表示方法。
【請求項３】
前記法線取得ステップは、前記立体の表面が複数の多角形平面で形成されている場合には、前記指定された点と対応する立体の表面上の点の近傍に存在する各多角形平面の法線方向を取得し、当該取得された各法線方向を合成した方向を取得することを特徴とする請求項１または２に記載の画像表示方法。
【請求項４】
前記視点距離計測ステップは、前記指定された点と対応する立体の表面上の点を有する前記立体の表面を囲む各辺のうち前記立体の表面上の点から最も近い辺を判定し、前記立体の表面上の点から前記判定された辺への垂線が前記判定された辺と交差する交点から前記現在の視点までの距離を計測し、
前記視点位置設定ステップは、前記交点を基点とした前記法線方向上の点であって、前記交点から前記視点距離計測ステップによって計測された前記距離分離れたところに位置する点を新たな視点の位置として設定することを特徴とする請求項１または３に記載の画像表示方法。
【請求項５】
前記視点位置設定ステップによって新たに設定された視点と、前記指定された点と対応する立体の表面上の点とを結ぶ線分が他の前記立体と交差する場合には、当該他の立体に含まれる辺のうち、前記交差する点から最も近い辺の方向を補正方向として判定する補正方向判定ステップと、
前記表面上の点と前記新たに設定された視点との距離を変更することなく、前記新たに設定された視点の位置を、前記補正方向判定ステップによって判定された前記補正方向へ傾けるように補正する新視点補正ステップと、をさらに含むことを特徴とする請求項１から４のいずれか一つに記載の画像表示方法。
【請求項６】
二次元の平面に投影されている立体の表面から一つの点が指定された場合には、該指定された点に対応する立体の表面の法線方向を取得する法線取得部と、
前記法線取得部によって取得された法線方向に応じて、前記立体を投影する視点の位置を設定する視点位置設定部と、
を備えることを特徴とする情報処理装置。
【請求項７】
立体が投影された二次元の画像内の一点が指定された場合に、該指定された点に対応する立体の表面を特定する表面特定手順と、
前記表面特定手順によって特定された立体の表面の法線方向を取得する法線取得手順と、
前記法線取得手順によって取得された法線方向に応じて、前記立体を投影する視点の位置を設定する視点位置設定手順と、
をコンピュータに実行させることを特徴とする画像表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像表示方法、情報処理装置および画像表示プログラムに関する。
【背景技術】
【０００２】
近年、三次元モデルを利用する技術として、例えば、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）やデジタルモックアップが知られている。三次元モデルを表示する情報処理装置は、三次元モデルを二次元の面に投影し、投影された二次元の画像を表示する。
【０００３】
具体的には、情報処理装置は、三次元モデルを撮影する仮想的なカメラの位置を設定し、仮想的なカメラによって撮影された三次元モデルを二次元画像として表示する。ここで、情報処理装置は、所定の位置から撮影された三次元モデルを二次元画像として表示するので、二次元画像に表示されない範囲が存在する。このような二次元画像に表示されない状態をオクルージョンという。
【０００４】
図１７を用いて、オクルージョン発生の一例を説明する。情報処理装置は、図１７に示すように、三次元モデルＡと重ねて表示されている三次元モデルＢおよびＣの一部の範囲αを二次元の画像に表示しない。利用者は、表示された画像にオクルージョンが発生した場合には、オクルージョンとなった範囲が表示されるように、手動で仮想的なカメラの位置を移動させる操作を行う。
【０００５】
また、利用者に指定された三次元モデルが二次元の画像に表示されるように仮想的なカメラの位置を自動的に変更する技術が知られている。具体的には、情報処理装置は、ユーザによって指定された三次元モデルがオクルージョンに含まれないように、仮想的なカメラの位置を自動的に移動させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２４８６２号公報
【特許文献２】特開平８−２２１６０２号公報
【特許文献３】特開平１１−１８４８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、利用者が仮想的なカメラの位置を手動で変更し、オクルージョンとなった範囲を表示する方法では、利用者がカメラ位置を試行錯誤しながら変更して適切なカメラ位置を探すため、手間が掛かるという問題があった。
【０００８】
また、上記した仮想的なカメラの位置を自動的に変更する技術では、情報処理装置は、利用者によって指定された三次元モデルがオクルージョンとはならないように仮想的なカメラの位置を自動的に設定する。しかし、情報処理装置は、指定された三次元モデルに隠された範囲が表示されるように仮想的なカメラの位置を自動的に設定することができないという問題があった。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、三次元モデルの表示を行う場合に、三次元モデルに隠された範囲を表示するカメラ位置を自動で設定する画像表示方法を提供する。
【課題を解決するための手段】
【００１０】
本願の開示する画像表示方法は、立体の表面から一つの点が指定された場合には、指定された点における表面の法線を判定し、取得された法線上であって、指定された点から所定の距離離れた位置に視点の位置を移動させる。
【発明の効果】
【００１１】
本願の開示する画像表示方法は、三次元モデルに隠された範囲を表示するので、隠された範囲を利用者が容易に識別することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係る画像表示方法を実行する情報処理装置を説明するためのブロック図である。
【図２】図２は、実施例２に係る画像表示方法を実行する情報処理装置を説明するためのブロック図である。
【図３】図３は、実施例２に係るポリゴン情報記憶部に記憶されたデータを説明するための図である。
【図４】図４は、実施例２に係る画像表示方法の処理の流れを説明するためのフローチャートである。
【図５】図５は、実施例２に係る視点位置を変更する処理を説明するための図である。
【図６】図６は、実施例２に係る情報処理装置が視点Ｔから投影した図である。
【図７】図７は、実施例２に係る情報処理装置が視点Ｔ’から投影した図である。
【図８】図８は、実施例３に係る画像表示方法を実行する情報処理装置を説明するためのブロック図である。
【図９】図９は、実施例３に係る三次元モデル情報記憶部が記憶する情報の一例を表す図である。
【図１０】図１０は、実施例３に係る画像表示方法が実行する処理の流れを説明するためのフローチャート（１）である。
【図１１】図１１は、実施例３に係る画像表示方法の処理の流れを説明するためのフローチャート（２）である。
【図１２】図１２は、実施例３に係る視点位置を変更する処理を説明するための図である。
【図１３】図１３は、オフセット処理を説明するための図である。
【図１４】図１４は、遮蔽物を避ける処理を説明するための図である。
【図１５】図１５は、視点Ｔ３’’から投影した図である。
【図１６】図１６は、画像表示プログラムを実行するコンピュータを説明するための図である。
【図１７】図１７は、従来技術を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して本願に係る画像表示方法の実施例について説明する。
【実施例１】
【００１４】
以下の実施例１では、画像表示方法を実行する装置の構成および処理の流れを順に説明する。
【００１５】
まず最初に、図１を用いて、画像表示方法を実行する情報処理装置の構成について説明する。ここで、図１は、実施例１に係る画像表示方法を実行する情報処理装置を説明するためのブロック図である。情報処理装置１は、記憶部１０と、表面特定部２、法線取得部３および視点位置設定部４を有している。
【００１６】
記憶部１０は、三次元モデルの情報を記憶している。具体的には、記憶部１０は、三次元モデルを形作る点、線および面の情報を記憶している。また、記憶部１０は、三次元モデルを形作る点、線および面の位置を示す情報を記憶している。
【００１７】
表面特定部２は、立体が投影された二次元の画像内の一点が指定された場合に、指定された点に対応する立体の表面を特定する。法線取得部３は、表面特定部２によって特定された立体の表面の法線方向を取得する。視点位置設定部４は、法線取得部３によって取得された法線方向に応じて、立体を投影する視点の位置を設定する。
【００１８】
[実施例１の効果]
上述してきたように、実施例１に係る情報処理装置１は、利用者によって指定された点を含む立体の表面を特定し、特定された表面の法線方向に視点を自動的に移動させる。このため、情報処理装置１は、立方体の上部の面に含まれる点を指定された場合には、立方体の上方へ視点を移動させ、前回の視点からでは立方体によって隠されていた範囲を投影させることができる。結果として、情報処理装置１は、隠された範囲を表示させる視点を利用者が容易に設定することができる。
【実施例２】
【００１９】
以下の実施例２では、画像表示方法を実行する装置の構成および処理の流れを順に説明する。
【００２０】
まず最初に、図２を用いて、画像表示方法を実行する装置の構成について説明する。ここで、図２は、実施例２に係る画像表示方法を実行する情報処理装置を説明するためのブロック図である。情報処理装置１ｂは、表示装置５ｂおよび操作装置６ｂと接続されている。
【００２１】
情報処理装置１ｂは、記憶部１０ｂと処理部２０ｂとを有している。記憶部１０ｂは、ポリゴン情報記憶部１２ｂを有している。また、処理部２０ｂは、投影部２１ｂ、法線取得部２４ｂ、視点位置設定部２５ｂ、視点距離計測部２３ｂおよび表面特定部２２ｂを有している。
【００２２】
表示装置５ｂは、情報処理装置１ｂによって作成された画像を表示する。具体的には、表示装置５ｂは、投影部２１ｂによって投影された画像を表示する。例えば、表示装置５ｂは、液晶ディスプレイやプロジェクタ等である。
【００２３】
操作装置６ｂは、利用者から情報処理装置１に対する操作を受け付ける。また、操作装置６ｂは、表示装置５ｂに表示された画像を介して、利用者が三次元モデルの表面に位置する一点を指定する操作を情報処理装置１ｂに送信する。例えば、操作装置６ｂは、マウスやキーボードである。
【００２４】
ポリゴン情報記憶部１２ｂは、三次元モデルを表示するために、三次元モデルを形作る多角形の情報を記憶する。具体的には、ポリゴン情報記憶部１２ｂは、各三次元モデルの表面を構成する小さな三角形平面（ポリゴン）の情報を記憶している。
【００２５】
そのため、ポリゴン情報記憶部１２ｂは、図３に示すように、ポリゴンが有する各頂点の座標と、規格化された法線ベクトルの情報とを記憶している。つまり、ポリゴンは、３つの頂点の位置を示す座標と、ポリゴンの向きを表す法線情報とを用いて表示される三次元モデルである。ここで、図３は、ポリゴン情報記憶部に記憶されたデータを説明するための図である。
【００２６】
例えば、ポリゴン情報記憶部１２ｂは、ＲＡＭ（Random Access Memory)、ＲＯＭ（Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００２７】
ポリゴン情報記憶部１２ｂは、図３に示すように、ポリゴンＩＤが「１」であるポリゴンとして、座標（ａ１、ｂ１、ｃ１）、（ｄ１，ｅ１，ｆ１）、（ｇ１，ｈ１，ｉ１）に頂点を有するポリゴンを記憶している。また、ポリゴン情報記憶部１２は、ポリゴンＩＤが「１」であるポリゴンの法線ベクトルとして、（ｊ１、ｋ１、ｌ１）を記憶している。
【００２８】
ポリゴン情報記憶部１２ｂは、ポリゴンの表と裏とを表現するために、ポリゴンの法線ベクトルを記憶している。ポリゴン法線ベクトルを用いてポリゴンの向きを示す技術は、公知な技術の一つである。
【００２９】
ここで、ポリゴン情報記憶部１２は、ポリゴン法線方向に対して反時計周りの順番にポリゴンの頂点の位置を示す座標を記憶している。また、各ポリゴンの法線ベクトルは、規格化されている。例えば、ポリゴンＩＤが「１」であるポリゴンの法線ベクトル（ｊ１、ｋ１、ｌ１）は、規格化されているので、以下の式を満たす。
【００３０】
【数１】
2011048797.tif 000003
【００３１】
投影部２１ｂは、各三次元モデルを二次元の面に投影し、投影された画像を表示装置５ｂに表示させる。具体的には、投影部２１ｂは、視点位置設定部２５ｂによって設定された視点の位置に応じて、各三次元モデルを二次元の投影面に投影する。そして、投影部２１ｂは、三次元モデルを投影した画像を表示装置５ｂに表示させる。
【００３２】
例えば、投影部２１ｂは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ (Field Programmable Gate Array)などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００３３】
投影部２１ｂは、三次元モデルを二次元の面に投影する場合には、視点位置設定部２５ｂによって設定された視点を焦点として、三次元モデルを投影する。まず、投影部２１ｂは、視点から所定の距離離れた位置に所定の大きさの投影面を設定する。ここで、投影面は、細かなドットの集合で表現される。投影部２１ｂは、視点と投影面上のドットを結ぶ直線が三次元モデルの表面と交差した場合には、三次元モデルと直線との交点を投影面上のドットに投影する。
【００３４】
例えば、投影部２１ｂは、投影面上のドットＮと視点とを結ぶ直線が三次元モデルの表面の点Ｍと交差している場合には、投影面上のドットＮに三次元モデルの表面の点Ｍを投影する。投影部２１ｂは、投影面上の全てのドットに投影を行う。また、投影部２１ｂは、投影面上のドットと視点とを結ぶ直線が複数の三次元モデルと交差する場合には、投影面に最も近い点のみを投影面に反映させる。
【００３５】
表面特定部２２ｂは、立体が投影された二次元の画像内の一点が指定された場合に、指定された点に対応する立体の表面を特定する。具体的には、表面特定部２２ｂは、表示装置に表示された画像上の点が利用者によって指定された場合には、当該指定された画像上の点が三次元モデルの表面上においてどの位置と対応するのかを計算し、特定する。
【００３６】
利用者は、三次元モデル上の点を指定する場合には、操作装置６ｂを介して、三次元モデルを投影した二次元の画像上の一点を指定する。そのため、情報処理装置１ｂは、表示装置上の点が三次元モデル上のどの点と対応するかを計算する必要がある。そこで、表面特定部２２ｂは、三次元モデルが投影された投影面の位置と視点の位置とを用いて、指定された点が三次元モデル上のどの位置に存在する点であるのかを計算する。以降に、表面特定部２２ｂが実行する処理について詳しく説明する。
【００３７】
例えば、表面特定部２２ｂは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ (Field Programmable Gate Array)などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００３８】
表面特定部２２ｂが行う計算の一例として、利用者が表示装置に表示されれた画像上の点Ｐ（Ｘ、Ｙ）を指定した場合を説明する。ここで、点Ｐ（Ｘ、Ｙ）は、表示装置５ｂに表示された画像の中心を原点（０、０）として、利用者によって指定された画像上の点を二次元の座標系で表すものとする。
【００３９】
表面特定部２２ｂは、利用者によって点Ｐ（Ｘ、Ｙ）を指定された場合には、表示装置５ｂに表示された投影画像の視点の位置を投影部２１ｂから取得する。また、表面特定部２２ｂは、投影面の位置を投影部２１ｂから取得する。そして、表面特定部２２ｂは、取得された視点および投影面の情報を用いて、指定された点Ｐ（Ｘ，Ｙ）の座標を三次元空間の座標に変換する。
【００４０】
例えば、表面特定部２２ｂは、三次元座標系での視点の位置（ｘ１、ｙ１、ｚ１）を投影部２１ｂより取得する。また、表面特定部２２ｂは、投影面が（ａ、０、０）、（０、ｂ、０）、（０，０、ｃ）を通る面であるという情報を投影部２１ｂより取得する。
【００４１】
次に、表面特定部２２ｂは、取得された視点の位置と投影面の位置を用いて、視点から投影面に対する垂線が投影面と交差する点の座標Ｃ１（ｘｃ１、ｙｃ１、ｚｃ１）を計算する。また、原点から投影面に降ろした垂線をｚｘ平面上に投影した線がｘ軸となす角度を「α」とし、原点から投影面に降ろした垂線がｘｚ平面となす角度を「β」とする。
【００４２】
ここで、ｋ１＝ｓｉｎα、ｋ２＝ｃｏｓα／ｓｉｎβ、ｋ３＝ｃｏｓα・ｃｏｓα／ｓｉｎβ、ａｉ＝１／Ａ、ｂｉ＝１／ｂ、ｃｉ＝１／ｃと表記した場合は、指定された画像上の点Ｐ（Ｘ、Ｙ）を三次元モデルの座標系で表した点Ｐ（ｘ、ｙ、ｚ）は、以下の値となる。
【００４３】
【数２】
2011048797.tif 000004
【００４４】
【数３】
2011048797.tif 000005
【００４５】
【数４】
2011048797.tif 000006
【００４６】
表面特定部２２ｂは、数２〜数４を用いて、投影面上の点Ｐ（ｘ、ｙ、ｚ）を計算する。次に、表面特定部２２ｂは、視点と点Ｐとを結ぶ直線と交わり、かつ視点に最も近い位置に存在する三次元モデルの表面を検索する。具体的には、表面特定部２２ｂは、視点（ｘ１、ｙ１、ｚ１）および点Ｐ（ｘ、ｙ、ｚ）を通る直線を示す方程式を計算する。そして、表面特定部２２ｂは、ポリゴン情報記憶部に記憶された情報を用いて、視点と点Ｐとを結ぶ直線と交わる三次元モデルの表面を検索する。
【００４７】
まず、表面特定部２２ｂは、視点（ｘ１、ｙ１、ｚ１）および点Ｐ（ｘ、ｙ、ｚ）を通る直線を示すベクトルＰを計算する。ここで、視点（ｘ１、ｙ１、ｚ１）の位置ベクトルをａ、点Ｐ（ｘ、ｙ、ｚ）の位置ベクトルをｂとすると、視点および点Ｐを通る直線ベクトルＰは、以下の式で表すことができる。
【００４８】
【数５】
2011048797.tif 000007
【００４９】
ここで、ｒは、直線上の位置を示すパラメータである。また、ｒ＞１であるとする。一方、点Ｖ０を通り法線ベクトルｎを有する平面Ｈは、以下の式で表すことができる。
【００５０】
【数６】
2011048797.tif 000008
【００５１】
すると、点Ｖ０を通り法線ベクトルｎを有する平面Ｈと直線ベクトルＰとの交点をＰｘとすると、ベクトルＰｘは、以下の式で表すことができる。
【００５２】
【数７】
2011048797.tif 000009
【００５３】
ここで、ベクトルＰｘは、数７にポリゴン情報記憶部１２ｂに記憶された各ポリゴンのデータを代入した場合には、各ポリゴンを無限に大きくした平面と、数５によって表される直線との交点の位置ベクトルを表す。そこで、表面特定部２２ｂは、ベクトルＰｘが各ポリゴンの範囲内にあるかを判定する。具体的には、表面特定部２２ｂは、ポリゴン情報記憶部１２ｂに記憶された各ポリゴンのデータを数７に代入し、ベクトルＰｘを計算する。次に、表面特定部２２ｂは、以下の式を計算する。
【００５４】
【数８】
2011048797.tif 000010
【００５５】
ここで、ポリゴン情報記憶部１２ｂに記憶された各ポリゴンの頂点をベクトルＡ、ベクトルＢ、ベクトルＣで表す。また、数８に示したｓおよびｔは定数である。ここで、ベクトルＰｘで表される点がベクトルＡ、ベクトルＢ、ベクトルＣで表される頂点を有するポリゴンに含まれる場合には、以下の式を満たす。
【００５６】
【数９】
2011048797.tif 000011
【００５７】
【数１０】
2011048797.tif 000012
【００５８】
【数１１】
2011048797.tif 000013
【００５９】
表面特定部２２ｂは、数７を用いて、ポリゴン情報記憶部１２ｂに記憶された各ポリゴンについてベクトルＰｘを計算する。また、表面特定部２２ｂは、数９〜数１１を用いて、ベクトルＰｘで表される点が各ポリゴンの範囲内にあるかを判定する。
【００６０】
次に、表面特定部２２ｂは、ベクトルＰｘで表される点をポリゴンの範囲内に含むポリゴンが複数ある場合には、直線ベクトルＰとポリゴンとの各交点から視点までの距離を計算し、視点から最も近い位置に存在する交点を指定された点とする。
【００６１】
例えば、表面特定部２２ｂは、ポリゴン情報記憶部１２ｂに記憶されたポリゴンＩＤ「１」のポリゴンと、直線ベクトルＰとの交点を判定する場合には、法線ベクトルをｎとして（ｊ１、ｋ１、ｌ１）を数７へ代入する。また、表面特定部２２ｂは、点Ｖ０として、ポリゴンＩＤ「１」のポリゴン頂点から任意の点、例えば、（ａ１、ｂ１、ｃ１）を数７へ代入する。
【００６２】
次に、表面特定部２２ｂは、ベクトルＰｘを計算した場合には、（ａ１、ｂ１、ｃ１）をベクトルＡとして数８に代入する。また、表面特定部２２ｂは、（ｄ１、ｅ１、ｆ１）をベクトルＢとして数８に代入する。また、表面特定部２２ｂは、（ｇ１、ｈ１、ｉ１）をベクトルＣとして数８に代入する。また、表面特定部２２ｂは、計算されたベクトルＰｘを数８に代入する。
【００６３】
次に、表面特定部２２ｂは、数８を計算した結果、定数ｓおよび定数ｔが数９〜１１を満たすかどうかを判定する。表面特定部２２ｂは、数８を計算した結果、定数ｓおよび定数ｔが数９〜１１を満たす場合には、直線ベクトルＰとポリゴンＩＤ「１」のポリゴンとが位置ベクトルＰｘの点で交わると判定する。
【００６４】
その後、表面特定部２２ｂは、ポリゴン情報記憶部１２ｂに記憶された全てのポリゴンについて、直線ベクトルＰと交わるかを判定する。表面特定部２２ｂは、複数のポリゴンが直線ベクトルＰと交わる場合には、各交点と視点との距離を比較し、最も視点に近い交点が指定された点であると特定する。
【００６５】
表面特定部２２ｂは、指定された画像上の点と対応する立体の表面に含まれる点の位置を特定した場合には、指定された点の座標を視点距離計測部２３ｂおよび視点位置設定部２５ｂへ通知する。また、表面特定部２２ｂは、指定された点を含むポリゴンのＩＤをポリゴン情報記憶部１２ｂより取得し、取得されたポリゴンＩＤを法線取得部２４ｂへ通知する。
【００６６】
視点距離計測部２３ｂは、指定された点と、視点との距離を計測する。具体的には、視点距離計測部２４ｂは、指定された点の座標を表面特定部２２ｂから通知された場合は、視点の座標と指定された点の座標とを用いて、指定された点と、視点との距離を計測する。例えば、視点距離計測部２３ｂは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ (Field Programmable Gate Array)などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００６７】
例えば、視点距離計測部２３ｂは、視点の位置を（ｘ１、ｙ１、ｚ１）、指定された点の座標を（ｘ２、ｙ２、ｚ２）とした場合には、以下の式を用いて、視点から指定された点までの距離Ｒを計算する。
【００６８】
【数１２】
2011048797.tif 000014
【００６９】
視点距離計測部２３ｂは、視点と指定された点との距離Ｒを計算した場合には、計算された距離Ｒを視点位置設定部２５ｂへ通知する。
【００７０】
法線取得部２４ｂは、表面特定部２２ｂによって特定された立体の表面の法線方向を取得する。具体的には、法線取得部２４ｂは、表面特定部２２ｂから通知されたポリゴンＩＤと関連付けられて記憶されたポリゴン法線データをポリゴン情報記憶部１２ｂより取得する。
【００７１】
例えば、法線取得部２４ｂは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ (Field Programmable Gate Array)などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００７２】
例えば、法線取得部２４ｂは、ポリゴンＩＤ「ｎ」を表面特定部２２ｂより通知された場合には、ポリゴン情報記憶部１２ｂからポリゴン法線データ（ｊｎ、ｋｎ、ｌｎ）を取得する。そして、法線取得部２４ｂは、取得されたポリゴン法線データを視点位置設定部２５ｂへ通知する。
【００７３】
視点位置設定部２５ｂは、法線取得部２４ｂによって取得された法線方向に応じて、立体を投影する視点の位置を設定する。具体的には、法線取得部２４ｂによって取得された法線データに応じて、立体を投影するための視点の位置を設定する。
【００７４】
また、視点位置設定部２５ｂは、指定された点から法線方向上に存在する点であって、指定された点から視点距離計測部２３ｂによって計測された距離分離れたところに位置する点を新たな視点の位置として設定する。具体的には、視点位置設定部２５ｂは、表面特定部２２ｂによって通知された点から法線取得部２４ｂによって取得された法線が示す方向に向かって、視点距離計測部２３ｂによって計測された視点と指定された点との距離分離れた点を新たな視点として設定する。
【００７５】
例えば、視点位置設定部２５ｂは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ (Field Programmable Gate Array)などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００７６】
視点位置設定部２５ｂは、指定された点の位置ベクトルをＰｘ、取得された法線ベクトルをｎｉ、計測された距離をＲとすると、新たな視点の位置ベクトルＴを以下の式で計算する。
【００７７】
【数１３】
2011048797.tif 000015
【００７８】
その後、視点位置設定部２５ｂは、数１３を用いて計算されたベクトルＴで表される位置を、新たな視点の位置として設定し、投影部２１ｂへ通知する。
【００７９】
[情報処理装置の処理]
次に、図４を用いて、情報処理装置１ｂが実行する処理の流れを説明する。図４は、実施例２に係る画像表示方法の処理の流れを説明するためのフローチャートである。情報処理装置１ｂは、利用者が表示装置５ｂに表示された投影画像上の点を指定したことをトリガとして、処理を開始する。
【００８０】
まず、表面特定部２２ｂは、指定されたモニタ上の座標を三次元モデルの座標に変換する（ステップＳ１０１）。次に、表面特定部２２ｂは、視点と指定された投影面上の点を通る直線を表すベクトル式を算出する（ステップＳ１０２）。次に、表面特定部２２ｂは、算出された直線と、ポリゴンとの交点を算出し、算出された交点を三次元モデル表面上の指定された点として特定する（ステップＳ１０３）。次に、視点距離計測部２３ｂは、三次元モデル上の指定された点と、視点との距離を計算する（ステップＳ１０４）。
【００８１】
次に、法線取得部２４ｂは、三次元モデル上の指定された点を含むポリゴンをポリゴン情報記憶部１２ｂから検索する（ステップＳ１０５）。次に、法線取得部２４ｂは、検索されたポリゴンが有するポリゴン法線データを取得する（ステップＳ１０６）。次に、視点位置設定部２５ｂは、法線取得部２４ｂによって取得されたポリゴン法線データと、視点距離計測部２３ｂによって計測された距離と、表面特定部２２ｂによって算出された交点の位置とを用いて、新たな視点の位置を設定する（ステップＳ１０７）。
【００８２】
次に、投影部２１ｂは、視点位置設定部２５ｂによって新たに設定された視点を視点として、三次元モデルを投影した投影画像を作成する（ステップＳ１０８）。次に、投影部２１ｂは、投影画像を表示装置５ｂに表示させる（ステップＳ１０９）。その後、情報処理装置１ｂは、処理を終了する。
【００８３】
次に、図５を用いて、実施例２に係る情報処理装置１ｂが実行する処理の例を説明する。図５は、実施例２に係る視点位置を変更する処理を説明するための図である。例えば、情報処理装置１ｂは、図５に示すように、視点Ｔから三次元モデルＣおよび三次元モデルＤを表示させている。
【００８４】
情報処理装置１ｂは、表示装置５ｂに表示させた画像から利用者によって一点が指定され、指定された画像上の点が図５に示す指定点Ｐと対応すると特定した場合には、指定点Ｐを含むポリゴンが有するポリゴン法線の方向を取得する。次に、情報処理装置１ｂは、指定点Ｐと視点Ｔとの距離を計測する。次に、情報処理装置１ｂは、指定点Ｐから法線方向上に存在する点であって、指定点Ｐから視点Ｔまでの距離と同じ距離分離れたところに位置する点Ｔ’を新たな視点の位置として設定する。
【００８５】
つまり、情報処理装置１ｂは、三次元モデルの上方向に視点を新たに設定した場合には、三次元モデルの横方向に視点を設定するよりも、三次元モデルによって隠された範囲を表示させ易い。ここで、情報処理装置１ｂが視点Ｔを視点として三次元モデルＣおよび三次元モデルＤを投影した画像を図６に示す。図６は、実施例２に係る情報処理装置が視点Ｔから投影した図である。
【００８６】
情報処理装置１ｂは、視点Ｔを視点として各三次元モデルを投影した場合には、図６に示すように、隠された範囲βを表示していない。次に、情報処理装置１ｂが新視点Ｔ’を視点として三次元モデルＣおよび三次元モデルＤを投影した画像を図７に示す。情報処理装置１ｂは、新視点Ｔ’を視点として各三次元モデルを投影した場合には、図７に示すように、隠された範囲βを表示することができる。図７は、実施例２に係る情報処理装置が視点Ｔ’から投影した図である。
【００８７】
[実施例２の効果]
上述してきたように、実施例２に記載の情報処理装置１ｂは、三次元モデルが投影された二次元の画像内から利用者によって一点が指定された場合には、指定された点に対応する三次元モデル上の表面の位置を特定する。また、情報処理装置１ｂは、特定された点を含むポリゴンの法線方向を取得する。また、情報処理装置１ｂは、特定された点から現在の視点までの距離を計測する。そして、情報処理装置１ｂは、特定された点から取得された法線方向に向かって計測された距離分離れた点を新たな視点の位置として設定する。
【００８８】
そのため、情報処理装置１ｂは、三次元モデルに隠された範囲を表示するので、利用者が三次元モデルに隠された範囲を容易に識別することができる。すなわち、情報処理装置１ｂは、利用者が三次元モデルの表面上から選択した点の位置に応じて、新たな視点の位置を設定する。そのため、情報処理装置１ｂは、利用者に対して容易に視点の位置を変更させることができる。
【００８９】
情報処理装置１ｂは、指定された点の法線方向を取得し、取得された法線方向に新たな視点を設定するので、視点された点の近隣に存在する隠された範囲を投影可能な視点を設定することができる。結果として、情報処理装置１ｂは、隠された範囲を表示させる視点を利用者が容易に設定することができる。
【００９０】
また、情報処理装置１ｂは、指定された点を含むポリゴンの法線方向を取得し、取得されたポリゴン法線方向に応じて、新たな視点を設定する。ここで、ポリゴンの法線方向は、ポリゴンを表示するために記憶部１０ｂに記憶されている。また、一つのポリゴン上に存在する任意の点は、同一の法線方向を有している。そのため、情報処理装置１ｂは、余計な計算処理等を実行することなく、記憶部１０ｂに記憶されたデータからポリゴンの法線方向を取得することができる。
【実施例３】
【００９１】
以下の実施例３では、画像表示方法を実行する情報処理装置の構成および処理の流れを順に説明する。なお、実施例３と同様の処理および機能については、説明を省略する。
【００９２】
[情報処理装置の構成]
まず最初に、図８を用いて、画像表示方法を実行する装置の構成について説明する。ここで、図８は、実施例３に係る画像表示方法を実行する情報処理装置を説明するためのブロック図である。実施例３に係る情報処理装置１ｃは、記憶部１０ｃおよび処理部２０ｃを有している。また、表示装置５ｃは、表示装置５ｂと同様の表示装置である。また、操作装置６ｃは、操作装置６ｂと同様の表示装置である。
【００９３】
記憶部１０ｃは、三次元モデル情報記憶部１１ｃおよびポリゴン情報記憶部１２ｃを有している。ポリゴン情報記憶部１２ｃは、実施例２に係るポリゴン情報記憶部１２ｂと同様の機能を発揮する。
【００９４】
三次元モデル情報記憶部１１ｃは、複数の三次元モデルの情報を記憶している。具体的には、三次元モデル情報記憶部１１ｃは、図９に示すように、三次元モデルが有する辺の情報を記憶している。図９は、実施例３に係る三次元モデル情報記憶部が記憶する情報の一例を表す図である。
【００９５】
三次元モデル情報記憶部１１ｃは、各辺にＩＤを付して記憶している。例えば、三次元モデル情報記憶部１１ｃは、辺ＩＤが「１」である辺として、点Ｐ１から点Ｐ２までの線分で表すことができる辺を記憶している。また、三次元モデル情報記憶部１１ｃは、各辺を有する面を示す情報として、面ＩＤを記憶している。
【００９６】
例えば、三次元モデル情報記憶部１１ｃは、面ＩＤ「１」の面が辺ＩＤ「１〜３」の辺を有していることを記憶している。三次元モデル情報記憶部１１ｃは、図９に示すように、面ＩＤ「１」の面として、頂点（Ｐ１、Ｐ２、Ｐ３）を有する三角形の平面を記憶している。例えば、三次元モデル情報記憶部１１ｂは、ＲＡＭ（Random Access Memory)、 ＲＯＭ（Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００９７】
処理部２０ｃは、投影部２１ｃ、表面特定部２２ｃ、視点距離計測部２３ｃ、法線取得部２４ｃおよび視点位置設定部２５ｃを有している。投影部２１ｃは、実施例２に係る投影部２１ｂと同様の機能を発揮する。表面特定部２２ｃは、表面特定部２２ｂと同様の機能を発揮する。法線取得部２４ｃは、実施例２に係る法線取得部２４ｂと同様の機能を発揮する。
【００９８】
視点距離計測部２３ｃは、指定された点を有する立体の表面を囲む各辺のうち指定された点から最も近い辺を判定し、指定された点から判定された辺への垂線が判定された辺と交差する交点から現在の視点までの距離を計測する。具体的には、視点距離計測部２３ｃは、指定された点の位置情報を取得した場合には、指定された点を含む三次元モデル上の平面を示す情報を三次元モデル情報記憶部１１ｃより取得する。
【００９９】
例えば、視点距離計測部２３ｃは、面ＩＤが「１」である面の情報を三次元モデル情報記憶部１１ｃから取得した場合には、辺ＩＤが「１〜３」の辺の情報を取得する。次に、視点距離計測部２３ｃは、取得された平面の情報と指定された点の位置情報とを用いて、取得された平面が有する辺のうち、指定された点に最も近い辺を判定する。ここで、指定された点を含む平面が有する辺をエッジという。視点距離計測部２３ｃは、取得された平面を囲む各エッジと指定された点との距離を以下の式、および数１２を用いて計算する。
【０１００】
【数１４】
2011048797.tif 000016
【０１０１】
ここで、ａおよびｄは、エッジの両端に存在する点の位置ベクトルである。ｐは、指定された点の位置ベクトルである。ｑは、指定された点からエッジに下ろした垂線とエッジとの交点の位置ベクトルである。視点距離計測部２３ｃは、各エッジと指定された点との距離を計算した場合には、指定された点に最も近いエッジを判定する。
【０１０２】
具体的には、視点距離計測部２３ｃは、数１２にベクトルｐとベクトルｑを代入し、指定された点から各エッジに下ろした垂線と各エッジとの交点のうち、最も指定された点に近い交点を判定する。そして、視点距離計測部２３ｃは、指定された点に最も近いエッジを判定する。
【０１０３】
視点距離計測部２３ｃは、指定された点に最も近いエッジを判定した場合には、指定された点から判定されたエッジに下ろした垂線とエッジとの交点を判定する。視点距離計測部２３ｃは、交点を判定した場合には、判定された交点から視点までの距離を数１２を用いて計測し、計測した距離を視点位置設定部２５ｃへ通知する。また、視点距離計測部２３ｃは、判定された交点の位置を視点位置設定部２５ｃへ通知する。
【０１０４】
視点位置設定部２５ｃは、指定された点から指定された点に最も近いエッジへ下ろした垂線と、指定された点に最も近いエッジとの交点を基点とする。また、視点位置設定部２５ｃは、基点とした点から、法線取得部２４ｃによって取得された法線方向上の点であって、交点から視点距離計測部２３ｃによって計測された距離分離れたところに位置する点を新たな視点の位置として設定する。
【０１０５】
具体的には、視点位置設定部２５ｃは、視点距離計測部２３ｃによって判定された交点の位置ベクトルをＰｘ、法線取得部２４ｃによって取得された法線ベクトルをｎｉとする。また、視点位置設定部２５ｃは、視点距離計測部２３ｃによって計測された距離をＲとする。
【０１０６】
そして、視点位置設定部２５ｃは、Ｐｘ、ｎｉおよびＲを用いて、ベクトルＴを数１３を用いて計算する。その後、視点位置設定部２５ｃは、数１３を用いて計算されたベクトルＴで表される位置を新たな視点の位置として設定し、投影部２１ｃへ通知する。
【０１０７】
[情報処理装置の処理]
次に、図１０を用いて、情報処理装置１ｃが実行する処理の流れを説明する。図１０は、実施例３に係る画像表示方法が実行する処理の流れを説明するためのフローチャート（１）である。情報処理装置１ｃは、利用者が操作装置６ｃを用いて、表示装置５ｃに表示された投影画像上の点を指定したことをトリガとして、処理を開始する。
【０１０８】
まず、表面特定部２２ｃは、指定されたモニタ上の座標を三次元モデルの座標に変換する（ステップＳ２０１）。次に、表面特定部２２ｃは、視点と指定された投影面上の点を通る直線を表すベクトル式を算出する（ステップＳ２０２）。次に、表面特定部２２ｃは、算出された直線と、ポリゴンとの交点を算出し、算出された交点を三次元モデル上の指定された点として特定する（ステップＳ２０３）。
【０１０９】
次に、法線取得部２４ｃは、三次元モデル上の指定された点を含むポリゴンをポリゴン情報記憶部１２ｃから検索する（ステップＳ２０４）。次に、法線取得部２４ｃは、検索されたポリゴンが有するポリゴン法線データを取得する（ステップＳ２０５）。
【０１１０】
次に、情報処理装置１ｃは、エッジ視点処理を実行する（ステップＳ２０６）。次に、情報処理装置１ｃは、エッジ視点処理によって設定された新たな視点からの画像を作成する（ステップＳ２０７）。次に、投影部２１ｂは、投影画像を表示装置５ｂに表示させる（ステップＳ２０８）。その後、情報処理装置１ｃは、処理を終了する。
【０１１１】
次に、図１１を用いて、エッジ視点処理の流れを具体的に説明する。図１１は、実施例３に係る画像表示方法の処理の流れを説明するためのフローチャート（２）である。情報処理装置１ｃは、法線取得部２４がポリゴン法線データを取得したことを契機として、エッジ視点処理を実行する。
【０１１２】
まず、視点距離計測部２３ｃは、指定された点から一番近いエッジを判定する（ステップＳ３０１）。次に、視点距離計測部２３ｃは、指定された点から判定されたエッジに下ろした垂線とエッジとの交点を判定する（ステップＳ３０２）。次に、視点距離計測部２３ｃは、判定された交点から視点までの距離を計測する（ステップＳ３０３）。
【０１１３】
次に、視点位置設定部２５ｃは、視点距離計測部２３ｃによって判定された交点の位置と、視点距離計測部２３ｃによって計測された距離と、法線取得部２４ｃによって取得された法線データとを用いて、新たな視点の位置を設定する（ステップＳ３０４）。
【０１１４】
例えば、図１２に示すように、情報処理装置１ｃは、利用者によって点Ｐ２が指定された場合には、点Ｐ２における三次元モデル表面の法線方向を取得する。次に、情報処理装置１ｃは、点Ｐ２から最も近くに存在するエッジを判定する。また、情報処理装置１ｃは、点Ｐ２から判定されたエッジに下ろした垂線とエッジとの交点Ｐ２’を判定する。
【０１１５】
次に、情報処理装置１ｃは、点Ｐ２’から点Ｔ２までの距離を計測する。次に、情報処理装置１ｃは、点Ｐ２’から取得された法線方向へ、計測された距離だけ離れた位置を新たな視点Ｔ２’の位置として設定する。その後、情報処理装置１ｃは、エッジ視点処理を終了する。ここで、図１２は、実施例３に係る視点位置を変更する処理を説明するための図である。
【０１１６】
ここで、図１２を用いて、情報処理装置１ｃが特定された点の位置を変更する処理を具体的に説明する。情報処理装置１ｃは、図１２に示すように、視点Ｔ２の位置を視点として三次元モデルＥおよび三次元モデルＦを投影した場合には、範囲γが三次元モデルＥに隠されてしまうため、範囲γを表示させることができない。ここで、指定された点Ｐ２よりも、特定された点に基づいて判定された点Ｐ２’の方が範囲γに近い。
【０１１７】
一般的に、三次元モデルに隠された範囲は、三次元モデルが有するエッジの近辺に存在すると考えられる。情報処理装置１ｃは、指定された点よりも、より隠された範囲に近い点を基点して新たな視点Ｔ２’を設定するので、利用者が隠された範囲を識別しやすくすることができる。結果として、情報処理装置１ｃは、隠された範囲を表示させるとともに、隠された範囲がより利用者にとって識別されやすいように表示させることができる。
【０１１８】
[実施例３の効果]
上述してきたように、実施例３に記載の情報処理装置１ｃは、三次元モデルの表面上から一つの点が指定された場合には、指定された点の法線方向を取得する。また、情報処理装置１ｃは、指定された点を有する平面を囲むエッジのうち、指定された点に最も近いエッジを判定し、指定された点から判定されたエッジへ下ろした垂線と判定されたエッジとの交点を判定する。
【０１１９】
また情報処理装置１ｃは、判定された交点から視点までの距離を計測する。そして、情報処理装置１ｃは、判定された交点から、取得された法線方向へ計測された距離分離れた点を視点の位置として新たに設定する。そのため、情報処理装置１ｃは、投影された範囲を利用者がより識別しやすいように三次元モデルを投影することができる。
【実施例４】
【０１２０】
これまで本発明の実施例について、説明したが本発明は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。
【０１２１】
（１）オフセット及び遮蔽物を避ける処理について
実施例１および実施例２に係る情報処理装置は、指定された点の法線方向を取得し、指定された点から取得された法線方向へ所定の距離離れた位置を新たな視点の位置としていた。また、実施例３に係る情報処理装置は、指定された点の法線方向を取得し、指定された点から最も近いエッジへ下ろした垂線とエッジとの交点から、取得された法線方向へ所定の距離離れた位置を新たな視点の位置としていた。しかし、実施例４に係る情報処理装置はこれに限定されるものではなく、他の処理を付加してもよい。
【０１２２】
例えば、三次元モデルの真上に視点を設定した場合は、投影された画像のコントラストが不明瞭となり、利用者による識別が困難となる場合がある。そのため、情報処理装置は、新たに設定される視点の位置にオフセットを考慮してもよい。例えば、情報処理装置は、図１３に示すように、計算された視点の位置Ｔ４’に対して所定の角度傾けた位置Ｕを新たな視点の位置として設定してもよい。
【０１２３】
また、情報処理装置は、図１３に示したＴ４’を新たな視点として設定した場合には、Ｐ４’を中心としＴ４及びＴ４’を有する円弧の延長上の点Ｕを新たな視点の位置として設定してもよい。
【０１２４】
また、情報処理装置は、公知の技術を利用して、遮蔽物を避ける処理を行ってもよい。一例として、情報処理装置は、図１４に示すように、指定された点Ｐと新たに計算された視点Ｔ３’との間に三次元モデルが存在する場合について説明する。ここで、図１４は、遮蔽物を避ける処理の一例を説明するための図である。
【０１２５】
例えば、本実施例に係る情報処理装置１ｄは、各実施例において説明した処理を実行する各部２１ｄ〜２５ｄを有している。さらに、情報処理装置１ｄは、補正方向判定部２６ｄと新視点補正部２７ｄとを有している。補正方向判定部２６ｄは、視点位置設定部２５ｄによって新たに設定された視点と、指定された点とを結ぶ線分が他の立体と交差するかを判定する。
【０１２６】
また、補正方向判定部２６ｄは、新たな視点と指定された点とを結ぶ線分が他の立体と交差する場合には、新たな視点と指定された点とを結ぶ線分と交差する立体に含まれる辺のうち、交差する点から最も近い辺の方向を補正方向として判定する。
【０１２７】
具体的には、補正方向判定部２６ｄは、視点位置設定部２５ｄが新たな視点Ｔ３’の位置を設定した場合には、指定された点Ｐから新たな視点Ｔ３’までの線分を表すベクトルＰＴ ３’を計算する。次に、補正方向判定部２６ｄは、ベクトルＰＴ ３’と三次元モデルが交差するかどうかを判定する。
【０１２８】
そして、補正方向判定部２６ｄは、ベクトルＰＴ３’と三次元モデルが交差する場合は、ベクトルＰＴ ３’と三次元モデルが交差する点のうち、もっとも点Ｐに近い交点の位置を算出する。一例として、線分ＰＴ３’と三次元モデルが交差する点のうち、最も点Ｐに近い交点Ｑを図１４に示した。
【０１２９】
次に、補正方向判定部２６ｄは、交点Ｑから最も近い位置にあるエッジを判定する。次に、情報処理装置は、交点Ｑから判定されたエッジに下ろした垂線と判定されたエッジとの交点を交点Ｓとして判定する。そして、補正方向判定部２６ｄは、交点Ｑから交点Ｓの方向を補正方向として判定する。
【０１３０】
新視点補正部２７ｄは、指定された点と新たに設定された視点との距離を変更することなく、補正方向判定部２６ｄによって判定された補正方向へ傾けるように、新たに設定された視点の位置を補正する。具体的には、新視点補正部２７ｄは、図１４に示す点Ｐの位置を固定したままで、線分ＰＴ３’を補正方広範手部２６ｄによって判定された交点Ｑから交点Ｓの方向へ傾ける。
【０１３１】
また新視点補正部２７ｄは、線分ＰＴ ３’が判定されたエッジと交わった場合には、さらに線分ＰＴ３’を所定の角度傾ける。図１４に示した場合には、新視点補正部２７ｄは、線分ＰＴ ３’をさらにθだけ傾けている。新視点補正部２７ｄは、得られた線分ＰＴ３’が有する点Ｔ ３’’の位置を新たな視点の位置として補正する。そして、情報処理装置１ｄは、新視点補正部２７ｄによって補正された視点Ｔ３’’から各三次元モデルを投影する。
【０１３２】
例えば、情報処理装置は、視点Ｔ ３’から三次元モデルを投影した場合には、範囲Δを表示させることができないが、視点Ｔ３’’に視点を移動して三次元モデルを投影した場合には、図１５に示すように、範囲Δを表示させることができる。
【０１３３】
情報処理装置は、遮蔽物を避ける処理を行った場合には、新たな視点を設定したにもかかわらず、利用者が識別したい範囲が遮蔽物によって投影されないという問題をさらに解決することができる。
【０１３４】
（２）視点の距離について
実施例１および実施例２では、指定された点から視点までの距離と指定された点から新たに設定される視点までの距離を変更せずに、新たな視点の位置を設定していた。また、実施例３では、指定された点から最近傍のエッジに下ろした垂線とエッジとの交点から視点までの距離と、垂線とエッジとの交点から新たに設定される視点までの距離を変更せずに、新たな視点の位置を設定していた。
【０１３５】
しかし、実施例はこれに限定されるものではなく、例えば、情報処理装置は、指定された点と新たに設定される視点までの距離をあらかじめ利用者が設定するようにしてもよい。また、指定された点を含む三次元モデルの大きさに応じて、指定された点と新たに設定される視点までの距離を自動的に設定してもよい。
【０１３６】
例えば、情報処理装置は、指定された点を含む三次元モデル全体が投影面に投影されるように、指定された点と新たに設定される視点との距離を自動的に設定してもよい。
【０１３７】
（３）取得する法線方向について
実施例１〜３に係る情報処理装置は、指定された点を含むポリゴンが有する法線方向のみを取得していた。しかし、実施例はこれに限定されるものではなく、例えば、複数のポリゴンが有する法線方向を用いてもよい。例えば、法線取得部は、指定された点の近傍に存在する各ポリゴンの法線方向を取得し、取得された各法線方向を合成した方向を取得してもよい。
【０１３８】
具体的には、法線取得部は、指定された点を有するポリゴンおよび指定されたポリゴンと接している複数のポリゴンが有する法線方向を取得し、取得された各法線方向を合成した後に規格化した法線ベクトルを用いて、新たな視点を設定してもよい。
【０１３９】
また、実施例１〜３に係る情報処理装置は、三次元モデル上の一点を指定されていた。しかし、実施例はこれに限定されるものではなく、情報処理装置は、矩形選択を用いて、三次元モデル上の一部分を指定されてもよい。
【０１４０】
例えば、情報処理装置は、三次元モデル上の一部分を矩形選択によって指定された場合には、矩形選択に含まれるポリゴンの法線方向を合成した後に規格化した法線ベクトルを取得する。そして、情報処理装置は、矩形選択によって指定された範囲の重心点を基点とし、取得された法線ベクトルの方向に所定の距離離れた位置を新たな視点として設定してもよい。
【０１４１】
複雑な形状を有する三次元モデルは、様々な向きのポリゴンを有している。しかし、一定の範囲内に含まれる複数のポリゴンは、各ポリゴン法線の向きが大まかにそろっている。そのため、利用者は、好適なポリゴン法線を有するポリゴンを一つ指定するよりも、好適なポリゴン法線を有する大まかな範囲を指定した場合に、新たに設定される好適な視点の位置の方向を容易に指定することができる。
【０１４２】
情報処理装置は、利用者によって指定された範囲に含まれるポリゴンの各ポリゴン法線を合成し、合成されたポリゴン法線に応じた視点を新たに設定するので、利用者が好適なポリゴン法線を容易に指定することができるからである。
【０１４３】
（４）表示方法について
実施例１〜３に係る情報処理装置は、指定された視点に応じて三次元モデルを投影し、投影された画像を画像表示装置に表示させていた。しかし、実施例はこれに限定されるものではなく、例えば、情報処理装置は、新たな視点の位置が設定された場合には、新たに設定された視点に応じて投影された画像を作成し、作成された画像を直前に表示させた画像とは別途表示させてもよい。
【０１４４】
具体的には、情報処理装置は、新たな視点の位置が設定された場合には、新たな視点の位置に応じて投影された画像を作成し、作成された画像を直前に表示された画像とは別ウインドウで表示してもよい。
【０１４５】
また、情報処理装置は、新たな視点が設定された場合には、直前の視点と新たに設定された視点とを結ぶ曲線上から複数の視点を選択し、各視点に応じて投影された画像を段階的に表示するようにしてもよい。例えば、情報処理装置は、新たな視点を設定した場合には、直前の視点の位置から新たな視点の位置まで視点を一定距離ずつ動かしながら、各位置で三次元モデルを投影する。そして情報処理装置は、各視点の位置で投影された三次元モデルの画像を連続で表示させる。
【０１４６】
（５）エッジの選択について
実施例３に係る情報処理装置では、指定された点から指定された点に最も近い辺に垂線を下ろし、垂線と辺との交点を基点として新たな視点を設定していた。しかし、実施例はこれに限定されるものではない。
【０１４７】
例えば、情報処理装置は、三次元モデルが投影された二次元の画像内から一点が指定された場合には、指定された点に対応する立体の表面上の点を特定し、特定された点を含む平面を囲む各辺のうち、視点を基準として指定された点の奥側にある辺を判定する。そして、情報処理装置は、指定された点から判定された辺へ垂線を下ろし、垂線と辺との交点を基点として新たな視点を設定してもよい。
【０１４８】
通常、オクルージョンとなった範囲は、視点を基準として三次元モデルの奥側に発生する。そのため、情報処理装置は、視点を基準として指定された点の奥側にある辺が有する点を基点とした場合には、オクルージョンとなった範囲により近い視点を新たに設定することができる。結果として、情報処理装置は、より適切な視点を新たに設定することができる。
【０１４９】
（６）プログラム
ところで、実施例２および実施例３に係る情報処理装置は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを情報処理装置で実行することによって実現するようにしてもよい。
【０１５０】
そこで、以下では、図１６を用いて、実施例２および実施例３に示した情報処理装置と同様の機能を有するプログラムを実行する情報処理装置の一例を説明する。図１６は、画像表示プログラムを実行するコンピュータを説明するための図である。
【０１５１】
図１６に例示された情報処理装置２００は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）１５０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３０、がバス１７０で接続されている。
【０１５２】
また、図１１に例示された情報処理装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４０がバス１７０で接続されている。さらにバス１７０には、表示装置５および操作装置６と接続するための接続端子部分Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１６０が接続されている。
【０１５３】
ＨＤＤ１５０には、三次元モデル情報記憶テーブル１５１およびポリゴン情報記憶テーブル１５２が記憶されている。三次元モデル情報記憶テーブル１５１は、図８に示した実施例３に係る三次元モデル情報記憶部１１ｃと同様の情報を有している。また、ポリゴン情報記憶テーブル１５２は、図８に示したポリゴン情報記憶部１２ｃと同様の情報、または、図２に示した実施例２に係るポリゴン情報記憶部１２ｂと同様の情報を有している。
【０１５４】
ＲＯＭ１３０には、投影プログラム１３１、表面特定プログラム１３２、視点距離計測プログラム１３３、法線取得プログラム１３４および視点位置設定プログラム１３５があらかじめ保持されている。ＣＰＵ１４０が各プログラム１３１〜１３５をＲＯＭ１３０から読み出して実行することによって、図１１に示すように、各プログラム１３１〜１３５は、投影プロセス１４１、表面特定プロセス１４２、視点距離計測プロセス１４３、法線取得プログラム１４４および視点位置プロセス１４５として機能するようになる。
【０１５５】
なお、各プロセス１４１〜１４５は、図３に示した投影部２１ｂ、表面特定部２２ｂ、視点距離計測部２３、法線取得部２４ｂ、視点位置設定部２５ｂと同様の機能を発揮する。また、各プロセス１４１〜１４５は、図８に示した各部２１ｃ〜２５ｃと同様の機能を発揮するようにすることも可能である。
【０１５６】
なお、各プログラム１４１〜１４５はＲＯＭ１３０に保持されている必要は無く、例えばＨＤＤ１５０に記録されており、ＣＰＵ１４０によって展開され、各プロセス１４１〜１４５として機能するようにしてもよい。また、各プログラム１４１〜１４５は、ＲＡＭ１２０に保持されてもよい。
【０１５７】
なお、本実施例で説明した複製作成プログラムは、あらかじめ用意されたプログラムをパーソナル情報処理装置やワークステーションなどの情報処理装置で実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。
【０１５８】
また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ，ＭＯ、ＤＶＤなどの情報処理装置で読取可能な記録媒体に記録され、情報処理装置によって記録媒体から読み出されることによって実行することもできる。
【０１５９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１６０】
（付記１）立体が投影された二次元の画像内の一点が指定された場合に、該指定された点に対応する立体の表面を特定する表面特定ステップと、
前記表面特定ステップによって特定された立体の表面の法線方向を取得する法線取得ステップと、
前記法線取得ステップによって取得された法線方向に応じて、前記立体を投影する視点の位置を設定する視点位置設定ステップと、
を含んだことを特徴とする画像表示方法。
【０１６１】
（付記２）前記指定された点と対応する立体の表面上の点から現在の視点までの距離を計測する視点距離計測ステップをさらに含み、
前記視点位置設定ステップは、前記指定された点と対応する立体の表面上の点から前記法線方向上に存在する点であって、前記指定された点と対応する立体の表面上の点から前記視点距離計測ステップによって計測された前記距離分離れたところに位置する点を新たな視点の位置として設定する事を特徴とする付記１に記載の画像表示方法。
【０１６２】
（付記３）前記法線取得ステップは、前記立体の表面が複数の多角形平面で形成されている場合には、前記指定された点と対応する立体の表面上の点の近傍に存在する各多角形平面の法線方向を取得し、当該取得された各法線方向を合成した方向を取得することを特徴とする付記１または２に記載の画像表示方法。
【０１６３】
（付記４）前記視点距離計測ステップは、前記指定された点と対応する立体の表面上の点を有する前記立体の表面を囲む各辺のうち前記立体の表面上の点から最も近い辺を判定し、前記立体の表面上の点から前記判定された辺への垂線が前記判定された辺と交差する交点から前記現在の視点までの距離を計測し、
前記視点位置設定ステップは、前記交点を基点とした前記法線方向上の点であって、前記交点から前記視点距離計測ステップによって計測された前記距離分離れたところに位置する点を新たな視点の位置として設定することを特徴とする付記１または３に記載の画像表示方法。
【０１６４】
（付記５）前記視点位置設定ステップによって新たに設定された視点と、前記指定された点と対応する立体の表面上の点とを結ぶ線分が他の前記立体と交差する場合には、当該他の立体に含まれる辺のうち、前記交差する点から最も近い辺の方向を補正方向として判定する補正方向判定ステップと、
前記表面上の点と前記新たに設定された視点との距離を変更することなく、前記新たに設定された視点の位置を、前記補正方向判定ステップによって判定された前記補正方向へ傾けるように補正する新視点補正ステップと、をさらに含むことを特徴とする付記１から４のいずれか一つに記載の画像表示方法。
【０１６５】
（付記６）前記視点位置判定ステップによって、前記新たな視点の位置が判定された場合には、当該新たに判定された視点の位置に応じた平面へ、前記立体の形状を投影した画像を作成し、画像を表示する表示装置に、前回表示した画像とは別途表示させる表示ステップをさらに含むことを特徴とする付記１から５のいずれか一つに記載の画像表示方法。
【０１６６】
（付記７）前記視点位置判定ステップによって、前記新たな視点の位置が判定された場合には、前回判定された前記視点と前記新たな視点とを結ぶ曲線上に存在する複数の点を通過視点として複数選択し、当該選択された各通過視点の位置に応じた各平面へ、立体の形状を投影した画像を作成し、当該作成された画像を段階的に表示することを特徴とする付記１から６のいずれか一つに記載の画像表示方法。
【０１６７】
（付記８）二次元の平面に投影されている立体の表面から一つの点が指定された場合には、該指定された点における表面の法線方向を取得する法線取得部と、
前記法線取得部によって取得された法線方向に応じて、前記立体を投影する視点の位置を設定する視点位置設定部と、
を備えることを特徴とする情報処理装置。
【０１６８】
（付記９）立体が投影された二次元の画像内の一点が指定された場合に、該指定された点を含む立体の表面を特定する表面特定手順と、
前記表面特定手順によって特定された立体の表面の法線方向を取得する法線取得手順と、
前記法線取得手順によって取得された法線方向に応じて、前記立体を投影する視点の位置を設定する視点位置設定手順と、
を含んだことを特徴とする画像表示プログラム。
【符号の説明】
【０１６９】
１  情報処理装置
２  表面特定部
３  法線取得部
４  視点位置設定部
５ｂ  表示装置
６ｂ  操作装置
１０  記憶部
１１ｂ  三次元モデル情報記憶部
１２ｂ  ポリゴン情報記憶部
【図１】
2011048797.tif 000017
【図２】
2011048797.tif 000018
【図３】
2011048797.tif 000019
【図４】
2011048797.tif 000020
【図５】
2011048797.tif 000021
【図６】
2011048797.tif 000022
【図７】
2011048797.tif 000023
【図８】
2011048797.tif 000024
【図９】
2011048797.tif 000025
【図１０】
2011048797.tif 000026
【図１１】
2011048797.tif 000027
【図１２】
2011048797.tif 000028
【図１３】
2011048797.tif 000029
【図１４】
2011048797.tif 000030
【図１５】
2011048797.tif 000031
【図１６】
2011048797.tif 000032
【図１７】
2011048797.tif 000033