JP4802676B2 - レンダリング用テクスチャデータの作成方法 - Google Patents

レンダリング用テクスチャデータの作成方法 Download PDF

Info

Publication number
JP4802676B2
JP4802676B2 JP2005332633A JP2005332633A JP4802676B2 JP 4802676 B2 JP4802676 B2 JP 4802676B2 JP 2005332633 A JP2005332633 A JP 2005332633A JP 2005332633 A JP2005332633 A JP 2005332633A JP 4802676 B2 JP4802676 B2 JP 4802676B2
Authority
JP
Japan
Prior art keywords
texture data
data
pixel
approximate
rendering
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
JP2005332633A
Other languages
English (en)
Other versions
JP2007140820A (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 JP2005332633A priority Critical patent/JP4802676B2/ja
Publication of JP2007140820A publication Critical patent/JP2007140820A/ja
Application granted granted Critical
Publication of JP4802676B2 publication Critical patent/JP4802676B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Description

本発明は、レンダリング用テクスチャデータの作成方法に関し、特に、反射特性が、光の入射方向や反射方向に関する角度に依存して定まる高次元テクスチャデータの圧縮技術に関する。
コンピュータの性能向上により、産業界の様々な分野でCG画像が利用されるようになってきている。たとえば、建築物、家具、自動車などの設計段階では、通常、多くのCG画像が利用されている。また、コンピュータを利用した製品のプレゼンテーションや映画などの種々の映像表現においても、物品の様々なCG画像が不可欠である。更に、最近では、商品カタログなどにも、実際の商品写真の代わりに、CG画像が利用される例も少なくない。
建築物、家具、自動車の内装部品などの物品データは、仮想物体の三次元データであるのに対して、提示用のCG画像は、通常、二次元画像として用意される。したがって、三次元の物品データを利用してCG画像を作成する際には、コンピュータ内に仮想物体の三次元データを取り込み、照明条件、視点位置、投影平面を設定した上で、三次元の仮想物体の二次元投影像を投影平面上に得るためのレンダリング処理が行われる。この処理は、基本的には、照明条件で定められた光源からの照明光が仮想物体の各部で反射して視点位置へ向かう現象をコンピュータ上でシミュレートするものであり、視点位置へ向かう反射光の強度を演算する処理ということができる。
また、仮想物体の表面に何らかの絵柄や模様を張り付けた表現を行いたい場合には、予め二次元のテクスチャデータを用意しておき、レンダリング時に、このテクスチャデータを物体データの表面にマッピングする処理が行われる。テクスチャデータは、基本的には、反射特性の分布を示す2次元の画像データであり、これを仮想物体の表面にマッピングすることにより、反射特性が部分ごとに異なる性質をもった物体を表現することが可能になる。
一方、最近は、テクスチャデータとして、単なる2次元の画像データではなく、高次元画像データを用いる方法も提案されている。たとえば、下記の非特許文献1には、BTF(Bi-directional Texture Function)と呼ばれている6次元の関数で示されるテクスチャデータを用いるレンダリング処理が開示されている。このBTFは、光の入射方向や反射方向によって異なる反射特性を定義する関数であり、照明光の入射方向を示す2つの角度θL,φLと、反射光の射出方向を示す2つの角度θV,φVと、二次元uv座標系における座標値u,vという合計6個の変数(θL,φL,θV,φV,u,v)によって、特定の反射特性を定義する関数になる。また、素材の表面付近の内部散乱を考慮するために、多重散乱の反射点を表わす変数x,yを更に加えた8次元の関数として、BSSRDF(Bi-directional Surface Scattering Reflectance Distribution Function)も提案されている。このBSSRDFは、合計8個の変数(θL,φL,θV,φV,u,v,x,y)によって、特定の反射特性を定義する関数になる。
このような高次元画像として与えられるテクスチャデータは、通常、数値テーブルの形式で用意されるが、そのデータ容量は次元が高くなればなるほど膨大な量になる。そこで、このような高次元画像からなるテクスチャデータに対しては、データを圧縮して利用する技術が提案されている。たとえば、下記の特許文献1には、テクスチャデータに含まれる画像情報を、光源非依存画像と輝度マップとに分離してデータ量を圧縮する技術が開示されている。また、下記の特許文献2には、テクスチャデータを符号化して圧縮する技術が開示されている。
G. Muller, J. Meseth, M. Sattler, R. Sarlette and R. Klein 2004, Acquisition, Synthesis and Rendering of Bidirectional Texture Functions. In Eurographics 2004 STAR-State of The Art Report 特開2004−234285号公報 特開2004−234476号公報
上述したとおり、高次元画像として与えられるテクスチャデータは、データ容量が膨大になるため、小規模なコンピュータシステムで取り扱うためには、これを圧縮することが不可欠になる。しかしながら、一般に、圧縮率向上と品質維持とは相反するファクターであり、圧縮率を高めれば、テクスチャデータの品質が劣化することになり、品質を維持しようとすれば、圧縮率が低下することになる。また、圧縮されたテクスチャデータを利用してレンダリングを行う場合には、これを部分的に展開する処理が必要になるが、従来提案されている圧縮手法で得られたテクスチャデータは、高速な展開処理を行うことが困難である。
そこで本発明は、高速な展開処理が可能であり、しかも圧縮率向上と品質維持とを可能な限り両立させることができるレンダリング用テクスチャデータの作成方法を提供することを目的とする。
(1) 本発明の第1の態様は、
M個の画素の集合からなり、個々の画素ごとに、光の入射方向および/または反射方向に関する角度に依存して定まる反射特性を示すテーブルが定義された原テクスチャデータを、コンピュータが読み込む原データ準備段階と、
コンピュータが、このM個の画素の中からN個(N<M)の代表画素を定め、残りの(M−N)個の画素を一般画素とする代表画素決定段階と、
コンピュータが、個々の一般画素について、それぞれ自己の反射特性に近似した反射特性をもつ代表画素を近似代表画素として選択する近似代表画素選択段階と、
コンピュータが、原テクスチャデータ上のM個の画素のうち、N個の代表画素については、それぞれ自己の反射特性を示すテーブルを収録し、(M−N)個の一般画素については、選択された近似代表画素を示すデータを収録した圧縮テクスチャデータを作成するデータ圧縮段階と、
を有するレンダリング用テクスチャデータの作成方法において、
近似代表画素選択段階で、個々の代表画素について、原テクスチャデータによって定義されているテーブルの角度のパラメータを所定のオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択し、
データ圧縮段階で、一般画素については、選択された近似代表画素を示すデータとともに、当該近似代表画素を選択する要因となった最近似テーブルについてのオフセット量を示すデータを収録した圧縮テクスチャデータを作成するようにしたものである。
(2) 本発明の第2の態様は、上述した第1の態様に係るレンダリング用テクスチャデータの作成方法において、
原データ準備段階で、光の入射方向および/または反射方向に関する角度を、所定範囲の角度を等分割して得られる複数通りの角度値によって表現したテーブルを読み込み、
近似代表画素選択段階で、個々の角度値に対して前記等分割された角度の整数倍に対応する所定のオフセット量を加算もしくは減算するシフトを行い、加算もしくは減算の結果、シフト後の角度値が所定範囲の一端から食み出してしまう場合には、食み出し分を所定範囲の他端からカウントするローテーションを行うようにしたものである。
(3) 本発明の第3の態様は、上述した第2の態様に係るレンダリング用テクスチャデータの作成方法において、
原データ準備段階で、テクスチャデータのマッピング対象となる仮想物体の表面上に、サンプル点Qと、このサンプル点Qの位置に立てた法線nと、サンプル点Qを含み法線nに直交する基準面Sと、サンプル点Qを通る基準面S上の基準線ζと、を定義し、サンプル点Qに入射する照明光と法線nとのなす角をθL、基準面S上への照明光の投影像と基準線ζとのなす角をφL、サンプル点Qから射出する反射光と法線nとのなす角をθV、基準面S上への反射光の投影像と基準線ζとのなす角をφVとしたときに、「θL,φL,θV,φV」の関数として与えられる反射係数K(θL,φL,θV,φV)をテーブルとして定義した原テクスチャデータを読み込むようにしたものである。
(4) 本発明の第4の態様は、上述した第3の態様に係るレンダリング用テクスチャデータの作成方法において、
原データ準備段階で、0〜360°の角度範囲をα等分することにより、φLの角度値をα通り設定し、φVの角度値をα通り設定し、0〜90°の角度範囲をβ等分することにより、θLの角度値をβ通り設定し、θVの角度値をβ通り設定し、個々の画素についてそれぞれ合計α×β通りの反射特性を示すテーブルを読み込むようにしたものである。
(5) 本発明の第5の態様は、上述した第4の態様に係るレンダリング用テクスチャデータの作成方法において、
近似代表画素選択段階で、Uφ=360°/αなる式で与えられる単位角度Uφを定義し、φLおよびφVを、Δφ=i×Uφ(但し、i=0,1,2,…,α−1)なる式で与えられるα通りのオフセット量Δφだけそれぞれシフトさせた合計α通りの組み合わせのバリエーションをもったテーブルを定義するようにしたものである。
(6) 本発明の第6の態様は、上述した第4の態様に係るレンダリング用テクスチャデータの作成方法において、
近似代表画素選択段階で、Uφ=360°/αなる式で与えられる単位角度Uφを定義し、Uθ=90°/βなる式で与えられる単位角度Uθを定義し、φLおよびφVを、Δφ=i×Uφ(但し、i=0,1,2,…,α−1)なる式で与えられるα通りのオフセット量Δφだけそれぞれシフトさせるとともに、θLおよびθVを、Δθ=j×Uθ(但し、j=0,1,2,…,β−1)なる式で与えられるβ通りのオフセット量Δθだけそれぞれシフトさせた合計α×β通りの組み合わせのバリエーションをもったテーブルを定義するようにしたものである。
(7) 本発明の第7の態様は、上述した第1〜第6の態様に係るレンダリング用テクスチャデータの作成方法において、
原データ準備段階で、反射特性を示すデータとして、三原色RGBの波長をもった照明光それぞれについての反射率を示す数値をもったテーブルを読み込むようにしたものである。
(8) 本発明の第8の態様は、上述した第7の態様に係るレンダリング用テクスチャデータの作成方法において、
近似代表画素選択段階で、自己の反射特性を示すテーブルと比較対象となるテーブルとについて、対応する個々の反射率の差の二乗和が最小となるテーブルを最近似テーブルと決定するようにしたものである。
(9) 本発明の第9の態様は、上述した第1〜第8の態様に係るレンダリング用テクスチャデータの作成方法において、
原データ準備段階で、実在の物体に対して、種々の方向から照明光を照射した状態で、種々の方向から撮影を行い、得られた複数の撮影画像に基づいて用意された原テクスチャデータを読み込むようにしたものである。
(10) 本発明の第10の態様は、上述した第1〜第8の態様に係るレンダリング用テクスチャデータの作成方法における代表画素決定段階、近似代表画素選択段階、データ圧縮段階をコンピュータに実行させるためのプログラムを用意したものである。
(11) 本発明の第11の態様は、上述した第1〜第9の態様に係るレンダリング用テクスチャデータの作成方法によって作成された圧縮テクスチャデータを、三次元仮想物体の表面にマッピングし、これを所定の視点から観察したときに得られる投影画像を示す二次元データを生成するレンダリング方法において、
コンピュータが、三次元仮想物体の構造を示す物体データを入力する物体データ入力段階と、
コンピュータが、圧縮テクスチャデータを入力するテクスチャデータ入力段階と、
コンピュータが、オペレータの指示に基づいて、レンダリングに必要な照明環境、視点位置、マッピング態様、投影平面を定めるレンダリング条件を設定するレンダリング条件設定段階と、
コンピュータが、三次元仮想物体上の各サンプル点Qについて、当該サンプル点Qの位置にマッピングされる圧縮テクスチャデータ内の対応画素を決定する対応画素決定段階と、
コンピュータが、対応画素が代表画素であった場合には、当該代表画素について収録されているテーブルによって示される反射特性を利用して、サンプル点Qからの反射光を演算し、対応画素が一般画素であった場合には、「当該一般画素について収録されているデータによって示された近似代表画素」について収録されているテーブルを、「当該一般画素について収録されているデータによって示されたオフセット量」だけシフトして得られるテーブルによって示される反射特性を利用して、サンプル点Qからの反射光を演算する反射光演算段階と、
コンピュータが、各サンプル点Qからの反射光に基づいて、投影平面上に得られる投影画像を示す二次元データを生成する二次元データ生成段階と、
を行うようにしたものである。
(12) 本発明の第12の態様は、
M個の画素の集合からなり、個々の画素ごとに、光の入射方向および/または反射方向に関する角度に依存して定まる反射特性を示すテーブルが定義された原テクスチャデータを入力してこれを格納する原データ格納部と、
M個の画素の中からN個(N<M)の代表画素を定め、残りの(M−N)個の画素を一般画素とする代表画素決定部と、
個々の一般画素について、それぞれ自己の反射特性に近似した反射特性をもつ代表画素を近似代表画素として選択する近似代表画素選択部と、
M個の画素のうち、N個の代表画素については、それぞれ自己の反射特性を示すテーブルを収録し、(M−N)個の一般画素については、選択された近似代表画素を示すデータを収録した圧縮テクスチャデータを作成するデータ圧縮部と、
を備えるレンダリング用テクスチャデータの作成装置において、
近似代表画素選択部が、個々の代表画素について、原テクスチャデータによって定義されているテーブルの角度のパラメータを所定のオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択し、
データ圧縮部が、一般画素については、選択された近似代表画素を示すデータとともに、当該近似代表画素を選択する要因となった最近似テーブルについてのオフセット量を示すデータを収録した圧縮テクスチャデータを作成するようにしたものである。
(13) 本発明の第13の態様は、上述した第12の態様に係るレンダリング用テクスチャデータの作成装置によって作成された圧縮テクスチャデータを、三次元仮想物体の表面にマッピングし、これを所定の視点から観察したときに得られる投影画像を示す二次元データを生成するレンダリング装置において、
三次元仮想物体の構造を示す物体データを入力してこれを格納する物体データ格納部と、
圧縮テクスチャデータを入力してこれを格納するテクスチャデータ格納部と、
レンダリングに必要な照明環境、視点位置、マッピング態様、投影平面を定めるレンダリング条件を設定するレンダリング条件設定部と、
三次元仮想物体上のサンプル点Qの位置にマッピングされる圧縮テクスチャデータ内の対応画素を決定する対応画素決定部と、
対応画素が代表画素であった場合には、当該代表画素について収録されているテーブルによって示される反射特性を利用して、サンプル点Qからの反射光を演算し、対応画素が一般画素であった場合には、「当該一般画素について収録されているデータによって示された近似代表画素」について収録されているテーブルを、「当該一般画素について収録されているデータによって示されたオフセット量」だけシフトして得られるテーブルによって示される反射特性を利用して、サンプル点Qからの反射光を演算する反射光演算部と、
各サンプル点Qからの反射光に基づいて、投影平面上に得られる投影画像を示す二次元データを生成する二次元データ生成部と、
を設けるようにしたものである。
本発明に係るレンダリング用テクスチャデータの作成方法によれば、圧縮率向上と品質維持とを、これまで以上に両立させた圧縮テクスチャデータを得ることが可能になり、しかも高速な展開処理が可能な圧縮テクスチャデータを得ることができる。
以下、本発明を図示する実施形態に基づいて説明する。
<<< §1.レンダリング処理の基本概念 >>>
本発明は、コンピュータを用いたレンダリング処理に係るものであり、特に、表面に繊維シート(布などの繊維質材料からなるシート)を張り付けた三次元仮想物体についてのレンダリング処理に応用した場合に有用である。ここでは、説明の便宜上、従来の一般的なレンダリング処理の基本概念を説明しておく。
図1は、一般的なレンダリング処理の原理を示す斜視図である。この例は、三次元仮想物体10を、視点Eから観察したときに、投影平面H上に二次元投影画像15を求めるシェーディングモデルを示すものである。このとき、二次元画像として用意されているテクスチャデータ20を、仮想物体10の表面にマッピングした状態で、投影画像15を求める演算が行われる。
このようなレンダリング処理を行うために、まず、仮想物体10を示す物体データが用意される。たとえば、図示の例では、XYZ三次元座標系上に定義された多数のポリゴン(多角形)の集合として、仮想物体10が表現されており、仮想物体10の表面の各部は、それぞれポリゴンによって構成されている。したがって、仮想物体10を示す物体データは、このポリゴンの集合体からなる三次元形状データということになり、仮想物体10の実体は物体データということになる。以下、説明の文脈に応じて、これを仮想物体10と呼んだり、物体データ10と呼んだりする。
一方、テクスチャデータ20は、uv二次元座標系上に定義された二次元画像データであり、二次元平面上に配列された多数の画素の集合体である。ここに示す例では、ハート型の絵柄模様が表現されている。もちろん、テクスチャデータ20によって表現される模様は、必ずしも人為的に描かれた絵柄模様だけではなく、天然素材がもつ固有の陰影模様の場合もある。たとえば、無地の絨毯を表現するテクスチャデータには、人為的な模様は描かれていないが、絨毯の毛並みによる陰影模様が表現されていることになる。結局、このテクスチャデータ20は、二次元平面上における反射特性の分布を示す反射特性データということができる。レンダリング処理を行う際には、このuv座標系上に定義されたテクスチャデータ20を、XYZ座標系上に定義された仮想物体10の表面にマッピングし、仮想物体表面の各部の反射特性を決定することになる。
なお、テクスチャデータ20は、たとえば、スキャナ装置やデジタルカメラなどを用いて、実在の繊維シートを撮影することによって用意することもできるし、CGの技術を用いて、コンピュータ上で人為的に作成することもできる。
レンダリング処理にあたっては、この他、照明条件、視点位置、投影平面を設定する必要がある。照明条件としては、光源の種類(たとえば、形状、大きさ、波長特性など)や位置などを設定する。図示の例の場合、光源G、視点E、投影平面Hが図示の位置に設定されている。また、三次元仮想物体10の表面に、どのようにして二次元テクスチャデータ20をマッピングするかを示すマッピング態様(たとえば、相対的な位置や向き)も設定しておく必要がある。一方、投影平面H上には、xy二次元座標系が定義されており、投影画像15(レンダリング処理の目的物として得られる二次元画像)は、このxy座標系上の画像データとして得られることになる。
いま、図示のとおり、仮想物体10上にサンプル点Qを定義し、このサンプル点Qから視点Eに向かう反射光Vを考える。この反射光Vは、光源Gからの照明光Lが、サンプル点Qで反射することにより得られる光であり、視点Eの位置で観察される光である。もっとも、ここでいう「反射」とは、「鏡面反射」のみでなく、「拡散反射」も含めた広い概念であり、サンプル点Qに様々な角度で入射する照明光がそれぞれ反射光として視点Eに向かうことになる。したがって、図示の反射光Vは、様々な角度から入射した照明光から得られる反射光の集まりというべきものになる。
1つのサンプル点Qから視点Eに向かう反射光Vと投影平面Hとの交点位置に、当該反射光Vの強度に応じた画素値をもつ画素Pを定義するようにし、仮想物体10の表面上の多数のサンプル点から視点Eに向かう各反射光について、同様に、投影平面H上に画素を定義すれば、多数のサンプル点について定義された多数の画素の集合により、三次元仮想物体10の二次元投影画像15が投影平面H上に得られることになる。実用上は、予め投影平面H上に所望の解像度で画素配列を定義しておき、視点Eと個々の画素Pの代表点(たとえば、中心位置)とを結ぶ線を仮想物体10上へと伸ばし、仮想物体表面との交点位置にサンプル点Qを定義し、上述した手法により、個々の画素Pの画素値を演算すれば、必要な解像度をもった二次元データを得ることができる。
このように、投影平面H上の画素Pの画素値を求めるためには、サンプル点Qから画素Pを通って視点Eに向かう反射光Vの強度を求める必要があるが、このような反射光Vの強度は、基本的に、サンプル点Qに入射する照明光Lの強度と、サンプル点Qにおける光の反射率(鏡面反射率や拡散反射率)とを考慮した演算によって求めることができる。もちろん、このとき、サンプル点Qを含むポリゴンの向きを考慮に入れた演算が行われ、サンプル点Qにマッピングされたテクスチャデータ20(uv座標系上に定義された二次元画像データ)も考慮に入れた演算が行われる。したがって、仮想物体10の表面が曲面であれば、当該曲面に応じた陰影をもった投影画像15が得られることになり、テクスチャデータ20が、図示のように、ハート型の絵柄の情報をもっていれば、投影画像15上にも、このハート型の絵柄が表現されることになる(図1では、この絵柄の図示は省略)。
図2は、図1に示すレンダリング処理において、サンプル点Qからの反射光の強度を演算する最も単純な手法を示す斜視図である。図示のとおり、XYZ三次元座標系上の1点として定義されるサンプル点Qから視点Eに向かう反射光Vの強度I(V)は、
I(V)=K・I(L)
なる式で表わされる。ここで、I(L)は照明光Lのサンプル点Qの位置における強度であり、Kは反射係数である。照明光Lの強度I(L)は、光源Gの輝度、光源Gとサンプル点Qとの距離、サンプル点Qが所属するポリゴンに対する照明光Lの入射角といったパラメータによって決定される。これに対して、反射係数Kは、テクスチャデータ20によって決定される。そこで、まず、テクスチャデータ20を仮想物体10の表面に所定のマッピング態様でマッピングした場合に、サンプル点Qの位置が、テクスチャデータ20のどの座標に対応するかを求め、当該対応座標に位置する画素T(u,v)を決定する。図2には、サンプル点Qに対応する画素T(u,v)の位置がX印で示されている。そして、この対応画素T(u,v)の画素値として定義されている値が、サンプル点Qの位置における反射係数Kになる。
テクスチャデータ20として、カラー画像を用いる場合は、個々の原色ごとに、それぞれ所定の反射係数(反射率)が定義される。図3は、テクスチャデータ20を構成する画素配列を示す平面図である。ここでは、図示の便宜上、6行8列の非常に小規模な画素配列を示しているが、実用上は、より大きな画素配列からなるテクスチャデータが用いられる。図の個々の正方形が1つの画素(一般的には、Texture Cellの意味で「テクセル」と呼ばれる)を示しており、画素T(u,v)は、座標値(u,v)で示される位置の画素に対応する。この例では、1つの画素T(u,v)の画素値として、3つの係数Kr,Kg,Kbが定義されている。ここで、係数Krは原色R(赤)の波長成分をもった照明光についての反射率、係数Kgは原色G(緑)の波長成分をもった照明光についての反射率、係数Kbは原色B(青)の波長成分をもった照明光についての反射率である。
このようなカラー画像からなるテクスチャデータ20をマッピングした場合、サンプル点Qからの反射光の強度は、光の各波長成分ごとに演算される。たとえば、反射光Vの赤色波長成分の強度Ir(V)は、照明光Lの赤色波長成分のサンプル点Qの位置における強度Ir(L)と、反射係数Krとを用いて、
Ir(V)=Kr・Ir(L)
なる式で求めることができる。
<<< §2.高次元画像をテクスチャとして用いるモデル >>>
§1では、テクスチャデータ20として、二次元画像を用いた例を示した。このような二次元画像をマッピングするモデルでは、サンプル点Qの反射特性が、照明光の入射角や反射光の射出角に依存しないものとして取り扱っているが、パイル地のような三次元構造をもった繊維シートを物体表面に張り付けた場合、厳密には、照明光の入射角や反射光の射出角に依存した異方性反射の特性を考慮した取り扱いをしなければならない。
このように、光の入射方向や反射方向に関する角度に依存して、反射特性が異なるような取り扱いを行う基本的なモデルとして、BRDF(Bi-directional Reflectance Distribution Function)と呼ばれるモデルが提案されている。図4は、このBRDFモデルの原理を説明するための斜視図である。図示のとおり、仮想物体表面上のサンプル点Qの位置に法線nを立て、サンプル点Qを含み、法線nに直交する直交平面S(以下、基準面Sと呼ぶ)を定義する。そして、法線nと入射照明光Lとのなす角をθL、基準面S上への入射照明光Lの投影像L′とこの基準面S上のサンプル点Qを通る所定の基準線ζとのなす角度をφLとし、入射照明光Lの向きを角度θLおよび角度φLの組み合わせで定義する。同様に、法線nと反射光Vとのなす角をθV、基準面S上への反射光Vの投影像V′と基準線ζとのなす角度をφVとし、反射光Vの向きを角度θVおよび角度φVの組み合わせで定義する。いわば、角度θL,θVは、入射照明光および反射光の仰角に相当する(本来の「仰角」は、水平面に対する角度を意味するので、角度θL,θVは、厳密に言えば「90°−仰角」であるが、ここでは、便宜上、単に「仰角」と呼ぶことにする)。また、角度φL,φVは、入射照明光および反射光の方位角に相当する。
ここで、サンプル点Qにおける入射照明光Lの強度をI(L)としたとき、サンプル点Qからの反射光Vの強度I(V)を、θL,φL,θV,φVの関数として与えられる反射係数K(θL,φL,θV,φV)を用いて、
I(V)=K(θL,φL,θV,φV)・I(L)
なる式で求めるのが、BRDFモデルである。このBRDFモデルの特徴は、反射係数Kを、入射照明光Lの向きを示すパラメータ「θL,φL」および反射光Vの向きを示すパラメータ「θV,φV」の関数として与える点にある。
このBRDFモデルに、テクスチャマッピングの概念を付加したものが、前掲の非特許文献1等に記載されているBTF(Bi-directional Texture Function)モデルである。BTFモデルでは、上記BRDFモデルで用いた4つの角度パラメータに、更に、二次元uv座標系上での座標値(u,v)がパラメータとして加わることになり、サンプル点Qにおける入射照明光Lの強度をI(L)としたとき、サンプル点Qからの反射光Vの強度I(V)は、
I(V)=K(θL,φL,θV,φV,u,v)・I(L)
なる式で与えられる。すなわち、図4に示す反射光Vの強度I(V)は、入射照明光Lがどの方向からサンプル点Qに照射され、反射光Vがサンプル点Qからどの方向に射出するか、という角度に関するパラメータに依存して定まるとともに、サンプル点Qの位置(u,v座標値)にも依存して定まるファクターということになる。
図5は、このBTFモデルで用いる6次元テクスチャデータ20の構造を示す平面図である。上述したとおり、このBTFモデルにおいて、反射係数Kは、6次元の関数K(θL,φL,θV,φV,u,v)として定義されるパラメータであるから、この6次元テクスチャデータ20自身は、6次元空間上に配置された多数の画素の集合から構成される6次元の画像データということになり、個々の画素が特定の反射係数Kに相当する画素値を有することになる。ただ、ここでは、説明の便宜上、図5に示す例のように、この6次元テクスチャデータ20を、uv平面上の二次元画素配列として図示することにする。この場合、この二次元画素配列上の個々の画素T(u,v)には、4つのパラメータ「θL,φL,θV,φV」の関数として定まる反射係数K(θL,φL,θV,φV)がそれぞれ定義されていることになる。
ここで、反射係数K(θL,φL,θV,φV)は、θL,φL,θV,φVをそれぞれ変数として含む何らかの関数式として定義することも可能であるが、実用上は、数値テーブルとして定義するのが一般的であり、本発明も、数値テーブルとして定義する取り扱いを行うことを前提としている。このように反射係数Kを数値テーブルとして定義する場合、角度のパラメータθL,φL,θV,φVは連続量として取り扱うことはできないので、離散的な取り扱いを行わざるを得ない。
図6に、角度θLの離散的な定義の一例を示す。上述したとおり、角度θLは、サンプル点Qに入射する照明光Lの法線に対する角度を示すものである。図6には、サンプル点Qに対して、6通りの仰角をもって入射する照明光L1〜L6が描かれている。これら照明光L1〜L6の入射角θL1〜θL6は、図示のとおり、0°,15°,30°,45°,60°,75°である。入射角(仰角)に関しては、このように15°おきに6通りの角度を離散的に定義しておけば、実用上、ある程度の精度をもったテクスチャ表現が可能になる。
一方、図7には、角度φLの離散的な定義の一例を示す。上述したとおり、角度φLは、サンプル点Qに入射する照明光Lの基準面S上への投影像L′と基準線ζ(この例では、φL1=0°の方向)とのなす角度であり、照明光Lの方位角を示すものである。図7には、サンプル点Qに対して、12通りの方向から入射する照明光の方位角が描かれている。すなわち、図7の紙面は基準面Sに対応し、この基準面S上に、0°〜360°の範囲内の方位角が30°おきに定義されている。方位角に関しては、このように30°おきに12通りの角度を離散的に定義しておけば、実用上、ある程度の精度をもったテクスチャ表現が可能になる。
以上、入射照明光Lに関する角度θL,φLについての離散的定義例を示したが、反射光Vに関する角度θV,φVについても同様の定義を行うことができる。すなわち、角度θVに関しては、0°,15°,30°,45°,60°,75°という6通りの離散的定義を行い、角度φVに関しては、0°〜360°の範囲内の方位角を30°おきに定義すればよい。
このような離散的な定義を行うと、角度θLおよびθVはそれぞれ6通りの値をとり、角度φLおよびφVはそれぞれ12通りの値をとることになるので、これら4つの角度の組み合わせは、6×12×6×12=5184通りということになる。したがって、図5に示すテクスチャデータ20の1つの画素T(u,v)に定義される反射係数Kは、それぞれの角度値の組み合わせに応じて5184通りの値をとることになる。
この5184通りの反射係数Kの値は、反射特性を示すテーブルR(u,v)として用意することができる。図8は、このような反射特性を示すテーブルR(u,v)を用いて定義したテクスチャデータ20の構成例を示す平面図である。この例では、uv座標系上の二次元画素配列としてテクスチャデータ20が定義されているが、個々の画素T(u,v)には、それぞれ図示するような反射特性を示すテーブルR(u,v)が定義されている。このテーブルR(u,v)は、6通りの角度θL(θL1〜θL6)、12通りの角度φL(φL1〜φL12)、6通りの角度θV(θV1〜θV6)、12通りの角度φV(φV1〜φV12)のすべての組み合わせ(5184通りの組み合わせ)について、それぞれ3つの反射係数Kr,Kg,Kbを定義するものである。ここで、各係数Kr,Kg,Kbは、前述したとおり、照明光の各原色波長成分についての反射率を示す値である。
この図8に示すようなテクスチャデータ20を用いたBTFモデルによるレンダリング処理は、次のようにして行われる。まず、図1に示すように、三次元仮想物体10の表面に、このテクスチャデータ20をマッピングし、サンプル点Qの位置に対応する画素T(u,v)を決定する。次に、光源Gの位置やサンプル点Qが所属するポリゴンの向きなどを考慮することにより、サンプル点Qに入射する照明光Lの角度θL,φL、サンプル点Qから射出する反射光Vの角度θV,φVを決定する。なお、基準線ζの方向は、たとえば、「u軸のマッピング方向」のように予め定めておけばよい。そして、図8に示す画素T(u,v)についての反射特性を示すテーブルR(u,v)を参照して、特定の角度θL,φL,θV,φVの組み合わせに対応する3つの反射係数Kr,Kg,Kbを求める。最後に、これら3つの反射係数Kr,Kg,Kbに基づいて、反射光Vの各原色成分ごとの強度値を求め、投影面H上の画素Pの画素値を決定すればよい。
<<< §3.従来のベクトル量子化によるデータ圧縮方法 >>>
さて、§2で述べたBTFモデルなど、高次元画像をテクスチャとして用いるモデルの場合、テスクチャデータ20のデータ容量は膨大なものとなる。図8に示すテクスチャデータ20は、図示の便宜上、uv座標系上に6行8列の画素配列をもった小規模のものとなっているが、実用上はより大きな画素配列が用いられる。
たとえば、uv座標系上に512行512列の画素配列をもったテクスチャデータのデータ容量を考えてみよう。この場合、二次元画素配列上に定義される画素の総数は(512×512)個となる。二次元画像をテクスチャとして用いるモデルの場合、個々の画素には、3つの反射係数Kr,Kg,Kbの値を定義するだけでよいので、1つの係数の値を1バイトで表現したとすると、テスクチャデータ20のデータ総容量は、(512×512×3)バイトで足りる。これは、一般的なパソコンの実装メモリ空間に十分展開可能な容量である。
ところが、上述したBTFモデルなど、高次元画像をテクスチャとして用いるモデルでは、個々の画素のそれぞれに、たとえば、図8に示すような反射特性を示すテーブルR(u,v)を収容する必要がある。ここで、角度θL,θVについては、図6に示すように6通りの離散的な角度を定義し、角度φL,φVについては、図7に示すように12通りの離散的な角度を定義し、4通りの角度の組み合わせごとに、それぞれ1バイトで表現した反射係数Kr,Kg,Kbを定義したとすると、テスクチャデータ20のデータ総容量は、(512×512×6×12×6×12×3)バイトとなる。これは4Gバイトを越える容量であり、一般的なパソコンの場合、実装メモリ空間に展開することが困難な容量である。もちろん、uv座標系上に定義する二次元画素配列のサイズをより大きくしたり、離散的な角度定義をより細かくしたりすれば、テスクチャデータ20のデータ総容量は更に増加する。
したがって、図1に示すようなレンダリング処理を、一般的なパソコン等のシステムで実行する場合、BTFモデルなどの高次元画像からなるテスクチャデータ20をそのまま利用することはできない。このため、前掲の特許文献1,2などには、高次元画像からなるテスクチャデータ20を圧縮して利用する技術が提案されている。高次元画像の圧縮には、通常、ベクトル量子化という手法が利用される。たとえば、図8に示すBTFモデルの場合、図の下半分に示された1つの画素についての反射特性を示すテーブルR(u,v)は、4つの変数(θL,φL,θV,φV)のすべての組み合わせ(5184通りの組み合わせ)について、それぞれ特定の反射係数を定義するテーブルであるので、数学的には、5184本の互いに直交する座標軸をもった5184次元の座標系上に定義された1本のベクトルと等価である。したがって、図の上半分に示された48個の画素をもつテクスチャデータ20は、この5184次元の座標系上に定義された48本のベクトルとして表現することができる。そこで、この48本のベクトルのうちのいくつかを代表ベクトルと定め、それ以外のベクトルについては、最も近似する代表ベクトル(5184次元座標空間上におけるユークリッド距離が最小の代表ベクトル)に置き換えることにより、データの総容量を減少させることができる。これがベクトル量子化によるデータ圧縮の基本概念である。
図9は、このようなベクトル量子化の概念に基づく高次元テクスチャデータの圧縮原理を示す平面図である。圧縮前の原テクスチャデータ20は、図8に示すように、合計48個の画素T(u,v)のすべてについて、反射特性を示すテーブルR(u,v)が収録されている。これに対して、図9に示す圧縮テクスチャデータ25では、合計48個の画素のうち、4個の画素T1,T2,T3,T4を代表画素と定め、残りの44個の画素を一般画素と定めている。そして、この4個の代表画素T1,T2,T3,T4については、それぞれ反射特性を示すテーブルR1,R2,R3,R4(図8に示すテーブルR(u,v)と同等のテーブル)が収録されているが、残りの一般画素、たとえば、第i番目の一般画素Tiについては、テーブルRiを収録する代わりに、テーブルRiに最も近似するテーブルを収録した近似代表画素(代表画素R1〜T4のいずれか)を示すデータが収録されている。
たとえば、一般画素Tiに本来収録すべきテーブルRiと、4つの代表画素に収録されているテーブルR1〜R4とをそれぞれ比較した結果、テーブルR3が最も近似していると判断された場合には、一般画素Tiには、近似代表画素T3を示すデータが収録されることになる。このような手法を利用すれば、図8に示すような原テクスチャデータ20に基づいて、図9に示すような圧縮テクスチャデータ25を作成することが可能であり、圧縮後のデータ容量を大幅に低減させることができる。すなわち、圧縮テクスチャデータ25では、4つの代表画素T1〜T4についてのみ、データ容量の大きなテーブルを収容すれば足り、残りの44個の一般画素については、近似代表画素を示すデータのみを収容すればよい。
このような圧縮テクスチャデータ25は、一般的なパソコンの実装メモリ空間に展開することが可能になるので、実用上、パソコンにおいてもレンダリング処理が可能になる。この圧縮テクスチャデータ25を利用して、所定のサンプル点Qの位置における反射特性を求めるために、代表画素の位置を参照する必要がある場合には、当該代表画素に収録された反射特性を示すテーブルをそのまま利用すればよい。一方、一般画素の位置を参照する必要がある場合には、当該一般画素に収録されたデータから当該一般画素についての近似代表画素を認識し、この近似代表画素に収録された反射特性を示すテーブルを代用すればよい。
もちろん、このようなデータ圧縮を行うと、テクスチャデータ自身の品質は低下することになる。これは、一般画素Tiについては、本来のテーブルRiの代わりに、近似代表画素のテーブル(たとえば、R3)を代用することになるので、本来の正しい反射特性ではない近似的な特性が用いられるからである。テクスチャデータの品質を維持するためには、画素の総数に対する代表画素の割合を高める必要がある。代表画素が増えれば増えるほど、一般画素の本来のテーブルに対して、より近似したテーブルをもつ近似代表画素が選択される可能性が高まるからである。しかしながら、代表画素の割合を増やせば増やすほど、圧縮率が低下することになる。結局、従来提案されている圧縮方法では、圧縮率向上と品質維持とを両立させることができない。本発明は、このような課題を解決するための新規な技術を提案するものである。
<<< §4.本発明の基本的着眼点 >>>
本発明は、§2で述べたBTFモデル用のテクスチャデータに代表されるように、個々の画素ごとに、光の入射方向や反射方向といった角度に依存して定まる反射特性を示すテーブルが定義されたテクスチャデータの効率的な圧縮方法を提案するものである。まず、この圧縮方法の着眼点を説明する。
いま、図10の側面図に示すような表面構造をもった実在の繊維シート30を考える。この繊維シート30の表面には、図示のとおり、毛並繊維31,32,33が植毛されているものとする。たとえば、絨毯やカーペットなどは、図示のような繊維シート30の代表格である。ここでは、説明の便宜上、この繊維シート30上の領域Aの部分に植毛されている毛並繊維31は斜め左方向に傾斜した状態となっており、領域Bの部分に植毛されている毛並繊維32は垂直上方を向いており、領域Cの部分に植毛されている毛並繊維33は斜め右方向に傾斜した状態となっているものとする。
さて、この実在の繊維シート30に基づいて、図8に示すような原テクスチャデータ20を用意し、これを圧縮して、図9に示すような圧縮テクスチャデータ25を作成することを考えてみよう。
まず、原テクスチャデータ20を作成するには、実在の繊維シート30に対して、様々な方向から照明光を照射し、これを様々な方向から撮影することにより多数の撮影画像を収集する。そして、繊維シート30上の同一位置に関する個々の撮影画像の画素値に基づいて、当該位置の「角度に依存した反射特性」を求めればよい。たとえば、図10にT1と記された位置についての反射特性は、様々な撮影条件で収集された多数の撮影画像におけるT1に対応する位置の画素値により決定することができる。こうして、図10にT1,T2,Tiと記された位置には、それぞれ固有の反射特性を示すテーブルR1,R2,Riが定義されることになり、このような固有の反射特性を示すテーブルが定義された多数の画素の集合によって原テクスチャデータ20が構成されることになる。
続いて、この原テクスチャデータ20を構成するM個の画素の中からN個(N<M)の代表画素を定め、残りの(M−N)個の画素を一般画素とし、この一般画素については、近似代表画素を選択することにより、圧縮テクスチャデータ25を作成する。ここでは、図10に示す繊維シート30上のT1と記された位置に対応する画素が代表画素T1として選択され、T2と記された位置に対応する画素が代表画素T2として選択されたものとし、Tiと記された位置に対応する画素は一般画素Tiとして残ったものとしよう。この場合、代表画素T1,T2については、原テクスチャデータ20に定義されているテーブルR1,R2がそのまま用いられることになるが、一般画素Tiについては、原テクスチャデータ20に定義されているテーブルRiの代わりに、代表画素T1,T2についてのテーブルR1,R2のうち、より近似している方を代用することになる。
図10に示す例では、上述したとおり、領域Aの毛並繊維31は斜め左方向に伸び、領域Bの毛並繊維32は垂直上方に伸び、領域Cの毛並繊維33は斜め右方向に伸びている。このような場合、通常は、代表画素T2のテーブルR2の方が、代表画素T1のテーブルR1よりも、一般画素TiについてのテーブルRiに対する近似度が高くなると考えられる。これは、領域Cの毛並繊維33が斜め右方向に伸びているのに対して、領域Aの毛並繊維31は逆方向である斜め左方向に伸びているため、垂直上方に伸びた毛並繊維32をもつ領域Bの方が反射特性に関する近似度が高くなると考えられるからである。
図11は、これら3つの領域A,B,C内の画素T1,T2,Tiについて、原テクスチャデータ20に定義されている反射特性を示すテーブルR1,R2,Riの相関関係を示す平面図である。なお、図8では、θL,φL,θV,φVの4つの角度の組み合わせについてのテーブルR(u,v)を例示したが、図11では、図示の便宜上、仰角θL,θVが特定の角度に固定されているものとして、方位角φL,φVの組み合わせについてのテーブルのみを示すことにする。すなわち、図11に示すテーブルR1,R2,Riは、たとえば、図8に示すテーブルR(u,v)におけるθL1,θV1に対応する部分のみを抜き出した部分テーブルであり、ここには、それぞれ12通りのφL(φL1〜φL12)と、12通りのφV(φV1〜φV12)との組み合わせによって、合計144通りの反射特性が定義されている。
圧縮テクスチャデータ25を作成する場合、代表画素T1,T2については、図示されているテーブルR1,R2をそのまま用いることができるが、一般画素Tiについては、本来のテーブルRi(原テクスチャデータ20に収録されているテーブル)の代わりに、テーブルR1,R2のうちのいずれか近似度の高いテーブルを代用しなければならない。そして、従来提案されている一般的な圧縮方法によると、上述したとおり、テーブルRiとテーブルR2との近似度の方が、テーブルRiとテーブルR1との近似度よりも高くなるため、テーブルRiに最も近似するテーブルはテーブルR2ということになる。その結果、圧縮テクスチャデータ25では、図示された領域Cの一般画素Tiについては、代表画素T2のテーブルR2を代用することを示すデータが収録されることになる。
実際、図10に示す領域A,B,Cの毛並繊維31,32,33の向きを考慮すると、斜め右方向に伸びている毛並繊維33が植毛された領域Cの反射特性としては、全く逆方向に伸びている毛並繊維31が植毛された領域Aの反射特性を代用するよりも、垂直上方に伸びている毛並繊維32が植毛された領域Bの反射特性を代用した方が好ましいと考えられる。また、図11において、テーブルRi−R1間の近似度と、テーブルRi−R2間の近似度と、を定量的に評価すれば、後者の方が前者より高くなるであろう。したがって、従来の一般的な圧縮方法では、代表画素T2が一般画素Tiについての近似代表画素として選出されることになる。
ところが、本願発明者は、図10において、領域Aに植毛されている毛並繊維31の方位角(毛並繊維31を繊維シート30のシート面上に投影したときの向きを示す角度、図7に示す0〜360°の角度に相当)を180°だけシフトさせると、領域Cに植毛されている毛並繊維33と同じ向きになる点に着目した。すなわち、毛並繊維31の左方への傾斜角と毛並繊維33の右方への傾斜角とが等しかったとすると、方位角を180°シフトさせた毛並繊維31は、毛並繊維33と完全に一致することになる。別言すれば、図10において、Tiの位置に所定の方位角φLの方向から照明光Lを照射したときに、所定の方位角φVの方向に射出する反射光Vの反射特性は、T1の位置に所定の方位角(φL+180°)の方向から照明光Lを照射したときに、所定の方位角(φV+180°)の方向に射出する反射光Vの反射特性と等価になる。
そこで、領域Aの代表画素T1について定義されているテーブルR1の方位角φLおよびφVを180°だけシフトさせることにより、新たなテーブルを定義する。図12の左側に示すテーブルR1は、このようにして定義されたテーブルである。ここで、このテーブルR1の列見出し「φL7」,「φL8」,…は、図11の左側に示すテーブルR1の列見出し「φL7」,「φL8」,…(図11では、「φL7」,「φL8」の図示は省略されている)に対応し、テーブルR1の行見出し「φV7」,「φV8」,…は、図11の左側に示すテーブルR1の行見出し「φV7」,「φV8」,…(図11では、「φV7」,「φV8」の図示は省略されている)に対応する。
二つのテーブルR1,R1において、同一の見出しで特定される行や列のコンテンツは同一である。別言すれば、見出しが同じ行や列は、コンテンツも同じになるように、テーブルコンテンツのシフトが行われている。たとえば、テーブルR1の列見出し「φL7」で示される第1列目のコンテンツは、テーブルR1の列見出し「φL7」で示される第7列目のコンテンツに一致し(行は入れ替わっている)、テーブルR1の行見出し「φV7」で示される第1行目のコンテンツは、テーブルR1の行見出し「φL7」で示される第7行目のコンテンツに一致する(列は入れ替わっている)。より具体的に説明すれば、テーブルR1およびR1は、いずれも12行12列の表であるが、テーブルR1の1行1列目のセル(左上のセル)の内容は、テーブルR1の7行7列目のセルの内容に等しい。このようなテーブルR1を作成すれば、テーブルRiに最も近似するテーブルは、テーブルR2ではなく、テーブルR1ということになる。
結局、図10に示す例において、一般画素Tiについての近似代表画素を選出する場合、従来どおりの手法を採れば、代表画素T2が近似代表画素として選出されることになるが、方位角のシフトという本発明に係る手法を採れば、「方位角を180°シフトさせる」という条件を加味することにより、代表画素T1を近似代表画素として選出することが可能になる。この場合、一般画素Tiについては、テーブルRiを収録する代わりに、「代表画素T1」という情報と「方位角を180°シフト」という情報を収録しておけばよい。実際のレンダリング処理において、一般画素Tiが参照された場合には、この収録された情報に基づいて、「代表画素T1」に収録されているテーブルR1を抽出した後「方位角を180°シフト」させる処理を施してテーブルR1を作成し、このテーブルR1を用いて反射特性を決定すればよい。
<<< §5.本発明によるデータ圧縮方法の基本理念 >>>
以上、§4では、図10に示す毛並繊維31,33の傾斜方向が逆向きの関係にあることを利用して、「方位角を180°シフトさせる」という条件付きで代表画素T1を一般画素Tiの近似代表画素として選出すると、うまくゆく例を示した。しかしながら、実際には、必ずしもこのような最適な代表画素が存在するとは限らない。そこで実用上は、方位角のシフト量(以下、オフセット量と呼ぶ)を複数通り設定しておき、個々の代表画素についてのテーブルを、これら複数通りのオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択すればよい。
図13は、照明光Lの方位角φLを所定のオフセット量だけシフトさせることにより、テーブルのコンテンツをローテーションさせ、複数のバリエーションをもったテーブルを定義する原理を示す平面図である。図13(a) が「もとのテーブル」であるとすると、図13(b) は、φLを30°シフトしたテーブルに相当する。この例では、φVについてのシフトは行われていない。ここで、列見出しに着目すると、図13(a) のテーブルでは、第1列目の列見出しが「φL1」であり、以下、「φL2」,「φL3」,…と続き、第12列目の列見出しが「φL12」となっているのに対して、図13(b) のテーブルでは、第1列目の列見出しが「φL2」であり、以下、「φL3」,「φL4」,…と続き、第12列目の列見出しが「φL1」となっている。
結局、図13(a) に示す「もとのテーブル」において、第1列目のコンテンツをそっくり第12列目へとまわし、第2列目のコンテンツを第1列目へと移動し、第3列目のコンテンツを第2列目へとまわし、…とそれぞれ1列分だけ左方向へローテーションシフトさせると、図13(b) に示すテーブル(φLをオフセット量30°だけシフトしたテーブル)が得られることになる。同様に、図13(a) に示す「もとのテーブル」のコンテンツを、それぞれ2列分だけ左方向へローテーションシフトさせると、図13(c) に示すテーブル(φLをオフセット量60°だけシフトしたテーブル)が得られる。以下、図13(d) 〜図13(l) の各テーブルは、図13(a) に示すテーブルを基準として、方位角φLをオフセット量90°〜330°だけシフトしたテーブルを示している。
このように、方位角φLを30°刻みのオフセット量でそれぞれローテーションシフトさせることにより、図示のとおり、合計12通りのバリエーションをもったテーブルが得られる。これら12通りのテーブルは、いずれも同一のデータをコンテンツとして含んでいるが、「各データをどの列に含んでいるか」が互いに異なることになる。
この図13では、入射する照明光Lの方位角φLを30°刻みのオフセット量でそれぞれローテーションシフトさせたものであり、射出する反射光Vの方位角φVについてのシフトは行っていないが、実際には、この図13(a) 〜(l) に示す個々のテーブルについて、それぞれ反射光Vの方位角φVを30°刻みのオフセット量でそれぞれローテーションシフトさせたバリエーションも作成する。たとえば、図13(a) のテーブルにおいて、第1行目のコンテンツをそっくり第12行目へとまわし、第2行目のコンテンツを第1行目へと移動し、第3行目のコンテンツを第2行目へとまわし、…とそれぞれ1行分だけ上方向へローテーションシフトさせると、φVをオフセット量30°だけシフトしたテーブルが得られることになる。図12の左側に示すテーブルR1は、図13(g) に示す「φLを180°シフトしたテーブル」に対して、更に「φVを180°シフト」することにより得られたテーブルということになる。
このように、図13(a) に示す「もとのテーブル」に対して、方位角φLを30°刻みのオフセット量でそれぞれローテーションシフトさせることにより、図13(a)〜(l) に示す12通りのバリエーションを作成し、これら12通りのバリエーションのそれぞれに対して、更に方位角φVを30°刻みのオフセット量でそれぞれローテーションシフトさせたバリエーションを作成すると、図13(a) に示すもとのテーブルから派生した合計144通りのバリエーションが得られることになる。図12の左側に示すテーブルR1は、この144通りのバリエーションのうちの1つである。
本発明によるデータ圧縮方法の基本理念は、たとえば、図11に示すように2つの代表画素T1,T2が定められた場合に、これら代表画素について定義されているテーブルR1,R2の角度のパラメータφL,φVをそれぞれ様々なオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、一般画素TiについてのテーブルRiに最も近似しているテーブルを見つける際に、これら複数のバリエーションのすべてを比較対象とする、という点にある。図11に示す単純な例の場合、従来の方法では、テーブルRiに最も近似するテーブルの候補は、テーブルR1,R2のわずか2候補しかないが、本発明の方法では、上述した方法によりバリエーションを生じさせることにより、テーブルR1から派生したテーブルが144種類、テーブルR2から派生したテーブルが144種類、合計288種類の候補が得られる。
もちろん、このようなバリエーションを生じさせた候補の中から、テーブルRiに最も近似するテーブルを選択した場合、テーブルRiに代用するテーブルを指定するためには、どの代表画素についてのテーブルから派生したどのバリエーションであるかを特定する必要がある。したがって、従来の方法では、たとえば図11に示す一般画素Tiについては、「近似代表画素T2」を示す情報を収録しておけば足りるが、本発明の方法では、たとえば図12に示す一般画素Tiについては、「近似代表画素T1」を示す情報に加えて、「φLのオフセット量180°、φVのオフセット量180°」というオフセット量を示す情報も収録しておく必要がある。もっとも、このようなオフセット量を示す情報のデータ容量は、テーブルRi全体のデータ容量に比べれば極めて小さいため、テクスチャデータの圧縮方法として、従来の方法の代わりに本発明の方法を採っても、データの圧縮率はほとんど低下することはない。
一方、圧縮後のテクスチャデータの品質に着目すると、本発明の方法により得られた圧縮テクスチャデータの品質は、従来の方法により得られた圧縮テクスチャデータの品質よりも格段に向上することは明らかである。上述の例の場合、従来の方法では、テーブルRiの代用候補がテーブルR1,R2のわずか2種類であるのに対し、本発明の方法では、候補数は288種類と飛躍的に増加するので、当然、代用されるテーブルの近似度も向上し、大幅な品質向上が見込まれる。そのため、本発明の方法を採れば、代表画素の数を多少減らしたとしても、従来の方法よりも高い品質をもった圧縮テクスチャデータを得ることも可能である。
たとえば、図9に示す例では、合計48個の画素の中から4個の画素T1〜T4を代表画素として定め、残りの44個の一般画素Tiについては、4通りのテーブルR1〜R4のいずれかを代用することによりデータ量を圧縮していたが、本発明の方法を採れば、代表画素の数を3個に減らしたとしても、従来の方法よりも高い品質をもった圧縮テクスチャデータを得ることが期待できる。たとえば、代表画素がT1〜T3の3つしかなくても、これら代表画素のテーブルR1〜R3について、それぞれ144通りのバリエーションを作成すれば、代用テーブルの候補は432種類にも増大することになり、従来の方法の場合の3種類の候補に比べて飛躍的に向上する。
結局、本発明に係る圧縮方法を採用すれば、従来よりも少ない代表画素で対応することが可能になり、全体的な圧縮率の向上を図ることができ、しかも従来より高い品質をもった圧縮テクスチャデータを作成することが可能になる。また、圧縮や展開は、テーブルコンテンツのシフト動作で行うことができるので、高速な展開処理が可能になる。
なお、図11〜図13では、図示の便宜上、特定の仰角θL,θVについてのテーブルのみを示したが、実際には、これらの各テーブルは、BTFモデルにおけるテクスチャデータを構成する1画素に定義された反射特性を示すテーブルの一部分のみを抜き出して示した部分テーブルである。BTFモデルの場合、1画素に定義される反射特性を示す本来のテーブルは、図8に示すテーブルR(u,v)のように、72行72列のサイズのマトリックスになる。図11〜図13に示すテーブルは、この図8に示すテーブルR(u,v)において、たとえば、θL1,θV1に対応する部分(左上の一部分)のみを抜き出した部分テーブル(12行12列のサイズのマトリックス)に相当する。
したがって、実際には、バリエーションを派生させるための「もとのテーブル」は、図13(a) に示す部分テーブルではなく、図8に示すようなテーブルR(u,v)ということになる。そして、たとえば、φLを30°シフトさせたテーブルは、図13(b) に示す部分テーブルではなく、図14に示すようなテーブルということになる。図13(b) に示す部分テーブルは、この図14に示すテーブルにおいて、たとえば、θL1,θV1に対応する部分(左上の一部分)のみを抜き出したものに相当する。
もっとも、図14に示すテーブルにおいて、「θL2,θV1」に該当する部分テーブルに着目すると、やはり第1列目の列見出しが「φL2」であり、以下、「φL3」,「φL4」,…と続き、第12列目の列見出しが「φL1」となっている。したがって、図8に示すもとのテーブルの「θL2,θV1」に該当する部分テーブルにおいて、第1列目のコンテンツをそっくり第12列目へとまわし、第2列目のコンテンツを第1列目へと移動し、第3列目のコンテンツを第2列目へとまわし、…とそれぞれ1列分だけ左方向へローテーションシフトさせることにより、図14に示す「θL2,θV1」に該当する部分テーブルが得られることになる。他の部分テーブルについても全く同様である。
一方、図15は、図8に示すテーブルR(u,v)を「もとのテーブル」として、φVを30°シフトさせたテーブルである。このテーブルも、個々の部分テーブルごとに、第1行目のコンテンツをそっくり第12行目へとまわし、第2行目のコンテンツを第1行目へと移動し、第3行目のコンテンツを第2行目へとまわし、…とそれぞれ1行分だけ上方向へローテーションシフトさせることにより得られる。
結局、図9に示す例のように、4つの代表画素T1〜T4を定義した場合、これら各代表画素についてのテーブルR1〜R4は、実際には、それぞれが図8に示すようなサイズ(72行72列のマトリックス)のテーブルR(u,v)ということになる。そこで、これら各テーブルR1〜R4について、それぞれ同じサイズの144通りのバリエーションが作成されることになる。図14,図15に示すテーブルは、この144通りのバリエーションの1つである。一方、一般画素Tiについても、同様に、72行72列のマトリックスからなるテーブルRiが用意されており、図9に示すように4つの代表画素を定義した場合、144×4通りの候補の中から、このテーブルRiに最も近似するテーブルが選択されることになる。
<<< §6.本発明に係るテクスチャデータの作成方法の基本手順 >>>
続いて、図16の流れ図を参照しながら、本発明に係るレンダリング用テクスチャデータの作成方法の基本手順を説明する。なお、この基本手順において、ステップS11は、必ずしもコンピュータを用いて実行する必要はないが、ステップS12〜S14の各段階は、コンピュータによって実行することを前提とした処理である。
まず、ステップS11の原データ準備段階では、M個の画素の集合からなり、個々の画素ごとに、光の入射方向もしくは反射方向、または入射方向と反射方向との双方(本願では、「入射方向および/または反射方向」と記述する)に関する角度に依存して定まる反射特性を示すテーブルが定義された原テクスチャデータが用意される。前述の例では、図8に示すテクスチャデータ20が、このステップS11で用意される原テクスチャデータに相当する。
なお、ここに示す実施形態では、前述したとおり、BTFモデルに基づくレンダリングを行うことを前提としたBTFモデルのテクスチャを取り扱う例を述べるが、本発明の適用は、BTFモデルのテクスチャに限定されるものではない。ただ、実用上は、BTFモデルへの適用が最も好ましい形態であり、以下の説明も、このBTFモデルのテクスチャに適用した例を前提として述べることにする。
BTFモデルでは、図4を参照して既に説明したとおり、テクスチャデータのマッピング対象となる仮想物体の表面上に、サンプル点Qと、このサンプル点Qの位置に立てた法線nと、サンプル点Qを含み法線nに直交する基準面Sと、サンプル点Qを通る基準面S上の基準線ζと、が定義される。そして、サンプル点Qに入射する照明光Lと法線nとのなす角をθL、基準面S上への照明光Lの投影像L′と基準線ζとのなす角をφL、サンプル点Qから射出する反射光Vと法線nとのなす角をθV、基準面S上への反射光Vの投影像V′と基準線ζとのなす角をφVとしたときに、「θL,φL,θV,φV」の関数として与えられる反射係数K(θL,φL,θV,φV)をテーブルとして定義したテクスチャデータが用いられることになる。したがって、ステップS11で用意される原テクスチャデータは、たとえば、図5に示すようなデータということになる。この反射係数Kは、二次元uv座標系の各座標値u,vを変数として加えることにより、K(θL,φL,θV,φV,u,v)なる6つの変数をもった関数として表現できることは既に述べたとおりである。
なお、反射係数K(θL,φL,θV,φV)は、θL,φL,θV,φVを変数とした関数式として定義することも可能であるが、本発明では、各反射係数K(θL,φL,θV,φV)が数値テーブルとして与えられることを前提としており、実際には、図8に例示したようなテーブルR(u,v)の形式で定義される。このテーブルR(u,v)の個々のセルには、既に説明したとおり、反射特性を示すデータとして、三原色RGBの波長をもった照明光それぞれについての反射率を示す数値Kr,Kg,Kbがコンテンツとして収録されている。もっとも、モノクロ画像の処理だけを目的としたレンダリング処理に用いるテクスチャデータの場合は、このような各原色ごとの反射率を用意する必要はなく、単一の反射率を示すデータのみを収録しておけば十分である。
このような数値テーブルとして反射係数Kを定義する場合、変数θL,φL,θV,φVに対しては連続量を定義することができないので、予め所定範囲内の離散的な角度値を定義しておく必要がある。前述した実施形態の場合、方位角φL,φVに関しては、図7に示すとおり、0〜360°の角度範囲を12等分することにより、12通りの角度0°,30°,60°,…,330°を設定しているが、より一般的には、0〜360°の角度範囲をα等分することにより、φLの角度値をα通り設定し、φVの角度値をα通り設定すればよい。同様に、仰角θL,θVに関しては、図6に示すとおり、0°〜90°の角度範囲を6等分することにより、6通りの角度0°,15°,30°,45°,60°,75°を設定しているが、より一般的には、0〜90°の角度範囲をβ等分することにより、θLの角度値をβ通り設定し、θVの角度値をβ通り設定すればよい。その結果、個々の画素についてそれぞれ合計α×β通りの反射特性を示すテーブルが用意できる。前述の実施形態の場合、α=12,β=6であるから、図8に示されているとおり、1つの画素T(u,v)について、α×β=5184通りの反射特性を示すテーブルR(u,v)が用意できる。
このステップS11で用意すべき原テクスチャデータは、CGの技術を用いて、コンピュータ上で人為的に作成することもできるが、スキャナ装置やデジタルカメラなどを用いて、実在の繊維シートを撮影することによって用意することも可能である。CGの技術を用いて人為的に作成する場合は、仮想繊維シートの三次元構造データ(たとえば、毛並の状態などを三次元データで表現したもの)を用意し、この仮想繊維シートの個々の位置にサンプル点Qを定義して、入射照明光Lの角度θL,φLを様々に変えたときに様々な角度θV,φVをもって射出する反射光Vの強度をシミュレーションによって求めればよい。
一方、実在の繊維シートを撮影することによって用意する場合は、実在の物体に対して、種々の方向から照明光を照射した状態で、種々の方向から撮影を行い、得られた複数の撮影画像に基づいて原テクスチャデータを用意すればよい。具体的には、入射照明光Lの角度θL,φLが様々に変わるように照明環境を調整し、カメラの位置を変えて反射光Vの角度θV,φVが様々となるような画像を撮影すればよい。実在の繊維シート上の同一位置に関する個々の撮影画像の画素値に基づいて、当該位置の「角度に依存した反射特性」を求めることができる。
さて、図16のステップS12における代表画素決定段階では、ステップS11で用意された原テクスチャデータを構成するM個の画素の中から、N個(N<M)の代表画素を定める処理が行われる。残りの(M−N)個の画素は一般画素となる。図9に示す例は、M=48、N=4の設定例である。代表画素は、全くランダムに定めることもできるし、ある程度規則的に抽出して定めることも可能である。
ランダムに定める場合には、コンピュータ上で乱数を発生させ、この乱数に基づいて座標値(u,v)を選出し、当該座標値に対応する画素を代表画素と定める処理を、N個の代表画素が決定されるまで続ければよい。一方、規則的に抽出して定める場合は、たとえば、MとNとの比に基づいて、所定間隔ごとに代表画素を抽出する所定の規則を定めればよい。なお、代表画素の数Nは、圧縮率を左右するパラメータになるので、最終的に得られる圧縮テクスチャデータに要求されるデータ容量に応じて、適宜、設定すればよい。
続くステップS13では、個々の一般画素について、それぞれ自己の反射特性に近似した反射特性をもつ代表画素を近似代表画素として選択する近似代表画素選択段階が実行される。このとき、既に述べたとおり、個々の代表画素について、原テクスチャデータによって定義されているテーブルの角度のパラメータを所定のオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択する処理が行われる。
具体的には、個々の角度値に対して所定のオフセット量を加算もしくは減算するシフトを行い、加算もしくは減算の結果、シフト後の角度値が所定範囲の一端から食み出してしまう場合には、食み出し分を当該所定範囲の他端からカウントするローテーションを行うようにすればよい。オフセット量を加算するか減算するかによって、シフトの移動方向が決まる。図13(a) 〜(l) は、このようなローテーションシフトの結果の一例を示すものである。
一般論として、方位角φL,φVを、0〜360°の角度範囲をα等分することにより、それぞれα通りに設定した場合には、Uφ=360°/αなる式で与えられる単位角度Uφを定義し、φLおよびφVを、Δφ=i×Uφ(但し、i=0,1,2,…,α−1)なる式で与えられるα通りのオフセット量Δφだけそれぞれシフトさせることにより、合計α通りの組み合わせのバリエーションをもったテーブルを定義することができる。前述した実施形態は、α=12に設定し、単位角度Uφ=30°としたものである。その結果、φLおよびφVのそれぞれについて、オフセット量Δφ=0°,30°,60°,…,330°に設定した12通りのバリエーションが作成でき、1つの代表画素についての「もとのテーブル」から、合計144通りの組み合わせのバリエーションをもったテーブルを派生させることができる。
代表画素がN個ある場合には、結局、比較対象となるテーブルは、144×N通りのバリエーションをもつことになる。したがって、この場合、個々の一般画素Tiについて、それぞれ自己の反射特性を示すテーブルRiに最も近似するテーブルを、この144×N通りのバリエーションの中から選択する処理が行われる。
なお、2つのテーブルの近似度を定量的に評価する手法としては、種々の手法が知られているが、たとえば、比較対象となる2つのテーブルについて、対応する個々の反射率の差の二乗和を、近似度を示すパラメータとして利用し、この値が最小となるテーブルを最近似テーブルと決定すればよい。
たとえば、図8に示すようなサイズをもった2組のテーブルR(u,v)が比較対象となった場合を考えてみよう。この場合、第1のテーブルにおける特定のセルに収録されている反射率がKr1,Kg1,Kb1であり、第2のテーブルにおける同じ位置にある特定のセルに収録されている反射率がKr2,Kg2,Kb2であったとすると、当該セルに関する差の二乗和は、「(Kr1−Kr2)+(Kg1−Kg2)+(Kb1−Kb2)」で示される。このような差の二乗和を全セル(図8の例の場合、合計5184個のセル)について求め、その総和を、第1のテーブルと第2のテーブルとの近似度を示すパラメータとすればよい。このパラメータ値が最も小さい比較対象が、最近似テーブルということになり、この最近似テーブルを派生させた代表画素が近似代表画素として選択される。
最後のステップS14では、原テクスチャデータを構成するM個の画素のうち、N個の代表画素については、それぞれ自己の反射特性を示すテーブルをそのまま収録し、(M−N)個の一般画素については、ステップS13で選択された近似代表画素を示すデータを収録することにより、圧縮テクスチャデータを作成するデータ圧縮段階が実行される。このとき、一般画素については、選択された近似代表画素を示すデータとともに、当該近似代表画素を選択する要因となったテーブル(最近似テーブル)についてのオフセット量を示すデータを収録するようにする。たとえば、図12に示す例のように、一般画素Tiについて、自己の反射特性を示すテーブルRiの最近似テーブルがテーブルR1であったとすると、この一般画素Tiについては、テーブルRiを収録する代わりに、近似代表画素T1を示すデータと、この近似代表画素T1についての「もとのテーブル」を派生させて最近似テーブルR1を得るためのオフセット量(この例の場合、ΔLφ=180°,ΔVφ=180°)を示すデータと、が収録されることになる。
こうして、ステップS14によって、図9に示すような圧縮テクスチャデータ25が作成されたとすると、そのデータ構造は次のようなものになる。まず、4つの代表画素T1〜T4については、原テクスチャデータと同様に、テーブルR1〜R4がそのまま収録されている。これらのテーブルは、図8に示す反射特性を示すテーブルR(u,v)と同じサイズをもったテーブルとなるので、代表画素に関しては、データ容量削減の効果は全く見られないことになる。これに対して、残りの一般画素Tiについては、このような大容量のテーブルは収録されておらず、近似代表画素を示すデータ(たとえば、T1)および当該近似代表画素を選択する要因となった最近似テーブルについてのオフセット量(たとえば、ΔLφ=180°,ΔVφ=180°)を示すデータのみが収録されているので、データ容量は大幅に削減されることになる。
<<< §7.本発明に係るレンダリング方法の基本手順 >>>
次に、図17の流れ図を参照しながら、本発明に係るテクスチャデータを用いたレンダリング方法の基本手順を説明する。ここで説明するレンダリング処理は、基本的には、図1を参照しながら§1で述べたレンダリング処理と同等の処理である。すなわち、その目的は、各部の反射特性を示すテクスチャデータを三次元仮想物体の表面にマッピングし、これを所定の視点から観察したときに得られる投影画像を示す二次元データを生成することである。ただ、用いるテクスチャデータとして、§6で述べた手順で作成された圧縮テクスチャデータ25を用いることが前提となっている。
この圧縮テクスチャデータ25のデータ構造上の特徴は、上述したとおり、一般画素Tiについて、近似代表画素を示すデータだけでなく、この近似代表画素についての「もとのテーブル」を派生させて最近似テーブルを得るためのオフセット量を示すデータが収録されている点である。
この図17に示すステップS21〜S27の各段階は、いずれもコンピュータによって実行される処理である。まず、ステップS21において、三次元仮想物体の構造を示す物体データ10を入力する物体データ入力段階が実行される。続いて、ステップS22において、圧縮テクスチャデータ25を入力するテクスチャデータ入力段階が実行される。更に、ステップS23において、オペレータの指示に基づいて、レンダリングに必要な照明環境、視点位置、マッピング態様、投影平面を定めるレンダリング条件を設定するレンダリング条件設定段階が実行される。以上の各段階は、本来のレンダリング処理を実行するための準備段階ということになる。
続いて、ステップS24〜S27に示す本来のレンダリング処理がコンピュータの演算によって実行される。ます、ステップS24では、三次元仮想物体10上の各サンプル点Qについて、当該サンプル点Qの位置にマッピングされる圧縮テクスチャデータ25内の対応画素を決定する対応画素決定段階が実行される。サンプル点Qの位置にマッピングされる対応画素は、ステップS23で設定されたマッピング態様を参照することにより決定できる。
次に、ステップS25において、このサンプル点Qからの反射光Vを演算する反射光演算段階が実行される。このとき、反射光Vの強度を求める演算に、サンプル点Qの対応画素に収録されている反射特性が利用される。すなわち、対応画素が代表画素であった場合には、当該代表画素について収録されているテーブルによって示される反射特性を利用して、サンプル点Qからの反射光Vの強度演算が行われる。一方、対応画素が一般画素であった場合には、「当該一般画素について収録されているデータによって示された近似代表画素」について収録されているテーブルを、「当該一般画素について収録されているデータによって示されたオフセット量」だけシフトして得られるテーブルによって示される反射特性を利用して、サンプル点Qからの反射光Vの強度演算が行われることになる。
たとえば、サンプル点Qの対応画素が、図9に示す代表画素T1であった場合には、当該代表画素T1について収録されているテーブルR1によって示される反射特性を利用して、サンプル点Qからの反射光Vの強度演算が行われる。テーブルR1は、たとえば、図8に示すような72行72列のマトリックスからなるテーブルである。BTFモデルを用いてサンプル点Qからの反射光Vを演算する場合には、ステップS21で入力した物体データおよびステップS23で設定したレンダリング条件に基づいて、θL,φL,θV,φVの値が定まっているので、この72行72列のマトリックスからなるテーブルを参照することにより、該当するセルに定義された反射率Kr,Kg,Kbを求めることができる(θL,φL,θV,φVの値は離散的に定義されているので、必要に応じて、補間を行うことが可能である)。こうして得られた反射率Kr,Kg,Kbに基づいて、反射光Vの各原色成分ごとの強度が演算される。
一方、サンプル点Qの対応画素が、図9に示す一般画素Tiであり、たとえば、「近似代表画素:T1」、「オフセット量:ΔLφ=30°,ΔVφ=0°」のようなデータが収録されていた場合には、次のような手順で、サンプル点Qからの反射光Vの強度演算が行われることになる。まず、指定された近似代表画素T1について収録されているテーブルR1が読み出される(上述したとおり、このテーブルR1は、たとえば、図8に示すような72行72列のマトリックスからなるテーブルである)。そして、このテーブルR1に対して、「オフセット量:ΔLφ=30°,ΔVφ=0°」に応じたローテーションシフトを実行して、たとえば、図14に示すような72行72列のマトリックスからなるテーブルを得る。あとは、このテーブルを参照することにより、特定の反射率Kr,Kg,Kbを求め、反射光Vの各原色成分ごとの強度を演算すればよい。
このように、テーブルコンテンツのシフト演算自体は、それほど負担の大きな演算ではないので、パソコン等の小規模システムで実行しても、CPUの負荷はそれほど大きくならない。なお、実用上は、図8に示すような72行72列のマトリックスからなるテーブル全体についてローテーションシフトを行い、図14に示すような72行72列のマトリックスからなるテーブル全体を求める必要はなく、たとえば、「θL1,θV1についての部分テーブル」のように、参照するセルを含んでいる特定の部分テーブルに関してのみローテーションシフトを行えば十分である。
続く、ステップS26により、上述したステップS24,S25の処理が、必要な全サンプル点に関して繰り返し実行される。そして、最後のステップS27では、各サンプル点Qからの反射光に基づいて、投影平面H上に得られる投影画像15を示す二次元データを生成する二次元データ生成段階が実行される。
<<< §8.本発明に係る装置の基本構成 >>
ここでは、図16の流れ図に示した「レンダリング用テクスチャデータの作成方法」および図17の流れ図に示した「テクスチャデータを用いたレンダリング方法」を実行するための装置を、図18のブロック図を参照しながら説明する。この図18において、上段に示すテクスチャデータの作成装置100は、図16のステップS12,S13,S14を実行するための装置であり、下段に示すレンダリング装置200は、図17のステップS21〜S27を実行するための装置である。いずれの装置も、コンピュータに専用のプログラムを組み込むことにより実現される装置であり、個々のブロックとして示す構成要素は、コンピュータのハードウエアとソフトウエアとの組み合わせにより実現されることになる。
まず、テクスチャデータの作成装置100は、図示のとおり、原データ格納部110,代表画素決定部120,データ圧縮部130,近似代表画素選択部140によって構成されている。このテクスチャデータの作成装置100は、圧縮前の原テクスチャデータに基づいて、圧縮テクスチャデータを作成する処理を行う装置なので、ある程度高性能のコンピュータシステムにより構成するのが好ましい。前述したとおり、圧縮前の原テクスチャデータのデータは、たとえば4GBといった大容量になるので、一般的なパソコンで取り扱うのは困難である。
原データ格納部110は、図16のステップS11で用意された原テクスチャデータを入力して格納する機能を有する構成要素である。すなわち、原データ格納部110は、M個の画素の集合からなり、個々の画素ごとに、光の入射方向および/または反射方向に関する角度に依存して定まる反射特性を示すテーブルが定義された原テクスチャデータを入力してこれを格納する機能を有する。
代表画素決定部120は、このM個の画素の中からN個(N<M)の代表画素を定め、残りの(M−N)個の画素を一般画素とする構成要素であり、その処理内容は、図16のステップS12の処理として述べたとおりである。
また、近似代表画素選択部140は、代表画素決定部120からN個の代表画素を示す情報を受け取り、残りの(M−N)個の一般画素について、それぞれ自己の反射特性に近似した反射特性をもつ代表画素を近似代表画素として選択する処理を実行する。この処理内容は、図16のステップS13の処理として述べたとおりである。すなわち、個々の代表画素について、原データ格納部110内に格納されている原テクスチャデータによって定義されているテーブルの角度のパラメータを所定のオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択する処理が実行される。
データ圧縮部130は、原データ格納部110内に格納されている原テクスチャデータを構成するM個の画素のうち、N個の代表画素については、それぞれ自己の反射特性を示すテーブルをそのまま収録し、(M−N)個の一般画素については、近似代表画素選択部140によって選択された近似代表画素を示すデータとともに、当該近似代表画素を選択する要因となった最近似テーブルについてのオフセット量を示すデータを収録することにより、圧縮テクスチャデータを作成する処理を実行する。この処理内容は、図16のステップS14の処理として述べたとおりである。
一方、レンダリング装置200は、図示のとおり、物体データ格納部210,テクスチャデータ格納部220,レンダリング条件設定部230,対応画素決定部240,反射光演算部250,二次元データ生成部260によって構成されており、テクスチャデータの作成装置100によって作成された圧縮テクスチャデータを、三次元仮想物体の表面にマッピングし、これを所定の視点から観察したときに得られる投影画像を示す二次元データを生成する機能を果たす。このレンダリング装置200は、容量の大きな原テクスチャデータを取り扱う必要はなく、圧縮テクスチャデータのみを取り扱える機能を有していればよいので、一般的なパソコンなどの小規模システムで構成することが可能である。
物体データ格納部210は、三次元仮想物体の構造を示す物体データを入力してこれを格納する機能を果たし、テクスチャデータ格納部220は、テクスチャデータの作成装置100によって作成された圧縮テクスチャデータを入力してこれを格納する機能を果たし、レンダリング条件設定部230は、レンダリングに必要な照明環境、視点位置、マッピング態様、投影平面を定めるレンダリング条件を設定する機能を果たす。これら各構成要素は、図17のステップS21,S22,S23に対応する各段階を実行する構成要素ということになる。
また、対応画素決定部240は、図17のステップS24に対応する段階を実行する機能を有し、物体データ、圧縮テクスチャデータ、レンダリング条件を参照して、三次元仮想物体上のサンプル点Qの位置にマッピングされる圧縮テクスチャデータ内の対応画素を決定する処理を実行する。
反射光演算部250は、図17のステップS25に対応する段階を実行する機能を有し、物体データ、圧縮テクスチャデータ内の対応画素によって示される情報、レンダリング条件を参照して、サンプル点Qからの反射光の強度を演算する。具体的には、対応画素が代表画素であった場合には、当該代表画素について収録されているテーブルによって示される反射特性を利用して、サンプル点Qからの反射光の強度演算を行う。また、対応画素が一般画素であった場合には、「当該一般画素について収録されているデータによって示された近似代表画素」について収録されているテーブルを、「当該一般画素について収録されているデータによって示されたオフセット量」だけシフトして得られるテーブルによって示される反射特性を利用して、サンプル点Qからの反射光の強度演算を行う。
二次元データ生成部260は、図17のステップS27に対応する段階を実行する機能を有し、物体データ、反射光強度、レンダリング条件に基づいて、投影画像データを生成する。すなわち、各サンプル点Qからの反射光に基づいて、投影平面H上に得られる投影画像15を示す二次元データを生成し、これを投影画像データとして出力する。
<<< §9.変形例 >>>
最後に、上述した基本的実施形態の変形例をいくつか述べておく。
(1) 仰角に関するバリエーション
これまで述べた基本的実施形態では、たとえば、代表画素について定義された「もとのテーブル」に関する方位角φL,φVをシフトさせることにより、比較対象となるテーブルのバリエーションを派生させていた。しかしながら、バリエーションの派生は、必ずしも方位角φL,φVのシフトにより行う必要はなく、仰角θL,θVのシフトにより行ってもかまわない。
図19は、図8に示すテーブルR(u,v)を「もとのテーブル」として、θLを15°シフトさせたテーブルである。ここで、θLに関する大列見出し(ここでは、φLに関する列と区別する上で、θLに関する列を「大列」と呼ぶ)に着目すると、図8に示すテーブルでは、第1大列目が「θL1」、第2大列目が「θL2」、…、第6大列目が「θL6」となっているのに対して、図19に示すテーブルでは、第1大列目が「θL2」、第2大列目が「θL3」、…、第6大列目が「θL1」となっている。すなわち、図8に示すもとのテーブルの「θL1」に該当する第1大列目のコンテンツをそっくり第6大列目へとまわし、第2大列目のコンテンツを第1大列目へと移動し、第3大列目のコンテンツを第2大列目へとまわし、…とそれぞれ1大列分だけ左方向へローテーションシフトさせることにより、図19に示すテーブルが得られることになる。ここで、各大列に収容されている個々の部分テーブルの内容に関しては、図8に示すテーブルと図19に示すテーブルとに差はない。
一方、図20は、図8に示すテーブルR(u,v)を「もとのテーブル」として、θVを15°シフトさせたテーブルである。ここで、θVに関する大行見出し(ここでは、φVに関する行と区別する上で、θVに関する行を「大行」と呼ぶ)に着目すると、図8に示すテーブルでは、第1大行目が「θV1」、第2大行目が「θV2」、…、第6大行目が「θV6」となっているのに対して、図20に示すテーブルでは、第1大行目が「θV2」、第2大行目が「θV3」、…、第6大行目が「θV1」となっている。すなわち、図8に示すもとのテーブルの「θV1」に該当する第1大行目のコンテンツをそっくり第6大行目へとまわし、第2大行目のコンテンツを第1大行目へと移動し、第3大行目のコンテンツを第2大行目へとまわし、…とそれぞれ1大行分だけ上方向へローテーションシフトさせることにより、図20に示すテーブルが得られることになる。
以上は、θLあるいはθVのオフセット量を15°に設定してローテーションシフトさせた例であるが、オフセット量を30°,45°,60°,75°に設定すれば、2大列(2大行),3大列(3大行),4大列(4大行),5大列(5大行)分のローテーションシフトが可能になる。このような仰角θL,θVのシフトにより「もとのテーブル」を派生させると、合計6×6=36通りのバリエーションを得ることができる。
ただ、実用上は、仰角θL,θVのシフトに基づくバリエーションよりも、方位角φL,φVのシフトに基づくバリエーションを作成した方が、個々の一般画素について、より近似度の高い最近似テーブルが見つかる可能性が高いと考えられる。これは、実在の繊維シートの場合、図10に示す例のように、方位角をシフトさせると毛並みの方向が一致する構造をもったケース(回転対称となるケース)が多いためである。これは絨毯やカーペットのようにベース生地に植毛された毛並繊維を有する繊維シートだけでなく、縦糸と横糸とを織り込んだ繊維シートに関しても同様である(この場合は、オフセット量を90°もしくは180°に設定した場合に、最も近似度の高いテーブルが得られるものと予想される)。
したがって、実用上は、仰角θL,θVのシフトに基づくバリエーションは、方位角φL,φVのシフトに基づくバリエーションと併用するのが好ましい。具体的には、0〜360°の角度範囲をα等分して、Uφ=360°/αなる式で与えられる単位角度Uφを定義し、0〜90°の角度範囲をβ等分して、Uθ=90°/βなる式で与えられる単位角度Uθを定義する(上述の例の場合、α=12,β=6)。そして、φLおよびφVを、Δφ=i×Uφ(但し、i=0,1,2,…,α−1)なる式で与えられるα通りのオフセット量Δφだけそれぞれシフトさせるとともに、θLおよびθVを、Δθ=j×Uθ(但し、j=0,1,2,…,β−1)なる式で与えられるβ通りのオフセット量Δθだけそれぞれシフトさせた合計α×β通りの組み合わせのバリエーションをもったテーブルを定義すればよい。
(2) ランダムシフトによるバリエーション
これまで述べた基本的実施形態では、代表画素について定義された「もとのテーブル」に基づいてバリエーションを派生させる際に、ローテーションシフトを行っていた。しかしながら、本発明で行うテーブルコンテンツのシフトは、必ずしもローテーションシフトに限定されるものではなく、ランダムなシフトを行ってもかまわない。たとえば、第1列目を第7列目にもってゆき、第7列目を第9列目にもってゆき、第9列目を第3列目にもってゆき、第2列目と第8列目とを交換し、…といったデタラメなシフトでもかまわない。あるいは、行と列を含めて全くランダムにシフトさせてもかまわない。すなわち、二次元マトリックス上に配置されているタイルをゴチャゴチャにかき混ぜて配置しなおすようなランダムなシフトでもよい。このようなランダムなシフトでは、個々のタイルごとに、それぞれランダムなオフセット量が設定されることになる。
要するに、代表画素について定義された「もとのテーブル」に対して、テーブルコンテンツ(上述の例にいう個々のタイル)の配置を何らかの方法で入れ替えることにより、「異なるテーブル」を作成し、これをバリエーションとして用いることができればよい。そうすれば、一般画素のテーブルの代用として利用できるテーブルの候補の数がそれだけ増えることになるので、より近似度の高いテーブルを最近似テーブルとして選択できる可能性が高くなり、より品質の高い圧縮テクスチャデータを得ることができるのである。
しかしながら、ある1つの一般画素Tiについて、バリエーションとして作成された所定のテーブルを最近似テーブルとして選択した場合、「もとのテーブル」に対して、どのようなシフトを行うと、当該最近似テーブルが得られるのか、という情報を記録しておく必要がある。別言すれば、個々のコンテンツごとに「もとのテーブル上の位置を基準としたオフセット量」を記録しておかねばならない。
したがって、実用上は、これまで述べた基本的実施形態に示すとおり、ローテーションシフトを行うのが好ましい。このローテーションシフトでは、テーブル上のすべてのコンテンツに対して同一のオフセット量が設定されるので、たとえば、「オフセット量:ΔLφ=30°,ΔVφ=0°」というように、角度値を指定するだけで、すべてのコンテンツに対するシフト動作を定義することができる。また、コンピュータによるシフト動作も非常に負担の軽い演算処理で実行が可能になる。
テクスチャデータを利用した一般的なレンダリング処理の概念を示す斜視図である。 図1に示すレンダリング処理において、サンプル点Qからの反射光の強度を演算する最も単純な手法を示す斜視図である。 カラー画像からなる2次元テクスチャデータの画素配列を示す平面図である。 BRDFモデルおよびBTFモデルの原理を説明するための斜視図である。 BTFモデルで用いる6次元テクスチャデータの構造を示す平面図である。 BTFモデルにおける離散的な仰角定義の一例を示す正面図である。 BTFモデルにおける離散的な方位角定義の一例を示す正面図である。 反射特性を示すテーブルR(u,v)を用いて定義した6次元テクスチャデータ20の構成例を示す平面図である。 高次元テクスチャデータの圧縮原理を示す平面図である。 テクスチャの元になる繊維シートの表面構造を示す側面図である。 高次元テクスチャデータにおける反射特性の近似具合を示す平面図である。 高次元テクスチャデータにおける反射特性の近似具合を示す別な平面図である。 方位角を所定のオフセット量だけシフトさせることにより、テーブルのコンテンツをローテーションさせ、複数のバリエーションをもったテーブルを定義する原理を示す平面図である。 図8に示すテーブルR(u,v)について、φLを30°シフトすることにより得られるテーブルを示す平面図である。 図8に示すテーブルR(u,v)について、φVを30°シフトすることにより得られるテーブルを示す平面図である。 本発明に係るレンダリング用テクスチャデータの作成方法の基本手順を示す流れ図である。 本発明に係るテクスチャデータを用いたレンダリング方法の基本手順を示す流れ図である。 本発明に係るテクスチャデータの作成装置およびレンダリング装置の基本構成を示すブロック図である。 図8に示すテーブルR(u,v)について、θLを15°シフトすることにより得られるテーブルを示す平面図である。 図8に示すテーブルR(u,v)について、θVを15°シフトすることにより得られるテーブルを示す平面図である。
符号の説明
10:物体データ(三次元仮想物体)
15:二次元投影画像
20:テクスチャデータ(原テクスチャデータ)
25:圧縮テクスチャデータ
30:繊維シート
31,32,33:毛並繊維
100:テクスチャデータの作成装置
110:原データ格納部
120:代表画素決定部
130:データ圧縮部
140:近似代表画素選択部
200:レンダリング装置
210:物体データ格納部
220:テクスチャデータ格納部
230:レンダリング条件設定部
240:対応画素決定部
250:反射光演算部
260:二次元データ生成部
A,B,C:繊維シート上の領域
E:視点
G:光源
H:投影平面
I(L):照明光の強度
I(V):反射光の強度
K,Kr,Kg,Kb:反射係数
K(θL,φL,θV,φV):反射係数
L,L1〜L6:照明光
L′:照明光の投影像
n:法線
P:投影平面上の画素
Q,Q(X,Y,Z):サンプル点
R1〜R4:代表画素についての反射特性を示すテーブル
Ri:一般画素についての反射特性を示すテーブル
R(u,v):反射特性を示すテーブル
S:基準面
S11〜S27:流れ図の各ステップ
T1〜T4:代表画素
Ti:一般画素
T(u,v):テクスチャを構成する画素
u,v:テクスチャを定義する二次元座標系の各座標軸
V:反射光
V′:反射光の投影像
X,Y,Z:三次元座標系の各座標軸
x,y:投影平面H上の二次元座標系の各座標軸
θL:照明光Lの入射角
θL1〜θL6:照明光Lの入射角
θV:反射光Vの射出角
θV1〜θV6:反射光Vの射出角
ζ:基準線
φL:照明光Lの方位角
φL1〜φL12:照明光Lの方位角
φV:反射光Vの方位角

Claims (13)

  1. M個の画素の集合からなり、個々の画素ごとに、光の入射方向および/または反射方向に関する角度に依存して定まる反射特性を示すテーブルが定義された原テクスチャデータを、コンピュータが読み込む原データ準備段階と、
    コンピュータが、前記M個の画素の中からN個(N<M)の代表画素を定め、残りの(M−N)個の画素を一般画素とする代表画素決定段階と、
    コンピュータが、前記個々の一般画素について、それぞれ自己の反射特性に近似した反射特性をもつ代表画素を近似代表画素として選択する近似代表画素選択段階と、
    コンピュータが、前記M個の画素のうち、N個の代表画素については、それぞれ自己の反射特性を示すテーブルを収録し、(M−N)個の一般画素については、選択された近似代表画素を示すデータを収録した圧縮テクスチャデータを作成するデータ圧縮段階と、
    を有するレンダリング用テクスチャデータの作成方法において、
    前記近似代表画素選択段階で、個々の代表画素について、前記原テクスチャデータによって定義されているテーブルの角度のパラメータを所定のオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択し、
    前記データ圧縮段階で、一般画素については、選択された近似代表画素を示すデータとともに、当該近似代表画素を選択する要因となった最近似テーブルについてのオフセット量を示すデータを収録した圧縮テクスチャデータを作成することを特徴とするレンダリング用テクスチャデータの作成方法。
  2. 請求項1に記載のテクスチャデータの作成方法において、
    原データ準備段階で、光の入射方向および/または反射方向に関する角度を、所定範囲の角度を等分割して得られる複数通りの角度値によって表現したテーブルを読み込み、
    近似代表画素選択段階で、個々の角度値に対して前記等分割された角度の整数倍に対応する所定のオフセット量を加算もしくは減算するシフトを行い、加算もしくは減算の結果、シフト後の角度値が前記所定範囲の一端から食み出してしまう場合には、食み出し分を前記所定範囲の他端からカウントするローテーションを行うことを特徴とするレンダリング用テクスチャデータの作成方法。
  3. 請求項2に記載のテクスチャデータの作成方法において、
    原データ準備段階で、テクスチャデータのマッピング対象となる仮想物体の表面上に、サンプル点Qと、このサンプル点Qの位置に立てた法線nと、前記サンプル点Qを含み前記法線nに直交する基準面Sと、前記サンプル点Qを通る前記基準面S上の基準線ζと、を定義し、前記サンプル点Qに入射する照明光と前記法線nとのなす角をθL、前記基準面S上への前記照明光の投影像と前記基準線ζとのなす角をφL、前記サンプル点Qから射出する反射光と前記法線nとのなす角をθV、前記基準面S上への前記反射光の投影像と前記基準線ζとのなす角をφVとしたときに、「θL,φL,θV,φV」の関数として与えられる反射係数K(θL,φL,θV,φV)をテーブルとして定義した原テクスチャデータを読み込むことを特徴とするレンダリング用テクスチャデータの作成方法。
  4. 請求項3に記載のテクスチャデータの作成方法において、
    原データ準備段階で、0〜360°の角度範囲をα等分することにより、φLの角度値をα通り設定し、φVの角度値をα通り設定し、0〜90°の角度範囲をβ等分することにより、θLの角度値をβ通り設定し、θVの角度値をβ通り設定し、個々の画素についてそれぞれ合計α×β通りの反射特性を示すテーブルを読み込むことを特徴とするレンダリング用テクスチャデータの作成方法。
  5. 請求項4に記載のテクスチャデータの作成方法において、
    近似代表画素選択段階で、Uφ=360°/αなる式で与えられる単位角度Uφを定義し、φLおよびφVを、Δφ=i×Uφ(但し、i=0,1,2,…,α−1)なる式で与えられるα通りのオフセット量Δφだけそれぞれシフトさせた合計α通りの組み合わせのバリエーションをもったテーブルを定義することを特徴とするレンダリング用テクスチャデータの作成方法。
  6. 請求項4に記載のテクスチャデータの作成方法において、
    近似代表画素選択段階で、Uφ=360°/αなる式で与えられる単位角度Uφを定義し、Uθ=90°/βなる式で与えられる単位角度Uθを定義し、φLおよびφVを、Δφ=i×Uφ(但し、i=0,1,2,…,α−1)なる式で与えられるα通りのオフセット量Δφだけそれぞれシフトさせるとともに、θLおよびθVを、Δθ=j×Uθ(但し、j=0,1,2,…,β−1)なる式で与えられるβ通りのオフセット量Δθだけそれぞれシフトさせた合計α×β通りの組み合わせのバリエーションをもったテーブルを定義することを特徴とするレンダリング用テクスチャデータの作成方法。
  7. 請求項1〜6のいずれかに記載のテクスチャデータの作成方法において、
    原データ準備段階で、反射特性を示すデータとして、三原色RGBの波長をもった照明光それぞれについての反射率を示す数値をもったテーブルを読み込むことを特徴とするレンダリング用テクスチャデータの作成方法。
  8. 請求項7に記載のテクスチャデータの作成方法において、
    近似代表画素選択段階で、自己の反射特性を示すテーブルと比較対象となるテーブルとについて、対応する個々の反射率の差の二乗和が最小となるテーブルを最近似テーブルと決定することを特徴とするレンダリング用テクスチャデータの作成方法。
  9. 請求項1〜8のいずれかに記載のテクスチャデータの作成方法において、
    原データ準備段階で、実在の物体に対して、種々の方向から照明光を照射した状態で、種々の方向から撮影を行い、得られた複数の撮影画像に基づいて用意された原テクスチャデータを読み込むことを特徴とするレンダリング用テクスチャデータの作成方法。
  10. 請求項1〜8のいずれかに記載のテクスチャデータの作成方法における代表画素決定段階、近似代表画素選択段階、データ圧縮段階をコンピュータに実行させるためのプログラム。
  11. 請求項1〜9のいずれかに記載のテクスチャデータの作成方法によって作成された圧縮テクスチャデータを、三次元仮想物体の表面にマッピングし、これを所定の視点から観察したときに得られる投影画像を示す二次元データを生成するレンダリング方法であって、
    コンピュータが、前記三次元仮想物体の構造を示す物体データを入力する物体データ入力段階と、
    コンピュータが、前記圧縮テクスチャデータを入力するテクスチャデータ入力段階と、
    コンピュータが、オペレータの指示に基づいて、レンダリングに必要な照明環境、視点位置、マッピング態様、投影平面を定めるレンダリング条件を設定するレンダリング条件設定段階と、
    コンピュータが、前記三次元仮想物体上の各サンプル点Qについて、当該サンプル点Qの位置にマッピングされる前記圧縮テクスチャデータ内の対応画素を決定する対応画素決定段階と、
    コンピュータが、前記対応画素が代表画素であった場合には、当該代表画素について収録されているテーブルによって示される反射特性を利用して、前記サンプル点Qからの反射光を演算し、前記対応画素が一般画素であった場合には、「当該一般画素について収録されているデータによって示された近似代表画素」について収録されているテーブルを、「当該一般画素について収録されているデータによって示されたオフセット量」だけシフトして得られるテーブルによって示される反射特性を利用して、前記サンプル点Qからの反射光を演算する反射光演算段階と、
    コンピュータが、各サンプル点Qからの反射光に基づいて、前記投影平面上に得られる投影画像を示す二次元データを生成する二次元データ生成段階と、
    を有することを特徴とするテクスチャデータを用いたレンダリング方法。
  12. M個の画素の集合からなり、個々の画素ごとに、光の入射方向および/または反射方向に関する角度に依存して定まる反射特性を示すテーブルが定義された原テクスチャデータを入力してこれを格納する原データ格納部と、
    前記M個の画素の中からN個(N<M)の代表画素を定め、残りの(M−N)個の画素を一般画素とする代表画素決定部と、
    前記個々の一般画素について、それぞれ自己の反射特性に近似した反射特性をもつ代表画素を近似代表画素として選択する近似代表画素選択部と、
    前記M個の画素のうち、N個の代表画素については、それぞれ自己の反射特性を示すテーブルを収録し、(M−N)個の一般画素については、選択された近似代表画素を示すデータを収録した圧縮テクスチャデータを作成するデータ圧縮部と、
    を備えるレンダリング用テクスチャデータの作成装置において、
    前記近似代表画素選択部が、個々の代表画素について、前記原テクスチャデータによって定義されているテーブルの角度のパラメータを所定のオフセット量だけシフトさせることにより、複数のバリエーションをもったテーブルを定義し、これらのテーブルすべてを比較対象としたときに最も近似するテーブルを最近似テーブルと決定し、この最近似テーブルを派生させた代表画素を近似代表画素として選択し、
    前記データ圧縮部が、一般画素については、選択された近似代表画素を示すデータとともに、当該近似代表画素を選択する要因となった最近似テーブルについてのオフセット量を示すデータを収録した圧縮テクスチャデータを作成することを特徴とするレンダリング用テクスチャデータの作成装置。
  13. 請求項12に記載のテクスチャデータの作成装置によって作成された圧縮テクスチャデータを、三次元仮想物体の表面にマッピングし、これを所定の視点から観察したときに得られる投影画像を示す二次元データを生成するレンダリング装置であって、
    前記三次元仮想物体の構造を示す物体データを入力してこれを格納する物体データ格納部と、
    前記圧縮テクスチャデータを入力してこれを格納するテクスチャデータ格納部と、
    レンダリングに必要な照明環境、視点位置、マッピング態様、投影平面を定めるレンダリング条件を設定するレンダリング条件設定部と、
    前記三次元仮想物体上のサンプル点Qの位置にマッピングされる前記圧縮テクスチャデータ内の対応画素を決定する対応画素決定部と、
    前記対応画素が代表画素であった場合には、当該代表画素について収録されているテーブルによって示される反射特性を利用して、前記サンプル点Qからの反射光を演算し、前記対応画素が一般画素であった場合には、「当該一般画素について収録されているデータによって示された近似代表画素」について収録されているテーブルを、「当該一般画素について収録されているデータによって示されたオフセット量」だけシフトして得られるテーブルによって示される反射特性を利用して、前記サンプル点Qからの反射光を演算する反射光演算部と、
    各サンプル点Qからの反射光に基づいて、前記投影平面上に得られる投影画像を示す二次元データを生成する二次元データ生成部と、
    を備えることを特徴とするテクスチャデータを用いたレンダリング装置。
JP2005332633A 2005-11-17 2005-11-17 レンダリング用テクスチャデータの作成方法 Expired - Fee Related JP4802676B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005332633A JP4802676B2 (ja) 2005-11-17 2005-11-17 レンダリング用テクスチャデータの作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005332633A JP4802676B2 (ja) 2005-11-17 2005-11-17 レンダリング用テクスチャデータの作成方法

Publications (2)

Publication Number Publication Date
JP2007140820A JP2007140820A (ja) 2007-06-07
JP4802676B2 true JP4802676B2 (ja) 2011-10-26

Family

ID=38203607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005332633A Expired - Fee Related JP4802676B2 (ja) 2005-11-17 2005-11-17 レンダリング用テクスチャデータの作成方法

Country Status (1)

Country Link
JP (1) JP4802676B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101159162B1 (ko) 2008-12-01 2012-06-26 한국전자통신연구원 측정 재질감을 지원하는 영상 생성 장치 및 방법
US8791951B2 (en) 2008-12-01 2014-07-29 Electronics And Telecommunications Research Institute Image synthesis apparatus and method supporting measured materials properties
JP5926626B2 (ja) * 2012-06-11 2016-05-25 キヤノン株式会社 画像処理装置及びその制御方法、プログラム
EP3923245A3 (en) 2015-06-19 2022-07-13 Toppan Printing Co., Ltd. Surface material pattern finish simulation device and surface material pattern finish simulation method
CN109684328B (zh) * 2018-12-11 2020-06-16 中国北方车辆研究所 一种高维时序数据压缩存储方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10247256A (ja) * 1997-03-04 1998-09-14 Integra:Kk 光学的に複雑な特性を有する物体の美感設計をコンピュータ上で対話的に行う方法
JP4220182B2 (ja) * 2002-05-31 2009-02-04 株式会社東芝 高次元テクスチャ描画装置、高次元テクスチャ圧縮装置、高次元テクスチャ描画システム、高次元テクスチャ描画方法並びにプログラム
JP4034670B2 (ja) * 2003-03-04 2008-01-16 株式会社東芝 テクスチャ描画方法及び装置
JP4444180B2 (ja) * 2005-07-20 2010-03-31 株式会社東芝 テクスチャ符号化装置、テクスチャ復号化装置、方法、およびプログラム

Also Published As

Publication number Publication date
JP2007140820A (ja) 2007-06-07

Similar Documents

Publication Publication Date Title
US6888544B2 (en) Apparatus for and method of rendering 3D objects with parametric texture maps
Tong et al. Synthesis of bidirectional texture functions on arbitrary surfaces
JP4335588B2 (ja) 3dオブジェクトをモデル化する方法
JP5002742B2 (ja) パラメトリックテクスチャマップを使用して3dオブジェクトをレンダリングするための装置および方法
JP3184327B2 (ja) 3次元グラフィックス処理方法及びその装置
US7149368B2 (en) System and method for synthesis of bidirectional texture functions on arbitrary surfaces
TWI300908B (en) Video game system, image rendering system, and computer-readable medium having stored thereon a program of computer-readable instructions configured to cause generation of a renderized display
JP4802676B2 (ja) レンダリング用テクスチャデータの作成方法
US7528831B2 (en) Generation of texture maps for use in 3D computer graphics
TWI238979B (en) Rendering processing method
JP4198087B2 (ja) 画像生成装置および画像生成方法
Driemeyer Rendering with mental ray®
JP2005301414A (ja) 画像生成装置および画像生成方法
US20080074435A1 (en) Texture filtering apparatus, texture mapping apparatus, and method and program therefor
JP4335589B2 (ja) 3dオブジェクトをモデル化する方法
US7034827B2 (en) Extension of fast phong shading technique for bump mapping
JP3906170B2 (ja) 高次元テクスチャを合成する装置および方法およびプログラム
JP2006323450A (ja) シミュレーション画像生成装置、方法、演算プログラム、及びそのプログラムを記録した記録媒体
Pacanowski et al. Sketch and Paint-based Interfacefor Highlight Modeling
KR100490885B1 (ko) 직각 교차 실린더를 이용한 영상기반 렌더링 방법
Soh et al. Texture mapping of 3D human face for virtual reality environments
JP4888023B2 (ja) 物体の反射特性データの作成方法および作成装置
JP2000099763A (ja) 画像処理装置および方法、並びに提供媒体
JPH05298460A (ja) 貝殻質感表現装置
JP5321385B2 (ja) 画像処理プログラムおよびコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4802676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees