JP4479957B2 - 曲面細分割装置 - Google Patents

曲面細分割装置 Download PDF

Info

Publication number
JP4479957B2
JP4479957B2 JP2004134213A JP2004134213A JP4479957B2 JP 4479957 B2 JP4479957 B2 JP 4479957B2 JP 2004134213 A JP2004134213 A JP 2004134213A JP 2004134213 A JP2004134213 A JP 2004134213A JP 4479957 B2 JP4479957 B2 JP 4479957B2
Authority
JP
Japan
Prior art keywords
subdivision
curved surface
control point
control
point information
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
JP2004134213A
Other languages
English (en)
Other versions
JP2005056385A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004134213A priority Critical patent/JP4479957B2/ja
Publication of JP2005056385A publication Critical patent/JP2005056385A/ja
Application granted granted Critical
Publication of JP4479957B2 publication Critical patent/JP4479957B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Image Input (AREA)

Description

本発明は、コンピュータグラフィックスにおいて曲面を表現する装置に関し、特に曲面を細分割処理によりポリゴン近似する曲面細分割装置に関する。
コンピュータグラフィックス(以降、CGと称す)は、近年、映像制作の一手法として不可欠な技術となっている。CG分野における重要な要素技術であるモデリングでは、描画対象となるオブジェクトを、ポリゴンと呼ばれる多角形の集合で表現する方法が現在主流である。しかし、CG技術の発展に伴い、様々な形式で表現されたオブジェクトを描画したいという要求が高まっている。NURBS曲面やベジェ曲面などのパラメトリック曲面の描画は、その代表的な例である。曲面形式で表現されたオブジェクトは、多角形ポリゴンで表現されたオブジェクトと比較して一般的にデータ量が少なく、LANやインターネットなどのネットワークを利用したデータ伝送などとも親和性が高い。
代表的なパラメトリック曲面である4階(3次)の有理ベジェ曲面の例を図1に示す。4階(3次)の有理ベジェ曲面は、以下の形式で表される。
有理ベジェ曲面は、2個の独立したパラメータを用いて表現される。ここでは、曲面を定義するパラメータが張る平面の第1軸方向をu方向、第2軸方向をv方向とするが、その限りではない。尚、0<=u<=1、0<=v<=1である。Qij(i=0、...、3、j=0、...、3)は、有理ベジェ曲面の形状を定義する制御点であり、4階(3次)の場合には4×4=16点存在する。尚、以降では制御点をコントロールポイントと称することがある。
これらのコントロールポイントのうち、Q00、Q30、Q03、Q33は曲面上に存在するが、それ以外は曲面上に存在しない。各コントロールポイントは、位置を表すx、y、z成分に加えて、ウェイトに相当するw成分を含んでいる。ウェイトとは、各々の制御点が有理ベジェ曲面の形状に与える影響の強さを表す指標である。また、これらを統一的に扱うために4次同次座標系表現を用いると都合が良い場合も多い。同次座標系で表現された成分X、Y、Z、Wと、x、y、z、wの間には、X=w*x、Y=w*y、Z=w*z、W=wの関係がある。ここで*は積である。
さらに、ベジェ曲面には凸包性があり、曲面はコントロールポイントによって張られる多面体に完全に包含されることが知られている。
曲面形式で表現されたオブジェクトを、ハードウェアを用いて高速に描画するためには、コントロールポイントから曲面上に存在する点を算出し、それらの点を連結することによってポリゴンモデルとして近似する方法が非常に有効である。また、ベジェ曲面には、コントロールポイント間の内分点を順次求めることにより、最終的に曲面上の点を算出できるという性質がある(詳細は後述)。この性質を利用して曲面図形を処理する従来技術として、「図形情報生成装置、画像処理装置、情報処理装置、図形情報生成方法及び記憶媒体」がある(特許文献1参照)。
前記の従来技術では、曲面の形状を定義する制御点を格子状に与え、この格子状の制御点から当該曲面図形を表現するための頂点値を生成する場合に、所定のビット幅の制御点A、Bと所定のビット幅で0≦t≦1の値をとる補間係数tとに基づき、制御点間を内分する新たな制御点の座標値に関してA×(1−t)+B×tを順次演算する線形補間器を備えている。そして、隣接する制御点間の新たな制御点を順次求めていき、最終的に曲面図形を表現する頂点座標値を得る。また補間係数tの値を更新することにより、曲面図形を表現する多数の座標値を算出する。
特開2001−331812号公報(第7−11頁)
しかしながら、前記の従来技術では、図形情報生成部において、制御点の入出力制御だけでなく、補間係数tについても現在の値を保持し、一連の処理後に更新するなどの制御が必要となり、線形演算器の構成が複雑になる。従って、曲面画像の表示においては、演算量をいかに削減するかが問題となる。
また、3次元オブジェクトをより細かくリアルに表現するためには、必然的に曲面を近似するポリゴン分割数を大きくする必要があり、計算負荷が大きくなるという問題もある。
そこで、本発明は、前記課題に鑑みてなされたものであり、単純なハードウェア構成及び小規模なメモリで細分割処理が可能な曲面細分割装置を提供することを目的とする。
また、本発明は、パラメトリック曲面における第1軸方向及び第2軸方向の細分割レベルが異なる場合であっても、3次元曲面生成の高速処理が可能な曲面細分割装置を提供することをも目的とする。
以上の課題を解決するために、本発明に記載の曲面細分割装置は、[請求項1]。
この構成によると、前記細分割処理演算手段において曲面を定義する制御点情報を細分割処理した後の新たな制御点情報を別のワークメモリ部に格納するのではなく、細分割処理を行った第1制御点情報に上書きして格納する。従って、細分割処理演算手段は、より小規模なワークメモリ部のメモリ容量で細分割処理を行うことが可能となる。
また、本発明に係る曲面細分割装置は、[請求項8]。
この構成においては、細分割処理演算手段における細分割処理の前後におけるメモリ番地が記述される制御テーブルを記憶する制御テーブル保持手段を備える。従って、演算制御部は、複雑な制御を行う必要がなくなり、演算量を削減することが可能となる。
さらに、本発明に係る曲面細分割装置は、[請求項14]、より好ましくは[請求項15]。
この構成においては、細分割レベル決定手段において半整数値の細分割レベルを設定して、細分割回数が整数値か半整数値かを判定して、条件に合わせた制御点の選択を行う制御点選択手段を備えるために、細分割処理後のポリゴン生成手段におけるポリゴン生成数を急激に増加させることを防止して、ポリゴン生成における計算負荷を軽減することが可能となる。
尚、本発明は、上述のような曲面細分割装置として実現できるのみではなく、この曲面細分割装置が備える手段をステップとする曲面細分割方法、この曲面細分割方法をコンピュータ等で実現させるプログラムとして実現したりすることができる。そして、当該プログラムをCD−ROM等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることができるのは言うまでもない。
以上のように、本発明に係る曲面細分割装置においては、細分割処理演算部では補間係数を制御する必要がなく、非常に単純なハードウェアで構成することができる。
また、細分割処理演算部で処理された結果を、そのデータが処理される前に格納されていたメモリアドレスから上書きすることや、再帰的な処理を用いることによって、より小規模なメモリ容量で実現することができる。
さらに、各細分割レベルに対応する制御テーブルが予め作成され、細分割処理演算制御部に保持されているため、細分割処理演算制御部は条件分岐などの複雑な制御を行う必要がない。
またさらに、制御テーブルは、細分割レベルの高い方向から処理を実行するように構成されるために、法線ベクトルなどを重複して算出しなければならない制御点の個数を最小限に抑えることができる。従って、u、v方向で細分割レベルが異なる場合であっても、高速な処理が可能となる。
そして、本発明に係る曲面細分割装置においては、u方向とv方向で細分割レベル数が入れ替わっているだけの細分割処理は、同一の制御テーブルで実行するように制御でき、細分割処理演算制御部の規模を縮小することができる。従って、細分割処理演算制御部に格納される制御テーブル数を増やすことなく、細分割レベルをより柔軟に制御することができる。また、細分割処理のレベル上昇に伴うポリゴン数の急激な増加を緩和することが可能となる。
以下、本発明に係る曲面細分割装置の各実施の形態について、図面を参照しながら説明する。尚、本発明の実施の形態では、4階(3次)の有理ベジェ曲面を例に挙げて説明するが、本発明は任意の階数(次数)の有理又は非有理ベジェ曲面に対して適用可能である。また、NURBS曲面はノット挿入アルゴリズムにより、有理ベジェ曲面の集合で表現可能であることが一般的に知られている。従って、それが可能な手段が備えられている場合には、任意のNURBS曲面に対しても適用可能である。
(実施の形態1)
以下、本発明の実施の形態1に係る曲面細分割装置を、図面を参照しながら説明する。
図2は、本発明の実施の形態1における曲面細分割装置の機能ブロック図である。
本発明の実施の形態1に係る曲面細分割装置10は、曲面情報入力受付部12、細分割レベル決定部13、ワークメモリ部14、細分割処理演算部15、及び細分割処理演算制御部16を備える。以下、それぞれの機能について詳細に説明する。
曲面情報11は、描画対象となるオブジェクトの形状データである。オブジェクトは有理ベジェ曲面で表現されているため、形状データは、具体的にはコントロールポイントの座標値及びウェイトである。コントロールポイントは、3次元空間座標系で表現されていても、4次元同次座標系で表現されていても良い。本発明の実施の形態1では、4次元同次座標系で表現されているものとする。また、オブジェクトは複数の有理ベジェ曲面の集合で表現されていても良く、さらに各コントロールポイントには、形状データ以外にテクスチャ座標データやマテリアルデータなどが含まれても良い。
曲面情報入力受付部12は、曲面情報11の入力を受け付け、細分割レベル決定部13に転送する。オブジェクトが複数の有理ベジェ曲面で構成されている場合には、上述した処理を全ての曲面パッチデータの入力が終了するまで繰り返す。
次に、細分割レベル決定部13を説明する前に、細分割処理、及び細分割レベルについて定義する。
上述したように、有理ベジェ曲面には、コントロールポイント間の内分点を順次求めることによって、最終的に曲面上に存在する点を算出することができるという性質がある。以降では、この性質を利用して曲面上に存在する点を算出し、有理ベジェ曲面を複数の区分曲面パッチに分割する処理を、細分割処理と称す。
図3に、代表的な細分割処理アルゴリズムであるド・カステリョのアルゴリズムを用いて、有理ベジェ曲線を細分割した一例を示す。図3に示すように本アルゴリズムでは、コントロールポイントQ0、Q1、Q2、Q3によって構成されている4階(3次)有理ベジェ曲線において、まず隣接するコントロールポイント間に、C=A×(1−t)+B×tを適用することによって内分点を算出する。ここで、A、Bは隣接するコントロールポイント、tは内分の比を表す補間係数であり、Cは新たに算出される点である。本アルゴリズムでは、この処理により頂点Q4、Q5、Q6を取り、さらにそれらの間の内分点を求めてQ7、Q8を取る。最終的にQ7、Q8の内分点Q9を求めると、頂点Q9は有理ベジェ曲線上に存在し、Q0−Q4−Q7−Q9とQ9−Q8−Q6−Q3を新たにコントロールポイントとする2個のベジェ曲線B0、B1に細分割される。尚、算出された頂点Q9は、パラメトリック空間上でu=tの点になる。曲線をさらに細分割するには細分割されたベジェ曲線B0、B1に対してそれぞれ同様の処理を適用すれば良い。
有理ベジェ曲面の場合には上述した処理をu、v両方向に適用することにより、1個の曲面パッチを複数の小パッチの集合に細分割する。以降では、1個の曲面パッチを細分割することによって生成される小パッチを、細分割前の曲面パッチに対するサブパッチと称す。u、v方向各1回の処理で、1個の曲面パッチは4個のサブパッチに細分割されるが、必ずしも両方向とも同一回数だけ細分割する必要はない。(図4)図4(a)に、細分割処理前の有理ベジェ曲面パッチの例を示し、図4(b)に、u、v方向に各1回の細分割処理を適用した場合の例、図4(c)に、u方向に3回、v方向に1回の細分割処理を適用した場合の例を示す。以降では、細分割処理を実行する回数を細分割レベルと定義する。
細分割レベル決定部13は、入力された曲面パッチに関して、u、vそれぞれの方向に対する細分割レベルを決定する。細分割レベルの決定には、様々な方法が考えられるが、特に限定しない。以下で、4通りの方法について説明する。
(1)固定値を用いる方法
細分割レベルを予め決定しておき、全てのパッチを固定レベルで細分割する。細分割レベルの決定は非常に高速に行えるが、細かく分割されなければならないパッチが分割されなかったり、逆に細分割する必要のないパッチが分割されてしまうなど、処理効率が低下するという問題がある。
(2)視点からの距離を用いる方法
3次元CGにおいて、オブジェクトを描画するためには、仮想空間中に視点位置及び視線方向を決定する必要がある。ここで、視点に近い位置にあるオブジェクトは大きく表示される可能性が高く、視点から離れた位置にあるオブジェクトは小さく表示される可能性が高い。従って、視点に近いオブジェクトは細かく分割し、離れた位置のオブジェクトは粗く分割すると考えるのが自然である。そこで、視点位置からオブジェクトへの距離を算出し、算出された距離に応じて細分割レベルを動的に制御する。具体的には、例えば図5に示すような、視点からの距離とそれに対応する細分割レベルの関係を表すテーブルを用意しておき、そのテーブルを参照することによって、それぞれの曲面パッチに対する細分割レベルを決定する。例えば、図5においてML<=Lの場合には5回の細分割処理を行うことを意味している。
(3)スクリーン上での表示面積を用いる方法
(2)と同様の理由から、曲面パッチを仮想空間中に設置されたスクリーンに投影し、その表示面積に応じて細分割レベルを決定する。具体的には、(2)の例と同様に、スクリーン上での表示面積とそれに対応する細分割レベルの関係を表すテーブルを用意し、それを参照することによって、それぞれの曲面パッチに対する細分割レベルを決定すれば良い。
(4)コントロールポイント間の距離を用いる方法
(2)や(3)の方法では、u、v方向に対して異なる細分割レベルを決定することができない。そこで、コントロールポイント間の距離を用いることにより、u、vそれぞれの方向に対する細分割レベルを決定する。例えば、図2において、以下の値をそれぞれ算出する。
LU=(|Q30−Q00|+|Q33−Q03|)/2
LV=(|Q03−Q00|+|Q33−Q30|)/2
|・|は、2個のコントロールポイント間の距離を表す。そして、(2)や(3)の場合と同様に、LU、LVとそれに対応する細分割レベルの関係を表すテーブルを用意しておき、算出されたLUの値に基づいてu方向の細分割レベルを、LVの値に基づいてv方向の細分割レベルを決定する。
上述した(1)から(4)の方法、又はその組み合わせを用いて、曲面パッチの細分割レベルを決定する。以降では、u方向の細分割レベルをu方向レベル、v方向の細分割レベルをv方向レベルと称す。決定されたu方向レベル、v方向レベルは、細分割処理演算制御部16に転送される。また、曲面パッチを構成するコントロールポイントデータは、ワークメモリ部14に転送される。
次に、ワークメモリ部14、細分割処理演算部15、及び細分割処理演算制御部16の機能について詳述する。尚、以下では細分割レベル決定部13において、当該曲面パッチのu方向レベルが2、v方向レベルが1であると決定された場合を例に挙げて説明するが、それ以外の細分割レベルに決定された場合でも同様の方法で処理可能である。
図3から明らかなように、4階(3次)の有理ベジェ曲線の場合、細分割処理は4個のコントロールポイント(図3の例ではQ0、Q1、Q2、Q3)を取得し、内分点を算出して7個の頂点(図3の例ではQ0、Q4、Q7、Q9、Q8、Q6、Q3)を生成する処理である。曲面の場合には、同様の処理をu、vそれぞれの方向に対して行うため、それを2次元に拡張したものであると考えれば良い。
図6は、本発明の実施の形態1における曲面細分割装置10のワークメモリ部14の構成を模式的に表した図である。図6に示すように、ワークメモリ部14は細分割処理を効率的に実行するため、7×7要素を1ブロックとした構成になっており、1ブロックを利用してu方向1レベル、v方向1レベルの細分割処理を基本的に行う。以降、このブロックを基本ブロックと称す。基本ブロックは、細分割レベルの最大値以上の個数を確保しなければならない。従って、例えば最大細分割レベルが3であれば、基本ブロックは少なくとも3ブロック必要である。
また、図6は細分割レベル決定部13で細分割レベルが決定された曲面パッチが、ワークメモリ部14に転送されてきた直後の初期状態を表している。図6に示すように、u方向に隣接するコントロールポイントは、ワークメモリ部14のj方向に隣接するように格納され、v方向に隣接するコントロールポイントはk方向に隣接するように格納される。以降では説明を容易にするために、ワークメモリ部14にWORKMEMという名前を付与し、メモリアドレスは、基本ブロック番号i、列方向の位置j、行方向の位置kを用いて、WORKMEM[i][j][k]と表現するものとする。例えば、図6では、WORKMEM[0][1][2]=Q12.xである。
尚、図6に示すように、本発明の実施の形態1では、X、Y、Z、W成分がそれぞれ別のワークメモリで構成されている場合について説明するが、その限りではない。例えば、ワークメモリ部14の各要素WORKMEM[i][j][k]に、X、Y、Z、W成分が連続して格納される構造であっても良い。
細分割処理演算部15は、細分割処理演算制御部16により指定されたアドレスの頂点データをワークメモリ部14より読み出し、ド・カステリョのアルゴリズムに基づいて、補間係数t=1/2の場合の細分割処理を実行するハードウェアである。入力された頂点データをQ0、Q1、Q2、Q3、細分割処理後に生成されるデータをQ0’、Q1’、Q2’、Q3’、Q4’、Q5’、Q6’とすると、以下の関係が成立する。
細分割処理演算部15は、上式の演算を実行するために、加算器や乗算器、シフタなどにより構成される。図7は、細分割処理演算部15を模式的に表現した例であるが、ハードウェア構成は特に限定しない。図7からも明らかなように、細分割処理演算部15は、非常に単純なハードウェアで実現することができる。
細分割処理演算制御部16には、各細分割レベルに対応した、ワークメモリ部14の入出力を制御するための制御テーブルが格納されている。また、細分割処理演算制御部16は、細分割処理の前後における制御点情報のワークメモリ部14上のメモリ番地が記載される制御テーブルを格納している制御テーブル格納部16aを備える。
以降、ワークメモリ部14の入出力を制御するためのテーブルを制御テーブルと称す。そして、細分割処理演算制御部16は、細分割レベル決定部13から細分割レベルを取得すると、それに対応する制御テーブルを設定する。この例の場合は、u方向レベル=2、v方向レベル=1に対応する制御テーブルが設定される。制御テーブルの一例を図8に示す。
図8の制御テーブル20では、左から順に細分割処理演算部15に入力する先頭のデータのワークメモリ部14における基本ブロック番号、j方向位置、k方向位置、読み込み方向、演算結果の先頭のデータを格納する基本ブロック番号、j方向位置、k方向位置、書き込み方向をそれぞれ表す。読み込み方向及び書き込み方向において、jはj方向に読み込む(書き込む)ことを表し、kはk方向に読み込む(書き込む)ことを表す。
例えば、ステップS10は、WORKMEM[0][0][0]のデータを先頭に、j方向に4個のデータを読み出して、細分割処理を実行した後、生成された7個のデータをWORKMEM[0][0][0]を先頭にj方向に書き込むことを意味する。また、ステップS11では、WORKMEM[1][0][0]のデータを先頭に、k方向に4個のデータを読み出して処理し、生成されたデータをWORKMEM[1][0][0]を先頭にk方向に書き込むことを意味する。これらの一連のステップが、細分割処理の終了まで時系列に記述されたものが制御テーブルである。尚、制御テーブルの構造はこの限りではなく、例えば、ループ回数を表す項目を追加し、1行目から4行目までのステップを1行のステップとして記述しても良い。
細分割処理演算制御部16の制御テーブル格納部16aには、細分割レベル決定部13において決定され得る全ての細分割レベルの組み合わせに対応する制御テーブルが保持されている。尚、ハードウェア規模の問題などにより、制御テーブル格納部16aが制御テーブルを保持することが不可能な場合には、制御テーブルを外部の記憶装置に格納しても良い。その場合には、細分割レベル決定部13において細分割レベルが決定された時点で、外部記憶装置から対応する制御テーブルを読み出し、細分割処理演算制御部16に設定すれば良い。
次に、制御テーブルの作成手順について説明する。まず、制御テーブルの基本的な入出力制御アルゴリズムについて述べる。以降では、ワークメモリ部14における各基本ブロックを4個の領域に分割し、それぞれの領域をゾーンと称す。すなわち、WORKMEM[i][j][k]で、
ゾーン0:j=0、1、2、3 k=0、1、2、3
ゾーン1:j=3、4、5、6 k=0、1、2、3
ゾーン2:j=0、1、2、3 k=3、4、5、6
ゾーン3:j=3、4、5、6 k=3、4、5、6
と定義する。尚、同一ゾーン内に格納されるデータは1個の曲面パッチを構成するコントロールポイントの集合である。
制御テーブルでは、以下の3通りの場合で入出力制御アルゴリズムが異なっている。
(1)初期状態
(2)u、vいずれかの方向のみ処理する場合
(3)u、v両方向処理する場合
以下で、それぞれの場合について述べる。
(1)初期状態
初期状態では、図6に示されるように、基本ブロック番号0、ゾーン0の位置に入力データが格納されている。従って、いずれの方向の処理を行う場合にも、このデータを読み出し、演算結果を基本ブロック番号0の領域に再び書き込む。従って、入力データが格納されていた領域は、新たに生成されたデータによって上書きされる。
図11(a)に、初期状態においてu方向にのみ1回細分割処理された直後のワークメモリ部14の状態、図11(b)に、v方向に1回処理された直後の状態、図11(c)に、uv両方向に各1回処理された直後の状態をそれぞれ示す。
(2)u、vいずれかの方向のみ処理する場合
u、vいずれかの方向のみ処理する場合には、細分割処理演算部15で処理された結果を、次の基本ブロック番号の領域に書き込む。従って、入出力アルゴリズムは以下のようになる。
(イ)基本ブロック番号iのデータを、j方向(又はk方向)に読み込む。
(ロ)演算の結果生成されたデータを、基本ブロック番号(i+1)の領域に、j方向(又はk方向)に書き込む。
図12(a)に、細分割処理前のワークメモリ部14の状態を示し、図12(b)に、基本ブロックi、ゾーン0のデータをu方向にのみ細分割処理した直後の状態の例を示す。
(3)u、v両方向処理する場合
u、v両方向とも処理する場合には、u方向の演算処理結果は次の基本ブロック番号の領域に書き込む。続いて、v方向の処理では演算結果を同一の基本ブロック番号の領域に書き込む。従って、v方向処理前のデータが格納されていた領域は、新たに生成されたデータによって上書きされる。入出力アルゴリズムは以下の通りである。
(イ)基本ブロック番号iのデータを、j方向に読み込む。
(ロ)演算の結果生成されたデータを、基本ブロック(i+1)の領域に、j方向に書き込む。
(ハ)基本ブロック番号(i+1)のデータを、k方向に読み込む。
(ニ)演算の結果生成されたデータを、基本ブロック(i+1)の領域に、k方向に書き込む。
図13(a)に、細分割処理前のワークメモリ部14の状態を示し、図13(b)に、基本ブロックi、ゾーン0のデータをu方向に処理した直後の状態、図13(c)に、uv両方向の処理が実行された直後の状態の例を示す。尚、本発明の実施の形態1では、u方向から先に処理する場合について説明したが、v方向から先に処理しても同様のアルゴリズムを用いることができる。
次に、細分割処理の演算における基本的なアルゴリズムを補足的に説明する。
図14は、本発明の細分割処理演算部15のu方向分割における基本的なアルゴリズムの説明図である。
図14(a)に示すように、u方向の分割処理においてj方向のメモリ領域に空きがある場合には、同一基本ブロック上でデータ上書きを行う。また、図14(b)に示すように、u方向の分割処理においてj方向のメモリ領域に空きがない場合には、次の基本ブロックにデータ書込みを行う。
図15は、本発明の細分割処理演算部15のv方向分割における基本的なアルゴリズムの説明図である。
図15(a)に示すように、k方向のメモリ領域に空きがある場合においては、同一基本ブロック上でデータ上書きを行う。また、図15(b)に示すように、k方向のメモリ領域に空きがない場合においては、次の基本ブロックにデータ書込みを行う。
あるゾーンに存在するデータの処理が終了すると、基本ブロックには、一つ前の基本ブロックの、次のゾーンに存在するデータが入力される。すなわち、制御テーブルは、ワークメモリ部14の各基本ブロックに格納されているデータを、再帰的に処理するように構成される。
次に、制御テーブルはu方向レベルとv方向レベルのうち、高い方のレベルから処理を開始するように作成されるが、その理由を以下で述べる。
細分割処理が終了した時点で、描画処理のために次段に転送される頂点データの構成には以下の3通りの場合が考えられる。
(a)u方向の頂点数がv方向の頂点数よりも多い場合
(b)v方向の頂点数がu方向の頂点数よりも多い場合
(c)u方向の頂点数とv方向の頂点数が等しい場合
それぞれの場合における頂点の構成を模式的に表現したものを図9に示す。図9(a)〜(c)が、上述した3通りの場合にそれぞれ対応している。また、黒点はベジェ曲面上にない頂点であり、白抜きの点は曲面上に存在する頂点である。CGにおいて、オブジェクトを描画するには、オブジェクトを構成する各頂点の輝度を計算するための法線ベクトルが必要である。従って、曲面を描画するにも、次段で曲面上に存在する各頂点における法線ベクトルを算出しなければならない。ここで、図9(a)及び(b)では、最終的に生成される頂点のうち、曲面上に存在する点は6個である。一方、図9(c)では、曲面上に存在する頂点が9個ある。これは次段でまとめて処理可能な法線ベクトルの数に、差があることを意味している。細分割レベルが同じであれば最終的に生成される頂点数は変わらないことを考慮すると、図9(a)及び(b)では、重複して計算する法線ベクトルの個数が多くなり、効率が悪い。また、重複計算を避けるためには算出した法線ベクトルを一時的に保持するバッファメモリを設ければよいが、メモリの規模が大きくなってしまうという問題がある。従って、できる限り図9(c)の構成で出力することが望ましい。この理由から、各制御テーブルはレベルの高い方向から処理を開始し、細分割レベルの低い方向で細分割処理を終了し、且つその直前にはそれと異なる方向で分割することが必要となるために、最終ステップでuv両方向の細分割処理を実行するように作成される。尚、u方向レベルとv方向レベルが同一である場合にはどちらの方向から処理を開始しても良い。
各細分割レベルに対応する制御テーブルは、上述した処理の組み合わせで構成される。例えば、u方向レベル=2、v方向レベル=1の制御テーブルでは、初期状態においてu方向のみの処理を行い、続いてu、v両方向処理を1回行うように構成される。(図10)図10は、u方向=2、v方向=1の分割回数の場合のワークメモリ部14の状態を示す図である。重複して計算する法線の数から、出力される形式はu→u→v方向で分割処理を行うパターン1が望ましいこととなる。
また、u方向レベル=1、v方向レベル=3の制御テーブルでは、初期状態においてv方向のみの処理、続いて再びv方向の処理を実行した後、uv両方向処理を1回行うように構成される。
次に、細分割処理演算制御部16では、細分割レベルに応じて設定された制御テーブルを解釈し、ワークメモリ部14におけるデータ入出力を制御する。制御テーブルの各行に関して、まず左から1番目から3番目の値を解釈し、ワークメモリ部14のどのアドレスのデータから読み出すのかを決定する。そして、左から4番目の値を読み、データをj方向又はk方向のいずれの方向に読み出すのかを決定し、4個のデータを細分割処理演算部15に入力する。演算された結果は、左から5番目から7番目までの値を解釈することによって、ワークメモリ部14のどのアドレスから書き込むのかを決定し、左から8番目の値を解釈して、結果をj方向又はk方向のいずれの方向に書き込むのかを決定する。細分割処理演算制御部16において、細分割処理演算により算出されたデータの出力アドレスの決定と、次のステップの入力データアドレスの決定を並行して行うことにより、高速な処理が可能となる。
有理ベジェ曲面を構成するコントロールポイントのX成分について制御テーブルの実行がすべて終了すると、細分割処理演算制御部16は、ワークメモリをY成分が格納された領域に切り替え、制御テーブルを1行目から再び実行する。同様の処理を、Z成分、及びW成分に対しても行うことにより、有理ベジェ曲面の細分割処理が完了する。
尚、本発明の実施の形態1では、4階(3次)の有理ベジェ曲面に適用する例について述べたが、(n+1)階(n次)(n>0)の有理ベジェ曲面に適用する場合には、細分割処理演算部15は、(n+1)個の頂点データの入力を受け付け、(2n+1)個のデータを出力するハードウェアとなる。また、ワークメモリ部14は(2n+1)×(2n+1)個の領域を基本ブロックとする構成となる。
以上の説明のように、本発明の実施の形態1に係る曲面細分割装置によれば、細分割レベル決定部13は、まず曲面の形状を定義するコントロールポイントの入力を受け付け、当該曲面パッチの細分割レベルを決定する。
次に、決定された細分割レベルに対応する制御テーブルを、細分割処理演算制御部16に設定する。細分割処理演算制御部16は、設定された制御テーブルに基づき、ワークメモリ部14及び細分割処理演算部15を制御して細分割処理を実行する。細分割処理演算部15は、従来技術のように補間係数を制御する必要はなく、非常に単純なハードウェアで構成される。
また、細分割処理演算部15で処理された結果を、そのデータが処理される前に格納されていたメモリアドレスから上書きすることや、再帰的な処理を用いることによってメモリ領域を効率的に利用する。従って、ワークメモリ部14は、必要最小限の小規模なメモリで実現される。
さらに、制御テーブルには、ワークメモリ部14の入出力制御ステップが時系列に記述されている。従って、細分割処理演算制御部16は、条件分岐などの複雑な制御を行う必要はない。
また、制御テーブルは、u方向とv方向の細分割レベルが異なる場合、細分割レベルの高い方向から処理を実行するように構成されるため、法線ベクトルなどを重複して計算しなければならない制御点の数を最小限に抑えられる。以上より、u、v方向の細分割レベルが異なる場合であっても、高速な曲面細分割処理が可能である。
(実施の形態2)
以下、本発明の実施の形態2に係る曲面細分割装置を、図面を参照しながら説明する。尚、本実施の形態2において、u方向とv方向で細分割レベル数が入れ替わっている細分割処理においては、同一の制御テーブルで実行するように制御でき、細分割処理演算制御部16の規模を縮小できることを特徴とする。
図16は、本発明の実施の形態2における曲面細分割装置の機能ブロック図である。図16の曲面細分割装置30は、本発明の実施の形態1で説明した構成に加えて、曲面情報入力制御部31を備えている。この曲面情報入力制御部31を備えることにより、細分割処理演算制御部16の制御テーブル格納部16aに保持する制御テーブルの量を減らすことができ、より小規模なハードウェアで実現することが可能となる。以下でそれぞれの機能について詳細に説明するが、図1と同様のものには同一番号を付し、説明を省略する。
本発明の実施の形態1と同様に、曲面情報入力受付部12は、曲面情報11の入力を受け付ける。そして、細分割レベル決定部13において細分割レベルが決定される。決定された細分割レベルは、細分割処理演算制御部16に転送されるだけでなく、曲面情報入力制御部31にも転送される。また、曲面パッチのコントロールポイントのデータは、ワークメモリ部14に格納される前に、一旦曲面情報入力制御部31に保持される。
初期状態において、u方向の細分割処理とv方向の細分割処理では、ワークメモリ部14での読み出し/書き込み方向が異なる。従って、上述した実施の形態1においては、u方向レベル=2、v方向レベル=1の処理と、u方向レベル=1、v方向レベル=2の処理では方向を入れ換えた異なる制御テーブルを用意する必要がある。そこで、本実施の形態2の場合においては、同一の制御テーブルを用いて細分割処理が実行可能となるように、曲面情報入力制御部31では、入力データのワークメモリ部14への格納順序を制御する。
図17は、曲面情報入力制御部31の処理の流れを示すフローチャートである。まずステップS20において、曲面のコントロールポイントデータ及びuv方向レベルが入力されると、いずれの方向のレベルが大きいのかを判定する。そして、u方向レベルがv方向レベルよりも大きいか、もしくは同一レベルの場合(ステップS21がYESの場合)には、以下の関係が成り立つようにコントロールポイントデータを格納する(ステップS22)。
WORKMEM[0][j][k]=Qjk
また、v方向レベルがu方向レベルよりも大きい場合(ステップS21がNOの場合)には、図15に示すように、データを反時計回りに90度回転させた並びでデータを格納する。すなわち、以下の関係が成り立つ(ステップS23)。
WORKMEM[0][j][k]=Q(3-k)j
最後に、ステップS24において、決定された順序に従ってワークメモリ部14にデータを格納する(ステップS24)。そして、曲面情報の入力制御における一連の動作を終了する。尚、ワークメモリ部14、細分割処理演算部15、及び細分割処理演算制御部16の動作は上述した実施の形態1と同様である。
図18に、ワークメモリ内に格納されている制御点情報の順番を変更する場合の参考図を示す。図18においては、図6のワークメモリ部14に格納されている制御点情報を反時計方向に90度回転させて再格納する。このため、u方向とv方向の細分割回数が入れ替わっている細分割処理において、同一の制御テーブルを用いてワークメモリ内のメモリ番地の指定を行うことが可能となる。
図19に、u方向及びv方向の細分割回数を入れ替えた場合の制御テーブルの参考図を示す。
図19に示すように、u方向=2、v方向=1の細分割回数の制御テーブルと、u方向=1、v方向=2の細分割回数の制御テーブルを比較すると、下記の3つの点が異なる。
(1)基本ブロック番号iは変化しない。
(2)j列とk列はinput及びoutput共に列を入れ替える。
(3)Dに記載されている読み込み方向及び書き込み方向であるj列をk列を入れ替える。
従って、細分割処理演算制御部16は、上記の(1)〜(3)を用いて制御テーブルを書き換えることにより、制御テーブル格納部16aに格納される制御テーブルの容量を削減することが可能となる。
以上の説明のように、本発明の実施の形態2に係る曲面細分割装置は、u、v方向の細分割レベルの大小に応じて、コントロールポイントデータのワークメモリ部14への格納順序を制御する曲面情報入力制御部31を備えている。
その結果、u方向とv方向でレベル数が入れ換わっているだけの細分割処理は、同一の制御テーブルで実行することが可能となる。従って、制御テーブルの総容量が小さくなり、細分割処理演算制御部16の規模を縮小することができる。
(実施の形態3)
次に、本発明の実施の形態3に係る曲面細分割装置を、図面を参照しながら説明する。尚、本実施の形態3においては、曲面細分割装置は、曲面上に存在する点を用いたポリゴンの構成方法を制御することによって、ポリゴン数の急激な増加を抑制するポリゴン生成部を備えることを特徴とする。
図20は、本発明の実施の形態3における曲面細分割装置の機能ブロック図である。図20の曲面細分割装置40は、本発明の実施の形態1で説明した構成に加えて、ポリゴン生成部41を備えている。以下でそれぞれの機能について詳述するが、図1と同様のものには同一番号を付し、説明を省略する。
図21にポリゴン生成部におけるポリゴン近似の参考図を示す。
細分割処理を用いた曲面の描画では通常、生成されたコントロールポイントのうち、ベジェ曲面上に存在する頂点を連結することによってポリゴン近似を行う。例えば、図9(c)のような頂点データが得られたとすると、曲面パッチを図21(a)に示すように、8個の三角形ポリゴンに分割する。また、曲面パッチはuv方向に各1回細分割処理されると、4個のサブパッチに分割される(図4参照)。従って、uv方向に各1回細分割処理すると、最終的に生成されるポリゴン数は4倍になり、細分割レベルが大きくなるにつれて、ポリゴン数は急激に増大する。
そのために、細分割レベル決定部13は、これまでの実施例で述べた整数刻みの細分割レベルに加えて、その中間のレベル(0.5刻みのレベル)が決定可能な構成にする。以降では、小数部が0でない細分割レベルを中間レベルと称す。
例えば、オブジェクト(曲面パッチ)の視点からの距離に応じて細分割レベルを決定するテーブルを用意する方法の場合には、細分割レベルをさらに細かく分類し、図22のようなテーブルを用意することが考えられる。また、コントロールポイント間の距離を用いてuv方向レベルをそれぞれ決定する方法を用いる場合にも同様に、中間レベルを設定可能なテーブルを用意し、コントロールポイント間の距離に応じて、u方向レベル、v方向レベルを求めれば良い。決定された細分割レベルは、細分割処理演算制御部16に転送されるだけでなく、ポリゴン生成部41にも転送される。
決定された細分割レベルが中間レベルであった場合、細分割処理演算制御部16は、整数部に1を加えたレベルに対応する制御テーブルを設定する。例えば、細分割レベルがu方向レベル=2.5、v方向レベル=1.5と決定されたとすると、細分割処理演算制御部16には、u方向レベル=3、v方向レベル=2に対応する制御テーブルが設定される。
細分割処理演算制御部16では、設定された制御テーブルに基づき、ワークメモリ部14、及び細分割処理演算部15を制御して細分割処理を実行する。u方向レベル又はv方向レベルのいずれかが0である場合以外には、最終的に生成される曲面パッチは、図9(c)の形式となる。
ポリゴン生成部41では、まず細分割レベルが中間レベルであるか否かを判定する。中間レベルでない場合には、図21(a)に示すように、曲面上に存在する頂点Q00、Q30、Q60、Q03、Q33、Q63、Q06、Q36、Q66を連結することにより8個のポリゴンを生成する。次に、u方向のみが中間レベルである場合には、図21(b)に示すように、曲面上に存在する頂点のうち、Q30、Q36を使用せず、頂点Q00、Q60、Q03、Q33、Q63、Q06、Q66のみを用いて6個のポリゴンを生成し、v方向のみが中間レベルである場合には、図21(c)に示すように、頂点Q03、Q63を使用せず、Q00、Q30、Q60、Q33、Q06、Q36、Q66のみを用いて6個のポリゴンを生成する。また、uv両方向とも中間レベルである場合には、図21(d)に示すように、頂点Q30、Q03、Q63、Q36を使用せず、Q00、Q60、Q33、Q06、Q66を用いて4個のポリゴンを生成する。但し、図21に示した頂点の連結方法は一例であり、その限りではない。尚、uvいずれかのレベルが0の場合には、最終的に生成される曲面パッチは、図9(a)又は(b)の形式となるため、中間レベルであるか否かに関わらず、全ての曲面上の頂点を連結することによって4個のポリゴンを生成する。また、図21(e)は、ポリゴン生成における制御点間の他の連結方法を示す図であり、両軸方向の細分割レベルが整数である場合に、細分割処理によって生成された全ての制御点からポリゴンを構成する。
このように、本発明の実施の形態3に係る曲面細分割装置によれば、細分割レベル決定部13において、整数値ではない中間レベルの値を取ることが可能である。そして、ポリゴン生成部41において、細分割レベルが中間レベルであるか否かを判定し、その判定結果によってポリゴンの構成方法を制御する。
従って、ポリゴン数が増えると曲面を滑らかに表現できる一方、ポリゴン数が増えすぎるとポリゴン生成における演算量が増加することを防止して、制御プログラムを増やすことなく、細分割レベルをより柔軟に制御することが可能となる。また、細分割処理によるポリゴン数の急激な増加を緩和することができる。
本発明に係る曲面細分割装置は、3次元CGの世界において、ベジェ曲面やNURBS曲面等の自由曲面を用いて滑らかな3次元オブジェクトを描画する際の細分割及びポリゴン生成時における曲面細分割装置として用いることができ、例えば、画面に3次元オブジェクトを表示する携帯端末、カーナビゲーション装置、携帯ゲーム機、テレビ等のエンタテインメント装置に適用することができる。
4階(3次)有理ベジェ曲面の一例を示す図 本発明の実施の形態1における曲面細分割装置の機能ブロック図 ド・カステリョのアルゴリズムを用いた細分割処理を説明するための図 (a)細分割処理を施す前の曲面パッチの例を示す図(b)細分割処理を1レベル実行した後の曲面パッチの例を示す図(c)細分割処理をu方向に3レベル、v方向に1レベル実行した後の曲面パッチの例を示す図 視点からの距離に応じて細分割レベルを決定する場合に用いるテーブルの例を示す図 ワークメモリ部を模式的に表した図 細分割処理演算部のハードウェア構成を模式的に表した図 細分割処理演算制御部に格納されている制御テーブルの一例を示す図 (a)u方向にのみ1レベル細分割処理を実行した後に生成されるコントロールポイントの構成を示す図(b)v方向にのみ1レベル細分割処理を実行した後に生成されるコントロールポイントの構成を示す図(c)u、v方向に各1回細分割処理を実行した後に生成されるコントロールポイントの構成を示す図 U方向=2、V方向=1の分割回数の場合のワークメモリ部の状態を示す図 (a)初期状態からu方向にのみ細分割処理を実行した後のワークメモリ部の内部状態を示す図(b)初期状態からv方向にのみ処理を実行した後のワークメモリ部の内部状態を示す図(c)u、v方向に各1回処理を実行した後のワークメモリ部の内部状態を示す図 (a)細分割処理前のワークメモリ部の内部状態を示す図(b)基本ブロックi、ゾーン0のデータにu方向処理を実施した直後のワークメモリ部の内部状態を示す図 (a)処理を実行する前のワークメモリ部の内部状態を示す図(b)基本ブロックi、ゾーン0のデータにu方向処理を実施した直後のワークメモリ部の内部状態を示す図(c)はさらにv方向処理を実施した直後のワークメモリ部の内部状態を示す図 細分割処理演算部のU方向分割における基本的なアルゴリズムの説明図 細分割処理演算部のV方向分割における基本的なアルゴリズムの説明図 本発明の実施の形態2における、曲面細分割処理装置の機能ブロック図 曲面情報入力制御部における処理の流れを示すフローチャート v方向レベルがu方向レベルよりも大きい場合に、入力データがワークメモリ部に格納された直後の状態を示す図 U方向及びV方向の細分割回数を入れ替えた場合の制御テーブルの参考図 本発明の実施の形態3における、曲面細分割処理装置の機能ブロック図 (a)細分割レベルが整数である場合に、細分割処理によって生成された頂点からポリゴンを構成する方法を示す図(b)u方向レベルのみが中間レベルの場合に、ポリゴンを構成する方法を示す図(c)v方向レベルのみが中間レベルの場合に、ポリゴンを構成する方法を示す図(d)u、v両方向とも中間レベルの場合に、ポリゴンを構成する方法を示す図(e)ポリゴン生成における制御点間の他の連結方法を示す図 オブジェクトの視点からの距離に基づいて、中間レベルを設定することが可能なテーブルの一例を示す図
符号の説明
10,30,40 曲面細分割装置
11 曲面情報
12 曲面情報入力受付部
13 細分割レベル決定部
14 ワークメモリ部
15 細分割処理演算部
16 細分割処理演算制御部
16 制御テーブル格納部
20 制御テーブル
31 曲面情報入力制御部
41 ポリゴン生成部

