平林雅英発明品案内 HIR-NET Home 平林雅英紹介 CG作品 オンラインソフト 著書一覧

平林雅英 発明品案内 http://www.hir-net.com/patent/p04/
有償開放特許

特許第3311841号

ハイライト生成方法および画像生成システム

 特許第3311841号『ハイライト生成方法および画像生成システム』は、コンピューター・グラフィックスにおいて、美しいハイライト(プラスチックなどの表面にある白い光沢の点)を持った画像を生成する発明です。
 従来技術のハイライト生成方法では、輝度上限を越えたデータを一律に切って色ムラが出たり、ハイライトが付く物体が 1個でもあると、全体に暗い画像が出来上がったりしていました。
 本発明は過剰な鏡面反射係数を最適な値に補正することにより、美しいハイライトを持った画像を生成することが出来ます。また、物体色のマッピングに限らず、いかなるマッピングがされていても何の問題もなく鏡面反射係数が自動補正されます。
 本発明は、拡散反射輝度に鏡面反射輝度を加えるすべてのハイライト生成方法に適用できるので実施範囲は広くなっています。ハイライト生成でお困りの方は、是非、特許第3311841号『ハイライト生成方法および画像生成システム』をお試しください。


本発明によるハイライトの生成

左(←)が従来技術、右(→)が本発明によるハイライトの生成。
従来技術では団子を押し潰したような色ムラが発生しているが、本発明による方法では美しいハイライトが生成されている。
光は45度上から当たっている。
光沢係数は上が 1, 真ん中が 2, 下が 12 である。

 本発明の特許内容

 拡散反射輝度に鏡面反射輝度を加えるハイライト生成方法において、次の(a)〜(e)の手順からなることを特徴とするハイライト生成方法。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する。
 (b)RGB の各成分について、手順aで得た拡散反射輝度と鏡面反射輝度の和が輝度上限を越えている場合は輝度上限を越えないように、その成分の鏡面反射輝度を補正する。
 (c)手順aで得た拡散反射輝度に、手順aで無視した項を演算し、真の拡散反射輝度を決定する。
 (d)手順bで補正があった場合は手順bで補正された鏡面反射輝度に、そうでない場合は手順aで得た鏡面反射輝度に、手順aで無視した項を演算し、真の鏡面反射輝度を決定する。
 (e)手順cで得た拡散反射輝度と手順dで得た鏡面反射輝度を加えて、ハイライトを生成する。



本発明のハイライトの生成方法

 輝度は 0〜1 の間でなければならないので、ハイライトを生成する場合は、(a)のように 1 を越えた分をカットするか、(b)のように最大輝度で全体を割って 0〜1 の範囲に抑える必要がある(この図は球体にハイライトを生成した例である)。
 しかし両者には欠点があり、(a)のようにカットした場合は輝度が台形型になり不自然な陰影となる。出来た画像は球には見えなく、団子を押し潰したように見える。特にハイライトが一点に集中してない、光沢係数が小さい物体はこうした色ムラは顕著に表れる。
 (b)の場合はハイライトが付く物体が1個でもあると、全体に暗い画像が出来上がるという奇妙なことになる。
 (c)は、本発明の過剰な鏡面反射係数を最適な値に補正する方法であり、ハイライトが 1 を越えることなく、色ムラが出たり、全体に暗い画像が出来上がるというようなことは発生せず、美しいハイライトを持った画像を生成することが出来る。



マッピング物体でのハイライト生成

左(←)が従来技術、右(→)が本発明によるハイライトの生成。
従来技術ではハイライトの形が崩れているが、本発明による方法では美しい円形のハイライトが生成されている。
光は15度上から当たっている。
光沢係数は上が 1, 真ん中が 2, 下が 12 である。
本発明では、物体色のマッピングに限らず、いかなるマッピングされていても美しいハイライトを持った画像を生成することが出来る。




本発明のマッピングの対応状況

 球体の左側に rgb(0.25,0,0)、右側に rgb(0.5,0,0) の物体色のマッピングが行われている例で、本発明のマッピング対応状況を説明する。
 (a)に示すように、拡散反射輝度は、物体色のマッピングにより、左右で異なることになる。
 (b)に示すように、こうした場合、本発明では鏡面反射係数を物体色に応じて異なる補正をする。この場合、鏡面反射係数は、左半分が rgb(0.75,1,1)、右半分は rgb(0.5,1,1) と補正している。拡鏡面反射輝度は鏡面反射係数の補正が左右で異なっているため、左右で異なる値となる。
 (c)に示すように最終的に生成される画像(拡散反射輝度+鏡面反射輝度)は適切なものになり、いかなるマッピングされていても美しいハイライトを持った画像を生成することが出来る。





【発行国】日本国特許庁(JP)
【公報種別】特許公報(B2)
【特許番号】特許第3311841号(P3311841)
【登録日】平成14年5月24日(2002.5.24)
【発行日】平成14年8月5日(2002.8.5)
【発明の名称】ハイライト生成方法および画像生成システム
【国際特許分類第7版】
  G06T 15/50  200
【FI】
  G06T 15/50  200
