(57)【要約】【課題】ＮＵＲＢＳ曲面をベジエ曲面に効率的に変換できるようにすること。【解決手段】ＮＵＲＢＳ曲面の制御点列を受け取り、ベジエ曲面を生成する画像生成方法において、前記ＮＵＲＢＳ曲面が一様であるか否かを判断し、前記ＮＵＲＢＳ曲面を表すパラメータからベジエ曲面を表すための係数を、一様である場合と、一様でない場合にそれぞれに算出し、メモリなどに保持する。さらに、前記ＮＵＲＢＳ曲面が一様である場合には一様曲面変換を行い、一様でない場合には非一様曲面変換を行う。【選択図】  図１
2005025255.tif 000002
【特許請求の範囲】
【請求項１】
ＮＵＲＢＳ曲面を表すパラメータを受け取り、ベジエ曲面を表す制御点を生成する画像生成装置において、
前記ＮＵＲＢＳ曲面を表すパラメータから前記ベジエの制御点を生成するための式を算出する曲面係数算出部と、
前記曲面係数算出部で生成した係数を用いて前記ＮＵＲＢＳ曲面からベジエ曲面に変換する曲面形式変換部とを備えることを特徴とする画像生成装置。
【請求項２】
ＮＵＲＢＳ曲面を表すパラメータを受け取り、ベジエ曲面を表す制御点を生成する画像生成装置において、
前記ＮＵＲＢＳ曲面が一様であるか否かを判断する曲面判定部と、
前記曲面判定部で一様と判断されたＮＵＲＢＳ曲面に対しては一様曲面変換部で曲面変換し、
前記曲面判定部で一様でないと判断されたＮＵＲＢＳ曲面に対しては非一様曲面変換部で曲面変換することを特徴とする画像生成装置。
【請求項３】
ＮＵＲＢＳ曲面を表すパラメータを受け取り、ベジエ曲面を表す制御点を生成する画像生成方法において、
前記ＮＵＲＢＳ曲面を表すパラメータから前記ベジエの制御点を生成するための式の係数を算出し、
前記ベジエの制御点を生成するための式の係数を用いて前記ＮＵＲＢＳ曲面からベジエ曲面に変換することを特徴とする画像生成方法。
【請求項４】
ＮＵＲＢＳ曲面を表すパラメータを受け取り、ベジエ曲面を表す制御点を生成する画像生成方法において、
前記ＮＵＲＢＳ曲面が一様であるか否かを判断し、
一様と判断されたＮＵＲＢＳ曲面に対しては一様曲面変換を行い、
一様でないと判断されたＮＵＲＢＳ曲面に対しては非一様曲面変換を行うことを特徴とする画像生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、三次元コンピュータ・グラフィックスの分野において、ベジエ（Ｂｅｚｉｅｒ）曲面を用いて自由曲面を描画するエンタテインメント装置、携帯端末や、携帯ゲーム機などに適用して、好適な画像生成装置及び画像生成方法に関するものである。さらに、ＮＵＲＢＳ曲面からベジエ曲面に変換して出力するようなＣＡＤ機器などに適用して、好適な画像生成装置及び画像生成方法に関するものである。
【０００２】
【従来の技術】
近年の三次元コンピュータ・グラフィックスの分野では、物体を多角形を用いた表現から、自由曲面を用いた滑らかな映像を扱う装置が増えてきた。このような装置では、自由曲面としてベジエ曲面が利用される場合が多い。
【０００３】
ベジエ曲面は、（ｎ＋１）×（ｎ＋１）個の制御点が与えられると、双ｎ次のベジエ曲面または、単にｎ次のベジエ曲面と言われる。三次元コンピュータ・グラフィックスの分野においては、曲面の制御のしやすさから三次のベジエ曲面が多用される。ベジエ曲面については、（非特許文献１参照）等に説明されている。三次のベジエ曲面は、一般に（数１）にて表される。（数１）におけるＰｉｊは、制御点の座標であり、Ｊｉ、Ｋｊは（数２）、（数３）にて表されるＢｅｒｎｓｔｅｉｎ関数である。Ｐ（ｕ，ｖ）は、特定のｕ、ｖ（０≦ｕ，ｖ≦１）における自由曲面上の頂点座標を表す。
【０００４】
【数１】
2005025255.tif 000003
【０００５】
【数２】
2005025255.tif 000004
【０００６】
【数３】
2005025255.tif 000005
【０００７】
ベジエ曲面は、（数１）〜（数２）の式を用いて、直接描画されることもある。この場合、曲面と他の曲面や投影面と交差する辺の計算に反復法などが用いられ、計算時間が多大となる。
【０００８】
一方、このような直接描画方法よりも早く描画させるため、Ｐ（ｕ，ｖ）を特定のパラメータの組（ｕ，ｖ）において評価することで自由曲面上の点を算出して、これら点を結んでできる多角形の集合で近似して描画するテッセレーションと呼ばれる方法が用いられる（特許文献１参照）。
【０００９】
ＣＡＤの分野ではＮＵＲＢＳ曲面を用いられる場合が多い。
【００１０】
ＮＵＲＢＳ曲面をテッセレーションして描画する方法として、あらかじめ、ＮＵＲＢＳ曲面を計算するための係数を計算しておいて、これを描画時に適用することにより漸化式を用いずにＮＵＲＢＳ曲面をポリゴンとして描画する方法が用いられる（特許文献１参照）。
【００１１】
ＮＵＲＢＳ曲面を評価する際に、Ｕ、Ｖ方向の刻み値は一定のままで、三次元のＤＤＡを用いて計算を簡略化する方法が用いられる（特許文献２参照）。
【００１２】
ＮＵＲＢＳ曲面はノット挿入を繰り返すことにより、前述のベジエ曲面に変換することができる（非特許文献２参照）ため、ＮＵＲＢＳ曲面に対してもベジエ曲面で用いる描画方法を適用することができる。
【００１３】
【特許文献１】
特開２００１−２１８９７７号公報
【特許文献２】
特開平０９−２９３１４５号公報
【非特許文献１】
「コンピュータ  グラフィックス第２版」、川合慧監訳、凸版印刷株式会社総合研究所画像情報センター訳、日刊工業新聞社
【非特許文献２】
「ＣＡＤ・ＣＧ技術者のための実践ＮＵＲＢＳ」、三浦曜、望月一正著、工業調査会
【００１４】
【発明が解決しようとする課題】
三次元コンピュータ・グラフィックスにおいては、自由曲面は自由曲面を表すパラメータを用いて直接描画されるのではなく、自由曲面を一度多面体近似してから、この多面体を描画するテッセレーションと呼ばれるような方法が用いられることが多い。ＣＡＤの分野では、自由曲面としてＮＵＲＢＳ曲面がよく用いられる。ＮＵＲＢＳ曲面に対してテッセレーションを適用し、なるべく滑らかに描画しようとすれば、計算処理が多くなったり、部分最適処理を行えば複雑な処理が必要になり、多大な計算時間がかかる場合がある。このためテッセレーションは、計算処理能力の高い機器で用いられる。
【００１５】
ＮＵＲＢＳ曲面をテッセレーションして描画する代わりに、一度他の曲面に変換してから、サブディビジョン処理を行うことで、曲面生成に要する計算機資源を節約する方法がある。
【００１６】
しかしながら、（特許文献１）、（特許文献２）の方法では、処理を簡単にするためにパラメータ空間で一定の刻み幅となるようにテッセレーションされるため、曲率に応じてＮＵＲＢＳ曲面の刻み値を自由に調整することができない。さらに（特許文献２）の方法では、非有理Ｂｓｐｌｉｎｅのみを対象としており、有理Ｂｓｐｌｉｎｅを含む有理曲面を表すことができず、一般に有理曲面であるＮＵＲＢＳ曲面を扱えない。また（非特許文献２）の方法では、ＮＵＲＢＳ曲面をベジエ曲面に変換するためには、ノット挿入を繰り返して行わなければならず、多大な漸化式の計算が繰り返し必要となる。
【００１７】
そこで、本発明では、曲面を変換する際に、ＮＵＲＢＳ曲面からベジエ曲面に直接的に変換する画像生成装置及び方法を提供する。さらに、ＮＵＲＢＳ曲面の性質により適した変換方法を選択することで、効率的に効率的に行えるようにする画像生成装置及び方法を提供するものである。
【００１８】
【課題を解決するための手段】
上記課題を解決するために本発明の画像生成装置及び方法では、ＮＵＲＢＳ曲面をベジエ曲面に変換する際に、ＮＵＲＢＳ曲面が一様であるか否かの判断を行い、一様な曲面に対してと、非一様な曲面に対して、それぞれの曲面変換方法を用いることにより、曲面の変換を効率的にできる。
【００１９】
ＮＵＲＢＳ曲面をベジエ曲面に変化する曲面変換公式の係数をあらかじめ計算しておき、保持し、曲面変換する機器に曲面のパラメータとともに渡すことにより、計算機資源の低い機器でも、効率的に曲面変換を効率的にできる。
【００２０】
【発明の実施の形態】
以下、本発明の画像生成装置及び方法について、図面を参照しながら説明する。
【００２１】
（実施の形態１）
図１は、本発明の画像生成装置における構成を表すブロック図である。１０１は曲面データ入力部、１０２は曲面判定部、１０３は曲面計数算出部、１０４は曲面形式変換部、１０５は曲面データ出力部である。図２は、本発明の画像生成装置における構成を表す別のブロック図である。２０１は非一様曲面係数算出部、２０２は一様曲面係数算出部、２０３は非一様曲面変換部、２０４は一様曲面変換部である。
【００２２】
本発明の画像生成方法は、コンピュータを用いたプログラムとしても、機能を発揮できる。図５は、本発明の画像生成装置における別の構成を表すブロック図である。５０１はＣＰＵ、５０２はＩ／Ｏ、５０３はメモリである。図４は、本発明の画像生成方法の処理手順の流れの一例を表す図である。
【００２３】
曲面データ入力部１０１は、ＮＵＲＢＳ曲面を表すためのデータである制御点、ノットベクトル、階数が入力される。これらのデータはＩ／Ｏ５０２を通じて、メモリ５０３に記録される。これらのデータは、キーボードから入力しても構わず、また記録メディアに記録されたものを読み込み手段を通じて入力しても構わない（Ｓ４０１）。
【００２４】
図６は、ＮＵＲＢＳ曲面を表すデータである制御点、ノットベクトル、階数の格納方法の一例を示している。制御点はＵ、Ｖそれぞれの方向にメッシュ状になっており、Ｕ方向、Ｖ方向の個数と、制御点の配列を格納する。ノットベクトルについても、Ｕ、Ｖそれぞれの方向の数と、ベクトルの配列を格納する。図６では、データを格納する一例を示しており、他の格納方法を用いても構わない。これらＮＵＲＢＳ曲面を表すデータは、一つのＮＵＲＢＳ曲面ごとに入力してもよく、複数のＮＵＲＢＳ曲面をまとめて入力しても構わない。本実施の形態では、ＮＵＲＢＳ曲面の例として４階（３次）のものを例に取るが、３階、２階でも同様である。
【００２５】
曲面判定部１０２は、曲面データ入力部１０１にて入力した、ＮＵＲＢＳ曲面を表すデータが、一様であるか否かを判定する。ノットベクトルｔ１、ｔ２、ｔ３、ｔ４・・・とすると、これらの隣接する値の差が一定である場合つまりｔ（ｉ＋１）−ｔｉが一定の場合には一様であり、そうでない場合には一様でないものと判定する。
【００２６】
曲面係数算出部１０３は、曲面データ入力部１０１にて入力した、ＮＵＲＢＳ曲面を表すデータを用いて、ＮＵＲＢＳ曲面からベジエ曲面に変化する計算式の係数を算出する。
【００２７】
ここでは４階（３次）のＮＵＲＢＳ曲線を例に説明する。ＮＵＲＢＳ曲線の一つの区間を表す制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４で、これに関わるノットベクトルを（ｔ２、ｔ３、ｔ４、ｔ５、ｔ６、ｔ７）で表す。
【００２８】
ＮＵＲＢＳ曲面が一様であるか否かを判断し、一様な場合には（数４）に示した計算によりＮＵＲＢＳ曲線の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４からベジエ曲線の制御点Ｄ１、Ｄ２、Ｄ３、Ｄ４を、一様曲面係数算出部２０２で算出する。一方、非一様な場合には（数５）に示した式を用いて、非一様曲面係数算出部２０１でベジエ曲線の制御点Ｄ１、Ｄ２、Ｄ３、Ｄ４を算出する（Ｓ４０２〜Ｓ４０４）。
【００２９】
図７は、ＮＵＲＢＳ曲線の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４、ノットベクトルｔ２、ｔ３、ｔ４、ｔ５、ｔ６、ｔ７の関係と、ベジエ曲線の制御点Ｄ１、Ｄ２、Ｄ３、Ｄ４を表した図である。図７において、Ｃ１は定義された曲線を示し、この曲線を４階のＮＵＲＢＳ曲線で表すためにはＢ１、Ｂ２、Ｂ３、Ｂ４の制御点とノットベクトルｔ２、ｔ３、ｔ４、ｔ５、ｔ６、ｔ７が用いられ、区間は［ｔ３≦ｔ＜ｔ４］である。この曲線は、ベジエ曲線の制御点Ｄ１、Ｄ２、Ｄ３、Ｄ４を用いることで、全く同一の曲線として表される。
【００３０】
（数４）、（数５）では、曲線に関して示しているが、これを曲面を表すために用いられるパラメータＵ、Ｖ方向に対してそれぞれ同様に適用することで、曲面に対しても表現できる。
【００３１】
【数４】
2005025255.tif 000006
【００３２】
【数５】
2005025255.tif 000007
【００３３】
係数の算出は隣接する区間に対して連続的に行う。（数４）、（数５）では、区間［ｔ３≦ｔ＜ｔ４］に対して有効である。次の区間［ｔ４≦ｔ＜ｔ５］以降に対しては、それぞれ添え字の数字を一つずつ増加させたものに読み替える。ＮＵＲＢＳ曲面によっては、多重ノットが存在する場合もあるが、その場合には有効な区間［ｔｉ≦ｔ＜ｔｉ＋１］となる範囲まで順次区間を進めたものを保持する。
【００３４】
（数４）、（数５）の関係式を、（数６）のように整理できる。
【００３５】
【数６】
2005025255.tif 000008
【００３６】
曲面係数算出部１０３では、（数６）に示した関係式の係数Ｒｉｊを算出し、メモリなどの記憶媒体に保持する。図８は、関係式の係数の保存の例を示す。一様なＮＵＲＢＳ曲面に対しては、区間ごとに係数を保持する必要はなく、（数４）で示した一つの係数の組のみを保持する。またあらかじめテーブルなどとして作成しておいて記録媒体に保存しておいても、プログラム中に組み込んでおいても構わない。
【００３７】
曲面形式変換部１０４では、曲面係数算出部１０３で算出した係数を使い、曲面の変換を行う。ＮＵＲＢＳ曲面が一様であるか否かを判断し、一様な曲面には（数４）を用い、一様曲面変換部２０４で、曲面を変換する。非一様な場合には（数５）を用い、非一様曲面変換部２０３で変換する（Ｓ４０５〜Ｓ４０７）。
【００３８】
あるいは、メモリなどに記録しておいた係数Ｒｉｊを呼び出し、（数６）の関係式を用いて算出する。
【００３９】
さらに、一様な場合には（数４）から１／６を共通にくくりだしてから計算することで、除算回数を減少させてもよい。
【００４０】
以上のような手順に従えば、ＮＵＲＢＳ曲面で表された一つの区間に対するベジエ曲面の制御点を算出できる。
【００４１】
さらに、連続した区間に対するベジエ曲面の制御点を連続的に算出することもできる。すなわち、最初の区間に対しては（数６）を用いて、ＮＵＲＢＳ曲面の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４を用いて、ベジエ曲面の制御点Ｄ１、Ｄ２、Ｄ３を算出する。続く区間についても、（数６）を用い、ＮＵＲＢＳ曲面の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４からベジエ曲面の制御点Ｄ１、Ｄ２、Ｄ３を算出する。そしてこれを繰り返し、最後の区間についてはＮＵＲＢＳ曲面の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４からベジエ曲面の制御点Ｄ１、Ｄ２、Ｄ３、Ｄ４を算出する。あるいは、この逆に最初の区間については、（数６）を用いてＮＵＲＢＳ曲面の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４からベジエ曲面の制御点Ｄ１、Ｄ２、Ｄ３、Ｄ４を算出し、続く区間については、ＮＵＲＢＳ曲面の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４からベジエ曲面の制御点Ｄ２、Ｄ３、Ｄ４を算出しても構わない。
【００４２】
つまり、図９を用いて説明すると、最初の区間［ｔ４≦ｔ＜ｔ５］ではＮＵＲＢＳ曲面の制御点Ｂ１、Ｂ２、Ｂ３、Ｂ４からベジエ曲面の制御点Ｄ１、Ｄ２、Ｄ３を算出し、続く区間［ｔ５≦ｔ＜ｔ６］では、ＮＵＲＢＳ曲面の制御点Ｂ２、Ｂ３、Ｂ４、Ｂ５からベジエ曲面の制御点Ｄ４、Ｄ５、Ｄ６を算出する。以下同様である。
【００４３】
曲面データ出力部１０５では、曲面形式変換部１０４で算出された制御点を出力する。
【００４４】
なお、本実施の形態では、曲面データ入力から曲面データ出力までを通して行う方法について説明を行ったが、図３に示すように曲面係数算出までを予めサーバ側で行い（３０１）、この計数を保持し、クライアント側に送りクライアント側で曲面変換を行う（３０２）、サーバ・クライアントモデルシステムとして構成しても構わない。
【００４５】
本実施の形態では、４階（３次）について説明したが、その他の場合にも同様に実施できる。例えば、３階（２次）の場合には、一様曲面に対しては（数７）を用い、非一様曲面に対しては（数８）を用いる。これらを簡単化して、（数９）の係数Ｒｉｊを保持する。
【００４６】
【数７】
2005025255.tif 000009
【００４７】
【数８】
2005025255.tif 000010
【００４８】
【数９】
2005025255.tif 000011
【００４９】
【発明の効果】
以上の説明から明らかなように本発明に係る画像生成装置及び画像生成方法は、ＮＵＲＢＳ曲面を表すパラメータを受け取り、ベジエ曲面を表す制御点を生成する画像生成方法において、前記ＮＵＲＢＳ曲面が一様であるか否かを判断し、一様と判断されたＮＵＲＢＳ曲面に対しては一様曲面変換を行い、一様でないと判断されたＮＵＲＢＳ曲面に対しては非一様曲面変換を行うことにより、ＮＵＲＢＳ曲面の性質に応じて好適に曲面形式を変換する。
【００５０】
さらに、連続したＮＵＲＢＳ曲面については、順次重複の内容にベジエ曲面の制御点を生成する。
【００５１】
以上のことから、本発明は、画像生成装置において、自由曲面を効率的に変換して描画することができると考えられ、その実用価値は極めて高い。
【図面の簡単な説明】
【図１】本発明の実施の形態１における画像生成装置の構成を表す図
【図２】本発明の実施の形態１における画像生成装置の構成を表す図
【図３】本発明の実施の形態１における画像生成装置の構成を表す図
【図４】本発明の画像生成方法の流れを表す図
【図５】本発明の画像生成装置の構成を表す図
【図６】ＮＵＲＢＳ曲面データを格納する例を表す図
【図７】ＮＵＲＢＳ曲線とベジエ曲線とその制御点の例を表す図
【図８】曲面係数を格納する一例を表す図
【図９】ＮＵＲＢＳ曲線の連続する区間とベジエ曲線とその制御点の例を表す図
【符号の説明】
１０１  曲面データ入力部
１０２  曲面判定部
１０３  曲面計数算出部
１０４  曲面形式変換部
１０５  曲面データ出力部
２０１  非一様曲面係数算出部
２０２  一様曲面係数算出部
２０３  非一様曲面変換部
２０４  一様曲面変換部
５０１  ＣＰＵ
５０２  Ｉ／Ｏ
５０３  メモリ
【図１】
2005025255.tif 000012
【図２】
2005025255.tif 000013
【図３】
2005025255.tif 000014
【図４】
2005025255.tif 000015
【図５】
2005025255.tif 000016
【図６】
2005025255.tif 000017
【図７】
2005025255.tif 000018
【図８】
2005025255.tif 000019
【図９】
2005025255.tif 000020