System and method of representing a line segment with two thin triangles

US2020005501A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020005501-A1
Application numberUS-201816133633-A
CountryUS
Kind codeA1
Filing dateSep 17, 2018
Priority dateJun 30, 2018
Publication dateJan 2, 2020
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A line segment is rendered by two triangles joined by their hypotenuses. A graphics processing system includes a lookup table that contains a plurality of values representing reciprocal square roots for normal vectors to a corresponding plurality of line segments. The dot product of a normal vector to the line segment is scaled by a scaling factor and input to the lookup table. The scaling factor has a trivial/simple square root and is a power of 2 so that multiplication of binary values may be performed by shifting. A value is output from the lookup table representing a reciprocal square root of the normal vector to the line segment. A half unit normal vector to the line segment is determined based on the normal vector to the line segment and the output value and is used to determine the two triangles for rendering the line segment.

First claim

Opening claim text (preview).

What is claimed is: 1 . A graphics processing system, comprising: a lookup table containing a plurality of values representing reciprocal square roots for normal vectors to a corresponding plurality of line segments; and a graphics processor that receives a first vertex and a second vertex of a first line segment that is to be rendered as two triangles, the graphics processor inputting an input value to the lookup table, the input value comprising 2 to a negative power of an integer L times a dot product of a normal vector to the first line segment with itself, the graphics processor receiving an output value from the lookup table that represents a reciprocal square root of the normal vector to the first line segment and determining a unit normal vector to the first line segment by multiplying the normal vector to the first line segment by the output value received from the lookup table, the graphics processor further determining a first half unit normal vector and a second half unit normal vector to the first line segment from the unit normal vector and the first vertex and the second vertex of the first line segment, and determining a first triangle and a second triangle based on the first and second half normal vectors and the first vertex and the second vertex of the first line segment, the first and second triangles each comprising a hypotenuse and being joined together by their hypotenuses. 2 . The graphics processing system of claim 1 , wherein the graphics processor further renders the first line segment by rendering the first and second triangles. 3 . The graphics processing system of claim 2 , wherein the graphics processor further scales a length of each of the first and second half normal vectors to be half of a predetermined line width of the rendered line segment. 4 . The graphics processing system of claim 1 , wherein an input range of the lookup table spans from 1.0 inclusive to 4 non-inclusive, and wherein an output range of the lookup table spans from 0.5 non-inclusive to 1.0 inclusive. 5 . The graphics processing system of claim 1 , wherein L ranges from −8 inclusive to 19 inclusive. 6 . The graphics processing system of claim 1 , wherein the first half unit normal vector and the second half unit normal vector each comprise 8 fractional bits of resolution. 7 . The graphics processing system of claim 1 , wherein a time from inputting the input value to the lookup table to receiving the output value from the lookup table takes one clock cycle of the graphics processor. 8 . A method to graphically represent a line segment by two triangles, the method comprising: receiving at a graphics processor a first vertex and a second vertex of a line segment; determining by the graphics processor a scaling factor that is equal to 4 to a power of an integer L; inputting an input value to a lookup table by the graphics processor, the input value comprising 2 to a negative power of L times a dot product of a normal vector to the line segment with itself; receiving by the graphics processor from the lookup table an output value that equals a reciprocal square root of the input to the lookup table; determining by the graphics processor a unit normal vector to the line segment by dividing the normal vector to the line segment by the output value received from the lookup table; determining by the graphics processor a first half normal vector and a second half normal vectors to the line segment from the unit normal vector and the first vertex and the second vertex of the line segment; determining by the graphics processor a first triangle and a second triangle based on the first and second half normal vectors and the first vertex and the second vertex of the line segment, the first and second triangles each comprising a hypotenuse and being joined together by their hypotenuses; and graphically rendering the line segment by the graphics processor by rendering the first and second triangles. 9 . The method of claim 8 , wherein determining the first and second half normal vectors further comprises scaling a length of each of the first and second half normal vectors to be half of a predetermined line width of the rendered line segment. 10 . The method of claim 8 , wherein an input range of the lookup table spans from 1.0 inclusive to 4 non-inclusive. 11 . The method of claim 10 , wherein an output range of the lookup table spans from 0.5 non-inclusive to 1.0 inclusive. 12 . The method of claim 8 , wherein L ranges from −8 inclusive to 19 inclusive. 13 . The method of claim 8 , wherein the first half normal vector and the second half normal vector each comprise 8 fractional bits of resolution. 14 . The method of claim 8 , wherein inputting the input value to the lookup table and receiving the output value from the lookup table takes one clock cycle of the graphics processor. 15 . A method to graphically represent a line segment by two triangles, the method comprising: receiving at a graphics processor a first vertex v 0 and a second vertex v 1 of a line segment; determining by the graphics processor a scaling factor P=4 L in which L is an integer value given by L=└log 4 (n·n)┘ in which n is a normal vector to the line segment, and n·n is a dot product of the normal vector n with itself; inputting an input value a into a lookup table by the graphics processor, the input value comprising a=2 −2L (n·n); receiving by the graphics processor from the lookup table an output value b=S(2 −2 L(n·n)); determining by the graphics processor a unit normal vector {circumflex over (n)} to the line segment by multiplying the normal vector n to the line segment by the output value b received from the lookup table; determining by the graphics processor a first normal half vector h and a second half normal vector h to the line segment from the unit normal vector {circumflex over (n)} and the first vertex v 0 and the second vertex v 1 of the line segment; determining by the graphics processor a first triangle and a second triangle based on the first half normal vector h and the second half normal vector h and the first vertex v 0 and the second vertex v 1 of the line segment, the first and second triangles each comprising a hypotenuse and being joined together by their hypotenuses; and graphically rendering the line segment by the graphics processor by rendering the first and second triangles. 16 . The method of claim 15 , wherein determining the first half normal vector and the second half normal vector h further comprises scaling a length of each of the first half normal h vector and the second half normal vector h to be half of a predetermined line width of the rendered line segment. 17 . The method of claim 15 , wherein an input range of the lookup table spans from 1.0 inclusive to 4 non-inclusive. 18 . The method of claim 15 , wherein an output range of the lookup table spans from 0.5 non-inclusive to 1.0 inclusive. 19 . The method of claim 15 , wherein L ranges from −8 inclusive to 19 inclusive. 20 . The method of claim 15 , wherein the first half normal vector h and the second half normal vectors h each comprise 8 fractional bits of resolution.

Assignees

Inventors

Classifications

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Logarithmic or exponential functions (G06F1/0314, G06F1/035 take precedence) · CPC title

  • G06T15/005Primary

    General purpose rendering architectures · CPC title

  • involving antialiasing · CPC title

  • using straight lines or curves · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2020005501A1 cover?
A line segment is rendered by two triangles joined by their hypotenuses. A graphics processing system includes a lookup table that contains a plurality of values representing reciprocal square roots for normal vectors to a corresponding plurality of line segments. The dot product of a normal vector to the line segment is scaled by a scaling factor and input to the lookup table. The scaling fact…
Who is the assignee on this patent?
Samsung Electronics Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 02 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).