JP4349733B2 - Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system - Google Patents
Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system Download PDFInfo
- Publication number
- JP4349733B2 JP4349733B2 JP2000289625A JP2000289625A JP4349733B2 JP 4349733 B2 JP4349733 B2 JP 4349733B2 JP 2000289625 A JP2000289625 A JP 2000289625A JP 2000289625 A JP2000289625 A JP 2000289625A JP 4349733 B2 JP4349733 B2 JP 4349733B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- depth
- value
- color
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、三次元コンピュータグラッフィクスに関し、より特定的には、非写実的な三次元画像化に関する。さらに特定すれば、本発明は、コンピュータによる三次元対象物の陰影上の線およびその他その縁に見られる境界の生成・表示方法および装置に関する。
【0002】
【従来の技術】
コンピュータグラッフィックスに関する研究の多くは、リアルな画像の生成に注目する傾向にあり、これまでかなりの成功を収めてきている。今では、コンピュータの作り出す画像は非常にリアルなものとなってきており、写真と見分けることができないほどである。たとえば、コンピュータによって作り出された特殊効果による、非常に写実的で本物であるかのような恐竜、異星人などを映画やテレビで見かけることも多い。新人のパイロットが訓練を受けているコンピュータによるフライトシミュレータは、非常にリアルで、実際の飛行状態をほぼ再現している。低価格な家庭用ビデオゲームシステムにおいても、驚くべきレベルのリアリズムが実現されており、ゲームのプレーヤは、たとえば、本物のレースカーでトラックを走行しているような、雪や氷に覆われたスロープをスキーで滑っているような、中世の城の中を歩いているような錯覚を覚えるほどである。大抵のゲームでは、このリアリズムによる錯覚がゲームプレイ体験を非常にすばらしいものにしている。
【0003】
しかし、場合によってはリアルでない画像の方が好ましいこともある。たとえば、対話型ビデオやコンピュータゲームなどにおいて、現実の(または空想上の)世界をリアルにシミュレートするのではなく、わざと非現実的なパロディー調の漫画キャラクタが、たくさん登場する漫画の世界を創造して表示すれば、娯楽的価値を持たせることができる。例えば、このようなゲームでは、動き、音声、および対話性をもたせながら、手描きの漫画本を再現するように努めている。
【0004】
このような三次元コンピュータシステムにおいて、望ましい視覚効果の1つとしては、表示対象物の陰影の線やその他その縁にみられる境界をはっきりと、確かなものにすることである。このような境界線によって、ある種の画像は鮮明になる。たとえば、漫画キャラクタの輪郭、風景の丘や山、壁の縁など、それぞれ異なる面をユーザがよりはっきり区別しやすくなる。さらに、このような境界線によって、漫画家による手描きであるかのような望ましい印象が生まれやすくなる。
【0005】
【発明が解決しようとする課題】
ここで、キャラクタなどの対象物の縁周りの境界線のような、リアルでない効果を付与する方法の一つに、ある対象物を形成するポリゴンの縁に隣接した別の対象物と区別するラインをはっきり示す方法がある。
【0006】
しかし、別の対象物とのボーダをはっきり示すと、画像処理が極めて複雑化する。その結果、リソースの限られたシステムにおいて、この方法は画像生成の遅延や効率の低下を招く。対話型三次元ゲームシステムなどの低価格の三次元グラッフイックスシステムにおいては、効率は極めて重要である。より効率のよい技術を用いて視覚効果を生成する方が、乏しいシステムリソースにかかる負担を軽減し、さらには、速度やその他の性能にそれほど影響を及ぼすことなく、視覚効果を総合的に向上させることができる。
【0007】
【課題を解決するための手段および発明の効果】
本発明は、家庭用ビデオゲームコンソールなどの、三次元グラフィックスシステムにおいて、陰影の線やその縁における境界線を表示するための効率的な技術を提供することによって、この問題を解決する。
【0008】
第1の発明によれば、画像がフレームバッファにおいて描画された後、境界線を生成する。本発明では、フレームバッファに記憶された数値を用いて、対象物の輪郭またはその他、縁にどの画素が位置しているかを求め、ボーダカラーをこれら画素に選択的にブレンドして表示する。
【0009】
また、或る実施例によれば、輪郭の縁は、ある画素の深度値とその周辺画素の深度値とを比較して配置される。たとえば、「距離」値が或る画素の深度とその周辺画素の深度との間の距離の絶対値を基に計算される。その後、この距離値を基に、望ましい境界線のカラーがその画素のカラー値にブレンドされる。たとえば、距離値は画素のアルファ値を計算するために用いられ、このアルファ値は画素のカラーにブレンドされるボーダカラーの量を制御するのに用いられる。
【0010】
別の例では、さらに深度変化を利用する。たとえば、距離値と、画素深度の関数であるさらに設けられた値とを基に画素のアルファ値を計算して、画素の深度値によって変化したアルファ値を求める。この深度によって変化させたアルファ値を基に、ボーダカラーを画素カラーにブレンドする。
【0011】
さらなる実施例では、対象物の輪郭上ではなく、漫画家が境界線を引くであろう或る内部の縁の上に境界線を引く。例えば、漫画キャラクタが身体の前で腕を曲げている状態を考える。この場合、漫画家は、キャラクタの腕の輪郭の周りに境界線を引くと思われる。たとえ、このキャラクタが、腕の輪郭の縁が全体の輪郭の内部に位置するように胴体の前部で腕を曲げていても、である。本発明のさらなる特徴によれば、画像の画素にはそれぞれ異なる識別値が割り当てられる。この識別値は、典型的にはアルファ値のために用意されたフレームバッファメモリ領域等に格納される。これらの識別値は、境界線のある縁と、境界線が付与されない縁とを識別するのに用いられる。
【0012】
【発明の実施の形態】
以下、本発明における実施の形態について、図面を参照しながら説明する。図1は、本発明に係る、境界線を表示するための三次元ビデオグラフィックスシステム1005の例を示す。
【0013】
システム1005は、たとえば、ゲームコントローラ1007および/または他の手入力装置からの対話型リアルタイム入力に応答し、表示装置1009(たとえば、家庭用カラーテレビ受像機、ビデオモニタ、または他のディスプレイなど)に映像表示を行う。システム1005は、外部記憶媒体1011(たとえば、交換可能なビデオゲームカートリッジ、CD−ROM、または他の光ディスクなど)に記憶されたビデオゲームプログラムなどのコンピュータプログラムの制御によって動作する。
【0014】
本例においては、システム1005は、プロセッサ1010,三次元グラフィックスコプロセッサ1020およびメモリ1030を含む。プロセッサ1010は、三次元グラフィックスコマンドをグラフィックスコプロセッサ1020に与える。グラフィックスコプロセッサ1020は、三次元グラフィックスコマンドに従って、三次元の世界における二次元ビューをインタラクティブに生成する。たとえば、グラフィックスコプロセッサ1020は、ハードウェアによる三次元グラフィックスパイプラインを含む。このパイプラインは、三次元空間において規定されたポリゴンなどのグラフィックスプリミティブを操作して、任意に選ばれた視点に基づく視野面に投影された三次元空間の二次元画像を表す画素を生成する。本例において、ユーザは、ゲームコントローラ1007を用いて、リアルタイムでインタラクティブに視点を変更することができる。
【0015】
グラフィックスコプロセッサ1020は、生成した表示画素を、メモリ装置1030内のフレームバッファ1040に記憶する。フレームバッファ1040は、カラーフレームバッファ1042と、深度(Z)バッファ1044とを備える。本例において、カラーフレームバッファ1042は、赤、緑、青(RGB)のカラー値の二次元アレイ、および対応するアルファ(A)値を記憶する。記憶されたRGBカラー値と表示装置1009上に表示される画素との間は一対一の関係であってもよい。または、フレームバッファ1042は、副サンプルを記憶してもよい。Zバッファ1044は、カラーフレームバッファに記憶されている各画素または副画素についての深度値(たとえば、視点に対するz方向の距離)を記憶する。よく知られているように、Zバッファ1044は、グラッフィクスパイプラインが画像を「構築」する際に、さまざまな目的に用いられる(たとえば、見えない面の除去など)。
【0016】
好ましい実施例において、カラーフレームバッファ1042および/またはzバッファ1044の内容は、ボーダカラーを、カラーフレームバッファ42に記憶されている画素カラー値に選択的にブレンドして、対象物の境界線を規定する役割も果たす。具体的には、システム1005は、画素フィルタ50を備えていても良い。画素フィルタ50は、三次元グラフィックスコプロセッサ1020によって描画される画像の画素値を処理して、境界線カラーを表示する対象物の輪郭線、および/または他の縁の上に選択的に付与する。好ましい実施例における画素フィルタ50は、画像データがフレームバッファ1040または他の画素メモリにおいて描画された後に、画素後処理の段階で動作する。たとえば、画素フィルタ50は、グラフィックスコプロセッサからの画像データと、メモリ1030への画像データとの結合処理中に、三次元グラフィックスコプロセッサ1020で描画されてバッファされた画像データに、境界線などの非写実的な画像要素を付与してもよい。
【0017】
図2は、本発明を実施しうるインタラクティブ三次元コンピュータグラフィックスシステム1005全体のより詳細な模式図である。システム1005は、魅力的なステレオ音声を伴うインタラクティブ三次元ビデオゲームを行うために用いることができる。光ディスク1011などの適切な記憶媒体を光ディスク再生装置1134に挿入することによって、いろいろなゲームを行うことができる。ゲームを行う者は、手動コントローラ1007などの入力装置を操作することによって、システム1005とリアルタイムに対話することができる。このコントローラ1007は、ジョイスティック、ボタン、スイッチ、キーボード、キーパッドなど、さまざまな操作器が含まれる。
【0018】
本例において、メインプロセッサ1010が、手動コントローラ1007(および/または他の入力装置)からの入力を受ける。メインプロセッサ1010は、インタラクティブにこのようなユーザ入力に応答し、たとえば外部記憶装置1011から提供される、ビデオゲームや他のグラフィックスプログラムを実行する。たとえば、メインプロセッサ1010は、衝突検出や動画処理のほかにも、様々なリアルタイムでインタラクティブな制御機能を行うことが可能である。
【0019】
メインプロセッサ1010は、三次元グラフィックスコマンドや音声コマンドを生成し、これらをグラフィックスおよび音声コプロセッサ1020に送信する。グラフィックスおよび音声コプロセッサ1020は、これらのコマンドを処理して、魅力的な画像を表示装置1009に表示し、ステレオ音声をステレオスピーカ1137R、1137L、または適切な音声生成装置において生成する。
【0020】
システム1005は、TVエンコーダ1140を含む。TVエンコーダは、画像信号をコプロセッサ1020から受信し、標準的な表示装置1009(たとえば、コンピュータモニタや家庭用カラーテレビ受像機)での表示に適するように合成ビデオ信号に変換する。また、システム1005は、オーディオコーデック(圧縮器/伸長器)1138を含む。
【0021】
オーディオコーデック1138は、デジタル化された音声信号を圧縮/伸長する(さらに、デジタルアナログ音声信号形式間の変換を行ってもよい)。オーディオコーデック1138は、バッファ1141を介して音声入力を受信し、コプロセッサ1020に送信する(コプロセッサ1020における処理には、コプロセッサが生成する他の音声信号、および/または、光ディスク装置1134のストリーミング音声出力を介して受信した他の音声信号とのミキシングなどがある)。
【0022】
コプロセッサ1020は、音声関連情報を音声タスク専用のメモリ1144に記憶させる。コプロセッサ1020は、処理後の音声出力信号をオーディオコーデック1138に与えて、圧縮および(たとえば、バッファ増幅器1142Lおよび1142Rを介して)アナログ信号への変換を行い、スピーカ1137Lおよび1137Rによって再生できるようにする。
【0023】
コプロセッサ1020は、システム1005内の様々な周辺機器と通信することができる。たとえば、パラレルデジタルバス1146は、光ディスク装置1134との通信に用いられてもよい。シリアル周辺バス1148は、様々な周辺機器との通信に用いられてもよい。この周辺機器の例としては、ROMおよび/またはリアルタイムクロック1150,モデム1152,フラッシュメモリ1154などが挙げられる。さらなる外部シリアルバス1156は、拡張メモリ1158(たとえば、メモリカード)との通信に用いられてもよい。
【0024】
図3は、コプロセッサ1020内の構成要素例のブロック図である。コプロセッサ1020は、1つの集積回路であって、三次元グラフィックスプロセッサ1107と、プロセッサインターフェース1108と、メモリインターフェース1110と、オーディオディジタル信号プロセッサ(DSP)1162と、オーディオメモリインターフェース(I/F)1164と、オーディオインターフェースおよびミキサ1166と、周辺制御器1168と、表示制御器1128とを含む。
【0025】
三次元グラフィックスプロセッサ1107は、グラフィックス処理タスクを行い、オーディオディジタル信号プロセッサ1162は、オーディオ処理タスクを行う。表示制御器1128は、メモリ1030から画像情報をアクセスして取り出し、表示装置1009に表示するためにTVエンコーダ1140へ与える。オーディオインターフェースおよびミキサ1166は、オーディオコーデック1138とのインターフェースとなり、発生源の異なる音声(たとえば、ディスク1011からのストリーミングオーディオ入力、オーディオDSP1162の出力、オーディオコーデック1138を介して受信した外部オーディオ入力など)を混合することも可能である。プロセッサインターフェース1108は、メインプロセッサ1010およびコプロセッサ1020間のデータや制御に関するインターフェースとなる。メモリインターフェース1110は、コプロセッサ1020およびメモリ1030間のデータや制御に関するインターフェースとなる。本例において、メインプロセッサ1010は、プロセッサインターフェース1108とコプロセッサ1020の一部であるメモリインターフェース1110とを介して、メインメモリ1108にアクセスする。周辺制御器1168は、コプロセッサ1020および上述の様々な周辺機器(たとえば、光ディスク装置1134、コントローラ1007、ROMおよび/またはリアルタイムクロック1150、モデム1152、フラッシュメモリ1154、およびメモリカード1158)間のデータや制御に関するインターフェースとなる。オーディオメモリインターフェース1164は、オーディオメモリ1144とのインターフェースを提供する。
【0026】
図4は、三次元グラフィックスプロセッサ1107と、それに関連するコプロセッサ1020内の構成要素のより詳細な図である。三次元グラフィックスプロセッサ1107は、コマンドプロセッサ1114と、三次元グラフィックスパイプライン1116とを含む。メインプロセッサ1010は、グラフィックスデータのストリームをコマンドプロセッサ1114とやり取りする。コマンドプロセッサ1114は、このような表示コマンドを受信し、(メモリ1030から処理に必要な追加のデータを取得して)解析を行い、三次元処理および描画のために頂点コマンドのストリームをグラフィックスパイプライン1116に与える。グラフィックスパイプライン1116は、これらのコマンドに基づいた三次元画像を生成する。処理後の画像情報は、メインメモリ1030に転送され、表示制御器1128によってアクセスできるようにしてもよい。表示制御器1128は、表示装置1009にパイプライン1116のフレームバッファ出力を表示する。メモリ要求アービトレーション回路130は、グラフィックスパイプライン1116と、コマンドプロセッサ1114と、表示部128とにおけるメモリアクセスを調停する。
【0027】
図4に示すように、グラフィックスパイプライン1116は、変換部1118と、セットアップ/ラスタライザ1120と、テクスチャ部1122と、テクスチャ環境部1124と、画素エンジン1126とを含んでもよい。グラフィックスパイプライン1116において、変換部1118は、様々な三次元変換動作を行い、さらに、照明効果やテクスチャ効果を行ってもよい。変換部1118の行う処理は、たとえば、頂点毎に入力される形状のオブジェクト空間からスクリーン空間への変換、入力されるテクスチャ座標の変換、射影テクスチャ座標の計算、ポリゴンクリッピング、頂点毎の照明度計算、バンプマッピングテクスチャ座標の生成などがある。セットアップ/ラスタライザ1120は、セットアップ部を含む。セットアップ部は、変換部1118から頂点データを受信し、三角形のセットアップ情報を複数のラスタライザに送信する。ラスタライザは、縁のラスタ化、テクスチャ座標のラスタ化、カラーのラスタ化を行う。テクスチャ部1122は、テクスチャリングに関連して様々なタスクを行う。このタスクには、マルチテクスチャ処理、キャッシュ後のテクスチャ伸長処理、テクスチャフィルタリング、浮き出しバンプマッピング、射影テクスチャを用いた陰影付け、およびアルファ透明度および深度を用いたBLITなどがある。テクスチャ部1122は、フィルタリングされたテクスチャ値をテクスチャ環境部1124に出力する。テクスチャ環境部1124は、ポリゴンカラーとテクスチャカラーとをブレンドし、テクスチャフォグやその他の環境関連機能を行う。画素エンジン1126は、zバッファリングやブレンドを行い、データを集積回路上のフレームバッファメモリに記憶する。
【0028】
図5に示すように、グラフィックスパイプライン1116は、フレームバッファ情報を局所的に記憶するDRAMメモリ1126aを搭載してもよい。集積回路上のフレームバッファ1126aは、集積回路上には備えられていないメインメモリ1030に定期的に書き込まれ、集積回路上の表示部1128がアクセスできるようにする。たとえば、画素フィルタ50は、この書き込み処理中に境界線などの輪郭を漫画に付与するよう動作する。グラフィックスパイプライン1116のフレームバッファ出力(最終的にはメインメモリ1030に記憶される)は、表示部1128によってフレーム毎に読み出される。表示部1128は、表示装置1009における表示のために、ディジタルRGB画素値を提供する。
【0029】
上述したビデオゲームシステムの構成要素の或るものは、上述の家庭用ビデオゲームコンソール構成以外のものとして実現することも可能である。一般的に、家庭用ビデオゲームソフトウェアは、特定の家庭用ビデオゲームシステム上で実行されるように記述されている。このビデオゲームソフトウェアは、異なるシステムのハードウェアやソフトウェア構成を考慮に入れて、その異なるシステムに「移植される」(変換される)ことも、場合によっては可能である。このような「移植」には、ビデオゲームのソースコードにアクセスする必要があることが多い。この他に、構成の異なるシステムにおいてゲームソフトウェアを実行させるための方法としては、第2のシステムに第1のシステムをエミュレートさせる方法がある。第2のシステムが第1のシステムのハードウェアおよびソフトウェア資源をうまくエミュレートまたはシミュレートすることができれば、第2のシステムはビデオゲームソフトウェアのバイナリで実行可能な画像をうまく実行することができ、ゲームソフトウェアのソースコードにアクセスする必要はなくなる。
【0030】
家庭用ビデオゲームにおいて、エミュレータは、ゲームプログラム用のシステム、すなわちゲームプログラムを実行することができるように設計されているシステムとは異なるシステムである。一例として、エミュレータシステムは、ゲームソフトウェア用のシステムのものとは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供する。エミュレータシステムは、ゲームソフトウェア用のシステムのソフトウェアおよび/またはハードウェア構成要素を模倣するソフトウェアおよび/またはハードウェア構成要素を含む。たとえば、エミュレータシステムは、当該ゲームソフトウェア用システムのハードウェアおよび/またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行するパーソナルコンピュータなどの汎用ディジタルコンピュータを備えてもよい。
【0031】
エミュレータソフトウェアは、コンソールを用いた図1ないし図4に示すような家庭用ビデオゲームシステム用のゲームをパーソナルコンピュータやその他の汎用ディジタルコンピュータ上で実行できるように開発されてもよい。このような汎用ディジタルコンピュータ(たとえば、IBMやマッキントッシュのパーソナルコンピュータやその互換機)には、DirectXや他の標準三次元グラフィックスコマンドアプリケーションプログラムインターフェース(API)に対応する三次元グラフィックスパイプラインを提供する三次元グラフィックスカードを搭載しているものがある。また、サウンドコマンドの標準セットに基づいて、高品質のステレオサウンドを提供するステレオサウンドカードを搭載しているものもある。エミュレータソフトウェアを実行するこのようなマルチメディアハードウェア搭載パーソナルコンピュータは、専用の家庭用ビデオゲームコンソールハードウェア構成におけるグラフィックス性能やサウンド性能に近づくのに十分な性能を有することもある。エミュレータソフトウェアは、パーソナルコンピュータプラットフォーム上のハードウェア資源を制御して、家庭用ビデオゲームコンソールプラットフォームが行う処理(このプラットフォームのためにゲームプログラマはゲームソフトウェアを書いたのであるが)、三次元グラフィックス、サウンド、周辺機器、および他の機能をシミュレートする。
【0032】
図6は、エミュレーション処理全体の一例を示す。本エミュレーション処理の例は、ホストプラットフォーム1201と、エミュレータ要素1303と、ROMまたは光ディスク1305などの記憶媒体や他の記憶装置上のバイナリ画像を実行可能なゲームソフトウェアとを用いる。ホスト1201は、たとえばパーソナルコンピュータや他の型のゲームコンソールのような汎用または専用のディジタルコンピューティング装置であってもよい。
【0033】
エミュレータ1303は、ホストプラットフォーム1201において実行されて、記憶媒体1305からのコマンド、データおよび他の情報をホスト1201によって処理可能な形式へリアルタイムで変換する。たとえば、エミュレータ1303は、図1ないし図4に示すような家庭用ビデオゲームプラットフォーム用のプログラム命令を取り出し、このプログラム命令をホスト1201が実行または処理できるような形式に変換する。一例として、ゲームプログラムがZ−80、MIPS、IBM PowerPCを用いたプラットフォームまたは他の特定の処理装置上で実行されるように書かれたものであって、かつホスト1201が異なる(たとえば、インテル社)の処理装置を用いたパーソナルコンピュータである場合に、エミュレータ1303は、記憶媒体1305から1つまたは一連のプログラム命令を取り出し、1つまたはそれ以上のインテル社のプログラム命令に変換する。
【0034】
同様に、エミュレータ1303は、図3に示すグラフィックスおよびオーディオコプロセッサによる処理用のグラフィックスコマンドやオーディオコマンドを取り出し、ホスト1201において利用可能なグラフィックスハードウェアおよび/またはソフトウェアならびにオーディオ処理資源が処理できるような形式に変換する。一例として、エミュレータ1303は、このようなコマンドを、ホスト1201の特定のグラフィックスおよび/またはサウンドカードが(たとえば、標準のDirectXやサウンドアプリケーションプログラムインターフェース(API)を用いて)処理できるようなコマンドに変換してもよい。
【0035】
上述のようなビデオゲームシステムの機能の一部または全部を提供するために用いられるエミュレータ1303は、エミュレータを用いて実行されるゲーム用の様々な選択肢や画面モードの選択を簡略化または自動化するグラフィックユーザインターフェース(GUI)を備えていてもよい。一例として、このようなエミュレータ1303は、当該ビデオゲームソフトウェアが元来想定していたホストプラットフォームに比して高い機能性をさらに有していてもよい。
【0036】
図7は、エミュレータ1303と共に用いるのに適した、パーソナルコンピュータに基づくホスト1201を示す。パーソナルコンピュータシステム1201は、処理部1203と、システムメモリ1205とを含む。システムバス1207は、システムメモリ1205などの様々なシステム要素と、処理部1203とを接続する。システムバス1207は、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなど、数種のバス構造(各々のバス構造には様々なバスアーキテクチャのうちのいずれかが用いられる)のいずれであってもよい。
【0037】
システムメモリ1207は、読み出し専用メモリ(ROM)1252と、ランダムアクセスメモリ(RAM)1254とを含む。ROM1252には、ベーシック入出力システム(BIOS)1256が記憶されており、これには、立ち上げ時などにパーソナルコンピュータシステム1201内の要素間の情報伝達を助ける基本ルーチンが含まれている。
【0038】
パーソナルコンピュータシステム1201は、様々なドライブおよび関連するコンピュータが読み出し可能な媒体をさらに含む。ハードディスクドライブ1209は、(典型的には固定の)磁気ハードドライブ1211に対して、読み出しや書き込みを行う。磁気ディスクドライブ1213は、着脱可能な「フロッピー」や他の磁気ディスク1215に対して、読み出しや書き込みを行う。光ディスクドライブ1217は、CD−ROMや他の光学媒体などの着脱可能な光ディスク1219に対して読み出しを行い、構成によっては書き込みも行う。ハードディスクドライブ1209、磁気ディスクドライブ1213、および光ディスクドライブ1217は、それぞれ、ハードディスクドライブインターフェース1221、磁気ディスクドライブインターフェース1223、および光ドライブインターフェース1225によって、システムバス1207に接続されている。これらドライブおよび関連するコンピュータが読み出し可能な媒体は、コンピュータが読み出し可能な命令、データ構造、プログラムモジュール、ゲームプログラム、およびパーソナルコンピュータシステム1201のための他のデータを不揮発的に記憶する。
【0039】
また、他の構成においては、コンピュータがアクセス可能なデータを保存することができる、コンピュータが読み出し可能な他の媒体(たとえば、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイ(bernoulli)カートリッジ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)など)が用いられてもよい。
【0040】
エミュレータ1303を含む多くのプログラムモジュールが、システムメモリ1205のハードディスク1211、着脱可能な磁気ディスク1215、光ディスク1219および/またはROM1252および/またはRAM1254に記憶されてもよい。このようなプログラムモジュールは、グラフィックスおよびサウンドAPI、1つ以上のアプリケーションプログラム、他のプログラムモジュール、プログラムデータ、およびゲームデータを提供するオペレーティングシステムを含んでもよい。ユーザは、キーボード1227やポインティングデバイス1229などの入力装置を用いて、パーソナルコンピュータシステム1201に対して、コマンドや情報を入力する。他の入力装置としては、マイクロフォン、ジョイスティック、ゲームコントローラ、衛星放送用アンテナ、スキャナなどがある。このような入力装置は、システムバス1207に接続しているシリアルポートインターフェース1231を介して、処理装置1203に接続される場合が多いが、たとえばパラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)などの他のインターフェースによって接続されてもよい。また、システムバス1207には、モニタ1233や他の型の表示装置が、ビデオアダプタ1235などのインターフェースを介して接続されている。
【0041】
パーソナルコンピュータ1201は、インターネットなどのワイドエリアネットワーク1152と通信を行うためのモデム1154などの手段をさらに含んでもよい。モデム1154は、内蔵でも外付けでもよく、シリアルポートインターフェース1231を介してシステムバス1207に接続される。パーソナルコンピュータ1201は、ネットワークインターフェース1156をさらに備えていてもよく、これによって遠隔計算装置1150(たとえば、他のパーソナルコンピュータ)とローカルエリアネットワーク1158を介して通信することができる(このような通信は、ワイドエリアネットワーク1152、または他の通信路、たとえばダイアルアップ方式や他の通信手段などを介して行われてもよい)。パーソナルコンピュータシステム1201は、典型的には、プリンタなどの標準周辺機器のような他の周辺出力装置を含む。
【0042】
たとえば、ビデオアダプタ1235は、三次元グラフィックスパイプラインチップセットを含んでもよい。このチップセットは、マイクロソフト社のDirectXのような標準三次元グラフィックスアプリケーションプログラマインターフェースに基づいて出された三次元グラフィックスコマンドに応答して、三次元グラフィックス描画を高速に行う。さらに、一連のステレオスピーカ1237が、システムバス1207に接続されており、この接続は、バス1207によって与えられるサウンドコマンドに基づく高品質ステレオサウンド生成に対応したハードウェアおよび内蔵ソフトウェアを提供する従来の「サウンドカード」などのサウンド生成インターフェースを介して行われる。このようなハードウェアの性能により、ホスト1201は、記憶媒体1305に記憶されたビデオゲームを行うのに充分な速度のグラフィックスおよびサウンド性能を提供することができる。
【0043】
(本発明による非写実的な漫画的な輪郭線処理法の例)
本発明による漫画の輪郭線/境界線処理は、ハードウエアおよび/またはソフトウエアで有利に実行され得る。時間が充分にあると仮定すると、グラッフィクスコプロセッサ1020が画像をフレームバッファにおいて描画した後であってその画像が表示される前に、プロセッサ1010は、フレームバッファ1040にアクセスして画素後処理を行い、境界線カラーをカラーフレームバッファ1042にブレンドする。あるいは、グラフィックスコプロセッサ1020内にハードウエアおよび/またはソフトウエアを備えて、この機能を行わせる。上述のように、コプロセッサ1020は、グラッフィクスパイプライン内のアルファブレンディングおよびzバッファ演算回路などの既存のハードウエアサポートを利用して、画素後処理/フィルタリングを行い、対象物の縁周りに境界線を付与してもよい。あるいは、プロセッサ1010および/または表示部1128が、フレームバッファ1040の内容を基に画素フィルタリング処理を行うこともできる。
【0044】
コプロセッサ1020がこの画素後処理を完了すると、変更された画素値はフレームバッファメモリ1030に書き戻される。このフレームバッファメモリ1030から、コプロセッサ内のビデオ生成回路によって内容がアクセスされて、表示装置1009上に映像が生成される。あるいは、変更された値は他の場所へ(たとえば、直接、表示装置1005へ)送られる。この伝送効率を高めるために、フレームバッファ1040のデータをダブルバッファしてもよく、DMAを使用してもよい。フレームバッファ1040が1ラインずつ読み出され、かつ処理される場合、前に位置するラインのZ値を保持するためにラインバッファを使用してもよい。
【0045】
図8は、好ましい実施例に係る画素フィルタリングルーチン100の一例を示すフローチャートであって、画素フィルタ50に対して画素後処理境界線を行う。図8の画素フィルタルーチン100は、フレームバッファ1040(ブロック102)内に記憶された画素[x][y]のそれぞれに対して行われる。この画素フィルタ100は画素のカラー値(画素R[x][y]、画素G[x][y]、画素B[x][y])を読み出し、さらに画素の深度値(Z[x][y])を読み出す(ブロック104)。加えて、この画素フィルタルーチン100は、画素[x][y]周辺にある画素の深度値も読み出す(同じくブロック104)。本例において、画素フィルタルーチン100は隣接画素2つの深度値を読み出す。つまり、x−yアレイ内の所定の画素の「左」隣にある周辺画素における深度値Z[x][y]、およびx−yアレイ内の所定の画素の真「下」にある周辺画素における深度値Z[x][y−1]である。以上は、図9を参照のこと。フレームバッファ1040が1ラインずつ読み出され、かつ処理された場合、ラインバッファは前に位置するラインのZ値を保持するのに使用され得る。
【0046】
画素フィルタルーチン100は、たとえば以下のDz演算(ブロック106参照)によって、画素[x][y]が対象物の縁であるかどうかを判別する、たとえば、画素の深度値(Z[x][y])と1つ以上の周辺の(本例においては隣接する)画素の深度値との差を判別する。
DzDx = |Z[x][y]−Z[x−1][y]|
DzDy = |Z[x][y]−Z[x][y−1]|
Dz = max(DzDx,DzDy)
上記演算を行う際、画素フィルタ100は画素の深度と、2つの隣接画素それぞれとの差を判別する、つまりこれらの差の絶対値をとり(ある対象物は別の対象に近いか遠いかのどちらかであることを利用する)、得られた2つの絶対値のうち大きい方を選択する。この結果が距離値Dzであって、ある画素がz方向において、ある周辺画素からどれだけ離れているかをはかる値である。この演算は、画素が対象物の縁上にあるかどうかをテストするために行われる。たとえば、画素が対象物の縁上にある場合、Dzは一般に大きくなり(典型的に、周辺画素はそれぞれ異なる深度を有しているため)、画素が対象物の縁上にない場合は、Dzは一般に小さくなる(周辺画素は深度が相似するためである)。
【0047】
別の例においては、2つの周辺画素の距離値の総計をとることで距離値Dzを演算することができる。たとえば、下式が例である。
Dz = DzDx+DzDy
また、その他の方法でも可能である(たとえば、演算方法を変えたり、使用する周辺画素を変更したり、または周辺画素数を変更するなど)。
【0048】
本例における画素フィルタルーチン100は、上述のように演算された距離値Dzに比例してカラーを変化させる。たとえば、画素フィルタ100は、得られた距離値Dzの係数をスケーリング/修正して変更し、その結果得られた値をクランプして、たとえば以下のような画素ブレンドファクタを成立させる(ブロック108参照)。
アルファ = クランプ((スケール係数*Dz+ベース係数),0,1)
ここで、クランプは、クランプ(x,0,1)とした場合において、xが0以下のときには0を返し、xが1以上のときには1を返し、0<x<1のときにはxを返す関数である。
【0049】
スケール係数が正の値であると仮定すると、得られたアルファ値はDzが大きいと大きくなり(たとえば、ほぼ1、または1になるようにクランプされる)、Dzが小さいとアルファ値も小さくなる(たとえば、ほぼ0、または0になるようにクランプされる)。画素ブレンドファクタを成立させるには、方法は問わない。たとえば、画素ブレンドファクタを演算する別の方法を以下に示す。
グレイ = クランプ((Dz−係数A)*係数B,0,1)
【0050】
本例における画素フィルタ100は、ブレンド処理(たとえば、アルファブレンディング)で得られた画素ブレンド係数を用いて、選択的に所定の境界線カラー(たとえばラインR、ラインG、ラインB)を、カラーフレームバッファ1042から得られた画素のカラー値(画素R[x][y]、画素G[x][y]、画素B[x][y])とブレンドする。このブレンドを行うための演算の例は、以下の通りである。
新画素.R[x][y] = 旧画素.R[x][y]*(1−アルファ)+ライン.R*アルファ
新画素.G[x][y] = 旧画素.R[x][y]*(1−アルファ)+ライン.G*アルファ
新画素.B[x][y] = 旧画素.R[x][y]*(1−アルファ)+ライン.B*アルファ
これら演算に従って、ブレンドされた(「新」)画素カラー値は、距離値Dzが小さいと、ほとんどの場合、初期値になり、距離値Dzが大きいと境界線カラーになる。
【0051】
上記のブレンド演算は、境界線カラーを黒(たとえばライン.R=0、ライン.G=0、ライン.B=0)に限定し、および/またはホワイトキャンバスのカラー(ライン.R=255,ライン.G=255,ライン.B=255)だけを用いることで簡略化が可能である(たとえば、さらなる最適化のために行われる)。より最適化するためには、RGBカラーでないフォーマット、たとえばYUV(この場合、境界線が鮮明に見えるよう、確実に付与するために明るさYを制御する)などを用いる。
【0052】
ブレンド後、ブレンドされた画素をバッファして表示装置1009(ブロック112)に表示する。たとえば、画素フィルタルーチン100を、フレームバッファ1040内の画素すべてに対して行い、その結果得られるブレンドされたフレームバッファの内容を表示装置1009に表示する。
【0053】
遠近処理は、場合によっては上記処理で得られる結果に影響を及ぼす。図10に示すように、遠くに画素PixA、近くに画素PixBがある場合について考える。変換により、遠くにある画素PixAのDzDyは、近くにある画素PixBのDzDyよりも大きくなる。この結果、未処理のDzDxおよびDzDy値を用いた画像全体における、境界線の検知がさらに難しくなる。この問題を克服するためには、Zレンジに応じてZ値に修正を加えるとよい。修正には、たとえばレンジ変換するため、以下のようにlog2(n)関数を用いる。
DzDx=|log2(Z[x][y])−log2(Z[x−1][y])|
DzDy=|log2(Z[x][y])−log2(Z[x][y−1])|
プロセッサ1010に浮動小数点計算機能があり、Z値が例えば以下のような浮動小数点フォーマットで記憶されている場合、log2(n)関数の計算は非常に都合がよい。
[3ビット指数][11ビット仮数]
【0054】
図11は、図8に示すフローチャ−トを変更して、このlog2(n)のレンジ変換式を加えたものである。
【0055】
図12は、ブレンディングを制御するのに用いられる、アルファ値の深度変調を行う後処理画素フィルタ200のもう一つの例である。図12に示す、ブロック204、206、および208は、図8(レンジ修正が適用される場合は図11)に示す対応するブロック104、106、および108と同一である。図12のブロック210は、ブロック208で計算された値、および画素深度zの関数であるさらなる値の関数(たとえば、積)としてアルファAを計算するために付加されたものである。たとえば、
アルファ=アルファDz*アルファZ
この結果得られたアルファ値、つまり図8のブロック210に関連して説明した、ブレンディングの制御(ブロック212参照)に用いられるアルファ値も、画素の深度に左右される。
【0058】
(漫画的な輪郭線処理のさらなる実施例)
演算方法によっては、上記境界線の応用アルゴリズムでは、漫画的な輪郭線処理において、満足のいく結果が得られないことがある。図13においてそのような例を示す。図13における漫画キャラクタ300には、上記のように陰影の縁302に境界線が付与されている。図13から、この漫画キャラクタ300は右手、手首を有しており、腕を前部で曲げている様子がわかる。上記の手法では、場合によって(キャラクタの腕が胴体部からどれだけ離れているかによるが)、右の手、手首、および腕の周りの縁は陰影の縁ではなく内部だと判断されるため、それらの箇所には境界線を付与しない。図13では、漫画的な輪郭線処理がキャラクタの陰影の縁302だけに施された場合、漫画キャラクタ300が部分的に消滅する、あるいはやや鮮明でなくなる様子を示す。ところが、ユーザは(塗り絵、手描きのアニメ漫画、および/または漫画本などの記憶から)手、手首および腕がはっきり示されるような境界線を期待している。
【0059】
漫画キャラクタ300が手描きであるかのように見せるには、内部の縁304にも境界線を付すとよい。本例においては、内部の縁は、キャラクタが自身の前部で曲げている手、手首および腕を規定している。図14では、このキャラクタ300の内部の縁304に境界線が付与されている。この内部の縁304は、キャラクタ300が腕を外に向けて延ばしている場合は輪郭線の縁になるが、図14に示す腕の位置では内部の縁になる。
【0060】
本発明に係る別の局面によれば、図14に示すような内部の縁においては、漫画的な輪郭線処理は自動的に行われる。つまり、対象物の部分によって、画素にはそれぞれ異なる識別値が付与される。たとえば、通常はアルファ情報をエンコードするのに用いられるフレームバッファ1040および/またはDRAM1126a内に、ビット割り当てを行うことにより、この識別値を指定する。この指定された識別値を用いて、その画素の位置に境界線を付すかどうかを決定してもよい。たとえば、ある画素の識別値と、その画素の近辺にある(隣接した)画素の識別値とを比較する。これら2つの画素の識別値間にある所定の関係が認められた場合、境界線は付与されない。たとえば、識別値が同一の場合、これら2つの画素は同一面上にあるため、境界線は付さない。しかし、これら2つの画素の識別値が、別の所定の関係にある場合は、境界線を付与する。
【0061】
図15(A)〜(C)では一例を示す。図15(A)は、3つの部分320、322および324に大別される対象物319の斜視図である。図15(B)は、同じ対象物319の平面図である。対象部分320は四角形であり、対象部分322は円形であり、対象部分324は円錐である。ここで、グラフィックスアーチストが、円錐324が四角形320に視覚的に接触するが、円形322には接触しない部分、または円形が四角形に接触する部分に境界線330(図15(A)参照)を引こうとしていると仮定する。この場合、四角形320、円形322および円錐324内の画素は、それぞれ異なる識別値でコーディングされる。たとえば、四角形320内の画素は識別値「1」でコーディングされ、円形322内の画素は識別値「2」でコーディングされ、さらに円錐324内の画素は識別値「3」でコーディングされる。図15(C)は、コーディング情報を記憶するフレームバッファ1040および/または1126aのアルファ部の一例を示す(斜線を付したセルが境界線カラーを付与するセルである)。
【0062】
画素後処理の段階においては、フレームバッファ内の様々な識別値に対してテストを行う。隣接する画素のように同一の識別値を有する画素(このような画素はすべて同一面上に存在する)に対しては、境界線を付与しない。また、或る画素の識別値が隣接画素のそれと、ある基準を下回って異なっている場合は境界線を付与しない(たとえば、画素kの識別値が画素k+1の識別値から2以上違わない場合、境界線は付与しない)。しかし、ある画素の識別値が隣接画素のそれと、ある基準を上回って異なっている場合は境界線を付与する(たとえば、画素kの識別値が画素k+1の識別値から2以上違う場合、境界線を画素kに付与する)。
【0063】
図16は、本実施例において、境界線を付与するための画素後処理ルーチンの一例を示すフローチャートである。ルーチン350は、ループ(ブロック352−362)を含み、このループはフレームバッファ1040および/または1126aに記憶される画像における画素[i][j]それぞれに対して行われる。上述のように、画像生成処理においては、フレームバッファで画像を描画する際、通常はアルファ値を記憶するためにビットが割り当てられているフレームバッファ内にある対象物の部分毎に識別値を設定する。ルーチン350において、これらアルファ値(ここではID値)をテストして境界線を引くかどうかを決定する。本例において、ルーチン350では、画素[i][j]のアルファ(ID)値および隣接画素(たとえば、画素[i−1][j]および画素[i][j−1])のアルファ(ID)値を検索する(ブロック352)。その後、ルーチン352では、以下の演算を行い(ブロック354)画素[i][j]のアルファ(ID)値と隣接画素のアルファ(ID)値との差を求める。
diffX=|(アルファ[i][j]−アルファ[i−1][j])|
diffY=|(アルファ[i][j]−アルファ[i][j−1])|
【0064】
その後ルーチン350では、演算して得られた差の値、diffXとdiffYとをテストして、どちらかが所定の差の値を超えているかどうかを判別する(たとえば任意に固定の、または1のようなプログラム可能閾値)(ブロック356)。差の値のうち、少なくとも1つが所定の差の値を超えている場合、ルーチン350は画素[i][j]のカラーを境界線カラーに設定する(ブロック358)。これにより本例においては、アルファスロープが−1から+1の場合、画素は同一面上にあるとされる。ステップ352から358は、画像内にある画素それぞれに対して順に行われる(ブロック360、362)。
【0065】
ルーチン350の変形例として、対象物をある特別なアルファ識別値(たとえば0x00)でコーディングして、境界線を付与するために無視すべき対象物内の画素を特定する(図17参照)。境界線が付与されていない対象物をビットマップとして描画する際に有用である(例えば、爆発のアニメーション等)。
【0066】
図18は、上記ルーチン350を用いて、図13および図14に示す対象物300にいかに効率良く境界線を引くかを示す。本例において、対象物は部分毎にそれぞれ異なるアルファ(ID)値でコーディングされている。たとえば、対象物300は2本の腕311a、311bおよび胴体309を備える。腕はそれぞれ手313、手首部315、下腕部312、肘部308、上腕部310、および肩部317を備える。これら部位は、以下のようにそれぞれ異なるアルファIDでコーディングされる。
身体部 アルファID
左手313a 1
左手首315a 2
左下腕312a 3
左肘308a 4
左上腕310a 5
左肩317a 6
胴体309 7
右肩317b 8
右上腕310b 9
右肘311b 10
右下腕312b 11
右手首315b 12
右手313b 13
上記アルファIDコーディングの例によれば、ルーチン350では、図18に太線で示されているような境界線を引く。しかし、部位の区切り部分(点線で示す)には境界線を引かない。
【0067】
上記コーディングは、同じ対象物300の部位の区切り部分に境界線を引くのにも用いることができる。従来の塗り絵や手描きアニメ漫画などでは、このような区切り部分にも漫画的な輪郭線処理を施して、さらに関節を規定したり、筋肉の発達を想像させたりしている。図19(A)〜(C)では、キャラクタ300の上腕310と下腕とをつなぐ関節308(つまり肘)を特に示す。上記コーディングを用いて、図19(B)および(C)に示すように、関節308を曲げることで上腕310と312とが互いに隣接(接触)して位置した場合、ルーチン350では(下腕310のアルファIDと、上腕312のアルファIDとの差が1より大きいかどうかに基づいて)、部位310と312との間に境界線セグメント316を付与する。
【0068】
これにより、本発明は、三次元コンピュータグラフィックスにおいて、漫画的な輪郭線のような非写実的な効果を付与するための効果的な手法を提供する。これら手法は、画素後処理の段階で(すなわち、三次元グラフィックスパイプラインが画像をフレームバッファにおいて描画されてから)用いられ、三次元グラフィックスパイプラインによって与えられる以外の画素情報を必要としない(すなわち、色、深度およびアルファ画素情報)。このように、本発明における画素後処理の手法は、フレームバッファ(たとえば、回路上のバッファの一部から回路外のバッファへ、エリアシングまたは他の後処理動作)の「ダウンストリーム」で効果的に、かつ効率良く行われ、これによって三次元グラフィックスパイプラインまたはシステムの他の構成要素が実質的に複雑化することもない。
【0069】
本発明は、現在最も現実的で好ましい実施例と思われるものに関連して説明されてきたが、本発明は、開示された実施例に限定されるものではなく、様々な変形例や均等な構成を含むことを想定していると解釈される。
【図面の簡単な説明】
【図1】本発明を具体化するための三次元ビデオグラフィックスシステムの例を示す図である。
【図2】本発明を実施しうるインタラクティブ三次元コンピュータグラフィックスシステム1005全体のより詳細な模式図である。
【図3】コプロセッサ1020内の構成要素例のブロック図である。
【図4】三次元グラフィックスプロセッサ1107と、それに関連するコプロセッサ1020内の構成要素のより詳細な図である。
【図5】本発明におけるスクリーン効果を例示的に示す図である。
【図6】エミュレーション処理全体の一例を示した図である。
【図7】エミュレータ1303と共に用いるのに適した、パーソナルコンピュータに基づくホストを示した図である。
【図8】好ましい実施例に係る画素フィルタリングルーチン100の一例を示すフローチャートである。
【図9】画素フィルタルーチン100が隣接画素2つの深度値を読み出す例を示した模式図である。
【図10】遠くに画素PixA、近くに画素PixBがある場合の遠近処理を示した模式図である。
【図11】図8に示すフローチャ−トを変更して、log2(n)のレンジ変換式を加えたフローチャートである。
【図12】ブレンディングを制御するのに用いられる、アルファ値の深度変調を行う後処理画素フィルタ200の一例である。
【図13】漫画的な輪郭線処理による漫画キャラクターの一例を示す図である。
【図14】漫画的な輪郭線処理による漫画キャラクターの別例を示す図である。
【図15】漫画的な輪郭線処理の境界線の箇所を特定するための対象物識別値を用いた、本発明のさらなる実施形態を示す図である。
【図16】本実施例において、境界線を付与するための画素後処理ルーチンの一例を示すフローチャートである。
【図17】ルーチン350の変形例を示した模式図である。
【図18】漫画的な輪郭線効果を得るために行う、対象物識別値コーディングの一例を示す図である。
【図19】漫画的な輪郭線効果を得るために行う、対象物識別値コーディングの別例を示す図である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to 3D computer graphics, and more particularly to non-realistic 3D imaging. More particularly, the present invention relates to a method and apparatus for generating and displaying a line on a shadow of a three-dimensional object by a computer and other boundaries found on the edges thereof.
[0002]
[Prior art]
Much of the research on computer graphics has tended to focus on generating realistic images and has been quite successful so far. Nowadays, computer-generated images are becoming very realistic and cannot be distinguished from photographs. For example, we often see dinosaurs, aliens, and so on that appear to be very realistic and real due to special effects created by computers. The computer-based flight simulator trained by new pilots is very real and almost reproduces the actual flight conditions. Even in low-cost home video game systems, an amazing level of realism has been realized, and game players are covered in snow and ice, for example, running on a track in a real race car You can feel the illusion of walking in a medieval castle, like skiing down a slope. In most games, this illusion of realism greatly enhances the gameplay experience.
[0003]
However, in some cases, an unreal image may be preferable. For example, in interactive video and computer games, instead of realistically simulating the real (or fantasy) world, a cartoon world with many unrealistic parody-like characters will be created on purpose. If it is displayed, it can be provided with entertainment value. For example, in such a game, an effort is made to reproduce a hand-drawn comic book with movement, voice, and interactivity.
[0004]
In such a three-dimensional computer system, one of the desirable visual effects is to make sure that the shadow lines of the display object and other boundaries seen at the edges thereof are clear and reliable. Such a border makes certain images clearer. For example, it becomes easier for the user to distinguish different faces such as the outline of a cartoon character, a landscape hill or mountain, and the edge of a wall. Furthermore, such a boundary line tends to create a desirable impression as if it were hand-drawn by a cartoonist.
[0005]
[Problems to be solved by the invention]
Here, a line that distinguishes from another object adjacent to the edge of the polygon that forms a certain object is one of the methods that give an unreal effect such as a boundary line around the edge of the object such as a character. There is a way to show clearly.
[0006]
However, if the border with another object is clearly shown, the image processing becomes extremely complicated. As a result, in systems with limited resources, this method results in delays in image generation and reduced efficiency. Efficiency is extremely important in low-cost 3D graphics systems such as interactive 3D game systems. Using more efficient techniques to generate visual effects reduces the burden on scarce system resources and further improves visual effects overall without significantly affecting speed or other performance be able to.
[0007]
[Means for Solving the Problems and Effects of the Invention]
The present invention solves this problem by providing an efficient technique for displaying shadow lines and borders at their edges in 3D graphics systems, such as home video game consoles.
[0008]
According to the first invention, after the image is drawn in the frame buffer, the boundary line is generated. In the present invention, the values stored in the frame buffer are used to determine which pixels are located on the contour or other edges of the object, and the border color is selectively blended with these pixels and displayed.
[0009]
Further, according to an embodiment, the edge of the contour is arranged by comparing the depth value of a certain pixel with the depth value of the surrounding pixels. For example, the “distance” value is calculated based on the absolute value of the distance between the depth of a certain pixel and the surrounding pixels. Then, based on this distance value, the desired border color is blended with the color value of that pixel. For example, the distance value is used to calculate the alpha value of the pixel, and this alpha value is used to control the amount of border color blended into the pixel color.
[0010]
In another example, depth changes are further used. For example, the alpha value of the pixel is calculated based on the distance value and a further provided value that is a function of the pixel depth, and the alpha value changed according to the depth value of the pixel is obtained. Based on the alpha value changed by this depth, the border color is blended with the pixel color.
[0011]
In a further embodiment, the border is drawn on some internal edge where the cartoonist will draw the border, rather than on the contour of the object. For example, consider a state where a cartoon character is bending an arm in front of the body. In this case, the cartoonist would draw a border around the character's arm outline. Even if this character bends the arm at the front of the torso so that the edge of the contour of the arm is located inside the entire contour. According to a further feature of the present invention, different identification values are assigned to each pixel of the image. This identification value is typically stored in a frame buffer memory area or the like prepared for the alpha value. These identification values are used to identify an edge with a boundary line and an edge without a boundary line.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows an example of a three-dimensional
[0013]
The
[0014]
In this example,
[0015]
The graphics coprocessor 1020 stores the generated display pixel in the
[0016]
In the preferred embodiment, the contents of the
[0017]
FIG. 2 is a more detailed schematic diagram of an entire interactive 3D
[0018]
In this example,
[0019]
The
[0020]
[0021]
The
[0022]
The
[0023]
[0024]
FIG. 3 is a block diagram of example components within the
[0025]
The three-
[0026]
FIG. 4 is a more detailed view of the
[0027]
As shown in FIG. 4, the
[0028]
As shown in FIG. 5, the
[0029]
Some of the components of the video game system described above can also be implemented as other than the home video game console configuration described above. Generally, home video game software is written to run on a specific home video game system. This video game software may be “ported” (converted) to the different systems, taking into account the hardware and software configuration of the different systems. Such “porting” often requires access to the video game source code. In addition, there is a method for causing the second system to emulate the first system as a method for executing the game software in a system having a different configuration. If the second system can successfully emulate or simulate the hardware and software resources of the first system, the second system can successfully execute the image executable in the video game software binary; There is no need to access the source code of the game software.
[0030]
In home video games, an emulator is a system different from a system for a game program, that is, a system designed to be able to execute a game program. As an example, an emulator system provides a hardware and / or software configuration (platform) that is different from that of a system for game software. The emulator system includes software and / or hardware components that mimic the software and / or hardware components of the system for game software. For example, the emulator system may include a general-purpose digital computer such as a personal computer that executes a software emulator program that simulates the hardware and / or firmware of the game software system.
[0031]
The emulator software may be developed so that a game for a home video game system as shown in FIGS. 1 to 4 using a console can be executed on a personal computer or other general-purpose digital computer. For such general-purpose digital computers (for example, IBM and Macintosh personal computers and compatible computers), a 3D graphics pipeline corresponding to DirectX and other standard 3D graphics command application program interface (API) is provided. Some have a 3D graphics card. Some have a stereo sound card that provides high-quality stereo sound based on a standard set of sound commands. Such multimedia hardware-equipped personal computers that run emulator software may have sufficient performance to approximate the graphics and sound performance in a dedicated home video game console hardware configuration. Emulator software controls the hardware resources on the personal computer platform to do what the home video game console platform does (though game programmers wrote game software for this platform), 3D graphics, Simulate sound, peripherals, and other functions.
[0032]
FIG. 6 shows an example of the entire emulation process. This example of emulation processing uses a
[0033]
The
[0034]
Similarly, the
[0035]
The
[0036]
FIG. 7 shows a personal computer based
[0037]
The
[0038]
[0039]
In other configurations, other computer readable media (eg, magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random storage media that can store computer accessible data can be stored. An access memory (RAM), a read-only memory (ROM), or the like may be used.
[0040]
Many program modules including the
[0041]
The
[0042]
For example,
[0043]
(Example of non-realistic cartoon-like contour processing method according to the present invention)
Cartoon outline / border processing according to the present invention may be advantageously performed in hardware and / or software. Assuming there is enough time, after the
[0044]
When the
[0045]
FIG. 8 is a flowchart illustrating an example of a
[0046]
The
DzDx = | Z [x] [y] −Z [x−1] [y] |
DzDy = | Z [x] [y] −Z [x] [y−1] |
Dz = max (DzDx, DzDy)
When performing the above calculation, the
[0047]
In another example, the distance value Dz can be calculated by taking the sum of the distance values of two neighboring pixels. For example, the following formula is an example.
Dz = DzDx + DzDy
Other methods are also possible (for example, changing the calculation method, changing the surrounding pixels to be used, or changing the number of surrounding pixels).
[0048]
The
Alpha = Clamp ((Scale factor * Dz + Base factor), 0, 1)
Here, when the clamp is clamp (x, 0, 1), the function returns 0 when x is 0 or less, returns 1 when x is 1 or more, and returns x when 0 <x <1. It is.
[0049]
Assuming that the scale factor is a positive value, the resulting alpha value increases with increasing Dz (eg, clamped to approximately 1 or 1), and decreases with decreasing Dz. (E.g., clamped to approximately zero or zero). Any method can be used to establish the pixel blend factor. For example, another method for calculating the pixel blend factor is shown below.
Gray = Clamp ((Dz-Coefficient A) * Coefficient B, 0, 1)
[0050]
The
New pixel. R [x] [y] = old pixel. R [x] [y] * (1-alpha) + line. R * alpha
New pixel. G [x] [y] = old pixel. R [x] [y] * (1-alpha) + line. G * Alpha
New pixel. B [x] [y] = old pixel. R [x] [y] * (1-alpha) + line. B * Alpha
In accordance with these operations, the blended (“new”) pixel color value is almost always an initial value when the distance value Dz is small, and becomes a border color when the distance value Dz is large.
[0051]
The blend operation described above limits the border color to black (eg, line.R = 0, line.G = 0, line.B = 0) and / or the color of the white canvas (line.R = 255, line .G = 255, line .B = 255) can be used for simplification (eg done for further optimization). For further optimization, a format other than RGB color, for example, YUV (in this case, the brightness Y is controlled so as to ensure that the boundary line is clearly visible) is used.
[0052]
After blending, the blended pixels are buffered and displayed on the display device 1009 (block 112). For example, the
[0053]
Perspective processing affects the results obtained by the above processing in some cases. Consider the case where there is a pixel PixA in the distance and a pixel PixB in the vicinity as shown in FIG. Due to the conversion, DzDy of the distant pixel PixA becomes larger than DzDy of the distant pixel PixB. As a result, it becomes more difficult to detect the boundary line in the entire image using unprocessed DzDx and DzDy values. In order to overcome this problem, the Z value may be corrected according to the Z range. For the correction, for example, a log2 (n) function is used as follows for range conversion.
DzDx = | log2 (Z [x] [y]) − log2 (Z [x−1] [y]) |
DzDy = | log2 (Z [x] [y]) − log2 (Z [x] [y−1]) |
If the
[3-bit exponent] [11-bit mantissa]
[0054]
FIG. 11 is obtained by changing the flow chart shown in FIG. 8 and adding this log2 (n) range conversion formula.
[0055]
FIG. 12 is another example of a
Alpha = Alpha Dz * Alpha Z
The resulting alpha value, that is, the alpha value used for blending control (see block 212) described in connection with
[0058]
(Further examples of cartoon outline processing)
Depending on the calculation method, the boundary line application algorithm may not provide satisfactory results in the comic outline processing. Figure 13 Such an example is shown in FIG. Figure 13 As described above, the
[0059]
In order to make the
[0060]
According to another aspect of the invention, 14 At the inner edge as shown in FIG. 2, the cartoon outline processing is automatically performed. That is, different identification values are assigned to the pixels depending on the portion of the object. For example, this identification value is specified by assigning bits in the
[0061]
Figure 15 An example is shown in (A) to (C). Figure 15 (A) is a perspective view of the
[0062]
In the pixel post-processing stage, tests are performed on various identification values in the frame buffer. A border line is not given to pixels having the same identification value, such as adjacent pixels (all such pixels exist on the same plane). In addition, when the identification value of a certain pixel is different from that of an adjacent pixel below a certain reference, no boundary line is given (for example, when the identification value of pixel k does not differ by two or more from the identification value of pixel k + 1, No boundary line is given). However, if the identification value of a certain pixel differs from that of an adjacent pixel by more than a certain reference, a boundary line is given (for example, if the identification value of pixel k differs by two or more from the identification value of pixel k + 1, the boundary line Is applied to the pixel k).
[0063]
Figure 16 These are the flowcharts which show an example of the pixel post-processing routine for providing a boundary line in a present Example.
diffX = | (alpha [i] [j] −alpha [i−1] [j]) |
diffY = | (alpha [i] [j] −alpha [i] [j−1]) |
[0064]
Thereafter, the routine 350 tests the difference values obtained by the calculation, diffX and diffY, to determine whether one exceeds a predetermined difference value (eg, arbitrarily fixed or 1). Programmable threshold) (block 356). If at least one of the difference values exceeds a predetermined difference value, the routine 350 sets the color of pixel [i] [j] to the border color (block 358). Accordingly, in this example, when the alpha slope is −1 to +1, the pixels are assumed to be on the same plane.
[0065]
As a variation of routine 350, the object is coded with a special alpha identification value (eg, 0x00) to identify pixels within the object that should be ignored to provide a border (see FIG. 17 reference). This is useful when drawing an object to which a boundary line is not applied as a bitmap (for example, an explosion animation).
[0066]
Figure 18 Using the routine 350 above, 13 And figure 14 It shows how to draw a boundary line efficiently on the
Body Alpha ID
Lower
Upper
Right shoulder 317b 8
Upper
Lower
According to the above alpha ID coding example, in
[0067]
The above coding can also be used to draw a boundary line between the parts of the
[0068]
Thus, the present invention provides an effective technique for imparting a non-realistic effect such as a cartoon outline in three-dimensional computer graphics. These techniques are used at the pixel post-processing stage (ie, after the 3D graphics pipeline is rendered in the frame buffer) and do not require pixel information other than that provided by the 3D graphics pipeline (ie. , Color, depth and alpha pixel information). Thus, the pixel post-processing techniques of the present invention are effective at “downstream” of a frame buffer (eg, aliasing or other post-processing operation from a portion of the buffer on the circuit to a buffer outside the circuit). In addition, it does not substantially complicate the 3D graphics pipeline or other components of the system.
[0069]
Although the present invention has been described in connection with what is presently considered to be the most realistic and preferred embodiments, the present invention is not limited to the disclosed embodiments, and various modifications and equivalents It is interpreted as including the composition.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a three-dimensional video graphics system for embodying the present invention.
FIG. 2 is a more detailed schematic diagram of an entire interactive 3D
FIG. 3 is a block diagram of example components within the
FIG. 4 is a more detailed view of the three-
FIG. 5 is a diagram exemplarily showing a screen effect in the present invention.
FIG. 6 is a diagram showing an example of the entire emulation process.
FIG. 7 shows a personal computer based host suitable for use with
FIG. 8 is a flowchart illustrating an example of a
FIG. 9 is a schematic diagram illustrating an example in which the
10 is a schematic diagram showing perspective processing when a pixel PixA is in the distance and a pixel PixB is in the vicinity. FIG.
11 is a flowchart in which a range conversion formula of log2 (n) is added by changing the flowchart shown in FIG.
FIG. 12 is an example of a
[Figure 13 FIG. 11 is a diagram showing an example of a cartoon character by a cartoon outline process.
[Figure 14 FIG. 10 is a diagram showing another example of a cartoon character by a cartoon outline process.
[Figure 15 FIG. 11 is a diagram showing a further embodiment of the present invention using an object identification value for specifying a boundary line portion of a cartoon outline processing.
[Figure 16 In the present embodiment, this is a flow chart showing an example of a pixel post-processing routine for providing a boundary line.
[Figure 17 FIG. 10 is a schematic diagram showing a modification of
[Figure 18 FIG. 10 is a diagram showing an example of object identification value coding performed to obtain a cartoon outline effect.
[Figure 19 FIG. 10 is a diagram showing another example of object identification value coding performed to obtain a cartoon outline effect.
Claims (12)
ユーザによるリアルタイム操作入力が可能な、少なくとも1つの手動制御器と、
少なくとも1つの複数の部位から成るキャラクタを描画するための三次元データを記憶する記憶媒体と、
画素ごとにカラーデータと深度データとを含む画像データを記憶するバッファメモリと、前記バッファメモリに接続される三次元グラッフィクスパイプラインと、
前記バッファメモリに接続され、輪郭線処理を前記画像データに適用して、前記キャラクタの周囲に境界線を生成するフィルタとを備え、
前記三次元グラッフィクスパイプラインは、少なくとも前記ユーザによるリアルタイム操作入力および前記キャラクタを表現する前記三次元データに基づいて、前記キャラクタに対応する画像データを前記バッファメモリにおいて描画し、
前記記憶媒体は、前記複数の部位それぞれに異なる識別値を記憶し、
前記フィルタは、前記バッファメモリに記憶されている画素の深度データと、前記部位の識別値とに基づいて、前記カラーデータを選択的に変更して境界線を生成する、三次元画像処理装置。An interactive 3D image processing apparatus,
At least one manual controller capable of real-time operation input by the user;
A storage medium for storing three-dimensional data for drawing a character composed of at least one part;
A buffer memory for storing image data including color data and depth data for each pixel; a three-dimensional graphics pipeline connected to the buffer memory;
A filter connected to the buffer memory and applying contour processing to the image data to generate a border around the character;
The three-dimensional graphics pipeline draws image data corresponding to the character in the buffer memory based on at least real-time operation input by the user and the three-dimensional data representing the character,
The storage medium stores different identification values for each of the plurality of parts,
The three-dimensional image processing device, wherein the filter selectively changes the color data based on pixel depth data stored in the buffer memory and an identification value of the part to generate a boundary line.
前記フィルタは、前記画素に対応するアルファ値を、前記画素の深度データに対応する値に設定することを特徴とする、請求項1に記載の三次元画像処理装置。The buffer memory further includes an alpha value for each pixel,
The three-dimensional image processing apparatus according to claim 1, wherein the filter sets an alpha value corresponding to the pixel to a value corresponding to depth data of the pixel.
(a)少なくとも1つの手動制御器からユーザのリアルタイム操作入力を取得するステップ、
(b)前記画素メモリから画素データを読み出し、当該画素に対応する深度データと、部位の識別値とに基づいて、当該画素のカラーデータを選択的に変更するステップ、
(c)前記三次元画像を描画するためのデータと、前記変更されたカラーデータと、前記リアルタイム操作入力とに基づいて、三次元画像を描画するステップ、
からなる三次元画像処理方法。A computer graphics system including data for rendering a three-dimensional image composed of a plurality of parts and storing identification values for the plurality of parts, and a pixel memory for storing color data and depth data corresponding to the pixels of the image A three-dimensional image processing method,
(A) obtaining a user's real-time operation input from at least one manual controller;
(B) reading pixel data from the pixel memory, and selectively changing the color data of the pixel based on the depth data corresponding to the pixel and the identification value of the part;
(C) drawing a three-dimensional image based on the data for drawing the three-dimensional image, the changed color data, and the real-time operation input;
A three-dimensional image processing method comprising:
前記三次元画像を描画するステップは、前記画素に対応するアルファ値を、前期画素の深度データに対応する値に設定することを特徴とする、請求項6に記載の方法。The image memory further includes an alpha value for each pixel,
The method of claim 6 , wherein the step of rendering the three-dimensional image sets an alpha value corresponding to the pixel to a value corresponding to depth data of the previous pixel.
前記画像の各画素の深度値をメモリから読み出す読み出しステップと、
読み出された深度値を用いて各画素がオブジェクトの縁であるかどうかを判別する判別ステップと、
縁上にある画素を境界線の色に変更する変更ステップとを前記コンピュータに実行させ、
前記判別ステップにおいて、前記コンピュータは、画素の深度値と、その画素の周辺にある画素の深度値との差を算出し、算出された差に基づいてオブジェクトの縁であるかどうかを判別し、
前記変更ステップにおいて、前記コンピュータは、変更前の画像の色と、前記境界線の色とを前記差に応じた割合でブレンドすることによって、縁上にある画素を境界線の色に変更する、プログラムを記録した記憶媒体。A computer-readable storage medium storing a program for causing a computer to execute a process of drawing a boundary line on an image,
A reading step of reading out a depth value of each pixel of the image from a memory;
A determination step of determining whether each pixel is an edge of the object using the read depth value;
Changing the pixel on the edge to the border color, and causing the computer to execute
In the determining step, the computer calculates a difference between a depth value of a pixel and a depth value of a pixel around the pixel, determines whether the edge of the object based on the calculated difference,
In the changing step, the computer changes the pixel on the edge to the boundary line color by blending the color of the image before the change and the color of the boundary line at a ratio corresponding to the difference. A storage medium that records the program.
前記画像の各画素の深度値をメモリから読み出す読み出し手段と、
読み出された深度値を用いて各画素がオブジェクトの縁であるかどうかを判別する判別手段と、
縁上にある画素を境界線の色に変更する変更手段とを備え、
前記判別手段は、画素の深度値と、その画素の周辺にある画素の深度値との差を算出し、算出された差に基づいてオブジェクトの縁であるかどうかを判別し、
前記変更手段は、変更前の画像の色と、前記境界線の色とを前記差に応じた割合でブレンドすることによって、縁上にある画素を境界線の色に変更する、画像処理装置。 An image processing apparatus that executes a process of drawing a boundary line on an image,
Reading means for reading out the depth value of each pixel of the image from the memory;
Discrimination means for discriminating whether each pixel is an edge of the object using the read depth value;
Changing means for changing the pixel on the edge to the color of the boundary line,
The determination unit calculates a difference between a depth value of a pixel and a depth value of a pixel around the pixel, determines whether the edge of the object based on the calculated difference,
The image processing apparatus is configured to change the pixel on the edge to the color of the boundary line by blending the color of the image before the change and the color of the boundary line at a ratio corresponding to the difference .
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15566099P | 1999-09-24 | 1999-09-24 | |
US60/155660 | 1999-12-21 | ||
US09/468109 | 1999-12-21 | ||
US09/468,109 US6747642B1 (en) | 1999-01-29 | 1999-12-21 | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009130618A Division JP4672072B2 (en) | 1999-09-24 | 2009-05-29 | Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001134779A JP2001134779A (en) | 2001-05-18 |
JP2001134779A5 JP2001134779A5 (en) | 2007-08-23 |
JP4349733B2 true JP4349733B2 (en) | 2009-10-21 |
Family
ID=26852501
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000289625A Expired - Fee Related JP4349733B2 (en) | 1999-09-24 | 2000-09-22 | Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system |
JP2009130618A Expired - Lifetime JP4672072B2 (en) | 1999-09-24 | 2009-05-29 | Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009130618A Expired - Lifetime JP4672072B2 (en) | 1999-09-24 | 2009-05-29 | Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system |
Country Status (5)
Country | Link |
---|---|
JP (2) | JP4349733B2 (en) |
CN (1) | CN1316723A (en) |
AU (1) | AU5652700A (en) |
BR (1) | BR0004415A (en) |
CA (1) | CA2319279A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940057B2 (en) | 2007-08-23 | 2011-05-10 | Fanuc Ltd | Method of detecting disconnection and power discontinuity of I/O unit connected to numerical controller |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7551322B2 (en) * | 2004-06-29 | 2009-06-23 | Intel Corporation | Image edge filtering |
WO2007096816A2 (en) * | 2006-02-27 | 2007-08-30 | Koninklijke Philips Electronics N.V. | Rendering an output image |
US7612783B2 (en) * | 2006-05-08 | 2009-11-03 | Ati Technologies Inc. | Advanced anti-aliasing with multiple graphics processing units |
JP5236214B2 (en) * | 2007-06-11 | 2013-07-17 | 任天堂株式会社 | Image processing program |
CN101540055B (en) * | 2009-04-13 | 2011-05-04 | 浙江大学 | Cartoon stylization method facing online real-time application |
JP4847572B2 (en) * | 2009-11-13 | 2011-12-28 | 株式会社コナミデジタルエンタテインメント | Image processing apparatus, image processing apparatus control method, and program |
JP5439454B2 (en) * | 2011-10-21 | 2014-03-12 | 富士フイルム株式会社 | Electronic comic editing apparatus, method and program |
CN109741408A (en) * | 2018-11-23 | 2019-05-10 | 成都品果科技有限公司 | A kind of image and video caricature effect real-time rendering method |
CN111127614B (en) * | 2019-12-25 | 2023-07-21 | 上海米哈游天命科技有限公司 | Model edge tracing processing method and device, storage medium and terminal |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2603445B2 (en) * | 1994-11-10 | 1997-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Hair image adaptation method and computer system |
JPH08279057A (en) * | 1995-04-05 | 1996-10-22 | Hitachi Ltd | Emphasis display device for outline and ridge of three-dimensional graphic |
JP3721623B2 (en) * | 1995-12-29 | 2005-11-30 | カシオ計算機株式会社 | Drawing color changing method and moving picture reproducing apparatus |
JPH09311954A (en) * | 1996-05-22 | 1997-12-02 | Hitachi Ltd | Three-dimensional graphic display system and method |
-
2000
- 2000-09-06 AU AU56527/00A patent/AU5652700A/en not_active Abandoned
- 2000-09-13 CA CA002319279A patent/CA2319279A1/en not_active Abandoned
- 2000-09-22 JP JP2000289625A patent/JP4349733B2/en not_active Expired - Fee Related
- 2000-09-22 CN CN00128840.7A patent/CN1316723A/en active Pending
- 2000-09-25 BR BR0004415-6A patent/BR0004415A/en not_active Application Discontinuation
-
2009
- 2009-05-29 JP JP2009130618A patent/JP4672072B2/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940057B2 (en) | 2007-08-23 | 2011-05-10 | Fanuc Ltd | Method of detecting disconnection and power discontinuity of I/O unit connected to numerical controller |
Also Published As
Publication number | Publication date |
---|---|
CA2319279A1 (en) | 2001-03-24 |
BR0004415A (en) | 2001-04-10 |
CN1316723A (en) | 2001-10-10 |
JP4672072B2 (en) | 2011-04-20 |
JP2001134779A (en) | 2001-05-18 |
AU5652700A (en) | 2001-03-29 |
JP2009199620A (en) | 2009-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4698893B2 (en) | Method, graphics system, and program for providing improved fog effects | |
JP4672072B2 (en) | Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system | |
US6747642B1 (en) | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system | |
JP4846120B2 (en) | Graphics device with skeleton animation stitching hardware | |
JP4719363B2 (en) | Graphics system with copy-out conversion between internal frame buffer and main memory | |
JP4691273B2 (en) | Graphics processing system and embossed bump mapping method | |
US7061502B1 (en) | Method and apparatus for providing logical combination of N alpha operations within a graphics system | |
JP2002074390A (en) | Shadow mapping in inexpensive graphics system | |
JP2002269583A (en) | Method and device for dynamically reconstructing order of hidden surface processings based on drawing mode | |
JP2002063590A (en) | Recirculating shade tree blender for graphics system | |
US6914612B2 (en) | Image drawing method, image drawing apparatus, recording medium, and program | |
US6717575B2 (en) | Image drawing method, image drawing apparatus, recording medium, and program | |
US7164421B2 (en) | Image generation system, program, and information storage medium | |
JP2001143100A (en) | Method and device for providing depth gradation effects in three-dimensional video graphic system | |
JP2001079261A (en) | Image forming system and information recording medium | |
JP4804122B2 (en) | Program, texture data structure, information storage medium, and image generation system | |
JP3297410B2 (en) | Image generation system and information storage medium | |
JP3254195B2 (en) | Image generation system and information storage medium | |
EP1094421A2 (en) | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system | |
JP4574058B2 (en) | Image generation system, program, and information storage medium | |
JP4740476B2 (en) | Method and apparatus for providing a logical combination of N alpha operations in a graphics system | |
JP4740490B2 (en) | Clamping Z values in the Z neighborhood to maximize the accuracy of visually important Z components in graphics rendering systems and avoid Z neighborhood clipping | |
JP2006323512A (en) | Image generation system, program, and information storage medium | |
MXPA00009280A (en) | Method and apparatus for providing non-photorealistic cartoon outlining within a 3d videographics system | |
JP2006277488A (en) | Program, information storage medium and image generation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060724 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090529 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090623 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090721 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4349733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130731 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130731 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |