IP Library Granted Patent US 12682558
Granted Patent B2
US 12682558 · App. 18/825,089 · Granted Jul 14, 2026

Rendering 3D curves using orthogonal triangle strips

Inventors: Pawel Kozlowski (Truckee, CA); David Augustus Hart (Salt Lake City, UT)
Assignee: NVIDIA Corporation
G06T15/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12682558
App. No.
18/825,089
Granted
Jul 14, 2026
Kind
B2
Abstract

Various examples, systems, and methods are disclosed relating to orthogonal triangle strips. A first computing system can execute one or more operations to obtain an approximation of a three-dimensional (3D) curve including a plurality of linear segments. The first computing system can execute one or more operations to determine two quadrilateral primitives (quads) for each of the plurality of linear segments using a plurality of triangle primitives, wherein each of the two quads includes two of the plurality of triangle primitives, wherein the two quads corresponding to each linear segment of the plurality of linear segments are angled relative to one another and extend along the corresponding linear segment. The first computing system can execute one or more operations to render the two quads for each of the plurality of linear segments.

Claims (82)

1 . A system, comprising:

one or more processors to execute operations comprising:

one or more operations to obtain an approximation of a three-dimensional (3D) curve comprising a plurality of linear segments;

one or more operations to determine two quadrilateral primitives (quads) for each of the plurality of linear segments using a plurality of triangle primitives, wherein each of the two quads comprises two of the plurality of triangle primitives, wherein the two quads corresponding to each linear segment of the plurality of linear segments are angled relative to one another and extend along the corresponding linear segment; and

one or more operations to render the two quads for each of the plurality of linear segments.

2 . The system of claim 1 , wherein the one or more operations to shade the two quads include operations to calculate a plurality of proxy shading normals using a proxy infinite cone, corresponding to a plurality of hit points, to approximate an appearance of convex curve segments or round curve segments.

3 . The system of claim 1 , wherein the curve comprises a piecewise linear curve comprising the plurality of linear segments, and the operations executed by the one or more processors further comprise one or more operations to apply a radius expansion factor to the plurality of linear segments to match an average width of the plurality of linear segments to an intended radius from a plurality of viewing angles.

4 . The system of claim 1 , wherein at least one of:

each of the two quads is positioned on a corresponding linear segment of the plurality of linear segments;

each of the two quads spans the corresponding linear segment of the plurality of linear segments; or

each of the plurality of linear segments is defined by two vertices, and the two vertices define midpoints of parallel edges defining each quad of the two quads.

5 . The system of claim 4 , wherein:

the two quads are transverse relative to one another; and

the parallel edges defining each quad of the two quads intersect at an angle to form a cross-sectional view transversing along each of the plurality of linear segments.

6 . The system of claim 4 , wherein:

the two quads are orthogonal to one another; and

the two vertices are at least one of (i) shared between one or more adjacent linear segments of the plurality of linear segments or (ii) independently positioned for each of the plurality of linear segments.

7 . The system of claim 1 , wherein:

each of the two quads has a length that is same as a length of a corresponding linear segment of the plurality of linear segments, and wherein one or more of the plurality of linear segments comprises a varying radius; and

each of the two quads has a first width (w0) at a first vertex of the corresponding linear segment of the plurality of linear segments and a second width (w1) at a second vertex of the corresponding linear segment of the plurality of linear segments.

8 . The system of claim 1 , wherein:

each of the two quads has a width that is equivalent to a diameter of a corresponding linear segment of the plurality of linear segments; and

each of the two quads is centered along the width of the corresponding linear segment of the plurality of linear segments.

9 . The system of claim 1 , wherein:

the plurality of linear segments comprises a first linear segment and a second linear segment connected to the first linear segment; and

the two quads for the first linear segment and the two quads for the second linear segment are disjointed.

10 . The system of claim 1 , wherein:

the plurality of linear segments comprises a first linear segment and a second linear segment connected to the first linear segment; and

