首页> 中国专利> 一种图形渲染流水线中光栅化阶段反走样的改进方法

一种图形渲染流水线中光栅化阶段反走样的改进方法

摘要

本发明公开了一种图形渲染流水线中光栅化阶段反走样的改进方法,包括:在光栅化阶段之前,根据反走样级别,准备放大的颜色缓冲区和深度缓冲区并初始化;对构成物体的三角片依次进行光栅化处理;对所有三角片都处理完之后,将颜色缓冲区缩小到原始大小,得到反走样的渲染结果。通过本发明的实施方式,能有效提高在有纹理情况下的计算效率。

著录项

  • 公开/公告号CN102722902A

    专利类型发明专利

  • 公开/公告日2012-10-10

    原文格式PDF

  • 申请/专利权人 新奥特(北京)视频技术有限公司;

    申请/专利号CN201110116359.1

  • 发明设计人 蔡欢;张君琦;郑培枫;

    申请日2011-05-06

  • 分类号G06T15/00(20060101);H04N5/278(20060101);

  • 代理机构北京挺立专利事务所(普通合伙);

  • 代理人叶树明

  • 地址 100195 北京市海淀区五棵松路49号新奥特科技大厦

  • 入库时间 2023-12-18 06:52:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-23

    未缴年费专利权终止 IPC(主分类):G06T15/00 授权公告日:20160504 终止日期:20180506 申请日:20110506

    专利权的终止

  • 2016-05-04

    授权

    授权

  • 2012-12-05

    著录事项变更 IPC(主分类):G06T15/00 变更前: 变更后: 申请日:20110506

    著录事项变更

  • 2012-11-28

    实质审查的生效 IPC(主分类):G06T15/00 申请日:20110506

    实质审查的生效

  • 2012-10-10

    公开

    公开

说明书

技术领域

本发明涉及电视节目制作领域中的字幕处理领域,尤其涉及一种图形渲 染流水线中光栅化阶段反走样的改进方法。

背景技术

字幕系统在视频制作领域有广泛的应用,也是应用视频技术的重要组成 部分,而电视字幕作为一种必备的电视节目要素,是一种重要的电视图文的 展现形式。

从广义的角度来说,电视字幕所处理的字幕对象渲染的最终目的是根据 图形化的矢量信息和图像纹理,采用数字图像处理的相关算法,得到由32位 RGBA表示的像素组成的一帧图像。为了获得稳定清晰的图像,通常需要对 字幕对象进行反走样处理。反走样技术主要是用于消除点阵构成的显示设备 整数坐标上的图像连续性被破坏,图形显示不圆滑出现锯齿状的情况。

现有技术中图形渲染主要是基于图形处理软件GPU实现的,GPU的工作 是以流水线形式进行的,一个流水线是一系列可以并行和按照固定顺序进行 的阶段,每个阶段都从前一个阶段接收输入,然后把输出发送到后续阶段。 一般三维应用程序传给GPU的是顶点、颜色、第二颜色(反射)、纹理、纹理 坐标、法向量、灯光、图元装配信息等数据,均匀反走样处理方法可以直接 应用在在图形渲染流水线的光栅化阶段,但通常是对需要处理的整个区域内 所有采样点的颜色进行计算,然后对全部采样点颜色取平均得到像素反走样 的颜色值,从而得到稳定清晰的图像。

发明人在实施本发明的过程中,发现现有技术存在以下技术问题:

(1)渲染速度慢,特别是有多层纹理的时候;

(2)渲染过程复杂,需要对所有采样点进行计算;

发明内容

为了解决上述现有技术的缺点,本发明的主要目的是提供一种图形渲染 流水线中光栅化阶段反走样的改进方法,以提高在有纹理情况下的计算效率, 并且对物体的边缘和相交边界有很好的处理效果。

为了达到上述目的,本发明提供了一种图形渲染流水线中光栅化阶段反 走样的改进方法,具体包括:

在光栅化阶段之前,根据反走样级别,准备放大的颜色缓冲区和深度缓 冲区并初始化;

对构成物体的三角片依次进行光栅化处理;

对所有三角片都处理完之后,将颜色缓冲区缩小到原始大小,得到反走 样的渲染结果。

本发明的实施方式通过在反走样处理之前先准备反走样所需的颜色缓冲 区然后对三角片进行光栅化处理并且在光栅化处理完成之后对颜色缓冲区缩 小到原始大小的反走样改进方法可以提高在有纹理情况下的计算效率,更好 的实现三维渲染引擎的反走样效果。

附图说明

为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需 要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提 下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种图形渲染流水线中光栅化阶段反走样的改进 方法的流程图;

图2为本发明实施例的一种图形渲染流水线中光栅化阶段8X反走样的改 进方法的步骤图;

图3为本发明实施例8X反走样以2*4的小区域为单位的扫描线示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是 全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创 造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的反走样的改进方法是应用在图形渲染流水线的光栅化阶段,是 可以不依赖GPU,独立能实现的渲染引擎。另外,因为光栅化阶段采用扫描 线算法,所以要实现光栅化阶段的反走样,X,Y方向采样点采用规则的m*n 的方式。目前根据需要采样点方式包括2X(1*2),4X(2*2),8X(2*4), 16X(4*4),32X(4*8)等采样方式。如以8X为例,即X方向采用两个采样 点,Y方向采用4个采样点。

本发明实施例一方面提供了一种图形渲染流水线中光栅化阶段反走样的 改进方法,实施流程如图1所示,具体为:

