(57)【要約】【課題】動画像のテクスチャマッピング結果を操作者が望むようにする。【解決手段】座標設定手段１８０は、操作者によるテクスチャ座標の変更操作（ズーム指定操作、シフト指定操作、回転角度指定操作など）を受け付け、この変更操作の内容を記憶する。画像マッピング手段１５０は、オブジェクトの表面に入力画像をテクスチャマッピングする際に、座標設定手段１８０で記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングを行う。テクスチャ画像の変更処理は、座標設定手段１８０あるいは画像マッピング手段１５０が行う。入力画像のテクスチャマッピング結果、例えばズーム状態、回転角度状態などを操作者が望むようにできる。【選択図】図１
2011022728.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィクス記述データに基づいてコンピュータグラフィクス画像を生成する画像生成手段と、
上記画像生成手段が描画するコンピュータグラフィクスのオブジェクトの表面に入力画像をテクスチャマッピングする画像マッピング手段と、
テクスチャ座標の変更操作を受け、該変更操作の内容を記憶する座標設定手段を備え、
上記画像マッピング手段は、上記オブジェクトの表面に入力画像をテクスチャマッピングする際に、上記座標設定手段で記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングを行う
画像処理装置。
【請求項２】
上記座標設定手段は、上記オブジェクトの表面にテクスチャマッピングされる入力画像の回転角度の指定を受け、該回転角度の指定内容を記憶し、
上記画像マッピング手段は、上記オブジェクトの表面に入力画像をテクスチャマッピングする際に、上記座標設定手段で記憶された指定内容に基づいて上記オブジェクトの表面にテクスチャマッピングされる入力画像が上記指定された回転角度となるように変更が施されたテクスチャ座標によりテクスチャマッピングを行う
請求項１に記載の画像処理装置。
【請求項３】
上記コンピュータグラフィクス記述データはアニメーションを含み、
上記座標設定手段が受ける回転角度の指定は、上記アニメーション中の所定フレームにおける上記オブジェクトの表面にテクスチャマッピングされる入力画像の回転角度の指定である
請求項２に記載の画像処理装置。
【請求項４】
上記座標設定手段は、上記オブジェクトの表面にテクスチャマッピングされる入力画像のズーム指定を受け、該ズーム指定の内容を記憶し、
上記画像マッピング手段は、上記オブジェクトの表面に入力画像をテクスチャマッピングする際に、上記座標設定手段で記憶された指定内容に基づいて上記オブジェクトの表面にテクスチャマッピングされる入力画像が上記指定されたズームの状態となるように変更が施されたテクスチャ座標によりテクスチャマッピングを行う
請求項１に記載の画像処理装置。
【請求項５】
上記座標設定手段は、上記オブジェクトの表面にテクスチャマッピングされる入力画像のシフト指定を受け、該ズーム指定の内容を記憶し、
上記画像マッピング手段は、上記オブジェクトの表面に入力画像をテクスチャマッピングする際に、上記座標設定手段で記憶された指定内容に基づいて上記オブジェクトの表面にテクスチャマッピングされる入力画像が上記指定されたシフトの状態となるように変更が施されたテクスチャ座標によりテクスチャマッピングを行う
請求項１に記載の画像処理装置。
【請求項６】
コンピュータグラフィクス記述データに基づいてコンピュータグラフィクス画像を生成する画像生成ステップと、
上記画像生成ステップで描画されるコンピュータグラフィクスのオブジェクトの表面に入力画像をテクスチャマッピングする画像マッピングステップと、
テクスチャ座標の変更操作を受け、該変更操作の内容を記憶する座標設定ステップを備え、
上記画像マッピングステップでは、上記オブジェクトの表面に入力画像をテクスチャマッピングする際に、上記座標設定ステップで記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングを行う
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置および画像処理方法に関し、特に、コンピュータグラフィクス画像に画像データによる画像をテクスチャマッピングして画像合成を行う画像処理装置等に関する。
【背景技術】
【０００２】
３次元グラフィックスシステムにおいては、３次元座標を３角形などのポリゴン（多角形）に分解し、そのポリゴンを描画することで、画像全体の描画が行われる。したがって、この場合、３次元画像は、ポリゴンの組み合わせで定義されていると言える。ところで、身の回りにある物体表面は、複雑な模様の繰り返しパターンを有することが多く、模様やパターンが複雑で細かくなるほど、各模様やパターンを３角形などでモデリングすることは困難となる。そこで、これを解決する手段として、テクスチャマッピング（Texture Mapping）が用いられる。
【０００３】
テクスチャマッピングは、スキャナ等で取り込んだイメージデータを、物体表面に貼り付けることにより、少ない頂点数で、リアリティの高い画像を実現するもので、オブジェクト（Object）座標系からテクスチャ（Texture）座標系への写像を定義し、さらに、ウインドウ（Window）座標系からテクスチャ座標系への写像を求めて、ウインドウ座標系における各ピクセル（Pixel, Picture Cell Element ）に対応するテクスチャの要素であるテクセル（Texel：Texture Cell Element ）を求める。
【０００４】
テクスチャに利用される画像データは、テクスチャメモリと呼ばれるメモリ領域に格納される。したがって、動画像データを用いてテクスチャメモリを随時更新する処理を行うと、動画像によるテクスチャマッピング処理が可能となる。
【０００５】
例えば、特許文献１には、動画像を処理してテクスチャマッピングする３次元画像処理装置が記載されている。また、例えば、特許文献２には、対話的にＣＧオブジェクトの頂点を指定し、テクスチャ座標を指定する等により、形状に対して意図するようにテクスチャマッピングを行う画像生成装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−０５３５７３号公報
【特許文献２】特開平０７−０５７１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＣＧ（コンピュータグラフィクス）記述データは、専門のＣＧデザイナの手により作成される。その仮想三次元空間中には、ＣＧオブジェクトが複数配置され、表面属性はマテリアルとして定義される。動画像をテクスチャマッピングする場合でも、ＣＧ制作工程では、放送に使用される際の動画像がテクスチャマッピングされた画像を見ながら作業することはできない。また、作成するＣＧは、アニメーションである場合もある。
【０００８】
テクスチャマッピングされる面は、ＣＧオブジェクトの配置やアニメーションの動きにより見え方が変化し、一方、貼り付ける画像は運用時にならないと決まらない。そのため、最終の全体画像を考えてＣＧを制作することが困難であった。
【０００９】
静止画をテクスチャマッピングする技術は、本来、ＣＧオブジェクト（仮想物体）の表面の特性を表現するためであり、例えば木目やタイル模様などを付ける目的で用いられる。そのため、そのオブジェクトの形状に合わせたマッピングにより静止画像を表示する。しかし、動画像をテクスチャマッピングする場合は、これとは全く異なり、動画像の特殊効果の一環などとして用いられる。木目等ならばＣＧオブジェクトの動きに追随し、画面の上下など関係なく物体の表面を表現するだけでよいのに対して、動画像の場合は、物体よりも、動画像の表示される様子を操作者が望むようにできることが、望まれる。
【００１０】
例えば、切り株のＣＧ画像の場合、切り株の面は、年輪が見えるのが自然である。そこで、年輪を画像化した静止画をその面にテクスチャマッピングし、年輪の輪の中央が切り株の中央に来て、概ね切り株の周の形状（正確な円ではなく、凹凸などがあるのが自然な木である）に合わせて自然に見えるように、静止画を配置する。すなわち、テクスチャ座標（ＵＶ座標）をそのように設定することで、位置合わせと方向合わせを行う。こうして設定したテクスチャ座標が、切り株の面に対応付けてＣＧ記述データの中に記述される。
【００１１】
このＣＧ記述データを放送に使用する場合、作成した切り株のＣＧ画像のまま放送する場合もあれば、切り株の面にライブの動画像、例えば出演者の顔画像をテクスチャマッピングして放送する場合もある。同一のＣＧ記述データを、二つ以上の用途で使用することになる。
【００１２】
切り株の面に対応付けられたテクスチャ座標は、年輪の画像が自然に見える様に設定されている。ここに動画像をテクスチャマッピングすると、動画像の上下方向、例えば出演者の顔画像の上下方向が、年輪のために設定されたテクスチャ座標により、不自然な方向を向いてしまう可能性がある。あるいは、顔画像の途中が切り株の端にきて、顔画像が途中で切れてしまうか、あるいは顔画像が分割されてしまう可能性がある。このような問題があるため、このままでは、同一のＣＧ記述データを二つの用途に使用することはできない。なお、図１８（ａ），（ｂ）は、オブジェクトの回転により、テクスチャマッピングされた画像（コーヒーカップ）が不自然な方向を向いてしまった例を示している。
【００１３】
この発明の目的は、作成したＣＧを生放送の運用等で使う場合に、動画像のテクスチャマッピング結果を操作者が望むようにし得る画像処理装置等を提供することにある。
【課題を解決するための手段】
【００１４】
この発明の概念は、
コンピュータグラフィクス記述データに基づいてコンピュータグラフィクス画像を生成する画像生成手段と、
上記画像生成手段が描画するコンピュータグラフィクスのオブジェクトの表面に入力画像をテクスチャマッピングする画像マッピング手段と、
テクスチャ座標の変更操作を受け、該変更操作の内容を記憶する座標設定手段を備え、
上記画像マッピング手段は、上記オブジェクトの表面に入力画像をテクスチャマッピングする際に、上記座標設定手段で記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングを行う
画像処理装置にある。
【００１５】
この発明において、画像生成手段により、コンピュータグラフィクス記述データに基づいて、コンピュータグラフィクス画像が生成される。この場合、３次元座標が３角形等のポリゴン（多角形）に分解され、そのポリゴンが描画されることで、画像全体の描画が行われる。また、画像マッピング手段により、画像生成手段で描画されるコンピュータグラフィクスのオブジェクトの表面に、入力画像がテクスチャマッピングされる。
【００１６】
また、座標設定手段により、テクスチャ座標の変更操作が受け付けられ、この変更操作の内容が記憶される。そして、画像マッピング手段では、オブジェクトの表面に入力画像をテクスチャマッピングする際に、座標設定手段で記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。変更操作内容に基づいたテクスチャ座標に変更を施す処理（変換処理）は、例えば、座標設定手段あるいは画像マッピング手段により行われる。
【００１７】
このように、オブジェクトの表面に入力画像がテクスチャマッピングされる際に、テクスチャ座標の変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。したがって、入力画像のテクスチャマッピング結果を操作者が望むようにできる。また、ＣＧ制作時に静止画をテクスチャマッピングしたＣＧと、運用時に入力画像（動画像）をテクスチャマッピングしたＣＧの両方を使用でき、一つのＣＧ制作で複数の成果が得られ、効率が向上する。
【００１８】
例えば、座標変更設定手段では、オブジェクトの表面にテクスチャマッピングされる入力画像の回転角度の指定が受け付けられ、その回転角度の指定内容が記憶される。そして、画像マッピング手段では、オブジェクトの表面に入力画像をテクスチャマッピングする際に、オブジェクトの表面にテクスチャマッピングされる入力画像が指定された回転角度となるように変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。この場合、オブジェクトの表面にテクスチャマッピングされる入力画像は、指定された回転角度、例えば正立した状態となる。
【００１９】
例えば、コンピュータグラフィクス記述データにアニメーションが含まれるとき、座標設定手段が受ける回転角度の指定は、アニメーション中の所定フレームにおけるオブジェクトの表面にテクスチャマッピングされる入力画像の回転角度とされる。この場合、アニメーション中の所定フレームにおけるオブジェクトの表面にテクスチャマッピングされる入力画像は、指定された回転角度、例えば正立した状態となる。
【００２０】
また、例えば、座標変更設定手段では、オブジェクトの表面にテクスチャマッピングされる入力画像のズーム指定が受け付けられ、そのズーム指定内容が記憶される。そして、画像マッピング手段では、オブジェクトの表面に入力画像がテクスチャマッピングされる際に、オブジェクトの表面にテクスチャマッピングされる入力画像が指定されたズーム状態となるように変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。この場合、オブジェクトの表面にテクスチャマッピングされる入力画像は、指定されたズーム状態となる。
【００２１】
また、例えば、座標変更設定手段では、オブジェクトの表面にテクスチャマッピングされる入力画像のシフト指定が受け付けられ、そのシフト指定内容が記憶される。そして、画像マッピング手段では、オブジェクトの表面に入力画像がテクスチャマッピングされる際に、オブジェクトの表面にテクスチャマッピングされる入力画像が指定されたシフト状態となるように変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。この場合、オブジェクトの表面にテクスチャマッピングされる入力画像は、指定されたシフト状態となる。
【発明の効果】
【００２２】
この発明によれば、オブジェクトの表面に入力画像がテクスチャマッピングされる際に、テクスチャ座標の変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングが行われるものであり、動画像のテクスチャマッピング結果を操作者が望むようにできる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態としての画像処理装置の構成例を示すブロック図である。
【図２】マテリアルが持つ表面情報の例を示す図である。
【図３】画像選択操作手段を構成するコントロールパネルの外観の一例を示す図である。
【図４】画像生成手段および画像マッピング手段の具体的な構成例を示すブロック図である。
【図５】画像生成手段および画像マッピング手段の機能ブロックの構成例を示す図である。
【図６】テクスチャマッピングの原理を説明するための図である。
【図７】テクスチャ座標の変換前と変換後における画像マッピング状態を示す図である。
【図８】ズーム指定の縮小時において、［０，１］を超える値に対する画像マッピング状態例を示す図である。
【図９】シフト指定時において、［０，１］を超える値に対する画像マッピング状態例を示す図である。
【図１０】テクスチャ画像の回転を説明するための図である。
【図１１】テクスチャ座標と画面の座標から傾き（−θ）を求める原理を説明するための図である。
【図１２】ＣＧアニメーション画像へのテクスチャマッピングを説明するための図である。
【図１３】座標設定手段の機能の概念的ブロック構成の一例を示す図である。
【図１４】座標設定手段の処理手順を示すフローチャートである。
【図１５】テクスチャ画像を上向きにするポリゴン三角形の選択操作を説明するための図である。
【図１６】ＣＧ画像へのテクスチャマッピング状態（テクスチャ座標の変換あり）を示す図である。
【図１７】画像処理装置の変形例を示すブロック図である。
【図１８】ＣＧ画像へのテクスチャマッピング状態（テクスチャ座標の変換なし）を示す図である。
【発明を実施するための形態】
【００２４】
以下、発明を実施するための形態（以下、「実施の形態」とする）について説明する。なお、説明は以下の順序で行う。
１．実施の形態
２．変形例
【００２５】
＜１．実施の形態＞
［画像処理装置の構成］
この発明の実施の形態を説明する。図１は、実施の形態としての画像処理装置１００の構成例を示している。この画像処理装置１００は、ＣＧ（Computer Graphics：コンピュータグラフィクス）制作手段１１０と、表面指定手段１２０と、ネットワーク１３０と、画像生成手段１４０と、画像マッピング手段１５０を有している。また、この画像処理装置１００は、マトリクススイッチ１６０と、画像選択操作手段１７０を有している。ＣＧ制作手段１１０、表面指定手段１２０および画像生成手段１４０は、それぞれネットワーク１３０に接続されている。
【００２６】
ＣＧ制作手段１１０は、ＣＧ制作ソフトウェアを持つパーソナルコンピュータ（ＰＣ：Personal Computer）により構成されている。このＣＧ制作手段１１０は、所定のフォーマットのＣＧ記述データを出力する。ＣＧ記述データのフォーマットとして、例えばＣｏｌｌａｄａ（登録商標）がある。Ｃｏｌｌａｄａは、ＸＭＬ（Extensible Markup Language）の上で３ＤのＣＧデータの交換を実現するための記述定義である。ＣＧ記述データには、例えば、以下のような情報が記述される。
【００２７】
（ａ）マテリアルの定義
このマテリアルの定義は、ＣＧオブジェクトの表面の質（見え方）である。このマテリアルの定義には、色、反射の仕方、発光、凹凸などの情報が含まれる。また、このマテリアルの定義には、テクスチャマッピングの情報が含まれる場合がある。テクスチャマッピングとは、上述したように、画像をＣＧオブジェクトに貼り付ける手法であり、処理系の負荷を比較的軽くしつつ、複雑な模様などを表現できる。図２は、マテリアルが持つ表面情報の例を示している。なお、色の代わりにテクスチャマッピングを指定する場合もある。
【００２８】
（ｂ）幾何学情報 Geometry の定義
この幾何学情報 Geometry の定義には、ポリゴンメッシュについての、位置座標、頂点の座標などの情報が含まれる。
（ｃ）カメラの定義
このカメラの定義には、カメラのパラメータが含まれる。
【００２９】
（ｄ）アニメーションの定義
このアニメーションの定義には、アニメーションの各キーフレームにおける、様々な値の情報が含まれる。また、このアニメーションの定義には、アニメーションの各キーフレームにおける時刻の情報が含まれる。様々な情報とは、例えば、対応するオブジェクト（ノード）のキーフレーム点の時刻、位置や頂点の座標値、サイズ、接線ベクトル、補間方法、各種情報のアニメーション中の変化等の情報である。
（ｅ）シーン中のノード（オブジェクト）の位置、方向、大きさ、対応する幾何学情報定義、対応するマテリアル定義
【００３０】
これらの情報は、ばらばらではなく、例えば、以下のように対応付けられている。
・ノード・・・幾何学情報
・ノード・・・マテリアル（複数）
・幾何学情報・・・ポリゴン集合（複数）
・ポリゴン集合・・・マテリアル（ノードに対応するうちの一つ）
・アニメーション・・・ノード
【００３１】
一つの画面を構成する記述はシーンと呼ばれる。各定義はライブラリと呼ばれ、シーンの中から参照される。例えば、直方体のオブジェクトが２つ存在する場合、それぞれが一つのノードとして記述され、各ノードにマテリアル定義のいずれかが連想される。この結果、各直方体のオブジェクトにはマテリアル定義が連想され、各マテリアル定義に従った色や反射特性で描画される。
【００３２】
あるいは、直方体のオブジェクトは複数のポリゴン集合で記述され、ポリゴン集合にマテリアル定義が連想されている場合は、ポリゴン集合毎に、異なるマテリアル定義で描画される。例えば、直方体の面は６つであるが、このうちの３つの面で一つのポリゴン集合、１つの面で１つのポリゴン集合、２つの面で一つのポリゴン集合、というように、直方体のオブジェクトが３つのポリゴン集合で記述される場合もある。各ポリゴン集合に異なるマテリアル定義を連想できるため、面毎に異なる色で描画させることも可能である。
【００３３】
マテリアル定義にテクスチャマッピングが指定されている場合は、連想されているオブジェクトの面に、画像データによる画像がテクスチャマッピングされる。
この実施の形態では、後述するように、例えば、マテリアル定義に対して入力画像をテクスチャマッピングするように設定される。そのため、直方体のオブジェクトの全ての面に同じ入力画像をテクスチャマッピングすることもでき、面毎に異なる入力画像をテクスチャマッピングすることもできる。
【００３４】
以下は、ＣＧ記述データとしてのColladaファイルのサンプル（一部の抜粋例）を示している。例えば、このサンプルでは、“01MatDefault”という名前（値）のマテリアルが定義されている。そして、このマテリアルの実際の内容は、“01MatDefault-fx”のエフェクトを参照すべきことが記述されている。また。このサンプルでは、<library_visual_scenes>において、“#Box01-lib”の幾何学情報定義に対して“01MatDefault”のマテリアル定義を結びつけて、描画することが記述されている。
【００３５】
［Colladaファイルのサンプル］
<library_materials>
<material id="01MatDefault" name="01MatDefault">    マテリアル定義
<instance_effect url="#01MatDefault-fx"/> エフェクトを参照
</material>
</library_materials>
<library_effects>
<effect id="01MatDefault-fx"name="01MatDefault">    これがマテリアルの内容
<profile_COMMON>
<technique sid="standard">
<phong>
<emission>
<color sid="emission">0.000000  0.000000 0.0000001.000000</color>
</emission>
<ambient>           ここで色が付いている
<color sid="ambient">0.588235  0.952941 0.9215691.000000</color>
</ambient>
<diffuse>
<color sid="diffuse">0.588235  0.952941 0.9215691.000000</color>
</diffuse>
<specular>
<color sid="specular">0.000000  0.000000 0.0000001.000000</color>
</specular>
<shininess>
<float sid="shininess">2.000000</float>
</shininess>
<reflective>
<color sid="reflective">0.000000  0.000000 0.0000001.000000</color>
</reflective>
<reflectivity>
<float sid="reflectivity">1.000000</float>
</reflectivity>
<transparent>
<color sid="transparent">1.000000  1.000000 1.0000001.000000</color>
</transparent>
<transparency>
<float sid="transparency">0.000000</float>
</transparency>
</phong>
</technique>
</profile_COMMON>
</effect>
</library_effects>
<library_geometries>
<geometry id="Box01-lib" name="Box01Mesh">
<mesh>
<source id="Box01-lib-Position">
<float_array id="Box01-lib-Position-array"count="24">    位置情報の配列
-4.673016-8.585480 0.000000
4.673016-8.585480 0.000000
-4.6730168.585480 0.000000
4.6730168.585480 0.000000
-4.673016-8.585480 10.185543
4.673016-8.585480 10.185543
-4.6730168.585480 10.185543
4.6730168.585480 10.185543
</float_array>
<technique_common>
<accessor source="#Box01-lib-Position-array" count="8"stride="3">
<param name="X" type="float"/>           位置情報の配列の並びの説明
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box01-lib-UV0">
<float_array id="Box01-lib-UV0-array" count="24">     UV座標の配列
0.0000000.000000               単純な立方体なので、0 と 1 しかない。
1.0000000.000000
0.0000001.000000
1.0000001.000000
0.0000000.000000
1.0000000.000000
0.0000001.000000
1.0000001.000000
0.0000000.000000
1.0000000.000000
0.0000001.000000
1.0000001.000000
</float_array>
<technique_common>
<accessor source="#Box01-lib-UV0-array" count="12"stride="2">
UV座標の説明
<param name="S" type="float"/>
<param name="T" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Box01-lib-Vertex">
<input semantic="POSITION"source="#Box02-lib-Position"/>
</vertices>
<polygons material="01MatDefault" count="12">
<input semantic="VERTEX" offset="0"source="#Box01-lib-Vertex"/>
<input semantic="NORMAL" offset="1"source="#Box01-lib-Normal0"/>
<input semantic="TEXCOORD" offset="2" set="0"source="#Box01-lib-UV0"/>
<p>0 0 9 2 1 11 3 2 10</p>            頂点情報
<p>3 3 10 1 4 8 0 5 9</p>
<p>4 6 8 5 7 9 7 8 11</p>
<p>7 9 11 6 10 10 4 11 8</p>
<p>0 12 4 1 13 5 5 14 7</p>
<p>5 15 7 4 16 6 0 17 4</p>
<p>1 18 0 3 19 1 7 20 3</p>
<p>7 21 3 5 22 2 1 23 0</p>
<p>3 24 4 2 25 5 6 26 7</p>
<p>6 27 7 7 28 6 3 29 4</p>
<p>2 30 0 0 31 1 4 32 3</p>
<p>4 33 3 6 34 2 2 35 0</p>
</polygons>
</mesh>
</geometry>
</library_geometries>
<library_animations>
<animation id="Box01-anim" name="Box01">
<animation>
<source id="Box01-translate-animation-inputX">
<float_array id="Box01-translate-animation-inputX-array"count="4">
0.0000001.000000 1.033333 1.333333      アニメーションでの X 座標値の変化の時刻
</float_array>
<technique_common>
<accessor source="#Box01-translate-animation-inputX-array"count="4">
<paramname="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box01-translate-animation-outputX">
<float_array id="Box01-translate-animation-outputX-array"count="4">
-43.404125-43.404125 -23.897228 13.150181     アニメーションの X 座標値そのもの
</float_array>
<technique_common>
<accessor source="#Box01-translate-animation-outputX-array"count="4">
<param name="X" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box01-translate-animation-intanX">
<float_array id="Box01-translate-animation-intanX-array"count="4">
0.0000000.000000 1.884578 -0.000000
</float_array>
<technique_common>
<accessor source="#Box01-translate-animation-intanX-array"count="4">
<param name="X" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box01-translate-animation-outtanX">
<float_array id="Box01-translate-animation-outtanX-array"count="4">
0.0000000.000000 16.961202 0.000000
</float_array>
<technique_common>
<accessor source="#Box01-translate-animation-outtanX-array"count="4">
<param name="X" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Box01-translate-animation-interpolationX">
<Name_array id="Box01-translate-animation-interpolationX-array"count="4">
BEZIER BEZIER BEZIER BEZIER
</Name_array>
<technique_common>
<accessor source="#Box01-translate-animation-interpolationX-array"count="4">
<param type="name"/>
</accessor>
</technique_common>
</source>
<sampler id="Box01-translate-animationX">
<input semantic="INPUT"source="#Box01-translate-animation-inputX"/>
<input semantic="OUTPUT" source="#Box01-translate-animation-outputX"/>
<input semantic="IN_TANGENT"source="#Box01-translate-animation-intanX"/>
<input semantic="OUT_TANGENT"source="#Box01-translate-animation-outtanX"/>
<input semantic="INTERPOLATION" source="#Box01-translate-animation-interpolationX"/>
</sampler>
<channel source="#Box01-translate-animationX"target="Box01/translate.X"/>以上が何のアニメーション情報であるかをここで決定（target）している
</animation>
<library_visual_scenes>
<visual_scene id="RootNode" name="RootNode">
<node id="Box01" name="Box01">
<translate sid="translate">-43.404125 0.6970370.000000</translate>
<rotate sid="rotateZ">0 0 1 0.000000</rotate>
<rotate sid="rotateY">0 1 0 0.000000</rotate>
<rotate sid="rotateX">1 0 0 0.000000</rotate>
<scale sid="scale">1.000000 1.000000 1.000000</scale>
<instance_geometry url="#Box01-lib">              幾何学情報定義の参照
<bind_material>
<technique_common>
<instance_material symbol="01MatDefault"target="#01MatDefault"/>  マテリアル参照
</technique_common>
</bind_material>
</instance_geometry>
</node>
</visual_scene>
</library_visual_scenes>
【００３６】
図１に戻って、マトリクススイッチ１６０は、複数の入力画像データから一つの画像データを選択的に取り出す画像選択手段を構成している。このマトリクススイッチ１６０は、９本の入力ラインと、４本の出力バスライン１６１〜１６４と、クロスポイントスイッチ群１６５〜１６８とにより構成されている。
【００３７】
９本の入力ラインは図で一方向に配列されており、それぞれにはＶＴＲ、ビデオカメラ等から画像データが入力される。４本の出力バスライン１６１〜１６４は、入力ラインと交差して他方向に配列されている。クロスポイントスイッチ群１６５は、９本の入力ラインと出力バスライン１６１とが交差する各クロスポイントでそれぞれの接続を行う。ユーザの画像選択操作に基づいて、このクロスポイントスイッチ群１６５が制御され、９本の入力ラインに入力された画像データのいずれかが出力バスライン１６１に選択的に出力される。この出力バスライン１６１は、テクスチャマッピング用の画像データＬの出力ラインを構成する。
【００３８】
また、クロスポイントスイッチ群１６６，１６７，１６８は、それぞれ、９本の入力ラインと出力バスライン１６２，１６３，１６４とが交差する各クロスポイントでそれぞれの接続を行う。ユーザの画像選択操作に基づいて、このクロスポイントスイッチ群１６６，１６７，１６８が制御され、９本の入力ラインに入力された画像データのいずれかが出力バスライン１６２，１６３，１６４に選択的に出力される。この出力バスライン１６２，１６３，１６４は、外部出力用の画像データOUT1，OUT2，OUT3の出力ラインを構成する。
【００３９】
なお、クロスポイントスイッチ群１６５〜１６８の各クロスポイントスイッチのオンオフ動作は、フレームデータの連続からなる画像データを切り替えるものであることから、フレームの切れ目である垂直ブランキング区間内に行われる。
【００４０】
画像選択操作手段１７０は、上述のマトリクススイッチ１６０への指示の操作入力を受ける。この画像選択操作手段１７０は、各出力バスラインにそれぞれ対応した押しボタン列からなり、各ボタンが各入力ラインに対応した構成とされている。
【００４１】
図３は、画像選択操作手段１７０を構成するコントロールパネル１７０Ａの外観の一例を示している。このコントロールパネル１７０Ａには、出力バスライン１６１〜１６４にそれぞれ対応した左右方向に延びる押しボタン列１７１〜１７４が上下方向に並ぶように設けられている。各押しボタン列は、入力ラインのそれぞれと対応する出力バスラインとの接続を選択する択一式の押しボタンにより構成されており、選択された押しボタンは点灯する。
【００４２】
コントロールパネル１７０Ａの上部には文字表示部１７５が設けられており、各入力ラインへの入力画像を識別するための文字が表示されている。また、コントロールパネル１７０Ａの左部には文字表示部１７６が設けられており、各押しボタン列が対応する出力バスラインに取り出される画像データを識別するための文字が表示されている。
【００４３】
図１に戻って、画像生成手段１４０は、ＣＧ制作手段１１０で制作されたＣＧ記述データに基づいて、三次元空間画像であるＣＧ画像を生成する。この画像生成手段１４０は、時間をかけたレンダリング処理ではなく、アニメーションフレームの実時間で画像を生成する。
【００４４】
画像生成手段１４０は、ＣＧ記述データを読み込むと、各定義などの情報をメモリ上に保持し、それらの対応付けもデータ構造として保持する。また、画像生成手段１４０は、アニメーションを実行するためのキーフレームにおける各種値もメモリ上に保持する。
【００４５】
例えば、あるノードの幾何学情報にあるポリゴン集合を描画するには、その幾何学情報と、対応付けられているマテリアル定義を参照して、その色などの指定に従って描画する。アニメーションの場合は、現在時刻を毎フレーム進行させ、現在時刻から、前後のキーフレームにおける各値を補間して各値を決定し、描画を行う。
【００４６】
この画像生成手段１４０には、表面指定手段１２０から、入力画像をテクスチャマッピングするオブジェクトの指定情報が送られてくる。画像生成手段１４０は、その指定情報が示すオブジェクの表面に、入力画像をテクスチャマッピングするように、画像マッピング手段１５０を制御する。
【００４７】
画像マッピング手段１５０は、画像生成手段１４０が描画するＣＧのうち、表面指定手段１２０で指定されるテクスチャマッピング対象の表面に、入力画像をテクスチャマッピングする。この画像マッピング手段１５０は、実装上は、上述の画像生成手段１４０と一体化されている。この画像マッピング手段１５０は、ＣＰＵ（Central Processing Unit）上のソフトウェアによる制御と、ＧＰＵ（GraphicsProcessing Unit）等のハードウェアによる動作によって実現される。制御ソフトウェアは、テクスチャマッピングするポリゴン集合を指定してハードウェアに指示する。
【００４８】
［画像生成手段および画像マッピング手段の構成例］
図４は、画像生成手段１４０および画像マッピング手段１５０の具体的な構成例を示している。画像生成手段１４０および画像マッピング手段１５０は、画像入出力部１４１と、ＧＰＵ１４２と、ローカルメモリ１４３と、ＣＰＵ１４４と、メインメモリ１４５を有している。また、画像生成手段１４０および画像マッピング手段１５０は、周辺デバイス制御部１４６と、ハードディスクドライブ（ＨＤＤ）１４７と、イーサネット回路１４８ａと、ネットワーク端子１４８ｂを有している。また、画像生成手段１４０および画像マッピング手段１５０は、ＵＳＢ（Universal Serial Bus）端子１４９と、ＳＤＲＡＭ（SynchronousDRAM）１５１を有している。なお、「イーサネット」は登録商標である。
【００４９】
画像入出力部１４１は、テクスチャマッピングをするための画像データを入力し、また、画像データによる画像が適宜テクスチャマッピングされたＣＧ画像の画像データを出力する。この画像入出力部１４１は、最大で４系統の画像データを入力でき、また、最大で４系統の画像データを出力できる。なお、ここで取り扱われる画像データは、例えば、ＳＭＰＴＥ２９２Ｍで規定されているＨＤ-ＳＤＩ(High Definition television-SerialDigital Interface)規格の画像データである。ＧＰＵ１４２およびメインメモリ１４５は、同等に、画像入出力部１４１にアクセス可能とされている。
【００５０】
メインメモリ１４５は、ＣＰＵ１４４のワークエリアとして機能すると共に、画像入出力部１４１から入力される画像データを一時的に記憶する。ＣＰＵ１４４は、画像生成手段１４０および画像マッピング手段１５０の全体を制御する。このＣＰＵ１４４には、周辺デバイス制御部１４６が接続されている。この周辺デバイス制御部１４６は、ＣＰＵ１４４と周辺デバイスとの間のインタフェース処理を行う。
【００５１】
ＣＰＵ１４４には、周辺デバイス制御部１４６を介して、内蔵のハードディスクドライブ１４７が接続されている。また、ＣＰＵ１４４には、周辺デバイス制御部１４６、イーサネット回路１４８ａを介して、ネットワーク端子１４８ｂが接続されている。また、ＣＰＵ１４４には、周辺デバイス制御部１４６を介して、ＵＳＢ端子１４９が接続されている。さらに、ＣＰＵ１４４には、周辺デバイス制御部１４６を介して、ＳＤＲＡＭ１５１が接続されている。
【００５２】
ＣＰＵ１４４は、テクスチャ座標の制御を行う。すなわち、このＣＰＵ１４４は、入力画像データに対して、それによる画像をＧＰＵ１４２が描画するポリゴンの表面にテクスチャマッピングをするための処理を行う。ＧＰＵ１４２は、ハードディスクドライブ１４７等に保持されているＣＧ記述データに基づいてＣＧ画像を生成し、また、必要に応じて、指定されたポリゴンの表面に、入力画像をテクスチャマッピングする。ローカルメモリ１４３は、ＧＰＵ１４２のワークエリアとして機能すると共に、ＧＰＵ１４２で作成されたＣＧ画像の画像データを一時的に記憶する。
【００５３】
ＣＰＵ１４４は、メインメモリ１４５にアクセスできる他、ローカルメモリ１４３にもアクセス可能とされている。同様に、ＧＰＵ１４２は、ローカルメモリ１４３にアクセスできると共に、メインメモリ１４５にもアクセス可能とされている。ＧＰＵ１４２により生成されてローカルメモリ１４３に一次的に記憶されたＣＧ画像データは、このローカルメモリ１４３から順次読み出され、画像入出力部１４１から出力される。
【００５４】
図５は、上述した画像生成手段１４０および画像マッピング手段１５０の機能ブロックの構成例を示している。この画像生成手段１４０および画像マッピング手段１５０は、画像入力部１５２、テクスチャ画像記憶部１５３、ＣＧ制御部１５４、ＣＧ描画部１５５、テクスチャ座標制御部１５６、フレームバッファ１５７および画像出力部１５８の機能ブロックを有している。
【００５５】
画像入力部１５２および画像出力部１５８は、画像入出力部１４１により構成されている。また、テクスチャ画像記憶部１５３は、メインメモリ１４５により構成されている。また、ＣＧ制御部１５４およびテクスチャ座標制御部１５６は、ＣＰＵ１４４により構成されている。また、ＣＧ描画部１５５は、ＧＰＵ１４２により構成されている。また、フレームバッファ１５７は、ローカルメモリ１４３により構成されている。
【００５６】
画像入力部１５２とテクスチャ画像記憶部１５３は対で、これらを増やすことで、画像入力の系統を増やすことができる。また、フレームバッファ１５７と画像出力部１５８は対で、これらを増やすことで、画像出力の系統を増やすことができる。
【００５７】
ここで、図６を参照して、テクスチャマッピングの原理を示している。テクスチャマッピングする画像（動画像でもよい）に、Ｕ，Ｖ座標（テクスチャ座標）の値それぞれ０から１を、図６（ａ）のように対応させる。図６（ｂ）は、二個の直角三角形のポリゴンを合わせた長方形に、各頂点に図示のＵ，Ｖ座標の値を設定して、テクスチャマッピングした画像である。この場合、縦に縮んだ画像となる。図６（ｃ）は、それを回転させた場合であり、ポリゴンを回転させても、画像はそれに付いてくる。
【００５８】
図１に戻って、表面指定手段１２０は、上述したように、入力画像をテクスチャマッピングするテクスチャマッピング対象を指定する。そして、表面指定手段１２０は、ネットワーク１３０を介して、その指定情報を画像生成手段１４０に送る。この表面指定手段１２０は、例えば、ＧＵＩ（Graphical User Interface）で実現される。
【００５９】
表面指定手段１２０は、例えば、ＣＧ記述データ中のオブジェクトに付与されている所定の属性の値（名称）を選択肢として表示し、操作者に選択させることで、テクスチャマッピング対象であるオブジェクトを選択させる。表面指定手段１２０は、選択された属性の値を、テクスチャマッピングするオブジェクトの指定情報として画像生成手段１４０に送る。ここで、所定の属性は、マテリアル定義またはマテリアル定義が持つ表面情報等とされる。
【００６０】
座標設定手段１８０は、テクスチャ座標の変更操作を受け、この変更操作の内容を記憶する。この座標設定手段１８０は、実装上は、上述の画像生成手段１４０と一体化されている。画像マッピング手段１５０は、テクスチャマッピング対象であるオブジェクトの表面に入力画像をテクスチャマッピングする際に、座標設定手段１８０で記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングを行う。
【００６１】
操作者は、座標設定手段１８０に対して、テクスチャマッピング画像（入力画像）をどのように変更するかを指定する指定入力を行う。操作者は、この指定入力を、テクスチャマッピング対象のオブジェクトが特定された状態で行う。座標設定手段１８０は、この指定入力を変更操作内容として記憶する。
【００６２】
操作者は、例えば、この指定入力を、ＣＧ制作時に行うことができる。その場合、ＣＧデザイナ（ＣＧ制作時び操作者）は、入力画像をテクスチャマッピングする場合と、そうでない場合の両方を意識してＣＧ制作を行うことになる。また、操作者は、例えば、この指定入力を、画像生成手段１４０がＣＧ制作手段１１０からＣＧ記述データを受け取った後の運用時に行うことができる。その場合、運用時の操作者が、入力画像のテクスチャマッピングをどのように行うか、決めることになる。いずれにしても、座標設定手段１８０は、指定入力を、対応するＣＧ記述データと対にして記憶する。
【００６３】
［指定入力とテクスチャ座標の変更の例］
指定入力とテクスチャ座標の変更の例について説明する。
（Ａ）ズーム指定
座標設定手段１８０が、オブジェクトの表面にテクスチャマッピングされる入力画像のズーム指定を受け、このズーム指定の内容を記憶する場合について説明する。
【００６４】
テクスチャ座標はＵ，Ｖともに０から１の間であり、この区間をフルに物体表面にマッピングすることで、画像のｘ，ｙの全領域を表示することになる。これに対して、画像を拡大したい場合は、Ｕ，Ｖのより小さな区間、例えば０．３から０．７を物体表面にマッピングすれば、結果として画像が拡大されることになる。
【００６５】
この場合、ポリゴンの各頂点の、元のＵ，Ｖの値をｕ１，ｖ１とすると、新しいＵ，Ｖの値ｕ２，ｖ２は、以下の（１）式、（２）式により求められる。
ｕ２＝０．４×ｕ１＋０．３      ・・・（１）
ｖ２＝０．４×ｖ１＋０．３      ・・・（２）
【００６６】
座標設定手段１８０は、ズーム値として、区間［０．３，０．７］の値の操作入力を受ける。画像マッピング手段１５０はそれに応じた上述の（１）式、（２）式により、ＣＧ記述データの当該オブジェクト表面のポリゴンのＵ，Ｖ値を変換してから、テクスチャマッピングを行う。
【００６７】
例えば、図７は、テクスチャ座標の変換前と変換後における画像マッピング状態を示している。図７（ａ）は、テクスチャ画像の変換がないときに、二個の直角三角形のポリゴンを合わせた長方形にテクスチャマッピングした画像を示している。これに対して、テクスチャ画像の変換後には、図７（ｂ）の画枠内の画像のみがマッピングされ、ズーム状態となる。
【００６８】
区間を［ａ，ｂ］として、（１）式、（２）式を一般式にすると、（３）式、（４）式のようになる。
ｕ２＝（ｂ−ａ）×ｕ１＋ａ      ・・・（３）
ｖ２＝（ｂ−ａ）×ｖ１＋ａ      ・・・（４）
【００６９】
区間を［−１，２］のような、［０，１］より大きな範囲にすると、画像としては縮小されることになる。［０，１］を超える値に対しては、テクスチャマッピングの動作として、表示なし、あるいは繰り返し表示の、いずれかを選択指定できる。この繰り返し表示では、［１，２］などの区間も、［０，１］と同じとして扱われる。
【００７０】
図８は、［０，１］を超える値に対する画像マッピング状態例を示している。図８（ａ）は、表示なしが選択指定されている場合を示しており、［０，１］を超える値に対しては何も表示されない。図８（ｂ）は、繰り返し表示が選択されている場合を示しており、［０，１］を超える値に対しては繰り返し表示が行われる。
【００７１】
このように、操作者は、表示区間［ａ，ｂ］を指定することで、ＣＧオブジェクトの表面にテクスチャマッピングされる画像を、拡大または縮小することができる。
【００７２】
（Ｂ）シフト指定
座標設定手段１８０が、オブジェクトの表面にテクスチャマッピングされる入力画像のシフト指定を受け、このシフト指定の内容を記憶する場合について説明する。
【００７３】
テクスチャ座標はＵ，Ｖともに０から１の間であり、この区間をフルに物体表面にマッピングすることで、画像のｘ，ｙの全領域を表示することになる。これに対して、画像を水平方向にシフトしたい場合は、Ｕの例えば０．３以上を物体表面にマッピングすれば、結果として画像が左側に０．３だけシフトされることになる。
【００７４】
この場合、ポリゴンの各点の、元のＵの値をｕ１とすると、新しいＵの値ｕ２は、以下の（５）式により求められる。
ｕ２＝ｕ１＋０．３      ・・・（５）
【００７５】
座標設定手段１８０は、水平方向のシフト値として、［０．３］の値の操作入力を受ける。画像マッピング手段１５０はそれに応じた上述の（５）式により、ＣＧ記述データの当該オブジェクト表面のポリゴンのＵ値を変換してから、テクスチャマッピングを行う。
【００７６】
水平方向のシフト値を［ｃ］として、（５）式を一般式にすると、（６）式のようになる。
ｕ２＝ｕ１＋ｃ      ・・・（６）
【００７７】
また、画像を垂直方向にシフトしたい場合は、Ｖの例えば０．３以上を物体表面にマッピングすれば、結果として画像が下側に０．３だけシフトされることになる。この場合、ポリゴンの各点の、元のＶの値をｖ１とすると、新しいＵの値ｖ２は、以下の（７）式により求められる。
ｖ２＝ｖ１＋０．３      ・・・（７）
【００７８】
座標設定手段１８０は、垂直方向のシフト値として、［０．３］の値の操作入力を受ける。画像マッピング手段１５０はそれに応じた上述の（７）式により、ＣＧ記述データの当該オブジェクト表面のポリゴンのＶ値を変換してから、テクスチャマッピングを行う。
【００７９】
垂直方向のシフト値を［ｃ］として、（７）式を一般式にすると、（８）式のようになる。
ｖ２＝ｖ１＋ｃ      ・・・（８）
【００８０】
この場合、［０，１］を超える値に対しては「繰り返し表示」を指定するのが通常である。すなわち、ｃ＝０．５の場合、ｕ１＝０．８の点に対しては、ｕ２＝０．８＋０．５＝１．３となるが、これは０．３として処理される。図９は、［０，１］を超える値に対する画像マッピング状態例を示している。この場合、ｕ２＝ｕ１＋０．５、ｖ２＝ｖ１であり、水平方向に０．５だけシフトされる例である。
【００８１】
このように、操作者は、Ｕのシフト値［ｃ］を指定することで、ＣＧオブジェクトの表面にテクスチャマッピングされる画像を水平方向にシフトできる。また、操作者は、Ｖのシフト値［ｃ］を指定することで、ＣＧオブジェクトの表面にテクスチャマッピングされる画像を垂直方向にシフトできる。なお、このシフト指定を、上述のズーム指定と併せて適用することも可能である。
【００８２】
（Ｃ）回転角度指定
座標設定手段１８０が、オブジェクトの表面にテクスチャマッピングされる入力画像の回転角度の指定を受け、この回転角度の指定内容を記憶する場合について説明する。
【００８３】
出力するＣＧ画像中のオブジェクト（ポリゴンメッシュ）は、回転した状態で配置される場合がある。テクスチャマッピングされた画像は回転についてくるため、図６（ｃ）、あるいは図１０（ａ）に示すように、傾いて表示される結果となる。
【００８４】
テクスチャマッピングされた画像を所定の回転角度、例えば正立するように配置するには、オブジェクトの配置はそのままに、テクスチャ画像を回転させる必要がある。テクスチャマッピング結果の貼り付け画像を角度θだけ回転させるには、テクスチャ座標のＵ，Ｖの値を、−θだけ回転させればよい。例えば、図１０（ｂ）に示すように、テクスチャ空間の（０．５，０．５）を中心として、−θだけ回転させる。因みに、テクスチャ座標のどこを中心としても回転は可能だが、通常の画像は元の画像画面の真中を回転中心とするのが、画像の中心がずれず、妥当な方法である。
【００８５】
この場合、ポリゴンの各点の、元のＵ，Ｖの値をｕ１，ｖ１とすると、新しいＵ，Ｖの値ｕ２，ｖ２は、以下の（９）式の行列演算により求められる。
【数１】
2011022728.tif 000003
【００８６】
座標設定手段１８０は、所定のＣＧオブジェクトの表面にテクスチャマッピングされる画像の回転角度、例えば正立を指定する操作入力を受ける。画像マッピング手段１５０は、上述の回転角度の指定入力に基づき、テクスチャ座標と画面の座標から傾き（−θ）を求め、上述の（９）式により、ＣＧ記述データの当該オブジェクト表面のポリゴンのＵ，Ｖ値を変換してから、テクスチャマッピングを行う。なお、傾き（−θ）を求めるために、上述の操作入力において、所定のＣＧオブジェクトを構成するポリゴン三角形が指定される。この操作入力においてＣＧ画像の一点をポインティングデバイスにより指示する方法を設ければ、容易な操作が可能となる。
【００８７】
テクスチャ座標と画面の座標から傾き（−θ）を求める原理を説明する。
図１１（ａ）は、入力画像がテクスチャマッピングされるポリゴン三角形を示している。
この図において、（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）はポリゴン三角形の頂点座標を示し、また、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）は各頂点座標に対応したテクスチャ座標を示している。
【００８８】
各頂点のうち、例えば、ｖの値が最大となる頂点に着目する。ここでは、ｖ３＞ｖ１、ｖ３＞ｖ２であるとして、頂点座標が（ｘ３，ｙ３）である頂点に着目する。なお、ｖの値が最大となる頂点が２個あるときは、ｖの値が最小となる頂点に着目すればよい。
【００８９】
（ｘ３，ｙ３）に対する辺の延長直線上に、ｕの値がｕ３となる点がある。図において、この点の座標を（ｘ４，ｙ４）で示しており、対応するテクスチャ座標を（ｕ３，ｖ４）としている。なお、図では、この点が辺上にあるように示しているが、この点は辺上にあるとは限らない。
【００９０】
上述の座標（ｘ４，ｙ４）の点と、座標（ｘ３，ｙ３）の点とを結ぶ線が、テクスチャ座標の垂線である。一方、ｘｙ座標系での垂線は、座標（ｘ４，ｙ４）の点と、座標（ｘ５，ｙ５）の点とを結ぶ線である。座標（ｘ５，ｙ５）に対するテクスチャ座標（ｕ５，ｖ５）は、頂点間比率をｕｖに適用すれば得られる。
【００９１】
これらのｕｖ座標値をテクスチャ座標（空間）で見ると、図１１（ｂ）に示すようになる。ポリゴンで垂線となる方向にテクスチャ座標の垂線が一致するようにするには、図から明らかなように、−θだけ、テクスチャ画像を回転させればよい。このようにして、指定されたポリゴン三角形の頂点座標とｕｖ座標値（テクスチャ座標）から、テクスチャ画像を画面の垂直と一致させるための傾き（−θ）が得られる。なお、テクスチャ座標には、剪断変形が加わることがあるため、垂直を一致させるための傾きと、水平を一致させる傾きとは、必ずしも一致しない。
【００９２】
このように、操作者は、所定のＣＧオブジェクトの表面にテクスチャマッピングされる画像の回転角度を指定することで、この所定のＣＧオブジェクトの表面にテクスチャマッピングされる画像の回転角度を所望の回転角度、例えば正立にすることができる。なお、この回転角度指定を、上述のズーム指定、シフト指定と併せて適用することも可能である。一般表現すると、アフィン変換を設定する、と言える。
【００９３】
次に、ＣＧアニメーションについて説明する。このアニメーションの場合には、上述したように入力画像がテクスチャマッピングされるオブジェクトの態様は時間経過と共に変化していく。この場合、座標設定手段１８０が受ける回転角度の指定は、アニメーション中の所定フレームにおけるオブジェクトの表面にテクスチャマッピングされる入力画像の回転角度の指定となる。
【００９４】
ＣＧアニメーションは、タイムライン上の複数の時刻（フレーム）に対して、ＣＧ（仮想三次元空間）の状態を規定して作成される。各時刻（フレーム）は、キーフレーム（ＫＦ）と呼ばれる。キーフレームとキーフレームとの間の時刻（フレーム）では、前後のキーフレームで異なるパラメータが補間されてＣＧの状態が決められる。
【００９５】
ＣＧアニメーションでは、ポイントとなるような、オブジェクトの配置状況は、キーフレームにおいて規定されることが多い。これは、補間の途中を所望の状態にするのは、制作が難しいためである。そのため、ＣＧアニメーションに対して、座標設定手段１８０から入力を行う場合には、ポイントになるＫＦにおいて、操作入力することで、望む画像を得ることができる。
【００９６】
例えば、図１２（ａ）〜（ｄ）のアニメーションで、図示した時刻ｆ１，ｆ２，ｆ３，ｆ４がキーフレームであるとする。そのうち、時刻ｆ２において、テクスチャマッピングする画像をｙ軸（Ｖ座標方向）が垂直方向を向いた、正立の状態にしたいとする。図１２（ｂ）が、丁度それを意味する。
【００９７】
操作者は、時刻ｆ２のキーフレームを選択し、その状態で正立する様にテクスチャ座標を設定するように指定すればよい。そのために、この実施の形態においては、次の様に動作する。
【００９８】
図１３は、座標設定手段１８０の機能の概念的ブロック構成の一例を示している。すなわち、座標設定手段１８０は、テクスチャ座標決定手段１８０ａおよびテクスチャ座標回転手段１８０ｂを有している。テクスチャ座標決定手段１８０ａは、操作者からテクスチャ座標の変更操作を受ける機能である。また、テクスチャ座標回転手段１８０ｂは、操作者の指定に従い、テクスチャ座標を変換する機能である。
【００９９】
画像マッピング手段１５０は、操作者が回転角度の指定を入力する場合、テクスチャ画像を回転させてテクスチャマッピングを行う。図１３に示すように座標設定手段１８０がテクスチャ座標回転手段１８０ｂを有するときには、テクスチャ座標を回転させる処理は座標設定手段１８０で行われる。しかし、座標設定手段１８０が、テクスチャ座標回転手段１８０ｂを有せず、テクスチャ座標決定手段１８０ａのみを有する構成も考えられる。その場合、例えば、画像マッピング手段１５０、あるいはその他の手段が、テクスチャ座標回転手段を備えることになる。
【０１００】
図１４のフローチャートは、図１３に示す座標設定手段１８０の処理手順を示している。
座標設定手段１８０は、ステップＳＴ１において、処理を開始し、その後に、ステップＳＴ２の処理に移る。このステップＳＴ２において、座標設定手段１８０は、ＣＧ制作手段１１０で生成されたＣＧ記述データを読み込む。このＣＧ記述データは複数のキーフレーム（ＫＦ）を有する。
【０１０１】
次に、座標設定手段１８０は、ステップＳＴ３において、操作者によるキーフレーム（ＫＦ）の選択操作を受ける。アニメーション中の時刻が指定されることになる。そして、座標設定手段１８０は、ステップＳＴ４において、ステップＳＴ３で選択されたキーフレームのＣＧ画像を表示する。
【０１０２】
次に、座標設定手段１８０は、ステップＳＴ３で表示されたキーフレームで操作するか否かを判断する。座標設定手段１８０は、操作者の、例えば「キーフレーム確定」あるいは「キャンセル」のボタン操作に基づいて、判断する。操作者が「キャンセル」のボタン操作を行うとき、座標設定手段１８０は、ステップＳＴ３に戻る。一方、操作者が「キーフレーム確定」のボタン操作を行うとき、座標設定手段１８０ａは、ステップＳＴ６の処理に移る。
【０１０３】
このステップＳＴ６において、座標設定手段１８０は、表示されているＣＧ画像の複数のポリゴン面の内の一つを選択する操作入力を受ける。一般には、図１５に示すように、メッシュの中の多数のポリゴン面から、一つの選択操作を受ける機能となる。なお、操作者はポリゴンの分割を意識する必要はなく、単に面の一点を指定すればよい。
【０１０４】
次に、座標設定手段１８０は、ステップＳＴ７において、ステップＳＴ６で選択された面に対する、テクスチャ画像の回転角度の操作入力を受ける。例えば、Ｖ座標の方向が画面上のｙ座標軸と同じ方向になるように指示される。そして、座標設定手段１８０は、ステップＳＴ８において、ポリゴン面の選択、テクスチャ画像の回転角度等の操作入力に基づいて、傾斜（−θ）を求め、テクスチャ座標を変換する（図１０参照）。この場合における、変換対象は、そのポリゴンメッシュに属するすべての頂点のテクスチャ座標である。この結果、ポリゴンメッシュにマッピングされる動画像が一様に回転（等）された状態で表示されるように変わる。
【０１０５】
次に、座標設定手段１８０は、ステップＳＴ９において、テクスチャ座標の変換結果を表示する。好ましくは、このとき画像生成手段１４０からこの変換を適用したテクスチャマッピングが施されたＣＧ画像を出力し、その画の様子を操作者に提供し、それによって判断させるとよい。そして、座標設定手段１８０は、ステップＳＴ１０において、確定の操作入力があるか否かを判断する。確定の操作入力があるときは、処理を確定し、ステップＳＴ１１において、処理を終了する。
【０１０６】
一方、確定の操作入力がないときは、ステップＳＴ３の処理に戻り、上述したと同様の処理を繰り返す。テクスチャマッピングされる面が複雑な形状の場合、面のどの点を指定するかによって結果が変わるため、試行錯誤した後に決定できる操作方法を設けることが、効果を発揮する。
【０１０７】
以上の機能により、アニメーション中の所望のフレームにおいてテクスチャマッピングされる画像が所望の正立等の状態になり、その他のフレームにおいてテクスチャマッピングされる画像はアニメーションにおけるＣＧの動きに応じてテクスチャマッピングされる面に張り付いているように動いて表示される結果となる。所望のフレームにおける希望の表示状態と、ＣＧ画像と一体化した動きとが両立できる。
【０１０８】
［画像処理装置の動作例］
図１に示す画像処理装置１００の動作例を説明する。ＣＧ制作手段１１０では、ＣＧ制作ソフトウェアにより、所定のＣＧ画像を生成するためのＣＧ記述データが生成される。このようにＣＧ制作手段１１０で生成されたＣＧ記述データは、ネットワーク１３０を介して、画像生成手段１４０および表面指定手段１２０に送られる。
【０１０９】
表面指定手段（ＧＵＩ）１２０では、ＣＧ記述データ中のオブジェクトに付与されている属性の値（名称）が選択肢とされ、操作者の操作により、入力画像をテクスチャマッピングするテクスチャマッピング対象であるオブジェクトが指定される。この指定情報（属性の値）は、表面指定手段１２０から画像生成手段１４０に送られる。
【０１１０】
マトリクススイッチ１６０では、画像選択操作手段１７０の押しボタン列１７１が操作者により押圧操作されることで、テクスチャマッピング用の画像データＬとして、９本の入力ラインに入力された画像データのいずれかが選択的に出力される。このようにマトリクススイッチ１６０で得られるテクスチャマッピング用の画像データＬは、画像マッピング手段１５０に送られる。
【０１１１】
画像生成手段１４０では、ＣＧ制作手段１１０で制作されたＣＧ記述データに基づいて、三次元空間画像であるＣＧ画像が生成される。また、上述したように、この画像生成手段１４０には、テクスチャマッピング対象であるオブジェクの指定情報が、表面指定手段１２０から送られてきている。この画像生成手段１４０により、テクスチャマッピング対象の表面に、入力画像をテクスチャマッピングするように、画像マッピング手段１５０が制御される。
【０１１２】
画像マッピング手段１５０では、画像生成手段１４０の制御により、テクスチャマッピング対象のオブジェクトの表面に、マトリクススイッチ１６０で得られる画像データＬによる画像がテクスチャマッピングされる。そして、画像生成手段１４０から導出された出力端子１４０ａには、テクスチャマッピング対象のオブジェクトの表面に画像データＬによる画像がテクスチャマッピングされたＣＧ画像の画像データＶoutが出力される。
【０１１３】
また、座標設定手段１８０では、テクスチャ座標の変更操作が受け付けられ、その変更操作の内容が記憶される。例えば、この変更操作には、オブジェクトにマッピングされるテクスチャ画像のズーム（拡大、縮小）を行うためのズーム指定操作がある。また、例えば、この変更操作には、オブジェクトにマッピングされるテクスチャ画像のシフト（垂直、水平）を行うためのシフト指定操作がある。また、例えば、この変更操作には、オブジェクトにマッピングされるテクスチャ画像の回転を行うための回転角度指定操作がある。
【０１１４】
このように、座標設定手段１８０でテクスチャ座標の変更操作が受け付けられているとき、画像マッピング手段１５０では、変更操作内容に基づいて変更が施されたテクスチャ座標により、入力画像（テクスチャ画像）のテクスチャマッピングが行われる。テクスチャ座標の変更は、例えば、座標設定手段１８０あるいは画像マッピング手段１５０により行われる。
【０１１５】
例えば、ズーム指定操作があった場合、オブジェクトの表面にテクスチャマッピングされるテクスチャ画像（入力画像）が指定されたズーム状態となるように変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。そのため、オブジェクトの表面にテクスチャマッピングされる入力画像は、指定されたズーム状態となる。
【０１１６】
また、例えば、シフト指定操作があった場合、オブジェクトの表面にテクスチャマッピングされるテクスチャ画像（入力画像）が指定されたシフト状態となるように変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。そのため、オブジェクトの表面にテクスチャマッピングされる入力画像は、指定されたシフト状態となる。
【０１１７】
また、例えば、回転角度指定操作があった場合、オブジェクトの表面にテクスチャマッピングされるテクスチャ画像（入力画像）が指定された回転角度となるように変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。そのため、オブジェクトの表面にテクスチャマッピングされる入力画像は、例えば、図１６（ａ），（ｂ）に示すように、指定された回転角度、例えば正立した状態となる。
【０１１８】
図１に示す画像処理装置１００において、座標設定手段１８０では、操作者によるテクスチャ座標の変更操作（ズーム指定操作、シフト指定操作、回転角度指定操作など）が受け付けられ、この変更操作の内容が記憶される。また、画像マッピング手段１５０では、オブジェクトの表面に入力画像をテクスチャマッピングする際に、座標設定手段１８０で記憶された変更操作内容に基づいて変更が施されたテクスチャ座標によりテクスチャマッピングが行われる。したがって、入力画像のテクスチャマッピング結果を操作者が望むようにできる。
【０１１９】
また、ＣＧ制作時に静止画をテクスチャマッピングしたＣＧと、運用時に入力画像（動画像）をテクスチャマッピングしたＣＧの両方を使用でき、かつ、入力画像をテクスチャマッピングする場合のみテクスチャ座標を変更することで、一つのＣＧ制作で複数の成果が得られ、効率が向上する。例えば静止画をテクスチャマッピングする場合はＣＧオブジェクトの表面を表現するために使用でき、入力画像をテクスチャマッピングする場合は動画像をＣＧで修飾するような意図で使用できる。
【０１２０】
＜２．変形例＞
なお、上述の図１に示す画像処理装置１００では、座標設定手段１８０は、画像生成手段１４０と一体的に形成されている。また、ＣＧ制作手段１１０で生成されたＣＧ記述データはネットワーク１３０を介して画像生成手段１４０に送られてきて、この画像生成手段１４０内に保持されている。
【０１２１】
図１７は、図１に示した画像処理装置１００を変形した画像処理装置１００Ａを示している。この図１６において、図１と対応する部分には同一符号を付し、その詳細説明は省略する。
【０１２２】
この画像処理装置１００Ａにおいては、座標設定手段１８０は、画像生成手段１４０とは別に設けられ、ネットワーク１３０を介して画像生成手段１４０に接続されている。また、この画像処理装置１００Ａにおいては、ＣＧ制作手段１１０で生成されたＣＧ記述データを保持するデータ記憶部１９０がネットワーク１３０に接続されている。画像生成手段１４０は、ＣＧ画像を生成する際には、このデータ記憶部１９０からＣＧ記述データを読み出して使用する。
【０１２３】
なお、詳細説明は省略するが、図１７に示す画像処理装置１００Ａにおけるその他は、図１に示す画像処理装置１００と同様に構成されており、同様に動作する。
【０１２４】
［その他の変形例］
アニメーションにおいて、キーフレーム以外のアニメーション中の時刻の指定を受け、その時刻のＣＧ画像を出力しつつ、上述の例と同様に座標設定手段を機能させて、テクスチャ座標の変更操作を記憶し、画像マッピング手段１５０に使用させることも可能である。
【０１２５】
上述の例ではテクスチャ座標の変更を対応するＣＧ記述データと対にして一つ記憶していたが、座標設定手段で複数の記憶を持つようにし、それらの一つを操作者が選んで画像マッピング手段１５０に使用させるようにしてもよい。
【０１２６】
さらに、クロスポイントスイッチ群１６５で選択される入力ラインのそれぞれに応じて座標設定手段に記憶領域を設け、クロスポイントスイッチ群１６５で選択される入力ライン（の番号）に応じて前記記憶領域から読み出して画像マッピング手段１５０に使用させるようにしてもよい。
【０１２７】
また、複数の画像マッピング手段を備える場合には、それぞれに対応して座標設定手段の記憶領域を設ければよい。あるいは、上述のようにそれぞれに画像を供給するクロスポイントスイッチ群で選択される入力ラインに応じた記憶領域を用いて画像マッピング手段に使用させてもよい。
【産業上の利用可能性】
【０１２８】
この発明は、作成したＣＧを生放送の運用等で使う場合に、動画像のテクスチャマッピング結果を操作者が望むようにでき、放送システムにおける特殊効果装置等に適用できる。
【符号の説明】
【０１２９】
１００，１００Ａ・・・画像処理装置、１１０・・・ＣＧ制作手段、１２０・・・表面指定手段、１３０・・・ネットワーク、１４０・・・画像生成手段、１４１・・・画像入出力部、１４２・・・ＧＰＵ、１４３・・・ローカルメモリ、１４４・・・ＣＰＵ、１４５・・・メインメモリ、１４６・・・周辺デバイス制御部、１４７・・・ＨＤＤ、１４８ａ・・・イーサネット回路、１４８ｂ・・・ネットワーク端子、１４９・・・ＵＳＢ端子、１５１・・・ＳＤＲＡＭ、１５０・・・画像マッピング手段、１６０・・・マトリクススイッチ、１６１〜１６４・・・出力バスライン、１６５〜１６８・・・クロスポイントスイッチ群、１７０・・・画像選択操作手段、１７０Ａ・・・コントロールパネル、１７１〜１７４・・・押しボタン列、１７５，１７６・・・文字表示部、１８０・・・座標設定手段、１９０・・・データ記憶部
【図１】
2011022728.tif 000004
【図２】
2011022728.tif 000005
【図４】
2011022728.tif 000006
【図５】
2011022728.tif 000007
【図６】
2011022728.tif 000008
【図７】
2011022728.tif 000009
【図８】
2011022728.tif 000010
【図９】
2011022728.tif 000011
【図１０】
2011022728.tif 000012
【図１１】
2011022728.tif 000013
【図１３】
2011022728.tif 000014
【図１４】
2011022728.tif 000015
【図１５】
2011022728.tif 000016
【図１７】
2011022728.tif 000017
【図３】
2011022728.tif 000018
【図１２】
2011022728.tif 000019
【図１６】
2011022728.tif 000020
【図１８】
2011022728.tif 000021