JP6863693B2 - Graphics processing system and method - Google Patents
Graphics processing system and method Download PDFInfo
- Publication number
- JP6863693B2 JP6863693B2 JP2016151823A JP2016151823A JP6863693B2 JP 6863693 B2 JP6863693 B2 JP 6863693B2 JP 2016151823 A JP2016151823 A JP 2016151823A JP 2016151823 A JP2016151823 A JP 2016151823A JP 6863693 B2 JP6863693 B2 JP 6863693B2
- Authority
- JP
- Japan
- Prior art keywords
- curve
- standard
- point
- space
- input
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 105
- 238000000034 method Methods 0.000 title claims description 82
- 230000009466 transformation Effects 0.000 claims description 82
- 230000008569 process Effects 0.000 claims description 35
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 238000000844 transformation Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 description 17
- 238000009877 rendering Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000005070 sampling Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 239000012634 fragment Substances 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/04—Context-preserving transformations, e.g. by using an importance map
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
本発明はグラフィックス処理システムに関し、特に、グラフィックス処理システムにおける平滑曲線のような平滑形状を用いて画像を描画することに関する。 The present invention relates to a graphics processing system, and more particularly to drawing an image using a smooth shape such as a smooth curve in a graphics processing system.
グラフィックス処理システムにおいて(そのエッジまたは境界として平滑曲線を有する)平滑曲線により定義される特定の形状において、効果的かつ正確に表示するために、平滑形状を描画できるのがますます望まれている。一般に、連続であるエッジまたは境界曲線を有し当該曲線の第1の導関数が区分連続である形状は、グラフィックス処理の観点からは平滑形状(平滑曲線により定義される形状)であると考えることができ(、本発明と本願の目的のため、平滑形状と考えられ、対応して平滑曲線と考えられ)る。グラフィックス処理におけるかかる平滑曲線の例はベジエ曲線、スプライン曲線および弧である。 It is increasingly desired to be able to draw smooth shapes for effective and accurate display in a particular shape defined by a smooth curve (having a smooth curve as its edge or boundary) in a graphics processing system. .. Generally, a shape having a continuous edge or boundary curve and the first derivative of the curve being segmentally continuous is considered to be a smooth shape (a shape defined by the smooth curve) from the viewpoint of graphics processing. (For the purposes of the present invention and the present application, it is considered to be a smooth shape and correspondingly a smooth curve). Examples of such smooth curves in graphics processing are Bezier curves, spline curves and arcs.
近年、コンピュータ・グラフィックスにおいてベクトル・グラフィックスを利用するのがますます一般的となっている。知られるように、当業界では、ラスタ・グラフィックスに対するベクトル・グラフィックスの1つの主要な利点は、解像度独立な画像、即ち、本質的に劣化なしに無限に拡大できる画像を提供できることである。例えば、TrueType(登録商標)のようなコンピュータ・フォントにおける独立な文字(グリフ)が一般にベクトル画像として格納される。 In recent years, it has become more and more common to use vector graphics in computer graphics. As is known, one major advantage of vector graphics over raster graphics in the industry is the ability to provide resolution-independent images, i.e., images that can be magnified indefinitely without degradation. For example, independent characters (glyphs) in computer fonts such as TrueType® are generally stored as vector images.
ベクトル・グラフィックスは、独立に定義された幾何学的オブジェクトの利用に基づき、一般に、経路を形成するためにアンカ点で一緒に接続された1つまたは複数の線セグメント、例えば、直線または(二次(例えば、ベジエ)曲線、楕円形弧、三次(例えば、ベジエ)曲線のような)曲線により記述される。 Vector graphics are generally based on the use of independently defined geometric objects and are generally one or more line segments connected together at anchor points to form a path, such as a straight line or (two). It is described by a curve (such as a Bezier) curve, an elliptical arc, or a cubic (eg Bezier) curve.
ベクトル・グラフィックス・オブジェクト/経路は、一般に「世界空間」と呼ばれる空間において定義され操作される。しかし、当該ベクトル・グラフィックスのオブジェクト/経路をビデオ・ディスプレイまたはプリンタに出力するために、世界空間内で定義されたオブジェクト/経路を、スクリーンに表示するかまたはプリンタに出力するために適切な形に変換する必要がある。当該変換は一般に、世界空間内で定義されたオブジェクト/経路を、一般に「サーフェス空間」と呼ばれる、当該オブジェクト/経路が参照される出力ディスプレイの視点(ジオメトリ)に対応する別の空間に投影することを含む。世界空間とサーフェス空間の間の変換は一般に「世界サーフェス変換」と呼ばれる。 Vector graphics objects / paths are defined and manipulated in a space commonly referred to as "world space". However, in order to output the object / path of the vector graphics to a video display or printer, the object / path defined in the world space is in a suitable form to be displayed on the screen or output to the printer. Need to be converted to. The transformation generally projects an object / path defined in world space into another space, commonly referred to as "surface space", that corresponds to the viewpoint (geometry) of the output display to which the object / path is referenced. including. The transformation between world space and surface space is commonly referred to as "world surface transformation".
当該ベクトル・グラフィックスのオブジェクト/経路がサーフェス空間表現に変換されると、それらが次いで描画される。これが、当該オブジェクトおよび/または経路の事前に計算された表現を使用してもよい。 Once the objects / paths in the vector graphics have been converted to a surface space representation, they are then drawn. It may use a pre-computed representation of the object and / or route.
例えばサーフェス空間において、オブジェクトまたは経路を描画するために使用できる事前に計算された表現にベクトル・グラフィックス・オブジェクト/経路を変換するための1つの方法は、テクスチャに格納された符号付き距離場を使用することである。次いで当該距離場を、当該オブジェクトを描画するときに標本化することができる。符号付き距離場は、点、例えばテクセルの配列を含み、それに対して、オブジェクトの経路またはエッジへの最も近い距離が点ごとに格納され、距離の符号は、当該点が描画すべきオブジェクトの内部にあるか外部にあるかを示す。したがって、符号付き距離場を標本化することで、標本点が描画すべきオブジェクトの内部にあるか外部にあるかを判定する。 One way to transform a vector graphics object / path into a pre-computed representation that can be used to draw an object or path, for example in surface space, is to use a signed distance field stored in the texture. Is to use. The distance field can then be sampled when drawing the object. A signed distance field contains an array of points, such as texels, whereas the closest distance to the path or edge of the object is stored point by point, with the distance sign being inside the object to be drawn by that point. Indicates whether it is in or outside. Therefore, by sampling the signed distance field, it is determined whether the sample point is inside or outside the object to be drawn.
符号付き距離場は、かかるオブジェクト、例えば、フォントのグリフの描画を支援し、アンチエイリアシングのような技術を使用できるようにする。しかし、例えば、スキャンライン・ラスタライゼーションを用いたベクトル・グラフィックスのオブジェクト/経路からの符号付き距離場の計算は複雑である。また、オブジェクトまたは経路を拡大する必要がある場合には、符号付き距離場が制限された解像度で格納されているにすぎない可能性があるので、当該符号付き距離場を新たな解像度で再計算する必要もありうる。さらに、より複雑なオブジェクト、例えば、複数の曲線セグメントを含みうるフォントのグリフを描画するとき、符号付き距離の利用は、符号付き距離場の計算に使用される方法におけるアーチファクトに起因して、例えば、鋭角な隅の平滑化のように、描画されたオブジェクトの細部の損失をもたらすことが分かっている。したがって、これをリアルタイムに計算するのは計算的に高価であるか、または、事前に計算した符号付き距離場をオフラインで格納するには大量の空間が必要である。これは、かかるオブジェクト/経路の描画に遅延を導入するおそれがあり、例えばダイナミックウェブページに対して、リアルタイムに実施するのが望ましい可能性がある。 Signed distance fields assist in drawing such objects, such as font glyphs, and allow the use of techniques such as antialiasing. However, for example, the calculation of a signed distance field from an object / path in vector graphics using scanline rasterization is complicated. Also, if the object or path needs to be expanded, the signed distance field may only be stored at a limited resolution, so the signed distance field is recalculated at the new resolution. It may be necessary to do so. In addition, when drawing more complex objects, such as font glyphs that can contain multiple curved segments, the use of signed distances is due, for example, to artifacts in the methods used to calculate signed distance fields. It has been found to result in loss of detail in drawn objects, such as smoothing sharp corners. Therefore, it is computationally expensive to calculate this in real time, or a large amount of space is required to store the pre-calculated signed distance field offline. This can introduce delays in drawing such objects / paths and may be desirable to do in real time, for example for dynamic web pages.
したがって出願人は、平滑曲線により定義された平滑曲線および形状を描画するための改善された技術およびシステムに対して余地が残っていると思料する。 Applicants therefore consider that there is room for improved techniques and systems for drawing smooth curves and shapes defined by smooth curves.
第1の態様から見たとき、本発明は、グラフィックス処理システム内の入力曲線を用いてレンダリング出力を生成する方法を提供する。当該方法は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定するステップと、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定するステップと、
レンダリング出力を生成するとき、標準空間内の当該変換された標本点に対する標準曲線上の当該決定された最も近い点を使用するステップと
を含む。
Seen from the first aspect, the present invention provides a method of generating a rendered output using an input curve in a graphics processing system. The method is
For the input curve defined in world space
Steps to determine the part of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to part of the standard curve,
For each of the multiple sample points in the world space surrounding the input curve
Convert the sample point from world space to standard space using the determined transformation between world space and standard space.
In standard space, determine the point on the determined part of the standard curve that is closest to the transformed sample point.
Thereby, for each of the transformed sample points in the standard space surrounding the standard curve, the step of determining the corresponding closest point on the standard curve in the standard space, and
When generating the rendered output, it includes a step of using the determined closest point on the standard curve with respect to the transformed sample point in standard space.
第2の態様から見たとき、本発明は入力曲線を用いてレンダリング出力を生成するためのグラフィックス処理システムを提供する。グラフィックス処理システムは、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定し、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定する
ように構成された処理回路と、
レンダリング出力を生成するとき、標準空間内の当該変換された標本点に対する標準曲線上の当該決定された最も近い点を使用するように構成された処理回路と、
を備える。
When viewed from the second aspect, the present invention provides a graphics processing system for producing a rendered output using an input curve. Graphics processing system
For the input curve defined in world space
Determine the part of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to part of the standard curve.
For each of the multiple sample points in the world space surrounding the input curve
Convert the sample point from world space to standard space using the determined transformation between world space and standard space.
In standard space, determine the point on the determined part of the standard curve that is closest to the transformed sample point.
Thereby, for each of the transformed sample points in the standard space surrounding the standard curve, a processing circuit configured to determine the corresponding closest point on the standard curve in the standard space.
With a processing circuit configured to use the determined closest point on the standard curve with respect to the transformed sample point in standard space when generating the rendered output.
To be equipped.
本発明では、レンダリング出力は、まず、「世界空間」(平坦でありしたがって二次元のみを有してもよく、または3次元空間であってもよい)内で定義された入力曲線を「標準空間」内で定義されている対応する予め定義された「標準」曲線にマッピングすることによって、入力曲線を用いて生成される。次いで、標準空間内の位置が、入力曲線を囲む世界空間内の対応する位置から変換され、標本化位置の各々に最も近い標準曲線上の点を決定するために標本化(テスト)される。これらの最も近い点はレンダリング出力を生成するために使用される。当該情報を使用して、入力曲線が少なくともそれらのアウトラインの一部を形成する形状、例えば、フォントに対するグリフを描画するか、または、入力曲線が少なくともそれらのアウトラインの一部を形成するオブジェクトに基づいて照明または影を描画することができる。 In the present invention, the rendered output first takes the input curve defined in "world space" (which is flat and therefore may have only two dimensions, or may be three-dimensional space) into "standard space". Is generated using the input curve by mapping to the corresponding predefined "standard" curve defined within. Positions in standard space are then transformed from their corresponding positions in world space surrounding the input curve and sampled (tested) to determine the points on the standard curve that are closest to each of the sampling positions. These closest points are used to produce the rendered output. Use that information to draw glyphs for shapes where the input curves form at least part of those outlines, such as fonts, or based on objects where the input curves form at least part of those outlines. Can draw lighting or shadows.
しかし、出願人は、本明細書では「標準曲線」と称する、予め定義された、単一曲線または基本曲線の少なくとも一部に対して例えば回転、変換および均一な拡大のみを用いて、特定の曲線ファミリ内の全ての曲線をを変換できることを認識している。 However, the applicant may use only, for example, rotation, transformation and uniform expansion for at least a portion of a predefined single curve or fundamental curve, referred to herein as a "standard curve". We recognize that we can transform all curves in a curve family.
これによりしたがって、単一の曲線、即ち、標準曲線に関する情報を、レンダリング出力を生成する際に使用するためのグラフィックス処理システムにより使用される1つまたは複数の入力曲線に関する情報を決定するために使用することができる。換言すれば、例えば、グラフィックス処理システムにより使用される描画すべき各独立な入力曲線と関連してデータを導出または格納しなければならないのではなく、標準曲線に関するデータを導出または格納するだけでよい。当該データを次いで使用して、「標準曲線」が表す入力曲線のファミリ(集合)に属する独立な入力曲線の各々を用いてレンダリング出力を生成することができる。 Thereby, therefore, to determine information about a single curve, i.e. a standard curve, about one or more input curves used by the graphics processing system to be used in generating the rendered output. Can be used. In other words, for example, you do not have to derive or store data in association with each independent input curve to be drawn used by the graphics processing system, but simply derive or store data about the standard curve. Good. The data can then be used to generate rendered output with each of the independent input curves belonging to the family (set) of input curves represented by the "standard curve".
したがって、本発明は、1つまたは複数の入力曲線を用いてレンダリング出力を生成するためのより効率的な機構を提供できるだけでなく、それを行うための特に都合の良い機構を提供する。例えば、標準空間内の標準曲線が定義されると、単純に単一の座標、例えば、x座標により、当該曲線上の点を参照することができ(したがってこれらを計算で使用することができ)るかもしれない。したがって、標準曲線を用いて標本点に最も近い当該曲線上の点を決定し、次いで当該点を用いて当該曲線上の最も近い点への距離(符号付き距離場における情報の一部)を決定でき、例えば、ベクトル・グラフィックスを用いて定義された入力曲線の数学的表現を保持することができる。これは、入力曲線を用いたレンダリング出力の生成の速度と精度を増大させる情報を決定するより単純かつ正確な方法である。これは、スキャンライン・ラスタライゼーションを用いて評価される符号付き距離場を用いた技術と比較され、当該技術は符号付き距離場を計算するときに情報の損失に繋がり、したがって、レンダリング出力における細部の損失に繋がる。 Therefore, the present invention not only provides a more efficient mechanism for generating rendered output using one or more input curves, but also provides a particularly convenient mechanism for doing so. For example, once a standard curve in standard space is defined, points on that curve can be referenced simply by a single coordinate, eg, the x coordinate (thus they can be used in calculations). May be. Therefore, the standard curve is used to determine the point on the curve that is closest to the sample point, and then the point is used to determine the distance to the closest point on the curve (part of the information in the signed distance field). It can, for example, hold a mathematical representation of the input curve defined using vector graphics. This is a simpler and more accurate way to determine the information that increases the speed and accuracy of generating rendered output using the input curve. This is compared to techniques using signed distance fields that are evaluated using scanline rasterization, which leads to loss of information when calculating signed distance fields, and therefore details in the rendered output. It leads to the loss of.
かかる入力曲線を用いてレンダリング出力を生成するためのより単純なプロセスを提供することは、当該プロセスを実行する装置の処理と電力負荷の削減を支援し、バッテリで動作し多機能処理を実装できないより単純な装置、例えば、モバイルおよびウェラブル装置で使用することを可能としうる。あるいはプロセスの増大した効率性により、以前の技術と比較して装置に関する処理および電力負荷の関連する増大なしに、より洗練されたレンダリング機能を実施することができ、または、必要な情報(例えば、変換された標本点の各々に最も近い標準曲線上の点)を必要に応じてリアルタイムで(再)計算することができる。 Providing a simpler process for generating rendered output using such input curves helps reduce the processing and power load of the device running the process and cannot implement battery-powered and multifunctional processing. It may be possible to use it in simpler devices such as mobile and wearable devices. Alternatively, the increased efficiency of the process allows more sophisticated rendering functions to be performed without the associated increase in processing and power load associated with the device compared to previous techniques, or the required information (eg, for example). The points on the standard curve closest to each of the transformed sample points) can be (re) calculated in real time as needed.
かかる入力曲線を用いるとき、特に、フォントを描画するときのレンダリング出力の生成について、より単純かつより正確なプロセス(例えば、変換された標本点最も近い標準曲線上の点の分析的計算)を用いることにより、特にフォントを再計算する必要がありうるようにテキストが拡大されるとき、当該フォントをディスプレイにより魅力的に提示することができる。 A simpler and more accurate process (eg, analytical calculation of points on the standard curve closest to the transformed sample point) is used when using such input curves, especially for the generation of rendered output when drawing fonts. This allows the font to be presented more attractively to the display, especially when the text is magnified so that the font may need to be recalculated.
本発明のプロセスにより使用され、例えば本発明のプロセスに入力される世界空間内で定義された入力曲線が、例えば、入力曲線を用いてレンダリング出力を生成することを要求するアプリケーションにより最初に定義された入力曲線であってもよい。しかし、入力曲線が、世界空間内で定義された別の曲線から導出される曲線であることもまた可能である。例えば、入力曲線を、別の曲線または初期曲線を例えばそれが本発明によりその中で受信される別の空間から世界空間に変換することによって、導出されているかもしれないことも考慮されている。 Input curves used by the processes of the invention and defined in world space, eg, input to the processes of the invention, are first defined by applications that require, for example, to generate rendered output using the input curves. It may be an input curve. However, it is also possible that the input curve is a curve derived from another curve defined in world space. It is also considered, for example, that the input curve may be derived by transforming another curve or initial curve, eg, from another space it receives in it to world space, according to the present invention. ..
入力曲線を、任意の適切かつ所望の方法でグラフィックス処理システムに入力してもよい。例えば、入力曲線を、グラフィックス処理システムに(予め)格納して、その格納された位置から読み出してもよく、または、入力曲線をグラフィックス処理システム自体により決定してもよい。別の実施形態では、入力曲線を、例えば入力曲線を用いてレンダリング出力を生成することを要求するアプリケーションにより積極的に入力してもよい。好適な実施形態では、当該方法は、入力曲線を受信するステップを含む(および、処理回路がそのように構成される)。 The input curve may be input to the graphics processing system in any suitable and desired manner. For example, the input curve may be stored (in advance) in the graphics processing system and read from the stored position, or the input curve may be determined by the graphics processing system itself. In another embodiment, the input curve may be more aggressively input by an application that requires, for example, to generate a rendered output using the input curve. In a preferred embodiment, the method comprises the step of receiving an input curve (and the processing circuit is so configured).
例えば入力曲線を用いて描画される形状を含むレンダリング出力を、例えば、その長さの全体(またはレンダリング出力を生成するために使用されるその長さの少なくとも一部)に対して単一の定義(例えば、数式)を有する単一の曲線のみを用いて生成してもよい。入力曲線が上述の性質を有する「標準曲線」を導出できる形式を有するのが好ましい。したがって、グラフィックス処理システムにより使用される入力曲線が、適切な関連する標準曲線を有しうる曲線のファミリからの任意の曲線であってもよい。 A single definition for, for example, a rendered output containing a shape drawn using an input curve, eg, for the entire length (or at least a portion of that length used to generate the rendered output). It may be generated using only a single curve with (eg, mathematical formula). It is preferable that the input curve has a form capable of deriving a "standard curve" having the above-mentioned properties. Therefore, the input curve used by the graphics processing system may be any curve from a family of curves that may have suitable relevant standard curves.
この形式の関連する標準曲線を有しうる曲線の1つのファミリは二次曲線である。この場合、標準曲線は、基本二次曲線、即ち、y=x2の形の曲線であることができる。したがって、特に好適な実施形態では、グラフィックス処理システムにより受信される世界空間内の入力曲線は二次曲線である。 One family of curves that can have relevant standard curves of this form are quadratic curves. In this case, the standard curve can be a basic quadratic curve, i.e. a curve of the form y = x 2. Therefore, in a particularly preferred embodiment, the input curve in world space received by the graphics processing system is a quadratic curve.
レンダリング出力を、複数の入力曲線を用いて、例えば、それぞれがそれらの長さの上で異なる定義(例えば、数式)を有する複数の曲線セグメントを用いて、生成してもよいことが等しく考慮されている。例えば、フォントに対するグリフは一般に、一体となって当該グリフのアウトラインを形成する(直線セグメントを含んでもよい)複数の曲線セグメントにより定義される。 It is equally considered that the rendered output may be generated using multiple input curves, eg, using multiple curve segments, each with a different definition (eg, a mathematical formula) on their length. ing. For example, a glyph for a font is generally defined by a plurality of curved segments (which may include linear segments) that together form an outline of the glyph.
あるいはまたはその代わりとして、入力曲線が標準空間内の対応する曲線を有さなくてもよく、したがって初期曲線をそれぞれが(関連する標準曲線を有する曲線のファミリのメンバである)対応する標準曲線を有するセグメントの複数の曲線セクションに細分割してもよく、例えば、レンダリング出力で使用される入力曲線を、世界空間内で定義された初期曲線を、(例えば、初期曲線の長さに沿って異なるセクションに対して別個の入力曲線として定義されている)2つ以上の別個の入力曲線に細分割することによって導出してもよい。例えば、三次曲線または楕円形曲線を複数の二次曲線に細分割してもよい。これにより、直接定義(および/または格納)されるかまたは利用可能である直接対応する標準曲線が存在しない可能性がある曲線を描画するために本発明を使用することができる。 Or or instead, the input curve does not have to have a corresponding curve in standard space, so the initial curve is the corresponding standard curve (which is a member of a family of curves with associated standard curves). It may be subdivided into multiple curve sections of the segment it has, eg, the input curve used in the rendered output differs from the initial curve defined in world space (eg, along the length of the initial curve). It may be derived by subdividing into two or more separate input curves (defined as separate input curves for the section). For example, a cubic curve or an elliptical curve may be subdivided into a plurality of quadratic curves. This allows the invention to be used to draw curves that may not have a direct corresponding standard curve that is directly defined (and / or stored) or available.
これらの実施形態では、当該方法が世界空間内で定義された初期曲線を複数の入力曲線に細分割するステップを含んでもよく(および、処理回路がそのように構成されてもよく)、入力曲線の1つまたは複数が次いでそれぞれ処理されてレンダリング出力が本発明の方式で生成される。最初に定義された幾つかの曲線、例えば、三次ベジエ曲線に対して、初期曲線を複数の入力曲線に細分割するとき、初期曲線に最も適合する複数の入力曲線、例えば、二次ベジエ曲線を発見するために、当該計算の一部を再利用してもよい(および、したがってこれを行うように処理回路を構成してもよい)。例えば、二次ベジエは、その開始点および終点、および(第3の制御点により定義されうる)勾配により定義される。これらのパラメータを次いで、例えば標準形の隣接ベジエに対する対応するパラメータと比較して、それらをマージできるかどうかを判定することができる。 In these embodiments, the method may include subdividing the initial curve defined in world space into multiple input curves (and the processing circuit may be configured as such), or the input curves. One or more of these are then processed respectively to produce a rendered output in the manner of the invention. For some initially defined curves, eg cubic Bezier curves, when subdividing the initial curve into multiple input curves, the multiple input curves that best fit the initial curve, eg, quadratic Bezier curves, Part of the calculation may be reused (and therefore the processing circuit may be configured to do this) for discovery. For example, a secondary Bezier is defined by its start and end points, and its gradient (which can be defined by a third control point). These parameters can then be compared, for example, with the corresponding parameters for standard adjacent Beziers to determine if they can be merged.
好適な1組の実施形態では、複数の入力曲線を用いてレンダリング出力を生成するとき、本発明の方法が入力曲線(例えば、セグメント)の各々に対して反復され、例えば、各入力曲線(セグメント)が標準空間に変換される。標準空間において、入力曲線(セグメント)を囲む世界空間内の複数の標本点ごとに、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点が決定される。これは次いで、変換された標本点ごとに、当該複数の標準曲線の各々を囲む変換された標本点の配列に対して、標準曲線(セグメント)上の当該決定された最も近い点を返し、次いで、レンダリング出力を生成するときにこれらの決定された最も近い点を使用することができる。 In a preferred set of embodiments, when generating rendered output with multiple input curves, the method of the invention is repeated for each of the input curves (eg, segments), eg, each input curve (segment). ) Is converted to standard space. In standard space, for each of a plurality of sample points in the world space surrounding the input curve (segment), a point on the determined portion of the standard curve closest to the transformed sample point is determined. It then returns, for each transformed sample point, the closest determined point on the standard curve (segment) to the array of transformed sample points surrounding each of the multiple standard curves, and then back. , These determined closest points can be used when generating the rendered output.
出願人は、レンダリング出力を生成するときの使用が望まれうる、実際には殆どだが全てではない入力曲線が少数の曲線ファミリのうち1つに入り、したがってフォントのような複雑な形状を、比較的少数の入力曲線を用いて描画、例えば、定義することが望まれうる曲線の全てではないが殆どを表現できることを認識している。入力曲線が、任意の適切な1つまたは複数の曲線であってもよい。入力曲線が平滑曲線であることが好ましい。当該平滑曲線または各平滑曲線は、連続であり(曲線の経路の)曲線の第1の導関数が区分連続である曲線であることが好ましい。入力曲線は直線、(例えば、二次または三次)ベジエ曲線、スプライン曲線および/または(例えば、楕円)弧であることが好ましい。 Applicants compare complex shapes, such as fonts, with input curves that are actually few, but not all, in one of a few curve families that may be desired to be used when producing rendered output. We recognize that we can draw with a small number of input curves, eg, represent most, if not all, of the curves that we may want to define. The input curve may be any suitable curve. The input curve is preferably a smooth curve. The smooth curve or each smooth curve is preferably a curve that is continuous and the first derivative of the curve (in the path of the curve) is segmentally continuous. The input curve is preferably a straight line, (eg, quadratic or cubic) Bezier curve, spline curve and / or (eg, elliptical) arc.
しかし、以下でさらに説明するように、入力曲線が、より複雑な曲線、例えば、楕円および/または双曲線を含んでもよく、当該曲線が例えば複数の二次曲線に細分割される必要がなくてもよい。しかし、このように定義された入力曲線に対して、世界空間から標準空間への(二次元での)一意な変換はなく、したがって、曲線の定義が、曲線の離心率のような、例えば、標準空間内で3次元として表される情報をさらに含む必要があるかもしれない。これを入力曲線の定義の一部として格納してもよく、または、入力曲線が楕円または双曲線を含むとき、当該方法が入力曲線の離心率を決定するステップを含んでもよい(および、処理回路がそのように構成されてもよい)。 However, as described further below, the input curve may include more complex curves such as ellipses and / or hyperbolas, even if the curve does not need to be subdivided into, for example, multiple quadratic curves. Good. However, there is no unique (in two-dimensional) transformation from world space to standard space for an input curve defined in this way, so the definition of the curve is, for example, the eccentricity of the curve, for example. It may be necessary to include more information represented as three dimensions in standard space. This may be stored as part of the definition of the input curve, or when the input curve contains an ellipse or a hyperbola, the method may include a step of determining the eccentricity of the input curve (and the processing circuit). It may be configured that way).
二次曲線とともに入力曲線が楕円および双曲線を含むとき、例えば、これは、レンダリング出力を生成するとき使用される複雑な形状を定義するための有用なツールボックスをユーザに提供し、これらを、例えば、相対的にハードウェア・フレンドリである回転、拡大および変換のみによって、1つまたは複数の入力曲線から対応する標準曲線に変換することができる。 When the input curve contains ellipses and hyperbolas along with the quadratic curve, for example, this provides the user with a useful toolbox for defining the complex shapes used when producing rendered output, for example. One or more input curves can be converted to the corresponding standard curves only by rotation, enlargement and conversion, which are relatively hardware friendly.
本発明のプロセスにより使用され、例えば、本発明のプロセスへの入力として受信される世界空間内で定義された入力曲線を、任意の所望の適切な方式で定義してもよい。例えば、グラフィックス処理システムが、曲線の位置および曲線に関連する任意のパラメータのような、入力曲線を定義する情報を受信できるのが好ましい。入力曲線は、例えば形状の一部したがって好適には入力曲線の定義として固定長を有し、したがってグラフィックス処理システムにより使用、例えば受信される情報が入力曲線の終点を含むのが好ましい。入力曲線を、回転、変換および均一な拡大のみを用いて対応する標準曲線に変換できるので、以下でさらに説明するように、これは、その開始点および終点のような入力曲線に対応する標準曲線の一部を、使用中に容易に決定することができる。 Input curves used by the processes of the invention and defined in world space, eg, received as inputs to the processes of the invention, may be defined in any desired and appropriate manner. For example, it is preferred that the graphics processing system be able to receive information that defines the input curve, such as the position of the curve and any parameters associated with the curve. The input curve has a fixed length, eg, part of the shape and thus preferably as a definition of the input curve, and is therefore used by a graphics processing system, eg, the information received preferably includes an end point of the input curve. Since the input curve can be converted to the corresponding standard curve using only rotation, transformation and uniform expansion, this is the standard curve corresponding to the input curve, such as its start and end points, as described further below. A portion of can be easily determined during use.
入力曲線は、一般に開始点、終点および1つまたは複数の中間点を含む世界空間内の複数の制御点の位置により、開始制御点と終了制御点の間で描画される曲線のタイプの指示とともに定義されるのが好ましい。例えば、好適には、上述のように入力曲線は、直線、(単一の中間制御点を必要とする)二次ベジエ曲線、(2つの中間制御点を必要とする)立方ベジエ曲線、スプライン曲線および(例えば、楕円形または双曲線)弧のうち1つを含む。入力曲線の定義がまた、例えば、当該制御点の1つまたは複数での当該曲線の勾配を含んでもよい。例えば二次ベジエ曲線を、3つの制御点により、または、2つの(端)制御点およびこれらの2つの制御点での勾配により定義してもよい。 The input curve is generally a start point, an end point, and the position of multiple control points in world space, including one or more intermediate points, along with an indication of the type of curve drawn between the start and end control points. It is preferred to be defined. For example, preferably, as described above, the input curve is a straight line, a quadratic Bezier curve (requiring a single intermediate control point), a cubic Bezier curve (requiring two intermediate control points), a spline curve. And one of the arcs (eg, elliptical or hyperbolic). The definition of the input curve may also include, for example, the slope of the curve at one or more of the control points. For example, a quadratic Bezier curve may be defined by three control points, or by a gradient at two (end) control points and these two control points.
したがって入力曲線の定義が世界空間内の複数の制御点と曲線のタイプを示す情報とを含むのが好ましい。また、入力曲線がグラフィックス処理システムにより受信されたとき、世界空間内で定義された入力曲線を受信するステップが、世界空間内の複数の制御点の位置と曲線のタイプを示す情報とを受信するステップを含む(および、処理回路はそのように構成される)のが好ましい。 Therefore, it is preferable that the definition of the input curve includes a plurality of control points in the world space and information indicating the type of the curve. Also, when the input curve is received by the graphics processing system, the step of receiving the input curve defined in world space receives information indicating the position of multiple control points in world space and the type of curve. It is preferable that the processing circuit includes (and the processing circuit is configured as such).
レンダリング出力を生成するために使用される入力曲線に対して、例えば、入力曲線がグラフィックス処理システムにより受信されると、入力曲線を表す標準空間内の標準曲線の対応する部分を決定することが必要である。当該決定を、任意の適切な所望の方式で実行してもよい。 For the input curve used to generate the rendered output, for example, when the input curve is received by a graphics processing system, it can determine the corresponding part of the standard curve in the standard space that represents the input curve. is necessary. The decision may be made in any suitable and desired manner.
好適な実施形態では、これは、世界空間内で定義された入力曲線を取って標準空間内の標準曲線の対応する部分に配置するのに必要な変換を決定することにより行われる。上述のように当該変換(世界標準変換)は、回転、変換および/または均一な拡大のみを必要とすべきである。したがって、世界空間内の入力曲線を標準曲線の適切な部分上に変換する変換を決定するステップが、もしあれば、当該変換の回転成分を決定するステップを含むのが好ましい(および、処理回路がそうするように構成されるのが好ましい)。 In a preferred embodiment, this is done by taking the input curve defined in world space and determining the transformations required to place it in the corresponding portion of the standard curve in standard space. As mentioned above, the transformation (world standard transformation) should only require rotation, transformation and / or uniform expansion. Therefore, it is preferable that the step of determining the transformation that transforms the input curve in world space onto the appropriate portion of the standard curve, if any, includes the step of determining the rotational component of the transformation (and the processing circuit). It is preferably configured to do so).
当該変換の回転成分を、任意の適切な所望の方式で決定してもよい。好適な実施形態では、しかし、再度、世界空間内の入力曲線(およびしたがって標準空間内の標準曲線)が二次曲線であるとき、当該変換の回転成分は、入力曲線の対称軸を標準空間内の標準曲線の対称軸と平行にするのに必要な回転を決定することによって決定される。当該回転はしたがって、入力曲線の対称軸を、標準曲線の対称軸(例えば、標準空間のy軸)の方向と整列させる。 The rotational component of the conversion may be determined by any suitable desired method. In a preferred embodiment, however, again, when the input curve in world space (and thus the standard curve in standard space) is a quadratic curve, the rotational component of the transformation makes the axis of symmetry of the input curve in standard space. It is determined by determining the rotation required to be parallel to the axis of symmetry of the standard curve of. The rotation therefore aligns the axis of symmetry of the input curve with the direction of the axis of symmetry of the standard curve (eg, the y-axis in standard space).
世界空間内の入力曲線を標準空間内の標準曲線の適切な部分上に変換する変換を決定するステップが同様に、もしあれば、当該変換の変換成分を決定するステップを含むのが好ましい(および、処理回路がそのように構成されるのが好ましい)。 Similarly, the step of determining the transformation that transforms the input curve in world space onto the appropriate portion of the standard curve in standard space preferably includes (and, if any, the step of determining the transform component of the transformation. , It is preferable that the processing circuit is configured as such).
当該変換の変換成分を任意の適切な所望の方式で決定してもよい。しかし、好適な実施形態では、入力曲線(したがって標準曲線)が二次曲線であるとき、当該変換の変換成分は、世界空間内の入力曲線の入力曲線の天底を、標準空間内の標準曲線の天底、例えば標準空間の原点に移動するのに必要な変換を決定することによって決定される。したがって、必要ならば当該変換の変換成分を決定するステップが、必要ならば当該変換の回転成分のステップに続くのが好ましい。 The conversion component of the conversion may be determined by any suitable desired method. However, in a preferred embodiment, when the input curve (and thus the standard curve) is a quadratic curve, the transform component of the transformation is the top of the input curve of the input curve in world space, the standard curve in standard space. It is determined by determining the transformation required to move to the top of the sky, eg the origin of standard space. Therefore, it is preferable that the step of determining the conversion component of the transformation, if necessary, follows the step of the rotation component of the transformation, if necessary.
したがって、好適な実施形態では、当該変換の変換成分を決定するステップが、入力曲線の天底を標準空間内の標準曲線の天底にマップするのに必要な変換を決定するステップを含む(および、処理回路がそうするように構成されるのが好ましい)。 Therefore, in a preferred embodiment, the step of determining the transformation component of the transformation comprises determining the transformation required to map the nadir of the input curve to the nadir of the standard curve in standard space (and). , The processing circuit is preferably configured to do so).
標準曲線の適切な部分上の世界空間内の入力曲線を変換する変換を決定するステップが同様に、もしあれば当該変換の均一な拡大成分を決定するステップを含むのが好ましい(および、処理回路がそうするように構成されるのが好ましい)。 It is preferable that the step of determining the transformation that transforms the input curve in world space on the appropriate portion of the standard curve also includes, if any, the step of determining the uniform expansion component of the transformation (and the processing circuit). Is preferably configured to do so).
当該変換の均一な拡大成分を、任意の適切な所望の方式で決定することもできる。しかし、好適な実施形態では、再度、世界空間内の入力曲線(したがって標準空間内の標準曲線)が二次曲線であるとき、当該変換の均一な拡大成分は、例えば、回転および/または変換された入力曲線を標準曲線に拡大するのに必要な拡大因子を決定することによって、例えば、入力曲線の二次形式を試験することによって、決定される。 The uniform expansion component of the conversion can also be determined in any suitable and desired manner. However, in a preferred embodiment, again, when the input curve in world space (and thus the standard curve in standard space) is a quadratic curve, the uniform expansion component of the transformation is, for example, rotated and / or transformed. It is determined by determining the expansion factors required to expand the input curve to the standard curve, for example, by testing the quadratic form of the input curve.
当該変換の回転、変換および均一な拡大成分を決定するステップを必要に応じて任意の順序で実施することができる。しかし、本発明の好適な実施形態では、回転成分が先ず決定され、次に変換成分が決定され、最終的に均一な拡大成分が決定される。 The steps of rotating, transforming and determining the uniform expansion component of the transformation can be carried out in any order as needed. However, in a preferred embodiment of the invention, the rotating component is first determined, then the conversion component is determined, and finally the uniform expanding component is determined.
入力曲線が固定長を有するとき、例えば、開始点および終点により定義されるとき、世界空間内の入力曲線を標準空間内の標準曲線にマップするのに必要な変換が決定されると、入力曲線に対応する標準曲線の一部が、入力曲線の中心曲線の開始点と終点に対応する標準曲線上の2つの位置を決定するための当該決定された変換を用いて決定されるのが好ましい。これは次いで、標準空間内の入力曲線の位置を与える。 When the input curve has a fixed length, for example defined by the start and end points, the input curve is determined when the transformation required to map the input curve in world space to the standard curve in standard space is determined. It is preferred that a portion of the standard curve corresponding to is determined using the determined transformation to determine two positions on the standard curve corresponding to the start and end points of the center curve of the input curve. This then gives the position of the input curve in standard space.
世界空間内の入力曲線に対応する標準空間内の標準曲線が決定され、したがってまた入力曲線に対して世界空間から標準空間への変換が決定されると、入力曲線を囲む世界空間内の複数の標本点の各々を、(独立にまたは一緒に)同一の変換を用いて標準空間内の対応する点に変換することができる。 When the standard curve in the standard space corresponding to the input curve in the world space is determined, and therefore the conversion from the world space to the standard space is also determined for the input curve, multiple in the world space surrounding the input curve. Each of the sample points can be transformed into a corresponding point in standard space using the same transformation (independently or together).
入力曲線を囲む複数の標本点を、例えば、レンダリング出力が描画される(または生成されるレンダリング出力の最も予想される拡大レベルをカバーする)のが望ましい詳細レベルに対して十分な解像度のレベルで入力曲線上の当該決定された最も近い点を提供できるように、任意の適切かつ所望の方法で選択してもよい。あるいは、入力曲線上の最も近い点を、低解像度で、例えば、少数の標本点に対して決定し、次いで、後に必要ならば、例えば、レンダリング出力を拡大されたレベルで生成するのが望ましい場合に高解像度で(即ち、より詳細に)決定してもよい。1実施形態では、入力曲線を囲む境界ボックスが描かれ、その中で入力曲線を囲む複数の標本点が定義される。 Multiple sample points surrounding the input curve, for example, at a level of sufficient resolution for the level of detail at which the rendered output should be drawn (or cover the most expected magnification level of the rendered output produced). It may be selected in any suitable and desired manner so as to provide the determined closest point on the input curve. Alternatively, if it is desirable to determine the closest point on the input curve at low resolution, eg, for a small number of sample points, and then later, if necessary, for example, produce the rendered output at an enlarged level. It may be determined in high resolution (ie, in more detail). In one embodiment, a bounding box surrounding the input curve is drawn, in which a plurality of sample points surrounding the input curve are defined.
1実施形態では、標準曲線上の最も近い点を、レンダリング出力を生成するときに使用するために最終的に入力曲線に関連する情報が決定される、入力曲線を囲む全ての標本点に対して決定されなくてもよい。例えば、複数のさらなる標本点の各々に対して決定される情報を、これらのさらなる標本点の各々を標準空間に変換し標準曲線上の最も近い点を決定する必要なしに、例えば当該複数のさらなる標本点からの標本点の近くに存在する(最初に定義された)標本点のうち1つまたは複数から推論してもよい。 In one embodiment, the closest points on the standard curve are used for all sample points surrounding the input curve for which information related to the input curve is ultimately determined for use when generating the rendered output. It does not have to be decided. For example, without having to convert the information determined for each of the additional sample points into standard space for each of these additional sample points to determine the closest point on the standard curve, eg, the plurality of additional sample points. It may be inferred from one or more of the (first defined) sample points that are near the sample point from the sample point.
当該実施形態では、曲線上の標本点に最も近い点、当該標本点から最も近い当該曲線上の点への距離および当該標本点をそのまま扱うべき曲線の側のうち1つまたは複数を決定することが可能でありうる。当該情報を、標準空間内で決定してもよく(したがって、当該標本点を標準空間に変換することおよび/または標準空間内ので決定される情報を世界空間に変換し戻すことを要求してもよい)、または、世界空間内で決定してもよい。 In this embodiment, determining one or more of the points closest to the sample point on the curve, the distance from the sample point to the closest point on the curve, and the side of the curve where the sample point should be treated as is. Can be possible. The information may be determined in standard space (thus requiring that the sample point be converted to standard space and / or the information determined in standard space be converted back to world space. It may be decided within the world space.
さらに、当該実施形態では、1つまたは複数の近傍の標本点を用いて特定の変数の実際の値を決定する必要はないかもしれないが、変数の値が閾値より高いか低いかを判定する必要はありうる。次いでこれを使用して、当該変数の値を独立にまたはより正確に、例えば、入力曲線の近くに存在する標本点に対して決定する必要があるかどうかを判定してもよい。例えば、さらなる標本点に対して、最も近い点および/または距離が既に決定されている1つまたは複数の囲む標本点を用いて、当該さらなる標本点が近傍の標本点に近いかまたは近傍の標本点から離れているかどうかを判定することが可能でありうる。当該さらなる標本点が遠く離れている場合、当該近傍の標本点に対する曲線への距離(または当該点が遠く離れていることを示す閾値またはデフォルト値)を単純に格納するので十分かもしれない。当該さらなる標本点がより近い場合、標準空間内の標本点に対する曲線上の最も近い点を標本点の初期集合に対するものとして決定することが必要であるかもしれない。 Further, in this embodiment, it may not be necessary to use one or more nearby sample points to determine the actual value of a particular variable, but to determine if the value of the variable is above or below the threshold. There may be a need. It may then be used to determine if the value of the variable needs to be determined independently or more accurately, eg, for a sample point that is near the input curve. For example, a sample in which the additional sample point is close to or near a nearby sample point, using one or more enclosing sample points for which the closest point and / or distance has already been determined for the additional sample point. It may be possible to determine if it is far from the point. If the additional sample points are far apart, it may be sufficient to simply store the distance to the curve (or the threshold or default value indicating that the points are far apart) with respect to the nearby sample points. If the additional sample points are closer, it may be necessary to determine the closest point on the curve to the sample points in standard space as relative to the initial set of sample points.
当該実施形態では、好適には、これらの比較をさらなる標本点に対して行えるように、標本点の初期集合に対して決定された情報、例えば、標本点に最も近い曲線上の点、当該標本点から当該曲線上の最も近い点への距離および当該標本点をそのまま扱うべきである当該曲線の側のうち1つまたは複数が、例えば、キャッシュに格納される。 In this embodiment, preferably, information determined for an initial set of sample points, such as a point on the curve closest to the sample point, the sample so that these comparisons can be made for additional sample points. The distance from the point to the nearest point on the curve and one or more of the sides of the curve for which the sample point should be treated as is are stored, for example, in the cache.
複数の入力曲線があるとき、各入力曲線を囲む世界空間内の複数の標本点は入力曲線ごとに同一でありうる。例えば、当該複数の標本点は全ての入力曲線を囲むことができる(したがって、後述するように、描画時に全ての入力曲線に対してテストする可能性を与えうる)が、好適には、各入力曲線を囲む複数の標本点は、例えば、入力曲線を丁度囲むように入力曲線ごとに別々に選択され、したがってそれらは好適には、世界空間において標本点のサブセットを形成する。例えば、全ての入力曲線を囲むように(単一の)境界ボックスを描くことができるが、好適には、別個の境界ボックスが各入力曲線を囲むように描かれ、その中で複数の標本点が定義される。 When there are multiple input curves, the multiple sample points in the world space surrounding each input curve can be the same for each input curve. For example, the plurality of sample points can enclose all input curves (thus, as will be described later, may give the possibility of testing all input curves at the time of drawing), but preferably each input. The plurality of sample points surrounding the curve are selected separately for each input curve, eg, just surrounding the input curve, so they preferably form a subset of the sample points in world space. For example, a (single) bounding box can be drawn to surround all input curves, but preferably a separate bounding box is drawn to surround each input curve, with multiple sample points in it. Is defined.
標準空間に変換される世界空間内の標本点に関して、変換された標本点に最も近い標準空間内の標準曲線上の点を、任意の適切かつ所望の方法で決定してもよい。好適には、変換された標本点の各々に最も近い標準曲線上の点は、標準空間内で分析的に決定される。当該最も近い点を、標準曲線の接線が当該変換された標本点から標準曲線上の点へのベクトルに直交する標準曲線上の点を決定することによって決定してもよい(幾つかの標準曲線に対して、これが当該条件を満たす曲線上の複数の点を返してもよく、したがって、変換された標本点から曲線上の点への距離を比較して当該最も近い点を決定し、例えば、標準曲線の有限部分の外に入る点を破棄し、かつ/または、当該変換された標本点からの最短距離を有する標準曲線上の点を選択する必要があってもよい)。入力曲線の定義に応じて、かかる分析的計算が、例えば、入力曲線がベジエ曲線として定義されるとき世界空間内で可能であるかもしれないが、例えば、対応する標準曲線が放物線であるときは標準空間内で可能であるかもしれない。 With respect to the sample points in world space that are converted to standard space, the points on the standard curve in standard space that are closest to the converted sample points may be determined in any suitable and desired manner. Preferably, the points on the standard curve closest to each of the transformed sample points are analytically determined in standard space. The closest point may be determined by determining a point on the standard curve whose tangent to the standard curve is orthogonal to the vector from the transformed sample point to the point on the standard curve (several standard curves). In contrast, this may return multiple points on the curve that satisfy the condition, thus comparing the distances from the transformed sample points to the points on the curve to determine the closest point, eg, It may be necessary to discard points that fall outside the finite portion of the standard curve and / or select a point on the standard curve that has the shortest distance from the transformed sample point). Depending on the definition of the input curve, such an analytical calculation may be possible in world space, for example, when the input curve is defined as a Bezier curve, but for example, when the corresponding standard curve is a parabola. It may be possible within standard space.
入力曲線が固定長を有する、例えば、開始点および終点により定義されるとき、標準曲線の一部の開始点または終点が、変換された標本点から標準曲線上の点へのベクトルと標準曲線の接線が直交する標準曲線(例えば、当該部分の外部)上の(最も近い)点より近くてもよく、例えば、当該曲線の開始点または終点が標本点に最も近い当該曲線上の点であってもよい。したがって好適には、変換された標本点に最も近い標準曲線上の点を決定するステップはまた、当該変換された標本点から標準曲線の一部の開始点と終点への距離を決定し、当該開始点または当該終点のうち1つが当該変換された標本点に最も近い標準曲線上の点であるかどうかを判定するステップを含む(したがって好適には、処理回路はそのように構成される)。 When the input curve has a fixed length, eg, defined by a start and end points, some start or end points of the standard curve are the vector from the transformed sample point to the point on the standard curve and the standard curve. The tangents may be closer than the (closest) point on the orthogonal standard curve (eg, outside the part), eg, the start or end point of the curve is the point on the curve closest to the sample point. May be good. Thus, preferably, the step of determining the point on the standard curve closest to the transformed sample point also determines the distance from the transformed sample point to some of the start and end points of the standard curve. It comprises the step of determining if one of the start point or the end point is a point on the standard curve closest to the transformed sample point (thus preferably the processing circuit is so configured).
好適には、特定の変換された標本点に最も近い標準曲線上の点を決定するステップは、当該変換された標本点と当該変換された標本点に最も近い標準空間内の標準曲線上の点の間の距離を決定するステップを含み(およびしたがって好適には、処理回路はそのように構成され)、例えば、標準空間内の当該変換された標本点に最も近い標準曲線上の点を決定するステップが、所与の変換された標本点と標準曲線の間の距離を最小化するステップを含んでもよい。これにより、当該曲線を囲む当該標本点の各々に対して、当該標本点から当該標本点に対する当該曲線上の対応する最も近い点への距離を決定し、レンダリング出力を生成するとき、例えば、符号付き距離場の一部として、レンダリング出力を生成するとき世界空間において値を再度計算する必要なしに、当該曲線上の最も近い点への距離を使用することが可能となる。 Preferably, the step of determining the point on the standard curve closest to a particular transformed sample point is the transformed sample point and the point on the standard curve in the standard space closest to the transformed sample point. Including the step of determining the distance between (and thus preferably the processing circuit is configured as such), eg, determining the point on the standard curve closest to the transformed sample point in standard space. The step may include a step that minimizes the distance between a given transformed sample point and the standard curve. Thereby, for each of the sample points surrounding the curve, the distance from the sample point to the corresponding nearest point on the curve with respect to the sample point is determined, and when the rendering output is generated, for example, a reference numeral. As part of the distance field, it is possible to use the distance to the closest point on the curve without having to recalculate the values in world space when generating the rendered output.
変換された標本点と標準曲線上の最も近い点の間の距離を、ルックアップ・テーブルを用いて決定してもよい。あるいは当該変換された標本点と標準曲線上の最も近い点の間の距離を、例えば、ハードウェアに焼かれた分析的計算として分析的に計算してもよい。ルックアップ・テーブルを使用する場合、これを、(例えば、入力曲線の大部分は放物線の天底に近い標準曲線の部分に対応するので、ルックアップ・テーブルに格納されたデータの量を最小化するために)標準曲線の特定の(例えば、有限の)範囲にわたって提供してもよい。分析的計算は当該範囲外で実施される。さらに、必要に応じて使用するために、複数のルックアップ・テーブルを使用して、例えば、標準曲線の異なる部分をカバーしてもよく、複数の標本点からの距離は予め決定され、格納される。これにより、これらの距離を再計算する必要を削減し、したがってリアルタイム処理を削減することが支援される。 A look-up table may be used to determine the distance between the transformed sample point and the closest point on the standard curve. Alternatively, the distance between the transformed sample point and the closest point on the standard curve may be analytically calculated, for example, as a hardware-burned analytical calculation. If you use a lookup table, do this (for example, minimize the amount of data stored in the lookup table because most of the input curve corresponds to the portion of the standard curve near the top of the parabola. It may be provided over a specific (eg, finite) range of the standard curve. Analytical calculations are performed outside this range. In addition, multiple lookup tables may be used to cover different parts of the standard curve, for example, for use as needed, and the distances from multiple sample points are pre-determined and stored. The curve. This helps reduce the need to recalculate these distances and thus reduce real-time processing.
さらなる実施形態では、例えば、テクスチャ内に格納され、標本点から曲線上の最も近い点への距離を決定するために提供されるルックアップ・テーブルに加えて、入力曲線に対応する標準曲線(例えば、世界空間から標準空間への決定された変換も含む)を予め決定し格納してもよい。さらなる情報、例えば、(例えば、標本点をその中で定義できる入力曲線(複数可)周囲の境界ボックスを定義することによって)標本点から曲線上の最も近い点への距離および/または入力曲線または曲線の最大範囲を決定する際に使用するための式をまた、適切に必要に応じて予め決定し格納してもよい。 In a further embodiment, for example, a standard curve corresponding to the input curve (eg, in addition to the lookup table stored in the texture and provided to determine the distance from the sample point to the closest point on the curve). , Including the determined conversion from world space to standard space) may be predetermined and stored. Further information, such as the distance from the sample point to the nearest point on the curve (eg, by defining a bounding box around the input curve (s) around which the sample point can be defined) and / or the input curve or Formulas for use in determining the maximum range of curves may also be appropriately pre-determined and stored as needed.
例えば、入力曲線(複数可)がレンダリングすべきグリフを定義するとき、フォントのフォーマットが当該情報の一部または全部を含んでもよい。 For example, when the input curve (s) define the glyphs to be rendered, the font format may include some or all of that information.
入力曲線が直線であるとき、好適には、必要に応じて例えば回転、変換および拡大のうち1つまたは複数を用いて、世界空間内の入力曲線が標準空間において軸、例えば、x軸上で変換される。標準曲線上の最も近い点は次いで単に、例えば、直線が変換されている軸に沿った当該変換された標本点のx座標である。入力曲線が固定長を有するとき、例えば、開始点および終点により定義されるとき、例えば、当該変換された標本点のx座標が、例えば、標準曲線の開始点と終点のx座標の間に存在する場合、当該変換された標本点に最も近い標準曲線上の点は当該変換された標本点のx座標である。例えば、当該変換された標本点のx座標が標準曲線の開始点と終点の外部に存在するとき、当該変換された標本点に最も近い標準曲線上の点は、当該変換された標本点のうち開始点または終点に近いものである。固定長を有する入力曲線に対して、標準空間内の直線セグメントは、標準空間においてx=0とx=1の間で走るように拡大できるが、これは必要ではない。 When the input curve is straight, preferably the input curve in world space is on an axis, eg, the x-axis, in standard space, preferably using one or more of rotation, transformation and expansion as needed. Will be converted. The closest point on the standard curve is then simply, for example, the x-coordinate of the transformed sample point along the axis on which the straight line is transformed. When the input curve has a fixed length, for example, when defined by the start and end points, for example, the x-coordinate of the transformed sample point exists, for example, between the x-coordinates of the start and end points of the standard curve. If so, the point on the standard curve closest to the transformed sample point is the x-coordinate of the transformed sample point. For example, when the x-coordinate of the transformed sample point is outside the start and end points of the standard curve, the point on the standard curve closest to the transformed sample point is among the transformed sample points. It is close to the start point or end point. For an input curve with a fixed length, a straight line segment in standard space can be expanded to run between x = 0 and x = 1 in standard space, but this is not necessary.
標準曲線上の変換された標本点に最も近い点が標準空間内で決定されると、当該最も近い点を、例えば世界空間と入力曲線に対して決定された標準空間との間の変換の逆を用いて、標準空間から世界空間に変換してもよい。したがって当該方法が、複数の標本点ごとに、世界空間と標準空間の間の当該変換の逆を用いて、当該決定された最も近い点を標準空間から世界空間に変換し、それにより、入力曲線を囲む世界空間内の標本点の各々に対して、世界空間内の入力曲線上の対応する最も近い点を決定するステップを含んでもよい(および処理回路がそのように構成されてもよい)。レンダリング出力を生成するステップが、次いで、レンダリング出力を生成するとき、世界空間内の標本点に対する入力曲線上の決定された最も近い点を使用してもよい。しかし、後述するようにこれは必要でないかもしれない。なぜならば、例えば標本点から曲線への距離を決定しかつ/または当該曲線のどちらの側に標本点が存在するかを判定するための当該決定された最も近い点の使用を標準空間で同様に実施してもよいからである。 If the point closest to the transformed sample point on the standard curve is determined in standard space, then the closest point is the inverse of the transformation between world space and the standard space determined for the input curve, for example. May be used to convert from standard space to world space. Thus, for each sample point, the method transforms the determined closest point from standard space to world space using the reverse of the transformation between world space and standard space, thereby producing an input curve. For each of the sample points in the world space surrounding, a step may be included (and the processing circuit may be configured as such) to determine the corresponding closest point on the input curve in the world space. The step of producing the rendered output may then use the closest determined point on the input curve to the sample point in world space when generating the rendered output. However, this may not be necessary, as described below. This is because, for example, the use of the closest determined point to determine the distance from the sample point to the curve and / or to which side of the curve the sample point is located is similarly used in standard space. This is because it may be carried out.
複数の入力曲線があるとき、例えば、形状(例えば、グリフ)のアウトラインを形成するとともに、標本点ごとに対応する標準曲線上の最も近い点を、複数の入力曲線の各々に対して別々に、例えば、各入力曲線を囲む別の組の標本点に対して決定してもよく、当該決定は、入力曲線ごとに決定された標準空間内で実施され、複数の標準曲線および/または入力曲線の各々における最も近い点(標準曲線または入力曲線の開始点または終点であってもよい)が各入力曲線を囲む1組の標本点に対して決定され、標準空間内で決定された最も近い点を必要ならば世界空間に変換する(再び、必要に応じて、入力曲線ごとの1組の標本点が、入力曲線の1つまたは複数または全部を囲んでもよい)。 When there are multiple input curves, for example, the outline of the shape (eg, glyph) is formed, and the closest point on the corresponding standard curve for each sample point is set separately for each of the plurality of input curves. For example, it may be determined for another set of sample points surrounding each input curve, the determination being performed within a standard space determined for each input curve, of multiple standard curves and / or input curves. The closest point in each (which may be the start or end point of the standard or input curve) is determined for a set of sample points surrounding each input curve, and the closest point determined in standard space. Convert to world space if necessary (again, if desired, a set of sample points per input curve may enclose one or more or all of the input curves).
複数の曲線上のこれらの最も近い点を次いで(標本点が、当該複数の入力曲線の2つ以上例えば全部に対して標準空間内で当該最も近い点を決定させたとき)互いに対して比較して、例えば、当該標本点からの距離を当該複数の曲線上の最も近い点の各々とそれぞれ比較することによって、各標本点への当該複数の曲線上の最も近い点を決定することができる。例えば標本点から最も近い点への距離を用いた当該最も近い点の間のこの比較を、世界空間内または標準空間内で実施してもよい。標準空間内で実施するとき、例えば異なる拡大が異なる入力曲線を標準空間に変換するのに必要である場合、入力曲線の標準空間への変換を使用する必要があるかもしれない。世界空間で実施されるとき、当該決定された最も近い点および/または当該標本点からそこまでの距離を、必要に応じて、それぞれ入力曲線に対して決定された逆変換を用いて標準空間から世界空間に変換すべきである。 These closest points on a plurality of curves are then compared to each other (when the sample points determine the closest point in standard space for two or more, for example, all of the input curves). For example, by comparing the distance from the sample point with each of the closest points on the plurality of curves, the closest point on the plurality of curves to each sample point can be determined. This comparison between the closest points, for example using the distance from the sample point to the closest point, may be performed in world space or standard space. When performed within standard space, it may be necessary to use conversion of input curves to standard space, for example if different enlargements are needed to convert different input curves to standard space. When performed in world space, the closest determined point and / or the distance from the sample point to it, if necessary, from standard space using the inverse transformation determined for the input curve, respectively. It should be transformed into world space.
別の実施形態では、標本点の各々に対して、全体としての複数の曲線(またはそのサブセット)への最も近い点を、(例えば、全ての複数の入力曲線を囲む標本点の適切に選択された配列に対して)決定してもよい。これにより、複数の曲線のうち1つの上の単一の最も近い点(当該曲線のうち1つの開始点または終点であってもよい)を標本点の各々に対して決定することができる。当該最も近い点を、当該複数の入力曲線の1つまたは複数でループして各標本点に最も近い点を決定、即ち、当該複数の曲線の1つまたは複数のうちどちらに当該最も近い点が存在するかを判定することによって決定してもよい。 In another embodiment, for each of the sample points, the closest point to the overall curve (or a subset thereof) is selected appropriately (eg, the sample points surrounding all the input curves). It may be determined (for the sequence). This allows a single closest point on one of a plurality of curves (which may be the start or end point of one of the curves) to be determined for each of the sample points. The closest point is looped on one or more of the plurality of input curves to determine the closest point to each sample point, that is, the closest point to one or more of the plurality of curves. It may be determined by determining whether it exists.
再度、当該実施形態における最も近い点の決定を世界空間内または標準空間内で実施してもよく、任意の変換および/または拡大が必要に応じて実施される。曲線の終点の近くに存在する標本点に対して、特に標準空間で動作するとき、2つ以上の曲線のうちどちらに当該最も近い点が存在するかを判定するために注意を要する。例えば、2つの入力曲線が、当該曲線のうちどれに標本点が最も近いかが即座に明らかでないように、形状の隅を形成してもよい。 Again, the determination of the closest point in the embodiment may be performed in world space or standard space, with any transformation and / or expansion performed as needed. Care must be taken to determine which of two or more curves has the closest point to a sample point that is near the end of the curve, especially when operating in standard space. For example, the two input curves may form corners of the shape so that it is not immediately clear which of the curves the sample point is closest to.
上述の実施形態の両方において、標本点に対する複数の曲線上の(単一の)最も近い点が一旦決定されると、当該最も近い点が存在する標準曲線または入力曲線の識別が標本点ごとに決定(および、例えば格納)されるのが好ましい。 In both of the above embodiments, once the (single) closest point on a plurality of curves to a sample point is determined, the identification of the standard curve or input curve where the closest point exists is identified for each sample point. It is preferably determined (and stored, for example).
標本点の各々から全体として複数の曲線上の対応する(単一の)最も近い点への距離に対して、例えば、(標準空間内または世界空間内の何れかで、必要な場合は適切な変換を用いて)複数の入力曲線の各々に対して当該距離を比較して、(世界空間または標準空間内で)同様な決定を行ってもよい。 Appropriate, if necessary, for the distance from each of the sample points to the corresponding (single) nearest point on multiple curves as a whole, for example, either in standard space or in world space. Similar decisions may be made (in world space or standard space) by comparing the distances for each of the multiple input curves (using transformations).
所与の標本点に最も近い複数の曲線上の1つまたは複数の点を、当該複数の入力曲線の全てを用いて決定してもよいが、好適には、当該最も近い点が、当該複数の入力曲線の一部のみに対して決定され、例えば、1つまたは複数の入力曲線の事前に選択されたグループが当該複数の入力曲線から決定される。1つまたは複数の入力曲線を、当該複数の入力曲線、例えば、事前に選択されたグループから、任意の適切かつ所望の方法で、例えば、複数の入力または対応する標準曲線のどちらに(例えば、変換された)標本点の各々が最も近いかおよび/または複数の入力曲線のどちらが問題の標本点が入るタイルに存在するかの粗い決定に基づいて、選択してもよい。当該決定に対して使用するために有限数の入力曲線のみを選択することで、必要な処理の削減が支援される。 One or more points on a plurality of curves closest to a given sample point may be determined using all of the plurality of input curves, but preferably, the closest point is the plurality of points. Is determined for only a portion of the input curves of, eg, a preselected group of one or more input curves is determined from the plurality of input curves. One or more input curves from the plurality of input curves, eg, a preselected group, in any suitable and desired manner, eg, either multiple inputs or corresponding standard curves (eg,). The choice may be based on a rough determination of whether each of the (transformed) sample points is closest and / or which of the input curves is in the tile containing the sample points in question. Selecting only a finite number of input curves to use for that decision helps reduce the processing required.
(レンダリング出力がグリフ含むとき、当該グリフのアウトラインが1つまたは複数の入力曲線により定義され、入力曲線内部の領域は当該グリフを表示するために適切に陰影を施す必要があることは理解される。当該グリフ内の任意の特定の点を囲むか、または当該グリフ外部の任意の特定の点に近い複数の入力曲線がありうるが、標本点が当該グリフの内部に入るか外部に入るかの判定を、単純に、当該複数の入力曲線のうちどれに当該最も近い点が存在するかを判定することによって行ってもよい)。 (It is understood that when the rendered output contains a glyph, the outline of the glyph is defined by one or more input curves and the area inside the input curve needs to be properly shaded to display the glyph. There can be multiple input curves that surround any particular point within the glyph or are close to any particular point outside the glyph, but whether the sample point is inside or outside the glyph. The determination may be made simply by determining which of the plurality of input curves has the closest point).
変換された標本点と当該変換された標本点に最も近い標準曲線上の点の間の距離がまた標準空間で決定されるとき、好適には、当該距離は、当該標本点の各々に対して、標準曲線から入力曲線への逆変換を用いて、例えば、当該曲線上の最も近い点に沿って標準空間から世界空間に変換される。 When the distance between the transformed sample point and the point on the standard curve closest to the transformed sample point is also determined in standard space, the distance is preferably for each of the sample points. , The inverse transformation from the standard curve to the input curve is used, for example, to transform from standard space to world space along the nearest point on the curve.
標準空間または世界空間における(標準曲線または入力曲線上の)最も近い点をそれぞれ、および利用可能なときは標準空間または世界空間内の当該標本点から当該最も近い点への距離を、レンダリング出力を生成するために使用される処理回路に直接渡してもよい(当該変換された標本点から標準曲線上の最も近い点への距離がまだ標準空間内で決定されておらず、かつ/または世界空間に変換されていないとき、好適には、世界空間内の標本点から(入力曲線上の)最も近い点への距離が、標本点ごとに、例えば入力曲線上の最も近い点と当該標本点を用いて決定される。これを、必要に応じて、標準空間または世界空間において決定してもよい)。しかし、当該方法が、標本点ごとに当該曲線上の最も近い点を格納するステップを含んでもよい(および処理回路はそのように構成される)。最も近い点ごとに、当該値を必要に応じて標準空間または世界空間に格納してもよい。 Render output the closest points (on the standard or input curve) in standard space or world space, and the distance from the sample point in standard space or world space to the closest point, respectively, when available. It may be passed directly to the processing circuit used to generate (the distance from the transformed sample point to the nearest point on the standard curve has not yet been determined in standard space and / or in world space. When not converted to, preferably, the distance from the sample point in world space to the closest point (on the input curve) is, for each sample point, eg, the closest point on the input curve and the sample point. It is determined using, which may be determined in standard space or world space, if desired). However, the method may include a step of storing the closest point on the curve for each sample point (and the processing circuit is configured as such). For each closest point, the value may be stored in standard space or world space as needed.
標本点の初期集合に対する既に決定された情報、例えば、標本点から曲線上の最も近い点への距離に基づいてさらなる組の標本点に対して情報が決定されると、当該情報をまた、例えば、標本点の初期集合に対して決定された対応する情報に沿って格納するのが好ましい。 If information has already been determined for an initial set of sample points, eg, for a further set of sample points based on the distance from the sample points to the closest point on the curve, then that information is also eg, for example. , It is preferable to store according to the corresponding information determined for the initial set of sample points.
標本点から最も近い点への距離が(必要に応じて、標準空間または世界空間において)決定されるとき、好適には、当該方法は、標本点ごとに、当該標本点から曲線上の最も近い点への距離を、例えば、標本点ごとに入力曲線上の最も近い点に沿って格納するステップを含む(および処理回路はそのように構成される)。距離ごとの格納された値が、標準空間内にあってもよいが、世界空間内にあるのが好ましい。当該標本点から当該曲線上の最も近い点への変換された距離を格納することで、(例えば、標本点ごとに格納された当該曲線上の最も近い点を用いて)当該距離を再度決定する必要性が回避される。 When the distance from the sample point to the nearest point is determined (in standard space or world space, if necessary), the method is preferably the closest on the curve from the sample point, for each sample point. It includes, for example, a step of storing the distance to a point along the closest point on the input curve for each sample point (and the processing circuit is configured as such). The stored value for each distance may be in standard space, but is preferably in world space. Redetermining the distance (eg, using the closest point on the curve stored for each sample point) by storing the converted distance from the sample point to the closest point on the curve. The need is avoided.
当該距離の値を、任意の適切かつ所望の方法で(必要に応じて、標準空間または世界空間において)格納してもよい。当該距離値を、例えば、それが計算された生の形式で格納してもよい。しかし、1実施形態では、当該距離値が閾値より大きいとき、当該距離値は閾値またはデフォルト値に、切り詰められ、例えば設定される。当該決定された距離値を閾値の値まで格納することのみによって、記憶空間を最小化することができる。標本点が曲線に近く、当該距離の知識を有するのが重要であり、例えば、特殊なレンダリング効果を生成するために使用できるとき、実際の距離値が利用可能である。しかし、当該距離の範囲の外部で、例えば、入力曲線から遠く離れた標本点に対して、少なくとも閾値であるので、入力曲線上の最も近い点への距離の正確な値を知るのは必要でなくてもよい。 The value of the distance may be stored in any suitable and desired way (as needed, in standard space or world space). The distance value may be stored, for example, in the raw form in which it was calculated. However, in one embodiment, when the distance value is greater than the threshold, the distance value is truncated to, for example, set to the threshold or default value. The storage space can be minimized only by storing the determined distance value up to the threshold value. It is important that the sample points are close to a curve and have knowledge of the distance, for example, the actual distance value is available when it can be used to generate a special rendering effect. However, outside the range of the distance, for example, for a sample point far away from the input curve, it is at least a threshold, so it is necessary to know the exact value of the distance to the nearest point on the input curve. It does not have to be.
複数の入力曲線があるとき、(例えば、最も近い点が存在する曲線の識別に沿った)全体として当該複数の曲線に対する標本点から当該曲線への距離または当該複数の入力曲線の各々に対する標本点から当該曲線への距離、あるいはまたはその代わりとして、対応する最も近い点(複数可)を必要に応じて格納してもよい。 When there are multiple input curves, the distance from the sample point to the curve as a whole (for example, along the identification of the curve where the closest point exists) or the sample point for each of the plurality of input curves. The distance from to the curve, or in its place, the corresponding closest point (s) may be stored, if desired.
距離(複数可)(あるいはまたはその代わりとして最も近い点(複数可))を、レンダリング出力を生成するときに当該情報が利用可能となるように、を任意の適切かつ所望の形式で(必要に応じて標準空間および/または世界空間内に)任意の適切な所望の記憶部に格納してもよい。好適な実施形態では距離(複数可)(あるいはまたはその代わりとして最も近い点(複数可))は、標本点の各々に対して、1つまたは複数のグラフィックス・テクスチャの形式で格納される。これは、グラフィックス・テクスチャが特定の地理的位置の配列の点でデータを格納することを意図するだけでなく、テクスチャの形式のデータを格納することで、グラフィックス処理システムに一般的に取り込まれた既存のテクスチャ・マッピング・プロセスを、本発明の方式でレンダリング出力を生成するために使用できるので、特に有利かつ有益である。 The distance (s) (or the closest point (s) instead) in any suitable and desired format (needed) so that the information is available when generating the rendered output. It may be stored in any suitable desired storage (in standard space and / or world space accordingly). In a preferred embodiment, the distance (s) (or the closest point (s) instead) are stored in the form of one or more graphics textures for each of the sample points. Not only is this intended for graphics textures to store data at points in an array of specific geographic locations, but it is also commonly incorporated into graphics processing systems by storing data in the form of textures. It is particularly advantageous and beneficial because the existing texture mapping process can be used to generate rendered output in the manner of the present invention.
また、この形式のグラフィックス・テクスチャの生成はそれ自体新規であり有利でありうると考えられる。したがって、本発明はまた、かかるテクスチャの構築にまで拡張される。 Also, the generation of this form of graphics texture is considered to be novel and advantageous in itself. Therefore, the present invention also extends to the construction of such textures.
したがって第3の態様によれば、本発明は、入力曲線を用いてレンダリング出力を生成するとき、グラフィックス処理システムにおいて使用するためのグラフィックス・テクスチャを生成する方法を提供する。当該方法は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定するステップと、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定するステップと、
当該標本点の各々に対して、当該標本点から当該曲線上の当該決定された最も近い点への距離を決定するステップと、
テクセルの配列を含むグラフィックス・テクスチャを生成するステップであって、各テクセルは当該標本点のうち少なくとも1つに対応し、当該少なくとも1つの標本点に対して、少なくとも1つの標本点から当該曲線への当該決定された距離(複数可)に関連付けられる、ステップと、
を含む。
Therefore, according to a third aspect, the present invention provides a method of generating a graphics texture for use in a graphics processing system when generating a rendered output using an input curve. The method is
For the input curve defined in world space
Steps to determine the part of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to part of the standard curve,
For each of the multiple sample points in the world space surrounding the input curve
Convert the sample point from world space to standard space using the determined transformation between world space and standard space.
In standard space, determine the point on the determined part of the standard curve that is closest to the transformed sample point.
Thereby, for each of the transformed sample points in the standard space surrounding the standard curve, the step of determining the corresponding closest point on the standard curve in the standard space, and
For each of the sample points, the step of determining the distance from the sample point to the determined nearest point on the curve, and
A step in generating a graphics texture containing an array of texels, where each texel corresponds to at least one of the sample points and for the at least one sample point the curve from at least one sample point. The steps associated with the determined distance (s) to
including.
第4の態様から見たとき、本発明は、入力曲線を用いてレンダリング出力を生成するとき、グラフィックス処理システムにおいて使用するためのグラフィックス・テクスチャを生成するための装置を提供する。当該装置は、
世界空間で定義された入力曲線に対して、
入力曲線に対応する標準空間で定義された標準曲線の一部および入力曲線を標準曲線の一部にマップするのに必要な変換を決定し、
入力曲線を囲む世界空間内の複数の標本点の各々に対して、
世界空間と標準空間の間の当該決定された変換を用いて当該標本点を世界空間から標準空間に変換し、
標準空間において、当該変換された標本点に最も近い標準曲線の当該決定された部分上の点を決定し、
それにより、標準曲線を囲む標準空間内の当該変換された標本点の各々に対して、標準空間内の標準曲線上の対応する最も近い点を決定し、
当該標本点の各々に対して、当該標本点から当該曲線上の当該決定された最も近い点への距離を決定し、
テクセルの配列を含むグラフィックス・テクスチャを生成する
ように構成された処理回路を備える。各テクセルは、当該標本点のうち少なくとも1つに対応し、当該少なくとも1つの標本点に対して、少なくとも1つの標本点から当該曲線への当該決定された距離(複数可)に関連付けられる。
Seen from a fourth aspect, the present invention provides an apparatus for generating a graphics texture for use in a graphics processing system when generating a rendered output using an input curve. The device is
For the input curve defined in world space
Determine the part of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to part of the standard curve.
For each of the multiple sample points in the world space surrounding the input curve
Convert the sample point from world space to standard space using the determined transformation between world space and standard space.
In standard space, determine the point on the determined part of the standard curve that is closest to the transformed sample point.
Thereby, for each of the transformed sample points in the standard space surrounding the standard curve, the corresponding closest point on the standard curve in the standard space is determined.
For each of the sample points, determine the distance from the sample point to the determined nearest point on the curve.
It includes a processing circuit configured to generate a graphics texture containing an array of texels. Each texel corresponds to at least one of the sample points and is associated with the determined distance (s) from at least one sample point to the curve for the at least one sample point.
当業者により理解されるように、本発明のこれらの態様および実施形態は、必要に応じて本明細書で説明した本発明の好適かつ任意の機能のうち任意の1つを含むことができ、含むことが好ましい。 As will be appreciated by those skilled in the art, these aspects and embodiments of the invention may optionally include any one of the preferred and arbitrary functions of the invention described herein. It is preferable to include it.
例えば、各標本点から曲線上の対応する決定された最も近い点への距離を標準空間または世界空間内で決定してもよい。当該決定された距離(複数可)を標準空間または世界空間内に格納してもよく、したがってテクスチャを標準空間または世界空間内に格納してもよい(即ち、テクセルを標準空間または世界空間内に配置してもよい)。しかし好適には、テクスチャ(およびテクセル)、およびしたがってまた好適には、決定された距離は中間空間に格納される。当該中間空間が任意の適切な所望の空間であってもよい。好適には、当該中間空間は世界空間の拡大および/または変換されたバージョンである。これを例えば、当該標本点を囲む境界ボックスのテクセルの基準点、例えば、左下隅にある、原点に設定してもよい。 For example, the distance from each sample point to the corresponding closest determined point on the curve may be determined in standard space or world space. The determined distance (s) may be stored in standard space or world space, and thus textures may be stored in standard space or world space (ie, texels in standard space or world space). May be placed). But preferably the texture (and texels), and thus also preferably, the determined distance is stored in the intermediate space. The intermediate space may be any suitable desired space. Preferably, the intermediate space is an expanded and / or transformed version of world space. This may be set, for example, to the texel reference point of the bounding box surrounding the sample point, eg, the origin in the lower left corner.
同様に、当該1つまたは複数のテクスチャ内の各テクセルは好適には、それを、そのテクセル位置に関する標準曲線上の解(複数可)に関する上述の情報を関連付ける。換言すれば各テクセルは、標準空間内の少なくとも1つの位置を表し、標準空間内のその位置に対する標準曲線上の最も近い点への距離に関する情報を格納する。例えば、好適には、当該情報が、当該最も近い点(複数可)のパラメトリック値および/または当該最も近い点(複数可)が存在する入力曲線(複数可)のアイデンティティを含んでもよい。 Similarly, each texel in the one or more textures preferably associates it with the above-mentioned information about the solution (s) on the standard curve for that texel position. In other words, each texel represents at least one position in standard space and stores information about the distance to the nearest point on the standard curve with respect to that position in standard space. For example, preferably, the information may include a parametric value of the closest point (s) and / or an identity of the input curve (s) in which the closest point (s) resides.
当該情報がテクスチャの形式で格納される場合、当該テクスチャ(複数可)は任意の適切な所望のサイズであることができ(即ち、必要に応じて任意数のテクセルを含む)、各テクセルがそれに関連付けられた任意の所望の数のデータ成分を有してもよい。しかし、各テクセルは好適には、それを標準空間のみにおける単一の離散位置に関連する情報に関連付ける。 If the information is stored in the form of a texture, the texture (s) can be of any suitable desired size (ie, including any number of texels as needed), and each texel will have it. It may have any desired number of associated data components. However, each texel preferably associates it with information related to a single discrete position in standard space only.
当該テクスチャがまた任意の他の適切な所望の情報を格納してもよい。例えば当該テクスチャが、世界空間内の入力曲線(複数可)の定義(入力曲線(複数可)の任意の制御点を含む)、標準空間内の標準曲線(複数可)の定義(標準曲線(複数可)の任意の制御点を含む)、対応する標準曲線(複数可)への入力曲線(複数可)の変換、(例えば、決定された最も近い点、最も近い点への距離および/または入力曲線のどちらの側に標本点が存在するかの判定に関する)アンチエイリアシング情報、および当該曲線が楕円または双曲線であるとき入力曲線および/または標準曲線の離心率のうち1つまたは複数を格納してもよい。当該テクスチャがまた、例えば入力曲線をストローク曲線として描画すべきという入力曲線(複数可)に関する後処理情報、好適にはまたその幅を格納してもよい(本例では、当該曲線への距離を、ストローク曲線の幅の内部または外部に標本点が入るかどうかを判定するために使用する)。 The texture may also store any other suitable desired information. For example, the texture defines an input curve (s) in world space (including arbitrary control points of the input curve (s)) and a standard curve (s) in standard space (standard curve (s)). Includes any control point (possible), conversion of the input curve (s) to the corresponding standard curve (s), (eg, determined closest point, distance to the closest point and / or input) Stores anti-aliasing information (for determining which side of the curve the sample point is on) and one or more of the eccentricity of the input curve and / or standard curve when the curve is elliptical or bicurve. May be good. The texture may also store, for example, post-processing information about the input curve (s) that the input curve should be drawn as a stroke curve, preferably also its width (in this example, the distance to the curve). , Used to determine if the sample points are inside or outside the width of the stroke curve).
複数の入力曲線があるとき、好適には、当該複数の異なる入力曲線に関する情報が、例えば、上で詳述したように、例えば、同一のテクスチャに一緒に格納される。これを、例えば、入力曲線を当該テクスチャ内で空間的に分離し、次いで問題の入力曲線に対する当該テクスチャ内の適切な領域を標本化することによって行ってもよい。さらに、入力曲線(複数可)がグリフに関連するとき、好適には、当該テクスチャは、フォントを、例えば、フォント・アトラスの形式で作り出す全てのグリフに関する情報を格納する。当該複数の入力曲線に関して、これを、例えばグリフをテクスチャ内で空間的に分離し、次いで問題のグリフに対するテクスチャ内の適切な領域を標本化することにより行ってもよい。 When there are a plurality of input curves, preferably, information about the plurality of different input curves is stored together, for example, in the same texture, as detailed above. This may be done, for example, by spatially separating the input curve within the texture and then sampling the appropriate region within the texture for the input curve in question. Further, when the input curve (s) are associated with glyphs, the texture preferably stores information about all glyphs that produce the font, eg, in the form of a font atlas. For the plurality of input curves, this may be done, for example, by spatially separating the glyphs within the texture and then sampling the appropriate area within the texture for the glyph in question.
上述のように、本発明のこれらの態様および実施形態において、入力曲線を囲む標本化されたテクスチャ点(テクセル)が、例えば標準区間または世界空間内のテクスチャ点から当該曲線上の最も近い点への距離を示す標本化されたテクスチャ値、およびおそらく世界空間内のテクスチャ点に最も近い曲線上の点、およびテクスチャに格納できる任意の他の情報を与えるように、入力曲線を表すテクスチャが構成される。したがって、テクスチャを標本化するとき、標本化されたテクスチャ値を、曲線のどちらの側に標本化された点が配置されているかを判定するために使用してもよく、次いでこれを使用して、入力曲線を用いてレンダリング出力を生成することができる。 As described above, in these embodiments and embodiments of the invention, the sampled texture points (texels) surrounding the input curve are, for example, from a texture point in a standard interval or world space to the closest point on the curve. The texture representing the input curve is configured to give a sampled texture value that indicates the distance of, and perhaps the point on the curve closest to the texture point in world space, and any other information that can be stored in the texture. The curve. Therefore, when sampling a texture, the sampled texture value may be used to determine on which side of the curve the sampled points are located, and then this is used. , Input curves can be used to generate rendered output.
必要な情報をテクスチャに格納することの追加または代替として、例えば中間ステップとして、決定された情報の一部または全部、またはレンダリング出力を生成するために使用される情報を決定するプロセスの一部として決定された情報を、グラフィックス処理システム内の任意の適切な所望の位置、例えば、上述のキャッシュに格納してもよい。これは、当該情報がリアルタイムに決定されているときに都合が良いかもしれない。別の実施形態では、当該決定された情報を、局所的に、例えば、グラフィックス処理システム内のオンチップのメモリ、例えば、画素局所記憶に格納してもよい。 As an addition or alternative to storing the required information in the texture, for example as an intermediate step, part or all of the determined information, or as part of the process of determining the information used to generate the rendered output. The determined information may be stored in any suitable desired location within the graphics processing system, eg, the cache described above. This may be useful when the information is determined in real time. In another embodiment, the determined information may be stored locally, eg, in on-chip memory in a graphics processing system, eg, pixel local storage.
曲線上の最も近い点を用いて決定できる(例えば、テクスチャに格納できる)任意の他の適切な所望の情報、例えば、標本点から当該曲線上の最も近い点への距離に沿って最も近い点の配列が決定されると(例えば、テクスチャに格納されると)、入力曲線を用いたレンダリング出力を次いで、任意の適切かつ所望の方法で、標準空間内の変換された標本点に対する標準曲線上の決定された最も近い点を用いて生成することができる。これを、標準曲線上の当該決定された最も近い点を直接用いて、またはそこから導出された情報から、例えば、(必要に応じて、標準空間または世界空間において)世界空間内の入力曲線に変換し戻すときの当該最も近い点または標本点から曲線上の最も近い点への距離から行ってもよい。 Any other suitable desired information that can be determined using the closest point on the curve (eg, stored in the texture), eg, the closest point along the distance from the sample point to the closest point on the curve. Once the array of is determined (eg, stored in a texture), the rendered output with the input curve is then on the standard curve for the transformed sample points in standard space in any suitable and desired way. Can be generated using the closest determined points of. This can be applied directly to the determined closest point on the standard curve, or from information derived from it, to an input curve in world space, for example (in standard space or world space, if necessary). It may be performed from the distance from the nearest point or the sample point to the closest point on the curve when converting back.
上述のように、曲線への最も近い点を決定し格納するステップを、レンダリング出力を生成するときの後の利用のためにオフラインで実施し例えばテクスチャに格納してもよい。好適には、当該曲線上の最も近い点はリアルタイムに決定されるが、好適には、当該曲線上の最も近い点(および/または距離のようなそれに関連する情報)もまた、それらが将来の利用できるように、例えば、同一の入力曲線がレンダリング出力を後に生成するために使用される場合に、例えばテクスチャに格納される。 As mentioned above, the step of determining and storing the closest point to the curve may be performed offline and stored, for example, in a texture for later use when generating rendered output. Preferably, the closest points on the curve are determined in real time, but preferably the closest points on the curve (and / or related information such as distance) are also those in the future. As available, for example, if the same input curve is used to later generate the rendered output, it will be stored, for example, in a texture.
好適には、レンダリング出力は、(必要に応じて標準空間または世界空間内で)曲線上の決定された最も近い点から標本点への決定された距離を用いて生成される。したがって、好適な実施形態では、入力曲線を用いてレンダリング出力を生成するために、当該曲線上の決定された最も近い点から標本点への距離が当該曲線を囲む複数の標本点の各々に対して決定されているとき、当該方法は、
世界空間内の複数の標本点の各々に対して、
入力曲線上の当該決定された最も近い点から当該標本点への当該決定された距離を、当該標本点に対応する世界空間内の位置で標本化するステップと、
世界空間内の当該標本点に対する当該決定された距離を用いてレンダリング出力を生成するステップと
を含む(およびグラフィックス処理システムはそのように構成される処理回路を含む)。
Preferably, the rendered output is generated using the determined distance from the closest determined point on the curve (in standard space or world space as needed) to the sample point. Therefore, in a preferred embodiment, the distance from the determined closest point on the curve to the sample point is for each of the plurality of sample points surrounding the curve in order to generate a rendered output using the input curve. When determined, the method is
For each of the multiple sample points in world space
A step of sampling the determined distance from the determined closest point on the input curve to the sample point at a position in the world space corresponding to the sample point.
It includes a step of generating a rendered output using the determined distance to the sample point in world space (and the graphics processing system includes a processing circuit so configured).
レンダリング出力が、任意の適切かつ所望の方法を用いて、例えば上述の当該決定された距離の利用を通じて当該決定された最も近い点を生成してもよい。好適な実施形態では、入力曲線と標本点に関連するさらなる情報(複数可)を決定してもよく、これを、当該決定された最も近い点を用いてレンダリング出力を生成するときに決定してもよく、かつ/または、当該最も近い点を、それを例えばテクスチャに格納しレンダリング出力を生成するときに使用できるように決定してもよい。 The rendered output may generate the determined closest point using any suitable and desired method, eg, through the use of the determined distance described above. In a preferred embodiment, additional information (s) related to the input curve and sample points may be determined when generating the rendered output using the closest determined points. And / or the closest point may be determined so that it can be used, for example, in a texture to generate rendered output.
好適な実施形態では、当該方法は、
曲線を囲む複数の標本点の各々に対して、
当該曲線上の当該決定された最も近い点を用いて、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定し、
それにより、当該曲線を囲む当該標本点の各々に対して、当該曲線のどちらの側で標本点をそのまま扱うべきであるかを判定し、
レンダリング出力を生成するときに当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定を使用するステップと、
を含む(およびグラフィックス処理システムはそのように構成される処理回路を含む)。当該曲線のどちらの側で標本点をそのまま扱うべきであるかを判定するステップを、必要に応じて、標準空間または世界空間で実施してもよい。
In a preferred embodiment, the method is
For each of the multiple sample points surrounding the curve
The closest determined point on the curve is used to determine on which side of the curve the sample point should be treated as is.
As a result, for each of the sample points surrounding the curve, it is determined on which side of the curve the sample points should be treated as they are.
A step that uses the determination on which side of the curve the sample point should be treated as is when generating the rendered output, and
(And the graphics processing system includes processing circuits so configured). The step of determining on which side of the curve the sample points should be treated as is may be performed in standard space or world space, as appropriate.
したがって、それらが一旦決定される(例えば、テクスチャから標本化される)と、当該曲線上の当該決定された最も近い点の各々を使用して、当該曲線のどちらの側で当該標本点の各々をそのまま扱うべきであるかを判定するのが好ましい。当該決定を、任意の適切な所望の方式で実施してもよい。当該曲線のどちらの側に標本点が存在するかを知ることで、当該情報を用いてレンダリング出力を生成することができる。例えば、標本点が(例えば、入力曲線により少なくとも部分的に定義されるアウトラインを有する)オブジェクト内に存在する場合、当該オブジェクトの色に陰影を施してもよく、または、(例えば、入力曲線により少なくとも部分的に定義されるアウトラインを有するオブジェクトにより投射される)影の中に存在する場合、それに適切に陰影を施してもよい。 Therefore, once they are determined (eg, sampled from a texture), each of the sample points on either side of the curve is used using each of the determined closest points on the curve. It is preferable to determine whether or not should be treated as it is. The decision may be made in any suitable and desired manner. By knowing which side of the curve the sample point is on, the information can be used to generate a rendered output. For example, if the sample points are within an object (eg, with an outline that is at least partially defined by the input curve), the color of the object may be shaded, or at least (eg, by the input curve). If present in a shadow (projected by an object with a partially defined outline), it may be shaded appropriately.
曲線上の決定された最も近い点を用いて標本点ごとに、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップが、当該曲線に関する当該標本点のタンジェント・チェックを含んでもよい。当該標本点と当該曲線上の対応する最も近い点の間の距離が当該標本点に対して決定されているとき、入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップがまた、当該標本点から当該曲線上の最も近い点への距離を使用してもよい。好適には、標本点から当該曲線上の対応する最も近い点への距離を決定するステップはまた、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップを含む。再度、これを、標準空間または世界空間で実施してもよい。 For each sample point using the closest determined point on the curve, the step of determining on which side of the curve the sample point should be treated as is is the tangent check of the sample point for the curve. May include. When the distance between the sample point and the corresponding closest point on the curve is determined for the sample point, determine on which side of the input curve the sample point should be treated as is. The step may also use the distance from the sample point to the closest point on the curve. Preferably, the step of determining the distance from the sample point to the corresponding closest point on the curve also includes the step of determining on which side of the curve the sample point should be treated as is. Again, this may be done in standard space or world space.
複数の入力曲線があるとき、全体として複数の入力曲線に対して標本点ごとに当該曲線上の最も近い点が決定され(例えば、格納される)とき、この最も近い点を使用して、入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定してもよい。あるいは、最も近い点が標本点ごとに当該複数の曲線の各々(例えば、その少なくとも一部)に対して決定されているとき、これらの最も近い点を、当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するために一緒に使用してもよい。 When there are multiple input curves, and the closest point on the curve is determined (for example, stored) for each sample point for multiple input curves as a whole, this closest point is used for input. It may be determined on which side of the curve the sample point should be treated as is. Alternatively, when the closest points are determined for each of the plurality of curves (for example, at least a part thereof) for each sample point, these closest points are set on which side of the curve the sample points. May be used together to determine if should be treated as is.
好適には、複数の入力曲線があるとき、当該決定された最も近い点を用いて、入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかを判定するステップは、当該複数の曲線(例えば、その少なくともその一部)に関連する標本点の平均タンジェント・チェックを実施するステップを含む(および好適には、処理回路はそのように構成される)。当該平均タンジェント・チェックを、当該決定された最も近い点と当該複数の曲線の全てを用いて、例えば、グリフに対して実施してもよいが、当該複数の曲線のサブセットのみを用いて当該平均タンジェント・チェックを実施することが好ましい。当該平均タンジェント・チェックを標準空間または世界空間で実施してもよい。 Preferably, when there are multiple input curves, the step of using the determined closest point to determine on which side of the input curve the sample point should be treated as is is the multiple curves. Includes (and preferably, the processing circuit is configured as such) a step of performing an average tangent check of the sample points associated with (eg, at least a portion thereof). The average tangent check may be performed on the glyph using all of the determined closest points and the curves, for example, but the average using only a subset of the curves. It is preferable to perform a tangent check. The average tangent check may be performed in standard space or world space.
好適には、当該平均タンジェント・チェックに使用される当該複数の曲線のサブセットは、例えば、当該曲線上の最も近い点(当該標本点に最も近い点であってもよい)を決定するときに使用された同一のサブセットを用いて事前に選択される。 Preferably, the subset of the curves used for the mean tangent check is used, for example, to determine the closest point on the curve (which may be the closest point to the sample point). Preselected using the same subset created.
入力曲線が直線を含むとき、好適には、変換された最も近い点を用いて、当該曲線のどちらの側で標本点をそのまま扱うべきであるかを決定するステップは、当該標本点が標準空間内の軸の上または下にあるかどうかを判定するステップを含む(および好適には、処理回路はそのように構成される)。 When the input curve contains a straight line, the step of deciding on which side of the curve the sample point should be treated as is, preferably using the closest transformed point, is that the sample point is in standard space. Includes a step to determine if it is above or below the inner axis (and preferably the processing circuit is configured as such).
曲線上の標本点と対応する最も近い点の間の距離、および/または当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかが当該標本点の各々に対して判定されると、これらの情報の一方または両方を例えばテクスチャに格納してもよい。当該格納された情報が、標準空間および/または世界空間内のものであってもよい。したがって、これらの情報の両方が決定されると、それらを、符号付き距離場の形式で使用(例えば、格納)してもよい(例えば、当該曲線の側で、当該標本化は格納された曲線への距離の符号を判定することに関する)。上述のように、好適には、当該距離を決定するステップはまた、当該曲線のどちらの側に標本点が存在するかを判定し、その結果、標本点ごとのこれらの2つの情報を、容易に使用しかつ/または一緒に格納してもよい。 When it is determined for each of the sample points the distance between the sample point on the curve and the corresponding closest point, and / or on which side of the curve the sample point should be treated as is. One or both of these pieces of information may be stored, for example, in a texture. The stored information may be in standard space and / or world space. Therefore, once both of these pieces of information have been determined, they may be used (eg, stored) in the form of a signed distance field (eg, on the side of the curve, the sampling is the stored curve). To determine the sign of the distance to). As mentioned above, preferably, the step of determining the distance also determines on which side of the curve the sample points are present, thus facilitating these two pieces of information for each sample point. May be used and / or stored together.
好適には、レンダリング出力を生成するステップは、標準空間または世界空間内の標本点から曲線上の最も近い点への距離、および/または当該曲線のどちらの側で標本点をそのまま扱うべきであるかの判定を使用する(および処理回路はそのように構成される)。当該標本点から当該曲線上の最も近い点への距離が以前に決定されているとき、決定された値、例えば、テクスチャに格納された値を使用することができる。あるいは、当該標本点から当該曲線上の最も近い点への距離を、当該標本点および当該曲線上の最も近い点から決定してもよい。 Preferably, the step of producing the rendered output should treat the sample point as is, on either side of the curve, and / or the distance from the sample point in standard space or world space to the closest point on the curve. Use the determination (and the processing circuit is configured that way). When the distance from the sample point to the closest point on the curve has been previously determined, the determined value, eg, the value stored in the texture, can be used. Alternatively, the distance from the sample point to the closest point on the curve may be determined from the sample point and the closest point on the curve.
したがって、特に好適な1組の実施形態では、標準空間または世界空間内の当該標本点から当該曲線上の最も近い点への距離の両方、および当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの決定を使用して、レンダリング出力を、例えば、符号付き距離場の方式で生成する。 Therefore, in a particularly preferred set of embodiments, both the distance from the sample point in standard space or world space to the closest point on the curve, and on either side of the curve, the sample point is treated as is. The render output is produced, for example, in the manner of a signed distance field, using the determination of what should be done.
レンダリング出力を、(そこからそれらが標準空間に変換される)曲線上の最も近い点を決定するために世界空間内で、例えば、当該標本点が最初に定義された空間内で生成してもよく、したがって当該最も近い点への距離が例えばテクスチャに格納される空間内で生成してもよく、またはレンダリング出力を、例えば、ディスプレイが出力される空間に対応する異なる「サーフェス」空間内で生成してもよい。この後者のケースは、テキストを例えば、観察者には平坦に向いていないサーフェスに3Dで描画するときに都合の良いかもしれない。これは仮想現実または拡張現実で有用かもしれない。 Even if the rendered output is generated in world space to determine the closest points on the curve (from which they are converted to standard space), for example, in the space in which the sample points were originally defined. Well, therefore the distance to the nearest point may be generated, for example, in the space stored in the texture, or the rendered output may be generated, for example, in a different "surface" space corresponding to the space in which the display is output. You may. This latter case may be useful, for example, when drawing text in 3D on a surface that is not flat to the observer. This may be useful in virtual or augmented reality.
この後者の実施形態では、曲線上の決定された最も近い点を、直接標本化してもよく、レンダリング出力を生成するために使用してもよい。しかし、好適には、入力曲線を用いてレンダリング出力を生成するために、当該曲線上の当該決定された最も近い点から標本点への距離が当該曲線を囲む複数の標本点の各々に対して決定されるとき、当該方法は好適には、
サーフェス空間内の複数の標本点の各々に対して、
入力曲線上の最も近い点から当該サーフェス空間内の当該標本点に対応する世界空間内の位置での当該標本点への当該決定された距離を標本化するステップと、
世界空間内の当該標本点に対する当該決定された距離を用いてレンダリング出力を生成するステップと
を含む(およびグラフィックス処理システムはそのように構成される処理回路を含む)。
In this latter embodiment, the closest determined points on the curve may be sampled directly or used to produce rendered output. However, preferably, in order to generate a rendered output using the input curve, the distance from the determined nearest point on the curve to the sample point is for each of the plurality of sample points surrounding the curve. When determined, the method preferably
For each of the multiple sample points in surface space
A step of sampling the determined distance from the closest point on the input curve to the sample point at a position in world space corresponding to the sample point in the surface space.
It includes a step of generating a rendered output using the determined distance to the sample point in world space (and the graphics processing system includes a processing circuit so configured).
当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定がされ(例えば、格納され)たとき、好適には、当該情報はまた、サーフェス空間内の複数の標本点の各々に対して、当該サーフェス空間内の当該標本点に対応する世界空間内の位置で標本化され、次いでレンダリング出力、例えば必要ならば、世界空間と当該サーフェス空間の間での情報の適切な変換を用いて生成するために使用される。別の実施形態では、当該標本点から入力曲線上の最も近い点への距離および/または当該曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定を当該サーフェス空間内で決定してもよい。 When it is determined (eg, stored) on which side of the curve the sample points should be treated as-is, the information is preferably also at each of the plurality of sample points in surface space. In contrast, it is sampled at a position in the world space that corresponds to the sample point in the surface space, and then with rendered output, eg, with the appropriate transformation of information between the world space and the surface space, if necessary. Used to generate. In another embodiment, the distance from the sample point to the closest point on the input curve and / or on which side of the curve the sample point should be treated as is is determined within the surface space. You may.
サーフェス空間内でレンダリング出力を生成するとき、好適には、入力曲線を用いてレンダリング出力を生成する際の最初のステップは、サーフェス空間(レンダリング出力が生成、例えば表示される空間)内の複数の標本点の各々に対して、当該曲線上の最も近い点から当該標本点に対応する世界空間内の位置での当該標本点への当該決定された距離を標本化することである(および好適には、また入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定)。このために、当該標本点に対する当該サーフェス空間と世界空間の間の適切な変換が、サーフェス空間と世界空間の間の関係に応じて、実施する必要があるかもしれない。世界空間から標準空間へのさらなる変換をまた、例えば、当該標本点に対して決定された情報を標準空間内で決定するだけでよく世界空間に変換し戻さなくてよい場合に、実施する必要があるかもしれない。 When generating rendered output in surface space, preferably the first step in generating rendered output using an input curve is multiple in surface space (the space in which the rendered output is generated, eg, displayed). For each of the sample points, it is to sample (and preferably) the determined distance from the closest point on the curve to the sample point at a position in world space corresponding to the sample point. Also determines on which side of the input curve the sample point should be treated as is). For this reason, an appropriate transformation between the surface space and the world space for the sample point may need to be performed, depending on the relationship between the surface space and the world space. Further conversion from world space to standard space also needs to be performed, for example, when the information determined for the sample point only needs to be determined in standard space and not converted back to world space. Might happen.
例えば、レンダリング出力が2D画像に関連しうるように、例えば、入力曲線が少なくともオブジェクトの一部、例えば、描画すべきグリフを形成するとき、当該サーフェス空間が、世界空間に平行な平面に存在してもよい。この場合、(それらが世界空間内の対応する標本点に適切にマップする必要がありうるように、当該サーフェス空間内の標本点が世界空間内の標本点と同じ密度で提供されてもよいが)当該サーフェス空間内の複数の標本点が世界空間内の複数の標本点に直接対応してもよいように、当該サーフェス空間が世界空間と同じ(または拡大因子内の)空間であってもよい。 For example, when the input curve forms at least part of an object, eg, a glyph to be drawn, so that the rendered output can relate to a 2D image, the surface space exists in a plane parallel to world space. You may. In this case, the sample points in the surface space may be provided at the same density as the sample points in the world space (so that they may need to be properly mapped to the corresponding sample points in the world space). ) Just as multiple sample points in the surface space may directly correspond to multiple sample points in the world space, the surface space may be the same space as the world space (or within the magnifying factor). ..
別の実施形態では、レンダリング出力が3Dシーンに関連し例えば曲線が陰影を作成するために使用される際、または(例えば、仮想現実のために)書込みが曲面に表示されるとき、当該標本点の変換をサーフェス空間と世界空間の間で実施してもよい。 In another embodiment, the sample point is when the rendered output is related to a 3D scene and, for example, a curve is used to create a shadow, or when a write is displayed on a curved surface (eg, for virtual reality). The transformation of may be performed between surface space and world space.
言及したように、入力曲線(およびしたがってまた提供される場合はテクスチャ)を使用して、入力曲線が少なくともその一部を形成するものと異なるオブジェクトを、例えば影を用いて描画してもよい。しかし好適には、入力曲線が描画されているオブジェクトの少なくとも一部を形成し、例えば、そのアウトラインを形成する。例えば、描画すべきオブジェクトが(フォントの一部として)グリフを含んでもよい。入力曲線を、任意の曲線表現、例えば、ベクトル・グラフィックスの形式で定義してもよい。好適には、入力曲線はスケーラブル・ベクトル・グラフィックス(SVG)フォーマットで定義される。 As mentioned, input curves (and textures, if provided) may be used to draw objects that differ from what the input curve forms at least in part, eg, with shadows. However, preferably, it forms at least a part of the object on which the input curve is drawn, eg, outlines it. For example, the object to be drawn may contain glyphs (as part of the font). The input curve may be defined in any curve representation, eg, in the form of vector graphics. Preferably, the input curve is defined in a scalable vector graphics (SVG) format.
レンダリング出力を生成するとき使用される入力曲線に関する情報、例えば、入力曲線上の最も近い点、標本点から入力曲線上の最も近い点への距離および/または入力曲線のどちらの側で当該標本点をそのまま扱うべきであるかの判定が決定されると、レンダリング出力を、任意の適切な所望の方式で、例えば、世界空間内で直接またはサーフェス空間から生成してもよい。テクスチャが決定され格納されると、これを、例えば、任意の適切なグラフィックス・テクスチャマッピング・プロセスを用いて実施してもよい。 Information about the input curve used when generating the rendered output, such as the closest point on the input curve, the distance from the sample point to the closest point on the input curve, and / or the sample point on either side of the input curve. Once it is determined that the should be treated as is, the rendered output may be generated in any suitable and desired manner, eg, directly in world space or from surface space. Once the texture is determined and stored, this may be done, for example, using any suitable graphics texture mapping process.
好適な実施形態では、レンダリング出力が現れるシーン領域をカバーする1つまたは複数のプリミティブを、例えば、サーフェス空間で最初に生成し、次いで当該1つまたは複数のプリミティブによりカバーされるシーン領域上で入力曲線に対する当該決定された情報を使用することによって、例えば、テクスチャを当該1つまたは複数のプリミティブに適用し、それに応じて当該1つまたは複数のプリミティブに陰影を施すことによって、レンダリング出力を例えば表示のために生成してもよい。 In a preferred embodiment, one or more primitives covering the scene area where the rendered output appears are first generated in surface space, for example, and then input on the scene area covered by the one or more primitives. Display the rendered output, for example, by using the determined information on the curve, eg, by applying a texture to the one or more primitives and thereby shading the one or more primitives accordingly. May be generated for.
描画すべき形状が現れるシーン領域をカバー、例えば、グリフをカバーする1つまたは複数の境界ボックスまたは囲むポリゴンを定義することによって、当該1つまたは複数のプリミティブを必要に応じて生成してもよい。 The one or more primitives may be generated as needed by defining one or more bounding boxes or surrounding polygons that cover the scene area where the shape to be drawn appears, eg, glyphs. ..
当該プリミティブを生成するとき、当該生成されたプリミティブ(複数可)が当該テクスチャの所望の(および適切な)領域のみを標本化するのを保証する必要であってもよい(これが、複数の入力曲線(または、例えば、グリフ)が同一のテクスチャで表現されるケースであってもよい)。 When generating the primitive, it may be necessary to ensure that the generated primitive (s) sample only the desired (and appropriate) region of the texture (which is the multiple input curves). (Or, for example, glyphs) may be represented by the same texture).
当該生成されたプリミティブを、次いで、生成されるプリミティブとフラグメント、例えば、当該1つまたは複数のプリミティブの各標本点(および/またはフラグメント)に適用される入力曲線を表現するテクスチャの内部の複数の標本点に、当該プリミティブの標本点(および/またはフラグメント)の位置に対応するテクスチャ内の位置を標本化することによって、ラスタライズしてもよい(好適にはバイリニア・フィルタリングのような適切なテクスチャ・フィルタリング・プロセスを用いてテクスチャを標本化すべきである)。これが、サーフェス空間内の1つまたは複数のプリミティブをカバーする標本点の配列を生成することと、これらの標本点を、当該決定された情報を例えばテクスチャから標本化できる世界空間に変換することであってもよい。 The generated primitive, then multiple generated primitives and fragments, eg, a plurality of textures inside a texture that represent the input curve applied to each sample point (and / or fragment) of the one or more primitives. The sample point may be rasterized by sampling the position in the texture corresponding to the position of the sample point (and / or fragment) of the primitive (preferably a suitable texture such as bilinear filtering). Textures should be sampled using a filtering process). This produces an array of sample points that cover one or more primitives in surface space, and transforms these sample points into world space where the determined information can be sampled, for example, from textures. There may be.
当該標本化された情報、例えば、テクスチャ値が次いで、例えば入力曲線のどちらの側で標本化位置(複数可)をそのまま扱うべきかおよび/または標本化位置(複数可)の入力曲線への距離の決定を用いて、対応する標本化位置(複数可)に適切に陰影を施すために使用される。当該決定に基づいて、複数の標本点は、必要に応じて例えば、グリフを含むシーンを正確に表示できるようにするための、赤、緑および青(RGB)色の値および「アルファ」透明値のような割り当てられたデータである。 On which side of the input curve the sampled information, eg, texture value, should be treated as is and / or the distance of the sampled position (s) to the input curve. Is used to properly shade the corresponding sampling position (s) using the determination of. Based on this decision, multiple sample points will have red, green and blue (RGB) color values and "alpha" transparency values to allow, for example, to accurately display scenes containing glyphs, if desired. Is the assigned data such as.
理解されるように、入力曲線上の標本点から最も近い点への距離がレンダリング出力を生成するとき利用されるために利用可能であるとき、これを使用して、例えば、入力曲線のエッジに対する閾値のみが利用可能であるときよりも複雑なレンダリング効果、例えば、回転、シェーディング等を実施できるようにしてもよい。 As will be understood, when the distance from the sample point on the input curve to the nearest point is available to be used when generating the rendered output, it can be used, for example, for the edges of the input curve. It may be possible to perform more complex rendering effects, such as rotation, shading, etc., than when only thresholds are available.
本発明は、「パイプライン」配置を有するレンダラ(この場合、レンダラはレンダリング・パイプラインの形である)のような、任意の形式または構成のレンダラに適用可能である。好適な実施形態では、ハードウェア・グラフィックス・レンダリング・パイプラインに適用される。本発明の様々な関数および要素等を、必要に応じて例えば、好適には、適切な機能ユニット、処理ロジック、プロセッサ、マイクロプロセッサ配置等により実装することができる。また、1実施形態では、本発明を最小機能で、例えば、必要最低限のバージョンで、グラフィックス処理パイプラインで実装してもよいことが考慮されている。かかるシステムは、低電力装置、例えば、ウェラブル、電子書籍リーダ等での使用に適しているかもしれない。 The present invention is applicable to renderers of any form or configuration, such as renderers with a "pipeline" arrangement, in this case the renderer is in the form of a rendering pipeline. In a preferred embodiment, it applies to the hardware graphics rendering pipeline. Various functions and elements of the present invention can be implemented, if necessary, for example, preferably with appropriate functional units, processing logic, processors, microprocessor arrangements, and the like. Further, in one embodiment, it is considered that the present invention may be implemented in the graphics processing pipeline with the minimum functions, for example, the minimum required version. Such a system may be suitable for use in low power devices such as wearables, e-readers and the like.
本発明は、即時モード・レンダリング、遅延モード・レンダリング、タイル・ベース・レンダリング等のような全ての形態のレンダリングに適用可能である。1つの好適な実施形態では、本発明は、遅延モード・レンダリングおよびタイル・ベースのレンダラで使用されそれらに対して使用される。 The present invention is applicable to all forms of rendering such as immediate mode rendering, delayed mode rendering, tile based rendering and the like. In one preferred embodiment, the invention is used in and for delayed mode rendering and tile-based renderers.
以上から理解されるように、本発明は特に、包括的にではないけれども、2Dまたは3Dのグラフィックス・プロセッサおよび処理装置に適用可能であり、したがって、本明細書で説明した本発明の態様の任意の1つまたは複数に従う装置を含むかまたはそれらに従って動作する2Dまたは3Dグラフィックス・プロセッサおよび2Dまたは3Dグラフィックス処理プラットフォームに拡張される。上述の特定の関数を実行するために必要な任意のハードウェアを条件として、かかる2Dまたは3Dグラフィックス・プロセッサは、2Dまたは3Dグラフィックス・プロセッサが含む通常の機能ユニット等の任意の1つまたは複数または全てを含むことができる。好適な実施形態では当該システムは、例えば、(例えば標準空間内の)標本点に最も近い曲線上の点および/または当該標本点から当該曲線上の最も近い点への距離を決定するように特に構成された固定機能ハードウェア・ユニットを含む。 As can be seen from the above, the present invention is not particularly comprehensive, but is applicable to 2D or 3D graphics processors and processors, and thus aspects of the invention described herein. Extends to 2D or 3D graphics processors and 2D or 3D graphics processing platforms that include or operate according to any one or more devices. Subject to any hardware required to perform the particular functions described above, such a 2D or 3D graphics processor may be any one or any of the usual functional units included in the 2D or 3D graphics processor. Can include multiple or all. In a preferred embodiment, the system is particularly designed to determine, for example, the point on the curve closest to the sample point (eg, in standard space) and / or the distance from the sample point to the closest point on the curve. Includes configured fixed-function hardware units.
本発明は、任意の適切な形態または構成のグラフィックス・プロセッサに適用可能である。本発明は特に、タイル・ベースのグラフィックス・プロセッサおよびグラフィックス処理システムに特に適用可能である。したがって好適な実施形態では、グラフィックス処理システムおよびグラフィックス処理パイプラインはそれぞれタイル・ベースのシステムおよびパイプラインである。 The present invention is applicable to any suitable form or configuration of graphics processor. The present invention is particularly applicable to tile-based graphics processors and graphics processing systems. Therefore, in a preferred embodiment, the graphics processing system and the graphics processing pipeline are tile-based systems and pipelines, respectively.
特に好適な実施形態では、本発明の様々な機能は、描画された、例えば、フラグメント、例えば表示装置向けフレーム・バッファに書き込まれたデータを生成し出力する単一のグラフィックス処理プラットフォームで実行される。 In a particularly preferred embodiment, the various functions of the invention are performed on a single graphics processing platform that generates and outputs drawn, eg, fragments, eg, data written to a display frame buffer. To.
本発明を、適切に構成されたマイクロプロセッサ・ベースのシステムのような任意の適切なシステムで実装することができる。好適な実施形態では、本発明は、コンピュータおよび/またはマイクロプロセッサ・ベースのシステムで実装される。 The present invention can be implemented in any suitable system, such as a well-configured microprocessor-based system. In a preferred embodiment, the invention is implemented in a computer and / or microprocessor based system.
本発明の様々な機能を任意の所望の適切な方式で実行することができる。例えば、本発明の機能を必要に応じてハードウェアまたはソフトウェアで実装することができる。したがって、例えば、特に断らない限り、本発明の様々な機能要素、段階および「手段」が、所望の方式で動作するようにプログラムできる適切な専用ハードウェア要素および/またはプログラム可能ハードウェア要素のような、様々な機能等を実施するように動作可能な適切な1つまたは複数のプロセッサ、1つまたは複数のコントローラ、機能ユニット、回路、処理ロジック、マイクロプロセッサ配置等を含んでもよい。 Various functions of the present invention can be performed in any desired and appropriate manner. For example, the functions of the present invention can be implemented in hardware or software as needed. Thus, for example, unless otherwise specified, such as appropriate dedicated hardware elements and / or programmable hardware elements in which the various functional elements, steps and "means" of the invention can be programmed to operate in a desired manner. It may include suitable one or more processors capable of performing various functions and the like, one or more controllers, functional units, circuits, processing logic, microprocessor arrangement and the like.
また、当業者により理解されるように、本発明の様々な機能、段階等を複製し、かつ/または、所与のプロセッサと並列に実行してもよいことに留意されたい。等しく、必要ならば、当該様々な処理段階が処理回路等を共有してもよい。 It should also be noted that various functions, stages, etc. of the invention may be duplicated and / or run in parallel with a given processor, as will be appreciated by those skilled in the art. Equally, the various processing steps may share processing circuits and the like, if desired.
上述の特定の関数を実行するのに必要な任意のハードウェアを条件として、当該データ処理システムおよびパイプラインは、データ処理パイプラインが含む通常の機能ユニット等の任意の1つまたは複数または全てを含むことができる。 Subject to any hardware required to perform the particular functions described above, the data processing system and pipeline may include any one or more or all of the normal functional units included in the data processing pipeline. Can include.
本発明の説明した態様および実施形態の全てが、必要に応じて、上述の好適な任意の機能の任意の1つまたは複数または全てを含むことができ、含むのが好ましいことも当業者には理解される。 It is also preferred to those skilled in the art that all of the described embodiments and embodiments of the present invention may, optionally, include any one or more or all of any of the above-mentioned suitable functions. Understood.
本発明に従う方法を、ソフトウェア、例えば、コンピュータ・プログラムを少なくとも部分的に用いて実装してもよい。したがって、さらなる態様から見たとき、本発明は、データ処理手段にインストールされたとき本明細書で説明した方法を実行するように特に適合されたコンピュータ・ソフトウェア、当該プログラム要素がデータ処理手段で実行されるときに本明細書で説明した方法を実施するためのコンピュータ・ソフトウェア・コード部分を含むコンピュータ・プログラム要素、および当該プログラムがデータ処理システムで実行されるとき本明細書で説明した方法の全てのステップを実施するように適合されたコード手段を含むコンピュータ・プログラムを提供することが分かる。当該データプロセッサが、マイクロプロセッサ・システム、プログラム可能FPGA(フィールドプログラム可能ゲートアレイ)等であってもよい。 The method according to the invention may be implemented using software, eg, a computer program, at least in part. Therefore, from a further aspect, the present invention is a computer software specifically adapted to perform the methods described herein when installed in a data processing means, such program elements performing in the data processing means. All of the computer program elements, including the computer software code portion for performing the methods described herein, and the methods described herein when the program is run on a data processing system. It can be seen that it provides a computer program that includes code means adapted to perform the steps in. The data processor may be a microprocessor system, a programmable FPGA (field programmable gate array), or the like.
本発明はまた、グラフィックス・プロセッサを動作するために使用されるとき、データ処理手段を備えたレンダラまたはマイクロプロセッサ・システムが、当該データ処理手段と関連して、当該プロセッサ、レンダラまたはシステムに本発明の方法のステップを実行させるかかるソフトウェアを含むコンピュータ・ソフトウェア・キャリアに拡張される。かかるコンピュータ・ソフトウェア・キャリアは、ROMチップ、CDROMRAM、フラッシュメモリまたはディスクのような物理記憶媒体であることができ、有線上の電子信号、光信号または衛星へのような無線信号等のような信号であることができる。 The present invention also, when used to operate a graphics processor, provides a renderer or microprocessor system with data processing means to the processor, renderer or system in connection with the data processing means. Extends to computer software carriers that include such software to perform the steps of the method of the invention. Such computer software carriers can be physical storage media such as ROM chips, CDROMRAM, flash memory or disks, and signals such as wired electronic signals, optical signals or wireless signals such as to satellites. Can be.
本発明の方法の全てのステップをコンピュータ・ソフトウェアにより実行する必要はなく、したがってさらに広い態様から本発明は、本明細書で説明した方法のステップの少なくとも1つを実行するためのコンピュータ・ソフトウェア、コンピュータ・ソフトウェア・キャリアにインストールされたかかるソフトウェアを提供することはさらに理解される。 It is not necessary to perform all the steps of the method of the invention by computer software, and thus from a broader aspect the invention is computer software for performing at least one of the steps of the method described herein. It is further understood to provide such software installed in a computer software carrier.
本発明をしたがって、コンピュータ・システムとともに使用するためのコンピュータ・プログラム製品として適切に具体化してもよい。かかる実装が、コンピュータ可読媒体、例えば、ディスク、CD-ROM、ROM、フラッシュメモリまたはハード・ディスクのような有形、非一時的媒体に固定された一連のコンピュータ可読命令を含んでもよい。当該実装がまた、コンピュータ・システムに、モデムまたは他のインタフェース装置を介して、有形媒体上で、または、無形に無線技術を用いて送信可能な一連のコンピュータ可読命令を含むことができる。有形媒体には光またはアナログ通信線が含まれるがこれらに限られない。無線技術には、マイクロ波、赤外線または他の送信技術が含まれるがこれらに限られない。当該一連のコンピュータ可読命令は、本明細書で前述した機能の全部または一部を具体化する。 The present invention may therefore be appropriately embodied as a computer program product for use with a computer system. Such implementation may include a set of computer readable instructions fixed to a computer readable medium, eg, a tangible, non-temporary medium such as a disk, CD-ROM, ROM, flash memory or hard disk. The implementation can also include a set of computer-readable instructions that can be transmitted to the computer system via a modem or other interface device, on tangible media or intangibly using wireless technology. Tangible media include, but are not limited to, optical or analog communication lines. Radio technologies include, but are not limited to, microwave, infrared or other transmission technologies. The series of computer-readable instructions embodies all or part of the functionality described herein.
かかるコンピュータ可読命令を、多数のコンピュータ・アーキテクチャまたはオペレーティングシステムで使用するための幾つかのプログラミング言語で書けることは当業者には理解される。さらに、かかる命令を、現在または将来の任意のメモリ技術を用いて格納してもよく、または、現在または将来の任意の通信技術を用いて送信してもよい。当該メモリ技術には半導体、磁気、または光が含まれるがこれらに限られず、当該通信技術には光、赤外線、またはマイクロ波が含まれるがこれらに限られない。コンピュータ・プログラム製品が、コンピュータ・システムにより、例えば、システムROMまたは固定ディスク上に事前にロードされるか、またはネットワーク、例えば、インターネットまたはワールド・ワイド・ウェブ上のサーバまたは電子掲示板から分散された、添付の印刷されたまたは電子文書、例えば、収縮包装されたソフトウェアを有する取外し可能媒体として配布されうることが考慮されている。 It will be appreciated by those skilled in the art that such computer-readable instructions can be written in several programming languages for use with many computer architectures or operating systems. In addition, such instructions may be stored using any current or future memory technology, or may be transmitted using any current or future communication technology. The memory technology includes, but is not limited to, semiconductor, magnetic, or light, and the communication technology includes, but is not limited to, light, infrared, or microwave. Computer program products are preloaded by a computer system, eg, on a system ROM or fixed disk, or distributed from a network, eg, a server or electronic bulletin board on the Internet or the Worldwide Web. It is considered that it can be distributed as an attached printed or electronic document, eg, a removable medium with shrink-packaged software.
次に本発明の幾つかの好適な実施形態を、添付図面を参照して例としてのみ説明する。 Next, some preferred embodiments of the present invention will be described only by way of reference with reference to the accompanying drawings.
上述のように、本発明の基本的な前提は、入力曲線を用いてレンダリング出力することであり、入力曲線上の最も近い点が、描画の際に使用するために決定されている様々な標本点の各々に対して決定され、例えば、入力曲線のどちらの側で標本点をそのまま扱うべきであるかを決定する。入力曲線が、描画すべきオブジェクトの少なくとも一部(例えば、そのエッジの少なくとも一部)を形成してもよく、または、例えば、シェーディングのためにレンダリング出力の一部として他の何らかの方法で使用される形状または曲線の少なくとも一部を形成してもよい。 As mentioned above, the basic premise of the present invention is to render and output using the input curve, and the closest points on the input curve are various specimens determined for use in drawing. Determined for each of the points, for example, on which side of the input curve the sample points should be treated as-is. The input curve may form at least a portion of the object to be drawn (eg, at least a portion of its edges), or is used in some other way, for example, as part of the rendered output for shading. May form at least a portion of the shape or curve.
本発明の好適な実施形態を次にグラフィックス処理システムを用いて、グリフ(フォントの一部としての文字のグラフィカル表現)の形でのテキストを描画する文脈で説明する。当該グリフのエッジは、1つまたは複数の入力曲線により定義される。当該実施形態では、符号付き距離場を用いて当該グリフを表すテクスチャが生成され、次いで、例えば、当該グリフのエッジを形成する曲線のどちらの側に標本点が存在するかを判定するために当該符号付き距離場を用いて、当該グリフを描画するためにテクスチャが標本化される。 A preferred embodiment of the present invention will then be described in the context of drawing text in the form of glyphs (graphical representation of characters as part of a font) using a graphics processing system. The edge of the glyph is defined by one or more input curves. In that embodiment, a signed distance field is used to generate a texture representing the glyph, and then, for example, to determine on which side of the curve forming the edge of the glyph the sample points are located. A signed distance field is used to sample the texture to draw the glyph.
図1は、本発明の1実施形態に従うテキスト文字列を描画するためのワークフローの概要を示す。最初のステップ(ステップ1)は、テキスト文字列、例えば、単語「reinforced」を含むレンダリング出力を生成するとき、グリフ(単語内の文字)ごとに1つ、1組の長方形の境界ボックスを定義することであり、当該ボックスはグリフごとにテクスチャを定義するために2つの三角形に分割される。当該境界ボックスがフォント・ファイルにより提供されてもよく、即ち、当該ボックスはグラフィックス処理システムに入力され、各ボックスの間の間隔は単語内の文字の各々の間の間隔を決定する。次に説明するように、独立なグリフごとの符号付き距離場を次いで計算することができる(ステップ2、図1)。
FIG. 1 shows an outline of a workflow for drawing a text character string according to one embodiment of the present invention. The first step (step 1) defines a set of rectangular bounding boxes, one for each glyph (characters in a word), when generating a rendered output containing a text string, eg, the word "reinforced". That is, the box is divided into two triangles to define the texture for each glyph. The bounding box may be provided by a font file, i.e. the box is entered into the graphics processing system and the spacing between each box determines the spacing between each letter in the word. A signed distance field for each independent glyph can then be calculated as described below (
図2は、一連の入力曲線により定義されるエッジを有するグリフ1を示す。
FIG. 2 shows a
表示するためのグリフ1を描画するために、グリフ1、または一般に、グリフ1を定義する情報が最初にグラフィックス処理システムに入力される。
In order to draw the
図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を表示するために、適切に陰影が付されている。
As shown in FIG. 2, the glyph 1 (for example, in the form of a vector graphics object) of the letter "O" is in the 2D world depending on the positions of the start and end control points and the intermediate control points of the curve. It is defined as a sequence of quadratic Bezier curves 2, 3, 4, 5, 6, 7, 8 and 9 in space. The exterior of the glyph is defined by four quadratic Bezier curves 2, 3, 4, 5 and the interior of the glyph is further defined by four quadratic Bezier curves 6, 7, 8 and 9. As will be described in more detail below, when the
レンダリング・プロセス中に、最初に、グリフ1を構成する構成二次ベジエ曲線2、3、4、5、6、7、8、9の各々を別々に処理する。二次ベジエ曲線2、3、4、5、6、7、8、9の各々に対して、当該曲線を囲む複数の標本点の各々に最も近い当該曲線上のの(標準空間における)点を決定できるように、世界空間内の曲線が標準空間内の標準曲線の対応する部分にマップされる。(標準空間内の当該最も近い点を決定することで、したがって当該曲線に対する正確に計算された符号付き距離場を決定できる正確な計算を実施することができる。)
During the rendering process, each of the constituent quadratic Bezier curves 2, 3, 4, 5, 6, 7, 8 and 9 that make up
世界空間内の最初に定義された入力曲線を標準空間内の標準曲線に変換するプロセスを次に説明する。 The process of converting the first defined input curve in world space to the standard curve in standard space is described below.
図3は、世界空間11内の入力ベジエ曲線10に対する標準空間13内の標準曲線12の対応する部分10’’への例示的な変換TUCを示す。世界空間11内の入力ベジエ曲線10は、世界空間内の当該曲線を定義する開始制御点b0、終了制御点b2および中間制御点b¬1を有する。当該曲線は、対応する開始点b0’と対応する終点b2’を有する標準空間13内の標準曲線12の部分10’’にマップされる。
Figure 3 shows a corresponding exemplary transformation T UC into portions 10 '' of the
上述のように予め定義された標準曲線12は、曲線のファミリ内の全ての曲線を回転、変換および/または均一な拡大のみを用いてその上に(または少なくともその一部の上に)変換できる単一のまたは基本曲線であり、標準空間13内で定義される。例えば、世界空間11内で定義される入力ベジエ曲線10が(3つの制御点により定義される)二次曲線である本実施形態では、標準曲線12は曲線y=x2である。
The predefined
理解されるように、本実施形態を実装するために、世界標準変換(TUC)、即ち、世界空間11内で定義される入力ベジエ曲線10を標準空間13内の標準曲線12の対応する部分10’’にマップする変換を決定する必要がある。
As will be appreciated, in order to implement this embodiment, the world standard transformation ( TUC ), i.e., the
任意の所与の二次ベジエ曲線に対して本実施形態において世界空間11内の入力ベジエ曲線10から標準空間13内の標準曲線12への変換が導出される方式を図4に示す。
FIG. 4 shows a method in which a transformation from an
2D空間の投影表現において、2D空間a内の点を、成分(ax、ay、1)を有する3D内のベクトルAとして表す。当該表現は均一であり、したがって、AおよびλAは同一の点を表す。 In the projection representation of the 2D space, the point in 2D space a, expressed as a vector A in 3D with components (a x, a y, 1 ). The expression is uniform and therefore A and λA represent the same point.
一般的な二次曲線は、 A typical quadratic curve is
の形の式により定義される。 It is defined by an expression of the form.
これは成分式 This is a component formula
と等価である。 Is equivalent to.
一般的な二次ベジエ曲線は、 A typical quadratic Bezier curve is
を満たす係数により当該式から定義される。 It is defined from the equation by the coefficient that satisfies.
二次ベジエ曲線に対する入力が2D内の3つの制御点、即ち、b0、b1およびb2であり、b0とb2は2つの終点であり、b1は中間点であると仮定する。これから、標準曲線のセグメントへの世界標準変換y=x2を決定する必要がある。 Assume that the inputs to the quadratic Bezier curve are three control points in 2D, namely b 0 , b 1 and b 2 , b 0 and b 2 are two end points, and b 1 is an intermediate point. .. From now on, it is necessary to determine the world standard transformation y = x 2 into the segment of the standard curve.
上述のように、当該世界標準変換は、(行列Mrにより定義される)回転、(行列Mtにより定義される)変換および/または均一な拡大(行列Ms=kIにより定義され、kは定数でありdIは単位行列である)のみから成る。 As described above, the global standard conversion is defined by (defined by the matrix M r) rotation, (defined by the matrix M t) conversion and / or uniform expansion (matrix M s = kI, k is It is a constant and dI is an identity matrix).
最初の段階は、成分式の係数(a、b、c、f、g、h)を3つの制御点b0、b1、b2。から発見することである。次いでこれらの係数を使用して、入力ベジエ曲線を標準曲線上に持ってくるのに必要な回転、変換および拡大を計算することができる。 The first step is to set the coefficients of the component equation (a, b, c, f, g, h) to three control points b 0 , b 1 , b 2 . Is to discover from. These coefficients can then be used to calculate the rotation, transformation and expansion required to bring the input Bezier curve onto the standard curve.
であり、上記係数は、 And the above coefficient is
で与えられる。次に、世界空間内の点を標準空間に、組み合わされた回転、変換および拡大を介して変換する世界標準変換(TUC)、即ち、3×3の行列を発見する必要がある。当該変換の効果は、ベジエ曲線の終点を標準曲線y=x2にマップすることである。 Given in. Next, we need to find a world standard transformation (TUC ), a 3x3 matrix, that transforms points in world space into standard space through combined rotation, transformation, and expansion. The effect of this transformation is to map the end point of the Bezier curve to the standard curve y = x 2.
本実施形態における世界標準変換(TUC)を決定するためのプロセスの第1の段階は、当該変換の回転成分(回転行列Mr)を決定することである。必要な回転は、世界空間11内の入力二次ベジエ曲線10の対称軸21を標準空間13内の標準曲線12の対称軸23に平行になるように回転する必要があるとして決定される。図4(i)を参照。
The first step in the process for determining the world standard transformation ( TUC ) in this embodiment is to determine the rotation component (rotation matrix Mr ) of the transformation. The required rotation is determined as it is necessary to rotate the axis of
当該回転は、入力ベジエ曲線10の二次形式を操作して回転行列Mrを計算することによって決定される。先ず、回転行列Mrを
The rotation is determined by calculating the rotation matrix M r by operating the quadratic form of the
として定義する。ここで、 Defined as. here,
であり、シグナム関数は、 And the signum function is
として定義される。 Is defined as.
という条件が入力二次ベジエ曲線10上の1組の点に対して保証され、その結果、cosθとsinθに関する式内の平方根の引数は両方とも正であろう。(a=b=0の場合、これは直線であり、以下で説明するように前もって識別され別々に扱われるべきである)。fとgに対する変換された値をしたがって回転
Is guaranteed for a set of points on the input
を介して決定することができる。 Can be determined through.
世界標準変換の回転成分が決定されると、変換成分(即ち、回転行列Mt)が次に決定される。当該プロセスを図4(ii)に示す。 Once the rotation component of the world standard transformation is determined, the transformation component (ie, the rotation matrix M t ) is determined next. The process is shown in FIG. 4 (ii).
必要な変換が、回転された入力曲線14の天底20を標準空間13内の原点(0、0)に、即ち、標準曲線12の対応する天底22で変換する必要があるとして決定される。当該変換は再度、入力ベジエ曲線10の二次形式を操作して変換行列Mtを計算することによって決定される。先ず、回転行列Mtが
The required transformation is determined as the
として定義される。ここで、 Is defined as. here,
である。最後に、世界標準変換の均一な拡大成分(即ち、拡大行列Ms)を決定する。これを図4(iii)に示す。 Is. Finally, the uniform expansion component of the world standard transformation (ie, the augmented matrix Ms ) is determined. This is shown in FIG. 4 (iii).
理解されるように、世界空間11内の入力曲線10は、一度標準空間13、即ち、図4(iii)内の曲線16に適切に回転され変換されており、y=x2/|λ|の形である。1/|λ|は決定すべき拡大因子である。再度、当該変換は、拡大行列Msを計算するために入力ベジエ曲線10の二次形式を操作することによって決定される。第1の拡大行列Msは、
As will be understood, the
により定義される。ここで、 Defined by. here,
である。世界空間11内で定義された入力ベジエ曲線10を標準空間13内の標準曲線12の対応する部分10’’にマップする必要がある世界標準変換、即ち、TUC=MsMtMr=1/|λ|MtMrが計算されると、標準曲線12の実際の部分10’’を当該決定された変換を入力ベジエ曲線10のパラメータに適用することによって決定することができる。当該プロセスを図3に示す。
Is. A world standard transformation that requires the
図3に示すように、世界空間11内で定義され、制御点b0、b1、b2を有する入力ベジエ曲線10が、世界標準変換TUCを用いて標準曲線12の対応する部分10’’にマップされる。
As shown in FIG. 3, an
標準曲線セグメント10’’の開始点と終点b0’、b2’は、標準空間13内の入力ベジエ曲線10のパラメトリック(x)範囲を定義する。したがって、図3に示すように、標準曲線セグメント10’’は、標準空間13内のパラメトリック位置xAおよびxBの間で延伸するパラメトリック範囲を有する。
Standard curve segment 10 '' of the start and end points b 0 ', b 2' defines the parametric (x) range of the
本実施形態では、世界空間11内の1組の標本点が、(例えば、図2に示すように)グリフ1を形成する入力ベジエ曲線2、3、4、5、6、7、8、9の各々に対して定義される。任意の所与の入力ベジエ曲線(例えば、図3に示すように世界空間11内で定義された入力ベジエ曲線10)に対して、当該入力ベジエ曲線上の最も近い点が、当該入力ベジエ曲線を囲む標本点の各々に対して決定される。
In this embodiment, the input Bezier curves 2, 3, 4, 5, 6, 7, 8, 9 in which a set of sample points in
世界空間11内の所与の標本点に対して、入力ベジエ曲線10上の最も近い点は、先ず世界空間11内の入力ベジエ曲線10を標準空間13内の標準曲線12の部分10’’にマップするための以前に決定した世界標準変換TUCを使用して、世界空間内の標本点を標準空間13内の対応する位置に変換することによって決定される。世界空間11内の標本点に対応する標準空間13内の変換された標本点に最も近い、標準曲線12の部分10’’上の点を、当該変換された標本点から標準曲線への距離を最小化することにより決定する。
The closest point on the
座標(u、v)を用いた変換された標本点に対して、当該点から当該曲線への距離を、標準空間内のx座標のみで書くことができる。即ち、 For a transformed sample point using coordinates (u, v), the distance from that point to the curve can be written only in x-coordinates in standard space. That is,
である。D2を最小化するのはより簡単であり、これは、 Is. Minimizing D 2 is easier, which is
を与える。ここで、 give. here,
である。この三次方程式は既に標準形であり、したがって閉じた形の解を直ちに書き下すことができる。aとbの関係に応じて、考えるべき3つのケースがある。 Is. This cubic equation is already in the canonical form, so a closed-form solution can be written down immediately. There are three cases to consider depending on the relationship between a and b.
であるとき、1つの実根のみが When is, only one real root
により定義される。引数が実数であることが保証され、立方根が正の引数と負の引数の両方に対して定義されている(負の数の立方根は負である)ので、ここでの立方根は良く定義されている。 Defined by. The cube root here is well defined because the arguments are guaranteed to be real and the cube root is defined for both positive and negative arguments (negative number cube roots are negative). There is.
であるとき、3つの根のうち2つが一致する縮退のケースである。しかし、大域的最小点が求められているので、どの変曲点にも関心がなく、x1に対する前述の式は依然として成り立ち、一つの最小点が存在する(1つの解と2つの解を格納する必要性の間の遷移曲線は、 When is, it is a case of degeneracy in which two of the three roots match. However, storage since global minimum is sought, which inflection points without any interest, above equation still holds the relative x 1, one minimum point is present (the one solution and the two solutions The transition curve between the needs to do is
である。この曲線は放物線の焦点外にある)。 Is. This curve is out of the focus of the parabola).
であるとき、これは3つの相違なる実根を有する三次方程式に対応し、 When, this corresponds to a cubic equation with three different real roots,
により与えられる。ここで、 Given by. here,
である。中間の根(φに依存)は、大域的最大値であり、無視することができる。これらのうち外の2つの根は極小値に対応し、関心がある。絶対最小値(当該2つの極小値のうち1つ)が、変換された標本点に最も近い標準曲線12の部分10’’上の点であることは必要でなくてもよい。なぜならそれが標準曲線12の部分10’’の外部に入りうるからである。当該外部の根の一方または両方が標準曲線12の部分10’’の内部に入るかどうかを見るためのチェックが実施され、当該変換された標本点から当該2つの外部の根に対応する標準曲線12の部分10’’上の点への距離を必要ならば比較して、当該変換された標本点に最も近い標準曲線12の部分10’’上の点を決定できるようにする。
Is. The middle root (depending on φ) is the global maximum and can be ignored. The outer two roots correspond to the minimum values and are of interest. It does not have to be that the absolute minimum (one of the two minimums) is the point on
この当該変換された標本点に最も近い標準曲線12の部分10’’上の点が決定されると、標準空間13内の当該変換された標本点の位置から当該点への距離が計算される(上述のようにこれが当該最も近い点の決定の一部として既に計算されていない場合)。
When the point on the part 10'' of the
当該変換された標本点から当該曲線上の最も近い点への距離を、任意の適切な所望の方法で決定してもよい。当該変換された標本点のx座標とy座標が既知であり、当該最も近い点のx値が決定されているので、y=x2(標準曲線)が当該最も近い点のy座標を与える。次いで当該距離がこれらの2つの組の座標から容易に決定される。 The distance from the transformed sample point to the closest point on the curve may be determined by any suitable and desired method. Since the x-coordinate and y-coordinate of the converted sample point are known and the x-value of the closest point is determined, y = x 2 (standard curve) gives the y-coordinate of the closest point. The distance is then easily determined from these two sets of coordinates.
当該距離を計算する1つの方法は、標準曲線12の部分10’’の開始点b0’を原点に変換し、次いで正のx軸に配置されるように終点b2’を回転することである。
One way to calculate the distance converts the 'start point b 0' of portion 10 'of the
座標(x0、y0)を有する開始点b0’と座標(x1、y1)を有する終点b2’をもつ標準曲線12の部分10’’に対して、第1の変換行列
Coordinates (x 0, y 0) with respect to the start point b 0 'and the coordinate endpoints b 2 having (x 1, y 1)' having a
定義され、回転行列 Defined and rotation matrix
が定義され、ここで、 Is defined, where
である。これは、終点を(d、0)に回転する。当該点を点(1、0)に拡大できるが、そうする実益はない。 Is. This rotates the end point to (d, 0). This point can be expanded to a point (1, 0), but there is no real benefit to doing so.
したがって、当該変換行列をR=RθTと定義でき、変換された点の座標は(u、v)として表される。次いで当該曲線上の最も近い点への距離sが Therefore, the transformation matrix can be defined as R = R θ T, and the coordinates of the transformed points are expressed as (u, v). Then the distance s to the nearest point on the curve is
により与えられる。vの符号も当該線のどちらの側に標本点が存在するかを決定するので、これを符号付き距離場の符号として使用できることに留意されたい。 Given by. Note that the sign of v also determines on which side of the line the sample point is, so it can be used as the sign of the signed distance field.
次いで、当該距離を当該標本点から標準曲線の一部の各端への距離と比較する。これらの3つの点のうち、変換された標本点への距離が最小である標準曲線12の部分10’’上の点を、当該変換された標本点に最も近い標準曲線12上の点と決定する。
The distance is then compared to the distance from the sample point to each end of a portion of the standard curve. Of these three points, the point on the part 10'' of the
図5は、標準空間13内で変換された標本点Pに最も近いとして決定されている標準曲線12の部分10’’上の点p0を示す。当該変換された標本点Pに対して、標準曲線上の最も近い点p0が、変換された標本点Pから標準曲線12への距離を最小化するものとして決定されている。即ち、したがって、標準曲線12上の点p0が変換された標本点Pに最も近い点であると判定する。これは、この標本点および標準曲線の一部に対して、変換された標本点pと当該最も近い点p0の間の距離dが当該変換された標本点pから標準曲線の一部の終点への距離の両方より短いからである。
Figure 5 shows a p 0 point on the portion 10 '' of the
また図5に示すように、変換された標本点Pから標準曲線12の部分10’’上の最も近い点p0への距離を、最も近い点p0を発見するための距離を最小化するプロセスから既に決定されていない場合には、単純にこれらの点から決定することができる。
Also, as shown in FIG. 5, the distance from the converted sample point P to the nearest point p 0 on the
入力曲線が直線であるとき、世界空間内で定義された曲線は、回転と変換を含む世界標準変換を用いて標準空間内のx軸上に変換される(入力曲線はまた、固定長であるとき、標準空間のx軸上の0と1の間に配置されるように拡大されてもよいが、これは必要ではない)。次いで、標準曲線上の最も近い点は単純に標準空間内の変換された標本点のx座標である。入力曲線が開始点と終点を有する固定長であるとき、当該変換された標本点のx座標が標準曲線の開始点と終点のx座標の間に配置される場合は、当該変換された標本点に最も近い標準曲線上の点は当該変換された標本点のx座標である。当該変換された標本点のx座標が標準曲線の開始点と終点の外部に存在するとき、当該変換された標本点に最も近い標準曲線上の点は、当該開始点または当該終点のうち、当該変換された標本点に近い方である。 When the input curve is a straight line, the curve defined in world space is transformed on the x-axis in standard space using a world standard transformation, including rotation and transformation (the input curve is also fixed length). It may sometimes be magnified to be placed between 0s and 1s on the x-axis of standard space, but this is not necessary). The closest point on the standard curve is then simply the x-coordinate of the transformed sample point in standard space. If the input curve has a fixed length with a start and end points and the x-coordinate of the transformed sample point is placed between the x-coordinates of the start and end points of the standard curve, then the converted sample point The point on the standard curve closest to is the x-coordinate of the transformed sample point. When the x-coordinate of the converted sample point exists outside the start point and end point of the standard curve, the point on the standard curve closest to the converted sample point is the start point or the end point of the conversion. It is closer to the converted sample point.
一旦決定されると、(標準空間13内の変換された標本点Pから標準曲線12上の最も近い点p0への)距離d、および必要ならば標準曲線12の部分10’’上の最も近い点p0が次いで、世界空間11から標準空間13への変換TUCの逆を用いて、世界空間11に変換される。即ち、世界空間11内の標本点に最も近い入力ベジエ曲線10上の点とこれらの点の間の距離が与えられる。標本点に対する入力ベジエ曲線10上の最も近い点およびこれらの点の間の距離を決定するプロセスは、世界空間11内の入力ベジエ曲線10を囲む配列内の標本点の各々に対して繰り返される。
Once determined, (from transformed sample point P in the
さらなる組の標本点に対する入力ベジエ曲線10への距離をまた、標準空間への変換および標準空間における判定の必要なしに、近傍の標本点に対する既に決定された距離を用いて決定してもよい。
The distance to the
これが、入力ベジエ曲線10上の最も近い点およびそこへの距離が世界空間11内の標本点の各々に対して決定されるように、標本点の各々に対して完了すると、入力ベジエ曲線10を囲む配列内で、当該プロセスはグリフ1を形成する入力ベジエ曲線2、3、4、5、6、7、8、9ごとに繰り返される。
When this is completed for each of the sample points, the
グリフ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を囲む標本点の配列の各々における対応する標本点に関する距離を比較し、最小距離を選択することによって、決定される。
Within the array of sample points surrounding the
(所与の標本点に最も近い複数の入力ベジエ曲線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を破棄することができる)。
(Multiple input Bezier curves 2, 3, 4, 5, 6, 7, 8, 9 that are closest to a given sample point, and multiple input Bezier curves 2, 3, 4, that
世界空間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上の点を決定するために使用されるサブセットに対応してもよい。
If the side of the
世界空間11内の各標本点が存在する入力ベジエ曲線10の側は、当該標本点と当該標本点に対する入力ベジエ曲線10上の当該決定された最も近い点との間の距離とともに、当該距離に符号を与えるために使用される。即ち、グリフ内部に存在する標本点に対応する距離には負の符号が与えられ、当該グリフの外部に存在する標本点に対応する距離には正の符号が与えられる。
The side of the
当該符号付き距離は、当該標本点への入力ベジエ曲線10上の当該決定された最も近い点および当該決定された最も近い点が存在する(グリフ1を形成する複数の入力ベジエ曲線2、3、4、5、6、7、8、9の)入力ベジエ曲線の識別とともに、グリフ1を囲む標本点ごとにテクスチャ内に格納される。即ち、当該情報が格納されるテクスチャ内の各テクセルが標本点に対応する。したがって、後述するように、当該テクスチャはグリフ1を符号付き距離場として格納し、次いで、これを使用してグリフ1を描画することができる。
The signed distance includes the determined closest point and the determined closest point on the
テクセルごとにテクスチャ内に格納される情報(符号付き距離、入力ベジエ曲線上の決定された最も近い点、および決定された最も近い点が存在する入力ベジエ曲線の識別)は、特定のフォント内のグリフの各々に対して上述のように決定され、当該グリフの各々に対する情報(即ち、符号付き距離場を含む)はテクスチャに格納される。 The information stored in the texture for each texel (signed distance, identification of the determined closest point on the input Bezier curve, and the identification of the input Bezier curve where the determined closest point exists) is in a particular font. Determined as described above for each of the glyphs, the information for each of the glyphs (ie, including the signed distance field) is stored in the texture.
例示的な符号付き距離場のグラフィカル表現が、文字「c」26、「2」27、および「、」28を表すグリフに関して図6に示されている。グリフ26、27、28内部の点が、グリフ26、27、28のエッジを定義する入力ベジエ曲線上の夫々の最も近い点に対する(特定の閾値より大きい)正の距離値とともに、黒で示されている。グリフ26、27、28の外部の点が、グリフ26、27、28のエッジを定義する曲線上の当該夫々の最も近い点に対する(特定の閾値より小さい)負の距離値とともに、白で示されている。グリフ26、27、28のエッジを定義する入力ベジエ曲線に近い(正の閾値と負の閾値の間の)点は、当該曲線上の最も近い点からのそれらの距離に応じて、灰色の陰影として示されている。
An exemplary signed distance field graphical representation is shown in FIG. 6 with respect to the glyphs representing the letters "c" 26, "2" 27, and "," 28. Points inside
符号付き距離値に関する閾値は、当該値がテクスチャに格納されるとき、その値が特定の値より高いかまたは低い場合には、当該適切な(負または正の)閾値のみ(または他の何らかのデフォルト値)が格納されるというものである。これは、グリフ26、27、28のエッジを定義する曲線から特定の距離よりも遠く離れている点を考慮するとき、それがレンダリング出力を生成するときを考慮しないので、正確な距離は問題ではないからである。当該関心領域、および標本点からグリフ26、27、28のエッジを定義する入力曲線上の当該最も近い点への正確な距離を使用して例えば特定のレンダリング効果を生成してもよい場所は、グリフ26、27、28のエッジの近くに存在する点に対するものである。したがって、正および負の閾値の間のこれらの距離値に対して、当該符号付き距離場に対して計算された値は閾値を適用することなく格納される。
Thresholds for signed distance values are only the appropriate (negative or positive) threshold (or some other default) when the value is stored in the texture and the value is higher or lower than a particular value. Value) is stored. The exact distance is not an issue, as this does not take into account when it takes into account when it is farther than a certain distance from the curve defining the edges of
テクスチャに格納された情報を、フォントを形成するグリフ(文字)、例えば、文字、数字および句読点記号の各々に対して計算してもよい。図7は、テクスチャ・アトラス29としてグラフィカルに表現されたフォント内のグリフの各々に対する符号付き距離場のグラフィカル表現を示す。当該グリフの各々に対するテクスチャは、特定のグリフを描画する必要があるとき、テクスチャ・アトラス29の適切な領域が標本化されるように、テクスチャ・アトラス29内で空間的に分離されている。当該例では、テクスチャ・アトラス29はテクスチャのメモリを節約するようにきつく詰められており、したがって各グリフは異なるサイズを有する。
The information stored in the texture may be calculated for each of the glyphs (characters) that form the font, such as characters, numbers and punctuation marks. FIG. 7 shows a graphical representation of the signed distance field for each of the glyphs in the font graphically represented as a
グリフを描画するために(または図7に示すように完全なテクスチャ・アトラスを生成するために)符号付き距離場が生成されテクスチャに格納されると、必要なグリフは、各グリフの境界ボックス内の標本点の配列で当該テクスチャを標本化するか、または、当該符号付き距離場がレンダリング・プロセスの一部としてリアルタイムに計算されるとき当該標本点の配列で当該決定された符号付き距離場を用いることによって、描画することができる。当該ステップが、図1のステップ3に示すように、当該符号付き距離場を用いて、アンチエイリアシング技術を使用してもよい。当該符号付き距離場を次いで、テクスチャへの描画動作におけるテクスチャの一部として格納してもよい。
When a signed distance field is generated and stored in the texture to draw the glyphs (or to generate the complete texture atlas as shown in Figure 7), the required glyphs are in the bounding box of each glyph. The texture is sampled with an array of sample points, or the determined distance field is calculated with an array of sample points when the signed distance field is calculated in real time as part of the rendering process. By using it, it can be drawn. The step may use antialiasing techniques with the signed distance field, as shown in
最終的に描画されるテキストの文字列を次いで図1の「結果」ステップに示すように表示することができる。 The final drawn text string can then be displayed as shown in the "Results" step of FIG.
例えば、書込みを三次元で曲面に表示すべき場合には、グリフを、当該グリフに対するテクスチャが定義される世界空間とは異なる「サーフェス」空間(即ち、レンダリング出力が生成される空間)内で描画してもよい。当該実施形態では、当該グリフが1つまたは複数のプリミティブにより覆われるように、1つまたは複数のプリミティブが、当該グリフが描かれるサーフェス空間内のシーン(表示)領域にわたって生成される。 For example, if the writing should be displayed on a curved surface in three dimensions, the glyph should be drawn in a "surface" space (ie, the space where the rendered output is generated) that is different from the world space where the texture for that glyph is defined. You may. In this embodiment, one or more primitives are generated over a scene (display) area in the surface space in which the glyph is drawn so that the glyph is covered by one or more primitives.
これらのプリミティブは次いで、陰影付けのための陰影パイプラインに渡されるフラグメントに通常の方式でラスタライズされる(起こり得ることであるが、(当該プリミティブは実際にはシーンの任意の標本点をそれが表示されるようにカバーしないので)当該プリミティブのラスタライズがフラグメントを生成しない場合、これは、当該形状が実際にはそれが表示されるようにシーン内で見られないことを意味するので、当該プロセスはここで停止することができる)。
。
These primitives are then rasterized in the usual way to the fragments passed to the shading pipeline for shading (which can happen, but that primitive is actually any sample point in the scene. If rasterization of the primitive does not produce a fragment (because it does not cover it to be visible), this means that the shape is not actually seen in the scene as it is visible, so the process Can be stopped here).
..
当該適切なテクスチャは次いでグリフを描くためにプリミティブに適用される。これは、描くべきグリフに対応するテクスチャ・マップ(または当該テクスチャ・マップの一部)を用いて、プリミティブ(複数可)がカバーするシーン内の1つまたは複数の標本点の位置に対するグリフを表すテクスチャからのテクスチャ・サンプルを取ることによってテクスチャを1つまたは複数のプリミティブに適用することで行われる(当該テクスチャが格納される世界空間への適切な変換がサーフェス空間内の標本点に対して実施される)。 The appropriate texture is then applied to the primitive to draw the glyph. It represents the glyph for the location of one or more sample points in the scene covered by the primitive (s), using a texture map (or part of that texture map) that corresponds to the glyph to be drawn. This is done by applying the texture to one or more primitives by taking a texture sample from the texture (appropriate conversion to the world space where the texture is stored is performed on the sample points in surface space. Will be).
グリフを定義する複数の入力曲線上の最も近い点への符号付き距離を含む各標本化されたテクスチャ値を次いで使用して、当該符号付き距離の値に応じて、サンプル位置をグリフの内部に入るとして描く(描画する)べきかどうかを判定する(即ち、実際には、当該グリフのエッジの内部が入力曲線により定義される)か、または、当該グリフの外部に入るとして破棄する。 Each sampled texture value, including the signed distance to the closest point on multiple input curves that define the glyph, is then used to position the sample position inside the glyph, depending on the value of the signed distance. Determine if it should be drawn (drawn) as entering (ie, in fact, the inside of the edge of the glyph is defined by the input curve) or discard as entering outside the glyph.
図8は、グラフィック演算装置(GPU)のグラフィックス処理パイプラインにおける、本発明の1実施形態に従うグリフを描画するための上述のプロセスのステップを実施するための流れ図30を示す。 FIG. 8 shows a flow diagram 30 for carrying out the steps of the above-mentioned process for drawing a glyph according to one embodiment of the present invention in the graphics processing pipeline of a graphics arithmetic unit (GPU).
先ず、予め定義された経路31は、例えば、中央演算装置(CPU)で生成され、当該CPUに格納されたフォント・ファイルから抽出される。これらの経路は、(例えば、グリフのエッジを定義する)直線、ベジエ曲線、弧、ならびに、例えば世界空間内の入力ベジエ曲線の開始点および終点を定義する色および他の位置データを用いてグリフを定義する。
First, the
次いで、標準空間内の標準曲線上の変換された標本点と最も近い点との間の距離を返すルックアップ・テーブル(LUT)33を用いて、当該経路(入力曲線)が、(入力曲線の各々に対する標準空間への変換を用いて上述した方式で)グラフィックス処理パイプライン(SDF生成器)32の処理段階により処理されてグリフごとの符号付き距離場を生成する。 Then, using a lookup table (LUT) 33 that returns the distance between the transformed sample point and the closest point on the standard curve in standard space, the path (input curve) is (in the input curve). Processed by the processing steps of the graphics processing pipeline (SDF generator) 32 (in the manner described above with conversion to standard space for each) to generate a signed distance field for each glyph.
経路キャッシュ34は次いで、グリフに対する符号付き距離場を、経路(入力曲線)に関する情報とともに格納する。次いで当該情報は、描画すべき最終テクスチャを生成するために、(テクスチャパイプライン37を使用して当該符号付き距離場内の値にアクセスする)固定機能単位36内の位置データ35と比較される。これが、ブレンディング、マスキングおよびシザー・テスト動作のうち1つまたは複数を含んでもよい。
The
描画すべき最終テクスチャを次いで、出力、例えば表示のためにフレーム・バッファ38に渡す。
The final texture to be drawn is then passed to the
以上から、標準曲線上の標本点に最も近い点を、例えば、符号付き距離場を生成する一部として決定するために標準空間を使用することで、1つまたは複数の入力曲線を用いてレンダリング出力を生成するための効率的かつ都合の良い機構が提供されることが分かる。当該機構は、例えば、ベクトル・グラフィックスを用いて定義された入力曲線の数学的表現を描画することができる。これは、入力曲線を用いてレンダリング出力を生成するための高速かつ正確なプロセスを提供する情報を決定する単純かつ正確な方法である。 From the above, rendering with one or more input curves by using standard space to determine the point closest to the sample point on the standard curve, for example, as part of generating a signed distance field. It can be seen that an efficient and convenient mechanism for producing output is provided. The mechanism can, for example, draw a mathematical representation of the input curve defined using vector graphics. This is a simple and accurate way to determine the information that provides a fast and accurate process for producing rendered output using input curves.
かかる入力曲線を用いてレンダリング出力を生成するための単純なプロセスを提供することで、当該プロセスを実行する装置のための処理負荷と電力負荷の削減が支援され、したがって、バッテリで動作し多機能処理を実装しなくてもよいより単純な装置、例えば、モバイルおよびウェラブル装置での使用が可能となる。さらに、当該プロセスの増大した効率性により、以前の技術と比べて装置の処理負荷と電力負荷の関連する増大なしに、より洗練されたレンダリング機能を実施することができ、または、必要に応じて必要な情報をリアルタイムに(再)計算することができる。 Providing a simple process for generating rendered output using such input curves helps reduce the processing and power load for the equipment running the process and is therefore battery operated and multifunctional. It can be used in simpler devices that do not require implementation of processing, such as mobile and wearable devices. In addition, the increased efficiency of the process allows more sophisticated rendering capabilities to be performed, or as needed, without the associated increase in equipment processing and power loads compared to previous techniques. The necessary information can be (re) calculated in real time.
31経路(線、ベジエ、弧、色、位置)
32SDF生成器
33LUT(放物線X値)
34経路キャッシュ(グリフ、セグメント(線、ベジエ))
35位置データ
36固定関数(ブレンド、マスク、シザー)
37テクスチャ・パイプ
38フレーム・バッファ
31 paths (line, Bezier, arc, color, position)
32SDF generator 33LUT (parabolic X value)
34 route cache (glyph, segment (line, Bezier))
35
37
Claims (15)
世界空間で定義された入力曲線に対して
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定するステップと、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定するステップと、
レンダリング出力を生成するとき、前記標準空間内の前記変換された標本点に対する前記標準曲線上の前記決定された最も近い点を使用するステップと、
を含む、方法。 A method of generating rendered output using input curves in a graphics processing system.
Determines the part of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to the part of the standard curve for the input curve defined in world space. Steps to do and
For each of the plurality of sample points in the world space surrounding the input curve,
The sample point is transformed from the world space to the standard space using the determined transformation between the world space and the standard space.
The distance from the transformed sample point to the start and end points of the part of the standard curve is determined, and one of the start point or the end point is on the standard curve closest to the transformed sample point. By determining whether it is a point, a point on the determined portion of the standard curve closest to the transformed sample point in the standard space is determined.
Thereby, with respect to each of the transformed sample points in the standard space surrounding the standard curve, a step of determining the corresponding closest point on the standard curve in the standard space.
When generating the rendered output, the step of using the determined nearest point on the standard curve with respect to the transformed sample point in the standard space, and
Including methods.
前記曲線上の前記決定された最も近い点を用いて、前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかを判定し、
それにより、前記曲線を囲む前記標本点の各々に対して、前記曲線のどちらの側で標本点をそのまま扱うべきであるかを判定するステップと、
前記レンダリング出力を生成するときに前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかの判定を使用するステップと、
をさらに含む、請求項1から4の何れか1項に記載の方法。 For each of the plurality of sample points surrounding the curve
Using the determined closest point on the curve, it is determined on which side of the curve the sample point should be treated as is.
Thereby, for each of the sample points surrounding the curve, a step of determining on which side of the curve the sample points should be treated as they are, and
With the step of using the determination on which side of the curve the sample point should be treated as is when generating the rendered output.
The method according to any one of claims 1 to 4, further comprising.
前記入力曲線の各々に対して、請求項1から5の何れか1項に記載の方法を実施して、
それにより前記複数の標準曲線の各々を囲む前記標準空間内の変換された標本点の配列に対して、変換された標本点の前記配列に対して前記標準空間内の前記複数の標準曲線の各々の上の対応する最も近い点の配列をそれぞれ決定するステップと、
レンダリング出力を生成するとき、前記複数の標準曲線の各々の上の決定された最も近い点の前記配列を前記標準空間内の変換された標本点の前記配列に対して使用するステップと、
を含む、方法。 A method of generating rendered output using multiple input curves in a graphics processing system.
The method according to any one of claims 1 to 5 is carried out for each of the input curves.
Thereby, with respect to the array of transformed sample points in the standard space surrounding each of the plurality of standard curves, each of the plurality of standard curves in the standard space with respect to the array of transformed sample points. Steps to determine the sequence of the corresponding closest points on each, and
When generating a rendered output, the step of using the array of determined closest points on each of the plurality of standard curves with respect to the array of transformed sample points in the standard space.
Including methods.
世界空間で定義された入力曲線に対して、
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定すること
ができる処理回路と、
レンダリング出力を生成するとき、前記標準空間内の前記変換された標本点に対する前記標準曲線上の前記決定された最も近い点を使用できる処理回路と、
を備える、グラフィックス処理システム。 A graphics processing system for generating rendered output using input curves.
For the input curve defined in world space
Determine the portion of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to said portion of the standard curve.
For each of the plurality of sample points in the world space surrounding the input curve,
The sample point is transformed from the world space to the standard space using the determined transformation between the world space and the standard space.
The distance from the transformed sample point to the start and end points of the part of the standard curve is determined, and one of the start point or the end point is on the standard curve closest to the transformed sample point. By determining whether it is a point, a point on the determined portion of the standard curve closest to the transformed sample point in the standard space is determined.
Thereby, a processing circuit capable of determining the corresponding closest point on the standard curve in the standard space for each of the transformed sample points in the standard space surrounding the standard curve.
A processing circuit that can use the determined nearest point on the standard curve with respect to the transformed sample point in the standard space when generating the rendered output.
A graphics processing system.
曲線を囲む前記複数の標本点の各々に対して、前記曲線上の前記決定された最も近い点を用いて、前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかを判定し、
それにより、前記曲線を囲む前記標本点の各々に対して、前記曲線のどちらの側で標本点をそのまま扱うべきであるかを判定することができ、
前記処理回路は、前記レンダリング出力を生成するときに前記曲線のどちらの側で前記標本点をそのまま扱うべきであるかの判定を使用することができる、
請求項7から10の何れか1項に記載のグラフィックス処理システム。 The processing circuit
For each of the plurality of sample points surrounding the curve, the closest determined point on the curve is used to determine on which side of the curve the sample points should be treated as is.
Thereby, for each of the sample points surrounding the curve, it is possible to determine on which side of the curve the sample points should be treated as they are.
The processing circuit can use the determination on which side of the curve the sample points should be treated as is when generating the rendered output.
The graphics processing system according to any one of claims 7 to 10.
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定して、
それにより前記複数の標準曲線の各々を囲む前記標準空間内の変換された標本点の配列に対して、変換された標本点の前記配列に対して前記標準空間内の前記複数の標準曲線の各々の上の対応する最も近い点の配列をそれぞれ決定し、
レンダリング出力を生成するとき、前記標準空間内の変換された標本点の前記配列に対して前記複数の標準曲線の各々の上の決定された最も近い点の前記配列を使用することができる
処理回路を備える、
複数の入力曲線を用いてレンダリング出力を生成するための請求項7から11の何れか1項に記載のグラフィックス処理システム。 For each of the plurality of input curves defined in world space, to map a part of the standard curve defined in the standard space corresponding to the input curve and the input curve to the part of the standard curve. Determine the required conversion and
For each of the plurality of sample points in the world space surrounding the input curve,
The sample point is transformed from the world space to the standard space using the determined transformation between the world space and the standard space.
In the standard space, determine the point on the determined portion of the standard curve that is closest to the transformed sample point.
Thereby, with respect to the array of transformed sample points in the standard space surrounding each of the plurality of standard curves, each of the plurality of standard curves in the standard space with respect to the array of transformed sample points. Determine the sequence of the corresponding closest points on each,
A processing circuit that can use the array of determined closest points on each of the plurality of standard curves with respect to the array of transformed sample points in the standard space when generating the rendered output. With,
The graphics processing system according to any one of claims 7 to 11 , for generating a rendered output using a plurality of input curves.
世界空間で定義された入力曲線に対して、
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定するステップと、
前記標本点の各々に対して、前記標本点から前記標準曲線上の前記決定された最も近い点への距離を決定するステップと、
テクセルの配列を含むグラフィックス・テクスチャを生成するステップであって、各テクセルは、前記標本点のうち少なくとも1つに対応し、前記少なくとも1つの標本点に対して、前記少なくとも1つの標本点から前記標準曲線への前記決定された距離に関連付けられている、ステップと、
を含む、方法。 A method of generating graphics textures for use in a graphics processing system when generating rendered output using input curves.
For the input curve defined in world space
Determine the portion of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to said portion of the standard curve.
For each of the plurality of sample points in the world space surrounding the input curve,
The sample point is transformed from the world space to the standard space using the determined transformation between the world space and the standard space.
The distance from the transformed sample point to the start and end points of the part of the standard curve is determined, and one of the start point or the end point is on the standard curve closest to the transformed sample point. By determining whether it is a point, a point on the determined portion of the standard curve closest to the transformed sample point in the standard space is determined.
Thereby, with respect to each of the transformed sample points in the standard space surrounding the standard curve, a step of determining the corresponding closest point on the standard curve in the standard space.
For each of the sample points, a step of determining the distance from the sample point to the determined nearest point on the standard curve.
In the step of generating a graphics texture containing an array of texels, each texel corresponds to at least one of the sample points and for the at least one sample point from the at least one sample point. associated with the distance that is the determined to the standard curve, the steps,
Including methods.
世界空間で定義された入力曲線に対して、
前記入力曲線に対応する標準空間で定義された標準曲線の一部および前記入力曲線を前記標準曲線の前記一部にマップするのに必要な変換を決定し、
前記入力曲線を囲む前記世界空間内の複数の標本点の各々に対して、
前記世界空間と前記標準空間の間の前記決定された変換を用いて前記標本点を前記世界空間から前記標準空間に変換し、
前記変換された標本点から前記標準曲線の前記一部の開始点と終点への距離を決定し、前記開始点または前記終点のうち1つが前記変換された標本点に最も近い前記標準曲線上の点であるかどうかを判定することによって、前記標準空間において、前記変換された標本点に最も近い前記標準曲線の前記決定された部分上の点を決定し、
それにより、前記標準曲線を囲む前記標準空間内の前記変換された標本点の各々に対して、前記標準空間内の前記標準曲線上の対応する最も近い点を決定し、
前記標本点の各々に対して、前記標本点から前記標準曲線上の前記決定された最も近い点への距離を決定し、
テクセルの配列を含むグラフィックス・テクスチャを生成する
ことができる処理回路を備え、
各テクセルは、前記標本点のうち少なくとも1つに対応し、前記少なくとも1つの標本点に対して、前記少なくとも1つの標本点から前記標準曲線への前記決定された距離に関連付けられる、
装置。 A device for generating graphics textures for use in graphics processing systems when generating rendered output using input curves.
For the input curve defined in world space
Determine the portion of the standard curve defined in the standard space corresponding to the input curve and the transformations required to map the input curve to said portion of the standard curve.
For each of the plurality of sample points in the world space surrounding the input curve,
The sample point is transformed from the world space to the standard space using the determined transformation between the world space and the standard space.
The distance from the transformed sample point to the start and end points of the part of the standard curve is determined, and one of the start point or the end point is on the standard curve closest to the transformed sample point. By determining whether it is a point, a point on the determined portion of the standard curve closest to the transformed sample point in the standard space is determined.
Thereby, for each of the transformed sample points in the standard space surrounding the standard curve, the corresponding closest points on the standard curve in the standard space are determined.
For each of the sample points, the distance from the sample point to the determined nearest point on the standard curve is determined.
It has a processing circuit that can generate graphics textures containing an array of texels.
Each texel corresponds to at least one of the sample points relative to the at least one sample point is associated from the at least one sample point in distance the determined to the standard curve,
apparatus.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1513675.7 | 2015-08-03 | ||
GB1513675.7A GB2541644B (en) | 2015-08-03 | 2015-08-03 | Graphics processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017073120A JP2017073120A (en) | 2017-04-13 |
JP6863693B2 true JP6863693B2 (en) | 2021-04-21 |
Family
ID=54063090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016151823A Active JP6863693B2 (en) | 2015-08-03 | 2016-08-02 | Graphics processing system and method |
Country Status (6)
Country | Link |
---|---|
US (1) | US10140736B2 (en) |
JP (1) | JP6863693B2 (en) |
KR (1) | KR102666054B1 (en) |
CN (1) | CN106408626B (en) |
GB (1) | GB2541644B (en) |
TW (1) | TWI708208B (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10347016B2 (en) * | 2016-01-12 | 2019-07-09 | Monotype Imaging Inc. | Converting font contour curves |
US10311060B2 (en) * | 2017-06-06 | 2019-06-04 | Espial Group Inc. | Glyph management in texture atlases |
US10936792B2 (en) | 2017-12-21 | 2021-03-02 | Monotype Imaging Inc. | Harmonizing font contours |
CN109166359A (en) * | 2018-09-28 | 2019-01-08 | 广州狄卡视觉科技有限公司 | A kind of autism rehabilitation exercise motion guiding educational interaction method and system |
US10964088B2 (en) * | 2018-10-31 | 2021-03-30 | Facebook Technologies, Llc | Mipmap with mixed texture types |
US11074724B2 (en) * | 2018-12-07 | 2021-07-27 | Microsoft Technology Licensing Llc | GPU calculation of signed distance fields |
US11037341B1 (en) * | 2020-01-15 | 2021-06-15 | Adobe Inc. | Generative shape creation and editing |
US12002132B1 (en) * | 2021-03-09 | 2024-06-04 | Apple Inc. | Rendering using analytic signed distance fields |
US11875435B2 (en) * | 2021-10-12 | 2024-01-16 | Adobe Inc. | Generating scalable fonts utilizing multi-implicit neural font representations |
US11893667B2 (en) * | 2022-03-31 | 2024-02-06 | Think Silicon Research and Technology Single Member S.A. | Techniques for rendering vector graphics using precomputed textures |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564459B2 (en) * | 2005-10-31 | 2009-07-21 | Microsoft Corporation | Resolution-independent curve rendering using programmable graphics hardware |
US8059119B2 (en) | 2007-12-05 | 2011-11-15 | Stmicroelectronics S.R.L. | Method for detecting border tiles or border pixels of a primitive for tile-based rendering |
GB0818277D0 (en) * | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing system |
GB0818278D0 (en) * | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing systems |
GB0818279D0 (en) * | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing systems |
GB0913170D0 (en) * | 2009-07-28 | 2009-09-02 | Advanced Risc Mach Ltd | Graphics processing systems |
CN103092577A (en) * | 2011-10-28 | 2013-05-08 | 鸿富锦精密工业(深圳)有限公司 | System and method for generating three-dimensional image measuring program |
-
2015
- 2015-08-03 GB GB1513675.7A patent/GB2541644B/en active Active
-
2016
- 2016-07-27 TW TW105123682A patent/TWI708208B/en active
- 2016-08-02 JP JP2016151823A patent/JP6863693B2/en active Active
- 2016-08-02 US US15/226,538 patent/US10140736B2/en active Active
- 2016-08-03 CN CN201610629321.7A patent/CN106408626B/en active Active
- 2016-08-03 KR KR1020160098709A patent/KR102666054B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201712632A (en) | 2017-04-01 |
GB2541644B (en) | 2017-11-22 |
US10140736B2 (en) | 2018-11-27 |
KR102666054B1 (en) | 2024-05-16 |
KR20170016305A (en) | 2017-02-13 |
GB2541644A (en) | 2017-03-01 |
GB201513675D0 (en) | 2015-09-16 |
JP2017073120A (en) | 2017-04-13 |
TWI708208B (en) | 2020-10-21 |
CN106408626A (en) | 2017-02-15 |
US20170039739A1 (en) | 2017-02-09 |
CN106408626B (en) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6863693B2 (en) | Graphics processing system and method | |
JP5721358B2 (en) | Graphics processing system | |
EP3129973B1 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
US9177351B2 (en) | Multi-primitive graphics rendering pipeline | |
US8704830B2 (en) | System and method for path rendering with multiple stencil samples per color sample | |
US8059119B2 (en) | Method for detecting border tiles or border pixels of a primitive for tile-based rendering | |
US8928667B2 (en) | Rendering stroked curves in graphics processing systems | |
US8928668B2 (en) | Method and apparatus for rendering a stroked curve for display in a graphics processing system | |
US10540789B2 (en) | Line stylization through graphics processor unit (GPU) textures | |
JP2007304871A (en) | Drawing device, drawing method, and drawing program | |
US8743135B2 (en) | Graphics processing systems | |
KR20160003223A (en) | Tessellation of two-dimensional curves using a graphics pipeline | |
US11989807B2 (en) | Rendering scalable raster content | |
JP2009301284A (en) | Drawing device and method | |
US11776179B2 (en) | Rendering scalable multicolored vector content | |
Santina | Resolution independent nurbs curves rendering using programmable graphics pipeline | |
JP2010256986A (en) | Drawing device and method | |
JP2010256985A (en) | Drawing device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190722 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200909 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200923 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201218 |
|
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: 20210308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210401 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6863693 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |