(57)【特許請求の範囲】
【請求項１】
観察者の視点の位置姿勢を取得する取得工程と、
前記取得工程で取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程とを備える画像処理方法であって、
記録モードを含む複数モードの何れかを設定する設定工程と、
前記記録モードが設定されている場合は、前記取得工程で取得した位置姿勢に基づいて前記生成工程で生成した画像をメモリに記録する処理を行う記録工程と、
前記記録モード以外のモードが設定されている場合は、前記記録工程で記録された画像に対応する位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記取得工程で取得した視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断工程と、
前記判断工程で前記規定条件を満たしていると判断した場合には、前記記録工程で記録した画像を前記出力工程により外部に出力するように制御する工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記判断工程では、
前記視点の位置を通り、前記視点の姿勢を方向ベクトルとする視線直線を設定した場合に、当該視線直線が前記新規仮想物体を貫いているか否かを判断することで、前記規定条件を満たしているか否かを判断することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記判断工程では更に、
前記新規仮想物体の法線ベクトルと前記方向ベクトルとの角度に応じて、前記新規仮想物体が表から観察されているか否かを判断することで、前記規定条件を満たしているか否かを判断することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記判断工程では更に、
前記取得工程で連続して取得された位置姿勢に基づく前記視線直線が前記新規仮想物体を貫いており、且つ前記新規仮想物体が表から観察されていると判断された場合には、前記規定条件を満たしていると判断することを特徴とする請求項２に記載の画像処理方法。
【請求項５】
更に、前記視点から見た現実空間の画像を取得する取得工程を備え、
前記生成工程は、生成した前記画像を、前記取得した現実空間の画像上に重畳した画像を生成することを特徴とする請求項１に記載の画像処理方法。
【請求項６】
更に、前記新規仮想物体のサイズを指示する工程を備え、
前記新規仮想物体は、当該指示されたサイズにスケーリングしてから配置されることを特徴とする請求項１に記載の画像処理方法。
【請求項７】
観察者の視点の位置姿勢を取得する取得工程と、
前記取得工程で取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程とを備える画像処理方法であって、
記録モードを含む複数モードの何れかを設定する設定工程と、
前記記録モードが設定されている場合は、前記取得工程で取得した位置姿勢に基づいた注目仮想物体に係る物体情報をメモリに記録する処理を行う記録工程と、
前記記録モード以外のモードが設定されている場合は、前記記録工程で記録された物体情報に対応する位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記取得工程で取得された視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断工程と、
前記判断工程で前記規定条件を満たしていると判断した場合には、前記注目仮想物体を前記記録工程で記録した前記物体情報に従って更新した画像を生成するよう、前記生成工程による処理を制御する工程と
を備えることを特徴とする画像処理方法。
【請求項８】
前記物体情報は、前記注目仮想物体の質感、位置姿勢、のうち少なくとも１つを含むことを特徴とする請求項７に記載の画像処理方法。
【請求項９】
観察者の視点の位置姿勢を取得する取得工程と、
前記取得工程で取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程とを備える画像処理方法であって、
記録モードを含む複数モードの何れかを設定する設定工程と、
前記記録モードが設定されている場合は、前記取得工程で取得した位置姿勢、及び前記仮想空間中に配される光源に係る光源情報を対応付けてメモリに記録する処理を行う記録工程と、
前記記録モード以外のモードが設定されている場合は、前記記録工程で記録した何れか１つの位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断工程と、
前記判断工程で前記規定条件を満たしていると判断した場合には、前記光源を前記光源情報に従って更新し、更新した光源に基づいた画像を生成するよう、前記生成工程による処理を制御する工程と
を備えることを特徴とする画像処理方法。
【請求項１０】
観察者の視点の位置姿勢を取得する取得手段と、
前記取得手段が取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段とを備える画像処理装置であって、
記録モードを含む複数モードの何れかを設定する設定手段と、
前記記録モードが設定されている場合は、前記取得手段が取得した位置姿勢に基づいて前記生成手段が生成した画像をメモリに記録する処理を行う記録手段と、
前記記録モード以外のモードが設定されている場合は、前記記録手段が記録した画像に対応する位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記取得手段が取得した視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断手段と、
前記判断手段が前記規定条件を満たしていると判断した場合には、前記記録手段が記録した画像を前記出力手段が外部に出力するように制御する手段と
を備えることを特徴とする画像処理装置。
【請求項１１】
観察者の視点の位置姿勢を取得する取得手段と、
前記取得手段が取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段とを備える画像処理装置であって、
記録モードを含む複数モードの何れかを設定する設定手段と、
前記記録モードが設定されている場合は、前記取得手段が取得した位置姿勢に基づいた注目仮想物体に係る物体情報をメモリに記録する処理を行う記録手段と、
前記記録モード以外のモードが設定されている場合は、前記記録手段が記録した物体情報に対応する位置姿勢に基づいて前記仮想空間中配置された新規仮想物体と前記取得手段が取得した視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断手段と、
前記判断手段が前記規定条件を満たしていると判断した場合には、前記注目仮想物体を前記記録手段が記録した前記物体情報に従って更新した画像を生成するよう、前記生成手段を制御する手段と
を備えることを特徴とする画像処理装置。
【請求項１２】
観察者の視点の位置姿勢を取得する取得手段と、
前記取得手段が取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段とを備える画像処理装置であって、
記録モードを含む複数モードの何れかを設定する設定手段と、
前記記録モードが設定されている場合は、前記取得手段が取得した位置姿勢、及び前記仮想空間中に配される光源に係る光源情報を対応付けてメモリに記録する処理を行う記録手段と、
前記記録モード以外のモードが設定されている場合は、前記記録手段が記録した何れか１つの位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断手段と、
前記判断手段が前記規定条件を満たしていると判断した場合には、前記光源を前記光源情報に従って更新し、更新した光源に基づいた画像を生成するよう、前記生成手段を制御する手段と
を備えることを特徴とする画像処理装置。
【請求項１３】
コンピュータに請求項１乃至９の何れか１項に記載の画像処理方法を実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間の画像を取り扱う技術に関するものである。
【背景技術】
【０００２】
従来から、コンピュータ・グラフィックス（ＣＧ）技術を用いて、仮想的に設定された三次元空間内に設定された視点（仮想視点）から、同じ仮想三次元空間内に存在する物品（ＣＧオブジェクト）を観察した画像を生成し、ユーザに提示する画像処理方法が数多く存在している。その中に、ヘッドマウントディスプレイ（ＨＭＤ）などの表示装置を装着したユーザの頭部位置・姿勢を計測して、仮想三次元空間内を観察する視点として設定し、その視点から観察される仮想三次元空間の画像をユーザに提示する画像処理方法がある。この方法では、ユーザの頭部の動きに追従して、あたかもユーザ自身が仮想三次元空間を観察しているように画像が変化するため、ユーザに対して仮想三次元空間への高い没入感を与えることができる。
【０００３】
また、３次元ＣＡＤなどの発展・普及が進むことによって、コンピュータ上で工業製品のような複雑な物品を設計することが広く行われている。３次元ＣＡＤなどで設計したデータをＣＧオブジェクトとして上記の画像処理方法に入力し、検証を行うことによって、設計段階の物品を試作することなく、設計データのみで形状や質感を精度良く検証することが可能となってきている。
【０００４】
しかし、検証を行う対象のＣＧオブジェクトは、あくまで仮想的に設定された空間内にのみ存在するものであり、現実空間中には存在しない。すなわち、ユーザは、仮想のＣＧオブジェクトが表示される表示装置を観察することによってのみ、検証対象を視認することができる。そのため、ある人が行った検証について、別の人がその検証結果を確認することが困難となる場合がある。
【０００５】
例えば、３次元ＣＡＤによって設計されたある物品に対して、検証担当者が検証を行った結果、その形状や質感に何らかの問題が発見された場合、設計担当者にその問題点を指摘する。設計担当者は、指摘された点を受け、設計を修正した後、再度、検証担当者に検証を依頼する。設計を修正する段階において、設計担当者は、検証対象者が検証対象をどの位置から観察したのか、また、観察したときの検証対象の形状や色はどのようなものであったかという情報を得ることが重要となる。設計担当者は、ＣＧオブジェクトを検証対象者が観察したときの条件で観察することによって、指摘された点を的確に把握することが容易となる。
【０００６】
すなわち、検証対象者がＣＧオブジェクトを観察している位置姿勢および観察条件を記録し、別の時点で設計担当者が、記録時の位置姿勢および観察条件でＣＧオブジェクトを観察できるような画像処理方法が求められていた。この観察条件には、観察者の体験映像、ＣＧオブジェクトの質感、仮想光源などの環境に関する情報、重要度などが含まれる。
【０００７】
特許文献１には、仮想空間中に鑑賞方向を示す推奨ベクトルを表示させ、ユーザに推奨ベクトルが示す位置・姿勢から、鑑賞対象のＣＧオブジェクトを観察するように誘導するシステムが開示されている。すなわち、体験時の位置姿勢を記録し、その位置姿勢を推奨ベクトルとして表示することによって、別の時点で、記録時の位置姿勢からＣＧオブジェクトを観測することが可能となる。
【０００８】
また、非特許文献１において提案されている"Boom Chameleon"というシステムでは、仮想空間を観察するユーザが任意の時点において観察している体験映像を記録し、その映像を静止画として板状のＣＧオブジェクトに貼り付け、仮想空間に配置している。
【特許文献１】特開平１１−２６５４６２号公報
【非特許文献１】Communications of the ACM July 2003/Vol.46, No.7 (pp.56--61)
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に開示されているシステムでは、体験時の位置姿勢について記録および復元できるものの、その時点でのＣＧオブジェクトの観察条件については言及されておらず、その点については上記問題は解決されない。
【００１０】
また、非特許文献１に開示されているシステムでは、体験映像そのものがＣＧオブジェクトとなっているため、記録した体験映像を参照するときの解像度が悪く、検証時に微妙な形状や質感を識別できない場合がある。また、体験映像以外の観察条件について、記録および復元する方法については示されておらず、その点については、上記問題は解決されない。
【００１１】
本発明は、以上の課題に鑑みてなされたものであり、仮想空間（仮想物体）を観察している位置姿勢、観察条件を記録し、その後、記録時の位置姿勢、観察条件を復元した仮想空間（仮想物体）を観察することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１３】
即ち、観察者の視点の位置姿勢を取得する取得工程と、
前記取得工程で取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程とを備える画像処理方法であって、
記録モードを含む複数モードの何れかを設定する設定工程と、
前記記録モードが設定されている場合は、前記取得工程で取得した位置姿勢に基づいて前記生成工程で生成した画像をメモリに記録する処理を行う記録工程と、
前記記録モード以外のモードが設定されている場合は、前記記録工程で記録された画像に対応する位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記取得工程で取得した視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断工程と、
前記判断工程で前記規定条件を満たしていると判断した場合には、前記記録工程で記録した画像を前記出力工程により外部に出力するように制御する工程と
を備えることを特徴とする。
【００１４】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１５】
即ち、観察者の視点の位置姿勢を取得する取得工程と、
前記取得工程で取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程とを備える画像処理方法であって、
記録モードを含む複数モードの何れかを設定する設定工程と、
前記記録モードが設定されている場合は、前記取得工程で取得した位置姿勢に基づいた注目仮想物体に係る物体情報をメモリに記録する処理を行う記録工程と、
前記記録モード以外のモードが設定されている場合は、前記記録工程で記録された物体情報に対応する位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記取得工程で取得された視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断工程と、
前記判断工程で前記規定条件を満たしていると判断した場合には、前記注目仮想物体を前記記録工程で記録した前記物体情報に従って更新した画像を生成するよう、前記生成工程による処理を制御する工程と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１７】
即ち、観察者の視点の位置姿勢を取得する取得工程と、
前記取得工程で取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程とを備える画像処理方法であって、
記録モードを含む複数モードの何れかを設定する設定工程と、
前記記録モードが設定されている場合は、前記取得工程で取得した位置姿勢、及び前記仮想空間中に配される光源に係る光源情報を対応付けてメモリに記録する処理を行う記録工程と、
前記記録モード以外のモードが設定されている場合は、前記記録工程で記録した何れか１つの位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断工程と、
前記判断工程で前記規定条件を満たしていると判断した場合には、前記光源を前記光源情報に従って更新し、更新した光源に基づいた画像を生成するよう、前記生成工程による処理を制御する工程と
を備えることを特徴とする。
【００１８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１９】
即ち、観察者の視点の位置姿勢を取得する取得手段と、
前記取得手段が取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段とを備える画像処理装置であって、
記録モードを含む複数モードの何れかを設定する設定手段と、
前記記録モードが設定されている場合は、前記取得手段が取得した位置姿勢に基づいて前記生成手段が生成した画像をメモリに記録する処理を行う記録手段と、
前記記録モード以外のモードが設定されている場合は、前記記録手段が記録した画像に対応する位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記取得手段が取得した視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断手段と、
前記判断手段が前記規定条件を満たしていると判断した場合には、前記記録手段が記録した画像を前記出力手段が外部に出力するように制御する手段と
を備えることを特徴とする。
【００２０】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２１】
即ち、観察者の視点の位置姿勢を取得する取得手段と、
前記取得手段が取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段とを備える画像処理装置であって、
記録モードを含む複数モードの何れかを設定する設定手段と、
前記記録モードが設定されている場合は、前記取得手段が取得した位置姿勢に基づいた注目仮想物体に係る物体情報をメモリに記録する処理を行う記録手段と、
前記記録モード以外のモードが設定されている場合は、前記記録手段が記録した物体情報に対応する位置姿勢に基づいて前記仮想空間中配置された新規仮想物体と前記取得手段が取得した視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断手段と、
前記判断手段が前記規定条件を満たしていると判断した場合には、前記注目仮想物体を前記記録手段が記録した前記物体情報に従って更新した画像を生成するよう、前記生成手段を制御する手段と
を備えることを特徴とする。
【００２２】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２３】
即ち、観察者の視点の位置姿勢を取得する取得手段と、
前記取得手段が取得した位置姿勢に基づき、１以上の仮想物体が配置された仮想空間の画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段とを備える画像処理装置であって、
記録モードを含む複数モードの何れかを設定する設定手段と、
前記記録モードが設定されている場合は、前記取得手段が取得した位置姿勢、及び前記仮想空間中に配される光源に係る光源情報を対応付けてメモリに記録する処理を行う記録手段と、
前記記録モード以外のモードが設定されている場合は、前記記録手段が記録した何れか１つの位置姿勢に基づいて前記仮想空間中に配置された新規仮想物体と前記視点との位置姿勢関係が規定条件を満たしているか否かを判断する判断手段と、
前記判断手段が前記規定条件を満たしていると判断した場合には、前記光源を前記光源情報に従って更新し、更新した光源に基づいた画像を生成するよう、前記生成手段を制御する手段と
を備えることを特徴とする。
【発明の効果】
【００２４】
本発明の構成により、仮想空間（仮想物体）を観察している位置姿勢や観察条件等を記録し、その後、記録時の位置姿勢や観察条件等を復元した仮想空間（仮想物体）を観察することができる。
【発明を実施するための最良の形態】
【００２５】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２６】
［第１の実施形態］
図１は、本実施形態に係る画像処理装置の機能構成を示すブロック図である。
【００２７】
同図において１０１は制御部で、本装置を構成する各部の動作を制御する。１０２は仮想空間提示部で、位置姿勢計測部１０７が計測した「仮想空間を観察する観察者の視点の位置姿勢」に基づいて、この位置姿勢を有する視点から見える仮想空間の画像を生成する。なお、仮想空間に係るデータはＣＧオブジェクト記憶部１０３に保持されているので、仮想空間の画像を生成する際には、これを用いる。
【００２８】
位置姿勢計測部１０７は、仮想空間を観察する観察者の視点の位置姿勢を計測するものであり、計測された位置姿勢は制御部１０１、仮想空間提示部１０２、動作検出部１０６にそれぞれ送出される。
【００２９】
１０３はＣＧオブジェクト記憶部で、仮想空間を構成する各仮想物体（ＣＧオブジェクト）の画像を描画するために必要なデータを保持する。本実施形態では、ＣＧオブジェクト記憶部１０３は、各仮想物体について図４に示すような構成を有するデータファイルを保持する。
【００３０】
図４は、仮想物体に係るデータファイルの構成例を示す図であり、仮想空間に複数の仮想物体を配置する場合には、その数だけ図４に示したデータファイルがＣＧオブジェクト記憶部１０３に記憶されていることになる。同図に示す如く、１つの仮想物体について１つ用意されるデータファイル４００は、ＣＧオブジェクト識別ＩＤ４０１、ＣＧオブジェクト種別４０２、関連情報識別ＩＤ４０３、仮想空間配置データ４０４、表示属性データ４０５、形状・質感データ４０６により構成されている。
【００３１】
ＣＧオブジェクト識別ＩＤ４０１は、仮想物体に固有の識別子である。ＣＧオブジェクト種別４０２は、仮想物体の種別を示す識別子である。本実施形態では、ＣＧオブジェクト種別４０２が「０」である場合、仮想物体は通常の仮想物体であり、「１以上の値」である場合、仮想物体は後述する仮想窓である。
【００３２】
関連情報識別ＩＤ４０３は、データファイル４００に対して後述する仮想窓に係るデータファイルが関連付けられている場合には、この仮想窓に係るデータファイルに固有のＩＤを示すものであり、関連付けられていない場合には、ＮＵＬＬなどの他の値を示す。仮想窓に係るデータファイルについては後述する。
【００３３】
仮想空間配置データ４０４は、仮想物体の配置位置姿勢、スケール、上方向座標軸等により構成されている。表示属性データ４０５は、仮想物体の表示形態を示すものである。本実施形態では、表示属性データ４０５は表示フラグ、ワイヤフレーム描画フラグにより構成されているものとする。表示フラグがオフのときには、仮想物体は表示されない。また、ワイヤフレーム描画フラグがオンのときには、仮想物体はワイヤーフレームで表示される。
【００３４】
形状・質感データ４０６は、仮想物体の形状データ、質感データにより構成されている。例えば、仮想物体がポリゴンで構成されている場合には、各ポリゴンの法線データ、色データ、ポリゴンを構成している各頂点の座標位置データなどが形状データに相当する。また、各ポリゴンの反射光成分や反射率などのマテリアル情報、テクスチャ画像やマッピング方法などのテクスチャ情報が質感データに相当する。即ち、形状・質感データ４０６は仮想物体の画像を表す情報である。
【００３５】
以上説明した各データ（情報）４０１〜４０６により構成されたデータファイル４００が、各仮想物体毎にＣＧオブジェクト記憶部１０３に格納されている。
【００３６】
図１に戻って、関連情報記憶部１０４は、仮想窓に係るデータファイルを、各仮想窓毎に保持する。図３は、仮想窓に係るデータファイルの構成例を示す図であり、仮想空間中に複数の仮想窓を配置する場合には、その数だけ図３に示したデータファイルが関連情報記憶部１０４に記憶されている。同図に示す如く、１つの仮想窓について１つ用意されるデータファイル３００は、関連情報識別ＩＤ３０１、総フレーム数３０２、再生フレーム番号３０３、フレームデータ３０４から構成される。
【００３７】
関連情報識別ＩＤ３０１は、仮想窓に固有の識別子である。総フレーム数３０２は、データファイル３００が保持するフレームデータ３０４の総数を示す。同図の場合、ｎフレーム分のフレームデータ３０４がデータファイル３００内に保持されているので、総フレーム番号３０２は「ｎ」となる。再生フレーム番号３０３は、データファイル３００が保持するフレームデータ３０４のうち、再生対象のフレームの番号を示す。フレームデータ３０４は、位置姿勢計測部１０７が取得した位置姿勢のデータ３０５と、この位置姿勢を有する視点から見える仮想空間の画像として仮想空間提示部１０２が生成した関連情報実体データ３０６とで構成されている。１以上のフレーム数分のフレームデータ３０４が、データファイル３００内に保持されている。
【００３８】
以上説明した各データ（情報）３０１〜３０４により構成されたデータファイル３００が、仮想窓毎に関連情報記憶部１０４に格納されている。
【００３９】
図１に戻って、操作入力部１０５は、本装置へのユーザ操作を検知し、そのユーザ操作の内容を制御部１０１に通知する。
【００４０】
動作検出部１０６は、位置姿勢計測部１０７から取得した視点の位置姿勢、及び制御部１０１を介してＣＧオブジェクト記憶部１０３から取得したデータファイル４００を用いて、視点からの視線が仮想窓を貫いているか否かをチェックする。そしてそのチェック結果を制御部１０１に通知する。
【００４１】
ここで、仮想窓について説明する。図８は、仮想窓の構成例を示す図である。同図において４５０は仮想窓本体であり、板状の仮想物体である。その内部には仮想窓有効領域４５１を有する。本実施形態では、動作検出部１０６によって、視点からの視線がこの仮想窓有効領域４５１を貫いているか否かが検出される。
【００４２】
ここで、視点からの視線がこの仮想窓有効領域４５１を貫いているか否かを検出する処理についてより詳細に説明する。位置姿勢計測部１０７によって計測された視点の位置ＥをＥ＝（Ｅｘ，Ｅｙ，Ｅｚ）、視点Ｅからの視線（視点の姿勢）を示すベクトルｅをｅ＝（ｅｘ，ｅｙ，ｅｚ）とする。また、仮想窓有効領域４５１（Ｒ）を構成する４点の座標をそれぞれＰ１＝（Ｐｘ１，Ｐｙ１，Ｐｚ１），Ｐ２＝（Ｐｘ２，Ｐｙ２，Ｐｚ２），Ｐ３＝（Ｐｘ３，Ｐｙ３，Ｐｚ３），Ｐ４＝（Ｐｘ４，Ｐｙ４，Ｐｚ４）とする。また、仮想窓有効領域４５１の法線ベクトルｎをｎ＝（ｎｘ，ｎｙ，ｎｚ）とする。ここで、Ｐ１，Ｐ２，Ｐ３，Ｐ４の４点はすべて同一平面上に存在するものとする。図５は、仮想窓有効領域４５１（Ｒ）を構成する４点Ｐ１，Ｐ２，Ｐ３，Ｐ４、視点位置Ｅ、視線ｅ、法線ｎを示す図である。なお、仮想窓有効領域４５１を規定する各情報（Ｐ１〜Ｐ４の各頂点の位置データ、法線ベクトルｎのデータ）は、仮想窓のデータファイル４００における形状・質感データ４０６内に記述されているので、これを参照すればよい。
【００４３】
動作検出部１０６は先ず、視点Ｅを通り、視線ｅを方向ベクトルとする直線（視線直線）を求め、求めた視線直線が仮想窓有効領域４５１を貫いているか否か（視線直線と仮想窓有効領域４５１との交点が存在するか否か）を判定する。ここで、仮想窓有効領域４５１は四角形であるので、例えばＰ１−Ｐ２−Ｐ３およびＰ３−Ｐ４−Ｐ１、というように、仮想窓有効領域４５１を２つの三角形領域に分割する。そして、この２つの三角形領域と視線直線との交差判定を行う。この交差判定を行うアルゴリズムにはさまざまなものがあり、Tomas Mollerの手法やArenbergの手法などが広く知られている。
【００４４】
このように、動作検出部１０６は、視点Ｅを通り、視線ｅを方向ベクトルとする直線と仮想窓有効領域４５１とが交差しているか否かをチェックし、そのチェック結果を制御部１０１に通知する。
【００４５】
しかし、視線直線と仮想窓有効領域４５１とが交差している場合であっても、視点から見た仮想窓有効領域４５１が裏側である場合には、交差しているとは見なさないようにする。そのためには動作検出部１０６は以下のような処理を行う必要がある。
【００４６】
即ち、ベクトルｅと仮想窓有効領域４５１の法線ベクトルｎとの内積を求め、ｅとｎとのなす角θを算出する。この角θが一定の範囲内（例えば、１２０°＜θ＜２４０°）にある場合には、観察者は仮想窓有効領域４５１を表側から見ていると判断する。一方、それ以外の場合には、裏側から観察されていると判断する。
【００４７】
さらに、以下の処理を加えて行うことにより、観察者の視線がたまたま仮想窓有効領域４５１内を通過したのではなく、観察者が意図して仮想窓有効領域４５１内をのぞき込んでいるであろうと判断することができる。即ち、動作検出部１０６は、これまでの判断結果を履歴として保持しておき、現時点から過去所定フレーム数分の判断結果が全て「視線直線と仮想窓有効領域４５１とは交点を有しており、且つ仮想窓有効領域４５１を表側から観察している」という旨の判断結果である場合には、現時点で観察者は仮想窓有効領域４５１内をのぞき込んでいるであろうと判断する。一方、現時点から過去所定フレーム数分の判断結果のうち１つでも「視線直線と仮想窓有効領域４５１とは交点を有しており、且つ仮想窓有効領域４５１を表側から観察している」という旨の判断結果ではない場合には、現時点で観察者は仮想窓有効領域４５１内をのぞき込んでいないと判断する。
【００４８】
このように、動作検出部１０６が、視線直線と仮想窓有効領域４５１との交差判定に加え、観察者が仮想窓有効領域４５１の表側を見ているのか裏側から見ているのかといった判断処理、観察者が意図して仮想窓有効領域４５１内をのぞき込んでいるのか否かを判断する処理を行うことにより、観察者が意図して仮想窓有効領域４５１内を表側からのぞき込んでいるのか否かを判断することができる。何れにせよ、動作検出部１０６が行った判定結果は、制御部１０１に通知される。
【００４９】
図２は、図１に示した機能構成を有する画像処理装置のハードウェア構成を示すブロック図である。同図に示す如く、本実施形態に係る画像処理装置は、コンピュータ２００、操作デバイス２１０、位置姿勢計測装置２２０、表示装置２３０により構成されている。
【００５０】
先ず、コンピュータ２００について説明する。２０１はＣＰＵで、ＲＡＭ２０２に格納されているプログラムやデータを用いてコンピュータ２００全体の制御や、コンピュータ２００に接続されている周辺機器とのデータ通信やその動作制御を行うと共に、コンピュータ２００が行う後述の各処理を実行する。
【００５１】
２０２はＲＡＭで、ディスク装置２０３からロードされたプログラムやデータ、操作入力装置２０４や位置姿勢入力装置２０５を介して入力したデータ等を一時的に記憶するためのエリアを有する。また、ＲＡＭ２０２は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ２０２は、各種のエリアを適宜提供することができる。
【００５２】
２０３はディスク装置で、ハードディスク装置などの大容量情報記憶装置として機能するものであり、ここにはＯＳ（オペレーティングシステム）や、コンピュータ２００が行う後述の各処理をＣＰＵ２０１に実行させるためのプログラムやデータが保存されている。このプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０２にロードされる。そして、ＣＰＵ２０１がこのプログラムやデータを用いて処理を実行することで、コンピュータ２００は後述の各処理を実行することになる。なお、ディスク装置２０３に保存されているプログラムには、図１に示した操作入力部１０５、動作検出部１０６、仮想空間提示部１０２、制御部１０２のそれぞれの機能をＣＰＵ２０１が実行するためのプログラムやデータも含まれている。また、ディスク装置２０３に保存されているデータには、図１に示したＣＧオブジェクト記憶部１０３、関連情報記憶部１０４が保持するデータ群も含まれている。
【００５３】
２０４は操作入力装置で、コンピュータ２００の操作者が操作デバイス２１０を操作した際に、その操作内容に応じたＩＤを特定し、ＲＡＭ２０２に送出する。図７は、操作入力装置２０４が参照するテーブルの構成例を示す図である。同図に示す如く、テーブルには、操作デバイス２１０に対する操作の内容に対応するＩＤが登録されている。例えば、「マウス左ボタン押下」という操作を操作デバイス２１０に対して行うと、その操作信号は操作入力装置２０４に入力される。操作入力装置２０４はこの信号を受けると、このテーブルを参照し、この操作に対応するＩＤ＝１をＲＡＭ２０２に送出する。因みに、ＩＤ＝１に対応する操作内容は「記録開始」である。
【００５４】
２０５は位置姿勢入力装置で、位置姿勢計測装置２２０により計測された位置姿勢のデータを受け、これをディスク装置２０３やＲＡＭ２０２に送出する。２０６は画像描画装置で、グラフィックスカードなどにより構成されている。２０７は上述の各部を繋ぐバスである。
【００５５】
次に、操作デバイス２１０について説明する。操作デバイス２１０は、キーボードやマウスなどにより構成されており、操作者が操作することで、各種の指示をコンピュータ２００に対して入力することができる。上述の通り、操作デバイス２１０を用いて入力した指示は、コンピュータ２００が有する操作入力装置２０４に入力される。
【００５６】
次に、表示装置２３０について説明する。表示装置２３０は、ＣＲＴや液晶画面などにより構成されたものであり、画像描画装置２０６が描画した画像や文字などを表示することができる。例えば、表示装置２３０がＨＭＤである場合、表示装置２３０は観察者の頭部に装着され、観察者の眼前に情報を提供する表示装置として機能する。また、表示装置２３０が可動型ディスプレイである場合、表示装置２３０は、現実空間中にその位置姿勢が可変可能なように配置されている。
【００５７】
次に、位置姿勢計測装置２２０について説明する。位置姿勢計測装置２２０は、計測対象の位置姿勢を計測するものである。例えば、位置姿勢計測装置２２０が磁気センサである場合、位置姿勢計測装置２２０は、磁気の発信源、磁気レシーバ、センサ制御装置により構成されていることになる。この場合、磁気の発信源、センサ制御装置は現実空間中の所定の位置に配置する。磁気レシーバは、位置姿勢の計測対象となる観察者の視点（目）の位置近傍箇所に取り付けられることになる。なお、磁気レシーバの取り付け位置と観察者の視点位置との位置姿勢関係が既知であれば、磁気レシーバは如何なる場所に取り付けても良い。
【００５８】
そしてこのような構成において、磁気の発信源は磁界を発生させ、磁気レシーバは自身の位置姿勢に応じて検知される磁気を検知し、その検知結果をセンサ制御装置に送出する。センサ制御装置は、この検知結果に基づいてセンサ座標系（磁気の発信源の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系）における磁気レシーバの位置姿勢を求める。そして求めた位置姿勢をコンピュータ２００が有する位置姿勢入力装置２０５に送出する。このようにして、位置姿勢計測装置２２０は、観察者の視点の位置姿勢を計測し、コンピュータ２００に送出することになる。なお、位置姿勢計測装置２２０による視点の位置姿勢計測方法については様々なものがあり、何れの方法を用いても良い。
【００５９】
また、本実施形態では上述の通り、位置姿勢の計測対象は観察者の視点としたが、これは観察者の視点から見える仮想空間の画像を生成するためである。しかし例えば、表示装置２３０が可動型ディスプレイである場合、位置姿勢の計測対象はこの可動型ディスプレイとなる。可動型ディスプレイの位置姿勢は、可動型ディスプレイの表示面の裏面中心の位置姿勢を計測すればよい。
【００６０】
次に、観察者の視点の位置姿勢に応じて見える仮想空間の画像、若しくは、この観察者が過去に見た仮想空間の画像の何れかを表示装置２３０に表示する為の一連の処理について、同処理のフローチャートを示す図６を用いて以下説明する。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させる為のプログラムやデータはディスク装置２０３に保存されている。そしてこれをＣＰＵ２０１による制御に従って適宜ＲＡＭ２０２にロードし、ＣＰＵ２０１がこのロードされたプログラムやデータを用いて処理を実行することで、コンピュータ２００は以下説明する各処理を実行する。
【００６１】
先ず、コンピュータ２００の操作者がコンピュータ２００の電源を起動すると、ＣＰＵ２０１はこれを検知し、ディスク装置２０３からＲＡＭ２０２に以下の処理に必要な各種のプログラムやデータをロードすると共に、以下の各種の処理のための初期化処理を行う。なお、ＲＡＭ２０２にプログラムやデータをロードするタイミングについては特に限定するものではなく、ＣＰＵ２０１が状況に応じて適宜行えばよい。
【００６２】
ここで、ステップＳ１０１０以降、コンピュータ２００は「通常モード」、「記録モード」、「再生モード」の何れかのモードで動作するのであるが、ステップＳ１０１０の処理を終えた段階では「通常モード」で動作しているものとする。
【００６３】
次に、コンピュータ２００の操作者が操作デバイス２１０を用いて操作を入力すると、操作に応じた信号が操作デバイス２１０から操作入力装置２０４に入力されるので、ステップＳ１０２０においてＣＰＵ２０１は操作入力装置２０４を制御し、その操作内容を特定する処理を行う。
【００６４】
より具体的には、操作入力装置２０４は常に操作デバイス２１０からの信号を待機しており、信号の入力を検知すると、ステップＳ１０１０でＲＡＭ２０２にロードされた図７に示すテーブルを参照し、受けた信号に対応するＩＤを特定する処理を行う。例えば、操作者が操作デバイス２１０を用いて「マウス左ボタン押下」という操作を行うと、その操作信号は操作入力装置２０４に入力される。操作入力装置２０４はこの信号を受けると、図７に示すテーブルを参照し、この操作に対応するＩＤ＝１をＲＡＭ２０２に送出する。
【００６５】
また、特定した操作内容によっては、コンピュータ２００における動作モードが変更する。例えば、現在の動作モードが「通常モード」である場合に、操作者が操作デバイス２１０を用いて「マウス左ボタン押下」という操作を行ったとする。この場合、上述の通り、操作入力装置２０４はこの操作に対応するＩＤ＝１をＲＡＭ２０２に送出する。図７のテーブルに記載の如く、ＩＤ＝１は「記録開始」を意味する。従って、ＣＰＵ２０１がこのＩＤ＝１を検知すると、動作モードを「記録モード」に移行させる。
【００６６】
また、現在の動作モードが「記録モード」である場合に、操作者が操作デバイス２１０を用いて「マウス右ボタン押下」という操作を行ったとする。この場合、操作入力装置２０４はこの操作に対応するＩＤ＝２をＲＡＭ２０２に送出する。図７のテーブルに記載の如く、ＩＤ＝２は「記録終了」を意味する。従って、ＣＰＵ２０１がこのＩＤ＝２を検知すると、動作モードを「通常モード」に移行させる。
【００６７】
次に、位置姿勢計測装置２２０によって計測された視点の位置姿勢が信号として位置姿勢入力装置２０５に入力されるので、ステップＳ１０３０において位置姿勢入力装置２０５は、これをデータとしてＲＡＭ２０２に送出する。
【００６８】
次に、ステップＳ１０３５では、ＣＰＵ２０１は上記動作検出部１０６として機能し、ステップＳ１０３０で取得した視点の位置姿勢、及びステップＳ１０１０においてＲＡＭ２０２にロードしたデータファイル４００を用いて、視点からの視線が仮想窓（より厳密には仮想窓有効領域４５１）を貫いているか否かをチェックする。なお、ＲＡＭ２０２にロードされたデータファイル４００が複数である場合には、それぞれのデータファイル４００と、ステップＳ１０３０で取得した視点の位置姿勢とを用いて、視点からの視線が何れの仮想窓を貫いているのかをチェックする。視点からの視線が１つの仮想窓を貫いているか否かをチェックする一連の処理については、上述の通りであるので、複数個の仮想窓が存在する場合には、この一連の処理をそれぞれの仮想窓について行えばよい。
【００６９】
なお、ステップＳ１０３５では、視点からの視線が仮想窓を貫いているか否かをチェックする処理に加え、観察者が仮想窓の表側を見ているのか裏側から見ているのかといった判断処理、及び／又は観察者が意図して仮想窓内をのぞき込んでいるのか否かを判断する処理を行うようにしても良い。本実施形態では、この３つの判断処理は全て行い、「観察者が意図して仮想窓内を表側からのぞき込んでいるのか否かを判断する」ものとする。
【００７０】
そして、ステップＳ１０３５における処理の結果、「観察者が意図して仮想窓内を表側からのぞき込んでいる」と判断した場合には、観察者が意図して表側からのぞき込んでいる仮想窓（視点からの視線が貫いている仮想窓）のデータファイル４００内のＣＧオブジェクト識別ＩＤ４０１を取得する。また、現在の動作モードが「通常モード」である場合には動作モードを「再生モード」に移行する。また、現在の動作モードが「再生モード」である場合に、ステップＳ１０３５における処理の結果が「観察者が意図して仮想窓内を表側からのぞき込んでいない」である場合には、動作モードを「通常モード」に移行する。
【００７１】
次に、ステップＳ１０４０では現在の動作モードをチェックし、再生モードである場合には処理をステップＳ１０５０に進め、再生モードではない場合には処理をステップＳ１０６０に進める。
【００７２】
ステップＳ１０６０では、ＣＰＵ２０１は画像描画装置２０６を制御し、ステップＳ１０３０において取得した位置姿勢を有する視点から見える仮想空間の画像を生成する。なお、仮想空間の画像を生成する際には周知のとおり、先ず仮想空間中に仮想物体を配置するのであるが、各仮想物体の配置位置姿勢やそのサイズ、形状などについては、各仮想物体に係るデータファイル４００内の形状・質感データ４０６を参照すればよい。
【００７３】
そして各仮想物体を配置した仮想空間を、ステップＳ１０３０において取得した位置姿勢を有する視点から見た場合に見える画像を生成する。なお所定の位置姿勢を有する視点から見える仮想空間の画像を生成するための処理については周知の技術であるので、これに関する説明は省略する。
【００７４】
次に、ステップＳ１０７０では、ステップＳ１０２０でＲＡＭ２０２に送出したＩＤが「１」であるか否か、即ち、操作者が記録開始を指示したか否かをチェックする。ＩＤ＝１であれば処理をステップＳ１０８０に進め、ＲＡＭ２０２中に、新規の仮想窓に係るデータファイル３００を作成する。新規に作成したデータファイル３００の関連情報識別ＩＤ３０１には、既に発行している関連情報識別ＩＤとは異なるものを割り当てる。そして上述の通り、現在の動作モードが「通常モード」である場合には、「記録モード」に移行する。そして以降では、記録終了の旨の指示を受けるまで、このデータファイル３００に対するフレームデータ３０４の記録処理を行う。ステップＳ１０７０における処理の後はステップＳ１１１０に進める。
【００７５】
一方、ステップＳ１０２０でＲＡＭ２０２に送出したＩＤが「１」ではない場合には処理をステップＳ１０９０に進め、ステップＳ１０２０でＲＡＭ２０２に送出したＩＤが「２」であるか否か、即ち、操作者が記録終了を指示したか否かをチェックする。ＩＤ＝２であれば処理をステップＳ１１００に進め、新規のデータファイル４００を作成する。
【００７６】
新規のデータファイル４００におけるＣＧオブジェクト識別ＩＤ４０１には、既に発行しているＣＧオブジェクト識別ＩＤとは異なるものを割り当てる。ＣＧオブジェクト識別ＩＤ４０２については、０以外の値を割り当てる。例えば、既にＮ個のデータファイル４００を作成している場合には、このＣＧオブジェクト種別４０２の値には（Ｎ＋１）を割り当てる。関連情報識別ＩＤ４０３には、ステップＳ１０８０で作成したデータファイル３００の関連情報識別ＩＤ３０１を割り当てる。これにより、ステップＳ１０８０で作成したデータファイル３００と、ステップＳ１１００で新規作成したデータファイル４００とを関連付けることができる。仮想空間配置データ４０４には、ステップＳ１０８０で作成したデータファイル３００に対して後述するステップＳ１１２０で記録された１以上のフレームデータのうち何れか１つのフレームデータ中の位置姿勢データ３０５を割り当てる。表示属性データ４０５、形状・質感データ４０６には、予め定められたものを格納しても良いし、適宜変更しても良い。例えば、ＣＧオブジェクト種別４０２の値に応じて形状・質感データ４０６を変更し、ＣＧオブジェクト種別４０２毎に異なる色を有する仮想窓のデータファイル４００を作成しても良い。そして、現在の動作モードを「記録モード」から「通常モード」に移行する。そして処理をステップＳ１１１０に進める。
【００７７】
ステップＳ１１１０では、現在の動作モードが「記録モード」であるか否かをチェックする。現在の動作モードが「記録モード」である場合には処理をステップＳ１１２０に進め、「記録モード」ではない場合には処理をステップＳ１１３０に進める。
【００７８】
ステップＳ１１２０では、ステップＳ１０８０で新規作成したデータファイル３００に対してフレームデータ３０４を追加記録する処理を行う。即ち、ステップＳ１０３０で取得した位置姿勢データを位置姿勢データ３０５、ステップＳ１０６０で生成した仮想空間画像を関連情報実体データ３０６とし、このセットをフレームデータ３０４としてステップＳ１０８０で新規作成したデータファイル３００に追加記録する処理を行う。そして追加記録する毎に、総フレーム番号３０２を１つインクリメントする。なお、総フレーム番号３０２の更新処理については上記ステップＳ１１００で行っても良く、その場合、ステップＳ１１００では、データファイル３００中のフレームデータの数をカウントし、カウントした数を総フレーム番号３０２とする。そして処理をステップＳ１１３０に進める。
【００７９】
一方、ステップＳ１０５０では先ず、ＲＡＭ２０２にロードされている１以上のデータファイル４００のうち、ステップＳ１０３５で取得したＣＧオブジェクト識別ＩＤ４０１を有するデータファイル４００を参照し、このデータファイル４００中の関連情報識別ＩＤ４０３を取得する。次に、ＲＡＭ２０２にロードされている１以上のデータファイル３００のうち、この関連情報識別ＩＤ４０３を有するデータファイル３００を参照し、このデータファイル３００中の再生フレーム番号３０３を参照し、このデータファイル３００中に保持されている１以上のフレームデータ３０４のうち、該当するフレーム番号のフレームデータを取得する。そして取得したフレームデータ中の関連情報実体データ３０６を画像描画装置２０６に送出すると共に、このデータファイル３００中の再生フレーム番号３０３に１を加え、次回再生されるフレーム番号を更新する。なお、再生フレーム番号３０３に１を加えた結果が総フレーム数３０２を越えた場合には再生フレーム番号３０３を０（即ちデータファイル３００中に保持されているフレームデータのうち最初のフレームデータのフレーム番号）にセットする。
【００８０】
画像描画装置２０６は関連情報実体データ３０６を受けると、これに基づいて自身が有するメモリ上に画像を描画し、これを画像信号として表示装置２３０に送出する。これにより表示装置２３０の表示画面上には、観察者が意図して表側からのぞき込んだ仮想窓に対応するデータファイル３００中の関連情報実体データ３０６に基づく画像が表示されることになる。そして処理をステップＳ１１３０に進める。
【００８１】
ステップＳ１１３０では、上記ステップＳ１０２０と同様の処理を行うことで、コンピュータ２００の操作者が操作デバイス２１０を用いて入力した操作の内容を特定し、その結果、この操作が「装置終了」であるか否かをチェックする。図７に示す如く、コンピュータ２００の操作者は、コンピュータ２００の動作を終了させたい場合には、操作デバイス２１０を用いて「マウス左右ボタン押下」なる操作を入力する。操作入力装置２０４はこの操作を示す信号を操作デバイス２１０から受けると、図７に示すテーブルを参照し、ＩＤ＝３をＲＡＭ２０２に送出する。従って、ＣＰＵ２０１はこのＩＤ＝３を検知すると、コンピュータ２００の動作終了指示が入力されたと判断し、コンピュータ２００の動作終了に係る各種の処理を実行する。一方、ＩＤ＝３を検知していない場合には、処理を上記ステップＳ１０２０に戻し、以降の処理を繰り返す。
【００８２】
以上の説明により、本実施形態によれば、観察者が仮想空間を観察した位置姿勢に、この観察の記録を提供するトリガーとなる仮想物体（仮想窓）を配置することができる。これにより、この観察者以外の観察者であっても、この仮想窓をのぞき込むような動作を行えば、これをトリガーとして、表示装置に上記観察記録を表示することができる。もちろん、仮想窓をのぞき込むような動作を行っていない場合には、表示装置には、観察者の観察視点から見える仮想空間の画像を表示することができる。
【００８３】
なお、以上の説明における動作モードの切り替え方法については一例であり、適宜変更しても良い。また、仮想窓についてであるが、仮想窓は、第１の観察者の観察記録を見るために、第２の観察者（第１の観察者と同一人物であっても良い）がのぞき込む領域をこの第２の観察者に知らしめる為にある。従って、このような目的が達成されるのであれば、仮想窓はどのような形態で実施しても良い。例えば、望遠鏡や矢印を模した仮想物体を仮想窓として配置しても良い。
【００８４】
［第２の実施形態］
図９は、本実施形態に係る画像処理装置の機能構成を示すブロック図である。なお、同図において図１と同じ部分については同じ番号を付けており、その説明は省略する。図９に示す如く、本実施形態に係る画像処理装置は、図１に示した構成に実写合成部１０８、撮像部１０９を加えた構成を有する。
【００８５】
先ず、撮像部１０９について説明する。撮像部１０９は、観察者の視点から見える現実空間の動画像を取得するものである。従って、撮像部１０９は、観察者の視点の位置近傍に取り付けることが好ましい。撮像部１０９が撮像した各フレームの画像は順次実写合成部１０８に入力される。実写合成部１０８は、撮像部１０９から受けた現実空間の画像上に、仮想空間提示部１０２が生成した仮想空間の画像を重畳し、複合現実空間画像を生成する。
【００８６】
図１０は、図９に示した機能構成を有する画像処理装置のハードウェア構成を示すブロック図である。図１０に示す如く、本実施形態に係る画像処理装置は、コンピュータ２９９、操作デバイス２１０、位置姿勢計測装置２２０、撮像装置２４０、表示装置２３０により構成されている。即ち、本実施形態に係る画像処理装置は、図２に示したコンピュータ２００に画像入力装置２０７を加えたものをコンピュータ２９９とし、この画像入力装置２０７に撮像装置２４０を接続していること以外は、第１の実施形態に係る画像処理装置と同様のものである。
【００８７】
先ず、撮像装置２４０について説明する。撮像装置２４０は、図９に示した撮像部１０９に対応するものであり、上述の通り、観察者の視点（近傍）から見える現実空間の動画像を撮像する。撮像した各フレームの画像は画像信号として画像入力装置２０７に入力される。
【００８８】
次に、画像入力装置２０７について説明する。画像入力装置２０７は、キャプチャカードなどにより構成されており、撮像装置２４０から送出された各フレームの画像信号を受けると、これに対して適宜画像処理を行い、画像データとして順次ディスク装置２０３やＲＡＭ２０２に送出する。即ち、撮像装置２４０、画像入力装置２０７により、コンピュータ２９９内に、観察者の視点から見える現実空間の動画像のデータを取り込むことができる。
【００８９】
そして画像描画装置２０６は、第１の実施形態で説明したように仮想空間の画像を生成するのであるが、この画像は、画像入力装置２０７から入力された現実空間の画像上に重畳する。これにより、複合現実空間の画像を生成することができる。そして生成した複合現実空間の画像は表示装置２３０に送出されるので、結果として表示装置２３０の表示画面上には、観察者の視点から見える複合現実空間の画像が表示されることになる。
【００９０】
次に、観察者の視点の位置姿勢に応じて見える複合現実空間の画像、若しくは、この観察者が過去に見た複合現実空間の画像の何れかを表示装置２３０に表示する為の一連の処理について、同処理のフローチャートを示す図１１を用いて以下説明する。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させる為のプログラムやデータはディスク装置２０３に保存されている。そしてこれをＣＰＵ２０１による制御に従って適宜ＲＡＭ２０２にロードし、ＣＰＵ２０１がこのロードされたプログラムやデータを用いて処理を実行することで、コンピュータ２９９は以下説明する各処理を実行する。
【００９１】
なお、図１１に示したフローチャートは、図６に示したフローチャートにおいてステップＳ１０３４をステップＳ１０３０とステップＳ１０３５との間に加えると共に、ステップＳ１０６０の代わりにステップＳ１５００を追加したものである。従って、以下では、このステップＳ１０３４，Ｓ１５００における処理について説明する。
【００９２】
ステップＳ１０３４では、撮像装置２４０が撮像したフレームの画像（現実空間の画像）が画像入力装置２０７に入力されるので、ＣＰＵ２０１はこの画像入力装置２０７を制御し、この現実空間の画像をデータとしてＲＡＭ２０２に取得する。
【００９３】
ステップＳ１５００では先ず、上記ステップＳ１０３４にてＲＡＭ２０２に取得した現実空間の画像上に、第１の実施形態で説明したように作成した仮想空間の画像を重畳する。これにより、ＲＡＭ２０２上には複合現実空間の画像が生成されることになる。
【００９４】
なお、重畳（合成）処理を行う際には以下のような処理を行う。即ち、合成画像の各画素について、次のように輝度値を設定する。仮想空間画像の対象とする画素の奥行き情報を参照し、視点から最も遠い距離を表す値であった場合は、現実空間画像の輝度値を合成画像の輝度値とする。仮想空間画像の奥行き値がそれ以外の値であった場合には、仮想空間画像の輝度値を合成画像の輝度値とする。すなわち、仮想物体が描画されている領域に関しては仮想空間画像を、そうでない領域に関しては、現実空間画像を合成画像とする。これにより、現実空間画像を背景とし、その手前に仮想物体が表示されることになる。
【００９５】
なお、ステップＳ１１２０において第１の実施形態では関連情報実体データ３０６として記録するものは仮想空間の画像であったものの、本実施形態では複合現実空間の画像となる。即ち、ステップＳ１５００で生成した複合現実空間の画像を関連情報実体データ３０６として記録する。従って本実施形態では、ステップＳ１０５０にて再生されるものは複合現実空間の画像となる。
【００９６】
以上説明したように、本実施形態によれば、観察者が複合現実空間を観察した位置姿勢に、この観察の記録を提供するトリガーとなる仮想物体（仮想窓）を配置することができる。これにより、この観察者以外の観察者であっても、この仮想窓をのぞき込むような動作を行えば、これをトリガーとして、表示装置に上記観察記録を表示することができる。もちろん、仮想窓をのぞき込むような動作を行っていない場合には、表示装置には、観察者の観察視点から見える複合現実空間の画像を表示することができる。
【００９７】
なお、表示装置２３０として、光学シースルータイプのＨＭＤを用いた場合、画像処理装置としては第１の実施形態に係る画像処理装置を用いる。
【００９８】
［第３の実施形態］
本実施形態では、記録モードにおいて観察者が観察している仮想物体のデータファイル４００におけるＣＧオブジェクト識別ＩＤ４０１と、形状・質感データ４０６における質感データとを、データファイル３００における関連情報実体データ３０６として記録する。なお、本実施形態に係る画像処理装置としては第１の実施形態に係る画像処理装置を用いるが、第２の実施形態に係る画像処理装置を用いても、実質的には同じである。
【００９９】
図１２は、観察者の視点の位置姿勢に応じて見える仮想空間の画像、若しくは、この観察者が過去に見た仮想空間の画像の何れかを表示装置２３０に表示する為の一連の処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させる為のプログラムやデータはディスク装置２０３に保存されている。そしてこれをＣＰＵ２０１による制御に従って適宜ＲＡＭ２０２にロードし、ＣＰＵ２０１がこのロードされたプログラムやデータを用いて処理を実行することで、コンピュータ２００は以下説明する各処理を実行する。
【０１００】
なお、同図のフローチャートは、図６に示したフローチャートにおいて、ステップＳ１０５０の代わりにステップＳ１２００における処理を行い、その後処理をステップＳ１０６０に進めること、及びステップＳ１１２０の代わりにステップＳ１２１０における処理を行うこと以外については図６のフローチャートと同じである。従って以下では、ステップＳ１２００，Ｓ１２１０における処理について説明する。また、以下説明する点以外については第１の実施形態と同じである。
【０１０１】
先ずステップＳ１２１０における処理について説明する。
【０１０２】
ステップＳ１２１０では、ステップＳ１０８０で新規作成したデータファイル３００に対してフレームデータ３０４を追加記録する処理を行う。即ち、観察対象の仮想物体に係るデータファイル４００おけるＣＧオブジェクト識別ＩＤ４０１と、形状・質感データ４０６における質感データとを関連情報実体データ３０６とし、ステップＳ１０３０で取得した位置姿勢データを位置姿勢データ３０５とし、これらをセットにしてフレームデータ３０４としてステップＳ１０８０で新規作成したデータファイル３００に追加記録する処理を行う。
【０１０３】
ここで、観察対象の仮想物体として予め決められたものを用いる場合には、この仮想物体に係るデータファイル４００おけるＣＧオブジェクト識別ＩＤ４０１と、形状・質感データ４０６における質感データとを関連情報実体データ３０６として取得する。一方、観察対象の仮想物体として予め決められたものを用いない場合には、仮想空間中に配される各仮想物体の位置と、観察者の視点位置姿勢とに基づいて、視線直線と交差する仮想物体のうち視点の位置に最も近いものを特定し、これを観察対象とする。そして特定した観察対象の仮想物体に係るデータファイル４００おけるＣＧオブジェクト識別ＩＤ４０１と、形状・質感データ４０６における質感データとを関連情報実体データ３０６として取得する。
【０１０４】
次に、ステップＳ１２００における処理について説明する。ステップＳ１２００では先ず、ＲＡＭ２０２にロードされている１以上のデータファイル４００のうち、ステップＳ１０３５で取得したＣＧオブジェクト識別ＩＤ４０１を有するデータファイル４００を参照し、このデータファイル４００中の関連情報識別ＩＤ４０３を取得する。次に、ＲＡＭ２０２にロードされている１以上のデータファイル３００のうち、この関連情報識別ＩＤ４０３を有するデータファイル３００を参照し、このデータファイル３００中の再生フレーム番号３０３を参照し、このデータファイル３００中に保持されている１以上のフレームデータ３０４のうち、該当するフレーム番号のフレームデータを取得する。
【０１０５】
そして取得したフレームデータ中の関連情報実体データ３０６内のＣＧオブジェクト識別ＩＤ４０１を取得する。そして取得したＣＧオブジェクト識別ＩＤ４０１を有するデータファイル４００を参照する。このデータファイル４００が、記録モード時において観察していた仮想物体に係るデータファイルとなる。そして、このデータファイル４００中の形状・質感データ４０６における質感データを、取得したフレームデータ中の関連情報実体データ３０６内の質感データに更新する処理を行う。なお、更新前の質感データは別途ＲＡＭ２０２に保持しておく。この別途保持しておく質感データは、再生モードが解除された場合に、今回更新した質感データに上書きするために用いられる。即ち、観察対象の仮想物体の質感は、再生モード時には記録モード時に記録した質感であり、再生モード以外ではデータファイル４００内の形状・質感データ４０６に従った質感となる。
【０１０６】
例えば、記録モード時に携帯電話の仮想物体を観察していた場合、この携帯電話の仮想物体の質感データはデータファイル３００に記録される。ここで、携帯電話の開発上、このような携帯電話の仮想物体の質感は適宜変更される可能性がある。従って、後日、この携帯電話の仮想物体を観察するとその質感は、前回の観察時における質感とは異なっている可能性もある。従って、本実施形態ではこのような場合も鑑み、再生モード時には、前回観察した質感でもって携帯電話の仮想物体を再生する。
【０１０７】
そして処理をステップＳ１０６０に進め、仮想空間の画像を生成する。ここで、ステップＳ１２００における処理を介してステップＳ１０６０に処理を移行したのであれば、記録モード時に観察した仮想物体の質感は、記録モード時に記録した質感データに基づいて再生される。一方、ステップＳ１０４０からステップＳ１０６０に処理を進めた場合には、記録モード時に観察した仮想物体の質感は、形状・質感データ４０６に基づいて再生される。
【０１０８】
以上説明したように、本実施形態によれば、観察者が仮想空間を観察した位置姿勢に、観察対象の仮想物体の質感記録を提供するトリガーとなる仮想物体（仮想窓）を配置することができる。これにより、この観察者以外の観察者であっても、この仮想窓をのぞき込むような動作を行えば、これをトリガーとして、表示装置に上記質感記録を表示することができる。
【０１０９】
なお、本実施形態では、記録モード時には観察対象の仮想物体の質感データを記録したが、記録するものはこれに限定するものではなく、観察対象の仮想物体の如何なる情報を記録するようにしても良い。そして記録する情報の種類は１つに限定するものではなく複数であっても良い。また、本実施形態では、観察対象の仮想物体は１つのみとしているが、複数であっても良い。その場合、観察対象の仮想物体を特定するためには、視線直線の近傍に所定サイズの領域を設け、この領域内の仮想物体を観察対象の仮想物体としても良い。
【０１１０】
何れにせよ、本実施形態は、観察対象の仮想物体の数や、記録モード時に記録するデータの種類やその数に関係なく、その本質とするところは、記録モード時には、仮想物体に係る情報を記録しておき、再生モード時には、その仮想物体を記録モード時に記録した情報に従って更新したものを再生する点にある。
【０１１１】
［第４の実施形態］
本実施形態では、第３の実施形態に係る構成において、記録モードにおいて観察者が観察している仮想物体のデータファイル４００におけるＣＧオブジェクト識別ＩＤ４０１と、観察対象の仮想物体の位置姿勢とを、データファイル３００における関連情報実体データ３０６として記録する。なお、本実施形態に係る画像処理装置としては第１の実施形態に係る画像処理装置を用いるが、第２の実施形態に係る画像処理装置を用いても、実質的には同じである。
【０１１２】
係る処理を行うためには、図１２に示したフローチャートにおいて以下説明する点について変更した処理を行えばよい。
【０１１３】
即ち、ステップＳ１２１０では、ステップＳ１０８０で新規作成したデータファイル３００に対してフレームデータ３０４を追加記録する処理を行う。即ち、観察対象の仮想物体に係るデータファイル４００おけるＣＧオブジェクト識別ＩＤ４０１と、観察対象の仮想物体の位置姿勢とを関連情報実体データ３０６とし、ステップＳ１０３０で取得した位置姿勢データを位置姿勢データ３０５とし、これらをセットにしてフレームデータ３０４としてステップＳ１０８０で新規作成したデータファイル３００に追加記録する処理を行う。
【０１１４】
一方、ステップＳ１２００では先ず、ＲＡＭ２０２にロードされている１以上のデータファイル４００のうち、ステップＳ１０３５で取得したＣＧオブジェクト識別ＩＤ４０１を有するデータファイル４００を参照し、このデータファイル４００中の関連情報識別ＩＤ４０３を取得する。次に、ＲＡＭ２０２にロードされている１以上のデータファイル３００のうち、この関連情報識別ＩＤ４０３を有するデータファイル３００を参照し、このデータファイル３００中の再生フレーム番号３０３を参照し、このデータファイル３００中に保持されている１以上のフレームデータ３０４のうち、該当するフレーム番号のフレームデータを取得する。
【０１１５】
そして取得したフレームデータ中の関連情報実体データ３０６内のＣＧオブジェクト識別ＩＤ４０１を取得する。そして取得したＣＧオブジェクト識別ＩＤ４０１を有するデータファイル４００を参照し、このデータファイル４００中の仮想空間配置データ４０４を、取得したフレームデータ中の関連情報実体データ３０６内の位置姿勢データに更新する処理を行う。なお、更新前の位置姿勢データは別途ＲＡＭ２０２に保持しておく。この別途保持しておく位置姿勢データは、再生モードが解除された場合に、今回更新した位置姿勢データに上書きするために用いられる。即ち、観察対象の仮想物体の位置姿勢は、再生モード時には記録モード時に記録した位置姿勢であり、再生モード以外ではデータファイル４００内の仮想空間配置データ４０４に従った位置姿勢となる。
【０１１６】
以上説明したように、本実施形態によれば、観察者が仮想空間を観察した位置姿勢に、観察対象の仮想物体の位置姿勢記録を提供するトリガーとなる仮想物体（仮想窓）を配置することができる。これにより、この観察者以外の観察者であっても、この仮想窓をのぞき込むような動作を行えば、これをトリガーとして、表示装置に上記位置姿勢記録を表示することができる。
【０１１７】
［第５の実施形態］
本実施形態では、第３の実施形態に係る構成において、データファイル３００における関連情報実体データ３０６として、仮想空間に係る情報を記録する。なお、本実施形態に係る画像処理装置としては第１の実施形態に係る画像処理装置を用いるが、第２の実施形態に係る画像処理装置を用いても、実質的には同じである。
【０１１８】
周知の通り、仮想空間の画像を生成するためには、仮想空間中に１以上の光源を設定する必要がある。従って、ディスク装置２０３には、配置するそれぞれの光源に係るデータ（光源データ）が保持されていることになる。
【０１１９】
図１３は、光源データの構成例を示す図である。５００は光源データ本体である。なお、仮想空間中に複数の光源を配置する場合には、その数だけ光源データ５００がディスク装置２０３に保存されていることになる。同図に示す如く、１つの光源について１つ設けられているデータファイル５００は、光源識別ＩＤ５０１、光源種別５０２、光源位置姿勢５０３、光源強度５０４、光源成分５０５により構成されている。
【０１２０】
光源識別ＩＤ５０１は、光源に固有の識別子である。光源種別５０２は、光源の種類を表す。本実施形態では光源の種類としては平行光源、点光源、スポット光源の３つを用いる。従って、光源種別５０２には、光源がこの何れであるのかを示すＩＤが設定される。例えば光源種別５０２の値が１であれば光源は平行光源であり、光源種別５０２の値が２であれば光源は点光源であり、光源種別５０２の値が３であれば光源はスポット光源である。光源位置姿勢５０３は、仮想空間中における光源の位置姿勢である。光源強度５０４は、光源による光の照射強度である。光源成分５０５は、光源の減衰率や色成分、照射角等である。
【０１２１】
本実施形態では、記録モード時に関連情報実体データ３０６として記録するものは、仮想空間中に存在する全ての、若しくは予め指示された光源の光源データ５００である。
【０１２２】
以上のことから、本実施形態では、図１２に示したフローチャートにおいて以下説明する点について変更した処理を行う。
【０１２３】
ステップＳ１２１０において関連情報実体データ３０６として記録するものは、仮想空間中に存在する全ての、若しくは予め指示された光源の光源データ５００である。そしてステップＳ１２００における処理としては先ず、ＲＡＭ２０２にロードされている１以上のデータファイル４００のうち、ステップＳ１０３５で取得したＣＧオブジェクト識別ＩＤ４０１を有するデータファイル４００を参照し、このデータファイル４００中の関連情報識別ＩＤ４０３を取得する。次に、ＲＡＭ２０２にロードされている１以上のデータファイル３００のうち、この関連情報識別ＩＤ４０３を有するデータファイル３００を参照し、このデータファイル３００中の再生フレーム番号３０３を参照し、このデータファイル３００中に保持されている１以上のフレームデータ３０４のうち、該当するフレーム番号のフレームデータを取得する。
【０１２４】
そして取得したフレームデータ中の関連情報実体データ３０６、即ち、光源データ５００で、対応する光源の光源データ５００を更新する処理を行う。なお、更新前の光源データ５００は別途ＲＡＭ２０２に保持しておく。この別途保持しておく光源データ５００は、再生モードが解除された場合に、今回更新した光源データ５００に上書きするために用いられる。即ち、仮想空間中に配される光源は、再生モード時には記録モード時に記録した光源データ５００に従ったものとなり、再生モード以外では元々の光源データ５００に従ったものとなる。
【０１２５】
そして処理をステップＳ１０６０に進め、仮想空間の画像を生成する。ここで、ステップＳ１２００における処理を介してステップＳ１０６０に処理を移行したのであれば、仮想空間中に配される光源は、記録モード時に記録した光源データ５００に従ったものとなる。一方、ステップＳ１０４０からステップＳ１０６０に処理を進めた場合には、仮想空間中に配される光源は、元々の光源データ５００に従ったものとなる。
【０１２６】
以上の説明により、本実施形態によれば、観察者が仮想空間を観察した位置姿勢に、光源に係る記録を提供するトリガーとなる仮想物体（仮想窓）を配置することができる。これにより、この観察者以外の観察者であっても、この仮想窓をのぞき込むような動作を行えば、これをトリガーとして、記録された光源に従った仮想空間の画像を表示装置に表示することができる。
【０１２７】
［第６の実施形態］
本実施形態では、仮想窓のサイズを、指示された重要度に応じて異ならせる。なお、本実施形態に係る画像処理装置としては第１の実施形態に係る画像処理装置を用いるが、第２の実施形態に係る画像処理装置を用いても、実質的には同じである。また、以下説明する点以外については第１の実施形態と同じである。
【０１２８】
本実施形態では、仮想窓のデータファイル４００におけるＣＧオブジェクト種別４０２には更に、重要度を示す数値が記録される。この重要度は、記録開始指示と共に入力される。図１４は、操作入力装置２０４が参照するテーブルの構成例を示す図である。即ち、本実施形態では、図７に示したテーブルの代わりに、図１４に示すテーブルを用いる。
【０１２９】
図１４に示す如く、テーブルには第１の実施形態と同様、操作デバイス２１０に対する操作の内容に対応するＩＤが登録されているのであるが、第１の実施形態では記録開始指示は１種類の指示であったものの、同図に示す如く、本実施形態では記録開始指示には５種類ある。即ち、「重要度１で記録開始」、「重要度２で記録開始」、「重要度３で記録開始」、「重要度４で記録開始」、「重要度５で記録開始」である。
【０１３０】
例えば、「キーボードの１を押下」という操作を操作デバイス２１０に対して行うと、その操作信号は操作入力装置２０４に入力される。操作入力装置２０４はこの信号を受けると、このテーブルを参照し、この操作に対応するＩＤ＝１をＲＡＭ２０２に送出する。因みに、ＩＤ＝１に対応する操作内容は「重要度１で記録開始」である。このように、操作デバイス２１０を用いて、記録開始指示と共に記録の重要度を指示することができる。
【０１３１】
以上のことから、本実施形態では、図６に示したフローチャートにおいて以下説明する点について変更した処理を行う。
【０１３２】
コンピュータ２００の操作者が操作デバイス２１０を用いて操作を入力すると、操作に応じた信号が操作デバイス２１０から操作入力装置２０４に入力されるので、ステップＳ１０２０においてＣＰＵ２０１は操作入力装置２０４を制御し、その操作内容を特定する処理を行う。
【０１３３】
より具体的には、操作入力装置２０４は常に操作デバイス２１０からの信号を待機しており、信号の入力を検知すると、ステップＳ１０１０でＲＡＭ２０２にロードされた図１４に示すテーブルを参照し、受けた信号に対応するＩＤを特定する処理を行う。例えば、操作者が操作デバイス２１０を用いて「キーボードの１を押下」という操作を行うと、その操作信号は操作入力装置２０４に入力される。操作入力装置２０４はこの信号を受けると、図１４に示すテーブルを参照し、この操作に対応するＩＤ＝１をＲＡＭ２０２に送出する。
【０１３４】
なお、図１４の例では、キーボードの１〜５の何れを押下しても、指示する重要度は異なるものの、記録開始を指示していることに変わりはない。従って、現在の動作モードが「通常モード」である場合に、キーボードの１〜５の何れを押下しても、第１の実施形態と同様、動作モードを「記録モード」に移行させる。
【０１３５】
ステップＳ１１００では第１の実施形態と同様にして新規のデータファイル４００を作成するのであるが、ＣＧオブジェクト識別ＩＤ４０２には更に、上記ステップＳ１０２０においてＲＡＭ２０２に送出されたＩＤに対応する重要度を記録する。図１４の場合、ＩＤ＝１の場合には重要度「１」をＣＧオブジェクト種別４０２に記録する。ＩＤ＝２の場合には重要度「２」をＣＧオブジェクト種別４０２に記録する。ＩＤ＝３の場合には重要度「３」をＣＧオブジェクト種別４０２に記録する。ＩＤ＝４の場合には重要度「４」をＣＧオブジェクト種別４０２に記録する。ＩＤ＝５の場合には重要度「５」をＣＧオブジェクト種別４０２に記録する。
【０１３６】
そして更に、本実施形態では、仮想空間配置データ４０４中のスケールの値には、重要度が高いほど大きな値を設定する。例えば、重要度が１の場合にはスケール値を１にする。重要度が２の場合にはスケール値を２にする。重要度が３の場合にはスケール値を３にする。重要度が４の場合にはスケール値を４にする。重要度が５の場合にはスケール値を５にする。
【０１３７】
これにより、ステップＳ１０６０において仮想窓の仮想物体を配置する場合には、その重要度に応じたサイズにスケーリングしてから配置するので、各仮想窓に対する重要度を視覚的に把握することができる。なお、仮想窓に対する重要度を視覚的に反映させる方法についてはこれ以外にも考えられ、例えば、仮想窓の仮想物体の色を重要度に応じた色としても良いし、重要度に応じて仮想物体の点滅速度を変化させても良い。
【０１３８】
また、以上説明した実施形態は適宜組み合わせて用いても良い。また、第２乃至５の実施形態では、仮想物体や光源といった、所謂仮想空間を構成している要素についての情報を記録モード時に記録し、再生モード時には、対応する要素を記録モード時に記録した情報に従って更新した。従って、このような処理が提要可能であれば、要素や要素に係る情報については様々なものが考えられる。
【０１３９】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１４０】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１４３】
【図１】本発明の第１の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図２】図１に示した機能構成を有する画像処理装置のハードウェア構成を示すブロック図である。
【図３】仮想窓に係るデータファイルの構成例を示す図である。
【図４】仮想物体に係るデータファイルの構成例を示す図である。
【図５】仮想窓有効領域４５１（Ｒ）を構成する４点Ｐ１，Ｐ２，Ｐ３，Ｐ４、視点位置Ｅ、視線ｅ、法線ｎを示す図である。
【図６】観察者の視点の位置姿勢に応じて見える仮想空間の画像、若しくは、この観察者が過去に見た仮想空間の画像の何れかを表示装置２３０に表示する為の一連の処理のフローチャートである。
【図７】操作入力装置２０４が参照するテーブルの構成例を示す図である。
【図８】仮想窓の構成例を示す図である。
【図９】本発明の第２の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１０】図９に示した機能構成を有する画像処理装置のハードウェア構成を示すブロック図である。
【図１１】観察者の視点の位置姿勢に応じて見える複合現実空間の画像、若しくは、この観察者が過去に見た複合現実空間の画像の何れかを表示装置２３０に表示する為の一連の処理のフローチャートである。
【図１２】観察者の視点の位置姿勢に応じて見える仮想空間の画像、若しくは、この観察者が過去に見た仮想空間の画像の何れかを表示装置２３０に表示する為の一連の処理のフローチャートである。
【図１３】光源データの構成例を示す図である。
【図１４】操作入力装置２０４が参照するテーブルの構成例を示す図である。
【図１】
0004683639.tif 000002
【図２】
0004683639.tif 000003
【図３】
0004683639.tif 000004
【図４】
0004683639.tif 000005
【図５】
0004683639.tif 000006
【図６】
0004683639.tif 000007
【図７】
0004683639.tif 000008
【図８】
0004683639.tif 000009
【図９】
0004683639.tif 000010
【図１０】
0004683639.tif 000011
【図１１】
0004683639.tif 000012
【図１２】
0004683639.tif 000013
【図１３】
0004683639.tif 000014
【図１４】
0004683639.tif 000015