【発行国】日本国特許庁(JP)
【公報種別】特許公報(B2)
【特許番号】特許第3622025号(P3622025)
【登録日】平成16年12月3日(2004.12.3)
【発行日】平成17年2月23日(2005.2.23)
【発明の名称】光源自動化システム(照射位置)
【国際特許分類第7版】
G06T 15/50
【FI】
G06T 15/50 200
【請求項の数】3
【全頁数】20
【出願番号】特願2003−2717(P2003−2717)
【出願日】平成15年1月9日(2003.1.9)
【分割の表示】特願平5−282155の分割
【原出願日】平成5年10月18日(1993.10.18)
【公開番号】特開2003−216972(P2003−216972A)
【公開日】平成15年7月31日(2003.7.31)
【審査請求日】平成15年1月16日(2003.1.16)
【権利譲渡・実施許諾】特許権者において、権利譲渡・実施許諾の用意がある。
【特許権者】
【氏名又は名称】平林 雅英
【発明者】
【氏名】平林 雅英
【審査官】松尾 俊介
【参考文献】
【文献】特開平05−242220(JP,A)
【文献】特開平04−259083(JP,A)
【特許請求の範囲】
【請求項1】3次元CG における照射位置の自動化にあたり、次の(9a)から(9b)の手段からなることを特徴とする光源自動化システム。
(9a)記憶装置に格納された、物体群(物体群は被写体を構成する)の位置と形状から空間中心を求める手段。
(9b)手段9a で求めた空間中心を中心とした極座標で照射位置を決定する手段。ただし、極座標の半径は物体群を包含する直方体の外接球の半径の距離を 1 とした無次元量である。
【請求項2】空間中心を、物体群を包含する直方体の重心とする
ことを特徴とする請求項1に記載の光源自動化システム。
【請求項3】3次元CG における画像生成システムにおいて、
物体に照射属性を付ける手段と、照射される被写体を構成する物体を照射属性が付いた物体のみとする手段を含むことと、
請求項1又は請求項2に記載の光源自動化システムを含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は 3次元コンピューター・グラフィックス(computer graphics;以下、CG と略す)における光源の光源位置, 照射位置, 照射範囲, 光源ベクトル, 光源強度, 減衰係数の自動化に関する。
本発明で想定している 3次元CG の画像生成手法(レンダリング方法)は、光源を必要とするものが該当する。例えば、レイ・トレーシング(ray tracing), ラジオシティ(radiosity), Zバッファ(Z-buffer), Aバッファ(A-buffer), スキャンライン(scan line)などである。ワイヤフレーム(wire frame)は光源を必要としないので該当しない。
《《《 目 次 》》》
従来の技術 .................... 0002
発明が解決しようとする課題 .... 0004
課題を解決するための手段 ...... 0018
作用 .......................... 0064
実施例 ........................ 0096
発明の効果 .................... 0111
【0002】
【従来の技術】
日常の世界では朝起きると太陽が出て、明るくなり、写真を撮ることが出来る。しかし、CG の世界では光源を設定してやらなければ物体を見ることが出来ない。
太陽のような平行光源は その光の進む向きを示す光源ベクトルを指定する必要がある。画像生成システムではベクトルは基本ベクトル化されるが、従来技術には その基本ベクトルを そのまま指定するものがある。
光源ベクトルを基本ベクトルで指定するのは 2進法でプログラムを組むのと同様である。光源ベクトルを指定する高水準言語は極座標である。ベクトル合成は日常の感覚には全く合わない。2進法でプログラムを組むのと同様と言える。
例えば世界座標系原点から 天頂角θ=45゜方位角φ=45゜にある平行光源のベクトルのつもりで (-1,-1,-1) としたら、天頂角θ=54゜方位角φ=45゜にある平行光源になってしまう。直交座標系で 3軸同じ値を指定した場合、天頂角は45゜にはならないのである。54゜は 90-Arctan(1/2) で算出できる。
天頂角θ=45゜にするためには ベクトルは(-0.5,-0.707107,-0.5) としなければならない。これは (sinθ・sinφ,cosθ,sinθ・cosφ) という計算をする。
こうした三角関数の計算が瞬間的に計算できる人はいない筈である(もちろん暗算の意味で言っている)。従来技術には こうした根本的な問題点があり、これについては次の文献[1] で指摘しておいた。
[1]平林雅英『メタ言語としてのメタボール』映像研究特別論文集コンピュータ・イメージとハイビジョン, 日本映像学会, VOL.2, 1992年3月, p.146〜157(p.155)
【0003】
光源の光源ベクトルや光源位置を極座標で指定すればかなりの点で解決される。これは 2進法の機械語プログラムが高水準言語で書けるようになるのと同様の効果である。しかし、これですべて解決したわけではない。
【0004】
【発明が解決しようとする課題】
CG は言わば何でもありの世界である。これを逆に考えれば何でも自分で構築しなければならない。CG のいう世界座標系とは暗黒の宇宙空間であり、星はもちろん星間物質たる原子1個すらない完全な真空なのである。もちろん、光源に当たる太陽もない。まずいことに CG は物理法則を完全にシミュレートしている訳ではなく、ある特定の条件のもとで物理法則を満たしているに過ぎない。
光源についてはラジオシティ(radiosity)でもなければ相互反射のシミュレートは難しいから、光源が遮られたところは暗黒の宇宙空間と同じなってしまう。そのため周辺光と称して、疑似的な相互反射を与えることがある。しかし、周辺光は一律に輝度を上げるだけであるから、立体感のない絵になってしまう。
【0005】
CG においては光源の位置あるいは光源ベクトルは極めて重要であり、少し外れると暗黒の宇宙空間が待っている状況である。つまり、光源ベクトルと逆の方向にある物体の面は暗黒の宇宙空間か、周辺光という雑であまり意味のない光源が与えられているだけである。光が他の物体で遮られている場合も同様である。
いかに たくさんの光源が与えられていても、見ている方向に光が当たっていなければ意味がない。だから注意深く光源の設定は行われる。
特に問題なのは視点を変えると、いままで まともだった絵がたちまち暗黒の宇宙空間になってしまうことである。それでは困るので視点が変わったら、光源も変えなければならない。しかし、こうした作業を何度も行うことは非効率窮まりなく、アーティストやデザイナー側の負担が大変であり、人間が機械に使われるという人間疎外の状況を作るものである。
【0006】
CG が CG である以上、こうした視点に基づいた光源の自動化は是非とも必要であり、それがなければ CG の意義がない。光源の要素は図2に示すように、光源位置(0-21) や光源ベクトル(0-23) の他に照射位置(0-21), 照射範囲(0-24), 光源強度, 減衰係数があり、本発明は これらすべての完全自動化の実現を目的とするものである。
【0007】
ここで用語および関連した事項を解説しておく。
【0008】
本明細書で使用する角度の単位は度とし、三角関数も度を扱うものとする。Arctan は逆正接の主値とする。
【0009】
本明細書で使用する座標系は原則として右手座標系である。左手座標系(a) と右手座標系(b) の関係を図3に示す。図中で各軸の回転方向を示している。
右手座標系では、右手で親指を各軸の正の方向に伸ばして、軸を握ると握った指の方向が正の回転方向である。つまり、右ネジであり、軸の +方向を目に向けて左廻り(反時計廻り)が正、軸の -方向を目に向けて右廻り(時計廻り)が正である。
左手座標系では、左手で親指を各軸の正の方向に伸ばして、軸を握ると握った指の方向が正の回転方向である。つまり、左ネジであり、軸の +方向を目に向けて右廻り(時計廻り)が正、軸の -方向を目に向けて左廻り(反時計廻り)が正である。
【0010】
図2に示したように、CG では視点(0-5), 注視点(0-6) を指定して、画像生成を行う。これは写真において、カメラ位置と被写体位置が存在するのと同様である。写真ではカメラを構えた位置が視点として必然的に決まり、カメラを向けた被写体の位置が注視点として決まる。
【0011】
「視点」とは CG用語であり、現実のカメラではレンズの光学的中心である主点(principle point)をいう。また、「光軸」(optic axis)(0-7) とは写真用語であり、CG では視点(0-5) と注視点(0-6) を結ぶ直線である。
「光軸」を「視軸」「視線」(visual ray, line of sight)、
「視点」(view point, visual point, point of eye, point of sight)を「カメラ位置」(point of camera)、
「注視点」(point of target, looking there)を「参照視点」「注目点」「目標点」「参照点」(reference point)、
「極座標」を「球座標」としている論文があるが、本明細書では使用しない。
【0012】
極座標系を図4に示す。図中の r は半径、θは天頂角、φは方位角である。天頂角ではなく仰角を使用する場合があるが、仰角は 90゜-天頂角 であり、本質的な差はない。本明細書では天頂角を用いて解説している。
【0013】
視点(0-5), 注視点(0-6) の関係は視点から注視点に向かう光軸(0-7) のベクトルである光軸ベクトルを指定するためのものであり、視点と注視点は、視点と光軸ベクトルとして読み変えることが出来る。
【0014】
「画像生成開始直前」とはモデリングが終了し、視点, 注視点, 物体の位置が完全に確定した時点をいう。
「空間中心」とは、物体が分布する空間の中心をいう。空間中心の具体例は図11、図10に示されている。
【0015】
被写体は1つ以上の物体から構成される。逆に物体または物体群は被写体を構成する。1つの物体が複数の物体から成り立っているものある。何れにしても本明細書で言っている被写体とは1つ以上の物体から構成されるものをいう。
【0016】
視点自動化システム, 注視点自動化システム, 画角自動化システムは本願発明者が先に特許出願した発明である(特願平5−255321; 発明の名称:視点・注視点・画角自動化システム)。共に被写体を構成する物体の分布状況から視点, 注視点, 画角を自動決定するシステムである。
【0017】
本明細書中の上付文字は累乗を示す。例えば、2 は 2乗を示し、m2 は平方メートルを示す。π2 は π・π を示す。L1e は L1 の e乗を示す。
【0018】
【課題を解決するための手段】
請求項1〜2は、照射位置を自動決定するシステムの発明である。物体の分布状況から光源を自動化する。請求項1の発明のブロック図を図5に示す。
【0019】
請求項1の発明は、3次元CG における照射位置の自動化にあたり、次の(9a)から(9b)の手段からなることを特徴とする光源自動化システムの発明である。
(9a)記憶装置に格納された、物体群(物体群は被写体を構成する)の位置と形状から空間中心を求める手段。
(9b)手段9a で求めた空間中心を中心とした極座標で照射位置を決定する手段。ただし、極座標の半径は物体群を包含する直方体の外接球の半径の距離を 1 とした無次元量である。
【0020】
請求項2の発明は、空間中心を、物体群を包含する直方体の重心とする
ことを特徴とする請求項1に記載の光源自動化システムの発明である。
【0021】
請求項3の発明は、画像生成システムの被写体認識についての発明である。3次元CG における画像生成システムにおいて、
物体に照射属性を付ける手段と、照射される被写体を構成する物体を照射属性が付いた物体のみとする手段を含むことと、
請求項1又は請求項2に記載の光源自動化システムを含むことを特徴とする画像生成システムの発明である。
【0022】
なお、関連する以下の発明がある。
(A) H1〜4, H7〜8 は、視点または注視点を利用した光源自動化システムの発明である。このうち、H1〜4 は光源位置を自動決定するシステムの発明、H7〜8 は光源ベクトルを自動決定するシステムの発明である。
【0023】
(B)H5〜6, H9〜10 は照射位置を自動決定するシステムの発明である。H5〜6 は注視点から、H9〜10 は物体の分布状況から光源を自動化する。H9 の発明のブロック図を図5に示す。
【0024】
(C) H12〜14 は光源ベクトルを自動決定するシステムの発明であり、物体の分布状況から光源ベクトルを自動決定する。光源ベクトルとは光の進む向きのことである。H12 のブロック図を図6に、H13 の発明のブロック図を図7に示す。
【0025】
(D) H15〜20 は、照射位置と照射位置における照射範囲を自動決定するシステムの発明である。特に H17〜18 の発明は、光源ベクトルが視点から注視点に向かうベクトルに一致している場合に有効である。スポットライトで照射範囲の境界がぼけた表現をする場合は、照射範囲を 2重に指定するか、ぼける割合を指定するかのどちらかである。H15 の発明のブロック図を図8に、H17 の発明の原理図を図10に、H18 の発明の原理図を図11に、H18 の発明のブロック図を図9に示す。
【0026】
(E) H21〜25は、距離による減衰を伴う光源の強度を自動化するシステムの発明である。H22 の発明のブロック図を図12に、H24 の発明のブロック図を図13に示す。
【0027】
(F) H26〜28は、画像生成システムの発明である。H28 の発明は、画像生成システムの被写体認識についての発明である。
【0028】
[H1]3次元CG における光源位置の自動化にあたり、次の(1a)の手段からなることを特徴とする光源自動化システム。
(1a)画像生成開始直前の視点の座標を、光源位置とする手段。
【0029】
[H2]3次元CG における光源位置の自動化にあたり、次の(2a)の手段からなることを特徴とする光源自動化システム。
(2a)画像生成開始直前の視点を原点とした予め設定された相対位置を、光源位置とする手段。
【0030】
[H3]相対位置が極座標であることを特徴とする H2 に記載の光源自動化システム。
【0031】
[H4]3次元CG における光源位置の自動化にあたり、次の(4a)の手段からなることを特徴とする光源自動化システム。
(4a)画像生成開始直前の注視点を原点とした、画像生成開始直前の視点の極座標の半径,天頂角,方位角の少なくとも1つを、予め設定されたその相対量で変更し、変更された位置を光源位置とする手段。
【0032】
[H5]3次元CG における照射位置の自動化にあたり、次の(5a)の手段からなることを特徴とする光源自動化システム。
(5a)画像生成開始直前の注視点の座標を、照射位置とする手段。
【0033】
[H6]3次元CG における照射位置の自動化にあたり、次の(6a)の手段からなることを特徴とする光源自動化システム。
(6a)画像生成開始直前の注視点を原点とした予め設定された極座標からなる相対位置を、照射位置とする手段。
【0034】
[H7]3次元CG における光源ベクトルの自動化にあたり、次の(7a)の手段からなることを特徴とする光源自動化システム。
(7a)画像生成開始直前の視点から、画像生成開始直前の注視点に向かう光軸ベクトルを、光源ベクトル(光の進む向き)とする手段。
【0035】
[H8]3次元CG における光源ベクトルの自動化にあたり、次の(8a)の手段からなることを特徴とする光源自動化システム。
(8a)画像生成開始直前の注視点を原点とした、画像生成開始直前の視点の極座標の天頂角, 方位角の少なくとも1つを、予め設定されたその相対量で変更し、変更した位置から、画像生成開始直前の注視点に向かうベクトルを、光源ベクトル(光の進む向き)とする手段。
【0036】
[H9]3次元CG における照射位置の自動化にあたり、次の(9a)から(9b)の手段からなることを特徴とする光源自動化システム。
(9a)記憶装置に格納された、物体群(物体群は被写体を構成する)の位置と形状から空間中心を求める手段。
(9b)手段9a で求めた空間中心を基準に照射位置を決定する手段。
【0037】
[H10]空間中心を、物体群を包含する直方体の重心とする
ことを特徴とする H9 に記載の光源自動化システム。
【0038】
[H12]3次元CG における光源ベクトルの自動化にあたり、次の(12a)から(12b)の手段からなることを特徴とする光源自動化システム。
(12a)記憶装置に格納された、物体群(物体群は被写体を構成する)の位置と形状から空間中心(物体が分布する空間の中心)を求める手段。
(12b)画像生成開始直前の視点から、手段12aで求めた空間中心に向かうベクトルを、光源ベクトル(光の進む向き)とする手段。
【0039】
[H13]3次元CG における光源ベクトルの自動化にあたり、次の(13a)から(13b)の手段からなることを特徴とする光源自動化システム。
(13a)記憶装置に格納された、物体群(物体群は被写体を構成する)の位置と形状から空間中心を求める手段。
(13b)手段13aで求めた空間中心を原点とした、画像生成開始直前の視点の極座標の天頂角,方位角の少なくとも1つを、予め設定されたその相対量で変更し、変更した位置から、手段13aで求めた空間中心に向かうベクトルを、光源ベクトル(光の進む向き)とする手段。
【0040】
[H14]空間中心を、物体群を包含する直方体の重心とする
ことを特徴とする H12 または H13 に記載の光源自動化システム。
【0041】
[H15]3次元CG における照射位置と照射位置における照射範囲の自動化にあたり、次の(15a)から(15d)の手段からなることを特徴とする光源自動化システム。
(15a)記憶装置に格納された、物体群(物体群は被写体を構成する)の位置と形状から空間範囲を求める手段。
(15b)手段15aで求めた空間範囲から空間中心を求める手段。
(15c)手段15bで求めた空間中心を基準に照射位置を決定する手段。
(15d)手段15aで求めた空間範囲を基準に照射範囲を決定する手段。
【0042】
[H16]空間範囲を、物体群を包含する直方体とする
ことを特徴とする H15 に記載の光源自動化システム。
【0043】
[H17]直方体が光軸(17-7a,b)と平行な辺を持つ最小の直方体(17-12a,b)である
ことを特徴とする H16 に記載の光源自動化システム。
【0044】
[H18]3次元CG における照射位置と照射位置における照射範囲の自動化にあたり、次の(18a)から(18f)の手段からなることを特徴とする光源自動化システム。
(18a)世界座標系の任意点を回転中心(18-13)とし、かつ、光軸(18-7)が世界座標系のxyz軸の何れか1つ(18-4)と平行になる回転(18-15)変換を、物体(18-8a,b)に与える手段。
(18b)手段18aで回転させた物体(18-17a,b)に基づいて、xyz軸のそれぞれにおける物体分布の最大値最小値から物体群(18-17a,b)を囲む直方体(18-19)を求める手段。
(18c)手段18bで求めた直方体(18-19)の重心位置(18-20)を求める手段。
(18d)手段18cで求めた重心位置(18-20)を、手段18aと逆の回転(18-16)をさせ、空間中心(18-11)を求める手段。
(18e)手段18dで求めた空間中心(18-11)を基準に照射位置を決定する手段。
(18f)手段18bで求めた直方体(18-19)を基準に照射範囲を決定する手段。
【0045】
[H19]空間中心を基準に照射位置を決定する手段が、
空間中心を中心とした極座標で指定し、
極座標の半径が、物体群を包含する直方体の外接球の半径の距離を 1 とした無次元量である
ことを特徴とする H15〜18 の何れか1つに記載の光源自動化システム。
【0046】
[H20]空間範囲を基準に照射範囲を決定する手段が、
物体群を包含する直方体の外接球の半径の距離を 1 とした無次元量で照射範囲を指定する
ことを特徴とする H15〜19 の何れか1つに記載の光源自動化システム。
【0047】
[H21]3次元CG における、光源からの距離による光の減衰を伴う光源強度の自動化にあたり、次の(21a)の手段からなることを特徴とする光源自動化システム。
(21a)光源からの基準距離と、基準距離における光の強度を設定し、これから光源の強度を決定する手段。
【0048】
[H22]3次元CG における、光源からの距離による光の減衰を
光の強度=光源の強度/光源からの距離減衰乗数
で行う光源強度の自動化にあたり、次の(22a)の手段からなることを特徴とする光源自動化システム。
(22a)減衰乗数eと、光源からの基準距離L1 と、基準距離における光の強度I1 を設定し、これから光源の強度Iを
L1が 0以下のとき I=I1
それ以外のとき I=I1・L1e
と決定する手段。
【0049】
[H23]3次元CG における距離による減衰を伴う光源強度の自動化にあたり、次の(23a)の手段からなることを特徴とする光源自動化システム。
(23a)光源からの基準距離と、基準距離における光の強度をそれぞれ2つ設定し、これから光源の強度と減衰乗数を決定する手段。
【0050】
[H24]3次元CG における、光源からの距離による光の減衰を
光の強度=光源の強度/光源からの距離減衰乗数
で行う光源強度の自動化にあたり、次の(24a)の手段からなることを特徴とする光源自動化システム。
(24a)光源からの基準距離L1, L2 と、L1, L2 における光の強度I1, I2 を設定し、これから減衰乗数e を
e=(log I1/I2)/(log L2/L1)
から、
光源の強度I を
I=I1・L1e
から求める手段。
【0051】
e はもちろん L2/L1 を底とする、真数 I1/I2 の対数で計算してもよい。また、 I は I2・L2e で計算しても同じである。
eを求める式は
I=I1・L1e=I2・L2e
から
I1/I2=L2e/L1e=(L2/L1)e
対数をとって
log I1/I2=log (L2/L1)e=e・log L2/L1
よって
e=(log I1/I2)/(log L2/L1)
となることから導かれる。
【0052】
[H25]基準物体を指定し、基準物体と光源位置の間の距離から、光源からの基準距離を決定する手段を含むことを特徴とする H21〜24 の何れか1つに記載の光源自動化システム。
【0053】
[H26]3次元CG における画像生成システムにおいて、
請求項1〜2, H1〜10, H12〜25 の少なくとも何れか1つの光源自動化システムを含むことを特徴とする画像生成システム。
【0054】
[H27]3次元CG における画像生成システムにおいて、
視点自動化システム, 注視点自動化システム, 画角自動化システムの少なくとも何れか1つと、
請求項1〜2, H1〜10, H12〜25 の少なくとも何れか1つの光源自動化システム
を含むことを特徴とする画像生成システム。
【0055】
[H28]物体に照射属性を付ける手段と、
照射属性が付いた物体だけ、照射される被写体を構成する物体として認識する手段
を含むことを特徴とする H26〜27 の何れか1つに記載の画像生成システム。
【0056】
「光源の強度」「光の強度」とは CG用語であり、「強さ」という論文もある。これは物理量としては一般に輝度[cd/m2] と同じ次元を持つものである。
CG の輝度計算に基本的な拡散反射(diffuse reflection)を考えればランバートの余弦則(Lambert's cosine law)により
輝度=光源の強度・物体色・拡散反射係数・cos(入射角)
で表される。もし、この輝度が [cd/m2] という次元を持つとするならば、光源の強さは やはり [cd/m2] という次元を持つことになる。他の物体色, 拡散反射係数は無次元量である。ただし、減衰する光源もあるので、光源の強度ではなく、入射光輝度という表現を使用し、この式は
輝度=入射光輝度・物体色・拡散反射係数・cos(入射角)
となるべきである。
【0057】
図14に光の物理量を示したが、「光源の強度」あるいは「光の強度」は強いて言えば輝度を反射率で割ったものであるが、このような物理量は定義されていなく、反射率自体は無次元量なので、「輝度」と言わざるを得ない。
現実の CG は先の式で求めた輝度を 0〜1 の実数値あるいは 0〜255 の整数値という数値に変換して表現しており、結局全体的に無次元、「光源の強さ」「光の強さ」も「入射光輝度」も無次元と考えることも出来る。そのため単に「強度」という表現をしているとも言える。何れにしても光束や光度で光源を指定するシステムは一般には見られない。
【0058】
本明細書では輝度は 0〜1 の実数値として説明する。光源の強度, 物体色, 拡散反射係数を共に 1 にすれば入射角0゜の方向の輝度は 1 になる。
逆に これを基準に考える方法もある。例えば、光源の強度1 というのは太陽が天頂にあった場合とする。光源の強度1 とは 1[cd/m2] ではなく、1[LSUN・cd/m2] とするのである。
これは
太陽の全光束/(4・π・太陽地球間距離2・π)
・(1-大気吸収率)=1[LSUN・cd/m2]
という定義である。
LSUN自体の定義は
大気吸収率を 29% として
LSUN=3.762・1028/(4・π・(1.4960・1011)2・π)
・(1-大気吸収率)
=42579・(1-0.29)30000[cd/m2]
とするのである。
すると H21 の発明では光源の全光束[lm] が分かっているときは、光源の強度を 全光束/(4・π2)/30000 とし、基準距離の単位が [m] ならば基準距離1 とすればよいことになる。
【0059】
光源からの距離が遠くなるにつれて、光は弱まる。しかし光が弱まる或いは減衰すると言っても、運動している物体が空気の抵抗で速度が遅くなるのと違って、光が薄まるという感覚に近い。
ここで、光源全体を被ってしまう球体を考える。問題となるのは球体内部に照らされる光である。光束、つまり光源から発生される光のエネルギーは一定である。光源から いくら離れても同じである。しかし、球が大きくなれば球の表面積は必然的に大きくなる。照度、つまり単位面積当りに注ぐ光の量は少なくなる。面積が広い分だけ光が薄まってしまうわけである。
光源全体の明るさ(方向なし)である光束と、場所の明るさ(方向なし)である照度の関係は
照度[lx]=光束[lm]/(4・π・r2)[m2]
であり、4・π・r2 は半径r の球の表面積に他ならない。照度(単位面積当りの光の量)が光源からの距離の 2乗に反比例するのは こうした事情からである(図15)。
【0060】
しかしながら、CG では光源を距離の 2乗で減衰させるのは問題がある。これは既に述べたように CG は物理法則を完全にシミュレートしている訳ではなく、ある特定の条件のもとで物理法則を満たしているに過ぎなく、相互反射のシミュレートは通常行われていないからである。
このため距離の 2乗で減衰させると減衰により暗くなり過ぎ、意図した絵を作るのが難しくなる。それで 1乗に減衰するという物理学上奇妙きてれつな光源を与えることがある。しかし、現実には これでもなお減衰が激しすぎ、場合によって減衰なしの光源を考えることもある。
【0061】
そこで種々の式が提案されている。例えばある距離における光の強度は
光の強度=光源の強度/(減衰係数1
+距離・減衰係数2+距離・距離・減衰係数3)
とするものがある。この式では 1乗減衰, 2乗減衰、そして減衰を 0 にすることが出来るが、その間が出来ない。その上、パラメータが 3つもある(減衰係数1, 減衰係数2, 減衰係数3)。この3つの関係は物理学上メチャメチャである。
【0062】
もっとも適当な式は
光の強度=光源の強度/距離減衰乗数
という極めてシンプルなものである。この場合、減衰係数は意味を明らかにするため、減衰乗数と名前を変えている。
減衰乗数を 2 とすれば現実の光源と同じものになり、0 にすれば減衰なしとすることが出来る。減衰乗数を 0〜2 の間(特に 1未満)で調整すれば一見ラジオシティで画像生成したような画像をレイ・トレーシングなどでも作ることが出来る。これは減衰が穏やかなため散乱しているかのような印象を与えるものと思われる。
【0063】
累乗の計算がコスト高という見方もあるが 3つの掛算と 2つの足算と比べてどうであろうか?
仮に多少の差があったにしろレイ・トレーシングなどの交点計算に比べれば微々たるものであり、ラジオシティなみの画像が生成できること、パラメータが1つで済みユーザーの負担も少ないことなどを考えれば、この式が最適なものと言える。また、物理学との関係も明白である。減衰乗数を 2 にすれば一致、1 にすれば半分、0 はゼロであり、それなりの意味を持つ。そこで H22 と H24 の発明は、この式を使用した。
【0064】
【作用】
H5〜6 の発明の作用。照射位置が自動化されるので、スポット光源(スポットライト)の自動化が達成できる。スポット光源は光源位置の他、照射位置が問題になる。
【0065】
H5 の発明では注視点が変わっても、照射位置を修正する必要がなく、照射位置の自動化が達成できる。
特に注視点自動化システムを組み込んだ画像生成システムにおいては画像生成直前まで注視点の位置は不明であり、本発明によらなければ最適な光源位置は指定できない。
【0066】
H6 の発明では、照射位置は注視点から若干離れた位置に指定できる。
【0067】
H9〜10, 請求項1〜2の発明の作用。照射位置が自動化される。ただし、H5〜6 の発明と違って注視点とは無関係である。
【0068】
H9 の発明では、物体群の分布から空間中心を求める。また照射位置は必ずしも空間中心と一致している需要だけとは限らないので、空間中心を基準に照射位置を決定する。
【0069】
請求項2, H10 の発明では物体群を直方体で近似して空間中心が決定される。
【0070】
請求項1〜2の発明では半径0 で空間中心、半径1 で物体群を包含する直方体の外接球の半径、半径2 でその 2倍の距離を指定できる。距離のベクトルは天頂角と方位角で指定できる。天頂角は 90゜-仰角 である。
【0071】
H26 の発明では光源を自動化して画像生成できる。
【0072】
H27 の発明では視点, 注視点, 画角の少なくとも何れか1つと、光源を自動化して画像生成できる。
【0073】
請求項3, H28 の発明では照射される被写体を構成する物体を指定できる。すべての物体を動員して照射位置や照射範囲を求める必要がないことがあり、この場合は本発明が有効である。
【0074】
H1〜4 の発明の作用。光源位置が自動化されるので、点光源の自動化が達成できる。点光源は宇宙空間に浮ぶ太陽と同様であり、光源位置のみが問題であり、照射範囲は光源から全方向に存在し、光源ベクトルは光源から全方向に向かっている。これは面積を持った光源である球光源の場合も同様である。
【0075】
H1 の発明では視点が変わっても、光源位置を修正する必要がなく、光源位置の自動化が達成できる。特に視点自動化システムを組み込んだ画像生成システムにおいては画像生成直前まで視点の位置は不明であり、本発明によらなければ最適な光源位置は指定できない。
【0076】
H2 の発明では相対位置を指定するので、視点に対して、斜めからの光を指定できる。H3 の発明では相対位置を極座標で指定するため、より的確に光源を指定できる。
【0077】
H4 の発明では光軸を基準にした極座標で光源位置を指定できる。例えば天頂角を予め設定した相対量で変更すれば若干上部あるいは下部から照射した光とすることが出来る。方位角の変更は左右の問題になり、天頂角と方位角の変更を組み合わせれば斜めから光を被写体に当てることが出来る。
半径の変更は視点より若干近付くか、遠くから照射するかという問題になる。これは減衰の問題と、視点の近くに物体があった場合に対処するものである。
【0078】
H7〜8 の発明の作用。光源ベクトルが自動化されるので無限遠点平行光源の自動化が達成できる。無限遠点平行光源は照射範囲は空間全域であり、光源ベクトルは一定である。
【0079】
H7 の発明では視点や注視点が変わっても、光源ベクトルを修正する必要がなく、光源ベクトルの自動化が達成できる。
特に視点自動化システムと注視点自動化システムを組み込んだ画像生成システムにおいては画像生成直前まで視点と注視点の位置は不明であり、本発明によらなければ最適な光源ベクトルは指定できない。
本発明は感覚的にはヘルメットに付けたライトや、カメラに付けたストロボ、自動車や電車のヘッドライトと同様で見る方向に光が自動的に照らされる。
【0080】
H8 の発明では光軸を基準にした極座標で光源ベクトルを指定できる。例えば天頂角を予め設定した相対量で変更すれば若干上部あるいは下部から照射した光とすることが出来る。方位角の変更は左右の問題になり、天頂角と方位角の変更を組み合わせれば斜めから光を被写体に当てることが出来る。
【0081】
H12〜14 の発明の作用。光源ベクトルが自動化される。ただし、H7〜8 の発明と違って、注視点とは無関係である。
【0082】
H12 の発明では視点から空間中心に向かうベクトルを光源ベクトルとすることが出来る。
【0083】
H13 の発明では視点から空間中心に向かうベクトルを基準にした極座標で光源ベクトルを指定できる。例えば天頂角を予め設定した相対量で変更すれば若干上部あるいは下部から照射した光とすることが出来る。方位角の変更は左右の問題になり、天頂角と方位角の変更を組み合わせれば斜めから光を被写体に当てることが出来る。
【0084】
H14 の発明では物体群を直方体で近似して空間中心が決定される。
【0085】
H15〜20 の発明の作用。照射位置と照射位置における照射範囲が自動化される。
【0086】
H15 の発明では、物体群の分布から空間範囲(物体が分布する空間)と空間中心(物体が分布する空間の中心)を求める。また照射位置は必ずしも空間中心と一致している需要だけとは限らないので、空間中心を基準に照射位置を決定する。照射範囲も必ずしも空間範囲と一致している需要だけとは限らないので、空間範囲を基準に照射範囲を決定する。
【0087】
H16 の発明では物体群を直方体で近似して空間中心が決定される。
【0088】
さらに H17 の発明では光軸に平行な辺を持つことにより、的確な空間中心を求めることが出来る。
図10では物体(17-8a,b) が2つある。この2つの物体からなる物体群を見る方向として2つの光軸(17-7a,b) があり、この2つの光軸に基づいて物体群を囲む直方体(17-12a,b)、空間中心(17-12a,b) が2つずつある。なお、物体の a, b と、光軸, 直方体, 空間中心の a, b とは別物で連動はしていない。
17-7b の光軸から見た場合に、空間中心が 17-11a ではまずく、17-11b でなければならないことがわかる。逆に 17-7a の光軸から見た場合に、空間中心が 17-11b ではまずく、17-11a でなければならないことがわかる。
そのため、物体群を囲む直方体(17-12a,b) は光軸(17-7a,b) に平行な辺を持てばよい。これが本発明の主題である。
すべての物体に外接する球から、中心位置を求めるのは一見いいようであるが、物体群の並びが半球状であった場合を考えれば必ずしもベストではないことが分かる。
【0089】
H18 の発明では、図11の空間範囲と空間中心(18-11) が求められる。空間中心(18-11)を直接求めるのは困難である。そこで本発明では、手段18a で図11(a) から図11(b) の状態にし、手段18(b) で重心(18-20) を求め、手段18c で図11(a) の状態に戻すことにより、空間中心(18-11) を求める。
【0090】
H19 の発明では半径0 で空間中心、半径1 で物体群を包含する直方体の外接球の半径、半径2 でその 2倍の距離を指定できる。距離のベクトルは天頂角と方位角で指定できる。天頂角は 90゜-仰角 である。
【0091】
H20 の発明では距離1 で物体群を包含する直方体の外接球の半径、距離2 で その 2倍の距離を指定できる。照射範囲は一般に円なので、この距離を半径とすれば照射範囲を決定できる。距離0 では照射範囲はないことになる。
【0092】
H21〜22 の発明の作用。光源の強度そのものを指定するのではなく、基準位置での強度を指定できる。例えば光源から x だけ離れている物体色1 の物体の輝度を 1 にしたい場合は基準位置を x とし、光源の強度を 1 とすればよい。光源から x だけ離れている物体色1 の物体の輝度を 0.5 にしたい場合は基準位置を x とし、光源の強度を 0.5 とすればよい。
【0093】
H22 の発明では基準距離が 0以下の場合は基準距離の光源強度を そのまま使用する。なぜならば基準距離が 0 では、仮に減衰乗数が 0 であっても 0の0乗は数学的に無意味であるからである。これは減衰させない光源との互換性のためでもある。
【0094】
H23〜24 の作用。2点のデータを与えるので光源の強度だけではなく、減衰乗数も自動化できる。
【0095】
H25 の作用。距離のデータを与えるのではなく、基準となる物体を与えるため、物体位置が変わってもデータの変更が不要になる。例えば H24 の発明に適用すれば、光源強度と減衰係数は指定した 2つの物体を基準に自動決定される。
【0096】
【実施例】
図16に示した実施例は、請求項1〜3, H1〜10, H12〜26, H28 の発明を含んだ画像生成システムである。記憶装置が B1-1 と B1-5 にあるが現実には同一のものであってもよく、格納されているデータの違いだけが問題になる。
光源データは光源強度, 減衰乗数, 光源位置, 照射位置, 光源ベクトル, 照射範囲の他に光源の色があるが、本発明とは無関係の要素であり、図中の点線はそれを示す。
自動化される要素は
無限遠点平行光源:光源ベクトル
局所光源 :光源位置, 光源ベクトル
スポット光源 :光源位置, 照射位置,
光源強度, 照射範囲
点光源 :光源位置, 光源強度, 減衰乗数
である。従って実施すべき発明は
無限遠点平行光源:H7〜8, H12〜14
局所光源 :H1〜4, H7〜8, H12〜14
スポット光源 :請求項1〜2,
H1〜6, H9〜10, H15〜25
点光源 :H1〜4, H21〜25
である。光源自動化システム(B1-2) には これらの発明が含まれており、光源に応じて使い分けが行われる。光源自動化システムには視点, 注視点の他に、基準距離における光源の強度、光源からの基準距離が入力される。
基準距離における光源の強度、光源からの基準距離は記憶装置(B1-1) に光源データとして格納されたものである。さらに光源からの基準距離は基準距離決定手段(B1-4; H25 の発明) により、基準物体から決定される。つまり、H25 の発明は B1-1, 2, 4, 5 に関わる。
光源自動化システム(B1-2) と記憶装置(B1-2,5) のデータから輝度決定手段(B1-3) で画像が生成される。視点と注視点に関しては光源自動化システム(B1-2) の他、輝度決定手段(B1-3) にも直接入力される。
光源自動化システム(B1-2) に記憶装置(B1-5) の物体データが渡っているが、これは照射範囲の決定(H15〜16 の発明)のためである。
【0097】
図1に示した実施例は、請求項1〜3, H1〜10, H15〜25, H27〜28 の発明を含んだ画像生成システムである。この実施例は図16が H26 の発明を含んでいることに対し、H27 の発明を含んでいることが特徴である。つまり、視点と注視点は予め与えられたものを使用するのではなく、視点自動化システム(B2-5) と注視点自動化システム(B2-6) で得られたものを使用する。これにより、視点, 注視点, 光源のすべてを自動化することが出来る。
従って実施すべき発明は
無限遠点平行光源:H7〜8
局所光源 :H1〜4, H7〜8
スポット光源 :請求項1〜2,
H1〜6, H9〜10, H15〜25
点光源 :H1〜4, H21〜25
である。光源自動化システム(B2-2) には これらの発明が含まれており、光源に応じて使い分けが行われる。記憶装置が B2-1 と B2-4 にあるが現実には同一のものであってもよく、格納されているデータの違いだけが問題になる。記憶装置(B2-4) の物体データは輝度決定手段はもとより視点自動化システム, 注視点自動化においても使用される。
【0098】
次に H17〜20, H28(請求項3)の発明の実施例を図17を使用して説明する。このフローチャートに対応するブロック図は図9である。図9の 18a, b が S1-1〜6、18c, d, e が S1-7〜10、18f が S1-11 に対応する。
この実施例では まず空間の大きさを直方体として求め、そこから中心位置を求めている。S1-1 の前に物体のデータ, 視点, 注視点などは入力されているものとする。
【0099】
S1-1 で2つの回転行列を作成する。ここで使用する行列は数学上は 4×4行列であるが、行列積を工夫すれば 3×4行列でも用は果たせる。
S1-4 で使用する行列は z軸を光軸と平行になるように、世界座標系原点中心に回転させる変換である。その変換は
y軸回転(-視点方位角)→x軸回転(-視点天頂角+90゜)→z軸回転(-光軸角)
という一連の操作で達成される。従って、回転行列は行列を単位行列で初期化してから、今の操作と逆順に それぞれの変換行列を掛けていけばよい。
S1-8 で使用する行列は S1-4 と逆のもので、
z軸回転(光軸角)→x軸回転(視点天頂角-90゜)→y軸回転(視点方位角)
という一連の操作のためのものである。従って、回転行列は行列を初期化してから、今の操作と逆順に それぞれの変換行列を掛けていけばよい。
なお、光軸角とはカメラ(あるいは画面)の傾きを意味し、偏心を意味するものではない。通常はゼロである。光軸角も S1-1 の前に入力されているものとする。
視点天頂角は 視点仰角=90゜-視点天頂角 という関係があるので x軸回転(-視点天頂角+90゜) は x軸回転(視点仰角)、x軸回転(視点天頂角-90゜) は x軸回転(-視点仰角)でも同様である。
視点仰角も視点方位角も、視点と注視点の関係から導くことが出来る。直交座標から極座標への変換は文献[2] に開示されている。
[2]平林雅英『C言語による最新プログラム事典 第1巻』(株)技術評論社, 1992年, p.185〜187
【0100】
S1-2 で空間の最大最小値を初期化する。最大値はマイナス無限大、最小値はプラス無限大で初期化する。ただし、これは数学上の話でC言語を用いる場合、DBL_MAXマクロを利用するとよい。HUGE_VALマクロの使用は処理系によっては問題が起きることがある。
【0101】
S1-3 では中心位置決定に関係のある物体かどうか判定する。ない場合は以後の処理対象から外す。関係がない物体とは負の濃度を持つメタボールである。無限の平面、曲面など大きさを特定できないものも処理から外す。
CSG(Constructive Solid Geometry)の場合は差に関しては引かれる物体のみ関係し、引く物体は関係しない。積などに関しても同様に考える。ただし、引かれる物体が無限平面などであった場合は、引く物体の方は大きさが分かっているのであるから、処理から外さない方がよい。またバウンディング・ボリューム(bounding volume)の内部は考えなくてもよい。
【0102】
H28(請求項3)の発明では これに加え、照射属性がある場合を関係があるとし、ない場合は関係がないとする。これにより、例えば背景, 前景, 飾りと言った被写体本体でない物体を照射対象から外すことが出来る。
【0103】
S1-4 で世界座標系の z軸が光軸と平行になる回転を物体に与える。回転の中心とするのは世界座標系原点である。方法としては S1-1 で作成した回転行列に各物体の世界座標化変換行列を掛ける。
【0104】
S1-5 で物体の範囲を x軸, y軸, z軸について求める。その xyz値が空間の最大値より大きい場合は最大値を更新し、最小値より小さい場合は最小値を更新する。物体の範囲は物体を直方体で近似し、その各頂点をサンプルとするか、多角形の各頂点をサンプルとする。
直方体で近似した場合は物体座標系で 6面の各中心点を求め、この 6点を世界座標化してから、頂点の 8点を合成して求めるとよい。
【0105】
物体がメタボールである場合は有効半径ではなく、閾半径の範囲でサンプルを行う。メタボールの大きさは有効半径から閾半径の間になるが、閾半径を考えた方が誤差が少ない。
閾半径は
濃度の閾値=1
rr=メタボール中心からの距離/有効半径
としたとき、その位置の濃度が
rr<1/3 のとき
濃度=(1-3・rr・rr)・中心濃度
1/3≦rr<1 のとき
濃度=1.5・(1-rr)・(1-rr)・中心濃度
rr≧1 のとき
濃度=0
定義される場合は
濃度<1.5 のとき
閾半径=有効半径・(3/(1-1/中心濃度))
濃度≧1.5 のとき
閾半径=有効半径/(1-(1/1.5/中心濃度))
で算出できる。
なお、メタボールに関しての文献としては次の [3][4][5] がある。
[3]平井誠+西村仁志+河田享+白川力+大村晧一『物体の分布関数による表現と効率的画像生成の一手法』テレビジョン学会技術報告 IPD81-5, VVI 60-5, IPA 67-5, 1983年, p.21〜26
[4]西村仁志+平井誠+河合利章+河田享+白川力+大村晧一『分布関数による物体モデリングと画像生成の一手法』電子通信学会論文誌, Vol.J68-D, No.4, 1985年, p.718〜725
[5]平林雅英『メタ言語としてのメタボール』映像研究特別論文集コンピュータ・イメージとハイビジョン, 日本映像学会, VOL.2, 1992年3月, p.146〜157
【0106】
以上の S1-3〜S1-6 のステップを すべての物体について行う。
【0107】
S1-7 で x, y, z の各軸の最大値と最小値の平均値から重心位置を求める。現実には この時点で物体が1つもないなどの理由により、重心位置が求められないことがある。その場合は世界座標系原点を空間中心として決定する。
【0108】
求めた重心位置は光軸を基準にしたものであるので、S1-4 と逆回転させる必要がある。これを S1-8 で行い、S1-9 で中心位置とする。
【0109】
S1-10 は中心位置を基準に照射位置を求める。この場合もっとも単純なのは中心位置を、そのまま照射位置として採用することである。それで間に合うこともあるが、変更したいこともある。
そこで H19 の発明では予め空間中心から極座標で指定しておくと、そこに注視点が決定される。この場合、0 ならば中心に一致、1 ならば空間直方体の外接球の半径とするとよい。
【0110】
S1-11 は x, y, z の各軸の最大値と最小値、つまり直方体を基準に照射位置を求める。H20 の発明を実施すれば直方体の外接球の半径の距離を 1 とした無次元量で照射範囲を指定する。
【0111】
【発明の効果】
CG における光源の光源位置, 照射位置, 照射範囲, 光源ベクトル, 光源強度, 減衰乗数の自動化が達成できる。特に H27 の発明では視点, 注視点, 光源のすべてを自動化して画像生成でき、アーティストやデザイナーは これら相互の複雑な調整に捕らわれることなく、ひたすら造形的手腕を発揮できる。
基本的には、光源位置は視点自動追随、照射位置は注視点自動追随、光源ベクトルは光軸ベクトル自動追随、照射範囲は被写体範囲自動追随、光源強度と減衰係数は指定した2つの物体を基準に自動決定であるが、微妙な調整も出来る。
【0112】
無限遠点平行光源の光源ベクトルを H7〜8, H12〜14, H26〜27 の発明で自動化した場合、単に光軸に光源ベクトルが追随するだけではなく、斜めから光を当てることが出来る。そのため、影が付く向きの制御も容易である。
点光源を H1〜4, H21〜27 の発明で自動化した場合、単に光源位置が自動化されるだけではなく、減衰係数も自動化でき、レイ・トレーシングにおいてもラジオシティなみの画像生成が容易になる。
スポットライトを請求項1〜3, H1〜6, H9〜10, H15〜28 の発明で自動化した場合、被写体が位置を変えても、近付いて来ても遠ざかっても、被写体から一定の範囲を自動照射することが出来る。これは舞台照明で照明技士が一人いるのと同じである。もちろん、請求項3, H28 の発明により、照射したい被写体以外に物体があった場合でも、被写体のみに基づいて照射位置, 照射範囲を決定することが出来る。
【0113】
以上のように本発明は、画像生成システムに光源のインテリジェント機能を持たせることにより、アーティストやデザイナーが本来目的とする画像を簡便かつ正確に生成するシステムを提供するものである。
【図面の簡単な説明】
【図1】
本発明の実施例を示すブロック図。
【図2】
3次元コンピューター・グラフィックスの概要を示す図。
【図3】
3次元直交座標系を示す図。
【図4】
3次元極座標系を示す図。
【図5】
請求項1, H9 の発明のブロック図。
【図6】
H12 の発明のブロック図。
【図7】
H13 の発明のブロック図。
【図8】
H15 の発明のブロック図。
【図9】
H18 の発明のブロック図。
【図10】
H17 の発明の原理図。
【図11】
H18 の発明の原理図。
【図12】
H22 の発明のブロック図。
【図13】
H24 の発明のブロック図。
【図14】
光の物理量を説明する図。
【図15】
光源の広がりを説明する図。
【図16】
本発明の実施例を示すブロック図。
【図17】
H17〜20, H28(請求項3)の発明の実施例を示すフローチャート。
【符号の説明】
*-1 世界座標系
*-2 x軸(世界座標系)
*-3 y軸(世界座標系)
*-4 z軸(世界座標系)
*-5 視点(世界座標系)
*-6 注視点(世界座標系)
*-7 光軸(世界座標系)
*-8 物体(世界座標系)
*-9 画面
*-10 画面中心
*-11 空間中心
*-12 物体群を囲む直方体
*-13 回転中心
*-14 回転角
*-15 回転方向1
*-16 回転方向2
*-17 回転後の物体
*-18 回転後の光軸
*-19 回転後の物体群を囲む直方体
*-20 直方体の重心
*-21 光源位置
*-22 照射位置
*-23 光源ベクトル
*-24 照射範囲
ただし * は数字列であり、0 を除いて、H の発明の番号に対応している。