CN103562966B - 景深栅格化 - Google Patents
景深栅格化 Download PDFInfo
- Publication number
- CN103562966B CN103562966B CN201280024911.7A CN201280024911A CN103562966B CN 103562966 B CN103562966 B CN 103562966B CN 201280024911 A CN201280024911 A CN 201280024911A CN 103562966 B CN103562966 B CN 103562966B
- Authority
- CN
- China
- Prior art keywords
- region
- lens
- triangle
- plane
- half space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- 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/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Prostheses (AREA)
Abstract
可以通过剔除要被呈现的三角形从其不可视的透镜上的半空间区域来对景深进行栅格化。然后,仅对剩余的未被剔除的半空间区域进行内部测试。位于要被呈现的三角形和正在被处理的切片之间的分离平面能够用于限定所述半空间区域。
Description
背景技术
本申请涉及计算机,并且尤其涉及图形处理。
在过去的几年中,对于随机栅格化的研究活动不断增加。然而,景深的有效栅格化和动感模糊依然是难以实现的目标。实质上,仅景深的栅格化是较简单的问题,但是仍然没有很好地探索出对于其的专门算法。
附图说明
图1是根据一个实施例表示二维的分离平面的草图;
图2是根据一个实施例的潜在可视和不可视半空间的示意性原理图;
图3是根据一个实施例的分离平面如何生成半空间线的原理图;
图4是根据一个实施例经过切片的角投射的三角形的示意性原理图;
图5是根照一个实施例表示对于经过切片看到的三角形的可视区域的草图;
图6是根据一个实施例与焦平面相交的三角形的描绘;
图7是根据一个实施例表示关于焦平面进行交叉测试生成交叉点V的三角形的边qr的草图;
图8是根据一个实施例表示两个候选平面将空间划分为四个区域的草图;
图9是一个具有相对应的存储的透镜网格的草图;
图10是一个实施例的流程图;并且
图11是一个实施例的硬件原理图。
具体实施方式
一种用于景深栅格化的有效算法以去除透镜上的(u,v)空间的半空间区域为基础,从该半空间区域,不能够经过切片内的任何像素看到要被明确呈现的三角形。我们精确地发现所有这样的区域的交叉,并且产生的区域用于减少切片中样本的数量,在该切片中需要执行完整的“三角形内部样本”测试。对于如何使用(u,v)空间中产生的区域来快速地剔除样本免于被测试,我们提出了几种有效的方法。
通常,对于景深(DOF)呈现,通过对透镜区域进行参数化,其中Ω为光圈形状,并且可以例如是方形或圆形。一般来说,我们具有每像素n个样本用于随机栅格化,其中,每一个样本由空间位置(xi,yi)和透镜位置(ui,vi)构成。将三角形的裁剪空间顶点表示为并且然后将三角形表示为P0P1P2。切片是焦点对准的平面中像素的矩形块。有时,我们使用术语“焦平面”代替“焦点对准的平面”,焦平面是满足w=F的平面,在该焦平面中,呈现的几何体将表现出完美的聚焦。内部测试简单地计算某一样本(xi,yi,ui,vi)是否位于正在被栅格化的三角形内部。一般来说,应该最小化不必要的内部测试的数量。
为了描述我们的算法,我们将使用分离平面的概念,该概念也曾用于对于大型遮光板的基于单元的遮挡剔除。位于两个凸多面体对象之间的分离平面是由来自一个对象的边和来自另一个对象的顶点形成的平面,并且同时,这两个对象必须位于该平面的相对侧上。图1中示出了该分离平面的二维说明。
在图1中,能够使用切片和三角形的分离线来发现透镜上的区域,在该区域中,能够减少随机栅格化所需要的计算的数量。使用分离平面来检测透镜上的区域10和12。注意到,在区域12中,不存在能够经过切片中的任何点“看到”三角形的透镜位置。在图1的左侧上,三角形位于焦平面的后面。在图1的右侧上,三角形位于焦平面的前面。当使用焦平面后面的顶点来限定分离平面时,正的半空间包含切片,并且反之亦然。
可以使用根据切片和三角形导出的分离平面来去除透镜上的半空间区域免于进一步处理。我们发现不能够经过切片中的任何点“看到”三角形的透镜上的区域,并且因而在这样的区域中具有透镜坐标(ui,vi)的切片中的所有样本不需要任何进一步的内部测试。直观地,这能够根据图1进行理解,其中使用切片和三角形的分离线来剔除透镜上的区域12。
在三维中,存在能够用于剔除透镜上的半空间区域的两种不同类型的分离平面。这在图2中进行了说明。通过切片的边和三角形的顶点生成分离平面的第一集合,我们用πi来表示这些平面,其中,该平面的正半空间由所有点P组成,以使得πi(P)≥0。现在,考虑切片的最左侧的(垂直)边。在图2的左侧的示例中,切片的左侧与三角形的最右侧的顶点创建分离平面。这一分离平面将透镜区域分离为两个半空间。我们将该分割线称为半空间线hi(u,v)=0。
在图2中的左侧上,在这一示例中,三角形14的最右侧的顶点与切片的最左侧的边形成分离平面。这一平面与透镜区域相交,并且将该透镜区域划分为两个半空间:负半空间16,其中透镜上的点不能够经过切片中的任何点看到三角形;正半空间18,其中透镜上的点潜在地能够看到三角形。该分离平面的法线与切片本身位于该平面的相同侧上,并且这限定了透镜上的正半空间和负半空间。在图2中的右侧上,由三角形的边和切片的角形成分离平面。
注意到,取决于形成分离平面的三角形的顶点位于焦平面的前面还是后面,不同地选择分离平面的法线的符号(即,+n或-n)。这样做的原因在于,我们想剔除ht(u,v)<0的区域,而与顶点位置无关。对于位于焦平面的后面的顶点,选择分离平面的法线以使得它的正半空间包含整个切片。相反,对于位于焦平面的前面的顶点,分离平面的法线是这样的,以使得它的负半空间包含整个切片。这在图1中进行了说明。
半空间线的二维法线的方向从相对应的分离平面的法线得到。在图2中将这些二维法线说明为箭头。在几何上,容易看到的是,透镜上的负半空间中的所有点都不能够经过切片中的任何点“看到”三角形。
根据由三角形的边和切片的角形成的分离平面来生成半空间线的第二集合。在图2中的右侧说明了示例。我们将这些分离平面标记为Πj以与由切片的边和三角形的顶点生成的平面πi相区分。平面Πj也生成被标记为Hj(u,v)=0的半空间线。
半空间线hi的第一集合或者水平或者垂直,并且通常,半空间线Hj的第二集合可以具有任意取向。当所有切片的边分别生成一个分离平面时,它们将在透镜的平面中形成二维框。利用这样的框,剔除整个切片中的大部分样本免于进一步处理,这将是简单而有效的。在图3中的左侧示出了示例。在该相同的图的右侧,已经通过Hj平面剔除了透镜上的进一步区域。当三角形的所有顶点位于焦平面的前面或者后面时,透镜上的剩余活动区域由凸区域进行限定,其中hi(u,v)≥0并且Hj(u,v)≥0。仅位于这一活动区域(图3中的区域20)内部的具有透镜坐标(ui,vi)的样本需要进行内部测试。后面描述的我们的实用算法的有效性就是源于这一事实。
在图3中,透镜是粗线的方形。在左侧上,前四个分离平面生成水平和垂直的半空间线,通过hi(u,v)=0进行限定。同时,它们在透镜平面中形成二维边界框。仅需要进一步处理具有区域20中的透镜位置的样本。仅使用前四个平面能够剔除透镜的大量区域。在图3中的右侧上,半空间线的第二集合Hj(u,v)=0能够进一步缩减区域20。当三角形相交于焦平面时,情况将更加复杂,并且我们将在下文中表示如何使用半空间线的第一集合hi(u,v)来在这样的情况下进行剔除。
创建分离平面并不总是可能的。例如,当三角形穿过切片时,发现对于该切片的分离平面将是不可能的。然而,当三角形从前向变为背向时,或者有相反的方向变化时,这种情况就会发生,并且因而,增加半空间线以去除其中三角形为背向的透镜的部分是可能的。这对于接近对象的轮廓的三角形是有益的。实践中,场景中这样的三角形的数量与剩余的三角形相比较通常很小,结果,我们还没有发现此种做法的成效。
我们将使用大量的标记来简化算法的描述。如上文,将三角形的顶点称为p0、p1和p2。切片的四个角由ta、tb、tc和td来指代。顶点pj经过切片的角ti在透镜上的投射将由指代。
参照图4,示出了我们的标记的说明,三角形的顶点p0、p1和p2经过切片的角ta、tb、tc和td投射到透镜上以形成透镜坐标Iij,其中i∈{a,b,c,d}并且j∈{0,1,2}。例如,顶点p2经过tb投射以生成Ib2。
顶点pj经过切片的角ti的投射给出了透镜坐标Iij:
当呈现特定三角形时,偏移量o和德尔塔δ是常量,并且因此可以在三角形设置中对这些进行计算。此外,仅存在对切片坐标的线性相关,这意味着当从一个切片移动到下一个切片时,可以使用递增更新来对它们进行有效的求解。如果则该坐标将不会生成将实际上剔除任何东西的透镜上的半空间。原因在于,投射将接近于±∞,这将对在有限的透镜上进行剔除没有任何帮助。因而,在后续的计算中可以忽略这样的顶点。
接下来,我们描述如何发现经过切片的边和三角形的顶点的分离平面π。确定平面是否分离的最直接方式是测试没有用于限定该平面的三角形的两个顶点与切片相比较是否位于该平面的相对侧上。我们将描述这样做的一种有效方式。
由于这些半空间线hi(u,v)=0或者水平或者垂直,因此能够在二维上进行所有的计算。假设我们想要确定来自三角形的顶点之一pj的平面是否是经过位于处的切片的边的分离平面。在这一情况下,能够完全在xw平面中进行所有计算。接下来,回想到,焦平面在w=F处,并且透镜在w=0处。还注意到,在所有我们的说明中,像素精确地位于焦平面中。
为了确定是否实际上限定了来自分离平面的半空间线,我们想要确定三角形的其它两个顶点位于哪一个半空间中。如果它们都没有与切片本身位于相同的半空间中,则我们发现分离线
为了测试是否为分离平面,我们设置q=pj,并且使r为三角形的其它顶点中的一个。我们导出从(qx,qw)到的二维线性等式,并且将三角形的其它两个顶点插入到该线性等式中。在少量的数学计算之后,我们发现点(rx,rw)处的线性等式的解为:
还注意到e(q,r)=-e(r,q),所以对于给定的切片,仅需要对e(p0,p1)、e(p1,p2)和e(p2,p0)进行求解。通常,对于用于限定分离平面的三角形的其它两个顶点应该位于该线的相同侧上,并且当时在负半空间中,当时在正半空间中,这可以从图1中看到。如先前描述的,忽略的情况,因为这样的投射将不提供任何剔除。注意到,等式2在上是线性的,这也是预期的,因为是线性的。
例如,给定顶点q=p0和切片的最左侧的边我们通过对于r=p1和r=p2求解线性等式(等式2)来测试是否为分离的半空间线。如果是分离的半空间线,则将相对应的半空间线h(u,v)限定为:
它是透镜上的垂直半空间线。注意到,剔除“方向”取决于顶点位于焦平面F的前面还是后面而改变。此外,当关于切片的最右侧的边进行测试时,使pw>F测试反置。对于被验证为真实的分离平面(使用等式2)的所有透镜坐标和,创建类似的等式。这是计算水平和垂直半空间线hi(u,v)=0所需要的全部。
最后,我们描述如何处理至少一个顶点位于焦平面的前面并且至少一个顶点位于焦平面的后面的情况。
在图6中,当三角形与焦平面相交时,切片的边会生成两个分离平面。注意到,在这一情况下,与当三角形不与焦平面相交的情况(见图1)相比较,在“内部”区域24中进行剔除。在这一情况下,我们对于透镜上的最上方区域25和最下方区域分别生成一个uv框。
将位于焦平面的后面的三角形顶点的集合标记为A,并且将位于焦平面的前面的三角形顶点的集合标记为B。当一个集合为空时,所有顶点位于焦平面的一侧上。在这些情况下,明确地在透镜上在uv域中生成框,并且将仅在该框的内部进行内部测试。我们将这些称作uv框,其中我们广泛地使用术语“框”,因为正如我们将看到的,它们能够在一些方向上无限扩展。当A和B都为非空,并且存在从这两个集合生成的分离半空间线时,将生成两个uv框。这可以在图6中看到。当存在在一个集合(A)中生成的两个分离半空间线时,这两个分离半空间线都可以用于限定该集合的uv框。
这在图5中进行了说明。经过切片23看到对于三角形的可视区域。在这一情况下,我们在透镜上生成两个uv框,并且仅对在这些区域内部具有uv坐标的样本进行内部测试。
在计算Iij之后,可以按照要求更少的实时数据并且潜在地更易于并行化的不同方式执行平面的分类。下面的算法仅对于u维度进行了描述;同样的过程对于v维度也有效。
我们通过根据三角形的顶点位于焦平面的哪一侧上来对这些三角形的顶点进行分类开始。使用图4的标记,我们形成这两个区间:
如果则可以简化等式4,并且对于每一个区间界限,我们仅需要测试切片的两个角中的一个。如果三角形的所有顶点都位于焦平面的一侧上,则这两个区间中的一个为空,并且在u中的可视区间由或给出。如果则在垂直的切片的边和三角形的角之间不存在分离平面。
最后,如果并且我们得到可视区间:
[B,∞]如果
[A,∞]如果 (5)
类似地计算对于v维度的区间。为了导出透镜上的可视2D区域,组合包括对于u和v的A边界的区间以形成2D区域。对于包括B边界的区间与此类似。例如,如果我们在u和v上都得到在等式5中描述的情况,则对于和产生的uv框为:
uv框A:[A u,∞]×[A v,∞] (6)
uv框
这种情况在图5中进行了说明。
只要没有顶点精确地位于焦平面上,目前为止描述的算法都是正确的。当存在这样的顶点时,需要对计算的区域进行一些细微的调整:
B u=-∞,如果对于任意pj,
A u=-∞,如果对于任意pj, (8)
并且对于v与此类似。
接下来,我们描述如何计算Hj线。
给定三角形的边qr,我们形成射线q+t(r-q)=q+td。参照图7,我们计算射线和焦平面之间的交叉点v。我们将焦平面划分为九个区域并且识别v落入哪一个区域中。交叉点v不依赖于对于其我们想要对边进行分类的切片。因此能够预先计算这一点以及单元在哪一个切片处改变。因此每一个切片所需要的唯一工作是将切片坐标与这些预先计算的边界进行比较。
随着将v分类到九个单元中的一个,我们识别形成最大角∠tmvtn的两个切片的角m和n。可以将这些制成如下表格:
使用这一表格,我们能够形成两个候选平面Π1:(q,r,tm)和Π2:(r,q,tn)。使用dw分量的符号,也就是边qr是否指向照相机,我们能够选择平面法线方向以使得切片位于各自平面的负半空间中。对于平行于图像平面的边,dw=0,并且我们使用dx、dy来确定m和n以及qw-F的符号以确定法线方向。对于单元五不存在候选平面,因为在这一单元中,边直接指向切片并且在该边和切片的角之间不存在任何分离平面。同样,任意的边qr,其中qw=rw=F,不能够产生有用的半空间线并且因而被忽略。
在图7中,关于焦平面对三角形的边qr进行交叉测试,这生成交叉点v。切片abcd将焦平面划分为九个区域,标号为1-9。在上面的示例中,交叉点v位于单元1中,并且因此用于形成分离平面的候选的角为b和c。在这一说明中,将这些表示为从v到c和从v到b的线,形成v和切片之间的切线。
为了确定Π1和Π2是否为分离平面,关于这些平面对三角形的第三个顶点进行测试。如果该顶点位于平面的正半空间中,则该平面是分离平面。三角形的每一条边能够生成高达两个分离平面,这能够在图8中看到。
在图8中,两个候选平面Π1和Π2将空间划分为四个区域,表示为I-IV。通过构建,三角形的边qr包括在这两个平面中。Π1和Π2是否为分离平面取决于三角形的第三个顶点s位于哪一个区域中。如果s位于区域I或区域II中,则Π1为分离平面。如果s位于区域II或区域III中,则Π2为分离平面。三角形的边qr因而能够产生零个、一个或两个分离平面。
给定平面Π:n·x+c=0,透镜上的相对应的半空间线(u,v,0)为:
n·(u,v,0)+c=nxu+nyv+c (9)
该等式非线性地变化并且因此必须对于每一个切片进行计算。为了看到这一点,再次考虑焦平面中的三角形的边qr和切片的角t。将经过这些点的平面由Ρ:n·x+c=0限定,其中:
n=q·r+(r-q)×t
c=-t·(q×r) (10)
注意到,法线n和c随着我们在屏幕空间中移动而改变。该改变与q和r的深度差异成比例。
最后,当剔除透镜上的样本时,需要对平面∏i的法线进行仔细处理。当从uv框A剔除区域时,能够剔除∏i的正半空间的样本。然而,当从uv框B中剔除区域时,能够剔除来自∏i的负半空间的样本。
到此为止,已经按照精确的方式计算了位于透镜的平面中的半空间线hi和Hj。在这一小节中,我们将描述如何利用它们快速地剔除样本以便进行更快的景深栅格化。以每切片为基础来计算半空间线,并且因而将在切片中的所有像素之间共享剔除机会。然而,如果我们要看到性能增益,则该处理仍然需要非常有效率。正如将要看到的,确定哪些样本位于透镜的活动子空间中本身就是本质上的栅格化处理。
我们在透镜形状的顶部上叠加方形网格并且跟踪落入每一个网格单元的样本数量。这在图9中进行了说明。这些样本分布在像素与像素之间变化,并且我们使用在屏幕上杂乱且重复的那些分布的小的集合(32×32)。注意到,能够使用实施者选择的分辨率来更换32×32。
图9示出了具有相对应的存储的透镜网格。对于每一个网格单元,我们存储位于该单元内的样本数量以及指向该网格单元中的第一样本的偏移量。利用这一布局,我们能够针对分离半空间线来有效地剔除样本的大的集合。
由三角形的顶点和切片的边生成的半空间线hi由于它们是轴线对齐的而提供容易的剔除方式。我们可以简单地把它们夹下来且夹到最接近的网格单元,并且使用夹取的矩形范围来快速地浏览相关样本。
对于非轴线对齐的半空间线Hj,我们对根据hi线计算的矩形范围中的所有网格单元进行迭代,并且对于网格单元和Hj线之间的重叠部分进行保守测试。这在本质上归结为对于每一个屏幕空间切片的微栅格化处理以便剔除样本。对此进行优化的一种方式是利用透镜网格的有限分辨率并且使用预先计算的栅格化器。这里的思想是具有小的查找表,其中,对于边的不同取向,预先计算和存储内部的位掩码(例如,对于8×8网格,64位掩码表是足够的),在该表中查询所有的边,并且通过对位掩码执行逻辑与操作来计算内部区域。
在下面的伪代码中,我们概述了用于使用半空间线剔除呈现景深的完整算法。
根据一个实施例,图10中示出了高级景深栅格化算法。图10中示出的序列可以在软件、硬件和/或固件中实现。在软件实施例中,该序列可以通过计算机可读指令实现,这些指令存储在诸如光学、半导体或者磁存储设备的非暂态计算机可读介质上。
首先,选择切片(方框28),并且在要被呈现的三角形和正在被处理的切片之间形成分离平面,如方框30中指示的。接下来,使用该分离平面来限定透镜上的半空间区域,如方框32中指示的。然后,识别有用的半空间区域,如方框34中指示的。该有用的半空间区域是要被呈现的三角形从其可视的透镜上的那些区域。无用的半空间区域被剔除,如方框36中指示的,并且不会被进一步处理。如方框38中指示的,仅对有用的半空间区域进行内部测试。在方框40中,对半空间区域线进行递增地更新。在菱形42处的检查确定这是否是最后的切片。如果为是,则流程结束,否则,流程返回到方框28以选择另一切片进行处理。
如图11所示,计算机系统130可以包括通过总线104耦接到芯片集核心逻辑110的硬驱134和可移除介质136。计算机系统可以是包括诸如智能电话、平板电脑或移动互联网设备的智能移动设备的任何计算机系统。键盘和鼠标120或者其它常规部件可以经由总线108耦接到该芯片集核心逻辑。在一个实施例中,核心逻辑可以经由总线105耦接到图形处理器112以及中央处理器100。图形处理器112也可以通过总线106耦接到帧缓冲器114。帧缓冲器114可以通过总线107耦接到显示器屏幕118。在一个实施例中,图形处理器112可以是使用单指令多数据(SIMD)架构的多线程、多核并行处理器。
在软件实现的情况下,可以将相关代码存储在包括主存储器132(如139指示的)或图像处理器内的任何可用存储器的任何合适的半导体、磁或光学存储器中。因而,在一个实施例中,可以将用于执行图10的序列的代码存储在诸如存储器132的非暂态机器或计算机可读介质、和/或图形处理器112、和/或中央处理器100中,并且在一个实施例中,可以由处理器100和/或图形处理器112执行该代码。
图10是流程图。在一些实施例中,在这些流程图中阐释的序列可以实现在硬件、软件或固件中。在软件实施例中,诸如半导体存储器、磁存储器或者光学存储器的非暂态计算机可读介质可以用于存储指令,并且可以通过处理器来执行以实现图10所示的序列。
本文描述的图形处理技术可以在多种硬件架构中实现。例如,可以将图形功能集成在芯片集内。或者,可以使用分立的图形处理器。作为再一实施例,图形功能可以通过包括多核处理器的通用处理器来实现。
本说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明所包含的至少一种实现中。因而,短语“一个实施例”或者“在实施例中”的出现不一定指代相同的实施例。而且,可以按照除了说明的特定实施例之外的其它适合的形式来设置该特定的特征、结构或特性,并且所有这样的形式都可以被包含在本申请的权利要求中。
尽管关于有限数量的实施例描述了本发明,但是本领域的普通技术人员将意识到根据所述实施例的各种修改和变型。所附权利要求书意在覆盖落入本发明的真实精神和范围内的所有这样的修改和变型。
Claims (30)
1.一种景深栅格化的方法,包括:
基于透镜区的形状而对具有区域的所述透镜区进行参数化;
识别在其中要被呈现的凸多边形不可视的透镜区域;
剔除要被呈现的凸多边形从其不可视的透镜上的区域;并且
仅在在其中要被呈现的所述凸多边形可视的区域中进行内部测试。
2.如权利要求1所述的方法,包括仅对剩余的未被剔除的区域执行内部测试。
3.如权利要求2所述的方法,包括剔除三角形从其不可视的透镜上的半空间区域。
4.如权利要求1所述的方法,包括使用位于要被呈现的凸多边形和正在被处理的切片之间的分离平面来将所述透镜划分为区域,其中对所述区域的子集进行内部测试。
5.如权利要求4所述的方法,包括使用分离平面,并且对于每一个分离平面,在透镜平面上限定半空间线。
6.如权利要求5所述的方法,包括仅处理位于剩余的未被剔除的区域内部的样本。
7.如权利要求4所述的方法,包括根据由三角形的顶点和切片的边形成的分离平面来形成半空间区域,所述半空间区域是三角形从其不可视的透镜上的区域。
8.如权利要求4所述的方法,包括根据由三角形的边和切片的角形成的分离平面来形成半空间区域,所述半空间区域是三角形从其不可视的透镜上的区域。
9.如权利要求8所述的方法,包括通过关于焦平面对三角形的边进行交叉测试以生成交叉点、将所述焦平面划分为区域、并且识别所述交叉点落入其中的区域来定位所述分离平面。
10.如权利要求7所述的方法,包括递增地更新半空间区域之间的半空间线。
11.一种景深栅格化设备,包括:
用于基于透镜区的形状而对具有区域的所述透镜区进行参数化的模块;
用于识别在其中要被呈现的凸多边形不可视的透镜区域的模块;
用于剔除要被呈现的凸多边形从其不可视的透镜上的区域,以用于景深栅格化的模块;以及
用于仅在在其中要被呈现的所述凸多边形可视的区域中进行内部测试的模块。
12.如权利要求11所述的设备,进一步包括用于仅对剩余的未被剔除的区域执行内部测试的模块。
13.如权利要求12所述的设备,进一步包括用于剔除三角形从其不可视的透镜上的半空间区域的模块。
14.如权利要求11所述的设备,进一步包括用于使用位于要被呈现的凸多边形和正在被处理的切片之间的分离平面来将所述透镜划分为区域的模块,其中对所述区域的子集进行内部测试。
15.如权利要求14所述的设备,进一步包括用于使用分离平面,并且对于每一个分离平面,在透镜平面上限定半空间线的模块。
16.如权利要求15所述的设备,进一步包括用于仅处理位于剩余的未被剔除的区域内部的样本的模块。
17.如权利要求14所述的设备,进一步包括用于根据由三角形的顶点和切片的边形成的分离平面来形成半空间区域的模块,所述半空间区域是三角形从其不可视的透镜上的区域。
18.如权利要求14所述的设备,进一步包括用于根据由三角形的边和切片的角形成的分离平面来形成半空间区域的模块,所述半空间区域是三角形从其不可视的透镜上的区域。
19.如权利要求18所述的设备,进一步包括用于通过关于焦平面对三角形的边进行交叉测试以生成交叉点、将所述焦平面划分为区域、并且识别所述交叉点落入其中的区域来定位所述分离平面的模块。
20.如权利要求17所述的设备,进一步包括用于递增地更新位于半空间区域之间的半空间线的模块。
21.一种景深栅格化装置,包括:
存储器;以及
耦接到所述存储器的处理器,用于基于透镜区的形状而对具有区域的所述透镜区进行参数化,识别在其中要被呈现的凸多边形不可视的透镜区域,通过剔除要被呈现的凸多边形从其不可视的透镜上的区域来执行景深栅格化,并且仅在在其中要被呈现的所述凸多边形可视的区域中进行内部测试。
22.如权利要求21所述的装置,所述处理器用于仅对剩余的未剔除的区域执行内部测试。
23.如权利要求22所述的装置,所述处理器用于剔除三角形从其不可视的透镜上的半空间区域。
24.如权利要求21所述的装置,所述处理器用于使用位于要被呈现的凸多边形和正在被处理的切片之间的分离平面来将所述透镜划分为区域,其中对所述区域的集合进行内部测试。
25.如权利要求24所述的装置,所述处理器用于使用分离平面,并且对于每一个分离平面,用于在透镜平面上限定半空间线。
26.如权利要求25所述的装置,所述处理器仅处理位于剩余的未被剔除的区域内部的样本。
27.如权利要求24所述的装置,所述处理器用于根据由三角形的顶点和切片的边形成的分离平面来形成半空间区域,所述半空间区域是三角形从其不可视的透镜上的区域。
28.如权利要求24所述的装置,所述处理器用于根据由三角形的边和切片的角形成的分离平面来形成半空间区域,所述半空间区域是三角形从其不可视的透镜上的区域。
29.如权利要求28所述的装置,所述处理器用于通过关于焦平面对三角形的边进行交叉测试以生成交叉点、将所述焦平面划分为区域、并且识别所述交叉点落入其中的区域来定位所述分离平面。
30.如权利要求27所述的装置,所述处理器用于递增地更新位于半空间区域之间的半空间线。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/096,165 US9058697B2 (en) | 2011-04-28 | 2011-04-28 | Depth of field rasterization by culling regions on a lens from which a convex polygon to be rendered is not visible |
US13/096,165 | 2011-04-28 | ||
PCT/US2012/033979 WO2012148737A2 (en) | 2011-04-28 | 2012-04-18 | Depth of field rasterization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103562966A CN103562966A (zh) | 2014-02-05 |
CN103562966B true CN103562966B (zh) | 2016-12-07 |
Family
ID=47067536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280024911.7A Expired - Fee Related CN103562966B (zh) | 2011-04-28 | 2012-04-18 | 景深栅格化 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9058697B2 (zh) |
EP (1) | EP2702564A4 (zh) |
CN (1) | CN103562966B (zh) |
TW (1) | TWI550551B (zh) |
WO (1) | WO2012148737A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9038034B2 (en) * | 2009-12-22 | 2015-05-19 | Intel Corporation | Compiling for programmable culling unit |
US9165348B2 (en) * | 2011-06-23 | 2015-10-20 | Intel Corporation | Stochastic rasterization with selective culling |
US9569879B2 (en) * | 2011-12-01 | 2017-02-14 | Intel Corporation | Culling using linear bounds for stochastic rasterization |
CN104040589B (zh) * | 2012-01-16 | 2018-05-25 | 英特尔公司 | 使用随机光栅化生成随机采样分布的图形处理方法和设备 |
US20130257885A1 (en) * | 2012-03-28 | 2013-10-03 | Intel Corporation | Low Power Centroid Determination and Texture Footprint Optimization For Decoupled Sampling Based Rendering Pipelines |
US9183652B2 (en) | 2013-05-15 | 2015-11-10 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US9922449B2 (en) | 2015-06-01 | 2018-03-20 | Intel Corporation | Apparatus and method for dynamic polygon or primitive sorting for improved culling |
US9959643B2 (en) | 2015-10-29 | 2018-05-01 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US10235811B2 (en) | 2016-12-29 | 2019-03-19 | Intel Corporation | Replicating primitives across multiple viewports |
US10628910B2 (en) | 2018-09-24 | 2020-04-21 | Intel Corporation | Vertex shader with primitive replication |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480205B1 (en) * | 1998-07-22 | 2002-11-12 | Nvidia Corporation | Method and apparatus for occlusion culling in graphics systems |
CN1763784A (zh) * | 2005-11-23 | 2006-04-26 | 北京航空航天大学 | 一种三维场景实时绘制框架和绘制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359629B1 (en) * | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
US6573895B1 (en) | 1999-04-16 | 2003-06-03 | Unigraphics Solutions Inc. | Clustered backface culling |
JP4142065B2 (ja) | 2006-05-22 | 2008-08-27 | 株式会社ソニー・コンピュータエンタテインメント | 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法 |
-
2011
- 2011-04-28 US US13/096,165 patent/US9058697B2/en not_active Expired - Fee Related
-
2012
- 2012-04-18 WO PCT/US2012/033979 patent/WO2012148737A2/en active Application Filing
- 2012-04-18 CN CN201280024911.7A patent/CN103562966B/zh not_active Expired - Fee Related
- 2012-04-18 EP EP12777009.7A patent/EP2702564A4/en not_active Withdrawn
- 2012-04-20 TW TW101114149A patent/TWI550551B/zh not_active IP Right Cessation
-
2015
- 2015-04-16 US US14/688,107 patent/US9317964B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480205B1 (en) * | 1998-07-22 | 2002-11-12 | Nvidia Corporation | Method and apparatus for occlusion culling in graphics systems |
CN1763784A (zh) * | 2005-11-23 | 2006-04-26 | 北京航空航天大学 | 一种三维场景实时绘制框架和绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012148737A2 (en) | 2012-11-01 |
US9317964B2 (en) | 2016-04-19 |
US20150287238A1 (en) | 2015-10-08 |
US9058697B2 (en) | 2015-06-16 |
EP2702564A2 (en) | 2014-03-05 |
TWI550551B (zh) | 2016-09-21 |
US20120274636A1 (en) | 2012-11-01 |
TW201312499A (zh) | 2013-03-16 |
EP2702564A4 (en) | 2015-08-19 |
WO2012148737A3 (en) | 2013-01-17 |
CN103562966A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103562966B (zh) | 景深栅格化 | |
Schauer et al. | The peopleremover—removing dynamic objects from 3-d point cloud data by traversing a voxel occupancy grid | |
CN103608850B (zh) | 带选择性剔除的随机光栅化 | |
US8290305B2 (en) | Registration of 3D point cloud data to 2D electro-optical image data | |
EP2999220B1 (en) | Method for correcting 3d image in tiled display and apparatus therefor | |
EP3389014B1 (en) | Specularity determination from images | |
Yeum et al. | Autonomous image localization for visual inspection of civil infrastructure | |
Casas et al. | Assessing the effectiveness of YOLO architectures for smoke and wildfire detection | |
CN102136143B (zh) | 基于空间共线点的单光心反射折射摄像机焦距标定方法 | |
TWI490816B (zh) | 基於線性化五維(5d)邊緣方程式之樣本揀選技術 | |
CN109087344A (zh) | 三维重建中的图像选择方法及装置 | |
Cupec et al. | Segmentation of depth images into objects based on local and global convexity | |
López-González et al. | Geometric entities voting schemes in the conformal geometric algebra framework | |
Zhang et al. | Optimization for 3D model-based multi-camera deployment | |
CN103503058B (zh) | 分析多视图栅格化 | |
Siddiqui et al. | Deep learning-based 3D instance and semantic segmentation: A review | |
Luan et al. | Wavefront analysis for plenoptic camera imaging | |
US20240153207A1 (en) | Systems, methods, and media for filtering points of a point cloud utilizing visibility factors to generate a model of a scene | |
Speyerer | Assessment of feature detectors and descriptors in remote images of planetary bodies | |
Liao et al. | High completeness multi-view stereo for dense reconstruction of large-scale urban scenes | |
CN115619985A (zh) | 增强现实内容展示方法、装置、电子设备及存储介质 | |
Aydin et al. | A fast and practical grid based algorithm for point-feature label placement problem | |
Deymier et al. | IPCC algorithm: Moving object detection in 3D-Lidar and camera data | |
Yang et al. | Occluded object imaging via optimal camera selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161207 Termination date: 20190418 |
|
CF01 | Termination of patent right due to non-payment of annual fee |