步骤S1:准备反走样需要的颜色缓冲区和深度缓冲区并初始化。获取当 前三角片三个顶点的数据,屏幕空间中的位置vPos,深度值fDepth,顶点光 照颜色vColor,每层纹理的uv坐标vUV[8](最多八层纹理)。要实现反走样, 将顶点位置vPos的X、Y分量分别乘以X,Y方向的反走样倍数m,n或者 叫做采样方式,记为m*n。

步骤S2:计算三角片的包围盒,并且此包围盒的X方向边界是m的整数 倍,Y方向边界是n的整数倍。

步骤S3:计算包围盒区域内的扫描线的起点终点位置和起点终点的深度 值,上述起点终点位置和起点终点的深度值是通过三角片三个顶点的位置和 深度值插值得到的。

步骤S4:以m*n的小区域为单位,对在三角片内部且深度值大于深度缓 冲区中的深度值的像素的x,y方向的权重值(区域内的相对位置)分别相加 记为fSumX,fSumY,并将总的个数iCount加1,并标记这个像素为TRUE。 其中fSumX,fSumY,iCount初始值都记为0。如果iCount为0则继续重复 步骤S4,否则进行步骤S5。

步骤S5:根据步骤S4中得到的权重值将fSumX,fSumY除以总数iCount 得到x,y方向的值,并计算相对于采样点小区域内的一个位置,此位置作为 需要计算颜色的位置。

步骤S6:根据三角片顶点位置与上述计算的颜色的位置得到当前顶点的 光照颜色和纹理坐标值后计算当前位置的颜色。

步骤S7:将计算得到的当前位置的颜色赋给S4中位于三角片内且深度值 大于深度缓冲区中的深度值的像素。

步骤S8:按照上述方法对所有三角片都处理完之后,将颜色缓冲区缩小 到原始大小,得到反走样的渲染结果。

本发明的实施方式通过在反走样处理之前先准备反走样所需的颜色缓冲 区,计算采样点区域范围内的一个指定位置的颜色然后将此颜色值赋予区域 范围内的子像素,然后对三角片进行光栅化处理并且在光栅化处理完成之后 对颜色缓冲区缩小到原始大小的反走样改进方法可以提高在有纹理情况下的 计算效率,更好的实现三维渲染引擎的反走样效果。

以下以采样点为8X为例并结合图2对本发明实施例一的图形渲染流水线 中光栅化阶段反走样的改进方法进行更加详细的阐述,具体为:

步骤S1:将vPos的X,Y方向分别乘以反走样倍数即X方向乘以2,Y 方向乘以4使颜色缓冲区和深度缓冲区存储的信息量是不用反走样时候的8 倍。在光栅化阶段之前,准备反走样需要的颜色缓冲区和深度缓冲区并初始 化。

步骤S2:计算三角片的最小包围盒,X方向边界是2的倍数,Y方向是 4的倍数。

步骤S3:根据8X采样点计算包围盒区域内的扫描线的起点终点位置和 起点终点的深度值,并且是通过三个顶点的位置和深度值插值得到的。

步骤S4:记fSumX,fSumY为0,iCount=0;本实施例的8X反走样以 2*4的小区域为单位,通过3个扫描线的位置和深度值,具体可参见图3所示。 判断这个区域内每个像素是否在三角片内,并且计算每个像素的深度值,进 行深度检测(也就是与深度缓冲区中的深度值做比较,如大于这个值,表示 离观察者近,未被遮挡)。如是,用将该像素的深度值替换深度缓冲区中的相 应位置的深度值,并将此像素的X,Y方向的权重(相对于整个2*4区域的) 加入fSumX,fSumY,并且iCount加1,并标记这个像素bFlag为TRUE。

步骤S5:如果iCount=0,继续计算下一个2*4小区域;否则进行步骤S6。

步骤S6:将fSumX,fSumY除以iCount,得到X,Y方向的值,并且是 相对于小区域的位置值,根据小区域的位置,计算这个位置的绝对值,记为 vTempPos。

步骤S7:计算当前位置的颜色。根据三角片三个顶点的位置及vTempPos 的值,确定三角片三个顶点的权重,用三个顶点的颜色和纹理坐标值乘以相 应顶点的权重并相加,得到当前位置vTempPos处的光照颜色和纹理坐标值 (如有纹理)。光照颜色与纹理颜色进行混合,第一层纹理与光照颜色混合计 算得到颜色值color,如果有第二层纹理,则与前面的颜色值color再做混合计 算,依此类推,直到得到最终的颜色值。

步骤S8:将步骤7计算得到的颜色赋给2*4格内并且在三角片内部并且 通过深度测试的子像素即步骤S4中标记为TRUE的像素进行颜色缓冲区的填 充。

步骤S9:所有三角片都处理完之后,对颜色缓冲区缩小到原始大小即8 个采样点颜色合成一个颜色,得到反走样的渲染效果。

本发明的实施方式通过在反走样处理之前先准备反走样所需的颜色缓冲 区,计算采样点区域范围内的一个指定位置的颜色然后将此颜色值赋予区域 范围内的子像素,然后对三角片进行光栅化处理并且在光栅化处理完成之后 对颜色缓冲区缩小到原始大小的反走样改进方法可以提高在有纹理情况下的 计算效率,并且对物体的边缘和相交边界有很好的处理效果,更好的实现三 维渲染引擎的反走样效果。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。 基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软 件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬 盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服 务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的一个最佳具体实施例,但本发明的特征并不局 限于此,任何熟悉该项技术的人在本发明领域内,可轻易想到的变化或修饰, 都应涵盖在以下本发明的申请专利范围中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号