(57)【特許請求の範囲】
【請求項１】
仮想環境の点Ｐにおけるオクルージョンを決定する方法であって、前記点Ｐは、視点から見える前記仮想環境の点のうち少なくとも幾つかをグループ化する表面に存在し、該方法は、以下のステップ、
−前記表面と、基点として前記点Ｐを有する複数の半直線との交点を表す情報を決定するステップであって、前記交点が前記複数の半直線の各半直線の離散化によって決定される、ステップ、
−前記表面との交点を有する前記複数の半直線のうちの前記半直線にオクルージョン因子を関連付けるステップであって、該オクルージョン因子は、前記交点と前記点Ｐを隔てているオクルージョンの距離Δ0の関数である、ステップ、及び、
−前記点Ｐにおけるオクルージョンを、交点を表す前記情報及び前記オクルージョン因子から決定するステップであって、前記点Ｐにおける前記オクルージョンは、前記表面との交点を有する半直線の数と前記複数の半直線の総数との比に対応し、前記点Ｐにおける前記オクルージョンを表す前記比の分子は、前記オクルージョン因子で重み付けされる、ステップ、
を含む、前記方法。
【請求項２】
前記複数の半直線のうちの１つの半直線に関連付けられたオクルージョン因子の値は、該半直線と前記表面との間の前記交点と前記点Ｐを隔てている前記距離に反比例する、請求項１に記載の方法。
【請求項３】
前記仮想環境の可視点と前記視点を隔てている距離を計算するステップをさらに含み、該距離は奥行きマップで表され、前記交点を表す情報を決定するステップは該奥行きマップの空間で実行される、請求項１又は２に記載の方法。
【請求項４】
前記複数の半直線は、前記点Ｐに中心があり、主に前記点Ｐに関連付けられた前記表面の表面要素上に生じる半球を形成する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記半球の底面は、前記点Ｐに関連付けられた前記表面要素の接線方向にある、請求項４に記載の方法。
【請求項６】
前記点Ｐにおける前記オクルージョンを表す情報の項目を、オクルージョンマップに記憶するステップをさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記半直線の方向は、前記点Ｐの位置に依存する、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記交点を表す情報は、レイマーチング法を使用して決定される、請求項１から７のいずれか一項に記載の方法。
【請求項９】
仮想環境の点Ｐにおけるオクルージョンを決定するように適合された装置であって、前記点Ｐは、視点から見える前記仮想環境の点のうち少なくとも幾つかをグループ化する表面に存在し、該装置は、
−前記表面と、基点として前記点Ｐを有する複数の半直線との交点を表す情報を決定する手段であって、前記交点が前記複数の半直線の各半直線の離散化によって決定される、手段、
−前記表面との交点を有する前記複数の半直線のうちの前記半直線にオクルージョン因子を関連付ける手段であって、該オクルージョン因子は、前記交点と前記点Ｐを隔てているオクルージョンの距離Δ0の関数である、手段、及び、
−前記点Ｐにおけるオクルージョンを、前記交点を表す情報及び前記オクルージョン因子から決定する手段であって、前記点Ｐにおける前記オクルージョンは、前記表面との交点を有する半直線の数と前記複数の半直線の総数との比に対応し、前記点Ｐにおける前記オクルージョンを表す前記比の分子は、前記オクルージョン因子で重み付けされる、手段、
を備えた、前記装置。
【請求項１０】
前記複数の半直線のうちの１つの半直線に関連付けられたオクルージョン因子の値は、該半直線と前記表面との間の前記交点と前記点Ｐを隔てている前記距離に反比例する、請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、合成画像の構成の分野に関し、より詳細には、仮想環境でのアンビエントオクルージョンを推定する分野に関する。本発明はまた、ライブ合成（live composition）のための特殊効果との関連で理解される。
【背景技術】
【０００２】
従来技術によれば、仮想環境でのアンビエントオクルージョン（ambient occlusion）をシミュレートするための様々な方法が存在する。これらの方法の１つによれば、仮想環境（またシーンとも呼ばれる）の一点におけるオクルージョンを計算するために、十分な数の光線が、この点から仮想環境全体にわたって発射されて、これらの光線間の交点およびこの点に隣接する幾何学的配置を決定する。交差した光線の数と発射された光線の数との間の関係により、対象となる点におけるオクルージョンを決定することが可能になる。この方法では、良好な品質の結果を得るために、数多くの光線を発射する必要がある。計算を実行するのに必要とされるリソースは、発射される光線の数に直接依存するので、所望の表示品質が高い場合、計算に必要となる要求事項が非常に多くて、ライブで実行することができない。オクルージョン計算をライブで実行するためには、仮想環境の表示品質を損ねる程度にまで、発射される光線の数を低減させることが必要になることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
インタラクティブなシミュレーションゲームおよびアプリケーションが出現するのに伴って、特に３次元（３Ｄ）において、高品質で現実感のある、高速なグローバルオクルージョン（global occlusion）の推定を提供するライブシミュレーションの方法の必要性が感じられる。
【課題を解決するための手段】
【０００４】
本発明の目的は、従来技術のこれら欠点のうち少なくとも１つを克服することである。
【０００５】
より具体的には、本発明の目的は、特に、仮想環境でのアンビエントオクルージョンをライブで推定して現実感のある表示を生成するのに必要とされる計算時間および／または計算パワーを最適化することである。
【０００６】
本発明は、ある視点から見える仮想環境の各点のうち少なくとも幾つかをグループ化する表面に存在する、仮想環境の点Ｐにおけるオクルージョンを推定する方法に関し、
−表面と、基点として点Ｐを有する複数の半直線との間の交点を表す情報の項目を推定するステップであって、これら交点が複数の半直線の各半直線を離散化することによって推定されるステップと、
−表面との交点を有する複数の半直線の各半直線にオクルージョン因子（occlusion factor）を関連付けるステップであって、このオクルージョン因子が、各交点と点Ｐを隔てているオクルージョン因子（occlusion distance）の関数であるステップと、
−推定された交点を表す情報およびオクルージョン因子から、点Ｐにおけるオクルージョンを推定するステップを含む。
【０００７】
一特性によれば、複数の半直線のうち１つの半直線に関連するオクルージョン因子の値が、この半直線と表面の間の交点から点Ｐを隔てている距離に反比例する。
【０００８】
有利には、点Ｐにおけるオクルージョンは、表面（Ｓ）との交点を有する半直線の数と、複数の半直線の総数との比に対応し、点Ｐにおけるオクルージョンを表す比の分子が、オクルージョン因子で重み付けされる。
【０００９】
特定の特性によれば、この方法はさらに、仮想環境の可視点と視点を隔てている距離を推定するステップを含み、この推定された距離が奥行きマップで表され、各交点を表す情報の項目の推定が、この奥行きマップの空間で実行される。
【００１０】
有利には、複数の半直線は、主に点Ｐに関連する表面の要素上に生じるＰを中心とする半球を形成する。
【００１１】
特定の特性によれば、半球の底面は、点Ｐに関連する表面の要素の接線方向にある。
【００１２】
有利には、この方法は、点Ｐにおけるオクルージョンを表す情報の項目を、オクルージョンマップに記憶するステップを含む。
【００１３】
特定の特性によれば、半直線の方向は点Ｐの位置に依存する。
【００１４】
別の特性によれば、交点を表す情報は、光線をサンプリングする方法を使用して推定される。
【００１５】
本発明はまた、視点から見える仮想環境の各点のうち少なくとも幾つかをグループ化する表面に存在する、仮想環境の点Ｐにおけるオクルージョンを推定するように構成された装置に関し、この装置は、
−表面と、基点として点Ｐを有する複数半直線との間の交点を表す情報を推定する手段であって、これら交点が複数の半直線の各半直線を離散化することによって推定される手段と、
−表面との交点を有する複数の半直線の各半直線にオクルージョン因子を関連付けるステップであって、このオクルージョン因子が、各交点と点Ｐを隔てているオクルージョン距離Δ0の関数である手段と、
−推定された交点およびオクルージョン因子を表す情報から、点Ｐにおけるオクルージョンを推定する手段とを備える。
【００１６】
一特性によれば、複数の半直線のうち１つの半直線に関連するオクルージョン因子の値が、この半直線と表面の間の交点から点Ｐを隔てている距離に反比例する。
【００１７】
有利には、点Ｐにおけるオクルージョンは、表面との交点を有する半直線の数と、複数の半直線の総数との比に対応し、点Ｐにおけるオクルージョン因子を表す比の分子が、オクルージョン因子で重み付けされる。
【００１８】
以下の説明を読めば、本発明がよりよく理解され、他の具体的な特徴および利点が明らかになろう。この説明では添付図面を参照する。
【図面の簡単な説明】
【００１９】
【図１Ａ】本発明の具体的な一実施形態による、ある視点から見た仮想環境を図式的に示した図である。
【図１Ｂ】本発明の具体的な一実施形態による、視点から図１Ａの可視点をグループ化する表面を表す、仮想環境および視点に関連した奥行きマップを示す図である。
【図２】本発明の具体的な２つの実施形態による、図１Ａの仮想環境の可視点の表面との交点が推定される方向の形をなしている半球を図式的に示した図である。
【図３】本発明の具体的な２つの実施形態による、図１Ａの仮想環境の可視点の表面との交点が推定される方向の形をなしている半球を図式的に示した図である。
【図４】本発明の具体的な一実施形態による、図２および図３の方向と図１Ａの仮想環境の可視点の表面との間の交点を推定するための方法を図式的に示した図である。
【図５】本発明の具体的な一実施形態による、図２および図３の方向と図１Ａの仮想環境の可視点の表面との間の交点を推定するための方法を図式的に示した図である。
【図６】本発明の具体的な一実装形態による、図１Ａの仮想環境におけるある点におけるオクルージョンを推定するための方法を実施する装置を示す図である。
【図７】本発明の具体的な一実装形態による、図１Ａの仮想環境におけるある点におけるオクルージョンを推定するための方法を示す図である。
【発明を実施するための形態】
【００２０】
仮想環境の点Ｐにおけるオクルージョンを推定するための方法の具体的な一実施形態を参照しながら、本発明を説明する。有利には、点Ｐは、ある視点から目に見える仮想環境の各点のうちの全てまたは幾つかから形成される表面の一部分である。点Ｐにおけるオクルージョンを決定するために、基点として点Ｐを有する複数の光線が仮想環境全体にわたって発射され、発射された光線を離散化することにより、これらの光線のそれぞれと可視点の表面との間の交点が決定される。点Ｐにおけるオクルージョンは、たとえば、可視点の表面との交点を有する光線の数と光線の総数との間の関係に対応する。発射された光線のそれぞれを離散化することにより、表面との交点が存在するときには、それを精度よく決定することが可能になる。ある点におけるオクルージョン、または普通ならある点でのシェーディングとして知られているオクルージョンは、この点の隣接する幾何学的形状に依存するので、対象となる点Ｐを囲んでいる可視点の表面との交点を精度よく決定することにより、非常に多くの光線を発射する必要もなく、点Ｐにおけるオクルージョンがより精密に推定できるようになる。したがって、記載されている本発明の具体的な一実施形態による点Ｐにおけるオクルージョンの推定は高速であり、良好なレベルの品質を提供し、具体的にはリアルタイム、またはライブなアプリケーションを可能にする。
【００２１】
可視点の表面の各点におけるオクルージョンを推定することにより、仮想環境に加えられる光の存在を知る必要もなく、仮想環境のアンビエントオクルージョン決定すること、したがって仮想環境の各可視点でのシェーディングを決定することが可能である。
【００２２】
図１には、たとえば仮想環境１の観察者である視点１１から見える仮想環境または仮想シーン１が示してある。有利には、仮想環境は、仮想環境のあらゆる点において一定かつ一様な照明を確実に行う光環境によって照射される。仮想環境１は、たとえば多角形のモデル化により当業者に知られている任意の方法によってモデル化された、１つまたは幾つかの、仮想オブジェクト１２、１３、１４および１５を含み、この多角形モデル化では、このモデルは、１組の多角形と同化しており、ＮＵＲＢＳ（非一様有理Ｂスプライン）タイプの曲線モデル化により、それぞれの多角形が、それを構成する頂点および辺のリストによって画定されており、ＮＵＲＢＳでは、このモデルは、表面の細分化によってモデル化することにより、制御頂点（control vertices）を介して生成される１組の曲線によって画定される。仮想オブジェクトにより、現実の環境（たとえば、地面、家若しくは家の正面、車、木、すなわち、家の一部、街路、町、田舎など環境を構成する任意の要素）または架空の要素を構成する（現実若しくは仮想の）オブジェクトの（モデル化によって得られる）任意の仮想表現が理解される。仮想環境の各オブジェクト１２、１３、１４および１５は、それを覆う表面によって特徴付けられ、各オブジェクトの表面は、そのオブジェクトに特有の（１つまたは幾つかの方向で表面によって反射される入射光の比率に対応する）反射率特性を有する。有利には、オブジェクトの表面の反射率は、光を反射するオブジェクトの区域（表面の１つまたは幾つかの点を含む表面の区域）に応じて変化する。すなわち、オブジェクトの表面の反射率は一定ではない。一変形形態によれば、オブジェクトの表面の任意の点で、オブジェクトの表面の反射率が一定である。図１の例によれば、観察者１１は、観察方向１１１に沿って仮想環境１の点Ｐ１６を見るが、点Ｐ１６は、観察方向１１１と、基点として視点１１を有するこの観察方向の先にある仮想環境１の第１のオブジェクト、すなわちオブジェクト１３との間の交点に対応する。視点１１から見える仮想環境１の一部は視錐体（viewing cone）で示してあり、この視錐体は、観察方向１１１を含め非常に数多くの観察方向から構成される。有利には、視点１１から見えるオブジェクト１２から１５の１組の点が、可視点の表面Ｓを形成する。一変形形態によれば、表面Ｓは、１組の可視点のサブセット、たとえば、これらのオブジェクト１２および１３のみに関心がある場合には、それらの可視点を含むに過ぎない。点Ｐ１６におけるオクルージョンを決定することは、点Ｐ１６に隣接する領域内の表面Ｓの各点のそれぞれと点Ｐを隔てている距離を決定することを意味し、すなわち、基点として点Ｐを有する半直線と表面Ｓの間の交点を決定することを意味する。表面Ｓ上の点Ｐの隣接する領域により、たとえば、点Ｐから閾値よりも小さい距離、たとえば２５ｃｍ、５０ｃｍ、または１ｍ未満の距離を隔てて位置している表面Ｓに存在する１組の点が理解される。有利には、基点が点Ｐ１６にある半直線と表面Ｓの間の交点の決定は、対象となる点の幾何座標から、領域空間すなわち仮想環境の空間で実行される。基点として点Ｐを有する１組の半直線が、たとえば、中心Ｐを有��る球、底面の中心がＰにある半球、または四半球を形成する。
【００２３】
一変形形態によれば、基点が点Ｐ１６にある半直線と表面Ｓの間の交点の決定が、奥行きマップ１１０の空間内で実行される。この変形形態によれば、仮想環境１は、視点１１から見えているものとして表示されている。視点１１から見えている仮想環境１を表す情報が、奥行きマップ１１０に記憶される。有利には、視点から見える仮想環境１の各点に対して、奥行きマップは、対象となる可視点の視点１１を隔てている距離を表す情報の項目を含む。図１Ｂには、本発明の具体的な一実施形態による、こうした奥行きマップ１１０が示してある。この距離を表す情報が、ベクトル１１１０から１１１１ｉで表されており、このノルムは、視点１１と対象となる可視点との間の距離に等しい。したがって、奥行きマップは、たとえば、視点１１の視野を表し、視点１１の観察の主方向に垂直な錐体１１２によって形成された表面に投影される仮想環境１の可視点に関連する複数の点から構成されている。奥行き、すなわち視点／可視点間の距離を表す情報の項目は、奥行きマップの対応する各点に関連している。奥行きを表すベクトルの端部によって形成される奥行きマップの各点を接続することにより、視点１１から見える仮想環境の１組の可視点を表す表面Ｓ’が得られる。この表面Ｓ’は、表面Ｓのように、点Ｐ４３を含め、視点から見える環境の点の全てまたは幾つかのセットを表す。この変形形態によれば、有利には、奥行きの情報は、ＧＰＵに関連するメモリ内に記録された表から構成されるデータ構造に記憶され格納される。これらの記録は奥行きの記録と呼ばれる。これらの記録により、視点１１から見える仮想環境１の１組の点を参照することができるようになり、それに対して、たとえば仮想環境１または仮想環境の一部分のアンビエントオクルージョンを決定するためのオクルージョン推定法が存在することができ、たとえば、幾つかのオブジェクト１２から１５のうちの１つが仮想環境１を構成する。
【００２４】
図２および図３には、半球２０および３０が示してあり、それぞれが、基点として点Ｐ１６を有する半直線で形成されており、それに対して、表面Ｓ（または、奥行きマップの空間に位置する場合にはＳ’）を有する交点が決定される。図２に関して示すように、半球２０は、複数のベクトル２２、２３から構成されており、それぞれのベクトルが、基点として点Ｐを有する半直線に関連する方向を表す。半球２０は、仮想環境の観察方向１１１において本質的に直交している底面２１を有する。半球２０を形成するベクトル２２、２３を決定するために、たとえば、底面２１はｎ個のサンプル（それぞれのサンプルは、たとえば点２１１またはこの点に関連した表面要素に対応する）でサンプリングされ、次いで、底面２１の各サンプルが底面２１での直交軸Ｚに従って半球２０上に投影されて、一方で端部として点Ｐを有し、他方で底面２１の対象となるサンプル２１１の投影を有するベクトル２３を形成する。有利には、サンプルの数ｎは、ユーザによって構成される。計算を早めるためには、サンプルの数ｎは少ない方が有利である。アンダーサンプリングに関連する表示エラーを避けるために、点Ｐに関連する半球を表すのに使用されるｎ個のサンプルが、表面Ｓの所与の区域内でのある点Ｐから別の点まで変化し、回転行列がｎベースのサンプルに加えられて、対象となる表面Ｓの区域の各点Ｐに対して１組の別のｎ個のサンプルを得る。これを実行するために、回転行列の角度θが、無作為に、または決められた方式で、ある点Ｐから別の点に変化し、各点Ｐが、ｎベースのサンプルから１組のｎ個のサンプルを生成できるようにする。ｎベースのサンプルに加えられる２次元の回転行列Ｒ2Dは、たとえば次式に等しい。
【００２５】
【数１】
0005873683.tif 000002
【００２６】
ベクトル２２、２３の全てが、共通の第１の端部すなわち点Ｐ１６を有し、表面要素が、各ベクトル２２、２３の第２の端部と関連しており、各ベクトルに関連する表面要素の合計が、半球２０の表面を形成する。点Ｐ１６におけるオクルージョンを得るために、基点として点Ｐを有し、表面Ｓとの交点を有する半直線が（図４および図５に対してより精密に説明するように）まず決定され、次いで、これらの半直線に対応するベクトルに関連する表面要素が加算される。次いで、一方で表面Ｓ１１０との交点を有する半直線に対応する表面要素の合計と、他方で半球２０の表面全体との比が実行される。このようにして得られた表面の比は、点Ｐ１６におけるオクルージョンを表しており、このオクルージョンは、点Ｐでの表面Ｓへのシェーディングを表している。基点として点Ｐ１６を有する複数の半直線から形成される半球２０は、有利には、主として点Ｐ１６に関連する表面Ｓの表面要素２１０上にある。「主として点Ｐ１６に関連する表面Ｓの表面要素２１０上にある」という表現により、半球を形成するベクトルの大部分が、表面要素２１０との交点をもたないこと、または半球の底面２１が、点Ｐにおいて、所与の閾値未満、たとえば４５度未満の表面要素の接線方向の角度を形成することが理解される。
【００２７】
やはり図３では、底面３１の中心が点Ｐ１６にある半球が示してある。半球３０は、複数のベクトル３２、３３から構成され、各ベクトルは、表面Ｓとの交点を決定しなければならない、基点として点Ｐを有する半直線に関連する方向を表している。図２に示しように、半球３０の底面は、点Ｐ１６に関連する表面Ｓの表面要素２１０の接線方向にあり、ベクトルＮは、表面要素２１０での接線に対する法線を表している。たとえば、底面が観察方向１１１に対して垂直である半球２０から、軸Ｚの向きを表面要素２１０での接線に垂直になるよう変更することで、底面３１が点Ｐに関連する表面要素２１０の接線方向にある半球３０が得られる。この場合に使用される回転は、たとえば、表面要素２１０での接線に垂直な空間において観察方向１１１に従って視点１１から見える環境１に対応する空間からサンプル方向ωiに至る回転に対応し、この回転は、視点１１から見える環境に対応する空間の座標で表され、Ｒ3Dと呼ばれる。Ｒ3Dは、角度／軸の表現（ｒ，θ）を使用して分析的に決定され、ｒは、Ｎ３２およびＺ２２に垂直なベクトルとして定義され、θは、その間の角度として定義される。
【００２８】
【数２】
0005873683.tif 000003
【００２９】
ここで、‖Ｖ‖はベクトルＶの正規化演算子（normalization operator）を表す。
【００３０】
式（２）において、３次元の軸／角度回転のロドリーグの公式を当てはめることにより、次式が得られる。
【００３１】
【数３】
0005873683.tif 000004
【００３２】
この回転行列は、サンプル２１１毎に１度計算され、各ベクトルに加えられて、法線Ｎに従って配向された方向ωiが得られる。
【００３３】
図４および図５には、一方で基点として点Ｐ１６を有する方向ωiの半直線４０と、他方で表面Ｓとの間の交点を決定するための、本発明の具体的な一実施形態による方法が示してある。
【００３４】
図４に関して示すように、基点として点Ｐ１６を有し、向きがωiの半直線４０が離散化されて複数の要素サンプルになり、各サンプルが、半直線４０のセグメントに対応している。図４には２つのサンプル、すなわちセグメント［Ｐ−Ｓωi］および［Ｓωi−Ｓωi+1］が示してある。したがって、半直線４０は、幾つかの点、すなわち点Ｐ１６、Ｓωi４０２、およびＳωi+1４０４によって表される。こうした方法の目的は、半直線４０と表面Ｓの間の交点４０３と点Ｐ１６を隔てている距離に対応するオクルージョン因子（occlusion distance）Δ0４１を決定することである。サンプルすなわち半直線４０のセグメントが表面Ｓとの交点を有するかどうか判定するために、図５に関して示すように、第１のサンプルに対応する半直線４７０の第１の点Ｓωiが、観察方向１１１に従って表面Ｓに投影される。点Ｓωi４０２の表面Ｓへの投影は点Ｓtj５２であり、Ｓωi４０２とＳtj５２を隔てている距離δjが、たとえばＧＰＵに関連するメモリ内の記録テーブルに記録される。半直線４０の第１のセグメント［Ｐ−Ｓωi］が表面Ｓとの交点を有するかどうか判定するためには、点Ｓωi４０２およびＳtj５２の位置と、視点１１の位置とを比較するだけで十分である。点Ｓωi４０２が、点Ｓtj５２よりも観察方向１１１の長さだけ視点１１に近い場合、半直線４０の第１のセグメント［Ｐ−Ｓωi］は、表面Ｓとの交点を有しない。逆の場合、すなわち点Ｓtj５２が、点Ｓωi４０２よりも観察方向１１１の長さだけ視点１１に近い場合、半直線４０の第１のセグメント［Ｐ−Ｓωi］は、表面Ｓとの交点を有する。半直線４０の第１のセグメント［Ｐ−Ｓωi］が表面Ｓとの交点を有する場合、半直線４０と表面Ｓの交点が決定すると、半直線の離散化プロセスが停止する。図４および図５に関して示したケースとは逆の場合、すなわち半直線４０の第１のセグメント［Ｐ−Ｓωi］が表面Ｓとの交点を有しない場合、半直線４０の離散化プロセスが、点Ｐ１６からＰ→ωiの方向に移動しながら、次のセグメント［Ｓωi−Ｓωi+1］まで継続する。点Ｓωi+1４０４が、観察方向１１１に従って表面Ｓに投影され、その投影の結果が点Ｓtj+1５３であり、点Ｓωi+1４０４とＳtj+1５３を隔てる距離δj+1が、たとえばＧＰＵに関連するメモリ内の記録テーブルに記録される。半直線４０の第２のセグメント［Ｓωi−Ｓωi+1］が表面Ｓとの交点を有するかどうか判定するために、点Ｓωi+1４０４およびＳtj+1５３の位置が、視点１１の位置と比較される。点Ｓtj+1５３が、点Ｓωi+1４０４よりも視点１１に近いと、これは、第２のセグメント［Ｓωi−Ｓωi+1］が表面Ｓとの交点を有することを意味する。交点の位置を精密に決定するために、第２のセグメント［Ｓωi−Ｓωi+1］が離散化されて、次に小さなサイズの複数のサンプルになり、第２のセグメントの離散化を表すセグメント［Ｓωi−Ｓωi+1］の各点が、Ｓωi４０２に最も近い点から始めて、方向１１１に従って表面Ｓに投影される。したがって、半直線４０のセグメントの離散化動作を何度も反復して実行することにより、半直線４０と表面Ｓの間の交点の位置を非常に精度よく推定することが可能である。点Ｐ１６および推定された交点の座標から、オクルージョン距離Δ0が決定される。半直線４０をさらに小さいサンプル���連続して離散化することにより、表面Ｓとの交点を精度よく推定できるようになるが、それに必要な計算にはコストがかかる可能性がある。有利には、所定の閾値（たとえば、１５、２０、２５または５０のサンプルに等しい）よりも大きい値であるｎ番目の半直線のサンプルにおいて、表面Ｓとの交点が決定されなかった場合、半直線４０が表面Ｓとの交点を有しないと考えられる。
【００３５】
一変形形態によれば、点Ｐと、半直線４０と表面Ｓの間の交点との間のオクルージョン距離Δ’0は、交点を囲む点Ｓωi４０２および点Ｓωi+1４０４、ならびに以前推定した距離δjおよびδj+1から近似することによって決定される。この変形形態によれば、半直線４０のサンプリングを表す２つの点、たとえば点Ｓωi４０２およびＳωi+1４０４の間で構成される表面Ｓの表面要素が、全体的に平面であると仮定される。このようにして、オクルージョン距離Δ’0が直線的に補間される。
【００３６】
【数４】
0005873683.tif 000005
【００３７】
０から１の間で構成される点Ｐ１６におけるオクルージョン因子（occlusion factor）を決定するために、オクルージョン距離Δ’0の平方根が、点Ｐにおける現在のオクルージョンの寄与に加えられ、最終的にサンプルの数に適合される。したがって、点Ｐにおけるオクルージョン因子Ａ（Ｐ）が次式のように得られる。
【００３８】
【数５】
0005873683.tif 000006
【００３９】
ここで、ｎは半直線の数に対応する。
【００４０】
Ｖｐ、ωiは、対象となる半直線が表面Ｓとの交点を有しない場合、０に等しい因子に対応し、対象となる半直線が表面Ｓとの交点を有する場合、１に等しい因子に対応し、
αは、たとえばユーザによって構成された所定のコントラスト因子に対応する。
【００４１】
０に近いオクルージョン因子Ａ（Ｐ）の値は、点Ｐにおけるオクルージョンが高いことを意味し、逆に、１に近いオクルージョン因子Ａ（Ｐ）の値は、点Ｐにおけるオクルージョンが低いことを意味することに留意されたい。有利には、このようなオクルージョン因子により、表面Ｓとの交点を有する各半直線の寄与を、点Ｐにおけるオクルージョンの計算において重み付けすることができる。図２および図３に関して記述されているように、基点として点Ｐを有する複数の半直線から形成される半球の表面要素は、この半球を形成する各半直線に関連している。点Ｐにおけるオクルージョンを決定するために、一方で表面Ｓとの交点を有する半直線に対応する表面要素の合計と、他方で半球の表面全体との比が実行され、このように得られた表面の比が、点Ｐにおけるオクルージョンを表す。点Ｐにおけるグローバルオクルージョンにおける表面Ｓとの交点である各半直線４０の寄与は、点Ｐと交点を隔てている距離に依存する。実際、オクルージョン距離が増大するほど、点Ｐにおけるグローバルオクルージョンにおけるこの交点の寄与が減少する。すなわち、半直線４０に関連するオクルージョン因子が１に近くなるほど、点Ｐにおけるグローバルオクルージョンの計算において対象となる半直線の寄与が著しくなる。したがって、表面Ｓとの交点を有する半直線に関連する表面要素の合計を計算する前に、表面Ｓとの交点を有する半直線に関連する各表面要素をオクルージョン因子によって重み付けすることが有利である。したがって、点Ｐにおけるグローバルオクルージョンは、半球の表面全体にわたって表面Ｓとの交点を有する半直線に関連した、関連する因子Ａ（Ｐ）で重み付けられた各表面要素の合計の比率に対応する。
【００４２】
図６には、仮想環境１のある点におけるオクルージョンの推定するように適合された、１つまたは幾つかの画像の表示信号を生成するための装置６のハードウェアの一実施形態が図式的に示してある。たとえば、装置６は、パーソナルコンピュータＰＣ、ラップトップまたはゲームのコンソールに対応する。
【００４３】
装置６は、クロック信号も伝送するアドレスおよびデータのバス６５によって互いに接続された以下の要素を備える。
【００４４】
−マイクロプロセッサ６１（すなわちＣＰＵ）
−グラフィックスカード６２（以下のものを含む）
−幾つかのグラフィック処理ユニット（すなわちＧＰＵ）６２０
−グラフィックランダムアクセスメモリ（ＧＲＡＭ）６２１
−ＲＯＭ（読取り専用メモリ）タイプの不揮発性メモリ６６
−ランダムアクセスメモリすなわちＲＡＭ６７
−たとえばキーボード、マウス、ウェブカメラなど、１つまたは幾つかのＩ／Ｏ（入力／出力）装置６４
−電源６８
装置６はまた、グラフィックスカード６２に直接接続されて、特に、グラフィックスカードで計算され構成された同期画像の表示を、たとえばライブに表示する表示画面タイプの表示装置６３を備える。表示装置６３をグラフィックスカード６２に接続するために専用のバスを使用することにより、はるかに大きなデータ伝送ビットレートが実現し、したがって、グラフィックスカードによって構成される画像を表示するための待ち時間が低減されるという利点がもたらされる。一変形形態によれば、表示装置は、装置６の外部にあり、表示信号を伝送するケーブルによって装置６に接続されている。装置６、たとえばグラフィックスカード６２は、たとえばＬＣＤ若しくはプラズマの画面、またはビデオプロジェクタなど、外部の表示手段に表示信号を伝送するように適合された、伝送または接続のための手段（図６には図示せず）を備える。
【００４５】
メモリ６２、６６および６７の説明で使用されている用語「レジスタ」は、言及されているメモリのそれぞれにおいて、小容量（いくらかのバイナリデータ）のメモリ領域、ならびに大容量（プログラム全体を記憶し、または計算されたデータを表すデータの全て若しくは一部分を表示できるようにする）のメモリ領域の両方を意味することに留意されたい。
【００４６】
電源がオンになると、マイクロプロセッサ６１は、ＲＡＭ６７に含まれるプログラムの命令をロードし実行する。
【００４７】
ランダムアクセスメモリ６７は、特に以下のものを備える。
【００４８】
−レジスタ６３０における、装置６を電源オンする役割のマイクロプロセッサ６１の動作プログラム
−仮想環境１を表すパラメータ６７１（たとえば、仮想環境１のモデル化パラメータ、仮想環境１の照明パラメータ）
本発明に特有の以下に説明する方法のステップを実施するアルゴリズムは、これらのステップを実施する装置６に関連するグラフィックスカード６２のメモリＲＡＭ６７に記憶される。電源がオンになり、環境を表すパラメータ６７１がＲＡＭ６７にロードされると、グラフィックスカード６２のグラフィックスプロセッサ６２０が、これらのパラメータをＧＲＡＭ６２１にロードし、たとえばＨＬＳＬ（ハイレベルシェーダランゲージ）言語またはＧＬＳＬ（ＯｐｅｎＧＬシェーディングランゲージ）を使用する「シェーダ」タイプのマイクロプログラムの形態でのこれらのアルゴリズムの命令を実行する。
【００４９】
ランダムアクセスメモリＧＲＡＭ６２１は、特に以下のものを備える。
−レジスタ６２１０における、仮想環境１を表すパラメータ
−視点１１から見える仮想環境１の点の表面Ｓを表すパラメータ６２１１（たとえば領域空間内の各点の座標）
−表面Ｓとの交点が決定される半直線を表すパラメータ６２１２（たとえば、基点、方向、離散化パラメータ）
−各半直線と表面Ｓの間の交点を表す情報６２１３（たとえば、各交点の座標、オクルージョン距離Δ0、距離δj）
−仮想環境１の１つまたは幾つかの可視点におけるオクルージョンを表す、オクルージョン情報６２１４のうちの１つまたは幾つかの項目
−視点１１と、視点１１から見える仮想環境１の各点との間の距離を表す奥行き情報６２１５の項目（たとえば、視点と可視点を隔てている距離を表す値）
一変形形態によれば、ＧＲＡＭ６２１内で利用可能なメモリ記憶空間が十分でない場合に、値６２１１から６２１４およびパラメータ６２１５を記憶するために、ＲＡＭ６７の一部がＣＰＵ６１によって割り当てられる。しかし、この変形形態により、ＧＰＵに含まれるマイクロプログラムから構成される環境１の表現を含む画像を合成する際に待ち時間が長くなるが、それというのも、データは、バス６５を通過してグラフィックスカードからランダムアクセスメモリ６７に伝送しなければならないが、このバスの伝送容量は一般に、ＧＰＵからＧＲＡＭに、またその逆に伝送するためにグラフィックスカードで利用可能な伝送容量よりも小さいからである。
【００５０】
別の変形形態によれば、電源６８は装置４の外部にある。
【００５１】
図７には、本発明の非制限的で特に有利な実施形態による、装置６で実施される仮想環境の点Ｐにおけるオクルージョンを推定するための方法が示してある。
【００５２】
初期化ステップ７０の間、装置６の様々なパラメータが更新される。具体的には、仮想環境１を表すパラメータが何らかの方法で初期化される。
【００５３】
次いで、ステップ７１の間、視点１１から見える仮想環境１の各点の全てまたは幾つかをグループ化する表面Ｓが推定され、この表面は、オクルージョンを推定する点Ｐを含む。有利には、表面Ｓは、仮想環境１の領域空間内で推定される。一変形形態によれば、表面Ｓは、視点１１と、視点１１から見える仮想環境の各視点のうちの全てまたは幾つかとを隔てている距離を表す、奥行きマップの空間内で決定される。
【００５４】
次いで、ステップ７２の間、一方で基点として点Ｐを有する複数の半直線の各半直線と、他方で表面Ｓとの間の交点が推定される。これを実行するために、各半直線は、可変サイズのラインのセグメントを形成するように離散化され、各セグメントのサイズは、ユーザによって構成される。セグメントのサイズが大きいほど、交点の推定のための計算がより高速になるが、交点の推定の精度は損なわれる。逆に言えば、セグメントのサイズが小さいほど、交点の推定がより精密になり、交点の推定に必要となる計算のコストが高くつく。有利には、各交点は、仮想環境１の領域空間内で推定される。
【００５５】
一変形形態によれば、奥行きマップの空間内で各交点が推定される。
【００５６】
別の変形形態によれば、表面Ｓとの交点が推定される複数の半直線は、点Ｐに中心がある半球２０を形成し、この半球は、主に点Ｐに関連する表面要素上に生じる。
【００５７】
別の変形形態によれば、Ｐに中心があり、表面Ｓとの交点が推定される半直線から形成される半球３０は、点Ｐに関連する表面要素の接線方向にある。
【００５８】
特に有利な変形形態によれば、Ｐに中心がある半球を形成する半直線の方向は、点Ｐの位置、すなわち点Ｐの座標に依存するが、これらの座標が領域空間内で表されているか、奥行きマップの空間内で表されているかは関わらない。この変形形態によれば、表面Ｓの第１の点Ｐについて複数の半直線が定義され、これら半直線のそれぞれの表面Ｓとの交点が決定される。第１の点に隣接する第２の点Ｐについて、有利には、半直線は、第１の点Ｐに関連する半直線の様々な方向を有するように定義される。点Ｐに隣接する表面Ｓの各点のそれぞれに、同じ推論が当てはまる。したがって、第１の点Ｐの隣接する領域を考慮すると、様々な方向を有する非常に多くの半直線が得られ、それにより、有利には、第１の点Ｐ、および点Ｐに隣接する各点Ｐに関連する全ての半直線の方向が同じである場合、限定された数の半直線で点Ｐにおいてオクルージョンを推定している間に発生する可能性のある雑音を低減することができるようになる。
【００５９】
最後の変形形態によれば、半直線４０は、レイマーチング法（ray marching method）を使用して離散化されて、半直線のそれぞれの表面Ｓとの交点を決定する。
【００６０】
最後に、ステップ７３の間、基点として点Ｐを有する半直線と表面Ｓとの交点を表す情報から、点Ｐにおけるオクルージョンが推定される。有利には、点Ｐにおけるオクルージョンは、表面Ｓとの交点が見つかった半直線の数と、表面Ｓとの交点が探索された半直線の数との比に一致している。一変形形態によれば、表面Ｓとの交点が探索された半直線は、球または有利には半球を形成し、この球または半球の表面要素が各半直線に関連している。この変形形態によれば、点Ｐにおけるオクルージョンは、表面Ｓとの交点を有する半直線に関連する表面要素の合計と、この球または半球それぞれの表面全体との比に対応する。別の変形形態によれば、点Ｐにおけるオクルージョンを表す比の分子は、交点を有する半直線について、点Ｐと、表面Ｓとの交点との間の距離を考慮するように、表面Ｓとの交点を有する各半直線にそれぞれ関連するオクルージョン因子のそれぞれによって重み付けられ、交点への距離が短いとき、半直線に関連するオクルージョンが大きくなる。
【００６１】
別の変形形態によれば、点Ｐにおけるオクルージョン情報が、オクルージョンマップに記憶される。仮想環境１のアンビエントオクルージョンが推定される場合、視点１１から見える仮想環境の各点のそれぞれでのオクルージョンは、可視点のそれぞれに対してステップ７２および７３を何度も反復して実行することによって推定され、可視点のそれぞれのオクルージョン情報が、オクルージョンマップに記憶される。同様に、可視点が変化するとき、ステップ７１から７３が何度も反復して実行されて、この新規の視点から、１つまたは幾つかの可視点でオクルージョンを推定する。
【００６２】
もちろん、本発明は前述の各実施形態には限定されない。
【００６３】
具体的には、本発明は、仮想環境の点Ｐにおけるオクルージョンを推定するための方法には限定されず、この方法を実施する任意の装置、および、特に少なくとも１つのＧＰＵを備える任意の装置にまで及ぶ。点Ｐにおけるオクルージョンを推定するのに必要な計算の実行は、シェーダタイプのマイクロプログラムでの実行に限定されるものではなく、任意のプログラムタイプ、たとえば、ＣＰＵタイプのマイクロプロセッサで実行することのできるプログラムでの実行にまで及ぶ。
【００６４】
本発明による使用法は、ライブの利用に限定されるものではなく、たとえば、レコーディングスタジオでの、たとえば合成画像の表示のためのポストプロダクション処理として知られている処理など、他のどんな利用にまでも及ぶ。本発明によるポストプロダクションにおける実施は、特に必要とされる計算時間を低減させながら、臨場感に関して優れた画像表示を提供するという利点をもたらす。
【００６５】
本発明はまた、２次元または３次元でビデオ画像を合成するための方法に関し、合成に際して、１つまたは幾つかの観察方向によるアンビエントオクルージョンが計算され、結果として生じるアンビエントオクルージョンを表す情報を使用して画像の画素を表示し、各画素は観察方向に対応する。画像の各画素のそれぞれ毎に表示するために計算されるアンビエントオクルージョンが、観察者の様々な視点に適合するように再計算される。
【００６６】
本発明はまた、仮想環境１のオブジェクトへの光の反射を考慮して点Ｐで受ける光量を推定するための方法に関する。反射する光量は、対象となる点Ｐにおけるオクルージョン、および、対象となる点Ｐに隣接する領域に関連する表面の各要素に関連する反射特性に依存する。
【００６７】
本発明は、ＰＣ若しくはポータブルタイプのコンピュータで実行できるプログラムを介してか、またライブな画像を生成し表示する専用のゲーム機においてはともかく、たとえばビデオゲームアプリケーションで使用することができる。図６に関して説明した装置６には、有利には、キーボードおよび／またはジョイスティックなどの対話手段が設けられ、たとえば音声認識などのコマンドを取り入れるための他のモードも使用可能である。
［付記１］
仮想環境（１）の点Ｐ（１６）におけるオクルージョンを推定する方法であって、前記点Ｐ（１６）は、視点（１１）から見える前記仮想環境（１）の点のうち少なくとも幾つかをグループ化する表面（Ｓ）に存在し、該方法は、以下のステップ、
−前記表面（Ｓ）と、基点として前記点Ｐ（１６）を有する複数の半直線との交点（４０３）を表す情報（６２１３）を推定するステップ（７２）、前記交点（４０３）が前記複数の半直線の各半直線（４０）の離散化によって推定される、
−前記表面（Ｓ）との交点を有する前記複数の半直線の前記半直線にオクルージョン因子を関連付けるステップ、ここで、該オクルージョン因子は、前記交点（４０３）と前記点Ｐ（１６）を隔てているオクルージョン距離Δ0の関数である、及び、
−前記点Ｐ（１６）におけるオクルージョンを、推定された前記交点（４０３）を表す情報及び前記オクルージョン因子から推定するステップ（７３）
を含むことを特徴とする方法。
［付記２］
前記複数の半直線のうちの１つの半直線に関連するオクルージョン因子の値は、該半直線と前記表面（Ｓ）の間の前記交点と前記点Ｐを隔てている前記距離に反比例することを特徴とする、付記１に記載の方法。
［付記３］
前記点Ｐ（１６）における前記オクルージョンは、前記表面（Ｓ）との交点を有する半直線の数と前記複数の半直線の総数との比に対応し、前記点Ｐにおける前記オクルージョンを表す該比の分子は、前記オクルージョン因子で重み付けされることを特徴とする、付記１から２のいずれかに記載の方法。
［付記４］
前記仮想環境（１）の可視点と前記視点（１１）を隔てている距離を推定するステップをさらに含み、該推定された距離は奥行きマップ（１１０）で表され、該奥行きマップの空間で、前記交点を表す情報の項目の前記推定が実行されることを特徴とする、付記１から３のいずれか一項に記載の方法。
［付記５］
前記複数の半直線は、前記点Ｐ（１６）に中心があり、主に前記点Ｐ（１６）に関連する前記表面（Ｓ）の表面要素（２１０）上に生じる半球（２０、３０）を形成することを特徴とする、付記１から４のいずれか一項に記載の方法。
［付記６］
前記半直線の底面（３１）は、前記点Ｐ（１６）に関連する前記表面要素（２１０）の接線方向にあることを特徴とする、付記５に記載の方法。
［付記７］
前記点Ｐ（１６）における前記オクルージョンを表す情報の項目を、オクルージョンマップに記憶するステップを含むことを特徴とする、付記１から６のいずれか一項に記載の方法。
［付記８］
前記半直線（４０）の方向（ωi）は、前記点Ｐ（１６）の位置に依存することを特徴とする、付記１から７のいずれか一項に記載の方法。
［付記９］
前記交点（４０３）を表す情報は、レイマーチング法を使用して推定されることを特徴とする、付記１から８のいずれか一項に記載の方法。
［付記１０］
仮想環境（１）の点Ｐ（１６）におけるオクルージョンを推定するように適合された装置であって、前記点Ｐ（１６）は、視点（１１）から見える前記仮想環境（１）の点のうち少なくとも幾つかをグループ化する表面（Ｓ）に存在し、該装置は、
−前記表面（Ｓ）と、基点として前記点Ｐ（１６）を有する複数の半直線との交点（４０３）を表す情報（６２１３）を推定する手段（６２０）、前記交点（４０３）が前記複数の半直線の各半直線（４０）の離散化によって推定される、
−前記表面（Ｓ）との交点を有する前記複数の半直線の前記半直線にオクルージョン因子を関連付ける手段（６２０）、ここで、該オクルージョン因子は、前記交点（４０３）と前記点Ｐ（１６）を隔てているオクルージョン距離Δ0の関数である、及び、
−前記点Ｐ（１６）におけるオクルージョンを、推定された前記交点（４０３）を表す情報及び前記オクルージョン因子から推定する手段（６２０）
を備えることを特徴とする装置。
［付記１１］
前記複数の半直線のうちの１つの半直線に関連するオクルージョン因子の値は、該半直線と前記表面（Ｓ）の間の前記交点と前記点Ｐを隔てている前記距離に反比例することを特徴とする、付記１０に記載の装置。
［付記１２］
前記点Ｐ（１６）における前記オクルージョンは、前記表面（Ｓ）との交点を有する半直線の数と前記複数の半直線の総数との比に対応し、前記点Ｐにおける前記オクルージョンを表す該比の分子は、前記オクルージョン因子で重み付けされることを特徴とする、付記１０または１１のいずれかに記載の装置。
【図１Ｂ】
0005873683.tif 000007
【図６】
0005873683.tif 000008
【図７】
0005873683.tif 000009
【図１Ａ】
0005873683.tif 000010
【図２】
0005873683.tif 000011
【図３】
0005873683.tif 000012
【図４】
0005873683.tif 000013
【図５】
0005873683.tif 000014