(57)【特許請求の範囲】
【請求項１】
Ｘ、Ｙ、Ｚ座標値に基づく３次元図形の形状特徴を表す図形データを生成する、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段及び前記３次元図形の形状を特定するための形状特定点の位置を決定する決定手段を含むＣＰＵを有する装置において実行される方法であって、
前記ＣＰＵが、
前記形状特定点のＸ、Ｙ座標値を定める段階と、
前記乱数発生手段により、前記Ｘ、Ｙ座標値を種として乱数を発生させる段階と、
発生した前記乱数に基づいて、前記決定手段により当該形状特定点のＺ座標値を算定して当該形状特定点のＸ、Ｙ、Ｚ座標値を決定する段階と、
これにより得られたＸ、Ｙ、Ｚ座標値に基づいて前記図形データを生成する段階と、を含む、
図形データ生成方法。
【請求項２】
Ｘ、Ｙ、Ｚ座標値に基づく３次元図形の形状特徴を表す図形データを生成する、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段、前記３次元図形の形状を特定するための基本となる複数の形状特定点の位置を保持する保持手段及び新たな形状特定点の位置を決定する決定手段を含むＣＰＵを有する装置において実行される方法であって、
前記ＣＰＵが、
前記保持手段に保持される前記複数の形状特定点の間に前記新たな形状特定点を定める段階と、
この新たな形状特定点のＸ、Ｙ座標値を算定するとともに、前記乱数発生手段により、このＸ、Ｙ座標値を種として乱数を発生させる段階と、
発生した前記乱数に基づいて、前記決定手段により当該新たな形状特定点のＺ座標値を算定して新たな形状特定点のＸ、Ｙ、Ｚ座標値を決定する段階と、
これにより得られた新たな形状特定点のＸ、Ｙ、Ｚ座標値を含んで前記図形データを生成する段階と、を含む、
図形データ生成方法。
【請求項３】
前記新たな形状特定点のＸ、Ｙ座標値が、その基となる１対の形状特定点の点間の中点のＸ、Ｙ座標値であることを特徴とする、
請求項２記載の図形データ生成方法。
【請求項４】
前記新たな形状特定点のＸ、Ｙ座標値が、その基となる２対の形状特定点の各々をＸＹ平面上に射影したときに射影面上に形成される四角形の第１辺の中点と前記第１辺に対向する第２辺の中点とを結ぶ仮想線の中点のＸ、Ｙ座標値であることを特徴とする、
請求項２記載の図形データ生成方法。
【請求項５】
Ｘ、Ｙ座標値の各々を種とする相互に異なる２種類の乱数発生関数を用いて前記乱数を生成することを特徴とする、
請求項１〜４のいずれかの項記載の図形データ生成方法。
【請求項６】
Ｘ、Ｙ座標値に基づく２次元図形の形状特徴を表す図形データを生成する、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段、前記２次元図形の形状を特定するための基本となる複数の形状特定点の位置を保持する保持手段及び新たな形状特定点の位置を決定する決定手段を含むＣＰＵを有する装置において実行される方法であって、
前記ＣＰＵが、
前記保持手段に保持される前記複数の形状特定点をＸ軸上に射影したときに隣接することになる１対の形状特定点の間に新たな形状特定点を定める段階と、
この新たな形状特定点のＸ座標値を乱数の種として、前記乱数発生手段により乱数を発生させる段階と、
発生した前記乱数に基づいて、前記決定手段により前記新たな形状特定点のＹ座標値を算定して新たな形状特定点のＸ、Ｙ座標値を決定する段階と、
これにより得られた新たな形状特定点のＸ、Ｙ座標値を含んで前記図形データを生成する段階と、を含む、
図形データ生成方法。
【請求項７】
その形状特徴が複数の形状特定点の各々の位置によって特定される２次元又は３次元の図形を生成する装置であって、
入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段と、前記複数の形状特定点の位置を決定する決定手段とを備え、
前記複数の形状特定点のうち少なくとも一部の形状特定点の位置は、既定の座標値と可変の座標値とによって表されるものであり、
前記決定手段は、いずれかの前記形状特定点における前記既定の座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて前記可変の座標値を算定することで当該形状特定点の位置を決定するように構成されていることを特徴とする、
図形生成装置。
【請求項８】
前記決定手段は、前記既定の座標値が複数の場合に、それぞれの座標値毎に異なる乱数発生関数を用いて前記乱数を発生させるように構成されていることを特徴とする、
請求項７記載の図形生成装置。
【請求項９】
前記図形がＸ、Ｙ、Ｚ座標値に基づく３次元図形であり、
前記既定の座標値はいずれかの前記形状特定点のＸ、Ｙ座標値であり、
前記可変の座標値は当該形状特定点のＺ座標値であることを特徴とする、
請求項７記載の図形生成装置。
【請求項１０】
前記図形がＸ、Ｙ座標値に基づく２次元図形であり、
前記既定の座標値はいずれかの前記形状特定点のＸ座標値であり、
前記可変の座標値は当該形状特定点のＹ座標値であることを特徴とする、
請求項７記載の図形生成装置。
【請求項１１】
前記図形が、同一地点に複数種類の経路で到達する可能性がある３次元のフラクタル図形であることを特徴とする、
請求項７記載の図形生成装置。
【請求項１２】
前記複数の形状特定点の少なくとも一部の形状特定点についてのＸ、Ｙ、Ｚ座標値を保持する保持手段と、
この保持手段から読み出した１対の形状特定点のＸ、Ｙ、Ｚ座標値に基づき各形状特定点の位置を特定するとともに特定した形状特定点間を結ぶ仮想線の中点を新たな形状特定点として生成する形状特定点生成手段とをさらに備え、
前記決定手段は、前記新たな形状特定点のＸ、Ｙ座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて当該新たな形状特定点のＺ座標値を算定することで当該新たな形状特定点の位置を決定するように構成されていることを特徴とする、
請求項９記載の図形生成装置。
【請求項１３】
前記複数の形状特定点の少なくとも一部の形状特定点についてのＸ、Ｙ、Ｚ座標値を保持する保持手段と、
この保持手段から読み出した２対の形状特定点の各々をＸＹ平面上に射影したときに射影面上に形成される四角形の第１辺の中点と前記第１辺に対向する第２辺の中点とを結ぶ仮想線の中点を新たな形状特定点として生成する形状特定点生成手段とをさらに備え、
前記決定手段は、前記新たな形状特定点のＸ、Ｙ座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて当該新たな形状特定点のＺ座標値を算定することで当該新たな形状特定点の位置を決定するように構成されていることを特徴とする、
請求項９記載の図形生成装置。
【請求項１４】
前記形状特定点生成手段は、前記新たな形状特定点の生成を外部からの指示に応じて繰り返し行うものであり、
前記決定手段は、新たな形状特定点を生成する度に前記乱数を発生させる範囲を変化させることを特徴とする、
請求項１３記載の図形生成装置。
【請求項１５】
前記保持手段は、生成された前記新たな形状特定点のＸ、Ｙ、Ｚ座標値を、読み出しの対象となる形状特定点として追加的に保持することを特徴とする、
請求項１３記載の図形生成装置。
【請求項１６】
入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段を備えた装置に組み込まれ、当該装置と協働で、その形状特徴が複数の形状特定点の各々の位置によって特定される２次元又は３次元の図形を生成する半導体デバイスであって、
前記複数の形状特定点のうち少なくとも一部の形状特定点の位置が、既定の座標値と可変の座標値とによって表されるものであり、
いずれかの前記形状特定点における前記既定の座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて前記可変の座標値を算定することで当該形状特定点の位置を決定する手段を備えていることを特徴とする、
半導体デバイス。
【請求項１７】
前記乱数発生手段は、前記既定の座標値が複数の場合に、それぞれの座標値毎に異なる複数の乱数発生関数を用いて前記乱数を発生させるものであることを特徴とする、
請求項１６記載の半導体デバイス。
【請求項１８】
コンピュータを、その形状特徴が複数の形状特定点の各々の位置によって特定される２次元又は３次元の図形を生成する図形生成装置として動作させるためのコンピュータプログラムであって、
前記図形生成装置が、
入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段と、前記複数の形状特定点の位置を決定する決定手段とを備え、
前記複数の形状特定点のうち少なくとも一部の形状特定点の位置は、既定の座標値と可変の座標値とによって表されるものであり、
前記決定手段は、いずれかの前記形状特定点における前記既定の座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて前記可変の座標値を算定することで当該形状特定点の位置を決定するものであることを特徴とする、
コンピュータプログラム。
【請求項１９】
請求項１８記載のコンピュータプログラムが記録されている、
コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば山や海岸線のような自然物の図形をコンピュータグラフィクスにより形成するための図形データの生成技術に係り、特に、上記の図形の形状を乱数によって決めるときの不自然な態様の発生を回避する手法に関する。
【０００２】
【従来の技術】
コンピュータグラフィクスの分野では、山や海岸線のような自然物をできるだけ自然な形で表現するため、場所によって変化する図形の各場所の形状を乱数によって決めることがある。例えばビデオゲームにおいて、移動するキャラクタの背後に表す遠方の山などの図形を、より自然な形で表現したいときなどに、その図形の部分々の形状を、乱数によって決めている。
【０００３】
乱数を用いた図形形状の決定手法の一例として、フラクタル（fractal）手法がある。フラクタル手法は、情報処理装置の内部でフラクタル図形を生成することによってＣＧ（コンピュータグラフィクス）画像を得る手法である。
従来、情報処理装置によるフラクタル図形の生成は、以下のようにして行われている。
まず、ソフトウエアの目的に応じてフラクタル図形の形状を特定するための複数の形状特定点を定める。各形状特定点は、例えば対象となる図形が３次元図形の場合、Ｘ軸、Ｙ軸、Ｚ軸からなる直交座標系内のＸＹ平面上に射影したときに、それぞれ一又は複数の四角形の頂点に位置するように配置される。
複数の形状特定点が定まると、次に、中点分割を行う。すなわち、各形状特定点から、ＸＹ平面上に射影したときに四角形の各辺の中点となる点のＸ、Ｙ座標値及びＸＹ平面上に射影したときにその四角形の対向する辺の中点を結ぶ線の中点となる点のＸ、Ｙ座標値を算定する。そして、算定されたＸ、Ｙ座標値を、変化する新たな形状特定点のＸ、Ｙ座標値として定める。また、乱数を発生させ、発生した乱数を用いて新たな形状特定点のＺ座標値を決める。乱数は、乱数の種（seed）に応じて発生する値であり、乱数の種は乱数計算のための初期値となるため、乱数の値は乱数の種によって一意に決まる。乱数の種には、直前に発生させた乱数が用いられている。
このようにして求められた新たな形状特定点のＸ、Ｙ、Ｚ座標値及び予め配置される形状特定点のＸ、Ｙ、Ｚ座標値から３次元図形の形状を決め、これをコンピュータに接続されている外部ディスプレイ等に表現させるためのデータ（「図形データ」）にする。
新たな形状特定点のＺ座標値が乱数に依存するため、生成された図形データによって表現される図形はフラクタル図形となる。
【０００４】
【発明が解決しようとする課題】
上述のように、新たな形状特定点のＺ座標値が乱数によって決められているが、従来は、乱数の種として、直前に発生した乱数が用いられているため、以下のような問題があった。
【０００５】
例えば、それぞれディスプレイの１画面で１ブロック分しか表示されない、複数ブロックで構成される画像内にフラクタル図形があり、ビデオゲームで登場するキャラクタがこの画像内を移動するような場合を想定する。この場合、キャラクタが、現在表示されているブロックから他のブロックへ移動すると、ディスプレイに表示される画面が、その移動に連動して切り替わる。フラクタル図形は、ディスプレイ上の画面が切り替わるたびに生成されるため、キャラクタが、複数のブロックでの動きを経てあるブロックの同じ地点に到達する場合であっても、そこに至るまでに通過したブロックによっては、異なる形状になることがある（本来、そこの形状は、どのような経路を経ても同じにならなければならない）。これは、従来、乱数の種として、直前に発生した乱数をそのまま用いていたため、どのようなブロックを通過していったかによって異なる値になってしまうためである。
また、フラクタル図形が上記のように複数のブロックにまたがって表現される場合、そのフラクタル図形は、各ブロックの表示の切替時にそれぞれ独自に生成される。そのため、ブロックの境界部分で図形同士のつなぎ目が一致しないことがある。
【０００６】
このような問題は、フラクタル図形のみならず、その形状特定点が乱数によって決められる図形を形成する場合において共通に生じる。
本発明の課題は、上記の問題を解決する新規な技術を提供することにある。
【０００７】
【課題を解決するための手段】
上記の課題を解決するため、本発明は、改良された図形データ生成方法、図形生成装置、半導体デバイス、コンピュータプログラム及び記録媒体を提供する。
【０００８】
本発明の図形データ生成方法は、以下のようなものである。
第１の方法は、Ｘ、Ｙ、Ｚ座標値に基づく３次元図形の形状特徴を表す図形データを生成する、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段及び前記３次元図形の形状を特定するための形状特定点の位置を決定する決定手段を含むＣＰＵを有する装置において実行される方法であって、前記ＣＰＵが、前記形状特定点のＸ、Ｙ座標値を定め、前記乱数発生手段により、前記Ｘ、Ｙ座標値を種として乱数を発生させて、発生した前記乱数に基づいて、前記決定手段により当該形状特定点のＺ座標値を算定して当該形状特定点のＸ、Ｙ、Ｚ座標値を決定し、これにより得られたＸ、Ｙ、Ｚ座標値に基づいて前記図形データを生成することを特徴とする。
各形状特定点のＺ座標値は、個々の形状特定点のＸ、Ｙ座標値により一意に決まるため、どのような経路で３次元図形を生成しても、同じ形状の図形を得ることができる。また、例えば１画面で１ブロックしか表示できない複数のブロックから構成される画像において、３次元図形が複数のブロックにまたがって存在する場合でも、各ブロックの境界部分で図形のつなぎ目が一致するようになる。
【０００９】
第２の方法は、Ｘ、Ｙ、Ｚ座標値に基づく３次元図形の形状特徴を表す図形データを生成する、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段、前記３次元図形の形状を特定するための基本となる複数の形状特定点の位置を保持する保持手段及び新たな形状特定点の位置を決定する決定手段を含むＣＰＵを有する装置において実行される方法であって、前記ＣＰＵが、前記保持手段に保持される前記複数の形状特定点の間に前記新たな形状特定点を定め、この新たな形状特定点のＸ、Ｙ座標値を算定するとともに、前記乱数発生手段により、このＸ、Ｙ座標値を種として乱数を発生させ、発生した前記乱数に基づいて、前記決定手段により当該新たな形状特定点のＺ座標値を算定して新たな形状特定点のＸ、Ｙ、Ｚ座標値を決定し、これにより得られた新たな形状特定点のＸ、Ｙ、Ｚ座標値を含んで前記図形データを生成することを特徴とする。
新たな形状特定点のＺ座標値は、該新たな形状特定点のＸ、Ｙ座標値により一意に決まることとなる。形状特定点から、新たに形状特定点を算定して図形の形状を決める点を増やすために、より細かい形状の図形を得ることができる。
【００１０】
第２の方法において、前記新たな形状特定点のＸ、Ｙ座標値は、その基となる１対の形状特定点の点間の中点のＸ、Ｙ座標値から求めることができる。また、その基となる２対の形状特定点の各々をＸＹ平面上に射影したときに射影面上に形成される四角形の第１辺の中点と前記第１辺に対向する第２辺の中点とを結ぶ仮想線の中点のＸ、Ｙ座標値から求めることができる。
【００１１】
第３の方法は、２次元の図形データの生成方法である。すなわち、Ｘ、Ｙ座標値に基づく２次元図形の形状特徴を表す図形データを生成する、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段、前記２次元図形の形状を特定するための基本となる複数の形状特定点の位置を保持する保持手段及び新たな形状特定点の位置を決定する決定手段を含むＣＰＵを有する装置において実行される方法であって、前記ＣＰＵが、前記保持手段に保持される前記複数の形状特定点をＸ軸上に射影したときに隣接することになる１対の形状特定点の間に新たな形状特定点を定め、この新たな形状特定点のＸ座標値を乱数の種として、前記乱数発生手段により乱数を発生させ、発生した前記乱数に基づいて、前記決定手段により前記新たな形状特定点のＹ座標値を算定して新たな形状特定点のＸ、Ｙ座標値を決定し、これにより得られた新たな形状特定点のＸ、Ｙ座標値を含んで前記図形データを生成する。
新たな形状特定点のＹ座標値は、その新たな形状特定点のＸ座標値により一意に決まる。そのために、どのような順序で図形が発生しても、常にほぼ同じ形状のものを得ることができる。また、例えば１画面で１ブロックしか表示できない複数のブロックから構成される画像において、２次元図形が複数のブロックにまたがって存在する場合でも、各ブロックの境界部分で２次元図形のつなぎ目が一致するようになる。
【００１２】
本発明の図形生成装置は、その形状特徴が複数の形状特定点の各々の位置によって特定される２次元又は３次元の図形を生成する装置であって、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段と、前記複数の形状特定点の位置を決定する決定手段とを備えている。前記複数の形状特定点のうち少なくとも一部の形状特定点の位置は、既定の座標値と可変の座標値とによって表されるものである。前記決定手段は、いずれかの前記形状特定点における前記既定の座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて前記可変の座標値を算定することで当該形状特定点の位置を決定するように構成される。
「既定の座標値」とは、図形の位置が決まるとそれに伴って必然的に定まる座標値をいい、「可変の座標値」とはランダムに変動可能な座標値をいう。
決定手段では、前記既定の座標値が複数の場合には、それぞれの座標値毎に異なる乱数発生関数を用いて前記乱数を発生させるようにしてもよい。
【００１３】
前記図形がＸ、Ｙ、Ｚ座標値に基づく３次元図形、例えば同一地点に複数種類の経路で到達する可能性がある３次元のフラクタル図形の場合、前記既定の座標値はいずれかの前記形状特定点のＸ、Ｙ座標値であり、前記第可変の座標値は当該形状特定点のＺ座標値である。また、前記図形がＸ、Ｙ座標値に基づく２次元図形の場合、前記既定の座標値はいずれかの前記形状特定点のＸ座標値であり、前記可変の座標値は当該形状特定点のＹ座標値である。
【００１４】
本発明の図形生成装置における好ましい実施の形態では、前記複数の形状特定点の少なくとも一部の形状特定点についてのＸ、Ｙ、Ｚ座標値を保持する保持手段と、この保持手段から読み出した１対の形状特定点のＸ、Ｙ、Ｚ座標値に基づき各形状特定点の位置を特定するとともに特定した形状特定点間を結ぶ仮想線の中点を新たな形状特定点として生成する形状特定点生成手段とをさらに備えて図形生成装置を構成する。
このような図形生成装置において、前記決定手段は、前記新たな形状特定点のＸ、Ｙ座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて当該新たな形状特定点のＺ座標値を算定することで当該新たな形状特定点の位置を決定するように構成される。
【００１５】
あるいは、上記の保持手段と、この保持手段から読み出した２対の形状特定点の各々をＸＹ平面上に射影したときに射影面上に形成される四角形の第１辺の中点と前記第１辺に対向する第２辺の中点とを結ぶ仮想線の中点を新たな形状特定点として生成する形状特定点生成手段とをさらに備えて図形生成装置を構成する。
このような図形生成装置において、前記決定手段は、前記新たな形状特定点のＸ、Ｙ座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて当該新たな形状特定点のＺ座標値を算定することで当該新たな形状特定点の位置を決定するように構成される。
前記保持手段は、より好ましくは、生成された前記新たな形状特定点のＸ、Ｙ、Ｚ座標値を、読み出しの対象となる形状特定点として追加的に保持するように構成される。
【００１６】
本発明の半導体デバイスは、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段を備えた装置に組み込まれ、当該装置と協働で、その形状特徴が複数の形状特定点の各々の位置によって特定される２次元又は３次元の図形を生成する半導体デバイスである。前記複数の形状特定点のうち少なくとも一部の形状特定点の位置は、既定の座標値と可変の座標値とによって表されるものである。いずれかの前記形状特定点における前記既定の座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて前記可変の座標値を算定することで当該形状特定点の位置を決定する手段を備えている。
【００１７】
本発明のコンピュータプログラムは、コンピュータを、その形状特徴が複数の形状特定点の各々の位置によって特定される２次元又は３次元の図形を生成する図形生成装置として動作させるためのコンピュータプログラムであり、本発明の記録媒体は、このようなコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体である。図形生成装置は、入力された種（seed）に応じてその値が定まる乱数を発生させる乱数発生手段と、前記複数の形状特定点の位置を決定する決定手段とを備えるものである。前記複数の形状特定点のうち少なくとも一部の形状特定点の位置は、既定の座標値と可変の座標値とによって表される。前記決定手段は、いずれかの前記形状特定点における前記既定の座標値を前記種（seed)として前記乱数発生手段に乱数を発生させ、この乱数に基づいて前記可変の座標値を算定することで当該形状特定点の位置を決定するものである。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
＜情報処理装置＞
図１は、本発明が適用される情報処理装置の内部構成図である。
この情報処理装置１は、ＣＰＵ１０、ＲＡＭで構成されるメインメモリ１１、ＤＭＡＣ（direct memory access controller）１２、ＭＰＥＧ（Moving Picture Experts Group）デコーダ（ＭＤＥＣ）１３、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭなどのメディア１５を装着するためのメディアドライブ１４、入力部１６、外部とネットワークを介して情報の送受信を行う通信制御部（ＡＴＭ）１７、ＢＩＯＳなどのプログラムが記憶されているＲＯＭ１８、ハードディスクなどの補助記憶装置２０、サウンドメモリ２２に蓄積された音データを読み出してオーディオ出力として出力する音声処理装置（ＳＰＵ（sound processing unit））２１、フレームメモリ３２を有する描画処理装置（graphic processing unit、以下、「ＧＰＵ」）３１を含んで構成される。これらは、バスＢを介して接続されている。
ＧＰＵ３１には、ビデオ出力信号を生成するＣＲＴＣ（CRT controller）３３が接続されている。このビデオ出力信号は、ＮＴＳＣやＰＡＬなどの規格に準拠して生成され、ＣＲＴＣから図示しないディスプレイに出力されるようになっている。
【００１９】
ＣＰＵ１０は、情報処理装置１の起動時に、補助記憶装置２０から起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる半導体デバイスである。ＣＰＵ１０は、また、メディアドライブ１４を制御するとともに、このメディアドライブ１４に装着されたメディア１５からアプリケーションプログラムやデータを読み出し、これをメインメモリ１１に記憶させる機能を有する。さらに、メディア１５や補助記憶装置２０から読み出した各種データ、例えば複数の基本図形（ポリゴン）で構成された３次元オブジェクトデータ（ポリゴンの頂点の座標値など）に対して、ジオメトリ処理（座標値演算処理）を行い、そして、ジオメトリ処理によるポリゴン定義情報（使用するポリゴンの形状及びその形成位置、ポリゴンを構成する素材の種類、色、質感等の指定）をその内容とするディスプレイリストを生成する機能も有している。
【００２０】
ＧＰＵ３１は、描画コンテクスト（描画用のポリゴン素材の種類、色、質感、サイズ等）を保持し、ＣＰＵ１０から通知されるディスプレイリストに従って必要な描画コンテクストを読み出してレンダリング処理（描画処理）を行い、フレームメモリ３２にポリゴンを描画する機能を有する半導体デバイスである。フレームメモリ３２は、これをテクスチャメモリとしても使用できる。そのため、フレームメモリ上のピクセルイメージをテクスチャとして、描画するポリゴンに貼り付けることができる。
【００２１】
ＳＰＵ２１は、サウンドメモリ２２から読み出した音データを合成してオーディオ出力信号を生成する半導体デバイスである。ＤＭＡＣ１２は、バスＢに接続されている各回路を対象としてＤＭＡ転送制御を行う半導体デバイスであり、ＭＤＥＣ１３は、ＣＰＵ１０と並列に動作し、ＭＰＥＧ（Moving Picture Experts Group）方式あるいはＪＰＥＧ（Joint Photographic Experts Group）方式等で圧縮されたデータを伸張する機能を有する半導体デバイスである。
【００２２】
入力部１６は、操作装置２３からの入力信号が入力される接続端子１９を備えるものである。操作装置２３には、複数の操作ボタンが設けられており、操作者がこれらの操作ボタンを種々多様に操作することにより、ディスプレイに表示される図形をより複雑且つ自然なものに成形したり、表示された図形の内容を確定したりすることができるようになっている。
【００２３】
＜図形生成装置の構成＞
以上のような情報処理装置１を本発明の図形生成装置として動作させる場合の構成例について説明する。
図形生成装置は、情報処理装置１のＣＰＵ１０及びＧＰＵ３１が、補助記憶装置２０、ＲＯＭ１８、メディア１５その他の記録媒体に記録されている所定のコンピュータプログラムを読み込んで実行することにより実現される。ここでは、従来と同様、形状特定点間の中点分割を行いつつ乱数を用いて図形データを生成し、この図形データに基づいて描画された画像をディスプレイに表示させる場合の例を挙げる。
図２は、図形生成装置として動作するときの情報処理装置１の機能構成図である。この実施形態では、ＣＰＵ１０とコンピュータプログラムとにより、主制御部１００、入力制御部１０２、中点分割部１０３、乱数発生部１０４、座標決定部１０５、図形データ生成部１０６の機能ブロック（モジュール）をＣＰＵ１０内に形成するとともに、ＣＰＵ１０内の図示しないメモリ領域に、形状特定点記憶部１０１を形成する。
また、ＧＰＵ３１とコンピュータプログラムとにより、ＧＰＵ３１内に描画制御部３１１の機能ブロック（モジュール）を形成する。
そして、形状特定点記憶部１０１に記憶された形状特定点（図形の形状を特定するための点、以下同じ）の座標値に基づいて別の新しい形状特定点を導出し、この新しい形状特定点の座標値と図形の描画に必要な情報（描画コンテクスト）の指定を含む図形データを生成する。座標値は、Ｘ軸、Ｙ軸、Ｚ軸からなる３次元の直交座標系における座標値（それぞれＸ座標、Ｙ座標値、Ｚ座標値とする）である。情報処理装置１についての上記の説明との関係では、ポリゴンの頂点が「形状特定点」に相当し、ディスプレイリストが「図形データ」に相当する。
【００２４】
主制御部１００は、図形データの生成に関する機能ブロック間のデータの受け渡し、生成した図形データのＧＰＵ３１への送出、形状特定点記憶部１０１への形状特定点毎の座標値の記憶及びその読み出しなどを制御する。
【００２５】
形状特定点記憶部１０１は、複数の形状特定点の各々の座標値を記憶しておくものである。各形状特定点の座標値の持ち方としては、種々の形態がある。
例えば、デフォルト時に記憶される形状特定点の座標値はすべて既定の座標値であるＸ、Ｙ座標値のみとし、後述する座標決定処理によって、可変の座標値である各形状特定点のＺ座標値が算定された場合に、そのＺ座標値を形状特定点毎に更新自在に記憶するようにしてもよく、新たに形状特定点を作るための基本となるいくつかの形状特定点のＸ、Ｙ、Ｚ座標値を既定の座標値として記憶しておき、新たな形状特定点が生成される度に、その新たな形状特定点のＸ、Ｙ、Ｚ座標値を追加的に次の図形を形成するときの既定の座標値として記憶するようにしてもよい。Ｘ、Ｙ座標値のみを記憶させる場合は、図形マップのような形でテーブル化しておくこともできる。
デフォルト時の形状特定点の座標値は、操作者が任意に設定してもよく、上記のコンピュータプログラムに付随するデータ又はアプリケーションの種類によって自動的に決まるようにしてもよい。
本実施形態では、基本となるいくつかの形状特定点のＸ、Ｙ、Ｚ座標値を形状特定点記憶部１０１に記憶しておき、図形データを生成する際に、この形状特定点を逐次読み出して新たな形状特定点が生成して、そのＸ、Ｙ、Ｚ座標値を逐次記憶していくものとする。
【００２６】
入力制御部１０２は、形状特定点記憶部１０１への形状特定点毎の座標値を記憶させるための制御と、外部からの指示、例えば操作装置２３からの指示を受け付け、この外部指示に従って、形状特定点記憶部１０１から必要な形状特定点の座標値を取り込み、これを中点分割部１０３、図形データ生成部１０６などへ送るための制御とを行う。
【００２７】
中点分割部１０３は、外部指示に従い、図形を細分化するための中点分割を行うもので、対象となる図形の複数の形状特定点の座標値から、形状特定点間の中点の座標値を算定し、さらに、必要に応じて、中点間の中点の座標値を算定する。
【００２８】
乱数発生部１０４は、形状特定点（中点を含む）毎のＺ座標値を決定するために用いる乱数を発生させる。乱数の種（seed）には、当該形状特定点（又は中点）のＸ、Ｙ座標値が用いられるようになっている。乱数は、所定の数値範囲内で発生させる。所定の数値範囲とは、例えば形状特定点記憶部１０１に記憶される全形状特定点のＺ座標値の標準偏差σを用いた、±σ／２ｎ（ｎ：１，２，…）の範囲である。
【００２９】
座標決定部１０５は、中点分割部１０３により決定された中点の座標値と乱数発生部１０４で発生した乱数とにより、新たな形状特定点の座標値を最終的に決定するための処理を行う。
【００３０】
図形データ生成部１０６は、予め形状特定点記憶部１０１に記憶されている形状特定点及び新たに生成した形状特定点の座標値に基づいて描画すべき図形の形状を決め、この形状の図形についての図形データを生成する。
【００３１】
描画制御部３１１は、上記のようにして生成された図形データの入力を契機にフレームメモリ３２に図形を描画する。これは、例えば複数の形状特定点によって特定される三角形又は四角形をポリゴンで描画することにより行われる。フレームメモリ３２に描画されたデータは、ビデオ出力信号となって、ディスプレイに送られる。
【００３２】
＜図形生成装置の動作＞
次に、図形生成装置の動作を具体的に説明する。ここでは、外部指示の一例となる操作装置２３からの指示に従って３次元フラクタル図形を作成し、これをディスプレイに表示する場合の例を挙げる。
図３は、この場合の図形データの生成手順を示すフローチャートである。
操作装置２３からの（図形描画）指示が入力されると、主制御部１００は、対象となる図形に関する形状特定点が既に記憶されているかどうかを調べる（ステップＳ１０１：Yes、Ｓ１０２）。記憶されていない場合は、指示された図形の形状を特定するための形状特定点のＸ、Ｙ座標値を算定し（ステップＳ１０３）、さらに、このＸ、Ｙ座標値を種（seed）として乱数発生部１０４で乱数を発生させる（ステップＳ１０４）。そして、この乱数に基づき当該形状特定点のＺ座標値を算定する（ステップＳ１０５）。
一方、形状特定点が記憶されている場合は、形状特定点記憶部１０１からすべての形状特定点のＸ、Ｙ、Ｚ座標値を読み込む。
以上のようにしてすべての形状特定点が決まったときは、図形データ生成部１０６において各形状特定点の座標値を含む図形データを生成し、これをＣＰＵ１０内のワークメモリに保存しておく（Ｓ１０７）。
このような図形データによって描画される３次元フラクタル図形のイメージを図４に示す。図中、“●”で示される点が形状特定点Ｐ０〜Ｐ３であり、それぞれ、直交座標系におけるＸＹ平面上に射影したときに射影面上に形成される四角形の頂点に位置するようになっている。
各形状特定点のＸ、Ｙ、Ｚ座標値は、以下のように表される。
Ｐ０＝（ＸP0、ＹP0、ＺP0）
Ｐ１＝（ＸP1、ＹP1、ＺP1）
Ｐ２＝（ＸP2、ＹP2、ＺP2）
Ｐ３＝（ＸP3、ＹP3、ＺP3）
【００３３】
ここで、図形を細分化する指示が入力された場合は、中点分割部１０３で形状特定点Ｐ０〜Ｐ３についての中点分割処理を行う。具体的には、形状特定点Ｐ０〜Ｐ３をＸＹ平面に射影したときに四角形の各辺の中点Ｑ０〜Ｑ３のＸ、Ｙ、Ｚ座標値、及びこの四角形の対向する辺の中点同士を結ぶ仮想線の中点Ｑ４のＸ、Ｙ、Ｚ座標値を算定する（ステップＳ１０８：Yes、Ｓ１０９）。これらの中点Ｑ０〜Ｑ４は、図４において“□”で示されている。
中点Ｑ０のＸ、Ｙ、Ｚ座標値は、以下のように表される。
ＸQ0＝（ＸP0＋ＸP1）／２
ＹQ0＝（ＹP0＋ＹP1）／２
ＺQ0＝（ＺP0＋ＺP1）／２
中点Ｑ１、Ｑ２、Ｑ３のＸ、Ｙ、Ｚ座標値も同様にして算定される。因みに中点Ｑ４のＸ、Ｙ、Ｚ座標値は、以下のように表される。
ＸQ4＝（ＸP0＋ＸP1＋ＸP2＋ＸP3）／４
ＹQ4＝（ＹP0＋ＹP1＋ＹP2＋ＹP3）／４
ＺQ4＝（ＺP0＋ＺP1＋ＺP2＋ＺP3）／４
算定された各中点Ｑ０〜Ｑ４のＸ、Ｙ、Ｚ座標値のうち、Ｘ、Ｙ座標値は、乱数発生部１０４に送られる。
【００３４】
乱数発生部１０４は、中点Ｑ０〜Ｑ４のそれぞれのＸ、Ｙ座標値を乱数の種として、乱数を発生させる（ステップＳ１１０）。
乱数をどのように発生させるかについては種々の手法が考えられるが、この実施形態では、２種類の形態について例示する。
第１の形態は、乱数発生を１回だけ発生させる形態である。この形態での乱数は、例えば点Ｑ０のＸ、Ｙ座標値を種とした場合、以下のように表される。
ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ0、ＹQ0））  ｒａｎｄｏｍ（１）
「ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ0、ＹQ0））」は、乱数発生部１０４に、中点Ｑ０のＸ、Ｙ座標値を乱数の種として設定することを表している。関数ｆは、例えば、「ｆ（Ｘ、Ｙ）＝Ｘ＊１００００＋Ｙ」である。「ｒａｎｄｏｍ（１）」は、「ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ0、ＹQ0））」により発生する乱数を意味する。（１）とは、乱数の数値範囲が例えば前出のＺ座標値の標準偏差をσとして１σの範囲であることを表す。
乱数は、各点Ｑ０〜Ｑ４のそれぞれについて算定される。各点Ｑ１〜Ｑ４の乱数の種は、それぞれ、以下のように表される。
【００３５】
ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ1、ＹQ1））
ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ2、ＹQ2））
ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ3、ＹQ3））
ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸQ4、ＹQ4））
【００３６】
乱数（ｒａｎｄｏｍ（１））の値は、その種となる「ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（Ｘ、Ｙ））」により一意に決まる。「ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（Ｘ、Ｙ））」は、Ｘ、Ｙ座標値に依存する関数であり、Ｘ、Ｙ座標値が決まると一意にその値が決まる。そのために、乱数（ｒａｎｄｏｍ（１））は、Ｘ、Ｙ座標値にのみ依存した値となり、Ｘ、Ｙ座標値が決まるとその値が一意に決まることになる。
乱数を発生させるための第２の形態は、Ｘ、Ｙ座標値の各々について、それぞれ異なる２種類の乱数発生関数、すなわち同じ種（seed）を入力しても異なる乱数を発生させる形態である。
第１の形態同様、点Ｑ０のＸ、Ｙ座標値を種とした場合、以下のように表される。
ｆ（ｓｅｅｄ＿ｒａｎｄｏｍ_1（ＸQ0）、ｓｅｅｄ＿ｒａｎｄｏｍ_2（ＹQ0））  ｒａｎｄｏｍＡ（１）
ｓｅｅｄ＿ｒａｎｄｏｍ_1、ｓｅｅｄ＿ｒａｎｄｏｍ_2は、それぞれ乱数発生関数であり、「ｒａｎｄｏｍＡ（１）」は、ｆ（ｓｅｅｄ＿ｒａｎｄｏｍ_1（ＸQ0）、ｓｅｅｄ＿ｒａｎｄｏｍ_2（ＹQ0））により発生する乱数を意味する。
このような形態でも、（ＸQ0、ＹQ0）が決まれば、それぞれの乱数発生関数によって、それぞれ決まった値が算出され、乱数発生部１０４からの出力も一意に決まる。
第１の形態では、乱数発生が１回で済む利点があるが、関数の種類によって地形がパターン化される場合がある。例えばｆ（Ｘ，Ｙ）＝Ｘ＊１００００＋Ｙのような関数の場合には、表現しようとする山と谷が直線的、周期的に並び、広い範囲を見たときに不自然になる場合がある。これに対し、第２の形態では、関連の無い２種類の乱数発生関数を使ってそれぞれＸ，Ｙ座標値を種（seed)から乱数を発生させているのでＸ，Ｙ座標値によって、上記のようなパターンが生じることがなくなり、不自然さを確実に回避することができる。
なお、第２の形態における乱数発生関数は、必ずしも２種類のものに限定されない。
【００３７】
その後、座標決定部１０５において、中点分割により得られた中点Ｑ０〜Ｑ４のＸ、Ｙ、Ｚ座標値と、乱数発生部１０４で発生した乱数とから、新たな形状特定点Ｐ４〜Ｐ８のＸ、Ｙ、Ｚ座標値を決定し（ステップＳ１１１）、図形データ生成部１０６で、先に生成した図形データを更新する（ステップＳ１１２）。
形状特定点Ｐ４〜Ｐ８のＸ、Ｙ座標値は、中点Ｑ０〜Ｑ４のＸ、Ｙ座標値をそのまま用いることができる。
このＸ、Ｙ座標値は、第１の形態で乱数を発生させた場合は以下のようになる。
【００３８】
Ｐ４のＸ座標値：ＸP4＝（ＸP0＋ＸP1）／２
同  Ｙ座標値：ＹP4＝（ＹP0＋ＹP1）／２
Ｐ５のＸ座標値：ＸP5＝（ＸP1＋ＸP2）／２
同  Ｙ座標値：ＹP5＝（ＹP1＋ＹP2）／２
Ｐ６のＸ座標値：ＸP6＝（ＸP2＋ＸP3）／２
同  Ｙ座標値：ＹP6＝（ＹP2＋ＹP3）／２
Ｐ７のＸ座標値：ＸP7＝（ＸP3＋ＸP0）／２
同  Ｙ座標値：ＹP7＝（ＹP3＋ＹP0）／２
Ｐ８のＸ座標値：ＸP8＝（ＸP0＋ＸP1＋ＸP2＋ＸP3）／４
同  Ｙ座標値：ＹP8＝（ＹP0＋ＹP1＋ＹP2＋ＹP3）／４
【００３９】
形状特定点Ｐ４〜Ｐ８のＺ座標値は、中点Ｑ０〜Ｑ４のＺ座標値及び乱数から、以下のようにして求められる。
Ｐ４のＺ座標値：ＺP4＝（ＺP0＋ＺP1）／２＋ｒａｎｄｏｍ（１）
Ｐ５のＺ座標値：ＺP5＝（ＺP1＋ＺP2）／２＋ｒａｎｄｏｍ（１）
Ｐ６のＺ座標値：ＺP6＝（ＺP2＋ＺP3）／２＋ｒａｎｄｏｍ（１）
Ｐ７のＺ座標値：ＺP7＝（ＺP3＋ＺP0）／２＋ｒａｎｄｏｍ（１）
Ｐ８のＺ座標値：ＺP8＝（ＺP0＋ＺP1＋ＺP2＋ＺP3）／４＋ｒａｎｄｏｍ（１）
一方、第２の形態で乱数を発生させた場合の形状特定点Ｐ４〜Ｐ８のＺ座標値は、以下のようになる。
Ｐ４のＺ座標値：ＺP4＝（ＺP0＋ＺP1）／２＋ｒａｎｄｏｍＡ（１）
Ｐ５のＺ座標値：ＺP5＝（ＺP1＋ＺP2）／２＋ｒａｎｄｏｍＡ（１）
Ｐ６のＺ座標値：ＺP6＝（ＺP2＋ＺP3）／２＋ｒａｎｄｏｍＡ（１）
Ｐ７のＺ座標値：ＺP7＝（ＺP3＋ＺP0）／２＋ｒａｎｄｏｍＡ（１）
Ｐ８のＺ座標値：ＺP8＝（ＺP0＋ＺP1＋ＺP2＋ＺP3）／４＋ｒａｎｄｏｍＡ（１）
【００４０】
図５は、このようにして生成された新たな形状特定点Ｐ４〜Ｐ８と当初の形状特定点Ｐ０〜Ｐ３とから特定される３次元フラクタル図形のイメージ図である。新たな形状特定点Ｐ４〜Ｐ８は、図５において“×”で示されている。
【００４１】
図５のような図形をさらに細分化する場合は、ステップＳ１０９以降の処理を再度行う（ステップＳ１１３：No）。細分化するかどうかは、例えば操作装置２３から更なる細分化の指示を受け付けたかどうか、あるいは確定指示を受け付けたかどうかで判定する。
いずれにしても、細分化する場合、先に算定した形状特定点Ｐ４〜Ｐ８のＸ、Ｙ、Ｚ座標値は形状特定点記憶部１０１に記憶され、先の説明における形状特定点Ｐ０〜Ｐ３と同様に扱われる。つまり、形状特定点Ｐ０〜Ｐ８を形状特定点Ｐ０〜Ｐ３と同様に扱って中点分割部１０３によるステップＳ１０３の処理を行う。
【００４２】
さらなる細分化は、すべての形状特定点Ｐ０〜Ｐ３から特定されるすべての四角形部分について行ってもよく、一部の四角形部分についてのみ行ってもよい。以下、一部の四角形部分についての細分化、すなわち図５の形状特定点Ｐ０、Ｐ４、Ｐ８、Ｐ７から特定される四角形部分についての細分化を行う場合の例を挙げる。
まず、形状特定点Ｐ０、Ｐ４、Ｐ８、Ｐ７のＸ、Ｙ、Ｚ座標値から、ＸＹ平面に射影したときに形状特定点Ｐ０、Ｐ４、Ｐ８、Ｐ７により形成される四角形の各辺の中点Ｒ０〜Ｒ３のＸ、Ｙ、Ｚ座標値及び四角形の対向する辺の中点を結ぶ仮想線の中点Ｒ４を算定する。これらの中点Ｒ０〜Ｒ４は、図５において“□”で示されている。
中点Ｒ０のＸ座標値ＸR0、Ｙ座標値ＹR0、Ｚ座標値ＺR0は、以下のようになる。
ＸR0＝（ＸP0＋ＸP4）／２
ＹR0＝（ＹP0＋ＹP4）／２
ＺR0＝（ＺP0＋ＺP4）／２
中点Ｒ１、Ｒ２、Ｒ３のＸ座標値、Ｙ座標値、Ｚ座標値についても、同様の要領で算定される。因みに中点Ｒ４のＸ座標値ＸR4、Ｙ座標値ＹR4、Ｚ座標値ＺR4は、以下のようになる。
ＸR4＝（ＸP0＋ＸP4＋ＸP8＋ＸP7）／４
ＹR4＝（ＹP0＋ＹP4＋ＹP8＋ＹP7）／４
ＺR4＝（ＺP0＋ＺP4＋ＺP8＋ＺP7）／４
【００４３】
このうち、Ｘ，Ｙ座標値は、乱数発生部１０４に送られる。
乱数発生部１０４では、再び乱数を発生させる。乱数の種には、中点Ｒ０〜Ｒ４の各々のＸ、Ｙ座標値を用いる。例えば、中点Ｒ０による乱数の種は、「ｓｅｅｄ＿ｒａｎｄｏｍ（ｆ（ＸR0、ＹR0））」となる。また、乱数の発生する数値範囲は、先程とは異なったものとする。例えば前出のＺ座標値の標準偏差σの１／２にする。このようにして発生する乱数を、「ｒａｎｄｏｍ（１／２）」と記す。
【００４４】
座標決定部１０５では、中点分割により得られた中点Ｒ０〜Ｒ４の座標値と、乱数発生部１０４で発生させた乱数とから新たな形状特定点のＸ、Ｙ、Ｚ座標値を決定する。この処理は、先程と同様に行う。このようにして、図６において“△”で示される新たな形状特定点Ｐ９、ＰＡ、ＰＢ、ＰＣ、ＰＤのＸ、Ｙ、Ｚ座標値が決定され、図形データが再度更新される。また、形状特定点Ｐ９、ＰＡ、ＰＢ、ＰＣ、ＰＤのＸ、Ｙ、Ｚ座標値が形状特定点記憶部１０１に記憶される。
【００４５】
形状特定点Ｐ４、Ｐ１、Ｐ５、Ｐ８から特定される四角形部分、形状特定点Ｐ８、Ｐ５、Ｐ２、Ｐ６から特定される四角形部分、形状特定点Ｐ７、Ｐ８、Ｐ６、Ｐ３から特定される四角形部分の細分化を行う場合も、同様の要領でＸ、Ｙ、Ｚ座標値を算定することができる。
【００４６】
細分化に際しては、これを繰り返す度に、乱数発生部１０４で発生する乱数の発生する数値範囲を、１／２ずつ狭くしていく。これにより、得られる３次元フラクタル図形がより自然な図形となる。
【００４７】
ステップＳ１０８において形状を細分化しないと判定した場合（ステップＳ１０９：No）あるいは細分化を終了する場合は（ステップＳ１１３：Yes）、ワークメモリに保存されている図形データをＧＰＵ３１の描画制御部３１１に送出して、図形データの生成処理を終える。
描画制御部３１１は、この図形データに基づいてフレームメモリ３２への描画処理を行う。描画されたデータはＣＲＴＣ３３を通じてディスプレイに送出される。これにより、ディスプレイに３次元フラクタル図形が表示される。
【００４８】
このように、本実施形態では、形状特定点のＸ、Ｙ座標値を乱数の種に用いて乱数を発生させ、この乱数によって当該形状特定点のＺ座標値を算定するようにしたので、Ｚ座標値はＸ、Ｙ座標値に依存し、その値がＸ、Ｙ座標値によって一意に決まる。そのため、その形状特定点を含んで形成される３次元フラクタル図形を何度描画しても、また、他の３次元フラクタル図形の描画後に描画しても、常にほぼ同じ形状のものを得ることができる。
【００４９】
このことを、従来の課題との関係で説明する。
図７は、ディスプレイの１画面で１ブロックしか表示できない４つのブロックＡ〜Ｄから構成される画像内に、それぞれ３次元フラクタル図形があり、ゲームにおいて登場するキャラクタＭが、この画像内のブロック間を動き回る場合を想定する。
キャラクタＭが隣のブロックに移動すると、表示されている画像が切り替わり、３次元フラクタル図形もその都度新たに生成される。
３次元フラクタル図形を特定するための個々の形状特定点の高さ（Ｚ座標値）は乱数によって決定されるが、従来手法では、この乱数の種として、直前の形状特定点の高さを決定する際に発生させた乱数を用いていた。そのため、ブロックが切り替わるときに、３次元フラクタル図形同士のつなぎ目部分ａ１が一致せず、不自然な表示態様になることがあった。
また、キャラクタＭが、ブロックＡ→ブロックＤ→ブロックＣ→ブロックＢからなる第１経路Ｒ１を経て目標点ａ２に到達する場合と、ブロックＡ→ブロックＢからなる第２経路Ｒ２で同じ目標点ａ２に到達する場合とで、その目標点ａ２の高さが異なる場合があり、この場合も不自然な表示態様になることがあった。
この実施形態の図形生成装置では、このように複数のブロックから構成される画像内に３次元フラクタル図形があり、それらが逐次切り替わる場合であっても、個々の形状特定点のＸ、Ｙ座標値から一意に定まる乱数によってその形状特定点のＺ座標値が決まるので、各ブロックの境界部分で３次元フラクタル図形のつなぎ目ａ１が不一致になることがなく、また、キャラクタＭが異なる経路を経てブロックＡからブロックＢの目標点ａ２に到達する場合であっても、その目標点ａ２の高さが異なることがなくなる。
【００５０】
なお、この実施形態では、各形状特定点を中点分割して中点のＸ、Ｙ、Ｚ座標値を求め、そのうちＸ、Ｙ座標値を種として乱数を発生させ、その乱数に基づいてその中点のＺ座標値を決定し、Ｘ、Ｙ、Ｚ座標値が定まった中点を新たな形状特定点とする場合の例を示したが、新たな形状特定点の生成は、必ずしも中点によらなくともよく、形状特定点間の任意の点を用いてそれを行うようにしてもよい。また、中点又は任意の点については、Ｘ、Ｙ座標値のみを算定し、これをそのまま乱数の種として用いるようにしてもよい。
また、この実施形態では、コンピュータグラフィクスによって図形を描画することを前提としたために３次元フラクタル図形を例に挙げたが、本発明の手法は、フラクタル図形以外の他の３次元図形についても同様に適用が可能なものである。
＜変形例＞
本発明は、２次元図形の場合であっても同様に適用が可能である。以下、この場合の実施の形態を説明する。
図形生成装置としては、図１に示した情報処理装置１にコンピュータプログラムを読み込ませることによって形成される図２の機能のものをそのまま用いることができる。
ここでは、図８に示される５つの形状特定点Ｐ２０〜Ｐ２４によって特定される２次元図形を細分化する場合の例を挙げる。この場合の図形データの生成手順は、以下のようになる。
【００５１】
まず、形状特定点記憶部１０１から、５つの形状特定点Ｐ２０〜Ｐ２４のＸ、Ｙ座標値を読み込み、これらの形状特定点Ｐ２０〜Ｐ２４をＸ軸上に射影したときに隣接する位置にある形状特定点間の中点のＸ、Ｙ座標値を中点分割部１０３により求める。
次に、求めた中点のＸ座標値を乱数の種として、乱数発生部１０４で乱数を発生させ、この発生した乱数によって中点のＹ座標値を確定する。この確定したＹ座標と乱数を発生させる際に乱数の種となったＸ座標値とから定まる点を新たな形状特定点とし、これらのすべての形状特定点の座標値を含んで、２次元図形についての図形データを生成する。
図９におけるＰ２５〜Ｐ２８が、細分化によって得られた新たな形状特定点である。このようにして新たな形状特定点Ｐ２５〜Ｐ２８を生成していくことにより、その形状が滑らかで、より自然な形状になっている２次元図形についての図形データを再現性よく生成することができる。
【００５２】
なお、形状特定点については、Ｘ、Ｙ座標値を読み込むことなく、Ｘ座標値のみを読み込み、あるいはＸ座標値を算定して、これを乱数の種としてもよいことは、３次元図形の場合と同様である。また、必ずしも中点によらず、既にある形状特定点間の任意の点のＸ座標を乱数の種として当該点のＹ座標値を算定し、これによってＸ、Ｙ座標値が定まった点を新たな形状特定点としてもよい。
【００５３】
なお、本実施形態では、操作装置２３からの指示を外部指示として２次元又は３次元の図形を細分化していく要領について説明したが、外部指示は、コンピュータプログラムからの指示であってもよい。また、ディスプレイに図形を表示するときの解像度（拡大率）に応じて細分化するかどうかを自動的に判定するようにしてもよい。この場合は、解像度に対する図形の詳細度（どの倍率表示ではどの位細分化する必要があるかどうか）を定めたテーブルをＣＰＵ１０内に別途用意しておくようにすると、図形データ生成の処理が迅速になって好ましい。
また、以上説明した図形生成装置の中心をなす各機能ブロックは、家庭用の汎用コンピュータ装置などに、本発明にかかる記録媒体に記録されたコンピュータプログラムをインストールし、これをその汎用コンピュータ装置のＣＰＵに読み込ませて実行させることによって実現することも可能である。
【００５４】
【発明の効果】
以上の説明から明らかなように、本発明によれば、複数の形状特定点のうち少なくとも一部の形状特定点の位置が、既定の座標値と可変の座標値とによって表される場合に、いずれかの形状特定点における既定の座標値を種（seed)として乱数を発生させ、この乱数に基づいて可変の座標値を算定することで当該形状特定点の位置を決定するようにしたので、可変の座標値が既定の座標値に依存してのみ決まり、乱数によって図形の形状を決定する際の不自然さを回避することができるようになる。
【図面の簡単な説明】
【図１】本発明が適用される情報処理装置の内部構成図。
【図２】この実施形態による図形生成装置の機能構成図。
【図３】この実施形態による図形データを生成する手順を示したフローチャート。
【図４】３次元フラクタル図形のイメージを示した説明図。
【図５】細分化される３次元フラクタル図形のイメージを示した説明図。
【図６】より細分化される３次元フラクタル図形のイメージを示した説明図。
【図７】本実施形態による効果を発明の課題との関係で示した説明図。
【図８】２次元図形の例を示した説明図。
【図９】細分化される２次元図形のイメージを示した説明図。
【符号の説明】
１０    ＣＰＵ
３１    ＧＰＵ
１０１  形状特定点記憶部
１０２  入力制御部
１０３  中点分割部
１０４  乱数発生部
１０５  座標決定部
１０６  図形データ生成部
３１１  描画制御部
【図１】
0003647779.tif 000002
【図２】
0003647779.tif 000003
【図３】
0003647779.tif 000004
【図４】
0003647779.tif 000005
【図５】
0003647779.tif 000006
【図６】
0003647779.tif 000007
【図７】
0003647779.tif 000008
【図８】
0003647779.tif 000009
【図９】
0003647779.tif 000010