(57)【要約】【課題】グラフィックカードのプログラマブルシェーダ機能を自在に使用できる３次元コンピュータ図形生成装置及び３次元コンピュータ図形生成プログラムを提供することを目的とする。【解決手段】３次元コンピュータ図形生成装置に対して、３次元コンピュータ図形データにシェーダコードを付加する機能を実装し、３次元コンピュータ図形生成プログラムに対して、付加されたシェーダコードを翻訳、実行する機能を実装することによって上記課題を解決した。【選択図】      図１
2008234199.tif 000002
【特許請求の範囲】
【請求項１】
原始３次元コンピュータ図形データを生成する手段と、
複数の原始３次元コンピュータ図形を照明、カメラなどとともに配置して仮想空間を構築し、質感情報、アニメーション情報などを加えて３次元コンピュータ図形データとして出力する手段と、
前記３次元コンピュータ図形データに対してグラフィックカード上で実行されるシェーダを付加する手段と、
前記３次元コンピュータ図形データ中の特定の質感情報に対して大域照明的効果を付加するもの等、特定のシェーダを結びつける識別番号を付加する手段を備えたことを特徴とする３次元コンピュータ図形生成装置。
【請求項２】
前記３次元コンピュータ図形データは、Ｗｅｂ３Ｄで用いられることを特徴とする請求項１に記載の３次元コンピュータ図形生成装置。
【請求項３】
３次元コンピュータ図形データ中の特定の質感情報に対して大域照明的効果を付加するもの等、特定のシェーダを結びつける識別番号が付加された当該質感を持つポリゴン群に対して、前記識別番号に対応するシェーダを用いてレンダリングする処理をグラフィックカードに実行させることを特徴とする３次元コンピュータ図形生成プログラム。
【請求項４】
前記３次元コンピュータ図形データは、Ｗｅｂ３Ｄで用いられることを特徴とする請求項３に記載の３次元コンピュータ図形生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元コンピュータ図形生成装置及び３次元コンピュータ図形生成プログラムに関する。
【背景技術】
【０００２】
３次元コンピュータ図形は、幾何情報、質感情報、光源情報などをグラフィックカードに与えることによってコンピュータ画面上にレンダリングされるが、標準的でない特殊なレンダリングを行う機能を次々とグラフィックカードに実装していった結果、装置が肥大化し、さらなる機能の拡張が難しいという状況に陥った。
【０００３】
そこで、グラフィックカード内部の処理をプログラムによって制御可能にし、特殊なレンダリングを行う機能を個別に実装する代わりに、プログラムによって実現するプログラマブルシェーダ機能を実装したグラフィックカードが主流となってきた。このプログラマブルシェーダ機能を用いると、間接光を考慮した大域照明的効果を付加する等、自在なレンダリングが可能となる。
【０００４】
このように大きな可能性を持ったプログラマブルシェーダ機能であるが、これをＷｅｂ３Ｄに応用する場合、いくつかの課題がある。まず、様々なレンダリングを行うシェーダを３次元コンピュータ図形生成プログラム内部に次々と実装していくと、グラフィックカードの場合と同じく３次元コンピュータ図形生成プログラムも肥大化し、拡張が難しいという状況になりかねないという問題点がある。またシェーダを３次元コンピュータ図形生成プログラム内部に実装する場合、Ｗｅｂ３Ｄ作成者にとっては単にレンダリングのオプションが増えただけとなり、プログラマブルシェーダ機能を直接使用して自在なレンダリングを行うことはできないという問題点もある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、これら従来技術の課題に鑑みてなされたもので、グラフィックカードのプログラマブルシェーダ機能を自在に使用できる３次元コンピュータ図形生成装置及び３次元コンピュータ図形生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の１つの特徴は、原始３次元コンピュータ図形データを生成する手段と、複数の原始３次元コンピュータ図形を照明、カメラなどとともに配置して仮想空間を構築し、質感情報、アニメーション情報などを加えて３次元コンピュータ図形データとして出力する手段と、前記３次元コンピュータ図形データに対してグラフィックカード上で実行されるシェーダを付加する手段と、前記３次元コンピュータ図形データ中の特定の質感情報に対して大域照明的効果を付加するもの等、特定のシェーダを結びつける識別番号を付加する手段を備えた３次元コンピュータ図形生成装置である。
【０００７】
上記の３次元コンピュータ図形生成装置において、前記３次元コンピュータ図形データは、Ｗｅｂ３Ｄで用いられるものとすることができる。
【０００８】
本発明の別の特徴は、３次元コンピュータ図形データ中の特定の質感情報に対して大域照明的効果を付加するもの等、特定のシェーダを結びつける識別番号が付加された当該質感を持つポリゴン群に対して、前記識別番号に対応するシェーダを用いてレンダリングする処理をグラフィックカードに実行させる３次元コンピュータ図形生成プログラムである。
【０００９】
上記の３次元コンピュータ図形生成プログラムにおいて、前記３次元コンピュータ図形データは、Ｗｅｂ３Ｄで用いられるものとすることができる。
【発明の効果】
【００１０】
本発明の３次元コンピュータ図形生成装置及び３次元コンピュータ図形生成プログラムによれば、シェーダを用いて特殊なレンダリングを行う３次元コンピュータ図形データを生成できる。しかも、本発明の３次元コンピュータ図形生成装置及び３次元コンピュータ図形生成プログラムによれば、Ｗｅｂ３Ｄ作成者がグラフィックカードのプログラマブルシェーダ機能を自在に使用できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図に基づいて詳説する。図１は本発明の３次元コンピュータ図形生成装置１００、この３次元コンピュータ図形生成装置１００の生成した３次元コンピュータ図形データ（３ＤＸ）１１０に対して後述するレンダリング処理を行う３次元コンピュータ図形表示ソフトウェア２００と、この３次元コンピュータ図形表示ソフトウェア２００と協働して３次元コンピュータ図形を操作し、ウォークスルーやアニメーション表示を行うブラウザ３００との関係を示している。
【００１２】
３次元コンピュータ図形生成装置１００はコンピュータであり、３次元コンピュータ図形データ１１０生成のための３次元コンピュータ図形生成プログラムがインストールされている。図２に示すように、この３次元コンピュータ図形生成装置１００は、機能構成要素として、原始３次元コンピュータ図形データを作成する原始３次元コンピュータ図形作成部１、複数の原始３次元コンピュータ図形を照明、カメラなどとともに配置して仮想空間を構築し、質感情報、アニメーション情報などの設定を行って３次元コンピュータ図形データとして出力するＷｅｂ３Ｄ作成部２から成る。またＨＭＩインタフェースとして表示装置３、入力装置４が接続されている。
【００１３】
原始３次元コンピュータ図形作成部１は、３次元コンピュータ図形作成ソフトウェアを実行して原始３次元コンピュータ図形データを作成する。具体的には、板、箱等の単純な３次元図形の加工、組み合わせ、２次元図形の回転、押出、掃引等の手段によって、例えば室内のＷｅｂ３Ｄを作成する場合、床、壁、天井、窓、家具類といった原始３次元コンピュータ図形データを作成する。
【００１４】
各原始３次元コンピュータ図形データのポリゴンには、部位や質感ごとに特定の属性番号が与えられ、各属性は人間が区別し易いようにするための名前と表示色を持っている。例えばテーブルの場合には、天板を構成するポリゴン群には０番、脚を構成するポリゴン群には１番の属性番号が与えられ、０番の属性は「天板」、茶色、１番の属性は「脚」、銀色という名前と表示色を持っている。
【００１５】
Ｗｅｂ３Ｄ作成部２は、Ｗｅｂ３Ｄ作成ソフトウェアを実行して３次元コンピュータ図形データを作成する。
【００１６】
具体的には、原始３次元コンピュータ図形作成部１で作成した複数の原始３次元コンピュータ図形を仮想空間構築部２１によって読み込んで照明、カメラなどとともに空間に配置し、原始３次元コンピュータ図形の持つ単純な属性情報に対して、質感情報設定部２２によって拡散光、光沢、環境光、透明度、画像の貼り付けといった質感の設定を行い、アニメーションが必要な場合は、アニメーション設定部２３によって設定を行う。その上で特定の質感情報に対して特殊なレンダリングを行う場合は、シェーダ設定部２４によってシェーダを設定する。そのためには、まず新しいシェーダを１つ追加し、名前と使用するシェーディング言語を設定し、頂点及びフラグメント用のシェーダコードを記述する。次にそのシェーダを使用したい質感を選択して適用すると、選択した質感のシェーダ識別番号にそのシェーダの番号が設定される。最終的にＷｅｂ３Ｄ出力部２５によって３次元コンピュータ図形データ１１０として出力する。
【００１７】
３次元コンピュータ図形表示ソフトウェア２００は、ブラウザ３００の機能拡張ソフトウェアであって、表示装置１１の画面上のブラウザ３００のウインドウ中に自身のウインドウを表示し、３次元コンピュータ図形生成装置１００の生成した３次元コンピュータ図形データ１１０を読み込んでレンダリングする。
【００１８】
入力装置１２による自身のウインドウに対する操作に応答してウォークスルーなどの処理を行うほか、ブラウザ３００に表示されるＨＴＭＬに記述されたＪａｖａ（登録商標）  Ｓｃｒｉｐｔなどのスクリプト言語によってブラウザ３００と連携することも可能である。
【００１９】
図５に示すように、この３次元コンピュータ図形表示ソフトウェア２００を機能構成に分けて示すと、ブラウザ３００との連携を行う外部インタフェース部２０１、３次元コンピュータ図形データ１１０の読み込み、解析を行うＷｅｂ３Ｄ入力部２０２、レンダリングを行うレンダリング処理部２０３、３次元コンピュータ図形データ１１０に含まれるシェーダプログラムの翻訳やレンダリング処理部２０３との連携を行うシェーダ処理部２０４を備えている。
【００２０】
ブラウザ３００は、例えばマイクロソフト社のインターネットエスクプローラ（商品名）、Ｍｏｚｉｌｌａ  ＦｏｕｎｄａｔｉｏｎのＦｉｒｅｆｏｘ（商品名）、Ｏｐｅｒａ  ＳｏｆｔｗａｒｅＡＳＡ社のＯｐｅｒａ（商品名）等のソフトウェアである。
【００２１】
３次元コンピュータ図形表示ソフトウェア２００の外部インタフェース部２０１は、このブラウザ３００と連携するため、ブラウザ３００から状態を設定する設定変数群１５、ブラウザ３００から状態を操作する操作関数群１６、ブラウザ３００へ状態を通知する通知関数群１７を持つ。
【００２２】
設定変数群１５には３次元コンピュータ図形データ名称設定、重力加速度設定などが含まれ、操作関数群１６にはアニメーション開始操作、カメラ移動操作などが含まれ、通知関数群１７にはアニメーション終了通知、カメラ現在地通知などが含まれる。
【００２３】
Ｗｅｂ３Ｄ入力部２０２は、外部インタフェース部２０１を通じてブラウザから渡された名称の３次元コンピュータ図形データ１１０をダウンロードして読み込む。
【００２４】
レンダリング処理部２０３は、読み込んだデータをグラフィックカード１３へ渡し、ＯｐｅｎＧＬ描画ＡＰＩによって表示装置１１に高速に描画表示する。
【００２５】
シェーダ処理部２０４は、グラフィックカード１３用のＣｇＦＸなどのシェーディング言語で記述されたシェーダコードを実行可能な形式へ翻訳し、レンダリング処理部２０３と連携して特殊な描画を行う。
【００２６】
このシェーダ処理部２０４の具体的な処理動作を、図６、図７のフローチャートを参照し、３次元コンピュータ図形データ１１０読み込み時、レンダリング時に分けて説明する。 
＜３次元コンピュータ図形データの読み込み時＞
３次元コンピュータ図形データ１１０は標準レンダリング処理に必要なデータに加え、シェーダ及び特定の質感情報に対してどのシェーダを結びつけるかを示す識別番号情報が付加されている。
【００２７】
ステップＳ１：３Ｄコンピュータ図形表示ソフトウェア２００のＷｅｂ３Ｄ入力部２０１は、３次元コンピュータ図形データ１１０を読み込む際、まず図８に示すようなポリゴン情報記述部３１を検索し、これを内部データとして保持する。ポリゴン情報記述部中ＰＯＬＹｎ＿ＭＡＴの指標が、このポリゴンの持つ質感の識別番号である。
【００２８】
ステップＳ２：次に図９に示すような質感情報記述部３２を検索し、これを内部データとして保持する。質感情報記述部中ＭＡＴＬｎ＿ＳＨＤＲの指標がこの質感を持つポリゴン群に結び付けられるシェーダの識別番号である。
【００２９】
ステップＳ３：続いて図１０に示すようなシェーダ情報記述部３３を検索し、これをシェーダ処理部２０４に渡す。
【００３０】
ステップＳ４：シェーダ処理部２０４は、シェーダ情報記述部中ＳＨＤＲｎ＿ＴＹＰＥで指定されたシェーディング言語によって、ＳＨＤＲｎ＿ＶＥＲＴ及びＳＨＤＲｎ＿ＦＲＡＧに記述された頂点及びフラグメント用のシェーダコードをグラフィックカード１３で実行可能な形式に翻訳し、内部データとして保持する。
【００３１】
＜レンダリング時＞
ステップＳ１１：３Ｄコンピュータ図形表示ソフトウェア２００のレンダリング処理部２０３は、質感情報ごとにレンダリングを行うので、まず内部データから特定の質感情報を取り出す。
【００３２】
ステップＳ１２：その質感情報がシェーダに対する有効な識別番号情報を持っている場合、内部データからその識別番号を持つシェーダを検索し、シェーダ処理部２０４に対してそのシェーダを実行するよう指示する。
【００３３】
ステップＳ１３：指示を受けたシェーダ処理部２０４は、グラフィックカード１３に対して内部変数の設定など必要な操作を行った後、シェーダを実行する。
【００３４】
ステップＳ１４：続いてレンダリング処理部２０３は、内部データからその質感情報を持つポリゴン群を検索し、順次レンダリング処理を行う。
【００３５】
ステップＳ１５，Ｓ１６：シェーダが実行されている場合はシェーダによる特殊なレンダリング処理が、そうでない場合は標準レンダリング処理が行われる。
【００３６】
ステップＳ１７：以上の処理を全ての質感情報に対して繰り返す。
【００３７】
図１１（ａ），（ｂ）にシェーダの一例として動的放射照度環境マップシェーダを用いてレンダリングしたＷｅｂ３Ｄと標準のシェーダによりレンダリングしたＷｅｂ３Ｄを対比して示す。室内の中央の球体に、ＣｇＦＸシェーディング言語による動的放射照度環境マップシェーダが設定されている。図１１（ａ）の本実施の形態の表示では、中央の卵形のオブジェの向かって左側面の中央部が壁の絵画の黄色部分を反映して黄色みを帯び、左側面の上部が絵画の赤色部分を反映して赤みを帯びて着色されている。これに対して、図１１（ｂ）に示した標準レンダリング処理の結果は、中央のオブジェの表面には室内照明と外光を反映させた陰影が付けられているが、これは地色の白の明度を変化させているだけであり、周囲の環境は影響していない。
【００３８】
これにより、本実施の形態の３次元コンピュータ図形生成装置及び３次元コンピュータ図形生成プログラムによれば、インターネットブラウザ上に表示されるＷｅｂ３Ｄデータに対して大域照明的効果を与えることも可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の１つの実施の形態の３次元コンピュータ図形作成装置、３次元コンピュータ図形表示ソフトウェア及びブラウザを示すブロック図。
【図２】上記実施の形態の３次元コンピュータ図形作成装置の機能ブロック図。
【図３】上記実施の形態の３次元コンピュータ図形作成装置におけるＷｅｂ３Ｄ作成部の機能ブロック図。
【図４】上記実施の形態の３次元コンピュータ図形作成装置におけるシェーダ設定部の設定画面図。
【図５】上記実施の形態の３次元コンピュータ図形表示ソフトウェア及びブラウザの機能ブロック図。
【図６】上記実施の形態においてシェーダ処理部による３次元コンピュータ図形データ読み込み時の処理動作のフローチャート。
【図７】上記実施の形態においてレンダリング処理部によるレンダリング処理動作のフローチャート。
【図８】上記実施の形態における３次元コンピュータ図形データのポリゴン情報記述部の表。
【図９】上記実施の形態における３次元コンピュータ図形データの質感情報記述部の表。
【図１０】上記実施の形態における３次元コンピュータ図形データのシェーダ情報記述部の表。
【図１１】上記実施の形態によるレンダリング結果としてのＷｅｂ３Ｄ表示例の説明図。
【符号の説明】
【００４０】
１  原始３次元コンピュータ図形作成部
２  Ｗｅｂ３Ｄ作成部
３  表示装置
４  入力装置
１１  表示装置
１２  入力装置
１３  グラフィックカード
２１  仮想空間構築部
２２  質感情報設定部
２３  アニメーション設定部
２４  シェーダ設定部
２５  Ｗｅｂ３Ｄ出力部
３１  ポリゴン情報記述部３１
３２  質感情報記述部
３３  シェーダ情報記述部
１００  ３次元コンピュータ図形生成装置
１１０  ポリゴンデータ
２００  ３次元コンピュータ図形表示ソフトウェア
２０１  外部インタフェース部
２０２  Ｗｅｂ３Ｄ入力部
２０３  レンダリング処理部
２０４  シェーダ処理部
３００  ブラウザ
【図１】
2008234199.tif 000003
【図２】
2008234199.tif 000004
【図３】
2008234199.tif 000005
【図４】
2008234199.tif 000006
【図５】
2008234199.tif 000007
【図６】
2008234199.tif 000008
【図７】
2008234199.tif 000009
【図８】
2008234199.tif 000010
【図９】
2008234199.tif 000011
【図１０】
2008234199.tif 000012
【図１１】
2008234199.tif 000013