Claims (17)

  1. 曲面の細分割回数を決定する細分割レベル決定手段と、
    前記曲面の形状を定義する制御点情報と、細分割処理の中間結果及び最終結果とを格納するワークメモリ部と、
    前記ワークメモリ部より前記曲面を定義する第1軸方向又は第2軸方向に隣接する一連の細分割処理前の制御点情報である第1制御点情報を読み出し、前記細分割処理を実行して生成した細分割処理後の新たな制御点情報である第2制御点情報を生成し、前記ワークメモリ部に書き込む細分割処理演算手段と、
    前記細分割処理演算手段において細分割処理の演算が実行される前記第1制御点情報が格納されているワークメモリ部の第1メモリ番地、及び前記細分割処理演算手段において細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の第2メモリ番地を決定する演算制御手段とを備え、
    前記細分割処理演算手段は、前記演算制御手段からの制御に従って、前記ワークメモリ部の前記第1メモリ番地に重複する前記第2メモリ番地に前記第2制御点情報を上書き可能であり、
    前記演算制御手段は、細分割回数の多い軸方向の細分割処理を実行し、続いて前記細分割回数の少ない軸方向の前記細分割処理を実行する場合においては、前記細分割回数の少ない軸方向の前記細分割処理が実行されることにより生成される前記第2制御点情報を、前記細分割回数の少ない軸方向の前記細分割処理が実行される前に格納されていた前記ワークメモリ部の前記第1メモリ番地から上書きするように前記第2メモリ番地を決定する
    ことを特徴とする曲面細分割装置。
  2. 曲面の細分割回数を決定する細分割レベル決定手段と、
    前記曲面の形状を定義する制御点情報と、細分割処理の中間結果及び最終結果とを格納するワークメモリ部と、
    前記ワークメモリ部より前記曲面を定義する第1軸方向又は第2軸方向に隣接する一連の細分割処理前の制御点情報である第1制御点情報を読み出し、前記細分割処理を実行して生成した細分割処理後の新たな制御点情報である第2制御点情報を生成し、前記ワークメモリ部に書き込む細分割処理演算手段と、
    前記細分割処理演算手段において細分割処理の演算が実行される前記第1制御点情報が格納されているワークメモリ部の第1メモリ番地、及び前記細分割処理演算手段において細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の第2メモリ番地を決定する演算制御手段とを備え、
    前記細分割処理演算手段は、前記演算制御手段からの制御に従って、前記ワークメモリ部の前記第1メモリ番地に重複する前記第2メモリ番地に前記第2制御点情報を上書き可能であり、
    前記演算制御手段は、さらに、前記細分割レベル決定手段において決定された前記曲面を定義する前記第1軸方向及び前記第2軸方向の前記細分割回数を比較し、細分割回数の少ない軸方向より前記細分割処理を終了し、且つ当該細分割処理の1つ以前の細分割処理においては当該軸方向と異なる軸方向で前記細分割処理を行うように前記細分割処理演算手段の動作を制御する
    ことを特徴とする曲面細分割装置。
  3. 前記演算制御手段は、さらに、前記細分割レベル決定手段において決定された前記曲面を定義する前記第1軸方向及び前記第2軸方向の前記細分割回数を比較し、前記細分割回数の多い軸方向より前記細分割処理を開始するように前記細分割処理演算手段の動作を制御する
    ことを特徴とする請求項1記載の曲面細分割装置。
  4. 曲面の細分割回数を決定する細分割レベル決定手段と、
    前記曲面の形状を定義する制御点情報と、細分割処理の中間結果及び最終結果とを格納するワークメモリ部と、
    前記ワークメモリ部より前記曲面を定義する第1軸方向又は第2軸方向に隣接する一連の細分割処理前の制御点情報である第1制御点情報を読み出し、前記細分割処理を実行して生成した細分割処理後の新たな制御点情報である第2制御点情報を生成し、前記ワークメモリ部に書き込む細分割処理演算手段と、
    前記細分割処理演算手段において細分割処理の演算が実行される前記第1制御点情報が格納されているワークメモリ部の第1メモリ番地、及び前記細分割処理演算手段において細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の第2メモリ番地を決定する演算制御手段とを備え、
    前記細分割処理演算手段は、前記演算制御手段からの制御に従って、前記ワークメモリ部の前記第1メモリ番地に重複する前記第2メモリ番地に前記第2制御点情報を上書き可能であり、
    前記演算制御手段は、さらに、曲面を定義する第1軸方向及び第2軸方向における細分割回数を比較し、前記細分割回数の多い方の値から、前記細分割回数の少ない方の値を減算して差分値を算出し、細分割処理の開始から、算出された前記差分値の回数だけ連続して前記細分割回数の多い方と判定された軸方向に、前記細分割処理を実行するように前記細分割処理演算手段の動作を制御する
    ことを特徴とする曲面細分割装置。
  5. 前記曲面細分割装置は、さらに、
    前記細分割レベル決定手段において決定される細分割回数の組み合わせについて、前記細分割処理演算手段に入力する前記第1制御点情報が格納されている前記ワークメモリ部の前記第1メモリ番地、及び前記細分割処理演算手段において細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の前記第2メモリ番地を、前記細分割処理の開始から終了まで処理順に記述した制御テーブルを保持する制御テーブル保持手段を備え、
    前記演算制御手段は、前記制御テーブルを参照して、前記第1メモリ番地及び前記第2メモリ番地を決定する
    ことを特徴とする請求項1記載の曲面細分割装置。
  6. 前記演算制御手段は、前記第1軸方向及び前記第2軸方向の細分割回数が入れ替わっている場合においては、同一の制御テーブルを参照して前記細分割処理演算手段に前記第1メモリ番地及び前記第2メモリ番地を指定する
    ことを特徴とする請求項記載の曲面細分割装置。
  7. 前記曲面細分割装置は、さらに、
    前記細分割レベル決定手段において決定された前記第1軸方向及び前記第2軸方向の細分割回数の大小に応じて、曲面の形状を定義する制御点情報の前記ワークメモリ部への格納順序を制御する曲面情報入力制御手段を備える
    ことを特徴とする請求項記載の曲面細分割装置。
  8. 前記曲面情報入力制御手段は、前記第1軸方向の細分割回数が前記第2軸方向の細分割回数よりも大きい又は等しい場合には、前記ワークメモリ部の先頭アドレスから、曲面の形状を定義する制御点情報を、前記制御点情報に付与された第2軸方向のインデックスの小さい方から順に、また前記第2軸方向のインデックスが等しければ第1軸方向の前記インデックスの小さい方から順に格納し、
    前記第2軸方向の細分割回数が前記第1軸方向の細分割回数よりも大きい場合には、前記ワークメモリ部の先頭アドレスから、前記制御点情報に付与された前記第1軸方向のインデックスの大きい方から順に、また前記第1軸方向のインデックスが等しければ前記第2軸方向のインデックスの小さい方から順に格納する
    ことを特徴とする請求項記載の曲面細分割装置。
  9. 前記細分割処理演算手段が前記第1軸方向と前記第2軸方向の細分割回数が入れ替わっている制御テーブルを用いて細分割処理を行う場合には、
    前記曲面情報入力制御手段は、制御テーブルの書き換えを行い、
    前記細分割処理演算手段は、前記書き換え後の前記制御テーブルを用いて細分割処理を行う
    ことを特徴とする請求項記載の曲面細分割装置。
  10. 前記曲面情報入力制御手段は、前記制御テーブルの基本ブロック以外のインプットとアウトプットの列を入れ替えて、且つ読み込み方向と書き込み方向とを書き換える
    ことを特徴とする請求項記載の曲面細分割装置。
  11. 曲面の細分割回数を決定する細分割レベル決定手段と、
    前記曲面の形状を定義する制御点情報と、細分割処理の中間結果及び最終結果とを格納するワークメモリ部と、
    前記ワークメモリ部より前記曲面を定義する第1軸方向又は第2軸方向に隣接する一連の細分割処理前の制御点情報である第1制御点情報を読み出し、前記細分割処理を実行して生成した細分割処理後の新たな制御点情報である第2制御点情報を生成し、前記ワークメモリ部に書き込む細分割処理演算手段と、
    前記細分割処理演算手段において細分割処理の演算が実行される前記第1制御点情報が格納されているワークメモリ部の第1メモリ番地、及び前記細分割処理演算手段において細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の第2メモリ番地を決定する演算制御手段とを備え、
    前記細分割処理演算手段は、前記演算制御手段からの制御に従って、前記ワークメモリ部の前記第1メモリ番地に重複する前記第2メモリ番地に前記第2制御点情報を上書き可能であり、
    前記細分割レベル決定手段は、前記細分割処理演算手段における細分割回数として、整
    数値でない細分割回数を設定可能であり、
    記細分割処理演算手段における細分割回数が整数値又は半整数値であるか否かを判定して、ポリゴン生成における制御点を選択する制御点選択手段と、
    前記制御点選択手段において選択された制御点を用いてポリゴンを生成するポリゴン生成手段とを備える
    ことを特徴とする曲面細分割装置。
  12. 前記制御点選択手段は、前記細分割回数が前記第1軸方向及び前記第2軸方向のいずれの方向も整数値であると判定した場合においては、前記曲面上に存在する全ての制御点を選択し、
    前記ポリゴン生成手段は、前記制御点選択手段において選択された近接する前記制御点を連結することにより前記ポリゴンを生成する
    ことを特徴とする請求項11記載の曲面細分割装置。
  13. 前記制御点選択手段は、曲面を定義する前記第1軸方向又は前記第2軸方向のいずれかの方向のみが半整数値である場合には、前記曲面上に存在する制御点のうち、前記曲面の4隅に存在する制御点と、前記曲面のエッジ上に存在しない制御点と、前記細分割回数が半整数値でない軸方向のエッジ上に存在する制御点とを選択し、
    前記ポリゴン生成手段は、前記制御点選択手段において選択された近接する制御点を連結することにより前記ポリゴンを生成する
    ことを特徴とする請求項11記載の曲面細分割装置。
  14. 前記制御点選択手段は、曲面を定義する第1軸方向及び第2軸方向のいずれの方向も半整数値である場合には、前記曲面上に存在する制御点のうち、前記曲面の4隅に存在する前記制御点、及び前記曲面のエッジ上に存在しない前記制御点を選択し、
    前記ポリゴン生成手段は、前記制御点選択手段において選択された近接する制御点を連結することによってポリゴンを生成する
    ことを特徴とする請求項11記載の曲面細分割装置。
  15. 前記制御点選択手段は、前記曲面が四角形状であり、且つ前記第1軸方向及び前記第2軸方向が半整数値である場合においては、前記曲面の四隅及び前記四角形状のエッジ上に存在しない制御点を選択し、
    前記ポリゴン生成手段は、前記エッジ上に存在しない制御点と、前記四隅に位置する制御点を連結することにより前記ポリゴンを生成する
    ことを特徴とする請求項11記載の曲面細分割装置。
  16. 曲面細分割装置が曲面細分割を行う曲面細分割方法であって、
    曲面の細分割回数を決定する細分割レベル決定ステップと、
    前記曲面の形状を定義する制御点情報と、細分割処理の中間結果及び最終結果を格納するワークメモリ部より前記曲面を定義する第1軸方向又は第2軸方向に隣接する一連の細分割処理前の制御点情報である第1制御点情報を読み出し、前記細分割処理を実行して生成した細分割処理後の新たな制御点情報である第2制御点情報を生成し、前記ワークメモリ部に書き込む細分割処理演算ステップと、
    前記細分割処理演算ステップにおいて細分割処理の演算が実行される前記第1制御点情報が格納されているワークメモリ部の第1メモリ番地、及び前記細分割処理演算ステップにおいて細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の第2メモリ番地を決定する演算制御ステップとを含み、
    前記細分割処理演算ステップにおいては、前記演算制御ステップにおける制御に従って、前記ワークメモリ部の前記第1メモリ番地に重複する前記第2メモリ番地に前記第2制御点情報を上書き可能であり、
    前記演算制御ステップにおいて、細分割回数の多い軸方向の細分割処理を実行し、続いて前記細分割回数の少ない軸方向の前記細分割処理を実行する場合においては、前記細分割回数の少ない軸方向の前記細分割処理が実行されることにより生成される前記第2制御点情報を、前記細分割回数の少ない軸方向の前記細分割処理が実行される前に格納されていた前記ワークメモリ部の前記第1メモリ番地から上書きするように前記第2メモリ番地を決定する
    ことを特徴とする曲面細分割方法。
  17. 曲面細分割装置が曲面細分割を行うためのプログラムであって、
    曲面の細分割回数を決定する細分割レベル決定ステップと、
    前記曲面の形状を定義する制御点情報と、細分割処理の中間結果及び最終結果を格納するワークメモリ部より前記曲面を定義する第1軸方向又は第2軸方向に隣接する一連の細分割処理前の制御点情報である第1制御点情報を読み出し、前記細分割処理を実行して生成した細分割処理後の新たな制御点情報である第2制御点情報を生成し、前記ワークメモリ部に書き込む細分割処理演算ステップと、
    前記細分割処理演算ステップにおいて細分割処理の演算が実行される前記第1制御点情報が格納されているワークメモリ部の第1メモリ番地、及び前記細分割処理演算ステップにおいて細分割処理が実行されることにより生成される前記第2制御点情報を格納する前記ワークメモリ部の第2メモリ番地を決定する演算制御ステップとをコンピュータに実行させ、
    前記細分割処理演算ステップにおいては、前記演算制御ステップにおける制御に従って、前記ワークメモリ部の前記第1メモリ番地に重複する前記第2メモリ番地に前記第2制御点情報を上書き可能であり、
    前記演算制御ステップにおいて、細分割回数の多い軸方向の細分割処理を実行し、続いて前記細分割回数の少ない軸方向の前記細分割処理を実行する場合においては、前記細分割回数の少ない軸方向の前記細分割処理が実行されることにより生成される前記第2制御点情報を、前記細分割回数の少ない軸方向の前記細分割処理が実行される前に格納されていた前記ワークメモリ部の前記第1メモリ番地から上書きするように前記第2メモリ番地を決定する
    ことをコンピュータに実行させるためのプログラム。
