特許第6863693号(P6863693)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーム・リミテッドの特許一覧 ▶ ジオメリックス・リミテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6863693
(24)【登録日】2021年4月5日
(45)【発行日】2021年4月21日
(54)【発明の名称】グラフィックス処理システムおよび方法
(51)【国際特許分類】
   G06T 11/20 20060101AFI20210412BHJP
   G09G 5/24 20060101ALI20210412BHJP
   G09G 5/36 20060101ALI20210412BHJP
【FI】
   G06T11/20 300
   G09G5/24 620F
   G09G5/36 520D
【請求項の数】15
【外国語出願】
【全頁数】41
(21)【出願番号】特願2016-151823(P2016-151823)
(22)【出願日】2016年8月2日
(65)【公開番号】特開2017-73120(P2017-73120A)
(43)【公開日】2017年4月13日
【審査請求日】2019年7月22日
(31)【優先権主張番号】1513675.7
(32)【優先日】2015年8月3日
(33)【優先権主張国】GB
(73)【特許権者】
【識別番号】504394342
【氏名又は名称】アーム・リミテッド
(73)【特許権者】
【識別番号】516232896
【氏名又は名称】ジオメリックス・リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クリス・ドーラン
(72)【発明者】
【氏名】リッチ・エヴァンス
(72)【発明者】
【氏名】ワシム・アッバース
(72)【発明者】
【氏名】ロベルト・ロペス・メンデス
【審査官】 山▲崎▼ 雄介
(56)【参考文献】
【文献】 特開2010−092481(JP,A)
【文献】 特開2010−092478(JP,A)
【文献】 特開2010−256986(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 11/00−11/40
G09G 5/00−5/40
(57)【特許請求の範囲】
【請求項1】
グラフィックス処理システムにおいて入力曲線を用いてレンダリング出力を生成する方法であって、
世界空間で定義された入力曲線に対して
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定するステップと、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定するステップと、
レンダリング出力を生成するとき、前記標準空間内の前記変換された標本点に対する前記標準曲線上の前記決定された最も近い点を使用するステップと、
を含む、方法。
【請求項2】
前記標準曲線上の前記最も近い点を決定するステップは、前記変換された標本点から前記標準曲線への距離を最小化するステップを含む、請求項1に記載の方法。
【請求項3】
前記標準曲線上の前記最も近い点を決定するステップは、前記変換された標本点および前記変換された標本点に最も近い前記標準空間内の前記標準曲線上の点の間の距離を決定するステップを含む、請求項1または2に記載の方法。
【請求項4】
標本点ごとに、前記標本点から前記標準曲線上の前記最も近い点への前記決定された距離を格納するステップをさらに含む、請求項に記載の方法。
【請求項5】
曲線を囲む前記複数の標本点の各々に対して、
前記曲線上の前記決定された最も近い点を用いて、前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかを判定し、
それにより、前記曲線を囲む前記標本点の各々に対して、前記曲線のどちらの側で標本点をそのまま扱うべきであるかを判定するステップと、
前記レンダリング出力を生成するときに前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかの判定を使用するステップと、
をさらに含む、請求項1から4の何れか1項に記載の方法。
【請求項6】
グラフィックス処理システムにおいて複数の入力曲線を用いてレンダリング出力を生成する方法であって、
前記入力曲線の各々に対して、請求項1から5の何れか1項に記載の方法を実施して、
それにより前記複数の標準曲線の各々を囲む前記標準空間内の変換された標本点の配列に対して、変換された標本点の前記配列に対して前記標準空間内の前記複数の標準曲線の各々の上の対応する最も近い点の配列をそれぞれ決定するステップと、
レンダリング出力を生成するとき、前記複数の標準曲線の各々の上の決定された最も近い点の前記配列を前記標準空間内の変換された標本点の前記配列に対して使用するステップと、
を含む、方法。
【請求項7】
入力曲線を用いてレンダリング出力を生成するためのグラフィックス処理システムであって、
世界空間で定義された入力曲線に対して、
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定すること
ができる処理回路と、
レンダリング出力を生成するとき、前記標準空間内の前記変換された標本点に対する前記標準曲線上の前記決定された最も近い点を使用できる処理回路と、
を備える、グラフィックス処理システム。
【請求項8】
前記標準曲線上の前記最も近い点を決定するために、前記処理回路は、前記変換された標本点から前記標準曲線への距離を最小化することができる、請求項に記載のグラフィックス処理システム。
【請求項9】
前記標準曲線上の前記最も近い点を決定するために、前記処理回路は、前記変換された標本点と前記変換された標本点に最も近い前記標準空間内の前記標準曲線上の点の間の距離を決定することができる、請求項7または8に記載のグラフィックス処理システム。
【請求項10】
前記処理回路は、標本点ごとに、前記標本点から前記標準曲線上の前記最も近い点への前記決定された距離を格納することができる、請求項に記載のグラフィックス処理システム。
【請求項11】
前記処理回路は、
曲線を囲む前記複数の標本点の各々に対して、前記曲線上の前記決定された最も近い点を用いて、前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかを判定し、
それにより、前記曲線を囲む前記標本点の各々に対して、前記曲線のどちらの側で標本点をそのまま扱うべきであるかを判定することができ、
前記処理回路は、前記レンダリング出力を生成するときに前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかの判定を使用することができる、
請求項7から10の何れか1項に記載のグラフィックス処理システム。
【請求項12】
世界空間で定義された複数の入力曲線の各々に対して、前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定して、
それにより前記複数の標準曲線の各々を囲む前記標準空間内の変換された標本点の配列に対して、変換された標本点の前記配列に対して前記標準空間内の前記複数の標準曲線の各々の上の対応する最も近い点の配列をそれぞれ決定し、
レンダリング出力を生成するとき、前記標準空間内の変換された標本点の前記配列に対して前記複数の標準曲線の各々の上の決定された最も近い点の前記配列を使用することができる
処理回路を備える、
複数の入力曲線を用いてレンダリング出力を生成するための請求項7から11の何れか1項に記載のグラフィックス処理システム。
【請求項13】
入力曲線を用いてレンダリング出力を生成するとき、グラフィックス処理システムにおいて使用するためのグラフィックス・テクスチャを生成する方法であって、
世界空間で定義された入力曲線に対して、
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定するステップと、
前記標本点の各々に対して、前記標本点から前記標準曲線上の前記決定された最も近い点への距離を決定するステップと、
テクセルの配列を含むグラフィックス・テクスチャを生成するステップであって、各テクセルは、前記標本点のうち少なくとも1つに対応し、前記少なくとも1つの標本点に対して、前記少なくとも1つの標本点から前記標準曲線への前記決定された距離に関連付けられている、ステップと、
を含む、方法。
【請求項14】
入力曲線を用いてレンダリング出力を生成するとき、グラフィックス処理システムにおいて使用するためのグラフィックス・テクスチャを生成するための装置であって、
世界空間で定義された入力曲線に対して、
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定し、
前記標本点の各々に対して、前記標本点から前記標準曲線上の前記決定された最も近い点への距離を決定し、
テクセルの配列を含むグラフィックス・テクスチャを生成する
ことができる処理回路を備え、
各テクセルは、前記標本点のうち少なくとも1つに対応し、前記少なくとも1つの標本点に対して、前記少なくとも1つの標本点から前記標準曲線への前記決定された距離に関連付けられる、
装置。
【請求項15】
データ処理システムで実行されたとき、請求項1から6の何れか1項に記載の方法を実施するコンピュータ・ソフトウェア・コードを格納した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はグラフィックス処理システムに関し、特に、グラフィックス処理システムにおける平滑曲線のような平滑形状を用いて画像を描画することに関する。
【背景技術】
【0002】
グラフィックス処理システムにおいて(そのエッジまたは境界として平滑曲線を有する)平滑曲線により定義される特定の形状において、効果的かつ正確に表示するために、平滑形状を描画できるのがますます望まれている。一般に、連続であるエッジまたは境界曲線を有し当該曲線の第1の導関数が区分連続である形状は、グラフィックス処理の観点からは平滑形状(平滑曲線により定義される形状)であると考えることができ(、本発明と本願の目的のため、平滑形状と考えられ、対応して平滑曲線と考えられ)る。グラフィックス処理におけるかかる平滑曲線の例はベジエ曲線、スプライン曲線および弧である。
【0003】
近年、コンピュータ・グラフィックスにおいてベクトル・グラフィックスを利用するのがますます一般的となっている。知られるように、当業界では、ラスタ・グラフィックスに対するベクトル・グラフィックスの1つの主要な利点は、解像度独立な画像、即ち、本質的に劣化なしに無限に拡大できる画像を提供できることである。例えば、TrueType(登録商標)のようなコンピュータ・フォントにおける独立な文字(グリフ)が一般にベクトル画像として格納される。
【0004】
ベクトル・グラフィックスは、独立に定義された幾何学的オブジェクトの利用に基づき、一般に、経路を形成するためにアンカ点で一緒に接続された1つまたは複数の線セグメント、例えば、直線または(二次(例えば、ベジエ)曲線、楕円形弧、三次(例えば、ベジエ)曲線のような)曲線により記述される。
【0005】
ベクトル・グラフィックス・オブジェクト/経路は、一般に「世界空間」と呼ばれる空間において定義され操作される。しかし、当該ベクトル・グラフィックスのオブジェクト/経路をビデオ・ディスプレイまたはプリンタに出力するために、世界空間内で定義されたオブジェクト/経路を、スクリーンに表示するかまたはプリンタに出力するために適切な形に変換する必要がある。当該変換は一般に、世界空間内で定義されたオブジェクト/経路を、一般に「サーフェス空間」と呼ばれる、当該オブジェクト/経路が参照される出力ディスプレイの視点(ジオメトリ)に対応する別の空間に投影することを含む。世界空間とサーフェス空間の間の変換は一般に「世界サーフェス変換」と呼ばれる。
【0006】
当該ベクトル・グラフィックスのオブジェクト/経路がサーフェス空間表現に変換されると、それらが次いで描画される。これが、当該オブジェクトおよび/または経路の事前に計算された表現を使用してもよい。
【0007】
例えばサーフェス空間において、オブジェクトまたは経路を描画するために使用できる事前に計算された表現にベクトル・グラフィックス・オブジェクト/経路を変換するための1つの方法は、テクスチャに格納された符号付き距離場を使用することである。次いで当該距離場を、当該オブジェクトを描画するときに標本化することができる。符号付き距離場は、点、例えばテクセルの配列を含み、それに対して、オブジェクトの経路またはエッジへの最も近い距離が点ごとに格納され、距離の符号は、当該点が描画すべきオブジェクトの内部にあるか外部にあるかを示す。したがって、符号付き距離場を標本化することで、標本点が描画すべきオブジェクトの内部にあるか外部にあるかを判定する。
【0008】
符号付き距離場は、かかるオブジェクト、例えば、フォントのグリフの描画を支援し、アンチエイリアシングのような技術を使用できるようにする。しかし、例えば、スキャンライン・ラスタライゼーションを用いたベクトル・グラフィックスのオブジェクト/経路からの符号付き距離場の計算は複雑である。また、オブジェクトまたは経路を拡大する必要がある場合には、符号付き距離場が制限された解像度で格納されているにすぎない可能性があるので、当該符号付き距離場を新たな解像度で再計算する必要もありうる。さらに、より複雑なオブジェクト、例えば、複数の曲線セグメントを含みうるフォントのグリフを描画するとき、符号付き距離の利用は、符号付き距離場の計算に使用される方法におけるアーチファクトに起因して、例えば、鋭角な隅の平滑化のように、描画されたオブジェクトの細部の損失をもたらすことが分かっている。したがって、これをリアルタイムに計算するのは計算的に高価であるか、または、事前に計算した符号付き距離場をオフラインで格納するには大量の空間が必要である。これは、かかるオブジェクト/経路の描画に遅延を導入するおそれがあり、例えばダイナミックウェブページに対して、リアルタイムに実施するのが望ましい可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0009】
したがって出願人は、平滑曲線により定義された平滑曲線および形状を描画するための改善された技術およびシステムに対して余地が残っていると思料する。
【課題を解決するための手段】
【0010】
第1の態様から見たとき、本発明は、グラフィックス処理システム内の入力曲線を用いてレンダリング出力を生成する方法を提供する。当該方法は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定するステップと、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定するステップと、
レンダリング出力を生成するとき、標準空間内の当該変換された標本点に対する標準曲線上の当該決定された最も近い点を使用するステップと
を含む。
【0011】
第2の態様から見たとき、本発明は入力曲線を用いてレンダリング出力を生成するためのグラフィックス処理システムを提供する。グラフィックス処理システムは、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定し、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定する
ように構成された処理回路と、
レンダリング出力を生成するとき、標準空間内の当該変換された標本点に対する標準曲線上の当該決定された最も近い点を使用するように構成された処理回路と、
を備える。
【0012】
本発明では、レンダリング出力は、まず、「世界空間」(平坦でありしたがって二次元のみを有してもよく、または3次元空間であってもよい)内で定義された入力曲線を「標準空間」内で定義されている対応する予め定義された「標準」曲線にマッピングすることによって、入力曲線を用いて生成される。次いで、標準空間内の位置が、入力曲線を囲む世界空間内の対応する位置から変換され、標本化位置の各々に最も近い標準曲線上の点を決定するために標本化(テスト)される。これらの最も近い点はレンダリング出力を生成するために使用される。当該情報を使用して、入力曲線が少なくともそれらのアウトラインの一部を形成する形状、例えば、フォントに対するグリフを描画するか、または、入力曲線が少なくともそれらのアウトラインの一部を形成するオブジェクトに基づいて照明または影を描画することができる。
【0013】
しかし、出願人は、本明細書では「標準曲線」と称する、予め定義された、単一曲線または基本曲線の少なくとも一部に対して例えば回転、変換および均一な拡大のみを用いて、特定の曲線ファミリ内の全ての曲線をを変換できることを認識している。
【0014】
これによりしたがって、単一の曲線、即ち、標準曲線に関する情報を、レンダリング出力を生成する際に使用するためのグラフィックス処理システムにより使用される1つまたは複数の入力曲線に関する情報を決定するために使用することができる。換言すれば、例えば、グラフィックス処理システムにより使用される描画すべき各独立な入力曲線と関連してデータを導出または格納しなければならないのではなく、標準曲線に関するデータを導出または格納するだけでよい。当該データを次いで使用して、「標準曲線」が表す入力曲線のファミリ(集合)に属する独立な入力曲線の各々を用いてレンダリング出力を生成することができる。
【0015】
したがって、本発明は、1つまたは複数の入力曲線を用いてレンダリング出力を生成するためのより効率的な機構を提供できるだけでなく、それを行うための特に都合の良い機構を提供する。例えば、標準空間内の標準曲線が定義されると、単純に単一の座標、例えば、x座標により、当該曲線上の点を参照することができ(したがってこれらを計算で使用することができ)るかもしれない。したがって、標準曲線を用いて標本点に最も近い当該曲線上の点を決定し、次いで当該点を用いて当該曲線上の最も近い点への距離(符号付き距離場における情報の一部)を決定でき、例えば、ベクトル・グラフィックスを用いて定義された入力曲線の数学的表現を保持することができる。これは、入力曲線を用いたレンダリング出力の生成の速度と精度を増大させる情報を決定するより単純かつ正確な方法である。これは、スキャンライン・ラスタライゼーションを用いて評価される符号付き距離場を用いた技術と比較され、当該技術は符号付き距離場を計算するときに情報の損失に繋がり、したがって、レンダリング出力における細部の損失に繋がる。
【0016】
かかる入力曲線を用いてレンダリング出力を生成するためのより単純なプロセスを提供することは、当該プロセスを実行する装置の処理と電力負荷の削減を支援し、バッテリで動作し多機能処理を実装できないより単純な装置、例えば、モバイルおよびウェラブル装置で使用することを可能としうる。あるいはプロセスの増大した効率性により、以前の技術と比較して装置に関する処理および電力負荷の関連する増大なしに、より洗練されたレンダリング機能を実施することができ、または、必要な情報(例えば、変換された標本点の各々に最も近い標準曲線上の点)を必要に応じてリアルタイムで(再)計算することができる。
【0017】
かかる入力曲線を用いるとき、特に、フォントを描画するときのレンダリング出力の生成について、より単純かつより正確なプロセス(例えば、変換された標本点最も近い標準曲線上の点の分析的計算)を用いることにより、特にフォントを再計算する必要がありうるようにテキストが拡大されるとき、当該フォントをディスプレイにより魅力的に提示することができる。
【0018】
本発明のプロセスにより使用され、例えば本発明のプロセスに入力される世界空間内で定義された入力曲線が、例えば、入力曲線を用いてレンダリング出力を生成することを要求するアプリケーションにより最初に定義された入力曲線であってもよい。しかし、入力曲線が、世界空間内で定義された別の曲線から導出される曲線であることもまた可能である。例えば、入力曲線を、別の曲線または初期曲線を例えばそれが本発明によりその中で受信される別の空間から世界空間に変換することによって、導出されているかもしれないことも考慮されている。
【0019】
入力曲線を、任意の適切かつ所望の方法でグラフィックス処理システムに入力してもよい。例えば、入力曲線を、グラフィックス処理システムに(予め)格納して、その格納された位置から読み出してもよく、または、入力曲線をグラフィックス処理システム自体により決定してもよい。別の実施形態では、入力曲線を、例えば入力曲線を用いてレンダリング出力を生成することを要求するアプリケーションにより積極的に入力してもよい。好適な実施形態では、当該方法は、入力曲線を受信するステップを含む(および、処理回路がそのように構成される)。
【0020】
例えば入力曲線を用いて描画される形状を含むレンダリング出力を、例えば、その長さの全体(またはレンダリング出力を生成するために使用されるその長さの少なくとも一部)に対して単一の定義(例えば、数式)を有する単一の曲線のみを用いて生成してもよい。入力曲線が上述の性質を有する「標準曲線」を導出できる形式を有するのが好ましい。したがって、グラフィックス処理システムにより使用される入力曲線が、適切な関連する標準曲線を有しうる曲線のファミリからの任意の曲線であってもよい。
【0021】
この形式の関連する標準曲線を有しうる曲線の1つのファミリは二次曲線である。この場合、標準曲線は、基本二次曲線、即ち、y=xの形の曲線であることができる。したがって、特に好適な実施形態では、グラフィックス処理システムにより受信される世界空間内の入力曲線は二次曲線である。
【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】
次に本発明の幾つかの好適な実施形態を、添付図面を参照して例としてのみ説明する。
【図面の簡単な説明】
【0127】
図1】本発明の1実施形態に従うテキスト文字列を描画するためのワークフローの概要を示す図である。
図2】本発明の1実施形態における当該プロセスの一部として、一連の入力曲線が定義されるエッジを有する描画用のグリフを示す図である。
図3】本発明の1実施形態におけるプロセスの一部として、入力曲線を世界空間から標準空間への変換を示す図である。
図4(i)】本発明の1実施形態におけるプロセスの一部として、入力曲線を世界空間から標準空間に変換するステップを示す図である。
図4(ii)】本発明の1実施形態におけるプロセスの一部として、入力曲線を世界空間から標準空間に変換するステップを示す図である。
図4(iii)】本発明の1実施形態におけるプロセスの一部として、入力曲線を世界空間から標準空間に変換するステップを示す図である。
図5】本発明の1実施形態におけるプロセスの一部として、標準曲線上の標本点に最も近い点を決定するステップを示す図である。
図6】本発明の1実施形態における、生成された3つのグリフのための符号付き距離場のグラフィカル表現を示す図である。
図7】本発明の1実施形態とともに使用するためのテクスチャ・アトラスとしてグラフィカルに表されたフォント内のグリフの各々に対する符号付き距離場のグラフィカル表現を示す図である。
図8】本発明の1実施形態に従うグリフを描画するためのプロセスのステップを実施するための流れ図である。
【発明を実施するための形態】
【0128】
上述のように、本発明の基本的な前提は、入力曲線を用いてレンダリング出力することであり、入力曲線上の最も近い点が、描画の際に使用するために決定されている様々な標本点の各々に対して決定され、例えば、入力曲線のどちらの側で標本点をそのまま扱うべきであるかを決定する。入力曲線が、描画すべきオブジェクトの少なくとも一部(例えば、そのエッジの少なくとも一部)を形成してもよく、または、例えば、シェーディングのためにレンダリング出力の一部として他の何らかの方法で使用される形状または曲線の少なくとも一部を形成してもよい。
【0129】
本発明の好適な実施形態を次にグラフィックス処理システムを用いて、グリフ(フォントの一部としての文字のグラフィカル表現)の形でのテキストを描画する文脈で説明する。当該グリフのエッジは、1つまたは複数の入力曲線により定義される。当該実施形態では、符号付き距離場を用いて当該グリフを表すテクスチャが生成され、次いで、例えば、当該グリフのエッジを形成する曲線のどちらの側に標本点が存在するかを判定するために当該符号付き距離場を用いて、当該グリフを描画するためにテクスチャが標本化される。
【0130】
図1は、本発明の1実施形態に従うテキスト文字列を描画するためのワークフローの概要を示す。最初のステップ(ステップ1)は、テキスト文字列、例えば、単語「reinforced」を含むレンダリング出力を生成するとき、グリフ(単語内の文字)ごとに1つ、1組の長方形の境界ボックスを定義することであり、当該ボックスはグリフごとにテクスチャを定義するために2つの三角形に分割される。当該境界ボックスがフォント・ファイルにより提供されてもよく、即ち、当該ボックスはグラフィックス処理システムに入力され、各ボックスの間の間隔は単語内の文字の各々の間の間隔を決定する。次に説明するように、独立なグリフごとの符号付き距離場を次いで計算することができる(ステップ2、図1)。
【0131】
図2は、一連の入力曲線により定義されるエッジを有するグリフ1を示す。
【0132】
表示するためのグリフ1を描画するために、グリフ1、または一般に、グリフ1を定義する情報が最初にグラフィックス処理システムに入力される。
【0133】
図2に示すように、文字「O」の(例えば、ベクトル・グラフィックス・オブジェクトの形の)グリフ1が、曲線の開始制御点および終了制御点の位置および中間制御点の位置により、2D世界空間内の二次ベジエ曲線2、3、4、5、6、7、8、9のシーケンスとして定義される。グリフの外部は4つの二次ベジエ曲線2、3、4、5により定義され、当該グリフの内部はさらに4つの二次ベジエ曲線6、7、8、9により定義される。以下でさらに詳細に説明するように、グリフ1が描画されると、内部曲線と外部曲線2、3、4、5、6、7、8、9の間の領域は、グリフ1を表示するために、適切に陰影が付されている。
【0134】
レンダリング・プロセス中に、最初に、グリフ1を構成する構成二次ベジエ曲線2、3、4、5、6、7、8、9の各々を別々に処理する。二次ベジエ曲線2、3、4、5、6、7、8、9の各々に対して、当該曲線を囲む複数の標本点の各々に最も近い当該曲線上のの(標準空間における)点を決定できるように、世界空間内の曲線が標準空間内の標準曲線の対応する部分にマップされる。(標準空間内の当該最も近い点を決定することで、したがって当該曲線に対する正確に計算された符号付き距離場を決定できる正確な計算を実施することができる。)
【0135】
世界空間内の最初に定義された入力曲線を標準空間内の標準曲線に変換するプロセスを次に説明する。
【0136】
図3は、世界空間11内の入力ベジエ曲線10に対する標準空間13内の標準曲線12の対応する部分10’’への例示的な変換TUCを示す。世界空間11内の入力ベジエ曲線10は、世界空間内の当該曲線を定義する開始制御点b、終了制御点bおよび中間制御点b¬を有する。当該曲線は、対応する開始点b’と対応する終点b’を有する標準空間13内の標準曲線12の部分10’’にマップされる。
【0137】
上述のように予め定義された標準曲線12は、曲線のファミリ内の全ての曲線を回転、変換および/または均一な拡大のみを用いてその上に(または少なくともその一部の上に)変換できる単一のまたは基本曲線であり、標準空間13内で定義される。例えば、世界空間11内で定義される入力ベジエ曲線10が(3つの制御点により定義される)二次曲線である本実施形態では、標準曲線12は曲線y=xである。
【0138】
理解されるように、本実施形態を実装するために、世界標準変換(TUC)、即ち、世界空間11内で定義される入力ベジエ曲線10を標準空間13内の標準曲線12の対応する部分10’’にマップする変換を決定する必要がある。
【0139】
任意の所与の二次ベジエ曲線に対して本実施形態において世界空間11内の入力ベジエ曲線10から標準空間13内の標準曲線12への変換が導出される方式を図4に示す。
【0140】
2D空間の投影表現において、2D空間a内の点を、成分(a、a、1)を有する3D内のベクトルAとして表す。当該表現は均一であり、したがって、AおよびλAは同一の点を表す。
【0141】
一般的な二次曲線は、
【0142】
【数1】
【0143】
の形の式により定義される。
【0144】
これは成分式
【0145】
【数2】
【0146】
と等価である。
【0147】
一般的な二次ベジエ曲線は、
【0148】
【数3】
【0149】
を満たす係数により当該式から定義される。
【0150】
二次ベジエ曲線に対する入力が2D内の3つの制御点、即ち、b、bおよびbであり、bとbは2つの終点であり、bは中間点であると仮定する。これから、標準曲線のセグメントへの世界標準変換y=xを決定する必要がある。
【0151】
上述のように、当該世界標準変換は、(行列Mにより定義される)回転、(行列Mにより定義される)変換および/または均一な拡大(行列M=kIにより定義され、kは定数でありdIは単位行列である)のみから成る。
【0152】
最初の段階は、成分式の係数(a、b、c、f、g、h)を3つの制御点b、b、b。から発見することである。次いでこれらの係数を使用して、入力ベジエ曲線を標準曲線上に持ってくるのに必要な回転、変換および拡大を計算することができる。
【0153】
【数4】
【0154】
であり、上記係数は、
【0155】
【数5】
【0156】
で与えられる。次に、世界空間内の点を標準空間に、組み合わされた回転、変換および拡大を介して変換する世界標準変換(TUC)、即ち、3×3の行列を発見する必要がある。当該変換の効果は、ベジエ曲線の終点を標準曲線y=xにマップすることである。
【0157】
本実施形態における世界標準変換(TUC)を決定するためのプロセスの第1の段階は、当該変換の回転成分(回転行列M)を決定することである。必要な回転は、世界空間11内の入力二次ベジエ曲線10の対称軸21を標準空間13内の標準曲線12の対称軸23に平行になるように回転する必要があるとして決定される。図4(i)を参照。
【0158】
当該回転は、入力ベジエ曲線10の二次形式を操作して回転行列Mを計算することによって決定される。先ず、回転行列M
【0159】
【数6】
【0160】
として定義する。ここで、
【0161】
【数7】
【0162】
であり、シグナム関数は、
【0163】
【数8】
【0164】
として定義される。
【0165】
【数9】
【0166】
という条件が入力二次ベジエ曲線10上の1組の点に対して保証され、その結果、cosθとsinθに関する式内の平方根の引数は両方とも正であろう。(a=b=0の場合、これは直線であり、以下で説明するように前もって識別され別々に扱われるべきである)。fとgに対する変換された値をしたがって回転
【0167】
【数10】
【0168】
を介して決定することができる。
【0169】
世界標準変換の回転成分が決定されると、変換成分(即ち、回転行列M)が次に決定される。当該プロセスを図4(ii)に示す。
【0170】
必要な変換が、回転された入力曲線14の天底20を標準空間13内の原点(0、0)に、即ち、標準曲線12の対応する天底22で変換する必要があるとして決定される。当該変換は再度、入力ベジエ曲線10の二次形式を操作して変換行列Mを計算することによって決定される。先ず、回転行列M
【0171】
【数11】
【0172】
として定義される。ここで、
【0173】
【数12】
【0174】
である。最後に、世界標準変換の均一な拡大成分(即ち、拡大行列M)を決定する。これを図4(iii)に示す。
【0175】
理解されるように、世界空間11内の入力曲線10は、一度標準空間13、即ち、図4(iii)内の曲線16に適切に回転され変換されており、y=x/|λ|の形である。1/|λ|は決定すべき拡大因子である。再度、当該変換は、拡大行列Mを計算するために入力ベジエ曲線10の二次形式を操作することによって決定される。第1の拡大行列Mは、
【0176】
【数13】
【0177】
により定義される。ここで、
【0178】
【数14】
【0179】
である。世界空間11内で定義された入力ベジエ曲線10を標準空間13内の標準曲線12の対応する部分10’’にマップする必要がある世界標準変換、即ち、TUC=M=1/|λ|Mが計算されると、標準曲線12の実際の部分10’’を当該決定された変換を入力ベジエ曲線10のパラメータに適用することによって決定することができる。当該プロセスを図3に示す。
【0180】
図3に示すように、世界空間11内で定義され、制御点b、b、bを有する入力ベジエ曲線10が、世界標準変換TUCを用いて標準曲線12の対応する部分10’’にマップされる。
【0181】
標準曲線セグメント10’’の開始点と終点b’、b’は、標準空間13内の入力ベジエ曲線10のパラメトリック(x)範囲を定義する。したがって、図3に示すように、標準曲線セグメント10’’は、標準空間13内のパラメトリック位置xおよびxの間で延伸するパラメトリック範囲を有する。
【0182】
本実施形態では、世界空間11内の1組の標本点が、(例えば、図2に示すように)グリフ1を形成する入力ベジエ曲線2、3、4、5、6、7、8、9の各々に対して定義される。任意の所与の入力ベジエ曲線(例えば、図3に示すように世界空間11内で定義された入力ベジエ曲線10)に対して、当該入力ベジエ曲線上の最も近い点が、当該入力ベジエ曲線を囲む標本点の各々に対して決定される。
【0183】
世界空間11内の所与の標本点に対して、入力ベジエ曲線10上の最も近い点は、先ず世界空間11内の入力ベジエ曲線10を標準空間13内の標準曲線12の部分10’’にマップするための以前に決定した世界標準変換TUCを使用して、世界空間内の標本点を標準空間13内の対応する位置に変換することによって決定される。世界空間11内の標本点に対応する標準空間13内の変換された標本点に最も近い、標準曲線12の部分10’’上の点を、当該変換された標本点から標準曲線への距離を最小化することにより決定する。
【0184】
座標(u、v)を用いた変換された標本点に対して、当該点から当該曲線への距離を、標準空間内のx座標のみで書くことができる。即ち、
【0185】
【数15】
【0186】
である。Dを最小化するのはより簡単であり、これは、
【0187】
【数16】
【0188】
を与える。ここで、
【0189】
【数17】
【0190】
である。この三次方程式は既に標準形であり、したがって閉じた形の解を直ちに書き下すことができる。aとbの関係に応じて、考えるべき3つのケースがある。
【0191】
【数18】
【0192】
であるとき、1つの実根のみが
【0193】
【数19】
【0194】
により定義される。引数が実数であることが保証され、立方根が正の引数と負の引数の両方に対して定義されている(負の数の立方根は負である)ので、ここでの立方根は良く定義されている。
【0195】
【数20】
【0196】
であるとき、3つの根のうち2つが一致する縮退のケースである。しかし、大域的最小点が求められているので、どの変曲点にも関心がなく、xに対する前述の式は依然として成り立ち、一つの最小点が存在する(1つの解と2つの解を格納する必要性の間の遷移曲線は、
【0197】
【数21】
【0198】
である。この曲線は放物線の焦点外にある)。
【0199】
【数22】
【0200】
であるとき、これは3つの相違なる実根を有する三次方程式に対応し、
【0201】
【数23】
【0202】
により与えられる。ここで、
【0203】
【数24】
【0204】
である。中間の根(φに依存)は、大域的最大値であり、無視することができる。これらのうち外の2つの根は極小値に対応し、関心がある。絶対最小値(当該2つの極小値のうち1つ)が、変換された標本点に最も近い標準曲線12の部分10’’上の点であることは必要でなくてもよい。なぜならそれが標準曲線12の部分10’’の外部に入りうるからである。当該外部の根の一方または両方が標準曲線12の部分10’’の内部に入るかどうかを見るためのチェックが実施され、当該変換された標本点から当該2つの外部の根に対応する標準曲線12の部分10’’上の点への距離を必要ならば比較して、当該変換された標本点に最も近い標準曲線12の部分10’’上の点を決定できるようにする。
【0205】
この当該変換された標本点に最も近い標準曲線12の部分10’’上の点が決定されると、標準空間13内の当該変換された標本点の位置から当該点への距離が計算される(上述のようにこれが当該最も近い点の決定の一部として既に計算されていない場合)。
【0206】
当該変換された標本点から当該曲線上の最も近い点への距離を、任意の適切な所望の方法で決定してもよい。当該変換された標本点のx座標とy座標が既知であり、当該最も近い点のx値が決定されているので、y=x(標準曲線)が当該最も近い点のy座標を与える。次いで当該距離がこれらの2つの組の座標から容易に決定される。
【0207】
当該距離を計算する1つの方法は、標準曲線12の部分10’’の開始点b’を原点に変換し、次いで正のx軸に配置されるように終点b’を回転することである。
【0208】
座標(x、y)を有する開始点b’と座標(x、y)を有する終点b’をもつ標準曲線12の部分10’’に対して、第1の変換行列
【0209】
【数25】
【0210】
定義され、回転行列
【0211】
【数26】
【0212】
が定義され、ここで、
【0213】
【数27】
【0214】
である。これは、終点を(d、0)に回転する。当該点を点(1、0)に拡大できるが、そうする実益はない。
【0215】
したがって、当該変換行列をR=RθTと定義でき、変換された点の座標は(u、v)として表される。次いで当該曲線上の最も近い点への距離sが
【0216】
【数28】
【0217】
により与えられる。vの符号も当該線のどちらの側に標本点が存在するかを決定するので、これを符号付き距離場の符号として使用できることに留意されたい。
【0218】
次いで、当該距離を当該標本点から標準曲線の一部の各端への距離と比較する。これらの3つの点のうち、変換された標本点への距離が最小である標準曲線12の部分10’’上の点を、当該変換された標本点に最も近い標準曲線12上の点と決定する。
【0219】
図5は、標準空間13内で変換された標本点Pに最も近いとして決定されている標準曲線12の部分10’’上の点pを示す。当該変換された標本点Pに対して、標準曲線上の最も近い点pが、変換された標本点Pから標準曲線12への距離を最小化するものとして決定されている。即ち、したがって、標準曲線12上の点pが変換された標本点Pに最も近い点であると判定する。これは、この標本点および標準曲線の一部に対して、変換された標本点pと当該最も近い点pの間の距離dが当該変換された標本点pから標準曲線の一部の終点への距離の両方より短いからである。
【0220】
また図5に示すように、変換された標本点Pから標準曲線12の部分10’’上の最も近い点pへの距離を、最も近い点pを発見するための距離を最小化するプロセスから既に決定されていない場合には、単純にこれらの点から決定することができる。
【0221】
入力曲線が直線であるとき、世界空間内で定義された曲線は、回転と変換を含む世界標準変換を用いて標準空間内のx軸上に変換される(入力曲線はまた、固定長であるとき、標準空間のx軸上の0と1の間に配置されるように拡大されてもよいが、これは必要ではない)。次いで、標準曲線上の最も近い点は単純に標準空間内の変換された標本点のx座標である。入力曲線が開始点と終点を有する固定長であるとき、当該変換された標本点のx座標が標準曲線の開始点と終点のx座標の間に配置される場合は、当該変換された標本点に最も近い標準曲線上の点は当該変換された標本点のx座標である。当該変換された標本点のx座標が標準曲線の開始点と終点の外部に存在するとき、当該変換された標本点に最も近い標準曲線上の点は、当該開始点または当該終点のうち、当該変換された標本点に近い方である。
【0222】
一旦決定されると、(標準空間13内の変換された標本点Pから標準曲線12上の最も近い点pへの)距離d、および必要ならば標準曲線12の部分10’’上の最も近い点pが次いで、世界空間11から標準空間13への変換TUCの逆を用いて、世界空間11に変換される。即ち、世界空間11内の標本点に最も近い入力ベジエ曲線10上の点とこれらの点の間の距離が与えられる。標本点に対する入力ベジエ曲線10上の最も近い点およびこれらの点の間の距離を決定するプロセスは、世界空間11内の入力ベジエ曲線10を囲む配列内の標本点の各々に対して繰り返される。
【0223】
さらなる組の標本点に対する入力ベジエ曲線10への距離をまた、標準空間への変換および標準空間における判定の必要なしに、近傍の標本点に対する既に決定された距離を用いて決定してもよい。
【0224】
これが、入力ベジエ曲線10上の最も近い点およびそこへの距離が世界空間11内の標本点の各々に対して決定されるように、標本点の各々に対して完了すると、入力ベジエ曲線10を囲む配列内で、当該プロセスはグリフ1を形成する入力ベジエ曲線2、3、4、5、6、7、8、9ごとに繰り返される。
【0225】
グリフ1を形成する複数の入力ベジエ曲線2、3、4、5、6、7、8、9に対応する標本点のこれらの複数の配列を用いて、グリフ1全体を囲む標本点の配列内の標本点ごとに、全体として複数の入力ベジエ曲線2、3、4、5、6、7、8、9上の最も近い点、およびまた当該夫々の最も近い点と標本点の間の距離を決定することができる。所与の標本点に対して、複数の入力ベジエ曲線2、3、4、5、6、7、8、9上の最も近い点およびそこへの距離は、単に、決定された独立な入力ベジエ曲線2、3、4、5、6、7、8、9を囲む標本点の配列の各々における対応する標本点に関する距離を比較し、最小距離を選択することによって、決定される。
【0226】
(所与の標本点に最も近い複数の入力ベジエ曲線2、3、4、5、6、7、8、9上の点を、グリフ1を形成する複数の入力ベジエ曲線2、3、4、5、6、7、8、9の全部のうち一部を使用することのみによって、例えば、互いから明らかに遠く離れている入力ベジエ曲線2、3、4、5、6、7、8、9のうち1つまたは複数を破棄することによって、決定してもよい。例えば、図2に示すグリフ1に対して、グリフ1の右側に存在する標本点に対して、グリフ1の左の入力曲線3、9を破棄することができる)。
【0227】
世界空間11内の各標本点が存在する入力ベジエ曲線10の側が、例えば、当該標本点から当該曲線上の最も近い点への距離を決定することの一部としてまだ決定されていない場合、これは標準空間11内の当該標本点の平均タンジェント・チェックを複数の入力ベジエ曲線2、3、4、5、6、7、8、9に対応する標準曲線に対して実施することによって決定される。再度、標本点に対する当該平均タンジェント・チェックを実施するための複数の入力ベジエ曲線2、3、4、5、6、7、8、9が、グリフ1を形成する複数の入力ベジエ曲線2、3、4、5、6、7、8、9の全部のうち一部であってもよく、これらが、当該標本点に最も近い複数の入力ベジエ曲線2、3、4、5、6、7、8、9上の点を決定するために使用されるサブセットに対応してもよい。
【0228】
世界空間11内の各標本点が存在する入力ベジエ曲線10の側は、当該標本点と当該標本点に対する入力ベジエ曲線10上の当該決定された最も近い点との間の距離とともに、当該距離に符号を与えるために使用される。即ち、グリフ内部に存在する標本点に対応する距離には負の符号が与えられ、当該グリフの外部に存在する標本点に対応する距離には正の符号が与えられる。
【0229】
当該符号付き距離は、当該標本点への入力ベジエ曲線10上の当該決定された最も近い点および当該決定された最も近い点が存在する(グリフ1を形成する複数の入力ベジエ曲線2、3、4、5、6、7、8、9の)入力ベジエ曲線の識別とともに、グリフ1を囲む標本点ごとにテクスチャ内に格納される。即ち、当該情報が格納されるテクスチャ内の各テクセルが標本点に対応する。したがって、後述するように、当該テクスチャはグリフ1を符号付き距離場として格納し、次いで、これを使用してグリフ1を描画することができる。
【0230】
テクセルごとにテクスチャ内に格納される情報(符号付き距離、入力ベジエ曲線上の決定された最も近い点、および決定された最も近い点が存在する入力ベジエ曲線の識別)は、特定のフォント内のグリフの各々に対して上述のように決定され、当該グリフの各々に対する情報(即ち、符号付き距離場を含む)はテクスチャに格納される。
【0231】
例示的な符号付き距離場のグラフィカル表現が、文字「c」26、「2」27、および「、」28を表すグリフに関して図6に示されている。グリフ26、27、28内部の点が、グリフ26、27、28のエッジを定義する入力ベジエ曲線上の夫々の最も近い点に対する(特定の閾値より大きい)正の距離値とともに、黒で示されている。グリフ26、27、28の外部の点が、グリフ26、27、28のエッジを定義する曲線上の当該夫々の最も近い点に対する(特定の閾値より小さい)負の距離値とともに、白で示されている。グリフ26、27、28のエッジを定義する入力ベジエ曲線に近い(正の閾値と負の閾値の間の)点は、当該曲線上の最も近い点からのそれらの距離に応じて、灰色の陰影として示されている。
【0232】
符号付き距離値に関する閾値は、当該値がテクスチャに格納されるとき、その値が特定の値より高いかまたは低い場合には、当該適切な(負または正の)閾値のみ(または他の何らかのデフォルト値)が格納されるというものである。これは、グリフ26、27、28のエッジを定義する曲線から特定の距離よりも遠く離れている点を考慮するとき、それがレンダリング出力を生成するときを考慮しないので、正確な距離は問題ではないからである。当該関心領域、および標本点からグリフ26、27、28のエッジを定義する入力曲線上の当該最も近い点への正確な距離を使用して例えば特定のレンダリング効果を生成してもよい場所は、グリフ26、27、28のエッジの近くに存在する点に対するものである。したがって、正および負の閾値の間のこれらの距離値に対して、当該符号付き距離場に対して計算された値は閾値を適用することなく格納される。
【0233】
テクスチャに格納された情報を、フォントを形成するグリフ(文字)、例えば、文字、数字および句読点記号の各々に対して計算してもよい。図7は、テクスチャ・アトラス29としてグラフィカルに表現されたフォント内のグリフの各々に対する符号付き距離場のグラフィカル表現を示す。当該グリフの各々に対するテクスチャは、特定のグリフを描画する必要があるとき、テクスチャ・アトラス29の適切な領域が標本化されるように、テクスチャ・アトラス29内で空間的に分離されている。当該例では、テクスチャ・アトラス29はテクスチャのメモリを節約するようにきつく詰められており、したがって各グリフは異なるサイズを有する。
【0234】
グリフを描画するために(または図7に示すように完全なテクスチャ・アトラスを生成するために)符号付き距離場が生成されテクスチャに格納されると、必要なグリフは、各グリフの境界ボックス内の標本点の配列で当該テクスチャを標本化するか、または、当該符号付き距離場がレンダリング・プロセスの一部としてリアルタイムに計算されるとき当該標本点の配列で当該決定された符号付き距離場を用いることによって、描画することができる。当該ステップが、図1のステップ3に示すように、当該符号付き距離場を用いて、アンチエイリアシング技術を使用してもよい。当該符号付き距離場を次いで、テクスチャへの描画動作におけるテクスチャの一部として格納してもよい。
【0235】
最終的に描画されるテキストの文字列を次いで図1の「結果」ステップに示すように表示することができる。
【0236】
例えば、書込みを三次元で曲面に表示すべき場合には、グリフを、当該グリフに対するテクスチャが定義される世界空間とは異なる「サーフェス」空間(即ち、レンダリング出力が生成される空間)内で描画してもよい。当該実施形態では、当該グリフが1つまたは複数のプリミティブにより覆われるように、1つまたは複数のプリミティブが、当該グリフが描かれるサーフェス空間内のシーン(表示)領域にわたって生成される。
【0237】
これらのプリミティブは次いで、陰影付けのための陰影パイプラインに渡されるフラグメントに通常の方式でラスタライズされる(起こり得ることであるが、(当該プリミティブは実際にはシーンの任意の標本点をそれが表示されるようにカバーしないので)当該プリミティブのラスタライズがフラグメントを生成しない場合、これは、当該形状が実際にはそれが表示されるようにシーン内で見られないことを意味するので、当該プロセスはここで停止することができる)。
【0238】
当該適切なテクスチャは次いでグリフを描くためにプリミティブに適用される。これは、描くべきグリフに対応するテクスチャ・マップ(または当該テクスチャ・マップの一部)を用いて、プリミティブ(複数可)がカバーするシーン内の1つまたは複数の標本点の位置に対するグリフを表すテクスチャからのテクスチャ・サンプルを取ることによってテクスチャを1つまたは複数のプリミティブに適用することで行われる(当該テクスチャが格納される世界空間への適切な変換がサーフェス空間内の標本点に対して実施される)。
【0239】
グリフを定義する複数の入力曲線上の最も近い点への符号付き距離を含む各標本化されたテクスチャ値を次いで使用して、当該符号付き距離の値に応じて、サンプル位置をグリフの内部に入るとして描く(描画する)べきかどうかを判定する(即ち、実際には、当該グリフのエッジの内部が入力曲線により定義される)か、または、当該グリフの外部に入るとして破棄する。
【0240】
図8は、グラフィック演算装置(GPU)のグラフィックス処理パイプラインにおける、本発明の1実施形態に従うグリフを描画するための上述のプロセスのステップを実施するための流れ図30を示す。
【0241】
先ず、予め定義された経路31は、例えば、中央演算装置(CPU)で生成され、当該CPUに格納されたフォント・ファイルから抽出される。これらの経路は、(例えば、グリフのエッジを定義する)直線、ベジエ曲線、弧、ならびに、例えば世界空間内の入力ベジエ曲線の開始点および終点を定義する色および他の位置データを用いてグリフを定義する。
【0242】
次いで、標準空間内の標準曲線上の変換された標本点と最も近い点との間の距離を返すルックアップ・テーブル(LUT)33を用いて、当該経路(入力曲線)が、(入力曲線の各々に対する標準空間への変換を用いて上述した方式で)グラフィックス処理パイプライン(SDF生成器)32の処理段階により処理されてグリフごとの符号付き距離場を生成する。
【0243】
経路キャッシュ34は次いで、グリフに対する符号付き距離場を、経路(入力曲線)に関する情報とともに格納する。次いで当該情報は、描画すべき最終テクスチャを生成するために、(テクスチャパイプライン37を使用して当該符号付き距離場内の値にアクセスする)固定機能単位36内の位置データ35と比較される。これが、ブレンディング、マスキングおよびシザー・テスト動作のうち1つまたは複数を含んでもよい。
【0244】
描画すべき最終テクスチャを次いで、出力、例えば表示のためにフレーム・バッファ38に渡す。
【0245】
以上から、標準曲線上の標本点に最も近い点を、例えば、符号付き距離場を生成する一部として決定するために標準空間を使用することで、1つまたは複数の入力曲線を用いてレンダリング出力を生成するための効率的かつ都合の良い機構が提供されることが分かる。当該機構は、例えば、ベクトル・グラフィックスを用いて定義された入力曲線の数学的表現を描画することができる。これは、入力曲線を用いてレンダリング出力を生成するための高速かつ正確なプロセスを提供する情報を決定する単純かつ正確な方法である。
【0246】
かかる入力曲線を用いてレンダリング出力を生成するための単純なプロセスを提供することで、当該プロセスを実行する装置のための処理負荷と電力負荷の削減が支援され、したがって、バッテリで動作し多機能処理を実装しなくてもよいより単純な装置、例えば、モバイルおよびウェラブル装置での使用が可能となる。さらに、当該プロセスの増大した効率性により、以前の技術と比べて装置の処理負荷と電力負荷の関連する増大なしに、より洗練されたレンダリング機能を実施することができ、または、必要に応じて必要な情報をリアルタイムに(再)計算することができる。
【符号の説明】
【0247】
31経路(線、ベジエ、弧、色、位置)
32SDF生成器
33LUT(放物線X値)
34経路キャッシュ(グリフ、セグメント(線、ベジエ))
35位置データ
36固定関数(ブレンド、マスク、シザー)
37テクスチャ・パイプ
38フレーム・バッファ
図1
図2
図3
図4(i)】
図4(ii)】
図4(iii)】
図5
図6
図7
図8