# US 11,310,487 B1 · Frustum change in projection stereo rendering

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

- Number: US 11,310,487 B1
- Document ID: US11310487B1
- Status: Granted
- Kind: B1
- Application number: 16/866,385
- Filed: 2020-05-04
- Granted: 2022-04-19
- Earliest claimed: 2018-09-21
- Assignees: Tanzle, Inc.
- Applicants: Tanzle, Inc.
- Inventors: Nancy L. Clemens; Michael A. Vesely
- Web page: https://patentgrep.com/patent/US11310487B1

## CPC

- H04N 13/366: using viewer tracking
- G06T 15/20: Perspective computation
- H04N 13/117: the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
- H04N 13/128: Adjusting depth or disparity
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A system, method or compute program product for restricting convergence and divergence when viewing stereo 3D imagery. The technique includes receiving data representing a 3D virtual scene, receiving data indicating an eyepoint and a three-dimensional frustum rendering region with the three dimensional frustum rendering region identifying a position and orientation of a render plane, receiving data indicating a user stereo comfort region, rendering virtual objects in a first portion of the 3D virtual scene that is in the three-dimensional frustum rendering region and within the user stereo comfort region onto the render plane according to a first type of projection, and rendering virtual objects in a second portion of the 3D virtual scene that is in the three-dimensional frustum rendering region and outside the user stereo comfort region onto the render plane according to a different second type of projection.

## Claims

### Claim 1

A computer program product, tangibly embodied in a non-transitory computer readable medium, comprising instructions to cause one or more processors to:
receive data representing a 3D virtual scene including a plurality of virtual objects positioned within the scene;
receive data indicating first and second eyepoints;
for each of one or more of the plurality of virtual objects in the 3D virtual scene,
receive data indicating a degree of disparity between corresponding positions for the virtual object within the scene as rendered stereoscopically for the first and second eyepoints by projection onto a projection surface using a first projection type;
dynamically generate a stereoscopic image of the 3D virtual scene, wherein the instructions to generate the stereoscopic image comprise instructions to, for each of the one or more virtual objects of the plurality of virtual objects in the 3D virtual scene,
determine whether the degree of disparity of the virtual object satisfies a threshold;
in response to determining that the degree of disparity does not satisfy the threshold, render the virtual object according to the first projection type; and
in response to determining that the degree of disparity does satisfy the threshold following a change in relative position of the virtual object and the eyepoints,
update the projection type for rendering the virtual object from the first projection type to a different, second projection type, and
render the virtual object according to the second projection type; and
display the stereoscopic image on a stereoscopic display.

### Claim 2 (depends on 1)

The computer program product of claim 1, further comprising instructions to cause the one or more processors to:
render the 3D virtual scene using the first projection type.

### Claim 3 (depends on 2)

The computer program product of claim 2, further comprising instructions to cause the one or more processors to, for each of the one or more virtual objects of the plurality of virtual objects in the 3D virtual scene:
in response to determining that the degree of disparity of the virtual object does satisfy the threshold, perform a projection transform on the virtual object.

### Claim 4 (depends on 1)

The computer program of claim 1, wherein determining whether the degree of disparity of a virtual object satisfies a threshold includes determining that a positive disparity of the virtual object satisfies a threshold.

### Claim 5 (depends on 1)

The computer program of claim 1, wherein determining whether the degree of disparity of a virtual object satisfies a threshold includes determining that a negative disparity of the virtual object satisfies a threshold.

### Claim 6 (depends on 1)

The computer program product of claim 1, where the threshold is determined by one or more of: a user's inter-pupil distance, virtual object size, stereo display device contrast/ghosting/size/shape/orientation, ambient lighting, the user's depth of focus, or the user's focal point.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the first projection type is a perspective projection.

### Claim 8 (depends on 7)

The computer program product of claim 7, wherein the perspective projection is a normal perspective projection.

### Claim 9 (depends on 7)

The computer program product of claim 7, wherein the perspective projection is an oblique perspective projection.

### Claim 10 (depends on 1)

The computer program product of claim 1, wherein the second projection type is an orthographic projection.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein the orthographic projection includes a transform function.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein the transform function comprising a scaling function.

### Claim 13 (depends on 1)

The computer program product of claim 1, wherein the data indicating the degree of disparity for a virtual object indicates pixels of separation.

### Claim 14 (depends on 1)

The computer program product of claim 1, wherein the data indicating the degree of disparity for a virtual object indicates degrees of angular separation.

### Claim 15

A method of stereoscopic display, comprising:
receiving data representing a 3D virtual scene including a plurality of virtual objects positioned within the scene;
receiving data indicating first and second eyepoints;
for each of one or more of the plurality of virtual objects in the 3D virtual scene,
receiving data indicating a degree of disparity between corresponding positions for the virtual object within the scene as rendered stereoscopically for the first and second eyepoints by projection onto a projection surface using a first projection type;
dynamically generating a stereoscopic image of the 3D virtual scene, comprising, for each of the one or more virtual objects of the plurality of virtual objects in the 3D virtual scene,
determining whether the degree of disparity of the virtual object satisfies a threshold;
in response to determining that the degree of disparity does not satisfy the threshold, rendering the virtual object according to the first projection type; and
in response to determining that the degree of disparity does satisfy the threshold following a change in relative position of the virtual object and the eyepoints,
updating the projection type for rendering the virtual object from the first projection type to a different, second projection type, and
rendering the virtual object according to the second projection type; and
displaying the stereoscopic image on a stereoscopic display.

### Claim 16 (depends on 15)

The method of claim 15, wherein the first projection type is a perspective projection.

### Claim 17 (depends on 15)

The method of claim 15, wherein the second projection type is an orthographic projection.

### Claim 18

A stereoscopic display system, comprising:
at least one display screen configured to display a stereoscopic image;
one or more processors; and
a non-transitory computer readable medium comprising instructions to cause the one or more processors to
receive data representing a 3D virtual scene including a plurality of virtual objects positioned within the scene;
receive data indicating first and second eyepoints;
for each of one or more of the plurality of virtual objects in the 3D virtual scene,
receive data indicating a degree of disparity between corresponding positions for the virtual object within the scene as rendered stereoscopically for the first and second eyepoints by projection onto a projection surface using a first projection type;
dynamically generate a stereoscopic image of the 3D virtual scene, wherein the instructions to generate the stereoscopic image comprise instructions to, for each of the one or more virtual objects of the plurality of virtual objects in the 3D virtual scene,
determine whether the degree of disparity of the virtual object satisfies a threshold;
in response to determining that the degree of disparity does not satisfy the threshold, render the virtual object according to the first projection type; and
in response to determining that the degree of disparity does satisfy the threshold following a change in relative position of the virtual object and the eyepoints,
update the projection type for rendering the virtual object from the first projection type to a different, second projection type, and
render the virtual object according to the second projection type; and
display the stereoscopic image on a stereoscopic display.

### Claim 19 (depends on 18)

The system of claim 18, wherein the first projection type is a perspective projection.

### Claim 20 (depends on 18)

The system of claim 18, wherein the second projection type is an orthographic projection.
