Variable resolution virtual reality display system
First Claim
1. A variable resolution virtual reality display system comprisingat least one display viewable by a user and comprising a plurality of display pixels, wherein said plurality of display pixels is partitioned into at least two display regions;
- wherein each display region of said at least two display regions is partitioned into a grid of grid elements, each grid element of said grid of grid elements comprising one or more display pixels; and
,at least two of said at least two display regions have different ratios of display pixels per grid element;
a 3D model of a scene;
a scene renderer coupled to said at least one display, to said at least two display regions, and to said 3D model, wherein said scene renderercalculates one or more 2D projections of said 3D model onto said grid of grid elements of each of said at least two display regions, to form a grid element value for each grid element; and
,for each grid element, assigns a pixel value to said one or more display pixels associated with said grid element based on said grid element value of said grid element;
at least one sensor that generates sensor data that measures one or more aspects of a pose of one or more body parts of said user;
a pose analyzer coupled to said at least one sensor, that calculates pose data of said pose of one or more body parts of said user, based on said sensor data generated by said at least one sensor;
wherein said scene renderer is coupled to said pose analyzer, and said scene renderer receives said pose data from said pose analyzer;
calculates one or more rendering virtual camera poses, based on said pose data; and
,calculates said one or more 2D projections of said 3D model onto said grid of grid elements of each of said at least two display regions based on said one or more rendering virtual camera poses; and
,an image warper coupled to said at least one display, said scene renderer, and said pose analyzer, wherein said image warperreceives said one or more rendering virtual camera poses from said scene renderer;
receives said pose data from said pose analyzer;
calculates a change in pose between said one or more virtual camera poses and said pose data;
generates a rerendering approximation of said one or more 2D projections on said at least one display based on said change in pose;
modifies one or more pixels of said at least one display based on said rerendering approximation;
compares said change in pose to a threshold value; and
,generates said rerendering approximation if said change in pose is below said threshold value.
3 Assignments
0 Petitions
Accused Products
Abstract
A virtual reality display system that renders images at different resolutions in different parts of a display. Reduces rendering latency by rendering at a lower resolution in selected regions, for example on the sides of a display where human vision has lower resolution than in the center. Pixels in low resolution regions are combined into grid elements, and rendering may generate grid element values rather than individual pixel values. Rendering may use ray casting, rasterization, or both. Variable resolution rendering may be combined with variable level of detail geometry models to further reduce rendering time. Selected objects may be designed as high resolution objects that are rendered at a high resolution even in low resolution display regions.
-
Citations
21 Claims
-
1. A variable resolution virtual reality display system comprising
at least one display viewable by a user and comprising a plurality of display pixels, wherein said plurality of display pixels is partitioned into at least two display regions; -
wherein each display region of said at least two display regions is partitioned into a grid of grid elements, each grid element of said grid of grid elements comprising one or more display pixels; and
,at least two of said at least two display regions have different ratios of display pixels per grid element; a 3D model of a scene; a scene renderer coupled to said at least one display, to said at least two display regions, and to said 3D model, wherein said scene renderer calculates one or more 2D projections of said 3D model onto said grid of grid elements of each of said at least two display regions, to form a grid element value for each grid element; and
,for each grid element, assigns a pixel value to said one or more display pixels associated with said grid element based on said grid element value of said grid element; at least one sensor that generates sensor data that measures one or more aspects of a pose of one or more body parts of said user; a pose analyzer coupled to said at least one sensor, that calculates pose data of said pose of one or more body parts of said user, based on said sensor data generated by said at least one sensor; wherein said scene renderer is coupled to said pose analyzer, and said scene renderer receives said pose data from said pose analyzer; calculates one or more rendering virtual camera poses, based on said pose data; and
,calculates said one or more 2D projections of said 3D model onto said grid of grid elements of each of said at least two display regions based on said one or more rendering virtual camera poses; and
,an image warper coupled to said at least one display, said scene renderer, and said pose analyzer, wherein said image warper receives said one or more rendering virtual camera poses from said scene renderer; receives said pose data from said pose analyzer; calculates a change in pose between said one or more virtual camera poses and said pose data; generates a rerendering approximation of said one or more 2D projections on said at least one display based on said change in pose; modifies one or more pixels of said at least one display based on said rerendering approximation; compares said change in pose to a threshold value; and
,generates said rerendering approximation if said change in pose is below said threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A variable resolution virtual reality display system comprising
at least one display viewable by a user and comprising a plurality of display pixels, wherein said plurality of display pixels is partitioned into at least two display regions; -
wherein each display region of said at least two display regions is partitioned into a grid of grid elements, each grid element of said grid of grid elements comprising one or more display pixels; and
,at least two of said at least two display regions have different ratios of display pixels per grid element; a 3D model of a scene; a scene renderer coupled to said at least one display, to said at least two display regions, and to said 3D model, wherein said scene renderer calculates one or more 2D projections of said 3D model onto said grid of grid elements of each of said at least two display regions, to form a grid element value for each grid element; and
,for each grid element, assigns a pixel value to said one or more display pixels associated with said grid element based on said grid element value of said grid element; at least one sensor that generates sensor data that measures one or more aspects of a pose of one or more body parts of said user; a pose analyzer coupled to said at least one sensor, that calculates pose data of said pose of one or more body parts of said user, based on said sensor data generated by said at least one sensor; wherein said scene renderer is coupled to said pose analyzer, and said scene renderer receives said pose data from said pose analyzer; calculates one or more rendering virtual camera poses, based on said pose data; and
,calculates said one or more 2D projections of said 3D model onto said grid of grid elements of each of said at least two display regions based on said one or more rendering virtual camera poses; and
,an image warper coupled to said at least one display, said scene renderer, and said pose analyzer, wherein said image warper receives said one or more rendering virtual camera poses from said scene renderer; receives said pose data from said pose analyzer; calculates a change in pose between said one or more virtual camera poses and said pose data; generates a rerendering approximation of said one or more 2D projections on said at least one display based on said change in pose; modifies one or more pixels of said at least one display based on said rerendering approximation; wherein said rerendering approximation comprises calculating a pixel translation vector; and
,translating one or more pixels of said one or more 2D projections by said pixel translation vector; and
,wherein calculating said pixel translation vector comprises approximating said change in pose as a rotation around a unit vector) comprising {circumflex over (ω
)}y and {circumflex over (ω
)}x by an angle Δ
θ
;calculating a spatial translation vector ({circumflex over (ω
)}yΔ
θ
, −
{circumflex over (ω
)}xΔ
θ
);calculating a scaling factor to convert spatial distances to pixels based on pixel dimensions and fields of view of said one or more 2D projections; and
,calculating said pixel translation vector by scaling said spatial translation vector by said scaling factor. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification