(57)【特許請求の範囲】
【請求項１】
球体の画像をレンダリングするためのシステムにおいて、
前記画像のレンダリングに関するＭ個の属性（Ｍは整数）のうちどの属性を該画像のレンダリングに使用するかを決定するための手段、
該Ｍ個の属性に含まれる、前記画像のレンダリングに関するＮ個の属性（ＮはＭ以下の整数）であって曲面を有するオブジェクトの対称的な性質に関連する特徴を持ったＮ個の属性を事前計算するための手段であって、球体の有限個のセットについてエッジのセットを事前計算し及び該事前計算したエッジのセットをエッジバッファに格納する手段、
前記Ｍ個の属性を計算するための手段、並びに、
前記事前計算したエッジのセットと前記計算したＭ個の属性の少なくとも一部に基づいて画像をレンダリングするための手段
を備えることを特徴とするシステム。
【請求項２】
前記Ｍ個の属性のうち１つまたはそれよりも多くが、１つまたはそれよりも多くの光源に関連することを特徴とする請求項１に記載のシステム。
【請求項３】
前記Ｍ個の属性は１つまたはそれよりも多くの視点の位置を含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記決定するための手段は、周囲ライティング、拡散ライティング、反射ライティング、色、テクスチャ、バンプマップ、視点、球体のサイズ、及び、球体の位置を含む属性の中からの選択を容易にすることを特徴とする請求項１に記載のシステム。
【請求項５】
前記事前計算するための手段は、ｘ属性、ｙ属性、およびｚ属性によって特徴付けられる１つ以上のピクセルについて、周囲ライティング成分、拡散ライティング成分、反射ライティング成分、極ベクトル、赤道ベクトル、および極交差赤道ベクトルのうち少なくとも１つを事前計算することを特徴とする請求項１に記載のシステム。
【請求項６】
前記オブジェクトはライティングされた球体であることを特徴とする請求項１に記載のシステム。
【請求項７】
前記オブジェクトはテクスチャのある球体であることを特徴とする請求項６に記載のシステム。
【請求項８】
球体の画像をレンダリングするプロセッサを備えたコンピュータシステムにおいて使用される方法において、
前記画像のレンダリングに関するＭ個の属性（Ｍは整数）のうちどの属性を該画像のレンダリングに使用するかを決定すること、
該Ｍ個の属性に含まれる、前記画像のレンダリングに関するＮ個の属性（ＮはＭ以下の整数）であって曲面を有するオブジェクトの対称的な性質に関連する特徴を持ったＮ個の属性を事前計算するための手段であって、球体の有限個のセットについてエッジのセットを事前計算し及び該事前計算したエッジのセットをエッジバッファに格納すること、
前記Ｍ個の属性を計算すること、並びに、
前記事前計算したエッジのセットと前記計算したＭ個の属性の少なくとも一部に基づいて画像をレンダリングすること
を含むことを特徴とする方法。
【請求項９】
前記決定することが、周囲ライティング、拡散ライティング、反射ライティング、色、テクスチャ、バンプマップ、視点、球体のサイズ、及び、球体の位置を含む属性の中からの選択を容易にすることを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記事前計算することが、ｘ属性、ｙ属性、およびｚ属性によって特徴付けられる１つ以上のピクセルについて、周囲ライティング成分、拡散ライティング成分、反射ライティング成分、極ベクトル、赤道ベクトル、および極交差赤道ベクトルのうち少なくとも１つを計算することを含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記Ｍ個の属性のうち１つまたはそれよりも多くが、１つまたはそれよりも多くの光源に関連することを特徴とする請求項８に記載の方法。
【請求項１２】
前記Ｍ個の属性は１つまたはそれよりも多くの視点の位置を含むことを特徴とする請求項８に記載の方法。
【請求項１３】
前記レンダリングすることは、ライティングされた球体の画像を、前記事前計算したエッジのセットと前記計算したＭ個の属性の少なくとも一部に基づいてレンダリングすることを含むことを特徴とする請求項８に記載の方法。
【請求項１４】
前記レンダリングすることは、テクスチャのある球体の画像を、前記事前計算したエッジのセットと前記計算したＭ個の属性の少なくとも一部に基づいてレンダリングすることを含むことを特徴とする請求項８に記載の方法。
【請求項１５】
命令を格納したコンピュータ可読メモリであって、該命令がコンピュータに読み込まれて実行されると該コンピュータを、
画像のレンダリングに関するＭ個の属性（Ｍは整数）のうちどの属性を該画像のレンダリングに使用するかを決定するための手段、
該Ｍ個の属性に含まれる、前記画像のレンダリングに関するＮ個の属性（ＮはＭ以下の整数）であって曲面を有するオブジェクトの対称的な性質に関連する特徴を持ったＮ個の属性を事前計算するための手段であって、球体の有限個のセットについてエッジのセットを事前計算し及び該事前計算したエッジのセットをエッジバッファに格納する手段、
前記Ｍ個の属性を計算するための手段、並びに、
前記事前計算したエッジのセットと前記計算したＭ個の属性の少なくとも一部に基づいて画像をレンダリングするための手段
として動作させることを特徴とするコンピュータ可読メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般にコンピュータグラフィックスに関し、より詳細には、ライティングされ、テクスチャのある球体を滑らかに、かつ迅速にレンダリングすることに関する。
【０００２】
【従来の技術】
コンピュータグラフィックスがより一般的になるにつれて、オブジェクトの画像を滑らかかつ迅速にレンダリングするための技法はより重要になった。例えば、コンピュータ支援作図プログラム、コンピュータアニメーション、およびコンピュータゲームはすべて、球体を正確かつ迅速に描画することを必要とすることがある。通常、球体は、レイトレーシング技法を用いて、および／または球体をいくつかの他のポリゴン、例えば三角形で充填することによってレンダリングすることができる。この様な技法は、球体を十分迅速に生成することができず、または球体の滑らかで正確なレンダリングを提供することができない。例えば、充填するとき、非常に多数（＞１０００）の三角形を使用しなければ球体の画像品質が損なわれる可能性がある。しかしこの様な多数の三角形により、球体および他のグラフィックス画像のレンダリング時間が遅くなる可能性がある。同様に、レイトレーシングは滑らかな結果をもたらすことができるが、レイトレーシング方法で行われる、シーンに投影される多くの光線の交点、色成分、およびテクスチャ成分の計算が計算的に低速になる可能性があるので、レンダリングが所望の速度よりも低速になる可能性がある。レイトレーシングに関係して計算が低速になることは、従来のレイトレーシングシステムがこの様な交点、色成分、およびテクスチャ成分の処理で利用される計算を格納または事前キャッシュしない場合に悪化する可能性がある。
【０００３】
３次元のライティングされ、テクスチャのある球体の画像の正確なレンダリングは、球体に関連するいくつかの属性に依存する。まず、レンダリングは、球体に関連する周囲光を反映することがある。この周囲光は、球体の周り全体の光であり、したがってレンダリング全体に対して等しい効果を有する。次に、拡散光を扱うことがある。球体上の任意の点に対する拡散光の強度（ｉｎｔｅｎｓｉｔｙ）は光源の位置と、光源から球体上の点に対する光の入射角とに依存することがある。次に、球体に関連する反射光を扱うことがある。球体上の任意の点に対する反射光の強度は、光源の位置に依存し、球体を見るもの（ｖｉｅｗｅｒ）の位置に依存する。球体に影響を与える複数の周囲光源、拡散光源、および反射光源が存在する可能性があり、各光源は、異なる位置、強度、および色を有する可能性がある。したがって通常、ライティングされた球体のレンダリングは、多数のライティング属性を処理する複数の方程式を必要とする。通常、その様な方程式はレンダリング中に計算され、その様な方程式は浮動小数点計算を利用する。
【０００４】
球体のレンダリングは、球体に「テクスチャがある」場合、すなわち、レンダリングが球体の周りの２次元表面をラッピングし、シミュレートしたレリーフまたはテクスチャを球体に形成することを含む場合にさらに複雑となる可能性がある。従来、２次元表面を３次元曲面上にマッピングすることは、浮動小数点演算を用いた座標系のランタイム変換によって複雑となっていた。
【０００５】
【発明が解決しようとする課題】
したがって、より高性能なレンダリングを容易にするために可能な限り少ない計算で、ライティングされ、テクスチャのある球体を滑らかにレンダリングするための方法が依然として必要とされている。
【０００６】
【課題を解決するための手段】
本発明は、テクスチャがあり、ライティングされた球体を迅速かつ正確にレンダリングするための方法を提供する。この様な球体に存在する対称性を利用することによって、速度の向上を達成することができ、この様な対称性により、多くの計算や計算の部分が一定になるか、またはレンダリングプロセスで反復されるかのいずれかになる。どの計算を反復することができるかを判定し、どの計算が一定の値を生成することができるかを判定し、その様な値を事前計算（ｐｒｅ-ｃｏｍｐｕｔｉｎｇ）することにより、事前計算した値と一定の値をランタイム計算から除くことで速度の向上を達成することができる。
【０００７】
球体の湾曲したエッジをポリゴンの集合としてではなく、連続関数として表すことによって正確さの向上を達成することができる。したがって、より滑らかなエッジを生成することができる。さらに、コンピュータディスプレイ上に表示することができる球体のサイズ（例えば、コンピュータ画面のディスプレイの中心に置かれた場合にそのディスプレイに完全に一致する球体のサイズ）の有限個の組（ｓｅｔ）が存在し、エッジが光源に対して不変であるので、この様な有限個の組に対して湾曲したエッジの組を事前計算することができ、ランタイム処理からエッジ計算を除くことができる。球体の有限個の組についてエッジの組を事前計算し、そのエッジの組を１つ以上のエッジバッファ中に格納することにより、さらにレンダリング速度を向上させることができる。
【０００８】
ライティング、ビューア、並びに極と赤道の値の適切な位置を２次元の整数表示レンダリング空間で計算することによって、３次元シーン構成をレンダリングすることができる。したがって本発明は、球体の出力画像を２次元オブジェクトとして扱い、２次元オブジェクト中で一度に１つの走査線を充填する。２次元データ空間を利用することにより、整数を使用して、球体の中心と、ピクセル（ｘ，ｙ）についての球体の中心からの相対ピクセル距離を表すことができる。同様に、整数を使用してピクセルの高さ（ｚ）を表すこともできる。したがって、従来の浮動小数点計算を整数計算で置換し、速度を向上させることができる。さらに、一部の計算が前述の様に事前計算されるので、整数演算を比較的時間効率の良いルックアップ（ｌｏｏｋｕｐｓ）および加算とすることができ、比較的時間効率の悪い乗算とは対照的にレンダリング速度をより向上させることができる。
【０００９】
前述の目的および関連する目的を達成するために、本発明のある例示的な態様を、以下の説明と添付の図面とともに説明する。しかし、これらの態様は、本発明の原理を利用することができる様々な方式のうちの一部を示すに過ぎず、本発明は、その様な態様すべておよびその均等物を含むものとする。本発明の他の利点および新規な特徴は、本発明の以下の詳細な説明を図面とともに考慮する際に明らかとなろう。
【００１０】
【発明の実施の形態】
次に図面を参照しながら本発明を説明する。図面では、全体を通して、同じ要素を参照するために同じ参照番号を使用する。以下の説明では、説明の都合上、本発明の完全な理解を提供するために多数の特定の詳細を説明する。しかし、これらの特有の詳細を用いずに本発明を実施できることは当業者には明らかであろう。他の例では、本発明の説明を容易にするために、周知の構造および装置をブロック図形式で示す。
【００１１】
この出願で使用するように、用語「決定器（ｄｅｔｅｒｍｉｎｅｒ）」は、ハードウェア、ハードウェアとソフトウェアの組合せ、または実行中のソフトウェアのいずれかのコンピュータ関係のエンティティを指すものとする。例えば、決定器は、限定はしないが、プロセッサ上で稼働するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、およびコンピュータとすることができる。実例として、サーバ上で稼働するアプリケーションおよびサーバのどちらも決定器とすることができる。
【００１２】
この出願で使用するように、用語「構成要素」は、コンピュータハードウェア、コンピュータソフトウェア、またはハードウェアおよびソフトウェアの組合せを指すものとする。例えば構成要素は、限定はしないが、実行プロセス、プロセッサ実行プロセス、オブジェクト、実行可能ファイル、実行のスレッド、およびプログラムとすることができる。実例として、サーバ上で稼働するアプリケーションおよびサーバを構成要素とすることができる。
【００１３】
図１に、オブジェクトの画像をレンダリングするためのシステム６を示す。システム６は、画像のレンダリングに関するＭ個の属性１０のうちどれを、その画像、例えばライティングされ、テクスチャのある球体のレンダリングに使用することができるかを判定する判定構成要素（ｄｅｔｅｒｍｉｎｉｎｇ ｃｏｍｐｏｎｅｂｔ）８を含むことができる。例えば判定構成要素８は、限定はしないが、周囲ライティング（ａｍｂｉｅｎｔｌｉｇｈｔｉｎｇ）、拡散ライティング（ｄｉｆｆｕｓｅｌｉｇｈｔｉｎｇ）、反射ライティング（ｓｐｅｃｕｌａｒｌｉｇｈｔｉｎｇ）、色、テクスチャ、バンプマップ、視点、球体のサイズ、および球体の位置を含む属性の中からの選択を容易にすることができる。システム６は、Ｍ個の属性１０のうち１つまたは複数に基づいてオブジェクト１２のレンダリングした画像を生成することができる。例えば、第１の画像のレンダリングでは属性の第１の数を使用して第１の画像をレンダリングし、第２の画像の第２のレンダリングでは属性の第２の数を使用して画像をレンダリングすることができる。
【００１４】
システム６は、画像のレンダリングに関するＮ個の属性１６を事前計算するための事前計算構成要素１４も含むことができる。例えば事前計算構成要素１４は、１つ以上のピクセルについて、限定はしないが、周囲ライティング成分、拡散ライティング成分、反射ライティング成分、極ベクトル、赤道ベクトル、および極ベクトルが赤道ベクトルと交差する場所を特徴付けるベクトルのうちの１つまたは複数を含む（ｘ座標、ｙ座標、およびｚ座標によって３次元空間中に配置可能な）Ｎ個の属性１６を事前計算することができる。Ｎ個の属性１６を、例えば１つ以上のルックアップテーブル中に格納することができ、そこで、計算構成要素１８がＭ個の属性１０を計算する際に使用する目的で、Ｎ個の属性１６を利用可能にすることができる。
【００１５】
システム６は、Ｍ個の属性１０を計算するための計算構成要素１８をさらに含むことができる。例えば事前計算したＮ個の属性１６が与えられた場合、計算構成要素１８は、限定はしないが、周囲ライティング成分、拡散ライティング成分、反射ライティング成分、並びにテクスチャ座標をマッピングするための緯度値および経度値を含むＭ個の属性１０を計算することができる。システム６は、計算構成要素１８によって計算されたＭ個の属性１０に基づいて、レンダリングしたオブジェクト１２の画像を生成するためのレンダリング構成要素２０をさらに含むことができる。
【００１６】
事前計算構成要素１４、計算構成要素１８、およびレンダリング構成要素２０は、すべて画像入力２２を受け取ることができる。画像入力２２を使用して、Ｎ個の属性１６、Ｍ個の属性１０、および／またはレンダリングしたオブジェクト１２を計算することができる。画像入力２２を、事前計算構成要素１４から、計算構成要素１８、次いでレンダリング構成要素２０を通るものとして示すが、画像入力２２を供給する他の方法も本発明で使用できることを当業者は理解されたい。事前計算構成要素１４、計算構成要素１８、およびレンダリング構成要素２０を別々の構成要素として示すが、これらの構成要素を１つ以上のコンピュータプログラムにまとめることができることを当業者はさらに理解されたい。
【００１７】
図２に、ライティングされ、テクスチャのある球体の画像をレンダリングするためのシステム６をさらに示す。事前計算構成要素１４によって事前計算することができるＮ個の属性１６は、限定はしないが、周囲ライティング成分、拡散ライティング成分、反射ライティング成分、極成分、赤道成分、および極ベクトルが赤道ベクトルと交差する場所を特徴付ける成分を含むことができる。レンダリングしたオブジェクト１２中のピクセルは、ｘ，ｙ，ｚ座標を介して３次元空間中に配置可能であり、Ｎ個の属性１６は、１つ以上のルックアップテーブル中に収集することができる。例えば図２では、ｘ座標に関連する属性は、ｘルックアップテーブル３４中に収集されている。同様に、ｙ座標に関連する属性は、ｙルックアップテーブル３６中に収集され、ｚ座標に関連する属性は、ｚルックアップテーブル３８中に収集されている。この様な事前計算可能属性をルックアップテーブル中に格納することによって、オブジェクトの画像をレンダリングする際に使用される計算の合計数を減らすことにより、従来のレンダリングシステムでの問題を緩和することができる。事前計算したＮ個の属性１６を計算構成要素１８で使用して、Ｍ個の属性１０を計算することができる。従来、Ｍ個の属性１０の計算は値の計算の反復を含むことがあるが、本発明ではそれを事前計算し、Ｎ個の事前計算した属性１６中に格納している。
【００１８】
Ｍ個の属性１０を計算する際に１つ以上の数式４４を使用することができる。Ｍ個の属性１０のうちの１つまたは複数は、ｘルックアップテーブル３４、ｙルックアップテーブル３６、およびｚルックアップテーブル３８からの１つ以上の値を使用して計算することができる。例えば、拡散ライティング成分の計算は、ｘルックアップテーブル３４からの整数拡散ライティング成分と、ｙルックアップテーブル３６からの整数拡散ライティング成分と、ｚルックアップテーブル３８からの整数拡散ライティング成分との和を含むことができる。従来、拡散ライティング成分計算は、１つ以上の浮動小数点計算を含むことがあり、以前に計算した整数値のルックアップを含むことができなかった。したがって、本発明は、レンダリングを達成することができる速度を増加させる。
【００１９】
次に図３を参照すると、球体５０の２次元表示が示されている。球体５０は、球体５０をレンダリングすることに関連する１つ以上の属性によって特徴付けられる。例えば、球体５０は、球体５０の赤道がある場所を記述する赤道ベクトル５２を含むことができる。同様に、球体５０は、球体５０の極軸を記述する極ベクトル５４を含むことができる。球体５０は半径５６の球体とすることができる。球体５０の中心から出る任意のベクトルは、球体５０の表面と交差する点で球体５０の表面に対して直角であることに留意されたい。
【００２０】
光源５８と視点６０を、球体５０に関連付けることができる。１つの光源５８と１つの視点６０だけを示すが、１つ以上の光源を球体に関連付けることができ、同様に１つ以上の視点６０を球体に関連付けることができることを当業者は理解されたい。球体５０に関する１つ以上の周囲ライティング成分、拡散ライティング成分、および反射ライティング成分を計算するための計算で、球体５０の中心に対する光源５８の位置を使用することができる。同様に、球体５０に関する１つ以上の周囲ライティング成分、拡散ライティング成分、および反射ライティング成分を計算するための計算で、球体５０の中心に対する視点６０の位置を使用することができる。
【００２１】
次に図４を参照すると、球体７０が、球体７０とは異なるサイズの２つの球体７８， ８０とともに示されている。球体７０をレンダリングすることに関連する１つ以上の属性によって、この球体７０を特徴付けることができる。例えば、球体７０は、赤道ベクトル７２、極ベクトル７４、および半径７６を含むことができる。球体７８と８０は、それらに関連する同様の属性を有することができるが、それらは異なるサイズと方向を有することができるので、半径、赤道ベクトル、および極ベクトルは、球体７０についてのものとは異なるものとすることができる。半径、赤道ベクトル、および極ベクトルを使用して特徴付けることができる潜在的に無限の数の球体が存在するが、潜在的に無限の数の球体のうちのサブセット（ｓｕｂｓｅｔ）がレンダリングされる可能性が高いということを、本発明は利用している。
【００２２】
したがって、本発明では、１組の半径によって決定される１組の球体を事前計算し、１つ以上のエッジバッファ中に格納することができる。したがって、レンダリングすべき球体のエッジを決定することに関する計算を、球体をレンダリングする要求を受け取る前に行うことができる。同様に、球体の対称性のために計算可能なある値を事前計算し、格納することができる。例えば、球体８２は半径８４を有することができる。球体の半径が与えられた場合、球体のエッジのｘおよびｙ座標を、次式を使用して計算することができる。
ｒ２＝ｘ２＋ｙ２                  （１）
したがって、１組の半径に対して、各半径に対するｘおよびｙ座標の対応する組を事前計算することができる。ただし、各半径に対するｘ座標およびｙ座標は、エッジバッファ中の座標によって境界を画された値である。やはり、これらの計算を、球体をレンダリングする要求を受け取る前に行うことができる。したがって、ある半径の球体のレンダリングが望まれるとき、球体のエッジを表すピクセルの位置を、本発明によって事前計算された格納エッジバッファから検索することができる。したがって、球体のレンダリングの時間と複雑さを低減することができる。
【００２３】
（ｘ，ｙ）平面中で整数座標によって画面位置を識別することができる場合、各半径についてのｘおよびｙ座標を整数フォーマットで格納することができる。多くのマイクロプロセッサでは、整数計算は浮動小数点計算よりも高速にすることができるので、整数計算を利用することによって球体をレンダリングする時間と複雑さのより一層の低減を達成することができる。球体８２では、周知の半径の球体に関して事前計算し、格納することができる（ｘ，ｙ）座標の例として、エッジピクセル（ｘａ，ｙａ），（ｘｂ，ｙｂ），および（ｘｃ，ｙｃ）が供給される。
【００２４】
球体８２は、その赤道８６および／またはその極軸８８について対称である。したがって、同じ大きさを有するが符号が異なる各（ｘ，ｙ）座標によってある点群を位置付けることができる。例えば、（ｘｆ，ｙ）に位置する点と極軸８８から等しい距離に位置する、（ｘ−ｆ，ｙ）に位置する点は、点（ｘｆ，ｙ）に位置する点と１つ以上の特徴を共有することができる。この２つの点は、ｘ座標の符号は異なるが大きさは同じである。しかし、ｘ２＝（−ｘ）２であり、レンダリングに関する多くの計算が座標の２乗に関係するので、１つの点に関する計算を対称な点に関して利用することができる。したがって、全体の計算数を減らすことができ、オブジェクトをレンダリングするための全体の時間が改善される。同様に、（ｘ，ｙ−ｍ）に位置する点と赤道８６から同じ距離にある、（ｘ，ｙｍ）に位置する点は、ｙ成分の符号が異なる（ｘ，ｙ−ｍ）に位置する点と、１つ以上の特徴を共有することができる。これらの点は、ｙ座標は異なるが、大きさは同じである。やはり、ｙ２＝（−ｙ）２であり、レンダリングに関する多くの計算が座標の２乗に関係するので、１つの点に関する計算を対称な点に対して利用することができる。したがってやはり、全体の計算数を減らし、対応するレンダリング速度を改善することができる。
【００２５】
同様に、ｒ，および（ｘ，ｙ）対が与えられた場合、ピクセルの高さｚを次式を使用して計算することができる。
ｚ＝√（ｒ２−ｙ２−ｘ２）        （２）
したがって、周知の半径ｒを有する球体に関して、位置（ｘ，ｙ，ｚ）の組を事前計算し、ルックアップテーブル中に格納し、光位置、色、および強度（ｉｎｔｅｎｓｉｔｙ）を利用する後のレンダリング計算に使用することができる。位置（ｘ，ｙ，ｚ）に関する１つ以上の属性は、光源の位置、色、強度に対して不変であり、ビューイングソースの位置に対して不変であるからである。レンダリングの前にこの様な事前計算を実行することにより、レンダリング時に必要な計算の全体数を減らすことができ、したがって球体のレンダリング効率を向上することができる。
【００２６】
次に図５を参照すると、球体９０と光源９２が示されている。光源９２は、ベクトルによって特徴付けることができる１つ以上の光線を生成することができる。例えば、ベクトル９４Ａ，９６Ａ，９８Ａ，および９６Ｃは、光源９２から発せられる光線を表す。光線は、異なる入射角で球体９０に接触することができる。例えば、ベクトル９４Ａは、球体９０の中心から出る法線ベクトル９４Ｂと９０度で球体９０と接触する光線を表す。ベクトル９４Ａによって特徴付けられる光線が球体９０と接触する点に位置する、球体９０上のピクセルのライティングに関して、この様な光線の効果を無視することができる。ベクトル９４Ａと９４Ｂの内積（ｄｏｔ ｐｒｏｄｕｃｔ）はゼロであり、したがって、ベクトル９４Ａによって特徴付けられる光線の効果を決定する計算にベクトル９４Ａ，９４Ｂ間の内積を利用することによって、ベクトル９４Ａによって表される光線の効果を無視できることを明らかにできる。
【００２７】
ベクトル９８Ａは、球体９０の中心から出る法線ベクトル９８Ｂと０度で球体９０と接触する光線を表す。実質上、この様な光線はすべて、ベクトル９８Ａによって特徴付けられる光線が球体９０と接触する点上に位置する球体９０上のピクセルのライティングに対して効果を有する。ベクトル９８Ａと９８Ｂの内積は１であり、したがって、ベクトル９４Ａによって特徴付けられる光線の効果を決定する計算で、ベクトル９８Ａ，９８Ｂ間の内積を利用することによってベクトル９４Ａによって特徴付けられる光線からの照明（ｌｉｇｈｔｉｎｇ）効果を反映することができる。
【００２８】
ベクトル９６Ａおよび９６Ｃは、球体の中心から出る法線ベクトル９６Ｂおよび９６Ｄとそれぞれ角度０度および９０度で球体９０に接触する光線を表す。この様な光線は、ベクトル９６Ａおよび９６Ｃによって特徴付けられる光線が球体９０と接触する点上に位置する球体９０上のピクセルのライティングに対して効果を有する。しかし、この効果はベクトル９８Ａによって特徴付けられる光線の効果より低く、ベクトル９４Ａによって特徴付けられる光線の効果より高い。ベクトル９６Ａと９６Ｂの内積は０より大きく１未満であり、したがってベクトル９６Ａによって特徴付けられる光線の効果を決定する計算で、ベクトル９６Ａ，９６Ｂ間の内積を利用することによってベクトル９６Ａによって特徴付けられる光線の照明効果を反映することができる。球体９０の対称性により、ベクトル９６Ｃ，９６Ｄ間の内積は、ほぼベクトル９６Ａ，９６Ｂ間の内積と同様にすることができる。本発明では、この様な対称性が反映され、したがってベクトル９６Ａ，９６Ｂ間の内積をベクトル９６Ｃ，９８Ｃ間の内積の代わりに利用することができ、したがってオブジェクトのレンダリングに関する全体の計算数を減らし、そしてオブジェクトのレンダリングの速度と効率を向上することができる。さらに、位置（ｘ１，ｙ１）に半径ｒの球体を配置し、位置（ｘ２，ｙ２）に光源を配置した場合、球体の中心から出るほぼ全ての可能な法線ベクトルと接触する、光源から出るほぼ全ての可能な光線についての内積の組を事前計算し、ルックアップテーブル中に格納することができる。したがって、光源の強度、光源の色、または光源と球体の相対位置に関係しない他の属性が変化した場合、これらの変化に基づく球体のレンダリングに関する計算は、格納した内積の再計算を必要とせず、したがってライティングされた球体のレンダリングの効率を向上させることができる。
【００２９】
次に図６を参照すると、３次元球体１３０上にマッピングされた２次元表面１２０が示されている。球体１３０は、赤道ベクトル１３２、極ベクトル１３４、および半径１３６によって特徴付けることができる。従来、３次元表面１３０上に２次元表面１２０をマッピングすることは、レンダリング時にレンダリングプログラムが請け負う整数計算と浮動小数点計算を必要とすることがあった。しかし、本発明は、事前計算した値を利用することによって、この様な実行時間計算に関連する処理時間の問題を緩和する。浮動小数点計算は、緯度計算と経度計算を含むことができる。例えば緯度は、次式を使用して計算することができる。
緯度＝ａｒｃｃｏｓ（法線・極）  （３）
同様に、経度の正弦を法線ベクトルと赤道ベクトルの内積で割ったものを使用して経度を計算することができる。
ｔ＝（法線・赤道）／sine（緯度）
ｔをレンジ［−１、１］にクランプ
経度＝arccos（ｔ）／２＊ＰＩ    （４）
したがって、（ｕ，ｖ）座標系を使用して２次元表面１２０上の点を位置付けることができ（ｕとｖは０．０〜１．０の範囲の浮動小数点数）、（緯度、経度）から（ｕ，ｖ）へのマッピングが１対１マッピングである場合、経度と緯度を使用して３次元表面１３０上の対応する点を位置付けることができる。しかし、上述の緯度および／または経度の等式の一部を事前計算することにより、性能の向上を達成することができる。バンプマップを表す２次元表面に関して、同様のプロセスを利用することができる。
【００３０】
次に図７を参照すると、オブジェクトの画像をレンダリングする際に利用するＮ個の属性を事前計算するための擬似コードのセグメントが示されている。この擬似コードは、単に、オブジェクトの画像をレンダリングすることに関連するＮ個の属性を使用するステップの、１つの可能な実装を表すに過ぎないことを当業者は理解されたい。図７の擬似コードでは、Ｎ個の属性を事前計算するための命令が図８の擬似コードと同じＤｒａｗＡＳｐｈｅｒｅプロシージャ中に含まれるが、別々の手順を利用することもでき、球体をレンダリングする要求とは独立に１組の球体についての１組のＮ個の属性を事前計算できることを当業者は理解されたい。
【００３１】
次に図８を参照すると、オブジェクトの画像をレンダリングする際に利用されるＭ個の属性を計算するための擬似コードのセグメントが示されている。この擬似コードは、単にオブジェクトの画像をレンダリングすることに関連するＭ個の属性を計算する際に使用する、１つの可能な実装を表すに過ぎないことを当業者は理解されたい。擬似コード中の位置１５０では、球体上のピクセルに割当てるべき強度を計算する。この例示的な計算は次の通りである。
Intensity＝（diffuse*diffuseFactor）＋（specular*specularFactor）＋（ambient*ambientFactor）            （５）
したがって、少なくとも拡散ライティング成分、反射ライティング成分、および周囲ライティング成分の効果を、それぞれｄｉｆｆｕｓｅＦａｃｔｏｒ，ｓｐｅｃｕｌａｒＦａｃｔｏｒ，およびａｍｂｉｅｎｔＦａｃｔｏｒの値によって増加または減少させることができる。ｄｉｆｆｕｓｅＦａｃｔｏｒがゼロである場合、ｄｉｆｆｕｓｅＦａｃｔｏｒを決定することに関する計算は実行されない。例えば擬似コード中の位置１５２で、ステートメント
if（diffuseFactor＝＝０）
を位置１５２の計算の前に挿入し、これらの計算を後の計算で利用しない場合にはこれらの計算を迂回させることができる。同様のステートメントを挿入して、限定はしないが反射光、周囲光、色、およびテクスチャを含む他の属性の計算を迂回することもできる。したがって、オブジェクトのレンダリングに関連するＭ個の属性をレンダリングの前に決定し、その結果不要な計算を除外することによって、オブジェクトをレンダリングするために必要な計算数を減らすことができる。
【００３２】
上記で示し、説明した例示的システムを考えると、本発明に従って実装することのできる方法を、図９、図１０、および図１１の流れ図を参照してより良く理解することができよう。話を簡単にするために、図９、図１０、および図１１を一連のステップとして説明するが、一部のステップを他のステップとともに、本明細書で示し、説明するのとは異なる順序で、および／または並行して、本発明に従って行うことができるので、本発明は、ステップの順序で限定されないことを理解されたい。さらに、本発明による方法を実装するために、例示するすべてのステップが必要なわけではない。
【００３３】
図９を参照すると、オブジェクトの画像をレンダリングするための方法がフローチャート化されている。ステップ２００では画像入力を受け取る。例えば、１つ以上の光源の位置、１つ以上の視点の位置、および、どのレンダリング属性をオブジェクトのレンダリングのために説明すべきかのリストとともに、球体の半径、位置、赤道、および極軸を指定することができる。例えば、要求されたレンダリングは、光源の色を反映することが望ましくない可能性がある。
【００３４】
ステップ２１０では、１つ以上の反射ハイライトベクトルを確立することができる。この様な反射ハイライトベクトルを利用して、例えば球体上のどこにシャイニィスポット（ｓｈｉｎｙ ｓｐｏｔ）が現れるかを判定することができる。ステップ２２０では、極ベクトルと赤道ベクトルのクロス積（ｃｒｏｓｓ ｐｒｏｄｕｃｔ）を計算し、極ベクトルと赤道ベクトルに直交する第３のベクトルを生成することができる。この様なベクトルを緯度および経度計算で利用することができる。ステップ２３０では、ライティング成分ルックアップテーブルを計算することができる。例えば、拡散ライティング成分、反射ライティング成分、極成分、および赤道成分を事前計算し、ルックアップテーブル中に格納することができる。大部分は事前計算される値を使用して拡散、反射、極、および赤道成分を計算することによって、性能が向上する。
【００３５】
ステップ３００では、球体の半径に対応するピクセル位置を１つ以上の事前計算したエッジバッファから取り出すことができる。したがって、球体のレンダリングに関する合計の計算数を減らすことができる。
【００３６】
２次元表面、例えばコンピュータモニタ上にレンダリングされる３次元球体は、２次元で表すことができる。したがって、レンダリングすべき球体を一度に１走査線だけレンダリングすることができる。したがって、ステップ３１０からステップ４００まで、演算は、球体の各走査線中のピクセルごとに実行される。ステップ３１０ではピクセルについての拡散ライティング成分を計算する。ピクセルについての拡散ライティング成分は、位置（ｘ，ｙ，ｚ）のピクセルのｘ座標、ｙ座標、およびｚ座標についての拡散ライティング成分を含むことができる。ステップ３２０ではピクセルについての反射ライティング成分を計算する。拡散ライティング成分と同様に、ピクセルについての反射ライティング成分は、位置（ｘ，ｙ，ｚ）のピクセルのｘ座標、ｙ座標、およびｚ座標についての反射ライティング成分を含むことができる。ステップ３３０では位置（ｘ，ｙ，ｚ）のピクセルについての光の強度（ｉｎｔｅｎｓｉｔｙ）を計算する。この強度計算は、拡散、反射、および周囲ライティング成分を含むことができる。
【００３７】
ステップ３４０では、２次元表面を３次元表面上にマッピングすることに関するｕおよびｖテクスチャ成分を計算することができる。この様な計算は、２次元表面上の点の（ｕ，ｖ）座標を、例えば１対１マッピングを利用して３次元表面上の緯度と経度に変換することを含むことができる。ステップ３４２では、この方法は、テクスチャ要素と光を強度因子で取り出す。ステップ４００ではピクセルを描画する。
【００３８】
次に図１０を参照すると、ステップ２３０（図９）がより詳細に示されている。どの成分を事前計算すべきかに関するライティングパラメータ（例えば、光の位置、ビューア位置）の構成について、ステップ２３２〜２４０を実行することができる。本発明は、コンピュータディスプレイに対しては、周知の半径を有する所望の球体の組でよく、その様な組に対して、球体をレンダリングする要求を受け取る前に多くの計算を事前計算できるということを利用する。したがって、ステップ２３２では拡散ライティング値のｘおよび／またはｙ成分への寄与を計算し、ルックアップテーブル中に格納することができる。同様に、ステップ２３４では反射ライティング値のｘおよび／またはｙ成分への寄与を計算し、ルックアップテーブル中に格納することができる。ステップ２３６では、位置（ｘ，ｙ）に位置するピクセルについての極ベクトルからのライティング成分への寄与を計算することができる。拡散ライティング成分、反射ライティング成分、および／または極ライティング成分のうちの１つまたは複数を初期パラメータのうちの１つまたは複数に対して事前計算することができ、次いでその事前計算した値は、走査線のレンダリング中に１回または複数回再使用するために利用可能であり、性能が向上する。上記で指摘したように、球体の様な曲面に関する対称性により、位置（ｘ，ｙ）についての計算のうちの１つ以上の部分を位置（ｘ，−ｙ）または位置（−ｘ，ｙ）についての計算を計算する際に使用することが可能となり、したがってオブジェクトの画像をレンダリングするのに必要な計算数を減らすことができる。ステップ２３８では赤道ベクトルからのライティング成分への寄与を計算することができ、ステップ２４０では赤道成分と交差する極を計算することができる。
【００３９】
球体の半径ｒが与えられ、その球体上に配置されるピクセルについての１組の（ｘ，ｙ）位置が与えられた場合、レンダリング方程式で使用されるｘ成分とｙ成分を格納する１つ以上のルックアップテーブルへのアクセスを容易にするために判別式ｄを計算することができる。したがってステップ２４２では、ステップ２３２〜２４０の間でそれについての成分が計算された計算ピクセルごとに、判別式の値を計算することができる。判別式を計算することにより、比較的簡単で計算的に安価な、事前計算され、格納された１つ以上の値のルックアップを実行することができる。
【００４０】
ステップ２４４〜２５２までで、位置（ｘ，ｙ，ｚ）に配置されるピクセルのｚ成分についての属性を計算することができる。半径ｒの球体を、長さが１ピクセルから２ｒピクセルの範囲の１組の水平走査線としてレンダリングすることができる。水平走査線は、極軸について対称とすることができる。したがって、走査線ごとにｙについての値を一定にし、ｘの値を極軸について対称にして、球体の走査線ごとにステップ２４４〜２５２を反復することができる。ｙの値を一定に固定し、極軸についての対称性を使用することによって、（以下に説明する様な）ｚ成分を決定するための計算の合計数を減らすことができる。
【００４１】
半径ｒの球体が与えられ、その球体によって囲まれる領域に対応する（ｘ，ｙ）座標の組が与えられた場合、位置（ｘ，ｙ）のピクセルの高さｚは、以下の式を使用して計算することができる。
ｚ＝√（ｒ２−ｘ２−ｙ２）        （６）
高さｚが与えられた場合、高さｚに基づく、オブジェクトをレンダリングすることに関連する属性を事前計算することができる。例えば、拡散成分、反射成分、極成分、赤道成分、および赤道成分に交差する極成分を計算することができる。したがってステップ２４４では、走査線ｙ上のピクセルごとに、ｚについての拡散ライティング成分を計算し、ルックアップテーブル中に格納することができる。同様に、ステップ２４６では反射ライティング成分を計算し、格納することができ、ステップ２４８では極ライティング成分を計算し、格納することができる。ステップ２５０ではｚ成分についての赤道ライティング成分を計算することができ、ステップ２５２ではｚ成分についての極交差成分を計算することができる。
【００４２】
したがって、ライティング位置、色、強度、および視点に無関係な（ｘ，ｙ，ｚ）座標によって特徴付け可能な１組の位置に配置される１組のピクセルを有する半径ｒの球体について、球体をレンダリングする要求を受け取る前に、ステップ２３２〜２５２で詳述した方法を用いてＭ個の属性を事前計算し、格納することができる。したがって、レンダリングが要求されたときに必要なステップ数を減らすことができる。
【００４３】
次に図１１を参照すると、ステップ３４０（図９）がさらに詳しくフローチャート化されている。３次元表面、例えば球体上にマッピングすべき、２次元表面上の（ｕ，ｖ）座標によって表される点ごとに、ステップ３４２〜３４８を実行することができる。ステップ３４２では、球体の中心から出る法線ベクトルと、球体についての極軸ベクトルとの内積を計算する。ステップ３４４では、球体の中心から出る法線ベクトルと、赤道ベクトルとの内積を計算する。ステップ３４６では、２次元表面中に位置する点に対応する緯度を当技術分野で周知の式を用いて計算することができる。同様に、ステップ３４８では、２次元表面中に位置する点に対応する経度を、当技術分野で周知の式を用いて計算することができる。従来通り、ステップ３４６および３４８の緯度および経度の式全体をレンダリングの間に計算することができる。しかし、１組の半径を有する１組の球体が与えられた場合、本発明は、光源位置、色、強度、およびビューア位置などの他のレンダリング属性に無関係な緯度と経度の式の一部を事前計算し、格納することができる。したがって、レンダリング要求を受け取った後に必要な計算の数を減らすことができる。ステップ３５０では、球体の方向を合わせるのに有用な、経度が球体を囲む方法に関する決定を行うことができる。
【００４４】
図１２を参照すると、本発明の様々な態様を実装するための例示的環境７１０は、処理装置７１４と、システムメモリ７１６と、システムメモリを含む様々なシステム構成要素を処理装置７１４に結合するシステムバス７１８とを含むコンピュータ７１２を含んでいる。この処理装置７１４は、市販のプロセッサのうちどれでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも、処理装置７１４として使用することができる。
【００４５】
システムバス７１８は、メモリバスまたはメモリコントローラ、周辺バス、および様々な従来の市販のバスアーキテクチャのうちいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造のうちのどれでもよい。コンピュータ７１２のメモリは、読取り専用メモリ（ＲＯＭ）７２０とランダムアクセスメモリ（ＲＡＭ）７２２を含む。ＲＯＭ７２０中には、起動中などにコンピュータ７１２内の要素間で情報を転送する助けとなる基本ルーチンを含む基本入出力システム（ＢＩＯＳ）が格納される。
【００４６】
コンピュータ７１２は、さらに、ハードディスクドライブ７２４、例えば取外し可能ディスク７２８を読み書きするための磁気ディスクドライブ７２６、および例えばＣＤ−ＲＯＭディスク７３２を読み取るため、または他の光媒体を読み書きするための光ディスクドライブ７３０を含む。ハードディスクドライブ７２４、磁気ディスクドライブ７２６、および光ディスクドライブ７３０は、それぞれハードディスクドライブインターフェース７３４、磁気ディスクドライブインターフェース７３６、および光ドライブインターフェース７３８によってシステムバス７１８に接続される。ドライブおよびその関連するコンピュータ可読媒体は、コンピュータ７１２に対して、同報通信プログラミングを適切なデジタルフォーマットで記憶することを含む、データ、データ構造、コンピュータ実行可能命令などの不揮発性記憶を提供する。上記のコンピュータ可読媒体は、ハードディスク、取外し可能磁気ディスクおよびＣＤを指すが、ｚｉｐ（登録商標）ドライブ、磁気カセット、フラッシュメモリカード、デジタルビデオディスクなどのコンピュータが読取り可能な他のタイプの媒体も例示的動作環境で使用することができ、さらに、この様な媒体はどれも、本発明の方法を実行するためのコンピュータ実行可能命令を含むことができることを当業者は理解されたい。
【００４７】
オペレーティングシステム７４０、１つ以上のアプリケーションプログラム７４２、他のプログラムモジュール７４４、およびプログラムデータ７４６を含むいくつかのプログラムモジュールは、ドライブおよびＲＡＭ７２２中に格納することができる。例示したコンピュータ中のオペレーティングシステム７４０は、様々な市販のオペレーティングシステムのうちどれでもよい。
【００４８】
ユーザは、キーボード７４８や、マウス７５０などのポインティングデバイスを介してコンピュータ７１２にコマンドと情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ＩＲリモートコントロール、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらおよび他の入力装置は、しばしば、システムバス７１８に結合されるシリアルポートインターフェース７５２を介して処理装置７１４に接続されるが、パラレルポート、ゲームポート、汎用シリアルバス（「ＵＳＢ」）、ＩＲインターフェースなどの他のインターフェースによって接続することもできる。モニタ７５４または他のタイプのディスプレイ装置も、ビデオアダプタ７５６などのインターフェースを介してシステムバス７１８に接続される。モニタに加えて、コンピュータは、一般にスピーカ、プリンタなどの他の周辺出力装置（図示せず）を含む。
【００４９】
コンピュータ７１２は、リモートコンピュータ７５８などの１つ以上のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ７５８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、マイクロプロセッサベースのエンターテイメント機器（例えばＷｅｂＴＶ（登録商標）クライアントシステム）、ピアデバイス、または他の共通ネットワークノードでよく、一般に、コンピュータ７１２に関して説明した要素のうちの多くまたはすべてを含むが、話を簡単にするためにメモリストレージ装置７６０だけを示す。図に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）７６２とワイドエリアネットワーク（ＷＡＮ）７６４を含む。この様なネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
【００５０】
ＬＡＮネットワーキング環境で使用するとき、コンピュータ７１２は、ネットワークインターフェースまたはネットワークアダプタ７６６を介してローカルエリアネットワーク７６２に接続される。ＷＡＮネットワーキング環境で使用するとき、コンピュータ７１２は一般にモデム７６８を含み、またはＬＡＮ上の通信サーバに接続され、またはインターネットなどのＷＡＮ７６４を介して通信を確立するための他の手段を有する。モデム７６８は内蔵または外付けとすることができ、シリアルポートインターフェース７５２を介してシステムバス７１８に接続される。ネットワーク環境では、コンピュータ７１２に対して示し、またはコンピュータ７１２の部分であるプログラムモジュールは、メモリストレージ装置７６０中に格納することができる。この図に示すネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立するための他の手段も使用できることを理解されたい。
【００５１】
以上説明したことは本発明の例を含む。もちろん、本発明を説明する目的で、コンピュータまたは方法の考えられるあらゆる組合せを説明することは不可能であるが、当業者は本発明のさらに多くの組合せおよび置換が可能であることを理解されよう。したがって、本発明は、添付の特許請求の範囲の精神および範囲内にある、すべてのこの様な変更形態、修正形態、および変形形態を含むものとする。さらに用語「含む（ｉｎｃｌｕｄｅ）」が詳細な説明または特許請求の範囲のいずれかで使用する範囲内で、この用語は用語「含む、備える（ｃｏｍｐｒｉｓｅ）」と同義であるものとする。含む、備える（ｃｏｍｐｒｉｓｉｎｇ）は、特許請求の範囲では移行語として解釈されるからである。
【図面の簡単な説明】
【図１】本発明の態様による、オブジェクトの画像をレンダリングするためのシステムを示す概略ブロック図である。
【図２】本発明の態様による、オブジェクトの画像をレンダリングするためのシステムをさらに示す概略ブロック図である。
【図３】本発明の態様による、球体の２次元表示に対する光源と視点を示す図である。
【図４】本発明の態様による、いくつかの異なるサイズの球体と、球体の軸についての対称性とを示す図である。
【図５】球体に接する光源からのいくつかの光線を示す図である。
【図６】本発明の態様に従って、２次元平面を３次元球体上にマッピングすることを示す図である。
【図７】本発明の態様に従って、オブジェクトの画像をレンダリングする際に利用する計算を事前計算するための擬似コードのセグメントを示す図である。
【図８】本発明の態様に従って、オブジェクトの画像をレンダリングする際に事前計算済みの計算を利用するための擬似コードのセグメントを示す図である。
【図９】本発明の態様に従って、オブジェクトの画像をレンダリングするための方法を示す流れ図である。
【図１０】本発明の態様に従って、オブジェクトの画像をレンダリングするための方法をさらに示す流れ図である。
【図１１】本発明の態様に従って、オブジェクトの画像をレンダリングするための方法をさらに示す流れ図である。
【図１２】本発明に従って構成されるシステムに関する例示的動作環境の概略ブロック図である。
【符号の説明】
６  システム
８  判定構成要素
１０  Ｍ個の属性
１２  オブジェクトのレンダリングした画像
１４  事前計算構成要素
１６  Ｎ個の属性
１８  計算構成要素
２０  レンダリング構成要素
２２  画像入力
３４  ｘルックアップテーブル
３６  ｙルックアップテーブル
３８  ｚルックアップテーブル
４４  数式
５０，７０，７８，８０，８２，９０  球体
５２，７２，１３２  赤道ベクトル
５４，７４，１３４  極ベクトル
５６，７６，８４，１３６  半径
５８，９２  光源
６０  視点
８６  赤道
８８  極軸
９４Ａ，９６Ａ，９６Ｃ，９８Ａ  ベクトル
９４Ｂ，９６Ｂ，９８Ｂ  法線ベクトル
１２０  ２次元表面
１３０  ３次元球体（３次元表面）
１５０，１５２  位置
７１０  例示的環境
７１２  コンピュータ
７１４  処理装置
７１６  システムメモリ
７１８  システムバス
７２０  読取り専用メモリ（ＲＯＭ）
７２２  ランダムアクセスメモリ（ＲＡＭ）
７２４  ハードディスクドライブ
７２６  磁気ディスクドライブ（フロッピィ（登録商標）ドライブ）
７２８  取り外し可能ディスク
７３０  光ディスクドライブ
７３２  ディスク
７３４  ハードディスクドライブインターフェース
７３６  磁気ディスクドライブインターフェース
７３８  光ドライブインターフェース
７４０  オペレーティングシステム
７４２  アプリケーションプログラム
７４４  プログラムモジュール
７４６  プログラムデータ
７４８  キーボード
７５０  マウス
７５２  シリアルポートインターフェース
７５４  モニタ
７５６  ビデオアダプタ
７５８  リモートコンピュータ
７６０  メモリストレージ装置
７６２  ローカルエリアネットワーク（ＬＡＮ）
７６４  ワイドエリアネットワーク（ＷＡＮ）
７６６  ネットワークアダプタ
７６８  モデム
【図１】
0004448637.tif 000002
【図２】
0004448637.tif 000003
【図３】
0004448637.tif 000004
【図４】
0004448637.tif 000005
【図５】
0004448637.tif 000006
【図６】
0004448637.tif 000007
【図７】
0004448637.tif 000008
【図８】
0004448637.tif 000009
【図９】
0004448637.tif 000010
【図１０】
0004448637.tif 000011
【図１１】
0004448637.tif 000012
【図１２】
0004448637.tif 000013