【課題を解決するための手段】
【0010】
第1の態様から見たとき、本発明は、グラフィックス処理システム内の入力曲線を用いてレンダリング出力を生成する方法を提供する。当該方法は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定するステップと、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定するステップと、
レンダリング出力を生成するとき、標準空間内の当該変換された標本点に対する標準曲線上の当該決定された最も近い点を使用するステップと
を含む。
【0011】
第2の態様から見たとき、本発明は入力曲線を用いてレンダリング出力を生成するためのグラフィックス処理システムを提供する。グラフィックス処理システムは、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定し、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定する
ように構成された処理回路と、
レンダリング出力を生成するとき、標準空間内の当該変換された標本点に対する標準曲線上の当該決定された最も近い点を使用するように構成された処理回路と、
を備える。
【0012】
本発明では、レンダリング出力は、まず、「世界空間」(平坦でありしたがって二次元のみを有してもよく、または3次元空間であってもよい)内で定義された入力曲線を「標準空間」内で定義されている対応する予め定義された「標準」曲線にマッピングすることによって、入力曲線を用いて生成される。次いで、標準空間内の位置が、入力曲線を囲む世界空間内の対応する位置から変換され、標本化位置の各々に最も近い標準曲線上の点を決定するために標本化(テスト)される。これらの最も近い点はレンダリング出力を生成するために使用される。当該情報を使用して、入力曲線が少なくともそれらのアウトラインの一部を形成する形状、例えば、フォントに対するグリフを描画するか、または、入力曲線が少なくともそれらのアウトラインの一部を形成するオブジェクトに基づいて照明または影を描画することができる。
【0013】
しかし、出願人は、本明細書では「標準曲線」と称する、予め定義された、単一曲線または基本曲線の少なくとも一部に対して例えば回転、変換および均一な拡大のみを用いて、特定の曲線ファミリ内の全ての曲線をを変換できることを認識している。
【0014】
これによりしたがって、単一の曲線、即ち、標準曲線に関する情報を、レンダリング出力を生成する際に使用するためのグラフィックス処理システムにより使用される1つまたは複数の入力曲線に関する情報を決定するために使用することができる。換言すれば、例えば、グラフィックス処理システムにより使用される描画すべき各独立な入力曲線と関連してデータを導出または格納しなければならないのではなく、標準曲線に関するデータを導出または格納するだけでよい。当該データを次いで使用して、「標準曲線」が表す入力曲線のファミリ(集合)に属する独立な入力曲線の各々を用いてレンダリング出力を生成することができる。
【0015】
したがって、本発明は、1つまたは複数の入力曲線を用いてレンダリング出力を生成するためのより効率的な機構を提供できるだけでなく、それを行うための特に都合の良い機構を提供する。例えば、標準空間内の標準曲線が定義されると、単純に単一の座標、例えば、x座標により、当該曲線上の点を参照することができ(したがってこれらを計算で使用することができ)るかもしれない。したがって、標準曲線を用いて標本点に最も近い当該曲線上の点を決定し、次いで当該点を用いて当該曲線上の最も近い点への距離(符号付き距離場における情報の一部)を決定でき、例えば、ベクトル・グラフィックスを用いて定義された入力曲線の数学的表現を保持することができる。これは、入力曲線を用いたレンダリング出力の生成の速度と精度を増大させる情報を決定するより単純かつ正確な方法である。これは、スキャンライン・ラスタライゼーションを用いて評価される符号付き距離場を用いた技術と比較され、当該技術は符号付き距離場を計算するときに情報の損失に繋がり、したがって、レンダリング出力における細部の損失に繋がる。
【0016】
かかる入力曲線を用いてレンダリング出力を生成するためのより単純なプロセスを提供することは、当該プロセスを実行する装置の処理と電力負荷の削減を支援し、バッテリで動作し多機能処理を実装できないより単純な装置、例えば、モバイルおよびウェラブル装置で使用することを可能としうる。あるいはプロセスの増大した効率性により、以前の技術と比較して装置に関する処理および電力負荷の関連する増大なしに、より洗練されたレンダリング機能を実施することができ、または、必要な情報(例えば、変換された標本点の各々に最も近い標準曲線上の点)を必要に応じてリアルタイムで(再)計算することができる。
【0017】
かかる入力曲線を用いるとき、特に、フォントを描画するときのレンダリング出力の生成について、より単純かつより正確なプロセス(例えば、変換された標本点最も近い標準曲線上の点の分析的計算)を用いることにより、特にフォントを再計算する必要がありうるようにテキストが拡大されるとき、当該フォントをディスプレイにより魅力的に提示することができる。
【0018】
本発明のプロセスにより使用され、例えば本発明のプロセスに入力される世界空間内で定義された入力曲線が、例えば、入力曲線を用いてレンダリング出力を生成することを要求するアプリケーションにより最初に定義された入力曲線であってもよい。しかし、入力曲線が、世界空間内で定義された別の曲線から導出される曲線であることもまた可能である。例えば、入力曲線を、別の曲線または初期曲線を例えばそれが本発明によりその中で受信される別の空間から世界空間に変換することによって、導出されているかもしれないことも考慮されている。
【0019】
入力曲線を、任意の適切かつ所望の方法でグラフィックス処理システムに入力してもよい。例えば、入力曲線を、グラフィックス処理システムに(予め)格納して、その格納された位置から読み出してもよく、または、入力曲線をグラフィックス処理システム自体により決定してもよい。別の実施形態では、入力曲線を、例えば入力曲線を用いてレンダリング出力を生成することを要求するアプリケーションにより積極的に入力してもよい。好適な実施形態では、当該方法は、入力曲線を受信するステップを含む(および、処理回路がそのように構成される)。
【0020】
例えば入力曲線を用いて描画される形状を含むレンダリング出力を、例えば、その長さの全体(またはレンダリング出力を生成するために使用されるその長さの少なくとも一部)に対して単一の定義(例えば、数式)を有する単一の曲線のみを用いて生成してもよい。入力曲線が上述の性質を有する「標準曲線」を導出できる形式を有するのが好ましい。したがって、グラフィックス処理システムにより使用される入力曲線が、適切な関連する標準曲線を有しうる曲線のファミリからの任意の曲線であってもよい。
【0021】
この形式の関連する標準曲線を有しうる曲線の1つのファミリは二次曲線である。この場合、標準曲線は、基本二次曲線、即ち、y=x
2の形の曲線であることができる。したがって、特に好適な実施形態では、グラフィックス処理システムにより受信される世界空間内の入力曲線は二次曲線である。
【0022】
レンダリング出力を、複数の入力曲線を用いて、例えば、それぞれがそれらの長さの上で異なる定義(例えば、数式)を有する複数の曲線セグメントを用いて、生成してもよいことが等しく考慮されている。例えば、フォントに対するグリフは一般に、一体となって当該グリフのアウトラインを形成する(直線セグメントを含んでもよい)複数の曲線セグメントにより定義される。
【0023】
あるいはまたはその代わりとして、入力曲線が標準空間内の対応する曲線を有さなくてもよく、したがって初期曲線をそれぞれが(関連する標準曲線を有する曲線のファミリのメンバである)対応する標準曲線を有するセグメントの複数の曲線セクションに細分割してもよく、例えば、レンダリング出力で使用される入力曲線を、世界空間内で定義された初期曲線を、(例えば、初期曲線の長さに沿って異なるセクションに対して別個の入力曲線として定義されている)2つ以上の別個の入力曲線に細分割することによって導出してもよい。例えば、三次曲線または楕円形曲線を複数の二次曲線に細分割してもよい。これにより、直接定義(および/または格納)されるかまたは利用可能である直接対応する標準曲線が存在しない可能性がある曲線を描画するために本発明を使用することができる。
【0024】
これらの実施形態では、当該方法が世界空間内で定義された初期曲線を複数の入力曲線に細分割するステップを含んでもよく(および、処理回路がそのように構成されてもよく)、入力曲線の1つまたは複数が次いでそれぞれ処理されてレンダリング出力が本発明の方式で生成される。最初に定義された幾つかの曲線、例えば、三次ベジエ曲線に対して、初期曲線を複数の入力曲線に細分割するとき、初期曲線に最も適合する複数の入力曲線、例えば、二次ベジエ曲線を発見するために、当該計算の一部を再利用してもよい(および、したがってこれを行うように処理回路を構成してもよい)。例えば、二次ベジエは、その開始点および終点、および(第3の制御点により定義されうる)勾配により定義される。これらのパラメータを次いで、例えば標準形の隣接ベジエに対する対応するパラメータと比較して、それらをマージできるかどうかを判定することができる。
【0025】
好適な1組の実施形態では、複数の入力曲線を用いてレンダリング出力を生成するとき、本発明の方法が入力曲線(例えば、セグメント)の各々に対して反復され、例えば、各入力曲線(セグメント)が標準空間に変換される。標準空間において、入力曲線(セグメント)を囲む世界空間内の複数の標本点ごとに、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点が決定される。これは次いで、変換された標本点ごとに、当該複数の標準曲線の各々を囲む変換された標本点の配列に対して、標準曲線(セグメント)上の当該決定された最も近い点を返し、次いで、レンダリング出力を生成するときにこれらの決定された最も近い点を使用することができる。
【0026】
出願人は、レンダリング出力を生成するときの使用が望まれうる、実際には殆どだが全てではない入力曲線が少数の曲線ファミリのうち1つに入り、したがってフォントのような複雑な形状を、比較的少数の入力曲線を用いて描画、例えば、定義することが望まれうる曲線の全てではないが殆どを表現できることを認識している。入力曲線が、任意の適切な1つまたは複数の曲線であってもよい。入力曲線が平滑曲線であることが好ましい。当該平滑曲線または各平滑曲線は、連続であり(曲線の経路の)曲線の第1の導関数が区分連続である曲線であることが好ましい。入力曲線は直線、(例えば、二次または三次)ベジエ曲線、スプライン曲線および/または(例えば、楕円)弧であることが好ましい。
【0027】
しかし、以下でさらに説明するように、入力曲線が、より複雑な曲線、例えば、楕円および/または双曲線を含んでもよく、当該曲線が例えば複数の二次曲線に細分割される必要がなくてもよい。しかし、このように定義された入力曲線に対して、世界空間から標準空間への(二次元での)一意な変換はなく、したがって、曲線の定義が、曲線の離心率のような、例えば、標準空間内で3次元として表される情報をさらに含む必要があるかもしれない。これを入力曲線の定義の一部として格納してもよく、または、入力曲線が楕円または双曲線を含むとき、当該方法が入力曲線の離心率を決定するステップを含んでもよい(および、処理回路がそのように構成されてもよい)。
【0028】
二次曲線とともに入力曲線が楕円および双曲線を含むとき、例えば、これは、レンダリング出力を生成するとき使用される複雑な形状を定義するための有用なツールボックスをユーザに提供し、これらを、例えば、相対的にハードウェア・フレンドリである回転、拡大および変換のみによって、1つまたは複数の入力曲線から対応する標準曲線に変換することができる。
【0029】
本発明のプロセスにより使用され、例えば、本発明のプロセスへの入力として受信される世界空間内で定義された入力曲線を、任意の所望の適切な方式で定義してもよい。例えば、グラフィックス処理システムが、曲線の位置および曲線に関連する任意のパラメータのような、入力曲線を定義する情報を受信できるのが好ましい。入力曲線は、例えば形状の一部したがって好適には入力曲線の定義として固定長を有し、したがってグラフィックス処理システムにより使用、例えば受信される情報が入力曲線の終点を含むのが好ましい。入力曲線を、回転、変換および均一な拡大のみを用いて対応する標準曲線に変換できるので、以下でさらに説明するように、これは、その開始点および終点のような入力曲線に対応する標準曲線の一部を、使用中に容易に決定することができる。
【0030】
入力曲線は、一般に開始点、終点および1つまたは複数の中間点を含む世界空間内の複数の制御点の位置により、開始制御点と終了制御点の間で描画される曲線のタイプの指示とともに定義されるのが好ましい。例えば、好適には、上述のように入力曲線は、直線、(単一の中間制御点を必要とする)二次ベジエ曲線、(2つの中間制御点を必要とする)立方ベジエ曲線、スプライン曲線および(例えば、楕円形または双曲線)弧のうち1つを含む。入力曲線の定義がまた、例えば、当該制御点の1つまたは複数での当該曲線の勾配を含んでもよい。例えば二次ベジエ曲線を、3つの制御点により、または、2つの(端)制御点およびこれらの2つの制御点での勾配により定義してもよい。
【0031】
したがって入力曲線の定義が世界空間内の複数の制御点と曲線のタイプを示す情報とを含むのが好ましい。また、入力曲線がグラフィックス処理システムにより受信されたとき、世界空間内で定義された入力曲線を受信するステップが、世界空間内の複数の制御点の位置と曲線のタイプを示す情報とを受信するステップを含む(および、処理回路はそのように構成される)のが好ましい。
【0032】
レンダリング出力を生成するために使用される入力曲線に対して、例えば、入力曲線がグラフィックス処理システムにより受信されると、入力曲線を表す標準空間内の標準曲線の対応する部分を決定することが必要である。当該決定を、任意の適切な所望の方式で実行してもよい。
【0033】
好適な実施形態では、これは、世界空間内で定義された入力曲線を取って標準空間内の標準曲線の対応する部分に配置するのに必要な変換を決定することにより行われる。上述のように当該変換(世界標準変換)は、回転、変換および/または均一な拡大のみを必要とすべきである。したがって、世界空間内の入力曲線を標準曲線の適切な部分上に変換する変換を決定するステップが、もしあれば、当該変換の回転成分を決定するステップを含むのが好ましい(および、処理回路がそうするように構成されるのが好ましい)。
【0034】
当該変換の回転成分を、任意の適切な所望の方式で決定してもよい。好適な実施形態では、しかし、再度、世界空間内の入力曲線(およびしたがって標準空間内の標準曲線)が二次曲線であるとき、当該変換の回転成分は、入力曲線の対称軸を標準空間内の標準曲線の対称軸と平行にするのに必要な回転を決定することによって決定される。当該回転はしたがって、入力曲線の対称軸を、標準曲線の対称軸(例えば、標準空間のy軸)の方向と整列させる。
【0035】
世界空間内の入力曲線を標準空間内の標準曲線の適切な部分上に変換する変換を決定するステップが同様に、もしあれば、当該変換の変換成分を決定するステップを含むのが好ましい(および、処理回路がそのように構成されるのが好ましい)。
【0036】
当該変換の変換成分を任意の適切な所望の方式で決定してもよい。しかし、好適な実施形態では、入力曲線(したがって標準曲線)が二次曲線であるとき、当該変換の変換成分は、世界空間内の入力曲線の入力曲線の天底を、標準空間内の標準曲線の天底、例えば標準空間の原点に移動するのに必要な変換を決定することによって決定される。したがって、必要ならば当該変換の変換成分を決定するステップが、必要ならば当該変換の回転成分のステップに続くのが好ましい。
【0037】
したがって、好適な実施形態では、当該変換の変換成分を決定するステップが、入力曲線の天底を標準空間内の標準曲線の天底にマップするのに必要な変換を決定するステップを含む(および、処理回路がそうするように構成されるのが好ましい)。
【0038】
標準曲線の適切な部分上の世界空間内の入力曲線を変換する変換を決定するステップが同様に、もしあれば当該変換の均一な拡大成分を決定するステップを含むのが好ましい(および、処理回路がそうするように構成されるのが好ましい)。
【0039】
当該変換の均一な拡大成分を、任意の適切な所望の方式で決定することもできる。しかし、好適な実施形態では、再度、世界空間内の入力曲線(したがって標準空間内の標準曲線)が二次曲線であるとき、当該変換の均一な拡大成分は、例えば、回転および/または変換された入力曲線を標準曲線に拡大するのに必要な拡大因子を決定することによって、例えば、入力曲線の二次形式を試験することによって、決定される。
【0040】
当該変換の回転、変換および均一な拡大成分を決定するステップを必要に応じて任意の順序で実施することができる。しかし、本発明の好適な実施形態では、回転成分が先ず決定され、次に変換成分が決定され、最終的に均一な拡大成分が決定される。
【0041】
入力曲線が固定長を有するとき、例えば、開始点および終点により定義されるとき、世界空間内の入力曲線を標準空間内の標準曲線にマップするのに必要な変換が決定されると、入力曲線に対応する標準曲線の一部が、入力曲線の中心曲線の開始点と終点に対応する標準曲線上の2つの位置を決定するための当該決定された変換を用いて決定されるのが好ましい。これは次いで、標準空間内の入力曲線の位置を与える。
【0042】
世界空間内の入力曲線に対応する標準空間内の標準曲線が決定され、したがってまた入力曲線に対して世界空間から標準空間への変換が決定されると、入力曲線を囲む世界空間内の複数の標本点の各々を、(独立にまたは一緒に)同一の変換を用いて標準空間内の対応する点に変換することができる。
【0043】
入力曲線を囲む複数の標本点を、例えば、レンダリング出力が描画される(または生成されるレンダリング出力の最も予想される拡大レベルをカバーする)のが望ましい詳細レベルに対して十分な解像度のレベルで入力曲線上の当該決定された最も近い点を提供できるように、任意の適切かつ所望の方法で選択してもよい。あるいは、入力曲線上の最も近い点を、低解像度で、例えば、少数の標本点に対して決定し、次いで、後に必要ならば、例えば、レンダリング出力を拡大されたレベルで生成するのが望ましい場合に高解像度で(即ち、より詳細に)決定してもよい。1実施形態では、入力曲線を囲む境界ボックスが描かれ、その中で入力曲線を囲む複数の標本点が定義される。
【0044】
1実施形態では、標準曲線上の最も近い点を、レンダリング出力を生成するときに使用するために最終的に入力曲線に関連する情報が決定される、入力曲線を囲む全ての標本点に対して決定されなくてもよい。例えば、複数のさらなる標本点の各々に対して決定される情報を、これらのさらなる標本点の各々を標準空間に変換し標準曲線上の最も近い点を決定する必要なしに、例えば当該複数のさらなる標本点からの標本点の近くに存在する(最初に定義された)標本点のうち1つまたは複数から推論してもよい。
【0045】
当該実施形態では、曲線上の標本点に最も近い点、当該標本点から最も近い当該曲線上の点への距離および当該標本点をそのまま扱うべき曲線の側のうち1つまたは複数を決定することが可能でありうる。当該情報を、標準空間内で決定してもよく(したがって、当該標本点を標準空間に変換することおよび/または標準空間内ので決定される情報を世界空間に変換し戻すことを要求してもよい)、または、世界空間内で決定してもよい。
【0046】
さらに、当該実施形態では、1つまたは複数の近傍の標本点を用いて特定の変数の実際の値を決定する必要はないかもしれないが、変数の値が閾値より高いか低いかを判定する必要はありうる。次いでこれを使用して、当該変数の値を独立にまたはより正確に、例えば、入力曲線の近くに存在する標本点に対して決定する必要があるかどうかを判定してもよい。例えば、さらなる標本点に対して、最も近い点および/または距離が既に決定されている1つまたは複数の囲む標本点を用いて、当該さらなる標本点が近傍の標本点に近いかまたは近傍の標本点から離れているかどうかを判定することが可能でありうる。当該さらなる標本点が遠く離れている場合、当該近傍の標本点に対する曲線への距離(または当該点が遠く離れていることを示す閾値またはデフォルト値)を単純に格納するので十分かもしれない。当該さらなる標本点がより近い場合、標準空間内の標本点に対する曲線上の最も近い点を標本点の初期集合に対するものとして決定することが必要であるかもしれない。
【0047】
当該実施形態では、好適には、これらの比較をさらなる標本点に対して行えるように、標本点の初期集合に対して決定された情報、例えば、標本点に最も近い曲線上の点、当該標本点から当該曲線上の最も近い点への距離および当該標本点をそのまま扱うべきである当該曲線の側のうち1つまたは複数が、例えば、キャッシュに格納される。
【0048】
複数の入力曲線があるとき、各入力曲線を囲む世界空間内の複数の標本点は入力曲線ごとに同一でありうる。例えば、当該複数の標本点は全ての入力曲線を囲むことができる(したがって、後述するように、描画時に全ての入力曲線に対してテストする可能性を与えうる)が、好適には、各入力曲線を囲む複数の標本点は、例えば、入力曲線を丁度囲むように入力曲線ごとに別々に選択され、したがってそれらは好適には、世界空間において標本点のサブセットを形成する。例えば、全ての入力曲線を囲むように(単一の)境界ボックスを描くことができるが、好適には、別個の境界ボックスが各入力曲線を囲むように描かれ、その中で複数の標本点が定義される。
【0049】
標準空間に変換される世界空間内の標本点に関して、変換された標本点に最も近い標準空間内の標準曲線上の点を、任意の適切かつ所望の方法で決定してもよい。好適には、変換された標本点の各々に最も近い標準曲線上の点は、標準空間内で分析的に決定される。当該最も近い点を、標準曲線の接線が当該変換された標本点から標準曲線上の点へのベクトルに直交する標準曲線上の点を決定することによって決定してもよい(幾つかの標準曲線に対して、これが当該条件を満たす曲線上の複数の点を返してもよく、したがって、変換された標本点から曲線上の点への距離を比較して当該最も近い点を決定し、例えば、標準曲線の有限部分の外に入る点を破棄し、かつ/または、当該変換された標本点からの最短距離を有する標準曲線上の点を選択する必要があってもよい)。入力曲線の定義に応じて、かかる分析的計算が、例えば、入力曲線がベジエ曲線として定義されるとき世界空間内で可能であるかもしれないが、例えば、対応する標準曲線が放物線であるときは標準空間内で可能であるかもしれない。
【0050】
入力曲線が固定長を有する、例えば、開始点および終点により定義されるとき、標準曲線の一部の開始点または終点が、変換された標本点から標準曲線上の点へのベクトルと標準曲線の接線が直交する標準曲線(例えば、当該部分の外部)上の(最も近い)点より近くてもよく、例えば、当該曲線の開始点または終点が標本点に最も近い当該曲線上の点であってもよい。したがって好適には、変換された標本点に最も近い標準曲線上の点を決定するステップはまた、当該変換された標本点から標準曲線の一部の開始点と終点への距離を決定し、当該開始点または当該終点のうち1つが当該変換された標本点に最も近い標準曲線上の点であるかどうかを判定するステップを含む(したがって好適には、処理回路はそのように構成される)。
【0051】
好適には、特定の変換された標本点に最も近い標準曲線上の点を決定するステップは、当該変換された標本点と当該変換された標本点に最も近い標準空間内の標準曲線上の点の間の距離を決定するステップを含み(およびしたがって好適には、処理回路はそのように構成され)、例えば、標準空間内の当該変換された標本点に最も近い標準曲線上の点を決定するステップが、所与の変換された標本点と標準曲線の間の距離を最小化するステップを含んでもよい。これにより、当該曲線を囲む当該標本点の各々に対して、当該標本点から当該標本点に対する当該曲線上の対応する最も近い点への距離を決定し、レンダリング出力を生成するとき、例えば、符号付き距離場の一部として、レンダリング出力を生成するとき世界空間において値を再度計算する必要なしに、当該曲線上の最も近い点への距離を使用することが可能となる。
【0052】
変換された標本点と標準曲線上の最も近い点の間の距離を、ルックアップ・テーブルを用いて決定してもよい。あるいは当該変換された標本点と標準曲線上の最も近い点の間の距離を、例えば、ハードウェアに焼かれた分析的計算として分析的に計算してもよい。ルックアップ・テーブルを使用する場合、これを、(例えば、入力曲線の大部分は放物線の天底に近い標準曲線の部分に対応するので、ルックアップ・テーブルに格納されたデータの量を最小化するために)標準曲線の特定の(例えば、有限の)範囲にわたって提供してもよい。分析的計算は当該範囲外で実施される。さらに、必要に応じて使用するために、複数のルックアップ・テーブルを使用して、例えば、標準曲線の異なる部分をカバーしてもよく、複数の標本点からの距離は予め決定され、格納される。これにより、これらの距離を再計算する必要を削減し、したがってリアルタイム処理を削減することが支援される。
【0053】
さらなる実施形態では、例えば、テクスチャ内に格納され、標本点から曲線上の最も近い点への距離を決定するために提供されるルックアップ・テーブルに加えて、入力曲線に対応する標準曲線(例えば、世界空間から標準空間への決定された変換も含む)を予め決定し格納してもよい。さらなる情報、例えば、(例えば、標本点をその中で定義できる入力曲線(複数可)周囲の境界ボックスを定義することによって)標本点から曲線上の最も近い点への距離および/または入力曲線または曲線の最大範囲を決定する際に使用するための式をまた、適切に必要に応じて予め決定し格納してもよい。
【0054】
例えば、入力曲線(複数可)がレンダリングすべきグリフを定義するとき、フォントのフォーマットが当該情報の一部または全部を含んでもよい。
【0055】
入力曲線が直線であるとき、好適には、必要に応じて例えば回転、変換および拡大のうち1つまたは複数を用いて、世界空間内の入力曲線が標準空間において軸、例えば、x軸上で変換される。標準曲線上の最も近い点は次いで単に、例えば、直線が変換されている軸に沿った当該変換された標本点のx座標である。入力曲線が固定長を有するとき、例えば、開始点および終点により定義されるとき、例えば、当該変換された標本点のx座標が、例えば、標準曲線の開始点と終点のx座標の間に存在する場合、当該変換された標本点に最も近い標準曲線上の点は当該変換された標本点のx座標である。例えば、当該変換された標本点のx座標が標準曲線の開始点と終点の外部に存在するとき、当該変換された標本点に最も近い標準曲線上の点は、当該変換された標本点のうち開始点または終点に近いものである。固定長を有する入力曲線に対して、標準空間内の直線セグメントは、標準空間においてx=0とx=1の間で走るように拡大できるが、これは必要ではない。
【0056】
標準曲線上の変換された標本点に最も近い点が標準空間内で決定されると、当該最も近い点を、例えば世界空間と入力曲線に対して決定された標準空間との間の変換の逆を用いて、標準空間から世界空間に変換してもよい。したがって当該方法が、複数の標本点ごとに、世界空間と標準空間の間の当該変換の逆を用いて、当該決定された最も近い点を標準空間から世界空間に変換し、それにより、入力曲線を囲む世界空間内の標本点の各々に対して、世界空間内の入力曲線上の対応する最も近い点を決定するステップを含んでもよい(および処理回路がそのように構成されてもよい)。レンダリング出力を生成するステップが、次いで、レンダリング出力を生成するとき、世界空間内の標本点に対する入力曲線上の決定された最も近い点を使用してもよい。しかし、後述するようにこれは必要でないかもしれない。なぜならば、例えば標本点から曲線への距離を決定しかつ/または当該曲線のどちらの側に標本点が存在するかを判定するための当該決定された最も近い点の使用を標準空間で同様に実施してもよいからである。
【0057】
複数の入力曲線があるとき、例えば、形状(例えば、グリフ)のアウトラインを形成するとともに、標本点ごとに対応する標準曲線上の最も近い点を、複数の入力曲線の各々に対して別々に、例えば、各入力曲線を囲む別の組の標本点に対して決定してもよく、当該決定は、入力曲線ごとに決定された標準空間内で実施され、複数の標準曲線および/または入力曲線の各々における最も近い点(標準曲線または入力曲線の開始点または終点であってもよい)が各入力曲線を囲む1組の標本点に対して決定され、標準空間内で決定された最も近い点を必要ならば世界空間に変換する(再び、必要に応じて、入力曲線ごとの1組の標本点が、入力曲線の1つまたは複数または全部を囲んでもよい)。
【0058】
複数の曲線上のこれらの最も近い点を次いで(標本点が、当該複数の入力曲線の2つ以上例えば全部に対して標準空間内で当該最も近い点を決定させたとき)互いに対して比較して、例えば、当該標本点からの距離を当該複数の曲線上の最も近い点の各々とそれぞれ比較することによって、各標本点への当該複数の曲線上の最も近い点を決定することができる。例えば標本点から最も近い点への距離を用いた当該最も近い点の間のこの比較を、世界空間内または標準空間内で実施してもよい。標準空間内で実施するとき、例えば異なる拡大が異なる入力曲線を標準空間に変換するのに必要である場合、入力曲線の標準空間への変換を使用する必要があるかもしれない。世界空間で実施されるとき、当該決定された最も近い点および/または当該標本点からそこまでの距離を、必要に応じて、それぞれ入力曲線に対して決定された逆変換を用いて標準空間から世界空間に変換すべきである。
【0059】
別の実施形態では、標本点の各々に対して、全体としての複数の曲線(またはそのサブセット)への最も近い点を、(例えば、全ての複数の入力曲線を囲む標本点の適切に選択された配列に対して)決定してもよい。これにより、複数の曲線のうち1つの上の単一の最も近い点(当該曲線のうち1つの開始点または終点であってもよい)を標本点の各々に対して決定することができる。当該最も近い点を、当該複数の入力曲線の1つまたは複数でループして各標本点に最も近い点を決定、即ち、当該複数の曲線の1つまたは複数のうちどちらに当該最も近い点が存在するかを判定することによって決定してもよい。
【0060】
再度、当該実施形態における最も近い点の決定を世界空間内または標準空間内で実施してもよく、任意の変換および/または拡大が必要に応じて実施される。曲線の終点の近くに存在する標本点に対して、特に標準空間で動作するとき、2つ以上の曲線のうちどちらに当該最も近い点が存在するかを判定するために注意を要する。例えば、2つの入力曲線が、当該曲線のうちどれに標本点が最も近いかが即座に明らかでないように、形状の隅を形成してもよい。
【0061】
上述の実施形態の両方において、標本点に対する複数の曲線上の(単一の)最も近い点が一旦決定されると、当該最も近い点が存在する標準曲線または入力曲線の識別が標本点ごとに決定(および、例えば格納)されるのが好ましい。
【0062】
標本点の各々から全体として複数の曲線上の対応する(単一の)最も近い点への距離に対して、例えば、(標準空間内または世界空間内の何れかで、必要な場合は適切な変換を用いて)複数の入力曲線の各々に対して当該距離を比較して、(世界空間または標準空間内で)同様な決定を行ってもよい。
【0063】
所与の標本点に最も近い複数の曲線上の1つまたは複数の点を、当該複数の入力曲線の全てを用いて決定してもよいが、好適には、当該最も近い点が、当該複数の入力曲線の一部のみに対して決定され、例えば、1つまたは複数の入力曲線の事前に選択されたグループが当該複数の入力曲線から決定される。1つまたは複数の入力曲線を、当該複数の入力曲線、例えば、事前に選択されたグループから、任意の適切かつ所望の方法で、例えば、複数の入力または対応する標準曲線のどちらに(例えば、変換された)標本点の各々が最も近いかおよび/または複数の入力曲線のどちらが問題の標本点が入るタイルに存在するかの粗い決定に基づいて、選択してもよい。当該決定に対して使用するために有限数の入力曲線のみを選択することで、必要な処理の削減が支援される。
【0064】
(レンダリング出力がグリフ含むとき、当該グリフのアウトラインが1つまたは複数の入力曲線により定義され、入力曲線内部の領域は当該グリフを表示するために適切に陰影を施す必要があることは理解される。当該グリフ内の任意の特定の点を囲むか、または当該グリフ外部の任意の特定の点に近い複数の入力曲線がありうるが、標本点が当該グリフの内部に入るか外部に入るかの判定を、単純に、当該複数の入力曲線のうちどれに当該最も近い点が存在するかを判定することによって行ってもよい)。
【0065】
変換された標本点と当該変換された標本点に最も近い標準曲線上の点の間の距離がまた標準空間で決定されるとき、好適には、当該距離は、当該標本点の各々に対して、標準曲線から入力曲線への逆変換を用いて、例えば、当該曲線上の最も近い点に沿って標準空間から世界空間に変換される。
【0066】
標準空間または世界空間における(標準曲線または入力曲線上の)最も近い点をそれぞれ、および利用可能なときは標準空間または世界空間内の当該標本点から当該最も近い点への距離を、レンダリング出力を生成するために使用される処理回路に直接渡してもよい(当該変換された標本点から標準曲線上の最も近い点への距離がまだ標準空間内で決定されておらず、かつ/または世界空間に変換されていないとき、好適には、世界空間内の標本点から(入力曲線上の)最も近い点への距離が、標本点ごとに、例えば入力曲線上の最も近い点と当該標本点を用いて決定される。これを、必要に応じて、標準空間または世界空間において決定してもよい)。しかし、当該方法が、標本点ごとに当該曲線上の最も近い点を格納するステップを含んでもよい(および処理回路はそのように構成される)。最も近い点ごとに、当該値を必要に応じて標準空間または世界空間に格納してもよい。
【0067】
標本点の初期集合に対する既に決定された情報、例えば、標本点から曲線上の最も近い点への距離に基づいてさらなる組の標本点に対して情報が決定されると、当該情報をまた、例えば、標本点の初期集合に対して決定された対応する情報に沿って格納するのが好ましい。
【0068】
標本点から最も近い点への距離が(必要に応じて、標準空間または世界空間において)決定されるとき、好適には、当該方法は、標本点ごとに、当該標本点から曲線上の最も近い点への距離を、例えば、標本点ごとに入力曲線上の最も近い点に沿って格納するステップを含む(および処理回路はそのように構成される)。距離ごとの格納された値が、標準空間内にあってもよいが、世界空間内にあるのが好ましい。当該標本点から当該曲線上の最も近い点への変換された距離を格納することで、(例えば、標本点ごとに格納された当該曲線上の最も近い点を用いて)当該距離を再度決定する必要性が回避される。
【0069】
当該距離の値を、任意の適切かつ所望の方法で(必要に応じて、標準空間または世界空間において)格納してもよい。当該距離値を、例えば、それが計算された生の形式で格納してもよい。しかし、1実施形態では、当該距離値が閾値より大きいとき、当該距離値は閾値またはデフォルト値に、切り詰められ、例えば設定される。当該決定された距離値を閾値の値まで格納することのみによって、記憶空間を最小化することができる。標本点が曲線に近く、当該距離の知識を有するのが重要であり、例えば、特殊なレンダリング効果を生成するために使用できるとき、実際の距離値が利用可能である。しかし、当該距離の範囲の外部で、例えば、入力曲線から遠く離れた標本点に対して、少なくとも閾値であるので、入力曲線上の最も近い点への距離の正確な値を知るのは必要でなくてもよい。
【0070】
複数の入力曲線があるとき、(例えば、最も近い点が存在する曲線の識別に沿った)全体として当該複数の曲線に対する標本点から当該曲線への距離または当該複数の入力曲線の各々に対する標本点から当該曲線への距離、あるいはまたはその代わりとして、対応する最も近い点(複数可)を必要に応じて格納してもよい。
【0071】
距離(複数可)(あるいはまたはその代わりとして最も近い点(複数可))を、レンダリング出力を生成するときに当該情報が利用可能となるように、を任意の適切かつ所望の形式で(必要に応じて標準空間および/または世界空間内に)任意の適切な所望の記憶部に格納してもよい。好適な実施形態では距離(複数可)(あるいはまたはその代わりとして最も近い点(複数可))は、標本点の各々に対して、1つまたは複数のグラフィックス・テクスチャの形式で格納される。これは、グラフィックス・テクスチャが特定の地理的位置の配列の点でデータを格納することを意図するだけでなく、テクスチャの形式のデータを格納することで、グラフィックス処理システムに一般的に取り込まれた既存のテクスチャ・マッピング・プロセスを、本発明の方式でレンダリング出力を生成するために使用できるので、特に有利かつ有益である。
【0072】
また、この形式のグラフィックス・テクスチャの生成はそれ自体新規であり有利でありうると考えられる。したがって、本発明はまた、かかるテクスチャの構築にまで拡張される。
【0073】
したがって第3の態様によれば、本発明は、入力曲線を用いてレンダリング出力を生成するとき、グラフィックス処理システムにおいて使用するためのグラフィックス・テクスチャを生成する方法を提供する。当該方法は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定するステップと、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定するステップと、
当該標本点の各々に対して、当該標本点から当該曲線上の当該決定された最も近い点への距離を決定するステップと、
テクセルの配列を含むグラフィックス・テクスチャを生成するステップであって、各テクセルは当該標本点のうち少なくとも1つに対応し、当該少なくとも1つの標本点に対して、少なくとも1つの標本点から当該曲線への当該決定された距離(複数可)に関連付けられる、ステップと、
を含む。
【0074】
第4の態様から見たとき、本発明は、入力曲線を用いてレンダリング出力を生成するとき、グラフィックス処理システムにおいて使用するためのグラフィックス・テクスチャを生成するための装置を提供する。当該装置は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定し、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定し、
当該標本点の各々に対して、当該標本点から当該曲線上の当該決定された最も近い点への距離を決定し、
テクセルの配列を含むグラフィックス・テクスチャを生成する
ように構成された処理回路を備える。各テクセルは、当該標本点のうち少なくとも1つに対応し、当該少なくとも1つの標本点に対して、少なくとも1つの標本点から当該曲線への当該決定された距離(複数可)に関連付けられる。
【0075】
当業者により理解されるように、本発明のこれらの態様および実施形態は、必要に応じて本明細書で説明した本発明の好適かつ任意の機能のうち任意の1つを含むことができ、含むことが好ましい。
【0076】
例えば、各標本点から曲線上の対応する決定された最も近い点への距離を標準空間または世界空間内で決定してもよい。当該決定された距離(複数可)を標準空間または世界空間内に格納してもよく、したがってテクスチャを標準空間または世界空間内に格納してもよい(即ち、テクセルを標準空間または世界空間内に配置してもよい)。しかし好適には、テクスチャ(およびテクセル)、およびしたがってまた好適には、決定された距離は中間空間に格納される。当該中間空間が任意の適切な所望の空間であってもよい。好適には、当該中間空間は世界空間の拡大および/または変換されたバージョンである。これを例えば、当該標本点を囲む境界ボックスのテクセルの基準点、例えば、左下隅にある、原点に設定してもよい。
【0077】
同様に、当該1つまたは複数のテクスチャ内の各テクセルは好適には、それを、そのテクセル位置に関する標準曲線上の解(複数可)に関する上述の情報を関連付ける。換言すれば各テクセルは、標準空間内の少なくとも1つの位置を表し、標準空間内のその位置に対する標準曲線上の最も近い点への距離に関する情報を格納する。例えば、好適には、当該情報が、当該最も近い点(複数可)のパラメトリック値および/または当該最も近い点(複数可)が存在する入力曲線(複数可)のアイデンティティを含んでもよい。
【0078】
当該情報がテクスチャの形式で格納される場合、当該テクスチャ(複数可)は任意の適切な所望のサイズであることができ(即ち、必要に応じて任意数のテクセルを含む)、各テクセルがそれに関連付けられた任意の所望の数のデータ成分を有してもよい。しかし、各テクセルは好適には、それを標準空間のみにおける単一の離散位置に関連する情報に関連付ける。
【0079】
当該テクスチャがまた任意の他の適切な所望の情報を格納してもよい。例えば当該テクスチャが、世界空間内の入力曲線(複数可)の定義(入力曲線(複数可)の任意の制御点を含む)、標準空間内の標準曲線(複数可)の定義(標準曲線(複数可)の任意の制御点を含む)、対応する標準曲線(複数可)への入力曲線(複数可)の変換、(例えば、決定された最も近い点、最も近い点への距離および/または入力曲線のどちらの側に標本点が存在するかの判定に関する)アンチエイリアシング情報、および当該曲線が楕円または双曲線であるとき入力曲線および/または標準曲線の離心率のうち1つまたは複数を格納してもよい。当該テクスチャがまた、例えば入力曲線をストローク曲線として描画すべきという入力曲線(複数可)に関する後処理情報、好適にはまたその幅を格納してもよい(本例では、当該曲線への距離を、ストローク曲線の幅の内部または外部に標本点が入るかどうかを判定するために使用する)。
【0080】
複数の入力曲線があるとき、好適には、当該複数の異なる入力曲線に関する情報が、例えば、上で詳述したように、例えば、同一のテクスチャに一緒に格納される。これを、例えば、入力曲線を当該テクスチャ内で空間的に分離し、次いで問題の入力曲線に対する当該テクスチャ内の適切な領域を標本化することによって行ってもよい。さらに、入力曲線(複数可)がグリフに関連するとき、好適には、当該テクスチャは、フォントを、例えば、フォント・アトラスの形式で作り出す全てのグリフに関する情報を格納する。当該複数の入力曲線に関して、これを、例えばグリフをテクスチャ内で空間的に分離し、次いで問題のグリフに対するテクスチャ内の適切な領域を標本化することにより行ってもよい。
【0081】
上述のように、本発明のこれらの態様および実施形態において、入力曲線を囲む標本化されたテクスチャ点(テクセル)が、例えば標準区間または世界空間内のテクスチャ点から当該曲線上の最も近い点への距離を示す標本化されたテクスチャ値、およびおそらく世界空間内のテクスチャ点に最も近い曲線上の点、およびテクスチャに格納できる任意の他の情報を与えるように、入力曲線を表すテクスチャが構成される。したがって、テクスチャを標本化するとき、標本化されたテクスチャ値を、曲線のどちらの側に標本化された点が配置されているかを判定するために使用してもよく、次いでこれを使用して、入力曲線を用いてレンダリング出力を生成することができる。
【0082】
必要な情報をテクスチャに格納することの追加または代替として、例えば中間ステップとして、決定された情報の一部または全部、またはレンダリング出力を生成するために使用される情報を決定するプロセスの一部として決定された情報を、グラフィックス処理システム内の任意の適切な所望の位置、例えば、上述のキャッシュに格納してもよい。これは、当該情報がリアルタイムに決定されているときに都合が良いかもしれない。別の実施形態では、当該決定された情報を、局所的に、例えば、グラフィックス処理システム内のオンチップのメモリ、例えば、画素局所記憶に格納してもよい。
【0083】
曲線上の最も近い点を用いて決定できる(例えば、テクスチャに格納できる)任意の他の適切な所望の情報、例えば、標本点から当該曲線上の最も近い点への距離に沿って最も近い点の配列が決定されると(例えば、テクスチャに格納されると)、入力曲線を用いたレンダリング出力を次いで、任意の適切かつ所望の方法で、標準空間内の変換された標本点に対する標準曲線上の決定された最も近い点を用いて生成することができる。これを、標準曲線上の当該決定された最も近い点を直接用いて、またはそこから導出された情報から、例えば、(必要に応じて、標準空間または世界空間において)世界空間内の入力曲線に変換し戻すときの当該最も近い点または標本点から曲線上の最も近い点への距離から行ってもよい。
【0084】
上述のように、曲線への最も近い点を決定し格納するステップを、レンダリング出力を生成するときの後の利用のためにオフラインで実施し例えばテクスチャに格納してもよい。好適には、当該曲線上の最も近い点はリアルタイムに決定されるが、好適には、当該曲線上の最も近い点(および/または距離のようなそれに関連する情報)もまた、それらが将来の利用できるように、例えば、同一の入力曲線がレンダリング出力を後に生成するために使用される場合に、例えばテクスチャに格納される。
【0085】
好適には、レンダリング出力は、(必要に応じて標準空間または世界空間内で)曲線上の決定された最も近い点から標本点への決定された距離を用いて生成される。したがって、好適な実施形態では、入力曲線を用いてレンダリング出力を生成するために、当該曲線上の決定された最も近い点から標本点への距離が当該曲線を囲む複数の標本点の各々に対して決定されているとき、当該方法は、
世界空間内の複数の標本点の各々に対して、
入力曲線上の当該決定された最も近い点から当該標本点への当該決定された距離を、当該標本点に対応する世界空間内の位置で標本化するステップと、
世界空間内の当該標本点に対する当該決定された距離を用いてレンダリング出力を生成するステップと
を含む(およびグラフィックス処理システムはそのように構成される処理回路を含む)。
【0086】
レンダリング出力が、任意の適切かつ所望の方法を用いて、例えば上述の当該決定された距離の利用を通じて当該決定された最も近い点を生成してもよい。好適な実施形態では、入力曲線と標本点に関連するさらなる情報(複数可)を決定してもよく、これを、当該決定された最も近い点を用いてレンダリング出力を生成するときに決定してもよく、かつ/または、当該最も近い点を、それを例えばテクスチャに格納しレンダリング出力を生成するときに使用できるように決定してもよい。
【0087】
好適な実施形態では、当該方法は、
曲線を囲む複数の標本点の各々に対して、
当該曲線上の当該決定された最も近い点を用いて、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定し、
それにより、当該曲線を囲む当該標本点の各々に対して、当該曲線のどちらの側で標本点をそのまま扱うべきであるかを判定し、
レンダリング出力を生成するときに当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定を使用するステップと、
を含む(およびグラフィックス処理システムはそのように構成される処理回路を含む)。当該曲線のどちらの側で標本点をそのまま扱うべきであるかを判定するステップを、必要に応じて、標準空間または世界空間で実施してもよい。
【0088】
したがって、それらが一旦決定される(例えば、テクスチャから標本化される)と、当該曲線上の当該決定された最も近い点の各々を使用して、当該曲線のどちらの側で当該標本点の各々をそのまま扱うべきであるかを判定するのが好ましい。当該決定を、任意の適切な所望の方式で実施してもよい。当該曲線のどちらの側に標本点が存在するかを知ることで、当該情報を用いてレンダリング出力を生成することができる。例えば、標本点が(例えば、入力曲線により少なくとも部分的に定義されるアウトラインを有する)オブジェクト内に存在する場合、当該オブジェクトの色に陰影を施してもよく、または、(例えば、入力曲線により少なくとも部分的に定義されるアウトラインを有するオブジェクトにより投射される)影の中に存在する場合、それに適切に陰影を施してもよい。
【0089】
曲線上の決定された最も近い点を用いて標本点ごとに、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップが、当該曲線に関する当該標本点のタンジェント・チェックを含んでもよい。当該標本点と当該曲線上の対応する最も近い点の間の距離が当該標本点に対して決定されているとき、入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップがまた、当該標本点から当該曲線上の最も近い点への距離を使用してもよい。好適には、標本点から当該曲線上の対応する最も近い点への距離を決定するステップはまた、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップを含む。再度、これを、標準空間または世界空間で実施してもよい。
【0090】
複数の入力曲線があるとき、全体として複数の入力曲線に対して標本点ごとに当該曲線上の最も近い点が決定され(例えば、格納される)とき、この最も近い点を使用して、入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定してもよい。あるいは、最も近い点が標本点ごとに当該複数の曲線の各々(例えば、その少なくとも一部)に対して決定されているとき、これらの最も近い点を、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するために一緒に使用してもよい。
【0091】
好適には、複数の入力曲線があるとき、当該決定された最も近い点を用いて、入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップは、当該複数の曲線(例えば、その少なくともその一部)に関連する標本点の平均タンジェント・チェックを実施するステップを含む(および好適には、処理回路はそのように構成される)。当該平均タンジェント・チェックを、当該決定された最も近い点と当該複数の曲線の全てを用いて、例えば、グリフに対して実施してもよいが、当該複数の曲線のサブセットのみを用いて当該平均タンジェント・チェックを実施することが好ましい。当該平均タンジェント・チェックを標準空間または世界空間で実施してもよい。
【0092】
好適には、当該平均タンジェント・チェックに使用される当該複数の曲線のサブセットは、例えば、当該曲線上の最も近い点(当該標本点に最も近い点であってもよい)を決定するときに使用された同一のサブセットを用いて事前に選択される。
【0093】
入力曲線が直線を含むとき、好適には、変換された最も近い点を用いて、当該曲線のどちらの側で標本点をそのまま扱うべきであるかを決定するステップは、当該標本点が標準空間内の軸の上または下にあるかどうかを判定するステップを含む(および好適には、処理回路はそのように構成される)。
【0094】
曲線上の標本点と対応する最も近い点の間の距離、および/または当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかが当該標本点の各々に対して判定されると、これらの情報の一方または両方を例えばテクスチャに格納してもよい。当該格納された情報が、標準空間および/または世界空間内のものであってもよい。したがって、これらの情報の両方が決定されると、それらを、符号付き距離場の形式で使用(例えば、格納)してもよい(例えば、当該曲線の側で、当該標本化は格納された曲線への距離の符号を判定することに関する)。上述のように、好適には、当該距離を決定するステップはまた、当該曲線のどちらの側に標本点が存在するかを判定し、その結果、標本点ごとのこれらの2つの情報を、容易に使用しかつ/または一緒に格納してもよい。
【0095】
好適には、レンダリング出力を生成するステップは、標準空間または世界空間内の標本点から曲線上の最も近い点への距離、および/または当該曲線のどちらの側で標本点をそのまま扱うべきであるかの判定を使用する(および処理回路はそのように構成される)。当該標本点から当該曲線上の最も近い点への距離が以前に決定されているとき、決定された値、例えば、テクスチャに格納された値を使用することができる。あるいは、当該標本点から当該曲線上の最も近い点への距離を、当該標本点および当該曲線上の最も近い点から決定してもよい。
【0096】
したがって、特に好適な1組の実施形態では、標準空間または世界空間内の当該標本点から当該曲線上の最も近い点への距離の両方、および当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの決定を使用して、レンダリング出力を、例えば、符号付き距離場の方式で生成する。
【0097】
レンダリング出力を、(そこからそれらが標準空間に変換される)曲線上の最も近い点を決定するために世界空間内で、例えば、当該標本点が最初に定義された空間内で生成してもよく、したがって当該最も近い点への距離が例えばテクスチャに格納される空間内で生成してもよく、またはレンダリング出力を、例えば、ディスプレイが出力される空間に対応する異なる「サーフェス」空間内で生成してもよい。この後者のケースは、テキストを例えば、観察者には平坦に向いていないサーフェスに3Dで描画するときに都合の良いかもしれない。これは仮想現実または拡張現実で有用かもしれない。
【0098】
この後者の実施形態では、曲線上の決定された最も近い点を、直接標本化してもよく、レンダリング出力を生成するために使用してもよい。しかし、好適には、入力曲線を用いてレンダリング出力を生成するために、当該曲線上の当該決定された最も近い点から標本点への距離が当該曲線を囲む複数の標本点の各々に対して決定されるとき、当該方法は好適には、
サーフェス空間内の複数の標本点の各々に対して、
入力曲線上の最も近い点から当該サーフェス空間内の当該標本点に対応する世界空間内の位置での当該標本点への当該決定された距離を標本化するステップと、
世界空間内の当該標本点に対する当該決定された距離を用いてレンダリング出力を生成するステップと
を含む(およびグラフィックス処理システムはそのように構成される処理回路を含む)。
【0099】
当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定がされ(例えば、格納され)たとき、好適には、当該情報はまた、サーフェス空間内の複数の標本点の各々に対して、当該サーフェス空間内の当該標本点に対応する世界空間内の位置で標本化され、次いでレンダリング出力、例えば必要ならば、世界空間と当該サーフェス空間の間での情報の適切な変換を用いて生成するために使用される。別の実施形態では、当該標本点から入力曲線上の最も近い点への距離および/または当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定を当該サーフェス空間内で決定してもよい。
【0100】
サーフェス空間内でレンダリング出力を生成するとき、好適には、入力曲線を用いてレンダリング出力を生成する際の最初のステップは、サーフェス空間(レンダリング出力が生成、例えば表示される空間)内の複数の標本点の各々に対して、当該曲線上の最も近い点から当該標本点に対応する世界空間内の位置での当該標本点への当該決定された距離を標本化することである(および好適には、また入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定)。このために、当該標本点に対する当該サーフェス空間と世界空間の間の適切な変換が、サーフェス空間と世界空間の間の関係に応じて、実施する必要があるかもしれない。世界空間から標準空間へのさらなる変換をまた、例えば、当該標本点に対して決定された情報を標準空間内で決定するだけでよく世界空間に変換し戻さなくてよい場合に、実施する必要があるかもしれない。
【0101】
例えば、レンダリング出力が2D画像に関連しうるように、例えば、入力曲線が少なくともオブジェクトの一部、例えば、描画すべきグリフを形成するとき、当該サーフェス空間が、世界空間に平行な平面に存在してもよい。この場合、(それらが世界空間内の対応する標本点に適切にマップする必要がありうるように、当該サーフェス空間内の標本点が世界空間内の標本点と同じ密度で提供されてもよいが)当該サーフェス空間内の複数の標本点が世界空間内の複数の標本点に直接対応してもよいように、当該サーフェス空間が世界空間と同じ(または拡大因子内の)空間であってもよい。
【0102】
別の実施形態では、レンダリング出力が3Dシーンに関連し例えば曲線が陰影を作成するために使用される際、または(例えば、仮想現実のために)書込みが曲面に表示されるとき、当該標本点の変換をサーフェス空間と世界空間の間で実施してもよい。
【0103】
言及したように、入力曲線(およびしたがってまた提供される場合はテクスチャ)を使用して、入力曲線が少なくともその一部を形成するものと異なるオブジェクトを、例えば影を用いて描画してもよい。しかし好適には、入力曲線が描画されているオブジェクトの少なくとも一部を形成し、例えば、そのアウトラインを形成する。例えば、描画すべきオブジェクトが(フォントの一部として)グリフを含んでもよい。入力曲線を、任意の曲線表現、例えば、ベクトル・グラフィックスの形式で定義してもよい。好適には、入力曲線はスケーラブル・ベクトル・グラフィックス(SVG)フォーマットで定義される。
【0104】
レンダリング出力を生成するとき使用される入力曲線に関する情報、例えば、入力曲線上の最も近い点、標本点から入力曲線上の最も近い点への距離および/または入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定が決定されると、レンダリング出力を、任意の適切な所望の方式で、例えば、世界空間内で直接またはサーフェス空間から生成してもよい。テクスチャが決定され格納されると、これを、例えば、任意の適切なグラフィックス・テクスチャマッピング・プロセスを用いて実施してもよい。
【0105】
好適な実施形態では、レンダリング出力が現れるシーン領域をカバーする1つまたは複数のプリミティブを、例えば、サーフェス空間で最初に生成し、次いで当該1つまたは複数のプリミティブによりカバーされるシーン領域上で入力曲線に対する当該決定された情報を使用することによって、例えば、テクスチャを当該1つまたは複数のプリミティブに適用し、それに応じて当該1つまたは複数のプリミティブに陰影を施すことによって、レンダリング出力を例えば表示のために生成してもよい。
【0106】
描画すべき形状が現れるシーン領域をカバー、例えば、グリフをカバーする1つまたは複数の境界ボックスまたは囲むポリゴンを定義することによって、当該1つまたは複数のプリミティブを必要に応じて生成してもよい。
【0107】
当該プリミティブを生成するとき、当該生成されたプリミティブ(複数可)が当該テクスチャの所望の(および適切な)領域のみを標本化するのを保証する必要であってもよい(これが、複数の入力曲線(または、例えば、グリフ)が同一のテクスチャで表現されるケースであってもよい)。
【0108】
当該生成されたプリミティブを、次いで、生成されるプリミティブとフラグメント、例えば、当該1つまたは複数のプリミティブの各標本点(および/またはフラグメント)に適用される入力曲線を表現するテクスチャの内部の複数の標本点に、当該プリミティブの標本点(および/またはフラグメント)の位置に対応するテクスチャ内の位置を標本化することによって、ラスタライズしてもよい(好適にはバイリニア・フィルタリングのような適切なテクスチャ・フィルタリング・プロセスを用いてテクスチャを標本化すべきである)。これが、サーフェス空間内の1つまたは複数のプリミティブをカバーする標本点の配列を生成することと、これらの標本点を、当該決定された情報を例えばテクスチャから標本化できる世界空間に変換することであってもよい。
【0109】
当該標本化された情報、例えば、テクスチャ値が次いで、例えば入力曲線のどちらの側で標本化位置(複数可)をそのまま扱うべきかおよび/または標本化位置(複数可)の入力曲線への距離の決定を用いて、対応する標本化位置(複数可)に適切に陰影を施すために使用される。当該決定に基づいて、複数の標本点は、必要に応じて例えば、グリフを含むシーンを正確に表示できるようにするための、赤、緑および青(RGB)色の値および「アルファ」透明値のような割り当てられたデータである。
【0110】
理解されるように、入力曲線上の標本点から最も近い点への距離がレンダリング出力を生成するとき利用されるために利用可能であるとき、これを使用して、例えば、入力曲線のエッジに対する閾値のみが利用可能であるときよりも複雑なレンダリング効果、例えば、回転、シェーディング等を実施できるようにしてもよい。
【0111】
本発明は、「パイプライン」配置を有するレンダラ(この場合、レンダラはレンダリング・パイプラインの形である)のような、任意の形式または構成のレンダラに適用可能である。好適な実施形態では、ハードウェア・グラフィックス・レンダリング・パイプラインに適用される。本発明の様々な関数および要素等を、必要に応じて例えば、好適には、適切な機能ユニット、処理ロジック、プロセッサ、マイクロプロセッサ配置等により実装することができる。また、1実施形態では、本発明を最小機能で、例えば、必要最低限のバージョンで、グラフィックス処理パイプラインで実装してもよいことが考慮されている。かかるシステムは、低電力装置、例えば、ウェラブル、電子書籍リーダ等での使用に適しているかもしれない。
【0112】
本発明は、即時モード・レンダリング、遅延モード・レンダリング、タイル・ベース・レンダリング等のような全ての形態のレンダリングに適用可能である。1つの好適な実施形態では、本発明は、遅延モード・レンダリングおよびタイル・ベースのレンダラで使用されそれらに対して使用される。
【0113】
以上から理解されるように、本発明は特に、包括的にではないけれども、2Dまたは3Dのグラフィックス・プロセッサおよび処理装置に適用可能であり、したがって、本明細書で説明した本発明の態様の任意の1つまたは複数に従う装置を含むかまたはそれらに従って動作する2Dまたは3Dグラフィックス・プロセッサおよび2Dまたは3Dグラフィックス処理プラットフォームに拡張される。上述の特定の関数を実行するために必要な任意のハードウェアを条件として、かかる2Dまたは3Dグラフィックス・プロセッサは、2Dまたは3Dグラフィックス・プロセッサが含む通常の機能ユニット等の任意の1つまたは複数または全てを含むことができる。好適な実施形態では当該システムは、例えば、(例えば標準空間内の)標本点に最も近い曲線上の点および/または当該標本点から当該曲線上の最も近い点への距離を決定するように特に構成された固定機能ハードウェア・ユニットを含む。
【0114】
本発明は、任意の適切な形態または構成のグラフィックス・プロセッサに適用可能である。本発明は特に、タイル・ベースのグラフィックス・プロセッサおよびグラフィックス処理システムに特に適用可能である。したがって好適な実施形態では、グラフィックス処理システムおよびグラフィックス処理パイプラインはそれぞれタイル・ベースのシステムおよびパイプラインである。
【0115】
特に好適な実施形態では、本発明の様々な機能は、描画された、例えば、フラグメント、例えば表示装置向けフレーム・バッファに書き込まれたデータを生成し出力する単一のグラフィックス処理プラットフォームで実行される。
【0116】
本発明を、適切に構成されたマイクロプロセッサ・ベースのシステムのような任意の適切なシステムで実装することができる。好適な実施形態では、本発明は、コンピュータおよび/またはマイクロプロセッサ・ベースのシステムで実装される。
【0117】
本発明の様々な機能を任意の所望の適切な方式で実行することができる。例えば、本発明の機能を必要に応じてハードウェアまたはソフトウェアで実装することができる。したがって、例えば、特に断らない限り、本発明の様々な機能要素、段階および「手段」が、所望の方式で動作するようにプログラムできる適切な専用ハードウェア要素および/またはプログラム可能ハードウェア要素のような、様々な機能等を実施するように動作可能な適切な1つまたは複数のプロセッサ、1つまたは複数のコントローラ、機能ユニット、回路、処理ロジック、マイクロプロセッサ配置等を含んでもよい。
【0118】
また、当業者により理解されるように、本発明の様々な機能、段階等を複製し、かつ/または、所与のプロセッサと並列に実行してもよいことに留意されたい。等しく、必要ならば、当該様々な処理段階が処理回路等を共有してもよい。
【0119】
上述の特定の関数を実行するのに必要な任意のハードウェアを条件として、当該データ処理システムおよびパイプラインは、データ処理パイプラインが含む通常の機能ユニット等の任意の1つまたは複数または全てを含むことができる。
【0120】
本発明の説明した態様および実施形態の全てが、必要に応じて、上述の好適な任意の機能の任意の1つまたは複数または全てを含むことができ、含むのが好ましいことも当業者には理解される。
【0121】
本発明に従う方法を、ソフトウェア、例えば、コンピュータ・プログラムを少なくとも部分的に用いて実装してもよい。したがって、さらなる態様から見たとき、本発明は、データ処理手段にインストールされたとき本明細書で説明した方法を実行するように特に適合されたコンピュータ・ソフトウェア、当該プログラム要素がデータ処理手段で実行されるときに本明細書で説明した方法を実施するためのコンピュータ・ソフトウェア・コード部分を含むコンピュータ・プログラム要素、および当該プログラムがデータ処理システムで実行されるとき本明細書で説明した方法の全てのステップを実施するように適合されたコード手段を含むコンピュータ・プログラムを提供することが分かる。当該データプロセッサが、マイクロプロセッサ・システム、プログラム可能FPGA(フィールドプログラム可能ゲートアレイ)等であってもよい。
【0122】
本発明はまた、グラフィックス・プロセッサを動作するために使用されるとき、データ処理手段を備えたレンダラまたはマイクロプロセッサ・システムが、当該データ処理手段と関連して、当該プロセッサ、レンダラまたはシステムに本発明の方法のステップを実行させるかかるソフトウェアを含むコンピュータ・ソフトウェア・キャリアに拡張される。かかるコンピュータ・ソフトウェア・キャリアは、ROMチップ、CDROMRAM、フラッシュメモリまたはディスクのような物理記憶媒体であることができ、有線上の電子信号、光信号または衛星へのような無線信号等のような信号であることができる。
【0123】
本発明の方法の全てのステップをコンピュータ・ソフトウェアにより実行する必要はなく、したがってさらに広い態様から本発明は、本明細書で説明した方法のステップの少なくとも1つを実行するためのコンピュータ・ソフトウェア、コンピュータ・ソフトウェア・キャリアにインストールされたかかるソフトウェアを提供することはさらに理解される。
【0124】
本発明をしたがって、コンピュータ・システムとともに使用するためのコンピュータ・プログラム製品として適切に具体化してもよい。かかる実装が、コンピュータ可読媒体、例えば、ディスク、CD-ROM、ROM、フラッシュメモリまたはハード・ディスクのような有形、非一時的媒体に固定された一連のコンピュータ可読命令を含んでもよい。当該実装がまた、コンピュータ・システムに、モデムまたは他のインタフェース装置を介して、有形媒体上で、または、無形に無線技術を用いて送信可能な一連のコンピュータ可読命令を含むことができる。有形媒体には光またはアナログ通信線が含まれるがこれらに限られない。無線技術には、マイクロ波、赤外線または他の送信技術が含まれるがこれらに限られない。当該一連のコンピュータ可読命令は、本明細書で前述した機能の全部または一部を具体化する。
【0125】
かかるコンピュータ可読命令を、多数のコンピュータ・アーキテクチャまたはオペレーティングシステムで使用するための幾つかのプログラミング言語で書けることは当業者には理解される。さらに、かかる命令を、現在または将来の任意のメモリ技術を用いて格納してもよく、または、現在または将来の任意の通信技術を用いて送信してもよい。当該メモリ技術には半導体、磁気、または光が含まれるがこれらに限られず、当該通信技術には光、赤外線、またはマイクロ波が含まれるがこれらに限られない。コンピュータ・プログラム製品が、コンピュータ・システムにより、例えば、システムROMまたは固定ディスク上に事前にロードされるか、またはネットワーク、例えば、インターネットまたはワールド・ワイド・ウェブ上のサーバまたは電子掲示板から分散された、添付の印刷されたまたは電子文書、例えば、収縮包装されたソフトウェアを有する取外し可能媒体として配布されうることが考慮されている。
【0126】
次に本発明の幾つかの好適な実施形態を、添付図面を参照して例としてのみ説明する。