WO2018227950A1 - 一种基于屏幕块对的双目渲染流水线流程与方法 - Google Patents
一种基于屏幕块对的双目渲染流水线流程与方法 Download PDFInfo
- Publication number
- WO2018227950A1 WO2018227950A1 PCT/CN2018/070034 CN2018070034W WO2018227950A1 WO 2018227950 A1 WO2018227950 A1 WO 2018227950A1 CN 2018070034 W CN2018070034 W CN 2018070034W WO 2018227950 A1 WO2018227950 A1 WO 2018227950A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- screen block
- screen
- pair
- block pair
- blocks
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/174—Segmentation; Edge detection involving the use of two or more images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/275—Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
Definitions
- the invention belongs to the field of real-time rendering, and in particular relates to a binocular rendering pipeline method based on a tile pair.
- Stereoscopic rendering represents the drawing of two images with parallax only in the X-axis direction, which is a special case of multi-view rendering.
- Simple multi-view rendering can be achieved through multiple independent drawing processes.
- multiple independent drawing processes involve multiple calls to the graphics application interface, resulting in inefficient rendering. Therefore, one of the key optimizations for multi-view rendering is to break through the limitations of such multiple calls.
- NVIDIA's Single Pass Stereo implements a new multi-projection architecture on the Pascal-based graphics card that projects both geometries into the left and right views simultaneously by plotting only one pass.
- this technique only outputs the position coordinates of two viewpoints at the same time in the vertex shader stage, and does not consider the geometric relationship between the two views.
- the present invention proposes a stereo hardware rendering pipeline method based on splicing pairs, which considers the correlation of scene geometry in two left and right perspectives, and simultaneously completes geometric primitives in two perspectives. At the same time, rasterization can effectively reduce the bandwidth required to render the scene.
- a binocular rendering pipeline process and method based on a screen block pair comprising the following steps:
- any screen block corresponding to the screen of the left view corresponding to the screen and any screen block corresponding to the screen of the right view form a screen block pair, according to the left and right view lines and the two screen blocks constituting the pair of screen blocks, behind the two screen blocks,
- the area formed by the intersection of the left and right lines of sight is referred to as the corresponding space of the screen block pair.
- step (1) The specific steps of the step (1) are as follows:
- the preset screen block size n ⁇ n is convenient for parallel processing, and generally takes a power of 2, and the value range of n is generally 2 3 to 2 7 .
- the primitive refers to the constituent elements of the mesh model that needs to be drawn, such as a triangle in a triangular mesh.
- step (1-3) according to the primitive P i projected to the position of the screen corresponding to the left perspective Intersect with the screen block in the screen block set T 0 to determine the primitive P i to cover the screen block set Similarly, according to the primitive P i projected to the position of the screen corresponding to the right perspective Intersect with the screen block in the screen block set T 1 to determine that the primitive P i covers the screen block set
- step (1-4) it is determined whether the current primitive P cur belongs to the currently traversed screen block pair.
- the specific steps are:
- step (f) After performing step (e), determine whether the screen block is Present in the screen block set And screen block Present in the screen block set If yes, the steps (b) to (f) are executed cyclically, and if not, the traversal search for the current primitive P cur is ended.
- the method of constructing the primitive list on the corresponding space of the screen block is consistent with the conventional screen block-based method.
- the screen block index is established, and the Id of the two screen blocks constituting the screen block pair is stored on the screen block pair, and the corresponding primitive is found according to the Id stored in the two screen blocks. That is, the list of T stored on the screen block pair is the index of the list of primitives of one primitive on the two screen blocks.
- the primitive P is in the screen block In the list of primitives is the first Id 0 element P 0
- in the screen block In the list of primitives in the list is the first Id 1 element P 1
- the primitive P exists in the screen block pair
- the primitive P is in the screen block pair Stored on it is (Id 0 , Id 1 ).
- step (2) the search screen block pair obtains a plurality of spatial consistency surfaces in units of screen blocks. For each pole line in the horizontal direction, the following steps are performed:
- a plurality of spatial consistency surfaces are formed, and the starting screen block pairs in each spatial consistency surface are recorded.
- Forming a starting screen block pair set the set includes a plurality of starting screen block pair subsets divided by a polar line, and each starting screen block pair subset includes all starting screen block pairs belonging to the same pole line .
- step (2-1) in the pair of screen blocks that are not accessed on the current polar line, the pair of screen blocks corresponding to the screen block number with the smallest left-view angle is the starting screen block pair. If there are more than one screen block pair with the left view angle corresponding to the smallest screen block number, the screen block pair with the left view angle corresponding to the screen block number being the smallest and the right view corresponding to the screen block number being the smallest is selected as the starting screen block pair.
- step (2-2) the pair of screen blocks is described Is in accordance with the screen block pair Screen block pair Screen block pair This depth-first approach traverses adjacent pairs of unvisited screen blocks.
- step (3) for each pole line in the horizontal direction, perform the following steps:
- step (3-1) the appropriate starting screen block pair is determined according to the following: in the initial screen block pair subset corresponding to the current polar line, the right perspective corresponds to the screen pad serial number maximum starting point
- the screen block pair is used as a suitable starting screen block pair; if the right view corresponds to the screen block with the largest number of screen block pairs, the right view corresponding to the screen block number is the largest, and the right view corresponds to the screen block number is also the largest start.
- the screen block pair acts as a suitable starting screen block pair.
- the depth-first mode described in the step (3-1) is identical to the depth-first mode described in the step (2-2).
- step (3-2) the specific process of rasterizing and drawing the primitives in the accessed screen block pair is:
- step (3-1) for the currently accessed screen block pair, read the two primitive indexes that need to be drawn according to the two-layer index; specifically: determine whether the corresponding two primitive index is negative, and if so, the two The primitives have been rasterized on their respective screen blocks; if not, perform step (3-2-2);
- the invention simultaneously processes data of two viewing angles in the drawing process, and reduces the cost of repeatedly drawing data such as vertex attributes in the conventional screen block (screen block) method.
- data of two viewing angles in the drawing process and reduces the cost of repeatedly drawing data such as vertex attributes in the conventional screen block (screen block) method.
- searching for spatial consistency and scheduling according to the screen block it is possible to reduce the excessive coloring by combining optimization means such as level Z culling.
- FIG. 1 is a flow chart of a binocular rendering pipeline process and method based on a screen block pair of the present invention:
- FIG. 2 is a schematic diagram showing the principle of constructing a pair of screen blocks along a pole line in the present invention
- FIG. 4 is a schematic diagram of a two-layer index created in the process of constructing a screen block pair in the present invention
- Figure 5 is a schematic illustration of the spatially uniform surface formed in the present invention.
- the binocular rendering pipeline process and method based on the screen block pair in this embodiment includes the following steps:
- the grid input in this embodiment is composed of triangular patches, that is, the input primitives are triangles.
- the first pole line in the horizontal direction is calculated in units of screen blocks, that is, the pixel coordinates of the Y axis are 0-7, and the left angle of view on the strip line corresponds to the sequence number and right of the screen block.
- the number of the view corresponding to the screen block is 0 to 59.
- the selected current primitive is the first triangle P 1 , and when traversing the search for the screen block pair, the selected current traversal screen block is Next, calculate the screen block based on the pixel points (80, 4) and the pixel points (88, 4).
- the first layer index is a primitive index, which is a list of primitives on a corresponding space of the screen block;
- the second layer index is an index of the primitive on the screen block, and is a screen block
- An index list of primitives on the screen block corresponding to the corresponding space is generated according to the double layer index, and a list of input primitives corresponding to each screen block pair is generated, as shown in FIG. 4 .
- the jump executes S06-S08 until all the screen block pairs on the current polar line have been accessed.
- the screen block pair is As a new starting screen block pair.
- each spatial consistency surface By traversing all the screen block pairs on all the polar lines on the screen through S06 ⁇ S09, multiple spatial consistency surfaces are formed, and the starting screen block pairs in each spatial consistency surface are recorded.
- Forming a starting screen block pair set the set includes a plurality of starting screen block pair subsets divided by a polar line, and each starting screen block pair subset includes all starting screen block pairs belonging to the same pole line .
- the appropriate starting screen block pair is determined in the following manner: in the initial screen block pair subset corresponding to the current pole line, the right screen block pair having the right screen block number corresponding to the right view is the appropriate one. If there are multiple screen block pairs whose right view corresponds to the largest screen block number, then the right view corresponding to the screen block number is the largest, and the left view corresponds to the start screen block pair whose screen block number is also the largest. Start screen block pair.
- the depth priority mode in this step is consistent with the depth priority mode in S07.
- the initial screen block pair subset belonging to the polar line includes a screen block pair.
- Screen block pair In this step, in the screen block pair Initially, the unvisited pairs of screen blocks are traversed in a depth-first manner.
- S11-1 for the currently accessed screen block pair, determine whether the two picture element indexes corresponding to the screen block pair are negative according to the two-layer index, and if so, the two picture elements are already on the respective screen blocks to which they belong. Is rasterized; if not, execute S11-2;
- the jump executes S10-S12 until the start screen block pair corresponding to the current polar line has been visited by the start screen block pair in the subset.
- the initial screen block pair subset belonging to the polar line includes a screen block pair.
- Screen block pair That is when the screen block pair As a starting point, when the screen block pair that has not been accessed is traversed in depth-first mode, the access loop ends, so far, with the screen block pair Screen block pair
- the two spatially consistent surfaces for the start have been rasterized and drawn.
- rasterization and rendering of all pairs of screen blocks are implemented in accordance with S10 to S12.
Abstract
一种基于屏幕块对的双目渲染流水线流程与方法,包括按照立体绘制当中两个视角的空间关系完成空间划分,并为划分的空间生成对应的输入的图元列表;搜索空间划分的非空图元列表并得到具有空间一致性的表面;调度所有生成的空间划分,并为每一个空间划分中的图元同时进行两个视角的光栅化与绘制。这些新的措施,同时考虑了立体绘制中两个视角的空间相关性,在绘制过程中,同时光栅化和绘制两个视角,减少了绘制过程中需要多次读入三角形数据的带宽。
Description
本发明属于实时绘制领域,尤其涉及一种基于屏幕块对(Tile Pair)的双目渲染流水线方法。
立体绘制表示的是绘制两个只在X轴方向存在视差的图像,它是多视角绘制的一种特殊情况。简单的多视角绘制可以通过多个独立的绘制过程来实现。但是多个独立的绘制过程涉及到多次调用图形应用程序接口,导致绘制效率不高。因此,多视角绘制的一个关键优化就在于突破这种多次调用的限制。
De Sorbier使用顶点和几何着色器在同一个绘制过程中同时将几何投影到两个不同的视点。NVIDIA提出的单过程立体绘制(Single Pass Stereo)在帕斯卡架构的的显卡上实现了一个新的多投影架构,这个结构可以在只绘制一遍几何就将这些几何同时投影到左视角和右视角当中。但是这项技术只是在顶点着色器阶段同时输出了两个视点的位置坐标,并没有考虑两个View之间的几何关系。
除此之外,一些基于极线几何的方法也被用于优化在两个试点下的光栅化过程。Adelson利用投影对应关系分析和优化了在两个试点下一系列经典图形算法,包括扫描线光栅化,剔除,隐藏面剔除等。Hasselgren则提出了沿着扫描线上三角形的重心坐标来依序光栅化并计算多个视点上的着色。在遍历扫描线的过程中,可以通过复用相邻视点的着色结果来减 少着色计算。
在图形渲染领域,基于屏幕块的绘制技术已经被发展了很久了。大量基于屏幕块的技术已经被Fuchs等在Pixel Planes 5project中实现了。但是因为基于屏幕块的技术需要在绘制管线的中间流程将几何数据排序,导致这一技术没有被大量地应用到桌面级显卡上,但是在嵌入式显卡,如ARM,POWERVR中被大量使用。Hasselgren提出的多视点光栅化框架虽然也考虑了基于屏幕块时的情况,但是他们还是只考虑了在一个三角形内部的情况,而没有考虑整个场景的分布。
发明内容
针对现有技术的不足,本发明提出了一种基于拼接对的立体硬件渲染管线方法,该方法考虑了左右两个视角下场景几何的相关性,并且同时完成几何图元在两个视角下的同时光栅化,能够有效降低渲染场景所需要的带宽。
本发明的技术方案为:
一种基于屏幕块对的双目渲染流水线流程与方法,包括以下步骤:
(1)按照双目绘制当中左右视角的空间关系,整个空间划分为多个屏幕块对,并为每个屏幕块对生成与其对应的输入场景中的图元列表;
(2)在生成屏幕块对之后,搜索屏幕块对得到多个空间一致性表面,所述的空间一致性表面为多个连通的屏幕块对对应空间形成的表面;
(3)在获得多个空间一致性表面之后,调度所有屏幕块对,并为每一个屏幕块对对应的图元同时进行左右视角的光栅化、绘制。
本发明中,左视角对应屏幕的任一屏幕块与右视角对应屏幕的任一屏幕块组成一个屏幕块对,根据左右视线和组成屏幕块对的两个屏幕块,在 两个屏幕块后方,左右视线交叉形成的区域称为屏幕块对对应空间。
所述的步骤(1)的具体步骤为:
(1-1)按照预先设定的屏幕块尺寸n×n(像素),分别将左右视角对应屏幕分割为多个屏幕块
和
组成屏幕块集T
0和屏幕块集T
1,其中,j=1,2,…,N,表示屏幕块的序号,且序号j是按照从左到右,从上到小的顺序递增的,N为屏幕块的总个数;
(1-5)在遍历的过程中构建双层索引,第一层索引为图元索引,是在屏幕块对应空间上的图元列表;第二层索引为屏幕块上图元的索引,是与屏幕块对对应空间相对应的屏幕块上图元的索引列表,根据这双层索引生成与每个屏幕块对对应的输入图元列表。
本发明中,预先设定的屏幕块尺寸n×n是为了并行处理的方便,一般取值为2的幂次方,n的取值范围一般为2
3~2
7。所述的图元指的是需要绘制的网格模型的组成元素,如三角网格中的三角形。
步骤(1-3)中,根据图元P
i投影到左视角对应屏幕的位置
与屏幕块集T
0中的屏幕块做相交,确定图元P
i覆盖屏幕块集
同理,根据图元P
i投影到右视角对应屏幕的位置
与屏幕块集T
1中的屏幕块做相交,确定图元P
i覆盖屏幕块集
(c)通过计算同一条极线上屏幕块边界重心坐标之差确定当前图元P
cur在当前极线上的遍历方向d;
(d)分别计算屏幕块
的效益区间[E
0(s),E
0(e)]、[E
1(s),E
1(e)],若[E
0(s),E
0(e)]与[E
1(s),E
1(e)]有相互重叠的部分,则当前图元P
cur属于当前遍历到的屏幕块对
(e)比较E
0(e)与E
1(e)的大小:
步骤(1-5)中,屏幕块对应空间上的图元列表的构建方法与传统的 基于屏幕块的方法一致。在图元索引建立完的基础上,建立屏幕块索引,屏幕块对上存储的是组成该屏幕块对的两个屏幕块的Id,再根据两个屏幕块中存储的Id找到对应的图元,也就是T在屏幕块对上存储的列表中是某一个图元在两个屏幕块上图元列表的索引。例如:图元P在屏幕块
的图元列表中是第Id
0个元素P
0,在屏幕块
中的图元列表中是第Id
1个元素P
1,则如果图元P存在于屏幕块对
那么图元P在屏幕块对
上存储的则是(Id
0,Id
1)。
步骤(2)中搜索屏幕块对得到多个空间一致性表面是以屏幕块为单位,针对水平方向的每一条极线,执行以下步骤为:
(2-2)在遍历的过程中,按照深度优先方式遍历邻接的未访问过的屏幕块对;
(2-4)跳转执行步骤(2-1)~(2-3),直至当前极线上的所有屏幕块对都被访问过为止;
通过步骤(2-1)~(2-4)遍历屏幕上所有极线上的所有屏幕块对,形成多个空间一致性表面,并记录每个空间一致性表面中起始的屏幕块对
组成起始屏幕块对集,该集合中包含以极线划分的多个起始屏幕块对子集,每个起始屏幕块对子集中包含属于同一条极线上的所有起始屏幕块对。
在步骤(2-1)中,在当前极线上未被访问的屏幕块对中,以左视角对应屏幕块序号最小的屏幕块对作为起始的屏幕块对
若左视 角对应屏幕块序号最小的屏幕块对有多个,则选择左视角对应屏幕块序号最小,且右视角对应屏幕块序号也最小的屏幕块对作为起始的屏幕块对
步骤(3)中,针对水平方向的每条极线,执行以下步骤:
(3-1)在当前极线对应的起始屏幕块对子集中,以合适的起始屏幕块对为开始,按照深度优先方式,遍历该起始屏幕块对对应的空间一致性表面中的所有未被光栅化的屏幕块对;
(3-2)在遍历的过程中,对被访问的屏幕块对中的图元进行光栅化和绘制;
(3-3)跳转执行步骤(3-1)~(3-3),直至当前极线对应的起始屏幕块对子集中的起始屏幕块对都被访问过为止;
最终按照步骤(3-1)~(3-3)实现对所有屏幕块对的光栅化和绘制。
步骤(3-1)中,所述的合适的起始屏幕块对是按照以下方式确定的:在当前极线对应的起始屏幕块对子集中,以右视角对应屏幕块序号最大的起始屏幕块对作为合适的起始屏幕块对;若右视角对应屏幕块序号最大的屏幕块对有多个,则选择右视角对应屏幕块序号最大,且右视角对应屏幕块序号也最大的起始屏幕块对作为合适的起始屏幕块对。
步骤(3-1)中所述的深度优先方式与步骤(2-2)中所述的深度优先方式一致。
步骤(3-2)中,对被访问的屏幕块对中的图元进行光栅化和绘制的具体过程为:
(3-2-1)针对当前被访问的屏幕块对,按照两层索引读取需要绘制的两个图元索引;具体为:判断对应的两个图元索引是否为负,若是,该两个图元已经在各自所属的屏幕块上被光栅化;若否,执行步骤(3-2-2);
(3-2-2)根据两个图元索引读取光栅化数据(屏幕空间位置、面方程)和对应所需的绘制数据(顶点属性等),实现对该两个图元是光栅化和绘制;且完成完成光栅化和绘制之后,将该图元索引赋为负值,并写回到屏幕块上的图元列表对应的位置。
本发明在绘制过程中同时处理两个视角的数据,减少了传统基于屏幕块(屏幕块)方法中重复读取顶点属性等绘制数据的代价。除此之外,通过搜索空间一致性并依依照屏幕块对调度,可以结合层次Z剔除等优化手段,减少过度着色。
图1是本发明基于屏幕块对的双目渲染流水线流程与方法的流程图:
图2是本发明中沿着极线构建屏幕块对的原理示意图;
图3是本发明中构建屏幕块对时确定遍历方向方法示意图;
图4是本发明中在构建屏幕块对过程中创建的两层索引示意图;
图5是本发明中形成的空间一致性表面示意图。
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
参见图1,本实施例中基于屏幕块对的双目渲染流水线流程与方法包括以下步骤:
S01,按照预先设定的屏幕块尺寸n×n(像素),分别将左右视角对应屏幕分割为多个屏幕块
和
组成屏幕块集T
0和屏幕块集T
1,其中,j=1,2,…,N,表示屏幕块的序号,且序号j是按照从左到右,从上到小的顺序递增的,N为屏幕块的总个数,如图2所示。
本实施例中,n=8,左右视角对应屏幕尺寸为640×480,则屏幕块的序号处于0~4799,即N=4799。
本实施例输入的网格由三角形面片组成,也就是输入的图元为三角形。
S04,以屏幕块为单位,按照水平方向的每一条极线(Epipolar Line),从左到右同时遍历左右视角对应屏幕中当前极线上的屏幕块,判断得到当前图元P
cur属于的屏幕块对。
S04的具体过程为:
S04-3,通过计算同一条极线上屏幕块边界重心坐标之差确定当前图元P
cur在当前极线上的遍历方向d,如图3所示。
S04-4,分别计算屏幕块
的效益区间[E
0(s),E
0(e)]、[E
1(s),E
1(e)],若[E
0(s),E
0(e)]与[E
1(s),E
1(e)]有相互重叠的部分,则当前 图元P
cur属于当前遍历到的屏幕块对
其中,
S04-5,比较E
0(e)与E
1(e)的大小:
本实施例中,首先计算以屏幕块为单位,水平方向上的第一条极线,也就是Y轴的像素坐标为0~7,此条极线上的左视角对应屏幕块的序号与右视角对应屏幕块的序号都为0~59。然后,选取的当前图元为第一个三角形P
1,在遍历查找屏幕块对时,选取的当前遍历屏幕块为
接下来,根据像素点(80,4)与像素点(88,4)计算屏幕块
在屏幕块边界上的重心坐标
为((0.3,0.6),(0.6,0.6));同理,根据像素点(0,4)与像素点(8,4)计算屏幕块
在屏幕块边界上的重心坐标
为((0.2,0.6),(0.56,0.6)),进而根据
确定遍历方向d。最后,经计算有益区间[E
0(s),E
0(e)]与[E
1(s),E
1(e)]有相互重叠的部分,所以三角形P
1属于屏幕块对
此次查找结束后,经比较E
0(e)>E
1(e),则将屏幕块
作为当前屏幕块,进行下一次查找。
S05,在遍历的过程中构建双层索引,第一层索引为图元索引,是在屏幕块对应空间上的图元列表;第二层索引为屏幕块上图元的索引,是与屏幕块对对应空间相对应的屏幕块上图元的索引列表,根据这双层索引生成与每个屏幕块对对应的输入图元列表,如图4所示。
本实施例中,以三角形P
1在屏幕块对
为例。因为三角形P
1分别在屏幕块
中可见,则三角形的序号分别出现在屏幕块
上的图元列表中。因为屏幕块
的图元列表已经被插入了三角形P
0,所以三角形P
1插入到图元索引为1的位置上。而在屏幕块
的图元列表中,三角形P
1插入到图元索引为0的位置上,故生成的屏幕块对
上一个新元素为(1,0)。
本步骤中,在当前极线上未被访问的屏幕块对中,以左视角对应屏幕块序号最小的屏幕块对作为起始的屏幕块对
若左视角对应屏幕块序号最小的屏幕块对有多个,则选择左视角对应屏幕块序号最小,且左视角对应屏幕块序号也最小的屏幕块对作为起始的屏幕块对
S07,在遍历的过程中,按照深度优先方式遍历邻接的未访问过的屏幕块对。
S09,跳转执行S06~S08,直至当前极线上的所有屏幕块对都被访问 过为止。
通过S06~S09遍历屏幕上所有极线上的所有屏幕块对,形成多个空间一致性表面,并记录每个空间一致性表面中起始的屏幕块对
组成起始屏幕块对集,该集合中包含以极线划分的多个起始屏幕块对子集,每个起始屏幕块对子集中包含属于同一条极线上的所有起始屏幕块对。
S10,在当前极线对应的起始屏幕块对子集中,以合适的起始屏幕块对为开始,按照深度优先方式,遍历该起始屏幕块对对应的空间一致性表面中的所有未被光栅化的屏幕块对。
本步骤中,合适的起始屏幕块对是按照以下方式确定的:在当前极线对应的起始屏幕块对子集中,以右视角对应屏幕块序号最大的起始屏幕块对作为合适的起始屏幕块对;若右视角对应屏幕块序号最大的屏幕块对有多个,则选择右视角对应屏幕块序号最大,且左视角对应屏幕块序号也最大的起始屏幕块对作为合适的起始屏幕块对。本步骤中的深度优先方式与S07中的深度优先方式一致。
S11,在遍历的过程中,对被访问的屏幕块对中的图元进行光栅化和绘制。
本步骤中,对被访问的屏幕块对中的图元进行光栅化和绘制的具体过程为:
S11-1,针对当前被访问的屏幕块对,判断按照两层索引读取该屏 幕块对对应的两个图元索引是否为负,若是,该两个图元已经在各自所属的屏幕块上被光栅化;若否,执行S11-2;
S11-2,根据两个图元索引读取光栅化数据(屏幕空间位置、面方程)和对应所需的绘制数据(顶点属性等),实现对该两个图元是光栅化和绘制;并将该图元索引赋为负值,并写回到屏幕块上的图元列表对应的位置。
本实施例中,以屏幕块对
为例,首先读取在屏幕块对上的屏幕块列表(1,0),则分别取
的图元列表中第1个元素、
的图元列表中的第0个元素,进而得到序号为1的三角形P
1。最后,读取左右视角下三角形P
1的光栅化数据进行光栅化。光栅化完成之后,将-1分别写到
的图元列表中索引为1元素、
的图元列表中索引为0的元素上。
S12,跳转执行S10~S12,直至当前极线对应的起始屏幕块对子集中的起始屏幕块对都被访问过为止。
本步骤中,以水平方向的第一条极线为例,属于该极线的起始屏幕块对子集中包括屏幕块对
屏幕块对
即当屏幕块对
作为开始,按照深度优先方式遍历完未被访问的屏幕块对时,结束访问循环,到目前为止,以屏幕块对
屏幕块对
为起始的两个空间一致性表面已经被光栅化和绘制。最终按照S10~S12实现对所有屏幕块对的光栅化和绘制。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (10)
- 一种基于屏幕块对的双目渲染流水线流程与方法,包括以下步骤:(1)按照双目绘制当中左右视角的空间关系,将整个空间划分为多个屏幕块对,并为每个屏幕块对生成与其对应的输入场景中的图元列表;(2)在生成屏幕块对之后,搜索屏幕块对得到多个空间一致性表面,所述的空间一致性表面为多个连通的屏幕块对对应空间形成的表面;(3)在获得多个空间一致性表面之后,调度所有屏幕块对,并为每一个屏幕块对对应的图元同时进行左右视角的光栅化、绘制。
- 如权利要求1所述的基于屏幕块对的双目渲染流水线流程与方法,其特征在于,所述的步骤(1)的具体步骤为:(1-1)按照预先设定的屏幕块尺寸n×n,分别将左右视角对应屏幕分割为多个屏幕块T j 0和T j 1,组成屏幕块集T 0和屏幕块集T 1,其中,j=1,2,…,N,表示屏幕块的序号,且序号j是按照从左到右,从上到小的顺序递增的,N为屏幕块的总个数;(1-5)在遍历的过程中构建双层索引,第一层索引为图元索引,是在屏幕块对应空间上的图元列表;第二层索引为屏幕块上图元的索引,是 与屏幕块对对应空间相对应的屏幕块上图元的索引列表,根据这双层索引生成与每个屏幕块对对应的输入图元列表。
- (c)通过计算同一条极线上屏幕块边界重心坐标之差确定当前图元P cur在当前极线上的遍历方向d;(d)分别计算屏幕块 的效益区间[E 0(s),E 0(e)]、[E 1(s),E 1(e)],若[E 0(s),E 0(e)]与[E 1(s),E 1(e)]有相互重叠的部分,则当前图元P cur属于当前遍历到的屏幕块对(e)比较E 0(e)与E 1(e)的大小:
- 如权利要求1所述的基于屏幕块对的双目渲染流水线流程与方法,其特征在于,步骤(2)中搜索屏幕块对得到多个空间一致性表面是以屏幕块为单位,针对水平方向的每一条极线,执行以下步骤为:(2-2)在遍历的过程中,按照深度优先方式遍历邻接的未访问过的屏幕块对;(2-4)跳转执行步骤(2-1)~(2-3),直至当前极线上的所有屏幕块对都被访问过为止;
- 如权利要求4所述的基于屏幕块对的双目渲染流水线流程与方法,其特征在于,步骤(3)中,针对水平方向的每条极线,执行以下步骤:(3-1)在当前极线对应的起始屏幕块对子集中,以合适的起始屏幕块对为开始,按照深度优先方式,遍历该起始屏幕块对对应的空间一致性表面中的所有未被光栅化的屏幕块对;(3-2)在遍历的过程中,对被访问的屏幕块对中的图元进行光栅化和绘制;(3-3)跳转执行步骤(3-1)~(3-3),直至当前极线对应的起始屏幕块对子集中的起始屏幕块对都被访问过为止;最终按照步骤(3-1)~(3-3)实现对所有屏幕块对的光栅化和绘制。
- 如权利要求7所述的基于屏幕块对的双目渲染流水线流程与方法,其特征在于,步骤(3-1)中,所述的合适的起始屏幕块对是按照以下方式确定的:在当前极线对应的起始屏幕块对子集中,以右视角对应屏幕块序号最大的起始屏幕块对作为合适的起始屏幕块对;若右视角对应屏幕块序号最大的屏幕块对有多个,则选择右视角对应屏幕块序号最大,且左视角对应屏幕块序号也最大的起始屏幕块对作为合适的起始屏幕块对。
- 如权利要求7所述的基于屏幕块对的双目渲染流水线流程与方法,其特征在于,步骤(3-2)中,对被访问的屏幕块对中的图元进行光栅化和绘制的具体过程为:(3-2-1)针对当前被访问的屏幕块对,按照两层索引读取需要绘制 的两个图元索引;(3-2-2)根据两个图元索引读取光栅化数据和对应所需的绘制数据,实现对该两个图元是光栅化和绘制。
- 如权利要求9所述的基于屏幕块对的双目渲染流水线流程与方法,其特征在于,步骤(3-2-1)中,需要判断屏幕块对对应的两个图元索引是否为负,若是,则该两个图元已经在所属的屏幕块上被光栅化,若否执行步骤(3-2-2);且步骤(3-2-2)中在完成光栅化和绘制之后,将该图元索引赋为负值,并写回到屏幕块上的图元列表对应的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/622,212 US11113878B2 (en) | 2017-06-16 | 2018-01-02 | Screen tile pair-based binocular rendering pipeline process and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710461595.4 | 2017-06-16 | ||
CN201710461595.4A CN107330846B (zh) | 2017-06-16 | 2017-06-16 | 一种基于屏幕块对的双目渲染流水线流程与方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018227950A1 true WO2018227950A1 (zh) | 2018-12-20 |
Family
ID=60195761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/070034 WO2018227950A1 (zh) | 2017-06-16 | 2018-01-02 | 一种基于屏幕块对的双目渲染流水线流程与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11113878B2 (zh) |
CN (1) | CN107330846B (zh) |
WO (1) | WO2018227950A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114820990A (zh) * | 2022-06-29 | 2022-07-29 | 浙江远算科技有限公司 | 一种基于数字孪生的流域防洪可视化方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330846B (zh) * | 2017-06-16 | 2019-07-30 | 浙江大学 | 一种基于屏幕块对的双目渲染流水线流程与方法 |
US11132831B1 (en) * | 2020-03-02 | 2021-09-28 | Qualcomm Incorporated | Methods and apparatus for efficient multi-view rasterization |
CN115408631B (zh) * | 2022-08-29 | 2023-05-26 | 重庆市地理信息和遥感应用中心 | 一种基于多参数渲染的海量倾斜数据加载方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635061A (zh) * | 2009-09-08 | 2010-01-27 | 南京师范大学 | 基于人眼立体视觉机制的自适应立体渲染方法 |
CN102663801A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种提高三维模型渲染性能的方法 |
CN105224288A (zh) * | 2014-06-27 | 2016-01-06 | 北京大学深圳研究生院 | 双目三维图形渲染方法及相关系统 |
US20160260241A1 (en) * | 2015-03-02 | 2016-09-08 | Samsung Electronics Co., Ltd. | Title-based rendering method and apparatus |
CN107330846A (zh) * | 2017-06-16 | 2017-11-07 | 浙江大学 | 一种基于屏幕块对的双目渲染流水线流程与方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6005607A (en) * | 1995-06-29 | 1999-12-21 | Matsushita Electric Industrial Co., Ltd. | Stereoscopic computer graphics image generating apparatus and stereoscopic TV apparatus |
US9183607B1 (en) * | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US9483861B2 (en) * | 2013-03-15 | 2016-11-01 | Qualcomm Incorporated | Tile-based rendering |
US9607426B1 (en) * | 2013-12-20 | 2017-03-28 | Imagination Technologies Limited | Asynchronous and concurrent ray tracing and rasterization rendering processes |
GB2546720B (en) * | 2015-11-02 | 2019-11-13 | Advanced Risc Mach Ltd | Method of and apparatus for graphics processing |
-
2017
- 2017-06-16 CN CN201710461595.4A patent/CN107330846B/zh active Active
-
2018
- 2018-01-02 US US16/622,212 patent/US11113878B2/en active Active
- 2018-01-02 WO PCT/CN2018/070034 patent/WO2018227950A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635061A (zh) * | 2009-09-08 | 2010-01-27 | 南京师范大学 | 基于人眼立体视觉机制的自适应立体渲染方法 |
CN102663801A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种提高三维模型渲染性能的方法 |
CN105224288A (zh) * | 2014-06-27 | 2016-01-06 | 北京大学深圳研究生院 | 双目三维图形渲染方法及相关系统 |
US20160260241A1 (en) * | 2015-03-02 | 2016-09-08 | Samsung Electronics Co., Ltd. | Title-based rendering method and apparatus |
CN107330846A (zh) * | 2017-06-16 | 2017-11-07 | 浙江大学 | 一种基于屏幕块对的双目渲染流水线流程与方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114820990A (zh) * | 2022-06-29 | 2022-07-29 | 浙江远算科技有限公司 | 一种基于数字孪生的流域防洪可视化方法及系统 |
CN114820990B (zh) * | 2022-06-29 | 2022-09-20 | 浙江远算科技有限公司 | 一种基于数字孪生的流域防洪可视化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US11113878B2 (en) | 2021-09-07 |
CN107330846B (zh) | 2019-07-30 |
CN107330846A (zh) | 2017-11-07 |
US20200193704A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kopf et al. | One shot 3d photography | |
WO2018227950A1 (zh) | 一种基于屏幕块对的双目渲染流水线流程与方法 | |
US8659597B2 (en) | Multi-view ray tracing using edge detection and shader reuse | |
US8970580B2 (en) | Method, apparatus and computer-readable medium rendering three-dimensional (3D) graphics | |
CN104427325B (zh) | 快速集成图像生成方法及与用户交互的裸眼三维显示系统 | |
CN108335352A (zh) | 一种面向多视图大规模三维重建场景的纹理映射方法 | |
JP5055214B2 (ja) | 画像処理装置、画像処理方法 | |
CN105205866A (zh) | 基于密集点云的城市三维模型快速构建方法 | |
CN102831634B (zh) | 一种高效精确的通用软阴影生成方法 | |
CN109685879A (zh) | 多视影像纹理分布的确定方法、装置、设备和存储介质 | |
CN111951368A (zh) | 一种点云、体素和多视图融合的深度学习方法 | |
Wang et al. | Voge: a differentiable volume renderer using gaussian ellipsoids for analysis-by-synthesis | |
CN106204703A (zh) | 三维场景模型渲染方法和装置 | |
US20170076418A1 (en) | Rendering apparatus and method | |
KR20160068204A (ko) | 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 | |
CN107689076A (zh) | 一种用于虚拟手术系统切割时的高效渲染方法 | |
JP4001733B2 (ja) | 幾何学面上の注釈を簡略化する装置、システム、および方法 | |
Nguyen et al. | High-definition texture reconstruction for 3D image-based modeling | |
Li et al. | A fast fusion method for multi-videos with three-dimensional GIS scenes | |
Li et al. | Multi-view stereo via depth map fusion: A coordinate decent optimization method | |
CN115619974A (zh) | 基于改进PatchMatch网络的大型场景三维重建方法、重建装置、设备及存储介质 | |
Kuder et al. | Point-based rendering optimization with textured meshes for fast LiDAR visualization | |
Wang et al. | GPU based implementation of 3DTV system | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
CN105301652A (zh) | 一种三维地震数据固定轴向切片动态判断体绘制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18818681 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18818681 Country of ref document: EP Kind code of ref document: A1 |