JP4779479B2 - 物体の三次元形状データの削減装置および削減方法 - Google Patents

物体の三次元形状データの削減装置および削減方法 Download PDF

Info

Publication number
JP4779479B2
JP4779479B2 JP2005206510A JP2005206510A JP4779479B2 JP 4779479 B2 JP4779479 B2 JP 4779479B2 JP 2005206510 A JP2005206510 A JP 2005206510A JP 2005206510 A JP2005206510 A JP 2005206510A JP 4779479 B2 JP4779479 B2 JP 4779479B2
Authority
JP
Japan
Prior art keywords
data
unit surface
luminance
dimensional shape
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005206510A
Other languages
English (en)
Other versions
JP2007026036A (ja
Inventor
直樹 河合
和夫 松藤
章 高倉
宏治 石丸
正宏 大倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2005206510A priority Critical patent/JP4779479B2/ja
Publication of JP2007026036A publication Critical patent/JP2007026036A/ja
Application granted granted Critical
Publication of JP4779479B2 publication Critical patent/JP4779479B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、物体の三次元形状データの削減装置および削減方法に関し、特に、三次元CADなどを用いて作成された物体の三次元形状データのうち、二次元表現には不要な部分を削除して、全データ容量を削減する技術に関する。
コンピュータの性能向上により、産業界の様々な分野でCG画像が利用されるようになってきている。たとえば、建築物、家具、自動車などの設計段階では、通常、多くのCG画像が利用されている。また、コンピュータを利用した製品のプレゼンテーションや映画などの種々の映像表現においても、物品の様々なCG画像が不可欠である。更に、最近では、商品カタログなどにも、実際の商品写真の代わりに、CG画像が利用される例も少なくない。一般に、CADを用いた設計段階を経て製品化された商品の場合、設計に用いたCADデータを流用してCG画像を作成することができるため、商品カタログに掲載するCG画像も比較的容易に作成することが可能になる。
建築物、家具、自動車の内装部品などのCADデータは、仮想物体の三次元データであるのに対して、提示用のCG画像は、通常、二次元画像として用意される。したがって、CADデータを利用してCG画像を作成する際には、コンピュータ内に仮想物体の三次元データを取り込み、照明条件や視点位置を定めて二次元画像を作成するレンダリング処理が必要になる。このレンダリング処理は、コンピュータの演算負荷が非常に高い処理であり、処理対象となる三次元データや照明条件が複雑になればなるほど、得られるCG画像の品質は高くなるが、必要な演算時間は長くなる。このため、得られるCG画像の品質をできるだけ損なわずに、レンダリング処理の負担を軽減する手法が従来から望まれており、特に、大量の静止画像を生成する必要があるアニメーションの制作現場においては、このような手法が切望されている。
また、近年、CGの利用分野は極めて広範にわたるようになってきており、ユーザには、制作者側が作成した静止画や動画を一方的に鑑賞するだけでなく、自分の意志で、視点の位置を自由に動かし、物品や建造物を任意の方向から観察できるような環境が与えられるようになってきた。たとえば、オンラインショップで商品を観察したり、オンラインゲームで仮想市街を探検したりする場合、ユーザは自分の意志で、視線の位置や向きを変えることができる。このような用途にCGを用いる場合、いわゆるリアルタイムレンダラーと呼ばれるシステムにより、三次元形状データに対するレンダリング処理をリアルタイムで実施する必要がある。したがって、レンダリング処理の負荷が大きいと、処理に時間がかかり、極めて操作性が低下することになる。
レンダリング処理に負荷を与える代表的な要因は、レンダリング処理の対象として与えられる三次元形状データのデータ容量である。一般的に、高精細な三次元形状データを用意すればするほど、得られる二次元CG画像の写実性は高まる。しかしながら、レンダリング処理の演算はそれだけ複雑になり、また、データを格納するために必要なメモリ容量も増大し、演算に必要な時間も増加することになる。このような点を鑑み、たとえば、下記の特許文献1には、人間の毛髪など、三次元形状データの容量が極めて大きくなる部分を近似画像に置き換えることにより、データ容量を削減する手法が開示されている。
特開2001−297331号公報
前掲の特許文献1に開示されている手法は、人間の毛髪部分のように、部分的に解像度が低下しても、全体的な画像の品質にはあまり影響のない部分について、三次元形状データを間引くことによりデータ容量を削減するという技術思想に基づくものであるが、工業製品などの一般的な画像にまで広く適用できる手法ではない。いずれにしても、三次元形状データを間引くことによりデータ容量を削減するという発想に基づく限り、得られる二次元CG画像の品質が低下することは免れない。
これに対して、レンダリング処理の演算に不要な部分を削除することにより、データ容量を削減するという発想に基づけば、得られる二次元CG画像の品質低下という問題は生じない。たとえば、家庭電化製品・時計などの精密機械、自動車・船舶・航空機などの輸送機械、住宅・店舗・公共施設などの建造物は、通常、CADデータに基づく設計が行われるので、これらの製品や建造物についての二次元CG画像を作成する上では、このCADデータを流用すると非常に効率的である。ところが、設計に用いたCADデータには、機械や構造物の内部を構成するパーツまでが、三次元形状データとして用意されていることが多く、カタログに掲載するCG画像を作成する場合などを考えると、レンダリング処理の演算には不要なデータが含まれていることになる。具体的には、機械式の時計の場合、歯車やゼンマイなど、外部からは決して見えないパーツについての三次元形状データがCADデータに含まれていたとしても、カタログに掲載するCG画像の作成には全く不要のデータということになる。このような場合、CADデータから、これら不要のデータを削除する処理を行えば、全体的なデータ容量を削減することが可能である。
しかしながら、与えられたCADデータのうち、どのデータが必要で、どのデータが不要であるか、という判断を行うには、かなり高度な判断能力を必要とする。このため、個々のデータについて、要不要の判断を行い、不要なデータを削除するという処理は、熟練したオペレータの手作業に負わねばならず、判断ミスも少なからず生じていた。
そこで本発明は、レンダリング処理に不要なデータの削除処理を自動的に行うことが可能な物体の三次元形状データの削減装置および削減方法を提供することを目的とする。
(1) 本発明の第1の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減装置において、
処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定手段と、
物体の外部、かつ、包囲体の内部の位置に光源を設定し、この光源から発せられた照明光のエネルギーが、物体および包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算手段と、
処理前データのうち、輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを処理後データとして出力するデータ削除手段と、
を設けるようにしたものである。
(2) 本発明の第2の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減装置において、
処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
物体の内部の位置に光源を設定し、この光源から発せられた照明光のエネルギーが、物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算手段と、
処理前データのうち、輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを処理後データとして出力するデータ削除手段と、
を設けるようにしたものである。
(3) 本発明の第3の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減装置において、
処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
処理前データによって示される物体が配置された三次元仮想空間に、直接もしくは間接的に互いに光が行き来できる空間上での連続領域からなる視点配置可能領域を設定する視点配置可能領域設定手段と、
物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定手段と、
視点配置可能領域に属し、かつ、包囲体の内部の位置に、光源を設定し、この光源から発せられた照明光のエネルギーが、物体および包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算手段と、
処理前データのうち、輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを、視点配置可能領域を示すデータとともに、処理後データとして出力するデータ削除手段と、
を設けるようにしたものである。
(4) 本発明の第4の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減装置において、
処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
処理前データによって示される物体が配置された三次元仮想空間に、物体内部に位置する領域であって当該領域の内部では光が自由に行き来できるが外部への行き来が阻害された領域として、視点配置可能領域を設定する視点配置可能領域設定手段と、
視点配置可能領域内に、光源を設定し、この光源から発せられた照明光のエネルギーが、物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算手段と、
処理前データのうち、輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを、視点配置可能領域を示すデータとともに、処理後データとして出力するデータ削除手段と、
を設けるようにしたものである。
(5) 本発明の第5の態様は、上述の第3または第4の態様に係る物体の三次元形状データの削減装置において、
視点配置可能領域設定手段に、三次元仮想空間上の指示点をオペレータから入力する機能をもたせ、入力した指示点の空間位置に対して直接もしくは間接的に互いに光が行き来できる空間上での連続領域を視点配置可能領域として設定するようにしたものである。
(6) 本発明の第6の態様は、上述の第5の態様に係る物体の三次元形状データの削減装置において、
輝度演算手段が、視点配置可能領域設定手段によって入力された指示点位置に、光源を設定するようにしたものである。
(7) 本発明の第7の態様は、上述の第1〜第6の態様に係る物体の三次元形状データの削減装置において、
データ削除手段が、削除するか否かの判定に用いる輝度のしきい値を0に設定し、輝度が0となる部分に関するデータを削除するようにしたものである。
(8) 本発明の第8の態様は、上述の第1〜第7の態様に係る物体の三次元形状データの削減装置において、
処理前データ格納手段が、物体の三次元形状データをポリゴンの集合体として入力し、これを格納する機能を有し、
輝度演算手段が、個々のポリゴンを1つの単位面として取り扱い、個々の単位面ごとに輝度を求める演算を行い、
データ削除手段が、求められた輝度が所定のしきい値以下となる単位面を構成するポリゴンのデータを削除するようにしたものである。
(9) 本発明の第9の態様は、上述の第1〜第7の態様に係る物体の三次元形状データの削減装置において、
処理前データ格納手段が、物体の三次元形状データをポリゴンの集合体として入力し、これを格納する機能を有し、
輝度演算手段が、個々のポリゴンを複数の単位面に分割し、個々の単位面ごとに輝度を求める演算を行い、
データ削除手段が、求められた輝度が所定のしきい値以下となる単位面のみから構成されるポリゴンのデータを削除するようにしたものである。
(10) 本発明の第10の態様は、上述の第1〜第7の態様に係る物体の三次元形状データの削減装置において、
処理前データ格納手段が、物体の三次元形状データを、所定の関数およびこの関数で用いられるパラメータ値によって表現されるパラメトリック曲面の集合体として入力し、これを格納する機能を有し、
輝度演算手段が、個々のパラメトリック曲面を複数の単位面に分割もしくは近似し、個々の単位面ごとに輝度を求める演算を行い、
データ削除手段が、求められた輝度が所定のしきい値以下となる単位面のみから構成されるパラメトリック曲面のデータを削除するようにしたものである。
(11) 本発明の第11の態様は、上述の第8〜第10の態様に係る物体の三次元形状データの削減装置において、
輝度演算手段が、個々の単位面ごとに、光源もしくは他の単位面から受け取るエネルギーおよび他の単位面へと放出するエネルギーをそれぞれ計算し、両者の差を蓄積エネルギーとし、個々の単位面についての蓄積エネルギーを当該単位面の輝度とする演算を行うようにしたものである。
(12) 本発明の第12の態様は、上述の第8〜第10の態様に係る物体の三次元形状データの削減装置において、
輝度演算手段に、
第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する機能と、
第i番目の単位面から放出されるエネルギーBiを、当該第i番目の単位面自身から生成され放出される成分Ei、当該第i番目の単位面の反射率ρi、第j番目の単位面から放出される全エネルギーBjを用いて、
Bi=Ei+ρi・Σj=1〜nFij・Bj
なる式で求める機能と、
をもたせ、光源から発せられた照明光のエネルギーが各単位面で繰り返し反射される現象のシミュレーションを、フォームファクタおよび上記式を用いて実行するようにしたものである。
(13) 本発明の第13の態様は、上述の第8〜第10の態様に係る物体の三次元形状データの削減装置において、
輝度演算手段が、光源を1つの単位面として取り扱い、
第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する処理と、
全単位面について、第1の値をもつ判定フラグを初期値として設定する処理と、
光源を構成する単位面の判定フラグを第2の値に変える処理と、
判定フラグが第1の値から第2の値に変化したばかりの単位面を着目単位面として抽出し、着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが第1の値である単位面についての判定フラグを第2の値に変える作業を、着目単位面が抽出されなくなるまで繰り返し実行する処理と、
判定フラグが第1の値のままである単位面に対して、所定のしきい値以下となる輝度を与える処理と、
を行うようにしたものである。
(14) 本発明の第14の態様は、上述の第1〜第13の態様に係る物体の三次元形状データの削減装置としてコンピュータを機能させるためのプログラムを用意し、これをコンピュータに組み込むようにしたものである。
(15) 本発明の第15の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減方法において、
処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
包囲体データ設定手段が、物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定ステップと、
輝度演算手段が、物体の外部、かつ、包囲体の内部の位置に設定された光源から発せられた照明光のエネルギーが、物体および包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算ステップと、
データ削除手段が、処理前データのうち、輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
データ削除手段が、データ削除ステップの後に残ったデータを、処理後データとして出力するデータ出力ステップと、
を行うようにしたものである。
(16) 本発明の第16の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減方法において、
処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
輝度演算手段が、物体の内部の位置に設定された光源から発せられた照明光のエネルギーが、物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算ステップと、
データ削除手段が、処理前データのうち、輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
データ削除手段が、データ削除ステップの後に残ったデータを、処理後データとして出力するデータ出力ステップと、
を行うようにしたものである。
(17) 本発明の第17の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減方法において、
処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
視点配置可能領域設定手段が、オペレータの指示に基づいて、処理前データによって示される物体が配置された三次元仮想空間に、直接もしくは間接的に互いに光が行き来できる空間上での連続領域からなる視点配置可能領域を設定する視点配置可能領域設定ステップと、
包囲体データ設定手段が、物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定ステップと、
輝度演算手段が、視点配置可能領域に属し、かつ、包囲体の内部の位置に、光源を設定し、この光源から発せられた照明光のエネルギーが、物体および包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算ステップと、
データ削除手段が、処理前データのうち、輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
データ削除手段が、データ削除ステップの後に残ったデータを、視点配置可能領域を示すデータとともに、処理後データとして出力するデータ出力ステップと、
を行うようにしたものである。
(18) 本発明の第18の態様は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う物体の三次元形状データの削減方法において、
処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
視点配置可能領域設定手段が、オペレータの指示に基づいて、処理前データによって示される物体が配置された三次元仮想空間に、物体内部に位置する領域であって当該領域の内部では光が自由に行き来できるが外部への行き来が阻害された領域として、視点配置可能領域を設定する視点配置可能領域設定ステップと、
輝度演算手段が、視点配置可能領域内に、光源を設定し、この光源から発せられた照明光のエネルギーが、物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する輝度演算ステップと、
データ削除手段が、処理前データのうち、輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
データ削除手段が、データ削除ステップの後に残ったデータを、視点配置可能領域を示すデータとともに、処理後データとして出力するデータ出力ステップと、
を行うようにしたものである。
(19) 本発明の第19の態様は、上述の第15〜第18の態様に係る物体の三次元形状データの削減方法において、
処理前データ格納手段が、処理対象となる物体の三次元形状データとして、当該物体の設計に用いたCADデータを入力するようにしたものである。
(20) 本発明の第20の態様は、上述の第15〜第19の態様に係る物体の三次元形状データの削減方法において、
輝度演算ステップにおいて、輝度演算手段が、処理前データを複数の単位面の集合体として認識し、光源を1つの単位面として認識し、
第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する段階と、
全単位面について、第1の値をもつ判定フラグを初期値として設定する段階と、
光源を構成する単位面の判定フラグを第2の値に変える段階と、
判定フラグが第1の値から第2の値に変化したばかりの単位面を着目単位面として抽出し、着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが第1の値である単位面についての判定フラグを第2の値に変える作業を、着目単位面が抽出されなくなるまで繰り返し実行する段階と、
判定フラグが第1の値のままである単位面に対して、所定のしきい値以下となる輝度を与える段階と、
を行うようにしたものである。
(21) 本発明の第21の態様は、上述の第15〜第20の態様に係る物体の三次元形状データの削減方法において、
処理前データ格納手段が、処理前データ入力ステップで、処理前データを、所定の関数およびこの関数で用いられるパラメータ値によって表現されるパラメトリック曲面の集合体として入力するようにし、
輝度演算ステップで、輝度演算手段が、個々のパラメトリック曲面を複数の単位面に分割もしくは近似する処理を行い、個々の単位面ごとに輝度を求める演算を行うようにし、
データ削除手段が、コンピュータが、求められた輝度が所定のしきい値以下となる単位面のみから構成されるパラメトリック曲面のデータを削除するようにしたものである。
(22) 本発明の第22の態様は、上述の第15〜第21の態様に係る物体の三次元形状データの削減方法において、
データを削除するか否かの判定に用いる輝度のしきい値を0に設定し、輝度が0となる部分に関するデータを削除するようにしたものである。
本発明によれば、与えられた物体の三次元形状データのうち、所定の視点配置条件下で利用する限りにおいては不要となるデータを、自動的に削除することが可能になる。
以下、本発明を図示する実施形態に基づいて説明する。
<<< §1.本発明の基本原理 >>>
はじめに、本発明の基本原理を説明する。いま、図1に示すような三次元仮想空間を考える。この三次元仮想空間内には、部屋Rが定義され、その中に複数の物体が配置されている。すなわち、床面中央には、テーブル10、花瓶20、花30が置かれており、部屋の左壁付近には、戸棚下部40および戸棚上部50が置かれている。これら戸棚は断面図で示されており、戸棚下部40内には、透明な瓶41および缶詰42が配置され、戸棚上部50内には、透明な瓶51および缶詰52が配置されている。ここで、戸棚上部50の前面には、ガラス戸Gが嵌め込まれているため、瓶51および缶詰52は室内から観察可能な状態になっているが、戸棚下部40は不透明な扉によって仕切られているため、瓶41および缶詰42は、この状態では、室内から観察できない状態になっているものとする。
このように、三次元仮想空間内に配置された個々の物体の実体は、それぞれポリゴンの集合体やパラメトリック曲面の集合体からなる三次元形状データであり、コンピュータに、各物体の三次元形状データを読み込むことにより、図示のような仮想空間をコンピュータ上に構築することができる。このように、物体が配置された三次元仮想空間を、ディスプレイ画面もしくは印刷物上の画像として人間に提示するためには、光源および視点位置を設定することにより、二次元投影画像を作成するためのレンダリング処理を行う必要がある。
図2は、このようなレンダリング処理の概念を示す側面図である。図示の例では、部屋R内の右上部分に、光源Lおよび視点E1が定義されている。レンダリング処理では、光源Lから放出された照明光が、物体の各部分で反射し、この反射光が視点E1に向かう現象がコンピュータによってシミュレートされ、視点E1から観察したときの二次元画像が作成されることになる。物体の三次元形状データは、物体各部の形状および反射率を示すデータであり、このデータに基づいて、物体表面を構成する個々の単位面(一般に、パッチと呼ばれている)ごとに、入射照明光に起因して生じる反射光の向きや強度が演算される。
たとえば、図2には、単位面P1〜P4(単位面は、物体の表面を構成する微小な平面であるが、ここでは図示の便宜上、黒点として示す)から、視点E1へ向かう反射光が一点鎖線として示されている。単位面P1,P2からの反射光は、視点E1へと直接向かう光となり、単位面P3,P4からの反射光は、ガラス戸Gを通して、視点E1へと向かう光になる。テーブル10の下面の単位面P5からの反射光は、視点E1に直接届くことはない。また、戸棚下部40の内部の物体上の単位面P6,P7には、光源Lからの照明光は届かず、当然、ここからの反射光が視点E1に届くことはない。更に、ここでは便宜上、花瓶20の口の部分が、花30の茎の部分で密閉された状態になっているものとすると、花瓶20の内部にも、光源Lからの照明光は届かないことになる。
結局、各物体10〜52に対して、図2に示す位置に視点E1を設定して、この視点E1から観察した二次元画像を作成するレンダリング処理を行うことを前提とすると、図示の単位面P1〜P4に関する物体のデータは必要になるが、単位面P6,P7に関する物体のデータは不要であることがわかる。視点E1が、図示のように、戸棚下部40の外側に配置されている限りは、戸棚下部40の内部の単位面P6や、戸棚下部40に収容された缶詰42上の単位面P7からの反射光が視点E1に届くことはない。したがって、図示の例では、視点を図示の位置E1に配置するという利用条件を定めることにより、花瓶20の内側表面に関する三次元形状データ、戸棚下部40の内側表面に関する三次元形状データ、瓶41および缶詰42に関するすべての三次元形状データを削除することが可能である。また、瓶51は表面が透明な物体であるため、内部のデータも必要になるが、缶詰52は表面が不透明な物体であるため、仮に、缶詰内部に詰め込まれている食材の三次元形状データまでもが含まれていたとしても、この缶詰内部のデータは削除することが可能である。
それでは、「視点E1から観察した二次元画像を作成する」という利用条件を定めれば、視点E1の位置から見えない部分の物体のデータを、すべて削除することが可能になるのであろうか。その答は、反射光の強度演算を行う際に用いる陰影形成モデル(シェーディングモデル)に応じて変わってくる。すなわち、光源からの直射光の反射成分のみを考慮したシェーディングを行うのであれば、視点E1から直接見えない部分のデータ(隠面のデータ)は削除してしまってかまわない。図示の例の場合、たとえば、花瓶20の裏側(図の左面)のデータは削除してかまわないことになる。しかしながら、コンピュータの性能が向上した今日では、写実性に富んだ高品質の二次元画像を得ることができるように、大域照明モデルを用いたシェーディングを行うのが一般的であり、その場合には、視点E1の位置から見えない部分の物体のデータをすべて削除することはできない。この大域照明モデルでは、光源からの直射光の反射成分のみでなく、壁や他の物体から反射してきた間接光の反射成分をも考慮したレンダリング処理が行われる。
たとえば、図2に示す単位面P5は、テーブル10の下面に形成された面であるため、この単位面P5には、光源Lからの照明光が直接照射されることもないし、この単位面P5からの反射光が、視点E1に直接届くこともない。しかしながら、大域照明モデルを用いた場合、光源Lからの光は、たとえば図3に示す例のように、単位面P8,P9で反射して単位面P5に入射することも考慮に入れる必要があり、この単位面P5からの反射光が、単位面P10,P11,P12で反射して視点E1に到達することも考慮に入れる必要がある。もちろん、光源Lから放出された照明光の強度は、各部で反射を繰り返すことにより、徐々に減衰してゆくことになるので、反射を繰り返して視点E1まで到達した光の強度は比較的小さいものになるが、写実性に富んだ二次元画像を作成する上では、このように各部で繰り返し反射した光まで考慮したシェーディングの演算を行う必要がある。
図3に示す例では、単位面P5の三次元形状データは、単位面P10,P11の輝度に影響を与え、単位面P12の輝度にも間接的に影響を与えることになるので、最終的に得られる二次元画像にも影響を与えることになる。したがって、大域照明モデルを用いたシェーディングを行う場合、視点E1の位置から直接的には見えない部分であるからといって、当該部分のデータを即座に削除することはできない。結局、図2に示す例の場合、単位面P6,P7のデータは削除することができる。これは、大域照明モデルを用いた場合でも、単位面P6,P7からの反射光が、直接もしくは間接的に視点E1に影響を与えることはないからである。ところが、単位面P5のデータは、上述したように、削除することはできない。
そこで本発明では、大域照明モデルを利用することを前提として、次のような基準で、個々の物体の三次元形状データについて、削除すべきか否かを判定できるようにした。すなわち、本発明における削除可否の判定原理は、視点位置に対して光学的な連続領域内に位置する部分については削除不可、光学的な連続領域外に位置する部分については削除可と判定する、というものである。ここで、光学的な連続領域とは、「直接もしくは間接的に互いに光が行き来できる空間上での連続領域」というべきものであり、別言すれば、光を遮蔽する物体で隔離された閉領域というべきものである。
たとえば、図2に示す例の場合、単位面P1,P2,P3,P4,P5は、いずれも視点E1に対して、光学的な連続領域内に位置しており、光は遮蔽されることなく、相互に行き来できる状態となっている。これに対して、単位面P6,P7は、視点E1に対して、光学的な連続領域外に位置しており、戸棚下部40の不透明な扉という遮蔽物によって隔離された閉領域内に位置する単位面となっている。その結果、視点E1に対して、光学的な連続領域内に位置する単位面P1,P2,P3,P4,P5は削除できないが、連続領域外に位置する単位面P6,P7については削除できる、との判定を行うことができる。
上述した判定結果は、視点位置が光学的な連続領域内で移動したとしても普遍である。たとえば、図4に示すように、視点位置が、E1からE2に変更になったとしても、単位面P1,P2,P3,P4,P5が、視点E2に対して光学的な連続領域内に位置しており、単位面P6,P7が、視点E2に対して光学的な連続領域外に位置している、という状況に変わりはない。視点位置が、E3やE4に変わった場合も、状況は全く同じである。視点E4は、戸棚上部50の内側に位置しているため、物理的には、視点E1と視点E4とは、ガラス戸Gによって隔絶されてしまっている。しかしながら、ガラス戸Gは光を透過するため、視点E1と視点E4とは、光学的には同一の連続領域に位置することになる。
これに対して、視点が光学的な連続領域外へ移動した場合は、状況は変わってくる。たとえば、図4に示す視点E5が、缶詰52の内部の点であるものとすれば、缶詰の缶という不透明な金属隔壁によって、視点E1とE5とは隔絶されてしまっているので、もはや視点E5は視点E1に対して、光学的な連続領域内にあるとは言えない。同様に、戸棚下部40内の視点E6も、視点E1に対して、光学的な連続領域内にあるとは言えない。このように、視点が光学的な連続領域外へ移動した場合は、「単位面P6,P7についてはデータ削除が可能」という上述の判定結果をそのまま適用することはできなくなる。
以上をまとめると、図5に示すように、図示の位置に視点E1を定義した場合、この図にハッチングを施して示す部分(花瓶20の内部、缶詰52の内部、戸棚下部40の内部)は、視点E1からの観察に影響を与えない部分と言うことができ、視点の配置位置をE1に限定するという利用条件を定めれば、このハッチング部分についての物体の三次元形状データは削除可能と判定することができる。しかも、当該判定結果は、視点位置を図5に示す視点E1に定めた場合だけに限定されるものではなく、視点E1を光学的な連続領域内で移動させた場合にも同様に適用可能ということになる。
図6は、視点E1についての光学的な連続領域にハッチングを施して示したものである。レンダリング処理を行う上での視点を、このハッチングを施して示した領域内の1点に定義するという条件を設定すれば、当該条件で利用する限りにおいて、図5にハッチングを施した部分についてのデータは不要ということになり、削除してもかまわないことになる。
結局、三次元仮想空間内の光学的な連続領域として、「視点配置可能領域」を予め設定しておき、レンダリング処理を行う際には、この「視点配置可能領域」内に視点を配置して利用する、という条件を課しておけば、当該「視点配置可能領域」外に位置する部分のデータについては、削除することが可能になり、総データ量を削減することが可能になる。これが本発明の基本原理である。たとえば、図6にハッチングを施して示した領域(光学的な連続領域)を、「視点配置可能領域」と定めた場合、「視点配置可能領域」外の部分は、図5にハッチングを施した部分ということになり、この部分についてのデータを削除することが可能になる。この場合、削除後のデータは、「視点配置可能領域」内に視点を配置する、という条件下でのみ、レンダリング処理に利用することができる。
<<< §2.光学的な連続領域内か否かの判定 >>>
上述したように、本発明の基本原理に従ってデータの削減を行うには、まず、視点配置可能領域を設定し、処理対象となる物体の三次元形状データのうち、この視点配置可能領域外の部分を削除する、という処理を行えばよい。
もっとも、視点配置可能領域を設定するにあたって、三次元仮想空間上での領域の境界を具体的な三次元形状データとして指定する必要はない。すなわち、利用者(三次元形状データに基づいて、レンダリング処理を行い、二次元画像を作成する作業を行う者)に対しては、当該領域を概念的に伝達できればよいので、論理的に特定することが可能な領域になっていれば、どのような方法で視点配置可能領域を設定してもかまわない。
図6には、視点配置可能領域の設定例を、ハッチングを施した領域として示したが、実用上は、このような領域が設定されていることを、論理的に定義できればよいので、たとえば、点E1の位置のみを示し、「点E1と光学的に連続した領域」として、視点配置可能領域を定義すれば、当該領域を論理的に特定することが可能である。別言すれば、図6において、視点配置可能領域として、「点E1と光学的に連続した領域」という情報さえ設定しておけば、図6にハッチングで施した領域を把握することが可能である。
これに対して、与えられた物体の三次元形状データから、不要なデータを削減する処理をコンピュータ上で実行するためには、物体の個々の部分について、視点配置可能領域内に位置するのか、視点配置可能領域外に位置するのかを判定する作業(別言すれば、視点位置に対する光学的な連続領域に含まれるか否かを判定する作業)を、コンピュータに実行させる必要があり、何らかの判定アルゴリズムが必要になる。
本願発明者は、このような判定アルゴリズムとして、従来からレンダリング処理に利用されている大域照明モデルの輝度計算アルゴリズムを転用できることに気がついた。大域照明モデルは、図3を参照して説明したとおり、光源からの直接反射光だけでなく、物体や壁などの表面で繰り返し反射して視点へと到達した間接光も考慮するモデルであり、非常に写実的な二次元画像を作成することができるため、近年、広く利用されているモデルである。この大域照明モデルを用いた輝度計算を行えば、物体を構成する個々の単位面が、所定の光源に対する光学的な連続領域内にあるか、当該領域外にあるか、を判定することができる。
たとえば、図3に示す例において、単位面P8,P9,P5,P10,P11,P12には、光源Lからの光が直接もしくは間接的に到達することができる。同様に、単位面P1,P2,P3,P4にも、光源Lからの光が到達することができる。したがって、これらの各単位面は、光源Lに対して「直接もしくは間接的に互いに光が行き来できる位置」に配置されていることになり、光源Lについての光学的な連続領域の内部に存在することになる。これに対して、単位面P6,P7は、戸棚下部40内に位置するため、光源Lからの光が届かない単位面になる。別言すれば、単位面P6,P7と光源Lとの間は「直接もしくは間接的に互いに光が行き来できない」ことになる。したがって、単位面P6,P7は、光源Lについての光学的な連続領域の外部に存在することになる。
このように、着目する単位面が、光源Lについての光学的な連続領域の内側にあるのか、外側にあるのか、を判定するには、光源Lに対して「直接もしくは間接的に互いに光が行き来できるか否か」を調べればよい。大域照明モデルを用いた輝度計算は、所定位置に光源を定義し、物体の各部を構成する単位面について、繰り返し反射した間接光も考慮に入れて輝度を求めるものである。したがって、この大域照明モデルを用いた輝度計算によって得られた輝度の計算値が0でなかった単位面については、光源Lからの光の一部が「何らかの光路」を経て到達していると判断することができ、当該「何らかの光路」を形成する空間を介して、光源Lに光学的に連続していることになる。
実際、図3に示す例の場合、単位面P5についての輝度を大域照明モデルを用いた輝度計算によって求めれば、少なくとも図に一点鎖線で示されている光路「L→P8→P9→P5」を経て、光源Lからの光が単位面P5まで到達するので、単位面P5の輝度としては、0でない値が求まることになる。これに対して、単位面P6,P7については、光源Lからの光が到達することはないので、輝度は0になる。したがって、光源Lを設定し、大域照明モデルを用いた輝度計算を行うと、図5にハッチングを施して示す領域内の単位面の輝度は0になり、それ以外の領域内の単位面には、0でない輝度が与えられる。
ここで、図5において、光源Lの代わりに、視点E1の位置に光源を配置して、上述と同様の輝度計算を行えば、「図5のハッチング領域内の輝度は0になり、それ以外の輝度は0でない」という同じ結果が得られる。これは、図5において、光源Lと視点E1とは、同じ光学的な連続領域に配置されているからである。実際、光源Lの位置を、視点E1に対して光学的な連続領域内に配置する限り、「図5のハッチング領域内の輝度は0になり、それ以外の輝度は0でない」という同じ結果が得られることになるので、図6にハッチングを施して示した視点配置可能領域内の任意の位置に光源Lを配置しても、やはり「図5のハッチング領域内の輝度は0になり、それ以外の輝度は0でない」という同じ結果が得られる。
結局、物体各部について、設定した視点配置可能領域の内部の部分か否かを判定するには、視点配置可能領域に属する任意の位置に光源を設定し、この光源を用いて、大域照明モデルをによる輝度計算を行い、輝度が0の部分は「視点配置可能領域の外部」と判定し、輝度が0でない部分は「視点配置可能領域の内部」と判定すればよいことになる。そして、輝度が0である「視点配置可能領域外の部分」については、視点配置可能領域内に視点を設定する限りにおいて、当該視点との間での直接もしくは間接的な光の往来は存在しないので、三次元形状データは削除してかまわないことになる。
<<< §3.本発明に係るデータ削減方法の基本手順 >>>
続いて、上述した基本原理に基づく本発明の基本手順を説明する。本発明の目的は、物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行うことにある。そこで、ここでは、図7に示すような単純な構造をもった物体60の三次元形状データが、処理対象となるデータとして与えられたときに、所定の視点配置条件を定めることにより、不要となるデータを削除する処理を行うことを考える。
図7に側断面図を示す物体60は、内部に空洞を有する物体であり、三次元形状データは、外部表面のデータと内部表面のデータとによって構成されている。このように、物体の三次元形状データは、通常、当該物体の表面(外部表面および内部表面)を示すデータから構成される。そして、この表面を示すデータとしては、ポリゴンの集合体もしくはパラメトリック曲面の集合体からなるデータが一般に用いられている。
ポリゴンの集合体からなるデータは、物体表面を多数の微小な多角形によって表すためのデータであり、たとえば、図7に示す物体60をポリゴンの集合として表す場合、外部表面および内部表面を多数の多角形に分割し、個々の多角形の頂点座標などを示すデータによって、当該物体60の三次元形状データを構成することになる。一方、図7に示す物体60をパラメトリック曲面の集合として表す場合、外部表面のデータは、球の方程式およびこの方程式に用いられるパラメータの値(たとえば、球の半径の値)からなるデータによって構成できる。また、内部表面の球状部分は、外部表面と同様に、球の方程式およびこの方程式に用いられるパラメータの値からなるデータによって構成でき、中心へ向けての隆起部分については、たとえば、放物線の回転体として把握することにより、当該放物線の方程式およびこの方程式に用いられるパラメータの値からなるデータによって構成できる。
ここでは、まず、物体60の外部に視点を配置するという条件を課す場合について、本発明の基本手順を説明しよう。図7に示す物体60について、物体外部に視点を配置して利用するという条件を設定した場合、図にドットによるハッチングを施した部分が視点配置可能領域ということになる。この視点配置可能領域は、処理対象となる物体60が配置された三次元仮想空間における光学的な連続領域である。§2で述べた基本原理によれば、この視点配置可能領域に所属する任意の位置に光源を設定し、この光源を用いて、物体60の各部について、大域照明モデルによる輝度計算を行い、輝度が0の部分のデータを削除すればよいことになる。ただ、このような輝度計算を行うためには、図1〜図6に示す例における部屋Rに相当する何らかの包囲体が必要である。
そこで、図8に示すように、物体60の周囲を囲う包囲体70を定義し、この包囲体70の三次元形状データである包囲体データを設定する。この包囲体70は、光を反射する内面を有し、物体60の周囲を囲うことができるものであれば、形状および大きさは不問である。このような包囲体70の三次元形状データは、オペレータ側で用意して、コンピュータに入力することも可能であるが、形状や大きさを示すオペレータの指示入力に基づいて、コンピュータ側で作成させることも可能である。あるいは、§5で説明するように、オペレータの指示なしに、コンピュータ側で自動的に作成させることも可能である。
続いて、図8に示すように、視点配置可能領域に属し、かつ、包囲体70の内部の位置に、光源Lを設定する。そして、この光源Lから発せられた照明光のエネルギーが、物体60および包囲体70の各部で繰り返し反射することを考慮した照明シミュレーション(大域照明モデルにおけるシミュレーション)を実施し、物体60各部の輝度を演算する。
この照明シミュレーションは、実際には、物体60の各部を構成する単位面における反射現象を繰り返し演算することにより行われる。たとえば、図9に示す例のように、光源Lから発せられた照明光が、単位面P11,P12,P13に照射されたものとしよう。単位面P11,P12は、物体60の外部表面上の面であり、単位面P13は、包囲体70の内部表面上の面であり、それぞれ所定の反射率がデータとして与えられている。もちろん、光源Lからの光は、この他にも多数の単位面に照射される。続いて、この光源Lからの照明光を受けた各単位面は、それぞれ所定方向に所定の強度をもった反射光を生じさせる。たとえば、図示の例の場合、単位面P11,P12,P13からの反射光は、それぞれ単位面P21,P22,P23へと入射する。更に、これら各単位面からも、所定方向に所定の強度をもった反射光が生じ、図示の例の場合、それぞれ単位面P31,P32,P33へと入射する。
この図9では、3本の光路に沿って、光源Lから出た光が、単位面P31,P32,P33へと到達する様子を示した。もちろん、実際には、物体60の表面や包囲体70の表面には多数の単位面が形成されており、膨大な数の光路について、光の伝播がシミュレートされることになる。たとえば、単位面P11には、光源Lからの光だけではなく、包囲体70側の多数の単位面から反射した光が照射されることになる。通常は、反射光として、拡散反射の成分が考慮されるので、1つの単位面から様々な方向に反射光が射出することになる。また、図9に示す例では、光源Lから出た光が、3回目の反射を行うために、単位面P31,P32,P33へと到達したときの様子を示したが、単位面P31,P32,P33から射出した反射光は、更に4回目の反射を行うために、次の反射面へと向かうことになる。
ここで、1つの単位面に入射する光のエネルギーと、そこから反射する光のエネルギーとを比較すると、通常、後者は前者より小さくなる。したがって、光源Lから射出した光のエネルギーは、単位面で1回反射するごとに、その一部が失われ、徐々に減衰してゆくことになる。1回の反射でどの程度のエネルギーが失われるかは、当該単位面の反射率で決定される。反射で失われたエネルギーは、当該単位面に吸収されたエネルギーということになる。
一般的な大域照明モデルにおける輝度計算では、このように、個々の単位面について、光の入射と反射のシミュレーションを十分な回数だけ繰り返し行い、個々の単位面ごとに、光源もしくは他の単位面から受け取るエネルギーおよび他の単位面へと放出するエネルギーをそれぞれ計算し、両者の差を蓄積エネルギーとし、個々の単位面についての蓄積エネルギーを当該単位面の輝度とする演算を行うことになる。
本発明では、大域照明モデルにおける輝度計算のこのような特徴に着目し、物体60を構成する個々の単位面が、光源Lに対して光学的な連続領域にあるか否かを判定するのである。すなわち、上述したような各単位面における入射/反射のシミュレーションを十分な回数だけ繰り返せば、結局、物体60の外部表面を構成するすべての単位面には、光源Lから射出した光が直接もしくは間接的に照射されることになり、最終的にいくらかのエネルギーが蓄積されるはずである。別言すれば、これら外部表面を構成する単位面の輝度は0にはならない。これに対して、物体60の内部表面を構成するすべての単位面には、光源Lからの射出光が、直接的にも間接的にも、照射されることはない。したがって、これら内部表面を構成する単位面の輝度は0になる。
このように、シミュレーションの結果、輝度が0となった単位面は、「光源Lに対して光学的な連続領域にない」ということができるので、「光源Lに対して光学的な連続領域にある」位置に視点を設定するという条件を定める限り、当該単位面に関するデータは不要であり、削除してかまわないことになる。図9に示す例の場合、物体60の内部表面を構成するすべての単位面のデータは削除できることになる。図10は、このような方針で、データ削除を実行した結果を示す側断面図である。実線で示されている残存部65の実体は、物体60の外部表面に関するデータであり、破線で示す内部表面に関するデータは削除されている。物体60全体のデータの代わりに、残存部65のデータを用いても、図7にドットによるハッチングを施した視点配置可能領域内に視点を設定して利用する限り、何ら支障は生じない。
図11は、本発明に係る三次元形状データの削減方法の基本手順を示す流れ図である。まず、ステップS1において、処理対象となる物体の三次元形状データを、処理前データとしてコンピュータに入力する処理が行われる。前述の例の場合、図7に示す物体60の三次元形状データがコンピュータに入力されることになる。
続いて、ステップS2では、この物体60が配置された三次元仮想空間に、光学的な連続領域からなる視点配置可能領域を設定するためのオペレータの指示がコンピュータに入力される。図7に示す例では、物体60の外部(ドットによるハッチング部)に、視点配置可能領域の設定が行われている。もっとも、この視点配置可能領域の設定は、論理的に特定の領域が画定できるのであれば、どのような形式で設定してもかまわない。実用上は、オペレータが、コンピュータに対して、三次元仮想空間上の指示点を入力するようにし、この指示点の空間位置と光学的に連続する領域を視点配置可能領域として設定すれば十分である。たとえば、図8に示すように、三次元仮想空間上に物体60が定義されている場合、点Lの位置を指示点として入力すれば、「この指示点と光学的に連続する領域」として、図にドットによるハッチングを施した視点配置可能領域を特定することが可能になる。
次のステップS3では、包囲体の設定が行われる。図8には、物体60の周囲を囲う包囲体70が示されている。包囲体70を示す包囲体データは、前述したとおり、オペレータが用意してコンピュータに入力してもよいし、オペレータの指示入力に基づいてコンピュータ側で作成してもよいし、所定の作成アルゴリズムに基づいてコンピュータ側で自動生成されるようにしてもよい。
続いて、ステップS4において、光源の設定が行われる。図8に示す例では、光源Lが設定されている。光源Lの位置は、視点配置可能領域に属し、かつ、包囲体の内部の位置であれば、どこでもかまわない。この光源Lの位置設定も、オペレータの指示入力に基づいて行うようにしてもよいし、コンピュータ側で自動設定するようにしてもかまわない。たとえば、ステップS2において、視点配置可能領域を設定するために、オペレータから点Lの位置が指示点として入力され、この点Lが包囲体70の内部の点であれば、この指示点位置に点光源Lを自動的に設定するようにしてかまわない。この場合、オペレータによる指示点は、視点配置可能領域を指示する点であるとともに、光源位置を指示する点ということになる。
こうして、図8に示す例のように、物体60、包囲体70、光源Lについての設定が完了したら、ステップS5において、前述したように、大域照明モデルを用いた各単位面の輝度計算がコンピュータによって実行される。すなわち、光源Lから発せられた照明光のエネルギーが、物体60および包囲体70の各単位面で繰り返し反射することを考慮した照明シミュレーションが実施され、各単位面の輝度が演算される。
続く、ステップS6では、この輝度計算の結果に基づいて、不要なデータを削除する処理がコンピュータによって実行される。すなわち、ステップS1で入力された処理前データのうち、ステップS5の輝度計算ステップにより求められた輝度が0である部分に関するデータが削除される。図8に示す設定では、前述したとおり、物体60の内部表面を構成する各単位面の輝度が0になるため、これらの単位面のデータを削除した結果、図10に示す残存部65(物体60の外部表面)に対応するデータが残ることになる。
最後のステップS7では、このステップS6のデータ削除処理の後に残ったデータが、処理後データとして出力される。このとき、ここで述べる実施形態では、出力される処理後データに、ステップS2で設定した視点配置可能領域を示すデータを含ませるようにしてある。たとえば、図10に示す例の場合、残存部65に対応する三次元形状データに、光源として用いた点Lの位置を示すデータを、視点配置可能領域を示すデータとして添付し、これを処理後データとして出力すればよい。そうすれば、この処理後データを利用する利用者は、当該処理後データに含まれている三次元形状データ(残存部65に対応するデータ)を利用するにあたっては、「点Lに対して光学的に連続した領域(概念的には、物体60の外部)に視点を配置する」という視点配置条件が課されていることを認識することができ、当該条件に適った利用を行うことができる。
もちろん、「視点配置可能領域を示すデータ」は、図10に示す点Lの位置に限定されるものではなく、利用者に対して、視点配置可能領域を認識させることができるデータであれば、どのようなデータを用いてもかまわない。たとえば、「物体外部」というような文字データであってもかまわない。
以上、視点配置可能領域を物体外部に設定した場合について、本発明に係るデータ削減方法の基本手順を述べたが、続いて、視点配置可能領域を物体内部に設定した場合の基本手順を説明しよう。たとえば、図12に示す例のように、物体60に関して、内部の空洞部分に視点配置可能領域を定義した場合を考える。このような設定は、物体60が比較的小さな物体の場合はあまり現実的ではないが、物体60が、たとえば、窓のない宇宙船であったような場合を想定すれば、宇宙飛行士の目で見た船内の様子を二次元画像として提示するような用途には十分に利用できる。
このように、物体内部に視点配置可能領域を設定した場合の手順も、基本的には、図11に示す流れ図の手順とほぼ同じである。ただ、この場合は、物体を囲う包囲体を設定する必要はなくなるので(もちろん、包囲体を設定しても、特に支障は生じないが)、図11に示すステップS3は省略することができる。具体的には、次のような手順になろう。
まず、ステップS1において、処理対象となる物体の三次元形状データを、処理前データとしてコンピュータに入力する。具体例では、図12に示す物体60の三次元形状データがコンピュータに入力されることになる。続くステップS2では、この物体60が配置された三次元仮想空間に、光学的な閉領域からなり、物体内部に位置する視点配置可能領域を設定するためのオペレータの指示がコンピュータに入力される。図12に示す例では、物体60の内部(ドットによるハッチング部)に、視点配置可能領域の設定が行われているが、このような領域を設定するには、領域内の1点Lを指示する入力を行えばよい。そうすれば、指示点Lと光学的に連続する領域として、図にドットによるハッチングを施した視点配置可能領域を特定することが可能になる。
次に、上述したとおりステップS3を省略し、ステップS4において、光源の設定が行われる。光源Lの位置は、視点配置可能領域に属する位置であれば、どこでもかまわないので、オペレータの指示入力に基づいて設定するようにしてもよいし、コンピュータ側で自動設定するようにしてもかまわない。ステップS2において、視点配置可能領域を設定するために、オペレータから点Lの位置が指示点として入力されたのであれば、この指示点位置に点光源Lを自動的に設定すれば簡単である。
こうして、図12に示す例のように、物体60および光源Lについての設定が完了したら、ステップS5において、大域照明モデルを用いた各単位面の輝度計算がコンピュータによって実行される。すなわち、光源Lから発せられた照明光のエネルギーが、物体60の各単位面で繰り返し反射することを考慮した照明シミュレーションが実施され、各単位面の輝度が演算される。そして、ステップS6において、この輝度計算の結果に基づいて、不要なデータを削除する処理がコンピュータによって実行される。すなわち、ステップS1で入力された処理前データのうち、ステップS5の輝度計算ステップにより求められた輝度が0である部分に関するデータが削除される。図12に示す設定では、物体60の外部表面を構成する各単位面の輝度が0になるため、これらの単位面のデータを削除した結果、図13に示す残存部66(物体60の内部表面)に対応するデータが残ることになる。
最後のステップS7では、このステップS6のデータ削除処理の後に残ったデータが、処理後データとして出力される。このとき、ステップS2で設定した視点配置可能領域を示すデータを含ませるようにする。図13に示す例の場合、残存部66に対応する三次元形状データに、光源として用いた点Lの位置を示すデータを、視点配置可能領域を示すデータとして添付し、これを処理後データとして出力すればよい。そうすれば、この処理後データを利用する利用者は、当該処理後データに含まれている三次元形状データ(残存部66に対応するデータ)を利用するにあたっては、「点Lに対して光学的に連続した領域(概念的には、物体60の内部)に視点を配置する」という視点配置条件が課されていることを認識することができ、当該条件に適った利用を行うことができる。
なお、内部に複数の空洞部を有する物体についても、これまで述べた手順と同様の手順が適用可能である。たとえば、図14に示す物体80は、2つの空洞部81,82を有する構造をもつ。このような物体80について、物体外部に視点配置可能領域を設定する場合の処理は、図7に示す物体60について行った処理と全く同じである。
一方、物体内部に視点配置可能領域を設定する場合は、空洞部81か空洞部82のいずれかを視点配置可能領域として設定することになる。空洞部81を視点配置可能領域として設定する場合は、たとえば、点L1の位置を視点配置可能領域を特定するための指示点として指定し、この点L1の位置に光源を設定して輝度計算を行えばよい。この場合、処理後データとして出力される三次元形状データは、空洞部81の内壁面を示すデータ(図13に示す残存部66を示すデータと同じ)ということになる。一方、空洞部82を視点配置可能領域として設定する場合は、たとえば、点L2の位置を視点配置可能領域を特定するための指示点として指定し、この点L2の位置に光源を設定して輝度計算を行えばよい。この場合、処理後データとして出力される三次元形状データは、空洞部82の内壁面を示すデータということになる。
最後に、上述した基本手順を、図1に示す例に適用した結果を述べよう。図15は、図1に示す三次元仮想空間上における光学的閉領域を示す側面図(一部分は側断面図)である。図に太線で示した部分は、光学的閉領域を隔絶する境界を表しており、各太線の両側に、それぞれ独立した光学的閉領域が形成されていることになる。別言すれば、この太線で示す部分は、光を遮蔽する材質からなり、隣接する光学的閉領域に対する光の行き来を阻害していることになる。
図16は、図1に示す三次元仮想空間上に配置された各物体の位相幾何学的な構造を示す構造断面図である。図に斜線のハッチングを施した部分は、光を遮蔽する材質からなる構造部分であり、ハッチングが施されていない部分は、光を透過する材質からなる構造部分もしくは自由空間である。この図16に示す構造は、図15に示す構造と、光学的な見地において、位相幾何学的に等価である。図示のとおり、部屋R内には、5つの光学的閉領域SP1〜SP5が形成されている。個々の光学的閉領域SP1〜SP5は、それぞれが1つの光学的な連続領域を形成しており、各領域の内部では、光が自由に行き来できるが、隣接する領域間での光の行き来は阻害されることになる。
図17は、図16に示す構造断面図において、光学的閉領域SP1を視点配置可能領域に設定し、上述した基本手順を実行することにより、最終的に得られた処理後データに対応する部分を示す図である。図にドットによるハッチングを施した部分が、視点配置可能領域であり、実線で示す部分が、処理後データに対応する部分である。図示のとおり、いずれも光学的閉領域SP1の空間内に露出している外部表面のデータのみが残存し、花瓶20の内部に位置する部分のデータ、戸棚下部40の内部に位置する部分のデータ、缶詰52の内部に位置する部分のデータは削除される。
一方、図18(a) ,(b) ,(c) ,(d) は、それぞれ光学的閉領域SP2,SP3,SP4,SP5を視点配置可能領域に設定し、上述した基本手順を実行することにより、最終的に得られた処理後データに対応する部分を示す図であり、やはり、図にドットによるハッチングを施した部分が、視点配置可能領域であり、実線で示す部分が、処理後データに対応する部分である。図18(a) に示すように、光学的閉領域SP2を視点配置可能領域に設定した場合は、花瓶20の内部および花30の花瓶内に位置する部分のデータのみが残存し、その他のデータはすべて削除される。一方、図18(b) に示すように、光学的閉領域SP3を視点配置可能領域に設定した場合は、戸棚下部40の内部表面の部分のデータ、瓶41のデータ、缶詰42の外部表面の部分のデータが残存し、その他のデータはすべて削除される。また、図18(c) に示すように、光学的閉領域SP4を視点配置可能領域に設定した場合は、缶詰42の内部の部分のデータが残存し、その他のデータはすべて削除され、図18(d) に示すように、光学的閉領域SP5を視点配置可能領域に設定した場合は、缶詰52の内部の部分のデータが残存し、その他のデータはすべて削除される。
<<< §4.大域照明モデルを利用した具体的な輝度計算法 >>>
ここでは、図11の流れ図におけるステップS5の輝度計算の具体的な方法を述べる。既に述べたとおり、この輝度計算は、大域照明モデルを用いて行われ、物体表面を多数の単位面(通常、パッチと呼ばれている)の集合体として把握し、個々の単位面どうしの光の相互反射を考慮した輝度計算が行われる。
図11の流れ図におけるステップS1において、物体の三次元形状データがポリゴンの集合体として入力され、これを処理前データとして利用する場合であれば、個々のポリゴンを1つの単位面として取り扱い、個々の単位面ごとに輝度を求める演算を行い、ステップS6でデータ削除を行う際には、求められた輝度が0である単位面を構成するポリゴンのデータを削除すればよい。
図19は、ポリゴンの集合体として表現された物体の三次元形状データの概念図である。図示の例では、個々のポリゴンはいずれも三角形によって構成されており、1つの三角形が1つの単位面として取り扱われ、各三角形ごとに輝度の計算が行われることになる。そして、輝度が0である三角形については、当該三角形のデータそのものが削除されることになる。
なお、個々のポリゴンを1つの単位面として取り扱う代わりに、個々のポリゴンをそれぞれ複数の単位面に分割する取り扱いを行うことも可能である。図19に示す例の場合、個々の三角形を更に細かな三角形に分割し、この細かな三角形をそれぞれ単位面として輝度計算を行えばよい。この場合、ステップS6でデータ削除を行う際には、求められた輝度が0である単位面のみから構成されるポリゴンのデータを削除するようにすればよい。別言すれば、輝度が0でない単位面を1つでも含むポリゴンのデータは、削除されずに残ることになる。
一方、 図11の流れ図におけるステップS1において、物体の三次元形状データが所定の関数およびこの関数で用いられるパラメータ値によって表現されるパラメトリック曲面の集合体として入力され、これを処理前データとして利用する場合は、個々のパラメトリック曲面を複数の単位面に分割もしくは近似し、個々の単位面ごとに輝度を求める演算を行い、ステップS6では、求められた輝度が0である単位面のみから構成されるパラメトリック曲面のデータを削除するようにすればよい。
図20は、パラメトリック曲面の集合体として表現された物体の三次元形状データの概念図である。この例では、3つのパラメトリック曲面C1,C2,C3から構成される物体が示されている。各曲面C1,C2,C3は、所定の関数およびこの関数で用いられるパラメータ値によって定義されている。この場合、各曲面をそれぞれ複数の単位面に分割して取り扱えばよい。図には、曲面C1を破線によって複数の単位面に分割した状態が示されている。演算を簡略化するためには、各単位面が平面となるようにするのが好ましいので、必要に応じて、曲面C1を複数の曲面に分割し、各分割曲面に近似する平面を単位面と定義すればよい。こうして、各単位面について輝度計算を行い、輝度が0である単位面のみから構成されるパラメトリック曲面については、そのデータを削除すればよい。別言すれば、輝度が0でない単位面を1つでも含むパラメトリック曲面のデータは、削除されずに残ることになる。
図20に示す例の場合、破線で囲まれた各単位面のうち、1つでも輝度が0でない単位面があれば、パラメトリック曲面C1のデータは削除されずに残ることになる。もちろん、実用上は、各パラメトリック曲面と、これを分割して得られた複数の単位面との関係を予め登録しておき、輝度演算が完了した後に、どのパラメトリック曲面が削除可能であるかを把握できるようにしておく必要がある。なお、パラメトリック曲面を、平面からなる複数の単位面で近似する処理は、一般に「テッセレーション」と呼ばれている公知の処理であり、ここでは詳しい処理方法の説明は省略する。
続いて、個々の単位面ごとの輝度計算を行う上での具体的な手法を述べる。大域照明モデルを用いた各単位面の輝度計算の手法自体は、既に知られている技術であり、ラジオシティ法やフォトンマッピング法といった具体的な方法が広く利用されている。これらの方法の基本原理は、個々の単位面ごとに、光の入射/反射のプロセスをシミュレートし、光源もしくは他の単位面から受け取るエネルギーおよび他の単位面へと放出するエネルギーをそれぞれ計算し、両者の差を蓄積エネルギーとし、光の入射/反射のプロセスを繰り返しシミュレートして、個々の単位面についての蓄積エネルギーを当該単位面の輝度とする演算を行うことにある。
しかしながら、本発明では、個々の単位面の輝度を正確に計算する必要はない。本発明の目的は、与えられた物体の三次元形状データに基づいてレンダリング処理を行い、二次元画像を得ることにあるわけではないので、各単位面の輝度自体は必要ないのである。本発明の目的は、与えられた物体の三次元形状データを削減することにあり、そのためには、個々の単位面について、削除可能か否かの判定を行う必要がある。そして、この判定基準として、各単位面の輝度を利用し、輝度が0である単位面については削除可能との判定を下すことになる。
結局、本発明で必要な情報は、「各単位面の輝度がいくつであるか」という情報ではなく、「各単位面の輝度が0であるか否か」という情報である。そうすると、ある単位面の輝度が0でなくなった時点で、当該単位面に関しては、もはや輝度の値を演算する必要はないことがわかる。たとえば、図3において、光源Lからの光は、単位面P8で反射した後、単位面P9に照射され、この単位面P9で反射した後、単位面P5へと向かっている。ここで、単位面P9に着目すると、単位面P8からきた反射光のエネルギーの一部を蓄積し、残りを反射光として射出することになるので、この時点で、単位面P9の輝度は0でないことが判明する。したがって、単位面P9に関する限り、もはや輝度計算のためのシミュレーションは不要ということになる。
ただ、単位面P9の輝度が0でないことが判明した時点で、直ちに単位面P9に関する光の入射/反射のプロセスのシミュレーションを中止してよいかというと、必ずしも、中止してよいことにはならない。なぜなら、シミュレーションを繰り返し実行してゆくうちに、単位面P8ではない別な単位面からの光が単位面P9に入射することになり、その反射光に起因して、初めて光の照射を受ける新たな単位面が現れる可能性があるからである。後に詳述するとおり、単位面P9に関する光の入射/反射のプロセスのシミュレーションを中止してよい時期は、単位面P9の蓄積エネルギーが0ではなくなっており(別言すれば、単位面P9に関して、少なくとも1回は光の入射/反射のプロセスのシミュレーションが実行されており)、かつ、単位面P9からの反射光が直接到達する可能性のあるすべての単位面の蓄積エネルギーが0ではなくなっている、という条件を満たしたとき、ということになる。
この条件の意味するところをもう少し詳しく説明するために、図21の流れ図に示す手順を説明しよう。この流れ図は、図11のステップS5の具体的な処理手順を示すものであり、ラジオシティ法を利用した処理手順である。ラジオシティ法は、大域照明モデルを用いた輝度計算の代表的な手法の1つであり、個々の単位面(パッチ)を拡散反射面として取り扱い、この単位面からの放射エネルギー(ラジオシティ)を計算する演算が行われる。そのために、まず、個々の単位面どうしの放射エネルギーの授受の割合を示すフォームファクタを計算しておき、このフォームファクタを用いて、上述した光の入射/反射のプロセスのシミュレーションを実行する。
たとえば、単位面の総数がn個であるとすると、これらn個の単位面のすべての組み合わせについて、フォームファクタを定義することができる。具体的には、第i番目の単位面と、第j番目の単位面との間には、次のようにして、フォームファクタFijを定義することができる。いま、第j番目の単位面から何らかのエネルギーが放出され、この放出された全エネルギーがBjであったものとしよう。そして、この全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合をフォームファクタFijとするのである。ここで、このフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」と呼ぶことにする。フォームファクタFij=0の場合は、第j番目の単位面から第i番目の単位面には、全くエネルギーが届かないことを示しており、両者間には、直接的に光が行き来することはない。
このようなフォームファクタを、全n個の単位面のすべての組み合わせについて予め計算しておくようにする(Fii=0とする)。なお、光源も、1つもしくは複数の単位面の集合として取り扱うようにする。フォームファクタFijの値は、第i番目の単位面の形状、大きさ、配置と、第j番目の単位面の形状、大きさ、配置という幾何学的な条件のみによって計算される値となる。したがって、物体の三次元形状データおよび光源の情報が与えられれば、これに基づいて、全n個の単位面のすべての組み合わせについてのフォームファクタを計算によって求めることができる。
このようなフォームファクタFijを定義すると、第i番目の単位面から放出されるエネルギーBiは、
Bi=Ei+ρi・Σj=1〜nFij・Bj
なる式で表すことができる。ここで、Eiは、この第i番目の単位面自身から生成され放出される成分であり、光源となる単位面以外についてはEi=0である。ρiは、この第i番目の単位面の反射率であり、Bjは、第j番目の単位面から放出される全エネルギーである。したがって、上式におけるΣj=1〜nFij・Bjなる項は、自分(第i番目の単位面)以外のすべての単位面から放出されたエネルギーのうち、自分宛に届くエネルギーの合計ということになり、全入射エネルギーということになる。この全入射エネルギーに、自分に固有の反射率ρiを乗じ、自分の生成するエネルギーEiを加えたものが、自分が放出する全エネルギーBiということになる。
予め、このようなフォームファクタを計算しておけば、光源から発せられた照明光のエネルギーが各単位面で繰り返し反射される現象のシミュレーションを、このフォームファクタおよび上記式を用いて実行することができる。たとえば、図9の例において、単位面P11が光源Lから受け取るエネルギーは、「単位面P11から光源L(単位面の1つ)へのフォームファクタ」をF(P11,L)とし、光源Lから放出される全エネルギーをB(L)とすれば、F(P11,L)・B(L)ということになる。単位面P11には、他の単位面からのエネルギーも届くので(もちろん、フォームファクタが0となる相手方の単位面から受け取るエネルギーは0である。)、これら受け取るエネルギーの総和に、反射率を乗じた値が、単位面P11から放出される全エネルギーということになる。
それでは、図21の流れ図に示すステップを順に見てゆこう。まず、ステップS11において、全単位面についてのフォームファクタの計算が行われる。上述したとおり、光源も1つの単位面として取り扱うようにするため、物体を構成する単位面、光源を構成する単位面、そして包囲体を設定した場合には、包囲体を構成する単位面のそれぞれについて、相互のフォームファクタを計算することになる。具体的には、第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて計算を行うことになる。なお、このフォームファクタの計算は、ラジオシティ法における常套手段とも言うべき手法であり、その具体的な手順は既に公知の技術であるため、ここでは説明は省略する。
続いて、ステップS12において、全単位面に判定フラグを定義し、全判定フラグを初期値0に設定する。この判定フラグは、後に行われる光の入射/反射のプロセスのシミュレーションによって、当該単位面に1回でも光の入射があったか否かを示すフラグであり、初期値は0であるが、1回でも光の入射があった場合には、フラグの値を1に変えるようにする。したがって、フラグの値が1になった単位面には、少なくとも1回は、光源からの直接光もしくは他の単位面からの反射光が照射されたことになり、当該単位面の輝度は0ではなくなる。逆に、シミュレーションが完了した時点で、フラグの値が初期値0のままである単位面は、1回も光の入射がなかった単位面ということになるので、当該単位面の輝度は0になり、後のステップでの削除対象になる。
もちろん、フラグの値としては、必ずしも0と1を用いる必要はなく、互いに区別可能な第1の値と第2の値であれば、任意の値を用いることができるが、コンピュータによる二進処理の便宜を考慮すると、上述の例のような0と1を用いるのが好ましい。こうして、ステップS12において、全単位面の判定フラグを初期値0に設定しておけば、この時点では、まだいずれの単位面にも光の入射はないことになる。
次に、ステップS13において、光源を構成する単位面の判定フラグを1に変える処理が行われる。前述したとおり、一般的なラジオシティ法では、光源も単位面として取り扱う処理が行われ、光源は少なくとも1枚の単位面を有し、自ら発光する物体として機能する。もちろん、光源自体は、本発明によるデータ削減の対象になるわけではないが、以下の判定処理の便宜上、まず、光源を構成する単位面については、判定フラグを1に変えておく。
続いて、ステップS14において、判定フラグが変化したばかりの単位面を着目単位面として抽出する処理が行われる。ここで、「判定フラグが変化したばかり」とは、このステップS14の直前のステップ(ステップS13もしくはステップS16)で判定フラグが変化したことを意味している。ステップS13からステップS14へと遷移した場合は、当然、光源を構成する単位面の判定フラグが0から1に変化したばかりなので、これら光源を構成する単位面のすべてが着目単位面として抽出されることになる。
そして、ステップS15では、ステップS14において、着目単位面が1つでも抽出されたか否かが判定され、1つでも抽出された場合にはステップS16へと遷移し、1つも抽出されなかった場合にはステップS17へと遷移する。
ステップS16へ遷移した場合は、着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である単位面を探し、そのような単位面があった場合には、当該単位面の判定フラグを1に変える処理が行われる。たとえば、全n個の単位面の中の第j番目の単位面Pjが着目単位面として抽出された場合を考えてみよう。この場合、着目単位面Pjは、判定フラグが変化したばかりの単位面であり、初めて光の入射があった単位面ということになる。一方、第i番目の単位面Piが、「判定フラグが現時点では0であり、かつ、第j番目の単位面PjへのフォームファクタFijが0ではない」という条件を満たす単位面として見つかったとすると、ステップS16では、この第i番目の単位面Piの判定フラグを1に変える処理が実行される。
この処理は、着目単位面Pjからの反射光が別な単位面Piへと入射する現象のシミュレーションに相当する。フォームファクタFijが0ではないので、着目単位面Pjから放出された全エネルギーBjのうち、単位面Piには、Bj×Fijなる0でない量のエネルギーが到達することになる。単位面Piの判定フラグを1に変えるのは、このように着目単位面Pjからの反射光の入射という現象に基づくものである。なお、フォームファクタFijが0の場合は、着目単位面Pjからの光が単位面Piに届くことは全くないので(たとえば、単位面Pj−Pi間に光の遮蔽物が存在するような場合)、単位面Piへの光の入射はなく、判定フラグは0のままにしておくことになる。また、単位面Piの判定フラグが既に1になっていたとしたら、判定フラグを変更する必要はない。ステップS16における「判定フラグが現時点では0であり、かつ、第j番目の単位面PjへのフォームファクタFijが0ではない」という条件は、このような点を考慮したものである。
こうして、ステップS16の処理が完了したら、再びステップS14からの処理が繰り返される。これは、1つの単位面で反射した光が別な単位面に入射し、その結果として発生する反射光が更に別な単位面に入射し、…というプロセスの繰り返しをシミュレートするためのものである。ステップS16で、新たに判定フラグが1に変えられた単位面が存在すれば、そのような単位面はステップS14において新たな着目単位面として抽出されることになる。
このような処理を、ステップS15において、新たな着目単位面が1つも抽出されない、と判断されるまで繰り返し実行する。そして、新たな着目単位面が1つも抽出されなかった場合には、ステップS15からステップS17へと分岐し、各単位面について、その時点での判定フラグの値をそのまま当該単位面の輝度とする処理が行われる。以上で、図11の流れ図におけるステップS5の各単位面の輝度計算の処理は完了である。結局、判定フラグが初期値0のままであった単位面については、輝度0が与えられることになり、図11の流れ図におけるステップS6で削除処理が行われる。
この図21の流れ図に示す輝度計算の手順は、各単位面の輝度が0か、0でないか、を判定するための手順として、極めて合理的であり、非常に小さな演算負担で必要な判定を行うことができるという特徴を有する。ステップS14〜S16の繰り返しループは、着目単位面、すなわち、直前のステップで判定フラグが0から1に変化したばかりの単位面についてのみ行う処理である。別言すれば、ある特定の単位面が、着目単位面としてステップS14で抽出され、当該単位面についてステップS16の処理が一度実行されると、当該単位面は二度と着目単位面として抽出されることはない。したがって、ステップS14〜S16に繰り返しループが存在するものの、同一の単位面を着目単位面として、ステップS16の処理が2回以上実行されることはないのである。
このように、1つの単位面を着目単位面とするステップS16の処理が、1回だけで済む理由は、ステップS16において、当該着目単位面からの反射光が直接届く可能性がある他のすべての単位面(すなわち、当該着目単位面へのフォームファクタが0ではない単位面)についての検討が行われるからである。ステップS16の処理において、判定フラグが0から1に変えられる単位面は、上述したとおり、「着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である」という条件を満たす単位面であり、このような条件を満たすすべての単位面は、このステップS16の処理において、判定フラグが0から1へ変えられることになる。したがって、着目単位面からの反射光が直接届く可能性があり、かつ、現時点では、まだ判定フラグが0であるような単位面は、このステップS16の処理によって、判定フラグが0から1に必ず変えられることになる。その結果、もはや着目単位面からの反射光の影響によって、判定フラグが0から1に変えられるような単位面は存在しないことになるので、当該着目単位面については、以後、ステップS16の処理を行う必要はないのである。
かくして、ステップS15において、着目単位面が1つも抽出されない、という状態に到達したと判断されれば、もはやステップS16を実施しても、判定フラグを0から1に変えるべく単位面は存在しないことになる。よって、その時点をもって、ステップS14〜S16の繰り返しループ処理を中止し、ステップS17へと分岐するわけである。
もちろん、この図21に示す手順は、本来のラジオシティ法からは若干逸脱しているので、個々の単位面の本来の輝度を求めることはできない。すなわち、この手順における各単位面についての唯一の輝度計算というべき処理は、ステップS16の処理であるが、この処理は、単に判定フラグを0から1に変えるだけの処理であり、通常のラジオシティ法で行われるエネルギーの蓄積処理は、この手順では全く行われることがない。したがって、最終的に個々の単位面について得られる結果は、輝度が0(判定フラグ=0)か、0でないか(判定フラグ=1)の2値情報として与えられるだけである。しかしながら、本発明の目的を達成する上では、「個々の単位面に関するデータを削除できるか否か」という2値情報があれば十分であり、この図21に示す手順に基づく輝度計算は、本発明においては極めて効率的な方法として有効に機能する。
最後に、図22に示す単純なモデルについて、図21の処理手順を適用した簡単なプロセスを述べておく。図22に示すモデルは、6個の単位面P1〜P6と、1個の光源L(1つの単位面として扱う)とを含むだけの単純なモデルであり、図にハッチングを施して示す部分は、遮光部として機能するものとする。また、ここでは説明の便宜上、各単位面を黒点として示すことにする。図の遮光部は、光の通過を阻害するので、2つの単位面の間を結ぶ直線が、この遮光部にかからなければ、両者間で光の直接的な行き来が可能であり(すなわち、両者間のフォームファクタが0ではない)、遮光部にかかってしまうと、両者間で光の直接的な行き来が阻害されることになる(すなわち、両者間のフォームファクタが0になる)。
まず、図21のステップS11では、これらすべての単位面P1〜P6,Lについて、相互のフォームファクタが計算される。もっとも、図21の流れ図に示す手順では、フォームファクタの値は、0か、0でないか、の判定に利用されるだけなので、実際には、フォームファクタの具体的な数値まで求める必要はなく、0か、0でないかの区別がつけば十分である。続くステップS12では、全単位面の判定フラグが初期値0に設定される。図23は、図22に示す各単位面P1〜P6,Lについての判定フラグの変遷を示す表である。図示のとおり、時点t0の段階では、いずれの単位面についても、判定フラグ=0に設定されている。
次のステップS13では、光源を構成する単位面の判定フラグが1に変えられる。図23に示す時点t1は、このときの状態を示している。すなわち、時点t1では、光源Lについての判定フラグが、0から1に変わっている。他の単位面P1〜P6の判定フラグは、初期値0のままである。そして、ステップS14において、判定フラグが変化したばかりの単位面が着目単位面として抽出される。この場合、光源Lが着目単位面として抽出されることになる。そして、ステップS15を経てステップS16が実行され、着目単位面Lへのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である単位面が捜索される。図22の例では、着目単位面Lへのフォームファクタが0でない単位面(すなわち、着目単位面Lから直接光が届く単位面)は、単位面P1のみである。この単位面P1の判定フラグはまだ0であるから、ステップS16の条件を満たすことになり、単位面P1の判定フラグが0から1に変えられる。図23に示す時点t2は、このときの状態を示している。なお、図23に太線で示す欄は、その時点における着目単位面である。時点t2における着目単位面は、図示のとおり、時点t1において判定フラグが変化したばかりの光源Lである。
続いて、再びステップS14へと戻り、判定フラグが変化したばかりの単位面が着目単位面として抽出される。この場合、時点t2において判定フラグが変化したばかりの単位面P1が着目単位面として抽出されることになる。そして、ステップS15を経てステップS16が実行され、着目単位面P1へのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である単位面が捜索される。図22の例では、着目単位面P1へのフォームファクタが0でない単位面(すなわち、着目単位面P1から直接光が届く単位面)は、単位面L,P2,P3のみである。このうち、単位面Lの判定フラグは既に1になっているため、ステップS16の条件を満たさないことになり、ここでは単位面Lに関しては何も操作は行わない。残る単位面P2,P3の判定フラグはまだ0であるから、ステップS16の条件を満たすことになり、単位面P2,P3の判定フラグが0から1に変えられる。図23に示す時点t3は、このときの状態を示している。
次に、再びステップS14へと戻り、判定フラグが変化したばかりの単位面が着目単位面として抽出される。今度は、時点t3において判定フラグが変化したばかりの単位面P2,P3が着目単位面として抽出されることになる。そして、ステップS15を経てステップS16が実行され、着目単位面P2もしくはP3へのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である単位面が捜索される。図22の例では、着目単位面P2へのフォームファクタが0でない単位面(すなわち、着目単位面P2から直接光が届く単位面)は、単位面P1のみであるが、単位面P1の判定フラグは既に1となっている。一方、着目単位面P3へのフォームファクタが0でない単位面(すなわち、着目単位面P3から直接光が届く単位面)は、単位面P1およびP4であるが、単位面P1の判定フラグは既に1となっている。結局、ステップS16では、新たに単位面P4の判定フラグが0から1に変えられる。図23に示す時点t4は、このときの状態を示している。
ここで、再びステップS14へと戻り、判定フラグが変化したばかりの単位面が着目単位面として抽出される。ここでは、時点t4において判定フラグが変化したばかりの単位面P4が着目単位面として抽出されることになる。そして、ステップS15を経てステップS16が実行され、着目単位面P4へのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である単位面が捜索される。図22の例では、着目単位面P4へのフォームファクタが0でない単位面(すなわち、着目単位面P4から直接光が届く単位面)は、単位面P3およびP5であるが、単位面P3の判定フラグは既に1となっている。結局、ステップS16では、新たに単位面P5の判定フラグが0から1に変えられる。図23に示す時点t5は、このときの状態を示している。
続いて、もう一度、ステップS14へと戻り、判定フラグが変化したばかりの単位面が着目単位面として抽出される。ここでは、時点t5において判定フラグが変化したばかりの単位面P5が着目単位面として抽出されることになる。そして、ステップS15を経てステップS16が実行され、着目単位面P5へのフォームファクタが0でなく、かつ、自分自身の判定フラグが0である単位面が捜索される。図22の例では、着目単位面P5へのフォームファクタが0でない単位面(すなわち、着目単位面P5から直接光が届く単位面)は、単位面P4のみであるが、単位面P4の判定フラグは既に1となっている。結局、ステップS16の条件を満足させる単位面は存在しないことになる。図23に示す時点t6は、このときの状態を示しており、この時点では、判定フラグの変化は全く生じないことになる。
最後に、再びステップS14へと戻るが、判定フラグが変化したばかりの単位面は、もはや存在しないことになる(時点t6では、判定フラグの変化は生じていない)。そこで、ステップS14では、新たな着目単位面は1つも抽出されないことになり、ステップS15からステップS17への分岐が行われる。かくして、図23の時点t6に示すように、単位面P1〜P5については輝度1が与えられ、単位面P6については輝度0が与えられることになる。最終的に、輝度0が与えられた単位面P6に関するデータは削除される。
<<< §5.三次元形状データの削減装置の構成 >>>
続いて、本発明に係る三次元形状データの削減装置の構成および動作を説明する。図24は、この削減装置の基本構成を示すブロック図である。この削減装置の基本機能は、処理前データDbeforeとして与えられた物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行い、処理後に残ったデータを処理後データDafterとして出力することである。
図示のとおり、この削減装置は、処理前データ格納手段110、視点配置可能領域設定手段120、包囲体データ設定手段130、輝度演算手段140、データ削除手段150なる構成要素からなる。
まず、処理前データ格納手段110は、処理対象となる物体の三次元形状データを、処理前データDbeforeとして入力し、これを格納する構成要素であり、実用上は、コンピュータ用のデータ読込手段および記憶装置によって構成すればよい。
視点配置可能領域設定手段120は、オペレータの指示に基づいて、処理前データDbeforeによって示される物体が配置された三次元仮想空間に、光学的な連続領域からなる視点配置可能領域を特定するための何らかのデータを設定する構成要素である。前述したように、この視点配置可能領域を設定するための指示は、物体が配置された三次元仮想空間上での所定の指示点を指定する入力によって行うことができる。この場合、当該指示点の座標データによって、視点配置可能領域が特定されることになる。
たとえば、処理前データ格納手段110に、図8に示すような物体60の三次元形状データが処理前データDbeforeとして格納されている場合、視点配置可能領域設定手段120は、この処理前データDbeforeに基づいて、図8に示すように、物体60をディスプレイ画面上に表示し、オペレータからの指示点入力を受け付ける処理を行えばよい。オペレータが、このディスプレイ画面上で、図8に示すように、点Lを指示点とする入力を行ったとすれば、この点Lの座標値(物体60に対する相対的な位置が認識できる座標値であればよい)が、視点配置可能領域を設定するためのデータということになる。この場合、当該指示点Lの空間位置と光学的に連続する領域(図8にドットによるハッチングを施した物体外部の領域)が、視点配置可能領域として設定されたことになる。一方、オペレータが、ディスプレイ画面上で、図12に示すように、点Lを指示点とする入力を行ったとすれば、この点Lの座標値が、視点配置可能領域を設定するためのデータということになる。この場合、当該指示点Lの空間位置と光学的に連続する領域(図12にドットによるハッチングを施した物体内部の領域)が、視点配置可能領域として設定されたことになる。
包囲体データ設定手段130は、物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する構成要素である。たとえば、図8に示す例の場合、物体60の周囲を囲う包囲体70が設定されている。前述したとおり、包囲体70は、光を反射する内面を有し、物体60の周囲を囲うことができるものであれば、形状および大きさは不問である。この包囲体70を定義するための包囲体データは、オペレータ側で用意して、コンピュータに入力することも可能である。この場合、包囲体データ設定手段130は、オペレータが用意した包囲体データを入力し、格納する機能を果たすことになる。
あるいは、包囲体データ設定手段130に対して、形状や大きさを示すオペレータの指示入力を与えるようにしておき、この指示入力に基づいて、包囲体データ設定手段130が所定の包囲体データを作成できるようにすることも可能である。たとえば、包囲体データ設定手段130に、図8に示すように、物体60をディスプレイ画面上に表示させる機能をもたせておき、この画面上でオペレータが包囲体70の形状や大きさを指定する指示入力を行うと、この指示入力に基づいて、包囲体データ設定手段130が、図8に示すような包囲体70を設定することができるようにしておけばよい。
また、包囲体データ設定手段130に、所定のアルゴリズムに基づいて、オペレータの指示なしに自動的に包囲体データを作成する機能をもたせておくことも可能である。たとえば、物体60の三次元形状データを、XYZ三次元座標系上に取り込んだ場合であれば、当該形状データのX座標値の最大値Xmaxおよび最小値Xmin、Y座標値の最大値Ymaxおよび最小値Ymin、Z座標値の最大値Zmaxおよび最小値Zminを求め、X=Xmax+α1、X=Xmin−α2、Y=Ymax+α3、Y=Ymin−α4、Z=Zmax+α5、Z=Zmin−α6なる各方程式で表される6つの平面(α1〜α6は、任意の定数)をもった直方体を定義し、当該直方体の内面に所定の反射率を定義すれば、これを包囲体データとして利用することが可能である。このようなアルゴリズムで包囲体を設定するようにしておけば、オペレータの指示なしに、コンピュータが物体60の三次元形状データに基づいて、包囲体70の包囲体データを自動的に作成することができる。
なお、§3で述べたとおり、包囲体は、視点配置可能領域が物体外部に設定された場合に必要なものであり、視点配置可能領域が物体内部に設定された場合には、包囲体を設定する必要はない。したがって、必ず物体内部に視点配置可能領域を設定するという前提であれば、包囲体データ設定手段130は省略することが可能である。
輝度演算手段140は、所定位置に光源を設定し、この光源から発せられた照明光のエネルギーが、物体および包囲体(設定されている場合)の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、物体各部の輝度を演算する機能を果たす構成要素である。ここで、光源は、視点配置可能領域設定手段120によって設定された視点配置可能領域内に設定する必要がある。したがって、視点配置可能領域が、物体内部に設定されていた場合には、光源も物体内部に設定すればよい。逆に、視点配置可能領域が、物体外部に設定されていた場合には、光源も物体外部に設定すればよい。ただ、包囲体が設定されている場合は、光源を包囲体の内部に設定する必要がある。
このような光源位置の設定は、オペレータの指示入力に基づいて行うようにしてもよいし、輝度演算手段140による自動設定が行われるようにしてもかまわない。たとえば、視点配置可能領域設定手段120に、上述したように、オペレータが入力した指示点に基づいて視点配置可能領域を設定する機能をもたせておいた場合は、この指示点に光源を設定するようにすればよい。具体的には、図8に示すような点Lが、視点配置可能領域を指示する点として視点配置可能領域設定手段120に入力されたのであれば、この点Lに光源を配置すればよいし、図12に示すような点Lが、視点配置可能領域を指示する点として視点配置可能領域設定手段120に入力されたのであれば、この点Lに光源を配置すればよい。いずれの場合も、光源は、必ず視点配置可能領域内の点ということになる。
もちろん、輝度演算手段140に、オペレータからの指示入力なしに、自動的に光源設定を行う機能をもたせておくことも可能である。この場合は、視点配置可能領域設定手段120内に設定された視点配置可能領域を所定のアルゴリズムで解析し、この視点配置可能領域内の1点に、光源を自動設定すればよい。光源は、必ずしも空間上の点である必要はなく、物体表面上の1点であってもかまわない。したがって、視点配置可能領域が、物体の外側に設定されている場合には、物体の外部表面上の任意の1点を自動的に光源として設定することができる。同様に、視点配置可能領域が、物体の内側に設定されている場合には、物体の内部表面上の任意の1点を自動的に光源として設定することができる。
こうして、光源の設定が完了すると、輝度演算手段140は、この光源から発せられた照明光を用いて、大域照明モデルに基づく照明シミュレーションを実施し、物体各部の輝度を演算する。このような大域照明モデルを用いた照明シミュレーションによる具体的な輝度計算方法は、既に§4で述べたとおりである。
すなわち、一般的なラジオシティ法を利用して輝度を求めるのであれば、光源を1つの単位面として取り扱い、第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する処理を実行し、第i番目の単位面から放出されるエネルギーBiを、当該第i番目の単位面自身から生成され放出される成分Ei、当該第i番目の単位面の反射率ρi、第j番目の単位面から放出される全エネルギーBjを用いて、
Bi=Ei+ρi・Σj=1〜nFij・Bj
なる式で求めるようにし、光源から発せられた照明光のエネルギーが各単位面で繰り返し反射される現象のシミュレーションを、フォームファクタおよび上記式を用いて実行することにより、物体各部に位置する単位面についての輝度が求められる。
特に、図21の流れ図に示す手法を用いるのであれば、全単位面について、第1の値(たとえば、「0」)を初期値としてもつ判定フラグを設定し、光源を構成する単位面の判定フラグを第2の値(たとえば、「1」)に変える処理を実行し、更に、判定フラグが第1の値から第2の値に変化したばかりの単位面を着目単位面として抽出し、この着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが第1の値である単位面についての判定フラグを第2の値に変える作業を、着目単位面が抽出されなくなるまで繰り返し実行し、最後に、それぞれの単位面の判定フラグの値を当該単位面の輝度として与えるようにすればよい。この手法によれば、輝度は、0か、0でないか、の二値情報として与えられることになる。
データ削除手段150は、処理前データのうち、輝度演算手段140により求められた輝度が0になる部分に関するデータを削除し、残りのデータを、視点配置可能領域を示すデータとともに、処理後データDafterとして出力する構成要素である。ポリゴンを複数に分割して単位面を構成したり、パラメトリック曲面を複数に分割して単位面を構成したりした場合には、前述したように、構成要素となるすべての単位面の輝度が0となったポリゴンやパラメトリック曲面を削除対象とすればよい。
以上、図24のブロック図を参照しながら、本発明に係る物体の三次元形状データの削減装置の基本構成を説明したが、この削減装置は、実際にはコンピュータに専用のプログラムを組み込むことにより実現される装置であり、この装置を構成する各手段は、コンピュータのハードウエアとソフトウエアとの組み合わせにより構築されることになる。
この削減装置を利用すれば、オペレータが、処理対象となる物体の三次元形状データを処理前データDbeforeとしてこの装置に入力し、視点配置可能領域設定手段120に対して、視点配置可能領域を設定するための指示入力を行えば、処理後データDafterが自動的に生成されることになる。処理後データDafterには、データ削減後の物体の三次元形状データとともに、視点配置可能領域を示すデータが含まれているので、この処理後データDafterを利用する利用者は、どの領域に視点を配置して利用すればよいかを認識することが可能である。
この削減装置は、特に、CADを用いて設計された物体に関する三次元形状データについて、データの削減を行う場合に有用である。オペレータは、当該物体の設計に用いたCADデータを用意し、このCADデータを処理前データDbeforeとして与えることにより、処理後データDafterを得ることができるようになる。
たとえば、CADを用いて設計された時計について、カタログに収録するための画像を用意する必要があった場合を考えよう。このような場合、従来は、実物の時計を所定角度から撮影し、得られた撮影画像をカタログに掲載するのが一般的であった。本発明に係るデータ削減装置を利用すれば、まず、当該時計の設計に用いたCADデータをそのまま流用し、これを処理前データDbeforeとして入力し、「物体の外側」を視点配置可能領域として設定すればよい。これにより、当該時計を外側から観察したときにのみ必要なデータと、当該データを利用する場合には物体の外側に視点を配置するという条件が必要であることを示すデータ(視点配置可能領域を示すデータ)と、を含む処理後データDafterが自動作成されることになる。この処理後データDafterを、カタログ作成者に提供すれば、カタログ作成者は、当該データに基づいて、所定のレンダリング処理を行い、カタログに掲載するための二次元画像を作成することができる。もちろん、このレンダリング処理時には、視点配置可能領域内に視点を配置することになる。
本発明におけるデータ削減は、視点配置条件を制限する、という根本原理に基づくものであるから、削減後のデータを利用する際には、当該視点配置条件の下で利用することが前提となる。処理後データDafter内に、視点配置可能領域を示すデータを含ませておくことにより、利用者に対して、この視点配置条件を明確に示すことが可能になる。
もちろん、上述の時計の例のように、物体の外側あるいは内側という単純概念で視点配置条件を示すことができる場合には、視点配置可能領域を示すデータを、処理後データDafter内に入れることを省いてもかまわない。しかしながら、非常に複雑な三次元形状データの場合には、視点配置可能領域を示すデータを、処理後データDafter内に入れるようにするのが好ましい。たとえば、地下牢を探検するようなゲームの場合、地下の各部屋の構造を示すために多数の光学的な閉領域をもった三次元形状データが利用される。このような場合、処理後データDafter内に視点配置可能領域を示すデータを含ませておくことは極めて重要になる。
<<< §6.種々の変形例 >>>
最後に、本発明のいくつかの変形例を述べておく。
(1) 削除判定にしきい値を設定する変形例
これまで述べてきた実施形態では、各単位面の輝度が0か、0でないかを判定し、輝度が0の単位面に関するデータを削除するという処理を行っていた。これは、輝度が0でない単位面には、設定した光源からの光がわずかであっても到達しているのであるから、当該単位面は、視点に対して何らかの影響を与えることになる、という論理に基づくものである。しかしながら、視点に対する影響が極めて小さな単位面については、削除しても重大な影響が生じることがないのも事実である。
たとえば、表面に虫食い穴が形成されているリンゴがあったとする。この虫食い穴は、非常に径が小さく深いものであったとすると、この虫食い穴の壁面からの反射光が、リンゴ全体の見え方に与える影響は極めて小さいと言える。したがって、論理的には、この虫食い穴の壁面は、リンゴ表面に連なる面(リンゴの外部表面)であったとしても、実用上は、削除してしまっても重大な支障は生じない。実際、リンゴの外側に光源を設定した大域照明モデルによるシミュレーションを行って輝度を計算すると、虫食い穴の壁面を形成する単位面の輝度は、リンゴ表面を形成する単位面の輝度よりも極めて小さくなるであろう。
そこで、データを削除するか否かの判定基準を、0ではなく、所定のしきい値に設定し、輝度演算により求められた輝度が、所定のしきい値以下となる部分に関するデータを削除する、というような運用を行えば、上述の例のような虫食い穴の壁面についても、データ削除の対象とすることが可能になる。これまで述べてきた実施形態は、データを削除するか否かの判定に用いる輝度のしきい値を0に設定し、輝度が0となる部分に関するデータを削除する運用と言うことができる。
(2) 視点配置可能領域を固定する取り扱い
前述した実施形態では、視点配置可能領域の設定処理が必須となっていたが、「視点配置可能領域を常に物体の外部の領域とする」という運用や、「視点配置可能領域を常に物体の内部の領域とする」という運用を行い、視点配置可能領域を固定する取り扱いを行うのであれば、視点配置可能領域の設定処理は必ずしも必要ではない。たとえば、前述したように、CADを用いて設計された時計について、カタログに収録するための二次元画像を作成するという用途のみを考えた場合、処理後データDafterの利用形態は、視点を時計外部に設定したレンダリングを行う形態に限定されるであろう。このような利用形態を前提とする場合であれば、「視点配置可能領域は常に物体の外部」ということになるので、図11に示す流れ図におけるステップS2の視点配置可能領域の設定処理は不要になり、図24に示す装置における視点配置可能領域設定手段120も不要になる。また、図11に示す流れ図のステップS7や、図24に示す装置におけるデータ削除手段150では、処理後データに、視点配置可能領域を示すデータを添付する必要はなくなる。
本発明の原理上、各単位面についての輝度演算を行う際の光源位置は、必ず視点配置可能領域内にする必要があるが、「視点配置可能領域は常に物体の外部」という前提であれば、光源位置も常に物体の外部に設定すればよいことになる。逆に、「視点配置可能領域は常に物体の内部」という前提であれば、光源位置も常に物体の内部に設定すればよいことになる。
この場合、利用者に提供される処理後データDafterには、視点配置可能領域を示すデータが含まれていないことになるが、利用者に対して処理後データDafterを提供する際には、「視点配置可能領域は常に物体の外部」もしくは「視点配置可能領域は常に物体の内部」という前提でデータの提供を行うようにし、利用者が、この前提を認識してデータを利用するのであれば、重大な支障は生じない。
(3) 他の大域照明モデルを用いた輝度演算
上述の実施形態では、大域照明モデルを用いた輝度演算として、最も一般的なラジオシティ法に準じた方法を述べたが、本発明における照明シミュレーションは、大域照明モデルを前提としたシミュレーションであれば、必ずしもラジオシティ法に準じた方法を用いる必要はない。たとえば、大域照明モデルを用いた別なシミュレーションの手法として、拡散反射成分だけでなく鏡面反射成分も考慮した取り扱いを行うフォトンマッピング法なども知られているが、本発明を実施する上では、もちろん、このフォトンマッピング法を用いて輝度計算を行ってもかまわない。
本発明の基本原理を示す、複数の物体が配置された三次元仮想空間の側面図(一部分は側断面図)である。 図1に示す三次元仮想空間上に配置された各物体に対するレンダリング処理の概念を示す側面図(一部分は側断面図)である。 図1に示す三次元仮想空間において、光源Lからの光が複数回反射して視点E1へ到達するプロセスを示す側面図(一部分は側断面図)である。 図1に示す三次元仮想空間内に設定された複数とおりの視点位置を示す側面図(一部分は側断面図)である。 図1に示す三次元仮想空間において、視点E1からの観察に影響を与えない部分を示す側面図(一部分は側断面図)である。 図1に示す三次元仮想空間について設定された視点配置可能領域の一例を示す側面図(一部分は側断面図)である。 単純な物体60のみを配置した三次元仮想空間モデルについての視点配置可能領域の設定例を示す側断面図である。 図7に示す三次元仮想空間モデルに包囲体20を設定した状態を示す側断面図である。 図8に示すモデルにおける光の反射プロセスの一例を示す側断面図である。 図8に示すモデルにおいて、不要なデータを削除した後に残る残存部65を示す側断面図である。 本発明に係る三次元形状データの削減方法の基本手順を示す流れ図である。 単純な物体10のみを配置した三次元仮想空間モデルについて、物体内部に視点配置可能領域を設定した例を示す側断面図である。 図12に示すモデルにおいて、不要なデータを削除した後に残る残存部66を示す側断面図である。 内部に複数の空洞部81,82を有する物体80を示す側断面図である。 図1に示す三次元仮想空間上における光学的閉領域を示す側面図(一部分は側断面図)である。 図1に示す三次元仮想空間上に配置された各物体の位相幾何学的な構造を示す構造断面図である。 図16に示す構造断面図において、光学的閉領域SP1を視点配置可能領域とした場合の処理後データに対応する部分を示す図である。 図16に示す構造断面図において、光学的閉領域SP2〜SP5を視点配置可能領域とした場合の処理後データに対応する部分を示す図である。 ポリゴンの集合体として表現された物体の三次元形状データの概念図である。 パラメトリック曲面の集合体として表現された物体の三次元形状データの概念図である。 図11のステップS5の具体的な処理手順を示す流れ図である。 図21の処理手順の具体的なプロセスを示す平面図である。 図22に示す具体的なプロセスにおける判定フラグの変遷を示す表である。 本発明に係る三次元形状データの削減装置の基本構成を示すブロック図である。
符号の説明
10…テーブル
20…花瓶
30…花
40…戸棚下部
41…瓶
42…缶詰
50…戸棚上部
51…瓶
52…缶詰
60…物体
65,66…残存部
70…包囲体
80…物体
81,82…空洞部
110…処理前データ格納手段
120…視点配置可能領域設定手段
130…包囲体データ作成手段
140…輝度演算手段
150…データ削除手段
C1〜C3…パラメトリック曲面
Dbefore…処理前データ
Dafter…処理後データ
E1〜E6…視点
G…ガラス戸
L,L1,L2…光源
P1〜P33…単位面
R…部屋(包囲体)
S1〜S17…流れ図の各ステップ
SP1〜SP5…光学的閉領域
t0〜t6…輝度演算処理の各時点

Claims (22)

  1. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う装置であって、
    処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
    前記物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定手段と、
    前記物体の外部、かつ、前記包囲体の内部の位置に光源を設定し、この光源から発せられた照明光のエネルギーが、前記物体および前記包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算手段と、
    前記処理前データのうち、前記輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを処理後データとして出力するデータ削除手段と、
    を備えることを特徴とする物体の三次元形状データの削減装置。
  2. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う装置であって、
    処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
    前記物体の内部の位置に光源を設定し、この光源から発せられた照明光のエネルギーが、前記物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算手段と、
    前記処理前データのうち、前記輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを処理後データとして出力するデータ削除手段と、
    を備えることを特徴とする物体の三次元形状データの削減装置。
  3. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う装置であって、
    処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
    前記処理前データによって示される物体が配置された三次元仮想空間に、直接もしくは間接的に互いに光が行き来できる空間上での連続領域からなる視点配置可能領域を設定する視点配置可能領域設定手段と、
    前記物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定手段と、
    前記視点配置可能領域に属し、かつ、前記包囲体の内部の位置に、光源を設定し、この光源から発せられた照明光のエネルギーが、前記物体および前記包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算手段と、
    前記処理前データのうち、前記輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを、前記視点配置可能領域を示すデータとともに、処理後データとして出力するデータ削除手段と、
    を備えることを特徴とする物体の三次元形状データの削減装置。
  4. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う装置であって、
    処理対象となる物体の三次元形状データを、処理前データとして入力し、これを格納する処理前データ格納手段と、
    前記処理前データによって示される物体が配置された三次元仮想空間に、前記物体内部に位置する領域であって当該領域の内部では光が自由に行き来できるが外部への行き来が阻害された領域として、視点配置可能領域を設定する視点配置可能領域設定手段と、
    前記視点配置可能領域内に、光源を設定し、この光源から発せられた照明光のエネルギーが、前記物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算手段と、
    前記処理前データのうち、前記輝度演算手段により求められた輝度が所定のしきい値以下となる部分に関するデータを削除し、残りのデータを、前記視点配置可能領域を示すデータとともに、処理後データとして出力するデータ削除手段と、
    を備えることを特徴とする物体の三次元形状データの削減装置。
  5. 請求項3または4に記載の削減装置において、
    視点配置可能領域設定手段が、三次元仮想空間上の指示点をオペレータから入力する機能を有し、前記指示点の空間位置に対して直接もしくは間接的に互いに光が行き来できる空間上での連続領域を視点配置可能領域として設定することを特徴とする物体の三次元形状データの削減装置。
  6. 請求項5に記載の削減装置において、
    輝度演算手段が、視点配置可能領域設定手段によって入力された指示点位置に、光源を設定することを特徴とする物体の三次元形状データの削減装置。
  7. 請求項1〜6のいずれかに記載の削減装置において、
    データ削除手段が、削除するか否かの判定に用いる輝度のしきい値を0に設定し、輝度が0となる部分に関するデータを削除することを特徴とする物体の三次元形状データの削減装置。
  8. 請求項1〜7のいずれかに記載の削減装置において、
    処理前データ格納手段が、物体の三次元形状データをポリゴンの集合体として入力し、これを格納する機能を有し、
    輝度演算手段が、個々のポリゴンを1つの単位面として取り扱い、個々の単位面ごとに輝度を求める演算を行い、
    データ削除手段が、求められた輝度が所定のしきい値以下となる単位面を構成するポリゴンのデータを削除することを特徴とする物体の三次元形状データの削減装置。
  9. 請求項1〜7のいずれかに記載の削減装置において、
    処理前データ格納手段が、物体の三次元形状データをポリゴンの集合体として入力し、これを格納する機能を有し、
    輝度演算手段が、個々のポリゴンを複数の単位面に分割し、個々の単位面ごとに輝度を求める演算を行い、
    データ削除手段が、求められた輝度が所定のしきい値以下となる単位面のみから構成されるポリゴンのデータを削除することを特徴とする物体の三次元形状データの削減装置。
  10. 請求項1〜7のいずれかに記載の削減装置において、
    処理前データ格納手段が、物体の三次元形状データを、所定の関数およびこの関数で用いられるパラメータ値によって表現されるパラメトリック曲面の集合体として入力し、これを格納する機能を有し、
    輝度演算手段が、個々のパラメトリック曲面を複数の単位面に分割もしくは近似し、個々の単位面ごとに輝度を求める演算を行い、
    データ削除手段が、求められた輝度が所定のしきい値以下となる単位面のみから構成されるパラメトリック曲面のデータを削除することを特徴とする物体の三次元形状データの削減装置。
  11. 請求項8〜10のいずれかに記載の削減装置において、
    輝度演算手段が、個々の単位面ごとに、光源もしくは他の単位面から受け取るエネルギーおよび他の単位面へと放出するエネルギーをそれぞれ計算し、両者の差を蓄積エネルギーとし、個々の単位面についての蓄積エネルギーを当該単位面の輝度とする演算を行うことを特徴とする物体の三次元形状データの削減装置。
  12. 請求項8〜10のいずれかに記載の削減装置において、
    輝度演算手段が、
    第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する機能と、
    第i番目の単位面から放出されるエネルギーBiを、当該第i番目の単位面自身から生成され放出される成分Ei、当該第i番目の単位面の反射率ρi、第j番目の単位面から放出される全エネルギーBjを用いて、
    Bi=Ei+ρi・Σj=1〜nFij・Bj
    なる式で求める機能と、
    を備え、光源から発せられた照明光のエネルギーが各単位面で繰り返し反射される現象のシミュレーションを、前記フォームファクタおよび前記式を用いて実行することを特徴とする物体の三次元形状データの削減装置。
  13. 請求項8〜10のいずれかに記載の削減装置において、
    輝度演算手段が、光源を1つの単位面として取り扱い、
    第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する処理と、
    全単位面について、第1の値をもつ判定フラグを初期値として設定する処理と、
    光源を構成する単位面の判定フラグを第2の値に変える処理と、
    判定フラグが第1の値から第2の値に変化したばかりの単位面を着目単位面として抽出し、前記着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが第1の値である単位面についての判定フラグを第2の値に変える作業を、着目単位面が抽出されなくなるまで繰り返し実行する処理と、
    判定フラグが第1の値のままである単位面に対して、所定のしきい値以下となる輝度を与える処理と、
    を行う機能を有することを特徴とする物体の三次元形状データの削減装置。
  14. 請求項1〜13のいずれかに記載の削減装置としてコンピュータを機能させるためのプログラム。
  15. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う方法であって、
    処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
    包囲体データ設定手段が、前記物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定ステップと、
    輝度演算手段が、前記物体の外部、かつ、前記包囲体の内部の位置に設定された光源から発せられた照明光のエネルギーが、前記物体および前記包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算ステップと、
    データ削除手段が、前記処理前データのうち、前記輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
    前記データ削除手段が、前記データ削除ステップの後に残ったデータを、処理後データとして出力するデータ出力ステップと、
    を有することを特徴とする物体の三次元形状データの削減方法。
  16. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う方法であって、
    処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
    輝度演算手段が、前記物体の内部の位置に設定された光源から発せられた照明光のエネルギーが、前記物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算ステップと、
    データ削除手段が、前記処理前データのうち、前記輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
    前記データ削除手段が、前記データ削除ステップの後に残ったデータを、処理後データとして出力するデータ出力ステップと、
    を有することを特徴とする物体の三次元形状データの削減方法。
  17. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う方法であって、
    処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
    視点配置可能領域設定手段が、オペレータの指示に基づいて、前記処理前データによって示される物体が配置された三次元仮想空間に、直接もしくは間接的に互いに光が行き来できる空間上での連続領域からなる視点配置可能領域を設定する視点配置可能領域設定ステップと、
    包囲体データ設定手段が、前記物体の周囲を囲う包囲体の三次元形状データである包囲体データを設定する包囲体データ設定ステップと、
    輝度演算手段が、前記視点配置可能領域に属し、かつ、前記包囲体の内部の位置に、光源を設定し、この光源から発せられた照明光のエネルギーが、前記物体および前記包囲体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算ステップと、
    データ削除手段が、前記処理前データのうち、前記輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
    前記データ削除手段が、前記データ削除ステップの後に残ったデータを、前記視点配置可能領域を示すデータとともに、処理後データとして出力するデータ出力ステップと、
    を有することを特徴とする物体の三次元形状データの削減方法。
  18. 物体の三次元形状データについて、視点配置条件を定めることにより、当該条件下で利用する限りは不要となるデータを削除する処理を行う方法であって、
    処理前データ格納手段が、処理対象となる物体の三次元形状データを、処理前データとして入力する処理前データ入力ステップと、
    視点配置可能領域設定手段が、オペレータの指示に基づいて、前記処理前データによって示される物体が配置された三次元仮想空間に、前記物体内部に位置する領域であって当該領域の内部では光が自由に行き来できるが外部への行き来が阻害された領域として、視点配置可能領域を設定する視点配置可能領域設定ステップと、
    輝度演算手段が、前記視点配置可能領域内に、光源を設定し、この光源から発せられた照明光のエネルギーが、前記物体の各部で繰り返し反射することを考慮した照明シミュレーションを実施し、前記物体各部の輝度を演算する輝度演算ステップと、
    データ削除手段が、前記処理前データのうち、前記輝度演算ステップにより求められた輝度が所定のしきい値以下となる部分に関するデータを削除するデータ削除ステップと、
    前記データ削除手段が、前記データ削除ステップの後に残ったデータを、前記視点配置可能領域を示すデータとともに、処理後データとして出力するデータ出力ステップと、
    を有することを特徴とする物体の三次元形状データの削減方法。
  19. 請求項15〜18のいずれかに記載の削減方法において、
    処理前データ格納手段が、処理対象となる物体の三次元形状データとして、当該物体の設計に用いたCADデータを入力するようにしたことを特徴とする物体の三次元形状データの削減方法。
  20. 請求項15〜19のいずれかに記載の削減方法において、
    輝度演算ステップにおいて、輝度演算手段が、処理前データを複数の単位面の集合体として認識し、光源を1つの単位面として認識し、
    第j番目の単位面から放出された全エネルギーBjのうち、第i番目の単位面に到達するエネルギーの占める割合を示すフォームファクタFijを、「第i番目の単位面から第j番目の単位面へのフォームファクタ」として、全n個の単位面のすべての組み合わせについて予め計算する段階と、
    全単位面について、第1の値をもつ判定フラグを初期値として設定する段階と、
    光源を構成する単位面の判定フラグを第2の値に変える段階と、
    判定フラグが第1の値から第2の値に変化したばかりの単位面を着目単位面として抽出し、前記着目単位面へのフォームファクタが0でなく、かつ、自分自身の判定フラグが第1の値である単位面についての判定フラグを第2の値に変える作業を、着目単位面が抽出されなくなるまで繰り返し実行する段階と、
    判定フラグが第1の値のままである単位面に対して、所定のしきい値以下となる輝度を与える段階と、
    を行うことを特徴とする物体の三次元形状データの削減方法。
  21. 請求項15〜20のいずれかに記載の削減方法において、
    処理前データ格納手段が、処理前データ入力ステップで、処理前データを、所定の関数およびこの関数で用いられるパラメータ値によって表現されるパラメトリック曲面の集合体として入力するようにし、
    輝度演算ステップで、輝度演算手段が、個々のパラメトリック曲面を複数の単位面に分割もしくは近似する処理を行い、個々の単位面ごとに輝度を求める演算を行うようにし、
    データ削除手段が、データ削除ステップで、求められた輝度が所定のしきい値以下となる単位面のみから構成されるパラメトリック曲面のデータを削除することを特徴とする物体の三次元形状データの削減方法。
  22. 請求項15〜21のいずれかに記載の削減方法において、
    データを削除するか否かの判定に用いる輝度のしきい値を0に設定し、輝度が0となる部分に関するデータを削除することを特徴とする物体の三次元形状データの削減方法。
JP2005206510A 2005-07-15 2005-07-15 物体の三次元形状データの削減装置および削減方法 Expired - Fee Related JP4779479B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005206510A JP4779479B2 (ja) 2005-07-15 2005-07-15 物体の三次元形状データの削減装置および削減方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005206510A JP4779479B2 (ja) 2005-07-15 2005-07-15 物体の三次元形状データの削減装置および削減方法

Publications (2)

Publication Number Publication Date
JP2007026036A JP2007026036A (ja) 2007-02-01
JP4779479B2 true JP4779479B2 (ja) 2011-09-28

Family

ID=37786709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005206510A Expired - Fee Related JP4779479B2 (ja) 2005-07-15 2005-07-15 物体の三次元形状データの削減装置および削減方法

Country Status (1)

Country Link
JP (1) JP4779479B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4997265B2 (ja) * 2009-04-07 2012-08-08 シャープ株式会社 構成部品データ簡略化装置、構成部品データ簡略化方法および構成部品データ簡略化プログラム
CN105139445B (zh) * 2015-08-03 2018-02-13 百度在线网络技术(北京)有限公司 场景重建方法及装置
JP6202118B2 (ja) * 2016-03-09 2017-09-27 日本電気株式会社 描画装置、描画方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3554616B2 (ja) * 1994-12-13 2004-08-18 富士通株式会社 ラジオシティ法を用いる描画方法および装置
US6429867B1 (en) * 1999-03-15 2002-08-06 Sun Microsystems, Inc. System and method for generating and playback of three-dimensional movies
JP2003346176A (ja) * 2002-05-24 2003-12-05 Telecommunication Advancement Organization Of Japan ラジオシティのメッシュ分割方法及びその装置

Also Published As

Publication number Publication date
JP2007026036A (ja) 2007-02-01

Similar Documents

Publication Publication Date Title
US11704863B2 (en) Watertight ray triangle intersection
US11804000B2 (en) Query-specific behavioral modification of tree traversal
US20230237729A1 (en) Method for continued bounding volume hierarchy raversal on intersection without shader intervention
JP4769732B2 (ja) 複雑な動的3次元シーンをレイトレーシング法により写真現実的に表示する装置
US7755626B2 (en) Cone-culled soft shadows
US20220292760A1 (en) Enhanced Techniques for Traversing Ray Tracing Acceleration Structures
JP2009525526A (ja) ビーム放出によって仮想画像を合成するための方法
JP2013506896A (ja) リアルタイムレンダリングのための、接続性に依拠した形状最適化
JP2012190428A (ja) 立体映像視覚効果処理方法
Kurachi The magic of computer graphics
JP4779479B2 (ja) 物体の三次元形状データの削減装置および削減方法
Loscos et al. Interactive High‐Quality Soft Shadows in Scenes with Moving Objects
Borst et al. Real-time rendering method and performance evaluation of composable 3D lenses for interactive VR
US20240095996A1 (en) Efficiency of ray-box tests
US20240087211A1 (en) Generation and Traversal of Partial Acceleration Structures for Ray Tracing
de Carvalho Combining the Ray Marching and Rasterization Rendering Models to Provide Real-Time High-Fidelity Graphics
Zhang Advanced volume rendering
Schertler et al. Visualization of Scanned Cave Data with Global Illumination.
Nijasure Interactive global illumination on the graphics processing unit
Kim et al. Efficient Ray Tracing Trimmed Rational Surface Patches
Stiefelhagen et al. Lipschitz versus interval arithmetic in ray tracing implicits
Zarns et al. RAYGL: An OpenGL to POVRAY API
FUSEK VISUALIZATION OF SDF SCENES
Marmitt Interactive volume ray tracing
Shkurko Real-Time Visualization Of 3D Medical Scan Data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110309

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

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

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

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4779479

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees