(57)【要約】  【課題】  本発明は，効率的に細分割曲面を描画するためのコンピュータグラフィックス用のレンダリング装置などを提供することを目的とする。  【解決手段】  本発明は，上記の課題を解決するためになされたものである。そして，従来の細分割曲面法が全てのメッシュ（ポリゴン）について一律に分割深さを設定するのに対し，本発明は，基本的には，分割深さに重み付けをすることで，効率的に細分割曲面を描画できるという知見に基づくものである。  【選択図】      図１
2007213522.tif 000002
【特許請求の範囲】
【請求項１】
各ポリゴンの法線ベクトルを得る法線ベクトル取得手段と，
前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと，視線ベクトルとを含む情報を用いて，各ポリゴンの分割回数（分割深さ）を決定する分割深さ決定手段と，
前記分割深さ決定手段が決定した分割深さに応じて各ポリゴンを分割するポリゴン分割手段と，
を具備するコンピュータグラフィックスのための細分割曲面描画用レンダリング装置。
【請求項２】
前記分割深さ決定手段は，法線ベクトルと視線ベクトルとのなす角を求め，
法線ベクトルと視線ベクトルとのなす角と分割深さとの関係を記憶した記憶装置から，求めた法線ベクトルと視線ベクトルとのなす角に応じた分割深さを読み出すことにより分割深さを決定する,
請求項１に記載の装置。
【請求項３】
前記分割深さ決定手段は，
１つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値及び最小値を求める手段と；前記最大値と最小値との差を求める手段と；１つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値と最小値の差の値（範囲）に応じて分割深さを記憶するメモリと；前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備する
請求項１に記載の装置。
【請求項４】
前記分割深さ決定手段は，
１つのポリゴンに細分割を施してできる曲面（ポリゴンの集合）の曲率の最大値及び最小値を求める手段と；前記最大値と最小値との差を求める手段と；１つのポリゴンに細分割を施してできる曲面（ポリゴンの集合）の曲率の最大値及び最小値の差の値（範囲）に応じて分割深さを記憶するメモリと；前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備する
請求項１に記載の装置。
【請求項５】
前記分割深さ決定手段は，
１つのポリゴンに細分割を施してできるポリゴン間の角度（法線ベクトルのなす角）を求める手段と；１つのポリゴンに細分割を施してできるポリゴン間の角度に応じて分割深さを記憶するメモリと；前記求められたポリゴン間の角度がどの分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備する
請求項１に記載の装置。
【請求項６】
あるポリゴンを細分割することにより生ずる細分割後の隣接するポリゴンの細分割深さに応じて，境界線の周りのポリゴンを細分割することにより，隣接するポリゴンの境界線の位置と位相（位相は１辺をいくつに分割するのかというもの）を一致させる
請求項１に記載の装置。
【請求項７】
請求項１に記載の装置を具備するコンピュータ。
【請求項８】
請求項１に記載の装置を具備するゲーム機。
【請求項９】
請求項１に記載の装置を具備する携帯電話。
【請求項１０】
請求項１に記載の装置を具備するカーナビゲーションシステム。
【請求項１１】
請求項１に記載の装置を具備するスロットマシーン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，細分割曲面描画用レンダリング装置などに関する。より詳しく説明すると，本発明は，視点などに応じて分割深さを変化させることで効率的に細分割曲面を描画するレンダリング装置に関する。
【背景技術】
【０００２】
コンピュータグラフィックスにおいて，曲面を表現するために，多角形メッシュを初期メッシュとし，これを再帰的に分割して曲面を定義する方法が知られている。この方法により得られた曲面は，細分割曲面（Subdivision Surface）とよばれる。
【０００３】
細分割曲面は，そのスケーラビリティや計算の安定性に優れている。また，細分割曲面は，容易にコード化でき，しかも任意位相を持つ複雑な形状を表現できる。このため，細分割曲面は，グラフィカルモデリングやアニメーションなどに有用であり，既にいくつかの商用システムに組み込まれている（例えば，下記非特許文献１，２を参照）。
【０００４】
従来，細分割曲面を描画するために，全体を同じ回数（以下，分割回数を「分割深さ」とよぶ。），細分割し，その後頂点を極限点に移動させて，多角形メッシュを描画することが行われていた。しかしながら，従来の細分割曲面法では，メッシュに含まれるすべての多角形を同様に細分割する必要があった。したがって，従来の細分割曲面法では，描画に不必要な視点から見えないメッシュの裏側の多角形をも分割するので，処理に時間がかかるという問題があった。
【非特許文献１】Denis Zorin, Peter Schr¨oder, Wim Sweldens, ”Interactive Multiresolution Mesh Editing", Proceedings of SIGGRAPH97, pp.259-268,(1997).
【非特許文献２】T. DeRose, M. Kass, T. Troung, "Subdivision surfaces in character animation", Proceedings SIGGRAPH98, pp.85-94(1998).
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は，効率的に細分割曲面を描画するためのコンピュータグラフィックス用のレンダリング装置などを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は，上記の課題を解決するためになされたものである。そして，従来の細分割曲面法が全てのメッシュ（ポリゴン）について一律に分割深さを設定するのに対し，本発明は，基本的には，分割深さに重み付けをすることで，効率的に細分割曲面を描画できるという知見に基づくものである。
【０００７】
たとえば，ユーザから見えない部分は，滑らかな曲面を表現する必要がないので，細分割を施す必要がない。また，ユーザの視線と垂直に近い面は，細分割してもユーザからの見え方はあまり変化しないので，細分割を施す回数は少なくてよい。このように,細分割をすることが望ましい回数は，一律ではなく，たとえばユーザの視点に基づいて変化するものである。
【０００８】
そこで，本発明は，基本的には，ポリゴンのうち，ユーザの視点に応じて必要な部位を多く細分割を施すことものであり，これにより細分割の度合いを変化できるので，従来に比べてリアルな曲面を従来に比べて短時間に描画できるというものである。そして，そのように効率的に描画するために，好ましくは各ポリゴンの視線ベクトルと法線ベクトルを用いて，視線に応じて分割深さを部位ごとに変えるというものである。
【０００９】
さらに上記のようにして分割深さを変化させた場合，分割深さの深い多角形と浅い多角形が隣接する事態が生じうる。そのような場合であっても，よりリアルな曲面を表現するために，それらの多角形の境界を滑らかに接続させることが望ましい。つなぎ目をなだらかにするためには，境界線上で，位置が連続していること，及び法線ベクトルが連続しているようにすることが望ましい。このためには，２つの隣接するポリゴン間の境界線を一致させるとともに，境界線上での法線ベクトルを一致させればよい。
【００１０】
本発明の好ましい態様では，隣接するポリゴンの細分割深さに応じて，境界線の周りのポリゴンを細分割することにより，隣接するポリゴンの境界線を一致（位置と位相：位相は１辺をいくつに分割するのかというもの）させる。これにより，なだらかな曲面を実現できることとなる。
【発明の効果】
【００１１】
本発明によれば，分割深さに重み付けをすることで，効率的に細分割曲面を描画できるレンダリング装置を提供できる。
【００１２】
また，本発明によれば，隣接するポリゴンの境界線を一致させることで，分割深さを変化させても，滑らかな曲面を描画できるレンダリング装置を提供できる。
【発明を実施するための最良の形態】
【００１３】
[本発明の細分割曲面描画装置]
以下，本発明の細分割曲面描画用レンダリング装置（以下，「本発明の細分割曲面描画装置ともいう。」）について説明する。本発明の第１の側面にかかる細分割曲面描画装置は，コンピュータグラフィックスのレンダリングに用いられる回路などの装置であって，各ポリゴンの法線ベクトルを得る法線ベクトル取得手段と，前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと視線ベクトルとを含む情報を用いて，各ポリゴンの分割回数を決定する分割深さ決定手段と，前記分割深さ決定手段が決定した分割深に応じて各ポリゴンを分割するポリゴン分割手段と，を具備するコンピュータグラフィックスのための細分割曲面描画用レンダリング装置である。
【００１４】
そして，基本的には，法線ベクトル取得手段が各ポリゴンの法線ベクトルを得て，分割深さ決定手段が，前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと視線ベクトルとを含む情報を用いて，各ポリゴンの分割深さを決定し，ポリゴン分割手段が前記分割深に応じて各ポリゴンを分割する。このようにして細分割が行われる。この際，分割深さを変化できるので，効率的に細分割を行うことができることとなる。
【００１５】
[法線ベクトル取得手段]
法線ベクトル手段は，各ポリゴンの法線ベクトルを得るための手段である。法線ベクトルは，たとえば，クライアントからの入力により決定されても良い。この場合，クライアントから入力された法線ベクトル情報は，メモリなどの記憶装置に一時的に格納され，適宜読み出されることにより取得可能な状態となる。法線ベクトルは，本発明の細分割曲面描画装置において定義されても良いし，公知の方法により算出してもよい。法線ベクトルを算出するためには，たとえば，ポリゴンの各頂点における法線ベクトルをメモリなどに格納しておき，加算回路によってそれらのベクトルの和を求め，除算回路によりその和をポリゴンの角数（ｎ角形ならｎ）で除算する。このようにすれば，ポリゴンの各頂点における法線ベクトルの平均値を求めることができ，その値をポリゴンの法線ベクトルとすればよい。
【００１６】
また，コンピュータを，各ポリゴンに対して，メモリに格納された各ポリゴンの各頂点における法線ベクトルを読み出すための手段と，前記法線ベクトルを読み出す手段が読み出した各頂点における法線ベクトルの和を求め，その和をベクトルの角数で除算するための手段として機能させる制御プログラムをメインメモリなどに格納したものを用いても良い。この場合，ＣＰＵは，メインメモリから上記制御プログラムを読み出して，上記制御プログラムの指令にしたがって，メモリに格納された各ポリゴンの各頂点における法線ベクトルを読み出し，メモリなどの記憶装置を作業領域などとして用いて,演算処理を行うことにより,法線ベクトルを算出する。
【００１７】
また，法線ベクトルは，コンピュータグラフィック装置の中の細分割曲面描画装置より上流の装置において求められても良い。
【００１８】
[分割深さ決定手段]
分割深さ決定手段は，前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと視線ベクトルとを含む情報を用いて，各ポリゴンの分割回数を決定するための手段である。視線ベクトルは，クライアントからの入力され，メモリに一時的に記憶されたものを用いてもよいし，適宜定義してもよい。また，視点を固定し，前記法線ベクトルを用いて公知の方法により算出してもよい。
【００１９】
分割深さを決定する方法として，たとえば以下のものがあげられる。すなわち，分割深さ決定手段は，法線ベクトルと視線ベクトルとのなす角を求め，法線ベクトルと視線ベクトルとのなす角と分割深さとの関係を記憶した記憶装置から，求めた法線ベクトルと視線ベクトルとのなす角に応じた分割深さを読み出すものである。
【００２０】
具体的には，ポリゴンの中心（重心）から視点への単位ベクトル（視線ベクトル）を“v＿0”とし，ポリゴンの単位法線ベクトル（各頂点に割り当てられた法線の平均を単位化したベクトルであり，単に「法線ベクトル」ともよぶ。）を“v＿1”とする。これらの単位ベクトルは，上記のとおりクライアントから入力されメモリなどに格納されたものを読み出しても良いし，適宜定義しても良いし,上記したと同様の制御プログラムに基づいた計算により算出しても良い。
【００２１】
そして,公知の内積回路や，ベクトルの内積を求めるための制御プログラムを用いて，視線ベクトルと法線ベクトルのなす角度や内積を求める。
【００２２】
また，上記の視線ベクトルと法線ベクトルのなす角度に応じた分割深さは予めメモリに格納されており，もとめられた視線ベクトルと法線ベクトルのなす角度の情報を用いて，メモリから分割深さに関する情報を読み出す。このような動作は，たとえば，メインメモリに格納された制御プログラムの指令により，ＣＰＵがメモリに一時的に記憶された視線ベクトルと法線ベクトルのなす角度に関する情報を用いて，メモリに格納される視線ベクトルと法線ベクトルのなす角度に応じた分割深さに関するテーブルから視線ベクトルと法線ベクトルのなす角度に応じた分割深さに関する情報を読み出して，演算処理を行うことにより，視線ベクトルと法線ベクトルのなす角度に応じた分割深さを決定するようにすればよい。
【００２３】
視線ベクトルと法線ベクトルのなす角度に応じた分割深さとしては，たとえば，以下のものがあげられる。
【００２４】
なす角          分割深さ
0度-45度          0
45度-70度         1
70度-95度         2
95度以上     0(裏面に対応)
【００２５】
この視線ベクトルと法線ベクトルのなす角度に応じた分割深さは，適宜修正可能とされることが好ましい。なお，上記はなす角におうじて分割深さが記憶される例を示したが，なす角そのものではなくなす角に関連した値と関連して分割深さが記憶されてもよい。また，視線ベクトルと法線ベクトルの内積値と関連した値と関連して分割深さが記憶されてもよい。
【００２６】
以下，上記とは別の分割深さの決定例を説明する。
ａ．分割深さの上記とは別の決定例は，１つのポリゴンに細分割を施して曲面を得て，得られる曲面の視点ベクトルと法線ベクトルとのなす角度の最大値，及び最小値を用いて分割深さを決定するものである。そして，最大値と最小値の差が所定の値以上異なる場合，面は大きく湾曲しているので深く分割する。一方，最大値と最小値の差が所定の値以下の場合は，平面に近いので浅く分割する。これにより，より少ないデータ量でより高品質にレンダリングを行うことができる。湾曲している面を細かく分割することのメリットは，面の位置情報をより正確にレンダリングに反映できることである。
【００２７】
この分割深さ決定例に用いられる分割深さ決定手段は，１つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値及び最小値を求める手段と；前記最大値と最小値との差を求める手段と；１つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値と最小値の差の値（範囲）に応じて分割深さを記憶するメモリと；前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備するものがあげられる。この分割深さ決定手段は，コンピュータを上記の各手段として機能させるプログラムとメモリやＣＰＵなどのハードウエアとの協働により実装されてもよいし，四則演算回路などのハードウエア資源により実装されてもよい。
【００２８】
b． 分割深さの上記とは別の決定例は，１つのポリゴンに細分割を施して曲面を得て，得られる曲面の曲率の最大値，及び最小値に応じて細分割深さを変更するものである。この決定例によれば，平面に近いポリゴンは浅く，曲率の大きい（曲率が一定以上の）ポリゴンは深く細分割できるので，より少ないデータ量でより高品質にレンダリングを行うことができる。湾曲している面を細かく分割することのメリットは，面の位置情報をより正確にレンダリングに反映できることである。
【００２９】
この分割深さ決定例に用いられる分割深さ決定手段は，１つのポリゴンに細分割を施してできる曲面（ポリゴンの集合）の曲率の最大値及び最小値を求める手段と；前記最大値と最小値との差を求める手段と；１つのポリゴンに細分割を施してできる曲面（ポリゴンの集合）の曲率の最大値及び最小値の差の値（範囲）に応じて分割深さを記憶するメモリと；前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備するものがあげられる。なお，この分割深さ決定手段は，コンピュータを上記の各手段として機能させるプログラムとメモリやＣＰＵなどのハードウエアとの協働により実装されてもよいし，四則演算回路などのハードウエア資源により実装されてもよい。
【００３０】
c． 分割深さの上記とは別の決定例は，隣接するポリゴン間の角度（法線ベクトルのなす角）を計算し，角度が所定値以上の場合は，得られる曲面が大きく湾曲しているので深く細分割する。一方，角度が所定値以下の場合は，得られる曲面が平面に近いので，浅く分割する。このような決定方法を採用することで，少ないデータ量で高品質にレンダリングを行うことができる。湾曲している面を細かく分割することのメリットは，面の位置情報をより正確にレンダリングに反映できることである。
【００３１】
この分割深さ決定例に用いられる分割深さ決定手段は，１つのポリゴンに細分割を施してできるポリゴン間の角度（法線ベクトルのなす角）を求める手段と；１つのポリゴンに細分割を施してできるポリゴン間の角度に応じて分割深さを記憶するメモリと；前記求められたポリゴン間の角度がどの分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備するものがあげられる。なお，この分割深さ決定手段は，コンピュータを上記の各手段として機能させるプログラムとメモリやＣＰＵなどのハードウエアとの協働により実装されてもよいし，四則演算回路などのハードウエア資源により実装されてもよい。
【００３２】
d． 分割深さの上記とは別の決定例は，シルエットとなるポリゴン（隣接するポリゴン間で面の表，裏が変化するポリゴン）は深く細分割し，そうでないポリゴンは浅く細分割するものである。このように細分割の度合いを変化させることで，少ないデータ量で高品質にレンダリングを行うことができる。シルエットラインは物体と背景との境界線である。したがって，粗いレンダリングを行えば，折れ線としてシルエットラインがレンダリングされ，画質を劣化させる。この決定方法によれば，そのような事態を効果的に防止できるので，画質が劣化する事態を効果的に防止できる。
【００３３】
この分割深さ決定例に用いられる分割深さ決定手段は，１つのポリゴンに細分割を施してできるポリゴンがシルエットとなるポリゴンかどうか判断する手段と；シルエットとなるポリゴンかどうかに応じて分割深さを記憶するメモリと；分割深さに対応するか判断する手段と；前記判断結果を出力する手段とを具備するものがあげられる。なお，この分割深さ決定手段は，コンピュータを上記の各手段として機能させるプログラムとメモリやＣＰＵなどのハードウエアとの協働により実装されてもよいし，四則演算回路などのハードウエア資源により実装されてもよい。
【００３４】
なお，本発明における分割深さの決定方法は，これまで説明した1種又は2種以上の決定方法を適宜組み合わせたものや，上記の決定方法などと別の決定方法とを組み合わせたものであっても良い。
【００３５】
さらに上記のようにして分割深さを変化させた場合，分割深さの深い多角形と浅い多角形が隣接する事態が生じうる。そのような場合であっても，よりリアルな曲面を表現するために，それらの多角形の境界を滑らかに接続させることが望ましい。つなぎ目をなだらかにするためには，境界線上で，位置が連続していること，及び法線ベクトルが連続しているようにすることが望ましい。このためには，２つの隣接するポリゴン間の境界線を一致させるとともに，境界線上での法線ベクトルを一致させればよい。より具体的には，あるポリゴンを細分割することにより生ずる細分割後の隣接するポリゴンの細分割深さに応じて，境界線の周りのポリゴンを細分割することにより，隣接するポリゴンの境界線の位置と位相（位相は１辺をいくつに分割するのかというもの）を一致させる手段を具備すればよい。以下では，そのような観点に基づいてポリゴン分割を行うポリゴン分割手段の例について説明する。
【００３６】
[ポリゴン分割手段]
ポリゴン分割手段は，前記分割深さ決定手段が決定した分割回数に応じて各ポリゴンを分割するための手段である。ポリゴン分割手段として，たとえば，上記の非特許文献や特許文献における細分割曲面を描画するための装置における公知の細分割方法や，細分割方法のための装置，プログラムを適宜利用することができる。
【００３７】
ポリゴンの分割の方法は，例えば，分割対象であるポリゴンの細分割深さと周囲のポリゴンの細分割深さに応じて決定すればよい。隣接するポリゴン間では，2つのポリゴンの分割深さの浅い方の分割深さに依存して分割の位相を決定すればよい。そして，位相を決定した後は，数値テーブルを参照して分割後の頂点位置を計算すればよい。
【００３８】
以下，分割深さに応じてポリゴンを分割する例について説明する。この例では，頂点の価数に応じて以下のように処理を行う。
【００３９】
(i)ポリゴンが四角形で，そのポリゴンのすべての頂点の価数（１つの頂点に接続された稜線の数）が4の場合は，回路に実装マイクロコードで指定された分割深さの細分割を行う。このマイクロコードは，公知の回路である。
【００４０】
(ii)ポリゴンが四角形で，1つの頂点の価数が4以外の場合（以下，頂点の価数が4以外の場合その頂点を「特異点」と呼ぶ。），コンピュータを1回細分割を行う用に制御する制御プログラム（メインメモリに格納されても良いが，好ましくはCPUに実装されたもの）の指令を受けたCPUが，そのポリゴンに対して1回細分割を行うための演算を行う。この1回細分割により生成された4つのサブポリゴンの1つは特異点を1つ持つので，そのポリゴンは先と同様にして必要に応じて再度細分割を行う。そして，その他の3つのサブポリゴンは場合(i)に一致するので，回路に実装したマイクロコードで必要な分割深さの細分割を行う。特異点を持つサブポリゴンの細分割は，1度でも良いし，複数回行われても良い。たとえば，特異点を持つサブポリゴンの細分割は，再帰的に特異点の有無により処理を分ければよい。
【００４１】
(iii)ポリゴンが四角形で，特異点を複数もつ場合は，上記制御プログラムにより1回細分割を行う。生成された4つのサブポリゴンは特異点を1つ持つポリゴンと特異点を持たない場合がある。特異点を1つ持つサブポリゴンを，必要に応じて場合(ii)により細分割を行う。特異点を持たないサブポリゴンは必要に応じて場合(i)により細分割を行う。
【００４２】
(iv)ポリゴンが非四角形（三角形，n角形（n>4，五角形や六角形など））で特異点を持たない場合は，上記制御プログラムにより1回細分割を行う。この細分割により三角形であれば3個，n角形であればn個の1つの特異点を持つサブポリゴンが生成される。これらのサブポリゴンに必要に応じて場合(ii)により細分割を行う。
【００４３】
(v)ポリゴンが非四角形（三角形，n角形（n>4，五角形や六角形など））で特異点を持つ場合は，上記した制御プログラムで1回細分割を行う。生成されたサブポリゴンは特異点を複数持つ場合と1つ場合がある。複数持つ場合は再度制御プログラムで1回細分割を行ない，必要に応じて場合(iv)により細分割を行う。特異点を1つ持つサブポリゴンは必要に応じて場合(ii)により細分を行う。
【００４４】
上記の処理において，場合(ii)に記述したように，制御プログラムにより特異点を持たない四角形ポリゴンは，回路に実装されたマイクロコードで必要な分割深さの細分割を行う。
【００４５】
すなわち，ポリゴンが非四角形の場合や，四角形であってもその価数が4以外の頂点を複数持つ場合は，局所的な細分割が行われる。そして，ポリゴンが非四角形の場合であって，1回細分割を行っても，価数が4以外の頂点を複数持つときはさらに，局所的に細分割を行う。なお，1回の細分割で生成されるポリゴンはすべて四辺形となる。
【００４６】
なお，ポリゴンを細分割するためには，(i)細分割されるポリゴンが四角形であり，(ii)特異点である頂点の数が高々１つ（特異点とは，価数が4以外である頂点）であり，(iii)周囲のポリゴンがすべて四角形であることが望ましい。そこで，上記の条件を満足しない場合には局所的に細分割することを必要な回数（好ましくは2回までの細分割）によって，これらの条件を満足させればよい。
【００４７】
図１は，本発明の細分割曲面描画用装置に基づく細分割曲面を描画する動作例を説明するためのフローチャートである。まず，初期メッシュが入力される（ステップ１０１）。すると，たとえば，初期メッシュを構成する各ポリゴンの法線ベクトル及び視点ベクトルが計算され，所定の分割深さが読み出されるなどして，書くポリゴンの分割深さが決定される（ステップ１０２）。
【００４８】
次に，この分割深さを用いて各ポリゴンが細分割されることとなる。まず，細分割されるポリゴンが順次選択される（ステップ１０３）。そして，選択されたポリゴンが，四角形かどうか判断される（ステップ１０４）。ポリゴンが四角形である場合，そのポリゴンが特異点を有するかどうか判断される（ステップ１０５）。そして，そのポリゴンが特異点を持たない場合は，たとえば，回路として実装されるマイクロコードにより細分割が行われる（ステップ１０６）。
【００４９】
一方，ステップ１０４でポリゴンが四角形以外の形状であると判断された場合，ステップ１０５でポリゴンが特異点を持つと判断された場合は，たとえば，プログラムからの指令に基づいてポリゴンが１回細分割される（ステップ１１１）。ステップ１１１で１回細分割された各ポリゴンについて，細分割が終了（所定の条件を満たす）かどうか判断される（ステップ１１２）。そして，あるポリゴンについて細分割が終了した場合は，ステップ１０３に戻り次のポリゴンが選択される。一方，ステップ１１２で，細分割が終了しないと判断された場合は，細分割後のサブポリゴンが特異点を有するかどうか判断する（ステップ１１３）。そして，サブポリゴンが特異点を有する場合は，ステップ１１１に戻りその特異点を有するサブポリゴンについて１回細分割が行われる（ステップ１１１）。一方，ステップ１１３で，サブポリゴンが特異点を有さないと判断された場合，ステップ１０６のマイクロコードによる細分割化が行われる。
【００５０】
ステップ１０６のマイクロコードによる細分割化が行われた後は，全てのポリゴンについて.細分割処理が終わったかどうか判断される（ステップ１０７）。そして，全てのポリゴンについて.細分割処理が終わっていない場合は，ステップ１０３に戻り，残りのポリゴンが順次選択され（ステップ１０３），細分割処理が行われる。一方，ステップ１０７で，全てのポリゴンについて.細分割処理が終わったと判断された場合，細分割曲面を描画し終えたこととなる。
【００５１】
[コンピュータ]
本発明は，上記した本発明の細分割曲面描画用装置を具備したコンピュータをも提供できる。図２は，本発明の細分割曲面描画用装置を具備したコンピュータのブロック図である。図２に示されるように，本発明の細分割曲面描画用装置を具備したコンピュータ100は，ＣＰＵ101，メモリ102，Ｉ／Ｏ（インプットアウトプット）103，グラフィクスデバイス104及びディスプレイ105を具備する。そして，ＣＰＵ101，メモリ102，Ｉ／Ｏ103，グラフィクスデバイス104，及びディスプレイ105は，バス106に接続され，相互にデータ転送を行うことができるようにされている。外部の入出力装置とは，たとえば，Ｉ／Ｏなどのインターフェイスを介して接続される。そして，メモリ102は，作業領域や一時的に情報を記憶するメモリとともに，メインメモリを有する記憶部として機能する。
【００５２】
[プログラム]
本発明は，コンピュータを上記した本発明の細分割曲面描画用装置として機能させるためのプログラムや，そのようなプログラムを格納した情報記録媒体をも提供できる。
【００５３】
そのようなプログラムとして，コンピュータを，各ポリゴンの法線ベクトルを得る法線ベクトル取得手段と，前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと，視線ベクトルとを含む情報を用いて，各ポリゴンの分割回数（分割深さ）を決定する分割深さ決定手段と，前記分割深さ決定手段が決定した分割回数に応じて各ポリゴンを分割するポリゴン分割手段と，して機能させるためのプログラムがあげられる。
【００５４】
[ゲーム機]
本発明は，上記した本発明の細分割曲面描画用装置，またはプログラムを具備したゲーム機も提供できる。
【００５５】
[ゲーム機の構成]  図３は，本発明のある実施形態（ゲーム機）のブロック図である。このブロック図で表される実施形態は，特に携帯用，家庭用又は業務用のゲーム機として好適に利用されうる。そこで，以下では，ゲーム機として説明する。なお，同図に示されるゲーム機は、少なくとも処理部200を含めばよく（又は処理部200と記憶部270、又は処理部200と記憶部270と情報記憶媒体280を含めばよく），それ以外のブロック（例えば操作部260，表示部290，音出力部292，携帯型情報記憶装置294，通信部296）については，任意の構成要素とすることができる。
【００５６】
処理部２００は，システム全体の制御，システム内の各ブロックへの命令の指示，ゲーム処理，画像処理，音処理などの各種の処理を行うものである。処理部２００の機能は，各種プロセッサ（ＣＰＵ，ＤＳＰ等），又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや，所与のプログラム（ゲームプログラム）により実現できる。
【００５７】
操作部２６０は，プレーヤが操作データを入力するためのものである。操作部２６０は，の機能は，例えば，レバー，ボタン，外枠，及びハードウェアを備えたコントローラにより実現できる。なお，特に携帯用ゲーム機の場合は，操作部２６０は，ゲーム機本体と一体として形成されても良い。コントローラからの処理情報は，シリアルインターフェースやバスを介してメインプロセッサなどに伝えられる。
【００５８】
記憶部２７０は，処理部２００や通信部２９６などのワーク領域となるものである。また，プログラムや各種テーブルなどを格納しても良い。記憶部２７０は，例えば，メインメモリ２７２，フレームバッファ２７４，及びテクスチャ記憶部２７６を含んでもよく，そのほか各種テーブルなどを記憶しても良い。記憶部２７０の機能は，ＲＯＭやＲＡＭなどのハードウェアにより実現できる。 ＲＡＭとして，ＶＲＡＭ，ＤＲＡＭ又はＳＲＡＭなどがあげられ，用途に応じて適宜選択すればよい。フレームバッファ２７４を構成するＶＲＡＭなどは，各種プロセッサの作業領域として用いられる。
【００５９】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）２８０は，プログラムやデータなどの情報を格納するものである。情報記憶媒体２８０は，いわゆるゲームカセットなどとして販売されうる。そして，情報記憶媒体２８０の機能は，光ディスク（ＣＤ，ＤＶＤ），光磁気ディスク（ＭＯ），磁気ディスク，ハードディスク，磁気テープ，又はメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部２００は，この情報記憶媒体２８０に格納される情報に基づいて種々の処理を行う。情報記憶媒体２８０には，本発明（本実施形態）の手段（特に処理部２００に含まれるブロック）を実行するための情報（プログラム又はプログラム及びデータ）が格納される。なお，上記記憶部にプログラムやデータなどの情報を格納した場合は，情報記憶媒体２８０は必ずしも必要ない。情報記憶媒体２８０に格納される情報の一部又は全部は，例えば，システムへの電源投入時等に記憶部２７０に転送されることになる。また，情報記憶媒体２８０に記憶される情報として，所定の処理を行うためのプログラムコード，画像データ，音データ，表示物の形状データ，テーブルデータ，リストデータ，本発明の処理を指示するための情報，その指示に従って処理を行うための情報等の少なくとも２つを含むものがあげられる。
【００６０】
表示部２９０は，本実施形態により生成された画像を出力するものであり，その機能は，ＣＲＴ（ブラウン管），ＬＣＤ（液晶），ＯＥＬ（有機電界発光素子），ＰＤＰ（プラズマディスプレイパネル）又はＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００６１】
音出力部２９２は，音を出力するものである。音出力部２９２の機能は，スピーカなどのハードウェアにより実現できる。音出力は，例えばバスを介してメインプロセッサなどと接続されたサウンドプロセッサにより，音処理が施され，スピーカなどの音出力部から出力される。
【００６２】
携帯型情報記憶装置２９４は，プレーヤの個人データやセーブデータなどが記憶されるものである。この携帯型情報記憶装置２９４としては，メモリカードや携帯型ゲーム装置などがあげられる。携帯型情報記憶装置２９４の機能は，メモリカード，フラッシュメモリ，ハードディスク，ＵＳＢメモリなど公知の記憶手段により達成できる。
【００６３】
通信部２９６は，外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行う任意のものである。通信部２９６の機能は，各種プロセッサ，又は通信用ＡＳＩＣなどのハードウェアや，プログラムなどにより実現できる。
【００６４】
ゲーム機を実行するためのプログラム又はデータは，ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部２９６を介して情報記憶媒体２８０に配信するようにしてもよい。
【００６５】
処理部２００は，ゲーム処理部２２０，画像処理部２３０，及び音処理部２５０を含むものがあげられる。具体的には，メインプロセッサ，コプロセッサ，ジオメトリプロセッサ，描画プロセッサ，データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され，信号の授受が可能とされる。また，圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
【００６６】
ここでゲーム処理部２２０は，コイン（代価）の受け付け処理，各種モードの設定処理，ゲームの進行処理，選択画面の設定処理，オブジェクトの位置や回転角度（Ｘ，Ｙ又はＺ軸回り回転角度）を求める処理，オブジェクトを動作させる処理（モーション処理），視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理，マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理，ヒットチェック処理，ゲーム結果（成果，成績）を演算する処理，複数のプレーヤが共通のゲーム空間でプレイするための処理，又はゲームオーバー処理などの種々のゲーム処理を，操作部２６０からの操作データや，携帯型情報記憶装置２９４からの個人データ，保存データや，ゲームプログラムなどに基づいて行う。
【００６７】
画像処理部２３０は，ゲーム処理部２２０からの指示等にしたがって，各種の画像処理を行うものである。また，音処理部２５０は，ゲーム処理部２２０からの指示等にしたがって，各種の音処理を行う。
【００６８】
ゲーム処理部２２０，画像処理部２３０，音処理部２５０の機能は，その全てをハードウェアにより実現してもよいし，その全てをプログラムにより実現してもよい。又は，ハードウェアとプログラムの両方により実現してもよい。画像処理部２３０は，ジオメトリ演算部２３２（３次元座標演算部），描画部２４０（レンダリング部）を含むものがあげられる。
【００６９】
ジオメトリ演算部２３２は，座標変換，クリッピング処理，透視変換，又は光源計算などの種々のジオメトリ演算（３次元座標演算）を行う。そして，ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標，頂点テクスチャ座標，又は輝度データ等）は，例えば，記憶部２７０のメインメモリ２７２に格納されて，保存される。
【００７０】
描画部２４０は，ジオメトリ演算後（透視変換後）のオブジェクトデータと，テクスチャ記憶部２７６に記憶されるテクスチャなどに基づいて，オブジェクトをフレームバッファ２７４に描画する。
【００７１】
描画部２４０は，例えば，テクスチャマッピング部２４２，シェーディング処理部２４４を含むものがあげられる。具体的には，描画プロセッサにより実装できる。描画プロセッサは，テクスチャ記憶部，各種テーブル，フレームバッファ，ＶＲＡＭなどとバスなどを介して接続され，更にディスプレイと接続される。
【００７２】
テクスチャマッピング部２４２は，環境テクスチャをテクスチャ記憶部２７６から読み出し，読み出された環境テクスチャを，オブジェクトに対してマッピングする。
【００７３】
シェーディング処理部２４４は，オブジェクトに対するシェーディング処理を行う。例えば，ジオメトリ処理部２３２が光源計算を行い，シェーディング処理用の光源の情報や，照明モデルや，オブジェクトの各頂点の法線ベクトルなどに基づいて，オブジェクトの各頂点の輝度（ＲＧＢ）を求める。シェーディング処理部２４４は，この各頂点の輝度に基づいて，プリミティブ面（ポリゴン，曲面）の各ドットの輝度を例えば，ホンシェーディングや，グーローシェーディングなどにより求める。
【００７４】
ジオメトリ演算部２３２は，法線ベクトル処理部２３４を含むものがあげられる。法線ベクトル処理部２３４は，オブジェクトの各頂点の法線ベクトル（広義にはオブジェクトの面の法線ベクトル）を，ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。本発明のゲーム機は，本発明の細分割曲面描画用装置を具備するので，滑らかな曲面などを効率的に描画できる。
【００７５】
[ゲーム機の基本動作]   システムの電源がＯＮになると，情報記憶媒体２８０に格納される情報の一部又は全部は，例えば，記憶部２７０に転送される。そして，ゲーム処理用のプログラムが，例えばメインメモリ２７２に格納され，様々なデータが，テクスチャ記憶部２７６や，図示しないテーブルなどに格納される。
【００７６】
操作部２６０からの操作情報は，例えば，図示しないシリアルインターフェイスやバスを介して，処理部２００へ伝えられ，音処理や，様々な画像処理が行われる。音処理部２５０により処理された音情報は，バスを介して音出力部２９２へ伝えられ，音として放出される。また，メモリカードなどの携帯型情報記憶装置１９４に記憶されたセーブ情報なども，図示しないシリアルインターフェイスやバスを介して，処理部２００へ伝えられ所定のデータが記憶部１７０から読み出される。
【００７７】
画像処理部２３０が，ゲーム処理部２２０からの指示等にしたがって，各種の画像処理を行う。具体的には，ジオメトリ演算部２３２が，座標変換，クリッピング処理，透視変換，又は光源計算などの種々のジオメトリ演算（３次元座標演算）を行う。そして，ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標，頂点テクスチャ座標，又は輝度データ等）は，例えば，記憶部２７０のメインメモリ２７２に格納されて，保存される。次に，描画部２４０が，ジオメトリ演算後（透視変換後）のオブジェクトデータと，テクスチャ記憶部２７６に記憶されるテクスチャなどとに基づいて，オブジェクトをフレームバッファ２７４に描画する。
【００７８】
フレームバッファ２７４に格納された情報は，バスを介して表示部２９０へ伝えられ，描画されることとなる。このようにして，コンピュータグラフィックを有するゲーム機として機能する。
【００７９】
[携帯電話]
本発明は，上記した本発明の細分割曲面描画用装置，またはプログラムを具備した携帯電話も提供できる。
【００８０】
[携帯電話機の構成]  図４は，本発明のある実施形態（コンピュータグラフィック機能つき携帯電話機）のブロック図である。このブロック図で表される実施形態は，特に３次元コンピュータグラフィック機能つき携帯電話機，特にゲーム機能付携帯電話や，ナビゲーション機能付形態電話として好適に利用されうる。
【００８１】
図４に示されるように，この携帯電話は，制御部３０１と、制御部３０１のためのプログラムや画像データなどが格納され，制御部や通信部などのワーク領域となるメモリ部３０２と、無線通信を行うための無線通信機能部３０３と、静止画や動画を撮影してデジタル信号に変換するＣＣＤカメラなどの任意要素である撮像部３０４と、画像や文字を表示するためのＬＣＤなどの表示部３０５と、テンキーや各種機能キーなどを含む操作部３０６と、音声通話のためのマイクなどの音声入力部３０７と、レシーバやスピーカなど音を出力するための音声出力部３０８と、当該携帯電話端末を動作させるための電池３０９と、電池３０９を安定化し各機能部へ分配する電源部３１０を含む。
【００８２】
制御部３０１は，携帯電話システム全体の制御，システム内の各ブロックへの命令の指示，ゲーム処理，画像処理，音処理などの各種の処理を行うものである。制御部３０１の機能は，各種プロセッサ（ＣＰＵ，ＤＳＰ等），又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや，所与のプログラム（ゲームプログラム）により実現できる。
【００８３】
より具体的には，制御部は，図示しない画像処理部を具備し，画像処理部は，ジオメトリ演算回路などのジオメトリ演算部と，描画部（レンダラー）とを具備する。さらに，テクスチャ生成回路，照光処理回路，又は表示回路などを具備してもよい。更には，先に説明したコンピュータやゲーム機における描画処理回路を適宜具備すればよい。
【００８４】
本発明の携帯電話は，本発明の細分割曲面描画用装置を具備する。
【００８５】
[携帯電話機の動作例]  まず，音声による通信動作について説明する。例えば音声入力部３０７に入力された音声は，インターフェイスによりデジタル情報に変換され，制御部３０１によって，所定の処理が施され，無線通信機能部３０３から無線信号として出力される。また，相手の音情報を受信する場合は，無線通信機能部３０３が無線信号を受信し，所定の変換処理が施された後，制御部３０１の制御を受けて，音声出力部３０８から出力される。
【００８６】
次に，画像を処理するための動作や処理は，基本的には先に説明したコンピュータやゲーム機における動作や処理と同様である。操作部３０４から，図示しないインターフェイスやバスを介して処理情報が入力されると，例えば，制御部３０１中の画像処理部の指令に基づき，ジオメトリプロセッサなどが，ＲＡＭなどの作業領域，各種テーブルなどを適宜利用し，ジオメトリ演算を行う。さらに,制御部３０１のレンダラーは，制御部３０１中の画像処理部の指令に基づき，レンダリング処理を行う。カリング処理やクリッピング処理，アンチエイリアス処理などが適宜施された画像情報は，描画プロセッサにより所定の描画処理を施され，フレームバッファに記憶され，表示部に画像として表示される。このようにして，３次元コンピュータグラフィックスが表示される。
【００８７】
本発明の携帯電話は，本発明の細分割曲面描画用装置を具備するので，滑らかな曲面などを効率的に描画できる。
【００８８】
[カーナビゲーションシステム]
本発明は，上記した本発明の細分割曲面描画用装置，またはプログラムを具備したカーナビゲーションシステムも提供できる。
【００８９】
[カーナビの構成]  図５は，本発明のある実施形態（ナビゲーションシステム）のブロック図である。このブロック図で表される実施形態は，特に３次元コンピュータグラフィック機能つきカーナビゲーションとして好適に利用されうる。図５に示されるように，このナビゲーションシステムは，ＧＰＳ部４０１と，任意要素としての自律測位部４０２と，地図記憶部４０３と，制御部４０４と，表示部４０５と，任意要素としてのマップマッチング部６とを含むものがあげられる。
【００９０】
ＧＰＳ部４０１は，ＧＰＳ受信機を備え，複数のＧＰＳ衛星からの電波を同時に受信して車両の測位データを得るＧＰＳ部である。ＧＰＳ部４０１は，ＧＰＳ受信機において受信したデータから車両の絶対位置を得るものであるが，この測位データには車両の位置情報の他に車両の進行方向情報，仰角情報が含まれている。
【００９１】
自律測位部４０２は，自律型センサを備え，自律型センサの出力データから車両の移動距離，移動方位を算出する自律測位部である。自律型センサとしては，車輪の回転数に応じた信号を検出する車輪側センサ，車両の加速度を検出する加速度センサ，車両の角速度を検出するジャイロセンサなどが含まれる。この例では，ジャイロセンサとして，さらに車両のピッチ動作方向における姿勢角度（以下「ピッチ角」と称する）も検出できる３次元ジャイロセンサが使用されており，したがって，自律測位部４０２から出力される測位データには車両のピッチ角が含まれている。
【００９２】
地図記憶部４０３は，２次元地図情報，３次元道路情報，及び３次元建物情報を有するデジタル地図データが記憶された地図記憶部である。地図記憶部３を構成する記憶媒体として，ＣＤ−ＲＯＭ，ハードディスクがあげられる。地図データは，データ量が大きいと読み込み時間を要するため，好ましくは複数のブロックに分割されて記憶される。また，道路情報とは，交差点や屈曲点などの主要な地点（ノード）を示す情報を有したものであってもよく，ノード情報はその地点における座標データなどを備え，道路は各ノードを結ぶ直線（リンク）として近似されてもよい。このシステムでの３次元道路情報とは，ノード情報が３次元の座標データを備えていることを意味している。
【００９３】
制御部４０４は，ＧＰＳ部４０１または自律測位部４０２から得られた車両の位置情報に基づいて，地図記憶部４０３から車両の位置が該当する所定領域の地図データを読み出すなど所定の制御を行うためのものである。
【００９４】
表示部４０５は，測位制御部４０４により読み出された地図データを表示するためのものである。
【００９５】
マップマッチング部４０６は，車両の測位データおよび地図データの３次元道路情報を基に，車両の位置を道路上に補正するためのものである。
【００９６】
本発明のカーナビは，細分割曲面描画用装置，またはプログラムを具備する。
【００９７】
[カーナビの動作例]   ＧＰＳ部４０１が，複数のＧＰＳ衛星からの電波を同時に受信し車両の測位データを得る。自律測位部４０２は，自律型センサの出力データから車両の移動距離，移動方位を算出する。制御部４０４は，ＧＰＳ部４０１または自律測位部４０２から得られたデータに所定の処理を施して車両の位置情報を得る。そして，車両の位置情報に基づいて，地図記憶部４０３から車両の位置に関連する所定領域の地図データを読み出す。また，図示しない操作部からの操作情報を受けて表示モードを変え，表示モードに応じた地図データを読み出す。また，制御部４０４は，位置情報に基づいて，所定の描画処理を行い建物の立体画像，地図の立体画像，車の立体画像などを表示する。さらに，Ｚ値に基づいて，カリング処理などを行う。表示部４０５が，制御部４０４により読み出された地図データを表示する。
【００９８】
本発明のカーナビは，細分割曲面描画用装置，またはプログラムを具備し，細分割曲面を描画する際に分割深さを変化させる処理を行うので，迅速かつ効果的に道路など滑らかな曲面を描画できる。
【００９９】
[スロットマシーン]
本発明は，上記した本発明の細分割曲面描画用装置，またはプログラムを具備したスロットマシーンも提供できる。
【０１００】
図５は、パチスロ機の主制御回路を示すブロック図である。図５に示されるとおり、主制御回路５６１はマイクロコンピュータ（以下、「マイコン」という。）５６３を主な構成要素とし、これに乱数サンブリングのための回路を加えて構成されている。マイコン５６３は、予め設定されたプログラムに従って制御動作を行うメインＣＰＵ（中央演算処理装置）５６４と、プログラム（画像演出プログラムなどを含む）や各種のテーブルデータなどを格納しているＲＯＭ５６５およびバックアップ機能付き制御ＲＡＭ（以下、単にＲＡＭと称する）５６６とを含んで構成されている。
【０１０１】
メインＣＰＵ５６４には、基準クロックパルスを発生するクロックパルス発生回路５６７および分周器５６８と、一定範囲の乱数を発生する乱数発生器５６９および発生した乱数の１つを特定するサンプリング回路５７０とが接続されている。さらに、メインＣＰＵ５６４には、後述する周辺装置（アクチュエータ）との間で信号を授受するＩ／Ｏポート５７１が接続されている。
【０１０２】
ここで、Ｒ０Ｍ５６５は、入賞確率テーブル、図柄テーブル、入賞シンボル組合せテーブル、シーケンスプログラム、告知演出テーブルおよび演出画像プログラムを格納するように記憶部が区分され、さらに、スタートレバーを操作（スタート操作）する毎に行われる乱数サンプリングの判定に用いられる確率抽選テーブル、停止ボタンの操作に応じてリールの停止態様を決定するための停止テーブル等が格納されている。
【０１０３】
マイコン５６３からの制御信号により動作が制御される主要なアクチュエータとしては、各リール５，６，７を回転駆動するステッピングモータ５４５Ｌ、５４５Ｃ、５４５Ｒ、各種ランプ（賭数表示ランプ５１９〜５２１、スタートランプ５２９、ＷＩＮランプ５３０、インサートランプ５３２）、各種表示部（クレジット表示ランプ５２３、遊技状態表示ランプ５２４〜５２７、ボーナスカウント表示ランプ５１８、配当枚数表示ランプ５２２）、およびメダルを収納するホッパー５７２がある。これらはそれぞれモータ駆動回路５７３、各ランプ駆動回路５７４、各表示部駆動回路５７５およびホッパー駆動回路５７６によって駆動される。これら駆動回路５７３〜５７６は、マイコン５６３のＩ／Ｏポート７１を介してメインＣＰＵ５６４に接続されている。
【０１０４】
また、マイコン５６３が制御信号を生成するために必要な入力信号を発生する主な入力信号発生手段としては、メダル投入口から投入されたメダルを検出する投入メダルセンサ５３１Ｓ、スタートレバーの操作を検出するスタートスイッチ５２８Ｓ、前述したＢＥＴスイッチ５３３、およびクレジットメダル精算スイッチ５３４がある。さらに、フォトセンサからの出力パルス信号を受けて各リール５０５，５０６，５０７の回転位置を検出するリール位置検出回路５７７がある。なお、フォトセンサは各リール５０５〜５０７の駆動機構に含まれており、同図では図示されていない。
【０１０５】
さらに、上記の入力信号発生手段としては、停止ボタン５３５〜５３７が押されたときに対応するリールを停止させる信号を発生するリール停止信号回路５７８と、ホッパー５７２から払い出されるメダル数を計数するメダル検出部５７２Ｓと、図示しない払出完了信号発生回路とがある。
【０１０６】
また、Ｉ／Ｏポート７１には副制御回路５８１が接続されている。図６は，パチスロ機の副制御回路を示すブロック図である。
【０１０７】
副制御回路５８１は、主制御回路５６１からの制御指令（コマンド）に基づいて表示装置５５０の表示制御およびスピーカ５８２Ｌ，５８２Ｒからの音の出力制御を実行する。この副制御回路５８１は、好ましくは、主制御回路５６１を構成する基板とは別の基板上に構成され、サブマイクロコンピュータ５８３を主たる構成要素とし、表示装置５５０の表示制御手段としての画像制御回路５９１、スピーカ５８２Ｌ，５８２Ｒからの出力音を制御する音源ＩＣ５８８、増幅器としてのパワーアンプ５８９で構成されている。
【０１０８】
サブマイクロコンピュータ５８３は、主制御回路５６１から送信された制御指令に従って制御動作を行うサブＣＰＵ５８４と、記憶手段としてのプログラムＲＯＭ５８５およびワークＲＡＭ５８６とを含む。この例では、副制御回路５８１は、クロックパルス発生回路、分周器、乱数発生器及びサンプリング回路を備えていないが、サブＣＰＵ５８４の動作プログラム上で乱数サンプリングを実行するように構成されている。
【０１０９】
プログラムＲＯＭ５８５は、サブＣＰＵ５８４で実行する制御プログラムを格納する。ワークＲＡＭ５８６は、上記制御プログラムをサブＣＰＵ５８４で実行するときの一時記憶手段として構成される。
【０１１０】
画像制御回路５９１は、画像制御ＣＰＵ５９２、画像制御プログラムＲＯＭ５９４、画像制御ワークＲＡＭ５９３、画像制御ＩＣ５９８、画像ＲＯＭ５９６、ビデオＲＡＭ５９７で構成される。
【０１１１】
ここで、画像制御ＣＰＵ５９２は、サブマイクロコンピュータ５８３で設定されたパラメータに基づき、画像制御プログラムＲＯＭ５９４内に格納する画像制御プログラムに沿って表示装置５５０での表示内容を決定する。画像制御プログラムＲＯＭ５９４は、表示装置５５０での表示に関する画像制御プログラムや各種選択テーブルを格納する。画像制御ワークＲＡＭ５９３は、上記画像制御プログラムを画像制御ＣＰＵ５９２で実行するときの一時記憶手段として構成される。画像制御ＩＣ５９８は、画像制御ＣＰＵ５９２で決定された表示内容に応じた画像を形成し、表示装置５５０に出力する。画像ＲＯＭ５９６は、画像を形成するためのドットデータを格納する。ビデオＲＡＭ５９７は、画像制御ＩＣ５９８で画像を形成するときの一時記憶手段として構成される。
【０１１２】
なお、主制御回路５６１からの出力はＩＮポート５８７を介してサブＣＰＵ５８４に入力され、サブＣＰＵ５８４からの出力はＯＵＴポート５９０およびＩＮポート５９５を介して画像制御ＣＰＵ５９２に入力される。
【０１１３】
次に、本実施の形態のパチスロ機の動作について説明する。遊技者がメダル投入口５３１にメダルを投入すると、投入メダルセンサ５３１Ｓから検知信号がメインＣＰＵ５６４へ送られ、メインＣＰＵ５６４はメダルの投入を検知し、賭数に応じた賭数表示ランプ５１９〜５２１が点灯する。遊技者がスタートレバーを押すと、スタートスイッチ５２８Ｓから操作信号がメインＣＰＵ５６４へ伝えられ、メインＣＰＵ５６４はスタートレバーの操作を検知し、Ｉ／Ｏポート５７１を介してモータ駆動部５７３へスタート信号を送り、リール５０５，５０６，５０７を一斉に回転させる。
【０１１４】
また、スタートスイッチ５２８Ｓがスタートレバーの操作を検出すると、メインＣＰＵ５６４は乱数発生器５６９より発生された乱数値をサンプリング回路５７０により取り込み、取り込んだ乱数値とＲＯＭ５６５に格納された判定値とを比較して、当選、落選を決定する内部抽選を行う。その抽選結果はＲＡＭ５６６の所定領域に格納されるが、内部当選すると、当選の種類に応じたフラグがＲＡＭ５６６の所定領域に立てられる。ここで、当該ゲームで立てられたフラグは当該ゲームが終了すると消滅するのが基本であるが、内部当選確率が低いＢＢやＲＢに限って、立てられたフラグが対応する図柄が揃って入賞するまで複数ゲームにわたって持ち越される場合がある。
【０１１５】
さらに、スタートスイッチ５２８Ｓがスタートレバーの操作を検出すると、メインＣＰＵ５６４はＲＯＭ５６５から複数ゲームにわたって表示装置５５０に演出画像を表示するための演出指示コマンドを読み出し、これをＩ／Ｏポート５７１を介して副制御回路８１に送出する。なお、メインＣＰＵ５６４は副制御回路５８１に送出する演出指示コマンドをＲＡＭ５６６の所定領域に保持しておく。
【０１１６】
副制御回路５８１はメインＣＰＵ５６４から入力された演出指示コマンドに従った演出内容の画像を表示装置５５０に表示し、内部当選の契機となるスタートレバーの有効な操作毎に入力される演出指示コマンドに従って画像を表示させる。
【０１１７】
次にメインＣＰＵ５６４は、ＲＡＭ５６６上の内部抽選結果をチェックして、内部抽選の判定結果に対応する停止テーブルを選択決定し、それぞれに対応する停止テーブルをＲＯＭ５６５からＲＡＭ５６６上に読み出す。
【０１１８】
その後、遊技者が、停止ボタン５３５，５３６，５３７の何れかを操作すると、リール停止信号回路５７８から操作信号がメインＣＰＵ５６４へ伝えられ、メインＣＰＵ５６４はリール位置検出回路５７７からの各リール５０５，５０６，５０７の位置とＲＡＭ５６６上の停止テーブルに基づいてリール５０５，５０６，５０７を停止させる制御を行う。
【０１１９】
これにより、内部抽選で当選していない限り、遊技者はどのようなタイミングで停止ボタン５３５，５３６，５３７を操作しても、当選図柄が揃わないように各リール５０５，５０６，５０７の停止制御が行われる。一方、内部抽選で当選し且つ、内部当選結果に対応する図柄が揃えられる停止テーブルが選択されている場合、遊技者の停止ボタン５３５，５３６，５３７の操作タイミング如何によっては内部当選に対応した図柄が揃う停止制御が存在することになる。
【０１２０】
すなわち、内部抽選結果が当選の場合には、メインＣＰＵ５６４は引き込み停止制御に基づくストップ信号をモータ駆動部５７３へ送り、操作された停止ボタン５３５，５３６，５３７に対応するリール５０５，５０６，５０７を停止させるが、このとき、このリール５０５，５０６，５０７上の入賞に係るシンボルが有効な停止ライン上で停止するようなリール停止制御を行う。
【０１２１】
内部抽選結果が外れの場合、メインＣＰＵ５６４は、停止ボタン５３５，５３６，５３７の操作にて、入賞に係るシンボルが有効な停止ライン上で止まらないように、操作された停止ボタン５３５，５３６，５３７に対応するリール５０５，５０６，５０７を停止させる。
【実施例１】
【０１２２】
１．マイクロコードによる細分割の実装
マイクロコードのよる細分割では，特異点を持たない四角形ポリゴンを細分割の対称とする。細分割は以下の手順で実行される。
【０１２３】
[テーブルの読み込み]
(i)分割の最大深さに応じて各頂点の係数をテーブルの形式でハードウエアに読み込む。例えば，分割深さが２であれば，２５(５頂点X５頂点)X１６（１つの四角形ポリゴンに対応する面を定義するために必要な頂点数）のテーブルを読み込む。また，色，テクスチャ座標などの座標以外の属性のために２５X４（四角形ポリゴンの頂点数）のテーブルを読み込む。
【０１２４】
(ii)自分自身の分割深さと周りのポリゴンの分割深さの情報を利用して，周囲のポリゴンとの境界に隙間ができないように，図７に示したように三角形ポリゴンを生成する。図７は，隣接する面の細分割深さに応じた面の分割法を示す図である。図７（ａ）は，細分割深さ０，図７（ｂ）は細分割深さ１周囲深さ０，図７（ｃ）は細分割深さ１周囲深さ１，図７（ｄ）は細分さ深さ２の区分け，図７（ｅ）は細分割深さ２周囲深さ０，図７（ｆ）は細分割深さ２周囲深さ１，図７（ｇ）は細分割深さ２周囲深さ２の分割の様子を示す。
例えば，自分自身の細分割深さが０の場合には，周囲の深さに依存せずに２つの三角形ポリゴンを生成する。自分自身の深さが１の場合は，分割の形式をそのポリゴンの上下，左右独立に決定する。例えば，左側のポリゴンの細分割深さが０であれば左の辺の中央に頂点を生成しないように分割する。深さが1以上であれば，中央の頂点を生成して分割する。自分自身の分割深さが2以上も中央部分を除いて，同様に上下，左右独立に分割の形式を決定し隙間ができないように分割を実行する。色，テクスチャ座標などの座標以外の属性はそれら用のテーブルを用いて同様に三角形ポリゴンに分割する。
【０１２５】
(iii)  上記(ii)で生成した三角形ポリゴンを付随する属性とともにレンダリングパイプラインに投入する。
【０１２６】
[局所的な細分割]
局所的な細分割を行うために以下のクラスを用意する。
(i)Faceクラス(ポリゴンを表す)
(1)メンバ変数
1．Faceを構成するVertex(頂点)へのポインタ
2．Faceに隣接するFace(面)へのポインタ
3．面点(face point)を保持するための変数x,y,z,w
4．Faceが境界に位置している(Faceが他のFaceに囲まれていない)ことを示すフラグ
5．細分割深さ
(2)メンバ関数
1．コンストラクタ
2．ディストラクタ
【０１２７】
(ii)Edgeクラス(稜線を表す）
(1)メンバ変数
1．Edgeを構成する2つのVertex(頂点)へのポインタ
2．稜線点（Edge point）を保持するための変数x,y,z,w
3．Edgeが境界に位置している（Edgeの片側のFace(面)がない）ことを示すフラグ
(2)メンバ関数
1．コンストラクタ
2．ディストラクタ
【０１２８】
(iii)Vertexクラス(頂点を表す)
1．頂点の座標を保持するための変数
2．頂点位置の更新の変位を保持するための変数x,y,z,w
3．Vertexを頂点として持つFace(面)へのポインタ
4．VertexにEdgeを介して連結したVertex(頂点)へのポインタ
5．Vertexが境界に位置している（Vertexに連結した稜線間に１つでも面が存在しない）ことを示すフラグ
(2)メンバ関数
1．コンストラクタ
2．ディストラクタ
【０１２９】
細分割すべきFaceに対して，Faceの属性として，そのFaceに含まれるVertex，及び辺を共有するFaceと，を抽出することができる。Vertexからはその周りのFace, 及びそれに接続するEdge，Edgeを介して接続しているVertexを抽出することができる。これらの情報を用いることにより，細分割に必要なFace周りの情報を抽出できることとなる。
【０１３０】
局所的な細分割は以下の手順で実行される。
(i)形状データから局所的に細分割すべきポリゴンと，細分割に必要となる周囲のポリゴンのデータをFace, Edge, 及びVertexクラスを用いて抽出する。
【０１３１】
(ii)Face, Edge, Vertexを用いて，図８に示したように，細分割の対象としているFaceとその周辺のみを細分割する。図８は，オリジナルの形状，局所的な細分割に必要とされる面，及び細分割を１回施した図である。
【０１３２】
(iii)局所的な細分割により得られたレンダリングすべき四角形ポリゴンで特異点の頂点を持たないポリゴンは，その細分割深さを1減じてハードウエアでレンダリングする。それ以外のポリゴンは必要に応じて再度局所的に細分割を行う。
【０１３３】
なお，位相（Face,Edge,Vertexの隣接関係）を含めて細分割に必要な情報が抽出できれば，数値テーブルを参照して細分割を実行すればよい。
【産業上の利用可能性】
【０１３４】
本発明の細分割曲面描画用装置は，曲面などを効果的に描画できるので，コンピュータグラフィックスの回路，チップなどとしてコンピュータグラフィックスの分野で好適に利用されうる。また，コンピュータグラフィックスを用いた，ゲーム機，携帯電話，カーナビゲーションシステム，スロットマシーンなどの各産業分野にて好適に利用されうる。
【図面の簡単な説明】
【０１３５】
【図１】図１は，本発明の細分割曲面描画用装置に基づく細分割曲面を描画する動作例を説明するためのフローチャートである。
【図２】図２は，本発明のコンピュータのブロック図である。
【図３】図３は，本発明のある実施形態（ゲーム機）のブロック図である。
【図４】図４は，本発明のある実施形態（コンピュータグラフィック機能つき携帯電話機）のブロック図である。
【図５】図５は、パチスロ機の主制御回路を示すブロック図である。
【図６】図６は，パチスロ機の副制御回路を示すブロック図である。
【図７】図７は，隣接する面の細分割深さに応じた面の分割法を示す図である。図７（ａ）は，細分割深さ０，図７（ｂ）は細分割深さ１周囲深さ０，図７（ｃ）は細分割深さ１周囲深さ１，図７（ｄ）は細分さ深さ２の区分け，図７（ｅ）は細分割深さ２周囲深さ０，図７（ｆ）は細分割深さ２周囲深さ１，図７（ｇ）は細分割深さ２周囲深さ２の分割の様子を示す。
【図８】図８は，オリジナルの形状，局所的な細分割に必要とされる面，及び細分割を１回施した図である。
【符号の説明】
【０１３６】
100コンピュータ
101ＣＰＵ
102メモリ
103Ｉ／Ｏ
104グラフィクスデバイス
105ディスプレイ
106  バス
【図１】
2007213522.tif 000003
【図２】
2007213522.tif 000004
【図３】
2007213522.tif 000005
【図４】
2007213522.tif 000006
【図５】
2007213522.tif 000007
【図６】
2007213522.tif 000008
【図７】
2007213522.tif 000009
【図８】
2007213522.tif 000010