at least one the two quads for the first linear segment and at least one the two quads for the second linear segment form a joint.

11 . The system of claim 1 , wherein the curve represents one or more of hair, fur, grass, wireframe rendering, 3D path rendering, 3D font rendering, 3D line drawings, carpet, lint, or cables.

12 . The system of claim 1 , wherein the one or more processors are comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system implemented using a robot;

an aerial system;

a medical system;

a boating system;

a smart area monitoring system;

a system for performing deep learning operations;

a system for performing simulation operations;

a system for generating or presenting virtual reality (VR) content, augmented reality (AR) content, or mixed reality (MR) content;

a system for performing digital twin operations;

a system implemented using an edge device;

a system incorporating one or more virtual machines (VMs);

a system for generating synthetic data;

a system implemented at least partially in a data center;

a system for performing conversational artificial intelligence (AI) operations;

a system for performing generative AI operations;

a system implementing language models;

a system for performing one or more operations using one or more vision language models (VLMs);

a system for performing one or more operations using one or more large language models (LLMs);

a system implementing multi-modal language models;

a system for hosting one or more real-time streaming applications;

a system for performing light transport simulation;

a system for performing collaborative content creation for 3D assets; or

a system implemented at least partially using cloud computing resources.

13 . One or more processors comprising:

one or more circuits to:

obtain an approximation of a three-dimensional (3D) curved structure having a plurality of linear segments;

determine two quadrilateral primitives (quads) for each of the plurality of linear segments using a plurality of triangle primitives, each of the two quads comprising two of the plurality of triangle primitives, wherein the two quads corresponding to a particular linear segment of the plurality of linear segments are angled relative to one another and extend along the particular linear segment; and

render the two quads for each of the plurality of linear segments using a shader.

14 . The one or more processors of claim 13 , wherein the one or more circuits are to shade the two quads by calculating a plurality of proxy shading normals using a proxy infinite cone, corresponding to a plurality of hit points, to approximate an appearance of convex curve segments or round curve segments.

15 . The one or more processors of claim 13 , wherein:

the curved structure comprises a piecewise linear curve comprising the plurality of linear segments; and

a radius expansion factor is applied to the plurality of linear segments to match an average width of the plurality of linear segments to an intended radius from a plurality of viewing angles.

16 . The one or more processors of claim 13 , wherein at least one of:

each of the two quads is positioned on a corresponding linear segment of the plurality of linear segments;

each of the two quads spans the corresponding linear segment of the plurality of linear segments; or

each of the plurality of linear segments is defined by two vertices, and the two vertices define midpoints of parallel edges defining each of the two quads.

17 . The one or more processors of claim 16 , wherein:

the two quads are transverse relative to one another; and

the two vertices on each of the two quads intersect at an angle to form a cross-sectional view transversing along each of the plurality of linear segments.

18 . The one or more processors of claim 16 , wherein:

the two quads are orthogonal to one another; and

the two vertices are at least one of (i) shared between one or more adjacent linear segments of the plurality of linear segments or (ii) independently positioned for each of the plurality of linear segments.

19 . The one or more processors of claim 13 , wherein:

each of the two quads has a length that is same as a length of a corresponding linear segment of the plurality of linear segments, and wherein each of the plurality of linear segments comprises a varying radius; and

each of the two quads has a first width (w0) at a first vertex of the corresponding linear segment of the plurality of linear segments and a second width (w1) at a second vertex of the corresponding linear segment of the plurality of linear segments.

20 . A method, comprising:

approximating, using one or more processors, a three dimensional (3D) curve comprising a plurality of linear segments;

determining, using the one or more processors, at least two quadrilateral primitives (quads) for each of the plurality of linear segments using a plurality of triangle primitives, each of the at least two quads comprising at least two of the plurality of triangle primitives, wherein the at least two quads corresponding to the same linear segment of the plurality of linear segments extend along the same direction as the corresponding linear segment and are angled relative to one another; and

rendering, using a shader executed using the one or more processors, the two quads for each of the plurality of linear segments.