(57)【特許請求の範囲】
【請求項１】
任意のシーンについてのコンピュータグラフィクス画像を光線追跡法によって生成する画像処理装置であって、
光源の分光特性および配光特性を示す光源特性データを入力する光源特性入力手段と、
前記シーン内におけるオブジェクトの分光特性を示すオブジェクト特性データを入力するオブジェクト特性入力手段と、
前記光源特性データおよび前記オブジェクト特性データに基づいて、互いに異なる波長の光線ごとに光線追跡を行うことによって、前記シーンにおける各画素に対応する分光放射輝度を算出する光線追跡手段と、
前記各画素に対応する分光放射輝度から色信号値を算出して前記コンピュータグラフィクス画像を生成する色信号値算出手段とを有し、
前記光線追跡手段は、光線ごとに、前記光源特性データおよび前記光線が前記シーン内において最初に交差する初回交差オブジェクトの前記オブジェクト特性データに基づいて最大交差回数を設定し、前記シーン内における前記光線とオブジェクトの交差回数が前記最大交差回数を超えないように光線追跡を行うことを特徴とする画像処理装置。
【請求項２】
前記光線追跡手段は、前記初回交差オブジェクトとの交差後に残存する前記光線の強度が大きいほど、前記最大交差回数を大きく設定することを特徴とする請求項1に記載の画像処理装置。
【請求項３】
前記光線追跡手段は、前記初回交差オブジェクトに対する前記光線の反射成分および透過成分のそれぞれについて、前記最大交差回数を設定することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項４】
任意のシーンについてのコンピュータグラフィクス画像を光線追跡法によって生成する画像処理装置であって、
光源の分光特性および配光特性を示す光源特性データを入力する光源特性入力手段と、
前記シーン内におけるオブジェクトの分光特性を示すオブジェクト特性データを入力するオブジェクト特性入力手段と、
前記光源特性データおよび前記オブジェクト特性データに基づいて、互いに異なる波長の光線ごとに光線追跡を行うことによって、前記シーンにおける各画素に対応する分光放射輝度を算出する光線追跡手段と、
前記各画素に対応する分光放射輝度から色信号値を算出して前記コンピュータグラフィクス画像を生成する色信号値算出手段とを有し、
前記光線追跡手段は光線ごとに、前記シーン内で該光線と交差するオブジェクトごとに、前記光源特性データと当該オブジェクトの前記オブジェクト特性データに基づいて発射光線数を設定し、該光線と該オブジェクトとの交点から該発射光線数の光線を飛ばして光線追跡を行うことを特徴とする画像処理装置。
【請求項５】
前記光線追跡手段は、前記オブジェクトとの交差後に残存する前記光線の強度が大きいほど、前記発射光線数を大きく設定することを特徴とする請求項4に記載の画像処理装置。
【請求項６】
前記光線追跡手段は、前記オブジェクトに対する前記光線の反射成分および透過成分のそれぞれについて、前記発射光線数を設定することを特徴とする請求項4または請求項5に記載の画像処理装置。
【請求項７】
さらに、視覚特性を入力する視覚特性入力手段を有し、
前記色信号値算出手段は、前記各画素に対応する分光放射輝度および前記視覚特性から、当該画素の色信号値を算出することを特徴とする請求項1から請求項6の何れか一項に記載の画像処理装置。
【請求項８】
前記光源特性データは、光源から任意の方向に放射される光の強度分布を示す情報を、前記光源の配光特性として含むことを特徴とする請求項1から請求項7の何れか一項に記載の画像処理装置。
【請求項９】
前記光源特性データは、光源の分光放射輝度を示す情報を前記光源の分光特性として含み、
前記オブジェクト特性データは、オブジェクトの反射特性と透過特性および屈折率を示す情報を前記オブジェクトの分光特性として含むことを特徴とする請求項8に記載の画像処理装置。
【請求項１０】
前記オブジェクトの反射特性の情報は、該オブジェクトに対する光線の入射角と反射角に応じた特性を示すことを特徴とする請求項9に記載の画像処理装置。
【請求項１１】
前記オブジェクトの透過特性の情報は、該オブジェクトに対する光線の入射角と屈折角に応じた特性を示すことを特徴とする請求項9に記載の画像処理装置。
【請求項１２】
任意のシーンについてのコンピュータグラフィクス画像を光線追跡法によって生成する画像処理方法であって、
光源特性入力手段が、光源の分光特性および配光特性を示す光源特性データを入力し、
オブジェクト特性入力手段が、前記シーン内におけるオブジェクトの分光特性を示すオブジェクト特性データを入力し、
光線追跡手段が、前記光源特性データおよび前記オブジェクト特性データに基づいて、互いに異なる波長の光線ごとに光線追跡を行うことによって、前記シーンにおける各画素に対応する分光放射輝度を算出し、
色信号値算出手段が、前記各画素に対応する分光放射輝度から色信号値を算出して前記コンピュータグラフィクス画像を生成し、
前記光線追跡手段は、光線ごとに、前記光源特性データおよび前記光線が前記シーン内において最初に交差する初回交差オブジェクトの前記オブジェクト特性データに基づいて最大交差回数を設定し、前記シーン内における前記光線とオブジェクトの交差回数が前記最大交差回数を超えないように光線追跡を行うことを特徴とする画像処理方法。
【請求項１３】
任意のシーンについてのコンピュータグラフィクス画像を光線追跡法によって生成する画像処理方法であって、
光源特性入力手段が、光源の分光特性および配光特性を示す光源特性データを入力し、
オブジェクト特性入力手段が、前記シーン内におけるオブジェクトの分光特性を示すオブジェクト特性データを入力し、
光線追跡手段が、前記光源特性データおよび前記オブジェクト特性データに基づいて、互いに異なる波長の光線ごとに光線追跡を行うことによって、前記シーンにおける各画素に対応する分光放射輝度を算出し、
色信号値算出手段が、前記各画素に対応する分光放射輝度から色信号値を算出して前記コンピュータグラフィクス画像を生成し、
前記光線追跡手段は光線ごとに、前記シーン内で該光線と交差するオブジェクトごとに、前記光源特性データと当該オブジェクトの前記オブジェクト特性データに基づいて発射光線数を設定し、該光線と該オブジェクトとの交点から該発射光線数の光線を飛ばして光線追跡を行うことを特徴とする画像処理方法。
【請求項１４】
コンピュータ装置を請求項1から請求項11の何れか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光線追跡法を用いて画像を生成する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
近年、コンピュータグラフィックス（以下、CG）は、様々な分野で利用されている。CGは設計やデザインの分野でも広く利用されており、このような分野では、実物により忠実な画像を生成する技術が要求されている。
【０００３】
CGを用いて実物を忠実に再現する手法として、以下のようなさまざまな技術が知られている。例えば、光学的に複雑な特性を有する塗料等による反射のシミュレーションに変角分光反射特性を用いる手法や、モニタ上にリアリティの高い画像を再現するためにオブジェクトの変角分光反射特性を利用する手法がある。また、写りこみの色を再現するために分光屈折率特性を用いる手法や、マルチスペクトルカメラで撮影したマルチバンドデータを用いる手法もある。
【０００４】
また、CGにおける画像生成手法には、スキャンライン法、Zバッファ法、光線追跡法、等がある。中でも光線追跡法は、三次元空間における光の伝搬経路を追跡することで反射や屈折を表現可能であるため、実物に忠実な画像生成に適した手法である。一方、光線追跡法は非常に大量の光線の経路を繰り返し追跡していく必要があるため、複雑なシーンにおいて高品質な画像を得るためには、計算コストが膨大となる。そのため、光線追跡法の効率化アルゴリズムとして、空間分割法やバウンディングボリューム法等が提案されている。例えば空間分割法を用いた技術として、予め仮想空間を複数のボクセルに分割しておき、光線が通過するボクセル内のオブジェクトのみと交差判定を行って画像を生成する手法が提案されている(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2001-184522号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記CG画像を生成する従来の各手法においては、光源の配光特性が考慮されていないため、例えば蛍光灯とLED照明のように、配光特性の異なる光源によってシーンに生じる陰影の変化を再現できないという問題があった。
【０００７】
また、一般的な光線追跡法では光を波長に依存しない一様な光線として扱うため、オブジェクトを透過する光の屈折のように、波長によって異なるふるまいをする物理現象を正しく再現することができない、という問題があった。
【０００８】
本発明は上述した問題を解決するために、光源やオブジェクトの分光特性に基づいた光線追跡を行うことで、シーンを忠実に再現したコンピュータグラフィックス画像を生成することを目的とする。
【課題を解決するための手段】
【０００９】
上記問題を解決するための一手段として、本発明は以下の構成を備える。
【００１０】
本発明にかかる画像処理は、任意のシーンについてのコンピュータグラフィクス画像を光線追跡法によって生成する際、光源の分光特性および配光特性を示す光源特性データを入力し、前記シーン内におけるオブジェクトの分光特性を示すオブジェクト特性データを入力し、前記光源特性データおよび前記オブジェクト特性データに基づいて、互いに異なる波長の光線ごとに光線追跡を行うことによって、前記シーンにおける各画素に対応する分光放射輝度を算出し、前記各画素に対応する分光放射輝度から色信号値を算出して前記コンピュータグラフィクス画像を生成し、前記光線追跡において、光線ごとに、前記光源特性データおよび前記光線が前記シーン内において最初に交差する初回交差オブジェクトの前記オブジェクト特性データに基づいて最大交差回数を設定し、前記シーン内における前記光線とオブジェクトの交差回数が前記最大交差回数を超えないように光線追跡を行うことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、光源やオブジェクトの分光特性に基づいた光線追跡を行うことで、シーンを忠実に再現したコンピュータグラフィックス画像を生成することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】オブジェクトの透過特性を説明する模式図、
【図２】第１実施形態における画像処理装置の構成例を示すブロック図、
【図３】第１実施形態における画像処理装置の論理構成例を示すブロック図、
【図４】第１実施形態における画像生成処理を示すフローチャート、
【図５】光源の配光特性を説明する模式図、
【図６】光源の分光放射輝度の例を示す図、
【図７】オブジェクトの反射／透過特性を説明する模式図、
【図８】視覚特性の例を示す図、
【図９】第１実施形態における画素毎の分光放射輝度の算出処理を示すフローチャート、
【図１０】第１実施形態における色信号値算出処理を示すフローチャート、
【図１１】第１実施形態の変形例における光源の配光特性(波長依存)例を示す図、
【図１２】第２実施形態における画像生成処理を示すフローチャート、
【図１３】第２実施形態における画素毎の分光放射輝度の算出処理を示すフローチャート、
【図１４】第２実施形態における光線追跡時の最大交差回数設定の概念を示す図、
【図１５】第３実施形態における画素毎の分光放射輝度の算出処理を示すフローチャート、
【図１６】第３実施形態における光線追跡時の光線数設定の概念を示す図、である。
【発明を実施するための形態】
【００１３】
以下、本発明に係る実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１４】
＜第１実施形態＞
本実施形態においては、光源の配光特性と分光特性、及びオブジェクトの分光特性を考慮して、光線追跡法によりシーンを忠実に再現したコンピュータグラフィックス画像(CG画像)を生成する処理について説明する。
【００１５】
まず、波長によって異なる光の振る舞いについて、図１を用いて説明する。光はオブジェクトにあたると、その表面で反射する光と透過する光に分離する。オブジェクトを透過する光は、その波長λに応じた屈折率によって屈折角が変化する。例えば図１に示すように、視点を開始点として、屈折率ｎ1(λ)の空間を通過した光線が屈折率ｎ2(λ)のオブジェクト101を透過する場合を考える。このとき、オブジェクト101に対する光線の入射角をφとすると、屈折角θ(λ)は以下の(1)式で示される。
【００１６】
θ(λ)＝sin-1{(ｎ1(λ)/ｎ2(λ))sinφ}      ・・・(1)
このように屈折角は光の波長λの関数になるため、光線追跡法によって追跡する光の経路が波長λによって変化することになる。従って、図１でオブジェクト101を透過した光がさらに屈折率ｎ3(λ)のオブジェクト102を透過する等、あるシーンにおける光の透過を忠実に再現するためには、光を分光として扱う必要がある。
【００１７】
●装置構成
本実施形態における画像処理装置の構成例について、図２を用いて説明する。図２に示すように本実施形態の画像処理装置は、CPU201、メインメモリ202、HDD203、汎用インターフェイス(以下、単にI/F)204、モニタ205、メインバス206を備える。I/F204は、分光測定器207、外部記憶装置208等をメインバス206に接続する。以下、CPU201がHDD203に格納された各種ソフトウェア(コンピュータプロラム)を動作させることで実現する各種処理について説明する。
【００１８】
まずCPU201は、HDD203に格納されている画像処理アプリケーションを起動し、メインメモリ202に展開する。続いて、HDD203に格納されている各種データや、I/F204に接続された分光測定器207や外部記憶装置208から入力されるデータ等が、CPU201からの指令に基づき、メインバス206経由でメインメモリ202に転送される。さらに、画像処理アプリケーション内の処理にしたがって、メインメモリ202に格納されているデータにCPU201からの指令に基づく各種演算が施され、該演算結果をメインバス206経由でモニタ205に表示したり、HDD203に格納したりする。
【００１９】
以下、上記構成において、CPU201からの指令に基づき画像処理アプリケーションが画像を生成してモニタ205に表示するまでの画像処理について、詳細に説明する。
【００２０】
図３は、本実施形態における画像処理装置301の論理構成を示すブロック図であるが、同図に示す各構成は、上述したように画像処理アプリケーションとして実現される。
【００２１】
図３において、光源特性入力部302は、シーンを照明する光源の配光特性および分光放射輝度を示す光源特性データ307を入力する。オブジェクト特性入力部303は、シーンを構成する各オブジェクトの反射特性、透過特性及び屈折率を示すオブジェクト特性データ308を入力する。視覚特性入力部304は、シーンを観察する際の視覚特性データ309を入力する。尚、光源特性データ307、オブジェクト特性データ308、視覚特性データ309は、HDD203からの入力、またはI/F204を介して分光測定器207、外部記憶装置208からI/F204を介した入力等、所望の手段によって入力される。
【００２２】
分光放射輝度算出部305は、光源特性入力部302及びオブジェクト特性入力部303から入力された情報に基づき、CPU201からの指示に従って、シーンのCG画像における各画素の分光放射輝度310を算出する。色信号値算出部306は、分光放射輝度算出部305で算出した各画素の分光放射輝度310と、視覚特性入力部304から入力された視覚特性データ309に基づき、CPU201からの指示に従ってシーンのCG画像における各画素の色信号値を算出する。該色信号値は例えばRGB値として算出され、画像データ311として出力される。画像データ311は、HDD203等の記憶領域に格納されるとともに、モニタ205に表示される。
【００２３】
●シーンCG画像の生成処理
以下、本実施形態の画像処理装置301において、シーンのCG画像を作成する画像生成処理について、図４のフローチャートを用いて説明する。
【００２４】
まずS401で、光源特性入力部302が光源特性データ307を入力する。この光源特性データ307は上述したように、シーンを照明する光源の配光特性及び分光放射輝度を示す。
【００２５】
ここで、光源の配光特性について図５を用いて説明する。配光特性は、光源から放射される光の各方向への強度分布を示すものであり、光源の指向性の違いによって一つの光源がシーンを照らす範囲が異なる。図５(a)は、指向性の低い蛍光灯などの光源における配光特性の例であり、シーンを広く照らしていることが分かる。一方図５(b)は、指向性の高いLEDなどの光源における配光特性の例であり、シーンの一部だけが照らされていることが分かる。このように、光源の配光特性が異なるとシーンに生じる陰影が大きく変化するので、光源の配光特性はシーンを忠実に再現するために重要なファクタとなる。尚、配光特性はHDD203等に記憶されているデータを入力しても良いし、I/F204に接続された分光測定器207で光源を測定したデータを入力しても良い。また、入力するデータ形式としては、光源からの光の出力角と光の強度との対応が得られれば、どのような形式であっても構わない。例えば、出力角に対する光の強度の関数形式であって良いし、出力角と光の強度の対応を示すルックアップテーブル(以下、LUT)の形式であっても良い。
【００２６】
次に、分光放射輝度について図６を用いて説明する。光源の分光放射輝度は、波長毎の輝度分布を示すものであり、光源によって特性が異なる。図６(a)は蛍光灯の分光放射輝度分布の例であり、図６(b)はLED照明の分光放射輝度分布の例である。このように、光源の種類が異なると分光放射輝度分布も変化し、その結果、オブジェクトの色の見えが変化するので、光源の分光特性はシーンを忠実に再現するために重要なファクタとなる。尚、分光特性も配光特性と同様に、HDD203等に記憶されているデータを入力しても良いし、I/F204に接続された分光測定器207で光源を測定したデータを入力しても良い。また、入力するデータ形式としては、可視光域の波長と放射輝度との対応が得られれば、どのような形式であっても構わない。例えば、光の波長に対する放射輝度の関数であっても良いし、波長と放射輝度の対応を示すLUTの形式でも良い。
【００２７】
次にS402で、オブジェクト特性入力部303がオブジェクト特性データ308を入力する。このオブジェクト特性データ308は上述したように、シーン内の各オブジェクトの反射特性、透過特性及び屈折率を示す。
【００２８】
ここで、オブジェクトの反射特性および透過特性について、図７を用いて説明する。一般に、オブジェクトの反射特性は双方向反射率分布関数(BRDF：Bidirectional Reflectance Distribution Function)ｆrで表される。オブジェクト上の位置ｘにおいて、ある方向ωiから入射する光の波長をλi、強度をLiとし、ある方向ωrに反射する光の波長をλr、強度をdＬrとすると、反射特性ｆrは以下の(2)式で示される。
【００２９】
ｆr(ｘ,ωi,λr,ωr)＝{dＬr(ｘ,λr,ωr)}／{Ｌi(ｘ,λi,ωi)(ωr・ｎ)dω}      …(2)
一般に、反射光の強度分布はオブジェクトの表面形状に依存し、オブジェクト表面が平滑なほど、鏡面反射方向すなわちωi＝ωr方向の反射強度が高くなり、それ以外の拡散反射方向への反射強度は小さくなる。
【００３０】
尚、オブジェクトの反射特性ｆrの取得方法としては、HDD203等に記憶されているデータを入力しても良いし、I/F204に接続された分光測定器207で測定したデータを入力しても良い。また、反射特性ｆrのデータ形式としては、オブジェクトへの光の入射角と反射角に対応した反射率が得られれば、どのような形式であっても構わない。例えば、上記(2)式のように一意の関数として入力しても良いし、一般に拡散反射は等方的に分布するため、ωi＝45°,ωr＝0°の反射特性を拡散反射に適用し、鏡面反射は別途LUTにする等、分割して入力しても構わない。
【００３１】
また、オブジェクトを透過する光は双方向透過率分布関数(BTDF：Bidirectional Transmittance Distribution Function)ｆtで表される。オブジェクト上の位置ｘにおいて、ある方向ωiから入射する光の波長をλi、強度をＬiとし、ある方向ωtに透過する光の波長をλt、強度をdＬtとすると、透過特性ｆtは以下の(3)式で示される。
【００３２】
ｆt(ｘ,ωi,λt,ωt)＝{dＬt(ｘ,λt,ωt)}／{Ｌi(ｘ,λi,ωi)(ωt・ｎ)dω}      …(3)
一般に、透過光の強度分布は屈折率に依存するため、ωtが上記式(1)を満たす場合に、透過強度が最大になる。尚、オブジェクトの透過特性ｆtの取得方法としても、HDD203等に記憶されているデータを入力しても良いし、I/F204に接続された分光測定器207で測定したデータを入力しても良い。また、透過特性ｆtのデータ形式も、オブジェクトへの光の入射角と屈折角に対応した透過率が得られれば、どのような形式であっても構わない。例えば、上記(3)式のように一意の関数として入力しても良いし、ωi＝ωr＝0°の透過特性をωtが(1)式の屈折角θに等しい場合に適用し、それ以外の透過は別途LUTにする等、分割して入力しても良い。
【００３３】
次にS403で、視覚特性入力部304が視覚特性データ309を入力する。この視覚特性データ309は、分光放射輝度を画像の色信号値に変換する際に用いられ、ここで視覚特性データ309の例として、図８にCIEXYZ表色系で用いる等色関数を示す。等色関数は、可視光域の光に対する目の感度を示している。尚、視覚特性データ309は、HDD203等に予め記憶しておいて入力すれば良い。
【００３４】
次にS404で分光放射輝度算出部305が、当該シーンのCGとしての出力画像を順次走査して、分光放射輝度の算出対象となる画素を決定する。なお、この対象画素の選択順は任意である。
【００３５】
次にS405で分光放射輝度算出部305において、上記S404で選択された対象画素における分光放射輝度を算出する。この分光放射輝度の算出には光線追跡法を用いるが、処理の詳細については後述する。
【００３６】
次にS406で色信号値算出部306において、対象画素の色信号値を算出する。この色信号値の算出方法の詳細については後述する。
【００３７】
そしてS407で、出力画像の全画素について分光放射輝度の算出が終了したか否かを判定する。終了していれば生成した画像データを出力して処理を終了するが、未終了であればS404に戻り、次の対象画素を決定して処理を継続する。
【００３８】
●分光放射輝度算出処理
以下、上記S405における分光放射輝度の算出処理について、図９を用いて詳細に説明する。上述したように、本実施形態における分光放射輝度の算出には光線追跡法を用いる。この手法によれば、視点が画角内の各方向から受け取るはずの光線を、仮想的に光源まで追跡することでCG画像の描画を行う。詳細には、視点から描画する各画素の方向へ直線を伸ばし、オブジェクトとの交差の有無を数学的に判定する。そして、反射や透過により発生した光線について、再帰的に探索を繰り返し、光源と交差した場合に計算を終了する。すなわち本実施形態では、図９のフローチャートに示す処理を再帰的に実行することで複数の光線(発射光線)を追跡し、光線ごとに算出した分光放射輝度の平均により、対象画素における分光放射輝度を算出する。
【００３９】
なお、図９では波長λの単色光についての分光放射輝度算出処理を説明するが、実際には同様の処理を所定の波長毎に行うことで、当該対象画素についての分光放射輝度が得られる。なお、処理対象となる波長は全波長域から等間隔で抽出されるものとする。例えば380〜730nmの可視域において、10nm間隔で36波長を処理対象波長として抽出する。
【００４０】
まずS901で、追跡の開始点から飛ばした波長λの光線がシーンにおいて交差する点を探索する。ここで追跡の開始点は、当該フローチャートが初回の実行であれば対象画素であり、再帰実行であれば光線とオブジェクトとの交点である。なお、この交点の探索方法は任意であり、例えば、シーン内の全てのオブジェクトについて順次交差判定を行って、追跡の開始点に最も近い交点を求めれば良い。
【００４１】
次にS902で、S901で探索された光線と交差する点が、光源との交差であるか、またはその他のオブジェクトとの交差であるかを判定する。光線が光源と交差している場合にはS903に移行し、光線の強度と交差した光源の光源特性データ307から、波長λについての分光放射輝度を算出して、当該波長についての処理を終了する。ここで光源特性データ307は光源の配光特性および分光放射輝度を示すものであるから、光線の分光放射輝度Ｅ0(λ)は以下の(4)式によって示される。なお下式においては、光線の強度をＰ0(λ)、光線と光源のなす角をθ、光源からθ方向の配光特性をＱ(θ)、光源の分光放射輝度をＳ(λ)とする。
【００４２】
Ｅ0(λ)＝Ｐ0(λ)*Ｑ(θ)*Ｓ(λ)      …(4)
一方、光線が光源以外のオブジェクトと交差している場合にはS904に移行し、まず、光線が交差したオブジェクトのオブジェクト特性データ308(反射特性、透過特性及び屈折率)を取得する。
【００４３】
次にS905で、光線とオブジェクトとの交点から飛ばす光線数(発射光線数)を決定する。この発射光線数は任意に決定して構わないが、数が多いほどノイズの少ない画像が得られる。以下、発射光線数に応じた回数分、S906及びS907の処理をループする。
【００４４】
S906では、発射光線の方向および強度を算出する。光線の方向は発射光線数に応じて均等に分布すれば良く、該交点に対する反射光の強度Ｐr(λr)、透過光の強度Ｐt(λt)はそれぞれ、以下の(5),(6)式によって示される。なお、下式において、Ｐ0(λi)はオブジェクトと交差する前の光線の強度、ｆrは上記(2)式に示したオブジェクトの反射特性、ｆtは上記(3)式に示したオブジェクトの透過特性である。
【００４５】
Ｐr(λr)＝Ｐ0(λi)*ｆr(ｘ,ωi,λr,ωr)      …(5)
Ｐt(λt)＝Ｐ0(λi)*ｆt(ｘ,ωi,λt,ωt)      …(6)
次にS907で図９のフローチャートに示す処理を再帰的に呼び出すことによって、当該発射光線に対する光線追跡処理が行われる。このS907の処理はすなわち、再帰処理によって最終的に交差するオブジェクトがなくなり、当該発射光線についての分光放射輝度がS903で算出された時点で、終了する。このように、発射光線についてS907の再帰処理によって最終的に上記(4)式で算出された分光放射輝度Ｅ0(λ)が、当該発射光線についての分光放射輝度Ｅn(λ)となる。
【００４６】
そしてS908で、全ての発射光線について上記S906及びS907による光源追跡が終了したと判定されると、次にS909において、各発射光線の分光放射輝度Ｅn(λ)の平均を算出する。この平均分光放射輝度値が、対象画素における追跡対象波長λについての分光放射輝度Ｅx(λ)である。すなわち、光線の総数をＮ、各発射光線の分光放射輝度をＥn(λ)(nは0〜N-1までの整数)とすると、対象画素における追跡対象波長λの分光放射輝度Ｅx(λ)は、以下の(7)式で算出される。なお、(7)式においてΣはn=0からN-1までの整数に関する総和を示す。
【００４７】
Ｅx(λ)＝(1/Ｎ)・ΣＥn(λ)      …(7)
以上、S405では図９に示す光線追跡処理を再帰的に実行することによって、対象画素における分光放射輝度Ｅx(λ)を算出する。
【００４８】
●色信号値算出処理
以下、上記S406における画素ごとの色信号値の算出処理について、図１０を用いて詳細に説明する。尚、本実施形態では最終的にsRGB形式の色信号値を出力するとして説明するが、Adobe RGB等の他形式による色信号値であっても構わない。
【００４９】
まずS1001で、S403で入力した視覚特性データ309として、例えばCIEXYZ表色系の等色関数ｘ(λ),ｙ(λ),ｚ(λ)を取得する。次にS1002で、上記S405で算出した、画素ごとの分光放射輝度Ｅx(λ)を取得する。そしてS1003で、取得した視覚特性ｘ(λ),ｙ(λ),ｚ(λ)と分光放射輝度Ｅx(λ)から、以下の(8)〜(10)式によりCIEXYZ値(Ｘout,Ｙout,Ｚout)を算出する。
【００５０】
0005839907.tif 000002
【００５１】
0005839907.tif 000003
【００５２】
0005839907.tif 000004
【００５３】
そしてS1004において、出力画像の色信号値を算出する。ここでは出力画像をsRGB形式とするるため、出力信号Ｒout,Ｇout,Ｂoutを以下の(11)〜(13)式によって算出する。
【００５４】
0005839907.tif 000005
【００５５】
0005839907.tif 000006
【００５６】
0005839907.tif 000007
【００５７】
以上、図４に示す画像生成処理によって、シーンのCGである出力画像が形成される。
【００５８】
以上説明したように本実施形態によれば、シーンにおける光線追跡を、光源の配光特性と分光特性、及びオブジェクトの分光特性を利用して行うことで、該シーンを忠実に再現したCG画像を生成することができる。
【００５９】
＜変形例＞
以下、第１実施形態の変形例について説明する。上述した第１実施形態では、光源特性データ307によって示される配光特性を、光の強度分布として扱う例を示した。しかしながら、光の強度分布は波長によって異なる場合がある。例えばLED照明の場合、青色を発光するLEDと、黄色を発光する蛍光体を組み合わせて光源を作る場合がある。この時、図５(b)にも示したようにLEDは指向性の高い光を発光するため、蛍光体と組み合わせた際に色ムラが発生する。すなわち、図１１に示すように、光源の配光特性が波長によって変化するため、分光放射輝度も光線と光源のなす角度θに依存することになる。
【００６０】
そこで、光源情報として波長によって異なる配光特性を入力することが考えられる。この場合における分光放射輝度の算出処理は第１実施形態とほぼ同様であるが、図９におけるS903の最終的な分光放射輝度の算出処理のみが異なる。すなわち、光源が波長によって異なる配光特性を有する場合、その配光特性は、波長λと光線と光線のなす角θの関数Ｑ(λ,θ)として表わされる。この場合、第１実施形態で用いた光源の分光放射輝度Ｓ(λ)は、配光特性Ｑ(λ,θ)から得られるため不要になる。従って、S903における光線の分光放射輝度Ｅ0(λ)の算出は、以下の(14)式に従う。
【００６１】
Ｅ0(λ)＝Ｐ0(λ)*Ｑ(λ,θ)      …(14)
以上のように、光源の配光特性が波長によって異なる場合であっても、上記第１実施形態と同様にシーンを忠実に再現したCG画像を生成することができる。
【００６２】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。上述した第１実施形態では、光源の配光特性や分光特性、およびオブジェクトの分光特性に基づいた光線追跡を行うことによって、該シーンを忠実に再現したCG画像を生成する例を示した。しかしながら、第１実施形態のように分光による光線追跡を行う場合、波長数に応じて演算量が増加し、処理速度が低下してしまう。一般に光線追跡法においては、１本の光線におけるオブジェクトとの交差回数や、追跡を行う光線数を削減することで演算量を抑制して処理速度を上げることが可能である反面、生成画像にノイズが発生して画質が低下してしまう。ここで、上記特許文献１に記載された空間分割法を用いた光線追跡の効率化手法を、分光による光線追跡に適用することを考える。この場合に、更なる高速化のために光の波長によらず交差回数や光線数を削減すると、やはりノイズが発生してしまう。そこで第２実施形態においては、上述した第１実施形態に加え、光源やオブジェクトの分光特性に応じて光線追跡時における演算量を制御することで、処理の高速化とノイズ低減化を実現する。
【００６３】
なお、第２実施形態における画像処理装置の構成は、上述した第１実施形態で図２、図３に示した構成と同様であるため、同符号を参照するとして説明を省略する。
【００６４】
●シーンCG画像の生成処理
以下、第２実施形態の画像処理装置301において、シーンのCG画像を作成する画像生成処理について、図１２のフローチャートを用いて説明する。
【００６５】
まずS1401で、光源特性入力部302が光源特性データ307を入力する。この光源特性データ307は、第１実施形態で図５,図６を用いて説明したような、シーンを照明する光源の配光特性及び分光放射輝度を示す。
【００６６】
次にS1402で、オブジェクト特性入力部303がオブジェクト特性データ308を入力する。このオブジェクト特性データ308は、第１実施形態で図７を用いて説明したように、シーン内の各オブジェクトの反射特性、透過特性及び屈折率を示す。
【００６７】
次にS1403で、視覚特性入力部304が視覚特性データ309を入力する。この視覚特性データ309は、分光放射輝度を画像の色信号値に変換する際に用いられ、例えば図８に示す等色関数である。
【００６８】
次にS1404で分光放射輝度算出部305が、当該シーンのCGとしての出力画像を順次走査して、分光放射輝度の算出対象となる画素を決定する。なお、この対象画素の選択順は任意である。
【００６９】
次にS1405で分光放射輝度算出部305が、対象画素から発せられた光線が経路追跡中のオブジェクトと交差した回数をカウントするための変数である、交差回数Ｎを0に初期化する。
【００７０】
次にS1406で分光放射輝度算出部305が、波長λごとの交差回数の上限となる最大交差回数Ｍ(λ)を初期化する。最大交差回数Ｍ(λ)は、対象画素からの光線が光源に到達するまでに多数のオブジェクトと交差する場合に、光源への到達前に交差回数に応じて処理を打ち切るための閾値となる変数である。本来、光線が光源に到達するまで追跡を行うことが望ましいが、それには膨大な計算が必要となるため、この最大交差回数Ｍ(λ)までに光線が光源に到達しない場合には光線追跡を打ち切ることで計算量を削減し、計算時間の高速化を実現する。最大交差回数Ｍ(λ)の初期値としては、光の波長λごとに1以上の任意の値を設定する。なお、最大交差回数Ｍ(λ)が小さいと、計算を高速化できる半面、生成結果画像にノイズが発生してしまうため、求められる計算時間とノイズ量を考慮して、初期値を設定することが望ましい。また、最大交差回数Ｍ(λ)の初期値としては、光の波長λによらず等しい値を設定することが望ましい。
【００７１】
次にS1407で分光放射輝度算出部305において、上記S1404で選択された対象画素における分光放射輝度を算出する。この分光放射輝度の算出には光線追跡法を用いるが、処理の詳細については後述する。
【００７２】
次にS1408で色信号値算出部306において、対象画素の色信号値を算出する。この色信号値の算出方法は、上述した第１実施形態で図１０を用いて説明した方法と同様であるため、説明を省略する。
【００７３】
そしてS1409で、出力画像の全画素について分光放射輝度の算出が終了したか否かを判定する。終了していれば生成した画像データを出力して処理を終了するが、未終了であればS1404に戻り、次の対象画素を決定して処理を継続する。
【００７４】
●分光放射輝度算出処理
以下、上記S1407における分光放射輝度の算出処理について、図１３を用いて詳細に説明する。第２実施形態においても、図１３のフローチャートに示す処理を再帰的に実行することで複数の光線(発射光線)を追跡し、光線ごとに算出した分光放射輝度の平均により、対象画素における分光放射輝度を算出する。なお、図１３では波長λの単色光についての分光放射輝度算出処理を説明するが、実際には同様の処理を所定の波長毎に行うことで、当該対象画素についての分光放射輝度が得られる。
【００７５】
まずS1901で、追跡の開始点から飛ばした波長λの光線がシーンにおいて交差する点を探索する。ここで追跡の開始点は、当該フローチャートが初回の実行であれば対象画素であり、再帰実行であれば光線とオブジェクトとの交点である。なお、この交点の探索方法は任意であり、例えば、シーン内の全てのオブジェクトについて順次交差判定を行って、追跡の開始点に最も近い交点を求めれば良い。
【００７６】
次にS1902で、S1901で探索された光線と交差する点が、光源との交差であるか、またはその他のオブジェクトとの交差であるかを判定する。光線が光源と交差している場合にはS1914に移行し、光線の強度と交差した光源の光源特性データ307から、波長λについての分光放射輝度Ｅ0(λ)を上記(4)式より算出して、当該波長についての処理を終了する。一方、S1902で光線が光源以外のオブジェクトと交差している場合にはS1903に移行し、光線に対する交差回数Ｎに1を加えて値を更新する。
【００７７】
そしてS1904で、光線が交差したオブジェクトのオブジェクト特性データ308(反射特性、透過特性及び屈折率)を取得する。
【００７８】
次にS1905で、光線の交差回数Ｎと光線の波長における最大交差回数Ｍ(λ)の大小を判定する。交差回数Ｎが最大交差回数Ｍ(λ)を超える場合は、光線が光源に未到達であっても光線追跡処理を終えるためにS1913に移行する。一方、交差回数Ｎが最大交差回数Ｍ(λ)以下の場合は、光線とオブジェクトの交点から新たに複数の光線を飛ばし、各光線についての光線追跡処理を行うためにS1906に移行する。このように第２実施形態では、予め設定した最大交差回数Ｍ(λ)までに光線が光源に到達しない場合は、光源到達前に処理を打ち切ることで、処理の高速化を実現する。しかし、上述したように最大交差回数Ｍ(λ)を小さくすると、計算を高速化できる半面、生成画像中にノイズが多くなってしまう。そこで第２実施形態では詳細は後述するが、光線が最初に交差したオブジェクトの反射率や透過率と光源の放射輝度、およびS1406で設定された初期値に応じて、光の波長ごとに最適な最大交差回数Ｍ(λ)を設定する。
【００７９】
S1906では、光線とオブジェクトとの交点から新たに飛ばす発射光線数を決定する。この発射光線数は任意に決定して構わないが、数が多いほどノイズの少ない画像が得られる反面、計算量が増大する。なお、新たに飛ばす各光線の交差回数Ｎ、および、最大交差回数Ｍ(λ)の値は、元の光線の値を引き継ぐものとする。以下、発射光線数に応じた回数分、S1907〜S1910の処理をループする。
【００８０】
S1907では、発射光線の方向および強度を算出する。光線の方向は発射光線数に応じて均等に分布すれば良く、該交点に対する反射光の強度Ｐr(λr)、透過光の強度Ｐt(λt)はそれぞれ、第１実施形態と同様に(5),(6)式によって示される。
【００８１】
次にS1908では、光線における現在の交差回数Ｎの値が１であるか否かの判定を行う。交差回数Ｎが１、すなわち初回の交差である場合はS1909に移行し、１以外、すなわち２回目以降の交差である場合はS1910へ移行する。
【００８２】
S1909では、光源の分光特性とオブジェクトの分光特性に応じて、波長λにおける最大交差回数Ｍ(λ)を算出し、更新する。
【００８３】
ここで、最大交差回数Ｍ(λ)の設定方法について詳細に説明する。最大交差回数Ｍ(λ)は、シーン内のオブジェクトに対する光線の反射成分および透過成分のそれぞれについて設定される。
【００８４】
例えば、オブジェクトの反射率が小さい波長の光線では、該オブジェクトとの交差によって放射輝度が大きく減衰してしまうため、該交差後の他オブジェクトとの交差による放射輝度の変化量は相対的に小さくなる。そのため、少ない交差回数の後に得られる放射輝度と、十分大きな交差回数の後に得られる放射輝度とで、差がほとんど生じない。一方、オブジェクトの反射率が大きい波長の光線では、該オブジェクトとの交差後も放射輝度があまり減衰しないため、該交差後の他オブジェクトとの交差による放射輝度の変化量は相対的に大きくなる。そのため、少ない交差回数の後に得られる放射輝度と、十分大きな交差回数の後に得られる放射輝度とで、大きな差が生じ、すなわちノイズが発生してしまう。このような特性は、オブジェクトに対する透過成分についても同様である。
【００８５】
そこで第２実施形態では、ある波長の光線が最初に交差するオブジェクトについて、その反射率または透過率が大きければ最大交差回数Ｍを大きく設定し、逆に小さければ最大交差回数Ｍを小さく設定する。また、光源からの放射輝度の大きさはそのまま、交差後の放射輝度の大きさに反映されるため、最大交差回数Ｍの設定時にも、光源の放射輝度が参照される。すなわち、初回交差オブジェクトとの交差後に残存する光線の強度が大きいほど、最大交差回数Ｍを大きく設定する。このように、光源の放射輝度とオブジェクトの分光特性(反射特性または透過特性)に応じて最大交差回数Ｍを設定することで、演算量の削減とノイズ発生の抑制を両立することが可能となる。
【００８６】
ここで図１４を用いて、特にオブジェクトからの反射成分についての最大交差回数Ｍの設定方法の概念について説明する。ある入射角度、出射角度における、光線と交差するオブジェクトの分光反射率が図１４で示される場合、例えば480nmのように反射率が高い波長では最大交差回数Ｍを大きく設定する。一方、例えば680nmのように反射率が低い波長では最大交差回数Ｍを小さく設定する。
【００８７】
具体的には、オブジェクトに対する反射光、透過光のそれぞれの最大交差回数Ｍr(λr)，Ｍt(λt)は、以下の(15),(16)式で記述される。下式によれば最大交差回数Ｍr(λr)，Ｍt(λt)は、S406で初期化した最大交差回数Ｍ(λ)と、上記(2),(3)式で表される分光特性ｆr,ｆt、および光源の分光放射輝度Ｓ(λ)の関数ｇとして表わされる。
【００８８】
Ｍr(λr)＝ｇ(Ｍ(λr),ｆr(x,ωi,λr,ωr),Ｓ(λ))      …(15)
Ｍt(λt)＝ｇ(Ｍ(λt),ｆt(x,ωi,λt,ωr),Ｓ(λ))      …(16)
尚、関数ｇとしては、反射率や透過率が高い波長において最大交差回数Ｍが大きくなるような関数であれば良く、具体的には、以下の(17)式や(18)式に示すような関数を用いることができる。
【００８９】
ｇ(Ｍ(λt),ｆt(x,ωi,λt,ωr),Ｓ(λ))＝
Ｍ(λt)×ｆt(x,ωi,λt,ωr)×Ｓ(λ)      …(17)
ｇ(Ｍ(λt),ｆt(x,ωi,λt,ωr),Ｓ(λ))＝
Ｍ(λt)×√(ｆt(x,ωi,λt,ωr)×Ｓ(λ))      …(18)
次にS1910で図１３のフローチャートに示す処理を再帰的に呼び出すことによって、当該発射光線に対する光線追跡処理が行われる。このS1910の処理はすなわち、再帰処理によって最終的に交差するオブジェクトがなくなるか、または発射光線とオブジェクトの交差回数Ｎが最大交差回数Ｍを超えた場合に、終了する。このように、発射光線についてS1910の再帰処理によって最終的に上記(4)式で算出された分光放射輝度Ｅ0(λ)が、当該発射光線についての分光放射輝度Ｅn(λ)となる。
【００９０】
そしてS1911で、全ての発射光線について上記S1907〜S1910による光源追跡が終了したと判定されると、次にS1912において、各発射光線の分光放射輝度Ｅn(λ)の平均を、上記(7)式により算出する。この平均分光放射輝度値が、対象画素における追跡対象波長λについての分光放射輝度Ｅx(λ)である。
【００９１】
一方、S1905で、光線とオブジェクトの交差回数Ｎが最大交差回数Ｍを超える場合にはS1913に移行し、光線追跡処理を打ち切る場合の光線の方向と強度を算出する。具体的には、光線の方向としては交点から光源の方向を設定する。また光線の強度Ｐ(λ)としては、交点から光源までの直線上に他のオブジェクトが存在する場合には０を設定し、他のオブジェクトが存在しない場合には以下の(19)式に従い、反射のみを考慮する。なお、下式において、Ｐ0(λi)はオブジェクトと交差する前の光線の強度、ｆrは上記(2)式に示したオブジェクトの反射特性である。
【００９２】
Ｐ(λ)＝Ｐ0(λi)*ｆr(ｘ,ωi,λr,ωr)      …(19)
そして、S1913で光線追跡処理を打ち切る場合の光線の方向と強度が算出されると、次にS1914で、波長λについての分光放射輝度Ｅ0(λ)を上記(4)式より算出して、当該波長についての処理を終了する。この演算には、S1913で算出された光線の強度Ｐ(λ)と、光源の配光特性Ｑ(θ)および分光放射輝度Ｓ(λ)が適用される。
【００９３】
以上説明したように第２実施形態によれば、分光による光線追跡を行う際に、光源の放射輝度と、オブジェクトの分光特性を考慮して光線の波長ごとに交差回数を制限する。これにより、波長ごとに必要最低限の交差による演算が可能となるため、計算時間の高速化とノイズ発生の低減を実現することが可能になる。
【００９４】
＜第３実施形態＞
以下、本発明に係る第３実施形態について説明する。上述した第２実施形態では、光源とオブジェクトの分光特性に応じて、光線の波長ごとに最大交差回数を設定する例を示した。第３実施形態では、これら分光特性に応じて、交点から飛ばす光線数を波長ごとに設定することで、計算時間の高速化とノイズの発生を低減する例を示す。
【００９５】
なお、第３実施形態における画像処理装置の構成は、上述した第１実施形態で図２、図３に示した構成と同様であるため、同符号を参照するとして説明を省略する。
【００９６】
●分光放射輝度算出処理
第２実施形態の画像処理装置301においてCG画像を作成する画像生成処理は、第２実施形態で図１２のフローチャートに示した処理とほぼ同様であり、S1407における分光放射輝度の算出処理が異なるのみである。したがって、以下では第３実施形態における分光放射輝度の算出処理について、図１５を用いて説明する。
【００９７】
第３実施形態においても、図１５のフローチャートに示す処理を再帰的に実行することで複数の光線(発射光線)を追跡し、光線ごとに算出した分光放射輝度の平均により、対象画素における分光放射輝度を算出する。また、図１５でも波長λの単色光についての分光放射輝度算出処理を説明するが、実際には同様の処理を所定の波長毎に行うことで、当該対象画素についての分光放射輝度が得られる。
【００９８】
図１５において、発射光線数を決定するS1201以外の各処理は、第２実施形態で図１３のフローチャートに示した各処理と同様の処理を行う。なお、第３実施形態においても、第２実施形態と同様にS1406で初期設定された最大交差回数Ｍを用いるが、この最大交差回数Ｍは最初に交差するオブジェクトに関わらす固定とし、更新されない。
【００９９】
以下、第３実施形態のS1201における、分光特性に応じた光線数の決定処理について説明する。
【０１００】
第２実施形態でも説明したように、オブジェクトの反射率や透過率が小さい波長の光線では、該オブジェクトとの交差によって放射輝度が大きく減衰するため、その後の他オブジェクトとの交差による放射輝度の変化量は小さい。そのため、交点から改めて飛ばす光線数が少ない場合に得られる放射輝度と、十分多い光線数によって得られる放射輝度とで、差がほとんど生じない。一方、オブジェクトの反射率や透過率が大きい波長の光線では、該オブジェクトとの交差後も放射輝度があまり減衰しないため、その後の他オブジェクトとの交差による放射輝度の変化量は相対的に大きくなる。そのため、少ない発射光線数によって得られる放射輝度と、十分多い光線数によって得られる放射輝度とで、大きな差が生じ、すなわちノイズが発生してしまう。
【０１０１】
そこで第３実施形態では、ある波長の光線が交差するオブジェクトごとに、その反射率または透過率が大きければ発射光線数を大きく設定し、逆に小さければ発射光線数を小さく設定する。なお、発射光線数の設定時に光源の放射輝度にも参照されるべきであることは、第２実施形態と同様である。すなわち、オブジェクトとの交差後に残存する光線の強度が大きいほど、発射光線数を大きく設定する。このように、光源の放射輝度と、オブジェクトの分光特性(反射特性または透過特性)に応じて光線追跡時の光線数を設定することで、演算量の削減とノイズ発生の抑制を両立することが可能となる。
【０１０２】
ここで図１６を用いて、特に交点からの反射成分についての発射光線数の設定方法の概念について説明する。ある入射角度、出射角度における、光線と交差するオブジェクトの分光反射率が図１６で示される場合、例えば480nmのように反射率が高い波長では光線数を多く設定する。一方、例えば680nmのように反射率が低い波長では光線数を少なく設定する。
【０１０３】
具体的には、オブジェクトに対する反射光、透過光のそれぞれの光線数Ｒr(λr)，Ｒt(λt)は、上記(2),(3)式で表される分光特性ｆr,ｆt、および光源の分光放射輝度Ｓ(λ)の関数ｇとして、以下のように記述される。
【０１０４】
Ｒr(λr)＝ｈ(ｆr(x,ωi,λr,ωr),Ｓ(λ))      …(20)
Ｒt(λt)＝ｈ(ｆt(x,ωi,λt,ωr),Ｓ(λ))      …(21)
尚、関数ｈとしては、反射率が高い波長において光線数が大きくなるような関数であれば良く、具体的には、以下の(22)式や(23)式に示すような関数を用いることができる。
【０１０５】
ｈ(ｆt(x,ωi,λt,ωr),Ｓ(λ))＝
Ｒmax×ｆt(x,ωi,λt,ωr)×Ｓ(λ)      …(22)
ｈ(ｆt(x,ωi,λt,ωr),Ｓ(λ))＝
Ｒmax×√(ｆt(x,ωi,λt,ωr)×Ｓ(λ))      …(23)
なお、(22),(23)式においてＲmaxは任意の値を持つ定数であり、反射率や透過率が1である場合の光線数である。Ｒmaxが大きいほど、ノイズの少ない画像が得られる半面、計算量が増大する。
【０１０６】
第３実施形態では、以上のようにオブジェクトの分光特性に応じて設定した光線数で、光線とオブジェクトとの交点から新たな光線を飛ばし、光線経路の追跡を繰り返し行うことで、当該対象画素における放射輝度を算出する。
【０１０７】
以上説明したように第３実施形態によれば、分光による光線追跡を行う際に、光源の放射輝度と、オブジェクトの分光特性を考慮して発射光線数を設定する。これにより、波長ごとに必要最低限の光線数による演算が可能となるため、計算時間の高速化とノイズ発生の低減を実現することが可能になる。
【０１０８】
なお、第３実施形態を上述した第２実施形態と同時に適用することも可能である。すなわち、光源とオブジェクトの分光特性に応じて、光線の波長ごとに最大交差回数を設定し、さらに、各交点から飛ばす光線数をオブジェクトごとに設定すれば良い。
【０１０９】
＜変形例＞
以下、第２および第３実施形態の変形例について説明する。上述した第２および第３実施形態では、光源特性やオブジェクトの反射/透過特性には光の波長依存性がある、すなわち分光情報を持つものとして説明を行った。しかしながら本発明は、分光情報を利用した光線追跡処理への適用に限られるものではなく、例えば濃淡情報のみを持つ１色での光線追跡や、RGBの3色での光線追跡にも適用可能である。その場合、光線の放射輝度に対するオブジェクトの反射特性または透過特性が低い場合は、光線数または最大交差数を小さく設定することで、処理の高速化が実現できる。他方、光線の放射輝度に対するオブジェクトの反射特性または透過特性が高い場合は、光線数または最大交差数を大きく設定することで、処理の高速化よりもノイズ低減化を優先することができる。
【０１１０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
0005839907.tif 000008
【図２】
0005839907.tif 000009
【図３】
0005839907.tif 000010
【図４】
0005839907.tif 000011
【図５】
0005839907.tif 000012
【図６】
0005839907.tif 000013
【図７】
0005839907.tif 000014
【図８】
0005839907.tif 000015
【図９】
0005839907.tif 000016
【図１０】
0005839907.tif 000017
【図１１】
0005839907.tif 000018
【図１２】
0005839907.tif 000019
【図１３】
0005839907.tif 000020
【図１４】
0005839907.tif 000021
【図１５】
0005839907.tif 000022
【図１６】
0005839907.tif 000023