【手続補正書】
【提出日】平成18年8月9日(2006.8.9)
【手続補正１】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正４
【補正方法】変更
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正の内容】
【図面の簡単な説明】
【図１】本発明を具体化するための三次元ビデオグラフィックスシステムの例を示す図で
ある。
【図２】本発明を実施しうるインタラクティブ三次元コンピュータグラフィックスシステ
ム１００５全体のより詳細な模式図である。
【図３】コプロセッサ１０２０内の構成要素例のブロック図である。
【図４】三次元グラフィックスプロセッサ１１０７と、それに関連するコプロセッサ１０
２０内の構成要素のより詳細な図である。
【図５】本発明におけるスクリーン効果を例示的に示す図である。
【図６】エミュレーション処理全体の一例を示した図である。
【図７】エミュレータ１３０３と共に用いるのに適した、パーソナルコンピュータに基づ
くホストを示した図である。
【図８】好ましい実施例に係る画素フィルタリングルーチン１００の一例を示すフローチ
ャートである。
【図９】画素フィルタルーチン１００が隣接画素２つの深度値を読み出す例を示した模式
図である。
【図１０】遠くに画素ＰｉｘＡ、近くに画素ＰｉｘＢがある場合の遠近処理を示した模式
図である。
【図１１】図８に示すフローチャ−トを変更して、ｌｏｇ２（ｎ）のレンジ変換式を加え
たフローチャートである。
【図１２】ブレンディングを制御するのに用いられる、アルファ値の深度変調を行う後処
理画素フィルタ２００の一例である。
【図１３】漫画的な輪郭線処理による漫画キャラクターの一例を示す図である。
【図１４】漫画的な輪郭線処理による漫画キャラクターの別例を示す図である。
【図１５】漫画的な輪郭線処理の境界線の箇所を特定するための対象物識別値を用いた、
本発明のさらなる実施形態を示す図である。
【図１６】本実施例において、境界線を付与するための画素後処理ルーチンの一例を示す
フローチャートである。
【図１７】ルーチン３５０の変形例を示した模式図である。
【図１８】漫画的な輪郭線効果を得るために行う、対象物識別値コーディングの一例を示
す図である。
【図１９】漫画的な輪郭線効果を得るために行う、対象物識別値コーディングの別例を示
す図である。
【手続補正２】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正５
【補正方法】変更
【補正の内容】
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2001134779.tif 000001
【手続補正３】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正６
【補正方法】変更
【補正の内容】
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2001134779.tif 000002
【手続補正４】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正７
【補正方法】変更
【補正の内容】
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2001134779.tif 000003
【手続補正５】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正８
【補正方法】変更
【補正の内容】
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2001134779.tif 000004
【手続補正６】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正９
【補正方法】変更
【補正の内容】
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2001134779.tif 000005
【手続補正７】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１０
【補正方法】変更
【補正の内容】
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2001134779.tif 000006
【手続補正８】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１１
【補正方法】追加
【補正の内容】
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図１９
【補正方法】変更
【補正の内容】
【図１９】
2001134779.tif 000007
【手続補正９】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１２
【補正方法】追加
【補正の内容】
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図２０
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１３
【補正方法】追加
【補正の内容】
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１４
【補正方法】追加
【補正の内容】
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図２２
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１５
【補正方法】追加
【補正の内容】
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図２３
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１６
【補正方法】追加
【補正の内容】
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図２４
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１７
【補正方法】追加
【補正の内容】
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図２５
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１８
【補正方法】追加
【補正の内容】
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
（漫画的な輪郭線処理のさらなる実施例）
演算方法によっては、上記境界線の応用アルゴリズムでは、漫画的な輪郭線処理において、満足のいく結果が得られないことがある。図１３においてそのような例を示す。図１３における漫画キャラクタ３００には、上記のように陰影の縁３０２に境界線が付与されている。図１３から、この漫画キャラクタ３００は右手、手首を有しており、腕を前部で曲げている様子がわかる。上記の手法では、場合によって（キャラクタの腕が胴体部からどれだけ離れているかによるが）、右の手、手首、および腕の周りの縁は陰影の縁ではなく内部だと判断されるため、それらの箇所には境界線を付与しない。図１３では、漫画的な輪郭線処理がキャラクタの陰影の縁３０２だけに施された場合、漫画キャラクタ３００が部分的に消滅する、あるいはやや鮮明でなくなる様子を示す。ところが、ユーザは（塗り絵、手描きのアニメ漫画、および／または漫画本などの記憶から）手、手首および腕がはっきり示されるような境界線を期待している。
【手続補正１６】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正１９
【補正方法】追加
【補正の内容】
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
漫画キャラクタ３００が手描きであるかのように見せるには、内部の縁３０４にも境界線を付すとよい。本例においては、内部の縁は、キャラクタが自身の前部で曲げている手、手首および腕を規定している。図１４では、このキャラクタ３００の内部の縁３０４に境界線が付与されている。この内部の縁３０４は、キャラクタ３００が腕を外に向けて延ばしている場合は輪郭線の縁になるが、図１４に示す腕の位置では内部の縁になる。
【手続補正１７】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正２０
【補正方法】追加
【補正の内容】
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
本発明に係る別の局面によれば、図１４に示すような内部の縁においては、漫画的な輪郭線処理は自動的に行われる。つまり、対象物の部分によって、画素にはそれぞれ異なる識別値が付与される。たとえば、通常はアルファ情報をエンコードするのに用いられるフレームバッファ１０４０および／またはＤＲＡＭ１１２６ａ内に、ビット割り当てを行うことにより、この識別値を指定する。この指定された識別値を用いて、その画素の位置に境界線を付すかどうかを決定してもよい。たとえば、ある画素の識別値と、その画素の近辺にある（隣接した）画素の識別値とを比較する。これら２つの画素の識別値間にある所定の関係が認められた場合、境界線は付与されない。たとえば、識別値が同一の場合、これら２つの画素は同一面上にあるため、境界線は付さない。しかし、これら２つの画素の識別値が、別の所定の関係にある場合は、境界線を付与する。
【手続補正１８】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正２１
【補正方法】追加
【補正の内容】
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
図１５（Ａ）〜（Ｃ）では一例を示す。図１５（Ａ）は、３つの部分３２０、３２２および３２４に大別される対象物３１９の斜視図である。図１５（Ｂ）は、同じ対象物３１９の平面図である。対象部分３２０は四角形であり、対象部分３２２は円形であり、対象部分３２４は円錐である。ここで、グラフィックスアーチストが、円錐３２４が四角形３２０に視覚的に接触するが、円形３２２には接触しない部分、または円形が四角形に接触する部分に境界線３３０（図１５（Ａ）参照）を引こうとしていると仮定する。この場合、四角形３２０、円形３２２および円錐３２４内の画素は、それぞれ異なる識別値でコーディングされる。たとえば、四角形３２０内の画素は識別値「１」でコーディングされ、円形３２２内の画素は識別値「２」でコーディングされ、さらに円錐３２４内の画素は識別値「３」でコーディングされる。図１５（Ｃ）は、コーディング情報を記憶するフレームバッファ１０４０および／または１１２６ａのアルファ部の一例を示す（斜線を付したセルが境界線カラーを付与するセルである）。
【手続補正１９】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正２２
【補正方法】追加
【補正の内容】
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図１６は、本実施例において、境界線を付与するための画素後処理ルーチンの一例を示すフローチャートである。ルーチン３５０は、ループ（ブロック３５２−３６２）を含み、このループはフレームバッファ１０４０および／または１１２６ａに記憶される画像における画素[ｉ][ｊ]それぞれに対して行われる。上述のように、画像生成処理においては、フレームバッファで画像を描画する際、通常はアルファ値を記憶するためにビットが割り当てられているフレームバッファ内にある対象物の部分毎に識別値を設定する。ルーチン３５０において、これらアルファ値（ここではＩＤ値）をテストして境界線を引くかどうかを決定する。本例において、ルーチン３５０では、画素[ｉ][ｊ]のアルファ（ＩＤ）値および隣接画素（たとえば、画素[ｉ−１][ｊ]および画素[ｉ][ｊ−１]）のアルファ（ＩＤ）値を検索する（ブロック３５２）。その後、ルーチン３５２では、以下の演算を行い（ブロック３５４）画素[ｉ][ｊ]のアルファ（ＩＤ）値と隣接画素のアルファ（ＩＤ）値との差を求める。
ｄｉｆｆＸ＝｜（アルファ[ｉ][ｊ]−アルファ[ｉ−１][ｊ]）｜
ｄｉｆｆＹ＝｜（アルファ[ｉ][ｊ]−アルファ[ｉ][ｊ−１]）｜
【手続補正２０】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正２３
【補正方法】追加
【補正の内容】
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
ルーチン３５０の変形例として、対象物をある特別なアルファ識別値（たとえば０ｘ００）でコーディングして、境界線を付与するために無視すべき対象物内の画素を特定する（図１７参照）。境界線が付与されていない対象物をビットマップとして描画する際に有用である（例えば、爆発のアニメーション等）。
【手続補正２１】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正２４
【補正方法】追加
【補正の内容】
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
図１８は、上記ルーチン３５０を用いて、図１３および図１４に示す対象物３００にいかに効率良く境界線を引くかを示す。本例において、対象物は部分毎にそれぞれ異なるアルファ（ＩＤ）値でコーディングされている。たとえば、対象物３００は２本の腕３１１ａ、３１１ｂおよび胴体３０９を備える。腕はそれぞれ手３１３、手首部３１５、下腕部３１２、肘部３０８、上腕部３１０、および肩部３１７を備える。これら部位は、以下のようにそれぞれ異なるアルファＩＤでコーディングされる。
身体部 アルファＩＤ
左手３１３ａ １
左手首３１５ａ ２
左下腕３１２ａ ３
左肘３０８ａ ４
左上腕３１０ａ ５
左肩３１７ａ ６
胴体３０９ ７
右肩３１７ｂ ８
右上腕３１０ｂ ９
右肘３１１ｂ １０
右下腕３１２ｂ １１
右手首３１５ｂ １２
右手３１３ｂ １３
上記アルファＩＤコーディングの例によれば、ルーチン３５０では、図１８に太線で示されているような境界線を引く。しかし、部位の区切り部分（点線で示す）には境界線を引かない。
【手続補正２２】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正２５
【補正方法】追加
【補正の内容】
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
上記コーディングは、同じ対象物３００の部位の区切り部分に境界線を引くのにも用いることができる。従来の塗り絵や手描きアニメ漫画などでは、このような区切り部分にも漫画的な輪郭線処理を施して、さらに関節を規定したり、筋肉の発達を想像させたりしている。図１９（Ａ）〜（Ｃ）では、キャラクタ３００の上腕３１０と下腕とをつなぐ関節３０８（つまり肘）を特に示す。上記コーディングを用いて、図１９（Ｂ）および（Ｃ）に示すように、関節３０８を曲げることで上腕３１０と３１２とが互いに隣接（接触）して位置した場合、ルーチン３５０では（下腕３１０のアルファＩＤと、上腕３１２のアルファＩＤとの差が１より大きいかどうかに基づいて）、部位３１０と３１２との間に境界線セグメント３１６を付与する。