(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024056585
(43)【公開日】2024-04-23
(54)【発明の名称】データ構造、レンダリング装置、記憶装置およびシェーダ
(51)【国際特許分類】
G06T 15/00 20110101AFI20240416BHJP
【FI】
G06T15/00 501
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022163596
(22)【出願日】2022-10-11
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100161148
【弁理士】
【氏名又は名称】福尾 誠
(74)【代理人】
【識別番号】100163511
【弁理士】
【氏名又は名称】辻 啓太
(72)【発明者】
【氏名】三須 俊枝
(72)【発明者】
【氏名】久富 健介
(72)【発明者】
【氏名】若原 裕磨
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA13
5B080AA19
5B080BA02
5B080BA04
5B080DA06
5B080FA02
5B080FA09
5B080GA00
5B080GA11
5B080GA22
(57)【要約】
【課題】下位互換性を補償するとともに、レンダリング結果の高品位化を図る。
【解決手段】
本開示に係るデータ構造1は、3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および幾何学的要素に対応付けられた属性を示す属性情報と、シェーダ32と、を含み、属性情報は、レンダリング装置100による参照が可能である基本属性と、レンダリング装置100による参照が不可である拡張属性と、を含み、レンダリング装置100が、シェーダ32をプラグインすることにより、前記拡張属性を参照して所定の演算を行い、少なくともシェーダ32による拡張属性31に基づく演算結果を参照して、3次元コンピュータグラフィクスを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
レンダリング装置により3次元コンピュータグラフィクスを生成するためのデータ構造であって、
前記3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および前記幾何学的要素に対応付けられた属性を示す属性情報と、
シェーダと、を含み、
前記属性情報は、
前記レンダリング装置による参照が可能である基本属性と、
前記レンダリング装置による参照が不可である拡張属性と、を含み、
前記レンダリング装置が、前記シェーダをプラグインすることにより、前記拡張属性を参照して所定の演算を行い、少なくとも前記シェーダによる前記拡張属性に基づく演算結果を参照して、前記3次元コンピュータグラフィクスを生成する、データ構造。
【請求項2】
請求項1に記載のデータ構造において、
前記基本属性を含む基本レイヤと、
前記拡張属性および前記シェーダを含む拡張レイヤと、からなるデータ構造。
【請求項3】
請求項1に記載のデータ構造において、
前記幾何学的要素ごとに、前記拡張属性が前記基本属性に紐づいて記述される、データ構造。
【請求項4】
請求項1に記載のデータ構造において、
前記幾何学的要素ごとに、前記基本属性と前記拡張属性とがそれぞれ異なる記録領域に記述される、データ構造。
【請求項5】
請求項1に記載のデータ構造において、
前記拡張属性には、該拡張属性が対応する幾何学的要素を識別するための識別子が含まれる、データ構造。
【請求項6】
請求項1に記載のデータ構造において、
前記幾何学的要素は、点群を構成する頂点である、データ構造。
【請求項7】
請求項1に記載のデータ構造が入力され、3次元コンピュータグラフィクスを生成するレンダリング装置であって、
分離部と、
レンダリング部と、を備え、
前記分離部は、前記入力されたデータ構造に含まれる前記シェーダを分離して、前記レンダリング部にプラグインし、
前記レンダリング部は、前記プラグインされたシェーダによる前記拡張属性に基づく演算結果を少なくとも用いて、前記3次元コンピュータグラフィクスを生成する、レンダリング装置。
【請求項8】
レンダリング装置により3次元コンピュータグラフィクスを生成するためのデータを記憶する記憶装置であって、
前記データは、
前記3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および前記幾何学的要素に対応付けられた属性を示す属性情報と、
シェーダと、を含むデータ構造を有し、
前記属性情報は、
前記レンダリング装置による参照が可能である基本属性と、
前記レンダリング装置による参照が不可である拡張属性と、を含み、
前記レンダリング装置が、前記シェーダをプラグインすることにより、前記拡張属性を参照して所定の演算を行い、少なくとも前記シェーダによる前記拡張属性に基づく演算結果を参照して、前記3次元コンピュータグラフィクスを生成する、記憶装置。
【請求項9】
3次元コンピュータグラフィクスを生成するレンダリング装置に入力される、請求項1に記載のデータ構造に含まれるシェーダであって、
前記レンダリング装置にプラグインされることで、前記拡張属性に基づく演算を行い、演算結果を前記レンダリング装置が参照可能とする、シェーダ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ構造、レンダリング装置、記憶装置およびシェーダに関する。
【背景技術】
【0002】
3次元コンピュータグラフィクス描画用のモデル化のためのデータ形式として、頂点の座標を複数列記する点群形式がある。点群形式では、各頂点に対応付けて、画素値(例えば、赤、緑および青の輝度値)あるいは法線方向などが多重化されることがある。
【0003】
また、点群形式において、各頂点に対応付けて、質感(マテリアル)を表すための反射係数などのパラメータ、あるいは、視点に依存する画素値(視点依存テクスチャ)あるいはサーフェスライトフィールドを多重化することもある。
【0004】
また、頂点に加えて頂点リストによる多角形(ポリゴン)を用いるデータ形式(ポリゴンメッシュ形式)もある。さらにポリゴンメッシュ形式を構成する多角形を平面に展開または投影し、多角形の内部の各点を平面内の点に対応付けるUVマッピングという形式がある。UVマッピング先の平面上には、テクスチャを表す画素値(テクスチャマップ)、局所的な凹凸(バンプマップ)および局所的な法線方向など、局所的な属性値が記録される。
【0005】
特許文献1には、経線・緯線方式による球面定義に代わる座標データ構造が記載されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
点群形式は構造が単純であり、頂点の座標あるいは画素値に対する所定の演算を行い、3次元コンピュータグラフィクスを描画するレンダラは一般的である。一方、法線あるいはマテリアル情報など、ユーザが任意に追加した詳細な属性値に関しては、一般的なレンダラでは対応することができない。その結果、データ内に記述されている属性値が無視され、意図した結果が得られない場合、あるいは、エラーとしてレンダラがデータの読み込みを受け付けない場合がある。
【0008】
ポリゴンメッシュ形式およびUVマッピングを併用するデータ形式は、点群形式よりもデータ容量を削減することができることが多く、汎用的なデータ形式も多く存在する。しかしながら、UVマッピングには、ポリゴンメッシュの幾何形状(ジオメトリ)を平面に対応付ける座標変換操作が伴うため、形状の変形、分割あるいは併合などの操作を伴う際には、マップまたは座標の対応付けを変更する必要があり、煩雑な演算を要する。また、UVマッピングの仕方には自由度があるため、同一の物体の表面属性が全く異なるマップで表現される可能性もある。しかも、UVマッピングの仕方如何で、得られるレンダリング結果の品質に大きな差が生じることもある。また、連続的に移動・変形する3次元被写体をモデル化した場合であっても、UVマッピングが不連続に変形することがあり、データ圧縮あるいはデータ加工などにおいて、UVマッピングは不利な形式である。
【0009】
また、ポリゴンメッシュ形式とUVマッピングとの組み合わせによっても、ユーザが任意に設定したマップには、一般的なレンダラは対応することができず、別途シェーダプラグインを作成して、レンダラに読み込ませるなどの作業が必要となり不便である。
【0010】
また、特許文献1に記載のデータ構造は、コンピュータグラフィクスの演算装置に位相写像演算機能を組み込む必要がある。特許文献1に記載のデータ構造は、演算装置に位相写像演算機能を組み込む仕組みを備えないため、汎用性を欠くという問題がある。
【0011】
本発明の目的は、上述した課題を解決し、下位互換性を補償するとともに、レンダリング結果の高品位化を図ることができるデータ構造、レンダリング装置、記憶装置およびシェーダを提供することにある。
【課題を解決するための手段】
【0012】
(1)本開示に係るデータ構造は、レンダリング装置により3次元コンピュータグラフィクスを生成するためのデータ構造であって、前記3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および前記幾何学的要素に対応付けられた属性を示す属性情報と、シェーダと、を含み、前記属性情報は、前記レンダリング装置による参照が可能である基本属性と、前記レンダリング装置による参照が不可である拡張属性と、を含み、前記レンダリング装置が、前記シェーダをプラグインすることにより、前記拡張属性を参照して所定の演算を行い、少なくとも前記シェーダによる前記拡張属性に基づく演算結果を参照して、前記3次元コンピュータグラフィクスを生成する。
【0013】
(2) (1)に記載のデータ構造において、前記基本属性を含む基本レイヤと、前記拡張属性および前記シェーダを含む拡張レイヤと、からなる。
【0014】
(3) (1)または(2)に記載のデータ構造において、前記幾何学的要素ごとに、前記拡張属性が前記基本属性に紐づいて記述される。
【0015】
(4) (1)に記載のデータ構造において、前記幾何学的要素ごとに、前記基本属性と前記拡張属性とがそれぞれ異なる記録領域に記述される。
【0016】
(5) (1)または(2)に記載のデータ構造において、前記拡張属性には、該拡張属性が対応する幾何学的要素を識別するための識別子が含まれる。
【0017】
(6) (1)から(5)のいずれかに記載のデータ構造において、前記幾何学的要素は、点群を構成する頂点である。
【0018】
(7) (1)から(6)のいずれかに記載のデータ構造が入力され、3次元コンピュータグラフィクスを生成するレンダリング装置であって、分離部と、レンダリング部と、を備え、前記分離部は、前記入力されたデータ構造に含まれる前記シェーダを分離して、前記レンダリング部にプラグインし、前記レンダリング部は、前記プラグインされたシェーダによる前記拡張属性に基づく演算結果を少なくとも用いて、前記3次元コンピュータグラフィクスを生成する。
【0019】
(8) レンダリング装置により3次元コンピュータグラフィクスを生成するためのデータを記憶する記憶装置であって、前記データは、前記3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および前記幾何学的要素に対応付けられた属性を示す属性情報と、シェーダと、を含むデータ構造を有し、前記属性情報は、前記レンダリング装置による参照が可能である基本属性と、前記レンダリング装置による参照が不可である拡張属性と、を含み、前記レンダリング装置が、前記シェーダをプラグインすることにより、前記拡張属性を参照して所定の演算を行い、少なくとも前記シェーダによる前記拡張属性に基づく演算結果を参照して、前記3次元コンピュータグラフィクスを生成する。
【0020】
(9) 3次元コンピュータグラフィクスを生成するレンダリング装置に入力される、(1)から(6)のいずれかに記載のデータ構造に含まれるシェーダであって、前記レンダリング装置にプラグインされることで、前記拡張属性に基づく演算を行い、演算結果を前記レンダリング装置が参照可能とする。
【発明の効果】
【0021】
本発明に係るデータ構造、レンダリング装置、記憶装置およびシェーダによれば、下位互換性を補償するとともに、レンダリング結果の高品位化を図ることができる。
【図面の簡単な説明】
【0022】
【
図1】本開示の一実施形態に係るデータ構造の一例を示す図である。
【
図2】
図1に示すデータ構造の一例を示す図である。
【
図3】
図1に示すデータ構造の具体例を示す図である。
【
図4】
図1に示すデータ構造の別の具体例を示す図である。
【
図5】
図1に示すデータ構造のさらに別の具体例を示す図である。
【
図6】本開示の一実施形態に係るレンダリング装置の構成の一例を示す図である。
【発明を実施するための形態】
【0023】
以下、本発明の実施の形態について図面を参照して説明する。
【0024】
図1は、本開示の一実施形態に係るデータ構造1の構成例を示す図である。本実施形態に係るデータ構造1は、後述するレンダリング装置100により3次元コンピュータグラフィクスを生成するためのものである。
【0025】
図1に示すように、本実施形態に係るデータ構造1は、基本レイヤ2と、拡張レイヤ3とからなる。
【0026】
基本レイヤ2は、基本属性21を含む。拡張レイヤ3は、拡張属性31と、シェーダ32とを含む。
【0027】
基本属性21および拡張属性31は、3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および幾何学的要素に対応付けられた属性を示す属性情報である。幾何形状情報の記述形式は任意であるが、例えば、点、点群、ポリゴンメッシュ、ボクセル、プリミティブ、メタボールあるいは陰関数表現のいずれかであってもよいし、これらの組み合わせであってもよい。幾何学的要素とは、その組み合わせによって幾何形状情報を構成するための個々の数学的表現である。例えば、幾何形状情報が点群形式で記述される場合、幾何学的要素は頂点である。また、幾何形状情報がポリゴンメッシュ形式で記述される場合、幾何学的要素はポリゴンである。幾何学的要素が点群を構成する頂点である場合、3次元的な頂点に対応付けて基本属性21および拡張属性31を記述することができ、自由度の高い表現が可能となる。
【0028】
基本属性21は、後述するレンダリング装置100による参照が可能な形式により記述・格納される。レンダリング装置100による参照が可能な形式とは、後述するレンダリング装置100に実装された、コンピュータグラフィクスプログラムが解釈できるものとして国際標準またはデファクトスタンダードとして用いられている形式であり、少なくとも幾何形状情報を記録可能な形式である。拡張属性31は、後述するレンダリング装置100による参照が不可な形式により記述・格納される。拡張属性31およびシェーダ32は、後述するレンダリング装置100による基本属性21の読み取りを阻害しない形式で記述・格納される。拡張属性31は、公知の形式の内部もしくは公知の形式に付随して記述・格納される。
【0029】
例えば、拡張属性31およびシェーダ32は、公知の形式におけるユーザ定義の属性として記述・格納されてよい。また、拡張属性31およびシェーダ32は、公知の形式におけるコメント文として記述・格納されてよい。また、拡張属性31およびシェーダ32は、公知の形式として有効なデータ領域の前または後ろに拡張されたデータ領域に記述・格納されてもよい。また、拡張属性31およびシェーダ32は、公知の形式で記述されているデータのうち、公知の形式では無視されるデータ領域に埋め込むかたちで記述・格納されてもよい。
【0030】
なお、拡張属性31とシェーダ32とは異なる方法で記述・格納されてよい。したがって、例えば、拡張属性31を公知の形式におけるユーザ定義の属性として記述・格納し、シェーダ32を公知の形式として有効なデータ領域の後ろに拡張されたデータ領域に記述・格納してもよい。
【0031】
シェーダ32は、拡張属性31を参照して所定の演算を行い、演算結果を後述するレンダリング装置100が参照可能とする機能を有する。シェーダ32は、拡張属性31とともに基本属性21も参照して、レンダリングプログラムの出力すべき画像に効果を与えるものであってもよい。
【0032】
図2は、本実施形態に係るデータ構造1の具体例を示す図である。
図2においては、幾何形状情報の記述形式が点群形式である場合の、データ構造1の具体例を示している。
【0033】
上述したように、データ構造1は、基本レイヤ2と、拡張レイヤ3とで構成される。基本レイヤ2には、1種類以上の基本属性21(
図2の例では、3つの基本属性21-1,21-2,21-3)が含まれる。拡張レイヤ3には、1種類以上の拡張属性31(
図2の例では、3つの拡張属性31-1,31-2,31-3)と、シェーダ32とが含まれる。
【0034】
基本属性21には、テクスチャ、質感、法線および微小凹凸などの情報が含まれてよい。幾何形状情報が、点群、ポリゴンあるいはボクセルなどのように複数の点、複数の面あるいは複数の立体によって構成される場合には、個々の幾何学的要素(点群を構成する各点、ポリゴンメッシュを構成する各面、ボクセルを構成する各立体など)に対応つけて、属性値が保持される(すなわち、基本属性21-1~21-3それぞれが複数の属性値を有する)ものであってもよい。
【0035】
例えば、幾何形状情報の記述形式が点群形式である場合、基本属性21は、点群を構成する各頂点の3次元座標を頂点の総数分だけ列記する形式で記述することができる。
図2においては、基本属性21-1~21-3の属性値として、例えば、頂点1から頂点4の3次元座標が列記される。また、
図2に示すように、幾何学的要素ごとに、拡張属性31が基本属性20に紐づいて記述される。したがって、
図2に示すように、拡張属性31についても、3つの拡張属性31-1~31-3の属性値として、例えば、頂点1から頂点4の3次元座標が列記される。こうすることで、ユーザ定義可能な属性値記述領域を有する既存のモデル化用フォーマットを流用して、基本レイヤ2を当該フォーマットの定義済み属性値の記録領域に記録し、拡張レイヤ3を当該フォーマットのユーザ定義の属性値の記録領域に記録することができる。その結果、基本レイヤ2に含まれる情報に関する下位互換性を簡便に実現することができる。
【0036】
シェーダ32は、少なくとも拡張レイヤ3に含まれる拡張属性31の属性値のうち、1以上の属性値が入力される。また、シェーダ32は、コンピュータグラフィクスによる描画対象を照らす照明に関する情報である仮想照明情報、および、描画対象を撮像する仮想的なカメラの位置、姿勢および画角などに関する情報である仮想カメラ情報が入力される。シェーダ32は、プロセッサに読み込まれることで、プロセッサが、入力された属性値、仮想照明情報および仮想カメラ情報に基づき、少なくともレンダリングの結果出力される画像における属性値に対応する画素の画素値を演算することを可能とするプログラムである。シェーダ32は、既存のレンダリングプログラムに組み込んで(プラグインして)使用するように設計されたものである。
【0037】
図3は、本実施形態に係るデータ構造1の具体例を示す図である。
【0038】
図3においては、P個の頂点からなる点群によって幾何形状情報が記述される例を示している。
図3においては、基本属性21として、3次元座標、法線、拡散反射係数および鏡面反射係数の4属性が含まれる。また、拡張属性31として、表面下散乱およびライトフィールドの2属性が含まれる。
図3に示すように、基本属性21および拡張属性31のいずれも、P個の頂点それぞれに対応付けて記述・格納される。
【0039】
図3に示すデータ構造1において、基本レイヤ2に含まれる基本属性21は、例えば、フォン(Phong)シェーディングのような既存の手法(シェーダ)によってレンダリング可能な属性である。基本レイヤ2の格納形式は任意であるが、好ましくは公知の形式で記述されることが望ましい。公知の形式としては、例えば、PLY形式(Polygon File FormatもしくはStanford Triangle Format)、Alembic形式あるいはWavefront OBJ形式などのような汎用的なコンピュータグラフィクス用の形式、XML(Extensible Markup Language)形式、MPEG-7形式あるいはJSON(Jave Script Object Notation)形式のようなデータ記述形式が挙げられる。
【0040】
一方、拡張レイヤ3に含まれる拡張属性31およびシェーダ32の記述形式は任意である。例えば、拡張属性31は、任意の属性をユーザが定義可能な公知の形式(例えば、PLY形式、XML形式、MPEG-7形式、JSON形式など)で記述してよい。シェーダ32は、バイナリ形式、バイナリ値をASCII文字などにエンコードしたテキスト形式、バイナリデータまたはエンコードされたテキストデータを所定の方式で圧縮した形式などで記述してよい。圧縮の方式としては、例えば、ZIP方式が挙げられる。また、拡張属性31およびシェーダ32は、1つのファイルに多重化されてもよい。また、拡張属性31およびシェーダ32は、上述した圧縮および多重化が行われてもよい。
【0041】
また、基本レイヤ2と拡張レイヤ3とが別々のファイルに記述・格納されてもよい。また、基本レイヤ2と拡張レイヤ3とが別々に記述・格納されたファイルを多重して一体化してもよい。
【0042】
また、1つのファイル内で記録領域を分けて、基本レイヤ2と拡張レイヤ3とを記述・格納してもよい。この場合、記録領域の分け方としては、ファイルの前半および後半のように2つのブロックに分けてよい。また、記録領域の分け方として、
図4に示すように、点群形式の各頂点の記録領域を区分し、ある所定の領域に基本属性21を記述・格納し、別の領域に拡張属性31を記述・格納し、また、点群形式の各頂点の記録領域とは別の領域にシェーダ32を記述・格納してもよい。すなわち、
図4に示すように、幾何学的要素(
図4に示す例では、頂点)ごとに、基本属性21と拡張属性31とがそれぞれ異なる記録領域に記述されてもよい。こうすることで、基本レイヤ2と拡張レイヤ3とを別の伝送路で伝送する場合など、基本レイヤ2と拡張レイヤ3との分離を容易にすることができる。
【0043】
また、基本属性21および拡張属性31それぞれが複数の幾何学的要素(例えば、点群を構成する各頂点、ポリゴンメッシュを構成する各ポリゴンなど)によって構成されうる場合、
図5に示すように、拡張属性31には、基本属性21の幾何学的要素を識別するための識別子33が含まれてもよい。
図5の例では、識別子33が点群を構成する各点を識別する頂点番号である例を示している。こうすることで、基本属性21および拡張属性31が存する幾何学的要素、および、基本属性21は存在するが拡張属性31は存在しない属性の混在が可能となる。また、複数の幾何学的要素の全てについて必ずしも拡張属性31が存在するとは限らない場合に、必要な幾何学的要素だけについて拡張属性31を紐づけることができ、データ容量の削減を図ることができる。
【0044】
次に、本実施形態に係るレンダリング装置100について説明する。本実施形態に係るレンダリング装置100は、上述したデータ構造1が入力され、3次元コンピュータグラフィクスを生成するものである。
【0045】
図6は、本実施形態に係るレンダリング装置100の構成例を示す図である。
図6に示すように、本実施形態に係るレンダリング装置100は、分離部101と、レンダリング部102とを備える。
【0046】
分離部101は、上述した本実施形態に係るデータ構造1が入力される。分離部101は、入力されたデータ構造1に含まれるシェーダ32を分離し、基本属性21および拡張属性31と、シェーダ32とに分けてレンダリング部102に出力する。
【0047】
レンダリング部102は、既存のコンピュータグラフィクス用の装置である。レンダリング部102は、シェーダ32をプラグイン可能なプラグイン用インタフェース102aを備える。分離部101により分離されたシェーダ32は、プラグイン用インタフェース102aにプラグインされる。レンダリング部102は、既存のコンピュータグラフィクス用のプログラムを、1つ以上のプロセッサで読み込むことにより実現される。プロセッサは、例えば、汎用のプロセッサ、または特定の処理に特化した専用プロセッサであるが、これらに限られず任意のプロセッサとすることができる。
【0048】
レンダリング部102は、基本属性21および拡張属性31が入力される。レンダリング部102は、プラグイン用インタフェース102aを介して、プラグインされたシェーダ32に拡張属性31を入力する。シェーダ32は、レンダリング装置100(レンダリング部102)にプラグインされることで、レンダリング部102による、プラグイン用インタフェース102aを介して入力された拡張属性31に基づく演算、および、演算結果の参照を可能とする。ここで、「参照可能とする」とは、既存のデータフォーマットのユーザ定義領域あるいはコメント文として記述されている拡張属性31を、レンダリング部102が数値データとして解釈することができるように構文解析などの演算を行い、レンダリング部102より当該数値データをメモリおよび入出力インタフェースなどを介して参照できるようにすることである。
【0049】
上述したように、基本属性21は、レンダリング装置100(レンダリング部102)が参照可能なフォーマットで記述・格納されている。また、拡張属性31は、レンダリング部102にプラグインされたシェーダ32により、レンダリング部102で参照可能となる。
【0050】
レンダリング部102は、少なくともシェーダ32による拡張属性31に基づく演算結果を参照して、3次元コンピュータグラフィクスを生成して出力する。具体的には、レンダリング部102は、シェーダ32により参照可能となった1以上の拡張属性31と、基本属性21に含まれる幾何学的要素と、必要に応じて、その他の基本属性21、仮想視点情報および仮想照明情報などの情報を、プラグイン用インタフェース102aを介してシェーダ32に入力し、コンピュータグラフィクスを構成する画素の画素値を決定する。例えば、幾何形状情報が点群形式で記述される場合、レンダリング部102は、各頂点の明るさおよび色などを、各頂点の3次元座標、仮想的なカメラの位置、姿勢および画角、仮想的な照明の位置、配光、色および輝度、各頂点に紐づいた拡張属性31(拡散反射係数および鏡面反射係数)などに基づいて、シェーダ32にプログラムされたシェーディングモデルに従って演算する。シェーディングモデルとしては、例えば、Phongシェーディングモデルを用いることができる。
【0051】
レンダリング部102は、シェーダ32により演算された画素値と、必要に応じて、陰面処理、キャストシャドウ演算、光線追跡演算などの結果とを用いて、コンピュータグラフィクスを生成し、不図示の表示装置などに出力する。
【0052】
シェーダ32についてより詳細に説明すると、シェーダ32は、レンダリング装置100またはレンダリングプログラムに付加的に取り込まれるプラグインプログラムである。シェーダ32は、ダイナミックリンクライブラリのような動的なリンクが可能なプログラムとして実装されてもよいし、インタプリタ言語で記述されてもよいし、実行型ファイルとして実装されてもよい。
【0053】
シェーダ32には、本実施形態に係るデータ構造1を解釈し、数値データとして参照可能とするための構文解析プログラム(パーサ)と、与えられた幾何学的要素および属性情報(拡張属性31および基本属性21)とに基づいて、コンピュータグラフィクスの仮想視点において観測される光(すなわち、画素値)を演算するシェーディングプログラムとが内包される。
【0054】
構文解析プログラムは、データ構造1の拡張レイヤ3に記述された非標準的な(デファクトスタンダードを含め標準化されていない)形式による拡張属性31の記述(例えば、ユーザ定義データあるいはコメント文)部分を解釈し、レンダリング装置100あるいはレンダリングプログラムから数値データとして参照可能な状態とする。「参照可能」とは、入出力インタフェース(I/O)ポート、メモリおよびファイルなどを介して、レンダリング装置100あるいはレンダリングプログラムがアクセス可能となることを意味する。例えば、レンダリング装置100あるいはレンダリングプログラムは、拡張属性31を数値データとして参照することで、レンダリング装置100あるいはレンダリングプログラム内のメモリ空間上の所定アドレスに拡張属性31の数値データをコピーする。
【0055】
シェーディングプログラムは、幾何形状情報、拡張属性31および基本属性21を参照し、ある仮想照明の下である仮想視点から見た場合の画素値を演算するプログラムである。シェーディングプログラムは、Phongシェーディングのように公知のアルゴリズムによって実装されてよい。
【0056】
このように本実施形態に係るデータ構造1は、3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および幾何学的要素に対応付けられた属性を示す属性情報と、シェーダ32と、を含む。属性情報は、レンダリング装置100による参照が可能である基本属性21と、レンダリング装置100による参照が不可である拡張属性31と、を含む。レンダリング装置100は、シェーダ32をプラグインすることにより、前記拡張属性を参照して所定の演算を行い、少なくともシェーダ32による拡張属性31に基づく演算結果を参照して、3次元コンピュータグラフィクスを生成する。
【0057】
本実施形態に係るデータ構造1によれば、基本属性21により既存のレンダラなどへの下位互換性を補償することができる。また、シェーダ32を既存のレンダラなどにプラグインすることで、基本属性21および拡張属性31を既存のレンダラなどに解釈させることが可能となるので、レンダリング結果の高品位化を図ることができる。また、シェーダ32次第であらゆる属性値への対応が可能となる。
【0058】
また、本実施形態に係るレンダリング装置100は、分離部101と、レンダリング部102と、を備える。分離部101は、入力されたデータ構造1に含まれるシェーダ32を分離して、レンダリング部102にプラグインする。レンダリング部102は、プラグインされたシェーダ32による拡張属性31に基づく演算結果を少なくとも用いて、3次元コンピュータグラフィクスを生成する。
【0059】
データ構造1からシェーダ32を分離し、レンダリング部102にプラグインすることで、レンダリング部102は、拡張属性31に基づく演算結果を参照可能となり、参照した演算結果を用いてコンピュータグラフィクスを生成することができる。その結果、レンダリング結果の高品位化を図ることができる。また、レンダリング部102は基本属性21についてはそのまま参照可能であるため、下位互換性を補償することができる。
【0060】
また、本実施形態に係るシェーダ32は、レンダリング装置100にプラグインされることで、拡張属性31に基づく演算を行い、演算結果をレンダリング装置100が参照可能とする。
【0061】
既存のレンダリング装置あるいはレンダリングプログラムにシェーダ32をプラグインすることで、拡張属性31を既存のレンダリング装置あるいはレンダリングプログラムで参照可能とすることができる。その結果、拡張属性31を反映したレンダリングが可能となるので、レンダリング結果の高品位化を図ることができる。
【0062】
なお、本実施形態においては、データ構造およびレンダリング装置100の構成を参照して説明したが、本発明がこれに限られるものではない。例えば、本実施形態に係るデータ構造を有するデータを記憶する記憶装置が提供されてもよい。この場合、記憶装置は、レンダリング装置100により3次元コンピュータグラフィクスを生成するためのデータを記憶する。ここで、当該データは、3次元コンピュータグラフィクスの幾何形状を示す幾何形状情報を記述する幾何学的要素および幾何学的要素に対応付けられた属性を示す属性情報と、シェーダ32と、を含むデータ構造を有する。また、属性情報は、レンダリング装置100による参照が可能である基本属性21と、レンダリング装置100による参照が不可である拡張属性31と、を含む。そして、レンダリング装置100が、シェーダ32をプラグインすることにより、拡張属性31を参照して所定の演算を行い、少なくともシェーダ32による拡張属性31に基づく演算結果を参照して、3次元コンピュータグラフィクスを生成する。
【0063】
上述の実施形態は代表的な例として説明したが、本発明の趣旨および範囲内で、多くの変更および置換が可能であることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形および変更が可能である。例えば、実施形態の構成図に記載の複数の構成ブロックを1つに組み合わせたり、あるいは1つの構成ブロックを分割したりすることが可能である。
【符号の説明】
【0064】
1 データ構造
2 基本レイヤ
3 拡張レイヤ
21 基本属性
31 拡張属性
32 シェーダ
33 識別子
100 レンダリング装置
101 分離部
102 レンダリング部
102a プラグイン用インタフェース