CN105096370B - 光线追踪的等价划分反锯齿方法 - Google Patents
光线追踪的等价划分反锯齿方法 Download PDFInfo
- Publication number
- CN105096370B CN105096370B CN201510413925.3A CN201510413925A CN105096370B CN 105096370 B CN105096370 B CN 105096370B CN 201510413925 A CN201510413925 A CN 201510413925A CN 105096370 B CN105096370 B CN 105096370B
- Authority
- CN
- China
- Prior art keywords
- loc
- pixel
- adjacent pixel
- color
- adjacent
- 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
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种用光线追踪算法生成图形时所使用的等价划分反锯齿方法,属于计算机图形学领域。传统光线追踪算法的抗锯齿方法采样点数多,效率低。本发明方法的步骤为:(1)获取相邻像素对颜色(2)计算颜色偏差(3)判断(4)区域划分(5)递归调用(6)区域颜色合成。该方法主要用于光线追踪算法的反锯齿应用。
Description
技术领域
本发明属于计算机图形学领域,具体涉及一种采用光线追踪算法生成计算机图形时使用的反锯齿方法。
背景技术
(1)光线追踪算法
1980年Whitted首先提出光线追踪算法(Whitted T.An improved illuminationmodel for shaded display.Communications of the Acm(s0001-0782).1980:343-349.)。算法建立了第一个全局光照模型,实现了反射光线,折射光线,多重阴影等效果。光线追踪算法模拟几何光学,符合真实世界中光线的传播、折射、衍射、吸收等过程,通过追踪与场景中的物体表面发生交互作用的光线,得到光线经过路径的模型,计算视觉效果的一种方法。它能够得到光栅化方法很难获得的光学特效,同时其他的全局光照模型绘制算法,如光子映射,也需要光线追踪算法来计算各像素点的光亮度。但是光线追踪算法运算量大,实时渲染难于实现。用光线追踪算法实时渲染游戏画面,在1024×768的分辨率下,共有786432个象素,乘以每象素30束光线(分别用来计算反射,折射光线、环境光照跟其他各种特效)及每秒60帧,需要每秒运算141.5亿束光线的计算能力。因此,这种技术多年来一直只在离线渲染领域被广泛使用,如电影特效的处理中。对于3D游戏等需要实时渲染场合,使用现有的硬件体系结构和算法,绘制一帧简单的图像也需要耗费较长的渲染时间,达不到实时渲染的标准。
如果完全模拟现实光源发出光线进行追踪,计算量极为庞大,计算机难于实现,同时很多光线没有进入人眼,对于人的视觉没有任何影响,浪费了宝贵的运算资源。因此,James Arvo等人提出了逆向光线追踪算法(Arvo J,Kirk D.Fast ray tracing by rayclassification[J].Proceedings of Annual Conference on Computer Graphics&Interactive Techniques,1987,21:55-64.),算法跟踪从视点发出的光线,穿过计算机屏幕上的像素点,碰撞到场景中的物体上,计算颜色,再多次跟踪计算反射,折射等光线分量,通过颜色混合,获得像素点颜色。算法的计算量大大降低,使得计算机实现成为可能。
光线追踪算法所需计算量巨大,为了提高计算效率,主要方法包括:
①设计处理速度更快,效率更高的硬件结构。
②实行大规模并行计算。
③光线追踪算法中大多数时间用在光线和物体碰撞检测上,通过使用加速结构,降低碰撞检测时间。
4降低采样点个数,减少追踪光线的数目。
(2)反锯齿算法
传统的图形处理器是基于光栅化的流水线实现。三角形经过光栅化后会产生大量的像素。由于将连续信号变换为离散信号,会产生锯齿现象。同理,光线追踪算法也存在同样问题。
主要的反锯齿技术包括:超采样抗锯齿(SSAA,Supper Sample Anti-Aliasing)(NVIDIA.HRAA:High-resolution anti-aliasing through multisampling.2001),先把图像映射到缓存并把它放大,再把放大后的图像像素进行采样,一般选取2*2个或4*4个采样点,把这些采样混合起来后,生成的最终像素,令每个像素拥有邻近像素的特征,像素之间的过渡色彩,就变得近似,图形的边缘色彩过渡趋于平滑。再把最终像素还原回原来大小的图像,并保存到帧缓存也就是显存中,替代原图像存储起来,最后输出到显示器,显示出一帧画面。这样就等于把一幅模糊的大图,通过细腻化后再缩小成清晰的小图,但光线数目增加了4到16倍,运算量大大增加。
多采样抗锯齿(MSAA,Multi Sample Anti-Aliasing)是一种特殊的超级采样抗锯齿(Schwarz M,Stamminger M.Multisampled Antialiasing of Perpixel Geometry[C].//EG 2009-Annex Short Papers.Munich:Eurographics Association,2009:21-24),在不改变显示尺寸的情况下对图形边缘像素强制提高分辨率,一般采用2*2个或4*4个采样点,从而明显减轻锯齿感。该方法能够提供灵活的采样模式,具有很好的抗锯齿质量,但运算量还是较大。
快速近似抗锯齿(FXAA,Fast Approximate Anti-Aliasing)先是对边缘像素的探测,之后是区分RGB和明暗信息,将对比最为明显的像素取出,进行2*2个或4*4个采样处理,完成之后将纹理重新覆盖,从而实现抗锯齿效果(Atwood,Jeff(December 7,2011).″FastApproximate Anti-Aliasing(FXAA)″.Coding Horror.Retrieved September 30,2012.)。
时间性抗锯齿(TXAA,Time Approximate Anti-Aliasing),(″NVIDIA LaunchesFirst GeForce GPUs Based on Next-Generation Kepler Architecture″.Nvidia.March22,2012.)TXAA在标准2*2MSAA和4*4MSAA的基础上改进了时间性过滤。TXAA的原理就是通过HDR后处理管线从硬件层面上提供颜色矫正处理,后期处理的方式实际上原理和FXAA一致。TXAA还能够对帧之间的整个场景进行抖动采样,以减少闪烁情形,闪烁情形在技术上又称作时间性锯齿。
采样点的覆盖测试是决定多采样反锯齿性能的关键。由于覆盖测试是在扫描转换阶段实现的,为了提高抗锯齿的性能,扫描转换不断的得到改进。有人提出了基于Tile的扫描转换结构(Mccormack J,Mchamara R.Tiled polygon traversal using half-planeedge functions[C].//Proceedings of the ACM SIGGRAPH/Eurographics workshop onGraphics hardware.NewYork:ACM.2000:15-21.),因为Tile比较细致,能更精确的逼近图元的边界。由于多采样对存储容量和带宽的需求很高,人们又提出了一些降低多采样时的存储容量和带宽的技术,例如覆盖采样反锯齿技术(CSAA,Coverage Sampling Anti-aliasing)等。
上面所示这些反锯齿技术,被采样像素可设置为2*2或4*4个采样点,采用均匀采样或抖动采样方式,进行采样,其中很多采样点的采样结果都是一致的。对于光线追踪算法,会产生多达4倍或16倍的光线数目,是计算效率上的巨大浪费。需要设计科学方法,进一步对像素进行细化,减少采样点个数,从而提高光线追踪算法效率。
发明内容
本发明提出了一种用光线追踪算法生成的图形时,在保证图形质量的前提下,对边界像素的采样点进行细分,减少不必要采样点个数,提高了光线追踪算法的效率。
本发明的技术方案主要包括以下步骤:
(1)获取相邻像素对颜色:相邻像素用A,B表示,获取方式1:如果该相邻像素对颜色已经存在,则直接取出像素对颜色,赋值给获取方式2:如果不存在,使用光线追踪算法计算两个相邻像素A和B中点的颜色,赋值给表示A点颜色,表示B点颜色,i表示递归次数;
(2)计算颜色偏差:采用如下公式计算两点的颜色偏差;
(3)判断:判断颜色偏差小于设定阀值或递归次数大于等于递归深度?如果成立,将返回,退出;
(4)区域划分:如果不成立,将每个像素分别以中点为中心平均分为四个区域,靠近两像素边界的四个区域又构成了两组相邻像素对,分别称为相邻像素对1和相邻像素对2;
(5)递归调用:分别计算相邻像素对1和相邻像素对2的坐标;如果A为中心像素,B为右邻像素,相邻像素对1的两个采样点坐标,采用的计算公式如下:
相邻像素对2的两个采样点坐标,采用的计算公式如下:
如果A为中心像素,B为下邻像素,相邻像素对1的两个采样点坐标,采用的计算公式如下:
相邻像素对2的两个采样点坐标,采用的计算公式如下:
递归次数Num+1,带入下面公式进行递归调用:
(6)区域颜色合成:将计算结果用下面公式合成,
返回退出。
本发明的效果是:用光线追踪算法生成图形时,传统反锯齿算法是将边界像素采用2*2或4*4的采样率进行采样,但多数采样结果都是相同的,降低了运算效率。本发明的等价划分反锯齿方法,对边界像素进行了细分,将边界区域中颜色差值大于阀值区域,也是颜色变化剧烈的部分,采用递归方式,逼近像素边缘,采用规则的,越来越细小的正方形区域的颜色代替不规则边缘区域颜色,能够获得更加精细的效果;同时对于边界区域中颜色差值小于阀值和非边界区域部分,不再进行划分,用中点颜色代替这一区域颜色,大大减少了采样点个数,提高了计算效率。
附图说明
图1本发明的具体实施流程图
图2本发明方法流程图
图3本发明方法示例图
图4本发明效果对比图
具体实施方式
定义方法中使用的名词:
定义1,中心像素:计算机屏幕中的每个像素点,都可定义为中心像素。
定义2,相邻像素:中心像素的上下左右四个方向相邻的像素,称为相邻像素。中心像素上面相邻像素称为上邻像素,下面相邻像素称为下邻像素,左面相邻像素称为左邻像素,右面相邻像素称为右邻像素。
定义3,相邻像素对:中心像素和它的四个相邻像素分别组成了四个相邻像素对。中心像素和它的上邻像素组成上邻像素对,中心像素和它的下邻像素组成下邻像素对,中心像素和它的左邻像素组成左邻像素对,中心像素和它的右邻像素组成右邻像素对。
定义4,边界像素对:相邻像素对中,两个像素点的颜色偏差值大于设定的阀值时,该相邻像素对被称为边界像素对。边界像素对又分为四种类型:中心像素和它的上邻像素组成的边界像素对,称为上边界像素对,中心像素和它的下邻像素组成的边界像素对,称为下边界像素对,中心像素和它的左邻像素组成的边界像素对,称为左边界像素对,中心像素和它的右邻像素组成的边界像素对,称为右边界像素对。
以下实施方式结合附图对本发明进行详细描述,参照附图1,本发明包括以下具体实施步骤:
(1)读取3D场景数据。
(2)产生从视点出发,穿过计算机屏幕中每个像素点的中点,向场景发射光线,通过光线追踪算法计算各个像素点颜色,存放入数据结构Framebuffer中。
(3)在Framebuffer中取出一个像素Pix1(i,j)作为中心像素,i表示行数,j表示列数;i和j的初始值为(0,0)。再取出一个像素Pix2(i,j+1),Pix1和Pix2构成右邻像素对,调用等价划分反锯齿递归函数PixCol,计算像素对的两个像素颜色,计算结果与Framebuffer中对应位置的像素点颜色混合,混合的方法为:颜色分量相加求和后取平均值。
(4)在Framebuffer中取出像素Pix1(i,j)和像素Pix3(i+1,j)构成下邻像素对,调用等价划分反锯齿递归函数PixCol,计算像素对的两个像素颜色,计算结果与Framebuffer中对应位置的像素点颜色混合。
(5)判断j是否已经大于等于计算机屏幕的宽度,如果不是,j=j+1,并跳转到步骤3,如果是,退出本次循环。
(6)判断i是否已经大于等于计算机屏幕的高度,如果不是,i=i+1,j=0,并跳转到步骤3,如果是,退出循环。
(7)将Framebuffer中的数据显示。
本发明具体实现是PixCol递归函数,执行步骤如图2所示,不失一般性,以图3为例进行说明,图3中表示一组右边界像素对,其余类型的边界像素对与图3所示右边界像素对处理方式一致。图中斜线为图形的边界线,边界线两边颜色差别较大,图中标识的小圆点,小三角形,小五角星等均表示为采样点,用不同的背景图案表示不同的区域。PixCol函数的实施具体步骤如下:
(1)获取相邻像素对颜色:判断递归次数Num是否为1,如为1,说明是第1次递归,像素点的颜色已经计算出来,直接在Framebuffer相对应位置取出赋值如不为1,则使用光线追踪算法分别计算两个相邻像素A和B中点的颜色,赋值给表示A点颜色,表示B点颜色,i表示递归次数;
(2)计算颜色偏差:采用如下公式计算两点的颜色偏差;
(3)判断:判断颜色偏差小于设定阀值或递归次数大于等于递归深度?阀值设定为颜色范围的10%,为26。如果成立,将返回,退出;
(4)区域划分:如果不成立,将每个像素分别以中点为中心平均分为四个区域,靠近两像素边界的四个区域又构成了两组相邻像素对,分别称为相邻像素对1和相邻像素对2;
(5)递归调用:分别计算相邻像素对1和相邻像素对2的坐标;如果A为中心像素,B为右邻像素,相邻像素对1的两个采样点坐标,采用的计算公式如下:
相邻像素对2的两个采样点坐标,采用的计算公式如下:
如果A为中心像素,B为下邻像素,相邻像素对1的两个采样点坐标,采用的计算公式如下:
相邻像素对2的两个采样点坐标,采用的计算公式如下:
递归次数Num+1,带入下面公式进行递归调用:
(6)区域颜色合成:将计算结果用下面公式合成,
返回退出。
实施例一:本发明实施的实验硬件环境为Pentium Dual-Core CPU T44002.2GHz,内存为4G,软件运行环境为Windows 7 6.1.7600版本,光线追踪程序开发环境为:Microsoft Visual Studio C++2008。场景大小为420*420像素,3D模型为一球体和一个地板平面,三个正方形光源。均采用光线追踪算法生成图形。实验结果如图4所示。
从图4中可以看出,没有采用反锯齿算法(NoAA)时,球体边界锯齿现象明显,采用4*4多采样反锯齿方法(MSAA)和4*4等价划分反锯齿方法后球体边界明显光滑,锯齿现象消失,该两种方法反锯齿效果一致。
表1 实验结果对比
NoAA | 4*4MSAA | 4*4等价划分反锯齿方法 | |
采样点个数(万) | 17.64 | 59.976 | 36.162 |
计算时间(秒) | 7.962 | 29.225 | 16.582 |
综上所述,针对同一场景,使用光线算法生成图形,分别采用无反锯齿,4*4多采样反锯齿方法和4*4的等价划分反锯齿方法,进行反锯齿效果对比实验。可以看出,采用本发明方法生成的图形和无反锯齿处理的图形相比,反锯齿效果明显,和同等精度下的多采样反锯齿方法生成的图形相比,反锯齿效果相同,采样点个数减少了39.70%,计算效率提高43.26%。
以上举例仅仅是本发明的举例说明,并不构成对本发明的保护范围限制,凡是与本发明相同或相似的设计均属于本发明保护范围。
Claims (1)
1.一种光线追踪的等价划分反锯齿方法,其特征在于包括以下步骤:
(1)获取相邻像素对颜色:相邻像素用A,B表示,获取方式1:如果该相邻像素对颜色已经存在,则直接取出像素对颜色,赋值给获取方式2:如果不存在,使用光线追踪算法计算两个相邻像素A和B中点的颜色,赋值给 表示A点颜色,表示B点颜色,i表示递归次数;
(2)计算颜色偏差:采用如下公式计算两点的颜色偏差;
(3)判断:判断颜色偏差小于设定阀值或递归次数大于等于递归深度?如果成立,将返回,退出;
(4)区域划分:如果不成立,将每个像素分别以中点为中心平均分为四个区域,靠近两像素边界的四个区域又构成了两组相邻像素对,分别称为相邻像素对1和相邻像素对2;
(5)递归调用:分别计算相邻像素对1和相邻像素对2的坐标;如果A为中心像素,B为右邻像素,相邻像素对1的两个采样点坐标,采用的计算公式如下:
相邻像素对2的两个采样点坐标,采用的计算公式如下:
如果A为中心像素,B为下邻像素,相邻像素对1的两个采样点坐标,采用的计算公式如下:
相邻像素对2的两个采样点坐标,采用的计算公式如下:
递归次数Num+1,带入下面公式进行递归调用:
(6)区域颜色合成:将计算结果用下面公式合成,
返回退出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510413925.3A CN105096370B (zh) | 2015-07-15 | 2015-07-15 | 光线追踪的等价划分反锯齿方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510413925.3A CN105096370B (zh) | 2015-07-15 | 2015-07-15 | 光线追踪的等价划分反锯齿方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105096370A CN105096370A (zh) | 2015-11-25 |
CN105096370B true CN105096370B (zh) | 2017-08-01 |
Family
ID=54576704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510413925.3A Expired - Fee Related CN105096370B (zh) | 2015-07-15 | 2015-07-15 | 光线追踪的等价划分反锯齿方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105096370B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600544A (zh) * | 2016-11-10 | 2017-04-26 | 北京暴风魔镜科技有限公司 | 基于纹理贴图的抗锯齿方法及系统 |
CN107545595B (zh) * | 2017-08-16 | 2021-05-28 | 歌尔光学科技有限公司 | 一种vr场景处理方法及vr设备 |
US20190318455A1 (en) | 2018-04-12 | 2019-10-17 | Nvidia Corporation | Adding greater realism to a computer-generated image by smoothing jagged edges within the image in an efficient manner |
CN109961499B (zh) * | 2019-03-06 | 2022-10-14 | 河海大学 | 基于像素块方差的自适应采样方法 |
CN111798365B (zh) * | 2020-06-12 | 2023-09-01 | 完美世界(北京)软件科技发展有限公司 | 深度抗锯齿数据读取方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689037A (zh) * | 2007-05-16 | 2010-03-31 | 视瑞尔技术公司 | 为扩展3d渲染图形管道实时生成视频全息图的方法 |
WO2012026640A1 (ko) * | 2010-08-27 | 2012-03-01 | 주식회사 실리콘아츠 | 밉맵 레벨 선택 방법 및 이를 이용한 텍스처 매핑 시스템 |
-
2015
- 2015-07-15 CN CN201510413925.3A patent/CN105096370B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689037A (zh) * | 2007-05-16 | 2010-03-31 | 视瑞尔技术公司 | 为扩展3d渲染图形管道实时生成视频全息图的方法 |
WO2012026640A1 (ko) * | 2010-08-27 | 2012-03-01 | 주식회사 실리콘아츠 | 밉맵 레벨 선택 방법 및 이를 이용한 텍스처 매핑 시스템 |
Non-Patent Citations (6)
Title |
---|
SMAA: Enhanced Subpixel Morphological Antialiasing;Jorge Jimenez 等;《Computer Graphics Forum》;20121231;第31卷(第2期);355-364 * |
Spatially Adaptive Antialiasing for Enhancement of Mobile Imaging System Using Combined Wavelet-Fourier Transform;Eunjung Chae 等;《IEEE Transactions on Consumer Electronics》;20131130;第59卷(第4期);862-868 * |
一种自适应随机反走样算法;刘晓东 等;《计算机工程》;20020420;第28卷(第4期);76-77 * |
光线追踪软件及分而治之加速算法研究实现;虞鸿;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150315(第3期);I138-2155 * |
对光线追踪引起物体边缘走样的研究;刘晓东 等;《计算机应用研究》;20020428(第4期);83-84,113 * |
自适应多采样扫描转换算法;韩俊刚 等;《计算机辅助设计与图形学学报》;20120415;第24卷(第4期);451-458 * |
Also Published As
Publication number | Publication date |
---|---|
CN105096370A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386528B2 (en) | Denoising filter | |
CN105096370B (zh) | 光线追踪的等价划分反锯齿方法 | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
CN111968215B (zh) | 一种体积光渲染方法、装置、电子设备及存储介质 | |
US11024077B2 (en) | Global illumination calculation method and apparatus | |
CN105261059B (zh) | 一种基于在屏幕空间计算间接反射高光的渲染方法 | |
CN111968216B (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
US20190188897A1 (en) | Method for Rendering an Augmented Object | |
DE102016103870A1 (de) | Systeme und Verfahren zur weichen Schattierung in 3D-Rendering | |
CN102930514A (zh) | 基于大气物理散射模型的快速图像去雾方法 | |
CN104766270A (zh) | 一种基于鱼眼镜头的虚实光照融合方法 | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
CN1870055A (zh) | 一种高动态范围材质渲染绘制方法 | |
CN103679818B (zh) | 一种基于虚拟面光源的实时场景绘制方法 | |
CN105976423B (zh) | 一种镜头光晕的生成方法和装置 | |
US11804008B2 (en) | Systems and methods of texture super sampling for low-rate shading | |
Krüger et al. | Interactive Screen-Space Accurate Photon Tracing on GPUs. | |
US6906729B1 (en) | System and method for antialiasing objects | |
Olajos | Real-time rendering of volumetric clouds | |
CN110832549A (zh) | 现实世界环境中虚拟对象的经过光线追踪的反射的快速产生方法 | |
US20240249461A1 (en) | Vector graphic texture engine | |
Nilsson et al. | Design and novel uses of higher-dimensional rasterization | |
Iser | Real-time light transport in analytically integrable quasi-heterogeneous media | |
Li et al. | Stage Lighting Simulation Based on Epipolar Sampling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170801 Termination date: 20180715 |