JP2004134213A 2003-07-18 2004-04-28 曲面細分割装置 Expired - Fee Related JP4479957B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004134213A JP4479957B2 (ja) 2003-07-18 2004-04-28 曲面細分割装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003276840 2003-07-18
JP2004134213A JP4479957B2 (ja) 2003-07-18 2004-04-28 曲面細分割装置

Publications (2)

Publication Number Publication Date
JP2005056385A JP2005056385A (ja) 2005-03-03
JP4479957B2 true JP4479957B2 (ja) 2010-06-09

Family

ID=34379972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004134213A Expired - Fee Related JP4479957B2 (ja) 2003-07-18 2004-04-28 曲面細分割装置

Country Status (1)

Country Link
JP (1) JP4479957B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4913823B2 (ja) * 2006-11-01 2012-04-11 株式会社ディジタルメディアプロフェッショナル 拡張されたプリミティブの頂点キャッシュの処理を加速する装置
US8884957B2 (en) * 2009-09-09 2014-11-11 Advanced Micro Devices, Inc. Tessellation engine and applications thereof

Also Published As

Publication number Publication date
JP2005056385A (ja) 2005-03-03

Similar Documents

Publication Publication Date Title
JP4385524B2 (ja) ポリゴンデータの生成方法及び、これを用いた画像表示装置
JP4613313B2 (ja) 画像処理システムおよび画像処理プログラム
JP4255449B2 (ja) 描画処理装置、テクスチャ処理装置、およびテセレーション方法
US6937240B2 (en) Methods and apparatus for transforming three-dimensional objects in video games
MX2007014662A (es) Deformacion de engranaje sin limitaciones utilizando grafica volumetrica laplaciana.
JP4464657B2 (ja) 曲面画像処理装置及び曲面画像処理方法
US9530241B2 (en) Clipping of graphics primitives
Lin et al. Metamorphosis of 3d polyhedral models using progressive connectivity transformations
GB2539042A (en) Tessellation method using displacement factors
JP2002329215A (ja) オブジェクトの適応的サンプル距離フィールドを生成する方法
JP2005516315A (ja) オブジェクトグラフィックスの変化からの効率的な表示更新
JP2002334347A (ja) グラフィクスモデルの適応的サンプル距離フィールドを三角形モデルに変換する方法
Willmott Rapid simplification of multi-attribute meshes
US7015917B2 (en) Curved surface subdivision apparatus
JP2023525725A (ja) データ圧縮の方法及び装置
Melançon Living flows: enhanced exploration of edge-bundled graphs based on GPU-intensive edge rendering
JP4479957B2 (ja) 曲面細分割装置
JPH02132573A (ja) 境界表現ソリツド・モデリング・システム
JP2002324252A (ja) グラフィクスオブジェクトをモデル化する方法
JP2002352270A (ja) モデルの適応的サンプル距離フィールドを訂正する方法
US7330183B1 (en) Techniques for projecting data maps
US10636210B2 (en) Dynamic contour volume deformation
JP2001067491A (ja) 再分割多角形を用いる画像表示方法及び装置
JP4468974B2 (ja) 画像生成装置、画像生成方法ならびに、プログラム
JP2000067270A (ja) 形状デ―タの近似化方法及び情報処理装置並びに媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100120

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: 20100216

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: 20100310

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

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4479957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees