JP2009301284A - 描画装置および方法 - Google Patents

描画装置および方法 Download PDF

Info

Publication number
JP2009301284A
JP2009301284A JP2008154414A JP2008154414A JP2009301284A JP 2009301284 A JP2009301284 A JP 2009301284A JP 2008154414 A JP2008154414 A JP 2008154414A JP 2008154414 A JP2008154414 A JP 2008154414A JP 2009301284 A JP2009301284 A JP 2009301284A
Authority
JP
Japan
Prior art keywords
data
pixel
vector
position coordinates
primitive 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.)
Withdrawn
Application number
JP2008154414A
Other languages
English (en)
Inventor
Tokuhiro Nakamura
徳裕 中村
Yasuyuki Kokojima
快行 爰島
Norio Mihara
功雄 三原
Yasuaki Yamauchi
康晋 山内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008154414A priority Critical patent/JP2009301284A/ja
Priority to US12/409,276 priority patent/US20090309898A1/en
Publication of JP2009301284A publication Critical patent/JP2009301284A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/246Generation of individual character patterns of ideographic or arabic-like characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/26Generation of individual character patterns for modifying the character dimensions, e.g. double width, double height
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/30Control of display attribute
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/32Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory with means for controlling the display position

Abstract

【課題】ベクタ図形を曲面上に描画する場合であっても、再分割処理等による処理負担が増加することなく高速に描画処理を行うことのできる描画装置及び方法を提供する。
【解決手段】曲面モデルをスクリーンに投影した際に該曲面モデルが占めるピクセルごとに、ベクタ定義空間における位置座標、色情報及び透明度を含む描画用パラメータを算出する。ベクタデータから複数のプリミティブデータを生成して記憶する。複数のプリミティブデータに前記位置座標を含むか否かを判定して描画判定変数を求め、描画判定変数を加算した回数が奇数であるならば、前記位置座標に対応するピクセルのラスタデータを前記描画用パラメータに基づいて生成する。
【選択図】図1

Description

本発明はベクトル図形を描画する描画装置および描画方法に関する。
点や直線、曲線、四角形、楕円などの幾何学的な図形要素を組み合わせることによって構成される画像のことをベクタグラフィックスと呼ぶ。これに対し、点(ピクセルあるいはドット)の配列によって構成される画像のことをラスタグラフィックスと呼ぶ。
一般に、ディスプレイに表示される画像やプリンタで印刷される画像はラスタグラフィックスである。これらの機器でベクタグラフィックスを扱う際には、これをラスタグラフィクスへ変換する処理(ラスタライズ)が必要になる。ラスタライズの処理コストは高く、複雑なベクタグラフィックスをラスタライズするためには高性能な計算機が必要とされる。その反面、ベクタグラフィックスは表示の都度、適切な解像度のラスタグラフィックスを生成することができるため、画像の拡大や縮小、変形によって輪郭線などの画質が損なわれることがない。そのため、イラストや図面などの輪郭線が明瞭な人工的な画像はベクタグラフィックスとして扱われることが多い。一方、写真などの自然画像はラスタグラフィックスとして扱われることが多い。
ベクタグラフィックスの最も身近な利用例はフォントである。初期の計算機ではCPU性能の制約からラスタ形式のフォント(ビットマップフォント)が使われていたが、解像度ごとにフォントデータを保持しなければならなかったため多くの記憶容量を必要とした。その後のCPU性能の向上に伴い、現在の計算機では、解像度に依存しないベクタ形式のフォント(アウトラインフォント)データを保持しておき、ディスプレイやプリンタに見合った適切な解像度のフォントをその都度生成することにより、少ない記憶容量で常に高品質なフォントを表示できるようになった。しかし現在でも、携帯電話やカーナビゲーションシステムなどに内蔵されるCPUは処理能力が比較的低く、ベクタグラフィックスのラスタライズに要する演算コストを低減することが課題になっている。
近年、この課題を解決するためにGPU(グラフィックスプロセッサユニット)が活用されている。GPUを利用し、直線と曲線で構成される図形をラスタライズするための手法が既に提案されている(例えば下記特許文献1参照。)。
また、図形の幾何形状が動的に変化しても高速にラスタライズが可能な手法も公知である(例えば下記特許文献2参照。)。
特開2006−106705号公報 特開2007−304871号公報
本発明は、ベクタ図形を曲面上に描画する場合であっても、再分割処理等による処理負担が増加することなく高速に描画処理を行うことのできる描画装置及び方法を提供することを目的とする。
本発明の一観点に係る描画装置は、任意の図形を表すベクタデータを記憶する第1の記憶部と、前記図形を描画するガイドとしての曲面モデルを記憶する第2の記憶部と、前記曲面モデルをスクリーンに投影した際に該曲面モデルが占めるピクセルごとに、前記曲面モデルとは独立して前記図形を定義するとともに該ピクセルの属性値を決定するために参照されるベクタ定義空間における位置座標、色情報及び透明度を含む描画用パラメータを算出する第1の算出部と、前記ベクタデータを輪郭線解析することにより直線輪郭または曲線輪郭のいずれかに基づく複数のプリミティブデータを生成する第1の生成部と、前記ベクタ定義空間における前記複数のプリミティブデータを記憶する第3の記憶部と、前記複数のプリミティブデータに前記位置座標を含むか否かを判定し、前記位置座標を含むプリミティブデータが前記直線輪郭のプリミティブデータであれば前記位置座標の描画判定変数を加算し、前記位置座標を含むプリミティブデータが前記曲線輪郭のプリミティブデータであれば、該位置座標が曲線輪郭の凸領域に含まれるならば前記描画判定変数を加算する判定部と、前記描画判定変数を加算した回数が奇数であるならば、前記位置座標に対応するピクセルの属性値を前記描画用パラメータに基づいて生成する第2の生成部と、を具備する。
本発明によれば、ベクタ図形を曲面上に描画する場合であっても、再分割処理等による処理負担が増加することなく高速に描画処理を行うことのできる描画装置及び方法を提供することができる。
以下、図面を参照して本発明の実施形態について説明する。
(第1実施形態)「前処理や再分割が不要な曲面レンダリング」
図1に示すように、第1実施形態に係る描画装置は、ベクタ図形を描画するガイドとして用いられ、その上にベクタデータがレンダリングされる曲面モデル(以下、「曲面」という。)、及びベクタデータをレンダリングする位置であるベクタデータ定義位置を記憶するモデル記憶部1と、任意の図形を表すベクタ形式の図形データ(以下、「ベクタデータ」という)を記憶するベクタデータ記憶部5と、モデル記憶部1から曲面及びベクタデータ定義位置のデータを入力し、描画結果を構成する各ピクセルに対応する、曲面上での位置座標(例えばテクスチャ座標でもよい)などの描画用パラメータを算出する描画用パラメータ算出部2と、ベクタデータ記憶部5に保持されているベクタデータを読み込んで、ベクタデータを描画するために利用する、三角形や凸多角形に代表されるプリミティブデータを、曲面が定義される空間とは独立した空間であって独自の位置座標(またはテクスチャ座標)などでレンダリング対象のベクタデータが定義される空間であるベクタ定義空間に生成する三角形データ生成部(描画制御用プリミティブ生成部)3と、三角形データ生成部3によって生成された三角形データを記憶するための三角形データ記憶部(描画制御用プリミティブ記憶部)4と、描画用パラメータ算出部2で得られた対応位置と、三角形データ記憶部4に記憶されたプリミティブ(例えば三角形)とを用いて、要求される出力データの詳細度に応じて決定される解像度のラスタデータの各ピクセルが、どのようにレンダリングされるべきかを判定するための判定情報を算出する描画属性制御情報算出部7と、描画属性制御情報算出部7によって得られた判定情報を用いて、そのピクセルを描画するかどうかを判定し、色情報、アルファ値を決定してラスタデータを出力するラスタデータ生成部8とを有する。
ラスタデータ生成部8で出力される結果は、ビットマップやJPEG、GIFなどのグラフィックス分野で一般的に用いられる画像形式でラスタデータ記憶部9に保存されてもよいし、ディスプレイやプリンタなどの提示部10に出力されてもよい。また、ネットワークを通じて出力結果、あるいは保存されたデータが転送されてもよい。
なお図1では、モデル記憶部1とベクタデータ記憶部5および三角形データ記憶部4を異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、異なる複数のメモリ上に分割して構成してもよい。
また本実施形態では、ベクタ定義空間は例えば各軸が0〜1までの範囲で定義される二次元の空間であるとするが、ベクタ定義空間はこの形式に限定されるものではない。各軸が0〜1以外の範囲で定義されてもよいし、三次元の空間であってもよい。
本実施形態では、まず図1に従い描画制御用プリミティブを三角形とした場合を例に説明を行う。描画制御用プリミティブを三角形ではなく他の図形とする場合については後述する。
以下、図1の描画装置の各ブロックの詳細な動作およびブロック間を流れるデータの構造について、図面を参照して説明していく。
[モデル記憶部1]
モデル記憶部1には、ベクタデータ記憶部5に保存されているベクタデータをレンダリングしたい曲面と、曲面のどの位置にレンダリングしたいかを表す位置(ベクタデータ定義位置)とが保存されている。なお、保存されるデータはこれらのみに限定されない。レンダリングの際の視点の位置や視線方向を表すカメラパラメータや並行投影・投視投影のどちらで投影するかなど、グラフィックスの分野でレンダリングの際に一般的に用いられる他の情報がモデル記憶部1に格納されていてもよい。
[ベクタデータ記憶部5]
ベクタデータ記憶部5では、ラスタライズする図形のベクタデータが記憶されている。ベクタデータは、図形要素の種類、および図形要素を構成する各点の座標、および各点の接続関係などを有する。例えば、図2の図形のベクタデータは図3のようになる。図3では、直線あるいはパラメータ曲線の端点を黒丸で表し、パラメータ曲線の制御点を白丸で表している。本実施形態では、このようなベクタデータがあらかじめベクタデータ記憶部5に記憶されているものとする。
なお、ベクタデータは上記の形式に限定されるものではなく、色情報やアルファ値などのグラフィックスの分野において一般的に利用される他のデータを含んでもよい。
[描画用パラメータ算出部2]
描画用パラメータ算出部2は、曲面をスクリーンに投影した際に該曲面モデルが占めるピクセルごとに、ベクタ定義空間における位置座標、色情報及び透明度を含む描画用パラメータを算出する。ベクタ定義空間は、曲面とは独立してレンダリング対象のベクタデータを定義するとともにピクセルの属性値を決定するために参照される。
具体的には、描画用パラメータ算出部2では、ベクタデータ記憶部5に保存されているベクタデータをレンダリングする際に、モデル記憶部1から、曲面のデータ及びベクタデータをレンダリングする位置であるベクタデータ定義位置、さらに必要であればカメラパラメータや投影方法を読み込み、ラスタデータ生成部8で出力されるラスタデータの各ピクセルがベクタ定義空間のどの位置に対応するかを表すパラメータ、およびどのような色が定義されているかを算出する。これにより、各ピクセルのベクタ定義空間での位置座標(「対応位置」という)、各ピクセルの色情報、透明度などのピクセル属性情報が決定される。
なお本実施形態では、ベクタ定義空間との対応パラメータとして例えばテクスチャ座標を用いる。テクスチャ座標を利用する場合、グラフィックスの分野で一般的に用いられるテクスチャマッピングの手法を用いてベクタ定義空間との対応を計算し、ベクタ定義空間での位置を算出できる。
対応位置(例えばテクスチャ座標)、各ピクセルの色情報、および透明度をどのようにして算出するかについては、曲面をレンダリングする際のレンダリング方法と同様の方法で行うことができる。例えば、曲面を微細な三角形面の集合で近似し、各ピクセルの属性情報がどの三角形面で決定されるかを計算することで求めることが可能である。この計算方法は三角形面をレンダリングする際のピクセル属性情報の決定方法と同じであり、グラフィックスの分野では一般的な方法であるため説明は省略する。また、曲面からのピクセル属性情報の決定方法はこれに限るものではない。例えば、各ピクセルから、レンダリングする際の視線の方向に半直線を延ばし、曲面と半直線の交点部分の対応位置(例えばテクスチャ座標)、色情報、透明度などをピクセル属性情報とする方法も考えられる。また、この方法に限定するものでもなく、ピクセルごとにピクセル属性情報が算出可能な他の方法を用いてもよい。
またベクタ定義空間との対応情報は上記の形式に限定されるものではなく、グラフィックスの分野において一般的に利用される他のデータを用いるか、あるいは含んでもよい。また、例えば、あらかじめ決定される式にパラメータとして代入されるような、独自に定義した値であってもよい。また、曲率など曲面から算出されるパラメータを利用してこのパラメータを変更したものを含んでもよい。
[三角形データ生成部3]
三角形データ生成部3では、ベクタデータ記憶部1に保持されているベクタデータ(図3)が読み込まれ、その輪郭線を解析することによって三角形データを生成する処理が行われる。輪郭線解析の結果曲線と見なされた部分(以下、「曲線輪郭」とよぶ)は、始点・制御点・終点で三角形を生成する。なおこの時には、図15(b)の黒で塗りつぶされている領域にしめすように、三角形内部に定義されている曲線の凸領域のみが図形を構成する。また、ベクトルデータの輪郭線を追跡して制御点を除く点を出現順につないだ場合に出来る直線のみで構成される輪郭(以下、「直線輪郭」とよぶ)で定義される多角形から、その多角形の任意の1点を選択し、その1点と多角形の稜線で構成される三角形群を生成する。ベクタデータから三角形データを生成する方法については例えば上記特許文献2で示されている方法を用いることができる。しかしながら三角形データの生成方法はこれに限定される物ではなく、曲線輪郭は始点・制御点・終点で三角形を生成し、それと併せて、制御点を含むすべての点で定義される多角形から、その多角形の任意の1点を選択し、その1点と多角形の稜線で構成される三角形群を生成してもよい。この場合、曲線輪郭から構成される三角形は、図15(b)に示すように内部に定義されている曲線の凸領域が図形を表すものと、図15(a)に示すように凹領域が図形を表すものの2種類で構成される。またこの場合、直線輪郭はベクトルデータの輪郭線を追跡してすべての点を出現順につないだ物と定義される。この時には、例えば上記特許文献1の方法を用いて生成することが出来る。三角形データは、上述したように、曲面が定義される空間とは独立した空間であって、独自の位置座標(本例ではテクスチャ座標)などでレンダリング対象のベクタデータが定義される空間であるベクタ定義空間に定義される。この場合、三角形データがベクタ定義空間にすべて含まれ、かつ個々の三角形が最も大きくなるように正規化を行う。例えば、三角形データ生成部3で生成された三角形データ群がすべて含まれ、かつ各辺がベクタ定義空間のいずれかの軸と平行な最小の長方形を考え、その長方形の縦横比を維持したまま、その長方形をベクタ定義空間に含まれる範囲で拡大した際の倍率で正規化する方法が考えられる。しかしながらこの方法に限定するものではなく、グラフィックスの分野で一般的な他の正規化方法を用いてもよい。
[三角形データ記憶部4]
三角形データ記憶部4には、三角形データ生成部3によって生成された三角形データが記憶される。
[描画属性制御情報算出部7]
描画属性制御情報算出部7は、三角形データ記憶部4に記憶された三角形データと、描画用パラメータ算出部2で算出された結果を参照し、ベクタデータが形成する閉領域に対応位置が含まれるかどうかを判断するための情報を算出する。この処理の流れを図4に示す。
最初のステップS201では、三角形データ生成部3で生成された、直線輪郭および曲線輪郭から生成される複数の三角形の集合である三角形データの中から、S201で一度も読み込まれていない三角形を1つ読み込む。次のステップS202では三角形データ、または三角形データの一部分が、描画用パラメータ算出部2で算出された対応位置を含むかを調べる。ここで、S201で読み込んだ三角形が直線輪郭から生成された三角形の場合、対応位置が三角形の内部に含まれていれば描画判定変数に1を加算する。一方、曲線輪郭から生成された三角形の場合、三角形データ生成部3での生成ルールによって処理が異なる。
第一の条件は、対応位置が三角形の内部に含まれていれば真というものであり、生成ルールによらず共通の条件である。
第二の条件は三角形データの生成ルールによって異なる。図15(b)に示すような、曲線の凸領域のみが図形を表すように構成された三角形の場合、曲線の凸領域に含まれていれば真となる。また、図15(b)に示すように内部に定義されている曲線の凸領域が図形を表すものと、図15(a)に示すように凹領域が図形を表すものの2種類で構成されている場合、凸曲線(曲線の凸領域が図形を表す曲線)の凸領域、あるいは凹曲線(曲線の凹領域が図形を表す曲線)の凹領域に含まれていれば真となる。S203では、これらの2つの条件が真である場合に、描画判定変数に1を加算する。
S201〜S203を、三角形データがすべて判定されるまで繰り返すことにより、対応位置が、三角形データ、あるいは三角形データの一部に含まれると判定された回数が得られる。本実施形態では、これを描画判定変数とする。
例えば、三角形データが3つの直線輪郭から生成された三角形で構成されており、対応位置がそのうちの2つの三角形の内部に相当する場合、描画判定変数は2となる。また、ベクタデータが色情報やアルファ値などの情報を保持しており、必要であれば、併せて対応位置での色情報やアルファ値を算出してもよい。
[ラスタデータ生成部8]
ラスタデータ生成部8は、描画属性制御情報算出部7で算出された描画判定変数を参照し、すでに算出されているピクセル属性情報を用いて画面表示用のラスタデータに書き込みを行うかどうか、すなわち描画するか否かをピクセルごとに決定して出力する。描画判定変数が奇数である場合にのみ、ラスタデータにピクセルを書き込む。このとき、ベクタデータから算出された色情報やアルファ値があれば、すでに算出されているピクセル属性情報の色情報やアルファ値などの該当する部分をベクトルデータから算出された値で置き換える、またはすでに算出されているピクセル属性情報の色情報やアルファ値とブレンドするなどの処理を行ってもよい。描画判定変数が奇数であるとは、直線輪郭から生成された三角形データ、および曲線輪郭から生成された三角形データに定義されている曲線の図形内部側の領域をすべてラスタライズした場合に、そのピクセルが奇数回書き込まれるということと等しくなる。これを上記特許文献2で示されている、ステンシルデータの生成に置き換えて考えると、ステンシルデータのビット反転が奇数回行われ、0以外の値となり、図形内部と判定されることと等しくなる。図5の灰色部分(ハッチングにより示す)は偶数回書かれた部分であり、黒部分は奇数回書かれた部分となる。つまり、上記特許文献2のステンシルデータと同様の結果を得ることができる。
[ラスタデータ記憶部9]
ラスタデータ記憶部9には、ラスタデータ生成部8によって生成されたラスタデータが記憶される。
ラスタデータは、最終的に提示部10に提示される解像度と同じ解像度をもつ画像データである。ただし、ラスタデータの構成はこの形式に限定されるものではなく、グラフィックスの分野において一般的に利用される他のデータを含んでもよい。
[提示部10]
提示部10は、ラスタデータ記憶部9に保持されているラスタデータをユーザに提示するためのディスプレイやプリンタなどで構成される。
[まとめ]
本実施形態における描画装置によれば、ベクタデータで表現された図形を曲面上に描画することができる。描画処理においては、図形を描画するために利用する三角形データをベクタ定義空間に維持する構成であることから、動的に図形の幾何形状が変化する場合であっても三角形データを作り直す必要がなく、高速に描画が行える。
(第1実施形態の変形例1)
第1実施形態ではベクタデータを三角形データに分割したが、三角形データ生成部3、三角形データ記憶部4を、それぞれ凸多角形データ生成部、凸多角形データ記憶部に変更して複数の異なる多角形(四点以上で構成される凸多角形データ)に分割してもよい。
[凸多角形データ生成部]
凸多角形データ生成部は、ベクタデータ記憶部5に保存されているベクタデータを、重なりを許し、三角形データ生成部3で生成される三角形群を構成する三角形の辺の数の合計よりも合計の辺の数が少なくなるような凸多角形群に分割する。例えば、三角形データ生成部3で生成された三角形群であり直線輪郭から生成されたいずれかの三角形のうち、同一平面上にあって、三角形を構成する稜線を共有し、かつマージしても凹多角形にならない三角形同士をマージ(併合)する。これにより生成される凸多角形に対し、上記の条件を満たす限りにおいてさらに別の三角形をマージする。同様に、凸多角形の組み合わせであっても上記条件を満たすならば、両者をマージする。
同一平面上にあるかどうかの判定は、マージできるかを判定する三角形同士、または凸多角形同士、または三角形と凸多角形の組み合わせの法線が同一の向きを指しているかで判断することができる。なお、法線は三角形または凸多角形を構成する任意の頂点を1点選び、その点から反時計回りに3点選んで、その三点で構成される2本の稜線を特定し、その2本の稜線の外積を計算することで求めることが可能である。また凹多角形であるかどうかは、例えば多角形内部側の角度がすべての角で180度未満であるかを調べればよい。この時の角度の求め方はグラフィックス分野で一般的な処理なので説明を省略する。しかし分割方法、同一平面にあるかどうかの判定方法、あるいは凹多角形であるかどうかの判定方法はこれに限定するものではなく、その他のグラフィックス分野で一般的な方法を用いてもよい。
[凸多角形データ記憶部]
凸多角形データ記憶部は、凸多角形データ生成部で生成された凸多角形データを記憶する。
変形例1の場合、描画属性制御情報算出部7では対応位置が多角形データの内部に含まれるかを調べることになる。典型的には、ある位置座標が三角形以上の凸多角形の内部に含まれるかどうかは、多角形の稜線と位置座標との外積を計算し、算出結果の値の符号を調べることで決定される。凸多角形に分割した場合、生成される凸多角形群の稜線数が三角形データの場合に比べて少なくなるため、描画属性制御情報算出部7の内外判定の処理コストが低くなる。しかし、図形の動的な変形によって多角形が凹多角形となった場合に、その多角形を凸多角形になるまで分割する必要がある。
[まとめ]
本変形例によれば、ベクタ図形を曲面上に描画する際に、第1実施形態よりもさらに高速にラスタライズを行うことができる。ただし、図形の動的な変形を行う場合には凸多角形データの修正が必要な場合がある。そのため、図形の動的な変形が必要な場合には第1実施形態の方法を用いるべきである。
(第1実施形態の変形例2)
第1実施形態では、描画属性制御情報算出部7で三角形データと対応位置との内外判定を行い、ラスタデータ生成部8で各ピクセルをラスタデータに書き込むかのみを判定してラスタデータを生成した。変形例2では、描画属性制御情報算出部7で内外判定の結果以外の情報をも同時に算出して出力し、ラスタデータ生成部8で書き込むと判定されたピクセルに対して、描画属性制御情報算出部7で算出した内外判定の結果以外の情報を用いて処理を加える部分が異なる。
[描画属性制御情報算出部7]
本変形例における描画属性制御情報算出部7では、描画判定変数の他に、ラスタデータ生成部8で処理を加えるための追加情報を算出する部分が異なる。
例えば、三角形データ記憶部4に保存されている三角形データを構成する稜線のうち、元のベクタデータの稜線を共有しているもの、または曲線を定義している三角形データの曲線から対応位置までの最短距離を求める。この処理は最短距離を算出することに限定されるものではなく、距離以外のグラフィックスの分野で利用されるパラメータを含んでもよい。また、必ず最短距離を求める必要があるわけではなく、最短距離以外のパラメータを最短距離に代えて利用してもよい。
[ラスタデータ生成部8]
本変形例におけるラスタデータ生成部8は、第1実施形態のラスタデータ生成部8の機能に加えて、描画属性制御情報算出部7で算出した追加情報をパラメータをとして、画像処理を加える部分を備える。例えば、描画属性制御情報算出部7で算出した最短距離が一定の値以下のピクセルのアルファ値に対して、0〜1の範囲に正規化した最短距離を保存する。なお、必ずしも0〜1に正規化する必要はない。また、前記したとおり追加情報は必ずしも最短距離である必要はない。
[まとめ]
本変形例によれば、正確なデータであるベクタデータを利用して、描画用のラスタデータに対して、図形のエッジ部分をぼかす、エッジに近づくにつれて色をブレンドする、などの効果を与えることができる。
(第2実施形態)「動的にベクタデータの変形が可能なレンダリング」
次に本発明の第2実施形態について説明する。
図6に第2実施形態における描画装置のブロック図を示す。この図からわかるように本実施形態の特徴は、第1実施形態の構成に対して、描画制御用プリミティブ補正部6を追加したことにある。
以下、第1実施形態と同様に描画制御用プリミティブが例えば三角形であるとして説明する。
第1実施形態では、三角形データ生成部3での生成を行う際に、ベクタ定義空間に三角形データができるだけ大きく定義されるように正規化を行った。第2実施形態では、これを描画制御用プリミティブ補正部6で補正することで、三角形データ記憶部4に記憶されているデータを変更することなく、動的な変形を可能とする。例えば、制御用プリミティブ補正部6が三角形データを縮小することにより、モデル記憶部1に保存されているベクタ定義位置を変更することなく、出力されるベクタデータを縮小させることができる。これは、三角形データ記憶部4を参照することで得られる三角形データに対してアフィン変換を行うことで可能である。また、回転や移動を行うことにより、それぞれベクタデータを回転、移動することもできる。これもグラフィックス分野で一般的であるアフィン変換を行うことで可能である。さらに、頂点単位での補正も同様に頂点を対象としたアフィン変換によって可能である。頂点単位での補正を行うことにより、モデル記憶部1に保存されているベクタ定義位置を変更することなく、ベクタデータを波打たせるなどといったエフェクトが可能となる。また、上記の変形を組み合わせて補正することも可能であるし、補正は上記の変形に限定されるものではなく、位相構造を崩さない限り、グラフィックス分野で一般的なベクタデータへの変形操作を行うことも可能である。
これらの補正を行うための拡大率や回転角度、移動量などのパラメータはモデルに付加されていてもよいし、マウスの移動量や数値による入力などによる外部からの入力であってもよい。また、別途補正用パラメータのみがデータとして与えられても良い。
第1実施形態の変形例1に示した凸多角形の場合にも補正の結果が凸多角形データである限り同様の処理が適用できる。
補正の結果、凹多角形になった場合、その凹多角形を凸多角形になるまで分割すればよい。例としては、凸多角形をいったん三角形の組に分割し、凸多角形データ生成部と同様の方法で凸多角形群にする方法がある。しかし凹多角形の凸多角形群への分割方法はこれに限定するものではなく、グラフィックス分野で一般的な他の方法を用いてもよい。
[まとめ]
本実施形態によれば、三角形データ記憶部に保存されているプリミティブを改編しないため、描画制御用プリミティブを再生成することなくベクタデータを変形させることができる。したがって処理が高速である。
(第2実施形態の変形例1)
図7は第2実施形態の変形例1のブロック図を示したものである。この図からわかるように、本変形例は第2実施形態に補正情報入力部14を備えた部分が異なる。第2実施形態では、あらかじめ描画制御用プリミティブ補正部6に補正用のパラメータを与えていた。本変形例では、補正情報入力部14によって外部から動的に入力が与えられ、そのつど補正が行われる。
[補正情報入力部14]
補正情報入力部14は、ユーザ操作による入力を常時または一定のサンプリング間隔で受け付けて、それらの入力値を補正用パラメータとして加工し、描画制御用プリミティブ補正部6に出力する。例えば、マウスの直前の位置と現在の位置との差分を計算し、それをあらかじめ決められた倍率と掛け合わせ、それを描画制御用プリミティブ補正部6で用いる拡大率とする。乗算する値を倍率ではなく角度とすれば回転角度にもなるし、任意の値を乗算することで移動量と考えることもできる。入力デバイスはマウスに限定するものでもないし、パラメータの利用方法も上記の物に限定するものではない。また、拡大率、回転角度、移動量の算出方法も上記の方法に限定するものではない。
[まとめ]
本変形例によれば、ユーザの入力に応じて、高速に変形したベクタデータを曲面上にレンダリングすることができる。
(第3実施形態)「アルファブレンド不要のアンチエイリアシング」
次に本発明の第3実施形態について説明する。
図8に第3実施形態に係る描画装置のブロック図を示す。この図からわかるように、本実施形態の特徴は、第2実施形態の構成に対して、描画属性制御情報一次記憶部11、サンプリング点計算部12、描画属性制御情報再計算部13を追加したことにある。
図9に第3実施形態における処理の概略を示す。ステップS301およびS302は第1実施形態の方法と同じであり、描画属性制御情報算出部7で算出される描画判定変数をもとに、ラスタデータ生成部8で行われる描画可否の判定と同様の処理でピクセル単位の描画可否を判定する。S302以降が第1実施形態と異なり、第2実施形態では、S302の結果とS301の対応位置をもとにS304でサブピクセル精度の画像を生成し、これをS305でピクセル精度の画像になるように処理して提示部10に出力する。このとき、S304でのサブピクセル精度の画像の生成方法と、S305の処理方法にZソートなどの順序に依存するアルゴリズムを用いないで処理を行うことにより、アルファブレンド不要のアンチエイリアシングを実現する。
なお図8では、モデル記憶部1、ベクタデータ記憶部5、三角形データ記憶部4、描画属性制御情報一次記憶部11を異なるブロックとして表記しているが、これらは単一のメモリ上にまとめて構成してもよいし、異なる複数のメモリ上に分割して構成してもよい。
[描画属性制御情報算出部7]
本実施形態の描画属性制御情報算出部7では、第1実施形態での描画属性制御情報算出部7の処理に加えて、算出された描画判定変数を参照し、ピクセルごとにそのピクセルが描画用のラスタデータに書き込まれるべきピクセルかどうかを判定する処理が行われる。判定方法は第1実施形態のラスタデータ生成部8で行っているものと同様であるが、これをそのまま出力用のラスタデータに書き込まず、さらにアンチエイリアシングの処理を行う点に特徴がある。
[描画属性制御情報一次記憶部11]
描画属性制御情報一次記憶部11では、描画属性制御情報算出部7で算出した描画の可否とその判定に用いた対応位置を、ピクセルを基準としてアクセス可能な形式で保存する。例えば、画像の色を保存するRGBAのいずれか、または複数の要素にまたがった形で保存する方法が考えられる。しかし、保存方法についてはこれに限定するものではない。他にも、画像の縦あるいは横を指定するインデックスと描画可否、対応位置をセットにして記憶する方法もある。また、この方法によらず、ピクセルを基準として描画可否、対応位置が一意に決まる方法であればよい。
[サンプリング点計算部12]
図10に示すように、描画属性制御情報一次記憶部11に保存された描画の可否と対応位置を参照して、図形のエッジを表現するピクセルのサブピクセルに対し、サブピクセル精度で描画可否を決定するための対応位置を算出する。
まずステップS601では、描画属性制御情報一次記憶部11に保存されている描画可否を参照し、そのピクセルが図形のエッジを表現しているかどうかを判定する。エッジを表現している場合にはサブピクセルに対応する対応位置を算出するS602へ遷移する。そうでない場合には、S603へ遷移し、サブピクセルの対応位置は元のピクセルの対応位置と同じ位置とする。
S601は描画属性制御情報再計算部13での計算量を削減するためのものであり、必ずS601の判定を行う必要はない。判定を行わない場合には、すべての場合でS602に遷移させればよい。
本実施形態では、S602でのサブピクセルの対応位置は、隣接するピクセルに対応する対応位置と、図形のエッジを表現するピクセルに対応する対応位置との、対応位置の補間計算によって算出する。補間方法の一例としては、隣接するピクセルの対応位置との線形補間によって求める方法がある。しかしこの方法に限定するものではなく、曲面の曲率などを用いて非線形な補間を行ってもよいし、その他のグラフィックス分野で一般的な補間方法を用いてもよい。
[描画属性制御情報再計算部13]
図11に示すように、サンプリング点計算部12で算出したサブピクセルごとの対応位置における描画可否を判定し、サブピクセル精度での描画可否を決定する。描画可否は、第1実施形態のラスタデータ生成部8で行っている、描画可否の判定をサブピクセル単位に行う方法で算出している。
入力は前記サンプリング点計算部12で出力される、サブピクセルごとの対応位置である。S401では、各サブピクセルの対応位置を入力としてサブピクセルごとの描画判定変数を算出する。S402では、その結果をもとにサブピクセルの分割元のピクセルのどの程度が描画可になっているかを表すカバレッジデータを算出する。カバレッジデータは、そのピクセルに対応するサブピクセルの数と、書き込まれると判定されたサブピクセルの割合で決定される。図12はS401、およびS402をより詳細にした図である。S401はS501〜S507までに対応し、S402はS508に対応する。
ただし、そのピクセルが図形のエッジを表現するピクセルではない場合は、サブピクセルごとの描画判定変数を算出する処理は行わず、そのピクセルのカバレッジデータは1とする。
[ラスタデータ生成部8]
本実施形態におけるラスタデータ生成部8では、描画属性制御情報再計算部13で算出されたカバレッジデータと描画用パラメータ算出部2で算出したピクセル属性情報を入力としてサブピクセル精度のラスタデータを生成し、それを合成してピクセル精度のラスタデータを生成してラスタデータ記憶部9に保存する。カバレッジデータが1であるピクセルをラスタライズする場合、そのピクセルに含まれるすべてのサブピクセルに対して、今回ラスタライズされたピクセルのカラー値を割り当てる。一方、カバレッジデータが1より小さいピクセル、すなわち、図形のエッジ近傍のピクセルをラスタライズする場合、そのピクセルに含まれるサブピクセルのうちの一部に対して、今回ラスタライズされたピクセルのカラー値を割り当て、残りのサブピクセルについては、すでに割り当てられているカラー値をそのまま保存しておくようにする。なお、カラー値を割り当てるサブピクセルは、カバレッジの大きさに基づいて選択される。
サブピクセル精度のラスタデータが合成されることにより、ジャギーが除去された滑らかなラスタライズ結果が得られる。
[まとめ]
後述するように例えば上記特許文献1では、アンチエイリアシングのためにアルファブレンドを用いており、そのため、すべての図形をデプスソートし、奥に位置する図形から順番にラスタライズしなければならない。これに対し本実施形態の描画装置では処理コストの高いアルファブレンドを用いない構成であり高速にアンチエイリアシングすることが可能になる。
(第3実施形態の変形例1)
第3実施形態では、ラスタライズ後の図形のエッジ部分をサブピクセル精度で解析してカバレッジデータを生成し、それを用いてアンチエイリアシングを実現している。本変形例はカバレッジデータの生成方法が第3実施形態と異なる。具体的には、第1実施形態の変形例2の描画属性制御情報算出部7で求めた追加情報を、第3実施形態の描画属性制御情報再計算部13で算出するカバレッジデータとして利用する部分が異なる。
ブロック図は第1実施形態の変形例2と第3実施形態のブロック図を組み合わせたものとなり、描画属性制御情報算出部7までが第1実施形態の変形例2のブロック図となり、それ以降に第2実施形態のブロック図の描画属性制御情報再計算部13以降がつながる形となる。つまり、第1実施形態の変形例2のラスタデータ生成部8の前に、第3実施形態の描画属性制御情報再計算部13を具備することを特徴とする。以下に、追加された第3実施形態の機能ブロックのうち、第3実施形態と機能の異なるものについて説明する。
[描画属性制御情報再計算部13]
第1実施形態の変形例2の描画属性制御情報算出部7で算出された追加情報のうちある閾値以下の値を0〜1に正規化して出力する。閾値を超える場合は1として出力する。
[まとめ]
本変形例は第3実施形態のカバレッジデータ算出の方法が異なるものであり、第3実施形態と同様に、処理コストの高いアルファブレンドを用いないため、高速にアンチエイリアシングすることが可能になる。また、カバレッジデータの算出に正確なベクタデータを用いるため、より正確な結果が得られるが、描画属性制御情報算出部7で算出する追加情報の種類によっては、第3実施形態より処理コストが高くなる可能性がある。
以上説明したように、本発明の実施形態に係る描画装置によれば、曲面上に、図形を変形して描画したい場合でも、高速にラスタライズすることが可能になる。また、動的に図形の幾何形状が変化する場合であっても高速にラスタライズすることが可能になる。さらに、処理コストの高いアルファブレンドを用いることなく、高速にアンチエイリアシングすることが可能になる。
(比較例)
以下、本発明の実施形態との比較例として、特許文献1、2に記載された技術について説明する。
ベクタグラフィックスのラスタライズに要する演算コストを低減するため、GPU(グラフィックスプロセッサユニット)が活用されていることについては既に述べた。GPUを利用して、図2に示すような、直線と曲線で構成される図形をラスタライズするための上記特許文献1の手法をまず説明する。
このラスタライズ手法のフローチャートを図13に示す。この図から分かるように、上記特許文献1の手法の処理は、CPUによる前処理とGPUによる主処理の大きく2段階の処理に分かれている。最初に、CPUによってベクタ形式の図形が三角形の集まりに分解され、その後、GPUによって各三角形がラスタライズされる。GPUの処理単位は三角形であり、図2のような直線と曲線を有する図形を直接扱うことができないため、このような2段階の処理に分かれている。
最初のステップS101では、HDDやRAMなどの記憶媒体からベクタ形式のデータを読み込み、その輪郭線を解析する処理が行われる。例えば、図2の図形を表すベクタ形式のデータは、図3に示すような点と直線から構成されている。この図では、図形の直線あるいはパラメータ曲線の端点を黒丸で表し、パラメータ曲線の制御点を白丸で表している。ステップS101では、このようなベクタ形式のデータを解析して、図14に示すような2種類の輪郭線データを生成する。
この比較例では、図14(a)の輪郭線データを「直線輪郭」と表記し、図14(b)の輪郭線データを「曲線輪郭」と表記する。説明を分かりやすくするため、最初に図14(b)の曲線輪郭について説明する。
図2と図3、および図14(b)を見比べると分かるように、曲線輪郭は、パラメータ曲線の始点と終点、および制御点の3点を結ぶ三角形の集まりである。各三角形はパラメータ曲線に外接しており、曲線は必ず三角形の内部に存在する。
曲線輪郭は、図15に示すような2種類に分類される。図15(a)は曲線の凹領域が図形の内側にあるものであり、図15(b)は曲線の凸領域が図形の内側にあるものである。本明細書では、前者を「凹曲線輪郭」、後者を「凸曲線輪郭」と表記する。
次に図14(a)の直線輪郭について説明する。図2と図3、および図14(a)を見比べると分かるように、直線輪郭は、直線の始点と終点、および凸曲線輪郭の始点と終点、および凹曲線輪郭の始点と制御点と終点を、線分で結ぶことによって得られる多角形である。凸曲線輪郭では始点と終点の2点が結ばれるのに対して、凹曲線輪郭では始点と制御点、および終点の3点が順番に結ばれることに注意する。
図14(a)から分かるように、直線輪郭を構成する多角形は1つとは限らない(この例では3つの多角形で構成される)。また、各多角形は自己交差や穴を含むことがある。
図13のフローチャートの説明に戻る。ステップS102では、前のステップで生成された曲線輪郭に重なりがあるか調べる処理が行われる。その結果、重なりが見つかった場合はステップS103に進み、重なっている2つの三角形のうちの面積の大きい方を細分割する処理が行われる。
この処理の影響で直線輪郭にも変更が生じるため、次のステップS104では、直線輪郭を更新する処理が行われる。その後、ステップS102に戻って再び重なりがあるか調べ、重なりがなければステップS105に進む。曲線輪郭に重なりが残っている限り、ステップS102〜S104の処理が繰り返される。
例えば図14(b)の曲線輪郭の場合、ステップS102において三角形aとb、および三角形cとdが重なっていることが分かる。ステップS103では、三角形aおよびcが、それぞれ、図16(b)に示すような2つの三角形a0とa1、およびc0とc1に細分割される。そしてステップS104では、図16(a)に示すように直線輪郭を更新する処理が行われる。
ステップS105では、直線輪郭を構成する各多角形を三角形に分割する処理が行われる。例えば図16(a)の3つの多角形は、図17に示すような三角形の集まりに分割される。
以上(ステップS101〜S105)の処理は、すべてCPUによる前処理として実行される。
ステップS106では、直線輪郭を構成する三角形(図17)および曲線輪郭を構成する三角形(6(b))が、GPUによってラスタライズされる。このとき、直線輪郭を構成する三角形については、図18(a)に示すように、その三角形の内側にあるすべてのピクセルがラスタライズされる。
これに対して曲線輪郭を構成する三角形については、図18(b)に示すように、その三角形の内側にあるピクセルのうち、凹曲線輪郭の凹領域のみ、あるいは凸曲線輪郭の凸領域のみがラスタライズされる。
このようにして得られた直線輪郭と曲線輪郭のラスタライズ結果は、GPU内部のフレームバッファに併せて記憶される。例えば、図18(a)と図18(b)は、図19に示すようなラスタデータとしてフレームバッファに記憶される。
従来のGPUを利用したラスタライズ手法では、複数の三角形を用いて曲線を近似していたため、拡大したときに粗く見えてしまう問題があった。また、より滑らかにラスタライズするためには多数の三角形を用いて曲線の近似精度を上げるしかなく、記憶容量と処理コストの増大が避けられなかった。これに対して上記特許文献1の手法では、三角形単位ではなく、曲線近傍のピクセル単位に処理するため、解像度に依存せず常に滑らかに曲線をラスタライズすることができる。その上、記憶容量と処理コストも解像度に依存せず、常に少なくて済む。
しかし、上記特許文献1のラスタライズ手法には以下の2つの問題がある。
1つ目の問題は前処理のコストが高いことである。特に、図13のステップS102の曲線輪郭の重複判定と、ステップS105の直線輪郭の三角形分割のコストが高い。
前処理のコストは、図形の幾何形状が時間的に変化しない場合であれば大きな問題にはならない。一度前処理をしてしまえば、以降は再び前処理を行う必要はないからである。しかし、動的に図形の幾何形状が変化する場合は、その都度前処理をやり直さなければならず、ラスタライズ処理全体のボトルネックになることが多い。
2つ目の問題は、アンチエイリアシングのためにアルファブレンドを用いていることである。ここでアンチエイリアシングとは、ラスタライズされた図形の輪郭線に現れるジャギー(階段状のギザギザ)を除去する処理のことである。また、アルファブレンドとはアルファ値と呼ばれる係数を用いて2つのピクセル値を半透明合成する処理のことである。
広く知られているように、アルファブレンドを用いるためにはすべての図形をデプス値でソート(デプスソート)し、奥に位置する図形から順番にラスタライズしなければならない。デプスソートは非常にコストが高い処理であり、ラスタライズ処理全体のボトルネックになることが多い。
上記特許文献2ではこれら2つの問題を解決する方法を提案している。
上記特許文献2では、ベクタデータに含まれる直線および曲線の始点と終点を単純に線分で結ぶことによって得られる多角形を直線輪郭としている。例えば、図3のベクタデータから解析された直線輪郭は、図20に示すような3つの多角形P0、P1、P2になる。曲線輪郭については、上記特許文献1と同様のものを用いている。
得られた直線輪郭を構成する各多角形について、任意の1点が選択される。本明細書ではこの点を「ピボット」と表記する。そして次に、ピボットと、ピボットを含まないすべての連結する2点を結ぶ三角形を生成する。ここで連結する2点とは、多角形の辺によって結ばれている2つの点のことを意味する。
例えば、図20の3つの多角形P0、P1、P2において、それぞれ点0、23、28がピボットとして選択された場合、図21に示すような三角形が生成される。三角形が重なっており、この図だけでは三角形の形状を把握することが難しいため、図22に3つの多角形P0、P1、P2から生成された三角形を構成する3つの点の番号を示す。
なお、図22はあくまで説明を分かりやすくするための補足であり、三角形データそのものを表しているのではないことに注意する。実際の三角形データは、各三角形を構成する3点の位置座標、およびテクスチャ座標、および接続関係などを有する。
次に、三角形内部のピクセルをラスタライズすることによってステンシルデータを生成する処理が行われる。なお、ステンシルデータは、最終的に提示する解像度と同じ解像度をもつ画像データである。
まず、直線輪郭の三角形データおよび曲線輪郭の三角形データを読み込み、ラスタライズする。このとき、直線輪郭の三角形については、その三角形の内側にあるすべてのピクセルがラスタライズされ、これらのピクセル位置に対応するステンシルデータのピクセル値がビット反転される。
一方、曲線輪郭の三角形については、その三角形の内側にあるピクセルのうち、曲線の凸領域に属するピクセルのみがラスタライズされ、これらのピクセル位置に対応するステンシルデータのピクセル値がビット反転される。
結果として、図形の内部は奇数回ピクセル値がビット反転され、図形の外部は偶数回ピクセル値がビット反転される。
上記の処理によって塗りつぶすピクセルが判断できるため、描画用のラスタデータの対応するピクセルを塗りつぶすことで描画結果を生成することができる。
上記特許文献2では、直線輪郭の三角形分割などを行わないため、ベクタデータの頂点を移動しても三角形データの接続関係が変化しなければ三角形データの対応する頂点座標を書き換えるだけでよく、再度三角形データを作り直す必要はない。そのため、図形の幾何形状が動的に変化しても高速にラスタライズが可能である。
また、描画用のラスタデータのサブピクセル精度の画像を用意し、カバレッジデータをもとにサブピクセルの一部に図形の色を割り当て、最終的な描画用のラスタデータを生成する際に合成することでアルファブレンドが不要なアンチエイリアシングを可能としている。
しかし、上記特許文献1、2に記載された技術では、図形を曲面上にレンダリングしたい場合にそのまま適用することができない。
一般に、多角形データを曲面上にレンダリングする場合、多角形データを微細な多角形データ群に分割することで元の多角形データ内に頂点を追加し、その頂点を移動することによって実現する。上記特許文献2の方法を利用してベクタデータを曲面上にレンダリングする場合にも、上記特許文献2で示される方法で生成された三角形データを再分割する必要がある。
三角形データの再分割には様々な方法があるが、十分に曲面に沿っている、つまり曲面上にレンダリングされているといえる描画結果が得られるように再分割する方法の処理コストは高い。
ベクタデータを描画するための三角形データを再分割してしまうため、図形の幾何形状が変化する場合には、その都度再分割処理をやり直す必要がある。このため、上記特許文献1の問題点であり、上記特許文献2の利点である、動的な図形の幾何形状の変化への対応も不可能となる。
上述した本発明の実施形態によれば、上記の問題を回避し、ベクタ図形をラスタライズして曲面上に描画する場合であっても、再分割処理等による処理負担が増加することなく高速に描画処理を行うことのできる描画装置及び方法を提供できる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
描画制御用プリミティブを三角形データとした場合の第1実施形態に係る描画装置を示すブロック図 ベクタ形式の図形の例を示す図 ベクタデータの例を示す図 第1実施形態における描画属性制御情報算出部の処理手順を示すフローチャート 描画判定変数をもとに生成された領域の例を示す図 本発明の第2実施形態に係る描画装置を示すブロック図 本発明の第2実施形態の変形例1に係る描画装置を示すブロック図 第3実施形態に係る描画装置を示すブロック図 第3実施形態の処理の概要を示すフローチャート 第3実施形態におけるサンプリング点計算部の処理手順を示すフローチャート 第3実施形態における描画属性制御情報再計算部の処理手順を示すフローチャート 第3実施形態における描画属性制御情報再計算部の処理手順の詳細を示すフローチャート 比較例に係るラスタライズの処理手順を示すフローチャート 直線輪郭と曲線輪郭の例を示す図 曲線輪郭から生成される三角形と曲線輪郭で構成される図形の例を示す図 細分割された曲線輪郭と、それに伴い更新された直線輪郭の例を示す図 三角形分割された直線輪郭の例を示す図 比較例によってラスタライズされた直線輪郭と曲線輪郭の例を示す図 比較例によって生成されたラスタデータの例を示す図 直線輪郭の例を示す図 比較例によって直線輪郭から生成された三角形データの例を示す図 比較例によって直線輪郭から生成された三角形の点番号の例を示す図
符号の説明
1・・・モデル記憶部;
2・・・描画用パラメータ算出部;
3・・・三角形データ生成部;
4・・・三角形データ記憶部;
5・・・ベクタデータ記憶部;
6・・・描画制御用プリミティブ補正部;
7・・・描画属性制御情報算出部;
8・・・ラスタデータ生成部;
9・・・ラスタデータ記憶部;
10・・・提示部;
11・・・描画属性制御情報一次記憶部;
12・・・サンプリング点計算部;
13・・・描画属性制御情報再計算部;
14・・・補正情報入力部

Claims (9)

  1. 任意の図形を表すベクタデータを記憶する第1の記憶部と、
    前記図形を描画するガイドとしての曲面モデルを記憶する第2の記憶部と、
    前記曲面モデルをスクリーンに投影した際に該曲面モデルが占めるピクセルごとに、前記曲面モデルとは独立して前記図形を定義するとともに該ピクセルの属性値を決定するために参照されるベクタ定義空間における位置座標、色情報及び透明度を含む描画用パラメータを算出する第1の算出部と、
    前記ベクタデータを輪郭線解析することにより直線輪郭または曲線輪郭のいずれかに基づく複数のプリミティブデータを生成する第1の生成部と、
    前記ベクタ定義空間における前記複数のプリミティブデータを記憶する第3の記憶部と、
    前記複数のプリミティブデータに前記位置座標を含むか否かを判定し、前記位置座標を含むプリミティブデータが前記直線輪郭のプリミティブデータであれば前記位置座標の描画判定変数を加算し、前記位置座標を含むプリミティブデータが前記曲線輪郭のプリミティブデータであれば、該位置座標が曲線輪郭の凸領域に含まれるならば前記描画判定変数を加算する判定部と、
    前記描画判定変数を加算した回数が奇数であるならば、前記位置座標に対応するピクセルの属性値を前記描画用パラメータに基づいて生成する第2の生成部と、を具備する描画装置。
  2. 前記ベクタ定義空間は二次元の空間である請求項1記載の装置。
  3. 前記プリミィティブデータは、三角形データである請求項1記載の装置。
  4. 前記プリミィティブデータは、四点以上で構成される凸多角形データである請求項1記載の装置。
  5. 前記位置座標と前記プリミティブとの間の最短距離を算出する第2の算出部と、
    前記最短距離をパラメータとしてぼかし処理または透過処理を含む画像処理を前記属性値に対して行う画像処理部とをさらに具備する請求項1記載の装置。
  6. 前記第3の記憶部に記憶されたプリミティブデータに対し、補正用パラメータに従ってアフィン変換による変形を施して補正後のプリミティブデータを求める補正部をさらに具備し、
    前記判定部は、前記補正後のプリミティブデータを用いて前記位置座標を含むか否かの判定を行う請求項1記載の装置。
  7. ユーザ操作を受け付けて入力値を出力する入力デバイスをさらに具備し、
    前記補正部は、前記入力値を加工することにより前記補正用パラメータを求める請求項6記載の装置。
  8. ピクセル毎に、前記位置座標が前記プリミティブデータに含まれるか否かの判定結果及び前記位置座標を記憶する第4の記憶部と、
    前記第4の記憶部の判定情報を参照して描画結果画像のエッジとなるピクセルを特定し、該ピクセルに対応する位置座標を参照し、エッジピクセルをサブピクセルに分割した際のサブピクセルごとの対応位置を算出する第4の算出部と、
    前記サブピクセルの対応位置の描画可否を判定するとともに、該サブピクセルの分割元であるピクセルがどの程度の割合で描画可となっているかを示すカバレッジデータを算出する第5の算出部と、をさらに具備し、
    前記第2の生成部は、前記カバレッジデータがより大きいほど元ピクセルの色情報を利用するサブピクセルが多くなるようにサブピクセル精度の画像を生成し、該サブピクセル画像を合成して前記属性値を生成する請求項1記載の装置。
  9. 任意の図形を表すベクタデータを第1の記憶部に記憶するステップと、
    前記図形を描画するガイドとしての曲面モデルを第2の記憶部に記憶するステップと、
    前記曲面モデルをスクリーンに投影した際に該曲面モデルが占めるピクセルごとに、前記曲面モデルとは独立して前記図形を定義するとともに該ピクセルの属性値を決定するために参照されるベクタ定義空間における位置座標、色情報及び透明度を含む描画用パラメータを第1の算出部により算出するステップと、
    前記ベクタデータを輪郭線解析することにより直線輪郭または曲線輪郭のいずれかに基づく複数のプリミティブデータを第1の生成部により生成するステップと、
    前記ベクタ定義空間における前記複数のプリミティブデータを第3の記憶部に記憶するステップと、
    判定部が、前記複数のプリミティブデータに前記位置座標を含むか否かを判定し、前記位置座標を含むプリミティブデータが前記直線輪郭のプリミティブデータであれば前記位置座標の描画判定変数を加算し、前記位置座標を含むプリミティブデータが前記曲線輪郭のプリミティブデータであれば、該位置座標が曲線輪郭の凸領域に含まれるならば前記描画判定変数を加算するステップと、
    前記描画判定変数を加算した回数が奇数であるならば、前記位置座標に対応するピクセルの属性値を前記描画用パラメータに基づいて第2の生成部が生成するステップと、を有する描画方法。
