JP2010092480A - グラフィックス処理システム - Google Patents

グラフィックス処理システム Download PDF

Info

Publication number
JP2010092480A
JP2010092480A JP2009231899A JP2009231899A JP2010092480A JP 2010092480 A JP2010092480 A JP 2010092480A JP 2009231899 A JP2009231899 A JP 2009231899A JP 2009231899 A JP2009231899 A JP 2009231899A JP 2010092480 A JP2010092480 A JP 2010092480A
Authority
JP
Japan
Prior art keywords
curve
canonical
space
stroke
stroke curve
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.)
Granted
Application number
JP2009231899A
Other languages
English (en)
Other versions
JP5600410B2 (ja
Inventor
Joern Nystad
ヨーン・ニスタッド
Rune Holm
リューン・ホルム
Aske Simon Christensen
アスケ・シモン・クリステンセン
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2010092480A publication Critical patent/JP2010092480A/ja
Application granted granted Critical
Publication of JP5600410B2 publication Critical patent/JP5600410B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】追加の専用ハードウェアを使用する必要をなくし、しかも知られている細分法と比べて性能レベルを改善できる、ストローク経路、特にストローク曲線をレンダリングするためのさらなる技術を提供すること。
【解決手段】グラフィックス処理システムで表示するストローク曲線をレンダリングするときに、ユーザー空間2内で定義されている入力ストローク曲線1がシステムによって受け取られる。受け取ったストローク曲線1に対応する正準空間5の部分は、受け取ったストローク曲線1に対応する正準空間5で定義されている正準曲線12の部分を決定することにより決定される。
【選択図】図1

Description

本発明は、コンピュータグラフィックスシステムで画像をレンダリングするプロセスに関するものであり、具体的には、このようなシステムにおけるストローク曲線のレンダリングに関するものである。
近年、コンピュータグラフィックスでは、ベクターグラフィックスを使用することが次第に一般的になってきている。当技術分野で知られているように、ベクターグラフィックスがラスターグラフィックスに勝る重要な利点の1つが、解像度に依存しない画像、つまり、本質的に画質を落とすことなく無制限にスケーリング可能な画像を構成できることである。例えば、TrueType(商標)などのコンピュータフォント内の個々の特徴付け要素は、典型的には、ベクターイメージとして格納される。
ベクターグラフィックスは、個別に定義された幾何学的オブジェクトの使用に基づいており、また経路を形成するようにアンカー点で連結される、1つまたは複数の線分、例えば、直線または曲線(二次(ベジエ)曲線、楕円弧、三次(ベジエ)曲線など)によって典型的には記述される。
ベクターグラフィックスオブジェクト/経路は、「ユーザー空間」と通例称される空間内で定義され、操作される。しかし、ベクターグラフィックスオブジェクト/経路をビデオディスプレイまたはプリンタに出力するために、これらのオブジェクト/経路は、画面上に表示するのに適した形式、またはプリンタに出力するのに適した形式に変換される必要がある。この変換は、典型的には、ユーザー空間内で定義されたオブジェクト/経路を、オブジェクト/経路が表示される出力表示のパースペクティブ(幾何学的形状)に対応する、通例「サーフェス空間」と称される、他の空間に投影することを伴う。ユーザー空間とサーフェス空間との間の変換は、典型的には、「ユーザーサーフェス変換」と称される。
ベクターグラフィックスオブジェクト/経路は、いったんサーフェス空間表現に変換された後、レンダリングされる。
このプロセスは、当技術分野で知られているように、典型的には、オブジェクト/経路のサーフェス空間表現を覆う、三角形などの1つまたは複数のグラフィックスプリミティブを生成するステップと、プリミティブ内の複数のサンプリング点に対しプリミティブをラスター処理し、その後、サンプリング点をサンプリングしてそれぞれのサンプリング点が投影されたオブジェクト/経路内に入るかどうかを判定するステップを伴う。この判定に基づき、オブジェクト/経路を正しく表示できるように適宜、複数のサンプリング点に対し赤色、緑色、および青色(RGB)値および「アルファ」透明度値などのデータが割り当てられる。これらのプロセスは、一般に、ラスター処理およびシェーディングとそれぞれ称される。
(3Dグラフィックスの文献では、「ラスター処理」という用語は、ときには、サンプル位置およびシェーディングへの両方のオブジェクト変換を指すために使用される。しかし、本明細書での「ラスター処理」は、サンプリング点アドレスのみへのオブジェクトデータの変換を指すために使用される。)
これらのプロセスは、典型的には、当技術分野で知られているように、グラフィックス処理オペレーション(シェーディングなど)の実行対象となる「フラグメント」と通常称される個別のグラフィック構成要素を使用してサンプリング点を表現することにより実行される。したがって、これらのフラグメントは、実際に、(グラフィックスパイプラインを通過する)グラフィックス処理システムによって処理されるグラフィック構成要素である。
それぞれのフラグメントは処理されるシーンの1つの「ピクセル」に事実上相当するものと考えるのは道理にかなっている。それぞれのフラグメントは、単一の、または複数のサンプリング点に対応しうる。それぞれのフラグメントは、最終的な表示に含まれる単一ピクセル(画素)に対応しうる(ピクセルは、最終的な表示内において特異点であるため、グラフィックスプロセッサのオペレーション対象のフラグメントと表示のピクセルとの間に1対1のマッピングがありうる)。しかし、より典型的には、フラグメントと表示ピクセルとの間に1対1の対応関係がない場合もありえ、例えば、縮小などの特定の形式の後処理が最終画像を表示するのに先立ってレンダリングされた画像に対し実行される。
ベクターグラフィックスにおいてよく見られる2種類のオブジェクトは、「塗りつぶし」オブジェクトとストロークオブジェクトである。塗りつぶすプロセスは、色、勾配、パターン、または画像からなる単一ブロックをオブジェクトまたは閉路内の領域に適用することを伴う。その一方、ストローク操作のプロセスは、事実上、経路にそって特定の幅の線形のペン先をドラッグすることにより幅を経路に付け加えるものとして考えることができる。より具体的には、ペン先の中心点は、その経路を辿り、ペン先は、経路に常に垂直になるように向き付けられる。したがって、それと同等のことだが、ストローク経路の境界も、経路上のある1つの点まで引くことができる、(幅wのストローク経路に対して)長さが(高々)w/2である、経路に対して垂直な直線の始点の集合によって定義することができる。
ストローク経路のレンダリング、特にストローク曲線のレンダリングは、従来から、CPUに大きな負荷がかかるオペレーションである。例えば、ストローク経路をレンダリングする一般的な方法の1つは、CPU上で経路を複数の個別の直線または塗りつぶされた経路に細分し、次いでそれぞれを別々にレンダリングする方法である。しかし、これは大きな処理能力を要するオペレーションである。ストローク経路をレンダリングするためによく使用される方法としては、ほかに、曲線レンダリング専用のハードウェアを使用する方法がある。しかし、この方法は、上述の細分法に関わる性能の低下に対する解決策とはなるが、これは、例えばグラフィックス処理システムで常に利用可能である、または望ましいものであるとは限らない専用のハードウェアを必要とする。
そこで、出願人は、例えば、追加の専用ハードウェアを使用する必要をなくし、しかも知られている細分法と比べて性能レベルを改善できる、ストローク経路、特にストローク曲線をレンダリングするためのさらなる技術を考案する余地があると確信している。
本発明の第1の態様によれば、グラフィックス処理システムにおいて表示するストローク曲線をレンダリングする方法が提供され、この方法は、
ユーザー空間内で定義されている入力ストローク曲線を受け取るステップと、
受け取ったストローク曲線に対応する正準空間で定義されている正準曲線の部分を決定することにより受け取ったストローク曲線に対応する正準空間の部分を決定するステップと、
受け取った変換を使用して受け取ったストローク曲線をサーフェス空間内に投影するステップと、
サーフェス空間内で投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するステップと、
1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、正準空間内の対応する位置が受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するステップと、
正準空間内の対応する位置が受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定する前記ステップに従って受け取ったストローク曲線をレンダリングするためのデータをサーフェス空間内の複数のサンプリング点のうちの1つまたは複数に割り当てるステップとを含む。
本発明の第2の態様によれば、グラフィックス処理システムにおいて表示するストローク曲線をレンダリングするための装置が実現され、この装置は、
ユーザー空間内で定義されている入力ストローク曲線を受け取るための手段と、
受け取ったストローク曲線に対応する正準空間で定義されている正準曲線の部分を決定することにより入力ストローク曲線が対応する正準空間の部分を決定するための手段と、
受け取った変換を使用して受け取ったストローク曲線をサーフェス空間内に投影するための手段と、
サーフェス空間内で投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するための手段と、
1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、正準空間内の対応する位置が受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための手段と、
正準空間内の対応する位置が受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかの前記判定に従って受け取ったストローク曲線をレンダリングするためのデータをサーフェス空間内の複数のサンプリング点のうちの1つまたは複数に割り当てるための手段とを備える。
本発明では、入力ストローク曲線は、まず最初に入力ストローク曲線を「正準空間」で定義されている定義済み曲線の対応する部分にマッピングすることによりレンダリングされる。次いで、正準空間内における位置がサンプリング(テスト)され、サーフェス空間内の対応する位置が入力ストローク曲線内にあるかどうかの判定が行われる。
これは、サーフェス空間内のサンプリング点が投影されたストローク曲線内にあるかどうかを直接判定する(したがって、レンダリングするためグラフィックス処理システムによって受け取られるありとあらゆるストローク曲線に関する情報を直接決定する)、実現可能でないかまたは容易でないことが多く、上述の従来技術を使用することになる方法とは対照的である。
しかし、出願人は、いくつかの曲線族内のすべての曲線が、平行移動、回転、および均等スケーリングのみを使用して「正準曲線」とここでは称される定義済みの、単一の、または基本的な曲線の少なくとも一部に変換できることを認識している。
したがって、これにより、単一の曲線、つまり正準曲線に関する情報を使用して、レンダリングのためグラフィックス処理システムによって受け取られる複数のストローク曲線に関する情報を決定することができる。言い換えると、例えば、グラフィックス処理システムによって受け取られるレンダリングされるそれぞれの個別のストローク曲線に関してデータを導出または格納することなく、正準曲線に関するデータを導出または格納するだけでよいということである。次いで、このデータは、「正準曲線」が表すストローク曲線の族(集合)に属す個別のストローク曲線のそれぞれをレンダリングするために使用されうる。
さらに、以下でさらに説明されるように、平行移動、回転、および均等スケーリングのみを使用して適切な所定の入力ストローク曲線をそのような対応する正準曲線に変換できるため、それにより、始点および終点などの受け取ったストローク曲線に対応する正準曲線の部分、「ストローク正準曲線セグメント」を使用中に容易に決定できる。同様に、正準空間内に現れるストローク曲線の幅を使用中に容易に決定することができる。
例えば、入力ストローク曲線は、とりわけ、均等スケーリングを使用して、対応する正準曲線にマッピングできるので、ユーザー空間内では単一の値である、ストローク幅は、正準空間内で、典型的には異なる値(ユーザー空間と正準空間との間の変換に関わるスケーリング係数を掛けたユーザー空間内のストローク幅)であるとしても、単一の値のままとなる。(これは、例えば、典型的には非均等スケーリングを含む、ユーザー空間とサーフェス空間との間の変換とは対照的であり、したがって、サーフェス空間内への投影の後のユーザー空間内のストローク曲線の単一幅値は、典型的に、多値をとる(つまり、幅は、ストローク曲線の長さにそって変化する)。)
したがって、本発明では、ストローク曲線をレンダリングするためのより効率的なメカニズムを実現することができるだけでなく、そうするための特に都合のよいメカニズムも実現する。
本発明は、上述のような特性を有する「正準曲線」を導出することができる任意の形式のストローク曲線とともに使用できる。したがって、グラフィックス処理システムによって受け取られる入力ストローク曲線は、適切な関連する正準曲線を持つことができる曲線族からの任意の曲線とすることができる。
この形態の関連する正準曲線を有することができる一曲線族は、二次曲線である。この場合、正準曲線は、基本的二次曲線、つまり、y=x2の形式の曲線である。
したがって、特に好ましい一実施形態では、グラフィックス処理システムによって受け取られるユーザー空間内のストローク曲線は、二次曲線である。
本発明のプロセスへの入力として受け取られるユーザー空間内で定義されているストローク曲線は、望ましい、好適な方法で定義することができる。
例えば、好ましくは、グラフィックス処理システムは、曲線の位置および曲線に関係するパラメータなどのストローク曲線を定義する情報を受け取ることができる。
上述のように、受け取った(または入力された)ストローク曲線は、好ましくは、中心曲線および関連するストローク幅によってユーザー空間内で定義されている。ストローク曲線(ストローク)の中心曲線は、開始制御点と終了制御点との間に引かれる曲線の種類を示す情報とともに、典型的には始点、終点、および1つまたは複数の中間点を含むユーザー空間内の複数の制御点の位置によって好ましくは定義される。例えば、好ましくは、ストロークの中心曲線は、二次ベジエ曲線(単一の中間制御点を必要とする)、三次ベジエ曲線(2つの中間制御点を必要とする)、および楕円弧のうちの1つを含む。
したがって、好ましい一実施形態では、ユーザー空間内で定義されているストローク曲線を受け取るステップまたは受け取るための手段は、ユーザー空間内の複数の制御点の位置、曲線の種類を示す情報、およびユーザー空間内のストローク幅を受け取るステップを含む。
本発明のプロセスへの入力であるユーザー空間内で定義されているストローク曲線は、例えば曲線を描画する必要があるアプリケーションによって最初に定義されるようなストローク曲線であってもよい。
しかし、入力ストローク曲線は、ユーザー空間内で定義されている他の曲線から派生する曲線とすることも可能であろう。例えば、入力ストローク曲線は、他の曲線または初期曲線を、本発明によって受け取られるユーザー空間形式に変換することにより導出されたものであってもよいとも考えられる。
同様に、入力ストローク曲線は、ユーザー空間内で定義されている初期曲線を細分することにより導出することができると考えられる。
例えば、以下でさらに説明されるように、出願人は、対応する曲線が正準空間内にない曲線がレンダリングされる場合に、初期曲線を、それぞれ対応する正準曲線を持つ(関連する正準曲線を有する曲線族の要素である)複数の曲線セクションまたはセグメントに細分することが可能な場合があることを認識している。例えば、三次曲線または楕円曲線は、複数の二次曲線に細分することができる。したがって、これにより、本発明は、直接定義されている(および/または格納されている)または利用可能な直接対応する正準曲線がない可能性のある曲線をレンダリングするために使用できるであろう。
出願人は、さらに、レンダリングされる与えられたストローク曲線をレンダリングのため異なる複数のセクションに分割することが望ましい場合もあることを認識しているが、これは、以下でさらに説明されるように、レンダリングプロセスをさらに簡単なものにできる可能性があるからである。
したがって、特に好ましい一実施形態では、本発明は、さらに、ユーザー空間内で定義されているストローク曲線を複数のストローク曲線セグメントに細分し、複数のストローク曲線セグメントのうちの1つまたは複数のセグメントが本発明の方法で処理されレンダリングされるユーザー空間内で定義される入力ストローク曲線を形成するようにするステップまたはそのための手段を備える。
例えば、好ましくは、ユーザー空間内で定義されているようなストローク曲線は、関連する正準曲線を有する曲線ではない場合、関連する正準曲線を有する曲線族の要素である複数の曲線セグメントに細分できる(細分される)。このような好ましい一実施形態では、ユーザー空間内で定義されているようなストローク曲線が、三次曲線または楕円曲線である場合、このような曲線は、複数の二次曲線に細分され、次いで、本発明を使用してレンダリングされる。
したがって、文脈上問題がない限り、本明細書で言及する入力ストローク曲線は、本発明のレンダリングプロセスに「入力」される曲線を指すことが意図されており、その入力曲線は、例えば、注目するアプリケーションによって最初に定義されているような曲線、またはその曲線の部分セクションなどの初期「ユーザー定義」曲線から導出された曲線としてもよいことに留意されたい。
入力ストローク曲線は、グラフィックス処理システムによって受け取られた後、受け取られたストローク曲線を表す正準空間の対応する部分を決定する必要がある。この決定は、好適な、望ましい任意の方法で実行できる。
特に好ましい一実施形態では、これは、ユーザー空間内で定義されているようにストロークの中心曲線を取り、正準曲線の対応する部分の上に置くために必要な変換を決定することにより行われる。上述のように、この変換(ユーザー正準変換)は、平行移動、回転、および/または均等スケーリングのみを必要とするべきである。
したがって、ユーザー空間内のストローク曲線を正準曲線の該当する部分に変換する変換を決定するステップまたは決定するための手段は、好ましくは、変換の、もしあれば、平行移動部分(成分)を決定するステップを含む。
変換の平行移動部分(成分)は、好適な、望ましい任意の方法で決定できる。しかし、特に好ましい一実施形態では、受け取ったストローク曲線(したがって、正準曲線)が、二次曲線である場合、変換の平行移動部分(成分)は、ユーザー空間内の入力ストローク曲線の天底(つまり、二次曲線に関連する最大の曲率の点)を正準曲線の天底上に移動するために必要な平行移動を決定することにより決定される。
したがって、好ましい一実施形態では、変換の平行移動部分(成分)を決定するステップまたは決定するため手段は、受け取ったストローク曲線の天底(の位置)を決定するステップおよびその天底を正準曲線の天底(の位置)にマッピングするために必要な平行移動を含む。
(これから理解されるように、ユーザー空間内で定義されているようなストローク曲線の天底は、定義されているストロークの中心曲線上(つまり、入力ストローク曲線の開始制御点と終了制御点との間の位置)にあるか、または入力ストローク曲線の中心曲線の補外部分(入力ストローク曲線の開始制御点および終了制御点の外側にある位置)にあるものとしてもよい。同様に、受け取ったストローク曲線に対応する正準曲線の部分は、正準曲線の天底を含むか(前者の場合)、または受け取ったストローク曲線に対応する正準曲線の部分は、正準曲線の天底を含まない場合がある(後者の場合)。)
ユーザー空間内のストローク曲線を正準曲線の該当する部分に変換する変換を決定するステップまたは決定するための手段は、同様に、好ましくは、変換の、もしあれば、回転部分(成分)を決定するステップを含む。
変換の回転部分(成分)も、好適な、望ましい任意の方法で決定できる。しかし、特に好ましい一実施形態では、ここでもまた、受け取ったストローク曲線(したがって、正準曲線)が、二次曲線である場合、変換の回転部分(成分)は、天底から等距離のところにある、天底の反対側の、受け取ったストローク曲線の中心曲線上の2点の間に引かれた直線を、正準曲線について引かれた対応する直線に平行になるようにするために必要な回転を決定することにより決定される。
ユーザー空間内のストローク曲線を正準曲線の該当する部分に変換する変換を決定するステップまたは決定するための手段は、同様に、好ましくは、変換の、もしあれば、均等スケーリング部分(成分)を決定するステップを含む。
変換の均等スケーリング部分(成分)も、好適な、望ましい任意の方法で決定できる。しかし、特に好ましい一実施形態では、ここでもまた、受け取ったストローク曲線(したがって、正準曲線)が、二次曲線である場合、変換の均等スケーリング部分(成分)は、天底から等距離のところにある、天底の反対側の、受け取ったストローク曲線の中心曲線上の2点の間に引かれた第1の直線と第1の直線の中点から天底に引かれた第2の直線の長さの比を決定し、次いでこの比が正準曲線から得られた対応する比に等しくなるようにするために必要なスケーリング係数を決定することにより決定される。
変換の平行移動、回転、および均等スケーリング成分を決定するステップは、必要に応じて任意の順序で実行できる。しかし、本発明の好ましい一実施形態では、平行移動成分が最初に決定され、その後、回転成分、そして最後に均等スケーリング成分が決定される。
入力ストローク曲線の中心曲線を正準曲線にマッピングするために必要な変換が決定された後、入力ストローク曲線に対応する(つまり、入力ストローク曲線が覆う)正準空間の部分は、好ましくは、決定された変換を使用して、入力ストローク曲線の中心曲線の始点および終点に対応する正準曲線上の2つの位置、および正準空間内で入力ストローク曲線が持つ幅(決定されたユーザー正準変換のスケーリング係数を掛けたユーザー空間内の曲線の幅である)を決定することにより決定される。これにより、正準空間内の入力ストローク曲線の位置が得られる。
入力ストローク曲線に対応する正準空間の部分(位置)が決定された後、曲線のレンダリングを行うことができる。
これは、最初に、グラフィックス処理システム(への入力)によって受け取られる変換(ユーザーサーフェス変換)を使用(実装)して、受け取ったストローク曲線をサーフェス空間内に投影することにより行われる。したがって、ユーザーサーフェス変換は、グラフィックス処理システムによって決定されず、代わりに、ユーザー空間内の位置をサーフェス空間内の対応する位置に投影するために必要なマッピングを示す所定の変換としてシステムに入力されるという点で、ユーザー正準変換と異なることは理解されるであろう。
次いで、サーフェス空間内に現れるストローク曲線(投影されたストローク曲線)を覆う1つまたは複数のグラフィックスプリミティブが生成される。これらの1つまたは複数のグラフィックスプリミティブは、投影されたストローク曲線を覆う1つまたは複数の境界ボックスを定義する方法、および/または投影されたストローク曲線の端点、つまり開始および終了(制御)点にぴったり合わさる境界多角形を定義する方法など、好適な、所望の技術を適宜使用して定義されうる。
次に、サーフェス空間内の生成されたプリミティブに対するサンプリング点に対応する正準空間内のサンプリング位置が決定される(したがって、サーフェス空間内のサンプリング点に対応する正準空間内の位置が、正準空間内のストローク曲線の位置に入るかどうかを決定できる)。
正準空間内のサンプリング点に対する対応する位置は、好適な、望ましい任意の方法で決定できる。しかし、好ましくは、対応する位置は、受け取ったストローク曲線をサーフェス空間に投影する(ユーザーサーフェス変換)ために使用される変換の逆変換を使用して、サーフェス空間内のサンプリング点を最初にユーザー空間内の対応する位置にマッピングすることにより決定される。次いで、ユーザー空間内の対応する位置は、好ましくは、ユーザー空間内で定義されているようなストローク曲線を正準曲線の対応する部分に変換する決定された変換(ユーザー正準変換)を使用して、正準空間内の対応する位置にマッピングされる。
したがって、好ましい一実施形態では、サーフェス空間内のサンプリング点に対応する正準空間内の位置を決定するステップまたは決定するための手段は、サーフェス空間内のサンプリング点をユーザー空間内の対応する位置にマッピングし、次いで、ユーザー空間内の対応する位置を正準空間内の対応する位置にマッピングするステップを含む。
このステップに続いて、これから理解されるように、サーフェス空間内のサンプリング点に対応する正準空間内の位置が判明する。
正準空間内の対応するサンプリング位置が決定されると、この位置が、正準空間内に現れるときにストローク曲線内にあるかどうかが判定される。これは、次いで、サーフェス空間内のサンプリング点が、ストローク曲線内にあるかどうかを判定し、したがってそれに応じて、サーフェス空間内のサンプリング点に陰影を付けるために使用できる。
正準空間内のサンプリング位置が、正準空間内に現れるときにストローク曲線内にあるかどうかの判定は、必要に応じて実行することができる。
しかし、出願人は、少なくともいくつかの形態の正準曲線については、正準空間内の離散位置(サンプリング点)毎に、正準曲線上に整数個の点(「解」)が存在し、そこから、正準曲線に垂直な線(直線)を離散位置(サンプリング点)まで引くことが可能であること認識している。さらに、正準曲線上のこれらの1つまたは複数の点(解)は、以下でさらに詳しく説明されるように、正準空間内のサンプリング位置が、正準空間内に現れるときに所定のストローク曲線内にあるかどうかを判定するために使用できる。
最初に、これから理解されるように、正準空間内のストローク曲線、およびより具体的には、正準曲線それ自体の対応するセグメントが、正準空間内の少なくとも1つの特定のパラメータ範囲にわたって延びる。(明確に区別できるパラメータ範囲の数は、正準空間の次元に依存する。)例えば、y=x2の形式の正準曲線では、曲線は「x」値の範囲および「y」(=x2)値の範囲にわたって延び、したがって、「x」と「y」は両方とも、曲線の「パラメータ」として使用できる。
(ここで、特定の正準曲線が延びるパラメータ範囲は、曲線の適当なパラメータ化で表現できることに留意されたい。したがって、y=x2の形式の正準曲線については、軸はパラメータとして使用でき、また好ましくはパラメータとして使用されるが、これは、すべての正準曲線に当てはまるわけではない。)
したがって、正準空間内の所定の位置に関連付けられている正準曲線上の解のパラメータ値を、正準空間内のストローク曲線によって覆われる特定のパラメータ範囲に対してテストし、その位置がこの特定のパラメータ範囲内に入る解を有するかどうかを確認することができる。
当業者であれば理解するように、ストローク曲線は、典型的には、複数のパラメータ範囲(例えば、正準曲線が基本的二次曲線である場合に「x」値および「y」値)によって表されるが、点がストローク曲線によって覆われている正準曲線のセクション内にある場合には曲線のそれぞれのパラメータ範囲内にあるが範囲は定義されているので、1つのパラメータ範囲についてテストするだけで十分である。したがって、例えば、y=x2の形式の正準曲線では、好ましくは、解の「x」値のみが、正準空間内の受け取ったストローク曲線の部分に関連付けられている「x」値の範囲についてテストされる。「x」は、好ましくは、この実施形態でテストされる「パラメータ」として使用されるが、それは、原点の近傍内の正準空間の領域で「y」を使用するよりも正確であるからである。
他の実施形態では、解と正準曲線上の所定の点との間の曲線にそった距離をテストすることができる。例えば、正準曲線が基本的二次曲線である実施形態では、正準空間内の与えられた位置に関連付けられている正準曲線上の天底から解までの曲線にそった距離が決定され、次いで、この距離を、正準空間内に現れるときにストローク曲線によって覆われる特定の距離範囲と比較することができる。
この後者の実施形態は、レンダリングされるストローク曲線が、与えられた点描パターンで点描される(例えば、一連のドットおよび/またはダッシュとして表示される)場合に特に有益である。例えば、好ましい一実施形態では、1つまたは複数の点描パターンを好適な所望の方法で、例えば、1Dテクスチャとして格納し、選択された点描パターンを(適切な変換を使用して)、曲線上の所定の点、例えば、天底に関して正準曲線に適用することができる。正準空間内の与えられた位置に関連付けられている解のそれぞれについて決定されるこの所定の点からの曲線にそった距離を、選択された点描パターンと比較し、それに応じて、サーフェス空間内の対応する位置をレンダリングすることができる(例えば、位置が、正準空間内に現れるときに、またその位置に関連付けられている(複数の)解が、選択された点描パターン内にある場合に、ストローク曲線内にあるかどうかに基づき)。
第2に、上述のように、ストローク経路の境界は、経路上のある1つの点まで引くことができる、経路に対して垂直な、所定の幅の線の始点の集合によって定義される。
したがって、正準空間内の与えられた位置に関連付けられている正準曲線上の解の垂直距離、つまり、正準曲線上の点(解)から離散位置(サンプリング点)に引かれた線(直線)の長さを、正準空間内のストローク曲線のストローク幅の半分に対してテストし、その位置が正準空間内に現れるときにストローク曲線内に入る解を有するかどうかを確認することができる。(正準空間内のストローク曲線のストローク幅は、上述のように、ユーザー空間と正準空間との間の変換のスケーリング係数部分(成分)を掛けたユーザー空間内のストローク幅に等しくなる。)
したがって、出願人は、正準空間内の与えられた離散位置(サンプリング点位置)が正準空間内に現れるときにストローク曲線内にあるかどうかを判定する特に効率的な方法は、サンプリング点位置を終点として引くことができる正準曲線に垂直な線(直線)の始点となる正準曲線上の点を識別し、次いで、正準曲線上のこれらの点のどれかがストローク曲線に対応する正準曲線のセクションのパラメータ範囲内にあるかどうか、および正準曲線上のこれらの点のどれかとサンプリング点位置との間の距離が正準空間内に現れるときにストローク曲線のストローク幅の半分以下であるかどうかを判定することであることを認識している。正準曲線上の識別された点のどれか1つがこれらのテストの両方に通った場合、サンプリング点位置は、正準空間内に現れるときにストローク曲線内にある。
したがって、好ましい一実施形態では、正準空間内のサンプリング位置が、受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するステップは、正準空間内のサンプリング位置を終点として引くことができる正準曲線に垂直な線(直線)の始点となる正準曲線上の任意の点が、正準空間内のストローク曲線によって覆われているパラメータ範囲内に入っているかどうかの判定、および正準空間内のサンプリング位置と、引くことができる正準曲線に垂直な線(直線)の終点となる正準曲線上の1つまたは複数の点との間に引かれた線(直線)の長さが、正準空間内に現れるときにストローク曲線のストローク幅の半分以下であるかどうかの判定のうちの少なくとも一方、および好ましくは両方を含む。テストされる正準空間内のサンプリング位置に対するこれらの要件の両方を満たす点が正準曲線上にある場合、サンプリング位置は、正準空間内に現れるときにストローク曲線内に入っており、それに応じて、サーフェス空間内の対応するサンプリング位置も、ストローク曲線内にある(したがって、サーフェス空間内のサンプリング位置をそれに応じて陰影付けすることができる)。
(出願人は、さらに、特定のストローク曲線をレンダリングするためのプリミティブが、レンダリングされる曲線の端点にぴったり合う境界多角形として、つまり、プリミティブ内でサンプリングされうるすべての点が、レンダリングされる曲線のパラメータ範囲内に入るように定義されている場合に、正準空間内のサンプリング位置が、受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかに関する判定は、正準空間内のサンプリング位置と正準空間内の解との間の距離が、正準空間内に現れるときにレンダリングされる曲線のストローク幅の半分以下であるかどうかを判定する単独のステップで行うことができ、また好ましくは行われることを認識している。)
これから理解されるように、正準空間内のサンプリング位置が、正準空間内のストローク曲線内にあるかどうかを判定するために好ましくは使用される上述の2つのステップ(テスト)は、望む任意の順序で実行できる。好ましい一実施形態では、これら2つのテストは、逐次的に実行され、第2のテストは、第1のテストに通った(つまり、第1のテストに基づき潜在的にストローク曲線内にあると判定された)正準曲線上の(複数の)点((複数の)解)についてのみ実行される。当業者であれば理解するように、これにより、与えられた位置が正準空間内のストローク曲線内にあるかどうかを判定するために実行する必要のあるテストの数を減らすことができる。しかし、代替実施形態では、2つのテストは並行して実行され、第1のテストは第2のテストと同時に実行される。この後者の実施形態は、グラフィックスハードウェアを使用するときには都合がよいものと思われる。
好ましい一実施形態では、正準空間内の与えられた離散位置(サンプリング点位置)に関連付けられている正準曲線上のそのような点(解)の1つまたは複数または全部を必要に応じて上述の方法でテストし、その位置が、正準空間内に現れるときにストローク曲線内にあるかどうかを判定することができる。
例えば、出願人は、入力ストローク曲線のいくつかのセクション、例えば、特定の(複数の)特性を有するストローク曲線の領域に関連付けられていないセクションについて、正準空間内の特定の位置(複数のセクションのうちの1つのセクション内にある)がストローク曲線の部分内にあるかどうかをその位置に関連付けられているそのような複数の可能な点(解)のすべてではなくいくつか、好ましくは1つのみをテストするだけで正しく判定することが可能であることを認識している。好ましくは、このような「テスト」が使用される場合、テストされる点(解)は、正準空間内の各位置に最も近い点(解)、つまり、各位置までの最小垂直距離を有する点(解)である。
出願人は、さらに、入力ストローク曲線の他のセクション、例えば、特定の(複数の)特性を有するストローク曲線の領域に関連付けられているセクションについて、正準空間内の与えられた位置に関連付けられているそのような1つの点(解)(それら複数の領域のうちの1つの領域内にある)は、その位置がストローク曲線の部分内にあることを示しうるが、その位置に関連付けられている他のそのような点(解)は、その位置が正準空間内に現れるときにストローク曲線の外側にあることを示しうることを認識している。したがって、ストローク曲線のそのような領域を正確にレンダリングするためには、その位置に関連付けられている点(解)のうちの少なくとも2つ、好ましくはすべてをテストする必要がある場合がある。
したがって、好ましい一実施形態では、受け取ったストローク曲線をレンダリングするために使用される、または、後述のように、受け取ったストローク曲線の一部をレンダリングするために使用されるレンダリングプロセスは、正準空間内の位置に関連付けられているそのような解を1つのみ、好ましくは最も近いそのような解をテストするステップを含むか、あるいは正準空間内の位置に関連付けられている複数の点(解)のうちの2つ以上、好ましくはすべてをテストするステップを含むことができ、これにより、正準空間内のその位置が、適宜、正準空間内に現れるときにストローク曲線またはその一部の中にあるかどうかを判定することができる。
同様に、曲線をレンダリングするためのプリミティブがどのように生成されるかに応じて、上述のように、正準空間内の位置に対する1つ(それぞれの)与えられた解に関連付けられているデータのすべてではなく、一部のみをテストするだけでよい(またはその(それぞれの)解に関連付けられているデータのすべてをテストする必要がある場合がある)。
同じレンダリングプロセスが、ストローク曲線全体をレンダリングするために使用できる。その代わりに、2つ以上のレンダリングプロセスを使用してストローク曲線をレンダリングすることができ、例えば、第1のレンダリングプロセス(例えば、これより少ない解、例えば、1つのみがテストされる)を使用してストローク曲線の第1の1つまたは複数の部分をレンダリングし、第2の、異なる、レンダリングプロセス(例えば、2つ以上の、好ましくはすべての解がテストされる)を使用して、ストローク曲線の第2の1つまたは複数の部分をレンダリングする。
正準空間内のサンプリング位置が、受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定する、好ましくは上述のステップ(テスト)を含む、ステップが、好適な、所望の方法で実行されうる。しかし、好ましい一実施形態では、これは、プロセスを実行させるための所定の情報(つまり、予め格納されているデータ)を検索することにより行われる。
特に、出願人は、正準空間内の与えられた(サンプリング)位置に対する正準曲線上のそれぞれの「解」のパラメータ位置(または正準曲線上の所定の点からその解までの距離)、およびその解に対する正準空間内の(サンプリング)位置までの垂直距離を予め導出し、格納しておき、次いで、例えば、その位置を正準空間内でテストしなければならないときに検索をかけることができることを認識している。正準空間内の(サンプリング)位置に関するこの格納されている情報は、次いで、考察されている与えられたストローク曲線に対する、パラメータ範囲および正準空間内のストローク幅(の半分)と比較され、これにより、正準空間内の位置が、考察されているストローク曲線内に入っていることを示す正準曲線上の解を有するかどうかを確認することができる。したがって、このようなデータが、正準空間を覆う複数の位置(サンプリング位置の集合)について格納されている場合、格納されている位置は、テストする必要があると思われる正準空間内の与えられた位置について検索できる。
このような情報を予め決定し、格納しておく方法は、これらのテストを実行するための特に便利な、また効果的なメカニズムを提供する。さらに、正準空間内のそれぞれの位置について、上述のように、有限個のこのような「解」があるため、正準空間内の位置に関するこの情報を格納する作業は、比較的管理しやすいものである。
したがって、特に好ましい一実施形態では、所定の情報が、上述のように、正準空間内の複数の離散位置について格納される。最も好ましくは、考慮される/必要とされると予想される正準空間を(実質的に)覆うサンプリング点の正則配列について、このような情報を格納する。
したがって、特に好ましい一実施形態では、正準空間内の複数の位置のうちの少なくとも1つの位置について、曲線に垂直な直線を正準空間内の位置から引いたときの終点となる正準曲線上の1つまたは複数の点のうちの少なくとも1つの点に対するパラメータ値、および正準曲線上の1つまたは複数の点のうちの少なくとも1つの点と正準空間内の各位置との間の垂直距離が格納される。
「解データ」が格納される正準空間内の複数の離散位置のうちの1つまたは複数の位置について、すべてではないが、曲線に垂直な線(直線)を(複数の)各位置から引いたときに終点となる正準曲線上の任意の点がない場合がある(つまり、その点に対する曲線上の解がない場合がある)ことに留意されたい。同じことだが、他の位置より多くの解を有する正準空間内の位置がいくつかありうる。好ましくは、データが格納される与えられた位置について解が全くないか、または少ない場合には、情報が格納されないか、または特に好ましい一実施形態では、(複数の)「欠測」解についての所定の、または定義済み(デフォルト)の情報が、例えば以下でさらに詳しく説明されるように格納される。
同様に、特に好ましい一実施形態では、正準空間内の位置(サーフェス空間内のサンプリング位置に対応する)が、正準空間内に現れるときにストローク曲線内に入るかどうかを判定するステップまたは判定するための手段は、正準空間内の複数の位置について、曲線に垂直な直線を正準空間内の位置から引いたときの終点となる正準曲線上の1つまたは複数の点のうちの少なくとも1つの点に対するパラメータ値、および正準曲線上の1つまたは複数の点のうちの少なくとも1つの点と正準空間内の各位置との間の垂直距離を格納するデータストアを検索するステップを含む。
正準空間内のサンプリング点の配列に関する情報の集合、例えば、データストアは、所望の、好適な方法で格納されうる。しかし、本発明の特に好ましい一実施形態では、正準空間内の複数の離散位置に関する情報は、1つまたは複数のグラフィックテクスチャの形式で格納される。これは、特に有利で、有益であるのは、グラフィックステクスチャが特定の地理的位置の配列に関してデータを格納することを意図されているだけでなく、以下でさらに説明されるように、データをテクスチャの形式で格納することにより、グラフィックス処理システムに通常組み込まれている既存のテクスチャマッピングプロセスを本発明の方法によるストローク曲線のレンダリングに使用できるからである。
そこで、本発明の第3の態様によれば、グラフィックス処理システムにおいて表示するストローク曲線をレンダリングする方法が提供され、この方法は、
ユーザー空間内で定義されている入力ストローク曲線を受け取るステップと、
受け取ったストローク曲線に対応する正準空間で定義されている正準曲線の部分を決定することにより受け取ったストローク曲線に対応する正準空間の部分を決定するステップと、
受け取った変換を使用して受け取ったストローク曲線をサーフェス空間内に投影するステップと、
サーフェス空間内で投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するステップと、
次いで、1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、
正準空間内の対応する位置を決定するステップと、
それぞれが正準空間内の少なくとも1つの離散位置に関する情報に関連付けられている複数のテクセルを有する1つまたは複数のグラフィックステクスチャの少なくとも1つのテクセルをサンプリングして、正準空間内の対応する位置が、受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するステップとを含む。
本発明の第4の態様によれば、グラフィックス処理システムにおいて表示するストローク曲線をレンダリングするための装置が実現され、この装置は、
ユーザー空間内で定義されているストローク曲線を受け取るための手段と、
受け取ったストローク曲線に対応する正準空間で定義されている正準曲線の部分を決定することにより受け取ったストローク曲線に対応する正準空間の部分を決定するための手段と、
受け取った変換を使用して受け取ったストローク曲線をサーフェス空間内に投影するための手段と、
サーフェス空間内で投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するための手段と、
1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、正準空間内の対応する位置を決定するための手段と、
それぞれが正準空間内の1つの離散位置に関する情報に関連付けられている複数のテクセルを有する1つまたは複数のグラフィックステクスチャの少なくとも1つのテクセルをサンプリングして、正準空間内の対応する位置が、受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための手段とを備える。
また、この形式のグラフィックステクスチャを使用するのは、それ自体新しいことであり、また有利な方法であると信じられる。したがって、本発明は、そのようなテクスチャの構成およびそのようなテクスチャそれ自体に及ぶ。
したがって、発明の第5の態様によれば、表示するストローク曲線をレンダリングするときにグラフィックス処理システム内で使用するためのグラフィックステクスチャが形成され、前記テクスチャのそれぞれのテクセルは、定義されている空間内の少なくとも1つの位置を表し、またそのテクセルには、前記少なくとも1つの位置について、前記空間内で定義されている曲線に関する情報が関連付けられている。
本発明の第6の態様によれば、表示するストローク曲線をレンダリングするときにグラフィックス処理システムとともに使用するためのグラフィックステクスチャを構成する方法が提供され、この方法は、
定義されている空間内で曲線を定義するステップと、
前記定義されている空間内の複数の位置のそれぞれについて、前記空間内で定義されている曲線に関する情報を決定するステップと、
それぞれのテクセルが前記定義されている空間内の複数の位置のうちの少なくとも1つの位置に対応する、前記空間内で定義されている曲線に関する決定された情報が関連付けられているテクセルの配列を含むグラフィックステクスチャを生成し、格納するステップとを含む。
本発明の第7の態様によれば、表示するストローク曲線をレンダリングするときにグラフィックス処理システムとともに使用するためのグラフィックステクスチャを構成するための装置が作製され、この装置は、
定義されている空間内で曲線を定義するための手段と、
前記定義されている空間内の複数の位置のそれぞれについて、前記空間内で定義されている曲線に関する情報を決定するための手段と、
それぞれのテクセルが前記定義されている空間内の複数の位置のうちの少なくとも1つの位置に対応する、前記空間内で定義されている曲線に関する決定された情報が関連付けられているテクセルの配列を含むグラフィックステクスチャを生成し、格納するための手段とを備える。
当業者であれば理解するように、本発明のこれらの態様および実施形態は、適宜、本明細書で説明されている本発明の好ましい、およびオプションの機能のどれか1つを備えることができ、好ましくは備える。
例えば、前記空間内で定義されている曲線に関する情報は、好ましくは、曲線上の1つまたは複数の点に相対的な定義されている空間内の少なくとも1つの位置に関する位置情報を含む。
さらに、曲線は、好ましくは、上述のような正準曲線を含み、その曲線上の1つまたは複数の点は、好ましくは、注目する前記空間内の位置を終点として引くことができる曲線に垂直な(線)直線の始点となる曲線上の1つまたは複数の点を含む。
同様に、1つまたは複数のテクスチャ内のそれぞれのテクセルには、そのテクセル位置に対する正準曲線上の(複数の)解について上で説明されている情報が関連付けられている。言い換えると、それぞれのテクセルは、正準空間内の少なくとも1つの位置を表し、正準空間内のその位置に対する正準曲線上の解点に関する情報を格納するということである。例えば、また好ましくは、その情報は、(複数の)解点のパラメータ値、または正準曲線上の所定の点から(複数の)解点までの距離、および(複数の)解点から曲線までの垂直距離である。
例えば、4チャネルテクスチャ(RGBAを格納する)では、テクスチャの赤色および緑色チャネルは、注目する正準空間内の位置に対する1つの解点について、パラメータ位置および曲線までの垂直距離を格納することが可能であり(または逆も同様に)、青色およびアルファチャネルは、曲線上の他の解点に対する対応するデータを格納することが可能である(テクスチャがサポートするデータチャネルがほかにあれば、さらに同様に)。その代わりに、必要ならば、他のテクスチャ、または同じテクスチャの他の部分を使用して、注目する位置に対する他の解のデータを格納することも可能である。
情報が、テクスチャの形式で格納される場合、(複数の)テクスチャは、好適な、所望の任意のサイズとすることができ(つまり、テクセルを望むだけ入れられる)、それぞれのテクセルは、関連付けられているデータ構成要素を望むだけいくつでも有することができる。しかし、それぞれのテクセルは、好ましくは、定義済み(正準)空間内の単一の離散位置に関する情報のみを関連付けられている。
出願人は、さらに、正準空間内の任意の離散位置について、また正準曲線が基本的二次曲線である場合に、正準曲線の半分において各離散位置を終点として引くことができる正準曲線に垂直な線(直線)の始点となる関連付けられている点(解)は0個、1個、または2個のみである(つまり、正準曲線が、鏡映対称軸を中心として分割されている(分けられている)場合に)ことを認識している。
したがって、特に好ましい一実施形態では、正準曲線が鏡映対称軸を有し(例えば、二次正準曲線では天底を通過する)、互いの鏡像となる2つの部分に分割される(分けられる)場合、上述のような情報は、正準曲線を半分にした片方の上のその位置に対する「解」点のみについて、正準空間内で定義されている離散位置(サンプリング位置)毎に格納されるだけである。
したがって、正準空間内のそれぞれの離散位置について、正準曲線上の関連付けられている識別された点(解)のパラメータ値および正準曲線上の関連付けられている識別された点(解)と各離散位置との間の距離が格納される本発明の好ましい実施形態では、この場合に、正準空間内のそれぞれの離散位置(サンプリング位置)に対する高々4つの成分(個別の情報)、つまり、(i)正準曲線上の第1の(例えば、最も近い)識別された点(解)のパラメータ値、(ii)正準曲線上の第1の(例えば、最も近い)識別された点(解)と離散位置との間の距離、(iii)正準曲線上の第2の(例えば、最も遠い)識別された点(解)のパラメータ値、および(iv)正準曲線上の第2の(例えば、最も遠い)識別された点(解)と離散位置との間の距離を格納するだけでよい。これら4つの成分は、これから理解されるように、単一の「4チャネル」グラフィックステクスチャの単一テクセル内に格納できて都合がよいが、それは、そのような単一のテクセルが、上述のように、4つのデータチャネル-赤色チャネル、緑色チャネル、青色チャネル、およびアルファチャネル-を有するからである。
好ましくは、それぞれの離散位置に対する最も近い解に関する情報(または最も近い解がない場合には「欠測解」に関する適切なデータ)は、常に、与えられたテクスチャの(および好ましくは使用されているすべてのテクスチャ内の)それぞれのテクセルの同じ部分(チャネル)に格納され、例えば、それぞれのテクセルの赤色および緑色チャネル内に常に格納される。これにより、それぞれのテクセル(およびテクスチャ)は、同じ共通の、基本構成を有し、これにより、特に特定のサンプリング位置に対する最も近い解のみがテストされる(上述のように)実施形態に関連して、システムが最も近い解に関係する情報を格納するテクセルデータチャネルを簡単にテストすることを可能にすることを保証することができる。
上述のように、1つまたは複数のテクスチャに関連付けられている正準空間内の離散位置のうちの1つまたは複数の位置について、各離散位置を終点として引くことができる正準曲線に垂直な線(曲線)の始点となる正準曲線上の点(解)がないか、あるいは構成によって1つまたは複数のテクスチャが保持する解の数に比べて正準曲線上の点(解)が少ない。例えば、上述の実施形態では、1つまたは複数のテクスチャは、それぞれのテクセルが好ましくは正準曲線上の2点(解)に関する情報、つまり、単一の離散位置に関連付けられている点(解)の最大数を格納できるように構成されるが、これらのテクセルのうちの1つまたは複数は、1つの点(解)に関する情報を格納するためにのみ必要であるか、またはどのような点(解)であってもそれに関する情報を格納するために必要でない場合すらある、つまり、正準空間内の位置に関連付けられているテクセルは、正準曲線上に関連する点(解)を1つのみ有するか、または全く有しない。
好ましくは、関連付けられている点(解)の最大数より少ない点(解)を有する離散位置(テクセル)については、所定の、または定義済みの値が、テクセルの関連する「パラメータ」および/または「距離」成分内に格納されるが、結果として、「欠測」解は、正準空間内に現れるときにストローク曲線内に入るかどうかを判定するテストに合格しない。
例えば、好ましい一実施形態では、正準空間内に現れるときに入力され受け取った曲線のストローク幅の半分より常に大きい値は、そのような「欠測」解の「距離」成分に格納される。このような実施形態におけるテクセルの関連付けられている「パラメータ」成分は、空のままにされるか(未定義状態)、または適宜好適な、望ましい値が格納されうるが、これは、正準空間内に現れるときにストローク曲線の外側にあると判定される「欠測」解に対する2つのテストのうちの1つにのみ不合格であればよいからである。
これにより、本発明によりテクスチャが使用される場合にスプリアスレンダリング効果を結果としてもたらす「欠測」解を回避しやすくなる。
グラフィックステクスチャが、上述の方法で使用される場合、テクスチャは、正準空間内の与えられた位置について解データを得るために、必要に応じてサンプリングできる。
例えば、一実施形態では、テクスチャがサンプリングされたときに得られる情報は、サンプリングされる正準空間内の位置に最も近い位置にあるテクセルに関する格納されている情報であるものとしてもよい。
しかし、特に好ましい一実施形態では、テクスチャは、当技術分野で知られているような、双線形フィルタリングなどの好適なテクスチャフィルタリングまたは補間プロセス、好ましくは双線形フィルタリングを使用してサンプリングされる。これは、実際に、テクスチャの分解能を高め、したがって、レンダリング精度を向上させる。そのため、特に好ましい一実施形態では、テクスチャは、双線形フィルタリングを使用してサンプリングされる。
(また、情報が格納される正準空間内の離散位置の数を増やすことにより、テクスチャの絶対分解能を高めることも可能であろう。しかし、こうすることが、常に望ましいわけではない。したがって、テクスチャをサンプリングする際のフィルタリングまたは補間プロセスの使用は、テクスチャの絶対分解能を高めなくてもレンダリング精度を高める代替手段となる。)
特に好ましい一実施形態では、正準空間内で定義されているそれぞれの離散位置(例えば、それぞれのテクセル)について格納されている情報は、正準曲線上の1つまたは複数の識別された点のそれぞれと各離散位置との間の、絶対距離ではなく、符号付き距離を含む。符号付き距離は、これから理解されるように、2つの点の間の距離(絶対距離)だけでなく、離散位置が正準曲線のどちら側に入るかということも示す。例えば、離散位置が正準曲線の上にある場合、距離には正の値が付けられ、離散位置が正準曲線の下にある場合、距離には負の値が付けられる(またはもちろん、同様にその逆も)。
符号付き距離を使用すると、フィルタリングまたは補間を使用する際にテクスチャのサンプリングを正確に行いやすくなる。
出願人は、サンプリングされる際にテクスチャから返される値は、使用されているテクスチャルックアップ(サンプリング)プロセスに依存する、例えば、テクスチャがサンプリングされるときに何らかの形式のフィルタリングまたは補間が適用されるかどうか、またその場合に、適用されるフィルタリングまたは補間のその形式に依存することを認識している。例えば、テクセルの同一の配列について、双線形フィルタリングを使用するテクスチャサンプリングプロセスは、サンプリング位置に最も近い位置にあるテクセルの値を単純に取るテクスチャルックアップと比べて、与えられたサンプリング位置に対する異なるテクセル値を返すことができる。
これを、本発明の1つまたは複数のテクスチャを構成するときに利用し、優れたレンダリング結果を得ることができる。特に、出願人は、1つまたは複数のテクスチャ内のテクセル値がテクスチャが使用される場合に使用されるテクスチャサンプリングプロセス(フィルタリング)に合わせて手直しまたは最適化できる場合、与えられたテクスチャ分解能に対するストローク曲線をより正確にレンダリングすることが可能になると認識している。
したがって、好ましい一実施形態では、1つまたは複数のテクスチャは、好ましくは、使用されるテクスチャサンプリング技術に合わせて手直しされる。言い換えると、1つまたは複数のテクスチャは、好ましくは、(複数の)テクスチャとともに使用される特定のテクスチャサンプリング技術を考慮して構成される。
例えば、1つまたは複数のテクスチャのテクセル値は、好ましくは、例えばテクセル中心で正しい値を持つようにすることを必ず目指すのではなく、選択されたテクスチャサンプリングプロセス(例えば、双線形フィルタリング)でサンプリングした後に最大誤差、および/または局所誤差の総和を最小にするように設定(計算)される。特に好ましい一実施形態では、テクセル値は、サンプリングプロセスを表すために使用されうる費用関数を導出し、次いでシミュレーテッドアニーリング法などの1つまたは複数の最適化アルゴリズムを使用してその費用関数を最小にすることにより決定され、選択(設定)される。
特に好ましい一実施形態では、それぞれが異なる正準曲線および/または与えられた正準曲線の異なる部分を表す複数の異なるテクスチャが生成され、格納される。次いで、描画される与えられた曲線に対し、その曲線に最も適しているテクスチャが識別され、選択され、曲線をレンダリングするために使用されうる。したがって、テクスチャ内の曲線の好適な範囲を表すことにより、一定範囲のストローク曲線をレンダリングすることが可能であろう。
好ましい一実施形態では、複数の異なる正準曲線が表され、同じテクスチャマップ内に格納される。これは、テクスチャ内の曲線を空間的に分離し、次いで、当技術分野で知られているように、注目する曲線についてテクスチャ内の適切な領域をサンプリングすることにより行われうる。
特に好ましい一実施形態では、正準空間の異なる領域内の複数の離散位置に関する情報をそれぞれ格納する複数のテクスチャが、与えられた正準曲線に関して使用され格納される。例えば、正準空間の第1の領域内の複数の離散位置に関する情報を格納する第1のテクスチャが、好ましくは構成(使用)され、正準曲線に関して正準空間の第2の領域内の複数の離散位置に関する情報を格納する少なくとも1つの第2のテクスチャが構成(使用)される。
正準空間の第1および第2の領域は、明確に区別できる、分離した領域であるか、あるいはその代わりに、部分的に、または完全に重なり合うものとしてもよい。実際、好ましい一実施形態では、第1の領域は、第2の領域に完全に包含される。例えば、正準曲線が基本的二次曲線である実施形態では、第1の領域は、天底から第1のパラメータ位置まで延びる正準空間の領域を覆うことができ、第2の領域は、天底から第2のより大きなパラメータ位置まで延びる正準空間の領域を覆うことができる。
本発明が使用される場合、好ましくは、(複数の)正準曲線を表す(複数の)テクスチャが予め生成され、次いで、グラフィックス処理システムで使用できるように適宜格納され、例えば、好ましくは、グラフィックス処理システムが使用できる他の(静的)テクスチャマップとともに格納される。次いで、与えられたテクスチャが選択され、適宜、注目するストローク曲線がレンダリングされるときに使用される。
例えば、上述のような本発明の好ましいステップを使用して、サーフェス空間内の1つまたは複数のプリミティブ内のサンプリング点が、正準空間内に現れるときにストローク曲線内に入るかどうかが判定された後、赤色、緑色、および青色(RGB)の値および「アルファ」(透明度)値などのデータは、この判定に基づきサンプリング点に(ユーザー空間内で定義されているような受け取ったストローク曲線に従って必要に応じて)割り当てることができる。次いで、このプロセスは、好ましくは、サーフェス空間内で定義されている複数のサンプリング点のそれぞれについて繰り返され、それに応じて、ストローク曲線がレンダリングされる。
したがって、上記から、本発明の好ましい一実施形態では、1つまたは複数のプリミティブは、生成されるサンプリング点およびフラグメントに対しラスター処理され、適切な正準曲線を表すテクスチャおよび正準空間の一部は、プリミティブサンプリング点位置に対応するテクスチャ内のサンプリング位置により1つまたは複数のプリミティブのそれぞれのサンプリング点についてサンプリングされる(当技術分野で知られているような方法で)ことがわかる。(上述のように、テクスチャは、双線形フィルタリングなどの適切なテクスチャフィルタリングプロセス、好ましくは双線形フィルタリングを使用して、サンプリングされるべきである。)
次いで、サンプリングされたテクスチャ値は、ストローク曲線に対する対応する値(例えば、好ましくは、正準空間内のパラメータ範囲およびストローク幅(の半分))と比較され、それに応じて、サーフェス空間内の対応するサンプリング点が保持されるか、または破棄される。
この「比較して破棄する」プロセスは、注目するグラフィックス処理システムに望ましい、また好適な方法で実行されうる。例えば、プログラム可能なフラグメントシェーダーハードウェアを有するグラフィックス処理システムでは、比較および条件付き破棄ルーチンを使用することが可能であり、好ましくは使用される。
固定機能ハードウェアを有するグラフィックス処理システムでは、本発明のこのオペレーションは、例えば、サンプリング点(フラグメント)を何回もグラフィックスレンダリングパイプラインに通すという形で実装されうる。
例えば、グラフィックスレンダリングパイプラインを通る第1のパスは、(複数の)サンプリング点に対する1つまたは複数の解のうちの1つのパラメータ値が、正準空間内に現れるときにストローク曲線のパラメータ範囲内にあるかどうかをチェックするために使用され、次いで、グラフィックスパイプラインを通る第2のパスは、これが必要な場合に、解とサンプリング位置との間の距離が、ストローク曲線のストローク幅の半分以下であるかどうか(またはもちろん、逆も同様に)チェックするために使用されうる。必要ならば、類似のパスの対を構成し、サンプリング位置に関連付けられている正準曲線上の1つまたは複数の点(解)のうちの他方をチェックする。
必要ならば、上述のようにテストで使用される情報の絶対値を生成するために、ドット積を使用することができる。例えば、ドット積は、好ましくは、符号付き距離を絶対距離に変換するために使用される。さらに、1つの(その)アルファテストは、好ましくは、上述のようにテストで必要とされる比較を実装するために使用される。
上述のように、特に好ましい一実施形態では、解がレンダリングパイプラインを通る第1のパスで不合格であった場合、これに対するテストは(パイプラインを2回目に通すことで)それ以上行われない。これは、好ましくは、ステンシルバッファを使用して実装される。
特に好ましい一実施形態では、本発明のさまざまな機能は、表示デバイスのフレームバッファに書き込まれるデータを生成して出力する単一のグラフィックス処理プラットフォーム上で実行される。
本発明は、「パイプライン化された」構成を有するレンダラーなど、任意の形態または構成のレンダラーに適用可能である(この場合、レンダラーは、レンダリングパイプラインの形態をとる)。好ましい一実施形態では、これは、ハードウェアグラフィックスパイプラインに適用される。本発明のさまざまな機能および要素などは、例えば、好ましくは、適切な機能ユニット、処理ロジック、プロセッサ、マイクロプロセッサ装置などにより必要に応じて実装されうる。
本発明は、即時モードレンダリング、遅延モードレンダリング、タイルベースレンダリングなど、すべてのレンダリング形式に適用可能である。
上記から理解されるように、本発明は、もっぱらというわけではないが、3Dグラフィックスプロセッサおよび処理デバイスに特に適用可能であり、それに応じて、本明細書で説明されている本発明の複数の態様のうちの1つまたは複数の態様の装置を含む、または本明細書で説明されている本発明の複数の態様のうちの1つまたは複数の態様に従って動作する、3Dグラフィックスプロセッサおよび3Dグラフィックス処理プラットフォームにも拡大適用される。上述の特定の機能を実行するためにハードウェアが必要であることを前提条件とすると、そのような3Dグラフィックスプロセッサは、他の何らかの方法で、3Dグラフィックスプロセッサが備える、通常の機能ユニットなどの1つまたは複数またはすべてを備えることができる。
本発明は、同様にして、2Dグラフィックスプロセッサおよび2Dグラフィックス処理にも拡大適用される。
当業者であれば、本発明の説明されている態様および実施形態はすべて、適宜、本明細書で説明されている好ましい、およびオプションの機能の1つまたは複数あるいはすべてを備えることができ、好ましくは備えることを理解するであろう。
本発明による方法は、少なくとも部分的にはソフトウェアを使用して、例えばコンピュータプログラムを使用して実装されうる。そのため、他の態様から見たときに、本発明は、データ処理手段にインストールされたときに本明細書で説明されている方法を実行するように特に適合されたコンピュータソフトウェア、データ処理手段上でプログラム要素が実行されたときに本明細書で説明されている方法を実行するコンピュータソフトウェアコード部分を含むコンピュータプログラム要素、およびデータ処理システム上でプログラムが実行されたときに本明細書で説明されている1つまたは複数の方法のすべてのステップを実行するように適合されたコード手段を含むコンピュータプログラムを提供することがわかる。データプロセッサは、マイクロプロセッサシステム、プログラマブルFPGA(フィールドプログラマブルゲートアレイ)などとしてもよい。
本発明は、さらに、データ処理手段を備えるグラフィックスプロセッサ、レンダラー、またはマイクロプロセッサシステムを動作させるために使用されたときに前記データ処理手段と併せて前記プロセッサ、レンダラー、またはシステムに本発明の方法のステップを実行させるそのようなソフトウェアを含むコンピュータソフトウェアキャリアにも拡大適用される。このようなコンピュータソフトウェアキャリアは、ROMチップ、CD ROM、またはディスクなどの物理的記憶媒体とすることが可能であるか、またはケーブル上の電子信号、光信号、または衛星もしくは同様のものなどへの無線信号などの信号とすることが可能である。
さらに、本発明の方法のステップすべてが、コンピュータソフトウェアによって実行される必要はないことは理解されるであろうし、したがって、さらに広い観点から、本発明は、コンピュータソフトウェア、および本明細書で説明されている方法の複数のステップのうちの少なくとも1つを実行するためにコンピュータソフトウェアキャリア上にインストールされたそのようなソフトウェアを提供する。
したがって、本発明は、コンピュータシステムとともに使用するためコンピュータプログラム製品として適宜具現化されうる。そのような実装は、コンピュータ可読媒体、例えば、ディスケット、CD-ROM、ROM、またはハードディスクなどの、有形の媒体上に固定された、あるいは限定はしないが、光またはアナログ通信回線を含む有形の媒体上で、あるいは限定はしないが、マイクロ波、赤外線、または他の伝送技術を含む無線技術の無形の手段を使用して、モデムまたは他のインターフェイスデバイスを介して、コンピュータシステムに伝送可能な、一連のコンピュータ可読命令を含むことができる。これら一連のコンピュータ可読命令は、本明細書ですでに説明されている機能の全部または一部を具現化する。
当業者であれば、このようなコンピュータ可読命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムとともに使用するために多くのプログラミング言語で作成されうることを理解するであろう。さらに、このような命令は、限定はしないが半導体、磁気、または光を含む、現在の、または将来のメモリ技術を使用して格納されるか、または、限定はしないが光、赤外線、またはマイクロ波を含む、現在の、または将来の通信技術を使用して伝送されうる。このようなコンピュータプログラム製品は、印刷または電子文書を添付した取り外し可能媒体、例えばシステムROMまたは固定ディスク上のコンピュータシステムにプリインストールされている、例えば市販ソフトウェアとして配布されるか、あるいはサーバーまたはネットワーク、例えばインターネットまたはワールドワイドウェブ上の電子掲示板から配布されうる。
次に、本発明の多数の好ましい実施形態について、付属の図面を参照しつつ、実施例のみを使って説明する。
本発明の一実施形態の主システムを示す略図である。 入力ストローク曲線を正準曲線の対応する部分にマッピングするために必要な変換の決定を示す図である。 入力ストローク曲線を正準曲線の対応する部分にマッピングするために必要な変換の決定を示す図である。 入力ストローク曲線を正準曲線の対応する部分にマッピングするために必要な変換の決定を示す図である。 ユーザー空間内のストローク曲線から正準空間内の正準曲線の対応する部分への変換を示す略図である。 正準空間内の二次正準曲線、および正準空間内の特定の位置に関連付けられている正準曲線上の解を示す図である。 図4の二次正準曲線上に重ね合わされている入力ストローク曲線に対応する正準曲線の部分を示す図である。 それぞれが特定のテクスチャに関連付けられている独立したセクションへの正準曲線の細分を示す図である。 好ましい実施形態に関連付けられているレンダリングパイプラインを示す図である。
類似の参照番号は、断りのない限り、図中の類似のコンポーネントに使用される。
図1は、本発明の一実施形態の主システムの概略を示している。
図1に示されているように、ストローク二次ベジエ曲線1の形態のベクターグラフィックスオブジェクトは、最初に、曲線1の開始および終了制御点c0およびc2の位置、中間制御点c1の位置、およびストローク幅wによって2Dユーザー空間2内で定義される。
表示するストローク曲線1をレンダリングするために、まず最初に、ストローク曲線1、または典型的には、ストローク曲線を定義する情報をグラフィックス処理システムに入力する。
レンダリングプロセスの実行中、当技術分野で知られているように、ユーザー空間2内で定義されているようなストローク曲線1は、ストローク曲線が表示されるディスプレイの同じパースペクティブ(幾何学的形状)を有する2Dサーフェス空間3内に投影される。ユーザー空間2からサーフェス空間3へストローク曲線1を投影する変換は、ユーザーサーフェス変換(TUS)と一般に呼ばれ、典型的には、非均等スケーリングを伴う。したがって、サーフェス空間3内の投影されたストローク曲線1'のストローク幅は、通常、曲線の長さにそって変化し、ストローク曲線1と同様な単一の定数値を有することはない。
ストローク曲線1が、サーフェス空間3内に投影され、これにより、投影されたストローク曲線1'を定義した後、サーフェス空間3内で投影されたストローク曲線1'を覆う図1に示されている多角形などのプリミティブ4が生成される。次に、当技術分野で知られているように、プリミティブ4がラスター処理され、ラスター処理プロセスで定義されている複数のサンプリング点が(投影されたストローク曲線1'を境界とする領域内に入っているかどうかに基づき)適宜陰影付けされ、これにより、投影されたストローク曲線1'が表示される。
本発明の実施形態では、この判定(サーフェス空間3内のサンプリング点が、投影されたストローク曲線1'内に入るかどうかの)は、ユーザー空間2内で定義されているようなストローク曲線1を正準空間5の対応する部分1"(本明細書ではストローク正準曲線セグメントと称する)にマッピングし、次いで、サーフェス空間3内のサンプリング点に対応する正準空間5内の位置が、ストローク正準曲線セグメント1"内に入るかどうかを判定する形で行われる。
正準空間5内で定義される正準曲線12は、上述のように、定義済みの単一または基本的な曲線であって、平行移動、回転、および/または均等スケーリングのみを使用して、この曲線(または少なくともその一部)に曲線族内のすべての曲線を変換することができる。例えば、ユーザー空間2内で定義されているようなストローク曲線1が二次曲線である本発明の実施形態では、正準曲線12は、曲線y=x2である。
これから理解されるように、本発明の実施形態を実装するために、ユーザー正準変換(TUC)、つまり、ユーザー空間2内で定義されているようなストローク曲線1を正準曲線12の対応する部分1"にマッピングする変換を決定する必要がある。
与えられた入力二次ベジエ曲線について本発明の実施形態でユーザー正準変換を導出する方法が図2に示されている。
当技術分野で知られているように、一般的な二次ベジエ曲線は、式
<x(t), y(t)>=P(t)=P0(1-t)2+2P1t(1-t)+P2t2、ただし、t∈[0,1]
によって定義されるが、正準二次曲線は、式
<x(t'), y(t')>=<t', t'2>
によって定義される。
ユーザー正準変換は、上述のように、平行移動(行列Mtによって定義される)、回転(行列Mrによって定義される)、および/または均等スケーリング(kを定数、Iを単位行列として、行列Ms=kIによって定義される)のみからなる。
本発明の実施形態においてユーザー正準変換を決定するプロセスの第1段階は、変換の平行移動成分(平行移動行列Mt)を決定することである。必要な平行移動は、ユーザー空間2内の入力二次ベジエ曲線10の天底(底点)20を正準空間5内の正準曲線12(原点(0,0)における)の天底22へ平行移動するのに必要なものとして決定される-図2(a)を参照。入力曲線10の天底20は、これから理解されるように、最大の曲率を持つ曲線上の点であり、曲線が二次曲線であるため、パラメータtの変化が曲線上の位置の最小の変化をもたらす点でもある。
入力曲線10上の2点(x,y)と(x+Δx,y+Δy)との間の距離は、
Figure 2010092480
によって与えられ、ΔxおよびΔyがゼロに近づく極限では、曲線上の位置の無限小の変化は
Figure 2010092480
によって与えられるが、ただし、'はtに関する微分を表す。したがって、入力曲線10の天底20の位置は、D'(t)=0となるtの値を計算することにより決定され、これは、(D(t)2)'=0を解くことと同等であり、以下の解を持つ。
ax = x0 -2x1 + x2
ay = y0 - 2y1 + y2
bx = 2x1 - 2x0
by = 2y1 - 2y0
Figure 2010092480
ただし、式中、(x0,y0)は、ユーザー空間2内のストローク曲線1の開始制御点c0の位置であり(その中心曲線は、入力二次ベジエ曲線10である)、(x1,y1)は、ストローク曲線1の中間制御点c1の位置であり、(x2,y2)は、ストローク曲線1の終了制御点c2の位置である。
x(t)およびy(t)に対する式にtの上記の値を代入すると、ユーザー空間2内の天底20の(x,y)座標を決定することができ、したがって、入力曲線10の天底20を正準曲線12の天底22に(つまり、正準空間5内の原点(0,0)に)移動するために必要な平行移動を決定することができる。
ユーザー正準変換の平行移動成分が決定されたら、次は、回転成分(つまり、回転行列Mr)を決定する。このプロセスは、図2(b)に示されている。
必要な回転は、正準空間5内の平行移動された入力曲線14上に、天底22から等距離のところにある2つの一般的な点30、32を配置することにより決定される。次いで、これら2点の間に直線34を引くことができ、必要な回転は、この直線を水平線にするための必要な回転である(つまり、直線上のすべての点が同じy値を持つようにする)。
そこで、正準曲線12への平行移動された入力曲線14上の座標(列ベクトルとして与えられる)をとる回転行列Mrを以下のようにして計算することができる。
px = 2axt + bx
py =2ayt + by
Figure 2010092480
最後に、ユーザー正準変換の均等スケーリング成分(つまり、スケーリング行列Ms)を決定する。これは、図2(c)に示されている。
これから理解されるように、正準空間5内へ適当に平行移動され、回転されたユーザー空間2内の入力曲線10、つまり、図2(c)の曲線16は、これで、y=kx2の形をとり、kは、決定すべきスケーリング係数である。したがって、回転行列を計算するために定義された点30と32との間の直線34の長さが、2l1であり、この直線の中点から原点における曲線16の天底へ延びる直線の長さは、l2と定義され、すると、スケーリングの必要なレベルは、
Figure 2010092480
となる。
ユーザー空間2内で定義されているような入力されたストローク入力曲線1の中心曲線を正準曲線12の対応する部分にマッピングするのに必要なユーザー正準変換、つまり、TUC=MsMrMt=kMrMtが計算された後、ストローク正準曲線セグメント1"によって覆われている正準空間5の実際のセクションが、決定された変換を入力ストローク曲線1のパラメータに適用することにより決定されうる。このプロセスは、図3に例示されている。
図3に示されているように、ユーザー空間2内で定義されているような、制御点c0、c1、c2およびストローク幅wを有する入力ストローク曲線1は、正準曲線の対応する部分1"へのユーザー正準変換を使用してマッピングされる。ユーザー正準変換の性質上、ストローク正準曲線セグメント1"は、それ自体、単一ストローク幅w"を持つ、正準曲線12上の始点c0"と終点c2"との間に延びるストローク曲線である。
ストローク正準曲線セグメント1"の始点c0"および終点c2"は、正準空間5内の入力ストローク曲線1のパラメータ(x)範囲を定める。したがって、図3に示されているように、ストローク正準曲線セグメント1"は、パラメータ位置xAおよびxBの間に延びるパラメータ範囲を有する。
さらに、ストローク正準曲線セグメント1"のストローク幅w"は、ユークリッド距離は均等スケーリングを適用することで均等目盛を持つので、kw、つまり、ユーザー空間内で定義されているような入力ストローク曲線1のストローク幅wにユーザー正準変換のスケーリング係数kを掛けた値に等しい。
本発明の実施形態では、上述のように、サーフェス空間3内のプリミティブ4内のサンプリング点が、投影されたストローク曲線1'内にあるかどうかを判定するために、サンプリング点が、ユーザーサーフェス変換の逆変換を使用してユーザー空間2内の対応する位置にマッピングされ、次いで、ユーザー空間2内のこの位置は、ユーザー正準変換を使用して正準空間5内の対応する位置にマッピングされる。最後に、正準空間5内の対応する位置が、ストローク正準曲線セグメント1"内にあるかどうかに関する判定が行われる。
正準空間5内の位置は、正準空間5内の位置から正準曲線12上の点に直線(ストローク正準曲線セグメント1"に対する中心曲線を形成する)を引くことが可能な場合にストローク正準曲線セグメント1"の内側にあるものとして定義され、したがって、この直線は、曲線に対し垂直であり、その長さは、(ストローク正準曲線セグメント1"の)ストローク幅の半分以下である。この条件を満たさない正準空間5内の位置(点)は、ストローク正準曲線セグメント1"の外にある。
この判定は、本発明の実施形態では正準二次曲線の第2の特性、つまり、正準曲線の平面内の任意の点について、その曲線に垂直な、平面内の点から引くことができる直線の終点となるその曲線上の点の数は、定数Kを上限とするという特性を使用して行われる。したがって、言い換えると、正準空間5内の任意の点((x,y)位置)について、正準曲線12に垂直な直線をその点から正準曲線12上の整数個の点まで引くことが可能である。したがって、正準空間内のそれぞれの(x,y)位置について、n=0,1,2,3として整数n個の解(曲線上のそのような点)があることになる。
例えば、図4に示されているように、正準空間5内の点40は、3つのそのような解を有する。第1の解、つまり、垂直な直線が曲線10に「ヒット」する場合は、x=x1にあり、点x=x1における点11から曲線10までの結果の直線は、長さd1を有する。第2および第3の解は、それぞれ、x=-x2およびx=-x3にあり、関連付けられている直線はそれぞれ長さd2およびd3を有する。
したがって、正準空間5内の点(位置)に関連付けられている正準曲線12上のそれぞれの解は、第1にそのパラメータ(x)値と第2に正準空間5内の点(位置)からのその垂直距離の2つの情報によって定義されることに留意されたい。
正準空間5内の特定の位置に対する正準曲線上のそれぞれの解に関するこれら2つの情報は、図5を参照しつつ以下でさらに詳しく説明されるように、本発明の実施形態において、特定の位置が、ストローク正準曲線セグメント1"内にあるかどうかを判定するために使用される。
図5は、図4にすでに示されている二次正準曲線上に重ね合わされたストローク正準曲線セグメント1"を示しており、ストローク正準曲線セグメント1"はx値の範囲にxA≦x≦xBにわたって延び、関連付けられているストローク幅w"を有する。
正準空間内の点40が、ストローク正準曲線セグメント1"内にあるかどうかを判定するために、最初に、点40に関連付けられている解のうちの少なくとも1つが、範囲xA≦x≦xB内に入るかどうかについて判定される。図5に示されているように、点40に対する第1の解は、所望の範囲内にある、x1のパラメータ(x)値を有することがわかる。次に、この第1の解が、ストローク幅w"の半分以下である垂直距離を有するかどうかが判定される。ここでも図5からわかるように、点40に対する垂直距離d1は、w"/2より小さい。したがって、点40は、ストローク正準曲線セグメント1"内にある。
このようなテストは、正準空間5内で定義されている複数の離散位置に関連付けられている解に対する上記の2つの情報を格納することにより本発明の実施形態において実行される。本発明の実施形態では、これは正準空間5内の位置の正則行列について実行されるが、これは、本質的ではなく、位置は、正準空間5内の所望の点において定義されうる。
本発明の実施形態では、上記の情報は、1つまたは複数の特別に構成されたグラフィックステクスチャの形式で格納される。上述のように、これが特に有利なのは、この形式でデータを格納することにより、グラフィックス処理システムの既存のテクスチャマッピングプロセスを使用してストローク曲線をレンダリングできるからである。
当技術分野で知られているように、グラフィックステクスチャのそれぞれのテクセル(テクスチャ要素)は、4つのチャネル、つまり、赤色チャネル、緑色チャネル、青色チャネル、およびアルファチャネルを有し、そのため、一般的に、4つの独立のデータを格納する。本発明の実施形態では、したがって、第1の解に対する値の集合(つまり、パラメータ値および距離)は、テクセルの赤色および緑色チャネル内に格納され、第2の解に対する値の集合は、テクセルの青色およびアルファチャネル内に格納される。
したがって、2つより多い解を有する正準空間内の任意の位置で、必要な情報をグラフィックステクスチャの2つ以上のテクセル内に格納することが可能であるが、本発明の実施形態では、グラフィックス処理システムで受け取ったすべての入力ストローク曲線は、天底にそって分割されるが、これは、正準空間5内の任意の位置について最大2つしかない非負パラメータ値とともにこれらの解を格納するだけでよい。したがって、本発明の実施形態では、グラフィックステクスチャのテクセルと正準空間5内の位置との間に1対1の対応関係がある。
例えば、図4の点40に関連付けられている情報を含んでいた本発明の実施形態で使用されるグラフィックステクスチャは、第1の解に対する値の集合、つまり(x1,d1)を格納するだけであり、第2および第3の解に対する値の集合、つまり、(-x2,d2)および(-x3,d3)を格納しない。点40の鏡像である(つまり、y軸で反射されている)、したがって、解(-x1,d1)、(x2,d2)、および(x3,d2)を有する正準空間内の点について、グラフィックステクスチャは、第2および第3の解に対する値の集合を格納するが、第1の解については格納しない。
本発明の実施形態では、複数のグラフィックステクスチャが、実際に構成されており、それぞれ正準曲線の特定のセクション(パラメータ範囲)に関連付けられている。例えば、図6を参照すると、第1のテクスチャは、0≦x<xAの範囲内の正準曲線12のセクションについて構成され(つまり、陰影付き領域50内で定義されている複数の離散位置に対する解が格納される)、第2のテクスチャは、0≦x<xBの範囲内の正準曲線12のセクションについて構成され、第3のテクスチャは、0≦x<xCの範囲内の正準曲線のセクションについて構成される。このようにして複数のテクスチャを作成すると、ほとんどの状況では、グラフィックス処理システムによって受け取られる入力ストローク曲線1は、天底のところで分割され(必要ならば)、入力ストローク曲線1のそれぞれのセクションは、単一のテクスチャのみを使用してレンダリングされる。
上述のように、正準空間5内のいくつかの点は、正準曲線12上に関連付けられた複数の解を有することになるが、これらの解すべてをテストして、その点が、ストローク正準曲線セグメント1"内にあるかどうかを判定することが常に必要というわけではないことがわかっている。
例えば、ストローク曲線が、自己重複領域(中心曲線の曲率半径がストローク幅の半分より小さい場合に生じる)を含まないと判定された場合、特定のサンプリング位置に対する最も近い解が、ストローク正準曲線セグメント1"内にあるかどうかをテストするだけでよい、つまり、テクセルの最初の2つの成分のみがサンプリングされる。
しかし、ストローク曲線が、自己重複する1つまたは複数の領域を含むと判定された場合、正準空間5内の点に関連付けられている複数の解のうちの1つが、テストされたときに、ストローク正準曲線セグメント1"の内側にあることが判明するが、その点に関連付けられている他の解は、ストローク正準曲線セグメント1"の外側にあることが判明するという可能性が存在する。このような点に関しては、典型的に、正準空間5内の特定のサンプリング位置に関連付けられている解の両方をテストして、それが、ストローク正準曲線セグメント1"内にあるかどうかを判定する必要がある(常にというわけではないけれど)、つまり、テクセルの4つの成分すべてがサンプリングされる。
同様に、ストローク曲線を覆う(複数の)プリミティブが、曲線の端点に強く束縛されている場合、テストされるそれぞれの解のパラメータ値ではなく、テストされるそれぞれの解の距離値をテストするだけでよいこともある。
本発明の実施形態では、上述のように、サーフェス空間3内のサンプリング点が、投影されたストローク曲線1'内にあるかどうかを判定するために、サンプリング点を正準空間5内の対応する位置にマッピングする。正準空間5内のこの位置は、関連付けられている解がテクスチャ内に格納される位置に正確に対応することができる。しかし、サーフェス空間3内のサンプリング点に対応する正準空間5内の位置が、関連付けられている解がテクスチャ内に格納される位置に正確に対応しない場合が多い。そこで、テクスチャは、好適なフィルタリングまたは補間プロセスを使用してサンプリングされる。例えば、本発明の実施形態では、双線形補間プロセスを使用してテクスチャをサンプリングし、所望の位置に最も近い4つの位置に関係する格納されているデータを得て、重み付き平均を実行して、所望の位置に対するデータを決定する。次いで、補間されたデータが上述のように使用されて、その位置に対する解のうちの少なくとも1つが、その位置がストローク正準曲線セグメント1"内にあるかどうかを判定する両方のテストに通るかどうかが判定される。解の1つが、両方のテストに通った場合、その位置は、ストローク正準曲線セグメント1"内にあり、それに応じてサーフェス空間3内のサンプリング点が陰影付けされる。
双線形補間プロセスを適切に実装できるように、本発明の実施形態では、絶対距離ではなく符号付き距離が特別に構成されたテクスチャ内に格納される。言い換えると、それぞれの格納されている値は、正準空間5内の関連付けられている位置が、正準曲線12の上にあるのか、下にあるのかに応じて正または負のいずれかの符号を与えられる。
これからわかるように、テクスチャ内のテクセルのいくつかは、4つすべての成分に対する定義済みの値を持たない。例えば、正準空間の左下象限、つまり、x<0およびy<0の領域内のサンプリング位置に対応するテクセルは、非負パラメータ値を持つ解がなく、そのようなものとして、テクスチャの4つの成分のどれについても定義された値を持たない。それに加えて、ただ1つの解(最大2つの解ではなく)、例えば、図4および5の点40のみを持つサンプリング点に対応するテクセルは、テクスチャの最初の2つの成分に対する定義された値のみを持つ。これらの「欠測」解を考慮し、テスト手順において偽陽性の結果が生じる可能性を回避するために、関連付けられているテクセル中の「欠測」解の距離成分には、比較対照されるストローク幅(の半分)より大きい値が与えられる。
また、2つの明確に区別できる解を有し、したがってテクスチャの4つすべての成分に対する定義された値を有するのが、正準空間の左上象限、つまり、x<0およびy>0の領域内のサンプリング位置に対応するテクセルのみであることも理解されるであろう。したがって、2つの別々のテクスチャを作成して、第1のテクスチャに正準空間5の4つの象限すべての中の離散位置に対する第1の解の値の集合を格納し、第2のテクスチャに正準空間の左上象限のみの中の離散位置に対する第2の解の値の集合を格納することにより本発明の実施形態におけるテクスチャ格納を最適化することが可能である。(したがって、第2のテクスチャは、第1のテクスチャのサイズの1/4にすぎない。)
図7は、本発明の実施形態を使用してストローク曲線をレンダリングするレンダリングパイプラインを例示している。
最初に、ステップ60で、ストローク曲線をユーザー空間内に定義する。ステップ62で、ストローク曲線を分類し、そこで例えば、二次曲線、楕円弧、または三次曲線であると判定する。ストローク曲線が、楕円弧または三次曲線であると判定された場合、それに応じて曲線を複数の二次曲線セグメントに細分する(ステップ64を参照)。
次に、レンダリングすべき二次曲線、またはそれぞれの二次曲線セグメントをシステムのグラフィックス処理ユニット(GPU)に入力し、関連付けられているストローク曲線をGPU内で生成する(ステップ66を参照)。次いで、上述の方法で、ユーザーサーフェス変換(ステップ68)を使用して入力ストローク曲線をサーフェス空間内へ変換し、変換されたストローク曲線を覆うプリミティブを生成してラスター処理する(ステップ70)。
次いで、上述のプロセスを使用することで、ラスター処理プロセスにおいて決定されたサンプリング点のそれぞれが、変換されたストローク曲線内にあるかどうかを判定し、この判定に基づき、サンプリング点を陰影付けする。この後者のステップは、当技術分野で知られているように、典型的には、クリップ処理およびマスク処理(ステップ72)、ペイント生成(ステップ74)、画像補間(ステップ76)、ならびにブレンド処理およびアンチエイリアス処理(ステップ78)のステップに分割される。
本発明のプロセスは、好適な従来からの既存グラフィックス処理システムを使用して実装されうる。
例えば、プログラム可能なグラフィックハードウェア上で、これらのプロセスをフラグメントシェーダー内に簡単に実装できる。
固定機能ハードウェアでは、本発明の実施形態は、レンダリングパイプラインを通る多数のパスを使用して実装することができる。例えば、正準空間5内の所望のサンプリング位置に対するそれぞれの解について、第1のパスを使用してパラメータ範囲をチェックし、第2のパスを使用して、曲線までの距離をチェックする(または逆も同様に)ことができる。ドット積を使用して符号付き距離をテストで使用する絶対距離に変換し、アルファテストを使用してさまざまな比較を実行する。ステンシルバッファも使用すると、2つのパスで情報を互いにやり取りして、第1のテストを通った解が第2のテストについて2回目にパイプラインを通るようにできる。
上記から、本発明は、少なくともその好ましい実施形態において、ストローク経路、および特にストローク曲線を、とりわけ、従来の固定機能3Dグラフィックスハードウェア上で、また未修正の既存のハードウェアグラフィックスアクセラレータ上で、従来の技術で可能な方法に比べて実質的により効率的な(CPUの負荷に関して)方法を用いて、レンダリングするための方法および装置を実現する。
1 ストローク二次ベジエ曲線
1' ストローク曲線
1" ストローク正準曲線セグメント
2 2Dユーザー空間
3 2Dサーフェス空間
4 プリミティブ
5 正準空間
10 入力二次ベジエ曲線
11 点
12 正準曲線
14 入力曲線
16 曲線
20 天底(底点)
22 天底
30、32 一般的な点
34 直線
40 点

Claims (23)

  1. グラフィックス処理システムで表示するストローク曲線をレンダリングする方法であって、
    ユーザー空間内で定義されている入力ストローク曲線を受け取るステップと、
    前記受け取ったストローク曲線に対応する正準空間の部分を、前記受け取ったストローク曲線に対応する前記正準空間で定義されている正準曲線の部分を決定することにより決定するステップと、
    受け取った変換を使用して前記受け取ったストローク曲線をサーフェス空間内に投影するステップと、
    サーフェス空間内で前記投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するステップと、
    前記1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、正準空間内の対応する位置が前記受け取ったストローク曲線に対応する前記正準空間の部分内にあるかどうかを判定するステップと、
    正準空間内の対応する位置が前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定する前記ステップに従って、前記受け取ったストローク曲線をレンダリングするためのデータをサーフェス空間内の前記複数のサンプリング点のうちの1つまたは複数に割り当てるステップとを含む方法。
  2. 正準空間内のサンプリング位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定する前記ステップは、正準空間内の前記サンプリング位置まで引くことができる前記正準曲線に垂直な直線の始点となる前記正準曲線上の少なくとも1つの点が、正準空間内に現れるときに前記ストローク曲線のパラメータ範囲内にあるかどうかを判定するステップを含む請求項1に記載の方法。
  3. 正準空間内のサンプリング位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定する前記ステップは、前記正準曲線から前記サンプリング位置まで垂直方向に延びる直線の長さが、正準空間内に現れるときに前記ストローク曲線のストローク幅の半分以下であるかどうかを判定するステップを含む請求項1または2に記載の方法。
  4. 正準空間内のサンプリング位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定する前記ステップは、正準空間内の複数の離散位置について格納されている所定の情報を検索するステップを含む請求項1から3のいずれか一項に記載の方法。
  5. 前記所定の情報は、正準空間内の前記各位置から引くことができる前記曲線に垂直な直線の終点となる前記正準曲線上の1つの点に対するパラメータ値と、前記正準曲線上の前記点と正準空間内の前記各位置との間の垂直距離とのうち少なくとも1つを含む請求項4に記載の方法。
  6. 前記所定の情報は、少なくとも1つのグラフィックステクスチャ内に格納される請求項4または5に記載の方法。
  7. グラフィックス処理システムで表示するストローク曲線をレンダリングする方法であって、
    ユーザー空間内で定義されている入力ストローク曲線を受け取るステップと、
    前記受け取ったストローク曲線に対応する正準空間の部分を、前記受け取ったストローク曲線に対応する前記正準空間で定義されている正準曲線の部分を決定することにより決定するステップと、
    受け取った変換を使用して前記受け取ったストローク曲線をサーフェス空間内に投影するステップと、
    サーフェス空間内で前記投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するステップと、
    次いで、前記1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、
    正準空間内の対応する位置を決定するステップと、
    それぞれが前記正準空間内の少なくとも1つの離散位置に関する情報に関連付けられている複数のテクセルを有する1つまたは複数のグラフィックステクスチャの少なくとも1つのテクセルをサンプリングして、正準空間内の前記対応する位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するステップとを含む方法。
  8. 前記受け取ったストローク曲線に基づき正準空間の異なる領域内の複数の離散位置に関する情報をそれぞれが格納する前記グラフィックス処理システムで使用するために利用可能な複数のグラフィックステクスチャからグラフィックステクスチャを1つ選択するステップと、
    前記選択されたグラフィックステクスチャのうちの少なくとも1つのテクセルをサンプリングして、正準空間内の前記対応する位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するステップとを含む請求項7に記載の方法。
  9. 表示するストローク曲線をレンダリングする際にグラフィックス処理システムで使用するグラフィックテクスチャを構成する方法であって、
    定義されている空間内で曲線を定義するステップと、
    前記定義されている空間内の複数の位置のそれぞれについて、前記空間内で定義されている前記曲線に関する情報を決定するステップと、
    それぞれのテクセルが前記定義されている空間内の前記複数の位置のうちの少なくとも1つの位置に対応する、前記空間内で定義されている前記曲線に関する前記決定された情報が関連付けられているテクセルの配列を含むグラフィックステクスチャを生成し、格納するステップとを含む方法。
  10. 前記定義されている曲線に関する前記情報は、前記曲線上の1つまたは複数の点に相対的な前記定義されている空間内の前記少なくとも1つの位置に関する位置情報を含む請求項9に記載の方法。
  11. グラフィックス処理システムで表示するストローク曲線をレンダリングするための装置であって、
    ユーザー空間内で定義されている入力ストローク曲線を受け取るための手段と、
    前記受け取ったストローク曲線に対応する前記正準空間で定義されている正準曲線の部分を決定することにより前記入力ストローク曲線が対応する正準空間の部分を決定するための手段と、
    受け取った変換を使用して前記受け取ったストローク曲線をサーフェス空間内に投影するための手段と、
    サーフェス空間内で前記投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するための手段と、
    前記1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、正準空間内の対応する位置が前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための手段と、
    正準空間内の対応する位置が前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかの前記判定に従って、前記受け取ったストローク曲線をレンダリングするためのデータをサーフェス空間内の前記複数のサンプリング点のうちの1つまたは複数に割り当てるための手段とを備える装置。
  12. 正準空間内のサンプリング位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための前記手段は、正準空間内の前記サンプリング位置まで引くことができる前記正準曲線に垂直な直線の始点となる前記正準曲線上の少なくとも1つの点が、正準空間内に現れるときに前記ストローク曲線のパラメータ範囲内にあるかどうかを判定するための手段を備える請求項11に記載の装置。
  13. 正準空間内のサンプリング位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための前記手段は、前記正準曲線から前記サンプリング位置まで垂直方向に延びる直線の長さが、正準空間内に現れるときに前記ストローク曲線のストローク幅の半分以下であるかどうかを判定するための手段を備える請求項11または12に記載の装置。
  14. 正準空間内の位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための前記手段は、正準空間内の複数の離散位置について格納されている所定の情報を検索するための手段を備える請求項11から13のいずれか一項に記載の装置。
  15. 前記所定の情報は、正準空間内の前記各位置から引くことができる前記曲線に垂直な直線の終点となる前記正準曲線上の1つの点に対するパラメータ値と、前記正準曲線上の前記点と正準空間内の前記各位置との間の垂直距離とのうち少なくとも1つを含む請求項14に記載の装置。
  16. 前記所定の情報は、少なくとも1つのグラフィックステクスチャ内に格納される請求項14または15に記載の装置。
  17. グラフィックス処理システムで表示するストローク曲線をレンダリングするための装置であって、
    ユーザー空間内で定義されているストローク曲線を受け取るための手段と、
    前記受け取ったストローク曲線に対応する正準空間の部分を、前記受け取ったストローク曲線に対応する前記正準空間で定義されている正準曲線の部分を決定することにより決定するための手段と、
    受け取った変換を使用して前記受け取ったストローク曲線をサーフェス空間内に投影するための手段と、
    サーフェス空間内で前記投影されたストローク曲線を覆う1つまたは複数のプリミティブを定義するための手段と、
    前記1つまたは複数のプリミティブ内の複数のサンプリング点のそれぞれについて、正準空間内の対応する位置を決定するための手段と、
    それぞれが前記正準空間内の1つの離散位置に関する情報に関連付けられている複数のテクセルを有する1つまたは複数のグラフィックステクスチャの少なくとも1つのテクセルをサンプリングして、正準空間内の前記対応する位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための手段とを備える装置。
  18. 前記受け取ったストローク曲線に基づき正準空間の異なる領域内の複数の離散位置に関する情報をそれぞれが格納する前記グラフィックス処理システムで使用するために利用可能な複数のグラフィックステクスチャからグラフィックステクスチャを1つ選択するための手段と、
    前記選択されたグラフィックステクスチャのうちの少なくとも1つのテクセルをサンプリングして、正準空間内の前記対応する位置が、前記受け取ったストローク曲線に対応する正準空間の部分内にあるかどうかを判定するための手段とを備える請求項17に記載の装置。
  19. 表示するストローク曲線をレンダリングする際にグラフィックス処理システムで使用するグラフィックテクスチャを構成するための装置であって、
    定義されている空間内で曲線を定義するための手段と、
    前記定義されている空間内の複数の位置のそれぞれについて、前記空間内で定義されている前記曲線に関する情報を決定するための手段と、
    それぞれのテクセルが前記定義されている空間内の前記複数の位置のうちの少なくとも1つの位置に対応する、前記空間内で定義されている前記曲線に関する前記決定された情報が関連付けられているテクセルの配列を含むグラフィックステクスチャを生成し、格納するための手段とを備える装置。
  20. 前記情報は、前記曲線上の1つまたは複数の点に相対的な前記定義されている空間内の前記少なくとも1つの位置に関する位置情報を含む請求項19に記載の装置。
  21. 表示するストローク曲線をレンダリングする際にグラフィックス処理システム内で使用するためのグラフィックステクスチャであって、前記テクスチャのそれぞれのテクセルは、定義された空間内の少なくとも1つの位置を表し、またそのテクセルには、前記少なくとも1つの位置について、前記空間内で定義されている曲線に関する情報が関連付けられているグラフィックステクスチャ。
  22. 前記情報は、前記曲線上の1つまたは複数の点に相対的な前記定義されている空間内の前記少なくとも1つの位置に関する位置情報を含む請求項21に記載のグラフィックステクスチャ。
  23. 前記プログラム要素がデータ処理手段上で実行されたときに請求項1から10のいずれか一項に記載の方法を実行するコンピュータソフトウェアコード部分を備えるコンピュータプログラム要素。
JP2009231899A 2008-10-06 2009-10-05 グラフィックス処理システム Active JP5600410B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0818278.4 2008-10-06
GBGB0818278.4A GB0818278D0 (en) 2008-10-06 2008-10-06 Graphics processing systems

Publications (2)

Publication Number Publication Date
JP2010092480A true JP2010092480A (ja) 2010-04-22
JP5600410B2 JP5600410B2 (ja) 2014-10-01

Family

ID=40042353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009231899A Active JP5600410B2 (ja) 2008-10-06 2009-10-05 グラフィックス処理システム

Country Status (4)

Country Link
US (1) US8928667B2 (ja)
JP (1) JP5600410B2 (ja)
CN (1) CN101714261B (ja)
GB (2) GB0818278D0 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028756A (ja) * 2009-07-28 2011-02-10 Arm Ltd グラフィックス処理システム
KR20160086622A (ko) * 2015-01-12 2016-07-20 삼성전자주식회사 스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램
KR20170016305A (ko) * 2015-08-03 2017-02-13 에이알엠 리미티드 그래픽 처리 시스템
KR20190034525A (ko) * 2016-07-29 2019-04-02 소니 주식회사 화상 처리 장치 및 화상 처리 방법
US10331331B2 (en) 2014-11-07 2019-06-25 Samsung Electronics Co., Ltd. Display device and method of controlling display device

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US20110285718A1 (en) * 2010-05-21 2011-11-24 Kilgard Mark J Point containment for quadratic bèzier strokes
US9092905B2 (en) 2011-04-15 2015-07-28 Panasonic Intellectual Property Management Co., Ltd. Curve rendering device, curve rendering method, curve rendering program, and integrated circuit
US20130093668A1 (en) * 2011-10-12 2013-04-18 Samsung Electronics Co., Ltd. Methods and apparatus for transmitting/receiving calligraphed writing message
KR101848507B1 (ko) * 2011-10-12 2018-04-13 삼성전자주식회사 미려화 필기 메시지 전송 장치 및 방법
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
USD757773S1 (en) * 2014-07-08 2016-05-31 Huawei Technologies Co., Ltd. Display screen or portion thereof with animated graphical user interface
US9984480B2 (en) * 2016-03-21 2018-05-29 Adobe Systems Incorporated Enhancing curves using non-uniformly scaled cubic variation of curvature curves
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
CN110297932B (zh) * 2019-06-28 2021-07-23 北京金山安全软件有限公司 确定矢量图中封闭图形的最大内接圆的方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076233A (ja) * 1993-05-14 1995-01-10 Microsoft Corp 曲線を描く装置及び方法
JPH11175740A (ja) * 1997-12-05 1999-07-02 Fuji Xerox Co Ltd 太線描画方法および装置
JPH11296699A (ja) * 1998-04-14 1999-10-29 Shima Seiki Mfg Ltd 3次元画像作成装置
US20050017969A1 (en) * 2003-05-27 2005-01-27 Pradeep Sen Computer graphics rendering using boundary information
US20070097123A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Resolution-independent curve rendering using programmable graphics hardware

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855934A (en) * 1986-10-03 1989-08-08 Evans & Sutherland Computer Corporation System for texturing computer graphics images
US5133052A (en) * 1988-08-04 1992-07-21 Xerox Corporation Interactive graphical search and replace utility for computer-resident synthetic graphic image editors
JP2919712B2 (ja) 1993-06-30 1999-07-19 キヤノン株式会社 文字発生方法および装置
JPH06274149A (ja) 1993-03-24 1994-09-30 Mutoh Ind Ltd アウトラインフォントの幅変更処理方法および装置
JP2972047B2 (ja) 1993-04-23 1999-11-08 シャープ株式会社 スイープ立体生成装置
EP0763930B1 (en) * 1995-09-15 2002-10-16 Agfa-Gevaert Method for calculating color gamuts
AU5871500A (en) * 1999-06-11 2001-01-02 Sydney Hyman Image making medium
US6552725B1 (en) * 2000-04-11 2003-04-22 Corel Corporation Heuristic method for adaptive subdivision of coons patches for rendering
US6707452B1 (en) * 2000-07-19 2004-03-16 Pixar Method and apparatus for surface approximation without cracks
US6894695B2 (en) * 2001-04-27 2005-05-17 National Semiconductor Corporation Apparatus and method for acceleration of 2D vector graphics using 3D graphics hardware
US6792205B2 (en) * 2002-04-17 2004-09-14 Mitsubishi Electric Research Laboratories, Inc. Method for generating a textured range image
JP2004054584A (ja) 2002-07-19 2004-02-19 Rikogaku Shinkokai 線属性の自動付加方法及び装置
US7158677B2 (en) * 2002-08-20 2007-01-02 National Instruments Corporation Matching of discrete curves under affine transforms
TW575841B (en) * 2002-08-27 2004-02-11 Ind Tech Res Inst Descriptive method of characters for displaying the thickness of strokes thereof
US6982724B2 (en) * 2003-03-25 2006-01-03 Mitsubishi Electric Research Labs, Inc. Method for antialiasing an object represented as a two-dimensional distance field in object-order
US6917369B2 (en) 2003-03-25 2005-07-12 Mitsubishi Electric Research Labs, Inc. Method and apparatus for rendering cell-based distance fields using texture mapping
US20060017955A1 (en) * 2003-03-31 2006-01-26 Sharp Laboratories Of America, Inc. Selective graphic instance rendering
US7764287B2 (en) * 2003-07-07 2010-07-27 Arcsoft, Inc. Graphic engine for approximating a quadratic bezier curve in a resource-constrained device
KR100682889B1 (ko) * 2003-08-29 2007-02-15 삼성전자주식회사 영상에 기반한 사실감 있는 3차원 얼굴 모델링 방법 및 장치
US20080094389A1 (en) 2004-05-18 2008-04-24 Koninklijke Philips Electronics, N.V. Image Processing System for Automatic Segmentation of a 3-D Tree-Like Tubular Surface of an Object, Using 3-D Deformable Mesh Models
JP4476733B2 (ja) * 2004-07-30 2010-06-09 株式会社東芝 パターン評価方法、プログラムおよびパターン評価装置
US7239319B2 (en) * 2004-08-27 2007-07-03 Microsoft Corporation Rendering outline fonts
US7742050B2 (en) * 2004-10-04 2010-06-22 Microsoft Corp. System and method for optimizing a graphics intensive software program for the user's graphics hardware
US7555163B2 (en) * 2004-12-16 2009-06-30 Sony Corporation Systems and methods for representing signed distance functions
JP4255449B2 (ja) * 2005-03-01 2009-04-15 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、テクスチャ処理装置、およびテセレーション方法
US7405733B2 (en) * 2005-03-24 2008-07-29 Autodesk Canada Co. Spline drawing in a computer-implemented graphics program
US7657071B2 (en) * 2005-04-11 2010-02-02 Siemens Medical Solutions Usa, Inc. Systems, devices, and methods for bundle segmentation in diffusion tensor magnetic resonance imaging
US7289119B2 (en) * 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
US7589730B1 (en) * 2005-05-20 2009-09-15 Adobe Systems Incorporated System and method for drawing a dashed path
US7408548B2 (en) * 2005-06-30 2008-08-05 Microsoft Corporation Triangulating procedural geometric objects
US7432937B2 (en) * 2005-06-30 2008-10-07 Intel Corporation System and method for concave polygon rasterization
JP2007073043A (ja) 2005-09-06 2007-03-22 Sharp Corp 図形インスタンスに対して選択的にレンダリングを実行するレンダリング装置、レンダリング方法、および、制御プログラム
JP4693660B2 (ja) * 2006-03-10 2011-06-01 株式会社東芝 描画装置、描画方法及び描画プログラム
JP4643485B2 (ja) * 2006-03-30 2011-03-02 株式会社東芝 描画装置、方法およびプログラム
US9922141B2 (en) * 2006-11-22 2018-03-20 Take-Two Interactive Software, Inc. Systems and methods for fast simulation and visualization of sparse fluids
CN100578547C (zh) * 2007-05-15 2010-01-06 北京金山软件有限公司 一种用于河流模拟的方法和系统
US7872648B2 (en) * 2007-06-14 2011-01-18 Microsoft Corporation Random-access vector graphics
US8068106B1 (en) * 2007-08-31 2011-11-29 Adobe Systems Incorporated Rendering cubic Bézier curves as quadratic curves using a GPU
US7868887B1 (en) * 2007-10-18 2011-01-11 Adobe Systems Incorporated Rendering rational quadratic Bézier curves on a GPU
US8643644B2 (en) * 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering
US8773432B2 (en) * 2008-04-18 2014-07-08 Adobe Systems Incorporated Triangulation for accelerated multi-resolution rendering of stroked paths
US8917935B2 (en) * 2008-05-19 2014-12-23 Microsoft Corporation Detecting text using stroke width based text detection
US8300052B1 (en) * 2008-09-24 2012-10-30 Autodesk, Inc. Application of bevel curves to splines
US8538200B2 (en) * 2008-11-19 2013-09-17 Nec Laboratories America, Inc. Systems and methods for resolution-invariant image representation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076233A (ja) * 1993-05-14 1995-01-10 Microsoft Corp 曲線を描く装置及び方法
JPH11175740A (ja) * 1997-12-05 1999-07-02 Fuji Xerox Co Ltd 太線描画方法および装置
JPH11296699A (ja) * 1998-04-14 1999-10-29 Shima Seiki Mfg Ltd 3次元画像作成装置
US20050017969A1 (en) * 2003-05-27 2005-01-27 Pradeep Sen Computer graphics rendering using boundary information
US20070097123A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Resolution-independent curve rendering using programmable graphics hardware

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028756A (ja) * 2009-07-28 2011-02-10 Arm Ltd グラフィックス処理システム
US10331331B2 (en) 2014-11-07 2019-06-25 Samsung Electronics Co., Ltd. Display device and method of controlling display device
KR20160086622A (ko) * 2015-01-12 2016-07-20 삼성전자주식회사 스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램
KR101654865B1 (ko) 2015-01-12 2016-09-06 삼성전자주식회사 스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램
KR20170016305A (ko) * 2015-08-03 2017-02-13 에이알엠 리미티드 그래픽 처리 시스템
KR102666054B1 (ko) 2015-08-03 2024-05-16 에이알엠 리미티드 그래픽 처리 시스템
KR20190034525A (ko) * 2016-07-29 2019-04-02 소니 주식회사 화상 처리 장치 및 화상 처리 방법
KR102378860B1 (ko) 2016-07-29 2022-03-28 소니그룹주식회사 화상 처리 장치 및 화상 처리 방법

Also Published As

Publication number Publication date
GB0917510D0 (en) 2009-11-18
GB2463992B (en) 2011-01-05
US8928667B2 (en) 2015-01-06
CN101714261A (zh) 2010-05-26
GB0818278D0 (en) 2008-11-12
US20100097382A1 (en) 2010-04-22
GB2463992A (en) 2010-04-07
CN101714261B (zh) 2014-08-20
JP5600410B2 (ja) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5600410B2 (ja) グラフィックス処理システム
JP5721358B2 (ja) グラフィックス処理システム
US8928668B2 (en) Method and apparatus for rendering a stroked curve for display in a graphics processing system
CN108734624B (zh) 包括多个处理级的图形处理流水线及其操作方法与介质
EP3748584B1 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
KR102666054B1 (ko) 그래픽 처리 시스템
US9311738B2 (en) Path rendering by covering the path based on a generated stencil buffer
EP3129974B1 (en) Gradient adjustment for texture mapping to non-orthonormal grid
US9965876B2 (en) Method and apparatus for graphics processing of a graphics fragment
JP5512218B2 (ja) グラフィックス処理システム
JP2010102713A (ja) コンピュータグラフィックスを処理する方法および機器
JP2005100177A (ja) 画像処理装置およびその方法
JP5512217B2 (ja) グラフィックス処理システム
US10453274B2 (en) Texture compressing method and apparatus and texture decompressing method and apparatus
US20080284780A1 (en) Method for enabling alpha-to-coverage transformation
JP6169048B2 (ja) 入力パスを変換する方法、入力パスのセグメントを内部又は外部としてラベル付けする方法、入力パスをレンダリングする方法、及び、入力パスの外形を描く方法
US20230081389A1 (en) Rendering scalable multicolored vector content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140623

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140701

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: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140818

R150 Certificate of patent or registration of utility model

Ref document number: 5600410

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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