JP5007991B2 - 細分割曲面描画用レンダリング装置 - Google Patents

細分割曲面描画用レンダリング装置 Download PDF

Info

Publication number
JP5007991B2
JP5007991B2 JP2006035772A JP2006035772A JP5007991B2 JP 5007991 B2 JP5007991 B2 JP 5007991B2 JP 2006035772 A JP2006035772 A JP 2006035772A JP 2006035772 A JP2006035772 A JP 2006035772A JP 5007991 B2 JP5007991 B2 JP 5007991B2
Authority
JP
Japan
Prior art keywords
polygon
division depth
subdivision
determining
normal vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006035772A
Other languages
English (en)
Other versions
JP2007213522A (ja
Inventor
憲二郎 三浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shizuoka University NUC
Digital Media Professionals Inc
Original Assignee
Shizuoka University NUC
Digital Media Professionals Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shizuoka University NUC, Digital Media Professionals Inc filed Critical Shizuoka University NUC
Priority to JP2006035772A priority Critical patent/JP5007991B2/ja
Publication of JP2007213522A publication Critical patent/JP2007213522A/ja
Application granted granted Critical
Publication of JP5007991B2 publication Critical patent/JP5007991B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は,細分割曲面描画用レンダリング装置などに関する。より詳しく説明すると,本発明は,視点などに応じて分割深さを変化させることで効率的に細分割曲面を描画するレンダリング装置に関する。
コンピュータグラフィックスにおいて,曲面を表現するために,多角形メッシュを初期メッシュとし,これを再帰的に分割して曲面を定義する方法が知られている。この方法により得られた曲面は,細分割曲面(Subdivision Surface)とよばれる。
細分割曲面は,そのスケーラビリティや計算の安定性に優れている。また,細分割曲面は,容易にコード化でき,しかも任意位相を持つ複雑な形状を表現できる。このため,細分割曲面は,グラフィカルモデリングやアニメーションなどに有用であり,既にいくつかの商用システムに組み込まれている(例えば,下記非特許文献1,2を参照)。
従来,細分割曲面を描画するために,全体を同じ回数(以下,分割回数を「分割深さ」とよぶ。),細分割し,その後頂点を極限点に移動させて,多角形メッシュを描画することが行われていた。しかしながら,従来の細分割曲面法では,メッシュに含まれるすべての多角形を同様に細分割する必要があった。したがって,従来の細分割曲面法では,描画に不必要な視点から見えないメッシュの裏側の多角形をも分割するので,処理に時間がかかるという問題があった。
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).
本発明は,効率的に細分割曲面を描画するためのコンピュータグラフィックス用のレンダリング装置などを提供することを目的とする。
本発明は,上記の課題を解決するためになされたものである。そして,従来の細分割曲面法が全てのメッシュ(ポリゴン)について一律に分割深さを設定するのに対し,本発明は,基本的には,分割深さに重み付けをすることで,効率的に細分割曲面を描画できるという知見に基づくものである。
たとえば,ユーザから見えない部分は,滑らかな曲面を表現する必要がないので,細分割を施す必要がない。また,ユーザの視線と垂直に近い面は,細分割してもユーザからの見え方はあまり変化しないので,細分割を施す回数は少なくてよい。このように,細分割をすることが望ましい回数は,一律ではなく,たとえばユーザの視点に基づいて変化するものである。
そこで,本発明は,基本的には,ポリゴンのうち,ユーザの視点に応じて必要な部位を多く細分割を施すことものであり,これにより細分割の度合いを変化できるので,従来に比べてリアルな曲面を従来に比べて短時間に描画できるというものである。そして,そのように効率的に描画するために,好ましくは各ポリゴンの視線ベクトルと法線ベクトルを用いて,視線に応じて分割深さを部位ごとに変えるというものである。
さらに上記のようにして分割深さを変化させた場合,分割深さの深い多角形と浅い多角形が隣接する事態が生じうる。そのような場合であっても,よりリアルな曲面を表現するために,それらの多角形の境界を滑らかに接続させることが望ましい。つなぎ目をなだらかにするためには,境界線上で,位置が連続していること,及び法線ベクトルが連続しているようにすることが望ましい。このためには,2つの隣接するポリゴン間の境界線を一致させるとともに,境界線上での法線ベクトルを一致させればよい。
本発明の好ましい態様では,隣接するポリゴンの細分割深さに応じて,境界線の周りのポリゴンを細分割することにより,隣接するポリゴンの境界線を一致(位置と位相:位相は1辺をいくつに分割するのかというもの)させる。これにより,なだらかな曲面を実現できることとなる。
本発明によれば,分割深さに重み付けをすることで,効率的に細分割曲面を描画できるレンダリング装置を提供できる。
また,本発明によれば,隣接するポリゴンの境界線を一致させることで,分割深さを変化させても,滑らかな曲面を描画できるレンダリング装置を提供できる。
[本発明の細分割曲面描画装置]
以下,本発明の細分割曲面描画用レンダリング装置(以下,「本発明の細分割曲面描画装置ともいう。」)について説明する。本発明の第1の側面にかかる細分割曲面描画装置は,コンピュータグラフィックスのレンダリングに用いられる回路などの装置であって,各ポリゴンの法線ベクトルを得る法線ベクトル取得手段と,前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと視線ベクトルとを含む情報を用いて,各ポリゴンの分割回数を決定する分割深さ決定手段と,前記分割深さ決定手段が決定した分割深に応じて各ポリゴンを分割するポリゴン分割手段と,を具備するコンピュータグラフィックスのための細分割曲面描画用レンダリング装置である。
そして,基本的には,法線ベクトル取得手段が各ポリゴンの法線ベクトルを得て,分割深さ決定手段が,前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと視線ベクトルとを含む情報を用いて,各ポリゴンの分割深さを決定し,ポリゴン分割手段が前記分割深に応じて各ポリゴンを分割する。このようにして細分割が行われる。この際,分割深さを変化できるので,効率的に細分割を行うことができることとなる。
[法線ベクトル取得手段]
法線ベクトル手段は,各ポリゴンの法線ベクトルを得るための手段である。法線ベクトルは,たとえば,クライアントからの入力により決定されても良い。この場合,クライアントから入力された法線ベクトル情報は,メモリなどの記憶装置に一時的に格納され,適宜読み出されることにより取得可能な状態となる。法線ベクトルは,本発明の細分割曲面描画装置において定義されても良いし,公知の方法により算出してもよい。法線ベクトルを算出するためには,たとえば,ポリゴンの各頂点における法線ベクトルをメモリなどに格納しておき,加算回路によってそれらのベクトルの和を求め,除算回路によりその和をポリゴンの角数(n角形ならn)で除算する。このようにすれば,ポリゴンの各頂点における法線ベクトルの平均値を求めることができ,その値をポリゴンの法線ベクトルとすればよい。
また,コンピュータを,各ポリゴンに対して,メモリに格納された各ポリゴンの各頂点における法線ベクトルを読み出すための手段と,前記法線ベクトルを読み出す手段が読み出した各頂点における法線ベクトルの和を求め,その和をベクトルの角数で除算するための手段として機能させる制御プログラムをメインメモリなどに格納したものを用いても良い。この場合,CPUは,メインメモリから上記制御プログラムを読み出して,上記制御プログラムの指令にしたがって,メモリに格納された各ポリゴンの各頂点における法線ベクトルを読み出し,メモリなどの記憶装置を作業領域などとして用いて,演算処理を行うことにより,法線ベクトルを算出する。
また,法線ベクトルは,コンピュータグラフィック装置の中の細分割曲面描画装置より上流の装置において求められても良い。
[分割深さ決定手段]
分割深さ決定手段は,前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと視線ベクトルとを含む情報を用いて,各ポリゴンの分割回数を決定するための手段である。視線ベクトルは,クライアントからの入力され,メモリに一時的に記憶されたものを用いてもよいし,適宜定義してもよい。また,視点を固定し,前記法線ベクトルを用いて公知の方法により算出してもよい。
分割深さを決定する方法として,たとえば以下のものがあげられる。すなわち,分割深さ決定手段は,法線ベクトルと視線ベクトルとのなす角を求め,法線ベクトルと視線ベクトルとのなす角と分割深さとの関係を記憶した記憶装置から,求めた法線ベクトルと視線ベクトルとのなす角に応じた分割深さを読み出すものである。
具体的には,ポリゴンの中心(重心)から視点への単位ベクトル(視線ベクトル)を“v_0”とし,ポリゴンの単位法線ベクトル(各頂点に割り当てられた法線の平均を単位化したベクトルであり,単に「法線ベクトル」ともよぶ。)を“v_1”とする。これらの単位ベクトルは,上記のとおりクライアントから入力されメモリなどに格納されたものを読み出しても良いし,適宜定義しても良いし,上記したと同様の制御プログラムに基づいた計算により算出しても良い。
そして,公知の内積回路や,ベクトルの内積を求めるための制御プログラムを用いて,視線ベクトルと法線ベクトルのなす角度や内積を求める。
また,上記の視線ベクトルと法線ベクトルのなす角度に応じた分割深さは予めメモリに格納されており,もとめられた視線ベクトルと法線ベクトルのなす角度の情報を用いて,メモリから分割深さに関する情報を読み出す。このような動作は,たとえば,メインメモリに格納された制御プログラムの指令により,CPUがメモリに一時的に記憶された視線ベクトルと法線ベクトルのなす角度に関する情報を用いて,メモリに格納される視線ベクトルと法線ベクトルのなす角度に応じた分割深さに関するテーブルから視線ベクトルと法線ベクトルのなす角度に応じた分割深さに関する情報を読み出して,演算処理を行うことにより,視線ベクトルと法線ベクトルのなす角度に応じた分割深さを決定するようにすればよい。
視線ベクトルと法線ベクトルのなす角度に応じた分割深さとしては,たとえば,以下のものがあげられる。
なす角 分割深さ
0度-45度 0
45度-70度 1
70度-95度 2
95度以上 0(裏面に対応)
この視線ベクトルと法線ベクトルのなす角度に応じた分割深さは,適宜修正可能とされることが好ましい。なお,上記はなす角におうじて分割深さが記憶される例を示したが,なす角そのものではなくなす角に関連した値と関連して分割深さが記憶されてもよい。また,視線ベクトルと法線ベクトルの内積値と関連した値と関連して分割深さが記憶されてもよい。
以下,上記とは別の分割深さの決定例を説明する。
a.分割深さの上記とは別の決定例は,1つのポリゴンに細分割を施して曲面を得て,得られる曲面の視点ベクトルと法線ベクトルとのなす角度の最大値,及び最小値を用いて分割深さを決定するものである。そして,最大値と最小値の差が所定の値以上異なる場合,面は大きく湾曲しているので深く分割する。一方,最大値と最小値の差が所定の値以下の場合は,平面に近いので浅く分割する。これにより,より少ないデータ量でより高品質にレンダリングを行うことができる。湾曲している面を細かく分割することのメリットは,面の位置情報をより正確にレンダリングに反映できることである。
この分割深さ決定例に用いられる分割深さ決定手段は,1つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値及び最小値を求める手段と;前記最大値と最小値との差を求める手段と;1つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値と最小値の差の値(範囲)に応じて分割深さを記憶するメモリと;前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と;前記判断結果を出力する手段とを具備するものがあげられる。この分割深さ決定手段は,コンピュータを上記の各手段として機能させるプログラムとメモリやCPUなどのハードウエアとの協働により実装されてもよいし,四則演算回路などのハードウエア資源により実装されてもよい。
b. 分割深さの上記とは別の決定例は,1つのポリゴンに細分割を施して曲面を得て,得られる曲面の曲率の最大値,及び最小値に応じて細分割深さを変更するものである。この決定例によれば,平面に近いポリゴンは浅く,曲率の大きい(曲率が一定以上の)ポリゴンは深く細分割できるので,より少ないデータ量でより高品質にレンダリングを行うことができる。湾曲している面を細かく分割することのメリットは,面の位置情報をより正確にレンダリングに反映できることである。
この分割深さ決定例に用いられる分割深さ決定手段は,1つのポリゴンに細分割を施してできる曲面(ポリゴンの集合)の曲率の最大値及び最小値を求める手段と;前記最大値と最小値との差を求める手段と;1つのポリゴンに細分割を施してできる曲面(ポリゴンの集合)の曲率の最大値及び最小値の差の値(範囲)に応じて分割深さを記憶するメモリと;前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と;前記判断結果を出力する手段とを具備するものがあげられる。なお,この分割深さ決定手段は,コンピュータを上記の各手段として機能させるプログラムとメモリやCPUなどのハードウエアとの協働により実装されてもよいし,四則演算回路などのハードウエア資源により実装されてもよい。
c. 分割深さの上記とは別の決定例は,隣接するポリゴン間の角度(法線ベクトルのなす角)を計算し,角度が所定値以上の場合は,得られる曲面が大きく湾曲しているので深く細分割する。一方,角度が所定値以下の場合は,得られる曲面が平面に近いので,浅く分割する。このような決定方法を採用することで,少ないデータ量で高品質にレンダリングを行うことができる。湾曲している面を細かく分割することのメリットは,面の位置情報をより正確にレンダリングに反映できることである。
この分割深さ決定例に用いられる分割深さ決定手段は,1つのポリゴンに細分割を施してできるポリゴン間の角度(法線ベクトルのなす角)を求める手段と;1つのポリゴンに細分割を施してできるポリゴン間の角度に応じて分割深さを記憶するメモリと;前記求められたポリゴン間の角度がどの分割深さに対応するか判断する手段と;前記判断結果を出力する手段とを具備するものがあげられる。なお,この分割深さ決定手段は,コンピュータを上記の各手段として機能させるプログラムとメモリやCPUなどのハードウエアとの協働により実装されてもよいし,四則演算回路などのハードウエア資源により実装されてもよい。
d. 分割深さの上記とは別の決定例は,シルエットとなるポリゴン(隣接するポリゴン間で面の表,裏が変化するポリゴン)は深く細分割し,そうでないポリゴンは浅く細分割するものである。このように細分割の度合いを変化させることで,少ないデータ量で高品質にレンダリングを行うことができる。シルエットラインは物体と背景との境界線である。したがって,粗いレンダリングを行えば,折れ線としてシルエットラインがレンダリングされ,画質を劣化させる。この決定方法によれば,そのような事態を効果的に防止できるので,画質が劣化する事態を効果的に防止できる。
この分割深さ決定例に用いられる分割深さ決定手段は,1つのポリゴンに細分割を施してできるポリゴンがシルエットとなるポリゴンかどうか判断する手段と;シルエットとなるポリゴンかどうかに応じて分割深さを記憶するメモリと;分割深さに対応するか判断する手段と;前記判断結果を出力する手段とを具備するものがあげられる。なお,この分割深さ決定手段は,コンピュータを上記の各手段として機能させるプログラムとメモリやCPUなどのハードウエアとの協働により実装されてもよいし,四則演算回路などのハードウエア資源により実装されてもよい。
なお,本発明における分割深さの決定方法は,これまで説明した1種又は2種以上の決定方法を適宜組み合わせたものや,上記の決定方法などと別の決定方法とを組み合わせたものであっても良い。
さらに上記のようにして分割深さを変化させた場合,分割深さの深い多角形と浅い多角形が隣接する事態が生じうる。そのような場合であっても,よりリアルな曲面を表現するために,それらの多角形の境界を滑らかに接続させることが望ましい。つなぎ目をなだらかにするためには,境界線上で,位置が連続していること,及び法線ベクトルが連続しているようにすることが望ましい。このためには,2つの隣接するポリゴン間の境界線を一致させるとともに,境界線上での法線ベクトルを一致させればよい。より具体的には,あるポリゴンを細分割することにより生ずる細分割後の隣接するポリゴンの細分割深さに応じて,境界線の周りのポリゴンを細分割することにより,隣接するポリゴンの境界線の位置と位相(位相は1辺をいくつに分割するのかというもの)を一致させる手段を具備すればよい。以下では,そのような観点に基づいてポリゴン分割を行うポリゴン分割手段の例について説明する。
[ポリゴン分割手段]
ポリゴン分割手段は,前記分割深さ決定手段が決定した分割回数に応じて各ポリゴンを分割するための手段である。ポリゴン分割手段として,たとえば,上記の非特許文献や特許文献における細分割曲面を描画するための装置における公知の細分割方法や,細分割方法のための装置,プログラムを適宜利用することができる。
ポリゴンの分割の方法は,例えば,分割対象であるポリゴンの細分割深さと周囲のポリゴンの細分割深さに応じて決定すればよい。隣接するポリゴン間では,2つのポリゴンの分割深さの浅い方の分割深さに依存して分割の位相を決定すればよい。そして,位相を決定した後は,数値テーブルを参照して分割後の頂点位置を計算すればよい。
以下,分割深さに応じてポリゴンを分割する例について説明する。この例では,頂点の価数に応じて以下のように処理を行う。
(i)ポリゴンが四角形で,そのポリゴンのすべての頂点の価数(1つの頂点に接続された稜線の数)が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)特異点である頂点の数が高々1つ(特異点とは,価数が4以外である頂点)であり,(iii)周囲のポリゴンがすべて四角形であることが望ましい。そこで,上記の条件を満足しない場合には局所的に細分割することを必要な回数(好ましくは2回までの細分割)によって,これらの条件を満足させればよい。
図1は,本発明の細分割曲面描画用装置に基づく細分割曲面を描画する動作例を説明するためのフローチャートである。まず,初期メッシュが入力される(ステップ101)。すると,たとえば,初期メッシュを構成する各ポリゴンの法線ベクトル及び視点ベクトルが計算され,所定の分割深さが読み出されるなどして,書くポリゴンの分割深さが決定される(ステップ102)。
次に,この分割深さを用いて各ポリゴンが細分割されることとなる。まず,細分割されるポリゴンが順次選択される(ステップ103)。そして,選択されたポリゴンが,四角形かどうか判断される(ステップ104)。ポリゴンが四角形である場合,そのポリゴンが特異点を有するかどうか判断される(ステップ105)。そして,そのポリゴンが特異点を持たない場合は,たとえば,回路として実装されるマイクロコードにより細分割が行われる(ステップ106)。
一方,ステップ104でポリゴンが四角形以外の形状であると判断された場合,ステップ105でポリゴンが特異点を持つと判断された場合は,たとえば,プログラムからの指令に基づいてポリゴンが1回細分割される(ステップ111)。ステップ111で1回細分割された各ポリゴンについて,細分割が終了(所定の条件を満たす)かどうか判断される(ステップ112)。そして,あるポリゴンについて細分割が終了した場合は,ステップ103に戻り次のポリゴンが選択される。一方,ステップ112で,細分割が終了しないと判断された場合は,細分割後のサブポリゴンが特異点を有するかどうか判断する(ステップ113)。そして,サブポリゴンが特異点を有する場合は,ステップ111に戻りその特異点を有するサブポリゴンについて1回細分割が行われる(ステップ111)。一方,ステップ113で,サブポリゴンが特異点を有さないと判断された場合,ステップ106のマイクロコードによる細分割化が行われる。
ステップ106のマイクロコードによる細分割化が行われた後は,全てのポリゴンについて.細分割処理が終わったかどうか判断される(ステップ107)。そして,全てのポリゴンについて.細分割処理が終わっていない場合は,ステップ103に戻り,残りのポリゴンが順次選択され(ステップ103),細分割処理が行われる。一方,ステップ107で,全てのポリゴンについて.細分割処理が終わったと判断された場合,細分割曲面を描画し終えたこととなる。
[コンピュータ]
本発明は,上記した本発明の細分割曲面描画用装置を具備したコンピュータをも提供できる。図2は,本発明の細分割曲面描画用装置を具備したコンピュータのブロック図である。図2に示されるように,本発明の細分割曲面描画用装置を具備したコンピュータ100は,CPU101,メモリ102,I/O(インプットアウトプット)103,グラフィクスデバイス104及びディスプレイ105を具備する。そして,CPU101,メモリ102,I/O103,グラフィクスデバイス104,及びディスプレイ105は,バス106に接続され,相互にデータ転送を行うことができるようにされている。外部の入出力装置とは,たとえば,I/Oなどのインターフェイスを介して接続される。そして,メモリ102は,作業領域や一時的に情報を記憶するメモリとともに,メインメモリを有する記憶部として機能する。
[プログラム]
本発明は,コンピュータを上記した本発明の細分割曲面描画用装置として機能させるためのプログラムや,そのようなプログラムを格納した情報記録媒体をも提供できる。
そのようなプログラムとして,コンピュータを,各ポリゴンの法線ベクトルを得る法線ベクトル取得手段と,前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと,視線ベクトルとを含む情報を用いて,各ポリゴンの分割回数(分割深さ)を決定する分割深さ決定手段と,前記分割深さ決定手段が決定した分割回数に応じて各ポリゴンを分割するポリゴン分割手段と,して機能させるためのプログラムがあげられる。
[ゲーム機]
本発明は,上記した本発明の細分割曲面描画用装置,またはプログラムを具備したゲーム機も提供できる。
[ゲーム機の構成] 図3は,本発明のある実施形態(ゲーム機)のブロック図である。このブロック図で表される実施形態は,特に携帯用,家庭用又は業務用のゲーム機として好適に利用されうる。そこで,以下では,ゲーム機として説明する。なお,同図に示されるゲーム機は、少なくとも処理部200を含めばよく(又は処理部200と記憶部270、又は処理部200と記憶部270と情報記憶媒体280を含めばよく),それ以外のブロック(例えば操作部260,表示部290,音出力部292,携帯型情報記憶装置294,通信部296)については,任意の構成要素とすることができる。
処理部200は,システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。処理部200の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
操作部260は,プレーヤが操作データを入力するためのものである。操作部260は,の機能は,例えば,レバー,ボタン,外枠,及びハードウェアを備えたコントローラにより実現できる。なお,特に携帯用ゲーム機の場合は,操作部260は,ゲーム機本体と一体として形成されても良い。コントローラからの処理情報は,シリアルインターフェースやバスを介してメインプロセッサなどに伝えられる。
記憶部270は,処理部200や通信部296などのワーク領域となるものである。また,プログラムや各種テーブルなどを格納しても良い。記憶部270は,例えば,メインメモリ272,フレームバッファ274,及びテクスチャ記憶部276を含んでもよく,そのほか各種テーブルなどを記憶しても良い。記憶部270の機能は,ROMやRAMなどのハードウェアにより実現できる。 RAMとして,VRAM,DRAM又はSRAMなどがあげられ,用途に応じて適宜選択すればよい。フレームバッファ274を構成するVRAMなどは,各種プロセッサの作業領域として用いられる。
情報記憶媒体(コンピュータにより使用可能な記憶媒体)280は,プログラムやデータなどの情報を格納するものである。情報記憶媒体280は,いわゆるゲームカセットなどとして販売されうる。そして,情報記憶媒体280の機能は,光ディスク(CD,DVD),光磁気ディスク(MO),磁気ディスク,ハードディスク,磁気テープ,又はメモリ(ROM)などのハードウェアにより実現できる。処理部200は,この情報記憶媒体280に格納される情報に基づいて種々の処理を行う。情報記憶媒体280には,本発明(本実施形態)の手段(特に処理部200に含まれるブロック)を実行するための情報(プログラム又はプログラム及びデータ)が格納される。なお,上記記憶部にプログラムやデータなどの情報を格納した場合は,情報記憶媒体280は必ずしも必要ない。情報記憶媒体280に格納される情報の一部又は全部は,例えば,システムへの電源投入時等に記憶部270に転送されることになる。また,情報記憶媒体280に記憶される情報として,所定の処理を行うためのプログラムコード,画像データ,音データ,表示物の形状データ,テーブルデータ,リストデータ,本発明の処理を指示するための情報,その指示に従って処理を行うための情報等の少なくとも2つを含むものがあげられる。
表示部290は,本実施形態により生成された画像を出力するものであり,その機能は,CRT(ブラウン管),LCD(液晶),OEL(有機電界発光素子),PDP(プラズマディスプレイパネル)又はHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
音出力部292は,音を出力するものである。音出力部292の機能は,スピーカなどのハードウェアにより実現できる。音出力は,例えばバスを介してメインプロセッサなどと接続されたサウンドプロセッサにより,音処理が施され,スピーカなどの音出力部から出力される。
携帯型情報記憶装置294は,プレーヤの個人データやセーブデータなどが記憶されるものである。この携帯型情報記憶装置294としては,メモリカードや携帯型ゲーム装置などがあげられる。携帯型情報記憶装置294の機能は,メモリカード,フラッシュメモリ,ハードディスク,USBメモリなど公知の記憶手段により達成できる。
通信部296は,外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行う任意のものである。通信部296の機能は,各種プロセッサ,又は通信用ASICなどのハードウェアや,プログラムなどにより実現できる。
ゲーム機を実行するためのプログラム又はデータは,ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部296を介して情報記憶媒体280に配信するようにしてもよい。
処理部200は,ゲーム処理部220,画像処理部230,及び音処理部250を含むものがあげられる。具体的には,メインプロセッサ,コプロセッサ,ジオメトリプロセッサ,描画プロセッサ,データ処理プロセッサ,四則演算回路又は汎用演算回路などがあげられる。これらは適宜バスなどにより連結され,信号の授受が可能とされる。また,圧縮された情報を伸張するためのデータ伸張プロセッサを備えても良い。
ここでゲーム処理部220は,コイン(代価)の受け付け処理,各種モードの設定処理,ゲームの進行処理,選択画面の設定処理,オブジェクトの位置や回転角度(X,Y又はZ軸回り回転角度)を求める処理,オブジェクトを動作させる処理(モーション処理),視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理,マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理,ヒットチェック処理,ゲーム結果(成果,成績)を演算する処理,複数のプレーヤが共通のゲーム空間でプレイするための処理,又はゲームオーバー処理などの種々のゲーム処理を,操作部260からの操作データや,携帯型情報記憶装置294からの個人データ,保存データや,ゲームプログラムなどに基づいて行う。
画像処理部230は,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行うものである。また,音処理部250は,ゲーム処理部220からの指示等にしたがって,各種の音処理を行う。
ゲーム処理部220,画像処理部230,音処理部250の機能は,その全てをハードウェアにより実現してもよいし,その全てをプログラムにより実現してもよい。又は,ハードウェアとプログラムの両方により実現してもよい。画像処理部230は,ジオメトリ演算部232(3次元座標演算部),描画部240(レンダリング部)を含むものがあげられる。
ジオメトリ演算部232は,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。
描画部240は,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどに基づいて,オブジェクトをフレームバッファ274に描画する。
描画部240は,例えば,テクスチャマッピング部242,シェーディング処理部244を含むものがあげられる。具体的には,描画プロセッサにより実装できる。描画プロセッサは,テクスチャ記憶部,各種テーブル,フレームバッファ,VRAMなどとバスなどを介して接続され,更にディスプレイと接続される。
テクスチャマッピング部242は,環境テクスチャをテクスチャ記憶部276から読み出し,読み出された環境テクスチャを,オブジェクトに対してマッピングする。
シェーディング処理部244は,オブジェクトに対するシェーディング処理を行う。例えば,ジオメトリ処理部232が光源計算を行い,シェーディング処理用の光源の情報や,照明モデルや,オブジェクトの各頂点の法線ベクトルなどに基づいて,オブジェクトの各頂点の輝度(RGB)を求める。シェーディング処理部244は,この各頂点の輝度に基づいて,プリミティブ面(ポリゴン,曲面)の各ドットの輝度を例えば,ホンシェーディングや,グーローシェーディングなどにより求める。
ジオメトリ演算部232は,法線ベクトル処理部234を含むものがあげられる。法線ベクトル処理部234は,オブジェクトの各頂点の法線ベクトル(広義にはオブジェクトの面の法線ベクトル)を,ローカル座標系からワールド座標系への回転マトリクスで回転させる処理を行ってもよい。本発明のゲーム機は,本発明の細分割曲面描画用装置を具備するので,滑らかな曲面などを効率的に描画できる。
[ゲーム機の基本動作] システムの電源がONになると,情報記憶媒体280に格納される情報の一部又は全部は,例えば,記憶部270に転送される。そして,ゲーム処理用のプログラムが,例えばメインメモリ272に格納され,様々なデータが,テクスチャ記憶部276や,図示しないテーブルなどに格納される。
操作部260からの操作情報は,例えば,図示しないシリアルインターフェイスやバスを介して,処理部200へ伝えられ,音処理や,様々な画像処理が行われる。音処理部250により処理された音情報は,バスを介して音出力部292へ伝えられ,音として放出される。また,メモリカードなどの携帯型情報記憶装置194に記憶されたセーブ情報なども,図示しないシリアルインターフェイスやバスを介して,処理部200へ伝えられ所定のデータが記憶部170から読み出される。
画像処理部230が,ゲーム処理部220からの指示等にしたがって,各種の画像処理を行う。具体的には,ジオメトリ演算部232が,座標変換,クリッピング処理,透視変換,又は光源計算などの種々のジオメトリ演算(3次元座標演算)を行う。そして,ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標,頂点テクスチャ座標,又は輝度データ等)は,例えば,記憶部270のメインメモリ272に格納されて,保存される。次に,描画部240が,ジオメトリ演算後(透視変換後)のオブジェクトデータと,テクスチャ記憶部276に記憶されるテクスチャなどとに基づいて,オブジェクトをフレームバッファ274に描画する。
フレームバッファ274に格納された情報は,バスを介して表示部290へ伝えられ,描画されることとなる。このようにして,コンピュータグラフィックを有するゲーム機として機能する。
[携帯電話]
本発明は,上記した本発明の細分割曲面描画用装置,またはプログラムを具備した携帯電話も提供できる。
[携帯電話機の構成] 図4は,本発明のある実施形態(コンピュータグラフィック機能つき携帯電話機)のブロック図である。このブロック図で表される実施形態は,特に3次元コンピュータグラフィック機能つき携帯電話機,特にゲーム機能付携帯電話や,ナビゲーション機能付形態電話として好適に利用されうる。
図4に示されるように,この携帯電話は,制御部301と、制御部301のためのプログラムや画像データなどが格納され,制御部や通信部などのワーク領域となるメモリ部302と、無線通信を行うための無線通信機能部303と、静止画や動画を撮影してデジタル信号に変換するCCDカメラなどの任意要素である撮像部304と、画像や文字を表示するためのLCDなどの表示部305と、テンキーや各種機能キーなどを含む操作部306と、音声通話のためのマイクなどの音声入力部307と、レシーバやスピーカなど音を出力するための音声出力部308と、当該携帯電話端末を動作させるための電池309と、電池309を安定化し各機能部へ分配する電源部310を含む。
制御部301は,携帯電話システム全体の制御,システム内の各ブロックへの命令の指示,ゲーム処理,画像処理,音処理などの各種の処理を行うものである。制御部301の機能は,各種プロセッサ(CPU,DSP等),又はASIC(ゲートアレイ等)などのハードウェアや,所与のプログラム(ゲームプログラム)により実現できる。
より具体的には,制御部は,図示しない画像処理部を具備し,画像処理部は,ジオメトリ演算回路などのジオメトリ演算部と,描画部(レンダラー)とを具備する。さらに,テクスチャ生成回路,照光処理回路,又は表示回路などを具備してもよい。更には,先に説明したコンピュータやゲーム機における描画処理回路を適宜具備すればよい。
本発明の携帯電話は,本発明の細分割曲面描画用装置を具備する。
[携帯電話機の動作例] まず,音声による通信動作について説明する。例えば音声入力部307に入力された音声は,インターフェイスによりデジタル情報に変換され,制御部301によって,所定の処理が施され,無線通信機能部303から無線信号として出力される。また,相手の音情報を受信する場合は,無線通信機能部303が無線信号を受信し,所定の変換処理が施された後,制御部301の制御を受けて,音声出力部308から出力される。
次に,画像を処理するための動作や処理は,基本的には先に説明したコンピュータやゲーム機における動作や処理と同様である。操作部304から,図示しないインターフェイスやバスを介して処理情報が入力されると,例えば,制御部301中の画像処理部の指令に基づき,ジオメトリプロセッサなどが,RAMなどの作業領域,各種テーブルなどを適宜利用し,ジオメトリ演算を行う。さらに,制御部301のレンダラーは,制御部301中の画像処理部の指令に基づき,レンダリング処理を行う。カリング処理やクリッピング処理,アンチエイリアス処理などが適宜施された画像情報は,描画プロセッサにより所定の描画処理を施され,フレームバッファに記憶され,表示部に画像として表示される。このようにして,3次元コンピュータグラフィックスが表示される。
本発明の携帯電話は,本発明の細分割曲面描画用装置を具備するので,滑らかな曲面などを効率的に描画できる。
[カーナビゲーションシステム]
本発明は,上記した本発明の細分割曲面描画用装置,またはプログラムを具備したカーナビゲーションシステムも提供できる。
[カーナビの構成] 図5は,本発明のある実施形態(ナビゲーションシステム)のブロック図である。このブロック図で表される実施形態は,特に3次元コンピュータグラフィック機能つきカーナビゲーションとして好適に利用されうる。図5に示されるように,このナビゲーションシステムは,GPS部401と,任意要素としての自律測位部402と,地図記憶部403と,制御部404と,表示部405と,任意要素としてのマップマッチング部6とを含むものがあげられる。
GPS部401は,GPS受信機を備え,複数のGPS衛星からの電波を同時に受信して車両の測位データを得るGPS部である。GPS部401は,GPS受信機において受信したデータから車両の絶対位置を得るものであるが,この測位データには車両の位置情報の他に車両の進行方向情報,仰角情報が含まれている。
自律測位部402は,自律型センサを備え,自律型センサの出力データから車両の移動距離,移動方位を算出する自律測位部である。自律型センサとしては,車輪の回転数に応じた信号を検出する車輪側センサ,車両の加速度を検出する加速度センサ,車両の角速度を検出するジャイロセンサなどが含まれる。この例では,ジャイロセンサとして,さらに車両のピッチ動作方向における姿勢角度(以下「ピッチ角」と称する)も検出できる3次元ジャイロセンサが使用されており,したがって,自律測位部402から出力される測位データには車両のピッチ角が含まれている。
地図記憶部403は,2次元地図情報,3次元道路情報,及び3次元建物情報を有するデジタル地図データが記憶された地図記憶部である。地図記憶部3を構成する記憶媒体として,CD−ROM,ハードディスクがあげられる。地図データは,データ量が大きいと読み込み時間を要するため,好ましくは複数のブロックに分割されて記憶される。また,道路情報とは,交差点や屈曲点などの主要な地点(ノード)を示す情報を有したものであってもよく,ノード情報はその地点における座標データなどを備え,道路は各ノードを結ぶ直線(リンク)として近似されてもよい。このシステムでの3次元道路情報とは,ノード情報が3次元の座標データを備えていることを意味している。
制御部404は,GPS部401または自律測位部402から得られた車両の位置情報に基づいて,地図記憶部403から車両の位置が該当する所定領域の地図データを読み出すなど所定の制御を行うためのものである。
表示部405は,測位制御部404により読み出された地図データを表示するためのものである。
マップマッチング部406は,車両の測位データおよび地図データの3次元道路情報を基に,車両の位置を道路上に補正するためのものである。
本発明のカーナビは,細分割曲面描画用装置,またはプログラムを具備する。
[カーナビの動作例] GPS部401が,複数のGPS衛星からの電波を同時に受信し車両の測位データを得る。自律測位部402は,自律型センサの出力データから車両の移動距離,移動方位を算出する。制御部404は,GPS部401または自律測位部402から得られたデータに所定の処理を施して車両の位置情報を得る。そして,車両の位置情報に基づいて,地図記憶部403から車両の位置に関連する所定領域の地図データを読み出す。また,図示しない操作部からの操作情報を受けて表示モードを変え,表示モードに応じた地図データを読み出す。また,制御部404は,位置情報に基づいて,所定の描画処理を行い建物の立体画像,地図の立体画像,車の立体画像などを表示する。さらに,Z値に基づいて,カリング処理などを行う。表示部405が,制御部404により読み出された地図データを表示する。
本発明のカーナビは,細分割曲面描画用装置,またはプログラムを具備し,細分割曲面を描画する際に分割深さを変化させる処理を行うので,迅速かつ効果的に道路など滑らかな曲面を描画できる。
[スロットマシーン]
本発明は,上記した本発明の細分割曲面描画用装置,またはプログラムを具備したスロットマシーンも提供できる。
図5は、パチスロ機の主制御回路を示すブロック図である。図5に示されるとおり、主制御回路561はマイクロコンピュータ(以下、「マイコン」という。)563を主な構成要素とし、これに乱数サンブリングのための回路を加えて構成されている。マイコン563は、予め設定されたプログラムに従って制御動作を行うメインCPU(中央演算処理装置)564と、プログラム(画像演出プログラムなどを含む)や各種のテーブルデータなどを格納しているROM565およびバックアップ機能付き制御RAM(以下、単にRAMと称する)566とを含んで構成されている。
メインCPU564には、基準クロックパルスを発生するクロックパルス発生回路567および分周器568と、一定範囲の乱数を発生する乱数発生器569および発生した乱数の1つを特定するサンプリング回路570とが接続されている。さらに、メインCPU564には、後述する周辺装置(アクチュエータ)との間で信号を授受するI/Oポート571が接続されている。
ここで、R0M565は、入賞確率テーブル、図柄テーブル、入賞シンボル組合せテーブル、シーケンスプログラム、告知演出テーブルおよび演出画像プログラムを格納するように記憶部が区分され、さらに、スタートレバーを操作(スタート操作)する毎に行われる乱数サンプリングの判定に用いられる確率抽選テーブル、停止ボタンの操作に応じてリールの停止態様を決定するための停止テーブル等が格納されている。
マイコン563からの制御信号により動作が制御される主要なアクチュエータとしては、各リール5,6,7を回転駆動するステッピングモータ545L、545C、545R、各種ランプ(賭数表示ランプ519〜521、スタートランプ529、WINランプ530、インサートランプ532)、各種表示部(クレジット表示ランプ523、遊技状態表示ランプ524〜527、ボーナスカウント表示ランプ518、配当枚数表示ランプ522)、およびメダルを収納するホッパー572がある。これらはそれぞれモータ駆動回路573、各ランプ駆動回路574、各表示部駆動回路575およびホッパー駆動回路576によって駆動される。これら駆動回路573〜576は、マイコン563のI/Oポート71を介してメインCPU564に接続されている。
また、マイコン563が制御信号を生成するために必要な入力信号を発生する主な入力信号発生手段としては、メダル投入口から投入されたメダルを検出する投入メダルセンサ531S、スタートレバーの操作を検出するスタートスイッチ528S、前述したBETスイッチ533、およびクレジットメダル精算スイッチ534がある。さらに、フォトセンサからの出力パルス信号を受けて各リール505,506,507の回転位置を検出するリール位置検出回路577がある。なお、フォトセンサは各リール505〜507の駆動機構に含まれており、同図では図示されていない。
さらに、上記の入力信号発生手段としては、停止ボタン535〜537が押されたときに対応するリールを停止させる信号を発生するリール停止信号回路578と、ホッパー572から払い出されるメダル数を計数するメダル検出部572Sと、図示しない払出完了信号発生回路とがある。
また、I/Oポート71には副制御回路581が接続されている。図6は,パチスロ機の副制御回路を示すブロック図である。
副制御回路581は、主制御回路561からの制御指令(コマンド)に基づいて表示装置550の表示制御およびスピーカ582L,582Rからの音の出力制御を実行する。この副制御回路581は、好ましくは、主制御回路561を構成する基板とは別の基板上に構成され、サブマイクロコンピュータ583を主たる構成要素とし、表示装置550の表示制御手段としての画像制御回路591、スピーカ582L,582Rからの出力音を制御する音源IC588、増幅器としてのパワーアンプ589で構成されている。
サブマイクロコンピュータ583は、主制御回路561から送信された制御指令に従って制御動作を行うサブCPU584と、記憶手段としてのプログラムROM585およびワークRAM586とを含む。この例では、副制御回路581は、クロックパルス発生回路、分周器、乱数発生器及びサンプリング回路を備えていないが、サブCPU584の動作プログラム上で乱数サンプリングを実行するように構成されている。
プログラムROM585は、サブCPU584で実行する制御プログラムを格納する。ワークRAM586は、上記制御プログラムをサブCPU584で実行するときの一時記憶手段として構成される。
画像制御回路591は、画像制御CPU592、画像制御プログラムROM594、画像制御ワークRAM593、画像制御IC598、画像ROM596、ビデオRAM597で構成される。
ここで、画像制御CPU592は、サブマイクロコンピュータ583で設定されたパラメータに基づき、画像制御プログラムROM594内に格納する画像制御プログラムに沿って表示装置550での表示内容を決定する。画像制御プログラムROM594は、表示装置550での表示に関する画像制御プログラムや各種選択テーブルを格納する。画像制御ワークRAM593は、上記画像制御プログラムを画像制御CPU592で実行するときの一時記憶手段として構成される。画像制御IC598は、画像制御CPU592で決定された表示内容に応じた画像を形成し、表示装置550に出力する。画像ROM596は、画像を形成するためのドットデータを格納する。ビデオRAM597は、画像制御IC598で画像を形成するときの一時記憶手段として構成される。
なお、主制御回路561からの出力はINポート587を介してサブCPU584に入力され、サブCPU584からの出力はOUTポート590およびINポート595を介して画像制御CPU592に入力される。
次に、本実施の形態のパチスロ機の動作について説明する。遊技者がメダル投入口531にメダルを投入すると、投入メダルセンサ531Sから検知信号がメインCPU564へ送られ、メインCPU564はメダルの投入を検知し、賭数に応じた賭数表示ランプ519〜521が点灯する。遊技者がスタートレバーを押すと、スタートスイッチ528Sから操作信号がメインCPU564へ伝えられ、メインCPU564はスタートレバーの操作を検知し、I/Oポート571を介してモータ駆動部573へスタート信号を送り、リール505,506,507を一斉に回転させる。
また、スタートスイッチ528Sがスタートレバーの操作を検出すると、メインCPU564は乱数発生器569より発生された乱数値をサンプリング回路570により取り込み、取り込んだ乱数値とROM565に格納された判定値とを比較して、当選、落選を決定する内部抽選を行う。その抽選結果はRAM566の所定領域に格納されるが、内部当選すると、当選の種類に応じたフラグがRAM566の所定領域に立てられる。ここで、当該ゲームで立てられたフラグは当該ゲームが終了すると消滅するのが基本であるが、内部当選確率が低いBBやRBに限って、立てられたフラグが対応する図柄が揃って入賞するまで複数ゲームにわたって持ち越される場合がある。
さらに、スタートスイッチ528Sがスタートレバーの操作を検出すると、メインCPU564はROM565から複数ゲームにわたって表示装置550に演出画像を表示するための演出指示コマンドを読み出し、これをI/Oポート571を介して副制御回路81に送出する。なお、メインCPU564は副制御回路581に送出する演出指示コマンドをRAM566の所定領域に保持しておく。
副制御回路581はメインCPU564から入力された演出指示コマンドに従った演出内容の画像を表示装置550に表示し、内部当選の契機となるスタートレバーの有効な操作毎に入力される演出指示コマンドに従って画像を表示させる。
次にメインCPU564は、RAM566上の内部抽選結果をチェックして、内部抽選の判定結果に対応する停止テーブルを選択決定し、それぞれに対応する停止テーブルをROM565からRAM566上に読み出す。
その後、遊技者が、停止ボタン535,536,537の何れかを操作すると、リール停止信号回路578から操作信号がメインCPU564へ伝えられ、メインCPU564はリール位置検出回路577からの各リール505,506,507の位置とRAM566上の停止テーブルに基づいてリール505,506,507を停止させる制御を行う。
これにより、内部抽選で当選していない限り、遊技者はどのようなタイミングで停止ボタン535,536,537を操作しても、当選図柄が揃わないように各リール505,506,507の停止制御が行われる。一方、内部抽選で当選し且つ、内部当選結果に対応する図柄が揃えられる停止テーブルが選択されている場合、遊技者の停止ボタン535,536,537の操作タイミング如何によっては内部当選に対応した図柄が揃う停止制御が存在することになる。
すなわち、内部抽選結果が当選の場合には、メインCPU564は引き込み停止制御に基づくストップ信号をモータ駆動部573へ送り、操作された停止ボタン535,536,537に対応するリール505,506,507を停止させるが、このとき、このリール505,506,507上の入賞に係るシンボルが有効な停止ライン上で停止するようなリール停止制御を行う。
内部抽選結果が外れの場合、メインCPU564は、停止ボタン535,536,537の操作にて、入賞に係るシンボルが有効な停止ライン上で止まらないように、操作された停止ボタン535,536,537に対応するリール505,506,507を停止させる。
1.マイクロコードによる細分割の実装
マイクロコードのよる細分割では,特異点を持たない四角形ポリゴンを細分割の対称とする。細分割は以下の手順で実行される。
[テーブルの読み込み]
(i)分割の最大深さに応じて各頂点の係数をテーブルの形式でハードウエアに読み込む。例えば,分割深さが2であれば,25(5頂点X5頂点)X16(1つの四角形ポリゴンに対応する面を定義するために必要な頂点数)のテーブルを読み込む。また,色,テクスチャ座標などの座標以外の属性のために25X4(四角形ポリゴンの頂点数)のテーブルを読み込む。
(ii)自分自身の分割深さと周りのポリゴンの分割深さの情報を利用して,周囲のポリゴンとの境界に隙間ができないように,図7に示したように三角形ポリゴンを生成する。図7は,隣接する面の細分割深さに応じた面の分割法を示す図である。図7(a)は,細分割深さ0,図7(b)は細分割深さ1周囲深さ0,図7(c)は細分割深さ1周囲深さ1,図7(d)は細分さ深さ2の区分け,図7(e)は細分割深さ2周囲深さ0,図7(f)は細分割深さ2周囲深さ1,図7(g)は細分割深さ2周囲深さ2の分割の様子を示す。
例えば,自分自身の細分割深さが0の場合には,周囲の深さに依存せずに2つの三角形ポリゴンを生成する。自分自身の深さが1の場合は,分割の形式をそのポリゴンの上下,左右独立に決定する。例えば,左側のポリゴンの細分割深さが0であれば左の辺の中央に頂点を生成しないように分割する。深さが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に連結した稜線間に1つでも面が存在しない)ことを示すフラグ
(2)メンバ関数
1.コンストラクタ
2.ディストラクタ
細分割すべきFaceに対して,Faceの属性として,そのFaceに含まれるVertex,及び辺を共有するFaceと,を抽出することができる。Vertexからはその周りのFace, 及びそれに接続するEdge,Edgeを介して接続しているVertexを抽出することができる。これらの情報を用いることにより,細分割に必要なFace周りの情報を抽出できることとなる。
局所的な細分割は以下の手順で実行される。
(i)形状データから局所的に細分割すべきポリゴンと,細分割に必要となる周囲のポリゴンのデータをFace, Edge, 及びVertexクラスを用いて抽出する。
(ii)Face, Edge, Vertexを用いて,図8に示したように,細分割の対象としているFaceとその周辺のみを細分割する。図8は,オリジナルの形状,局所的な細分割に必要とされる面,及び細分割を1回施した図である。
(iii)局所的な細分割により得られたレンダリングすべき四角形ポリゴンで特異点の頂点を持たないポリゴンは,その細分割深さを1減じてハードウエアでレンダリングする。それ以外のポリゴンは必要に応じて再度局所的に細分割を行う。
なお,位相(Face,Edge,Vertexの隣接関係)を含めて細分割に必要な情報が抽出できれば,数値テーブルを参照して細分割を実行すればよい。
本発明の細分割曲面描画用装置は,曲面などを効果的に描画できるので,コンピュータグラフィックスの回路,チップなどとしてコンピュータグラフィックスの分野で好適に利用されうる。また,コンピュータグラフィックスを用いた,ゲーム機,携帯電話,カーナビゲーションシステム,スロットマシーンなどの各産業分野にて好適に利用されうる。
図1は,本発明の細分割曲面描画用装置に基づく細分割曲面を描画する動作例を説明するためのフローチャートである。 図2は,本発明のコンピュータのブロック図である。 図3は,本発明のある実施形態(ゲーム機)のブロック図である。 図4は,本発明のある実施形態(コンピュータグラフィック機能つき携帯電話機)のブロック図である。 図5は、パチスロ機の主制御回路を示すブロック図である。 図6は,パチスロ機の副制御回路を示すブロック図である。 図7は,隣接する面の細分割深さに応じた面の分割法を示す図である。図7(a)は,細分割深さ0,図7(b)は細分割深さ1周囲深さ0,図7(c)は細分割深さ1周囲深さ1,図7(d)は細分さ深さ2の区分け,図7(e)は細分割深さ2周囲深さ0,図7(f)は細分割深さ2周囲深さ1,図7(g)は細分割深さ2周囲深さ2の分割の様子を示す。 図8は,オリジナルの形状,局所的な細分割に必要とされる面,及び細分割を1回施した図である。
符号の説明
100コンピュータ
101CPU
102メモリ
103I/O
104グラフィクスデバイス
105ディスプレイ
106 バス

