JP2004326597A - 3角形メッシュ生成システム、3角形メッシュ生成・参照方法、プログラム及び記憶媒体 - Google Patents
3角形メッシュ生成システム、3角形メッシュ生成・参照方法、プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2004326597A JP2004326597A JP2003122555A JP2003122555A JP2004326597A JP 2004326597 A JP2004326597 A JP 2004326597A JP 2003122555 A JP2003122555 A JP 2003122555A JP 2003122555 A JP2003122555 A JP 2003122555A JP 2004326597 A JP2004326597 A JP 2004326597A
- Authority
- JP
- Japan
- Prior art keywords
- triangle
- triangular
- triangular mesh
- index
- mesh
- 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.)
- Granted
Links
Images
Abstract
【解決手段】n次元の3角形メッシュデータを生成する3角形メッシュ生成システムにおいて、3角形メッシュで用いる複数のn次元の頂点座標を格納する座標テーブル1と、前記3角形メッシュで用いるn次元の法線ベクトルを格納するベクトルテーブル2と、前記座標テーブルへのインデックス情報を3角形ストリップ形式で格納する頂点座標インデックステーブル3と、前記ベクトルテーブルへのインデックス情報を3角形ストリップ形式で格納する法線ベクトルインデックステーブル4と、前記頂点座標の各頂点に隣接する3角形のデータへのインデックス情報を格納する隣接3角形インデックステーブル5とを用いて成る3角形メッシュデータ構造を持つ構成にした。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、汎用の情報処理装置や専用の3次元形状処理装置などを用いて実現される3角形メッシュ生成・参照技術に係わり、特に、3角形メッシュデータのデータ構造に関する。
【0002】
【従来の技術】
3次元形状モデルなどを表示するための方式としては、パーソナルコンピュータ上で標準的なOpenGL(非特許文献1参照)などグラフィックスライブラリにより提供されている3角形メッシュ方式が一般的である。OpenGLで提供されている3角形メッシュ方式には、データ形式から見て、3角形セット形式、3角形ストリップ形式などがあり、なかでも、3角形ストリップ形式が表示速度およびデータ量の点で有利である。3角形セット形式に比べると、2倍から3倍の効率(表示速度およびデータ量)を得ることができる。
特開平6−231212号公報に示された従来技術はこのような3角形ストリップ形式を用いた一つであり、3角形メッシュを構成している各3角形の隣接状態を検出し、演算処理効率の良い頂点列を生成している。3角形ストリップ形式では頂点データの重複を避けることによりデータ量を減らすために3角形メッシュを構成する複数の3角形を1本または複数本のストリップ(一筆書き)で描いた場合の頂点列で表現するが、その際のストリップの設定が演算処理効率に影響するのである。
一方、干渉計算、距離計算、衝突検出などの応用においては、3角形メッシュ中の隣接する3角形の参照が必要となるので、隣接3角形参照が困難な3角形ストリップ形式は用いられず、3角形セット形式に対して頂点毎の隣接3角形へのリンク情報を加えたものがよく用いられている(図14参照)。この形式の問題点は次のとおりである。
(1)3角形セット形式の約2倍の記憶領域が必要になる。
(2)3角形ストリップ形式の2〜3倍の表示時間が必要になる。
【特許文献1】特開平6−231212号公報
【非特許文献1】三浦憲二郎、OpenGL3Dグラフィックス入門、朝倉書店、1995
【0003】
【発明が解決しようとする課題】
前記した従来技術の問題を解決するために、当出願者は、先願において、3角形の隣には稜線を挟んで必ず1枚の別の3角形が存在することを前提にした2多様体(two−manifold)の3角形メッシュについては、3角形ストリップ形式のまま、隣接3角形への参照を可能にした。しかし、3角形メッシュとしてはより一般的な非多様体(non−manifold)の3角形メッシュにおいては、次に示す非多様体頂点や非多様体稜線が存在するので、3角形の隣には稜線を挟んで常に3角形が存在するというわけではない。したがって、この方法は一般的な非多様体3角形メッシュには利用できない。
(1)非多様体頂点:2枚以上の3角形(A、B)が1個の頂点(v0)で連結されている状態(図15参照)
(2)非多様体稜線:3枚以上の3角形(A、B、C)が1本の稜線(e0)で連結されている状態(図16参照)
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、非多様体3角形メッシュに対しても、3角形ストリップ形式のまま、隣接3角形の参照が可能な3角形メッシュ生成・参照技術を提供することにある。
【0004】
【課題を解決するための手段】
前記の課題を解決するために、請求項1記載の発明では、n次元の3角形メッシュデータを生成する3角形メッシュ生成システムにおいて、3角形メッシュで用いる複数のn次元の頂点座標を格納する座標テーブルと、前記3角形メッシュで用いるn次元の法線ベクトルを格納するベクトルテーブルと、前記座標テーブルへのインデックス情報を3角形ストリップ形式で格納する頂点座標インデックステーブルと、前記ベクトルテーブルへのインデックス情報を3角形ストリップ形式で格納する法線ベクトルインデックステーブルと、前記頂点座標の各頂点に隣接する3角形のデータへのインデックス情報を格納する隣接3角形インデックステーブルとを用いて成る3角形メッシュデータ構造を持つ構成にした。
また、請求項2記載の発明では、請求項1記載の発明において、前記座標テーブルおよびベクトルテーブルに格納するデータを、浮動小数点のデータまたはベクトル量子化圧縮したデータとした。
また、請求項3記載の発明では、請求項1または請求項2記載の発明において、3角形メッシュを表した前記データ構造のデータを記憶手段に記憶しておく構成にした。
また、請求項4記載の発明では、請求項1または請求項2記載の発明において、3角形メッシュを表した前記データ構造のデータを、通信リンクを介して転送する構成にした。
また、請求項5記載の発明では、請求項4記載の発明において、前記通信リンクを、インターネット、イントラネット、広域ネットワーク、ローカル・エリア・ネットワーク、無線周波数リンク、赤外線リンク、またはシリアル通信リンクとした。
【0005】
また、請求項6記載の発明では、n次元の3角形メッシュを生成する3角形メッシュ生成方法において、3角形メッシュで用いる複数のn次元の頂点座標を座標テーブルに格納するとともに、3角形メッシュで用いるn次元の法線ベクトルをベクトルテーブルに格納し、前記座標テーブルへのインデックス情報を3角形ストリップ形式で頂点座標インデックステーブルに格納し、前記ベクトルテーブルへのインデックス情報を3角形ストリップ形式で法線ベクトルインデックステーブルに格納し、前記頂点座標の各頂点に隣接する3角形へのインデックス情報を隣接3角形インデックステーブルに格納する構成にした。
また、請求項7記載の発明では、請求項6記載の発明において、各頂点に隣接する3角形のインデックス情報生成の際には、前記3角形インデックステーブルの各要素に配列の先頭アドレスを設定し、3角形ストリップの各要素t[j]について、前記3角形インデックステーブルの要素vt[t[j]]の示す配列に3角形ストリップのインデックスjを追加する構成にした。
また、請求項8記載の発明では、請求項6記載の発明において、各頂点に隣接する3角形のインデックス情報生成の際には、前記3角形インデックステーブルの各要素vt[i]に配列の先頭アドレスを設定し、3角形ストリップの各要素t[j]について、3角形{t[j−2]、t[j−1]、t[j]}が縮退3角形でない場合だけ、前記3角形インデックステーブルの要素vt[t[j]]の示す配列に3角形ストリップのインデックスjを追加する構成にした。
また、請求項9記載の発明では、請求項6または請求項7記載の3角形メッシュ生成方法により生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する3角形メッシュ参照方法において、vt[i]の示す配列のすべての要素vt[i][j]について、3角形{t[vt[i][j]−2]、t[vt[i][j]−1]、t[vt[i][j]]}、3角形{t[vt[i][j]−1]、t[vt[i][j]]、t[vt[i][j]+1]}、および3角形{t[vt[i][j]]、t[vt[i][j]+1]、t[vt[i][j]+2]}を隣接3角形として設定する構成にした。
【0006】
また、請求項10記載の発明では、請求項6または請求項8記載の3角形メッシュ生成方法により生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する3角形メッシュ参照方法において、vt[i]の示す配列のすべての要素vt[i][j]について、k=0からはじめて、k=1までは、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定し、k=2以後は、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形の場合、kの値を1増やして3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定し、さらにkを1増やし、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形でない場合、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定する構成にした。
また、請求項11記載の発明では、情報処理装置上で実行されるプログラムにおいて、請求項6、請求項7、または請求項8記載の3角形メッシュ生成方法によった3角形メッシュ生成を実行させるようにプログラミングされている構成にした。
また、請求項12記載の発明では、情報処理装置上で実行されるプログラムにおいて、請求項9または請求項10記載の3角形メッシュ参照方法によった3角形メッシュ参照を実行させるようにプログラミングされている構成にした。
また、請求項13記載の発明では、プログラムを記憶した記憶媒体において、請求項11または請求項12記載のプログラムを記憶した。
【0007】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図1は、本発明の一実施例を示すn次元空間に生成される3角形メッシュのデータ構造図である。図示したように、このデータ構造は、3角形メッシュ生成で用いる複数のn次元の頂点座標のデータを格納する座標テーブル1、3角形メッシュ生成で用いるn次元の法線ベクトルのデータを格納するベクトルテーブル2、座標テーブル1へのインデックス情報を3角形ストリップ形式で格納する頂点座標インデックステーブル3、ベクトルテーブル2へのインデックス情報を3角形ストリップ形式で格納する法線ベクトルインデックステーブル4、および前記頂点座標の各頂点に隣接する3角形へのインデックス情報を格納する隣接3角形インデックステーブル5から構成される。
図2は、図1に示した座標テーブル1のデータ構造図である。図示したように、この座標テーブル1には、座標数(=nc)と、座標0から座標nc−1の順にnc個の座標の座標値を格納している。なお、これらの座標値は、それぞれ(x成分、y成分、z成分)の3成分から構成され(この例は3次元の場合である)、各成分は浮動小数点の数値またはベクトル量子化圧縮をおこなった値で示されている。
図3は、図1に示したベクトルテーブル2のデータ構造図である。図示したように、このベクトルテーブル2には、ベクトルの数(=nu)と、ベクトル0からベクトルnu−1の順にnu個のn次元のベクトルの値を格納している。これらのベクトルの値は、それぞれ(x成分、y成分、z成分)の3成分で構成され、各成分は浮動小数点の数値またはベクトル量子化圧縮をおこなった値で示されている。
図4は、図1に示した頂点座標インデックステーブル3のデータ構造図である。図示したように、この頂点座標インデックステーブル3には、頂点座標インデックス数(=nv)と、頂点座標インデックス0から頂点座標インデックスnv−1の順で座標テーブル1へのnv個のインデックス情報を3角形ストリップ形式により格納する。なお、3角形ストリップ形式では、3角形メッシュの各3角形の頂点座標を格納した座標テーブル1へのインデックス情報とストリップの最後(区切り)を表すデリミタ(=−1)が格納されている。インデックス情報が連続的に羅列されるが、そのうちの各連続する3点が3角形の3つの頂点である。1本のストリップですべての頂点を通過できないこともあるので、そのような場合にはストリップは複数本になり、その場合、ストリップの区切りを「−1」で表現するのである。また、1本のストリップが少しでも多くの頂点を通過するために同一頂点を複数回通過することもあるし、複数のストリップが同一頂点を通過したりすることもあるので、前記したnvの値は座標数ncよりも大きくなる。
【0008】
図5は、図1に示した法線ベクトルインデックステーブル4のデータ構造図である。図示したように、この法線ベクトルインデックステーブル4には、法線ベクトルインデックス数(=nn)と、法線ベクトルインデックス0から法線ベクトルインデックスnn−1の順でベクトルテーブル2へのnn個のインデックス情報を3角形ストリップ形式で格納する。なお、3角形ストリップ形式では、3角形メッシュの各3角形の頂点位置での法線ベクトルを格納したベクトルテーブル2へのインデックス情報とストリップの最後(区切り)を表すデリミタ(=−1)が格納されている。
図6は、図1に示した3角形インデックステーブル5のデータ構造図である。
図示したように、この3角形インデックステーブル5には、頂点数(3角形インデックス数)(=nc)と、隣接3角形インデックス0(頂点0に隣接する3角形インデックス配列の先頭アドレス)から隣接3角形インデックスnt−1の順でnt個の隣接3角形インデックス情報へのインデックス情報を格納する。なお、一つの頂点について3角形へのインデックス値が一つでなく、配列となるのは、前記したように、一つの頂点をストリップが複数回通過することがあるからである。各頂点を通るストリップの一つまたは複数のインデックスの値は図4に示した頂点座標インデックステーブル3から得ることができる。
【0009】
図7は、本発明の一実施例を示す、3角形メッシュ生成・参照処理を実行する3角形メッシュ処理システムの構成ブロック図である。図示したように、この3角形メッシュ処理システムは、ハードウェアとして、プログラムに従って動作するCPU11、そのプログラム(ソフトウェア)や本発明のデータ構造の3角形メッシュデータなどを記憶するメモリ(例えばRAMおよびハードディスク記憶装置)12、データや各種指示を入力するキーボード13、3次元形状モデルなどを表示するディスプレイ装置14、着脱可能な記憶媒体(記憶メディア)を駆動してその記憶媒体から例えば3次元形状データやプログラムなどを読み込む媒体駆動装置(ドライブ)15などを備え、プログラム(ソフトウェア)として、3角形メッシュ生成プログラム16、3角形メッシュ参照プログラム17、およびOS(オペレーティングシステム)18などを備える。
このような3角形メッシュ処理システムが3角形メッシュ生成プログラム16に従ってn次元の3角形メッシュを生成する際の動作フローを図8に示す。以下、図8に従ってこの動作フローを説明する。
まず、3角形メッシュで用いる頂点座標を図2に示したデータ構造で座標テーブル1に格納する(S1)。既に生成されている頂点座標をデータ中の先頭から順に取り出し、取り出し順に座標テーブル1の座標0から順に格納するのである。
続いて、既に生成されている、3角形メッシュで用いる法線ベクトルを頂点座標の場合と同様にして図3に示したデータ構造でベクトルテーブル2に格納する(S2)。さらに、頂点座標を格納した座標テーブル1へのインデックス情報を頂点座標インデックステーブル3に図4に示したデータ構造で3角形ストリップ形式により格納する(S3)。複数の3角形から成る3角メッシュの複数の辺を一筆書きで描く際の通過頂点を示す頂点座標インデックス(アドレス値)を通貨順に区切り記号を付けずに連ねて格納するのである(但し、ストリップが複数本になる場合にはストリップ間にデリミタ(=−1)を付ける。
次に、3角形メッシュで用いる法線ベクトルを格納したベクトルテーブル2へのインデックス情報を法線ベクトルインデックステーブル4に図5に示したデータ構造で3角形ストリップ形式により格納する(S4)。さらに、隣接3角形へのインデックス情報を3角形インデックステーブル5に図6に示したデータ構造で格納する(S5)。
こうして、n次元空間の3角形メッシュデータの生成が完了すると、そのデータをハードディスク装置に保存する。
【0010】
図9は前記した各頂点に隣接する3角形のインデックス情報生成の動作フローである。以下、図9に従って、この動作フローを説明する。
まず、3角形インデックステーブル5(図6参照)の各要素vt[i]に3角形インデックス配列の先頭アドレスを設定する(S11)。そして、図4に示した頂点座標インデックステーブル3のインデックス番号kの値を0にして(S12)、頂点座標インデックス0の示す頂点である3角形インデックステーブルの要素vt[t[k]]の示す配列にそのインデックス番号k(1回目は0)を追加する(S14)。
続いて、kの値を1増やし(S15)、kがnvより小さければ(S13で「はい」)頂点座標インデックステーブル3の次のインデックス番号kについてステップS14を実行する。以下、同様に繰り返し、kがnvに達すると(S13で「いいえ」)この動作フローを終了させる。
図10は各頂点に隣接する3角形のインデックス情報生成の他の動作フローである。以下、図10に従って、この動作フローを説明する。なお、以下において、{x、y、z}は3角形を表す3頂点である。
まず、3角形インデックステーブル5(図6参照)の各要素vt[i]に3角形インデックス配列の先頭アドレスを設定する(S21)。そして、図4に示した頂点座標インデックステーブル3のインデックス番号kの値を0にする(S22)。
続いて、当該ストリップ上の当該要素t[k]について、3角形{t[k−2]、t[k−1]、t[k]}が縮退3角形でない場合だけ(S24で「いいえ」)、3角形インデックステーブルの要素vt[t[k]]の示す配列に3角形ストリップのインデックス番号kを追加する(S25)。そして、kの値を1増やし(S26)、kがnvより小さければ(S23で「はい」)頂点座標インデックステーブル3の次のインデックス番号kについてステップS24以下を実行する。以下、同様に繰り返し、kがnvに達すると(S23で「いいえ」)この動作フローを終了させる。
【0011】
図11は図8および図9に示した動作フローにより生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する動作フローである。以下、この動作フローについて説明する。なお、以下において、{x、y、z}は3角形を表す3頂点、x[i]はxテーブル内のi番目の要素とする。
まず、隣接3角形インデックステーブル5の要素vt[i]の示す3角形インデックス配列中の順番を示すjを0、要素vt[i]の示す3角形インデックス配列の要素数をjmaxとする(S31)。そして、vt[i][j]について、3角形{t[vt[i][j]−2]、t[vt[i][j]−1]、t[vt[i][j]]}を隣接3角形とし(S33)、3角形{t[vt[i][j]−1]、t[vt[i][j]]、t[vt[i][j]+1]}を隣接3角形とし(S34)、3角形{t[vt[i][j]]、t[vt[i][j]+1]、t[vt[i][j]+2]}を隣接3角形とする(S35)。
続いて、jの値を1増やし(S36)、次の要素について同様に繰り返す。そして、jの値がjmaxになると(S32で「いいえ」)、この動作フローを終了させる。
こうして、頂点を指示することにより、その頂点に隣接する隣接3角形を参照することが可能になる。
【0012】
図12は図8および図10に示した動作フローにより生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する動作フローである。以下、この動作フローについて説明する。なお、以下において、{x、y、z}は3角形を表す3頂点、x[i]はxテーブル内のi番目の要素とする。
まず、隣接3角形インデックステーブル5の要素vt[i]の示す3角形インデックス配列中の順番を示すjを0、要素vt[i]の示す3角形インデックス配列の要素数をjmaxとする(S41)。さらに、以下に示すk(前記した図9、図10記載のkとは別である)の値を0にする(S43)。そして、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形でないならば、その3角形を隣接3角形とする(S45)。
続いて、kの値を1増やし(S46)、k=1の場合についてステップS45を実行する。そして、k=2になると(S44で「いいえ」)、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形か否かを判定し(S47)、縮退3角形であるならば(S47で「はい」)、kの値を1増やし(S48)、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形とする(S49)。さらに、kの値を1増やし(S50)、ステップS47へ戻る。
それに対して、k=2のときのステップS47において、またはステップS50実行後のステップS47において、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形でないと判定されたならば(S47で「いいえ」)、
そのときの3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形とする(S51)。そして、jの値を1増やし(S52)、次の要素について同様に繰り返す。そして、jの値がjmaxになると(S42で「いいえ」)、この動作フローを終了させる。
【0013】
以上、図7に示した構成の3角形メッシュ処理システムについて説明したが、図13に示したように二つ(または二つ以上)の情報処理装置(コンピュータ)を用い、そのうちの情報処理装置21には3角形メッシュ生成プログラム16を備えて図1などに示したデータ構成の3角形メッシュデータを生成し、その3角形メッシュデータを通信リンクを介して情報処理装置22へ転送し、その情報処理装置22には3角形メッシュ参照プログラムを備え、転送されてきた3角形メッシュデータを参照する構成も可能である。なお、前記通信リンクとしては、インターネット、イントラネット、広域ネットワーク、ローカル・エリア・ネットワーク、無線周波数リンク、赤外線リンク、またはシリアル通信リンクが適用可能である。
また、説明したような3角形メッシュ生成・参照方法に従ってプログラミングした3角形メッシュ生成・参照プログラムを着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によった3角形メッシュ生成・参照をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、または、そのようなプログラムをネットワークを介してそのような情報処理装置へ転送することにより、そのような情報処理装置においても本発明によった3角形メッシュ生成・参照をおこなうことができる。
【0014】
【発明の効果】
以上説明したように、本発明によれば、請求項1記載の発明では、n次元の3角形メッシュデータを生成する3角形メッシュ生成システムにおいて、3角形メッシュで用いる複数のn次元の頂点座標を格納する座標テーブルと、その3角形メッシュで用いるn次元の法線ベクトルを格納するベクトルテーブルと、前記座標テーブルへのインデックス情報を3角形ストリップ形式で格納する頂点座標インデックステーブルと、前記ベクトルテーブルへのインデックス情報を3角形ストリップ形式で格納する法線ベクトルインデックステーブルと、前記頂点座標の各頂点に隣接する3角形のデータへのインデックス情報を格納する隣接3角形インデックステーブルとにより3角形メッシュデータ構造が構成されるので、その隣接3角形インデックステーブルを介することにより、非多様体3角形メッシュに対しても、3角形ストリップ形式のまま、隣接3角形を参照することが可能になり、したがって、3角形ストリップ形式と同様の表示時間で表示することが可能になるし、データ量も従来の3角形ストリップ形式の2倍くらいに収めることができる。
また、請求項2記載の発明では、請求項1記載の発明において、座標テーブルおよびベクトルテーブルに格納するデータが、浮動小数点のデータまたはベクトル量子化圧縮したデータであるので、従来と同様なデータを格納できる。
また、請求項3記載の発明では、請求項1または請求項2記載の発明において、3角形メッシュを表した前記データ構造のデータを記憶しておくことができるので、表示の度ごとにデータ生成をおこなう必要がなくなる。
【0015】
また、請求項4記載の発明では、請求項1または請求項2記載の発明において、3角形メッシュを表した前記データ構造のデータを、通信リンクを介して転送できるので、例えば3角形メッシュデータを生成する情報処理装置とその3角形メッシュデータを参照する情報処理装置とを別にすることが可能になる。
また、請求項5記載の発明では、請求項4記載の発明において、通信リンクが、インターネット、イントラネット、広域ネットワーク、ローカル・エリア・ネットワーク、無線周波数リンク、赤外線リンク、またはシリアル通信リンクであるので、そのような通信リンクを用いることにより、例えば3角形メッシュデータを生成する情報処理装置とその3角形メッシュデータを参照する情報処理装置とを別にすることが可能になる。
また、請求項6記載の発明では、n次元の3角形メッシュを生成する際、3角形メッシュで用いる複数のn次元の頂点座標を座標テーブルに格納するとともに、3角形メッシュで用いるn次元の法線ベクトルをベクトルテーブルに格納し、座標テーブルへのインデックス情報を3角形ストリップ形式で頂点座標インデックステーブルに格納し、ベクトルテーブルへのインデックス情報を3角形ストリップ形式で法線ベクトルインデックステーブルに格納し、頂点座標の各頂点に隣接する3角形へのインデックス情報を隣接3角形インデックステーブルに格納することができるので、請求項1記載の発明の効果と同様の効果を得ることができる。
また、請求項7記載の発明では、請求項6記載の発明において、各頂点に隣接する3角形のインデックス情報生成の際、3角形インデックステーブルの各要素に配列の先頭アドレスを設定し、3角形ストリップの各要素t[j]について、3角形インデックステーブルの要素vt[t[j]]の示す配列に3角形ストリップのインデックスjを追加するようにしているので、プログラムとそのプログラムに従って動作するCPUなどを用いて請求項6記載の発明を容易に実現できる。
また、請求項8記載の発明では、請求項6記載の発明において、各頂点に隣接する3角形のインデックス情報生成の際、3角形インデックステーブルの各要素vt[i]に配列の先頭アドレスを設定し、3角形ストリップの各要素t[j]について、3角形{t[j−2]、t[j−1]、t[j]}が縮退3角形でない場合だけ、3角形インデックステーブルの要素vt[t[j]]の示す配列に3角形ストリップのインデックスjを追加するようにしているので、非多様体3角形メッシュが混在していても、プログラムとそのプログラムに従って動作するCPUなどを用いて請求項6記載の発明を容易に実現できる。
【0016】
また、請求項9記載の発明では、請求項6または請求項7記載の3角形メッシュ生成方法により生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する際、vt[i]の示す配列のすべての要素vt[i][j]について、3角形{t[vt[i][j]−2]、t[vt[i][j]−1]、t[vt[i][j]]}、3角形{t[vt[i][j]−1]、t[vt[i][j]]、t[vt[i][j]+1]}、および3角形{t[vt[i][j]]、t[vt[i][j]+1]、t[vt[i][j]+2]}を隣接3角形として設定できるので、頂点v[i]に隣接する3角形を容易に参照できる。
また、請求項10記載の発明では、請求項6または請求項8記載の3角形メッシュ生成方法により生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する際、vt[i]の示す配列のすべての要素vt[i][j]について、k=0からはじめて、k=1までは、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定し、k=2以後は、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形の場合、kの値を1増やして3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定し、さらにkを1増やし、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形でない場合、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定できるので、縮退3角形が混在する場合でも頂点v[i]に隣接する3角形を容易に参照できる。
【0017】
また、請求項11記載の発明では、請求項6、請求項7、または請求項8記載の3角形メッシュ生成方法によった3角形メッシュ生成を実行させるようにプログラミングされているプログラムを情報処理装置上で実行させることができるので、情報処理装置を用いて請求項6、請求項7、または請求項8記載の発明の効果を得ることができる。
また、請求項12記載の発明では、請求項9または請求項10記載の3角形メッシュ参照方法によった3角形メッシュ参照を実行させるようにプログラミングされているプログラムを情報処理装置上で実行させることができるので、情報処理装置を用いて請求項9または請求項10記載の発明の効果を得ることができる。
また、請求項13記載の発明では、請求項11または請求項12記載のプログラムを着脱可能な記憶媒体に記憶することができるので、その記憶媒体をこれまで請求項6、請求項7、または請求項8記載の発明によった3角形メッシュ生成、または請求項9または請求項10記載の発明によった3角形メッシュ参照をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、そのような情報処理装置においても請求項6乃至請求項10のいずれか1項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す、3角形メッシュデータのデータ構造図。
【図2】本発明の一実施例を示す、3角形メッシュデータ要部のデータ構造図。
【図3】本発明の一実施例を示す、他の3角形メッシュデータ要部のデータ構造図。
【図4】本発明の一実施例を示す、他の3角形メッシュデータ要部のデータ構造図。
【図5】本発明の一実施例を示す、他の3角形メッシュデータ要部のデータ構造図。
【図6】本発明の一実施例を示す、他の3角形メッシュデータ要部のデータ構造図。
【図7】本発明の一実施例を示す、3角形メッシュ処理システムの構成ブロック図。
【図8】本発明の一実施例を示す、3角形メッシュ生成方法の動作フロー図。
【図9】本発明の一実施例を示す、3角形メッシュ生成方法の他の動作フロー図。
【図10】本発明の一実施例を示す、3角形メッシュ生成方法の他の動作フロー図。
【図11】本発明の一実施例を示す、3角形メッシュ生成方法の他の動作フロー図。
【図12】本発明の一実施例を示す、3角形メッシュ生成方法の他の動作フロー図。
【図13】本発明の他の実施例を示す、3角形メッシュ処理システムの構成ブロック図。
【図14】従来技術の一例を示す、3角形メッシュ生成方法の説明図。
【図15】本発明が解決しようとする課題を説明するための説明図。
【図16】本発明が解決しようとする課題を説明するための他の説明図。
【符号の説明】
1 座標テーブル
2 ベクトルテーブル
3 頂点座標インデックステーブル
4 法線ベクトルインデックステーブル
5 隣接3角形インデックステーブル
11 CPU
12 メモリ
16 3角形メッシュ生成プログラム
17 3角形メッシュ参照プログラム
Claims (13)
- n次元の3角形メッシュデータを生成する3角形メッシュ生成システムにおいて、3角形メッシュで用いる複数のn次元の頂点座標を格納する座標テーブルと、前記3角形メッシュで用いるn次元の法線ベクトルを格納するベクトルテーブルと、前記座標テーブルへのインデックス情報を3角形ストリップ形式で格納する頂点座標インデックステーブルと、前記ベクトルテーブルへのインデックス情報を3角形ストリップ形式で格納する法線ベクトルインデックステーブルと、前記頂点座標の各頂点に隣接する3角形のデータへのインデックス情報を格納する隣接3角形インデックステーブルとを用いて成る3角形メッシュデータ構造を持つことを特徴とする3角形メッシュ生成システム。
- 請求項1記載の3角形メッシュ生成システムにおいて、前記座標テーブルおよびベクトルテーブルに格納するデータは、浮動小数点のデータまたはベクトル量子化圧縮したデータであることを特徴とする3角形メッシュ生成システム。
- 請求項1または請求項2記載の3角形メッシュ生成システムにおいて、3角形メッシュを表した前記データ構造のデータを記憶手段に記憶しておくことを特徴とする3角形メッシュ生成システム。
- 請求項1または請求項2記載の3角形メッシュ生成システムにおいて、3角形メッシュを表した前記データ構造のデータを通信リンクを介して転送することを特徴とする3角形メッシュ生成システム。
- 請求項4記載の3角形メッシュ生成システムにおいて、前記通信リンクは、インターネット、イントラネット、広域ネットワーク、ローカル・エリア・ネットワーク、無線周波数リンク、赤外線リンク、またはシリアル通信リンクであることを特徴とする3角形メッシュ生成システム。
- n次元の3角形メッシュを生成する3角形メッシュ生成方法において、3角形メッシュで用いる複数のn次元の頂点座標を座標テーブルに格納するとともに、3角形メッシュで用いるn次元の法線ベクトルをベクトルテーブルに格納し、前記座標テーブルへのインデックス情報を3角形ストリップ形式で頂点座標インデックステーブルに格納し、前記ベクトルテーブルへのインデックス情報を3角形ストリップ形式で法線ベクトルインデックステーブルに格納し、前記頂点座標の各頂点に隣接する3角形へのインデックス情報を隣接3角形インデックステーブルに格納することを特徴とする3角形メッシュ生成方法。
- 請求項6記載の3角形メッシュ生成方法において、各頂点に隣接する3角形のインデックス情報生成の際には、前記3角形インデックステーブルの各要素に配列の先頭アドレスを設定し、3角形ストリップの各要素t[j]について、前記3角形インデックステーブルの要素vt[t[j]]の示す配列に3角形ストリップのインデックスjを追加することを特徴とする3角形メッシュ生成方法。
- 請求項6記載の3角形メッシュ生成方法において、各頂点に隣接する3角形のインデックス情報生成の際には、前記3角形インデックステーブルの各要素vt[i]に配列の先頭アドレスを設定し、3角形ストリップの各要素t[j]について、3角形{t[j−2]、t[j−1]、t[j]}が縮退3角形でない場合だけ、前記3角形インデックステーブルの要素vt[t[j]]の示す配列に3角形ストリップのインデックスjを追加することを特徴とする3角形メッシュ生成方法。
- 請求項6または請求項7記載の3角形メッシュ生成方法により生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する3角形メッシュ参照方法において、vt[i]の示す配列のすべての要素vt[i][j]について、3角形{t[vt[i][j]−2]、t[vt[i][j]−1]、t[vt[i][j]]}、3角形{t[vt[i][j]−1]、t[vt[i][j]]、t[vt[i][j]+1]}、および3角形{t[vt[i][j]]、t[vt[i][j]+1]、t[vt[i][j]+2]}を隣接3角形として設定することを特徴とする3角形メッシュ参照方法。
- 請求項6または請求項8記載の3角形メッシュ生成方法により生成されたn次元の3角形メッシュデータ構造のインデックスがiである頂点v[i]に隣接する3角形を参照する3角形メッシュ参照方法において、vt[i]の示す配列のすべての要素vt[i][j]について、k=0からはじめて、k=1までは、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定し、k=2以後は、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形の場合、kの値を1増やして3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定し、さらにkを1増やし、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}が縮退3角形でない場合、3角形{t[vt[i][j]−2+k]、t[vt[i][j]−1+k]、t[vt[i][j]+k]}を隣接3角形として設定することを特徴とする3角形メッシュ参照方法。
- 情報処理装置上で実行されるプログラムにおいて、請求項6、請求項7、または請求項8記載の3角形メッシュ生成方法によった3角形メッシュ生成を実行させるようにプログラミングされていることを特徴とするプログラム。
- 情報処理装置上で実行されるプログラムにおいて、請求項9または請求項10記載の3角形メッシュ参照方法によった3角形メッシュ参照を実行させるようにプログラミングされていることを特徴とするプログラム。
- プログラムを記憶した記憶媒体において、請求項11または請求項12記載のプログラムを記憶したことを特徴とする記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003122555A JP4316923B2 (ja) | 2003-04-25 | 2003-04-25 | 3角形メッシュ生成方法、その生成のためのプログラム及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003122555A JP4316923B2 (ja) | 2003-04-25 | 2003-04-25 | 3角形メッシュ生成方法、その生成のためのプログラム及び記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004326597A true JP2004326597A (ja) | 2004-11-18 |
JP4316923B2 JP4316923B2 (ja) | 2009-08-19 |
Family
ID=33500739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003122555A Expired - Fee Related JP4316923B2 (ja) | 2003-04-25 | 2003-04-25 | 3角形メッシュ生成方法、その生成のためのプログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4316923B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293597A (ja) * | 2006-04-25 | 2007-11-08 | Mitsubishi Electric Corp | 解析装置、検索装置及び計測装置並びにプログラム |
WO2016143314A1 (en) * | 2015-03-11 | 2016-09-15 | Canon Kabushiki Kaisha | Data structure of 3d object and 3d data management apparatus |
CN113847921A (zh) * | 2020-06-28 | 2021-12-28 | 蘑菇车联信息科技有限公司 | 建立地图对象三维模型的方法及电子设备 |
-
2003
- 2003-04-25 JP JP2003122555A patent/JP4316923B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293597A (ja) * | 2006-04-25 | 2007-11-08 | Mitsubishi Electric Corp | 解析装置、検索装置及び計測装置並びにプログラム |
WO2016143314A1 (en) * | 2015-03-11 | 2016-09-15 | Canon Kabushiki Kaisha | Data structure of 3d object and 3d data management apparatus |
JP2016170488A (ja) * | 2015-03-11 | 2016-09-23 | キヤノン株式会社 | 3d物体のデータ構造及び3dデータ管理装置 |
CN113847921A (zh) * | 2020-06-28 | 2021-12-28 | 蘑菇车联信息科技有限公司 | 建立地图对象三维模型的方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP4316923B2 (ja) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | Pixel transposed convolutional networks | |
JP4030519B2 (ja) | 画像処理装置および画像処理システム | |
EP2122575B1 (en) | Quick pixel rendering processing | |
JP4288461B2 (ja) | 対称型画像フィルタ処理装置、プログラム、及びその方法 | |
US9858715B2 (en) | Transforming polygonal mesh by sub-polychord collapse | |
US5317682A (en) | Parametric curve evaluation method and apparatus for a computer graphics display system | |
WO2016051640A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP7165018B2 (ja) | 情報処理装置、情報処理方法 | |
JP5644606B2 (ja) | メッシュ数予測方法、解析装置及びプログラム | |
JP2009026340A (ja) | 細分表面における滑らかな特徴線の生成 | |
CN111506520A (zh) | 一种地址生成的方法、相关装置以及存储介质 | |
KR20200067222A (ko) | 그래픽스 파이프라인에서의 인덱스들의 압축 및 압축 해제 | |
JP5910499B2 (ja) | 拡張性評価装置、拡張性評価方法および拡張性評価プログラム | |
JP2004326597A (ja) | 3角形メッシュ生成システム、3角形メッシュ生成・参照方法、プログラム及び記憶媒体 | |
Pan et al. | A new mesh simplification algorithm based on triangle collapses | |
Marsaglia et al. | Automatic In Situ Camera Placement for Isosurfaces of Large-Scale Scientific Simulations. | |
JP2004102834A (ja) | 三角形メッシュのデータ構造、三角形メッシュデータ圧縮方法および伸張方法、プログラム、記録媒体およびシステム | |
CN111985618A (zh) | 3d卷积神经网络在神经网络处理器上的处理方法和装置 | |
JP4920559B2 (ja) | データ処理装置 | |
US7425959B2 (en) | Representation of implicit curves for procedural surfaces | |
KR20140147761A (ko) | 접히는 시트 오브젝트의 설계 | |
JP2020201883A (ja) | データ処理装置及びその制御方法 | |
JP2949594B2 (ja) | 動画表示装置 | |
US12051137B1 (en) | Channel-based framework for hierarchical drawings | |
Hülsemann et al. | gridlib: A Parallel, Object-oriented Framework for Hierarchical-hybrid Grid Structures in Technical Simulation and Scientific Visualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20051111 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20051111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090309 |
|
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: 20090512 |
|
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: 20090521 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140529 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |