JP2002269588A - 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置 - Google Patents

3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置

Info

Publication number
JP2002269588A
JP2002269588A JP2001068116A JP2001068116A JP2002269588A JP 2002269588 A JP2002269588 A JP 2002269588A JP 2001068116 A JP2001068116 A JP 2001068116A JP 2001068116 A JP2001068116 A JP 2001068116A JP 2002269588 A JP2002269588 A JP 2002269588A
Authority
JP
Japan
Prior art keywords
bsp
division
tree
processing step
dimensional display
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.)
Withdrawn
Application number
JP2001068116A
Other languages
English (en)
Inventor
Yasuhiro Watanabe
泰弘 渡▼辺▲
Hiroyuki Yasuga
広幸 安賀
Kayoko Sakai
香代子 酒井
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2001068116A priority Critical patent/JP2002269588A/ja
Publication of JP2002269588A publication Critical patent/JP2002269588A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】VRMLデータのような3次元グラフィックス
データに付加された情報や当該データの特性を利用して
改良したBSP木のアルゴリズムを採用した3次元表示
プログラムおよび3次元表示装置を提供する。 【解決手段】3次元表示プログラムは、3次元空間内の
複数のオブジェクトo1〜o6をバイナリ空間分割(B
SP)アルゴリズムにより分割することによりオブジェ
クトのBSP木を構築し、与えられた視点および視体積
に対して、BSP木に基づいて、描画および衝突の判定
の対象となるオブジェクトを抽出し、抽出されたオブジ
ェクトの描画を行う。その際、木構築処理において、分
割の対象となるオブジェクトの分割の単位を、表示対象
のキャラクタ等を内包する直方体の境界ボックス単位と
するとともに、当該分割の方向を、予め定めた複数の方
向の中から選択する。シーン内のオブジェクト(例えば
o3)が移動しても前記BSP木の再構築を行わない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ装置
における3次元画像を表示する3次元表示プログラム、
3次元表示方法、3次元表示プログラム格納媒体および
3次元表示装置に関する。
【0002】
【従来の技術】従来、3次元のシーンを表すグラフィッ
クスデータを記述する言語として、VRML(Virtual R
eality Modeling Language)が知られている。これは、
3次元座標値や幾何学的データ等を記述したテキストフ
ァイルの書式を定めたものである。このVRMLで記述
されたデータを解釈して表示データを構成するソフトウ
エア(コンピュータプログラム)がVRMLブラウザで
ある。VRMLおよびVRMLブラウザについては、Ro
dger Lea、松田晃一、宮下健著,松田晃一、宮下健訳;
JAVA(商標)+VRML JavaとVRML2.
0で作るインタラクティブ3Dワールド,株式会社プレ
ンティスホール出版に詳細に記載されている。
【0003】本発明が対象とするVRMLブラウザは、
動的な3次元のシーンをリアルタイムに表示可能なブラ
ウザである。このブラウザでは、表示された3D(3次
元)CGの中をユーザは動き回ることができ、3Dオブ
ジェクト(例えば、家〉に衝突することが出来る。
【0004】ブラウザでは、アプリケーションの特徴
上、描画(レンダリングを含む)と衝突判定処理が特に
計算量の多い処理であり、処理時間の大半を占めてい
る。これらの処理の計算量は基本的に3Dシーン内の3
Dオブジェクト数に比例するが、実際に計算処理を行う
必要があるのは、レンダリングであれば視野内あるいは
衝突判定処理であれば視点周辺の3Dオブジェクトに限
られており、これらは3Dシーン内のごく一部である。
このため、いかに少ない処理時間で処理対象の3Dオブ
ジェクトを抽出できるかが重要な問題である。
【0005】このような描画や衝突判定の対象となるオ
ブジェクトを、シーン全体のオブジェクトから抽出する
のに、BSP木(Binary Space Partitioning tree)を
用いたアルゴリズムがよく知られている。BSP木につ
いては、M.ドバーグ,M.ファン.クリベルト,M.
オーパマーズ,O.シェワルツコフ共著,浅野哲夫訳;
コンピュータ・ジオメトリ計算幾何学:アルゴリズムと
応用,近代科学社に記載されている。
【0006】
【発明が解決しようとする課題】しかし、BSP木を用
いたアルゴリズムを、動的なシーンを扱うVRMLブラ
ウザヘ適用することは困難であると考えられてきた。そ
の理由は、空間分割された3次元空間内でオブジェクト
が移動してしまうと、一度構築したBSP木を再構築す
る必要が生じるが、このBSP木を生成する際に空間分
割を行う分割面を決定するまでの計算量が多く、リアル
タイムにBSP木の再構築を繰り返すのは困難であるか
らである。
【0007】また、従来の技術として、米国特許第6,08
8,035号に記載のように、複数の静的/動的なオブジェ
クトが混合した3次元シーンのレンダリングにBSP木
を用いたものがある。この技術は、動的なオブジェクト
の動きが予めわかっていた上でのレンダリングの高速化
を目指したものである。しかし、これでは汎用で動的な
シーンに活用することは出来ない。
【0008】そこで本発明は、VRMLデータのような
3次元グラフィックスデータに付加された情報や当該デ
ータの特性を利用して改良したBSP木のアルゴリズム
を採用した3次元表示プログラム、3次元表示方法、3
次元表示プログラム格納媒体および3次元表示装置を提
供することにある。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明による3次元表示プログラムおよび方法は、
3次元グラフィックスデータ記述言語を解釈して表示デ
ータを構成する3次元表示プログラムであって、3次元
空間内の複数のオブジェクトをバイナリ空間分割(BS
P)アルゴリズムにより分割することによりオブジェク
トのBSP木を構築する木構築処理ステップと、与えら
れた視点および視体積に対して、前記求められたBSP
木に基づいて、描画および衝突の判定の対象となるオブ
ジェクトを抽出する抽出処理ステップと、抽出されたオ
ブジェクトの描画を行う描画処理ステップとを備え、前
記木構築処理ステップにおいて、分割の対象となるオブ
ジェクトの分割の単位を、表示対象のキャラクタ等を内
包する直方体の境界ボックス単位とするとともに、当該
分割の方向を、予め定めた複数の方向の中から選択し、
シーン内のオブジェクトが移動しても前記BSP木の再
構築を行わないことを特徴とする。
【0010】このように、BSPアルゴリズムの適用に
おいてオブジェクトの分割の単位を上記境界ボックス単
位とし、かつ、分割の方向も予め定めた複数の方向の中
から選択するようにする。これは、3次元グラフィック
スデータに付加された情報や当該データの特性を利用す
ることにより可能となる。これにより、必要な計算量を
大幅に削減することができる。よって、汎用で動的なシ
ーンに対応することができる。
【0011】好ましくは、シーン内のオブジェクトが移
動しても前記BSP木の再構築を行わないようにする。
これによって、BSP木の再構築に掛かる処理を省略
し、さらなる計算量の低減を図ることができる。
【0012】より具体的には、前記木構築処理ステップ
では、分割対象の複数のオブジェクトに対して、水平面
上に予め定めた複数の角度方向の射影軸を想定し、これ
らの射影軸の1または複数に対して分割対象のオブジェ
クトを射影し、射影されたオブジェクトの状態に基づい
て当該射影軸上に直交する複数の分割面候補に対して評
価値を求め、この評価値に基づいて前記分割面を決定す
ることができる。
【0013】前述のように境界ボックスを空間分割の単
位とすることにより、分割面上に存在するオブジェクト
が問題となるが、前記決定された分割面上にオブジェク
トが存在することを許容し、当該オブジェクトについて
は、前記視点および視体積の位置に関わらず描画および
衝突の判定の対象とする。これは、本発明が対象とする
アプリケーションでは、分割面上のオブジェクトをさら
に分割するよりは、それを常に描画および衝突の判定の
対象とする方が、処理負荷が軽減されるという判断に基
づく。
【0014】垂直方向に分散するオブジェクトについて
は、水平面に垂直な平面での分割に加えて、好ましく
は、水平面に平行な平面で分割を行う。本発明が対象と
するアプリケーションでは、この分割方法は分割面の決
定が容易であるとともに、分割面数も少なくて済む。
【0015】本発明による3次元表示装置は、3次元グ
ラフィックスデータ記述言語で記述されたデータファイ
ルを記憶する記憶手段と、前記3次元グラフィックスデ
ータを解釈して表示データを構成するブラウザ(3次元
表示プログラム)と、このブラウザにより構成された表
示データを表示する表示部とを備え、前記ブラウザは、
3次元空間内の複数のオブジェクトをバイナリ空間分割
(BSP)アルゴリズムにより分割することによりオブ
ジェクトのBSP木を構築する木構築処理ステップと、
与えられた視点および視体積に対して、前記求められた
BSP木に基づいて、描画および衝突の判定の対象とな
るオブジェクトを抽出する抽出処理ステップと、抽出さ
れたオブジェクトの描画を行う描画処理ステップとを備
え、前記木構築処理ステップにおいて、分割の対象とな
るオブジェクトの分割の単位を表示対象のキャラクタ等
を内包する直方体の境界ボックス単位とするとともに、
当該分割の方向を、予め定めた複数の方向の中から選択
することを特徴とする。また、本発明の3次元表示プロ
グラム格納媒体としては、例えばフロッピー(登録商
標)ディスク、CD−ROM(Compact Disc-Read Only
Memory)、DVD(Digital Versatile Disc)等のパ
ッケージメディアのみならず、3次元表示プログラムが
一時的もしくは永続的に格納される半導体メモリや磁気
ディスク等で実現してもよい。
【0016】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照して詳細に説明する。
【0017】まず、最初に本発明による3次元表示プロ
グラムとしてのブラウザの処理動作を理解するために、
前提となるBSPアルゴリズムについて簡単に説明す
る。以後の説明は図示を簡単にする為に、特に断らない
限り2次元を例として説明する
【0018】一般に、BSPアルゴリズムは、空間を再
帰的に2分割していき、最終的には分割された各領域内
のオブジェクトが1つになるまで分割を繰り返して行う
アルゴリズムである。また、空間を分割する際にオブジ
ェクトが分割面をまたぐような場合には、そのオブジェ
クトはそのオブジェクト上を通る分割面によって分割さ
れる。
【0019】図1は、BSPアルゴリズムによる空間分
割の例を示す。まず、分割線(実際には分割面)l1で
空間全体を2分割する。この例では空間内に6個のオブ
ジェクトo1〜o6が存在し、これらがo1〜o3と、
o4〜o6の二つのグループに分割される。次に、l1
よりも右の空間ではl2が空間を2分割し、l1よりも
左の空間ではl3が空間を2分割する。このような分割
を再帰的に行った結果、図2に示すような2分木のBS
P木が生成される。オブジェクトや分割線は、自己より
上位の分割線の左右のどちらに存在するかによってBS
P木全体の内部での位置が決まる。
【0020】分割面はBSP木の再構築が行われない限
り変わらないので、視点(View Point)や視体積(View
Volume)がBSP木のどの領域にまたがって存在して
いるかはBSP木をトラバースして得ることが出来る。
【0021】図3は、図1の空間における視点および視
体積を示している。図4は、この視点および視体積に対
応して抽出された、BSP木内のオブジェクトの領域を
示している。よって、これらの領域に属するオブジェク
トを描画対象のオブジェクトとすることにより、描画対
象のオブジェクトを全オブジェクト中の一部のオブジェ
クトに制限することが出来る。また、衝突判定対象のオ
ブジェクトを決定するには、視点から衝突判定に必要な
距離の領域がBSP木のどの領域かを調べ、得られた領
域に属するオブジェクトを衝突判定対象のオブジェクト
とすればよい。
【0022】前述したようにBSP木のアルゴリズムは
空間の分割が決まってしまえば、描画や衝突判定の対象
となるオブジェクトの抽出は、視点や視体積がBSP木
のどの位置にあるかで決定される。BSPを用いない場
合、n個のオブジェクトについての視体積のカリング
(culling:選別)の計算量はO(n)であるが、BSP
木のトラバースを行うことによって、計算量は最良の場
合にはO(log n)、最悪の場合でもO(n)となり、
BSPを用いた方が少ない計算量で処理が済む。
【0023】しかし、空間を分割する際の分割平面を決
定するのに多くの処理時間を要するという問題点があ
る。
【0024】また、VRMLブラウザのように動的なシ
ーンを扱う場合、シーン内のオブジェクトが分割線を越
えて移動するとBSP木を再構築する必要が生じる。そ
うすると、分割面の決定に多大な処理時間がかかるので
あれば、BSPアルゴリズムをそのままVRMLブラウ
ザに適用するのは困難となる。
【0025】実際に「QUAKE」(Michael Abrash;
Michael Abrash's GRAPHICS PROGRAMMING Black Book S
PECIAL EDITION, CoRIOLIS GROUP BOOKS)といったゲー
ムにBSPアルゴリズムは使用されているが、これらの
データは静的であり、それぞれのゲームに特化したもの
であるので、汎用的なデータを扱うVRMLブラウザと
は状況が異なる。また、分割面の計算はロード時ではな
く、あらかじめ時間を掛けて計算できるという点もVR
MLブラウザとは異なる。
【0026】BSP木のアルゴリズムをVRMLブラウ
ザに適用するために、本実施の形態では次のようにBS
Pアルゴリズムを改良することによりこれらの問題を解
決した。すなわち、既存のBSPアルゴリズムを以下3
点についてカスタマイズすることにした。 1.VRMLノードのbbox(後述)を空間分割の単
位とする。 2.BSPの分割面の方向を予め決めておく。 3.シーン内のオブジェクトが移動してもBSP木の再
構築を行わない。
【0027】以下それぞれの項目について説明する。
【0028】本実施の形態におけるブラウザが対象とし
ているシーンは、インターネット上の「PAW^2」
(松田晃一,上野比呂至,三宅貴浩;パーソナルエージ
ェント指向の仮想社会「PAW」の評価,電子情報通信
学会論文誌D-II,Vo1.J82-D-II,No.10,pp1675-1683,10,1
999)のような仮想社会、すなわち動くオブジェクト
(人、犬などのキャラクタ)と動かないオブジェクト
(地形や建物など)とから構成されているシーンであ
る。
【0029】このうちキャラクタの動きは、それを構成
するパーツ(関節など)のアニメーションと、キャラク
タ全体の位置の変化に分けて考えることが出来るが、こ
こでは図5のようにキャラクタ全体を囲む直方体の境界
ボックス(bounding Box:以下単にbboxと略す)の
概念を導入し、このbboxの動きについてのみ、注目
することにする。なぜなら、キャラクタを構成するパー
ツは、その可動範囲がおのずと限られており、アニメー
ションによってbboxの大きさが大きく変化すること
はないと考えられるからである。
【0030】一方、動かないオブジェクトは広く開けた
地形とその上に立つ建物が殆どである。地形には起伏が
あるものの、遠距離までに見通せる開けた地形であるた
め、屋内に比べて視界に入るオブジェクト数が多くなる
傾向にあり、可視オブジェクトの抽出は重要な問題とな
る。これらの地形や建物も含めてすべてのオブジェクト
についてもbboxが設定または算出される。
【0031】より具体的には、本実施の形態では、BS
Pのleafに属するオブジェクトを前記Quakeの
ようなポリゴン単位ではなく、VRMLのShape
(形状)ノードとした。Shapeノードは3Dオブジ
ェクトの形状を表すノードであり、幾何情報(geometr
y)と外観情報(appearance)だけを含んだノードであ
る。Shapeには複数のポリゴンが含まれており、こ
れによって定まるbboxが、BSP木による空間分割
の単位となる。すなわち、図6に示すように、キャラク
タのbbox単位に空間を分割する。よって、BSP木
を生成する際に扱うオブジェクト数は、分割の単位をポ
リゴンで行っていたときと比較すると減少し、計算量の
削減が図れる。またその一方で、もし必要であれば1S
hapeノードに1つのポリゴンしか含まれないように
記述することでより細かな分割も可能である。
【0032】また、たとえポリゴンの位置が変化すると
きでも、その位置変化がポリゴンが属するbbox内で
あればBSPツリー上のオブジェクトとしては移動しな
いことになり、通常のBSP分割と比較して計算量を削
減できる。
【0033】次に、「BSPの分割面の方向を決めてお
く」という第2の点について説明する。
【0034】BSPの分割を行う際に予めxz平面(地
上:水平面)に関する分割は8方向(45度間隔)と
し、y方向(高さ方向:垂直方向)に関する分割はxz
平面に平行な面でのみ分割を行うようにした。xz平面
に関する分割に関して、建物はxz平面上に碁盤の目状
に配置されているという、本実施の形態のブラウザがタ
ーゲットとするシーンの特性からこのように決定した。
このことから、分割の方向はある程度決められた方向で
分割しても分割面上にかかるオブジェクトが少ないと考
えられる。また、図7(b)に示すように、y軸方向の
分割に関して、建物はxz軸に沿って配置されているこ
と、図7(a)に示すように「動くオブジェクト」であ
る人や犬は地上(xz平面)を移動すること、からy方
向に関する分割はxz平面に平行な平面で分割しても大
きな問題になることはない。
【0035】次に、xz平面での分割の具体的な方法に
ついて説明する。xz平面での分割において、予め決め
られている分割面の方向を決定する際には以下のような
アルゴリズムを用いた。ここで、図8に示すように、分
割の際に空間を分割する対象となる全てのオブジェクト
を射影するxz平面上の直線を「射影軸」とし、この射
影軸に垂直に空間を分割する平面を「分割面」とする。
【0036】与えられた射影軸に対して、この射影軸に
垂直な平面が、どのオブジェクトも通過しない区間、1
個のオブジェクトを通過する区間、2個のオブジェクト
を通過する区間、・・・n個のオブジェクトを通過する
区間、のそれぞれが分割の候補区間となる。これらの各
候補区間について、そこに分割面を位置させるか否かの
判断指標としての評価値を求める。評価値の求め方の具
体例を図6により説明する。評価値は、各分割面位置の
候補区間に分割面をおいた場合にその分割面よりも左側
に存在するオブジェクトの数nl、右側に存在するオブ
ジェクトの数nr、およびその分割面上に存在するオブ
ジェクトの数ns、がそれぞれどのような値を取るかに
よって評価値を決める。このとき、評価値は概略次の条
件に基づいて決定する。 1.分割面上にオブジェクトがない区間の評価値は、分
割面上にオブジェクトがある区間の評価値よりも大き
い。 2.分割面の左右にあるオブジェクトが均等に二分割さ
れるようになる区間の評価値は大きい。
【0037】また、条件1と条件2との間では、評価値
が大きい方が優先される。さらに具体的な評価値の算出
方法の一例を次に示す。実際の評価値は以下の順で求め
られる。なお、nl+nr+ns=N(分割対象のオブ
ジェクトの個数)とする。 (1)ns=0の区間の評価値はnsの値が0以外であ
る区間の評価値よりも必ず大きい。 (2)ns=0の区間が複数あるときは以下の評価関数
f(nl,nr)の値の大きい方を採用する。 f(nl,nr)=(nl*nr)/N (3)ns=0の区間が無いときには以下の評価関数f
(nl,nr,ns)の値の大きいものを採用する。 f(nl,nr,ns)=(nl*nr)/(ns*
N)
【0038】このようにして、評価値の最も高い区間で
射影軸に直交する平面を分割面とする。図9の例におい
ては、ns=0の領域が複数あり、その最も高い評価
値”1.5”を有する区間の領域に直交する平面を分割
面としている。
【0039】ここでxz平面での8本の射影軸は図10
で表されるものである。このようにxz平面には8方向
の射影軸を用意しているが、「良い」分割面をどこまで
探しつづけるのかという問題がある。本実施の形態で
は、直前に選んだ射影軸となるべく直交するように図1
0のような順番をきめて、サイクリック(cyclic)に試
行する。その際に良い射影軸(ns=0となる区間を有
する)が見つかればそこで評価をやめ、その軸を分割軸
として採用する。その際、当該射影軸については、好ま
しくはns=0の区間が複数ある場合には、そのうち評
価値の最も高いものとする。
【0040】次に、分割面上のオブジェクトについて説
明する。
【0041】通常のBSPでは分割面上にあるオブジェ
クトは分割面によって、さらにそのオブジェクトの構成
要素のレベルで分割されることになる。しかし、本実施
の形態では、そのような分割は行わず、分割面上にある
オブジェクトとして処理することにした。これは、前述
したようにブラウザがターゲットとするシーンの特性で
ある、建物がxz平面上に碁盤の目状に配置されている
ということから、空間分割の際に予め決められた分割面
にかかるオブジェクトは少なく、その結果、分割面上に
オブジェクトを残すことにより生じるコストは、分割面
によってオブジェクトを分割するコストよりも低いと考
えられたことによる。よって、分割面上に存在するオブ
ジェクトは分割面で分割せず、そのようなオブジェクト
は「分割面に属するオブジェクト」としてBSPツリー
にもつことにした。その結果、本来のBSP木は完全二
分木である(図11)が、本実施の形態で得られるBS
P木は図12に示すようになる。このような不完全な二
分木に対応するために、本実施の形態では、分割面上に
あるオブジェクトについては視点や視体積がどこにあっ
ても常に描画や衝突判定の対象となるオブジェクトとし
た。
【0042】以上のことから、Quakeで行っている
ようなBSP木を平衡木にするためにポリゴンにまでも
分割してBSP木を生成する場合と比較して、本実施の
形態では計算量を大きく削減すること出来る。このよう
なアルゴリズムを用いて図1の空間をBSPで分割する
と図13に示すようになり、そのBSP木は図14に示
すようになる。
【0043】次に、「オブジェクトが移動してもBSP
木の再構築を行わない」という第3の点について説明す
る。各bboxのサイズが十分に小さく、オブジェクト
の空間的な位置の移動量も小さければ、オブジェクトは
BSP木での隣接する部分空間に移動する程度であり、
BSP木の平衡性が大きく崩れることはない。また、移
動するオブジェクトの数は対象とするシーンの特性上か
ら移動しないオブジェクトの数と比較してもごく小さい
値となる。したがって、移動するオブジェクトが空間内
のある場所に集中した結果、BSP木内で1つのlea
fに存在することになったとしても、BSP木の平衡性
が大きく崩れることもない。このような場合、BSP木
の再生成を行うのは過剰な処理であり、分割面の位置は
そのままで、BSPでの空間分割での各部分空間に所属
するbboxのBSP木内での位置のみを更新すればよ
いと考えられる。図15、図16は分割面を越えてオブ
ジェクトが移動した状態と、それに対応する移動前後の
BSP木をそれぞれ示している。このように、本実施の
形態では上記の理由から、空間内をオブジェクトが移動
してもBSP木の再構築は行わず、BSP木内での再配
置を行うことにした。すなわち、各フレーム処理の最初
に、移動したオブジェクトがあるのかを確認して、オブ
ジェクトの再配置の必要があるか調べ、必要があればB
SP木内で再配置を行うようにした。
【0044】以下、図17により、本実施の形態におけ
るブラウザの表示処理の概略手順を説明する。まず、表
示対象の空間内のすべてのオブジェクトについて、BS
P木を求める(S1)。次に、描画および衝突判定の計
算処理対象となるオブジェクトを抽出する(S2)。こ
の抽出されたオブジェクトについて必要な計算処理を行
う(S3)。この計算処理結果に基づいて、描画処理
(レンダリングを含む)を実行する(S4)。
【0045】図18に、図17のステップS1のBSP
木を求める処理例を示す。まず、各オブジェクトの境界
ボックスのx,y,z方向の各サイズおよび中心座標を
求める(S11)。境界ボックスが指定されていないの
であれば、図19で後述するように、ブラウザ内部で算
出する。次に、分割面を決める(S12)。この処理の
詳細については図20により後述する。ついで、この分
割面でオブジェクトを二分する(S13)。これらのス
テップS12,S13は、最終的に分割領域内のオブジ
ェクトの個数が1となるまで繰り返して実行する。但
し、前述したように、分割面上にオブジェクトが残るこ
とは許容する。
【0046】図19は、図18のステップS11の内部
の詳細処理の一例を示す。この処理は、各オブジェクト
について実行される処理であり、まず、そのオブジェク
トについてbboxが設定されているか否かを調べ(S
21)、設定済みであればそれのサイズと中心座標をB
SPに利用する(S22)。bboxが設定されていな
い場合、そのオブジェクトのx,y,z方向のそれぞれ
の長さ(可変の場合はその代表値、例えば最大値)を計
算し、その半分の大きさを当該bboxのx、y、z方
向のサイズとする(S23)。ついで、当該オブジェク
トの中心座標を求めて、これをbboxの中心座標とす
る(S24)。その後、ステップS22へ移行する。
【0047】図20は、図18のステップS12に示し
た分割面の決定の詳細処理例を示す。まず、仮に設定し
た分割面に直交する直線(射影軸)を選択し、この直線
上に分割対象となる全てのオブジェクトの境界ボックス
を射影する(S31)。各オブジェクトの、射影軸方向
のサイズが射影軸の上に投影される。図6に示すよう
に、これらの各候補区間の各々について評価値を求める
(S32)。具体的な評価値の求め方については前述し
たとおりである。
【0048】どの候補区間の分割面上にもオブジェクト
が存在する場合(S33,Yes)、予め用意した次の
射影軸を選択し(S37)、最初のステップS31へ戻
る。すべての射影軸についてステップS33での結果が
Noであれば(S37,Yes)、所定の射影軸(例え
ば、試したものの最後または最初)について、評価値の
最も高い候補区間を分割面とする(S38)。
【0049】ステップS33において、分割面上にオブ
ジェクトが存在しない分割面、すなわち後述するns=
0の区間が1つしかない場合(S34,No)、その区
間の分割面候補を分割面とする(S35)。そのような
区間が複数存在する場合(S34,Yes)、それらの
区間のうち評価値が最も高いものを分割面とする(S3
6)。
【0050】本実施の形態におけるBSPのアルゴリズ
ムの評価を行う為に、テストプログラムを作成し、BS
P木の生成にどの程度の時間がかかるのかを計測した。
テストプログラムはxz平面上にランダムに1000個
の長方形を配置し、それに対してBSP木を生成するも
のである。図21がその結果を示す図である。図示の都
合上、この図中にはすべてのオブジェクトを表示するこ
とはしていない。この図を見て分かるように、分割面を
予め8方向にしたために分割された領域内のデータが密
な部分と疎な部分があることが分かる。この例で、イン
テル社のPentiumIII 500HzのマシンにおいてBSP木を
構成するのにかかった時間は146msであった。一
方、この中で移動するオブジェクトを100個用意し、
分割面の再計算は行なわずにBSP木内で再配置だけを
行なうとBSP木内でのオブジェクトの再配置に掛かる
時間は0.8msであった。
【0051】この結果から、現在のパーソナルコンピュ
ータ(PC)の性能と対象とするシーンの組み合わせに
おいては、分割面を固定したままbboxの位置更新で
あれば毎フレーム適用しても十分な速度が得られるが、
BSP木の再生成まで行なうことは難しいと考えられ
る。しかし、大きくシーンの構造が変わる場面転換など
の場合であれば、転換中にアニメーションなどを挿入し
て、ユーザの目を逸らすことにより、その間にBSP木
の再生成を行なうことは十分に可能である。
【0052】次に、本実施の形態のBSPをVRMLブ
ラウザに適用した結果について説明する。VRMLブラ
ウザに本実施の形態のBSPを適用して実際のコンテン
ツを実行してどの程度の効果か得られるかを測定した。
コンテンツとしては前述した「PAW^2」を使用し
た。このときの総オブジェクト数は658個であり、こ
のうち動くオブジェクト数は50個である。このコンテ
ンツから任意の5点を視点として選び、BSPを適用し
ていないとき、および適用したときのそれぞれの衝突判
定および描画(レンダリング)におけるジオメトリの計
算にかかる時間、さらにBSPを適用した場合にはBS
P木内でのオブジェクトの再配置の時間を測定した。計
測に使用したマシンは、前記と同様、PentiumIII 500Hz
のマシンである。この結果を図22に示す。
【0053】図22から、BSPをVRMLブラウザに
適用していないときと比べてBSPを適用したほうがジ
オメトリ計算で1.3〜3.6倍、衝突計算で4.5〜
8.6倍の処理時間短縮ができることが分かる。また、
オブジェクトが分割面を超えて移動することで発生する
BSP木内でのオブジェクトの再配置にかかる時間があ
っても、BSPが有効であればBSPが無効であるとき
よりも1.6〜2.2倍、処理時間が短いことが分かっ
た。
【0054】最後に、本発明の3次元表示装置の概略構
成を図23に示す。この装置は、既存のパーソナルコン
ピュータと同様の構成であり、CPUやROM、RAM
等を含む制御部100、この制御部100により制御さ
れるI/Oインタフェース部103、ハードディスク装
置等の外部記憶装置120、外部の例えばインターネッ
トのようなネットワークと接続するための通信部101
を備えて構成される。I/Oインタフェース部103に
は、CRT、LCDのようなディスプレイからなる表示
部104、スピーカ105、キーボードやポインティン
グデバイス(マウス等)などの入力部106、およびマ
イク107などが接続される。制御部100内には、H
TMLブラウザ111および本実施の形態のVRMLブ
ラウザ113が格納されている。HTMLブラウザ11
1は、Netscape Navigator(商標)のような既存の2次
元表示のためのWWWブラウザであり、その各種付属機
能を含めて、VRMLブラウザ113と共に用いること
が好ましい。また、外部記憶装置120には、HTML
ファイル121、VRMLファイル122、Javaス
クリプト123等が格納される。Javaスクリプト1
23は、VRML2.0とともに用いることにより、よ
り高度なインタラクティブ性をもつシーンを記述するこ
とを可能とする。そのためにHTMLブラウザ111に
はJavaインタプリタ112も内蔵している。VRM
Lブラウザ113は、予め3次元表示装置内に固定的に
格納されていてもよいが、通信部101や可搬性記録媒
体(CD−ROM等)から事後的にインストールするこ
とも可能である。
【0055】上述した本実施の形態によれば、BSPア
ルゴリズムの改良、及びVRMLコンテンツ側に埋めこ
まれた情報の活用により、動的なシーンであってもBS
Pアルゴリズムを適用可能であり、大きな効果が得られ
ることが理解されよう。
【0056】以上、本発明の好適な実施の形態について
説明したが、種々の変形、変更が可能である。例えば、
Shapeノードに含まれる頂点が広い範囲に分散して
いてbboxが巨大になってしまう場合や、グルーピン
グ(Groupin)ノードの階層がbboxの階層と一致し
ない場合など不適切なbbox情報を含むVRMLデー
タの場合には、動かないオブジェクトはポリゴン等の下
位の要素にまでの分割を行なうなどのアルゴリズムを変
形することも可能である。また、3次元グラフィックス
データの記述言語は必ずしもVRMLに限るものではな
い。
【0057】
【発明の効果】本発明によれば、VRMLのような3次
元グラフィックスデータ記述言語で表される汎用で動的
なシーンにおいて描画の際のジオメトリ計算や衝突判定
の処理時間を大幅に削減することが可能になる。また、
従来ではこれらの処理時間を高速化するために専用のデ
ータフォーマットを作成していたが、その必要もなく高
速化を実現できる。
【図面の簡単な説明】
【図1】BSPアルゴリズムによる空間分割の例を示す
図である。
【図2】図1のBSPアルゴリズムにより生成される2
分木のBSP木を示す図である。
【図3】図1の空間における視点(View Point)および視
体積を示す図である。
【図4】図3の視点および視体積に対応して抽出され
た、BSP木内のオブジェクトの領域を示す図である。
【図5】キャラクタ全体を囲む直方体の境界ボックス
(bbox)の説明図である。
【図6】bbox単位の空間の分割の様子を示す図であ
る。
【図7】y軸方向の空間分割の説明図である。
【図8】分割の対象となる全てのオブジェクトを射影軸
に射影した様子を示す図である。
【図9】図5において各候補区間に分割面を位置させる
か否かの判断指標としての評価値の算出方法を説明する
ための図である。
【図10】xz平面での8本の射影軸を示す図である。
【図11】本来のBSP木である完全二分木を示す図で
ある。
【図12】本発明の実施の形態で得られるBSP木を示
す図である。
【図13】本発明のBSPアルゴリズムを用いて図1の
空間を分割した様子を示す図である。
【図14】図13の分割により得られたBSP木を示す
図である。
【図15】分割面を越えてオブジェクトが移動した状態
を示す図である。
【図16】図15に対応する移動前後のBSP木を示す
図である。
【図17】本発明の実施の形態におけるブラウザの表示
処理の概略手順を示すフローチャートである。
【図18】図17のステップS1のBSP木を求める処
理例を示すフローチャートである。
【図19】図17のステップS11の内部の詳細処理の
一例を示すフローチャートである。
【図20】図17のステップS3に示した分割面の決定
の詳細処理例を示すフローチャートである。
【図21】xz平面上にランダムに1000個の長方形
を配置したテストプログラムの説明図である。
【図22】テストプログラムによる、BSPの有無によ
る処理時間の測定結果を示す図である。
【図23】本発明の3次元表示装置の概略構成を示すブ
ロック図である。
【符号の説明】
100…制御部、101…通信部、103…I/Oイン
タフェース、104…表示部、105…スピーカ、10
6…入力部、107…マイク、111…HTMLブラウ
ザ、112…Javaインタプリタ、113…VRML
ブラウザ、120…外部記憶装置、121…HTMLフ
ァイル、122…VRMLファイル、123…Java
スクリプト
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B050 BA07 BA08 BA09 BA11 BA18 CA08 EA19 EA27 EA28 FA02 FA10 5B080 AA17 BA04 BA05 FA08 GA00

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】3次元グラフィックスデータ記述言語を解
    釈して表示データを構成する3次元表示プログラムであ
    って、 3次元空間内の複数のオブジェクトをバイナリ空間分割
    (BSP)アルゴリズムにより分割することによりオブ
    ジェクトのBSP木を構築する木構築処理ステップと、 与えられた視点および視体積に対して、前記求められた
    BSP木に基づいて、描画および衝突の判定の対象とな
    るオブジェクトを抽出する抽出処理ステップと、 抽出されたオブジェクトの描画を行う描画処理ステップ
    とを備え、 前記木構築処理ステップにおいて、分割の対象となるオ
    ブジェクトの分割の単位を、表示対象のキャラクタ等を
    内包する直方体の境界ボックス単位とするとともに、当
    該分割の方向を、予め定めた複数の方向の中から選択す
    ることを特徴とする3次元表示プログラム。
  2. 【請求項2】シーン内のオブジェクトが移動しても前記
    BSP木の再構築を行わないことを特徴とする請求項1
    記載の3次元表示プログラム。
  3. 【請求項3】前記木構築処理ステップでは、分割対象の
    複数のオブジェクトに対して、水平面上に予め定めた複
    数の角度方向の射影軸を想定し、これらの射影軸の1ま
    たは複数に対して分割対象のオブジェクトを射影し、射
    影されたオブジェクトの状態に基づいて当該射影軸上に
    直交する複数の分割面候補に対して評価値を求め、この
    評価値に基づいて分割面を決定することを特徴とする請
    求項1記載の3次元表示プログラム。
  4. 【請求項4】前記決定された分割面上にオブジェクトが
    存在することを許容し、当該オブジェクトについては、
    前記視点および視体積の位置に関わらず描画および衝突
    の判定の対象とすることを特徴とする請求項3記載の3
    次元表示プログラム。
  5. 【請求項5】垂直方向に分散するオブジェクトについて
    は、水平面に平行な平面で分割を行うことを特徴とする
    請求項3記載の3次元表示プログラム。
  6. 【請求項6】3次元グラフィックスデータ記述言語を解
    釈して表示データを構成する3次元表示方法であって、 3次元空間内の複数のオブジェクトをバイナリ空間分割
    (BSP)アルゴリズムにより分割することによりオブ
    ジェクトのBSP木を構築する木構築処理ステップと、 与えられた視点および視体積に対して、前記求められた
    BSP木に基づいて、描画および衝突の判定の対象とな
    るオブジェクトを抽出する抽出処理ステップと、 抽出されたオブジェクトの描画を行う描画処理ステップ
    とを備え、 前記木構築処理ステップにおいて、分割の対象となるオ
    ブジェクトの分割の単位を、表示対象のキャラクタ等を
    内包する直方体の境界ボックス単位とするとともに、当
    該分割の方向を、予め定めた複数の方向の中から選択す
    ることを特徴とする3次元表示方法。
  7. 【請求項7】3次元グラフィックスデータ記述言語を解
    釈して表示データを構成する3次元表示プログラムを格
    納した3次元表示プログラム格納媒体であって、 3次元空間内の複数のオブジェクトをバイナリ空間分割
    (BSP)アルゴリズムにより分割することによりオブ
    ジェクトのBSP木を構築する木構築処理ステップと、 与えられた視点および視体積に対して、前記求められた
    BSP木に基づいて、描画および衝突の判定の対象とな
    るオブジェクトを抽出する抽出処理ステップと、 抽出されたオブジェクトの描画を行う描画処理ステップ
    とを備え、 前記木構築処理ステップにおいて、分割の対象となるオ
    ブジェクトの分割の単位を、表示対象のキャラクタ等を
    内包する直方体の境界ボックス単位とするとともに、当
    該分割の方向を、予め定めた複数の方向の中から選択す
    ることを特徴とする3次元表示プログラムを格納した3
    次元表示プログラム格納媒体。
  8. 【請求項8】3次元グラフィックスデータ記述言語で記
    述されたデータファイルを記憶する記憶手段と、 前記3次元グラフィックスデータを解釈して表示データ
    を構成するブラウザと、 このブラウザにより構成された表示データを表示する表
    示部とを備え、 前記ブラウザは、 3次元空間内の複数のオブジェクトをバイナリ空間分割
    (BSP)アルゴリズムにより分割することによりオブ
    ジェクトのBSP木を構築する木構築処理ステップと、 与えられた視点および視体積に対して、前記求められた
    BSP木に基づいて、描画および衝突の判定の対象とな
    るオブジェクトを抽出する抽出処理ステップと、 抽出されたオブジェクトの描画を行う描画処理ステップ
    とを備え、 前記木構築処理ステップにおいて、分割の対象となるオ
    ブジェクトの分割の単位を、表示対象のキャラクタ等を
    内包する直方体の境界ボックス単位とするとともに、当
    該分割の方向を、予め定めた複数の方向の中から選択す
    る、 ことを特徴とする3次元表示装置。
  9. 【請求項9】前記ブラウザは、シーン内のオブジェクト
    が移動しても前記BSP木の再構築を行わないことを特
    徴とする請求項8記載の3次元表示装置。
  10. 【請求項10】前記木構築処理ステップでは、分割対象
    の複数のオブジェクトに対して、水平面上に予め定めた
    複数の角度方向の射影軸を想定し、これらの射影軸の1
    または複数に対して分割対象のオブジェクトを射影し、
    射影されたオブジェクトの状態に基づいて当該射影軸上
    に直交する複数の分割面候補に対して評価値を求め、こ
    の評価値に基づいて前記分割面を決定することを特徴と
    する請求項8記載の3次元表示装置。
  11. 【請求項11】前記決定された分割面上にオブジェクト
    が存在することを許容し、当該オブジェクトについて
    は、前記視点および視体積の位置に関わらず描画および
    衝突の判定の対象とすることを特徴とする請求項8記載
    の3次元表示装置。
  12. 【請求項12】前記データファイルを外部から受信する
    ための通信手段をさらに備えたことを特徴とする請求項
    8記載の3次元表示装置。
JP2001068116A 2001-03-12 2001-03-12 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置 Withdrawn JP2002269588A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001068116A JP2002269588A (ja) 2001-03-12 2001-03-12 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001068116A JP2002269588A (ja) 2001-03-12 2001-03-12 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置

Publications (1)

Publication Number Publication Date
JP2002269588A true JP2002269588A (ja) 2002-09-20

Family

ID=18926349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001068116A Withdrawn JP2002269588A (ja) 2001-03-12 2001-03-12 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置

Country Status (1)

Country Link
JP (1) JP2002269588A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007514243A (ja) * 2003-12-09 2007-05-31 ユージーエス、コープ 透過的レンダリングのためのシステムと方法
WO2015093073A1 (ja) * 2013-12-18 2015-06-25 株式会社ソニー・コンピュータエンタテインメント シミュレーション装置
KR101620108B1 (ko) 2010-03-17 2016-05-11 주식회사 넥슨코리아 3d 가상 공간에서 캐릭터 의상 아이템을 조합하는 캐릭터 의상 아이템 조합 시스템 및 그 방법
CN107462151A (zh) * 2016-06-03 2017-12-12 北京林业大学 一种基于数码相机测量单株立木材积的方法
US12033271B2 (en) 2019-06-18 2024-07-09 The Calany Holding S. À R.L. 3D structure engine-based computation platform

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007514243A (ja) * 2003-12-09 2007-05-31 ユージーエス、コープ 透過的レンダリングのためのシステムと方法
JP4696076B2 (ja) * 2003-12-09 2011-06-08 シーメンス、プラダクツ、ライフサイクル、マニジマント、ソフトウエア、インク 透過的レンダリングのためのシステムと方法
KR101620108B1 (ko) 2010-03-17 2016-05-11 주식회사 넥슨코리아 3d 가상 공간에서 캐릭터 의상 아이템을 조합하는 캐릭터 의상 아이템 조합 시스템 및 그 방법
WO2015093073A1 (ja) * 2013-12-18 2015-06-25 株式会社ソニー・コンピュータエンタテインメント シミュレーション装置
JP5967786B2 (ja) * 2013-12-18 2016-08-10 株式会社ソニー・インタラクティブエンタテインメント シミュレーション装置
CN105874511A (zh) * 2013-12-18 2016-08-17 索尼互动娱乐股份有限公司 模拟设备
CN105874511B (zh) * 2013-12-18 2019-04-05 索尼互动娱乐股份有限公司 模拟设备
US10824775B2 (en) 2013-12-18 2020-11-03 Sony Interactive Entertainment Inc. Simulation method and device for determining collision between objects
CN107462151A (zh) * 2016-06-03 2017-12-12 北京林业大学 一种基于数码相机测量单株立木材积的方法
US12033271B2 (en) 2019-06-18 2024-07-09 The Calany Holding S. À R.L. 3D structure engine-based computation platform

Similar Documents

Publication Publication Date Title
Teschner et al. Collision detection for deformable objects
US6023279A (en) Method and apparatus for rapidly rendering computer generated images of complex structures
Van Toll et al. A navigation mesh for dynamic environments
US6307554B1 (en) Apparatus and method for generating progressive polygon data, and apparatus and method for generating three-dimensional real-time graphics using the same
CA2837983C (en) Partition of a 3d scene into a plurality of zones processed by a computing resource
CN106600679A (zh) 一种三维模型数据简化的方法
JP3721419B2 (ja) 複合構造のコンピュータ生成ディスプレイに用いるための、空間的に均衡した境界ボリュームハイアラーキを作成するための方法
CN115641375B (zh) 虚拟对象的毛发处理方法、装置、设备及存储介质
O'Brien et al. Automatic simplification of particle system dynamics
JP4842242B2 (ja) キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置
Zach et al. Time-critical rendering of discrete and continuous levels of detail
Mendoza et al. Interruptible collision detection for deformable objects
JP2002269588A (ja) 3次元表示プログラム、3次元表示方法、3次元表示プログラム格納媒体および3次元表示装置
US8952968B1 (en) Wave modeling for computer-generated imagery using intersection prevention on water surfaces
US6664975B1 (en) Cheap well-behaved affine transformation of bounding spheres
KR20160109692A (ko) 3차원 모델로부터 색칠공부도안 생성 방법, 이를 수행하기 위한 기록 매체 및 장치
JPH06236432A (ja) 仮想現実システムおよび仮想現実像の仮想現実世界生成方法
Pueyo et al. Shrinking city layouts
Argudo et al. Interactive inspection of complex multi-object industrial assemblies
CN116152446B (zh) 一种基于ue4的地质模型剖分方法、装置、终端及介质
Shao Research on key technologies of museum costume virtual exhibition based on Web3D
von Funck et al. Elastic secondary deformations by vector field integration
US20240320920A1 (en) Systems and methods for generating a model database with blendshape representation
KR100748240B1 (ko) 이미지 렌더링 방법 및 시스템
Hu et al. 3D Model Dynamic Perforation Simulation Based on Game Engine

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050801

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050926

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080513