IP Library Granted Patent US 8,279,222
Granted Patent B2
US 8,279,222 · App. 12/048,969 · Granted Oct 2, 2012

Processing graphics data for a stereoscopic display

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 8,279,222
App. No.
12/048,969
Granted
Oct 2, 2012
Kind
B2
Abstract

Processing graphics data for display on a stereoscopic display. In one example embodiment, a method of processing graphics data for display on a stereoscopic display includes several acts. First, a first projection matrix call from a graphics application to a graphics library is intercepted. Next, it is determined that the first projection matrix call produces a perspective projection matrix. Then, the first projection matrix call is forwarded to the graphics library. Next, a first drawing call with a first viewpoint from the graphics application to the graphics library is intercepted. Then, a second drawing call with a second viewpoint is generated. Next, a third drawing call with a third viewpoint is generated. Finally, the second and third drawing calls are forwarded to the graphics library.

Claims (88)

1. A method of processing graphics data for display on a stereoscopic display, the method comprising the acts of:

a) intercepting a first projection matrix call from a graphics application to a graphics library;

b) determining that the first projection matrix call produces a perspective projection matrix;

c) forward the first projection matrix call to the graphics library;

d) intercepting a first drawing call with a first viewpoint from the graphics application to the graphics library;

e) generating a second drawing call with a second viewpoint;

f) generating a third drawing call with a third viewpoint; and

g) forwarding the second and third drawing calls to the graphics library; and wherein

the act e) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a first separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the second viewpoint; and

the act f) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a second separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the third viewpoint.

2. The method as recited in claim 1 , wherein the act b) comprises determining that the first projection matrix call is a call to a perspective function of the graphics library.

3. The method as recited in claim 2 , wherein the graphics library is OpenGL and the perspective function is glFrustum.

4. The method as recited in claim 1 , wherein the second viewpoint is left of the first viewpoint and the third viewpoint is right of the first viewpoint.

5. The method as recited in claim 1 , further comprising the acts of:

h) intercepting a second projection matrix call from the graphics application to the graphics library;

i) determining that the second projection matrix call produces an orthographic projection matrix;

j) intercepting a fourth drawing call with the first viewpoint from the graphics application to the graphics library; and

k) forwarding the fourth drawing call to the graphics library.

6. The method as recited in claim 5 , wherein the act i) comprises determining that the second projection matrix call is a call to an orthographic function of the graphics library.

7. The method as recited in claim 6 , wherein the graphics library is OpenGL and the perspective function is glOrtho.

8. The method as recited in claim 5 , wherein the act i) comprises testing a projection matrix generated as a result of the second projection matrix call and determining that the projection matrix is an orthographic projection matrix.

9. The method as recited in claim 8 , wherein the graphics library is OpenGL and the second projection matrix call is one of glLoadIdentity, glLoadMatrix, glMultMatrix, glRotate, glTranslate, or glScale.

10. A method of processing graphics data for display on a stereoscopic display, the method comprising the acts of:

a) intercepting a first drawing call with a first viewpoint from a graphics application to a graphics library;

b) transforming all vertices of a polygon of the first drawing call through a projection matrix;

c) determining that not all Z coordinates of the transformed vertices of the polygon are within a predetermined threshold of each other;

d) generating a second drawing call with a second viewpoint;

e) generating a third drawing call with a third viewpoint; and

f) forwarding the second and third drawing calls to the graphics library; and wherein

the act d) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a first separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the second viewpoint; and

the act e) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a second separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the third viewpoint.

11. The method as recited in claim 10 , wherein the second viewpoint is left of the first viewpoint and the third viewpoint is right of the first viewpoint.

12. The method as recited in claim 10 , further comprising the acts of:

g) intercepting a fourth drawing call with a first viewpoint from a graphics application to a graphics library;

h) transforming all vertices of a polygon of the fourth drawing call through a projection matrix;

i) determining that all Z coordinates of the transformed vertices of the polygon are within a predetermined threshold of each other; and

j) forwarding the fourth drawing call to the graphics library.

13. One or more non-transitory computer-readable media having computer-readable instructions thereon which, when executed, implement a method of processing graphics data for display on a stereoscopic display, the method comprising the acts of:

a) intercepting a first projection matrix call from a graphics application to a graphics library;

b) determining that the first projection matrix call produces a perspective projection matrix;

c) forwarding the first projection matrix call to the graphics library;

d) intercepting a first drawing call with a first viewpoint from the graphics application to the graphics library;

e) generating a second drawing call with a second viewpoint;

f) generating a third drawing call with a third viewpoint; and

g) forwarding the second and third drawing calls to the graphics library; and wherein

the act e) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a first separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the second viewpoint; and

the act f) comprises the acts of:

mapping a Z coordinate of each vertex of a o on of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a second separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the third viewpoint.

14. A real-time 3D graphics device comprising:

a processor; and

one or more computer-readable media as recited in claim 13 , the one or more computer-readable media having computer-readable instructions thereon which are configured to be executed by the processor.

15. The real-time 3D graphics device as recited in claim 14 , wherein the real-time 3D graphics device comprises a dedicated video-game machine.

16. One or more non-transitory computer-readable media having computer-readable instructions thereon which, when executed, implement a method of processing graphics data for display on a stereoscopic display, the method comprising the acts of:

a) intercepting a first drawing call with a first viewpoint from a graphics application to a graphics library;

b) transforming all vertices of a polygon of the first drawing call through a projection matrix;

c) determining that not all Z coordinates of the transformed vertices of the polygon are within a predetermined threshold of each other;

d) generating a second drawing call with a second viewpoint;

e) generating a third drawing call with a third viewpoint; and

f) forwarding the second and third drawing calls to the graphics library; and wherein

the act d) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a first separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the second viewpoint; and

the act e) comprises the acts of:

mapping a Z coordinate of each vertex of a polygon of the first drawing call from a range of −1 to 1 to a range of 0 to 1;

multiplying each mapped Z coordinate by a second separation value to calculate the offset value of the vertex; and

modifying the X and Y coordinates of each vertex as a function of the corresponding offset value of the vertex to place the vertex in the third viewpoint.

17. A real-time 3D graphics device comprising:

a processor; and

one or more computer-readable media as recited in claim 16 , the one or more computer-readable media having computer-readable instructions thereon which are configured to be executed by the processor.

18. The real-time 3D graphics device as recited in claim 17 , wherein the real-time 3D graphics device comprising a dedicated video-game machine.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2018
From: SEIKO EPSON CORPORATION
To: 138 EAST LCD ADVANCEMENTS LIMITED
Reel/Frame 046153/0397 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2008
From: EPSON CANADA, LTD.
To: SEIKO EPSON CORPORATION
Reel/Frame 020686/0006 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2008
From: SWAMINATHAN, VASANTH; SELLERS, GRAHAM
To: EPSON CANADA, LTD.
Reel/Frame 020656/0007 →