# US 2018/0322708 A1 · Application of Edge Effects to 3D Virtual Objects

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

- Number: US 2018/0322708 A1
- Document ID: US20180322708A1
- Status: Published application
- Kind: A1
- Application number: 15/589,597
- Filed: 2017-05-08
- Published: 2018-11-08
- Earliest claimed: 2017-05-08
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Karim Audrey LUCCIN; Jonathan Gustav PAULOVICH
- Web page: https://patentgrep.com/patent/US20180322708A1

## CPC

- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G02B 27/0172: {characterised by optical features}
- G02B 27/0176: {characterised by mechanical features}
- G06T 15/005: {General purpose rendering architectures}
- G06T 15/20: Perspective computation
- G06T 15/205: {Image-based rendering}
- G06T 15/30: Clipping
- G06T 17/05: Geographic models
- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- H04N 13/207: using a single two-dimensional [2D] image sensor
- H04N 13/271: wherein the generated image signals comprise depth maps or disparity maps
- H04N 13/344: with head-mounted left-right displays
- G02B 2027/014: {comprising information/image processing systems}
- G02B 2027/0141: {characterised by the informative content of the display}
- G02B 2027/0161: {characterised by the relative positioning of the constitutive elements}
- G06T 2210/12: Bounding box
- G06T 2219/20: Indexing scheme for editing of 3D models
- G06T 2219/2021: Shape modification
- H04N 2213/008: Aspects relating to glasses for viewing stereoscopic images
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G02B: OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

To apply an edge effect to a 3D virtual object, a display system receives user input indicative of a desired display region of a 3D virtual object, defines a bounding volume corresponding to the desired display region, and clips the edges of the 3D virtual object to the surfaces of the bounding volume. The display system applies a visual edge effect to one or more of the clipped edges of the 3D virtual object, and displays to the user of the 3D virtual object with the visual edge effect. The technique can include selectively discarding pixels along a surface of the bounding volume, based on a depth map indicative of height values of the 3D virtual object at different horizontal pixel coordinates where the visual edge effect is applied only for edge pixels not discarded.

## Claims

### Claim 1

A method comprising:
loading, into a working memory of a display system configured for stereoscopic 3D display, data representing at least a portion of a 3D virtual object;
receiving, from a user, first user input indicative of a desired display region of the 3D virtual object;
defining, by the display system, a bounding volume corresponding to the desired display region, based on the first user input;
clipping an edge of the 3D virtual object to a surface of the bounding volume;
applying a visual edge effect to a clipped edge of the 3D virtual object; and
causing display to the user of the 3D virtual object with the visual edge effect.

### Claim 2 (depends on 1)

A method as recited in claim 1, wherein said clipping comprises selectively discarding pixels along a surface of the bounding volume, based on a depth map indicative of height values of the 3D virtual object at different horizontal pixel locations;
wherein applying the visual edge effect comprises applying the visual edge effect only for edge pixels not discarded by said discarding.

### Claim 3 (depends on 1)

A method as recited in claim 1, wherein the 3D virtual object is formed of a plurality of tiles stored in a second memory, the method further comprising:
generating the depth map for a particular tile of the plurality of tiles only when the particular tile is initially loaded from the second memory into the working memory; and
reusing the depth map when the particular tile is subsequently reloaded into the working memory.

### Claim 4 (depends on 1)

A method as recited in claim 1, further comprising:
generating the depth map by generating a plurality of depth values, each depth value representing the height of the 3D virtual object at a different one of a plurality of horizontal pixel locations, wherein generating the plurality of depth values includes:
positioning a virtual camera above each of the horizontal pixel locations of the 3D virtual object; and
performing a single-frame render based on the virtual camera, by calculating, at each horizontal pixel location of the object, a vertical distance from the virtual camera to the topmost pixel of the 3D virtual object.

### Claim 5 (depends on 1)

A method as recited in claim 1, wherein said method is performed by a near-eye display (NED) device configured for augmented reality display, the NED device comprises a central processing unit (CPU) and a graphics processing unit (GPU), and said defining the bounding volume is performed by the CPU and all other steps of the method are performed by the GPU.

### Claim 6 (depends on 1)

A method as recited in claim 1, without said method is performed without use of a geometry shader.

### Claim 7 (depends on 1)