【請求項の数】11
【全頁数】14
【出願番号】特願平5−287755
【出願日】平成5年10月23日(1993.10.23)
【公開番号】特開平8−16818
【公開日】平成8年1月19日(1996.1.19)
【審査請求日】平成12年10月6日(2000.10.6)
【実施許諾】特許権者において、権利譲渡または実施許諾の用意がある。
【特許権者】
【氏名又は名称】平林 雅英
【発明者】
【氏名】平林 雅英
【審査官】 松尾 俊介
【参考文献】
【文献】特開 平4−169981(JP,A)
【調査した分野】(Int.Cl.7,DB名)
G06T 15/50 200
【特許請求の範囲】
 【請求項1】拡散反射輝度に鏡面反射輝度を加えるハイライト生成方法において、次の(a)〜(e)の手順からなることを特徴とするハイライト生成方法。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する。
 (b)RGB の各成分について、手順aで得た拡散反射輝度と鏡面反射輝度の和が輝度上限を越えている場合は輝度上限を越えないように、その成分の鏡面反射輝度を補正する。
 (c)手順aで得た拡散反射輝度に、手順aで無視した項を演算し、真の拡散反射輝度を決定する。
 (d)手順bで補正があった場合は手順bで補正された鏡面反射輝度に、そうでない場合は手順aで得た鏡面反射輝度に、手順aで無視した項を演算し、真の鏡面反射輝度を決定する。
 (e)手順cで得た拡散反射輝度と手順dで得た鏡面反射輝度を加えて、ハイライトを生成する。
 【請求項2】拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成方法において、次の(a)〜(e)の手順からなることを特徴とするハイライト生成方法。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する。
 (b)RGB の各成分について、手順aで得た拡散反射輝度と鏡面反射輝度の和が 輝度上限-周辺反射輝度 を越えている場合は 輝度上限-周辺反射輝度 を越えないように、その成分の鏡面反射輝度を補正する。
 (c)手順aで得た拡散反射輝度に、手順aで無視した項を演算し、真の拡散反射輝度を決定する。
 (d)手順bで補正があった場合は手順bで補正された鏡面反射輝度に、そうでない場合は手順aで得た鏡面反射輝度に、手順aで無視した項を演算し、真の鏡面反射輝度を決定する。
 (e)周辺反射輝度と手順cで得た拡散反射輝度と手順dで得た鏡面反射輝度を加えて、ハイライトを生成する。
 【請求項3】拡散反射輝度に鏡面反射輝度を加えるハイライト生成方法において、拡散反射輝度に加える鏡面反射輝度が、次の鏡面反射係数補正をしてから演算された鏡面反射輝度であることを特徴とするハイライト生成方法。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する。
 【請求項4】拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成方法において、拡散反射輝度と周辺反射輝度の和に加える鏡面反射輝度が、次の鏡面反射係数補正をしてから演算された鏡面反射輝度であることを特徴とするハイライト生成方法。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が 輝度上限-周辺反射輝度 を越えている場合は その成分の 鏡面反射係数 を 輝度上限-周辺反射輝度-物体色・拡散反射係数 に変更し補正する。
 【請求項5】鏡面反射係数補正を画像生成開始直前に行うことを特徴とする請求項3〜4の何れか1つに記載のハイライト生成方法。
 【請求項6】鏡面反射係数補正を、画像生成中のマッピングが終了した時点からハイライト生成直前の段階で行うことを特徴とする請求項3〜4の何れか1つに記載のハイライト生成方法。
 【請求項7】拡散反射輝度に鏡面反射輝度を加えるハイライト生成装置において、次の(a)〜(e)の手段からなることを特徴とするハイライト生成装置。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する手段。
 (b)RGB の各成分について、手段aで得た拡散反射輝度と鏡面反射輝度の和が輝度上限を越えている場合は輝度上限を越えないように、その成分の鏡面反射輝度を補正する手段。
 (c)手段aで得た拡散反射輝度に、手段aで無視した項を演算し、真の拡散反射輝度を決定する手段。
 (d)手段bで補正があった場合は手段bで補正された鏡面反射輝度に、そうでない場合は手段aで得た鏡面反射輝度に、手段aで無視した項を演算し、真の鏡面反射輝度を決定する手段。
 (e)手段cで得た拡散反射輝度と手段dで得た鏡面反射輝度を加えて、ハイライトを生成する手段。
 【請求項8】拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成装置において、次の(a)〜(e)の手段からなることを特徴とするハイライト生成装置。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する手段。
 (b)RGB の各成分について、手段aで得た拡散反射輝度と鏡面反射輝度の和が 輝度上限-周辺反射輝度 を越えている場合は 輝度上限-周辺反射輝度 を越えないように、その成分の鏡面反射輝度を補正する手段。
 (c)手段aで得た拡散反射輝度に、手段aで無視した項を演算し、真の拡散反射輝度を決定する手段。
 (d)手段bで補正があった場合は手段bで補正された鏡面反射輝度に、そうでない場合は手段aで得た鏡面反射輝度に、手段aで無視した項を演算し、真の鏡面反射輝度を決定する手段。
 (e)周辺反射輝度と手段cで得た拡散反射輝度と手段dで得た鏡面反射輝度を加えて、ハイライトを生成する手段。
 【請求項9】拡散反射輝度に鏡面反射輝度を加えるハイライト生成装置において、拡散反射輝度に加える鏡面反射輝度が、次の鏡面反射係数補正手段により補正された鏡面反射係数を使用して演算された鏡面反射輝度であることを特徴とするハイライト生成装置。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する手段。
 【請求項10】拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成装置において、拡散反射輝度と周辺反射輝度の和に加える鏡面反射輝度が、次の鏡面反射係数補正手段により補正された鏡面反射係数を使用して演算された鏡面反射輝度であることを特徴とするハイライト生成装置。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が 輝度上限-周辺反射輝度 を越えている場合は その成分の 鏡面反射係数 を 輝度上限-周辺反射輝度-物体色・拡散反射係数 に変更し補正する手段。
 【請求項11請求項7〜10の何れか1つに記載のハイライト生成装置を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
  【0001】
 【産業上の利用分野】本発明は、3次元コンピューター・グラフィックス(computer graphics;以下、CG と略す)におけるハイライトの生成に関する。
 本発明で想定している 3次元CG の画像生成手法(レンダリング方法)はレイ・トレーシング(ray tracing)や Zバッファ(Z-buffer)などである。
  【0002】
 ここで用語および関連した事項を解説しておく。
  【0003】
 「視点」とは CG用語であり、現実のカメラではレンズの光学的中心である主点(principle point)をいう。また、「光軸」(optic(al) axis)とは写真用語であり、CG では視点と注視点を結ぶ直線である。「光軸ベクトル」は視点から注視点に向かうベクトルである。
 一方、「視線」(visual ray, line of sight)は視点と物体表面上の点を結ぶ直線である。「視線ベクトル」は視点から物体表面上の点に向かうベクトルで ある。
  【0004】
 「光軸」(optic(al) axis)を「視軸」(visual line, visual axis, axis of vision, axis of the eye)、
 「視点」(view point, visual point, point of eye,point of sight)を「カメラ位置」(point of camera)、
 「注視点」(point of target, looking there)を「参照視点」「注目点」「目標点」(point of target)「参照点」(reference point)としている論文があるが、本明細書では使用しない。
  【0005】
 「光源ベクトル」とは光の進む方向のベクトルであり、「光源方向ベクトル」は光源がある方向のベクトルである。つまり、両者の向きは互いに逆である。
  【0006】
 本明細書で使用する角度の単位は度とし、三角関数も度を扱うものとする。
  【0007】
 色を RGB表示系で示す場合 rgb(赤,緑,青) とする。例えば赤ならば rgb(1,0,0)、緑ならば rgb(0,1,0)、青ならば rgb(0,0,1)、白ならば rgb(1,1,1) である。rgb(0.18,0.18,0.18) は反射率18% の灰色を示す。
  【0008】
 3次元ベクトルを vec(x,y,z) で示す。例えば X軸向き基本ベクトルは vec(1,0,0)、Y軸向き基本ベクトルは vec(0,1,0)、Z軸向き基本ベクトルは vec(0,0,1) である。
  【0009】
 本明細書中の上付文字は累乗を示す。例えば、2 は 2乗を示し、m2 は平方メートルを示す。cosα光沢係数 は cosα の 光沢係数乗を示す。
  【0010】
 「画像生成開始直前」とはモデリングが終了し、すべての属性が完全に確定した時点をいう。これ以後を「画像生成中」と言い、本明細書ではマッピングが終了した直後を問題にしている。
  【0011】
 【従来の技術】
 CG の輝度計算に拡散反射(diffuse reflection)を考えればランバートの余弦則(Lambert's cosine law)により

 輝度=入射光輝度・物体色・拡散反射係数・cos(入射角)
                     …(式1)

で表される。この輝度は拡散反射輝度というものである。つまり

 拡散反射輝度=入射光輝度・物体色
       ・拡散反射係数・cos(入射角)
                     …(式2)
である。もし、この輝度が[cd/m2]という次元を持つとするならば、入射光輝度(光の強さ)は[cd/m2]という次元を持つことになる。他の物体色, 拡散反射係数は無次元量である。減衰する光源もあるので、光源強度ではなく、入射光輝度という表現を使用している。
  【0012】
 現状の CG は(式2)で求めた輝度を 0〜1 の実数値あるいは 0〜255 の整数値という数値に変換して表現しており、結局全体的に無次元であり、「輝度」「光源強度」「光の強さ」も「入射光輝度」も無次元と考えることも出来る。
 本明細書では輝度は 0〜1 の実数値として説明する。もちろん、0 が最低で 1 が最高(上限)である。入射光輝度, 物体色, 拡散反射係数を共に 1 にすれば入射角0゜の方向の輝度は 1 になる。
 輝度, 入射光輝度, 物体色, 拡散反射係数は それぞれ赤緑青(RGB)の3つ、すなわち 3原色のデータを持っているのが普通である。その 3原色おのおのが 0〜1 の値を取り、色を表現する。画像生成システムでは少なくとも 1画素の輝度と物体色は 3原色のデータを持っている。
 本明細書では輝度, 入射光輝度, 物体色, 拡散反射係数は それぞれ赤緑青の3つ、すなわち 3原色のデータを持ち、それぞれ 0〜1 の間の値を取るものとする。
【図2】
  【0013】
 ハイライトを付けるには次式のように先の拡散反射輝度に鏡面反射輝度を加えれば良い。

  輝度=拡散反射輝度+鏡面反射輝度
                     …(式3)

この鏡面反射輝度の算出方法の1つに次式のフォン(Phong)の反射モデルがある(図2)。

  鏡面反射輝度=入射光輝度・鏡面反射係数
        ・(cos(反射偏角))光沢係数
                     …(式4)

  【0014】
 ここで
 Vl:光源方向ベクトル(光源がある方向のベクトル)
 Ve:視線ベクトル(視点から物体表面上の点に向かうベクトル)
 Vn:法線ベクトル(面に垂直なベクトルで+方向が物体外部)
 Vr:反射ベクトル(反射した光線が進む方向のベクトル)
 φ:入射角(光源方向ベクトルと法線ベクトルのなす角)
 θ:視角(-視線ベクトルと法線ベクトルのなす角)
 α:反射偏角(-視線ベクトルと反射ベクトルのなす角度)
とすれば
 cosα=(-Ve)・Vr
    =(-Ve)・(Vn・2・cosφ-Vl)
    =(-Ve)・(Vn・2・(Vn・Vl)-Vl)
    =Ve・(Vl-Vn・2・(Vn・Vl))
                     …(式5)

【図3】
である。・(全角中黒)はベクトルの内積(スカラー積)、・(半角中黒)は係数の積を示す。
 結局、cosαは -1〜+1 の値を取るが、0以下の場合は光沢なしとして処理する。これは 90゜≦α≦270゜では反射ベクトルと視線ベクトルの向きが一致し(Vr と -Ve の向きが逆になり)、ハイライトの出来ようがないからである。
  【0015】
 【発明が解決しようとする課題】
 図1, 10のグラフの条件を図3のように設定する。すなわち視点(1)と注視点(2)を結ぶ光軸(3)上に、中心がある球(4)をおく。この球上の輝度を入射角φ=0〜90゜の間で計算する。グラフは縦軸を輝度、横軸を入射角としている。入射角は図3の入射角の回転方向を正として、反対側は負としている。
 光源は光源強度1 の白色(rgb(1,1,1))の無限遠点平行光源とし、光源ベクトルと光軸ベクトルは一致している(vec(0,-1,0))。φ=0゜では、光源方向ベクトル Vl, 法線ベクトル Vn, 反射ベクトル Vr が一致している(vec(0,1,0))。
 減衰がない光源なので入射光輝度は常に rgb(1,1,1) になる。また、拡散反射係数, 鏡面反射係数は共に rgb(1,1,1) とする。なお、図4, 10は赤成分に関して表示されている。


【図5】
 視線ベクトル Ve は一定ではなく、入射角φ=0゜では vec(0,1,0) であるが、入射角φが増大するに従って vec(1,0,0) に近付く。しかし、φ=90゜で vec(1,0,0) になったとしても φ=90゜でも vec(0,1,0) の場合とほとんど区別が付かない。
 傾向としては図4(b)の光沢係数が大きい方にシフトする。図5は視線ベクトルの影響を極端に強調したものである(50倍)。現実には視点は十分遠方にあり、φ=90゜で vec(1,0,0) になることはなく、vec(0,1,0) に近い状態である。そこで Ve は vec(0,1,0) 一定としている。



【図4】
  【0016】
 さてこの条件で物体色が赤、つまり rgb(1,0,0) の場合、(式2)の拡散反射輝度, (式4)の鏡面反射輝度, (式3)の拡散反射輝度+鏡面反射輝度のそれぞれの赤成分は図4のようになる。光沢係数が 5,10,100 の場合を示したが、光沢係数が大きいほど一点に集中することになる。(cos(反射偏角))光沢係数 は 0〜1 の値となるが、光沢係数が大きいほどハイライトは一点に集中するわけである。


【図6】
 ところが困ったことに、拡散反射輝度と鏡面反射輝度の合計である輝度は図4(c)に示すように簡単に 1 を越えてしまうのである。これは図6のように物体色が (0.5,0,0) の場合でも同様である。



【図1】
  【0017】
 輝度は 0〜1 の間でなければならないので、図6(c)を図1(a)のように 1 を越えた分をカットするか、図1(b)のように最大輝度で全体を割って 0〜1 の範囲に抑える必要がある。
 しかし両者には欠点があり、図1(a)のようにカットした場合は輝度が台形型になり不自然な陰影となる。出来た画像は球には見えなく、団子を押し潰したように見える。特にハイライトが一点に集中してない、光沢係数が小さい上に、原色に近い色彩の物体はこうした色ムラは顕著に表れる。図4のように rgb(1,0,0) とした場合などは その最たる例である。
 図1(b)の場合はハイライトが付く物体が1個でもあると、全体に暗い画像が出来上がるという奇妙なことになる。
  【0018】
 本発明はこのような従来技術の欠点をことごとく解消することを目的とするものである。また、マッピングされている高度な画像生成にも対応できることを目指すものである。
 フォンの反射モデルの他にブリン(Blinn)の反射モデルなどがあるが、拡散反射輝度に鏡面反射輝度を加えることに変わりがない。従って、本発明は拡散反射輝度に鏡面反射輝度を加えるすべてのハイライト生成方法に適用できる。
  【0019】
 【課題を解決するための手段】
 請求項1は、ハイライト生成方法の発明である。ハイライト生成方法としては、拡散反射輝度に鏡面反射輝度を加える方法である。あるいは、拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加える方法である。
  【0020】
 請求項1の発明は、拡散反射輝度に鏡面反射輝度を加えるハイライト生成方法において、次の(a)〜(e)の手順からなることを特徴とするハイライト生成方法の発明である。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する。
 (b)RGB の各成分について、手順aで得た拡散反射輝度と鏡面反射輝度の和が輝度上限を越えている場合は輝度上限を越えないように、その成分の鏡面反射輝度を補正する。
 (c)手順aで得た拡散反射輝度に、手順aで無視した項を演算し、真の拡散反射輝度を決定する。
 (d)手順bで補正があった場合は手順bで補正された鏡面反射輝度に、そうでない場合は手順aで得た鏡面反射輝度に、手順aで無視した項を演算し、真の鏡面反射輝度を決定する。
 (e)手順cで得た拡散反射輝度と手順dで得た鏡面反射輝度を加えて、ハイライトを生成する。
  【0021】
 請求項2の発明は、拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成方法において、次の(a)〜(e)の手順からなることを特徴とするハイライト生成方法の発明である。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する。
 (b)RGB の各成分について、手順aで得た拡散反射輝度と鏡面反射輝度の和が 輝度上限-周辺反射輝度 を越えている場合は 輝度上限-周辺反射輝度 を越えないように、その成分の鏡面反射輝度を補正する。
 (c)手順aで得た拡散反射輝度に、手順aで無視した項を演算し、真の拡散反射輝度を決定する。
 (d)手順bで補正があった場合は手順bで補正された鏡面反射輝度に、そうでない場合は手順aで得た鏡面反射輝度に、手順aで無視した項を演算し、真の鏡面反射輝度を決定する。
 (e)周辺反射輝度と手順cで得た拡散反射輝度と手順dで得た鏡面反射輝度を加えて、ハイライトを生成する。
  【0022】
 請求項3の発明は、請求項1の発明の具体例である。
  【0023】
 請求項3の発明は、拡散反射輝度に鏡面反射輝度を加えるハイライト生成方法において、拡散反射輝度に加える鏡面反射輝度が、次の鏡面反射係数補正をしてから演算された鏡面反射輝度であることを特徴とするハイライト生成方法の発明である。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する。
  【0024】
 請求項4の発明は、拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成方法において、拡散反射輝度と周辺反射輝度の和に加える鏡面反射輝度が、次の鏡面反射係数補正をしてから演算された鏡面反射輝度であることを特徴とするハイライト生成方法の発明である。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が 輝度上限-周辺反射輝度 を越えている場合は その成分の 鏡面反射係数 を 輝度上限-周辺反射輝度-物体色・拡散反射係数 に変更し補正する。
  【0025】
 請求項3の「RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する。」を分解して述べれば
 物体色赤成分・拡散反射係数赤成分+鏡面反射係数赤成分 が輝度上限を越えている場合は 鏡面反射係数赤成分 を 輝度上限-物体色赤成分・拡散反射係数赤成分 に変更し、
 物体色青成分・拡散反射係数青成分+鏡面反射係数青成分 が輝度上限を越えている場合は 鏡面反射係数青成分 を 輝度上限-物体色青成分・拡散反射係数青成分 に変更し、
 物体色緑成分・拡散反射係数緑成分+鏡面反射係数緑成分 が輝度上限を越えている場合は 鏡面反射係数緑成分 を 輝度上限-物体色緑成分・拡散反射係数緑成分 に変更し補正する。
ということになる。
  【0026】
 請求項5の発明は、鏡面反射係数補正を画像生成開始直前に行うことを特徴とする請求項3の何れか1つに記載のハイライト生成方法の発明である。
  【0027】
 請求項6の発明は、鏡面反射係数補正を、画像生成中のマッピングが終了した時点からハイライト生成直前の段階で行うことを特徴とする請求項3の何れか1つに記載のハイライト生成方法の発明である。
  【0028】
 請求項710は、ハイライト生成装置の発明である。ハイライト生成装置としては拡散反射輝度に鏡面反射輝度を加える装置である。あるいは拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加える装置である。
  【0029】
 請求項7の発明は、拡散反射輝度に鏡面反射輝度を加えるハイライト生成装置において、次の(a)〜(e)の手段からなることを特徴とするハイライト生成装置の発明である。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する手段。
 (b)RGB の各成分について、手段aで得た拡散反射輝度と鏡面反射輝度の和が輝度上限を越えている場合は輝度上限を越えないように、その成分の鏡面反射輝度を補正する手段。
 (c)手段aで得た拡散反射輝度に、手段aで無視した項を演算し、真の拡散反射輝度を決定する手段。
 (d)手段bで補正があった場合は手段bで補正された鏡面反射輝度に、そうでない場合は手段aで得た鏡面反射輝度に、手段aで無視した項を演算し、真の鏡面反射輝度を決定する手段。
 (e)手段cで得た拡散反射輝度と手段dで得た鏡面反射輝度を加えて、ハイライトを生成する手段。
  【0030】
 請求項8の発明は、拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成装置において、次の(a)〜(e)の手段からなることを特徴とするハイライト生成装置の発明である。
 (a)拡散反射輝度と鏡面反射輝度の計算式で入射角に依存した項を無視して、拡散反射輝度と鏡面反射輝度を決定する手段。
 (b)RGB の各成分について、手段aで得た拡散反射輝度と鏡面反射輝度の和が 輝度上限-周辺反射輝度 を越えている場合は 輝度上限-周辺反射輝度 を越えないように、その成分の鏡面反射輝度を補正する手段。
 (c)手段aで得た拡散反射輝度に、手段aで無視した項を演算し、真の拡散反射輝度を決定する手段。
 (d)手段bで補正があった場合は手段bで補正された鏡面反射輝度に、そうでない場合は手段aで得た鏡面反射輝度に、手段aで無視した項を演算し、真の鏡面反射輝度を決定する手段。
 (e)周辺反射輝度と手段cで得た拡散反射輝度と手段dで得た鏡面反射輝度を加えて、ハイライトを生成する手段。
  【0031】
 請求項910の発明は、請求項7の発明の具体例である。
  【0032】
 請求項9の発明は、拡散反射輝度に鏡面反射輝度を加えるハイライト生成装置において、拡散反射輝度に加える鏡面反射輝度が、次の鏡面反射係数補正手段により補正された鏡面反射係数を使用して演算された鏡面反射輝度であることを特徴とするハイライト生成装置の発明である。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する手段。
  【0033】
 請求項10の発明は、拡散反射輝度と周辺反射輝度の和に鏡面反射輝度を加えるハイライト生成装置において、拡散反射輝度と周辺反射輝度の和に加える鏡面反射輝度が、次の鏡面反射係数補正手段により補正された鏡面反射係数を使用して演算された鏡面反射輝度であることを特徴とするハイライト生成装置の発明である。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が 輝度上限-周辺反射輝度 を越えている場合は その成分の 鏡面反射係数 を 輝度上限-周辺反射輝度-物体色・拡散反射係数 に変更し補正する手段。
  【0034】
 請求項11の発明は、ハイライト生成装置を含む画像生成システムの発明である。
  【0035】
 請求項11の発明は、請求項710の何れか1つに記載のハイライト生成装置を含むことを特徴とする画像生成システムの発明である。
  【0036】
 なお、ハイライト生成装置(B2-3, B3-3)を含む画像生成システムの発明として、以下の H1 と H2 もある。
  【0037】
[H1]拡散反射輝度に鏡面反射輝度を加える手段からなるハイライト生成装置を含む画像生成システムにおいて、次の鏡面反射係数補正手段を属性決定手段に含むことを特徴とする画像生成システム。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する手段。
  【0038】
[H2]拡散反射輝度に鏡面反射輝度を加える手段からなるハイライト生成装置と、マッピング手段を含む画像生成システムにおいて、次の鏡面反射係数補正手段を輝度決定手段に含むことを特徴とする画像生成システム。
 RGB の各成分について 物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えている場合は その成分の 鏡面反射係数 を 輝度上限-物体色・拡散反射係数 に変更し補正する手段。
  【0039】
 H1 の発明では属性決定手段(B2-1)に、H2 の発明では輝度決定手段(B3-2)に鏡面反射係数補正手段(B2-4, B3-4)を含む。図12H1 の発明のブロック図を、図13H2 の発明のブロック図を示す。図11は従来技術のブロック図であり、鏡面反射係数の補正手段はない。

【図11】

【図12】【図13】

【図7】
  【0040】
 【作用】
 請求項1, の発明の作用。拡散反射輝度を決定する(式2)では 入射光輝度,cos(入射角) が入射角に依存した項であり、手順aの拡散反射輝度を求める式は 物体色・拡散反射係数 である。
 鏡面反射輝度を決定する(式4)では 入射光輝度,(cos(反射偏角))光沢係数 が入射角に依存した項であり、手順aの鏡面反射輝度は 鏡面反射係数 が そのまま適用される。これは請求項3, の発明そのものである。
 手順aの入射角に依存した項を無視するというのは入射光輝度を輝度上限の rgb(1,1,1)、cos(入射角) を 1 つまり入射角0゜、(cos(反射偏角))光沢係数 を 1 つまり光沢係数を 0 として計算することになる。
 結果として入射角に関わらず 拡散反射輝度+鏡面反射輝度=輝度上限 となるように鏡面反射係数を補正することになる。
 手順cでは cos(入射角) を掛け真の拡散反射輝度を、手順dでは (cos(反射偏角))光沢係数 を掛け真の鏡面反射輝度を得る。後は手順eでハイライトの輝度を得る。
  【0041】
 請求項3, , , の発明の作用。物体色・拡散反射係数+鏡面反射係数 が輝度上限を越えた場合、物体色・拡散反射係数+鏡面反射係数=輝度上限 となるように鏡面反射係数を補正するので、図1(a)のような色ムラが起きない。また、図6(b)の鏡面反射輝度が、図7(b)および図1(c)のように縮小され、ハイライトが 1 を越えることはない。図1を見れば本発明の優位性は一目瞭然である。


【図8】
  【0042】
 図7は物体色が rgb(0.5,0,0) の場合であり、それの赤成分についてであった。この赤成分を含め、青成分と緑成分をまとめたのが図8である。これで分かるとおり、赤輝度は物体色の赤成分が 0.5 である拡散面と、鏡面反射係数が 1 から 0.5 に補正されたハイライトから成り立っている。しかし、緑輝度は物体色の緑成分が 0、青輝度は物体色の青成分が 0 であるので、鏡面反射輝度のみで成り立っている。
 この RGB が同一輝度である部分が白いハイライトになり、本発明は適切なハイライトを生成できる訳である。


【図9】
  【0043】
 図9は物体色が rgb(1,0,0) の場合である。赤輝度は物体色の赤成分に 1 があるため、鏡面反射係数が 1 から 0 に補正されハイライトがなく、拡散面のみで成り立っている。一方、緑輝度は物体色の緑成分は 0、青輝度は物体色の青成分は 0 であるので、鏡面反射輝度のみで成り立っている。
 このように赤輝度にはハイライトの要素がないという特異な状況であるが、RGB が同一輝度である部分は問題なく存在するので、その部分が白いハイライトになり、この場合でも本発明は適切なハイライトを生成できる訳である。
  【0044】
 これから分かるとおり、本発明では拡散反射係数, 鏡面反射係数が共に rgb(1,1,1) の条件での白色rgb(1,1,1) の物体にはハイライトは付かないことになる。こうした白色物体にハイライトを付けたい場合は物体色は rgb(1,1,1) ではなく、rgb(0.9,0.9,0.9) 程度にすればよい。
  【0045】
 請求項5の発明はマッピングがない場合に、請求項6の発明はマッピングがある場合に有効である。
 この場合、マッピングされるのは物体色, 拡散反射係数, 鏡面反射係数, 光沢係数のどれでもよい。この何れか1つでもマッピングがされていて、画像生成中でないと物体のある表面上のこれらの値が完全に確定しない場合は請求項6の発明によらなければならない。
 すなわち画像生成中のマッピングが終了し、物体色, 拡散反射係数, 鏡面反射係数, 光沢係数のすべてが確定した時点で鏡面反射係数を補正すれば問題を解決できるわけである。
 マッピングがない場合は画像生成中に鏡面反射係数補正を行うのは不経済であるので、画像生成直前に行うとよい。もちろん、マッピングされるか不明な場合は画像生成中に行わなければならない。

【図10】
  【0046】
 図10は物体色にマッピングが行われていた場合を示す。拡散反射輝度(a)は物体色がマッピングされているため、左右で異なっている。マッピングにより物体色は球の左が rgb(0.25,0,0)、右が rgb(0.5,0,0)となっている。
 そこで鏡面反射輝度(b)は左右で鏡面反射係数の補正が異なっているため、やはり左右で異なっている。鏡面反射係数は補正により左が rgb(0.75,1,1)、右は rgb(0.5,1,1) となっている。
 拡散反射輝度+鏡面反射輝度(c)のハイライト部分は この補正により、図7(c)と同様なものになっている。
  【0047】
 請求項2, , , 10の発明の作用。いわゆる周辺光(環境光, 背景光源)を含んだ輝度決定をする画像生成方法, 画像生成システムでは輝度は

 輝度=周辺反射輝度+拡散反射輝度+鏡面反射輝度
                     …(式6)

で決定される。
 周辺反射輝度は

  周辺反射輝度=物体色・周辺反射係数・周辺光輝度
                     …(式7)

となる。
 (式3)と(式6)から、請求項1, , , の 輝度上限 は、請求項2, , , 10では 輝度上限-周辺反射輝度 に相当する。この点が異なる点以外は、請求項2の作用は請求項1と、請求項4の作用は請求項3と、請求項8の作用は請求項7と、請求項10の作用は請求項9と同一である。
 もちろん、請求項2, を引用した請求項6の発明では周辺反射係数, 周辺光輝度がマッピングされている場合でも対応できる。
  【0048】
 本願発明者が先に特許出願した特願平5−282155(発明の名称:光源自動化システム)で述べたとおり、周辺光は CG が物理法則を完全にシミュレートしていない、出来ない状況での方便である。
 光源についてはラジオシティ(radiosity)でもなければ相互反射のシミュレートは難しいから、光源が遮られたところは暗黒の宇宙空間と同じなってしまう。そのため周辺光と称して、疑似的な相互反射を与えることがある。しかし、周辺光は一律に輝度を上げるだけであるから、立体感のない絵になってしまう。
 こうした非常に雑な光源である周辺光の使用は避けた方がよく、減衰の弱いあるいは無減衰の点光源を使用した方が結果がよい。
  【0049】
 請求項11の発明の作用。請求項11は、請求項710の何れか1つに記載のハイライト生成装置を含むことを特徴とする画像生成システムの発明であることから、請求項710の作用によるハイライトを画像生成時に生成できる。
  【0050】
 H1, H2 の発明の作用。H1 の発明では図12のように属性決定時に鏡面反射係数が補正される。H2 の発明では図13のように画像生成時に鏡面反射係数が補正される。マッピングを行う手段を含んだ画像生成システムでは H2 の発明が有効である。
  【0051】

【図14】
 【実施例】
 本発明の実施例を図14に示す。この実施例はマッピングが可能な画像生成システムに本発明を実施した例である。鏡面反射係数補正手段(B4-4)は輝度決定手段(B4-2)の中に存在し、マッピング手段(B4-5)からの出力を受けている。
 鏡面反射係数補正は画像生成中のマッピングが終了した時点で行われることになる。そのためマッピング手段(B4-5)により、物体色, 拡散反射係数, 鏡面反射係数のすべてがマッピングされていても問題なく鏡面反射係数が補正できる。
 もちろん、マッピングされていない属性は属性決定手段(B4-1)で決まった値が直接、鏡面反射係数補正手段(B4-4)に渡されることになる。鏡面反射係数補正手段(B4-3)で補正された鏡面反射係数はハイライト生成装置(B4-3)に渡されハイライトが生成される。
  【0052】
 (式2)が
  拡散反射輝度=入射光輝度・物体色・不透度
            ・拡散反射係数・cos(入射角)
                     …(式8)
 (式7)が
  周辺反射輝度=物体色・不透度
           ・周辺反射係数・周辺光輝度
                     …(式9)

というふうに不透度(opacity;不透明度)というパラメータを持った画像生成方法, 画像生成システムでは、請求項4, 10の鏡面反射係数補正(手段)を

 RGB の各成分について 物体色・不透度・拡散反射係数+鏡面反射係数 が輝度上限-周辺反射輝度 を越えている場合はその成分の 鏡面反射係数 を 輝度上限-周辺反射輝度-物体色・不透度・拡散反射係数 に変更し補正する(手段)。

と読み変える必要がある。もちろん、請求項6の発明では不透度がマッピングされている場合でも対応できる。
  【0053】
 さらに、(式4)が

 鏡面反射輝度=入射光輝度・鏡面反射係数
       ・幾何学的減衰係数
       ・微小面勾配分布係数
       ・(1+色成分・(物体色-1))
                    …(式10)
という各種パラメータを持った画像生成方法, 画像生成シテムでは、請求項4, 10の鏡面反射係数補正(手段)を

 RGB の各成分について 物体色・不透度・拡散反射係数+鏡面反射係数・(1+色成分・(物体色-1)) が 輝度上限-周辺反射輝度 を越えている場合は その成分の 鏡面反射係数 を 輝度上限-周辺反射輝度-物体色・不透度・拡散反射係数 に変更し補正する(手段)。

と読み変える必要がある。
 もちろん、請求項6の発明では幾何学的減衰係数, 微小面勾配分布係数, 色成分がマッピングされている場合でも対応できる。すなわち、物体色, 拡散反射係数, 鏡面反射係数, 光沢係数, 周辺反射係数, 周辺光輝度, 不透度, 幾何学的減衰係数, 微小面勾配分布係数, 色成分のすべてがマッピングされていても問題なく鏡面反射係数が補正できる。
  【0054】
 ちなみに、入射光輝度, 物体色, 拡散反射係数, 鏡面反射係数, 周辺反射係数, 周辺光輝度, 不透度は一般に 3原色のデータを持つ。光沢係数, 幾何学的減衰係数, 微小面勾配分布係数, 色成分は 1次元のデータである。
  【0055】
 フォンの反射モデルでは (cos(反射偏角))光沢係数 が微小面勾配分布係数にあたり、幾何学的減衰係数は 1 である。
 色成分が 0 の時はハイライトは光源の色になり、フォンの反射モデルと同じである。一般に光源の色は白なので白いハイライトになる。これは一般にプラスチック光沢と呼ばれている。
 一方、色成分が 1 の時はハイライトは物体色になる。これは一般に金属光沢と呼ばれている。ただし、金属を表現する場合では拡散反射輝度を 0 として計算することが多いので必ずしも本発明が関わるとは限らない。
 もちろん色成分は 0〜1 の間を取るので、その場合は本発明は有効である。
  【0056】
 【発明の効果】
 本発明では輝度上限を越えたデータを一律に切って色ムラが出たり、ハイライトが付く物体が1個でもあると、全体に暗い画像が出来上がるというようなことは発生しない。本発明は過剰な鏡面反射係数を最適な値に補正することにより、美しいハイライトを持った画像を生成することが出来る。
 特に請求項6の発明では物体色, 拡散反射係数, 鏡面反射係数, 光沢係数のすべてがマッピングされていても問題なく鏡面反射係数が自動的に補正され、こうした複雑な画像生成にも対応できる。
 また、本発明は拡散反射輝度に鏡面反射輝度を加えるすべてのハイライト生成方法に適用できるので実施範囲は広く、反射モデルや輝度計算式は本明細書に挙げたものに限定されるものではない。
【図面の簡単な説明】
 【図1】各種ハイライトの生成方法を比較する図。
 【図2】フォンの反射モデルの説明図。
 【図3】グラフの設定条件を示す図。
 【図4】ハイライトの生成(物体色 rgb(1,0,0)の場合)の説明図。
 【図5】視線ベクトルの影響を示す図。
 【図6】ハイライトの生成(物体色 rgb(0.5,0,0)の場合)の説明図。
 【図7】本発明のハイライトの生成方法(物体色 rgb(0.5,0,0)の場合)の説明図。
 【図8】ハイライト生成時の各成分の輝度(物体色 rgb(0.5,0,0)の場合)を示す図。
 【図9】ハイライト生成時の各成分の輝度(物体色 rgb(1,0,0)の場合)を示す図。
 【図10】本発明のマッピングの対処状況を示す図。
 【図11】従来技術のブロック図。
 【図12】属性決定手段側での鏡面反射係数補正を示すブロック図。
 【図13】輝度決定手段側での鏡面反射係数補正を示すブロック図。
 【図14】本発明の実施例を示すブロック図。
 【符号の説明】
x x座標
y y座標
Vl 光源方向ベクトル(light;光源がある方向のベクトル)
Ve 視線ベクトル(eye;視点から物体表面上の点に向かうベクトル)
Vn 法線ベクトル(normal;面に垂直なベクトルで+方向が物体外部)
Vr 反射ベクトル(reflection;反射した光線が進む方向のベクトル)
φ 入射角(光源方向ベクトルと法線ベクトルのなす角)
θ 視角(-視線ベクトルと法線ベクトルのなす角)
α 反射偏角(-視線ベクトルと反射ベクトルのなす角度)
1 視点
2 注視点
3 光軸
4 物体(球)
B*-1 属性決定手段
B*-2 輝度決定手段
B*-3 ハイライト生成装置
B*-4 鏡面反射係数補正手段
B*-5 マッピング手段
ただし、* は 1〜4 の数字。

 
 関連発明   

特許第3447778号 視点・注視点・画角自動化システム

特許第3423753号 光源自動化システム


 特許第3311841号『ハイライト生成方法および画像生成システム』は、有償開放特許となっております。実施許諾や権利譲渡についてのお問い合わせには平林雅英まで。



Copyright (C) 1993-2024 Hirabayashi Masahide  プライバシーポリシー