(57)【特許請求の範囲】
【請求項１】
背景画像上を移動するオブジェクトの位置情報と、該オブジェクトが該背景画像の水面に影響を与える範囲を設定する情報とが入力され、  前記オブジェクトの位置が前記水面に影響を与える範囲に入ったことを検出する手段と、  前記検出手段による検出がなされたときに、前記オブジェクトの近傍の画像について、予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、  分割したスライス領域毎に、ずらし幅を発生する手段と、  前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして背景画像に重ね書きする手段とを設けたことを特徴とする映像生成装置。
【請求項２】
請求項１に記載の映像生成装置であって、前記ずらし幅発生手段は、  前記検出手段による検出がなされた後にずらし幅の出力を開始し、当該検出に対するずらし幅を経時的に減衰させることを特徴とする映像生成装置。
【請求項３】
請求項１又は請求項２に記載の映像生成装置であって、予め作成された影のパターンを予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、  前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして、被加工画像上に描画されたオブジェクトの近傍に重ね書きする手段とを設けたことを特徴とする映像生成装置。
【請求項４】
被加工画像上に描画されるオブジェクトの位置情報と、被加工画像に含まれる水面の位置情報とに基づいて、該オブジェクトが該水面に写映する位置を算出する手段と、  予め作成された影のパターンを予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、  分割したスライス領域毎に、ずらし幅を発生させる手段と、  前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして、前記写映する位置に重ね書きする手段とを設けたことを特徴とする映像生成装置。
【請求項５】
前記ずらし幅発生手段は、前記オブジェクトの移動ベクトルに対応して、ずらし幅を加えることを特徴とする請求項１乃至請求項４に記載の映像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は映像生成装置に関し、特に水面を含む映像を表示する装置に関する。
【０００２】
【従来の技術】
近年のパーソナルコンピュータ等の情報処理装置の性能の向上に伴い、家庭で用いられるような情報処理装置においてもコンピュータグラフィックスを用いてかなり高品質の動画像を生成して表示することが可能となったが、更なる動画像の表示品質の向上が望まれている。
【０００３】
【発明が解決しようとする課題】
ところで湖や池など、静かな水面を含む風景の映像は、気持ちを落ちつかせることもあるためか、好んで用いられる映像の一つと言える。
実際の湖や池などの静かな水面では、微小な風などの動き、降雨、あるいは鳥や魚などの動きにより、水面に波紋や揺らぎや波ができたり、水しぶきがあがったりする。また水辺の植物や建物を写す鏡になったり、上空を飛ぶ鳥等の影が写ったりする。
【０００４】
コンピュータグラフィックスにおいても、上記のような動きのある水面の映像を生成して表示できれば、その映像全体にリアリティを与えることができる。
しかし上記の動きをシミュレートしつつ、リアルタイムに動画像を生成することは、性能が向上したとは言え現在のパーソナルコンピュータの処理能力では困難であった。
【０００５】
特にゲームのキャラクタや人工生物（コンピュータ上にあたかも住んでいるように見える自立したオブジョクトを、シミュレーションにより生成する）等のオブジェクトが、水面を含む背景画像上を動き回るような動画像においては、一定の動きではないオブジェクトの動きに追随してリアルタイムに動画像を生成しなくてはならない。
【０００６】
本発明は上記の課題に基づきなされたものであり、水面の微妙な動きやオブジェクトにより作られる影、波の様子をリアルタイムで表示できる映像生成装置を提供するものである。
【０００７】
【課題を解決するための手段】
上記の課題を解決するためになされた第一の発明の映像生成装置は、
被加工画像と、該被加工画像中にある水面の領域を定義する情報とが入力され、前記被加工画像のうち前記水面領域情報により定義された領域について、予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、分割したスライス領域毎に、ずらし幅を発生させる手段と、前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして被加工画像に重ね書きする手段とを設けたことを特徴とする。
【０００８】
本発明では水面を横長（あるいは縦長）のスライス領域に分割して、このスライス領域を横方向（あるいは縦方向）に、ランダムな幅でずらす。被加工画像は動画像であって、１フレーム毎（あるいは所定時間毎、所定フレーム毎）に映像生成装置に入力をすれば、その度に新たなずらし幅でスライス領域がずらされて描画がなされるので、水面の定常的な揺らぎ（ゆらめき）を表現することができる。
【０００９】
上記の課題を解決するためになされた第二の発明の映像生成装置は、
背景画像上を移動するオブジェクトの位置情報と、該オブジェクトが該背景画像の水面に影響を与える範囲を設定する情報とが入力され、前記オブジェクトの位置が前記水面に影響を与える範囲に入ったことを検出する手段と、前記検出手段による検出がなされたときに、前記オブジェクトの近傍の画像について、予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、分割したスライス領域毎に、ずらし幅を発生する手段と、前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして背景画像に重ね書きする手段とを設けたことを特徴とする。
【００１０】
これはオブジェクトが生成する水面の揺らぎを表現するためのものであり、第一の発明と同様に、スライス領域毎にずらす描画を所定時間（あるいは所定フレーム）毎に繰り返すことにより、水面の揺らぎを描画することができる。なお第二の発明でのずらし幅は、第一のずらし幅よりも大きくすることが望ましい。これは第二の発明はオブジェクトが生起する揺らぎを表現するため、単なるゆらめきよりも動きを大きくする必要があるためである。
【００１１】
上記の課題を解決するためになされた第三の発明の映像生成装置は、
予め作成された影のパターンを予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、分割したスライス領域毎に、ずらし幅を発生させる手段と、前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして、被加工画像上に描画されたオブジェクトの近傍に重ね書きする手段とを設けたことを特徴とする映像生成装置。
【００１２】
これは水面上に浮かんでいるようなオブジェクトにより起きる影を表示するためのものである。この発明においても、スライス領域毎にランダムにずらしていくことを、所定時間あるいは所定フレーム毎に繰り返すことにより、影が微妙にゆらめいているさまを表現することができる。
上記の課題を解決するためになされた第四の発明の映像生成装置は、
被加工画像上に描画されるオブジェクトの位置情報と、被加工画像に含まれる水面の位置情報とに基づいて、該オブジェクトが該水面に写映する位置を算出する手段と、予め作成された影のパターンを予め定められた方向に沿って分割することにより、複数のスライス領域を作成する手段と、分割したスライス領域毎に、ずらし幅を発生させる手段と、前記スライス領域を前記分割方向に沿って、前記発生したずらし幅だけずらして、前記写映する位置に重ね書きする手段とを設けたことを特徴とする。
【００１３】
これは水上に存在するオブジェクトが作る影や、水中に潜っているオブジェクトが写りこんでできる影を描画するものである。写映位置について上記分割したスライス領域をランダムにずらしていくことを所定時間あるいは所定フレーム毎に繰り返して、影が微妙にゆらめいているさまを表現する。
この第三または第四の発明において、影が移動する場合は、その影の移動方向に基づいて影を変形させることが望ましい。これは、オブジェクトの移動に伴って影が追随して移動するさまを表現するためのものである。なお実世界での影は光のあたる物体の移動方向によって変形することなど無いが、本発明は厳密な実世界のシミュレーションよりも表示効果を追求することを目的とするものである。
【００１４】
このため、ずらし幅発生手段は、前記オブジェクトの移動ベクトルに対応して、ずらし幅を加えることにより、影をオブジェクトの移動方向に基づいて変形させることが望ましい。
上記の課題を解決するためになされた第五の発明の映像生成装置は、
被加工画像上に描画されるオブジェクトの現在の位置情報と、所定時間前のオブジェクトの位置情報と、被加工画像に含まれる水面の位置情報に基づいて、該オブジェクトが被加工画像に含まれる水面を通過したことを検出する手段と、前記オブジェクトの位置情報および／または前記所定時間前のオブジェクトの位置情報と、前記水面の位置情報とに基づいて、描画する楕円形の中心点の座標を算出する手段と、描画する楕円形の大きさを決定する手段と、前記算出された中心点と、前記決定した大きさに基づいて楕円形を被加工画像に重ね書きする楕円形描画手段とを含み、前記楕円形描画手段は複数回描画を繰り返すと共に、前記楕円形の大きさを決定する手段は、後で描画される楕円形ほど大きくなるように大きさを決定することを特徴とする。
【００１５】
本発明は波紋を表示するために、楕円をフレーム毎に大きくして表示していくものである。
さらに、楕円形描画手段は、描画すべき楕円形のピクセルの近傍のピクセルの色をコピーして描画を行なうものであって、後で描画される楕円形ほどコピーされるピクセルと描画するピクセルとの距離を小さくしていき描画することにより、最初に発生する楕円のピクセルは表示色と周囲のピクセルの表示色の差が大きく、後に発生する楕円はだんだん周囲のピクセルと色が近くなっていくので、楕円が大きくなりつつ色がだんだん周囲の水面になじんでいくように表示され、実際の水面に発生する波紋に近いリアリティのある画像が生成できる。
【００１６】
さらに楕円形描画手段は、前記楕円形中心点算出手段で算出された中心点から微小にずれた中心点を有する複数の楕円形を、大きさを微小にずらして重ね書きを行なうことにより、波紋の高さを表現でき、より質感の高い波紋の映像を作成することができる。
上記の課題を解決するためになされた第六の発明の映像生成装置は、
仮想三次元空間を所定の視点から投影して作成した二次元画像に含まれる水面の領域を複数の領域に分割する手段と、該複数に分割された領域を、仮想三次元空間上での高さ方向に引き延ばす手段とを設け、対応する仮想三次元空間上での奥行きの順番で、所定時間毎に順次上記引き延ばす手段によって領域を仮想三次元空間での高さ方向に引き延ばしていくことを特徴とする。
【００１７】
これは水面の奥から手前、あるいは手前から奥にかけて、順番に波が盛り上がっていくさまを表現することにより、波が押し寄せてくる（あるいは遠ざかっていく）さまを表現するためのものである。
なお、本発明での「仮想三次元空間を所定の視点から投影して作成した二次元画像」とは、主に仮想三次元空間で動き回るオブジェクトについてシミュレーションを行い、それを二次元画像上に表示することを想定している。但しこの構成に限定されるものではなく、単に立体感のある（三次元的）な絵を描いて、これを二次元画像で表示する場合に、この絵に含まれる水面の領域に適用した実施態様を排除するものでは無い（以下の発明でも同様）。
【００１８】
上記の課題を解決するためになされた第七の発明の映像生成装置は、
仮想三次元空間を所定の視点から投影して作成した二次元画像に含まれる水面の領域上で、波を描画するラインを複数本設定するために、該ラインの奥行き方向の初期位置を設定する手段と、該複数本のライン毎に、水面の表示色と異なる波の表示色を表示するピクセルと、水面の表示色のままのピクセルとを設定する制御データを設定する手段と、前記複数本のラインの描画位置と、初期位置とのずらし幅を設定する手段と、前記ラインの描画位置にある、前記制御データ設定手段により設定されたピクセルについて、前記波の表示色を描画する手段とを設け、前記ずらし幅を描画タイミングごとにずらしつつ、前記波の表示色描画手段により描画を行なうことを特徴とするものである。
【００１９】
これは波が順次おしよせていくさまを表現するためのものである。さらに、表示タイミング毎に（所定時間あるいは所定フレーム毎に）、１ラインの描画色を、水面より明るい色と水面より暗い色とに交互に表示していくことにより、更にリアリティを持たせることができる。
なお上記第六の発明は、仮想的な視点から見て近距離にある水面に適用することが望ましく、上記第七の発明は、遠距離にある水面に適用することが望ましい。
【００２０】
上記課題を解決するためになされた第八の発明の映像生成装置は、
被加工画像の水面を示す領域に、ランダムにしぶきを発生させる座標点を設定する手段と、該座標点に、予め作成されたしぶきの映像を表示する手段と、該座標点を中心に、所定時間または所定フレーム毎に大きくなる楕円を描画する手段とを有することを特徴とする。
【００２１】
この構成により、雨が水面に落ちたことにより発生する水しぶきと、波紋とを、効果的に表示することができる。
上記課題を解決するためになされた第九の発明の映像生成装置は、
仮想三次元空間を所定の視点から投影して作成した二次元画像に含まれる水面の領域上で、雨のしぶきを表現するための複数のを設定する手段と、該複数の領域に対応するライン毎に、水面の表示色と異なる波の表示色を表示するピクセルと、水面の表示色のままのピクセルとを設定する制御データを設定する手段と、前記ラインの描画位置を、前記領域の範囲中にランダムに設定する手段と、前記ラインの描画位置にある、前記制御データ設定手段により設定されたピクセルについて、前記波の表示色を描画する手段とを設けることを特徴とする。
【００２２】
これは水が落ちる位置をランダムにきめて、雨が水面に落ちる様子を表現するものである。
なお、上記第八の発明は、仮想的な視点から見て近距離の水面に適用することが望ましく、上記第九の発明は、遠距離に適用することが望ましい。
【００２３】
【発明の実施の形態】
以下、本発明の好ましい実施形態を、図面を用いて説明する。
まず、下記の実施形態の前提について説明する。
本実施形態はいずれも仮想的に設定された三次元空間の座標系（ｘ，ｙ，ｚ）を、ある視点から見た場合の投影図を作成し、この投影図を表示するものである。従って三次元空間に存在するオブジェクトは、二次元のＵ−Ｖ座標系に変換されて表示される。視点の仮想三次元空間上での位置が定まれば、三次元空間の座標系が投影された二次元座標系に変換することは周知技術である。
【００２４】
一方、水面を含む画像（原画像：請求の範囲における「被加工画像」に相当）は言わば風景であるので、あらかじめ二次元画像に投影された画像を用意しておき、オブジェクトをこの原画像の上に描画することにより、表示画像を作成する。なお原画像は二次元座標系の画像であっても、表示されている物体（山、木など）は仮想三次元空間の奥行き情報ｚを有しており、オブジェクトのｚの位置によってはオブジェクトが山等に隠れる場合もある。この処理については、本発明の出願人が先に出願した特願平７−２５１３６９号を参照されたい。
【００２５】
また、原画像に含まれる水面は、全てのピクセルが同じ色で表示されるわけでなく、水辺にある木々や建物等が写りこんだ様子が描かれていたりする他、写り込みのない水面もピクセル毎に微妙に色合いを変化させることにより、質感を与えている。
・実施形態１：水面の定常的な揺らぎを表示する装置
図１は本実施形態における揺らぎ生成装置の構成を説明する図である。
【００２６】
原画像１１は本実施形態で表示される映像の一例であって、山と、山が写りこんだ湖とが表示された風景となっている。山や、その背後の空は静止画像であるか、もしくは時間や天候の経過により色あいなどが変化したりゆっくり雲が動いたりするような、急激な変化の無い動画像である。本実施態様では、水面である湖について、微妙な揺らぎを与えて表示することにより、よりリアリティを増すようにするものである。
【００２７】
このために、原画像のうち揺らぎが発生する領域を定義する揺らぎ領域情報１２と、与えるべき揺らぎの激しさ（ずらし幅の最大値）ｕｕを、揺らぎ発生装置１３に与える。揺らぎ領域情報１２は、原画像１１に対応する水面の領域を定義するものであり、上記の例では湖面に対応する部分を定義しておくように、予め作成されている。なお、原画像１１と揺らぎ領域１２は、いずれもＵ−Ｖ座標系の二次元画像となっている（縦方向の座標値がＵ，横方向の座標値をＶで表す。）
この揺らぎ生成部１３は、図２のフローチャートに示す動作を実行することにより、原画像１１のうち、揺らぎ領域情報１２で定義された領域に、揺らぎを与える。この図２の処理について説明する。
【００２８】
まず上述したように、原画像１１と、揺らぎ領域情報１２と、ずらし幅の最大値ｕｕとが入力される（ステップ２１）。
次に原画像１１のうち、揺らぎ領域情報１２にて定義された領域を切り出し、１ピクセル幅の横長の領域（これをスライスと称する）に分割する（ステップ２２）。このスライスの例を図３を用いて説明する。
【００２９】
図３（イ）は、原画像の揺らぎ領域と、その揺らぎ領域の近傍（ずらす幅ｕｕだけ左右に広い領域）とを示している。この原画像のスライスについて、以下のステップ２３〜２５の処理を、動画像の１フレーム毎、あるいは所定時間毎（図３の例では０．１ｓｅｃ毎）に繰り返すことにより、揺らぎ画像（ロ）〜（ニ）を生成する。このステップ２３〜２５の繰り返し処理について、図２に戻り説明する。
【００３０】
まずずらし幅ｕを、−ｕｕからｕｕの範囲の乱数として生成する（ステップ２３）。
次に、生成されたずらし幅ｕだけずらした位置に描画を行なう。（ステップ２４）。
このステップ２３と２４の処理が終了したら、次の（下の）スライスについて同様の処理を行い、全てのスライスについて描画していく（ステップ２５）。
【００３１】
なお、図３（ロ）〜（ニ）で、ずらした結果空白で表示されているピクセルには、実際には元の原画像のピクセルと同一の値が描画される。
・実施形態２：オブジェクトの進入等による水面の乱れを表示する装置
図４は実施形態２の揺らぎ生成装置の構成を説明する図である。
４１は原画像である。この原画像４１は静止画像でも良いが、実施形態１で説明した水面の揺らぎ生成が行なわれた画像でも良い。より望ましいのは、後述するオブジェクト揺らぎ領域情報４２で定義される揺らぎ領域については図５で示す処理を実行し、該揺らぎ領域情報４２で定義された領域を除く水面の揺らぎ領域（実施形態１の揺らぎ領域情報１２に相当するが、図４では省略している）については、実施形態１にて説明したような定常的な揺らぎ生成処理を行なうようにすることである。
【００３２】
４２のオブジェクト揺らぎ領域情報は、原画像４１を背景として動き回るオブジェクトが、原画像４１の水面に飛び込んだ場合などに、水面に影響を与える範囲を定義するものである。なお上述したように、原画像４１および出力画像４４は上記実施形態１と同様に、Ｕ−Ｖ座標系（二次元座標系）で表現されるが、このＵ−Ｖ座標系は、（ｘ，ｙ，ｚ）で表される仮想的な三次元空間（三次元座標系）を、手前にある視点から見た画像として表現されるものである。オブジェクトは三次元空間を動き回るように演算されるが、このオブジェクトの三次元上の座標位置からＵ−Ｖ座標系に変換された上で、原画像に重畳されて表示がなされる。この場合、オブジェクトの表示される大きさは、仮想的な三次元空間の奥行きｚの大きさに応じて変化し、手前にあれば大きく、奥にあれば小さく表示されるが、オブジェクト揺らぎ領域４２もＵ−Ｖ座標系における最大値（ｗ，ｈ）を表示されるオブジェクトに対応して用意しておき、オブジェクトの表示される大きさに応じて実際の揺らぎ領域を変化させるようにする。
【００３３】
４３は揺らぎ生成部であって、図５のフローチャートに示す処理を行い、出力画像４４を出力するものである。以下、この処理を図５に基づき説明する。
まず原画像４１と、表示すべきオブジェクトの仮想三次元空間上の座標値（ｘ，ｙ，ｚ）と、原画像の仮想三次元空間上において、オブジェクトが水面に対して影響を与えるであろう高さの範囲ｙｔ，ｙｂ（原画像にあわせて、予め設定しておく）が入力される（ステップ５１）。
【００３４】
次にオブジェクトの仮想三次元空間上のｙ座標値が、上記ｙｔからｙｂの間にあるか否かを検出して、範囲中であれば、オブジェクトのＵ−Ｖ座標系における位置（仮想三次元空間上の位置（ｘ，ｙ，ｚ）より変換する）に基づいて、揺らぎを生成する領域を決定する。領域の大きさは、上述したようにオブジェクトの三次元仮想三次元空間上の奥行きの位置ｚに基づいて（表示されるオブジェクトの大きさに応じて）、手前にあれば大きくし、遠方にあれば小さくする（ステップ５３）。
【００３５】
つぎに、カウンタ値ｃｎｔを予め定義しておいた揺らぎ時間ｔ＿ｍａｘの値に設定する（ステップ５４）。この揺らぎ時間ｔ＿ｍａｘは、オブジェクトが水面に影響（揺らぎ）を与えた場合には、ある程度の時間は揺らぎが残るはずなので、この揺らぎが残る時間を定義しておくものである。カウンタ値ｃｎｔは１フレーム毎に減算されていくものであり、ｃｎｔ＝０になった時点で、揺らぎは表示されなくなる。
【００３６】
そして原画像のうちステップ５３にて決定された領域について、実施形態１のステップ２２および図３にて説明した処理と同様に、１ピクセル幅の横長の領域であるスライスに分割を行なう（ステップ５５）。
続いてずらし幅の最大値ｕｕの決定を行なう（ステップ５７）。このずらし幅ｕｕの初期値は、一般的には実施形態１でのずらし幅に比べて大きな値にすることが望ましい。これは実施形態１は定常的な微小な揺らぎを表現するものであるのに対し、本実施形態２は例えば鳥や魚等が波紋を立てた場合に起きる、定常的な揺らぎよりも大きな揺らぎを表現するためである。
【００３７】
また、今回の処理で与えるずらし幅の最大値ｕｕについては、カウンタ値ｃｎｔの値により変化させる。一般的には、ｃｎｔが小さくなるほどｕｕの値も小さくさせる。これは揺らぎが発生してから減衰していく様子を表現するためのものである。
そして１スライス毎に与えるずらし幅ｕを、−ｕｕ〜ｕｕの範囲の乱数として計算し（ステップ５８）、スライスを横方向にｕずらした位置に描画を行なう（ステップ５９）。この描画例は、図３と同様である。
【００３８】
そして全てのスライスを描画したか否かを判定して（ステップ５０）、ステップ５８、５９を繰り返していく。
なお、ステップ５２でオブジェクトがｙｂからｙｔの範囲でなくても（ｎｏの場合）、ｃｎｔをデクリメントした上でなお０にならなければ（ステップ５６）、まだ揺らぎが発生してからの時間がｔ＿ｍａｘに達しておらず、余韻の揺らぎを表示すべき時間であるので、ステップ５７〜５９の処理により揺らぎの描画を行なう。
・実施形態３：水面上を移動するオブジェクトによる影の生成
図６は影の描画装置の構成を示すブロック図である。
【００３９】
本実施形態では、水面を移動するオブジェクトにより発生する影を、リアリティを持たせて表示させるものである。
６１はオブジェクトの座標情報であり、水面上を移動するオブジェクトの仮想三次元空間上での位置（ｘ，ｙ，ｚ）が、表示画像での二次元座標系であるＵ−Ｖ座標系の座標値（ｕ０，ｖ０）に変換されたものである。なお原画像中の水面の値ｙ（つまり仮想三次元空間での高さ）は予め定められているので、ｘ，ｚの値が定まれば、仮想的な視点の位置に基づいて、二次元座標系の座標値には容易に変換できる。また、移動するオブジェクトの移動ベクトル（ｕｄ，ｖｄ）、Ｕ−Ｖ座標系で表示されるオブジェクトの横幅ｗ０も、オブジェクト座標情報に含まれる。
【００４０】
６２は影の雛型である。この雛型は予め作成されるものであって、生成される画像の説明図である図８の例（８１）に示すように、上方を底辺とする略二等辺三角形になるような形状で、幅１ピクセルの横長の領域（スライス）で構成され、一番上のスライスが最も長く、下に行くに従ってスライスの長さを短くしていく。なお、雛型８１はスライス毎に色を別けて記載しているが、これは後述するスライスをずらす処理を分かりやすくするためのものであり、実際には１スライス毎に同一の色を用いて表示しているわけでは無い。
【００４１】
また影の色は、背景の水の部分から色の濃い部分を基準に作成すれば、自然な感じを出すことができる。
影描画部６３は、オブジェクト座標情報６１に基づいて影の雛型６２を変形し、原画像６４上に変形した影を描画し、生成画像６５を生成する。この影描画部６３の動作を図７で説明する。
【００４２】
まず図６にて説明したように、オブジェクトの座標情報６１の入力がなされる（ステップ７１）。
つぎに影の縦幅ｈ（スライスの本数）を、オブジェクトの横幅ｗ０に予め定められた係数を乗算することにより算出する（ステップ７２）。
次に算出されたスライスの本数分だけ、変形処理を行なうために、計数値ｉに初期値０をセットする（ステップ７３）。
【００４３】
この計数値ｉがｈに達しない場合は（ステップ７４）、下記のステップ７５〜７８の処理を実行する。
まず横方向の移動がある場合、即ちｕｄが０でない場合には、移動するベクトルの方向に合わせて影を変形するために、スライス毎にずれを与えていく。下のスライスになるに従って移動量を増やしていくために、ベクトル方向に合わせるためのｕｄ／ｖｄに、計数値ｉを乗算して、これを本来の座標値ｕ０に加算する（ステップ７５）。このようにして変形された影を図８の８２に示す。
【００４４】
そしてスライスの描画位置ｕを、予め定められた範囲で適当な乱数を発生させてこれを加算することによりずらす。スライスの縦方向の描画位置ｖはオブジェクトの表示位置ｖ０に計数値ｉを加算した値になる。またスライスの長さは、オブジェクトの長さに対応して、やや長めに（所定の計数の乗算して）算出する。（ステップ７６）。
【００４５】
算出された描画位置にスライスを描画して（ステップ７７）、計数値ｉをインクリメントする（ステップ７８）ことにより、ｈ本のスライスを描画して、影を描画する。この生成された影の例を図８の８４に示す。なおこの影は、８３に示した静止したオブジェクトが、ベクトル（ｕｄ，ｖｄ）方向に移動した場合の例である。
【００４６】
なおこの処理は１フレーム毎に繰り返される。静止状態８３でも（ｕｄ＝０、ｖｄ＝０）、ステップ７５でスライス１本毎に乱数を与えながら描画を行なうので、微妙な影の揺らぎが表現される。
更にオブジェクトが仮想三次元空間上で奥の方（ｚ方向）に移動する場合、影も８５、８６に示すように小さくなっていく。これはステップ７１にて与えられるオブジェクトの大きさｗ０が小さくなっていくことに対応するものである。
・実施形態４：空中および水中のオブジェクトによる影の生成。
【００４７】
上記実施形態４は、水面の上を飛んでいる（浮かんでいる）オブジェクトによる影や、水中を潜っているオブジェクトが写りこんでできる影を表示するものである。
図９は仮想三次元空間における座標系を表しており、上述したようにこの仮想三次元空間を変換することにより、表示する二次元画像を生成している。
【００４８】
水面を表す高さｙ＝ｙｗを基準にすると、オブジェクトの位置座標の高さｙ＞ｙｗであるオブジェクト９１は空中に存在するものであり、ｙ＜ｙｗであるオブジェクト９２は水中に存在するものである。
空中にあるオブジェクト９１の場合はその直下の水面の位置に影を表示し、また水中にあるオブジェクト９２の場合はその直上にある水面の位置に影を表示するようにする。そのために、オブジェクトの座標（ｘ，ｙ，ｚ）を（ｘ，ｙｗ，ｚ）にすればオブジェクトの直上または直下の水面の位置が求まる。
【００４９】
なお、実世界では（厳密に言えば）影は太陽等の光源から出射した光がオブジェクトにあたって水面に投影する位置に表示されるものであるので、同様に仮想的な光源を設定してオブジェクトの影が水面上に投影される位置を演算により求めるようにしても良い。しかし本発明の主旨はパーソナルコンピュータ等で比較的簡単に（重い処理を行なわずに）リアリティのある映像を提供することにある。従って常にオブジェクトの直上または直下に影を表示するようにしても、オブジェクトが移動すれば影もそれに追随して移動するので、見た目には十分リアリティが感じられるので、この実施形態の方が負荷が小さい分、より望ましいと考える。
【００５０】
以上の処理を実行する装置の構成は、実施形態３と同様のものであり、影描画部６３に図１０の処理を行なう機能が追加されたものと考えればよい。以下、図１０の処理について説明する。
まずオブジェクトの仮想三次元空間上の位置（ｘ，ｙ，ｚ）の位置情報と、水面を表す平面の位置ｙ＝ｙｗが入力される（ステップ１０１）。
【００５１】
このオブジェクトの高さの座標ｙをｙｗにすることにより、オブジェクトの位置を水面に写影する（ステップ１０２）。
そして仮想三次元空間上の写影した水面の位置に影を表示するために、座標（ｘ，ｙｗ，ｚ）を表示される二次元座標系（ｕ０，ｖ０）に変換を行なう（ステップ１０３）。
【００５２】
そしてオブジェクトのｕ方向の幅ｗ０を、オブジェクトの仮想三次元空間上の奥行きの位置ｚに基づいて算出する（ステップ１０４）。オブジェクトが手前にあればｗ０は大きく、奥にあればｗ０は小さくする。
そして、影の描画プログラムを起動させる。この描画プログラムは、実施形態３にて説明した図７と同一のものである。但しステップ７１のｕ０、ｖ０は、オブジェクトの位置ではなくステップ１０３で求めた影の位置である。
【００５３】
オブジェクトが空中または水中を移動する場合も、実施形態３と同様に移動ベクトルに基づいて影の形が変形され、移動するオブジェクトに追随する様子がよりリアリティをもって表示される。
・・実施形態５：波紋の生成
図１１は波紋を生成する装置の構成を示すブロック図である。
【００５４】
オブジェクトの仮想三次元空間中の座標情報１１１と、水面の仮想三次元空間上の高さｙｗとを元に、オブジェクトが水面を通過したか否かを波紋発生判定部１１３が判定を行なう。オブジェクトが水面を通過することが波紋の発生条件であるので、通過を判定したときに波紋描画部１１４を起動する。
この波紋発生判定部１１３の処理について、図１２および図１３を用いて説明する。
【００５５】
まず、図１２のフローチャートについて説明すると、上述したようにオブジェクトの仮想三次元空間の座標（ｘ，ｙ，ｚ）と、水面を表す平面の高さｙｗとが入力される。またオブジェクトが水面を通過したか否かを判定するために、該オブジェクトの１フレーム前の高さｙｐも保持しておく（ステップ１２１）。
そして、オブジェクトが水面を通過したかを判定するために、水面の高さｙｗを基準にして、ｙ−ｙｗの符号とｙｐ−ｙｗの符号とを比較して、異なっていれば水面を通過すると判定する（ステップ１２２）。
【００５６】
これは図１３に示すように、現オブジェクト１３１と、１フレーム前のオブジェクト１３２（位置（ｘｐ，ｙｐ，ｚｐ），但しこの処理ではｘｐ，ｚｐは無視する）のそれぞれの高さから水面の高さｙｗを減算すれば、符号が＋ならばオブジェクトが水面より高い位置にあり、符号が−ならばオブジェクトが水面より低い位置となるので、１フレーム間に符号が反転すれば水面を通過したと判定することができる。
【００５７】
ステップ１２２で符号の反転を検出しなければ、この処理を画像が１フレーム毎に更新されるのに伴って繰り返し、符号が反転したのであれば、波紋描画部を起動する（ステップ１２３）。
この波紋描画部の処理について、図１４〜図１６を用いて説明する。
実空間で水面に物体が落ちた場合等に生じる波紋は、斜めからみた映像を考えると、最初は小さい楕円形で波の大きさは大きく、時間がたつにしたがって楕円形は大きくなっていく一方、波の大きさは小さくなっていく。
【００５８】
これを表現するためには、まず時間の経過と波紋の大きさや高さを表現するための情報との対応を表す波紋描画テーブル１１５を用意する。その内容については後述する。
図１４のフローチャートに基づき描画の処理を説明する。まず波紋の表示画面の二次元座標系での位置ｕ０，ｖ０を算出する（ステップ１４１）。これはオブジェクトの仮想三次元空間中の座標のうちｘ，ｚと、水面の高さｙｗに基づき、三次元座標（ｘ，ｙｗ，ｚ）をＵ−Ｖ座標系に変換することにより求める。厳密に言えば１フレーム前のオブジェクトの位置（ｘｐ，ｙｐ，ｚｐ）から現在の（ｘ，ｙ，ｚ）に向かうベクトルが水面に到達した点（ｙ＝ｙｗ）が正確な波紋の中心となり、そのような処理を採用しても良いが、見た目にはそれほど変わりは無いので、上記の方法の方が負荷が軽い分、望ましいと考える。
【００５９】
つづいて時間の経過を表す計数値ｉに初期値０をセットする。
そしてこの計数値がインクリメントされて、予め設定された、波紋が消える時間Ｎに達するまで、ステップ１４３〜１４６の処理が繰り返される。
まず波紋の横幅ｗ（ｉ）と、波紋の縦幅ｈ（ｉ）と、高さを表現するための値ｐｉｃｋ（ｉ）を、波紋描画テーブル１１５より取り出す。
【００６０】
この波紋描画テーブル１１５は、図１５に示すような値ｗ（ｉ），ｈ（ｉ），ｐｉｃｈ（ｉ）と時間ｉとの対応関係を記述したテーブルである。なお、このテーブルは必須ではなく、ｗ（ｉ），ｈ（ｉ），ｐｉｃｈ（ｉ）の関数を用いてその都度算出するようにしても良いが、テーブルを参照する構成にした方が処理速度の点で有利である。
【００６１】
まず、図１５（イ）は、ｗ（ｉ）とｈ（ｉ）と時間Ｎとの対応の関数の例を表すグラフである。このように波紋の大きさは時間が立つにつれて大きくなっていく。波紋描画テーブル１１５にこの対応関係を記述しておくことにより、時間毎の波紋の大きさを簡単に求めることができる。
一方、図１５（ロ）に示すのは、波紋の高さを表現するための情報ｐｉｃｈである。このｐｉｃｈの意味について、図１６を用いて説明する。
【００６２】
まず図１６（イ）は、最初に発生する波紋である。上述したように波紋の大きさは小さく、一方高さは大きく表示しなければならない。この高さを表示するために、本実施形態では近傍のピクセルの色をコピーしていくことにより、楕円を描画する。
上述したように、水面の色あいは微妙に変化をさせている。これは、あるピクセルと隣のピクセルとは色が若干違うだけであり、遠くのピクセル間になると、一般的には色の違いが大きくなるようにするものである。
【００６３】
このことを利用して、高い波紋を疑似的に表現するために、周囲のピクセルとの色の差を大きくし、波紋が低くなっていくにしたがってだんだんと周囲のピクセルになじんでいくように表示を行なう。
即ち、上記ｐｉｃｈはコピーを行なうピクセルへの距離を表すものである。この距離を、時間Ｎが経過するに従って小さくしていくことにより、だんだん周囲の水面になじんでいき、波紋が消えていくようすを表現する。図１６（ロ）、図１６（ハ）は、それぞれ時間が経過していった様子を表すものであり、波紋の大きさの横幅ｗ（ｉ）とｈ（ｉ）は図１５（イ）に表す関数に基づいて大きくなっていく一方、コピーするピクセルへの距離ｐｉｃｋを小さくしてより近いピクセルの色をコピーすることにより、だんだん波紋が消えていくような感じを表現することができる。よって、ｐｉｃｈの値は図１５（ロ）に示すように、時間が経過するに小さくなるような関数にする。
【００６４】
波紋描画テーブル１１５から値ｗ（ｉ）、ｈ（ｉ）を取り出すと、これらの値と波紋の中心のうち奥行きに対応するｖ０またはｚの値により、実際に描画する楕円の横幅ｗと縦幅ｈとを決定する（ステップ１３４）。
算出した横幅ｗと縦幅ｈの楕円を描画する（ステップ１３５）。図１６に示すように、楕円の上側にあるピクセルは、ｐｉｃｈ（ｉ）だけ上側にあるピクセルをコピーして描画し、楕円の下側にあるピクセルは、ｐｉｃｋ（ｉ）だけ下側にある色をコピーして描画を行なう。
【００６５】
そしてｉがＮに達したか、即ち所定の時間を経過したか否かをチェックして、Ｎに達した場合は終了し、達していなければステップ１３３〜１３５の処理を繰り返すことにより、図１６の例に示すような波紋を作成する。
なお、処理能力に余裕があれば、図１７に示すように大きさが微妙に違う複数の楕円を、中心を縦方向にわずかにずらして描画を行なうことにより、より立体感のある波紋の描画が可能になる。
【００６６】
なお本実施形態ではオブジェクトが水面を通過したことを波紋の発生条件としたが、後述する実施形態８で、雨しぶきを表示する場合にしぶきを表示することを指示する信号があったばあいに、指示された中心点に波紋を立てるように構成しても良い。
・実施形態６：近距離波の表示装置
本実施形態の構成を図１９を用いて説明する。
【００６７】
１９１は水面を含む原画像データである。
１９２は画像制御データであり、画像制御デー  タ作成部１９３により作成されるデータを格納するものである。この作成する処理は、後で図２０を用いて説明する。
１９４は近距離波発生部であり、上位プログラム１９５から送出されたトリガーを契機に、原画像データ１９１に波を描画し、波映像１９６を出力するものである。上位プログラム１９５は例えば風がふいたりした場合に波を生成させるためのトリガーを発生させるものである。
【００６８】
本実施形態では、遠方から近方（Ｕ−Ｖ座標系で言えば、上方から下方）に波が押し寄せる（水面が盛り上がる）様子を表現する。
この表現を行なうために準備する画像制御データを作成する、画像制御データ作成部１９３の処理について、図２０及び図２１を用いて説明する。図２１は波の発生の説明図であり、奥から手前に波を表示する例を説明するものである。
【００６９】
まず、波を表示すべき二次元座標上の座標ｖｉ（０〜ｉ〜ｎ）を設定する（ステップ２０１）。上述したように表示される二次元画像のＵ−Ｖ座標系は、仮想三次元空間の座標系を変換して得られるものである。座標ｖｉと次の座標ｖｉ＋１の間隔は、仮想三次元空間でのｚ方向（奥行き方向）では常に一定となるようにし、これをＵ−Ｖ座標系に変換していくことにより、上記座標ｖｉを設定していく。これをＵ−Ｖ座標系に変換した場合は、仮想的な視点から見て手前側、即ち二次元画像では下方では間隔があき、仮想的な視点から見て奥、即ち二次元画像では上方では間隔がつまることになる。
【００７０】
次に座標ｖｉでの、水面の左端ｕｉを求め、さらに水面の右端までの距離ｌｉを求める。これは人手で座標値を求めても良いし、プログラムで水面をサーチするようにしても良い。ｉを０からｎまで、この（ｖｉ，ｕｉ，ｌｉ）の組み合わせを求めて、画像制御データ１９２に格納しておく（ステップ２０２）。
このようにして作成された画像制御データ１９２を用いて、原画像１９１の水面に波を描画する処理を、図２１を用いて説明する。
【００７１】
まず上位プログラムからの波発生信号の待ち状態（ステップ２１１）にて、波発生信号が得られると、まずｉに０をセットする（ステップ２１２）。
次に、（ｖｉ，ｕｉ）、（ｖｉ＋ｌｉ，ｕｉ）、（ｖｉ，ｕｉ＋１）、（ｖｉ＋ｌｉ，ｕｉ＋１）の四点を頂点とする方形の領域について、これをＵ方向に引き延ばすことにより、水面が盛り上がった様子を表現する。引き延ばす割合ａは、表現したい波の強さにより異なるものであって、例えば上位プログラムより指示される。なお、波の高さは図１８に示すように、仮想三次元空間のｙ方向で同一の高さａだけ加算することになるが、これをＵ−Ｖ空間で表現するには、例えば上記領域中に存在するピクセル（ｖｊ，ｕｊ）のデータを、（ｖｊ，（ｖｊ−ｕｊ＋１）×ｋ）の位置にコピーしていくことにより描画する。（ｖｊ−ｕｊ＋１）×ｋの位置が整数にならなければ、近傍のピクセルに書き込むようにしてもよく、また補間を用いても良い。
【００７２】
なお、この計数ｋは、引き延ばした結果高さが仮想三次元空間でａだけのびるようにする値に設定される。方形の領域のＶ方向の間隔は、仮想三次元空間上では等間隔になっているので、同じ計数を乗算すれば、仮想三次元空間においては略同じ高さａだけ引き延ばされる。
そしてｉをインクリメントして（ステップ２１４）、ｉがｎに達するまで順次繰り返していくことにより（ステップ２１５）、波が押し寄せてくる様子を表現することができる。
【００７３】
なお、上記実施形態とは逆に、ｉの初期値をｎにして、ｉをｎから０にデクリメントする構成にすれば、逆に近くから奥の方に向かっていく波を表現することができる。
・実施形態７：遠距離の波の生成
図２３は遠距離の波を描画する装置の構成を説明するブロック図である。
【００７４】
２３１は水面を含む原画像である。２３２の画像制御データは、２３３の画像制御データ作成部によって作成される。
遠距離波発生部２３４は上位プログラム２３５からの波発生信号を契機に、原画像に遠距離波を描画して、波映像２３６を作成する。
まず、本実施形態で描画する波について、図２４を用いて説明する。
【００７５】
図２４（イ）は水面と描画する波の様子を表す。この例では波を表すラインをｎ本作成している。そのラインが存在するＵ−Ｖ座標系のｖ座標をｖｉ（ｉは０からｎまでの整数）とする。
このｎ本の波を、少しづつ手前にくるように移動させてゆき、波が存在する様子を表現する。なお、実施形態６では波の高さが変わる様子を表現しているため、視点から近い水面の波を表現するのに好適である。一方本実施形態７は、視点から見て遠くの波を表現するために、海面の色より明るい色の波が存在して、少しづつ押し寄せてくる様子を表現するものである。
【００７６】
ただ、波面を全て明るくしてしまうと、単に光が明滅しているのに過ぎないように見える場合がある。このため本実施形態では、よりリアリティを持たせるために、海面の色に対して暗い色と明るい色とを交互に描画するようにしている。例えばｖ０、ｖ２、ｖ４…と、ｉが偶数の波については明るい色で表示している時には、ｖ１，ｖ３，ｖ５…のｉが奇数の波については暗い色で表示する。次の描画タイミングでは、上述したように各ｖｉの位置を微小に手前（視点側、即ちＵ−Ｖ座標系での下方）に移動させながら、今度はｉが偶数の波については暗い色にし、ｉが奇数の波については明るい色で表示する。このように波の微小移動と色の反転を繰り返して、遠方の水面に波がある様子を表現する。
【００７７】
このような表現を行なうために準備する、画像制御データ作成部２３３の処理について、図２５を用いて説明する。
まず波を表示させる、Ｖ座標方向の初期位置ｖｉ（ｉは０からｎまでの整数）を決定する（ステップ２５１）。これは上記実施形態６と同様に、仮想三次元空間上のｚ方向では等間隔にすることが望ましい。
【００７８】
次に、座標位置ｖｉのラインに対応する水面の幅ｌｉを求める（ステップ２５２）。これは人手で調べてもよく、プログラムでサーチしても良い。
続いて、各ラインについて、波の色を描画するピクセルを決定するためのランダムパターンを決定する（ステップ２５３）。これはまず図２４に説明するように、乱数により二値の値で示される一本のライン２４０を作成するものである。
【００７９】
続いて、ｖｉからｌｉづつこのラインを切り出していき、各ライン毎に、ラインに含まれるピクセルに２値を設定していき、求めたラインの情報を画像制御データ２３２にセットする（ステップ２５４）。この２値は、波の色を描画するピクセルと、描画は行なわない（元の水面の表示色のまま）ピクセルとを識別するものである。
【００８０】
次に波の描画について、図２６のフローチャートを用いて説明する。
まず、初期値として、ｋ＝−１、ｍ＝０をセットする（ステップ２６１）。このｋは、各ラインの波を明るい色で表示するか暗い色で表示するかを決定するためのものである（詳細は後述する）。また、ｍは波の移動量である。
上位プログラムからの信号待ち状態（ステップ２６２）で、指示信号を受信すると、一番上の波を発生させるため、ｉ＝０をセットする（ステップ２６３）。次に波のラインの描画位置（Ｖ座標）を，ｖｉ＋ｍにセットして、その位置にｋが−１のときに、ｉが偶数であれば明るい色に、ｉが奇数であれば暗い色で表示する。ｋが１の場合は逆に、ｉが偶数であれば暗い色に、ｉが奇数であれば明るい色に表示する。波の色を書き込む位置（Ｕ座標位置）は、画像制御データ２３２に基づく（ステップ２６４）。
【００８１】
そしてｉをインクリメントし（ステップ２６５）、ｉがｎに達するまで、ステップ２６５の処理を繰り返して（ステップ２６６）、波の描画を行なう。
全ての波の描画が完了したら、次の各ラインの波の色を変えるためにｋの値に−１を乗算することによりｋの符号を反転させ、また波を移動させるためにｍに所定の値ａを加算して（ステップ２６７）、上記ステップ２６３〜２６６を繰り返す。
【００８２】
上述したように、本実施形態７は遠方に波が起きている様子を表現するのに好適であり、実施形態６は近くに押し寄せる波を表現するのに好適であるので、例えば境界のｖ座標を設定しておき、この境界より遠方であれば実施形態７を用いて波を描画し、境界より手前であれば実施形態６により波を描画することが好ましい。
・実施形態８：雨のしぶき
図２７は水面に雨が降ることによりおきるしぶきを描画する装置の構成を説明するブロック図である。
【００８３】
２７１は水面を含む原画像である。２７２の画像制御データは、２７３の画像制御データ作成部によって作成される。
しぶき発生部２７４は上位プログラム２７５からの雨発生信号を契機に、原画像に雨のしぶきを描画して、雨のしぶきの波映像２７６を作成する。また上位プログラム２７５は雨の強さについても通知を行なう。
【００８４】
また雨発生部２７４は、後述するように波紋を表示させるために、波紋生成部２７７に波紋を立てるべき位置や大きさを通知する。
まず、本実施形態で描画する雨のしぶきについて、図２８を用いて説明する。雨のしぶきについても、視点からの距離に基づいて、表示態様を変える。視点から見て手前（Ｕ−Ｖ座標系で下方）については、しぶきを描画すると共に、しぶきがたった位置を中心として、波紋を形成する（図２８ではしぶきの発生位置と楕円の中心の位置が合致していないが、これは作図の都合によるもので、実際には合致させる）。この波紋の形成は実施形態５の生成装置を用いるのが望ましい。
【００８５】
一方遠方の水面に降る雨については、しぶきや波紋までは見えないので描画しなくて良いが、やはり雨が降っているように見せるために、水面に模様をつける。この模様は、予め水面の表示色より濃いめの表示色を用意し、この表示色と、模様を描画しない場合のピクセルの表示色とをブレンディングすることにより作成する。ブレンディングするにあたっては、もとのピクセルの色とブレンディングする表示色とのブレンドの割合（重み付け）を適当に変えることにより、より自然な感じを出すことができる。
【００８６】
このような雨のしぶきを表示するために用意する、画像制御データを作成する処理を、図２９を用いて説明する。
まず遠方の雨を表示させるラインのＶ座標方向の基準位置ｖｉ（ｉは０からｎの整数）を決定する（ステップ２９１）。各ラインの間隔は、仮想三次元空間での奥行き（ｚ方向）では等間隔にするのが望ましい。
【００８７】
続いて水面の幅に基づき、各ラインの表示幅ｌｉを決定する（ステップ２９２）。これは人手で求めてもよく、プログラムによりサーチして求めても良い。
次に各ラインにブレンディングされた色を描画するピクセルの位置を決めるためのランダムパターンを生成する（ステップ２９３）。これは上記実施形態７と同様に、表示色を変える部分を設定するものである。値は二値でも良いが、表示色ｄ１、ｄ２…について異なる値を用いて、表示色を変えるようにしたほうが、よりリアリティが得られるので望ましい。
【００８８】
そして各ラインの長さｌｉ毎に、作成したランダムパターンを切り取っていくことにより、各ライン毎の描画位置を画像制御プログラムに設定する（ステップ２９４）。
次に、しぶき発生部２７４の動作について、図３０を用いて説明する。
まず上位プログラムからの指示待ち状態（ステップ３０１）で、雨のしぶきを発生させる指示を受信すると、まず手前のしぶきと波紋の出力を行なう（ステップ３０２）。
【００８９】
雨のしぶきを出す位置が一定では不自然なので、視点から見て近距離の水面に範囲に、ランダムにしぶきを発生させる。発生させるしぶきの数は上位プログラムから設定された雨の強さに基づいて変化させるのが望ましい。また本実施形態では水面の距離により処理を変えているが、その境界は予め定めておいても良く、雨の強さに応じて変えてもよい。
【００９０】
しぶきや波紋の大きさは、雨の強さと発生した位置の座標（ｚまたはｖの値）に基づいて変化させ、視点から見て手前（画像では下方）ほど、また指示された雨の強さが強いほど、大きく表示する。
なおしぶきの映像は予め作成されており、上記の基準で縮小させることにより、大きさを変えて表示を行なう。
【００９１】
次に、遠方の水面に対する描画を行なうために、まずｉに０をセットし（ステップ３０３）、続いて描画を行なうラインのｖ座標を決定する（ステップ３０４）。
このｖ座標は、ｖｉ座標とｖｉ＋１座標との間にランダムに設定されるものであり、描画の度にランダムに変化することにより、自然な感じを出すことができる。
【００９２】
次に決定された、水面上のｖ座標のラインに、描画を行なう（ステップ３０５）。これは上述したように、予め画像制御データに設定されたブレンディングの重み付け値に基づいて、原画像データにあるもとのピクセルと、予め設定された濃いめの表示色とをブレンドして書き込む表示色を決定し、原画像のピクセルを書き換える。
【００９３】
そして次のラインを描画するためにｉをインクリメントし（ステップ３０６）、ｉがｎに達するまで、即ち全てのラインの描画が終了するまでステップ３０２〜３０６を繰り返す（ステップ３０７）。
以上の処理により、視点の近くには水しぶきと波紋が表示され、遠方の水面にも雨が落ちている様子を表示することができる。
【００９４】
【発明の効果】
以上説明したように、本発明の映像生成装置によれば、水面の微妙な揺らぎや水面にできる影、波紋、波、雨による水しぶきを画像上で表現することができる。どの処理も特別に重い負荷にはならないので、現在のパーソナルコンピュータの性能でリアルタイムで描画を行なうことが可能である。
【００９５】
また水面の映像にリアリティを持たせることは、映像全体の品質感の向上に大きく寄与する。
【図面の簡単な説明】
【図１】第一の実施形態の構成を示すブロック図である。
【図２】第一の実施形態の処理を示すフローチャートである。
【図３】スライスのずらし処理を説明する図である。
【図４】第二の実施形態の構成を示すブロック図である。
【図５】第二の実施形態の処理を説明するフローチャートである。
【図６】第三および第四の実施形態の構成を示すブロック図である。
【図７】第三の実施形態の処理を説明するフローチャートである。
【図８】第三の実施形態の影の生成を説明する図である。
【図９】第四の実施形態における、オブジェクトの写映を説明する図である。
【図１０】第四の実施形態の処理を示すフローチャートである。
【図１１】第五の実施形態の構成を示すブロック図である。
【図１２】オブジェクトが水面を通過することを検出する処理を示すフローチャートである。
【図１３】オブジェクトの水面の通過を説明する図である。
【図１４】波紋の描画処理を示すフローチャートである。
【図１５】波紋描画テーブルの内容を説明する図である。
【図１６】波紋が広がる様子の描画を説明する図である。
【図１７】複数の楕円を重ね合わせて波紋を形成することの説明図である。
【図１８】仮想三次元空間上での波の引き延ばしを説明する図である。
【図１９】第六の実施形態の構成を示すブロック図である。
【図２０】第六の実施形態の画像制御データの設定を示すフローチャートである。
【図２１】第六の実施形態の描画処理を示すフローチャートである。
【図２２】第六の実施形態で描画される波を説明する図である。
【図２３】第七の実施形態の構成を示すブロック図である。
【図２４】第七の実施形態で描画される波を説明する図である。
【図２５】第七の実施形態の画像制御データの設定を示すフローチャートである。
【図２６】第七の実施形態の描画処理を示すフローチャートである。
【図２７】第八の実施形態の構成を示すブロック図である。
【図２８】第八の実施形態で描画される雨のしぶきを説明する図である。
【図２９】第八の実施形態の画像制御データの設定を示すフローチャートである。
【図３０】第八の実施形態の描画処理を示すフローチャートである。
【符号の説明】
１１：原画像  １２：揺らぎ領域定義情報
１３：揺らぎ生成部  １４：出力画像
【図１】
0003610702.tif 000002
【図２】
0003610702.tif 000003
【図３】
0003610702.tif 000004
【図４】
0003610702.tif 000005
【図５】
0003610702.tif 000006
【図６】
0003610702.tif 000007
【図７】
0003610702.tif 000008
【図８】
0003610702.tif 000009
【図９】
0003610702.tif 000010
【図１０】
0003610702.tif 000011
【図１１】
0003610702.tif 000012
【図１２】
0003610702.tif 000013
【図１３】
0003610702.tif 000014
【図１４】
0003610702.tif 000015
【図１５】
0003610702.tif 000016
【図１６】
0003610702.tif 000017
【図１７】
0003610702.tif 000018
【図１８】
0003610702.tif 000019
【図１９】
0003610702.tif 000020
【図２０】
0003610702.tif 000021
【図２１】
0003610702.tif 000022
【図２２】
0003610702.tif 000023
【図２３】
0003610702.tif 000024
【図２４】
0003610702.tif 000025
【図２５】
0003610702.tif 000026
【図２６】
0003610702.tif 000027
【図２７】
0003610702.tif 000028
【図２８】
0003610702.tif 000029
【図２９】
0003610702.tif 000030
【図３０】
0003610702.tif 000031