A method as recited in claim 1, further comprising:
receiving second user input specifying a new desired display region of the 3D virtual object in a horizontal dimension; and
dynamically modifying display of the 3D virtual object with the visual edge effect according to the second user input.

### Claim 8 (depends on 1)

A method as recited in claim 1, wherein the 3D virtual object is a 3D terrain image of a geographic area.

### Claim 9

A method comprising:
loading, into a working memory of a near-eye display (NED) device configured for augmented reality display, data corresponding to a desired display region of a 3D virtual object defined by a plurality of pixels;
calculating, by the NED device, a depth map of the 3D virtual object, the depth map including a plurality of depth values, each depth value representing a height of the 3D virtual object at a different one of a plurality of horizontal pixel locations of the 3D virtual object;
selectively discarding, by the NED device, pixels located at edges of the desired display region of the 3D virtual object, based on the depth map;
applying, by the NED device, an edge texture to a subset of pixels of the 3D virtual object that were not discarded by said selectively discarding, each pixel in the subset being located proximate to at least one edge of the selected display portion of the 3D virtual object; and
displaying, by the NED device to a user, the 3D virtual object with the edge texture applied to the 3D virtual object.

### Claim 10 (depends on 9)

A method as recited in claim 9, further comprising:
prior to said selectively discarding pixels, defining a bounding volume corresponding to the desired display region, based on first user input;
wherein said selectively discarding pixels comprises selectively discarding pixels along a surface of the bounding volume starting from a top of the bounding volume to a topmost pixel of the 3D virtual object, according to the depth map.

### Claim 11 (depends on 9)

A method as recited in claim 9, wherein the bounding volume is a rectangular box.

### Claim 12 (depends on 9)

A method as recited in claim 9, wherein the 3D virtual object is a 3D terrain image of a geographic area.

### Claim 13 (depends on 9)

A method as recited in claim 9, further comprising generating the depth map by:
positioning a virtual camera above each of the horizontal pixel locations of the 3D virtual object; and
performing a single-frame render based on the virtual camera, by calculating, at each horizontal pixel location of the object, a vertical distance from the virtual camera to the topmost pixel of the 3D virtual object.

### Claim 14 (depends on 9)

A method as recited in claim 9, wherein the NED device comprises a central processing unit (CPU) and a graphics processing unit (GPU), and wherein said defining the bounding volume is performed by the CPU and all other steps of the method are performed by the GPU.

### Claim 15 (depends on 9)

A method as recited in claim 9, without said method is performed without use of a geometry shader.

### Claim 16 (depends on 9)

A method as recited in claim 9, further comprising:
receiving user input specifying a new desired display region of the 3D virtual object in a horizontal dimension; and
dynamically modifying display of the 3D virtual object with the visual edge effect according to the second user input.

### Claim 17

A near-eye display (NED) device configured for augmented reality display, the NED system comprising:
a display subsystem including a transparent display surface configured for augmented reality display;
a working memory; and
a plurality of processors collectively configured to perform steps including
loading, into the working memory, data representing at least a portion of a 3D virtual object, at least a portion of which is to be displayed to a user of the NED subsystem;
calculating a depth map of the 3D virtual object, the depth map including a plurality of depth values, each depth value representing a height of the object at a different one of a plurality of horizontal pixel locations of the 3D virtual object;
selectively discarding pixels located at edges of a selected display portion of the 3D virtual object, based on the depth map;
applying an edge effect to a subset of pixels of the 3D virtual object that were not discarded by said selectively discarding, each pixel in the subset being located proximate to at least one edge of the selected display portion of the 3D virtual object; and
causing the display surface to display the 3D virtual object with the edge effect applied to the 3D virtual object.

### Claim 18 (depends on 17)

An NED device as recited in claim 17, wherein the plurality of processors comprise a central processing unit (CPU) and a graphics processing unit (GPU), and wherein said defining the bounding volume is performed by the CPU and all other steps of the method are performed by the GPU.

### Claim 19 (depends on 17)

An NED device as recited in claim 17, wherein at least one of the processors is configured to perform:
prior to said selectively discarding pixels, defining a bounding volume corresponding to the desired display region, based on first user input;
wherein said selectively discarding pixels comprises selectively discarding pixels along a surface of the bounding volume, starting from a top of the bounding volume to a topmost pixel of the 3D virtual object, according to the depth map.
