# US 11,113,878 B2 · Screen tile pair-based binocular rendering pipeline process and method

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

- Number: US 11,113,878 B2
- Document ID: US11113878B2
- Status: Granted
- Kind: B2
- Application number: 16/622,212
- Filed: 2018-01-02
- Published: 2020-06-18
- Granted: 2021-09-07
- Earliest claimed: 2017-06-16
- Assignees: Zhejiang University
- Applicants: Zhejiang University
- Inventors: Rui Wang; Hujun Bao; Yazhen Yuan
- Web page: https://patentgrep.com/patent/US11113878B2

## CPC

- G06T 17/10: Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06T 7/174: involving the use of two or more images
- G06T 7/70: Determining position or orientation of objects or cameras (camera calibration G06T7/80)
- G06T 15/005: {General purpose rendering architectures}
- G06T 2207/20021: Dividing image into blocks, subimages or windows
- H04N 13/275: from three-dimensional [3D] object models, e.g. computer-generated stereoscopic image signals
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

The invention discloses A screen tile-pair based binocular rendering pipeline process and method, comprising: completing space division according to a spatial relationship of two visual angles in stereo rendering, and generating input primitive lists corresponding to the divided space; searching non-full primitive lists of space divisions and obtaining a surface with spatial partition; and dispatching all generated spatial divisions, and simultaneously performing rasterizing and rendering of two visual angles for primitives in each space division. According to the new measures, a spatial correlation of two visual angles in stereo rendering is considered, and in a rendering process the two visual angles are rasterized and rendered at the same time, thereby reducing a bandwidth required for repeated reading of triangular data in the rendering process.

## Claims

### Claim 1

A screen tile-pair based binocular rendering pipeline process and method, comprising the following steps:
(1) dividing an entire space into a plurality of screen tile pairs according to the spatial relationship of left and right visual angles in binocular drawing, and generating a primitive list in the input scene corresponding thereto for each screen tile pair;
(2) after generating the screen tile pairs, obtaining a plurality of spatially consistent surfaces by searching the screen tile pairs, wherein the spatially consistent surface is a surface formed by spaces corresponding to a plurality of connected screen tile pairs; and
(3) after obtaining a plurality of spatial consistency surfaces, scheduling all the screen tile pairs, and simultaneously rasterizing ang drawing the primitives corresponding to each screen tile pair;
wherein, the specific steps of Step (1) are as follows:
(1-1) according to a present screen tile size n×n, dividing the screens corresponding to left and right visual angles, respectively, into a plurality of screen tiles Tj0 and Tj1; wherein, j=1,2, . . . , N represents the serial number of the screen tiles, and the serial number j is incremented from left to right, from top to small, N is the total number of the screen tiles, 0 represent left in Tj0 and 1 represent right in Tj1;
(1-2) respectively calculating positions LPi0 and LPi1 of an input i-th primitive Pi projected on the screens corresponding to left and right visual angles, wherein i=1, 2, M, M is the total number of the input primitives, and 0 represent left in LPi0 and 1 represent right in LPi1;
(1-3) after the positions LPi0 and LPi1 are determined, respectively calculating screen tiles covered by the positions LPi0 and LPi1, and the screen tiles form screen tile set TPi0, and TPi1 covered by the primitive Pi;
(1-4) in a screen tile unit, according to each polar line in the horizontal direction, simultaneously traversing from left to right the screen tiles on the current polar line in the screens corresponding to left and right visual angles, and determining whether the current primitive Pcur belongs to the currently traversed screen tile pair (Tcur0, Tcur1);
(1-5) constructing a double-layer index in the traversing process, wherein the first layer index is a primitive index, which is a primitive list on the space corresponding to the screen tiles; the second layer index is an index of the primitives on the screen tiles, which is an index list of primitives on the screen tiles corresponding to the corresponding space of the screen tile pairs.

### Claim 2 (depends on 1)

The screen tile-pair based binocular rendering pipeline process and method according to claim 1, wherein, in Step (1-4), the specific steps of whether the current primitive Pcur belongs to the currently traversed screen tile pair (Tcur0, Tcur1) are as follows:
(a) forming sets of TPcur0, and TPcur1 through respectively extracting the screen tiles on the current polar line from overlay screen tile sets TPcur0 and TPcur1 of the current primitive Pcur;
and using the smallest sequence number screen tiles Tjmin0 and Tjmin0 extracted from the sets of TPcur0, and TPcur1 as the currently traversing screen tiles Tcur0, Tcur1;
(b) respectively calculating the barycentric coordinates (Scur0, ecur0) and (Scur1, ecur1) of the screen tiles Tcur0 and Tcur1 on the boundary of the screen tiles, Scur0 and ecur0 respectively represent the barycentric coordinates calculated at the vertical coordinate cv0 on the left and right boundary of Tcur0; Scur1 and ecur1 respectively represent the barycentric coordinates calculated at the ertical coordinate cv1 on the left and right boundary of Tcur0 and cv1=cv0;
(c) determining the traversing direction d of the current primitive Pcur on the current pole line by calculating the difference between the barycentric coordinates of the screen tile boundary on the same polar line;
(d) respectively calculating the benefit interval [E0(s), E0(e)], [E1(s), E1(e)] of the screen tiles Tcur0, Tcur1, [E0(s), E0(e)] and [E1(s), E1(e)] have overlapping parts, then the current primitive Pc, belongs to the currently traversed screen tile pair (Tcur0, Tcur1);
wherein, E0(s)=d*scur0, E0(e)=d*ecur0, E1(s)=d*scur1, E1(e)=d*ecur1;
(e) comparing the sizes of E0(e) and E1(e):
if E0(e)<E1(e), then Tcur+10 is treated as Tcur0, Tcur1 remains unchanged;
if E0(e)>E1(e), then Tcur+11 is treated as Tcur1, Tcur0 remains unchanged;
if E0(e)=E1(e), then Tcur+1 is treated as Tcur0, Tcur+1 is treated as Tcur1;
(f) after performing Step (e), determining whether the screen tile Tcur0 exists in the screen tile set TPcur0 and the screen tile Tcur1 exists in the screen tile set TPcur1; if so, Step (b)˜Step (f) are performed circularly, and if not, the traversal search for the current primitive Pcur is ended.