JP2008154414A 2008-06-12 2008-06-12 描画装置および方法 Withdrawn JP2009301284A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008154414A JP2009301284A (ja) 2008-06-12 2008-06-12 描画装置および方法
US12/409,276 US20090309898A1 (en) 2008-06-12 2009-03-23 Rendering apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008154414A JP2009301284A (ja) 2008-06-12 2008-06-12 描画装置および方法

Publications (1)

Publication Number Publication Date
JP2009301284A true JP2009301284A (ja) 2009-12-24

Family

ID=41414329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008154414A Withdrawn JP2009301284A (ja) 2008-06-12 2008-06-12 描画装置および方法

Country Status (2)

Country Link
US (1) US20090309898A1 (ja)
JP (1) JP2009301284A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908215B (zh) * 2010-07-13 2011-11-09 中国农业科学院农业资源与农业区划研究所 一种空间数据的融合方法
JP5653277B2 (ja) 2011-03-31 2015-01-14 株式会社東芝 描画装置、描画方法、及び描画プログラム
US9248525B2 (en) * 2012-06-27 2016-02-02 Mitsubishi Electric Research Laboratories, Inc. Method and system for cutting features from sheet materials with a laser cutter according to a pattern
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
US9727784B2 (en) * 2014-06-03 2017-08-08 Digitalglobe, Inc. Some automated and semi-automated tools for linear feature extraction in two and three dimensions
CN104462691B (zh) * 2014-12-09 2017-12-26 广州大学 一种在动态几何软件中实现鼠标智能画图的方法及装置
CN105956117B (zh) * 2016-05-05 2019-04-19 量子数聚(北京)科技有限公司 一种点数据空间加载方法及系统
CN106504249B (zh) * 2016-10-19 2019-03-19 青岛达芬奇科技有限公司 部分曲面细分方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4693660B2 (ja) * 2006-03-10 2011-06-01 株式会社東芝 描画装置、描画方法及び描画プログラム
JP4621617B2 (ja) * 2006-03-28 2011-01-26 株式会社東芝 図形描画装置、図形描画方法、及びプログラム
JP4643485B2 (ja) * 2006-03-30 2011-03-02 株式会社東芝 描画装置、方法およびプログラム
JP4157569B2 (ja) * 2006-05-11 2008-10-01 株式会社東芝 描画装置、描画方法及び描画プログラム

Also Published As

Publication number Publication date
US20090309898A1 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
KR100834596B1 (ko) 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체
JP4157569B2 (ja) 描画装置、描画方法及び描画プログラム
US8773439B2 (en) Approximation of stroked higher-order curved segments by quadratic bèzier curve segments
US8928668B2 (en) Method and apparatus for rendering a stroked curve for display in a graphics processing system
JP5232358B2 (ja) アウトラインフォントのレンダリング
JP4327105B2 (ja) 描画方法、画像生成装置、および電子情報機器
JP2009301284A (ja) 描画装置および方法
US8928667B2 (en) Rendering stroked curves in graphics processing systems
US8379025B1 (en) Methods and apparatus for rendering vector art on graphics hardware
JP6863693B2 (ja) グラフィックス処理システムおよび方法
KR20050030595A (ko) 화상 처리 장치 및 그 방법
US9530241B2 (en) Clipping of graphics primitives
WO2009090726A1 (ja) 図形描画装置及び図形描画方法
US20100013854A1 (en) Gpu bezier path rasterization
JP2010092479A (ja) グラフィックス処理システム
KR20170031479A (ko) 경로 스트로크를 수행하는 방법 및 장치
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
Wu et al. Correct resolution rendering of trimmed spline surfaces
US7737971B2 (en) Image drawing device, vertex selecting method, vertex selecting program, and integrated circuit
JP5151946B2 (ja) 描画装置
JP2010256986A (ja) 描画装置および方法
KR102666054B1 (ko) 그래픽 처리 시스템
JP2010256985A (ja) 描画装置および方法
KR20160086622A (ko) 스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110906