IP Library › Granted Patent US 10,503,457
Granted Patent B2
US 10,503,457 · App. 15/652,116 · Granted Dec 10, 2019

Method and apparatus for rendering perspective-correct images for a tilted multi-display environment

Inventors: Rouslan Dimitrov (Santa Clara, CA); Yury Uralsky (San Jose, CA); Lars Nordskog (Corte Madera, CA); Dmitry Zhdan (Korolev, RU)
Assignee: Nvidia Corporation
G06F3/1446G06F3/1431G06T15/005G06T15/205G09G5/14G09G5/395
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 10,503,457
App. No.
15/652,116
Filed
Jul 17, 2017
Granted
Dec 10, 2019
Kind
B2
Art Unit
2694
USPC
345/1.1
Abstract

Techniques for rendering images on multiple tilted displays concurrently to mitigate perspective distortion are disclosed herein. According to one described approach, viewports are assigned to a center monitor and two peripheral monitors. Scene data for the viewports is calculated, and geometric primitives are generated for the viewports based on the scene data. Image transformation is performed based on a modified perspective value to modify geometry of the geometric primitives based on tilt angles of the displays, and the geometric primitives are rasterized using the modified geometry.

Claims (41)

1. A method of generating a multi-screen rendering for a tilted multi-monitor display system, said method comprising:

creating a common viewport for a central monitor, a first peripheral monitor, and a second peripheral monitor, wherein the common viewport encapsulates final geometry to be displayed on the monitors, and wherein the first peripheral monitor and the second peripheral monitor are tilted at an angle relative to the center monitor;

calculating scene data based on the common viewport and a viewing position to generate geometric primitives for the center monitor, the first peripheral monitor, and the second peripheral monitor;

rasterizing the geometric primitives for the center monitor, the first peripheral monitor, and the second peripheral monitor to generate respective bitmaps for the center monitor, the first peripheral monitor, and the second peripheral monitor;

adjusting the respective bitmaps at the pixel level for the first peripheral monitor and the second peripheral monitor based on the angle relative to the center monitor; and

rendering perspective correct images on the center monitor, the first peripheral monitor, and the second peripheral monitor using the respective bitmaps.

2. The method as described in claim 1 wherein the adjusting the respective bitmaps for the first peripheral monitor and the second peripheral monitor based on the angle relative to the center monitor comprises performing at least one of oversampling and resampling pixels of the respective bitmaps.

3. The method as described in claim 1 further comprising obtaining a distance between the center monitor and a user and adjusting the respective bitmaps at the pixel level for the first peripheral monitor and the second peripheral monitor based on the distance.

4. The method as described in claim 1 , further comprising determining a portion of the bitmaps that will not be visible based on the common viewport, wherein the rendering perspective correct images comprises skipping the portion of the bitmaps that will not be visible.

5. A method as described in claim 1 wherein said adjusting the respective bitmaps at the pixel level is performed by a plurality of triangle transformation engines, and wherein dedicated triangle transformation engines are associated with each of the center monitor, the first peripheral monitor, and the second peripheral monitor.

6. A method as described in claim 1 wherein said adjusting the respective bitmaps comprises performing image-space processing using a virtual plane that is tilted relative to the angle of the peripheral displays.

7. A method as described in claim 6 wherein said performing image-space processing comprises at least one of cropping and warping the bitmap.

8. A method of generating a multi-screen rendering, said method comprising:

with respect to a three dimensional represented space comprising three dimensional defined objects therein, using a single pass of a geometry engine of a graphics processor to generate a projection, in 2 dimensions, of said space as viewed from a camera of a large common viewport, said large common viewport defined within a common plane that is perpendicular to a direction of view of said camera wherein said common plane is located a distance, D, from said camera and wherein said large common viewport encapsulates all geometry to be displayed on a first peripheral monitor, a second peripheral monitor, and a central monitor;

said geometry engine outputting triangles corresponding to said large common viewport to a rasterizer wherein said rasterizer generates a respective frame buffer bitmap for the said large common viewport;

