JP2016099648A - 立体物造形用データ削減装置 - Google Patents

立体物造形用データ削減装置 Download PDF

Info

Publication number
JP2016099648A
JP2016099648A JP2014233521A JP2014233521A JP2016099648A JP 2016099648 A JP2016099648 A JP 2016099648A JP 2014233521 A JP2014233521 A JP 2014233521A JP 2014233521 A JP2014233521 A JP 2014233521A JP 2016099648 A JP2016099648 A JP 2016099648A
Authority
JP
Japan
Prior art keywords
vertex
polygon
vertices
target
polygons
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.)
Pending
Application number
JP2014233521A
Other languages
English (en)
Inventor
茂出木 敏雄
Toshio Modegi
敏雄 茂出木
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014233521A priority Critical patent/JP2016099648A/ja
Publication of JP2016099648A publication Critical patent/JP2016099648A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

【課題】 出力造形物の品質劣化を抑え、ポリゴンで表現されたポリゴンモデルから、効率的にポリゴンを削減して立体物造形用データを得ることが可能な立体物造形用データ削減装置を提供する。【解決手段】 各ポリゴンの対象頂点と同一座標となる他のポリゴンの頂点を探索し、他のポリゴンの頂点と対象頂点を対応付け、ポリゴンを識別可能な形式で記録した頂点リンクテーブルを作成する頂点リンクテーブル作成手段30、各ポリゴンの面積を基に、削除対象ポリゴン、補正対象頂点を選定する削除対象ポリゴン選定手段40、頂点リンクテーブルを参照し、補正対象頂点の各々と同一座標を共有する共有頂点を順次探索する共有頂点探索手段50、共有頂点を2つ以上含むポリゴンを、削除対象ポリゴンとともに削除し、共有頂点1つのみ含むポリゴンに対して、共有頂点を補正対象頂点の平均座標に補正してポリゴンモデルを更新するポリゴンモデル更新手段60を有する。【選択図】 図2

Description

本発明は、立体物を表すデータを基に、樹脂等を加工して立体物を造形する3Dプリンタ等の立体物造形装置の利用に際して、立体物造形装置への出力用データを削減するための技術に関する。
近年、立体物を表すデータをもとに、樹脂や石膏等を加工して造形する3Dプリンタが立体物造形装置として普及してきている。3Dプリンタの医療応用として、医療診断で撮影されるCT/MRI画像(DICOM形式3次元ボクセルデータ)を基に3Dプリンタ出力用モデリングデータを作成し、手術シミュレーション・医学教育・インフォームドコンセント向けの臓器模型を出力したり、体内埋め込み用の人工臓器(血管、骨、関節など)を作成したりする試みが始まっている。
立体物造形用データである3Dプリンタ出力用モデリングデータは、ポリゴンの集合体で表現されたポリゴンモデルである。CT/MRI画像から臓器模型の3Dプリンタ出力用モデリングデータを作成する方法としては、特許文献1、特許文献2に示されるように、対象とする臓器領域のボクセルを抽出し、Marching Cube法(特許文献3など)により臓器領域の境界面を多面体(三角形の集合)で近似したサーフェースに変換して表面形状を表現したサーフェースデータを得る手法が一般的である。
特許第3690501号公報 特開2012−216102号公報 米国特許第7209136号公報 特開平8−153211号公報 特許第3350473号公報 特許第4463597号公報 特許第5018721号公報 特開平11−232489号公報
上記のサーフェース変換手法では512の3乗程度のボクセルを基に、3次元的に三角形を生成する方法をとるため、三角形ポリゴンが膨大になり、CG分野においては、画面描画の際に時間がかかり対話操作の応答性が悪くなるという問題が指摘されている。これは3Dプリンタ出力においても問題を起こし、プリンタ出力前処理(ポリゴンから積層造形用のデータに変換する処理)に時間がかかり、場合によりワークメモリーオーバーフローを引き起こして出力不能になる。
これに対してCG分野においては、画面の解像度に合せてポリゴン分割を粗くして曲面を表現したり、可視化に供しないポリゴンを事前に削除したりする方法がとられる。例えば、平板オブジェクトでは、単一面だけで表現し裏面を構成するポリゴンを省略したり、特許文献4のように、視点方向から隠面にあたり可視化に供しないポリゴンを事前に削除したり、特許文献5のように、他のポリゴンによって隠される内側のポリゴンを判定して事前に削除し、描画対象ポリゴンを削減する方法が提案されている。また、特許文献6のように、微細な凹凸表現に対してポリゴンを用いず、テクスチャやバンプマッピングで代用する方法が提案されている。
しかし、3Dプリンタ出力においては、画面より細かい解像度が要求され、ポリゴンにより閉空間を構成する必要があるため、平板オブジェクトにおいて、裏面を構成するポリゴンを省略することはできない。また、造形物は種々のアングルから鑑賞されるため基本的に隠面は存在せず、造形物内部にも別の形状を造形可能なため、CG分野で提案されているオクルージョンカリングという手法は意味をもたない。微細な凹凸に対しても陰影などで視覚的に擬似表現することはできず、ポリゴン形状で表現せざるを得ない。特許文献7のように、建築模型においては極端にポリゴンを削減したデフォルメされた表現が要望される場合もあるが、医療応用ではそれなりにリアリティが要求される。そのため、特許文献8のように、造形物の外観を損なわない程度に、三角形ポリゴン自体を削減する手法をとらざるを得ない。
三角形ポリゴンの削減にあたっては、特許文献8の手法が基本になる。これは、(1)与えられたポリゴンから削減しても全体形状にあまり影響を与えない三角形および稜線を探索する処理と、(2)対象稜線を削減するとともにそれと頂点を共有する隣接三角形を探索し補正を行う処理との2種の探索処理を所望のデータ量に削減されるまで繰り返す。特許文献8の手法では、双方の処理において削除候補とする稜線と頂点を共有する隣接三角形を探索する処理を必要とし、与えられたポリゴン数の2乗に比例して処理負荷が増大するという問題を抱えていた。
処理負荷を削減する方法として、削減対象の入力ポリゴンモデルのデータ量を少なくすれば良いため、入力ポリゴンモデルを分割して処理をすればよい。特許文献1では、ポリゴンに変換前のボクセル画像の段階で分割を行い、分割されたボクセルデータごとにサーフェース変換を行ってポリゴンを削減する手法を提案している。これにより確かに高速化は実現できるが、ボクセル分割された境界部にサーフェースが形成されてしまうため、ポリゴンデータを統合させると、造形物上において分割境界部に対応する不連続な亀裂が発生してしまうという問題がある(ただし、CG用途においては、レンダリングにより境界部は目立たない。)。
また、見かけ上は単一の閉空間にまとまって見えても、データ的には複数の閉空間に分離されている場合がある。例えば、主たる閉空間に接触した小空間が存在する場合、そのままプリンタ出力すれば支障無いが、特許文献8等によりポリゴン削減を施すと、小空間が削られて主たる閉空間からの距離が長くなり、完全に遊離した状態になることがある。この状態でプリンタ出力すると、プリンタ出力前処理でエラー停止したり、空中に浮遊するよう造形指示された小空間が出力途上で落下し出力トラブルを発生させたりする可能性がある(ただし、CG用途においては、特に問題を生じない。)。
そこで、本発明は、出力造形物の品質の劣化を抑えながら、ポリゴンで表現されたポリゴンモデルのデータ量を削減することが可能な立体物造形用データ削減装置を提供することを課題とする。
上記課題を解決するため、本発明第1の態様では、
ポリゴンの集合として表現されたポリゴンモデルのデータを、立体物の造形のために削減する装置であって、
前記ポリゴンモデルを構成する各ポリゴンの各頂点を対象頂点とし、当該対象頂点と同一座標となる他のポリゴンの頂点を探索し、得られた他のポリゴンの頂点と前記対象頂点を対応付け、それぞれポリゴンを識別可能な形式で記録した頂点リンクテーブルを作成する頂点リンクテーブル作成手段と、
前記ポリゴンモデルを構成する各ポリゴンの面積に基づいて、削除するべきポリゴンを削除対象ポリゴン、補正するべき頂点を補正対象頂点として選定する削除対象ポリゴン選定手段と、
前記補正対象頂点の各々に対して、前記頂点リンクテーブルを参照し、前記補正対象頂点の各々と同一座標を共有する共有頂点を順次探索する共有頂点探索手段と、
前記探索された共有頂点を2つ以上含むポリゴンを、前記削除対象ポリゴンとともに削除し、前記共有頂点を1つのみ含むポリゴンに対して、当該共有頂点を前記補正対象頂点の平均点の座標に補正することによって前記ポリゴンモデルを更新するポリゴンモデル更新手段と、
を有することを特徴とする立体物造形用データ削減装置を提供する。
本発明第1の態様によれば、ポリゴンモデルを構成する各ポリゴンの各頂点を対象頂点とし、対象頂点と同一座標となる他のポリゴンの頂点を探索し、得られた他のポリゴンの頂点と対象頂点を対応付け、それぞれポリゴンを識別可能な形式で記録した頂点リンクテーブルを作成し、ポリゴンモデルを構成する各ポリゴンの面積に基づいて、削除するべきポリゴンを削除対象ポリゴン、補正するべき頂点を補正対象頂点として選定し、補正対象頂点の各々に対して、頂点リンクテーブルを参照し、補正対象頂点の各々と同一座標を共有する共有頂点を順次探索し、探索された共有頂点を2つ以上含むポリゴンを、削除対象ポリゴンとともに削除し、共有頂点を1つのみ含むポリゴンに対して、共有頂点を補正対象頂点の平均点の座標に補正することによってポリゴンモデルを更新するようにしたので、出力造形物の品質の劣化を抑えながら、ポリゴンで構成されたポリゴンモデルから、ポリゴン数に単純比例した少ない処理負荷で、効率的にポリゴンを削減して立体物造形用データを得ることが可能となる。特に、医療用のCT/MRI画像をもとに生成されたサーフェースデータ等のポリゴンモデルを効率良く3Dプリンタ等の立体物造形装置に出力することが可能となる。
また、本発明第2の態様では、前記頂点リンクテーブル作成手段は、ポリゴンの集合体を配列構造で定義し、当該配列上で前記対象頂点より後方に位置し、当該対象頂点が属するポリゴンに最も近接し、当該対象頂点と同一座標となる他のポリゴンの頂点を1つ検出し、該当する他のポリゴンが存在しない場合、前記配列の先頭より、先頭に最も近接し、前記対象頂点と同一座標となる他のポリゴンの頂点を1つ検出するようにし、頂点のリンクがループを構成するようにしていることを特徴とする。
本発明第2の態様によれば、ポリゴンの集合体を配列構造で定義し、配列上で対象頂点より後方に位置し、対象頂点が属するポリゴンに最も近接し、対象頂点と同一座標となる他のポリゴンの頂点を1つ探索し、該当する他のポリゴンが存在しない場合、配列の先頭より、先頭に最も近接し、対象頂点と同一座標となる他のポリゴンの頂点を1つ探索するようにし、頂点のリンクがループを構成するように頂点リンクテーブルを作成するようにしたので、同一座標となる頂点を1つだけ記録した頂点リンクテーブルを確実かつ効率的に作成することが可能となる。
また、本発明第3の態様では、
前記削除対象ポリゴン選定手段は、
前記削除対象ポリゴンを選定した後、
前記削除対象ポリゴンを構成する辺の長さに基づいて、削除するべき辺を削除対象辺として選定し、前記削除対象辺の2頂点を前記補正対象頂点として選定するようにしていることを特徴とする。
本発明第3の態様によれば、削除対象ポリゴンを選定した後、削除対象ポリゴンを構成する辺の長さに基づいて、削除するべき辺を削除対象辺として選定し、削除対象辺の2頂点を補正対象頂点として選定するようにしたので、ポリゴンモデルの全体形状に歪をあまり与えずにポリゴンの削除を行うことが可能となる。
また、本発明第4の態様では、前記削除対象ポリゴン選定手段が、前記削除対象ポリゴンの各辺の長さを算出し、最も短い辺を前記削除対象辺として選定することを特徴とする。
本発明第4の態様によれば、選定された削除対象ポリゴンの各辺の長さを算出し、最も短い辺を削除対象辺として選定するようにしたので、サーフェースを形成する上で重要な辺を削ることなく、適切な削除対象辺の選定を行うことが可能となる。
また、本発明第5の態様では、
前記削除対象ポリゴン選定手段は、
前記削除対象ポリゴンを選定し、前記削除対象ポリゴンを構成する3頂点を前記補正対象頂点として選定するようにしていることを特徴とする。
本発明第5の態様によれば、削除対象ポリゴンを選定し、削除対象ポリゴンを構成する3頂点を補正対象頂点として選定するようにしたので、削除対象ポリゴンと隣接するポリゴンを含めて効率的にポリゴンの削除を行うことが可能となる。
また、本発明第6の態様では、
前記ポリゴンモデル更新手段は、更に、
前記補正対象頂点を頂点αおよび頂点βとすると、
前記頂点リンクテーブルにおいて、前記頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、前記頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正し、頂点αおよび頂点βに基づく2つのリンクのループを1つのループに統合するように、前記頂点リンクテーブルを更新するようにしていることを特徴とする。
本発明第6の態様によれば、補正対象頂点を頂点αおよび頂点βとすると、頂点リンクテーブルにおいて、頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正し、頂点αおよび頂点βに基づく2つのリンクのループを1つのループに統合するように、頂点リンクテーブルを更新するようにしたので、2つの補正対象頂点である頂点αおよび頂点βを擬似的に1つの頂点にまとめる処理を効率的に行うことが可能となる。
また、本発明第7の態様では、
前記ポリゴンモデル更新手段は、更に、
前記補正対象頂点を頂点α、頂点βおよび頂点γとすると、
前記頂点リンクテーブルにおいて、前記頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、前記頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点γに補正し、前記頂点γに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正し、頂点α、頂点βおよび頂点γに基づく3つのリンクのループを1つのループに統合するように、前記頂点リンクテーブルを更新するようにしていることを特徴とする
本発明第7の態様によれば、補正対象頂点を頂点α、頂点βおよび頂点γとすると、頂点リンクテーブルにおいて、頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点γに補正し、頂点γに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正し、頂点α、頂点βおよび頂点γに基づく3つのリンクのループを1つのループに統合するように、頂点リンクテーブルを更新するようにしたので、3つの補正対象頂点である頂点α、頂点βおよび頂点γを擬似的に1つの頂点にまとめる処理を効率的に行うことが可能となる。
また、本発明第8の態様では、
前記ポリゴンモデル更新手段は、更に、
前記頂点リンクテーブルにおいて、
前記ポリゴンモデル更新手段により削除されたポリゴンの各頂点をリンク先として設定されているリンク元の頂点のリンク先を、前記削除されたポリゴンの各頂点をリンク元として設定されているリンク先の頂点に変更し、前記削除されたポリゴンをバイパスするように、前記頂点リンクテーブルを更新するようにしていることを特徴とする。
本発明第8の態様によれば、頂点リンクテーブルにおいて、削除されたポリゴンの各頂点をリンク先として設定されているリンク元の頂点のリンク先を、前記削除されたポリゴンの各頂点をリンク元として設定されているリンク先の頂点に変更し、前記削除されたポリゴンをバイパスするように、前記頂点リンクテーブルを更新するようにしたので、頂点リンクテーブルをより簡潔な状態に整えることができ、以降のポリゴン削除処理をより効率的に行うことが可能となる。
また、本発明第9の態様では、前記削除対象ポリゴン選定手段が、前記ポリゴンモデルを構成するポリゴンに対して、面積と周長を算出し、面積と周長の積が最小となるポリゴンを前記削除対象ポリゴンとして選定することを特徴とする。
本発明第9の態様によれば、ポリゴンモデルを構成するポリゴンに対して、面積と周長を算出し、面積と周長の積が最小となるポリゴンを削除対象ポリゴンとして選定するようにしたので、細長くて面積が小さいサーフェースを形成する上で重要なポリゴンを削ることなく、適切な削除対象ポリゴンの選定を行うことが可能となる。
また、本発明第10の態様では、前記ポリゴンモデル更新手段により更新されたポリゴンモデルを構成するポリゴン数が目標値より大きい場合、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段に対して繰り返して処理を実行させる制御を行う制御手段をさらに有することを特徴とする。
本発明第10の態様によれば、更新されたポリゴンモデルを構成するポリゴン数が目標値より大きい場合、削除対象ポリゴンの選定、共有頂点の探索、ポリゴンモデルの更新を繰り返して行うようにしたので、ポリゴンモデルを構成するポリゴン数を目標値まで削減することが可能となる。
また、本発明第11の態様では、前記ポリゴンモデルが複数の領域に分割されたボクセル形式の3D医療画像データに対応して複数セット存在しており、
前記制御手段は、各ポリゴンモデルに対して、前記頂点リンクテーブル作成手段、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段に対して処理を実行させ、複数セットの更新されたポリゴンモデルを作成させるものであって、
前記複数セットの更新されたポリゴンモデルを単一のポリゴンモデルに合成するポリゴンモデル合成手段を、
更に有することを特徴とする。
本発明第11の態様によれば、ポリゴンモデルが複数の領域に分割されたボクセル形式の3D医療画像データに対応して複数セット存在し、各ポリゴンモデルに対して、頂点リンクテーブルの作成、削除対象ポリゴンの選定、共有頂点の探索、ポリゴンモデルの更新を実行させ、複数セットの更新されたポリゴンモデルを作成し、複数セットの更新されたポリゴンモデルを単一のポリゴンモデルに合成するようにしたので、領域ごとに分割された少ないポリゴン数で構成されるポリゴンモデルを基に前記一連の処理が高速に実行され、人体の各部位領域ごとに処理したデータを一括して出力するためのポリゴンモデルを立体物造形用データとして効率良く得ることが可能となる。
また、本発明第12の態様では、
前記削除対象ポリゴン選定手段を実行させる対象のポリゴンモデルに対して、各グループに属するポリゴンが当該グループ内の他のいずれかのポリゴンと、ポリゴンを構成する辺を共有するようにグループ分類するポリゴンモデルのグループ分類手段と、
前記分類された各グループに対する前記頂点リンクテーブル作成手段、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段による処理の実行により得られた複数のグループの更新されたポリゴンモデルに対して、単一のポリゴンモデルに合成するグループ合成手段と、
を更に有することを特徴とする。
本発明第12の態様によれば、削除対象ポリゴン選定対象のポリゴンモデルに対して、各グループに属するポリゴンが当該グループ内の他のいずれかのポリゴンと、ポリゴンを構成する辺を共有するようにグループ分類し、分類された各グループに対する削除対象ポリゴンの選定、共有頂点の探索、ポリゴンモデルの更新の実行により作成された複数のグループの更新されたポリゴンモデルに対して、単一のポリゴンモデルに合成するようにしたので、1度に削減するポリゴン数がグループ単位となって少なくなるため、全体として処理を高速化することが可能となる。
また、本発明第13の態様では、前記グループ合成手段は、前記複数のグループの更新されたポリゴンモデルに対して、外接直方体の体積を算出し、算出された体積が所定のしきい値未満である場合、当該グループのポリゴンモデルを合成対象から除外することを特徴とする。
本発明第13の態様によれば、複数のグループの更新されたポリゴンモデルに対して、外接直方体の体積を算出し、算出された体積が所定のしきい値未満である場合、そのグループのポリゴンモデルを合成対象から除外することによりグループの合成を行うようにしたので、遊離した小体積の物体を3Dプリンタ等の立体物造形装置で出力してしまい、立体物造形装置内に詰まってしまう等の不具合の発生を低減することが可能となる。
また、本発明第14の態様では、
前記立体物造形用データ削減装置と、
前記立体物造形用データ削減装置から出力されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
を有することを特徴とする立体物造形システム
を有することを特徴とする立体物造形システムを提供する。
本発明第14の態様によれば、立体物造形用データ削減装置と、立体物造形用データ削減装置から出力されたポリゴンモデルを用いて立体物を造形する立体物造形装置により立体物造形システムを実現するようにしたので、ボードコンピュータを組み込んだ3Dプリンタ等の形態で、立体物造形システムを提供することが可能となる。
本発明によれば、出力造形物の品質の劣化を抑えながら、ポリゴンの集合体で表現されたポリゴンモデルから、効率的にポリゴンを削減して円滑に3Dプリンタで出力が可能になる立体物造形用データを得ることが可能となる。
本発明の一実施形態に係る立体物造形用データ削減装置のハードウェア構成図である。 本発明の一実施形態に係る立体物造形用データ削減装置の構成を示す機能ブロック図である。 DICOM形式ボクセルデータからポリゴンモデルへの変換の様子を示す図である。 DICOM形式ボクセルデータを、複数のスライス画像として示した図である。 DICOM形式ボクセルデータを、4つの形態で表示した例である。 図5に示したDICOM形式ボクセルデータを「3D-Slicer」により変換して得られたSTLデータを示す図である。 領域別ポリゴンモデル(STLデータ)を示す図である。 領域別STLデータを合成したポリゴンモデル(STLデータ)のレンダリング像を示す図である。 本発明の一実施形態に係る立体物造形用データ削減装置の処理概要を示すフローチャートである。 グループ分類手段20によるグループ分類処理の詳細を示すフローチャートである。 稜線単位削除におけるポリゴン削減の基本原理を示す図である。 ポリゴン群の詳細を示す図である。 図12に示したポリゴン群を実現するための頂点座標配列データを示す図である。 稜線単位削除におけるポリゴン削減処理の詳細を示すフローチャートである。 頂点リンクテーブルの一例を示す図である。 稜線単位削除における頂点リンクテーブルの探索順序を示す図である。 稜線単位削除により更新された頂点座標配列を示す図である。 稜線単位削除により更新された頂点リンクテーブルを示す図である。 リンク先を変更した状態の頂点リンクテーブルを示す図である。 ポリゴン単位削除におけるポリゴン削減の基本原理を示す図である。 ポリゴン単位削除におけるポリゴン削減処理の詳細を示すフローチャートである。 ポリゴン単位削除における頂点リンクテーブルの探索順序を示す図である。 ポリゴン単位削除により更新された頂点座標配列を示す図である。 ポリゴン単位削除により更新された頂点リンクテーブルを示す図である。 リンク先を変更した状態の頂点リンクテーブルを示す図である。 ポリゴン削減処理により生じる問題を説明するための図である。 隔離された小体積グループの削除処理の詳細を示すフローチャートである。 図27のステップS44における最小間隔の算出処理の詳細を示すフローチャートである。 ポリゴン削減の第1の比較事例を示す図である。 ポリゴン削減の第1の事例を示す図である。 ポリゴン削減の第2の比較事例を示す図である。 ポリゴン削減の第2の事例を示す図である。
以下、本発明の好適な実施形態について図面を参照して詳細に説明する。
<1.装置構成>
図1は、本発明の一実施形態に係る立体物造形用データ削減装置200を含む立体物造形システムのハードウェア構成図である。本実施形態に係る立体物造形用データ削減装置200は、汎用のコンピュータで実現することができ、図1に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等のキー入力I/F(インターフェース)4と、3Dプリンタやデータ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、を備え、互いにバスを介して接続されている。
3Dプリンタ7は、汎用の3Dプリンタであり、立体物の三次元形状をポリゴンの集合で表現したポリゴンモデルである立体物造形用データを基に樹脂、石膏等の素材を加工して立体物を造形する立体物造形装置である。3Dプリンタ7は、データ処理部7aと出力部7bを有している。3Dプリンタ7のデータ処理部7aは、データ入出力I/F5に接続されており、データ入出力I/F5から受け取った削減された立体物造形用データを基に、出力部7bが立体物を造形するようになっている。
図1では、立体物造形用データ削減装置200と3Dプリンタ7は分離した形態で示されているが、現在市販されている殆どの3Dプリンタ製品には立体物造形用データ削減装置200の構成要素である、CPU1、RAM2、記憶装置3、キー入力I/F4(汎用コンピュータ向けキーボード・マウスではなく、テンキーレベルの数種のボタン)、データ入出力I/F5、表示部6(数行の文字を表示可能な小型液晶パネル、タッチパネルを重畳させキー入力I/F4を兼ねることも多い)も小規模ながら重複して備えている。従って、3Dプリンタ7自体が外部記憶媒体経由で立体物造形用データを直接受け取り、単独で立体物を造形する運用も可能になっている(特に民生用の3Dプリンタではこちらの形態の方が多い)。すなわち、図1に示した立体物造形システムを1つの筐体に収めて、“3Dプリンタ”という製品として流通することも多い。
図2は、本実施形態に係る立体物造形用データ削減装置の構成を示す機能ブロック図である。図2において、10は制御手段、20はグループ分類手段、30は頂点リンクテーブル作成手段、40は削除対象ポリゴン選定手段、50は共有頂点探索手段、60はポリゴンモデル更新手段、70はグループ合成手段、80はポリゴンモデル合成手段、90は領域別ポリゴンモデル記憶手段、100は合成ポリゴンモデル記憶手段である。
制御手段10は、立体物造形用データ削減装置全体の制御を行う。グループ分類手段20は、削除対象ポリゴンの選定対象のポリゴンモデルに対して、各グループに属するポリゴンがそのグループ内の他のいずれかのポリゴンと、ポリゴンを構成する辺(2頂点)を共有するようにグループ分類する。頂点リンクテーブル作成手段30は、ポリゴン単位で頂点が記録された形式のポリゴンモデルを基に、同一座標を共有していて、異なるポリゴンに属する頂点同士を対応付けて記録した頂点リンクテーブルを作成する。削除対象ポリゴン選定手段40は、ポリゴンモデルを構成する全てのポリゴンに対して、面積と周長を算出し、面積と周長の積が最小となるポリゴンを削除対象ポリゴンとして選定する。共有頂点探索手段50は、削除対象ポリゴン中の補正対象頂点に対して、頂点リンクテーブルを参照しながら、補正対象頂点と同一座標を共有する全ての頂点を順次探索する。ポリゴンモデル更新手段60は、補正対象頂点を含む探索された共有頂点の中で、2つ以上の共有頂点が同一のポリゴンに重複して含まれるポリゴンを、削除対象ポリゴンとともに削除し、1つの共有頂点のみを含むポリゴンに対して、共有頂点を補正対象頂点の平均点の位置に補正する。
グループ合成手段70は、分類された各グループに対する頂点リンクテーブル作成手段30、削除対象ポリゴン選定手段40、共有頂点探索手段50、ポリゴンモデル更新手段60による一連の処理の実行により作成された複数のグループの更新されたポリゴンモデルを、領域別に単一の領域別ポリゴンモデルに合成する。ポリゴンモデル合成手段80は、複数セットの更新された領域別ポリゴンモデルを単一の合成ポリゴンモデルに合成する。制御手段10、グループ分類手段20、頂点リンクテーブル作成手段30、削除対象ポリゴン選定手段40、共有頂点探索手段50、ポリゴンモデル更新手段60、グループ合成手段70、ポリゴンモデル合成手段80は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。
領域別ポリゴンモデル記憶手段90は、領域別ポリゴンモデルを記憶した記憶手段であり、記憶装置3により実現される。領域別ポリゴンモデルとは、1つの領域を1セットとして構成されたポリゴンモデルである。合成ポリゴンモデル記憶手段100は、複数セットの領域別ポリゴンモデルを合成した単一のポリゴンモデルである合成ポリゴンモデルを記憶する記憶手段であり、記憶装置3により実現される。合成ポリゴンモデル記憶手段100に記憶される合成ポリゴンモデルは、3Dプリンタ7への出力に削減された立体物造形用データとなる。領域別ポリゴンモデル記憶手段90に記憶された領域別ポリゴンモデル、合成ポリゴンモデル記憶手段100に記憶される合成ポリゴンモデルは、いずれもポリゴンの集合体であり、ポリゴン単位で各ポリゴンが有する頂点を記録した形式となっている。
図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、製品としての“3Dプリンタ”に組み込まれたボードコンピュータも含む。
図1に示した記憶装置3には、CPU1を動作させ、コンピュータを、立体物造形用データ削減装置として機能させるための専用のプログラムが実装されている。この専用のプログラムを実行することにより、CPU1は、制御手段10、グループ分類手段20、頂点リンクテーブル作成手段30、削除対象ポリゴン選定手段40、共有頂点探索手段50、ポリゴンモデル更新手段60、グループ合成手段70、ポリゴンモデル合成手段80としての機能を実現することになる。また、記憶装置3は、領域別ポリゴンモデル記憶手段90、合成ポリゴンモデル記憶手段100として機能するだけでなく、立体物造形用データ削減装置としての処理に必要な様々なデータを記憶する。
<2.処理動作>
<2.1.前処理>
次に、図1、図2に示した立体物造形用データ削減装置の処理動作について説明する。まず、医療用ボクセルデータからサーフェースデータである領域別ポリゴンモデルを作成する前処理について説明する。サーフェースデータとは、サーフェースモデリングにより立体構造を表面形状として表現したデータであり、多角形のデータであるポリゴンにより構成されるポリゴンモデルである。前処理は、コンピュータが公知のプログラムを実行することにより行われる。ここでは、公知のプログラムとして、米国ハーバード大学が中心に開発したオープンソースソフトウェアである「3D-Slicer」を用いた場合を例にとって説明する。まず、コンピュータが、全体ボクセルデータから、特定臓器領域のボクセルデータを抽出する。次に、コンピュータが、特定臓器領域のボクセルデータをポリゴンモデルであるサーフェースデータに変換する。このようにして得られた領域別ポリゴンモデルは、領域別ポリゴンモデル記憶手段90に格納される。前処理は、図1に示した立体物造形用データ削減装置を実現するコンピュータに、上記プログラムを実行させることにより行ってもよいし、図1に示した立体物造形用データ削減装置を実現するコンピュータとは別のコンピュータにより実行し、得られた領域別ポリゴンモデルを記憶装置3により実現される領域別ポリゴンモデル記憶手段90に格納するようにしてもよい。
本実施形態では、医療用ボクセルデータとして医用画像データ交換に関する国際標準規格であるDICOM形式のボクセルデータを用いる。また、ポリゴンモデルであるサーフェースデータとしてSTL(Standard Triangulated Language)データを用いる。STLデータとは、元来3Dグラフィックス分野におけるモデリングデータ交換に関する業界標準で、最近では3Dプリンタでも標準的に使用されるようになったもので、三次元形状を三角形のポリゴンの集合体で表現したデータである。そして、コンピュータが上記「3D-Slicer」を実行することにより、図3(a)に示すようなDICOM形式ボクセルデータから、図3(b)に示すような領域別のボクセルデータを抽出し、サーフェースモデル変換を行って図3(c)に示すようなポリゴンモデル(STLデータ)が得られる。領域別のボクセルデータの抽出、サーフェースモデル変換には、特許文献3等に記載されたMarching Cube法が用いられている。
図4〜図8に、「3D-Slicer」による処理画面の一例を示す。図4は、「3D-Slicer」の処理対象となるDICOM形式ボクセルデータを、複数のスライス画像として示した図である。図4の例では、人体頭部のサジタル像を256個のスライス画像で示している。各スライス画像は、512×512画素で構成されている。
図5は、DICOM形式ボクセルデータを、4つの形態で表示した例である。図5において、上部に表示されているのは、ボリュームレンダリング像である。下部に表示されているのは、左側から順にアキシャル像、サジタル像、コロナル像である。
図6は、図5に示したDICOM形式ボクセルデータを「3D-Slicer」により変換して得られたSTLデータを示す図である。図6において、上部に表示されているのは、STLデータのレンダリング像である。図6の例では、眼球・脳領域しきい値:626.75以上(MRI撮影でボクセル値10bits幅の場合)、眼球結合組織Lしきい値:298.36-458.74、眼球結合組織Rしきい値:298.36-431.32を設定することにより、領域(組織)別に分類された領域別STLデータをレンダリングしたものを示している。
図7は、「3D-Slicer」により得られた領域別STLデータをシェーディングにより陰影表現した図である。図8は、領域別STLデータを合成したポリゴンモデル(STLデータ)のレンダリング像を示す図である。図8に示すFront Viewは、図6の上部に示したものと同一である。前処理の後は、図7に示したような領域別ポリゴンモデルが領域別ポリゴンモデル記憶手段90に記憶される。
<2.2.処理概要>
次に、図1、図2に示した立体物造形用データ削減装置の処理動作について説明する。図9は、本発明の一実施形態に係る立体物造形用データ削減装置の処理概要を示すフローチャートである。まず、グループ分類手段20が、領域別ポリゴンモデル記憶手段90から、1つの領域についての領域別ポリゴンモデルを読み込み、複数のグループに分類する(ステップS10)。次に、各グループのポリゴンモデルに対して、頂点リンクテーブル作成手段30、削除対象ポリゴン選定手段40、共有頂点探索手段50、ポリゴンモデル更新手段60が、ポリゴン削減処理を実行する(ステップS20)。制御手段10が、全グループについてポリゴン削減処理が終了したか否かを判定し(ステップS30)、全グループについて終了していない場合は、未処理のグループに対してステップS20のポリゴン削減処理を実行する。全グループに対するポリゴン削減処理が終了した場合は、グループ合成手段70が、隔離された小体積グループの削除を行う(ステップS40)。続いて、グループ合成手段70は、全グループのポリゴンモデルの合成を行う(ステップS50)。制御手段10が、全領域について処理が終了したか否かを判定し(ステップS60)、全領域について終了していない場合は、未処理の領域に対してステップS10〜S50の処理を実行する。全領域に対する処理が終了した場合は、ポリゴンモデル合成手段80が、全領域の領域別ポリゴンモデルの合成を行う(ステップS70)。
<2.3.グループ分類処理>
まず、ステップS10におけるグループ分類手段20によるグループ分類処理について説明する。図10は、グループ分類手段20によるグループ分類処理の詳細を示すフローチャートである。グループ分類手段20は、まず、初期設定を行う(ステップS11)。具体的には、読み込んだ領域別ポリゴンモデルを構成するポリゴン数P、ポリゴンを特定する変数p(p=0,・・・,P−1)、探索ステータスS(p)、グループ属性G(p)、グループを特定する変数gを設定する。探索ステータスS(p)は、0、1、2のいずれかの値をとる。S(p)=0はグループに未分類の状態、S(p)=1はグループに分類された状態、S(p)=2は、そのポリゴンに隣接するポリゴンである隣接ポリゴンがグループに分類された状態を示す。さらに、ステップS11においては、p=0,・・・,P−1の全てのpについてS(p)=G(p)=0、g=1と初期設定する。
次に、全ポリゴンより、S(p)=G(p)=0となるポリゴンpを1つ抽出する(ステップS12)。初期状態では、全てS(p)=G(p)=0であるので、初回は必ず抽出が行われる。S(p)=G(p)=0となるポリゴンpが複数存在する場合は、例えばpの値が最も小さいものを抽出する。ステップS12において、S(p)=G(p)=0となるポリゴンpが存在しない場合、すなわち、全てのp=0,・・・,P−1について、S(p)=2である場合、g−1個のグループに分離できたものとしてグループ分類処理を終了する。なお、ステップS12において、S(p)=1である状態は存在しないため、S(p)は“0”か“2”のいずれかの状態である。S(p)=G(p)=0となるポリゴンpが抽出できた場合は、抽出したポリゴンpに対応する探索ステータスS(p)=1、グループ属性G(p)=gに設定する。
ステップS12において、S(p)=G(p)=0となるポリゴンpを1つ抽出し、抽出したポリゴンpに対応する探索ステータスS(p)=1、グループ属性G(p)=gに設定した場合は、全ポリゴンより、S(q)=1となるポリゴンqを1つ抽出する(ステップS13)。qはポリゴンを特定する変数であり、ポリゴンpと同様、q=0,・・・,P−1内のいずれかの整数値をとる。S(q)=1となるポリゴンqが複数存在する場合は、例えばqの値が最も小さいものを抽出する。ステップS13において、S(q)=1となるポリゴンqが存在しない場合、すなわち、全てのS(q)=0または2である場合、グループを特定する変数gを1インクリメント(g←g+1)する(ステップS14)。そしてステップS12に戻り、次のグループへの分類を行う。
ステップS13において、S(q)=1となるポリゴンqを1つ抽出した場合、全ポリゴンより、S(r)=G(r)=0であって、抽出されたポリゴンqと2頂点を共有する隣接ポリゴンrを全て抽出する(ステップS15)。rはポリゴンを特定する変数であり、ポリゴンp、qと同様、r=0,・・・,P−1内のいずれかの整数値をとる。“ポリゴンqと2頂点を共有する”とは、ポリゴンqと一つの辺を共有することを意味する。すなわち、隣接ポリゴンrは一つの辺を共有することによりポリゴンqと隣接するポリゴンである。抽出された隣接ポリゴンについては、それぞれ探索ステータスS(r)=1、グループ属性G(r)=gに設定する。
次に、ポリゴンqの探索ステータスS(q)=2に設定する(ステップS16)。すなわち、ポリゴンqについては、隣接ポリゴンを設定した後の状態とする。そして、ステップS13に戻って、全ポリゴンの中から、S(q)=1となるポリゴンqを1つ抽出する。
図10に示したフローチャートでは、ステップS12、S13、S14で構成されるループと、ステップS13、S15、S16で構成されるループの2つのループ処理が存在する。ステップS12、S13、S14で構成されるループでは、グループに未分類のポリゴンを抽出してグループに分類し(ステップS12)、グループに分類済みのポリゴンの中から1つを隣接ポリゴン探索用のポリゴンとして抽出できない場合(ステップS13)は、そのグループに分類すべきポリゴンは、存在しないものとして、次のグループに移行(g←g+1)する(ステップS14)。ステップS12、S13、S14で構成されるループでは、連続する一塊のポリゴン群を一つのグループとして分類する。したがって、ステップS13において、S(q)=1となるポリゴンが存在しない場合には、グループに分類済みのいずれかのポリゴンに隣接するポリゴンが存在しないことになるので、グループgへの分類を終え、グループg+1への分類に移行するのである。
ステップS13、S15、S16で構成されるループでは、グループに分類済みのポリゴンの中から1つを隣接ポリゴン探索用のポリゴンqとして抽出し(ステップS13)、全ポリゴンの中からポリゴンqと2頂点を共有するポリゴンを隣接ポリゴンrとして抽出し(ステップS15)、抽出できた場合も抽出できない場合も、探索用のポリゴンqの探索ステータスS(q)を、ポリゴンqに隣接するポリゴンの探索を終えた状態であるS(q)=2に設定する。
ステップS12、S13、S14で構成されるループと、ステップS13、S15、S16で構成されるループの2つのループ処理を用いることにより、全P個のポリゴンが、2頂点を共有して連続するポリゴン群ごとにグループに分類される。1頂点しか共有しないポリゴンのみで隣接している場合は、別のグループとして分類されることになる。図10に従った処理を実行することにより領域別ポリゴンモデルを構成するポリゴンは複数のグループに分類されることになる。
<2.4.ポリゴン削減処理>
<2.4.1.稜線単位削除>
次に、ステップS20における頂点リンクテーブル作成手段30、削除対象ポリゴン選定手段40、共有頂点探索手段50、ポリゴンモデル更新手段60によるポリゴン削減処理について説明する。ポリゴン削減処理におけるポリゴンの削除の手法として、稜線単位削除とポリゴン単位削除の2つが存在する。まず、稜線単位削除について説明する。ここで、稜線とは、ポリゴンの辺を意味する。図11は、稜線単位削除によるポリゴン削減の基本原理を示す図である。ポリゴンモデルは、図13に示されるように空間における三次元の値をもつポリゴン群であるが、図11の例では、紙面上での説明の便宜上、二次元空間に投影したポリゴン群を示している。図11(a)の例では、削減前、18個のポリゴンからなるポリゴン群を示している。図11(a)において、A〜Nは特定のポリゴンに属する形式でなく、座標が異なる頂点を識別するために示している。頂点A〜Nは、ポリゴン群全体において頂点を識別するために、便宜上付されたものであり、後述する頂点座標配列データや、頂点リンクテーブルには記録されていない。
図12は、図11(a)に示したポリゴン群の詳細を示す図である。図12においては、図11(a)に示した頂点A〜Nだけでなく、ポリゴン番号P1〜P18、頂点A〜Nを各ポリゴン番号に対応付けて表現された頂点番号V1a〜V18cが記載されている。後述する頂点座標配列データや、頂点リンクテーブルには、このポリゴン番号や頂点番号の形式で記録されている。
図13は、図12に示したポリゴン群を実現するための頂点座標配列データを示す図である。頂点座標配列データは、ポリゴンモデルを規定するデータであり、ポリゴンの集合体であるポリゴンモデルを配列構造で定義している。図13に示すように、頂点座標配列データは、ポリゴンを識別する識別情報であるポリゴン番号P1〜P18に対応付けて、ポリゴンを構成する第1頂点、第2頂点、第3頂点の3つの頂点の頂点番号別に各座標データが記録されている。頂点番号は、その頂点が属するポリゴンの番号が特定される形式で頂点を識別する識別情報である。具体的には、図13に示すように、頂点を示すVの後に、対応するポリゴン番号に含まれる数字、そして第1頂点、第2頂点、第3頂点の別を示すa〜cのいずれかのアルファベットで表現する。例えば、図13の1行目に示すように、ポリゴンP1の第1頂点は、“V1a”と表現される。頂点番号“V1a”に数字“1”が入っているため、ポリゴンP1の頂点であることが明確になっている。また、図13の頂点座標配列データにおいて、各頂点は、図11で示した頂点A〜Nのいずれかに対応するため、各頂点の座標データには頂点A〜Nを識別するアルファベットの小文字を添えて表現している。例えば、図13の1行目に示すように、ポリゴンP1の第1頂点V1aの座標値は、“(Xd,Yd,Zd)”と表現される。各ポリゴンごとに、構成される3つの頂点に対応付けて3つの座標値が記録されている。
上記のような規則に従って作成されるため、頂点座標配列データにおいては、同一座標の頂点が複数箇所に重複して記録されることになる。例えば、図11、図12に示した頂点Dは、6つのポリゴンP1,P2,P4,P5,P6,P7に共有されるため、座標値“(Xd,Yd,Zd)”は、頂点V1a,V2a,V4b,V5c,V6c,V7cとして6箇所に記録される。
図14は、稜線単位削除の場合におけるポリゴン削減処理の詳細を示すフローチャートである。まず、頂点リンクテーブル作成手段30が、頂点リンクテーブルを作成する(ステップS21)。頂点リンクテーブルは、ポリゴンの各頂点について、その頂点と同一座標となる他のポリゴンの頂点を1つ対応付けて記録したテーブルである。
頂点リンクテーブルの作成は、頂点リンクテーブル作成手段30が、頂点座標配列データを参照し、各ポリゴンの各頂点について、同一座標となる他のポリゴンの頂点を1つ検出して対応付けて記録することにより作成する。各ポリゴンの各頂点について、同一座標となる頂点が2つ以上存在する場合であっても、当該頂点に属するポリゴンに最も近いポリゴンの頂点の1つだけ検出して記録すればよい。これは同一座標となる頂点の探索の負荷を最小化するためである。同一座標となる頂点の探索順序としては、自身よりも後方側を探索する。頂点座標配列データの最終となるポリゴンまで探索して見つからなかった場合は、頂点座標配列データの先頭に戻って探索することにより、必ず1つ検出する。図13の例では、後方側とはポリゴン番号が増える側であり、先頭とは、ポリゴンP1を意味する。
図15は、図13に示した頂点座標配列データを基に作成された頂点リンクテーブルを示す図である。図15に示すように、頂点リンクテーブルはポリゴン単位で記録されている。各ポリゴン単位で記録された頂点のうち上段がリンク元、下段がリンク先を示している。例えば、ポリゴンP1の3つの頂点V1a,V1b,V1cをリンク元として、それぞれ頂点V2a,V2c,V3cがリンク先として対応付けられている。図12に示したように、頂点V1a(図12では“D”とも表記)と同一座標には、頂点V2a以外にも、V4b,V5c,V6c,V7cが存在しているが、頂点リンクテーブルには1つだけ記録されるため図15では、頂点V1aを含むポリゴンP1に最も近いポリゴンP2に含まれる頂点V2aのみとなっている。
頂点リンクテーブルが作成されたら、削除対象ポリゴン選定手段40が、ポリゴンモデルを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する(ステップS22)。次に、削除対象ポリゴン選定手段40は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する(ステップS23)。図11の例では、図11(b)に示すように、3個の頂点E、J、Kで構成されるポリゴンEJK(ポリゴンP10)が削除対象ポリゴンとして選定される。
続いて、削除対象ポリゴン選定手段40が削除対象ポリゴンの3辺のうち最短の1辺を削除対象辺として選定し、選定した削除対象辺の中点を算出する(ステップS24)。図11の例では、図11(c)に示すように、削除対象ポリゴンEJKの辺JKが削除対象辺として選定される。削除対象辺JKの2点J,Kはともに補正対象頂点となる。さらに、辺JKの中点Oの座標を算出する。当然ながら、中点Oの座標は、頂点Jと頂点Kの2頂点の座標の平均値として算出される。
次に、共有頂点探索手段50が、選定された削除対象辺の両端である2つの補正対象頂点を起点に頂点リンクテーブルを用いて共有頂点を順次探索する(ステップS25)。共有頂点とは、補正対象頂点と同一座標を共有する頂点である。上述の例では、削除対象辺JKの2頂点J(V10a)、K(V10b)を起点に図15の頂点リンクテーブルを参照すると、ポリゴンP10の2頂点のリンク先として、それぞれリンク先として頂点V14b,V11aがそれぞれ検出される。検出された頂点が存在するポリゴンを探すと、図16に示すように、頂点V14bはポリゴンP14の頂点として存在し、頂点V11aはポリゴンP11の頂点として存在する。ポリゴンP14では、頂点V14bのリンク先として頂点V15cが記録され、ポリゴンP11では、頂点V11aのリンク先として頂点V16cが記録されている。このようにして、順次リンクされた頂点を探索していく。すると、図16において矢印で結んだように、頂点V10aについては、V14b,V15c,V16a,V9a,V10aと探索されて、頂点V10a自身に戻る。また、頂点V10bについては、V11a,V16c,V17a,V10bと探索されて、頂点V10b自身に戻る。すなわち、共有頂点として、V14b,V15c,V16a,V9a,V11a,V16c,V17aが検出されることになる。
そして、ポリゴンモデル更新手段60が、順次探索されて検出された共有頂点の座標を、全て算出された中点の座標に変更し、頂点リンクテーブルの更新を行う(ステップS26)。上記の例では、頂点V10a、および頂点V10aと同一座標のV14b,V15c,V16a,V9aと、頂点V10b、および頂点V10bと同一座標のV11a,V16c,V17aを全て中点Oの座標値(Xo,Yo,Zo)に変更する。この結果、頂点座標配列データは、図17に示すように変更される。図17に示すように、ポリゴンP10では、2つの頂点V10a,V10bの座標値がともに(Xo,Yo,Zo)となって同一になるため、ポリゴンP10は存在できなくなり、削除されたことになる。同様に、ポリゴンP16では、2つの頂点V16a,V16cの座標値がともに(Xo,Yo,Zo)となって同一になるため、ポリゴンP16は存在できなくなり、削除されたことになる。
検出された全ての共有頂点の座標値を中点の座標値に変更したら、頂点リンクテーブルの更新を行う。具体的には、2つの補正対象頂点をそれぞれ頂点αおよび頂点βとすると、頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正する。すなわち、頂点リンクテーブルにおいて、リンク先として設定されている補正対象頂点を互いに入れ替える処理を行う。これにより、頂点αおよび頂点βに基づく2つのリンクのループが1つのループに統合される。
図18の例では、ポリゴンP9に記録されていた頂点V10aと、ポリゴンP17に記録されていた頂点V10bを入れ替えている。この結果、ポリゴンP10の頂点V10aを起点として探索すると、頂点V10bを経由してポリゴンP10の頂点V10aに戻ってくる。これを矢印で示すと、図18に示すように全体が1つのループになる。座標の変更前は、図16に示すように、頂点V10aを起点として探索すると、実線の矢印で示すように、頂点V10bを経由せずポリゴンP10の頂点V10aに戻っていた。また、頂点V10bを起点として探索すると、破線の矢印で示すように、頂点V10aを経由せずポリゴンP10の頂点V10bに戻っていた。すなわち、図16に示すように、実線のループと破線のループの2つのループになっていた。一方、図18に示すように、削除対象辺の2つの頂点が1つのループで結ばれることにより、以降の処理において、本ループを通るいずれかの頂点が削除対象頂点に選定され所定の座標値に更新されると、本ループを通る全ての頂点の座標値が一斉に同一の座標値に更新されるようになり、更に本ループはもう一方の削除対象頂点を通るループと1つのループに統合することになる。
頂点リンクテーブルの更新は、図18に示した状態に留めておいてもよいが、さらに進めて削除されたポリゴンを構成する頂点がリンクから外れるように、削除されたポリゴン内の頂点に対するリンク先を他の頂点に変更するようにしてもよい。すなわち、ループ内の一部のリンクが削除されるポリゴンの各頂点をバイパスするようにリンク先の変更を行う。具体的には、ポリゴンモデル更新手段60により削除されたポリゴンの各頂点をリンク先として設定されているリンク元の頂点のリンク先を、前記削除されたポリゴンの各頂点をリンク元として設定されているリンク先の頂点に変更する。図12の例では、ポリゴンモデル更新手段60により削除されたポリゴンとして、削除対象ポリゴンであるポリゴンP10、削除対象辺の中点に座標が変更された共有頂点を2つ以上含むことにより削除対象ポリゴンとともに削除されたポリゴンP16がある。したがって、図19の例では、下線を付したように、ポリゴンP9の頂点V9a,V9bのリンク先をそれぞれV10b,V10cよりV11a,V11cに変更し、ポリゴンP11の頂点V11aのリンク先をV16cよりV17aに変更し、ポリゴンP15の頂点V15b,V15cのリンク先をそれぞれV16b,V16aよりV17b,V9aに変更し、ポリゴンP17の頂点V17aのリンク先をV10aよりV14bに変更する。
頂点リンクテーブルの更新が行われたら、頂点座標配列の更新を行う(ステップS27)。具体的には、まず、2つの頂点の座標値が同一となったポリゴンを頂点座標配列データから削除する。したがって、図17に示した頂点座標配列データでは、ポリゴンP10とポリゴンP16が削除される。さらに、1頂点が更新されたポリゴンについては、面積および周長の再計算を行う。
図11の例では、図11(c)と図11(d)を比較するとわかるように、ポリゴンEHJ→ポリゴンEHO、ポリゴンEFK→ポリゴンEFO、ポリゴンHJM→ポリゴンHOM、ポリゴンJMN→ポリゴンOMN、ポリゴンFKN→ポリゴンFONに変更される。この結果、図11の例では、図11(a)の時点では、18個あったポリゴンが、図11(d)の時点では、16個に削減される。
ステップS27の処理を終えたら、制御手段10が、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する(ステップS28)。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップS23に戻って、削除対象ポリゴン選定手段40が、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップS28における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図14のフローチャートに従った処理を実行することにより、各グループについて設定された目標値以下になるように、ポリゴン数が削減されることになる。頂点リンクテーブルが作成されていなければ、削除対象ポリゴンの削除対象辺の2頂点と同一座標となる共有頂点の探索に大きな処理負荷を要することになる。頂点リンクテーブルを作成することにより、処理負荷を大幅に削減することが可能となる。
<2.4.2.ポリゴン単位削除>
次に、ポリゴン単位削除について説明する。図20は、ポリゴン単位削除によるポリゴン削減の基本原理を示す図である。ポリゴンモデルは、空間における三次元の値をもつポリゴン群であるが、図20の例では、図11と同様、紙面での説明の便宜上、二次元に投影したポリゴン群を示している。図20(a)は図11(a)と同一であり、削減前、18個のポリゴンからなるポリゴン群を示している。図20(a)において、A〜Nは頂点を示している。
ポリゴン単位削除の場合も、稜線単位削除の場合と同様、ポリゴン群の詳細は、図12に示したようになっており、頂点座標配列データは、図13に示したようなものとなっている。
上記のような規則に従って作成されるため、頂点座標配列データにおいては、同一座標の頂点が複数箇所に重複して記録されることになる。例えば、図11、図12に示した頂点Dは、6つのポリゴンP1,P2,P4,P5,P6,P7に共有されるため、座標値“(Xd,Yd,Zd)”は、頂点V1a,V2a,V4b,V5c,V6c,V7cとして6箇所に記録される。
図21は、ポリゴン単位削除の場合におけるポリゴン削減処理の詳細を示すフローチャートである。まず、頂点リンクテーブル作成手段30が、頂点リンクテーブルを作成する(ステップS31)。頂点リンクテーブルの作成は、稜線単位削除におけるステップS21と同様であり、結果として、稜線単位削除の場合と同様、図15に示した頂点リンクテーブルが作成される。
頂点リンクテーブルが作成されたら、削除対象ポリゴン選定手段40が、ポリゴンモデルを構成する全ポリゴンを対象として、各ポリゴンの面積および周長を算出する(ステップS32)。具体的には、稜線単位削除におけるステップS22における処理と同様の処理が行われる。次に、削除対象ポリゴン選定手段40は、算出された面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する(ステップS33)。具体的には、稜線単位削除におけるステップS32における処理と同様の処理が行われる。図20(図12)の例では、図20(b)に示すように、3個の頂点E、J、Kで構成されるポリゴンEJK(P10)が削除対象ポリゴンとして選定される。削除対象ポリゴンEJKの3点E,J,Kはともに補正対象頂点となる。
続いて、削除対象ポリゴン選定手段40が削除対象ポリゴンの平均点を求める。図11の例では、削除対象ポリゴンEJKの平均点Oの座標を算出する。すなわち、補正対象頂点E,J,Kの平均点Oの座標を算出する。当然ながら、平均点Oの座標は、頂点E、頂点J、頂点Kの座標の平均値として算出される。
次に、共有頂点探索手段50が、選定された削除対象ポリゴンの3つの補正対象頂点を起点に、頂点リンクテーブルを用いて共有頂点を順次探索する(ステップS34)。上述の例では、削除対象ポリゴンの3頂点J(V10a)、K(V10b)、E(V10c)を起点に図15の頂点リンクテーブルを参照すると、ポリゴンP10の3頂点のリンク先として、頂点V14b,V11a,V11cがそれぞれ検出される。検出された頂点が存在するポリゴンを探すと、図22に示すように、頂点V14bはポリゴンP14に存在し、頂点V11aはポリゴンP11に存在し、頂点V11cはポリゴンP11に存在する。ポリゴンP14では、頂点V14bに対応する頂点として頂点V15cが記録され、ポリゴンP11では、頂点V11a、頂点V11cに対応する頂点として頂点V16c、頂点V5bがそれぞれ記録されている。このようにして、順次対応する頂点を探索していく。すると、図22において矢印で結んだように、頂点V10aについては、V14b,V15c,V16a,V9a,V10aと探索されて、頂点V10a自身に戻る。また、頂点V10bについては、V11a,V16c,V17a,V10bと探索されて、頂点V10b自身に戻る。また、頂点V10cについては、V11c,V5b,V6a,V9b,V10cと探索されて、頂点V10c自身に戻る。すなわち、共有頂点として、V14b,V15c,V16a,V9a,V11a,V16c,V17a,V11c,V5b,V6a,V9bが検出されることになる。
そして、ポリゴンモデル更新手段60が、順次探索されて検出された共有頂点の座標を全て、算出された平均点の座標に変更し、頂点リンクテーブルの更新を行う(ステップS35)。上記の例では、頂点V10a、および頂点V10aと同一座標のV14b,V15c,V16a,V9aと、頂点V10b、および頂点V10bと同一座標のV11a,V16c,V17aと、頂点V10c、および頂点V10bと同一座標のV11c,V5b,V6a,V9bを全て平均点Oの座標値(Xo,Yo,Zo)に変更する。この結果、頂点座標配列データは、図23に示すように変更される。図23に示すように、ポリゴンP10では、3つの頂点V10a,V10b,V10cの座標値がともに(Xo,Yo,Zo)となって同一になるため、ポリゴンP10は存在できなくなり、削除されたことになる。同様に、ポリゴンP9,P11,P16では、それぞれ2つの頂点の座標値がともに(Xo,Yo,Zo)となって同一になるため、ポリゴンP9,P11,P16は存在できなくなり、削除されたことになる。
検出された全ての共有頂点の座標値を平均点の座標値に変更したら、頂点リンクテーブルの更新を行う。具体的には、補正対象頂点を頂点α、頂点βおよび頂点γとすると、頂点リンクテーブルにおいて、頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点γに補正し、頂点γに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正する。すなわち、頂点リンクテーブルにおいて、リンク先として設定されている補正対象頂点を互いに入れ替える処理を行う。これにより、頂点α、頂点βおよび頂点γに基づく3つのリンクのループが1つのループに統合される。図22の例では、ポリゴンP9の欄に記録されていた頂点V10a,V10cを、それぞれ頂点V10b,V10aと入れ替え、ポリゴンP17の欄に記録されていた頂点V10bを頂点V10cと入れ替えている。この結果、ポリゴンP10の頂点V10aを起点として探索すると、頂点V10b,V10cを経由してポリゴンP10の頂点V10aに戻ってくる。これを矢印で示すと、図24に示すように全体が1つのループになる。座標の変更前は、図22に示すように、頂点V10aを起点として探索すると、頂点V10b,V10cを経由せずポリゴンP10の頂点V10aに戻り、頂点V10bを起点として探索すると、頂点V10a,V10cを経由せずポリゴンP10の頂点V10bに戻り、頂点V10cを起点として探索すると、頂点V10a,V10bを経由せずポリゴンP10の頂点V10cに戻っていた。これを矢印で示すと、図22に示すように3つのループになっていた。一方、図24に示すように、削除対象ポリゴンの3つの頂点が1つのループで結ばれることにより、以降の処理において、本ループを通るいずれかの頂点が削除対象頂点に選定され所定の座標値に更新されると、本ループを通る全ての頂点の座標値が一斉に同一の座標値に更新されるようになり、更に本ループは残り2つの削除対象頂点を通る2つのループと1つのループに統合することになる。
頂点リンクテーブルの更新は、図24に示した状態に留めておいてもよいが、さらに進めて、削除されたポリゴンを構成する頂点がリンクから外れるように、削除されたポリゴン内の頂点に対するリンク先を他の頂点に変更するようにしてもよい。すなわち、ループ内の一部のリンクが削除されるポリゴンの各頂点をバイパスするようにリンク先の変更を行う。具体的には、ポリゴンモデル更新手段60により削除されたポリゴンの各頂点をリンク先として設定されているリンク元の頂点のリンク先を、前記削除されたポリゴンの各頂点をリンク元として設定されているリンク先の頂点に変更する。図25の例では、ポリゴンモデル更新手段60により削除されたポリゴンとして、削除対象ポリゴンであるポリゴンP10、削除対象辺の中点に座標が変更された共有頂点を2つ以上含むことにより削除対象ポリゴンとともに削除されたポリゴンP9,P11,P16がある。したがって、図25の例では、下線を付したように、ポリゴンP5の頂点V5aのリンク先を頂点V9cよりV12bに変更し、ポリゴンP6の頂点V6aのリンク先を頂点V9bよりV14bに変更し、ポリゴンP8の頂点V8aのリンク先を頂点V11bよりV17cに変更し、ポリゴンP15の頂点V15bおよびV15cのリンク先をそれぞれ頂点V16bおよびV16aよりV17bおよびV17aに変更し、ポリゴンP17の頂点V17aのリンク先を頂点V10cよりV5bに変更する。
頂点リンクテーブルの更新が行われたら、頂点座標配列の更新を行う(ステップS36)。具体的には、まず、3つの頂点の座標値が同一となったポリゴンを頂点座標配列データから削除する。したがって、図23に示した頂点座標配列データでは、ポリゴンP9,P10,P11,P16が削除される。さらに、1頂点が更新されたポリゴンについては、面積および周長の再計算を行う。
図20の例では、図20(c)と図20(d)を比較するとわかるように、ポリゴンDEH→ポリゴンDOH、ポリゴンDEF→ポリゴンDOF、ポリゴンHJM→ポリゴンHOM、ポリゴンJMN→ポリゴンOMN、ポリゴンFKN→ポリゴンFONに変更される。この結果、図20の例では、図20(a)の時点で18個あったポリゴンが、図20(d)の時点では14個に削減される。
ステップS36の処理を終えたら、制御手段10が、削減後の全ポリゴン数が、設定された目標値以下となっているか否かを判定する(ステップS37)。目標値としては、事前に任意の値を設定することができる。判定の結果、全ポリゴン数が目標値以下となっていない場合は、ステップS33に戻って、削除対象ポリゴン選定手段40が、残っているポリゴンの中から、面積と周長を乗じた値が最小となるポリゴンを削除対象ポリゴンとして選定する。ステップS37における判定の結果、全ポリゴン数が目標値以下である場合は、ポリゴン削減処理を終了する。図21のフローチャートに従った処理を実行することにより、各グループについて設定された目標値以下になるように、ポリゴン数が削減されることになる。頂点リンクテーブルが作成されていなければ、削除対象ポリゴンの3つの補正対象頂点と同一座標となる共有頂点の探索に大きな処理負荷を要することになる。頂点リンクテーブルを作成することにより、処理負荷を大幅に削減することが可能となる。
<2.5.小体積グループ削除処理>
次に、ステップS40におけるグループ合成手段70による隔離された小体積グループの削除処理について説明する。ここで、隔離された小体積グループの削除処理の説明に先立ち、隔離された小体積グループの削除処理を行う理由について説明しておく。図26は、ポリゴン削減処理により生じる問題を説明するための図である。図26(a)は、ステップS10のグループ分類処理を終えた直後の2グループのポリゴン群を示している。図26(a)の例では、頂点D、E、Kを含む左側のグループと、頂点D’、E’、K’を含む右側のグループが存在する。頂点DとD’、頂点EとE’、頂点KとK’がそれぞれ3Dプリンタの解像度以下である場合、この2グループのポリゴン群を3Dプリンタで出力すると、頂点DとD’、頂点EとE’、頂点KとK’は樹脂等により連結され、2グループは連結した物体として出力される。すなわち、2グループは物理的には接着されている。
図26(a)に示した右側のグループのポリゴン群に対して、ステップS20におけるポリゴン削減処理を実行すると、図26(b)に示すように、ポリゴンE’FK’が削除対象ポリゴンとして選定される。さらに、図26(c)に示すように、削除対象ポリゴンE’FK’の最短辺E’Fが削除対象辺として選定され、辺E’Fの中点Oが算出される。そして、図26(d)に示すように、削除対象ポリゴンE’FK’と、削除頂点共有ポリゴンD’E’Fが削除される。
図26(a)と図26(d)を比較するとわかるように、左右の2つのグループは、ポリゴン削減処理前に比べて、ポリゴン削減処理後には、より離れてしまっている。図26(d)に示した2グループの距離が、3Dプリンタの解像度を超えると、2グループのポリゴン群を3Dプリンタで出力した場合、2グループは別の物体として出力される。2つのグループがともに大きな物体となれば、問題はない。しかし、一つが非常に小さな物体となる場合、例えば、一方のグループが本体であって、他方のグループが本体に付属するヒゲのようなものである場合、本体と別に出力されたヒゲは、3Dプリンタ内に紛れ込み、機械詰まり等の問題を引き起こす恐れがある。このような問題を除去するため、上述のヒゲのような隔離された小体積グループの削除処理を行うのである。
図27は、グループ合成手段70による隔離された小体積グループの削除処理(S40)の詳細を示すフローチャートである。グループ合成手段70は、まず、グループごとに全ポリゴンの全頂点を対象として、X、Y、Zぞれぞれの方向の最大値および最小値を算出する(ステップS41)。この結果、グループgに対して、最小値Xmin(g)、最大値Xmax(g)、最小値Ymin(g)、最大値Ymax(g)、最小値Zmin(g)、最大値Zmax(g)が得られる。次に、グループ合成手段70は、グループごとに外接直方体の体積を算出する(ステップS42)。具体的には、以下の〔数式1〕に従った処理を実行することにより、グループgの外接直方体の体積V(g)を算出する。
〔数式1〕
V(g)=(Xmax(g)−Xmin(g))×(Ymax(g)−Ymin(g))×(Zmax(g)−Zmin(g))
グループ合成手段70は、全グループに対してステップS41、S42の処理を実行する。これにより、全グループについて、外接直方体の体積が得られる。次に、グループ合成手段70は、全グループの中で外接直方体の体積が最小となるグループを特定する(ステップS43)。そして、グループ合成手段70は、特定したグループと他の全てのグループとの最小間隔を算出する(ステップS44)。ステップS44における最小間隔の算出処理の詳細については後述する。
続いて、グループ合成手段70は、ステップS44において算出された最小間隔が所定のしきい値以上か否かを判定する(ステップS45)。最小間隔と比較するための所定のしきい値としては、3Dプリンタ出力時に0.2mmに相当する数値とすることが好ましい。判定の結果、最小間隔が所定のしきい値以上である場合は、体積最小のグループが、最も近いグループとも所定の距離以上離れていることになるので、グループ合成手段70は、体積最小のグループを削除する処理を行う(ステップS46)。ステップS45における判定の結果、最小間隔が所定のしきい値未満である場合は、体積最小のグループが、最も近いグループと3Dプリンタの解像度以下に近接していることになるので、グループ合成手段70は、体積最小のグループを削除する処理を行わない。
ステップS46におけるグループの削除を行った場合、削除を行わなかった場合のいずれにおいても、そのグループについては処理済みとする。そして、ステップS43に戻って、未処理のグループの中で外接直方体の体積が最小となるグループを特定する。ステップS43〜ステップS46の処理を繰り返し、全てのグループに対する処理を終えたら、隔離された小体積グループの削除処理を終了する。
ステップS44における最小間隔の算出処理の詳細について説明する。図28は、図27のステップS44における最小間隔の算出処理の詳細を示すフローチャートである。グループ合成手段70は、初期値として、最小間隔を示す変数dminに所定以上の値を設定する。dminに与える初期値としては、グループ間の最小間隔としてあり得ない大きな値を設定しておけばよい。そして、グループ合成手段70は、全グループの中から、グループgより体積が大きい1つのグループhを抽出する(ステップS47)。この結果、グループhについて、最小値Xmin(h)、最大値Xmax(h)、最小値Ymin(h)、最大値Ymax(h)、最小値Zmin(h)、最大値Zmax(h)が得られる。次に、グループ合成手段70は、X、Y、Zの各方向別に2グループ間の差分の最小値を算出する(ステップS48)。具体的には、以下の〔数式2〕に従った処理を実行することにより、X方向の差分の最小値dx、Y方向の差分の最小値dy、Z方向の差分の最小値dzを算出する。
〔数式2〕
dx=Min{|Xmax(g)−Xmin(h)|,|Xmin(g)−Xmax(h)|}
dy=Min{|Ymax(g)−Ymin(h)|,|Ymin(g)−Ymax(h)|}
dz=Min{|Zmax(g)−Zmin(h)|,|Zmin(g)−Zmax(h)|}
続いて、グループ合成手段70は、算出された方向別最小値のうち最大のものをグループ間最小値とし、グループ間最小値を、既に処理済みの他のグループ間における全グループ間最小値と比較し、小さい方を全グループ間最小値とする処理を行う(ステップS49)。具体的には、ステップS48において算出された3つの方向別最小値dx、dy、dzのうち、最大の値をとるグループ間最小値Max(dx、dy、dz)とdminを比較し、Max(dx、dy、dz)<dminの場合、dmin=Max(dx、dy、dz)とする。これにより、dminには、グループ間最小値の中で最小の値となる全グループ間最小値が記録されることになる。
ステップS47、S48、S49の処理を繰り返して実行し、グループgより体積が大きい全てのグループに対する処理を終えたら、図28に示した最小間隔の算出処理を終了し、図27のステップS45に進んで、最小間隔dminとしきい値との比較を行うことになる。
<2.6.ポリゴンモデルの合成>
図9の処理概要に示したように、ステップS50においては、グループ合成手段70が、全グループのポリゴンモデルの合成を行って更新された領域別ポリゴンモデルを得る。また、ステップS70においては、ポリゴンモデル合成手段80が、全領域の領域別ポリゴンモデルの合成を行って合成ポリゴンモデルを得る。いずれの合成処理も、ヘッダ部を除く領域別ポリゴンモデルを単純に結合し、ヘッダ部に合算されたポリゴン数を記録することにより行われる(ただし、これはバイナリ形式のSTLフォーマットの場合で、ASCII形式の場合はヘッダ部にポリゴン数を記録しないため、ヘッダ部を除く領域別ポリゴンモデルを単純に結合するだけでよい)。合成ポリゴンモデル記憶手段100に記憶された合成ポリゴンモデルを3Dプリンタ7に出力することにより、3Dプリンタ7は効率的に立体物を造形することができる。造形された立体物については、ほとんど劣化は見られなかった。
<3.ポリゴン削減事例>
ポリゴン削減について、頂点リンクテーブルを用いない従来方式と比較した2つの事例について説明する。頂点リンクテーブルを用いない場合、N個のポリゴンを1/10に減らそうとすると、削除対象となるポリゴンの探索には、Nの2乗に比例して処理負荷が増える。本発明では、頂点リンクテーブルを用いることによりNに比例した処理負荷に減らすことができる。図29、図30は第1の事例を示している。図29(a)は、オリジナル(ポリゴン削減前)のポリゴンモデルのレンダリング像であり、図29(b)は、従来方式によるポリゴン削減後のポリゴンモデルのレンダリング像である。また、図30(a)は、上記実施形態におけるポリゴン単位削除方式によるポリゴン削減後のポリゴンモデルのレンダリング像であり、図30(b)は、上記実施形態における稜線単位削除方式によるポリゴン削減後のポリゴンモデルのレンダリング像である。
図29左に示したオリジナルのポリゴンモデルは、249854ポリゴンであり、図29右、図30左、図30右に示したポリゴン削減後のポリゴンモデルはいずれも24985ポリゴンであり、1/10に削減されている。同一機種のコンピュータ(汎用Windows(登録商標)パソコン(Intel Core i7-4700MQ 2.4GHz, Memory:8Gbytes)をハードウェアとして、各プログラムを組み込んだ立体物造形用データ削減装置による処理の結果、図29右に示した従来方式は、所要時間4分9秒であったのに対して、図30左に示したポリゴン単位削除方式は、所要時間2分42秒であり、図30右に示した稜線単位削除方式は、所要時間2分54秒であった。ポリゴン単位削除方式、稜線単位削除方式のいずれの場合も、従来方式に比べて大幅に改善されていた。
図31、図32は第2の事例を示している。図31左は、オリジナル(ポリゴン削減前)のポリゴンモデルのレンダリング像であり、図31右は、従来方式によるポリゴン削減後のポリゴンモデルのレンダリング像である。また、図32左は、上記実施形態におけるポリゴン単位削除方式によるポリゴン削減後のポリゴンモデルのレンダリング像であり、図32右は、上記実施形態における稜線単位削除方式によるポリゴン削減後のポリゴンモデルのレンダリング像である。
図31左に示したオリジナルのポリゴンモデルは、3444582ポリゴンであり、図31右、図32左、図32右に示したポリゴン削減後のポリゴンモデルはいずれも344458ポリゴンであり、1/10に削減されている。同一機種のコンピュータ(Intel Core i7-4700MQ 2.4GHz, Memory:8Gbytes)をハードウェアとして、各プログラムを組み込んだ立体物造形用データ削減装置による処理の結果、図31右に示した従来方式は、所要時間13時間51分であったのに対して、図32左に示したポリゴン単位削除方式は、所要時間9時間7分であり、図32右に示した稜線単位削除方式は、所要時間10時間14分であった。ポリゴン単位削除方式、稜線単位削除方式のいずれの場合も、従来方式に比べて大幅に改善されていた。
<4.変形例等>
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記実施形態では、処理対象のポリゴンを三角形としたが、四角形以上の多角形であってもよい。
また、上記実施形態では、ポリゴンに対して面積と周長を算出し、面積と周長の積が最小となるポリゴンを削除対象ポリゴンとして選定するようにしたが、周長を用いず面積のみを用いるようにしてもよい。
また、上記実施形態では、複数のグループの更新されたポリゴンモデルに対して、外接直方体の体積が所定のしきい値未満であるものを削除するようにしたが、削除しないようにすることも可能である。
1・・・CPU(Central Processing Unit)
2・・・RAM(Random Access Memory)
3・・・記憶装置
4・・・キー入力I/F
5・・・データ入出力I/F
6・・・表示部
7・・・3Dプリンタ(立体物造形装置)
7a・・・データ処理部
7b・・・出力部
10・・・制御手段
20・・・グループ分類手段
30・・・頂点リンクテーブル作成手段
40・・・削除対象ポリゴン選定手段
50・・・共有頂点探索手段
60・・・ポリゴンモデル更新手段
70・・・グループ合成手段
80・・・ポリゴンモデル合成手段
90・・・領域別ポリゴンモデル記憶手段
100・・・合成ポリゴンモデル記憶手段
200・・・立体物造形用データ削減装置

Claims (15)

  1. ポリゴンの集合として表現されたポリゴンモデルのデータを、立体物の造形のために削減する装置であって、
    前記ポリゴンモデルを構成する各ポリゴンの各頂点を対象頂点とし、当該対象頂点と同一座標となる他のポリゴンの頂点を探索し、得られた他のポリゴンの頂点と前記対象頂点を対応付け、それぞれポリゴンを識別可能な形式で記録した頂点リンクテーブルを作成する頂点リンクテーブル作成手段と、
    前記ポリゴンモデルを構成する各ポリゴンの面積に基づいて、削除するべきポリゴンを削除対象ポリゴン、補正するべき頂点を補正対象頂点として選定する削除対象ポリゴン選定手段と、
    前記補正対象頂点の各々に対して、前記頂点リンクテーブルを参照し、前記補正対象頂点の各々と同一座標を共有する共有頂点を順次探索する共有頂点探索手段と、
    前記探索された共有頂点を2つ以上含むポリゴンを、前記削除対象ポリゴンとともに削除し、前記共有頂点を1つのみ含むポリゴンに対して、当該共有頂点を前記補正対象頂点の平均点の座標に補正することによって前記ポリゴンモデルを更新するポリゴンモデル更新手段と、
    前記ポリゴンモデル更新手段により更新されたポリゴンモデルを構成するポリゴン数が目標値より大きい場合、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段に対して繰り返して処理を実行させる制御を行う制御手段と、
    を有することを特徴とする立体物造形用データ削減装置。
  2. 前記頂点リンクテーブル作成手段は、ポリゴンの集合体を配列構造で定義し、当該配列上で前記対象頂点より後方に位置し、当該対象頂点が属するポリゴンに最も近接し、当該対象頂点と同一座標となる他のポリゴンの頂点を1つ検出し、該当する他のポリゴンが存在しない場合、前記配列の先頭より、先頭に最も近接し、前記対象頂点と同一座標となる他のポリゴンの頂点を1つ検出するようにし、頂点のリンクがループを構成するようにしていることを特徴とする請求項1に記載の立体物造形用データ削減装置。
  3. 前記削除対象ポリゴン選定手段は、
    前記削除対象ポリゴンを選定した後、
    前記削除対象ポリゴンを構成する辺の長さに基づいて、削除するべき辺を削除対象辺として選定し、前記削除対象辺の2頂点を前記補正対象頂点として選定するようにしていることを特徴とする請求項1または請求項2に記載の立体物造形用データ削減装置。
  4. 前記削除対象ポリゴン選定手段は、前記削除対象ポリゴンの各辺の長さを算出し、最も短い辺を前記削除対象辺として選定することを特徴とする請求項3に記載の立体物造形用データ削減装置。
  5. 前記削除対象ポリゴン選定手段は、
    前記削除対象ポリゴンを選定し、前記削除対象ポリゴンを構成する3頂点を前記補正対象頂点として選定するようにしていることを特徴とする請求項1または請求項2に記載の立体物造形用データ削減装置。
  6. 前記ポリゴンモデル更新手段は、更に、
    前記補正対象頂点を頂点αおよび頂点βとすると、
    前記頂点リンクテーブルにおいて、前記頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、前記頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正し、頂点αおよび頂点βに基づく2つのリンクのループを1つのループに統合するように、前記頂点リンクテーブルを更新するようにしていることを特徴とする請求項3または請求項4に記載の立体物造形用データ削減装置。
  7. 前記ポリゴンモデル更新手段は、更に、
    前記補正対象頂点を頂点α、頂点βおよび頂点γとすると、
    前記頂点リンクテーブルにおいて、前記頂点αに対してリンク先を設定している頂点に対して、リンク先を頂点βに補正し、前記頂点βに対してリンク先を設定している頂点に対して、リンク先を頂点γに補正し、前記頂点γに対してリンク先を設定している頂点に対して、リンク先を頂点αに補正し、頂点α、頂点βおよび頂点γに基づく3つのリンクのループを1つのループに統合するように、前記頂点リンクテーブルを更新するようにしていることを特徴とする請求項5に記載の立体物造形用データ削減装置。
  8. 前記ポリゴンモデル更新手段は、更に、
    前記頂点リンクテーブルにおいて、
    前記ポリゴンモデル更新手段により削除されたポリゴンの各頂点をリンク先として設定されているリンク元の頂点のリンク先を、前記削除されたポリゴンの各頂点をリンク元として設定されているリンク先の頂点に変更し、前記削除されたポリゴンをバイパスするように、前記頂点リンクテーブルを更新するようにしていることを特徴とする請求項6または請求項7に記載の立体物造形用データ削減装置。
  9. 前記削除対象ポリゴン選定手段は、前記ポリゴンモデルを構成するポリゴンに対して面積と周長を算出し、面積と周長の積が最小となるポリゴンを前記削除対象ポリゴンとして選定することを特徴とする請求項1から請求項8のいずれか一項に記載の立体物造形用データ削減装置。
  10. 前記ポリゴンモデル更新手段により更新されたポリゴンモデルを構成するポリゴン数が目標値より大きい場合、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段に対して繰り返して処理を実行させる制御を行う制御手段をさらに有することを特徴とする請求項1から請求項9のいずれか一項に記載の立体物造形用データ削減装置。
  11. 前記ポリゴンモデルが複数の領域に分割されたボクセル形式の3D医療画像データに対応して複数セット存在しており、
    前記制御手段は、各ポリゴンモデルに対して、前記頂点リンクテーブル作成手段、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段に対して処理を実行させ、複数セットの更新されたポリゴンモデルを作成させるものであって、
    前記複数セットの更新されたポリゴンモデルを単一のポリゴンモデルに合成するポリゴンモデル合成手段を、
    更に有することを特徴とする請求項10に記載の立体物造形用データ削減装置。
  12. 前記削除対象ポリゴン選定手段を実行させる対象のポリゴンモデルに対して、各グループに属するポリゴンが当該グループ内の他のいずれかのポリゴンと、ポリゴンを構成する辺を共有するようにグループ分類するポリゴンモデルのグループ分類手段と、
    前記分類された各グループに対する前記頂点リンクテーブル作成手段、前記削除対象ポリゴン選定手段、前記共有頂点探索手段、ポリゴンモデル更新手段による処理の実行により得られた複数のグループの更新されたポリゴンモデルに対して、単一のポリゴンモデルに合成するグループ合成手段と、
    を更に有することを特徴とする請求項1から請求項11のいずれか一項に記載の立体物造形用データ削減装置。
  13. 前記グループ合成手段は、前記複数のグループの更新されたポリゴンモデルに対して、外接直方体の体積を算出し、算出された体積が所定のしきい値未満である場合、当該グループのポリゴンモデルを合成対象から除外することを特徴とする請求項12に記載の立体物造形用データ削減装置。
  14. 請求項1から請求項13のいずれか一項に記載の立体物造形用データ削減装置と、
    前記立体物造形用データ削減装置から出力されたポリゴンモデルを用いて立体物を造形する立体物造形装置と、
    を有することを特徴とする立体物造形システム。
  15. コンピュータを、請求項1から請求項13のいずれか一項に記載の立体物造形用データ削減装置として機能させるためのプログラム。
JP2014233521A 2014-11-18 2014-11-18 立体物造形用データ削減装置 Pending JP2016099648A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014233521A JP2016099648A (ja) 2014-11-18 2014-11-18 立体物造形用データ削減装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014233521A JP2016099648A (ja) 2014-11-18 2014-11-18 立体物造形用データ削減装置

Publications (1)

Publication Number Publication Date
JP2016099648A true JP2016099648A (ja) 2016-05-30

Family

ID=56075780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014233521A Pending JP2016099648A (ja) 2014-11-18 2014-11-18 立体物造形用データ削減装置

Country Status (1)

Country Link
JP (1) JP2016099648A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020501954A (ja) * 2016-11-23 2020-01-23 シンバイオニクス リミテッド 三次元印刷指向の画像区分化のための方法およびシステム
CN114707218A (zh) * 2022-04-08 2022-07-05 广东博智林机器人有限公司 三维模型简化方法及装置
CN115063508A (zh) * 2022-08-18 2022-09-16 深圳小库科技有限公司 建筑地块的多边形切分方法、装置、设备及存储介质
CN117115392A (zh) * 2023-10-24 2023-11-24 中科云谷科技有限公司 模型图像压缩方法、装置、计算机设备及可读存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020501954A (ja) * 2016-11-23 2020-01-23 シンバイオニクス リミテッド 三次元印刷指向の画像区分化のための方法およびシステム
US11334777B2 (en) 2016-11-23 2022-05-17 3D Systems Inc. Method and system for three-dimensional print oriented image segmentation
CN114707218A (zh) * 2022-04-08 2022-07-05 广东博智林机器人有限公司 三维模型简化方法及装置
CN115063508A (zh) * 2022-08-18 2022-09-16 深圳小库科技有限公司 建筑地块的多边形切分方法、装置、设备及存储介质
CN115063508B (zh) * 2022-08-18 2023-01-06 深圳小库科技有限公司 建筑地块的多边形切分方法、装置、设备及存储介质
CN117115392A (zh) * 2023-10-24 2023-11-24 中科云谷科技有限公司 模型图像压缩方法、装置、计算机设备及可读存储介质
CN117115392B (zh) * 2023-10-24 2024-01-16 中科云谷科技有限公司 模型图像压缩方法、装置、计算机设备及可读存储介质

Similar Documents

Publication Publication Date Title
JP6091371B2 (ja) スライスデータ作成装置、スライスデータ作成方法、プログラムおよびコンピューター読み取り可能な記録媒体
US20130300736A1 (en) Adaptively merging intersecting meshes
CN111462318B (zh) 一种基于视点互信息的三维树木模型实时简化方法
CN109003333B (zh) 基于纹理的交互式网格模型裁切方法、装置及建模设备
JP2016099648A (ja) 立体物造形用データ削減装置
CN116051708A (zh) 三维场景轻量化模型渲染方法、设备、装置及存储介质
US20170132846A1 (en) Technique for Extruding a 3D Object Into a Plane
JP6569389B2 (ja) ポリゴンモデル構造化装置および立体物造形用データ削減装置
CN108597038B (zh) 一种三维表面建模方法及装置、计算机存储介质
US20240212863A1 (en) Unified anisotropic volume and surface mesh storage
JP6565494B2 (ja) 立体物造形用データ削減装置
JP6613727B2 (ja) 立体物造形用データ削減装置
JP2015158778A (ja) 立体物造形用データ最適化装置
CA2966299C (en) Method for immediate boolean operations using geometric facets
CN109754469B (zh) 表面网格切割和切口边界优化处理的方法和系统
JP2015158737A (ja) 画像処理装置及び画像処理方法
JPH0623989B2 (ja) 境界表現ソリツド・モデリング・システム
JP4425734B2 (ja) 隠線を消去したベクトルイメージを提供する方法
Pakdel et al. Incremental subdivision for triangle meshes
JP7508785B2 (ja) 情報処理装置、及び情報処理プログラム
JP2016099841A (ja) 立体物造形用データ削減装置
JP2003228725A (ja) 3次元画像処理システム
JP6565495B2 (ja) 立体物造形用データ分離装置
US10636210B2 (en) Dynamic contour volume deformation
JP4318580B2 (ja) 3次元樹木形状生成装置