### Claim 3 (depends on 1)

The screen tile-pair based binocular rendering pipeline process and method according to claim 1, wherein, in Step (2), a plurality of spatially consistent surfaces obtained by searching the screen tile pairs are based on the screen tiles, the following steps are performed for each polar line in the horizontal direction:
(2-1) among the screen tile pairs generated on the current polar line, using a screen tile pair that is not accessed as an starting screen tile pair (Ts0, Ts1) to perform a traversing operation;
(2-2) in the traversing operation, traversing neighboring screen tile pairs that have not been accessed in a depth-first manner;
(2-3) if all connected screen tile pairs have been accessed, recording the starting screen tile pair (Ts0, Ts1), and forming a spatially consistent surface by all connected screen tile pairs;
(2-4) skipping to perform Steps (2-1)˜(2-3) until all the screen tile pairs have been accessed on the current polar line;
by traversing all the screen tile pairs on all the polar lines of the screen through Steps (2-1)˜(2-4), a plurality of spatial consistency surfaces are formed, and the starting screen tile pair (Ts0, Ts1) in each spatial consistency surface is recorded, which constitutes a starting screen tile pair set, the starting screen tile pair set includes a plurality of starting screen tile pair subsets divided by polar lines, and each starting screen tile pair subset includes all starting screen tile pairs belonging to the same polar line.

### Claim 4 (depends on 3)

The screen tile-pair based binocular rendering pipeline process and method according to claim 3, wherein, in Step (2-1), in the screen tile pairs that are not accessed on the current polar line, the screen tile pair with the smallest screen tile number corresponding to the left visual angle is used as the starting screen tile pair (Ts0, Ts1), if there are multiple screen tile pairs with the smallest screen tile number corresponding to the left visual angle, then the screen tile pair with the smallest screen tile number corresponding to the left and right visual angles are used as the starting screen tile pair (Ts0, Ts1).

### Claim 5 (depends on 3)

The screen tile-pair based binocular rendering pipeline process and method according to claim 3, in Step (2-2), for the screen tile pair (Ts0, Ts1), the neighboring screen tile pairs that have not been accessed are traversed in a depth-first manner according to the screen tile pair (Ts+10, Ts+11), the screen tile pair (Ts+10, Ts+11), the screen tile pair (Ts, Ts+11).

### Claim 6 (depends on 3)

The screen tile-pair based binocular rendering pipeline process and method according to claim 3, in Step (3), the following steps are performed for each polar line in the horizontal direction:
(3-1) among the screen tile pair subset corresponding to the current polar line, starting with the appropriate starting screen tile pair, according to the depth-first manner, all the unrasterized screen tile pairs in the spatially consistent surface corresponding to the starting screen tile pair are traversed;
(3-2) during the traversing process, the primitives in the screen tile pairs being accessed are rasterized and drawn;
(3-3) skipping to perform Steps (3-1)˜(3-3) until all the starting screen tile pairs in the starting screen tile pair subsets corresponding to the current polar line are accessed;
all the screen tile pairs are rasterized and drawn according to Steps (3-1)˜(3-3).

### Claim 7 (depends on 6)

The screen tile-pair based binocular rendering pipeline process and method according to claim 6, wherein, in Step (3-1), the appropriate starting screen tile pair is determined in the following manner: in the screen tile pair subsets, the starting screen tile pair with the maximum screen tile number corresponding to the right visual angle is used as the appropriate starting screen tile pair; if there are multiple screen tile pairs with the maximum screen tile number corresponding to the right visual angle, then the screen tiles pair with the maximum screen tile number corresponding to the right and left visual angles are used as the appropriate starting screen tile pair.

### Claim 8 (depends on 6)

The screen tile-pair based binocular rendering pipeline process and method according to claim 6, wherein, in Step (3-2), the specific process of rasterizing and drawing the primitives in the screen tile pairs being accessed:
(3-2-1) for the current screen tile pair being accessed, two primitive indexes that need to be drawn are read according to the two-layer index;
(3-2-2) the rasterization data and the corresponding required rendering data are read according to the two primitive indexes, and the two primitives are rasterized and drawn.

### Claim 9 (depends on 8)

The screen tile-pair based binocular rendering pipeline process and method according to claim 8, wherein, in Step (3-2-1), it is necessary to determine whether the two primitive indexes corresponding to the screen tile pairs are negative, and if so, the two primitives have been rasterized on the associated screen tiles, if not, then Step (3-2-2) is performed; and after completing the rasterization and rendering in Step (3-2-2), the primitive index is assigned a negative value and written back to the position corresponding to the primitive list on the screen tile.