said rasterizer outputting respective frame buffers corresponding to respective pixel transformation engines wherein each respective pixel transformation engine adjusts its respective frame buffer, in pixel space, based on: 1) a tilt angle of a respective monitor; 2) said distance D; and 3) a location in 3D space of said large common viewport to generate an output corrected frame buffer for the large common viewport that is perspective corrected for said respective monitor; and

rendering respective corrected frame buffers from said respective rasterizers onto said large common viewport.

9. A method as described in claim 8 wherein said geometry engine outputs triangles having vertices in the format: (X, Y, Z and W).

10. A method as described in claim 8 wherein said tilt angle is measured relative to said common plane.

11. The method as described in claim 8 further comprising performing calibration to determine said D and any tilt angle of any peripheral monitor, wherein said performing calibration comprises:

a) projecting a geometric pattern onto said large common viewport;

b) receiving a user input to alter a correspondence to D to vary said D;

c) receive a user input to alter a correspondence to a tilt angle of the large common viewport to vary said tilt angle;

d) re-projecting an altered geometric pattern onto said large common viewport responsive to variations in said D and said tilt angle;

e) repeating said b)-d); and

f) capturing said D and said tilt angle responsive to a user calibration end input.

12. The method as described in claim 8 wherein said D is input via a head tracking detector.

13. An apparatus for generating a multi-screen rendering for a tilted multi-monitor display system, said apparatus comprising:

a processor and memory configured to execute instructions of an application that renders three-dimensional environments; and

a graphics processing unit communicatively coupled to the processor and the memory, wherein the graphics processing unit is configured to perform a method of generating a multi-screen rendering for the tilted multi-monitor display system, said method comprising:

defining a common viewport for a central monitor, a first peripheral monitor, and a second peripheral monitor, wherein the common viewport encapsulates final geometry to be displayed on the monitors, wherein the first peripheral monitor and the second peripheral monitor are tilted at an angle relative to the center monitor, and wherein the central monitor, the first peripheral monitor, and the second peripheral monitor are communicatively coupled to the graphics processing unit;

calculating scene data based on the common viewport and a viewing position to generate geometric primitives for the center monitor, the first peripheral monitor, and the second peripheral monitor;

rasterizing the geometric primitives for the center monitor, the first peripheral monitor, and the second peripheral monitor to generate respective bitmaps for the center monitor, the first peripheral monitor, and the second peripheral monitor;

adjusting the respective bitmaps at the pixel level for the first peripheral monitor and the second peripheral monitor based on the angle relative to the center monitor; and

rendering a perspective correct image on the center monitor, the first peripheral monitor, and the second peripheral monitor using the respective bitmaps.

14. An apparatus as described in claim 13 wherein the adjusting the respective bitmaps for the first peripheral monitor and the second peripheral monitor based on the angle relative to the center monitor comprises performing at least one of oversampling and resampling pixels of the respective bitmaps.

15. An apparatus as described in claim 13 further comprising obtaining a distance between the center monitor and a user and adjusting the respective bitmaps at the pixel level for the first peripheral monitor and the second peripheral monitor based on the distance.

16. An apparatus as described in claim 13 , further comprising determining a portion of the bitmaps that will not be visible based on the common viewport, wherein the rendering perspective correct images comprises skipping the portion of the bitmaps that will not be visible.

17. An apparatus as described in claim 13 , wherein said adjusting the respective bitmaps at the pixel level is performed by a plurality of triangle transformation engines, and wherein dedicated triangle transformation engines are associated with each of the center monitor, the first peripheral monitor, and the second peripheral monitor.

18. An apparatus as described in claim 13 wherein said adjusting the respective bitmaps comprises performing image-space processing using a virtual plane that is tilted relative to the angle of the peripheral displays.

19. An apparatus as described in claim 18 wherein said performing image-space processing comprises at least one of cropping and warping the bitmap.

Continuity (2)
Provisional Application 62502332 · May 5, 2017
Related Publication 20180322683A1 · Nov 8, 2018
Cited By (4)
US 12,243,154 US 12,244,886 US 12,614,286 US 12,681,563