一种三维物体的边缘检测方法技术

技术编号:14469913 阅读:45 留言:0更新日期:2017-01-21 01:42
本申请公开了一种三维物体的边缘检测方法,包括:对于构成三维物体的每条三角形边,将对应的两条法线的单位向量分别与视线反方向的单位向量进行点积运算,根据点积运算结果的正负性,确定该条边是否为三维物体的边缘线段;所述两条法线为共享该条边的两个三角形的法线;对所述边缘线段进行绘制,得到所述三维物体的边缘。采用本发明专利技术,可以快速准确检测到三维物体的边缘。

【技术实现步骤摘要】

本专利技术涉及三维场景渲染技术,特别是涉及一种三维物体的边缘检测方法。
技术介绍
在三维场景渲染中,边缘检测技术是一项非常常用的技术,比如选取游戏场景中的游戏对象需要对对象的边缘进行标记。目前的边缘检测方案中,通过对待进行边缘检测的三维物体(如游戏系统中的游戏对象)进行三次渲染,来实现三维物体的检测。其中,第一次是渲染一个比原有三维物体稍大的对象,并将此对象覆盖的模板缓存中对应像素的模板值初始化为1。第二次是按照原有尺寸渲染这个三维物体,并将此对象覆盖的模板缓存中对应像素的模板值加1。第三次是根据模板缓存的数据,将像素中模板值为1的像素确定为整个三维物体的边缘占用的像素,绘制这些模板值为1的像素即可标记出该三维物体的边缘。在上述传统的方案中,由于需要对待进行边缘检测的三维物体进行三次渲染才能得到其边缘,这样,就会使得对渲染指令的调用较多,相应的绘制指令(DrawCall)的调用次数也会较多,从而会使得渲染效率较低。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种三维物体的边缘检测方法,该方法可以快速准确检测到三维物体的边缘。为了达到上述目的,本专利技术提出的技术方案为:一种三维物体的边缘检测方法,包括:对于构成三维物体的每条三角形边,将对应的两条法线的单位向量分别与视线反方向的单位向量进行点积运算,根据点积运算结果的正负性,确定该条边是否为三维物体的边缘线段;所述两条法线为共享该条边的两个三角形的法线;对所述边缘线段进行绘制,得到所述三维物体的边缘。综上所述,本专利技术提出的三维物体的边缘检测方法,利用共享边缘线段的两个三角形的法线单位向量分别与视线反方向的单位向量的点积运算结果的正负性,来筛选出三维物体的边缘线段。如此,仅需要一次渲染即可标识出三维物体的边缘,从而可以大幅度提高边缘检测的效率。附图说明图1为本专利技术实施例的方法流程示意图;图2为共享边缘线段的两邻接三角形的法向量与视线向量的关系示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本专利技术作进一步地详细描述。本专利技术的核心思想是:考虑到三维物体的基本渲染单元是三角形,可以利用共享边缘线段的相邻三角形之间的特性,来筛选出边缘线段,即对于构成三维物体的每条三角形的边,根据共享该条边的两三角形的法线的单位向量分别与视线反方向单位向量的点积结果的正负性,来确定该条边是否为三维物体的边缘线段,绘制出所有边缘线段即可渲染得到三维物体的边缘。如此,可以大幅度减少渲染次数,提高边缘检测效率。图1为本专利技术实施例一的流程示意图,如图1所示,该实施例实现的三维物体的边缘检测方法包括:步骤101、对于构成三维物体的每条三角形边,将对应的两条法线的单位向量分别与视线反方向的单位向量进行点积运算,根据点积运算结果的正负性,确定该条边是否为三维物体的边缘线段;所述两条法线为共享该条边的两个三角形的法线。本步骤中,利用共享边缘线段的相邻三角形之间的特性,来识别出三维物体的边缘线段,如此,可以避免传统方案中多次渲染对边缘检测效率的不利影响,大幅度提高了边缘渲染效率。较佳地,可以采用下述方法来确定一条三角形边是否为三维物体的边缘线段包括:如果所述两条法线分别对应的所述点积运算结果的正负符号相反,则确定该条边为三维物体的边缘线段。在上述方法中,利用了共享边缘线段的两个三角形的法线单位向量分别与视线反方向的单位向量的点积运算结果的正负符号互异的特点,可以快速识别出属于边缘线段的三角形边。图2为共享边缘线段的两邻接三角形的法向量与视线向量的关系示意图,如图2所示,如果视线反方向单位向量(-V)与三角形单位法向量n1之间的点乘结果、向量(-V)与三角形单位法向量n2之间的点乘结果两者的正负符号相反,则这两个三角形的共享边为组成三维物体边界的一部分。步骤102、在几何着色器中,对所述边缘线段进行绘制,得到所述三维物体的边缘。本步骤中,只需要把步骤101中检测出来的所有边缘线段进行重新绘制,即可标识出三维物体的边缘,较佳地,为了突出边缘,可以采用一些特殊的绘制方式,如使用与三维物体其他部分不同的渲染色彩对这些线段进行绘制,达到突出绘制的效果。较佳地,为了进一步提高图形渲染效率,可以通过图形处理器(GPU)的几何着色器执行本专利技术。综上所述,以上仅为本专利技术的较佳实施例而已,并非用于限定本专利技术的保护范围。凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
一种三维物体的边缘检测方法,其特征在于,包括:对于构成三维物体的每条三角形边,将对应的两条法线的单位向量分别与视线反方向的单位向量进行点积运算,根据点积运算结果的正负性,确定该条边是否为三维物体的边缘线段;所述两条法线为共享该条边的两个三角形的法线;对所述边缘线段进行绘制,得到所述三维物体的边缘。

【技术特征摘要】
1.一种三维物体的边缘检测方法,其特征在于,包括:对于构成三维物体的每条三角形边,将对应的两条法线的单位向量分别与视线反方向的单位向量进行点积运算,根据点积运算结果的正负性,确定该条边是否为三维物体的边缘线段;所述两条法线为共享该条边的两个三角形的法线;对所述边缘线段进行绘制,得到所述三...

【专利技术属性】
技术研发人员:辛双江
申请(专利权)人:北京像素软件科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1