Claims (9)

  1. 各ポリゴンの法線ベクトルを得る法線ベクトル取得手段と,
    前記法線ベクトル取得手段が取得した各ポリゴンの法線ベクトルと,視線ベクトルとを含む情報を用いて,前記各ポリゴンの分割深さを決定する分割深さ決定手段と,
    前記分割深さ決定手段が決定した分割深さに応じて各ポリゴンを分割するポリゴン分割手段と,
    を具備し,
    前記分割深さ決定手段は,
    法線ベクトルと視線ベクトルとのなす角を求め,法線ベクトルと視線ベクトルとのなす角と分割深さとの関係を記憶した記憶装置から,求めた法線ベクトルと視線ベクトルとのなす角に応じた分割深さを読み出すことにより分割深さを決定する手段を有し,
    前記ポリゴン分割手段は,
    あるポリゴンを細分割する際に,前記分割深さを決定する手段が決定した当該あるポリゴンの分割深さに応じて,隣接するポリゴンの境界線の位置と1辺をいくつに分割するかに関する位相を一致させるように,境界線の周りのポリゴンを細分割する手段を有し,
    前記分割深さ決定手段は,
    1つのポリゴンに細分割を施してできるポリゴンの集合である曲面の曲率の最大値及び最小値を求める手段と;
    前記最大値と最小値との差を求める手段と;
    前記1つのポリゴンに細分割を施してできる曲面の曲率の最大値及び最小値の差の値に応じて分割深さを記憶するメモリと;
    前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と;
    前記判断結果を出力する手段とを,さらに具備する,
    コンピュータグラフィックスのための細分割曲面描画用レンダリング装置。
  2. 前記分割深さ決定手段は,
    1つのポリゴンに細分割を施してできるポリゴンの視線ベクトルと法線ベクトルとのなす角度の最大値及び最小値を求める手段と;
    前記最大値と最小値との差を求める手段と;
    1つのポリゴンに細分割を施してできるポリゴンの視点ベクトルと法線ベクトルとのなす角度の最大値と最小値の差の値に応じて分割深さを記憶するメモリと;
    前記求められた最大値と最小値との差がどの分割深さに対応するか判断する手段と;
    前記判断結果を出力する手段とを,さらに具備する
    請求項1に記載の装置。
  3. 前記各ポリゴンは,四角形である請求項1に記載の装置。
  4. 前記分割深さ決定手段は,
    1つのポリゴンに細分割を施してできるポリゴン間の法線ベクトルのなす角を求める手段と;
    前記1つのポリゴンに細分割を施してできるポリゴン間の角度に応じて分割深さを記憶するメモリと;前記求められたポリゴン間の角度がどの分割深さに対応するか判断する手段と;
    前記判断結果を出力する手段とを具備する
    請求項1に記載の装置。
  5. 請求項1に記載の装置を具備するコンピュータ。
  6. 請求項1に記載の装置を具備するゲーム機。
  7. 請求項1に記載の装置を具備する携帯電話。
  8. 請求項1に記載の装置を具備するカーナビゲーションシステム。
  9. 請求項1に記載の装置を具備するスロットマシーン。
JP2006035772A 2006-02-13 2006-02-13 細分割曲面描画用レンダリング装置 Expired - Fee Related JP5007991B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006035772A JP5007991B2 (ja) 2006-02-13 2006-02-13 細分割曲面描画用レンダリング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006035772A JP5007991B2 (ja) 2006-02-13 2006-02-13 細分割曲面描画用レンダリング装置

Publications (2)

Publication Number Publication Date
JP2007213522A JP2007213522A (ja) 2007-08-23
JP5007991B2 true JP5007991B2 (ja) 2012-08-22

Family

ID=38491866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006035772A Expired - Fee Related JP5007991B2 (ja) 2006-02-13 2006-02-13 細分割曲面描画用レンダリング装置

Country Status (1)

Country Link
JP (1) JP5007991B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495602B2 (en) 2007-09-28 2013-07-23 Qualcomm Incorporated Shader compile system and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2697118B2 (ja) * 1989-04-20 1998-01-14 ダイキン工業株式会社 シェーディング表示方法およびその装置
JPH09147150A (ja) * 1995-11-21 1997-06-06 Matsushita Electric Ind Co Ltd 形状データの加工方法
US6462738B1 (en) * 1999-04-26 2002-10-08 Spatial Technology, Inc. Curved surface reconstruction
JP4303395B2 (ja) * 2000-04-07 2009-07-29 株式会社バンダイナムコゲームス ゲーム装置および情報記憶媒体

