(57)【特許請求の範囲】
【請求項１】
画像をレンダリングすることができ、かつ、前記画像にシェーディングを施すことができるコンピュータグラフィックスシステムにおける方法であって、
前記画像のレンダリング中に、前記シェーディングが前記画像に施される場合、シェーディングされる前記画像が前記画像における角を観察する際、丸みのある前記角の外観または錯視を観察者に提供できるように、前記画像に含まれる物体の前記角の領域に存在するシェーディング法線を修正するステップを備え、
前記修正するステップが、
前記角の領域に存在する元々のシェーディング法線に施される修正の量を計算して、所定の面取半径Ｒを有する外観をシミュレートする工程を備え、
前記計算してシミュレートする工程が、
前記角の距離Ｒの範囲内に存在する表面において当該表面のシェーディング法線を調査し、前記元々の表面のシェーディング法線と調査された隣接する表面のシェーディング法線との重み付けされたブレンドである新しい法線を計算することと、
それによって、前記シェーディング法線を変化させることによって、シェーディング効果によって丸みをレンダリング時にシミュレートするために、前記物体が実際に丸められていれば有するであろう外観に合致する前記表面法線の変形を生成することと、
を含む、コンピュータグラフィックスシステムにおける方法。
【請求項２】
前記重み付けが、前記距離Ｒにおいて開始し、隣接面までの距離がゼロとなる点まで進み、
重み関数が、この距離の関数として前記２つの法線のブレンド比を決定するのに使用される、請求項１に記載のコンピュータグラフィックスシステムにおける方法。
【請求項３】
異なる重み関数が、前記角のエッジの異なる見掛け上の輪郭を提供する、請求項２に記載のコンピュータグラフィックスシステムにおける方法。
【請求項４】
前記シェーディング法線の前記重み付けされた修正が、両方の隣接面がレンダリングされるときに、角の前記両方の隣接面に対して同様に実行され、
それによって、前記両方の隣接表面の前記エッジ領域が、それぞれが他方に近づくにつれて視覚的に薄れる見掛け上のシェーディングを有する、請求項２に記載のコンピュータグラフィックスシステムにおける方法。
【請求項５】
前記隣接面までの距離がゼロとなる前記角の実際の幾何学的エッジにおいて、前記重み関数が、前記２つの表面法線の５０／５０のブレンドによって、前記両方の面に対して同じ結果を提供するよう、前記重み関数は選択され、それによって、不連続性が、前記エッジのシェーディングにおいて視覚的に知覚されることはなく、かつ、観察者によって滑らかであると知覚されることが可能であり、それによって、丸みのある角の錯覚を可能にする、請求項４に記載のコンピュータグラフィックスシステムにおける方法。
【請求項６】
画像レンダリング処理を用いて画像をレンダリングすることができ、かつ、シェーディングモデルを用いて、レンダリングされる前記画像にシェーディングを施すことができ、表面の点Ｐが、シェーディングされるときに、１つのシェーディング法線Ｎｓおよび１つの幾何学的法線Ｎｇを有すると仮定される、コンピュータグラフィックスシステムにおける方法であって、
前記画像に含まれる物体の角の領域が、前記シェーディングモデルを用いてシェーディングされるときに、丸みのあるエッジの外観を観察者に提供するように、前記画像に含まれる物体の角の領域に存在する前記シェーディング法線を修正するステップを備え、
前記修正するステップが、前記角の隣接領域において前記角の半径Ｒの範囲内に存在する隣接表面を調査する工程を備え、Ｒが、前記角の見掛け上の面取半径である、コンピュータグラフィックスシステムにおける方法。
【請求項７】
前記コンピュータグラフィックスシステムが、幾何学的プリミティブを含むシーン記述から構成された幾何学的表現に前記シェーディングモデルを適用することによって、前記画像をレンダリングすることができ、
前記調査するステップが、前記角の半径Ｒの範囲内に存在する前記隣接表面を検出するのに使用することができる隣接情報を前記シーンに関連するデータ構造に問い合わせる工程を備える、請求項６に記載のコンピュータグラフィックスシステムにおける方法。
【請求項８】
前記調査するステップが、レイキャスティング処理を実行する工程を備え、
前記レイキャスティング処理が、画像の現時点においてシェーディングされているプリミティブの前記幾何学的法線に対して接線方向にある２つのベクトルｕおよびｖによって定義される接平面を検出するステップを備え、
ベクトル検出が、任意のベクトルを選択し、その任意のベクトルを前記幾何学的法線の前記平面内に投影して、前記ベクトルｕを検出し、そして、外積を使用して、前記ベクトルｖを検出することによって達成される、請求項７に記載のコンピュータグラフィックスシステムにおける方法。
【請求項９】
前記レイキャスティング処理が、選択された距離だけレイキャスティング処理のソース点を変位させるステップをさらに備える、請求項８に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１０】
前記ソース点が前記幾何学的法線ベクトルの負方向に沿って変位させられた場合、凸角が検出され、前記ソース点が正方向に沿って変位させられた場合、凹角が検出される、請求項９に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１１】
前記レイキャスティング処理が、前記ベクトルｕおよび前記ベクトルｖによって定義される平面内に存在するｎ個からなる一組の等しい間隔を置いて配置されたレイを放射し、表面ヒットを記録するステップをさらに備える、請求項９に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１２】
前記レイキャステング処理が、前記法線を修正するステップをさらに備え、キャスティングされたレイによるそれぞれのプリミティブヒットごとに、前記プリミティブのシェーディング法線Ｈｎが、前記ヒット点までの距離Ｄとともに、ヒット点において計算され、
Ｄ＞Ｒであれば、前記ヒットが無視されるが、Ｄ＜Ｒであれば、
【数１】
0004809480.tif 000011
に基づいて、重み係数が計算され、
次いで、前記法線Ｈｎが、係数ｆによって重み付けされ、その結果が、現時点におけるシェーディング法線Ｎｓに加算される、請求項１１に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１３】
ｎ個のすべてのレイが、送出されたとき、前記シェーディング法線Ｎｓが、単位長さを有するように再正規化され、
次いで、新しいシェーディング法線が、前記画像をシェーディングするために前記シェーディングモデルによって使用され得る、請求項１２に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１４】
前記新しいシェーディング法線が、前記画像をシェーディングするために前記シェーディングモデルによって使用される前に、バンプマッピングによってさらに修正され得る、請求項１３に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１５】
前記処理が、前記法線を修正するステップをさらに備え、前記隣接情報を用いて検出されたそれぞれのプリミティブごとに、前記検出されたプリミティブのシェーディング法線Ｈｎが、検出されたプリミティブに対する最も近い垂直点Ｄにおいて計算され、さらに、点Ｄまでの距離が計算され、
Ｄ＞Ｒであれば、前記点が、無視されるが、Ｄ＜Ｒであれば、
【数２】
0004809480.tif 000012
に基づいて、重み係数が計算され、
次いで、前記法線Ｈｎが、係数ｆによって重み付けされ、その結果が、現時点におけるシェーディング法線Ｎｓに加算される、請求項７に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１６】
単位長さを有するように前記シェーディング法線Ｎｓを再正規化し、新しいシェーディング法線を提供するステップと、
前記画像をシェーディングするために前記新しいシェーディング法線を前記シェーディングモデルにおいて使用するステップと、
を備える、請求項１５に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１７】
前記新しいシェーディング法線が、前記画像をシェーディングするために前記シェーディングモデルによって使用される前に、バンプマッピングによってさらに修正され得る、請求項１６に記載のコンピュータグラフィックスシステムにおける方法。
【請求項１８】
画像をレンダリングすることができ、かつ、前記画像にシェーディングを施すことができるコンピュータグラフィックスシステムにおけるコンピュータで動作することができ、コンピュータ可読媒体上に記憶されたコンピュータ可読プログラムコードを備えたコンピュータプログラムプロダクトであって、
前記コンピュータ可読プログラムコードが、
前記シェーディングが前記コンピュータグラフィックスシステムによって前記画像に施される場合に、シェーディングされる前記画像が、前記画像に含まれる角を観察する際に丸みのある角の外観または錯視を観察者に提供することができるように、前記画像をレンダリング中に、前記コンピュータが、前記画像に含まれる物体の前記角の領域に存在するシェーディング法線を修正するのを可能にするために該コンピュータによって実行可能なコンピュータプログラムコードを備え、
前記コンピュータプログラムコードが、さらに、
前記コンピュータが、所定の面取半径Ｒを有する前記外観をシミュレートするために、前記角の領域に存在する元々のシェーディング法線に施される修正の量を計算するのを可能にするために、コンピュータによって実行することのできるコンピュータプログラムコードを備え、
前記計算が、
前記角の距離Ｒの範囲内に存在する表面においてそれらの表面のシェーディング法線を調査し、そして、前記元々の表面のシェーディング法線と調査された隣接する表面のシェーディング法線との重み付けされたブレンドである新しい法線を計算するステップと、
それによって、前記シェーディング法線を変化させることによって、シェーディング効果によって丸みをレンダリング時にシミュレートするために、前記物体が実際に丸められていれば有するであろう外観に合致する前記表面法線の変形を生成するステップと、を含む、コンピュータプログラムプロダクト。
【請求項１９】
画像をレンダリングすることができ、かつ、前記画像にシェーディングを施すことができるコンピュータグラフィックスシステムにおけるコンピュータで動作することができるシステムであって、
前記シェーディングが前記コンピュータグラフィックスシステムによって前記画像に施される場合に、シェーディングされる前記画像が、前記画像に含まれる角を観察する際に丸みのある角の外観または錯視を観察者に提供することができるように、前記画像をレンダリング中に、前記コンピュータが、前記画像に含まれる物体の前記角の領域に存在するシェーディング法線を修正するのを可能にする手段を備え、
前記コンピュータが前記シェーディング法線を修正するのを可能にする前記手段が、さらに、
前記コンピュータが、所定の面取半径Ｒを有する前記外観をシミュレートするために、前記角の領域に存在する元々のシェーディング法線に施される修正の量を計算するのを可能にするための手段を備え、
前記計算が、
前記角の距離Ｒの範囲内に存在する表面においてそれらの表面のシェーディング法線を調査し、そして、前記元々の表面のシェーディング法線と調査された隣接する表面のシェーディング法線との重み付けされたブレンドである新しい法線を計算するステップと、
それによって、前記シェーディング法線を変化させることによって、シェーディング効果によって丸みをレンダリング時にシミュレートするために、前記物体が実際に丸められていれば有するであろう外観に合致する前記表面法線の変形を生成するステップと、を含む、システム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本特許出願（代理人整理番号第ＭＥＮＴ−２０２号）は、２００６年８月２３日に出願された米国特許仮出願第６０／８２３，３１２号（代理人整理番号第ＭＥＮＴ−２０２−ＰＲ号）に基づく優先権を主張するものであり、この米国特許仮出願第６０／８２３，３１２号は、その全体が本明細書に記載されているかのように本明細書に組み込まれる。
【発明の分野】
【０００２】
本発明は、コンピュータグラフィックスの分野に関し、より詳細には、合成画像レンダリングのためのコンピュータベースシステム内において、多面体上の面取りされたエッジまたは丸みのある角の外観を生成するのを可能にする改善された方法およびシステムに関する。
【発明の背景】
【０００３】
コンピュータグラフィックスシステム、および、コンピュータグラフィックスシステムのためのソフトウェア、とりわけ、３次元画像を生成およびレンダリングするように適合されたそのようなシステムおよびソフトウェアは、動画産業およびその他の産業からの需要の増加とともに、爆発的な速度で成長し続けている。
【０００４】
これらの３次元画像をリアルにレンダリングするためのソフトウェアのユーザは、結果として得られる画像に最大限のリアリズムを要求する。それにもかかわらず、それらのユーザが自由に使用できるモデリングツールは、リアルでない数学的精度でモデル物体を生成する傾向があり、すべてのエッジは、きわめて鋭くかつ角のあるものである。「現実の世界」におけるエッジは、典型的には、わずかではあるにしても、丸みがあり、あるいは、摩耗している。
【０００５】
この問題の１つの解決策は、実際の３Ｄモデルにおいて、これらの丸みを面または面取として正確にモデリングすることであった。このアプローチは、より自然に見えるエッジをもたらすが、それと同時に、より大きな複雑さ、すなわち、ポリゴンの数の増加をもたらし、そして、はるかに複雑なモデルをもたらす。
【０００６】
処理の複雑さまたは記憶要件を著しく増大させることなく、丸みのある角または面取されたエッジの外観を備えたよりリアルな３次元画像をレンダリングすることのできる方法およびシステムを提供することは望ましいことである。
【発明の概要】
【０００７】
本発明の一態様は、画像をレンダリングしかつ画像にシェーディングを施すことのできるコンピュータグラフィックスシステムにおいて動作することができ、かつ、コンピュータグラフィックスシステムが、物体が丸みのある角の外観を有する画像を提供するのを可能にすることができる方法、システム、装置、機器、および／または、コンピュータプログラム／ソフトウェアコードプロダクトに関する。本発明の一態様においては、方法、システム、装置、機器、および／または、コンピュータプログラム／ソフトウェアコードプロダクトは、以下のことに関する。すなわち、画像をレンダリング中に、画像に含まれる物体の角の領域に存在するシェーディング法線を修正し、それによって、シェーディングが、画像に施されると、シェーディングされた画像は、画像に含まれる角を観察するときに、丸みのある角の外観または錯視（ｖｉｓｕａｌ  ｉｌｌｕｓｉｏｎ）を観察者に提供することができ、ここで、前記修正は、
（１）所定の面取半径Ｒを有する外観をシミュレートするために、角の領域に存在する元々のシェーディング法線に施される修正の量を計算することを備え、その計算は、
（２）角の距離Ｒの範囲内に存在する表面においてそれらの表面のシェーディング法線を調査し、そして、元々の表面のシェーディング法線と調査された隣接する表面のシェーディング法線との重み付けされたブレンド（ｗｅｉｇｈｔｅｄ  ｂｌｅｎｄ）である新しい法線を計算することと、
（３）それによって、シェーディング法線を変化させることによって、シェーディング効果（ｓｈａｄｉｎｇ  ｅｆｆｅｃｔ）によって丸みをレンダリング時にシミュレートするために、物体が実際に丸められていれば有するであろう外観に合致する表面法線の変形を生成することと、
を備える。
【０００８】
本発明のさらなる態様においては、重み付けは、元々のシェーディング法線を十分に優遇する距離Ｒにおいて開始し、隣接面までの距離が事実上ゼロとなる点まで進み、重み関数が、この距離の関数として２つの法線のブレンド比を決定するのに使用される。異なる重み関数は、角のエッジの異なる見掛け上の輪郭を提供する。
【０００９】
本発明の一態様においては、シェーディング法線の重み付けされた修正は、両方の隣接面がレンダリングされるときに、角のそれらの両方の隣接面に対して同じように実行され、それによって、両方の表面のエッジ領域は、それぞれが他方に近づくにつれて視覚的に薄れる見掛け上のシェーディングを有する。
【００１０】
重み関数は、隣接面までの距離が事実上ゼロとなる角の実際の幾何学的エッジにおいて、重み関数が、２つの表面法線の実質的に５０／５０のブレンドによって、両方の面に対して同じ結果を提供するように選択されてもよく、それによって、実質的に、不連続性が、エッジのシェーディングにおいて視覚的に知覚されることはなく、かつ、観察者によって滑らかであると知覚されることが可能であり、それによって、丸みのある角の錯覚を可能にする。
【００１１】
本発明の別の態様においては、画像レンダリング処理を用いて画像をレンダリングすることができ、かつ、シェーディングモデルを用いて、レンダリングされた画像にシェーディングを施すことができ、そして、表面の点Ｐが、シェーディングされるときに、１つのシェーディング法線Ｎｓおよび１つの幾何学的法線Ｎｇを有すると仮定されるコンピュータグラフィックスシステムにおいて、本発明の方法、システム、装置、機器、および／または、コンピュータプログラムコード／ソフトウェアプロダクトの態様は、画像に含まれる物体の角の領域に存在するシェーディング法線を修正することを提供し、それによって、画像に含まれる物体の角の領域は、シェーディングモデルを用いてシェーディングされるときに、丸みのあるエッジの外観を観察者に提供し、この修正することは、角の隣接領域において角の半径Ｒの範囲内に存在する隣接表面を調査することを備え、ここで、Ｒは、角の見掛け上の面取半径である。
【００１２】
本発明のさらなる態様においては、コンピュータグラフィックスシステムが、幾何学的プリミティブを含むシーン記述から構成された幾何学的表現にシェーディングモデルを適用することによって、画像をレンダリングすることができ、調査することが、角の半径Ｒの範囲内に存在する隣接表面を検出するのに使用することができる隣接情報をシーンに関連するデータ構造に問い合わせることを備える。
【００１３】
本発明の別の態様においては、調査することは、レイキャスティング処理（ｒａｙ−ｃａｓｔｉｎｇ  ｐｒｏｃｅｓｓ）を実行することを備え、そのレイキャスティング処理は、画像の現時点においてシェーディングされているプリミティブの幾何学的法線に対して接線方向にある２つのベクトルｕおよびｖによって定義される接平面を検出することを備えてもよく、ベクトルを検出することが、ベクトルｕを検出するために、任意のベクトルを選択し、その任意のベクトルを幾何学的法線の平面内に投影し、そして、ベクトルｖを検出するために、外積を使用することによって達成される。
【００１４】
レイキャスティングは、選択されたわずかな距離だけレイキャスティング処理のソース点を変位させることをさらに備えてもよく、ソース点が幾何学的法線ベクトルの負方向に沿って変位させられた場合、凸角が検出され、ソース点が正方向に沿って変位させられた場合、凹角が検出される。レイキャスティング処理は、ベクトルｕおよびベクトルｖによって定義される平面内に存在するｎ個からなる一組の実質的に等しい間隔を置いて配置されたレイを放射し、そして、表面ヒットを記録することをさらに備えてもよい。
【００１５】
本発明のさらなる態様においては、処理は、法線を修正することをさらに備え、キャスティングされたレイによるそれぞれのプリミティブヒットごとに、プリミティブのシェーディング法線Ｈｎが、ヒット点までの距離Ｄとともに、ヒット点において計算され、
Ｄ＞Ｒであれば、ヒットは、無視されるが、Ｄ＜Ｒであれば、
【数１】
0004809480.tif 000002
に基づいて、重み係数が計算され、そして、法線Ｈｎが、係数ｆによって重み付けされ、その結果が、現時点におけるシェーディング法線Ｎｓに加算される。ｎ個のすべてのレイが、送出されたとき、シェーディング法線Ｎｓは、単位長さを有するように再正規化され、そして、新しいシェーディング法線が、画像をシェーディングするために、シェーディングモデルによって使用されてもよい。
【００１６】
新しいシェーディング法線は、画像をシェーディングするためにシェーディングモデルによって使用される前に、バンプマッピングによってさらに修正されてもよい。
【００１７】
レイキャスティングが、使用されず、その代わりに、隣接情報が、利用できる場合、わずかな変形が、使用されてもよく、処理は、法線を修正することをさらに備え、隣接情報を用いて検出されたそれぞれのプリミティブごとに、検出されたプリミティブのシェーディング法線Ｈｎが、検出されたプリミティブに対する最も近い垂直点Ｄにおいて計算され、さらに、点Ｄまでの距離が計算され、
Ｄ＞Ｒであれば、点が、無視されるが、Ｄ＜Ｒであれば、
【数２】
0004809480.tif 000003
に基づいて、重み係数が計算され、そして、法線Ｈｎが、係数ｆによって重み付けされ、その結果が、現時点におけるシェーディング法線Ｎｓに加算される。この場合にも、再正規化およびバンプマッピングが、使用されてもよい。
【図面の簡単な説明】
【００１８】
【図１】従来技術に基づいてレンダリングされた画像であり、異常に鋭いエッジを含む。
【図２】本発明の態様に基づいてレンダリングされた画像であり、丸みのある外観が、図１の画像における鋭いエッジの代わりに、生成されている。
【図３Ａ】従来技術に基づいたシェーディング技法を示す図である。
【図３Ｂ】図３Ａに示される技法を用いて生成された画像である。
【図３Ｃ】従来技術に基づいてエッジを丸める技法を示す図である。
【図３Ｄ】図３Ｃに示される技法を用いて生成された画像である。
【図３Ｅ】本発明の態様に基づいて丸みのあるエッジの外観を生成する技法を示す図である。
【図３Ｆ】図３Ｅに示される技法を用いて生成された画像である。
【図４】物体の一部分を示す図であり、隣接表面上のヒット点を検出するためにレイキャスティング技法を使用すること示している。
【図５】物体の一部分を示す図であり、隣接表面上のヒット点を検出するためにレイキャスティング技法を使用すること示している。
【図６】物体の一部分を示す図であり、本発明の態様のさらなる例を示している。
【図７】本明細書で説明される本発明の態様に基づく一般的な技法を説明する一連のフローチャートである。
【図８】本明細書で説明される本発明の態様に基づく一般的な技法を説明する一連のフローチャートである。
【図９】本明細書で説明される本発明の態様に基づく一般的な技法を説明する一連のフローチャートである。
【図１０】本明細書で説明される本発明の態様に基づく一般的な技法を説明する一連のフローチャートである。
【図１０Ａ】本明細書で説明される本発明の態様に基づく一般的な技法を説明する一連のフローチャートである。
【図１１】本明細書で説明される本発明の態様に基づく一般的な技法を説明する一連のフローチャートである。
【図１２】本発明の態様が配備されてもよい一般的なパーソナルコンピュータまたはそれに類似するコンピューティング装置の概略図である。
【図１３】本発明の態様が配備されてもよい一般的なネットワークベースコンピューティングシステムおよびネットワーク装置を説明する概略図である。
【図１４】本発明の態様が配備されてもよい一般的なネットワークベースコンピューティングシステムおよびネットワーク装置を説明する概略図である。
【発明を実施するための形態】
【００１９】
本明細書で説明されるシステムおよび技法は、丸みのあるエッジに合致するシェーディング効果を提供する。図１は、きわめて鋭いエッジ２２を含む例としての画像２０を示す。図２は、丸みのあるエッジ２２’の視覚的印象を生成するための本明細書で説明されるシステムおよび技法に基づいて修正されたバージョンである画像２０’を示す。以下でより詳細に説明されるように、図２においては、モデリングされた物体の基本的な形状は、修正されていない。
【００２０】
このように、本発明は、より大きな複雑さをほとんど伴うことなく、丸みのある角およびエッジを提供するためのシステムおよび技法を提供する。説明されるシステムおよび技法は、これらのエッジの生成をレンダリングの領域に移し、モデラーの負担を減少させ、丸みのある角または面取されたエッジの外観を提供するための適切なシェーディングを計算するためのレンダリング時における新しいアプローチを提供する。
【００２１】
本発明の明細書は、以下の章から構成される。
１．概論
２．レンダリング時に角を丸める例
２．１  接平面を検出する
２．２  ソース点を変位させる
２．３  レイをキャスティングする
２．４  法線を修正する
２．５  後処理
２．６  さらなる例
２．７  全体的な技法
３．本発明を実施することのできるディジタル処理環境
【００２２】
１．概論
コンピュータグラフィックスにおけるシェーディングは、典型的には、光の入射レイの方向と比較して、シェーディングされるそれぞれの表面上に存在するそれぞれの点ごとのシェーディング法線ベクトルの方向によって決定される。本明細書で説明されるシステムおよび技法は、モデリングされる物体の形状が実際に丸められていればその物体が有するであろう外観と合致するように物体の表面シェーディング法線を修正することに基づくものである。
【００２３】
図３Ａは、物体１００の一部分のシェーディングを例示する図である。物体１００のシェーディングされる部分は、第１の表面１０２と、隣接する第２の表面１０４とを含む。２つの表面は、エッジ１０６において接する。シェーディングされる第１の表面１０２のそれぞれの点ごとに、シェーディング法線１０８が計算され、これらのシェーディング法線１０８は、幾何学的法線と必ずしも同じとは限らない。また同様に、シェーディングされる隣接する表面１０４のそれぞれの点ごとに、シェーディング法線１１０が計算される。画像が、レンダリングされるとき、シェーダーは、表面１０２および１０４のシェーディングを決定するのにシェーディング法線を使用する。図３Ｂは、物体１００のレンダリングされた画像を示す。レンダリングされた物体１００は異常に鋭いエッジ１０６および角１０７を有することが図３Ｂからわかる。
【００２４】
図３Ｃは、物体１００のレンダリングされた画像における異常に鋭いエッジ１０６および角１０７の問題を解決するための従来の技法を例示する図である。図３Ｃにおいて、物体２００の幾何学的モデルは、丸みのある遷移領域２１２を第１の表面２０２と第２の表面２０４との間に含むように修正されている。この例においては、丸みのある遷移領域２１２は、半径Ｒを備えた円２１４に対応する円形輪郭を有する。修正されたモデルを使用すれば、画像が、レンダリングされるとき、第１の組のシェーディング法線２０８が、第１の表面２０２に対して計算され、第２の組のシェーディング法線２１０が、第２の表面２０４に対して計算され、そして、第３の組のシェーディング法線２１６が、丸みのある遷移領域部分２１２に対して計算される。図３Ｄは、丸みのあるエッジ２０６および角２０７を備えた修正された物体２００のレンダリングされた画像を示す。図３Ｃに例示されるアプローチは、よりリアルな画像をもたらすが、モデルの複雑さとモデラーの負担とを増大させる。
【００２５】
図３Ｅは、本発明の一態様による技法を例示する図である。このアプローチにおいては、物体３００の表面３０２および３０４およびエッジ３０６の形状は、修正されていない。より正確には、丸みのある外観は、エッジ３０６の距離Ｒの範囲内に存在する表面シェーディング法線３０８および３１０を修正することによって、レンダリング中にシミュレートされる。修正されたシェーディング法線３０８および３１０は、一般的には、図３Ｃおよび図３Ｄに示される「真に」丸みのある場合のシェーディング法線２１６に対応する。表面３０２および３０４およびエッジ３０６の基本的な形状は、修正されていないにもかかわらず、シェーディング法線３０８’および３１０’の修正は、図３Ｆに示される物体３００のレンダリングされた画像として示されるように、より自然な丸みのある外観をもたらす。このように、本明細書で説明される技法は、モデルの複雑さを増大させることなく、かつ、モデラーの負担を増大させることなく、丸みのあるエッジ３０６および角３０７を生成するのを可能にする。
【００２６】
指定された半径Ｒを備えた所定の面取の外観をシミュレートするために元々のシェーディング法線に施される修正の量を計算するために、距離Ｒの範囲内に存在する隣接する表面は、それらの表面のシェーディング法線を調査される。新しい法線が、生成され、その新しい法線は、元々の表面のシェーディング法線と調査された隣接する表面のシェーディング法線との重み付けされたブレンドである。
【００２７】
重み付けは、元々のシェーディング法線を十分に優遇するために距離Ｒにおいて開始し、隣接面への距離が事実上ゼロとなる点にまで至る。重み関数が、この距離の関数として２つの法線のブレンド比を決定するのに使用される。異なる重み関数は、エッジの異なる見掛け上の輪郭を提供する。
【００２８】
シェーディング法線のこの重み付けされたスキューイング（ｓｋｅｗｉｎｇ）は、両方の面がレンダリングされるときにそれらの両方の面に対して同じように実行され、両方の表面のエッジ領域は、他方に近づくにつれて薄れるシェーディングを有することになる。
【００２９】
隣接面までの距離が事実上ゼロとなる実際の幾何学的エッジにおいて、重み関数が、両方の面に対して同じ結果、例えば、２つの表面法線の５０％のブレンドを提供するように重み関数が選択されるとき、不連続性は、エッジのシェーディングにおいて認識されることはなく、「滑らか」であると知覚され、丸みのある角の完璧な視覚的印象を可能にする。
【００３０】
２．レンダリング時に角を丸める例
次に、本発明に基づいてレンダリング時に角を丸めることの例を説明する。以下で説明される例は、何らかの特別な事前に生成された情報を使用することはない。しかしながら、そのような拡張機能が、可能性としてわずかにより最適化されるかもしれない変形を提供するために、隣接する面の情報のための余分な記憶空間を犠牲にして追加されてもよい。より詳細には、以下で説明される例は、調査のためのレイキャスティング技法を使用するが、隣接情報を含むかまたは隣接情報を得ることができるデータ構造をプロセッサー／方法が利用できるならば、レイキャスティングは、必ずしも必要ではない。本明細書で使用される「隣接情報」という用語は、ここでは、典型的には、画像のそれぞれのポリゴンに関連して記憶された情報のような、所定のポリゴンに隣接するポリゴンを決定するのに使用されてもよい画像に関連して記憶された情報を指す。多くの一般的なコンピュータグラフィックスシステムにおいては、画像内に含まれるすべてのポリゴンは、他のどのポリゴンがそのポリゴンに「近い」かまたは他のどのポリゴンがそのポリゴンに隣接するかについての情報を含む。そのような情報が、利用できない場合、レイキャスティングは、隣接するポリゴンまたは表面を調査および決定するのに使用されてもよい１つの技法である。
【００３１】
当業者は、本明細書で説明される技法および／または例は、可能性としてわずかにより最適化されるかもしれない技法を提供するために、隣接する面の情報を記憶するのに必要な余分な記憶空間を犠牲にして、隣接情報を使用するように実施され、変更され、あるいは、拡張されてもよいことを理解および認識できるはずである。そのような情報を利用することができる場合、レイキャスティング処理によってヒットする点よりもむしろ、元々のプリミティブの平面と交差する隣接プリミティブ上の最も近い平面内垂直点（以下の例を参照）が、直接に使用されてもよい。しかしながら、すべての有効な方法において、隣接する表面上の点が検出されてしまえば、どの処理がその点を検出するのに使用されたとしても、処理の残りの部分は、ほぼ同じものである。
【００３２】
以下に例示される例を参照する。以下の例は、エッジの見掛け上の丸みの半径として入力パラメータＲを使用する。ユーザかまたは幾何学的パイプラインからのさらなる入力は、必要とされない。しかしながら、必要であれば、さらなるパラメータが提供されてもよいことに注意されたい。
【００３３】
それぞれの表面点Ｐが、シェーディングされるとき、１つのシェーディング法線Ｎｓおよび１つの幾何学的法線Ｎｇを有すると仮定する。２つの法線ＮｓおよびＮｇは、基本的な表面の特徴に依存して、同一であってもよく、あるいは、同一でなくてもよい。
【００３４】
目的は、シェーディング法線Ｎｓを修正することであり、それによって、その後に、物体が、周知のＰｈｏｎｇシェーディングモデルのような適切なシェーディングモデルを用いてシェーディングされると、丸みのあるエッジの外観が、生成される。
【００３５】
Ｐｈｏｎｇシェーディングは、コンピュータグラフィックスにおける補間法であり、Ｐｈｏｎｇ反射モデルによって生成されるような鏡面反射光の解像度を向上させるために、ポリゴンをラスタライズするときに表面法線の補間を用いる。Ｐｈｏｎｇシェーディングという用語は、また、反射モデルを意味することもあり、あるいは、反射モデルと補間法との組み合わせを意味することもあり、Ｐｈｏｎｇシェーディングおよびその他のシェーディング技法は、“Ａｋｅｎｉｎｅ−Ｍｏｌｌｅｒ＆Ｈａｉｎｅｓ，“Ｒｅａｌ−Ｔｉｍｅ  Ｒｅｎｄｅｒｉｎｇ”２ｄ  ｅｄ．，Ａ．Ｋ．Ｐｅｔｅｒｓ（２００２）”に説明されており、この文献は、その全体が参照により本明細書に組み込まれる。
【００３６】
上述したように、また、以下でより詳細に説明するように、隣接情報が、利用できなければ、隣接領域が、半径Ｒの範囲内に存在する隣接表面に対して精査される。本発明のこの態様によれば、隣接領域のこの精査は、レイキャスティングステップまたはレイキャスティング処理を用いて実行される。
【００３７】
２．１  接平面を検出する
図４は、第１の表面４０２および隣接する第２の表面４０４を有する物体４００の一部分を示す図であり、第１の表面および第２の表面は、エッジ４０６において接する。第１の表面４０２上の点Ｐに対する第１のシェーディング法線４０８が示され、そして、第２の表面４０４に対する代表的な第２のシェーディング法線４１０が示される。ここで、図４を参照すると、レイキャスティングは、現時点においてシェーディングされているプリミティブの幾何学的法線に対して接線方向にある２つのベクトルｕおよびｖを検出することによって開始する。これは、例えば、図４に示されるように、任意のベクトルの向きがベクトルｕを検出するには幾何学的法線にあまりにも近すぎる縮退状態に注意しながら、かつ、ベクトルｖを検出するために外積を用いて、任意のベクトルを取り出し、そして、そのベクトルを幾何学的法線の平面内に投影することによって達成されてもよい。
【００３８】
２．２  ソース点を変位させる
シェーディングされる点Ｐは、定義によって、現時点においてシェーディングされているプリミティブの平面内に存在する。コストがかかり面倒な自己交差を回避することは望ましいことである。この理由から、レイキャスティング処理の開始点は、正確な縮尺率で描写されていない図５に示されるように、わずかな距離δだけ変位させられる。この例においては、開始点は、幾何学的表面法線の方向に沿ってＲ／１０００だけ変位させられ、以下の式（１）として表現される。
【数３】
0004809480.tif 000004
【００３９】
点が、幾何学的法線ベクトルの負方向に沿って変位させられる場合、凸角が、検出され、点が、正方向に沿って変位させられる場合、凹角が、検出される。
【００４０】
２．３  レイをキャスティングする
次のステップは、ベクトルｕおよびベクトルｖによって定義された平面内において、等しい間隔を置いて配置されたレイ４１６の組を放射し、表面ヒットを記録することである。経験によって、ｎ＝６が、許容できる結果を提供することが示されている。しかしながら、必要であれば、レイの数は、変化してもよい。
【００４１】
２．４  法線を修正する
これらのキャスティングレイによるそれぞれのプリミティブヒットごとに、ヒット点までの距離Ｄとともに、ヒット点のシェーディング法線Ｈｎが計算される。上述したように、シェーディング法線Ｈｎは、ヒット点の幾何学的法線と必ずしも同じとは限らない。
【００４２】
Ｄ＞Ｒであれば、そのヒットは、棄却されるが、Ｄ＜Ｒであれば、重み係数が、以下の式（２）を用いて計算される。
【数４】
0004809480.tif 000005
【００４３】
ヒット法線Ｈｎは、この係数ｆによって重み付けされる。そして、重み付けされたヒット法線ｆＨｎは、現時点のシェーディング法線Ｎｓに加算され、以下の式（３）として表現される修正されたシェーディング法線Ｎｓ’が、生成される。
【数５】
0004809480.tif 000006
【００４４】
シェーディングされるそれぞれの点ごとに、上述した技法が、キャスティングレイのすべてに対して繰り返し実行される。上述したように、満足できる結果が、ソース点から放射される６つの等しい間隔を置いて配置されたレイを用いて得られた。それぞれのヒット点のシェーディング法線のそれぞれの重み付けされた寄与分は、以下の式（４）によって表現されるように、元々のシェーディング法線Ｎｓに加算される。
【数６】
0004809480.tif 000007
【００４５】
６つの等しい間隔を置いて配置されたレイの使用は、とりわけ、「立方体の角」の場合に、満足できる程度に実際にうまく動作した。
【００４６】
２．５  後処理
すべてのレイが、送出されると、修正されたシェーディング法線Ｎｓ’は、以下の式（５）によって表現されるように、単位長さを有するように再正規化されなければならない。
【数７】
0004809480.tif 000008
【００４７】
再正規化の後、修正されたシェーディング法線は、Ｐｈｏｎｇ、Ｗａｒｄ、などのモデルのような一般的なシェーディングモデルに送り込まれる。
【００４８】
本発明のさらなる態様によれば、新しいシェーディング法線は、一般的なシェーディングモデルに送り込まれる前に、従来のバンプマッピングによってさらに修正されてもよい。バンプマッピングは、“Ｊ．Ｆ．Ｂｌｉｎｎ，“Ｓｉｍｕｌａｔｉｏｎ  ｏｆ  Ｗｒｉｎｋｌｅｄ  Ｓｕｒｆａｃｅｓ”，Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，Ｖｏｌ．１２（３），ｐｐ．２８６−２９２，ＳＩＧＧＲＡＰＨ−ＡＣＭ（Ａｕｇｕｓｓｔ  １９７８）”に説明されており、この文献は参照により本明細書に組み込まれる。
【００４９】
２．６  さらなる例
上述した技法のさらなる例が、図６に例示され、この図６は、元々の第１の表面５０２および隣接する第２の表面５０４を含むモデリングされた物体５００の一部分を示す図であり、第１の表面および第２の表面は、丸みのある外観を生成することが望まれるエッジ５０６において接する。
【００５０】
システムユーザは、丸みのあるエッジに対する望ましい半径Ｒを入力として提供する。その結果として、概念的に説明すれば、入力された半径Ｒは、それぞれの点５１６および５１８において元々の表面５０２および隣接する表面５０４の両方に接する円５１４の半径である。本明細書で説明される技法は、モデリングされる物体５００の形状を修正することなく、点５１６と点５１８との間に延びる曲面の視覚的印象を生成する。上述したように、本明細書で説明される技法は、点５１６とエッジ５０６との間の第１の表面５０２上およびエッジ５０６と点５１８との間の第２の表面上に存在するそれぞれのモデリングされる点のそれぞれのシェーディング法線を修正することによって、望ましい視覚的効果を生成する。
【００５１】
ここで、この技法が、元々の表面５０２上に存在する例としての点Ｐに関して説明される。点Ｐは、初期シェーディング法線Ｎｓを有する。
【００５２】
この例においては、隣接情報は、利用することができず、そのために、レイキャスティング技法が、隣接する表面上のヒット点を探索するのに使用されると仮定する。しかしながら、上述したように、隣接情報が、利用できるならば、ヒット点は、レイキャスティング技法を必要とせずに、簡単なルックアップ処理によって探索されてもよい。
【００５３】
隣接情報は利用できないと仮定すれば、レイキャスティング技法が、隣接する表面上のヒット点を探索するのに使用される。上述したように、レイは、点Ｐの幾何学的法線に対して接線方向にある平面に沿ってキャスティングされる。この説明のために、幾何学的法線は、シェーディング法線と同じものであり、かつ、表面１０２は、接平面上に存在すると仮定する。
【００５４】
自己交差を回避するために、点Ｐおよび接平面は、正確な縮尺率で描写されていない距離δだけ変位させられる。上述したように、δの適切な値は、Ｒ／１０００である。変位させられた点Ｐ’は、レイキャスティング処理のソース点として使用され、変位させられた接平面に沿って延びるレイが、使用される。上述したように、満足できる結果が、ソース点Ｐ’から放射される６つの等しい間隔を置いて配置されたレイを使用することによって、得られた。
【００５５】
そして、ソース点Ｐ’とヒット点Ｈとの間の距離Ｄが計算される。また、ヒット点Ｈのシェーディング法線Ｈｎが計算される。そして、距離Ｄ、半径Ｒ、修正されていないシェーディング法線Ｎｓ、および、ヒット点シェーディング法線Ｈｎの値が、式（２）に組み込まれ、重み係数ｆの値が計算される。
【００５６】
重み係数ｆが計算された後、その重み係数は、ヒット法線シェーディングベクトルＨｎに乗算され、重み付けされたベクトルｆ・Ｈｎが、生成される。そして、式（３）によって表現されるように、重み付けされたヒット法線シェーディングベクトルｆ・Ｈｎは、元々のシェーディング法線Ｎｓに加算され、修正されたシェーディング法線Ｎｓ’が、生成される。
【００５７】
上述したように、この処理は、ソース点から放射されるそれぞれのレイに対して繰り返し実行され、それぞれのさらなるヒット点の重み付けされた寄与分が、シェーディング法線に加算される。
【００５８】
繰り返しが、完了すれば、結果として得られる修正されたシェーディング法線は、長さ１を有するように正規化される。そして、正規化された修正シェーディング法線｜Ｎｓ’｜は、画像のレンダリング中に、シェーダーによって使用される。
【００５９】
２．７  全体的な方法
図７〜図１１は、上述された本発明による方法のフローチャートである。
【００６０】
図７は、技法７００に関するものであり、以下のステップを含む。
【００６１】
ボックス７０１：レンダリング中に、画像に含まれる物体の角の領域において、シェーディング法線を修正し、それによって、シェーディングが、その画像に施されると、シェーディングされた画像は、観察者が画像における角を観察するとき、丸みのある角の外観または錯視をその観察者に提供することができる。
【００６２】
ボックス７０２：所定の面取半径Ｒを有する外観をシミュレートするために、角の領域に存在する元々のシェーディング法線に施される修正の量を計算する。
【００６３】
ボックス７０３：角から距離Ｒの範囲内に存在する表面においてそれらの表面のシェーディング法線を調査する。（以下で説明される図９および図１０は、ボックス７０３の様々な変形を示す）
【００６４】
ボックス７０４：元々の表面のシェーディング法線と調査された隣接する表面のシェーディング法線との重み付けされたブレンドである新しい法線を計算し、それによって、シェーディング法線を変化させることによって、シェーディング効果によって角の丸みをレンダリング時にシミュレートするために、物体が実際に丸められていれば有するであろう外観に合致する表面法線の変形を生成する。図面に示されるように、また、上述したように、本発明の一態様によれば、重み付けは、元々のシェーディング法線を十分に優遇する距離Ｒにおいて開始し、隣接する面までの距離が事実上ゼロとなる点まで進む。重み関数が、２つの法線のブレンド比を距離の関数として決定するのに使用される。異なる重み関数は、角のエッジの異なる見掛け上の輪郭を提供する。本発明の様々な態様においては、シェーディング法線の重み付けされた修正は、角の両方の隣接する面がレンダリングされるときにそれらの面に対して同じように実行され、それによって、両方の表面のエッジ領域は、それぞれが他方に近づくにつれて視覚的に薄れる見掛け上のシェーディングを有する。また、上述したように、本発明の一態様によれば、重み関数は、隣接面までの距離が事実上ゼロである角の実際の幾何学的エッジにおいて、その重み関数が、ブレンド比がほぼ５０／５０である２つの表面法線によって、それらの両方の面に対して同じ結果を提供するように選択され、それによって、不連続性は、エッジのシェーディングにおいて視覚的にほとんど知覚することができず、観察者は、エッジのシェーディングを滑らかなものであると知覚することができ、それによって、丸みのある角であるという錯覚を可能にする。
【００６５】
図８は、図７に示される技法７００の変形である技法８００を示し、この技法８００は、以下のステップを含む。
【００６６】
ボックス８０１：画像に含まれる物体の角の領域が、シェーディングモデルを使用することによってシェーディングされるときに、丸みのあるエッジの外観を観察者に提供するように、画像に含まれる物体の角の領域に存在するシェーディング法線Ｎｓを修正する。
【００６７】
ボックス８０２：角の隣接領域において角の半径Ｒの範囲内に存在する隣接表面を調査し、ここで、Ｒは、角の見掛け上の面取半径である。
【００６８】
図９は、図７に示されるボックス７０３の変形９００を示し、以下のステップを含む。
【００６９】
ボックス９０１：シーンに関連するデータ構造に問い合わせることによって、角の半径Ｒの範囲内に存在する隣接表面を検出するのに使用することのできる隣接情報を調査する。
【００７０】
図１０は、図７に示されるボックス７０３の第２の変形１０００を示し、この変形は、レイキャスティングを使用し、以下のステップを含む。
【００７１】
ボックス１００１：レイキャスティングを実行することによって調査する。画像の現時点においてシェーディングされているプリミティブの幾何学的法線Ｎｓに対して接線方向にある２つのベクトルｕおよびｖによって定義される接平面を検出する。本発明の一態様または一例においては、ベクトル検出は、以下のステップを含んでもよい。すなわち、任意のベクトルを選択し、ベクトルｕを検出するために、そのベクトルを幾何学的法線の平面に投影し、そして、ベクトルｖを検出するために、外積を使用する。
【００７２】
ボックス１００２：選択されたわずかな距離だけレイキャスティング処理のソース点を変位させる。ソース点が幾何学的法線ベクトルの負方向に沿って変位させられる場合、凸角が検出され、ソース点が正方向に沿って変位させられる場合、凹角が検出される。
【００７３】
ボックス１００３：ベクトルｕおよびベクトルｖによって定義される平面内に存在するｎ個からなる一組のほぼ等しい間隔を置いて配置されたレイを放射し、表面ヒットを記録する。
【００７４】
ボックス１００４：法線を修正する。キャスティングされたレイによってヒットしたそれぞれのプリミティブごとに、ヒット点までの距離Ｄとともに、ヒット点におけるプリミティブのシェーディング法線Ｈｎが計算される。
【００７５】
ボックス１００５：Ｄ＞Ｒであれば、ヒットは、無視されるが、Ｄ＜Ｒであれば、重み係数が、
【数８】
0004809480.tif 000009
に基づいて計算される。
【００７６】
ボックス１００６：係数ｆによって法線Ｈｎに重み付けし、その結果を現時点におけるシェーディング法線Ｎｓに加算する。
【００７７】
ボックス１００７：ｎ個のすべてのレイが、送出されると、単位長さを有するようにシェーディング法線Ｎｓを再正規化する。
【００７８】
ボックス１００８：画像をシェーディングするために、新しいシェーディング法線をシェーディングモデルに使用する。
【００７９】
図１０Ａは、ボックス１００８の変形を示し、以下のステップを含む。
【００８０】
ボックス１００８ａ：バンプマッピングによって、新しいシェーディング法線をさらに修正する。
【００８１】
ボックス１００８ｂ：画像をシェーディングするために、修正されたシェーディング法線をシェーディングモデルに使用する。
【００８２】
図１１は、隣接情報（レイキャスティングの代わりに）を使用する技法１１００を示し、以下のステップを含む。
【００８３】
ブロック１１０１：法線を修正する。隣接情報を用いて検出されたそれぞれのプリミティブごとに、検出されたプリミティブのシェーディング法線Ｈｎが、検出されたプリミティブに対する最も近い垂直点Ｄにおいて計算され、また、点ｄまでの距離が計算される。
【００８４】
ブロック１１０２：Ｄ＞Ｒであれば、点は、無視される。Ｄ＜Ｒであれば、重み係数が、
【数９】
0004809480.tif 000010
に基づいて計算される。
【００８５】
ボックス１１０３：係数ｆによって法線Ｈｎに重み付けする。
【００８６】
ボックス１１０４：結果を現時点におけるシェーディング法線Ｎｓに加算する。
【００８７】
ボックス１１０５：単位長さを有するようにシェーディング法線Ｎｓを再正規化し、新しいシェーディング法線を提供する。
【００８８】
ボックス１１０６：画像をシェーディングするために、新しいシェーディング法線をシェーディングモデルに使用する。
【００８９】
図１１は、ボックス１１０６の変形をさらに示し、以下のステップを含む。
【００９０】
ボックス１１０６ａ：バンプマッピングによって、新しいシェーディング法線を修正する。
【００９１】
ボックス１１０６ｂ：そして、画像をシェーディングするために、修正された新しいシェーディング法線をシェーディングモデルに使用する。
【００９２】
３．本発明を実施することのできる典型的なディジタル処理環境
以下は、上述した本発明が具体化および実施されてもよい比較的に周知の典型的なディジタル処理構成および環境の説明であり、図１２〜図１４に関連して説明される。
【００９３】
上述したように、本発明は、丸みのある角およびエッジの外観を生成するのを可能にする方法、システム、装置、および、コンピュータプログラムプロダクトを提供し、また、コンピュータグラフィックスシステムにおけるその他のアクティビティーを提供することが当業者にはわかるはずであり、それらの出力は、典型的には、人が知覚することのできる（あるいは、ディジタル的に記憶および送信される）１つの画像または一連の画像であり、それらの画像は、例えば、アニメーション動画、コンピュータ支援設計表現、または、その他の典型的なコンピュータグラフィックス出力を備えてもよい。したがって、本発明は、ディスプレイ装置、キーボード、タブレット、および／または、マウスのようなユーザインタフェースエレメント、メモリー、記憶装置、および、その他の一般的なコンピュータグラフィックスシステムコンポーネントとともにコンピュータグラフィックスシステムの一部を構成するコンピュータのコンピュータソフトウェアまたはコンピュータハードウェアの一部として実施されてもよい。そのような種類の一般的なコンポーネントは、当業者には周知のものであり、そのために、ここではきわめて詳細に説明されなくてもよく、以下の概説は、コンピュータグラフィックスシステムにおけるそのようなコンポーネントとともに本発明をどのように実施することができるかを説明するものである。
【００９４】
より詳細には、当業者は、例えば、動画の表示またはその他の動的表示のために、本発明を画像の生成および合成に使用してもよいことを理解できるはずである。本明細書で説明される技法は、画像の画素ごとに画素値が生成されるコンピュータグラフィックスシステムの一部として実施されてもよい。画素値は、シミュレートされるカメラの画像平面上に記録されたシーンにおける点を表現するものである。その基本的なコンピュータグラフィックスシステムは、本発明による方法のような選択された方法を用いて、画像の画素値を生成するように構成されてもよい。
【００９５】
これまでの詳細な説明は、これらの技法に基づいた方法、構造、システム、および、コンピュータソフトウェアプロダクトの例を説明するものである。当業者は、説明された方法およびシステムは、スタンドアロン構成としてかまたはネットワークを介してＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ、Ｌｉｎｕｘ、または、Ｕｎｉｘのような一般的なオペレーティングシステムに基づいて動作（または、エミュレート）するパーソナルコンピュータ（ＰＣ）またはそれと同等な装置のような一般的なコンピュータ装置を用いて、ソフトウェア、ハードウェア、または、ソフトウェアとハードウェアを組み合わせたものとして実施されてもよいことを理解できるはずである。したがって、本明細書で説明される様々な処理の態様および手段は、適切に構成されたディジタル処理装置またはネットワーク装置のソフトウェアエレメントおよび／またはハードウェアエレメントとして実施されてもよい。処理は、順々にまたは並列に実行されてもよく、また、特殊用途ハードウェアまたは再構成可能ハードウェアを用いて実施されてもよい。
【００９６】
１つの例として、ここに添付された図１２は、そのようなコンピュータグラフィックス処理を実行することのできる例としてコンピュータシステム１２００を描写している。図１２を参照すると、一実施形態におけるコンピュータシステム１２００は、プロセッサーモジュール１２０１と、キーボード１２０２Ａおよび／またはマウス１２０２Ｂ（または、オペレータ入力エレメント１２０２として大まかに識別されるデジタイジングタブレットまたはその他の類似するエレメント）のようなオペレータ入力コンポーネントおよびビデオディスプレイ装置１２０３のようなオペレータ出力エレメントを備えたオペレータインタフェースエレメントとを含む。例としてのコンピュータシステム１２００は、一般的なプログラム内蔵コンピュータアーキテクチャーを有してもよい。プロセッサーモジュール１２０１は、例えば、１つかまたはそれ以上のプロセッサー、メモリー、および、ディスクおよび／またはテープ記憶エレメントのような大容量記憶装置（個々には示されない）を含んでもよく、これらは、これらに提供されるディジタルデータに関連する処理および記憶操作を実行する。オペレータ入力エレメント１２０２は、処理のためにオペレータが情報を入力するのを可能にするように提供されてもよい。ビデオディスプレイ装置１２０３は、プロセッサーモジュール１２０１によって生成された出力情報を画面１２０４によってオペレータに表示するように提供されてもよく、その情報には、処理のためにオペレータが入力してもよいデータ、処理を制御するためにオペレータが入力てもよい情報、および、処理中に生成された情報が、含まれる。プロセッサーモジュール１２０１は、いわゆる「グラフィカルユーザインタフェース（「ＧＵＩ」）」を用いて、ビデオディスプレイ装置１２０３によって表示される情報を生成してもよく、様々なアプリケーションプログラムのための情報が、様々な「ウィンドウ」を用いて表示される。
【００９７】
「メモリー」、「記憶装置」、および、「ディスク記憶装置」という用語は、コンピュータハードディスク、コンピュータフロッピーディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読ＲＡＭエレメントまたはＲＯＭエレメント、または、ディジタル情報を符号化するその他何らかの公知の手段のようなあらゆるコンピュータ可読媒体を包含する。「アプリケーションプログラム」、「アプリケーション」、「プログラム」、「コンピュータプログラムプロダクト」、または、「コンピュータソフトウェアプロダクト」という用語は、媒体が、固定されたものまたは取り外し可能なもの、永久的なものまたは消去可能なもの、などであろうとなかろうと、コンピュータ可読媒体上に符号化されおよび／または記憶されたコンピュータ可読プログラム命令からなるあらゆるコンピュータプログラムプロダクトを包含する。上述したように、例えば、図１４の概略図のブロック１３２２においては、アプリケーションおよびデータは、内部または外部であろうとなかろうと、ディスク、ＲＡＭ、ＲＯＭ、その他の取り外し可能なまたは固定された記憶装置に記憶されてもよく、また、この分野において周知の実施形態および技法に基づいて、ダウンロードまたはアップロードされてもよい。また、本明細書において説明されるように、本発明は、コンピュータ可読媒体上に記憶されたソフトウェアまたはコンピュータプログラムプロダクトの形態を有してもよく、あるいは、アップロードまたはダウンロードされてもよいコンピュータプログラムコードの形態であってもよく、あるいは、ＦＰＧＡ、ＲＯＭ、または、その他の電子的構造体に消去不能に書き込まれてもよいコンピュータプログラムコードの形態であってもよく、あるいは、方法またはそのような方法を実行するシステムの形態を有してもよい。いずれの場合においても、本発明は、コンピュータまたはコンピュータシステムが画像またはシーンの画素ごとに画素値を計算するのを可能にすることができ、その画素値は、コンピュータグラフィックスシステムの他のエレメントによって使用されてもよく、それらのエレメントは、電気的または電子的な表示制御出力を生成するためのグラフィックスカード、ディスプレイコントローラ、または、ＬＣＤおよび／またはＣＲＴのようなディスプレイエレメントのような一般的なエレメントであってもよく、そして、最終的に、本発明は、人が知覚できる形態で画像を表示し、および／または、後に表示および／または処理するために、そのような画像（または、そのような画像を指定するデータ）を記憶するのを可能にすることができる。
【００９８】
コンピュータシステム１２００は、オペレータから入力情報を受け取るためのキーボード１２０２Ａおよびマウス１２０２Ｂ、および、出力情報をオペレータに表示するためのビデオディスプレイ装置１２０３のような特定のコンポーネントを備えるように示されているが、コンピュータシステム１２００は、図１２に示されるものに加えて、あるいは、それらの代わりに、様々なコンポーネントを含んでもよいことがわかるはずである。
【００９９】
さらに、プロセッサーモジュール１２０１は、符号１２０５によって大まかに識別される１つかまたはそれ以上のネットワークポートを含んでもよく、それらのネットワークポートは、コンピュータシステム１２００をコンピュータネットワークに接続する通信リンクに接続される。ネットワークポートは、コンピュータシステム１２００が、ネットワーク内の他のコンピュータシステムおよび他の装置に情報を送信し、かつ、ネットワーク内の他のコンピュータシステムおよび他の装置から情報を受信するのを可能にする。例えば、クライアント−サーバーパラダイムに基づいて構成された典型的なネットワークにおいては、ネットワーク内に存在するある特定のコンピュータシステムが、サーバーに指定され、このサーバーは、他のクライアントコンピュータシステムによって処理されるデータおよびプログラム（大まかには「情報」）を記憶し、それによって、それらのクライアントコンピュータシステムが情報をうまく共有するのを可能にする。特定のサーバーによって保持されている情報にアクセスしなければならないクライアントコンピュータシステムは、サーバーがそのクライアントコンピュータシステムへネットワークを介して情報をダウンロードするのを可能にする。データを処理した後、クライアントコンピュータシステムは、記憶するために、処理されたデータをサーバーへ返送してもよい。また、コンピュータシステム（上述したサーバーおよびクライアントを含めて）に加えて、ネットワークは、例えば、プリンターおよびファクシミリ装置、ディジタルオーディオまたはビデオ記憶装置および配信装置などを含んでもよく、それらは、ネットワークに接続された様々なコンピュータシステム間で共有されてもよい。ネットワーク内に存在するコンピュータシステムを相互接続する通信リンクは、一般的なことではあるが、コンピュータシステム間で信号を伝達するための導線、光ファイバー、または、その他の媒体を含む何らかの都合のよい情報伝達媒体を備えてもよい。コンピュータシステムは、通信リンクを介して転送されるメッセージによって、ネットワークを介して情報を転送し、それぞれのメッセージは、情報と、メッセージを受信すべき装置を識別する識別子とを含む。
【０１００】
図面に示されるコンピュータシステム１２００に加えて、本発明による方法、装置、または、ソフトウェアプロダクトは、スタンドアロン型、ネットワーク型、携帯または固定型であろうとなかろうと、一般的なＰＣ１３０２、ラップトップ１３０４、ハンドヘルドコンピュータまたはモバイルコンピュータ１３０６を含む図１３および図１４に例として示されるような何らかの一般的に公知の様々なコンピューティング装置およびコンピューティングシステム（例えば、ネットワークシステム１３００）上において、あるいは、インターネットまたはその他のネットワーク１３０８を介して、動作することができ、そして、それらのネットワークは、サーバー１３１０および記憶装置１３１２を含んでもよい。
【０１０１】
一般的なコンピュータソフトウェア実施形態およびコンピュータハードウェア実施形態に従って、本発明に基づいて構成されたソフトウェアアプリケーションは、例えば、図１３および図１４に示されるようなＰＣ１３０２内において動作してもよく、プログラム命令は、ＲＯＭまたはＣＤ−ＲＯＭ１３１６（図１４）、磁気ディスクまたはその他の記憶装置１３２０から読み出されてもよく、そして、ＣＰＵ１３１８によって実行するために、ＲＡＭ１３１４へロードされてもよい。データは、一般的なキーボード、スキャナー、マウス、デジタイジングタブレット、または、その他のエレメント１３０３を含む何らかの公知の装置または手段を介して、システムへ入力されてもよい。図１４に示されるように、描写されている記憶装置１３２０は、取り外し可能記憶装置を含む。図１４にさらに示されるように、アプリケーションおよびデータ１３２２は、いくつかのまたはすべての固定または取り外し可能な記憶装置またはＲＯＭに配置されてもよく、あるいは、ダウンロードされてもよい。
【０１０２】
当業者は、本明細書で説明される本発明の方法態様は、ＡＳＩＣ製造業者に公知のＡＳＩＣ製造技術を用いてここで説明された処理を実行するように特別に構成されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）のようなハードウェアエレメントにおいて実行されてもよいことを理解できるはずである。多くの製造業者から様々な形態のＡＳＩＣを入手することができるが、現時点において入手できるＡＳＩＣは、本明細書において説明された機能を提供しない。そのような製造業者には、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ、および、ＮＶＩＤＩＡ  Ｃｏｒｐｏｒａｔｉｏｎが含まれ、この両者は、Ｓａｎｔａ  Ｃｌａｒａ，Ｃａｌｉｆｏｒｎｉａに存在する。一般的なＡＳＩＣまたはそれと同等な集積回路の実際の半導体素子は、本発明の一部ではなく、ここでは詳細には説明されない。
【０１０３】
また、当業者は、ＡＳＩＣまたはその他の一般的な集積回路または半導体素子は、ここでより詳細に説明される本発明の教示を用いて、図１〜図１１に示されるような上述した本発明の方法を実行するように実施されてもよいことを理解できるはずである。
【０１０４】
また、当業者は、本発明の方法態様は、ワークステーションまたはパーソナルコンピュータ（ＰＣ）のオペレーティングシステムの集合コマンドおよび本発明に基づいて構成されたコンピュータプログラムプロダクト下において動作するワークステーションおよびＰＣのような市販されているディジタル処理システム内において実行されてもよいことを理解できるはずである。「コンピュータプログラムプロダクト」という用語は、コンピュータ可読媒体上に符号化された一組のコンピュータ可読プログラム命令を包含してもよい。コンピュータ可読媒体は、限定はされないが、ワークステーション、ＰＣ、または、その他のディジタル処理装置またはシステムにとって局所的または遠隔的なものであろうとなかろうと、コンピュータハードディスク、コンピュータフロッピーディスク、コンピュータ可読フラッシュドライブ、コンピュータ可読ＲＡＭまたはＲＯＭエレメント、または、ディジタル情報を符号化し、記憶し、または、提供するその他何らかの公知の手段を含めてあらゆる形態のコンピュータ可読エレメントを包含してもよい。様々な形態のコンピュータ可読エレメントおよび媒体が、コンピューティング分野において周知であり、それらの選択は実施者に委ねられる。いずれの場合においても、本発明は、コンピュータシステムが画素値を計算するのを可能にすることができ、その画素値は、コンピュータシステムのハードウェアエレメントによって使用されてもよく、そのハードウェアエレメントは、電子的な表示制御出力を生成するためのグラフィックスカードまたはディスプレイコントローラのような一般的なエレメントであってもよい。一般的なグラフィックスカードおよびディスプレイコントローラは、コンピューティング分野においては周知のものであり、本発明の一部を必ずしも構成するものではなく、それらの選択は、実施者に委ねられてもよい。
【０１０５】
これまでの説明は、当業者が本発明を実施するのを可能にする細部を含むが、この説明は実質的に例としてなされたものであること、および、これらの教示を利用することのできる当業者はそれらの例の多くの変更および変形を考え出すことができることを認識すべきである。したがって、本明細書における発明は添付の特許請求の範囲によってのみ規定されること、および、その特許請求の範囲は従来技術が許す限りできるだけ広く解釈されることが意図される。
【図１】
0004809480.tif 000013
【図２】
0004809480.tif 000014
【図３Ａ】
0004809480.tif 000015
【図３Ｂ】
0004809480.tif 000016
【図３Ｃ】
0004809480.tif 000017
【図３Ｄ】
0004809480.tif 000018
【図３Ｅ】
0004809480.tif 000019
【図３Ｆ】
0004809480.tif 000020
【図４】
0004809480.tif 000021
【図５】
0004809480.tif 000022
【図６】
0004809480.tif 000023
【図７】
0004809480.tif 000024
【図８】
0004809480.tif 000025
【図９】
0004809480.tif 000026
【図１０】
0004809480.tif 000027
【図１０Ａ】
0004809480.tif 000028
【図１１】
0004809480.tif 000029
【図１２】
0004809480.tif 000030
【図１３】
0004809480.tif 000031
【図１４】
0004809480.tif 000032