(57)【要約】【課題】３次元画像の基礎となるグラフィックスデータを制作する過程に何ら影響を与えることなく、描画速度を高める。【解決手段】３次元画像生成装置１において、ＣＰＵ２は、予め規定されている連結条件を満たす複数のオブジェクトのメッシュを連結し、そのメッシュを連結した複数のオブジェクトに対して頂点属性変換を事前に行う。そして、ＣＰＵ２は、頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドをＧＰＵ３に転送する。ＧＰＵ３は、ＣＰＵ２から取得した描画コマンドにより指示された１つのオブジェクトと見做された複数のオブジェクトを纏めて描画する。【選択図】図１
2014130563.tif 000002
【特許請求の範囲】
【請求項１】
３次元画像を構成するオブジェクトの描画を指示する描画コマンドを転送する制御手段（２）と、前記制御手段から前記描画コマンドを取得すると、その描画コマンドにより指示されたオブジェクトに対して頂点属性変換を行って当該オブジェクトを描画する描画手段（３）と、を備えた３次元画像生成装置において、
予め規定されている連結条件を満たす複数のオブジェクトのメッシュを連結する連結手段（２）を備え、
前記制御手段は、前記連結手段によりメッシュが連結された複数のオブジェクトに対して頂点属性変換を事前に行い、その頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドを転送し、
前記描画手段は、前記制御手段から前記描画コマンドを取得すると、その描画コマンドにより指示された１つのオブジェクトと見做された複数のオブジェクトを纏めて描画することを特徴とする３次元画像生成装置。
【請求項２】
請求項１に記載した３次元画像生成装置において、
前記連結手段（２）は、同じマテリアルを参照していることを前記連結条件とし、その連結条件を満たす複数のオブジェクトのメッシュを連結することを特徴とする３次元画像生成装置。
【請求項３】
３次元画像を構成するオブジェクトの描画を指示する描画コマンドを制御手段（２）が描画手段（３）に転送することで、前記描画手段が前記描画コマンドにより指示されたオブジェクトに対して頂点属性変換を行って当該オブジェクトを描画し、３次元画像を生成する方法において、
予め規定されている連結条件を満たす複数のオブジェクトのメッシュを連結する連結ステップと、
メッシュを連結した複数のオブジェクトに対して頂点属性変換を事前に行う頂点属性変換ステップと、
その頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドを転送する描画コマンド転送ステップと、
前記描画コマンドにより指示された１つのオブジェクトと見做された複数のオブジェクトを纏めて描画する描画ステップと、を行うことを特徴とする３次元画像生成方法。
【請求項４】
請求項３に記載した３次元画像生成方法において、
前記連結ステップは、同じマテリアルを参照していることを前記連結条件とし、その連結条件を満たす複数のオブジェクトのメッシュを連結することを特徴とする３次元画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御手段が描画コマンドを描画手段に転送することで、その描画コマンドにより指示されたオブジェクトに対して頂点属性変換を行って当該オブジェクトを描画する３次元画像生成装置、及び３次元画像生成方法に関する。
【背景技術】
【０００２】
従来より、仮想３次元空間において管理されるオブジェクト（仮想物体）を計算によりコンピュータのスクリーン平面に投影して描画する３次元コンピュータグラフィックス（以下、３ＤＣＧと称する）の技術が供されている。３ＤＣＧでは多くの演算資源を必要とする。そのため、描画に関する一連の処理をＣＰＵ（Central Processing Unit）のみで行う構成ではなく、専用のハードウェア資源であるＧＰＵ（Graphics Processing Unit）を設けることで、描画に関する一連の処理をＣＰＵとＧＰＵとが連携して行う構成が一般的である（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３３４７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の３ＤＣＧでは、オブジェクトを描画する際には、ＣＰＵが１つのオブジェクト毎に描画コマンドをＧＰＵに転送する。そして、ＧＰＵが描画コマンドにより指示されたオブジェクトに対して頂点属性変換を行い、その頂点属性変換を行ったオブジェクトを描画する。ところが、このように１つのオブジェクト毎に描画コマンドを転送する手法では、描画対象となるオブジェクト数（オブジェクトの数）が増加すると、ＧＰＵが描画コマンドの関数呼び出しのオーバーヘッドに費やす時間が線形的に増加し、描画速度が低下する。
【０００５】
このような描画速度が低下するという問題に対し、３次元画像の基礎となるグラフィックスデータを制作する過程において、オブジェクトを可能な限り連結しておく技術も存在する。しかしながら、動き（挙動）が同じオブジェクト同士では連結可能であるが、一方、動きが異なるオブジェクト同士では連結不可能であるという事情から、描画速度の低下を改善するには限度がある。又、グラフィックスデータを制作する過程が複雑化するという新たな問題も発生する。
【０００６】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、３次元画像の基礎となるグラフィックスデータを制作する過程に何ら影響を与えることなく、描画速度を高めることができる３次元画像生成装置及び３次元画像生成方法を提供することにある。
【課題を解決するための手段】
【０００７】
請求項１に記載した発明によれば、制御手段は、３次元画像を構成するオブジェクトの描画を指示する描画コマンドを転送する。描画手段は、制御手段から描画コマンドを取得すると、その描画コマンドにより指示されたオブジェクトに対して頂点属性変換を行って当該オブジェクトを描画する。ここで、連結手段は、予め規定されている連結条件を満たす複数のオブジェクトのメッシュを連結する。制御手段は、連結手段によりメッシュが連結された複数のオブジェクトに対して頂点属性変換を事前に行い、その頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドを転送する。描画手段は、制御手段から描画コマンドを取得すると、その描画コマンドにより指示された１つのオブジェクトと見做された複数のオブジェクトを纏めて描画する。
【０００８】
即ち、制御手段において、１つのオブジェクト毎に描画コマンドを転送する従来の手法とは異なり、メッシュが連結された複数のオブジェクトに対して頂点属性変換を事前に行い、頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドを転送するようにした。これにより、描画手段が描画コマンドの関数呼び出しのオーバーヘッドに費やす時間を抑えることができ、描画速度を高めることができる。この場合、３次元画像の基礎となるグラフィックスデータを制作する過程でオブジェクトを可能な限り連結する必要もないので、グラフィックスデータを制作する過程に何ら影響を与えることもない。
【０００９】
要するに、例えば比較的複雑な形状である頂点数（頂点の数）が相対的に多いオブジェクトを描画する際には、描画コマンドの関数呼び出しのオーバーヘッドに費やす時間が全体の処理時間（描画に関する一連の処理に費やす時間）に対して占める割合が相対的に小さいが、一方、比較的単純な形状である頂点数が相対的に少ないオブジェクトを描画する際には、描画コマンドの関数呼び出しのオーバーヘッドに費やす時間が全体の処理時間に対して占める割合が相対的に大きいので、頂点数が相対的に少ないオブジェクトを多量に描画する場合に効果的である。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態を示す機能ブロック図
【図２】シーングラフの構造を示す図
【図３】ＣＰＵが実行するトラバース処理を示すフローチャート
【図４】ＣＰＵが実行する描画コマンド転送処理を示すフローチャート
【図５】ＧＰＵが実行する描画処理を示すフローチャート
【図６】グラフィックスパイプラインに沿って処理の流れを示す図
【図７】メッシュを連結する態様を示す図
【図８】描画時間を示す図
【図９】シミュレーションの結果及びＣＰＵの負荷の測定結果を示す図
【図１０】ＧＰＵの負荷の測定結果を示す図
【図１１】実際の処理時間を示す図
【図１２】連結グループに分類した態様を示す図
【図１３】処理時間の測定結果を示す図
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態について、図面を参照して説明する。３次元画像生成装置１は、ＣＰＵ（Central Processing Unit）２（制御手段、連結手段）と、ＧＰＵ（Graphics Processing Unit）３（描画手段）と、ＲＡＭ（Random Access Memory）４と、ＶＲＡＭ（Video RAM）５と、ＲＯＭ（Read Only Memory）６とを有する。
【００１２】
ＲＯＭ６は、グラフィックスデータ（３次元モデルデータ）を記憶している。グラフィックスデータは、３次元画像の基礎となるデータであり、３次元画像を構成する複数の要素データから構成される。ＣＰＵ２は、ＲＯＭ６からグラフィックスデータを読出し（取込み）、その読出したグラフィックスデータに基づいてシーングラフをＲＡＭ４上に構築する。シーングラフは、オブジェクトを階層的にグループ化したツリー構造である。シーングラフの各ノードには、オブジェクトの形状、表面属性、モデル変換（位置、姿勢、拡大、縮小）等に関する情報が含まれている。
【００１３】
尚、ＣＰＵ２は、ハードディスク装置やＣＤ−ＲＯＭ等の外部記憶装置に記憶されているグラフィックスデータを用いる場合であれば、外部記憶装置から読出したグラフィックスデータに基づいてシーングラフをＲＡＭ４上に構築しても良い。又、ＣＰＵ２は、ネットワーク上のサーバに記憶されているグラフィックスデータを用いる場合であれば、サーバから通信回線を介してダウンロードしたグラフィックスデータに基づいてシーングラフをＲＡＭ４上に構築しても良い。又、グラフィックスデータの一部がＲＡＭ４に記憶されていても良く、ＣＰＵ２は、ＲＡＭ４からグラフィックスデータを読出し、その読出したグラフィックスデータに基づいてシーングラフをＲＡＭ４上に構築しても良い。
【００１４】
ＣＰＵ２は、シーングラフをＲＡＭ４上に構築すると、その構築したシーングラフに対して後述するトラバース処理を行う。ＣＰＵ２は、トラバース処理においては、シーングラフに属する全てのオブジェクトを対象として後述する連結グループに含まれる（連結条件を満たす）か否かを判定する。ＣＰＵ２は、連結グループに含まれないと判定したオブジェクトに対しては、そのオブジェクトの描画を指示する描画コマンドをＧＰＵ３に転送する。一方、ＣＰＵ２は、連結グループに含まれると判定したオブジェクトに対しては、連結グループに含まれる複数のオブジェクトのメッシュを連結し、そのメッシュを連結した複数のオブジェクトに対して頂点属性変換を事前に（描画コマンドを転送する前に）行う。そして、ＣＰＵ２は、その頂点属性変換を行った複数のオブジェクトを１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドをＧＰＵ３に転送する。
【００１５】
ＧＰＵ３は、ＣＰＵ２から描画コマンドを取得すると、後述する描画処理を行う。ＧＰＵ３は、描画処理においては、描画コマンドにより指示されたオブジェクトが、既に頂点属性変換が行われたオブジェクトであるか否かを判定する。ＧＰＵ３は、描画コマンドにより指示されたオブジェクトに対して頂点属性変換を行い、その頂点属性変換を行ったオブジェクトを描画する。
【００１６】
ＧＰＵ３は、オブジェクトを描画する際に、塗りつぶし及び画像表示を行う。ＧＰＵ３は、塗りつぶしとして、２次元スクリーンの座標に投影されたオブジェクトの頂点の内部に存在する画素に対して画素値や明るさを計算すると共に、オブジェクト毎に奥行きも計算し、それらの計算結果を画像データとしてＶＲＡＭ５に記憶する。又、ＧＰＵ３は、画像表示として、ＶＲＡＭ５に記憶されている画像データを読出し、その読出した画像データをビデオ信号としてディスプレイ装置７に出力する。ディスプレイ装置７は、例えば３次元画像生成装置１が車両に適用される構成であれば、グラフィックスメータ等を表示する。グラフィックスメータは、インジケータ、指針、ダイアル、パネル、レーン、ターン・バイ・ターン（ＴＢＴ）等の様々な情報を表示するメータである。グラフィックスメータに表示される情報は、描画対象となるオブジェクトが多量であるが、各オブジェクトは例えば長方形等の比較的単純な形状であり、１つずつのオブジェクトの頂点数が少ないという特徴がある。
【００１７】
図２はＲＡＭ４上に構築されるシーングラフの構造の一例を示している。図２は上記したグラフィックスメータのモデルを表現しており、メータがスピードメータ及びタコメータを有し、スピードメータが指針及び数字を有し、タコメータが文字、数字及び指針を有することを例示している。従来の手法では、ＣＰＵ２は、メータ（１）、スピードメータ（２）、指針（３）、数字（４）、タコメータ（５）、文字（６）、数字（７）、指針（８）のオブジェクト毎に描画コマンドをＧＰＵ３に転送する。ＧＰＵ３は、メータ（１）、スピードメータ（２）、指針（３）、数字（４）、タコメータ（５）、文字（６）、数字（７）、指針（８）の描画を指示する描画コマンドを順次取得すると、それぞれに対して頂点属性変換を順次行い、その頂点属性変換を行ったオブジェクトを順次描画する。
【００１８】
これに対して、本発明の手法では、予め連結条件を規定しておき、その規定した連結条件をＣＰＵ２に記憶させておく。ＣＰＵ２において、連結条件を満たす複数のオブジェクトのメッシュを連結し、そのメッシュを連結した複数のオブジェクトに対して頂点属性変換を事前に（描画コマンドを転送する前に）行う。ＣＰＵ２は、連結条件を満たすオブジェクトとして例えば数字（４）、文字（６）、数字（７）を１つの部品として見做し、それらのオブジェクトのメッシュを連結した場合であれば、そのメッシュを連結した複数のオブジェクトに対してそれぞれ頂点属性変換を行い、その後に、その頂点属性変換を行った複数のオブジェクトを１つのオブジェクトと見做して描画コマンドを転送する。ＧＰＵ３は、メータ（１）、スピードメータ（２）、指針（３）、タコメータ（５）、指針（８）の描画を指示する描画コマンドを順次取得すると、それぞれに対して頂点属性変換を順次行い、その頂点属性変換を行ったオブジェクトを順次描画する。一方、ＧＰＵ３は、数字及び文字（４，６，７）が１つの部品として見做されたオブジェクトの描画を指示する描画コマンドを取得すると、既にＣＰＵ２が頂点属性変換を行っているので、頂点属性変換を行うことなく描画する。本発明の手法では、１つのオブジェクト毎に描画コマンドを転送する従来の手法とは異なり、メッシュが連結された複数のオブジェクトに対して頂点属性変換を事前に行い、頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドを転送することで、１つのオブジェクト毎に描画コマンドを転送する従来の手法とは異なり、従来の手法よりも描画手段が描画コマンドの関数呼び出しのオーバーヘッドに費やす時間を抑えることができ、描画速度を高めることができる（後述する図８参照）。
【００１９】
尚、オブジェクトのメッシュを連結する連結条件は以下の通りである。
（ア）同じマテリアル（質感）を参照しているオブジェクト同士のみを同じ連結グループとする。ここでいう質感とは、色、透明度、反射率、屈折率、凹凸等のオブジェクト表面の材質の設定を示し、具体的には、金属調の（金属のような）材質、ガラス調の（ガラスのような）材質、木目調の（木目のような）材質等である。
（イ）１つのオブジェクトは一度に１つの連結グループにのみ属する。
【００２０】
次に、上記した構成の作用について、図３から図１３を参照して説明する。
本発明の手法では、ＣＰＵ２はトラバース処理及び描画コマンド転送処理を行い、ＧＰＵ３は描画処理を行う。トラバース処理は連結ステップ及び頂点属性変換ステップを含む。描画コマンド転送処理は描画コマンド転送ステップを含む。描画処理は描画ステップを含む。
【００２１】
ＣＰＵ２は、トラバース処理を開始すると、トラバース先のオブジェクトを決定する（ステップＳ１）。次いで、ＣＰＵ２は、その決定したトラバース先のオブジェクトが予め規定されている連結条件（同じマテリアルを参照しているか否かの条件）を満たす連結グループ内に含まれるオブジェクトであるか否かを判定する（ステップＳ２）。ここで、ＣＰＵ２は、オブジェクトのメッシュが予め規定されている連結条件に合致し、連結グループ内に含まれるオブジェクトであると判定すると（ステップＳ２：ＹＥＳ）、その連結グループ内で最初に出現したオブジェクトであるか否かを判定する（ステップＳ３）。
【００２２】
ＣＰＵ２は、その連結グループ内で最初に出現したオブジェクトであると判定すると（ステップＳ３：ＹＥＳ）、その連結グループの代表メッシュを描画対象メッシュ列に格納し（ステップＳ４）、頂点属性変換を行う（ステップＳ５〜Ｓ７）。一方、ＣＰＵ２は、その連結グループ内で最初に出現したオブジェクトでない（２番目以降に出現したオブジェクトである）と判定すると（ステップＳ３：ＮＯ）、この場合も、頂点属性変換を行う（ステップＳ５〜Ｓ７）。ＣＰＵ２は、頂点属性変換として、頂点変換を行い、頂点カラー／アルファ変換を行い、ＵＶ座標変換を行う。頂点変換とは、頂点の座標データを、移動、拡大、縮小、回転等して変換する処理である。頂点カラー／アルファ変換とは、オブジェクトに対して色、透明度を反映して変換する処理である。ＵＶ座標変換とは、３次元の平面に画像を貼り込むために画像位置と平面の頂点を対応付けて変換する処理である。
【００２３】
図６を参照して説明すると、図６では、メッシュ１が連結グループ内で最初に出現したオブジェクトのメッシュ、即ち、連結代表のメッシュである。又、メッシュ２及び３が連結グループ内で２番目以降に出現したオブジェクトのメッシュ、即ち、連結メンバー（連結代表以外）のメッシュである。この場合、連結代表であるメッシュ１のインデックス数（頂点数）は、連結後の数（ダミー頂点も考慮された数）となり、連結メンバーであるメッシュ２及び３のインデックス数は、自身のインデックス数となる。又、連結メンバーであるメッシュ２及び３は、連結代表へのポインタを参照することになり、その頂点属性配列及びインデックス配列が何れも「ＮＵＬＬ」となる。即ち、ＣＰＵ２は、図６では、メッシュ１〜３を連結することで、メッシュ１〜３を連結した３つのオブジェクトに対して頂点属性変換を纏めて行う。
【００２４】
次いで、ＣＰＵ２は、このようにして連結グループ内に含まれる複数のオブジェクトに対して頂点属性変換を行った後に、可視性が「０」でないか否かのフラグを設定する（ステップＳ８）。そして、ＣＰＵ２は、シーングラフ内の最後のオブジェクトであるか否かを判定し（ステップＳ９）、シーングラフ内の最後のオブジェクトでないと判定すると（ステップＳ９：ＮＯ）、ステップＳ１に戻り、ステップＳ１以降を繰返して行う。一方、ＣＰＵ２は、シーングラフ内の最後のオブジェクトであると判定すると（ステップＳ９：ＹＥＳ）、トラバース処理を終了する。又、ＣＰＵ２は、オブジェクトのメッシュが予め規定されている連結条件に合致することなく、連結グループ内に含まれないオブジェクトであると判定すると（ステップＳ２：ＮＯ）、シーングラフ内の最後のオブジェクトであるか否かを判定する（ステップＳ９）。
【００２５】
ＣＰＵ２は、頂点属性変換を事前に行った（メッシュを連結した）オブジェクトを対象とし、描画コマンド転送処理を開始すると、個々の元メッシュ情報を参照し（ステップＳ１１）、個々の元メッシュの可視性が「０」でないか否かを判定する（ステップＳ１２）。ＣＰＵ２は、個々の元メッシュの可視性が「０」でないと判定すると（ステップＳ１２：ＹＥＳ）、描画用の一時連結頂点列に頂点をコピーし（ステップＳ１３）、連結グループ内の最後の個々の元メッシュであるか否かを判定する（ステップＳ１４）。一方、ＣＰＵ２は、個々の元メッシュの可視性が「０」であると判定すると（ステップＳ１２：ＮＯ）、描画用の一時連結頂点列に頂点をコピーすることなく、連結グループ内の最後の個々の元メッシュであるか否かを判定する（ステップＳ１４）。
【００２６】
ＣＰＵ２は、連結グループ内の最後の個々の元メッシュであると判定すると（ステップＳ１４：ＹＥＳ）、頂点属性変換を事前に行ったオブジェクトの描画を指示する描画コマンドをＧＰＵ３に転送する（ステップＳ１５）。又、ＣＰＵ２は、連結グループ内の最後の個々の元メッシュでないと判定すると（ステップＳ１４：ＮＯ）、ステップＳ１１に戻り、ステップＳ１１以降を繰返して行う。尚、ＣＰＵ２は、頂点属性変換を行っていない（メッシュを連結しなかった）オブジェクトを対象としても、頂点属性変換を行っていないオブジェクトの描画を指示する描画コマンドをＧＰＵ３に転送する。
【００２７】
ＧＰＵ３は、描画処理を開始すると、頂点属性変換として、頂点変換を行い、頂点カラー／アルファ変換を行い、ＵＶ座標変換を行う（ステップＴ１〜Ｔ３）。そして、ＧＰＵ３は、その頂点属性変換を行ったオブジェクトを描画する（ステップＴ４）。尚、ＧＰＵ３は、ＣＰＵ２が頂点属性変換を未だ行っていないオブジェクトに対して頂点属性変換を行い、ＣＰＵ２が頂点属性変換を事前に行ったオブジェクトに対しては結果的に頂点属性変換を行わない。
【００２８】
上記した一連の処理を、図７を参照して説明する。３次元コンピュータグラフィックスのパイプラインは、描画に必要なデータを用意するＧ（Generation）ステージ、描画の命令を発行するＴ（Traversal）ステージ、頂点属性変換を行うＸ（Transformation、Xformation）ステージ、オブジェクトの頂点の内部に存在する画素に対して画素値や明るさを計算するＳ（Scan conversion）ステージ、オブジェクトを描画するＤ（Display）ステージを含む。Ｇステージ及びＴステージはＣＰＵ２が処理を行うステージであり、Ｘステージ、Ｓステージ及びＤステージはＧＰＵ３が処理を行うステージである。
【００２９】
ＣＰＵ２において、例えば指針１１に対して「９０°回転５０％不透明」の描画の命令を発行し、リング１２に対して「１００％不透明」の描画の命令を発行し、車両に搭載されているカメラが撮影した車外の映像１３に対して「１００％不透明」の描画の命令を発行した場合を説明する。映像１３は、例えばナイトビュー（近赤外線を照射し、ヘッドライトでは確認し難い歩行者や野生動物等を捕捉して表示する技術）や、バックビュー（駐車支援のための車両後方を撮影して表示する技術）の映像である。従来の手法では、ＣＰＵ２は、それぞれのオブジェクトの描画の命令を発行すると、指針１１の描画を指示する描画コマンド、リング１２の描画を指示する描画コマンド、映像１３の描画を指示する描画コマンドをＧＰＵ３に順次転送する。ＧＰＵ３において、指針１１の描画を指示する描画コマンド、リング１２の描画を指示する描画コマンド、映像１３の描画を指示する描画コマンドを順次取得すると、それぞれのオブジェクトに対して頂点属性変換を行い、その頂点属性変換を行ったオブジェクトを描画する。
【００３０】
これに対して、本発明の手法では、ＣＰＵ２は、指針１１とリング１２が連結条件を満たすと判定すると、指針１１のメッシュとリング１２のメッシュを連結し、指針１１に対する頂点属性変換とリング１２に対する頂点属性変換を事前に行う。換言すると、ＣＰＵ２は、指針１１に対して頂点属性変換を行い、リング１２に対して頂点属性変換を行うことで、指針１１とリング１２を１つのオブジェクトと見做して新たにオブジェクト「Ａ」を作成する。そして、その新たに作成したオブジェクト「Ａ」の描画を指示する描画コマンドをＧＰＵ３に転送する。
【００３１】
即ち、従来の手法では、ＧＰＵ３において、指針１１に対する頂点属性変換とリング１２に対する頂点属性変換とを行っていたが、本発明の手法では、ＣＰＵ２において、指針１１に対する頂点属性変換とリング１２に対する頂点属性変換とを行い、指針１１とリング１２を１つのオブジェクトと見做して新たにオブジェクト「Ａ」を作成し、その新たに作成したオブジェクト「Ａ」の描画を指示する描画コマンドを転送する。
【００３２】
図８は、本発明の手法により実現される性能改善の理論的モデルを示している。従来の手法では、ＧＰＵ３において、１つのオブジェクトを描画するためにＣＰＵ２から描画コマンドを呼び出す毎に費やす時間（オーバーヘッド（Overhead））がかかり、描画コマンドを取得する毎に頂点属性変換を行い、オブジェクトの描画（メイン処理（Main process））を行う。これに対して、本発明の手法では、上記したように、ＣＰＵ２において、連結条件を満たす複数のオブジェクトのメッシュの連結を特殊処理（Special process for mesh Concatenation）として行い、そのメッシュを連結した複数のオブジェクトに対して頂点属性変換を行う。図８では、ＣＰＵ２が３つのオブジェクトのメッシュを連結した場合を例示しているが、上記した連結条件を満たせば、メッシュを連結するオブジェクト数は幾つであっても良い。
【００３３】
本発明の手法で行う頂点属性変換に要する処理時間は計算対象の頂点数に依存する。下記の演算式（１）及び（２）は理論モデルから導かれる頂点属性変換に要する処理時間を表す。「ｏｈ」は１オブジェクトあたりのオーバーへッド時間、「ｏｂｊ」はオブジェクト数、「ｖ」は１オブジェクトあたりの頂点数である。簡単のために「ｖ」の値はシーングラフ内の全てのオブジェクトで一定とする。オーバーヘッド時間は一定値であり、メイン処理及び特殊処理は「ｖ」の１次関数であると想定する。「ｍ」をメイン処理の傾きとし、「ｓ」を特殊処理の傾きとする。換言すると、「ｍ」はメイン処理の１頂点あたりの処理時間であり、「ｓ」は特殊処理の１頂点あたりの処理時間である。本発明の手法を適用することで、２つのダミー頂点が連結グループ内の全てのオブジェクトの間に追加される。又、頂点数が偶数のオブジェクトに対して１つのダミー頂点が追加される。簡単のため、全てのオブジェクトの頂点数が偶数であると仮定すると、１オブジェクトあたり（ｖ＋３）個を処理する必要がある。
【００３４】
従来の手法による処理時間を「ｔｂｅｆｏｒｅ」とし、本発明の手法による処理時間を「ｔａｆｔｅｒ」とすると、それらの処理時間を、
ｔｂｅｆｏｒｅ＝（ｏｈ＋ｍ×ｖ）×ｏｂｊ                            …（１）
ｔａｆｔｅｒ＝ｏｈ＋ｓ（ｖ＋３）×ｏｂｊ＋ｍ（ｖ＋３）×ｏｂｊ      …（２）
と表すことができる。
【００３５】
モデル内の全頂点数（ｖ×ｏｂｊで表現される）は、本発明の手法を適用するか否かに拘らず一定と想定することができる。下記の演算式（３）及び（４）は演算式（１）及び（２）から導くことができ、結果として、従来の手法及び本発明の手法の双方の処理時間を１次関数で表すことができる。即ち、それらの処理時間を、
ｔｂｅｆｏｒｅ＝ｏｈ×ｏｂｊ＋ｍ（ｖ×ｏｂｊ）                      …（３）
ｔａｆｔｅｒ＝３（ｓ＋ｍ）×ｏｂｊ＋ｏｈ＋（ｓ＋ｍ）×ｖ×ｏｂｊ    …（４）
と表すことができる。
【００３６】
本発明の手法の処理時間が従来の手法の処理時間よりも短ければ、本発明の手法による効果があると言える。即ち、条件が下記の演算式（５）を満たせば、本発明の手法による効果があると言える。
【００３７】
ｏｂｊ≧（ｏｈ＋ｓ×ｖ×ｏｂｊ）／｛ｏｈ−３（ｓ＋ｍ）｝        …（５）
発明者らは、性能特性が前述した理論的分析と等しいか否かを確認するために、実機で処理時間を測定した。頂点数が「４０００」の３次元モデルを準備し、測定条件として、オブジェクト数を「１」、「１０」、「１００」、「１２５」、「２００」、「２５０」、「５００」、「１０００」とし、オブジェクト構造をオブジェクト数と１オブジェクトあたりの頂点数の積が一定となるように調整した。従来の手法及び本発明の手法について、処理時間を測定し、ＣＰＵ２の負荷とＧＰＵ３の負荷を測定した。長い方の時間が実際の処理時間である。又、演算式（３）及び（４）を用いたシミュレーションのためにｏｈ、ｍ、ｓを測定した。尚、後述する図９から図１１等で「before」は従来の手法による結果を示し、「after」は本発明の手法による結果を示している。
【００３８】
図９は、シミュレーションの結果とＣＰＵ２の負荷の測定結果を示している。シミュレーションに用いたｏｈ、ｍ、ｓの値はそれぞれ０．１６［ｍｓ］、０．０００７７［ｍｓ］、０．００３５［ｍｓ］であり、これらは実機で測定した。図９に示す結果から、理論モデルが実際に測定された性能を適切に説明していると言える。演算式（５）から、今回使用した実機ではｏｂｊ＞９７を満たせば、本発明の手法による効果があると言える。測定結果はオブジェクト数が約「１００」を超えたところで本発明の手法による効果があることを示している。
【００３９】
理論モデルではＧＰＵ３の負荷を考慮していない。図１０は、ＧＰＵ３の負荷の測定結果を示している。ＧＰＵ３の負荷の特性については更なる調査が必要ではあるが、今回の場合では、従来の手法で３０［ｍｓ］であり、本発明の手法で３５［ｍｓ］である。図１１は、実際の処理時間（ＣＰＵ２の負荷とＧＰＵ３の負荷のうち長いほうの時間）を示している。図１１に示す結果から、オブジェクト数が「２００」を超えると本発明の手法による効果があると言える。このように頂点数やオブジェクト数等の最適化の条件が揃えば、本発明の手法による効果があると言える。上記したようにグラフィックスメータは比較的単純な形状である（頂点数が少ない）オブジェクトが多く存在するので、最適化の条件が揃い易い。
【００４０】
以上に説明した本発明の手法を試作品に適用した効果の一例を示す。試作品はルネサスのＳＨ７７６９、１２８ＭＢのＲＯＭ、２５６ＭＢのＲＡＭ、ＤＶＧＡ(１２８０×４８０)１２．３インチＴＦＴディスプレイを搭載している。コンテンツは４ゲージ（スピードメータ、タコメータ、燃料計、水温計）、テルテール（警告灯）、タブメニュー、運転支援システム表示等である。この３次元モデルはオブジェクト数が「１５４」であり、頂点数が「１４９６０」である。
【００４１】
複数の最適化手法の適用により、１７．２［ｍｓ］の向上が見込まれたが十分ではない。本発明の手法により、今回の場合では図１２に示すように１５４オブジェクト中の１２３オブジェクトを８グループに分類することができた。１オブジェクトあたりオーバーヘッドの時間（０．１６［ｍｓ］）分の処理時間の削減が見込まれるので、本発明の手法による効果は１８．４［ｍｓ］（（１２３−８）×０．１６［ｍｓ］）となり、合計で３５．６［ｍｓ］（１７．２＋１８．４［ｍｓ］）の処理時間の削減が見込まれる。効果を確認するため、従来の手法及び本発明の手法の描画の処理時間を測定した。表示条件は仕様上最も高負荷な条件とした。図１３に示す結果から、ＧＰＵ３の負荷に影響を与えずにＣＰＵ２の負荷を低下することができていると言える。滑らかな表示の実現のために高フレームレートが（特に動きの速いタコ指針表示に対して）望まれており、人間の視覚特性を考慮すると、少なくとも３０［ｆｐｓ］の達成が求められる。３０［ｆｐｓ］を達成するには、ＣＰＵ２の負荷を３３［ｍｓ］以内に抑える必要があり、本発明の手法は達成に寄与することができている。
【００４２】
以上に説明したように本実施形態によれば、３次元画像生成装置１において、ＣＰＵ２は、予め規定されている連結条件を満たす複数のオブジェクトのメッシュを連結し、そのメッシュを連結した複数のオブジェクトに対して頂点属性変換を事前に行う。そして、ＣＰＵ２は、頂点属性変換を行った複数のオブジェクトを纏めて１つのオブジェクトと見做して当該オブジェクトの描画を指示する描画コマンドをＧＰＵ３に転送する。ＧＰＵ３は、ＣＰＵ２から取得した描画コマンドにより指示された１つのオブジェクトと見做された複数のオブジェクトを纏めて描画する。これにより、ＧＰＵ３が描画コマンドの関数呼び出しのオーバーヘッドに費やす時間を抑えることができ、描画速度を高めることができる。この場合、３次元画像の基礎となるグラフィックスデータを制作する過程でオブジェクトを可能な限り連結する必要もないので、グラフィックスデータを制作する過程に何ら影響を与えることもない。
又、連結条件として、同じマテリアルを参照しているオブジェクト同士のみを同じ連結グループとするようにしたので、同じマテリアルを参照しているか否かを判定基準とし、オブジェクトのメッシュを連結することができる。
【００４３】
本発明は、上記した実施形態にのみ限定されるものではなく、以下のように変形又は拡張することができる。
ディスプレイ装置７が車両のグラフィックスメータに限らず、車両に搭載されている他の表示機器であっても良い。又、車両のグラフィックスメータ等の表示機器に描画を行う構成に限らず、３次元シミュレーション、電子広告、娯楽等の車両とは関係ない分野に適用しても良い。
【符号の説明】
【００４４】
図面中、１は３次元画像生成装置、２はＣＰＵ（制御手段、連結手段）、３はＧＰＵ（描画手段）である。
【図１】
2014130563.tif 000003
【図２】
2014130563.tif 000004
【図３】
2014130563.tif 000005
【図４】
2014130563.tif 000006
【図５】
2014130563.tif 000007
【図６】
2014130563.tif 000008
【図７】
2014130563.tif 000009
【図８】
2014130563.tif 000010
【図９】
2014130563.tif 000011
【図１０】
2014130563.tif 000012
【図１１】
2014130563.tif 000013
【図１２】
2014130563.tif 000014
【図１３】
2014130563.tif 000015