Also Published As

Publication number Publication date
JP2007213522A (ja) 2007-08-23

Similar Documents

Publication Publication Date Title
JP4177381B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
US20150279085A1 (en) Computer Graphics Method for Rendering Three Dimensional Scenes
EP2158948A2 (en) Image generation system, image generation method, and information storage medium
JP4941934B2 (ja) 画像生成装置および画像生成プログラム
JP2006285509A (ja) プログラム、情報記憶媒体及び画像生成システム
JP5997908B2 (ja) ゲームシステム及びプログラム
JP4717622B2 (ja) プログラム、情報記録媒体および画像生成システム
US20040186631A1 (en) Storage medium storing a shadow volume generation program, game device, and shadow volume generation method
JP4794565B2 (ja) 画像生成装置
JP2011053737A (ja) プログラム、情報記憶媒体及び画像生成装置
JP2004013621A (ja) ゲームシステム及びゲームプログラム
JP5007991B2 (ja) 細分割曲面描画用レンダリング装置
JP4761541B2 (ja) 画像生成装置
JP4512240B2 (ja) ゲームシステム及び情報記憶媒体
JP4832152B2 (ja) ガス状物体を2次元のディスプレイに表示するための3次元コンピュータグラフィックス装置に用いられるシステム
JP4528008B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP5535729B2 (ja) 3次元コンピュータグラフィックス描画システム
JP4787662B2 (ja) ガス状物体を2次元のディスプレイに表示するための3次元コンピュータグラフィックス装置に用いられるシステム
JP4787661B2 (ja) ガス状物体を2次元のディスプレイに表示するための3次元コンピュータグラフィックス装置に用いられるシステム
JP4785605B2 (ja) ガス状物体を2次元のディスプレイに表示するための3次元コンピュータグラフィックス装置に用いられるシステム
JP2002092652A (ja) ゲームシステム及び情報記憶媒体
JP2010231364A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4803909B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006323514A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2007183722A (ja) プログラム、情報記憶媒体及びテクスチャのデータ構造

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110511

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120522

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees