(57)【要約】【課題】  送信先で３次元オブジェクトの隣接部分の情報を高速に表示することが可能な３次元オブジェクトのデータ送信方法、データ送信プログラム、データ送信装置、データ受信装置を提供する。【解決手段】  ３次元オブジェクトを表示するためのデータを送信するデータ送信方法であって、第１の３次元オブジェクトに第２の３次元オブジェクトを追加する段階と、第２の３次元オブジェクトデータを構成する構成要素に、３次元オブジェクトを分割する段階と、構成要素分割段階により分割された第２の３次元オブジェクトの構成要素のうち、第１の３次元オブジェクトに隣接する構成要素を判定する段階と、第２の３次元オブジェクトの各構成要素に送信する順番を定めるための重要度を指定する段階と、指定された重要度に基づき、第２の３次元オブジェクトの構成要素のデータを送信する段階とを有することを特徴とする。【選択図】  図１
2006059021.tif 000002
【特許請求の範囲】
【請求項１】
３次元オブジェクトを表示するためのデータを送信するデータ送信方法であって、
第１の３次元オブジェクトに第２の３次元オブジェクトを追加する３次元オブジェクト追加段階と、
前記第２の３次元オブジェクトデータを構成する構成要素に、前記３次元オブジェクトを分割する構成要素分割段階と、
前記構成要素分割段階により分割された前記第２の３次元オブジェクトの構成要素のうち、前記第１の３次元オブジェクトに隣接する構成要素を判定する隣接部分判定段階と、
前記第２の３次元オブジェクトの各構成要素に送信する順番を定めるための重要度を指定する重要度指定段階と、
前記指定された重要度に基づき、前記第２の３次元オブジェクトの構成要素のデータを送信するデータ送信段階と
を有することを特徴とするデータ送信方法。
【請求項２】
前記隣接部分判定段階は、
前記第２の３次元オブジェクトの外形をボックス形状にしたバウンディングボックスを作成するバウンディングボックス作成段階と、
前記バウンディングボックスの頂点と前記第１の３次元オブジェクトとの距離を算出する第１の距離算出段階と、
前記第１の距離算出段階で算出された距離の中で、相対的に短い距離が算出された複数の頂点を検出する頂点検出段階と、
前記頂点検出段階で検出された頂点で定まる図形と前記各構成要素までの距離を算出する第２の距離算出段階と、
前記第２の距離算出段階で算出された距離の中で、短い距離が算出された構成要素を隣接部分と判定する短距離判定段階と
を有することを特徴とする請求項１に記載のデータ送信方法。
【請求項３】
前記隣接部分判定段階は、
前記第２の３次元オブジェクトの外形をボックス形状にしたバウンディングボックスを作成するバウンディングボックス作成段階と、
前記バウンディングボックスへのユーザの加筆処理を検出する加筆処理検出段階と、
前記ユーザが加筆した位置から隣接部分を判定する加筆位置隣接部分判定段階と
を有することを特徴とする請求項１に記載のデータ送信方法。
【請求項４】
前記隣接部分判定段階は、
前記第１の３次元オブジェクトの重心位置を算出する第１の重心位置算出段階と、
前記第２の３次元オブジェクトの重心位置を算出する第２の重心位置算出段階と、
前記第１、第２の重心位置算出段階で算出された重心位置から直線を作成する直線作成段階と、
前記第２の３次元オブジェクトの構成要素と前記直線とが接する構成要素を検出する構成要素検出段階と、
前記検出された構成要素の近傍にある構成要素群を隣接部分と判定する近傍判定段階と
を有することを特徴とする請求項１に記載のデータ送信方法。
【請求項５】
前記隣接部分判定段階は、
前記第２の３次元オブジェクト表示するためのデータと関連付けられた隣接部位置情報を取得する隣接部位置情報取得段階と、
前記隣接部位置情報から隣接部分を判定する隣接部位置情報判定段階と
を有することを特徴とする請求項１に記載のデータ送信方法。
【請求項６】
前記重要度指定段階は、
前記構成要素の表示面積を算出する表示面積算出段階と、
前記表示面積算出段階で算出された表示面積が閾値以上である構成要素の重要度を指定する第１の重要度指定段階と
を有することを特徴とする請求項１から５のいずれか１項に記載のデータ送信方法。
【請求項７】
前記重要度指定段階は、
前記第２の距離算出段階で算出された各構成要素の距離を取得する距離情報取得段階と、
取得した距離重要度を指定する第２の重要度指定段階と
を有することを特徴とする請求項２に記載のデータ送信方法。
【請求項８】
前記構成要素が送信されるネットワークの通信環境情報を取得する通信環境情報取得段階をさらに有することを特徴とする請求項１から７のいずれか１項に記載のデータ送信方法。
【請求項９】
請求項１から８に記載のデータ送信方法をコンピュータで実行するためのデータ送信プログラム。
【請求項１０】
３次元のオブジェクトを表示するためのデータを送信するデータ送信装置であって、
第１の３次元オブジェクトに第２の３次元オブジェクトを追加する３次元オブジェクト追加手段と、
前記３次元オブジェクトを構成する構成要素に、前記３次元オブジェクトを分割する構成要素分割手段と、
前記構成要素分割手段により分割された前記第２の３次元オブジェクトの構成要素のうち、前記第１の３次元オブジェクトデータに隣接する構成要素を判定する隣接部分判定手段と、
前記第２の３次元オブジェクトデータの各構成要素に、送信する順番を定めるための重要度を指定する重要度指定手段と、
前記指定された重要度に基づき、前記第２の３次元オブジェクトの構成要素のデータを送信するデータ送信手段と
を有することを特徴とするデータ送信装置。
【請求項１１】
前記構成要素が送信されるネットワークの通信環境情報を取得する通信環境情報取得手段をさらに有することを特徴とする請求項１０に記載のデータ送信装置。
【請求項１２】
３次元のオブジェクトを表示するためのデータを受信するデータ受信装置であって、
前記３次元オブジェクトを構成する構成要素のデータを受信するデータ受信手段と、
受信したデータにより前記構成要素を表示する３次元オブジェクト表示手段と
を有することを特徴とするデータ受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信環境に応じて３次元オブジェクト情報を通信して表示するデータ送信方法、データ送信プログラム、データ送信装置、データ受信装置に関する。
【背景技術】
【０００２】
近年のコンピュータの発展により、３次元オブジェクトなどのデータ容量の大きいコンテンツが利用できるようになってきた。３次元オブジェクトの利用方法の一例としては、設計図面を作成するときに使用するＣＡＤ（Computer Aided Design）が挙げられる。
【０００３】
以前は２次元図面を利用して設計情報を設計者から製造者へ伝達していたが、現在では設計作業の効率化のために３次元オブジェクトを使用した３次元図面を利用して設計情報を伝達する機会も多くなってきた。
【０００４】
しかし、現状のコンピュータの性能においても、複雑な形状をした製品の３次元オブジェクトであるとデータ容量がより大きくなるため、３次元オブジェクトを送信する際に時間がかかってしまい、３次元オブジェクトをスムーズに受け渡すことが困難となる。
【０００５】
ここで、本願に関連する特許文献について説明する。特許文献１では、３次元オブジェクトである設計モデルに対応する加工工程データベースを保存しておき、設計者が設計した３次元オブジェクトを加工工程データベースに保存された形状情報を利用して形状認識し、その結果から３次元オブジェクトモデルを複数の要素に分割し、加工工程情報の中から３次元オブジェクトの形状に応じた最適な加工用件を表示することで、設計図面の検図を効率化することが開示されている。
【０００６】
特許文献２では、サーバ・クライアント間の伝送通信路の輻輳状況を監視して、輻輳状況に応じて変化する利用可能な伝送速度の変化の度合いを算出して、クライアント装置に単位時間当たりに送信する３次元オブジェクトデータのデータ容量の上限値を設定して送信することで、３次元オブジェクトデータの伝送通信路の輻輳状況に対応させて送信することが開示されている。
【０００７】
特許文献３では、ＣＧ動作データをリアルタイムに送受信できる多次元ストリームデータを送信する装置に関する特許で、人間等の動作を複数種類の動作データに分類して、動作データに適した圧縮処理方法で動作ブロック単位ごとに圧縮することでＣＧ動作データ容量を圧縮することが開示されている。
【０００８】
特許文献４では、データベースサーバに単一の形態のデータベースを格納しておき（高精細な３次元オブジェクトを一つだけデータベースに保存）、クライアントの通信速度や表示解像度などの情報処理環境を示す端末属性情報を取得して、端末属性情報と検索要求情報からデータベースの内容を検索して適切な精度の３次元オブジェクトデータをクライアント側へ送信することが開示されている。
【０００９】
特許文献５では、ポリゴンの面積、３次元オブジェクトのデータ特徴、視点位置情報等からポリゴン表示の重要度を決定し、３次元オブジェクトを通信する通信経路の環境に応じて、重要度順で３次元オブジェクトを構成するポリゴン情報を送信することが開示されている。
【００１０】
特許文献６では、ポリゴンの表示面積を算出し、表示面積が大きいポリゴンから順々に送信して表示していくことで、通信速度が遅い通信回線を利用しても３次元オブジェクトを高速に表示できるように送信することが開示されている。
【００１１】
特許文献７では、クライアント側が３次元オブジェクトの表示能力をサーバ側へ通知し、サーバ側は通知された情報を参照して、通知された表示能力に見合った形状詳細度に簡約化し、簡約した３次元オブジェクトを送信することが開示されている。
【００１２】
特許文献８では、従来のバウンディングボックス生成方法では、バウンディングボックスによる干渉チェックが有効に活用できないトリム曲面を利用した３次元オブジェクトにおいて、トリム曲面の構成制御点からバウンディングボックス用の新たな構成制御点を生成することにより、トリム曲面データ同士の干渉チェックをより正確に実行できるバウンディングボックスを生成することが開示されている。
【特許文献１】特開２００３−９９４８２
【特許文献２】特開２００２−２４７５８５
【特許文献３】特開２０００−１４９０３９
【特許文献４】特開平９−３０５４７２
【特許文献５】特開平９−１２８５６３
【特許文献６】特開平９−２３７３５４
【特許文献７】特開平９−２８２２４９
【特許文献８】特開２００１−２２２５５９
【発明の開示】
【発明が解決しようとする課題】
【００１３】
特許文献１では、３次元オブジェクトの形状認識処理を実行し、加工工程データベース内に保持された設計モデルと比較することで、加工工程情報の中から３次元オブジェクトの形状に応じた最適な加工用件を表示して設計図面の検図を効率化することは可能であるが、３次元オブジェクトの通信処理に関して考慮されていないため、効率良く３次元オブジェクトを送信できない。
【００１４】
特許文献２では、サーバ・クライアント間の伝送通信路の輻輳状況に応じてクライアント装置に単位時間当たりに送信する３次元オブジェクトデータの上限値を設定することで、３次元オブジェクトを輻輳状況に合わせて送信することは可能であるが、送信する３次元オブジェクトとその他の３次元オブジェクトとの隣接部分に関して考慮していないため、３次元オブジェクトの送信時に隣接部分を高速に表示することができない。
【００１５】
特許文献３では、人間等の動作を複数種類の動作データに分類して圧縮することでＣＧ動作データ容量を圧縮することは可能であるが、送信する３次元オブジェクトとその他の３次元オブジェクトとの隣接部分に関して考慮していないため、３次元オブジェクトの送信時に隣接部分を高速に表示することができない。
【００１６】
特許文献４では、情報処理環境を示す端末属性情報を取得して適切な精度の３次元オブジェクトデータに変換して送信することで情報処理環境に適した３次元オブジェクトを送信することは可能であるが、送信する３次元オブジェクトとその他の３次元オブジェクトとの隣接部分に関して考慮していないため、３次元オブジェクトの送信時に隣接部分を高速に表示することができない。
【００１７】
特許文献５では、ポリゴン表示の重要度をポリゴングループの面積・３次元オブジェクトのデータ特徴・視点位置情報等から指定して３次元オブジェクトを通信することで、通信経路の環境に応じて重要度順にポリゴン情報を送信することは可能であるが、重要度の決定要素に送信する３次元オブジェクトとその他の３次元オブジェクトとの隣接部分情報が考慮されていないため、３次元オブジェクトの送信時に隣接部分を高速に表示することができない。
【００１８】
特許文献６では、表示面積が大きいポリゴンから順々に送信して表示していくことで３次元オブジェクトの概観を高速に表示することは可能であるが、送信する３次元オブジェクトとその他の３次元オブジェクトとの隣接部分に関して考慮していないため、３次元オブジェクトの送信時に隣接部分を高速に表示することができない。
【００１９】
特許文献７では、クライアント端末の表示能力に見合った形状詳細度に簡約化し、簡約した３次元オブジェクトを送信することで、表示能力に適した３次元オブジェクトを送信可能であるが、送信する３次元オブジェクトとその他の３次元オブジェクトとの隣接部分に関して考慮していないため、３次元オブジェクトの送信時に隣接部分を高速に表示することができない。
【００２０】
特許文献８では、トリム曲面の構成制御点からバウンディングボックス用の新たな構成制御点を生成することで、トリム曲面データ同士の干渉チェックをより正確に実行可能であるが、３次元オブジェクトの通信処理に関して考慮されていないため、効率良く３次元オブジェクトを送信できない。
【００２１】
以上説明した特許文献に記載されているような３次元図面ではなく、２次元図面では、複雑な形状の製品であっても、データの受け渡しをほぼリアルタイムで実行できるため、遠隔地にいる設計者・製造者同士で意思疎通を円滑に行うことが可能である。
【００２２】
しかし、３次元オブジェクトを利用する３次元図面では、データの受け渡しに時間がかかるため、遠隔地にいる設計者・製造者同士で意思疎通を円滑に行うことができないという問題点がある。
【００２３】
例えば、商品展示等の用途で３次元オブジェクトを表示する場合、大まかな外観情報が高速に表示されるだけでも十分であるが、設計図面の用途で３次元オブジェクトを表示する場合には、３次元オブジェクト同士の接合状態等の情報が必要となるために、３次元オブジェクト同士の隣接部分を詳細に表示しなければならない。
【００２４】
しかしながら上記特許文献では隣接部分の表示に関して考慮されていないために、３次元オブジェクト同士の詳細な隣接部分の情報を高速に表示することができなかった。
【００２５】
本発明は、このような問題点に鑑み、送信先で３次元オブジェクトの隣接部分の情報を高速に表示することが可能な３次元オブジェクトのデータ送信方法、データ送信プログラム、データ送信装置、データ受信装置を提供することを目的とする。
【課題を解決するための手段】
【００２６】
上記課題を解決するために、本発明は、３次元オブジェクトを表示するためのデータを送信するデータ送信方法であって、第１の３次元オブジェクトに第２の３次元オブジェクトを追加する３次元オブジェクト追加段階と、前記第２の３次元オブジェクトデータを構成する構成要素に、前記３次元オブジェクトを分割する構成要素分割段階と、前記構成要素分割段階により分割された前記第２の３次元オブジェクトの構成要素のうち、前記第１の３次元オブジェクトに隣接する構成要素を判定する隣接部分判定段階と、前記第２の３次元オブジェクトの各構成要素に送信する順番を定めるための重要度を指定する重要度指定段階と、前記指定された重要度に基づき、前記第２の３次元オブジェクトの構成要素のデータを送信するデータ送信段階とを有することを特徴とする。
【００２７】
また、上記課題を解決するために、本発明は、前記隣接部分判定段階は、前記第２の３次元オブジェクトの外形をボックス形状にしたバウンディングボックスを作成するバウンディングボックス作成段階と、前記バウンディングボックスの頂点と前記第１の３次元オブジェクトとの距離を算出する第１の距離算出段階と、前記第１の距離算出段階で算出された距離の中で、相対的に短い距離が算出された複数の頂点を検出する頂点検出段階と、前記頂点検出段階で検出された頂点で定まる図形と前記各構成要素までの距離を算出する第２の距離算出段階と、前記第２の距離算出段階で算出された距離の中で、短い距離が算出された構成要素を隣接部分と判定する短距離判定段階とを有することを特徴とする。
【００２８】
また、上記課題を解決するために、本発明は、前記隣接部分判定段階は、前記第２の３次元オブジェクトの外形をボックス形状にしたバウンディングボックスを作成するバウンディングボックス作成段階と、前記バウンディングボックスへのユーザの加筆処理を検出する加筆処理検出段階と、前記ユーザが加筆した位置から隣接部分を判定する加筆位置隣接部分判定段階とを有することを特徴とする。
【００２９】
また、上記課題を解決するために、本発明は、前記隣接部分判定段階は、前記第１の３次元オブジェクトの重心位置を算出する第１の重心位置算出段階と、前記第２の３次元オブジェクトの重心位置を算出する第２の重心位置算出段階と、前記第１、第２の重心位置算出段階で算出された重心位置から直線を作成する直線作成段階と、前記第２の３次元オブジェクトの構成要素と前記直線とが接する構成要素を検出する構成要素検出段階と、前記検出された構成要素の近傍にある構成要素群を隣接部分と判定する近傍判定段階とを有することを特徴とする。
【００３０】
また、上記課題を解決するために、本発明は、前記隣接部分判定段階は、前記第２の３次元オブジェクト表示するためのデータと関連付けられた隣接部位置情報を取得する隣接部位置情報取得段階と、前記隣接部位置情報から隣接部分を判定する隣接部位置情報判定段階とを有することを特徴とする。
【００３１】
また、上記課題を解決するために、本発明は、前記重要度指定段階は、前記構成要素の表示面積を算出する表示面積算出段階と、前記表示面積算出段階で算出された表示面積が閾値以上である構成要素の重要度を指定する第１の重要度指定段階とを有することを特徴とする。
【００３２】
また、上記課題を解決するために、本発明は、前記重要度指定段階は、前記第２の距離算出段階で算出された各構成要素の距離を取得する距離情報取得段階と、取得した距離重要度を指定する第２の重要度指定段階とを有することを特徴とする。
【００３３】
また、上記課題を解決するために、本発明は、前記構成要素が送信されるネットワークの通信環境情報を取得する通信環境情報取得段階をさらに有することを特徴とする。
【００３４】
また、上記課題を解決するために、本発明は、３次元のオブジェクトを表示するためのデータを送信するデータ送信装置であって、第１の３次元オブジェクトに第２の３次元オブジェクトを追加する３次元オブジェクト追加手段と、前記３次元オブジェクトを構成する構成要素に、前記３次元オブジェクトを分割する構成要素分割手段と、前記構成要素分割手段により分割された前記第２の３次元オブジェクトの構成要素のうち、前記第１の３次元オブジェクトデータに隣接する構成要素を判定する隣接部分判定手段と、前記第２の３次元オブジェクトデータの各構成要素に、送信する順番を定めるための重要度を指定する重要度指定手段と、前記指定された重要度に基づき、前記第２の３次元オブジェクトの構成要素のデータを送信するデータ送信手段とを有することを特徴とする。
【００３５】
また、上記課題を解決するために、本発明は、前記構成要素が送信されるネットワークの通信環境情報を取得する通信環境情報取得手段をさらに有することを特徴とする。
【００３６】
また、上記課題を解決するために、本発明は、３次元のオブジェクトを表示するためのデータを受信するデータ受信装置であって、前記３次元オブジェクトを構成する構成要素のデータを受信するデータ受信手段と、受信したデータにより前記構成要素を表示する３次元オブジェクト表示手段とを有することを特徴とする。
【発明の効果】
【００３７】
本発明は以上説明したように、送信先で３次元オブジェクトの隣接部分の情報を高速に表示することが可能な３次元オブジェクトのデータ送信方法、データ送信プログラム、データ送信装置、データ受信装置を提供することができる。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照し、本発明の実施形態について説明する。この実施の形態において、後述するコンピュータがデータ送信装置、データ受信装置に対応する。
【００３９】
３次元オブジェクトを用いた設計図面の情報伝達をするために利用する通信処理システム構成の一例を図１に示す。図１には２台のコンピュータＡ１０と、コンピュータＢ１１と、それらを接続するネットワーク１２とが示されている。コンピュータＡ１０は、３Ｄデータ１３を有し、コンピュータＢ１１は３Ｄデータ１４を有する。
【００４０】
図１には、さらに、コンピュータＡ１０が表示する画面１５と、コンピュータＢ１１が表示される画面１６も示されている。これら画面１５と画面１６に示されているものは、３次元オブジェクトである。
【００４１】
表示される３次元オブジェクトのデータは、記録媒体上の３Ｄデータ１３、１４に保存されている。これにより、コンピュータＡ１０とコンピュータＢ１１において、画面の視点又は３次元オブジェクトの移動等を実行して設計図面の情報伝達する場合、コンピュータＡ１０とコンピュータＢ１１は、視点又は３次元オブジェクトの移動情報を送受信するだけで、３Ｄデータ１３、１４に保存された３次元オブジェクトのデータを利用して視点又は３次元オブジェクトの移動処理を実行できる。
【００４２】
このように、少量のデータ量を送受信するだけで視点又は３次元オブジェクトの移動処理が実行できるので、コンピュータＡ１０とコンピュータＢ１１との間の通信経路における情報伝達速度が低速であっても、設計図面の情報伝達は容易に実行できる。
【００４３】
しかし、新たな部品等を設計図面に追加する場合には、一方のコンピュータにしか部品の３次元オブジェクトデータが保存されていないので、他方のコンピュータへ追加した３次元オブジェクトデータを送信しなければならない。
【００４４】
また、設計図面等では、以前にあった３次元オブジェクトと追加した３次元オブジェクトとの隣接部分の状態表示が大切となる。そのため、送信するコンピュータは、追加した３次元オブジェクトのデータを送信して、受信するコンピュータは、隣接部分を高速に表示することが必要となる。
【００４５】
以下、コンピュータで行われる処理の詳細について説明するが、その説明に先立ち、コンピュータのハードウェア構成について、図２を用いて説明する。図２は、コンピュータのハードウェア構成を示す図である。
【００４６】
図２には、ＣＰＵ(central processing unit)２０１と、ＳＤＲＡＭ（Synchronous DRAM）２０２と、ＨＤＤ(hard disk drive)２０３と、入力Ｉ／Ｆ（Interface）２０４と、表示Ｉ／Ｆ２０６と、ディスプレイ２０９と、記録装置２０７と、外部Ｉ／Ｆ２０８とが示されている。
【００４７】
ＣＰＵ２０１は、後述するカプセル化ファイルの動作プログラムファイルを読み込んで各種の制御及び処理を行う。ＳＤＲＡＭ２０２は、ＣＰＵ２０１の作業領域として利用されるとともに、本実施の形態における動作処理を実行するための複数の動作プログラムや、その他制御プログラムなどの固定情報の記録領域として利用される。ＨＤＤ２０３は、プログラムや３Ｄデータが格納される。入力Ｉ／Ｆ２０４は、マウス等のポインティングデバイス、キーボード、ボタン等の入力インタフェースである。表示Ｉ／Ｆ２０６は、ＣＲＴ（cathode ray tube）等のディスプレイ２０９のインタフェースである。記録装置２０７は、ＣＤ−ＲＷ (compact disk re-write-able)ドライブ等である。外部Ｉ／Ｆ２０８は、プリンタ等の外部機器やインターネット等の電気通信回線と有線又は無線接続するためのインタフェースである。
【００４８】
以上がコンピュータのハードウェア構成となっている。次に、カプセル化ファイルについて、図３を用いて説明する。カプセル化ファイルとは、画面上に表示する３次元オブジェクトのデータの送信や表示を行うプログラム等の動作処理プログラムが単一ファイルにカプセル化されているカプセル化ファイル形式のファイルである。
【００４９】
このようなカプセル化ファイル形式では、３次元オブジェクトのデータに対する動作処理を実行する動作プログラムが同一ファイル内に保存されているので、コンピュータ環境に依存せずに３次元オブジェクトを送受信したり表示することができる。カプセル化ファイル形式に関しては、特開２００３−１５９４１に詳細が記載されている。
【００５０】
カプセル化ファイルの詳細について説明する。図３に示されるように、カプセル化ファイル２０は、コンテンツファイル３０と動作プログラムファイル４０で構成される。
【００５１】
コンテンツファイル３０は、３次元オブジェクトデータ３１が保存されている。この３次元オブジェクトデータ３１としては、オブジェクトを構成する点群情報、ポリゴン情報、ポリゴン面上に貼り付けるテクスチャ情報、設計図面内にオブジェクトを配置する位置情報等が含まれる。必要に応じて、動画・静止画・音声・テキストデータなどを３次元オブジェクトデータ３１としてコンテンツファイルに追加しても良い。設計図面を表示する際には、コンテンツファイル内にある３次元オブジェクトデータを動作プログラムが表示処理をする。
【００５２】
動作プログラム４０は、３次元オブジェクト追加プログラム４１、構成要素分割プログラム４２、隣接部判定プログラム４３、重要度指定プログラム４４、３次元オブジェクト送信プログラム４５、３次元オブジェクト受信プログラム４６、３次元オブジェクト表示プログラム４７を含むように構成されている。
【００５３】
また、図に示されるように、通信環境情報取得プログラム４８を加えても良い。さらに３次元オブジェクト以外のデータ（動画・静止画等）を表示するプログラムを追加しても良い。
【００５４】
３次元オブジェクト追加プログラム４１は、カプセル化ファイル２０の外部にある３次元オブジェクトデータをカプセル化ファイル内に追加するプログラムである。この３次元オブジェクト追加プログラム４１の動作については後に説明する。
【００５５】
構成要素分割プログラム４２は、３次元オブジェクトを構成要素単位に分割するプログラムである。一つの３次元オブジェクトは複数の点群情報又はポリゴン情報から構成されているため、構成要素単位に分割することは容易にできる。
【００５６】
隣接部判定プログラム４３は、３次元オブジェクト追加プログラム４１によって追加された３次元オブジェクトと、以前からカプセル化ファイル内に保存され画面上に表示されている３次元オブジェクトとの隣接する部分を判定するプログラムである。隣接部判定方法の詳細に関しては後に記載する。
【００５７】
重要度指定プログラム４４は、隣接部判定プログラム４３によって判定された隣接部分結果を利用して３次元オブジェクトの構成要素の重要度を指定する。３次元オブジェクト送信プログラム４５は、重要度指定プログラム４４によって指定された重要度順に３次元オブジェクトの構成要素を送信する。
【００５８】
３次元オブジェクト受信プログラム４６は、送信された３次元オブジェクトの構成要素を受け取り、受信側の記録媒体に保存する。３次元オブジェクト表示プログラム４７は３次元オブジェクト受信プログラム４６により受信した３次元オブジェクトの構成要素から順々に描画していく。通信環境情報取得プログラム４８は、送信時に利用する通信回線の通信速度情報等の通信環境情報を取得する。
【００５９】
このようなカプセル化ファイル２０を複製するプログラムを実行させることによって簡単にカプセル化ファイルの作成を実現できる。また、上記の例におけるカプセル化ファイル２０は、コンテンツファイル３０と動作プログラムファイル４０が、一つのファイルにカプセル化された状態で配布されても、物理的に分割された状態で配布されても良い。
【００６０】
ただし、物理的に分割された状態でカプセル化ファイルを配布する場合には、コンテンツファイル３０の動作処理を実行する動作プログラムファイル４０との関連付けができるように、コンテンツファイル３０へ動作プログラムファイル４０の位置情報を追加するなどの工夫が必要となる。
【００６１】
上記カプセル化ファイル２０を使用することで、物理的に分割された状態でカプセル化ファイルを配布しても、３次元オブジェクトの送受信又は表示処理がコンピュータ環境に依存せずに実行できるカプセル化ファイルを提供できる。
【００６２】
上述した３次元オブジェクト追加プログラム４１は、３次元オブジェクト追加手段に対応する。構成要素分割プログラム４２は、構成要素分割手段に対応する。隣接部分判定プログラム４３は、隣接部分判定手段に対応する。重要度指定プログラム４４は、重要度指定手段に対応する。３次元オブジェクト送信プログラム４５は、データ送信手段に対応する。３次元オブジェクト受信プログラム４６は、データ受信手段に対応する。３次元オブジェクト表示プログラム４７は、３次元オブジェクト表示手段に対応する。通信環境情報取得プログラム４８は、通信環境情報取得手段に対応する。
【００６３】
次に、上記３次元オブジェクト追加プログラム４１の動作について、図４を用いて説明する。図４は、３次元オブジェクト追加プログラム４１が３次元オブジェクトデータを追加する様子を示す図である。
【００６４】
図４は、カプセル化ファイル２０へ外部の３次元オブジェクトファイル３２内にある３次元オブジェクトデータＣ３３を追加する様子を示すものである。この外部の３次元オブジェクトファイルを、以下の説明では外部ファイルと記すことにする。
【００６５】
カプセル化ファイル２０には、２つの３次元オブジェクトデータＡ、Ｂを有するコンテンツファイル３０が示されている。このコンテンツファイル３０に、３次元オブジェクトデータＣ３３が追加される。
【００６６】
３次元オブジェクト追加プログラム４１は、３次元オブジェクトデータＣ３３を追加することにより、コンテンツファイル３０を、コンテンツファイル３４に示されるような３つの３次元オブジェクトＡ、Ｂ、Ｃからなるコンテンツファイルとする。
【００６７】
カプセル化ファイル２０と３次元オブジェクトファイル３２が同一のコンピュータ内に保存されていれば、追加処理をほぼリアルタイムで実行可能である。これより、３次元オブジェクト追加プログラムによって、同一のコンピュータ内にある外部ファイルの３次元オブジェクトデータをカプセル化ファイルに追加できる。
【００６８】
以上のように、コンテンツファイルを表示する表示プログラムを一つのカプセルかファイルにカプセル化することによって、カプセル化ファイルのユーザはコンピュータ環境に依存せずコンテンツファイルを閲覧できるようになる。
【００６９】
上記処理では、コンテンツファイルと動作プログラムファイルを単一ファイルにカプセル化した例が記載されているが、この処理は、カプセル化ファイル構造のみに限定するものではなく、全てのファイルが分割された状態で提供されるものであっても良い。
【００７０】
次に、３次元オブジェクトデータが追加されたカプセル化ファイルを、コンピュータＢ１１からコンピュータＡ１０に送信する処理について、図５を用いて説明する。
【００７１】
ステップＳ１０１で、コンピュータＢ１１の３次元オブジェクト追加プログラム４１は、カプセル化ファイルへ３次元オブジェクトデータを追加する。ステップＳ１０２で、構成要素分割プログラム４２は、追加した３次元オブジェクトデータを構成要素である複数のポリゴンに分割する。ステップＳ１０３で、隣接部分判定プログラムは、以前からカプセル化ファイル内に保存され、設計図面内に表示されている３次元オブジェクトと追加したオブジェクトとの隣接部分を判定する。隣接部分の判定方法に関しては後述する。
【００７２】
ステップＳ１０４で、重要度指定プログラム４４は、隣接部分の判定結果から３次元オブジェクトの構成要素の重要度を指定する。重要度を指定方法に関しては後述する。ステップＳ１０５で、通信環境情報取得プログラム４８は、必要に応じて３次元オブジェクトを送信する通信経路の通信環境情報を取得する。
【００７３】
ステップＳ１０６で、３次元オブジェクト送信プログラム４５は、重要度順に３次元オブジェクトの構成要素を逐次的に送信する。この際に、取得した通信環境情報から３次元オブジェクトデータを単位時間当たりに送信するデータ量の上限値を設定して送信しても良い。
【００７４】
また、カプセル化ファイルへ外部ファイルの３次元オブジェクトを追加した際に、追加した３次元オブジェクトをコンピュータＡ１０の画面上に表示することもできるが、送信し終わった３次元オブジェクトの構成要素から順々にコンピュータＡ１０の画面上に表示することで、コンピュータＢ１１の画面上に追加した３次元オブジェクトが表示されるタイミングとほぼ同時にコンピュータＡ１０の画面上に３次元オブジェクトを表示することも可能となる。以上のフローで３次元オブジェクトの送信処理が行われる。
【００７５】
なお、上記フローチャートでの、ステップＳ１０１は、３次元オブジェクト追加段階に対応する。ステップＳ１０２は、構成要素分割段階に対応する。ステップＳ１０３は、隣接部分判定段階に対応する。ステップＳ１０４は、重要度指定段階に対応する。ステップＳ１０５は、通信環境情報取得段階に対応する。ステップＳ１０６は、データ送信段階に対応する。
【００７６】
次に、受信するコンピュータＡ１０の処理を、図６を用いて説明する。ステップＳ２０１で、３次元オブジェクト受信プログラム４６は、重要度順に送信された３次元オブジェクトの構成要素を受信する。
【００７７】
ステップＳ２０２で、コンピュータＡ１０は、受信した３次元オブジェクトの構成要素をカプセル化ファイルに逐次的に保存していく。ステップＳ２０３で、３次元オブジェクト表示プログラム４７は、カプセル化ファイル内に保存された順に画面上に表示していく。この表示処理は、３次元オブジェクトの構成要素が保存される度に実行しても良いし、構成要素数が例えば１０個以上保存されたら表示処理を実行するように、構成要素がある程度保存されてから表示処理を実行しても良い。
【００７８】
以上の処理により、隣接部分にある３次元オブジェクトの構成要素を選択的に送信し、送信先で隣接部分の情報を高速に表示することが可能な３次元オブジェクトの送受信方法を提供すること可能である。
【００７９】
次に、追加された３次元オブジェクトと予めカプセル化ファイル内に保持されている設計図面内の３次元オブジェクトとの隣接部分を判定する判定処理を、図７のフローチャートを用いて説明する。
【００８０】
この処理は、追加される３次元オブジェクトの後述するバウンディングボックスから設計図面内の３次元オブジェクトとの距離を算出することで隣接部分を判定する処理である。
【００８１】
ステップＳ３０１では、追加した３次元オブジェクトのバウンディングボックスが作成される。ここでバウンディングボックスとは、３次元オブジェクトの外形をボックス形状にしたものである。バウンディングボックスの例を、図８を用いて説明する。
【００８２】
図８には、画面５０と、３次元オブジェクト５２と、追加した３次元オブジェクトとの外形をボックス形状にしたバウンディングボックス５１とが示されている。このバウンディングボックス５１に示されるように、バウンディングボックスは、３次元オブジェクトの外形をボックス形状にしたものである。
【００８３】
フローチャートの説明に戻る。ステップＳ３０２で、隣接部分判定プログラム４３は、追加した３次元オブジェクトのバウンディングボックスから設計図面内の３次元オブジェクトまでの距離を算出する。この距離の算出方法について、図９を用いて説明する。
【００８４】
図９には、画面５０と、３次元オブジェクト５２と、バウンディングボックス５１と、点５３、５４、５５とが示されている。点５３、５４は、バウンディングボックス５１の頂点である。点５５は、３次元オブジェクト５２上の点である。
【００８５】
隣接部分判定プログラム４３は、バウンディングボックス５１の頂点から、球を描いて、設計図面内の３次元オブジェクトと交差する位置を検出し、検出位置から頂点位置までの距離を算出する。
【００８６】
通常、バウンディングボックスの形状は、直方体であるので頂点数が八個となる。フローチャートのステップＳ３０３で、隣接部分判定プログラム４３は、八個の頂点からの距離の中で、相対的に短い距離である距離が１番目に短い頂点と２番目に短い頂点を検出する。図９の場合、１番目に短くなる頂点は、点５３であり、２番目に短くなる点は、点５４である。
【００８７】
ステップＳ３０４で、隣接部分判定プログラム４３は、ステップＳ３０３で検出された頂点から直線を作成する。なお、ステップＳ３０３とステップＳ３０４では、隣接部分判定プログラム４３は、３番目に短い距離となる点も検出し、３点が作る平面を作成しても良い。
【００８８】
ステップＳ３０５で、隣接部分判定プログラム４３は、ステップＳ３０４で作成した直線又は平面から３次元オブジェクトの構成要素までの距離を算出する。ステップＳ３０６で、隣接部分判定プログラム４３は、ステップＳ３０５で算出した距離の短い３次元オブジェクトの構成要素を隣接部分と判定する。以上の処理を実行することで、３次元オブジェクトの隣接部分を判定することが可能である。
【００８９】
上述したフローチャートにおいて、ステップＳ３０１は、バウンディングボックス作成段階に対応する。ステップＳ３０２は、第１の距離算出段階に対応する。ステップＳ３０３は、頂点検出段階に対応する。ステップＳ３０５は、第２の距離算出段階に対応する。ステップＳ３０６は、短距離判定段階に対応する。
【００９０】
次に、隣接部分の判定結果から３次元オブジェクトの構成要素の重要度を指定する指定処理フローチャートを、図１０を用いて説明する。重要度の指定処理は、バウンディングボックスの頂点から作成された直線又は平面から３次元オブジェクトの構成要素までの距離に依存して重要度が指定される。
【００９１】
ステップＳ４０１で、重要度指定プログラム４４は、隣接部判定プログラムにより算出した３次元オブジェクトの構成要素までの距離情報を取得する。ステップＳ４０２で、重要度指定プログラム４４は、３次元オブジェクトの構成要素の表示面積を算出する。
【００９２】
ステップＳ４０３で、重要度指定プログラム４４は、構成要素の表示面積の閾値を任意に設定し、閾値以上の表示面積を持つ構成要素に高い重要度を指定する。閾値の設定方法としては、構成要素数の１０％が閾値以上の表示面積を持つように設定しても良いし、３次元オブジェクトの全体表示面積の１／１００に設定しても良い。
【００９３】
ステップＳ４０４で、重要度指定プログラム４４は、閾値以下の表示面積を持つ構成要素の距離情報から重要度を指定する。ここでは、構成要素の重要度は距離の短い順に高い重要度が指定される。
【００９４】
上述したフローチャートにおいて、ステップＳ４０１は、距離情報取得段階に対応する。ステップＳ４０２は、表示面積算出段階に対応する。ステップＳ４０３は、第１の重要度指定段階に対応する。ステップＳ４０４は、第２の重要度指定段階に対応する。
【００９５】
図１１に構成要素の重要度指定結果の一例を示す。図１１には、重要度を示す矢印と、閾値以上の表示面積を持つ構成要素６１と、隣接部分の構成要素６２と、表示面積が小さく隣接部分以外の構成要素６３とが示されている。図１１の場合、この順に重要度が低くなる。
【００９６】
以上の重要度の指定処理を実行することで、隣接部分の表示だけではなく、３次元オブジェクトの大まかな外観形状も高速に表示させることが可能となる。
【００９７】
次に、隣接部分をユーザの加筆情報から判定する場合の実施例について説明する。このユーザの加筆情報を、図１２を用いて説明する。
【００９８】
図１２には、画面５０と３次元オブジェクト５２と、バウンディングボックス５１と、加筆情報５６とが示されている。この加筆情報５６は、例えばユーザがマウスをドラッグするなどして描かれたものである。
【００９９】
この場合での隣接部分の判定処理を、図１３のフローチャートを用いて説明する。ステップＳ５０１で、隣接部分判定プログラム４３は、追加した３次元オブジェクトのバウンディングボックスを作成し画面上に表示する（図８参照）。
【０１００】
ステップＳ５０２で、隣接部分判定プログラム４３は、ユーザによってバウンディングボックス上に加筆された加筆情報の位置情報を検出する。ステップＳ５０３で、隣接部分判定プログラム４３は、加筆された領域内にある３次元オブジェクトの構成要素を隣接部分と判定する。
【０１０１】
以上の処理を実行することで、ユーザ加筆情報を取得することにより３次元オブジェクトの隣接部分を正確に判定することが可能となる。
【０１０２】
上述したフローチャートにおいて、ステップＳ５０１は、バウンディングボックス作成段階に対応する。ステップＳ５０２は、加筆処理検出段階に対応する。ステップＳ５０３は、加筆位置隣接部分判定段階に対応する。
【０１０３】
次に、３次元オブジェクトの重心位置を用いた隣接部分の判定について説明する。図１４は、重心を用いて隣接部分を検出する様子を示す図である。図１４には、画面５０と、３次元オブジェクト５２と、重心５７と、重心５８と、接点５９とが示されている。重心５７は、３次元オブジェクト５２の重心である。重心５８は、追加した３次元オブジェクトの重心である。接点５９は、重心５７と重心５８とを通る直線と、追加した３次元オブジェクトとの接点である。
【０１０４】
この接点となった部分が隣接部分と判定される。この処理を、図１５のフローチャートを用いて説明する。
【０１０５】
ステップＳ６０１で、隣接部分判定プログラム４３は、設計図面内の３次元オブジェクトの重心位置を算出する。ステップＳ６０２で、隣接部分判定プログラム４３は、追加した３次元オブジェクトの重心位置を算出する。ステップＳ６０３で、隣接部分判定プログラム４３は、ステップＳ６０１とステップＳ６０２で算出した重心位置を結ぶ直線を作成する。
【０１０６】
ステップＳ６０４で、隣接部分判定プログラム４３は、ステップＳ６０３で作成した直線と追加した３次元オブジェクトが接する位置にある構成要素を検出する。ステップＳ６０５で、隣接部分判定プログラム４３は、ステップＳ６０４で検出した構成要素の近くにある３次元オブジェクトの構成要素群を隣接部分と判定する。
【０１０７】
なお、ステップＳ６０１、６０２では、３次元オブジェクトの重心位置を算出しているが、予め３次元オブジェクトのデータ内に重心位置を保存しておき、その情報を利用しても良い。以上の処理を実行することで、隣接部分の判定処理を高速に実行することが可能となる。
【０１０８】
上述したフローチャートにおいて、ステップＳ６０１は、第１の重心位置算出段階に対応する。ステップＳ６０２は、第２の重心位置算出段階に対応する。ステップＳ６０３は、直線作成段階に対応する。ステップＳ６０４は、構成要素検出段階に対応する。ステップＳ６０５は、近傍判定段階に対応する。
【０１０９】
次に、図３で説明したカプセル化ファイルとは異なる形式のカプセル化ファイルについて説明する。図１６に示されるカプセル化ファイル２０は、図３で説明したカプセル化ファイルと比較して、コンテンツファイル３０の構成が異なる。
【０１１０】
図１６で示されるコンテンツファイル３０は、新たに隣接部位情報７１を含む構成となっている。この隣接部位置情報とは３次元オブジェクトの接合部分を指し示す情報である。この隣接部位置情報は、通常、設計図面等で使用される部品では、接合部分が予め決定されていることが多いために導入されたものである。
【０１１１】
接合部分が予め決定されている部品の例を、図１７を用いて説明する。図１７は、ネジ８０を示すものである。ネジ８０の接合部分７２に示されるように、一般的にネジは接合部分が予め決定されている。そのように、予め決定されている場合、接合部分を隣接位置とみなすことができる。
【０１１２】
なお、この隣接部位置情報は、外部ファイルの３次元オブジェクトデータにも当然に保持されている。
【０１１３】
この隣接部位置情報がコンテンツファイル３０に含まれる場合に隣接部分を判定する処理を、図１８のフローチャートを用いて説明する。
【０１１４】
ステップＳ７０１で、隣接部分判定プログラム４３は、追加した３次元オブジェクトデータから隣接部位置情報を取得する。ステップＳ７０２で、隣接部分判定プログラム４３は、ステップＳ７０１で取得した隣接部位置情報を参照して、隣接部分となる３次元オブジェクトの構成要素を判定する。以上の処理を実行することで、予め保持されている３次元オブジェクトの隣接部位置情報を利用して、３次元オブジェクト同士の隣接部分を正確に判定することが可能となる。
【０１１５】
上述した処理において、ステップＳ７０１は、隣接部位置情報取得段階に対応し、ステップＳ７０２は、隣接部位置情報判定段階に対応する。
【図面の簡単な説明】
【０１１６】
【図１】本実施の形態に係るシステム構成を示す図である。
【図２】コンピュータのハードウェア構成図である。
【図３】カプセル化ファイル構造を示す図である。
【図４】３次元オブジェクトデータを追加する様子を示す図である。
【図５】送信処理を示すフローチャートである。
【図６】受信処理を示すフローチャートである。
【図７】判定処理を示すフローチャートである。
【図８】バウンディングボックスを示す図である。
【図９】距離を算出する様子を示す図である。
【図１０】重要度を指定する処理を示すフローチャートである。
【図１１】重要度を示す図である。
【図１２】加筆情報を示す図である。
【図１３】判定処理を示すフローチャートである。
【図１４】判定処理を示すフローチャートである。
【図１５】重心を用いて隣接部分を検出する様子を示す図である。
【図１６】カプセル化ファイル構造を示す図である。
【図１７】３次元オブジェクトを示す図である。
【図１８】判定処理を示すフローチャートである。
【符号の説明】
【０１１７】
１０  コンピュータＡ
１１  コンピュータＢ
１２  ネットワーク
１３、１４  ３Ｄデータ
１５、１６、５０  画面
２０  カプセル化ファイル
３０、３４  コンテンツファイル
３１  ３次元オブジェクトデータ
３２  ３次元オブジェクトファイル
３３  ３次元オブジェクトデータＣ
４０  動作プログラムファイル
４１  ３次元オブジェクト追加プログラム
４２  構成要素分割プログラム
４３  隣接部判定プログラム
４４  重要度指定プログラム
４５  ３次元オブジェクト送信プログラム
４６  ３次元オブジェクト受信プログラム
４７  ３次元オブジェクト表示プログラム
４８  通信環境情報取得プログラム
５１  バウンディングボックス
５２  ３次元オブジェクト
５３、５４、５５  点
５６  加筆情報
５７、５８  重心
５９  接点
６１  閾値以上の表示面積を持つ構成要素
６２  隣接部分の構成要素
６３  表示面積が小さく隣接部分以外の構成要素
７１  隣接部位置情報
７２  接合部分
８０  ネジ
【図１】
2006059021.tif 000003
【図２】
2006059021.tif 000004
【図３】
2006059021.tif 000005
【図４】
2006059021.tif 000006
【図５】
2006059021.tif 000007
【図６】
2006059021.tif 000008
【図７】
2006059021.tif 000009
【図８】
2006059021.tif 000010
【図９】
2006059021.tif 000011
【図１０】
2006059021.tif 000012
【図１１】
2006059021.tif 000013
【図１２】
2006059021.tif 000014
【図１３】
2006059021.tif 000015
【図１４】
2006059021.tif 000016
【図１５】
2006059021.tif 000017
【図１６】
2006059021.tif 000018
【図１７】
2006059021.tif 000019
【図１８】
2006059021.tif 000020