(57)【特許請求の範囲】
【請求項１】
コンピュータが、入力されたパラメータに基づいて三次元空間に破片を生成する段階と、前記破片を二次元平面に正射影の手法により投影すると共に媒質の透過度を考慮して投影される画素値を算出するレンダリングを、視線方向を変化させることにより複数回行い、それぞれのレンダリングにより得られるレンダリング結果の平均を算出することにより投影画像を作成する投影画像作成段階と、を実行することを特徴とする模様画像作成方法。
【請求項２】
前記投影画像作成段階は、入力されたパラメータに基づいて視線方向を決定し、この視線方向に基づいて前記生成された破片の三次元空間における座標を変換した後、正射影の手法により投影を行うものであることを特徴とする請求項１に記載の模様画像作成方法。
【請求項３】
前記座標の変換は、三次元空間における破片の座標を、前記視線方向を決定する視線角度および視線ベクトルを用いて、投影面からの距離方向を１つの座標軸とする三次元空間における座標に変換するものであることを特徴とする請求項２に記載の模様画像作成方法。
【請求項４】
必要なパラメータを入力するパラメータ入力手段と、
入力されたパラメータに基づいて三次元空間にオブジェクトポリゴンを生成する破片生成手段と、
入力されたパラメータに基づいて視線方向を決定し、この視線方向に基づいて前記破片の三次元空間における座標を変換する座標変換手段と、
レンダリング結果を書き込むための画像メモリを備え、前記座標変換された破片を二次元平面に正射影の手法により投影すると共に媒質の透過度を考慮して投影される画素値を算出するレンダリングを、視線方向を変化させることにより複数回行い、それぞれのレンダリングにより得られるレンダリング結果を、それまでのメモリへの書込み回数により平均値を取りながら前記画像メモリに上書きしていくことにより投影画像を作成する投影手段と、
を有することを特徴とする模様画像作成装置。
【請求項５】
前記座標変換手段は、三次元空間における破片の座標を、前記視線方向を決定する視線角度および視線ベクトルを用いて、投影面からの距離方向を１つの座標軸とする三次元空間における座標に変換するものであることを特徴とする請求項４に記載の模様画像作成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、三次元空間に表現された物体を二次元平面に投影することにより画像を作成する技術に関し、特に、このような技術を利用して人工大理石等の模様を人工的に作成する模様画像作成方法および装置に関する。
【０００２】
【従来の技術】
従来より、建材製品の表面を装飾するものとして様々な模様が用いられている。その中でも、人工大理石の模様は高級感もあり、人気が高い。このような人工大理石の模様を作成するためには、本物の人工大理石を直接撮影する等の作業を経て行われているが、制作費が高くなること、バリエーションがないことが問題となっている。最近では、コンピュータグラフィックスによって人工的に大理石の模様を発生させる試みも行われているが、実物に近いものを得るのは、難しいものとなっている。
【０００３】
一般に、人工大理石の模様は、媒質の中に小石のような他の物体が含まれたようなものとなっている。外から見えるのは、この表面だけであるので、人工大理石の模様というものは、小石のような物体を表面に投影した画像で近似できると考えられている。そこで、三次元空間における物体を投影するための技術、すなわち三次元ＣＧ（コンピュータグラフィックス）の表現技術を利用することが行われている。
【０００４】
ここで、三次元ＣＧの表現技術について説明しておく。三次元ＣＧの表現技術においては、より立体感を表現するために、三次元空間内に存在する物体の被写界深度効果を考慮した投影手法が用いられている。被写界深度とは、視点のピントが合う平面との距離のことであり、被写界深度効果とは、三次元空間内において、被写界深度以外にある物体に、被写界深度との差に応じたぼかしを施してリアル感を出す手法である。
【０００５】
このような被写界深度効果を利用してレンダリングを行なう手法は、一般に透視放射影を用いて実現されている。ここで、透視放射影を用いたレンダリングについて説明する。図９は透視放射影を行なう際の、オブジェクト（物体）、焦点面、視点の関係を示す図である。図９（ａ）に示すように視点には、所定の画角が設定され、その画角の範囲に含まれるオブジェクトが視点に投影される。図９（ａ）では、焦点面と視点は、三角形を構成しているように見えるが、実際には三次元空間であるため、焦点面を底面とし、視点を頂点とした円錐または角錐形状を構成する関係となっている。透視放射影とは、円形もしくは多角形であって、焦点面と平行な面上の各点における色情報を視点に反映させる手法である。この視点を各画素位置に適用することにより、投影画像が得られることになる。
【０００６】
上述のように各画素に対して透視放射影を行なうことにより投影画像が得られることになる。実際には、その精度を向上させるために図９（ｂ）、（ｃ）に示すように視点位置を変更した状態（ジッタ処理）における投影画像を得て、これらの投影画像の平均値を求めることにより最終的な投影画像を得るようにしている。視点位置を増やす程、より精度の高い投影画像が得られることになる。このような三次元ＣＧの表現技術を利用することにより人工大理石の模様を簡易に作成することが可能となる。
【０００７】
【発明が解決しようとする課題】
上記のように、所定の大きさの画像をレンダリングして大理石模様の画像を作成する際は、ジッタ処理を施した透視放射影の手法は大きな効果を奏する。しかしながら、模様画像などを作成する場合は、基準となる単位画像を作成し、これを上下左右方向に繰り返して配置することにより目的とする大きさの模様画像を得るようにするのが普通である。このように単位画像を繰り返して目的の大きさの画像を作成する場合には、その繋ぎ目が目立たないようにエンドレス処理を行うことが好ましい。
【０００８】
しかしながら、繰り返し同じ絵柄が現れるエンドレス画像を生成しようとする場合、透視放射影の手法では、視体積（作成される二次元の画像上の１点に影響する三次元空間における体積）が図１０のように広がっているため、三次元空間に配置したオブジェクトがエンドレスになっていたとしても、レンダリングされた画像の端（上下、左右）がつながることはない。このため、好ましいエンドレス画像が得られない。
【０００９】
上記のような点に鑑み、本発明は、正射影を用いて被写界深度効果を表現することによりエンドレス処理の施された模様画像を作成することが可能な模様画像作成方法および装置を提供することを課題とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するため、本発明では、コンピュータが、入力されたパラメータに基づいて三次元空間に破片を生成し、生成された破片を二次元平面に正射影の手法により投影すると共に媒質の透過度を考慮して投影される画素値を算出するレンダリングを、視線方向を変化させることにより複数回行い、それぞれのレンダリングにより得られるレンダリング結果の平均を算出することにより投影画像を作成するようにしたことを特徴とする。本発明では、特に、三次元空間上に発生した破片を、媒質の透過度を考慮して二次元平面上に正射影の手法により投影することにより投影画像を得るようにしたので、この投影画像を単位画像として繰り返し並べることにより繋ぎ目が目立たない模様画像を作成することが可能になる。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について詳細に説明する。
図１は本発明による模様画像作成方法のフローチャートである。最初に、三次元空間において破片をどのように発生させるかに関するパラメータの入力を行う（ステップＳ１）。このようなパラメータとしては、スクリーンのサイズと位置を含む投影領域、質感グループ数、表面質感、破片（オブジェクト）の大きさ、破片の底面形状、頂点の高さ、配置密度、上記投影領域における破片の配置範囲を設定する。投影領域とは、単位画像に対して正射影により投影を行う三次元領域である。ここでは、投影後に単位画像となるスクリーンのサイズをｗ画素（ｘ方向）×ｈ画素（ｙ方向）とする。また、ｚ方向が奥行きを示すことになる。このような投影領域の一例を図２（ａ）に示す。質感グループ数とは、破片表面の質感の種類の数を示すものであり、各質感グループについて、上記表面質感、破片の大きさ、破片の底面形状、頂点の高さ、配置密度、上記投影領域における破片の配置範囲が設定される。
【００１２】
表面質感とは、発生された破片表面の質感であり、破片表面にマッピングするためのテクスチャを指定することにより設定が行われる。テクスチャの指定は、例えば、テクスチャを画像として記憶したファイルのＩＤ等を指定すれば良い。
【００１３】
破片の大きさ、破片の底面形状、頂点の高さの３つのパラメータは、破片形状を決定するためのものである。ここで、破片形状の一例を図３に示す。図３の例は、破片の底面形状のパラメータが四角形と設定された場合を示している。破片の大きさは、この底面の大きさを設定するためのパラメータであり、頂点の高さは、この四角錐における底面からの頂点の高さを設定するためのパラメータである。図３に示したような破片形状の場合、底面は四角形であるため、最低２つの三角形ポリゴンで構成することができ、側面は三角形であるため、最低１つの三角形ポリゴンで構成することができる。すなわち、図３に示した四角錐の破片形状は最低５つの三角形ポリゴンで構成することができる。
【００１４】
配置範囲は、図２（ａ）に示した投影領域のうち、破片を配置する範囲を設定するパラメータである。この配置範囲は、ｚ座標で設定される。ｚ座標を所定の範囲に設定した場合の配置範囲を図２（ｂ）に示す。図２（ｂ）において、網掛けされた直方体の内部が配置範囲となる。配置密度は、配置範囲内に配置する破片の密度を設定するパラメータである。
【００１５】
続いて、三次元空間を二次元平面に投影するレンダリング処理をどのように行うかに関するパラメータの入力を行う（ステップＳ２）。このようなパラメータとしては、焦点面の配置位置、視線方向設定数Ｎ、視線移動最大角度θmaxを設定する。また、焦点面はスクリーンＳと平行に配置されるため、焦点面の配置位置は、スクリーンＳからの距離で設定される。視線方向設定数Ｎは、投影を行なうための視線方向の設定数であり、設定された数だけ異なる方向から投影が行なわれてスクリーンＳ上の画素値が決定されることになる。視線移動最大角度θmaxは、視線方向とスクリーンＳ平面が垂直であるときを０°としたとき、視線方向が傾き得る最大角度を示す。
【００１６】
次に、三次元空間に破片を生成する（ステップＳ３）。これは、各質感グループ毎に、設定された形状の破片が設定された配置領域に設定された密度で生成されることになる。また、生成された破片を構成する各ポリゴンには、指定されたテクスチャがマッピングされる。
【００１７】
次に、媒質ポリゴンを生成する（ステップＳ４）。媒質ポリゴンは、スクリーンＳと同サイズでスクリーンＳと同位置に生成される。すなわち、スクリーンＳは矩形形状となるので、三角形のポリゴン２つで構成することができる。この媒質ポリゴンには、あらかじめ用意した媒質テクスチャを貼り付けるようにすることも可能であるが、本実施形態では、媒質を一様にするため、全面に渡って均一な色となるよう設定する。
【００１８】
次に、破片のスクリーンＳへの正射影を行い、当該スクリーン上の各画素の色を決定する（ステップＳ５）。ステップＳ５における正射影のための視線の方向は複数設定され、それぞれの視線方向についてスクリーンＳ上の画素値を決定する。各視線方向ごとに得られるスクリーンＳ上の画素値は、最終的には平均化されて１つの投影画像を構成する画素値が得られることになる。ここでは、まず、スクリーンＳからの視線方向がスクリーンＳに対して垂直である場合について説明する。
【００１９】
この場合、ある破片上の画素は、（ｘ，ｙ）座標値が同一であるスクリーンＳ上の画素に投影されることになるが、このときスクリーン上の画素の画素値ＶHは以下の（数式１）で算出される。
【００２０】
（数式１）
ＶH ＝ Ｔ ×（ＤO ／ＤF ）×ＶO
Ｔ：減衰率
【００２１】
ただし、上記（数式１）において、ＤOはスクリーンＳから破片上の画素ＶOまでの距離、ＤFはスクリーンＳから焦点面までの距離を示す。上記（数式１）は、破片上の画素が焦点面に近い程、本来の画素値に近付き、焦点面から遠ざかる程、ぼけていくことを示している。また、破片は三次元空間内にランダムに配置されるため、スクリーンＳからの視線上で重なる破片については、最もスクリーンＳに近い破片だけが見えることになる。これは、単純に両破片のｚ座標同士を比較し、スクリーンＳに近いものを生かすことにより表現できる。
【００２２】
さらに、スクリーンＳ上の画素値はこれだけで決定されるのではなく、媒質による減衰分も考慮されて決定されることになる。媒質の画素値をＶBとし、合成のための透過率をα（ただし、０≦α≦１）とすると、スクリーンＳ上の画素値Ｖは以下に示す（数式２）により算出される。このとき、媒質の画素値ＶBは、スクリーン上に生成された媒質ポリゴン上の画素値が採用される。
【００２３】
（数式２）
Ｖ ＝ α×ＶH ＋ （１−α）× ＶB
【００２４】
この（数式２）からわかるように、透過率αの値を大きくすればする程、本来の色が表現され、透過率αの値を小さくすればする程、媒質色の影響が強くなる。
【００２５】
視線方向を変えた場合にも同様に投影が行なわれる。例えば、視線角度θで正射影を行なう場合、その視線角度θは、以下の（数式３）により算出される。
【００２６】
（数式３）
θ  ＝  θmax  ×  γ1
【００２７】
上記（数式３）において、θmaxはステップＳ１において設定された視線移動最大角度を示し、γ1は０．０〜１．０の範囲の値になるように発生される乱数を示す。
【００２８】
この視線角度θに基づいて、三次元空間に存在する破片を正射影すると共に媒質の影響を考慮することにより、この視線角度θに対するスクリーンＳ上の画素が得られる。ここで、ある破片に着目した場合の視線角度θとスクリーンＳおよび破片の関係を図４に示す。図中、横軸は図２に示したｚ軸であるものとする。図４（ａ）は視線角度が０°、すなわちスクリーンＳと視線方向が垂直である状態を示している。図４（ｂ）（ｃ）は、それぞれ視線角度θだけ視線方向を傾けた状態を示している。図４（ａ）〜（ｃ）に示すスクリーンおよび破片は全て同位置に存在するものであるが、視線角度が異なるため、スクリーンに投影される破片の様子は異なるものになる。図４（ａ）〜（ｃ）のスクリーンに投影される破片の様子をそれぞれ図５（ａ）〜（ｃ）に示す。図５（ａ）では、オブジェクトはスクリーンの中央に投影されているが、図５（ｂ）ではスクリーン下方、図５（ｃ）ではスクリーン上方にそれぞれ投影されていることがわかる。
【００２９】
ステップＳ５における正射影は、ステップＳ２において設定された視線方向設定数だけ行なわれる。すなわち、視線方向設定数分のレンダリング結果が得られることになる。最終的に得られる投影画像は、これらのレンダリング結果を平均化したものである。ここで、ステップＳ５における処理手順の詳細を図６のフローチャートに基づいて説明する。まず、上述のように（数式３）を用いて視線角度θを算出する（ステップＳ１１）。
【００３０】
続いて、視線角度θを傾ける方向を決定するためのスクリーン平面内における視線ベクトル（Ｖｘ，Ｖｙ）を以下の（数式４）により算出する（ステップＳ１２）。
【００３１】
（数式４）
Ｖｘ＝ｓｉｎφ
Ｖｙ＝ｃｏｓφ
ただし、φ＝３６０°×γ2
【００３２】
上記（数式４）においてγ2は０．０〜１．０の範囲の値になるように発生される乱数を示す。このようにして、視線角度θ、および視線ベクトル（Ｖｘ，Ｖｙ）が定まると、正射影を行なうための視線方向が１方向に特定されるので、特定された視線方向からスクリーンへの正射影、すなわち、スクリーンへのレンダリングを行なう。これは、具体的には上記（数式１）および（数式２）を用いて行われるが、視線方向θ＝０°以外の場合は、距離の算出に三次元のそれぞれの座標における位置計算が必要となるため、演算負荷が大きくなる。そこで、本発明では、この演算負荷を削減するために、レンダリング処理を行う前に、距離を１つの座標軸で算出可能なように破片の位置座標の変換を行う（ステップＳ１３）。
【００３３】
具体的には、各破片がポリゴンで構成されているため、このポリゴンの各頂点の座標値を以下の（数式５）（数式６）により変換する。
【００３４】
（数式５）
Ｋ  ＝  ｔａｎθ  ×  ａｂｓ（Ｌ−Ｚ）
【００３５】
上記（数式５）は移動量Ｋを算出するためのものであり、Ｌは投影面のｚ座標値、Ｚはポリゴンのｚ座標値、ａｂｓは絶対値を取ることを示す。
【００３６】
（数式６）
Ｍｘ＝ Ｖｘ  ×  Ｋ
Ｍｙ＝ Ｖｙ  ×  Ｋ
【００３７】
上記（数式６）は（数式５）で算出した移動量Ｋを用いてｘ座標、ｙ座標の移動量Ｍｘ、Ｍｙをそれぞれ算出するものである。この結果、各ポリゴンの頂点の座標値（Ｘ、Ｙ、Ｚ）は、仮想的な座標値（Ｘ＋Ｍｘ，Ｙ＋Ｍｙ，Ｚ）に変換される。
【００３８】
このようなステップＳ１３における座標変換処理は、各破片を構成する各ポリゴンの各頂点について行われる。これにより、仮想的な三次元空間における座標値が作成されることになる。例えば、図７（ａ）に示すような状態でポリゴンが存在している場合、図７（ｂ）に示すような状態に変換されることになる。これにより、破片を構成するポリゴンのある頂点Ａ（Ｘ，Ｙ，Ｚ）はＡ´（Ｘ＋Ｍｘ，Ｙ＋Ｍｙ，Ｚ）に移動することになる。このように変換することにより、ｚ軸方向（図７では左右方向）の値の差がそのまま投影面との距離となる。
【００３９】
続いて、この仮想的な座標値に基づいて、（数式１）（数式２）を用いることにより、スクリーンＳ上の画素の画素値Ｖが算出される。このとき、（数式１）において画素値ＶHの算出のための距離ＤO、距離ＤFは共に仮想的な空間におけるｚ座標値だけを用いれば良いので演算負荷が大幅に削減され、高速に処理を行うことが可能となる。この画素値の集合がその視線方向の場合のレンダリング結果となる（ステップＳ１４）。
【００４０】
スクリーンＳへのレンダリング結果は、画像メモリに記録される（ステップＳ１５）。この場合、最初のレンダリング結果はそのまま画像メモリに書き込まれる。２つ目以降のレンダリング結果は、それ以前に画像メモリに書き込まれていた内容を含めた複数回のレンダリング結果に加算されて、それまでの平均値として書き込まれるようになっている。例えば、2回目のレンダリング結果は、既に画像メモリに記録されている１回目のレンダリング結果と各画素ごとに加算して２で割ることにより平均値を算出し、それを２回目までのレンダリング平均として画像メモリの内容を更新する。３回目のレンダリング結果は、２回目までのレンダリング平均を２倍したものと各画素ごとに加算した後、３で割ることにより過去３回目までの平均値を算出し、それを３回目までのレンダリング平均として画像メモリの内容を更新する。これを一般化すると、ｎ回目のレンダリング結果は、（ｎ−１）回目までのレンダリング平均を（ｎ−１）倍したものと各画素ごとに加算した後、ｎで割ることにより過去ｎ回目までの平均値を算出し、それをｎ回目までのレンダリング平均として画像メモリの内容を更新することになる。すなわち、ステップＳ１５の処理が終了した時点では常に、画像メモリにはそれまでのレンダリング結果の平均が記録されていることになる。
【００４１】
ステップＳ１５においてレンダリング結果の平均値が記録されると、ステップＳ１１〜ステップＳ１５までの処理を行なった回数が、視線角度設定数Ｎに達したかどうかが判断される（ステップＳ１６）。Ｎ回実行していれば終了し、Ｎ回実行していなければ、ステップＳ１１に戻って処理を続けることになる。ステップＳ１５においてＹＥＳと判断されたら、画像メモリに記録されているそれまでのレンダリング結果が投影画像とされることになる。
【００４２】
図６のフローチャートを用いて説明したような処理により、ステップＳ５の正射影による投影画像の作成処理が実行される。これにより所望の投影画像が得られることになる。
【００４３】
次に、上記模様画像作成方法を実行するための装置構成について説明する。図８は、本発明による模様画像作成装置の構成図である。図８において、パラメータ入力手段１は、図１のステップＳ１およびステップＳ２を実行するためのものであり、マウスやキーボード等で実現できる。
【００４４】
破片生成手段２は、図１のステップＳ３を実行するためのものであり、パラメータ入力手段１より入力されたパラメータに従って、設定された三次元空間内に破片を配置する機能を有する。媒質ポリゴン生成手段３は、図１のステップＳ４を実行するためのものであり、指定された色もしくはテクスチャを貼り付ける機能を有する。
【００４５】
投影手段４は、図１のステップＳ５を実行するためのものであり、座標変換手段５によりステップＳ１３の座標変換処理が施された破片を投影することにより、画像メモリ６にレンダリング結果を書き込みながら投影処理を繰り返し行なう機能を有する。破片生成手段２、媒質ポリゴン生成手段３、投影手段４、座標変換手段５の各手段は現実にはコンピュータと、コンピュータに搭載された専用プログラムにより実現され、画像メモリ６はコンピュータ内部に搭載される。
【００４６】
出力手段７は、投影手段４による処理の結果得られる投影画像を出力するためのものであり、表示するためのディスプレイ、画像データとして出力するためのＦＤ、ＭＯ等が適用できる。
【００４７】
【発明の効果】
以上、説明したように本発明によれば、必要なパラメータを入力し、入力されたパラメータに基づいて三次元空間に破片を生成し、生成された破片を二次元平面に正射影の手法により投影すると共に媒質の透過度を考慮して投影される画素値を算出することにより投影画像を作成するようにしたので、この投影画像を単位画像として繰り返し並べることにより繋ぎ目が目立たない模様画像を作成することが可能になるという効果を奏する。
【図面の簡単な説明】
【図１】本発明による模様画像作成方法を示すフローチャートである。
【図２】三次元空間内に設定される投影領域を示す図である。
【図３】破片形状の一例を示す図である。
【図４】正射影を行なう場合の視線角度、スクリーン、オブジェクトの関係を示す図である。
【図５】図４に示した関係をスクリーン側から見た状態を示す図である。
【図６】図１のステップＳ５の処理の詳細を示すフローチャートである。
【図７】図６のステップＳ１３の座標変換処理を説明するための図である。
【図８】本発明による模様画像作成装置の構成を示す機能ブロック図である。
【図９】透視放射影を行なう場合の画角、焦点面、オブジェクトの関係を示す図である。
【図１０】透視放射影を行なう場合の視点位置、レンダリング面、視体積の関係を示す図である。
【符号の説明】
Ｓ・・・スクリーン
１・・・パラメータ入力手段
２・・・破片生成手段
３・・・媒質ポリゴン生成手段
４・・・投影手段
５・・・座標変換手段
６・・・画像メモリ
７・・・出力手段
【図１】
0004668447.tif 000002
【図２】
0004668447.tif 000003
【図３】
0004668447.tif 000004
【図４】
0004668447.tif 000005
【図５】
0004668447.tif 000006
【図６】
0004668447.tif 000007
【図７】
0004668447.tif 000008
【図８】
0004668447.tif 000009
【図９】
0004668447.tif 000010
【図１０】
0004668447.tif 000011