# US 2018/0322690 A1 · Visual edge rendering using geometry shader clipping

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0322690 A1
- Document ID: US20180322690A1
- Status: Published application
- Kind: A1
- Application number: 15/586,143
- Filed: 2017-05-03
- Published: 2018-11-08
- Earliest claimed: 2017-05-03
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Jonathan Gustav PAULOVICH; Nikolai Michael FAALAND
- Web page: https://patentgrep.com/patent/US20180322690A1

## CPC

- G06T 15/30: Clipping
- G06T 15/005: {General purpose rendering architectures}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A three-dimensional (3D) object is configured for presentation on a display screen. Object data representing a model of a 3D object is received at a graphics processing unit. The object data includes a plurality of interrelated polygons. Coordinates for one or more clipping boundaries are also received at the graphics processing unit. The clipping boundaries definer a presentation region that overlaps at least in part with visible portions of the display screen. Using a geometry shader, per-polygon clipping is performed on each polygon of the object data that intersects with at least one clipping boundary. Only portions of the 3D object that lie within the presentation region are then presented on the display screen.

## Claims

### Claim 1

A method for presenting a three-dimensional (3D) object on a display screen, comprising:
receiving, at a graphics processing unit, object data representing a model of a 3D object, the object data including a plurality of interrelated polygons;
receiving, at the graphics processing unit, coordinates for one or more clipping boundaries, the one or more clipping boundaries defining a presentation region that overlaps at least in part with visible portions of the display screen;
using a geometry shader, performing per-polygon clipping on each polygon of the object data that intersects with at least one clipping boundary; and
presenting, on the display screen, only portions of the 3D object that lie within the presentation region.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
at a pixel shader, receiving object data representing a clipped model of the 3D object; and
at the pixel shader, rendering only pixels of the 3D object that lie within the presentation region.

### Claim 3 (depends on 2)

The method of claim 2, wherein each polygon that lies entirely within the presentation region is passed to the pixel shader without being clipped by the geometry shader.

### Claim 4 (depends on 3)

The method of claim 3, wherein each polygon is a triangle.

### Claim 5 (depends on 4)

The method of claim 4, wherein each triangle that overlaps exactly one clipping boundary is clipped once at the geometry shader.

### Claim 6 (depends on 4)

The method of claim 4, wherein each triangle that overlaps exactly two clipping boundaries is clipped twice at the geometry shader.

### Claim 7 (depends on 4)

The method of claim 4, wherein each triangle that overlaps three or more clipping boundaries is clipped at the geometry shader, and wherein per-triangle clipping is subsequently performed for each clipped triangle.

### Claim 8 (depends on 2)

The method of claim 2, wherein the geometry shader designates each primitive within the clipped model that intersects with one or more clipping boundaries as an edge primitive.

### Claim 9 (depends on 8)

The method of claim 8, wherein the pixel shader renders each pixel derived from an edge primitive using a predetermined edge treatment.

### Claim 10 (depends on 1)

The method of claim 1, wherein the display screen is a see-through display screen.

### Claim 11 (depends on 10)

The method of claim 10, wherein the one or more clipping boundaries are fixed to a real-world object visible through the see-through display screen.

### Claim 12 (depends on 11)

The method of claim 11, wherein the one or more clipping boundaries are fixed to a virtual world object presented on the see-through display screen.

### Claim 13

A method for presenting a three-dimensional (3D) object on a display screen, comprising:
receiving, at a graphics processing unit, object data representing a model of a 3D object, the object data including a plurality of interrelated polygons;
receiving, at the graphics processing unit, coordinates for one or more clipping boundaries, the one or more clipping boundaries defining a presentation region that overlaps at least in part with visible portions of the display screen;
using a geometry shader, performing per-polygon clipping on each polygon of the object data that intersects with at least one clipping boundary to generate a clipped model of the 3D object;
using the geometry shader, designating each primitive within the clipped model that intersects with one or more clipping boundaries as an edge primitive;
using a pixel shader, rendering each pixel derived from an edge primitive using a predetermined edge treatment; and
presenting, on the display screen, the clipped model of the 3D object such that the predetermined edge treatment is visible at the clipping boundaries.

### Claim 14 (depends on 13)

The method of claim 13, wherein the geometry shader is configured to designate each primitive adjacent to an edge primitive as an edge-adjacent primitive.

### Claim 15 (depends on 14)

The method of claim 14, wherein the geometry shader is configured to indicate a distance to a nearest edge for each primitive of the clipped model of the 3D object.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
at a rasterizer, receiving the clipped model of the 3D object from the geometry shader;
converting each primitive in the clipped model to a plurality of pixels; and
retaining edge information for each primitive in each corresponding pixel.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
at the pixel shader, rendering each of the plurality of pixels based on the distance to the nearest edge.

### Claim 18 (depends on 13)

The method of claim 13, further comprising:
at the pixel shader, adjusting the predetermined edge treatment based on a time-based translation of the 3D object.

### Claim 19

A head-mounted display device, comprising:
a see-through display; and
a controller, configured to:
receive, at a graphics processing unit, object data representing a model of a 3D object, the object data including a plurality of interrelated polygons;
receive, at the graphics processing unit, coordinates for one or more clipping boundaries, the one or more clipping boundaries defining a presentation region that overlaps at least in part with visible portions of the see-through display;
using a geometry shader, perform per-polygon clipping on each polygon of the object data that intersects with at least one clipping boundary;
using the geometry shader, designate each primitive within the clipped model that intersects with one or more clipping boundaries as an edge primitive;
at a pixel shader, receive object data representing a clipped model of the 3D object;
using the pixel shader, render each pixel derived from an edge primitive using a predetermined edge treatment; and
at the pixel shader, render only pixels of the 3D object that lie within the presentation region.

### Claim 20 (depends on 19)

The head-mounted display device of claim 19, wherein the one or more clipping boundaries are fixed to a real-world object visible through the see-through display screen.
