一种基于光线跟踪的毛发渲染方法

文档序号:6382873阅读:170来源:国知局
专利名称:一种基于光线跟踪的毛发渲染方法
技术领域
本发明设计图形绘制技术领域,尤其涉及一种用于毛发渲染的光线跟踪方法。
背景技术
毛发是虚拟形象化中最重要的特性,而且绝大多数电影以及游戏中的虚拟角色中都应用了毛发。传统的对于毛发的高质量渲染主要依赖于光线跟踪。Hou等人将发丝细分成微多边形,然后通过优化的光线跟踪进行渲染,具体可参考HOU,Q.,QIN, H.,LI, W.,⑶0,B.,ANDZHOU, K. 2010. Micropolygon ray tracing with defocus and motion blur. ACM Trans.Graph. 29 (July), 64:1 - 64:10。Nakamaru等人将发丝作为一种特殊的几何表达直接进行光线跟踪,参见 NAKAMARU, K.,AND 0HN0, Y. 2002. Ray tracing for curves primitive.1nWSCG, 311 - 316。无一例外的,毛发的精细结构对于采样和反走样形成了很大的难度,这些方法都需要很高的采样率才能保证无失真的高质量渲染。光束追踪技术是对于光线跟踪技术的一种扩展,即进行跟踪的不在是一条线而是一条光束。这类技术旨在解决传统光线跟踪面临的采样不足问题。具体光束的形状可分为棱柱,圆锥和超立方体,具体构造方式可分别参考HECKBERT,P.S. , AND HANRAHAN, P. 1984. Beam tracing polygonal objects.SIGGRAPHComput.Graph. 18 (January), 119-127、AMANATIDES, J. 1984. Ray tracing with cones. SIGGRAPHComput. Graph. 18 (January), 129-135、ARVO, J. , AND KIRK, D. 1987. Fast ray tracing byray classification. SIGGRAPH Comput. Graph. 21 (August),55-64。Igehy 提出了一种将光束的作用范围表示为导数的方法来处理光束与场景间的互动,光线导数的定义可参考IGEHY, H. 1999. Tracing ray differentials.1n ACM SIGGRAPH, 179-186。由于这一类方法有效地考虑了光束范围内的所有可能的光线,所以他们可以缓解传统光线跟踪采样不足的问题。然而构造光束以及考虑光束与场景物体间作用的计算复杂度往往高于只考虑单根光线。所以针对场景中不同类别的物体通常需要特定的光束跟踪方法。Wand等人提出了 一种将具有各向异性的光锥与预先滤波的点集求交的方法,并且应用了一个层次结构用于加速,具体可见WAND, M.,AND STRASSER, W. 2003.Mult1-resolution point-sample raytracing.1n Graphics Interface, 139-148。然而他们的方法并不适合毛发渲染,为了避免很细的毛发模糊在一起,其方法要求点之间的距离必须超过毛发之间的距离,这就使得点集的密度超过实际可承受的程度。Lacewell等人将该方法用于计算聚集体(如灌木丛或头发)的阴影,首先在一个体加速结构上预计算存储方向性的遮挡率,然后在运行时有效地计算软影和环境光遮挡。然而,由于该方法的光线与头发求交非常近似,其并不能用于头发的视线处理。针对毛发的光束追踪技术主要面临两个前人未能解决的挑战。其一是光锥与发丝求交的计算复杂性。精确地计算这些求交要求高的采样率,这与降低采样率的初衷相违。第二个挑战是处理光锥内带有透明效果的可见性问题。精确计算该可见度需要大量的圆锥采样,带来高昂的透明计算代价。

发明内容
本发明的目的在于针对现有技术的不足,提供一种基于光线跟踪的毛发渲染方法。本发明用于进行毛发及其镜头特效(折射、反射以及精深)的高质量渲染。本发明的目的是通过以下技术方案来实现的一种基于光线跟踪的毛发渲染方法,该方法包括了以下步骤(I)将发丝细分成带形,并对所有的带形建立包围体加速结构;(2)根据场景光线跟踪的信息生成光锥,遍历包围体加速结构,得到可能与圆锥相交的带形;(3)计算圆锥与表示发丝的带形的相交,并合成采样结果;(4)将毛发采样的结果与场景光线跟踪的结果进行合成,生成最终图像。本发明的有益效果是,本发明的方法是一种基于圆锥的,并且专门针对毛发的光束跟踪方法。选择圆锥作为光束的形状是由于圆锥最为接近图像滤波器的形状。该方法将发丝近似为若干首尾相连的带形,并将其投影到光锥法平面,将圆锥与发丝的求交问题转化为圆形与一系列四边形的求交问题。此外,本发明忽略了圆锥内部着色和遮挡的变化,以光锥为单位进行透明采样的合成。为了使这样的合成方式更加准确,引入了 “有效不透明度”的概念,将每个圆锥与带形的相交面积作为其不透明度的一个因数。因此,本发明可以简洁有效地处理包括镜头效果在内的毛发高质量渲染问题。应用本发明的方法生成同等质量的图像所用的时间比现有其他方法少一个数量级以上,并且近似造成的误差可以被增加少许超采样有效控制。


图1是光锥构成和参数化的示意图;图2是在光锥坐标系中的带状近似示意图;图3是四边形和圆求交快速方法中四边形的边顶点全部位于圆内的示意图;图4四边形和圆求交快速方法中四边形的边顶点分别位于圆内和圆外的示意图;图5四边形和圆求交快速方法中四边形的边顶点均圆外且边与圆无交点的示意图;图6四边形和圆求交快速方法中四边形的边顶点均圆外且边与圆相交的示意图。
具体实施例方式本发明的光锥跟踪方法,包括了以下步骤(一)将发丝细分成带形,并对所有的带形建立包围体加速结构首先将所有发丝根据屏幕投影的尺寸细分成不超过3个像素长的线段,然后在每个线段端点上进行着色计算,着色计算应用了 Marschner提出的单次光散射模型,具体计算方法可参考 MARSCHNER, S. R.,JENSEN, H. ff.,CAMMARANO, M.,WORLEY, S.,ANDHANRAHAN,P. 2003.Light scattering from human hair fibers. ACM Trans.Graph. 22,3,780 - 791。发丝的宽度数据和着色值一起存储到每个线段端点上。接着对这一系列带有宽度的线段根据表面面积构建一个包围体加速结构对于每个线段,以及其端点处的宽度所形成的两个隐式球体,构建一个轴对齐的包围盒,并以此包围盒作为构建包围体加速结构的基本单位。具体构建方法可参考GOLDSMITH, J.,AND SALMON, J. 1987.Automatic creation of object hierarchies for ray tracing.1EEE CG&A7, 5, 14 - 20。(二)根据场景光线跟踪的信息生成光锥,遍历包围体加速结构,并得到可能与圆锥相交的带形。对于一个含有n个像素而且毛发采样率为m的图像,需要nXm个圆锥,n和m均为自然数,如果m=l,每个圆锥对应一个像素,如果m>l则每个圆锥对应一个子像素;每个圆锥由焦点O、光锥方向V以及法平面上的两个向量Rx和Ry表示。Rx和Ry表示光锥与法平面相交形成的椭圆的两个轴。法平面被定义为沿光线方向前进单位距离并且与光线方向垂直的平面。本发明对于直接由视点发出的光线、在场景中折射或反射后产生的光线以及对应景深效果渲染产生的光线生成圆锥。对于主视线的渲染,将视点作为圆锥的焦点,并且连接成像平面上覆盖一个像素的圆形来形成跟踪所需要的圆锥,如图1所示。对于景深和折射反射的效果,本发明采用与 WAND, M.,AND STRASSER, W. 2003. Mult1-resolution point-sample raytracing.1nGraphics Interface, 139 - 148相同的方法来生成圆锥。得到需要跟踪的光锥之后,首先拿光锥与包围体加速结构进行求交。每一个光锥用两个棱锥来保守近似,两个棱锥都从光锥焦点发出,分别沿光线的正负方向。棱锥的四个面分别由法平面上与椭圆两个轴的正负方向分别垂直的四条线段,以及光锥焦点形成。之后利用分割轴定理(具体可见 http://en. wikipedia. org/wiki/Separating_axis),快速判断光锥与包围体结构中的包围盒是否求交。光锥与包围体结构求交会得到一系列可能与其相交的带形,需要特别说明的是,为了实现下述步骤四中毛发和场景光线跟踪结果的正确合成,求交时需要考虑光锥与场景中其他几何物体的最大深度,并抛弃深度超过此最大深度的带形。接下来具体计算光锥与这些带形的求交结果。(三)计算圆锥与表示发丝的带形的相交,并合成采样结果。先说明一个带形与光锥求交的计算。首先将线段的两个端点及其相应的宽度投影到光锥的法平面。投影后的端点上存储的宽度信息可以作为半径以该点为圆心生成一个圆形,任选一条直径可以产生两个点。对于毛发末端这样没有别的线段共享的点,直接取与投影后的线段垂直的直径;而对于毛发中部有两条线段共享的点来说,取两条线段的中线来生成新的一对点。这样一来,每个带形投影过后将会形成一个四边形。而光锥在法平面上形成的是一个由Rx和Ry决定的椭圆形。根据椭圆的两个轴Rx和Ry,可以定义一个变换T= [Rx, Ry]。通过其逆变换,可以将椭圆和四边形变换到光锥的坐标系中,椭圆变换成圆形,四边形仍然变换成四边形。如图2所示。在该坐标系中,相交面积的问题转化为了四边形与圆形的相交面积问题。本发明提供了一个高效的方法计算任意一个四边形与圆形相交的面积。本发明取四边形的每条边和圆形的圆心各形成一个三角形。之后将圆形与每个三角形相交得到一个具有正负性的面积。最后所有的带符号的面积相加其结果的绝对值就是四边形与圆形相交的面积。三角形与圆形相交所得带符号的面积是由三角形与圆形相交的不同情况分别计算的,下面总结了四类相交情况,如图3-图6所示。不失一般性地,本发明将当前考虑的四边形的边称为边AB,将三角形的另外两条边称为边AO和B0。若边AB所在的直线与圆形有两个交点且均在AB之外,则这是第一类情况(图3)。此时的相交面积就是三角形的面积。若边AB所在直线与圆形有两个交点且只有一个交点在外,则这是第二类情况(图4))。此时的相交面积是其中一个小三角形与一个扇形的和。若两个交点都在AB之内,则这是第三类情况(图5))。此时的面积为其中一个小三角形和两个扇形的和。若边AB完全在圆形之外,这是第四类情况(图6)且其面积为一个扇形的面积。值得注意到的是,本发明方法只消耗固定数量的临时存储,因而易于通过GPU寄存器来实现。接下来要将每个带形产生的采样点合成以生成最终的采样结果。本发明方法中,假定光锥内的毛发的不透明度、着色以及遮挡都是不变的,由此可以将采样的结果近似为
权利要求
1.一种基于光线跟踪的毛发渲染方法,其特征在于,该方法包括了以下步骤 (1)将发丝细分成带形,并对所有的带形建立包围体加速结构; (2)根据场景光线跟踪的信息生成光锥,遍历包围体加速结构,得到可能与圆锥相交的带形; (3)计算圆锥与表示发丝的带形的相交,并合成采样结果; (4)将毛发采样的结果与场景光线跟踪的结果进行合成,生成最终图像。
2.根据权利要求I所述基于光线跟踪的毛发渲染方法,其特征在于,所述步骤(I)具体为首先将所有发丝根据屏幕投影的尺寸细分成不超过3个像素长的线段,然后在每个线段端点上进行着色计算,发丝的宽度数据和着色值一起存储到每个线段端点上;接着对这一系列带有宽度的线段根据表面面积构建一个包围体加速结构对于每个线段,以及其端点处的宽度所形成的两个隐式球体,构建ー个轴对齐的包围盒,并以此包围盒作为构建包围体加速结构的基本単位。
3.根据权利要求I所述基于光线跟踪的毛发渲染方法,其特征在于,所述步骤(2)具体为对于ー个含有η个像素而且毛发采样率为m的图像,需要nXm个圆锥,η和m均为自然数,如果m=l,姆个圆锥对应ー个像素,如果m>l则姆个圆锥对应ー个子像素;姆个圆锥由焦点O、光锥方向V以及法平面上的两个向量Rx和Ry表示,Rx和Ry表示光锥与法平面相交形成的椭圆的两个轴,法平面被定义为沿光线方向前进单位距离并且与光线方向垂直的平面,本发明对于直接由视点发出的光线、在场景中折射或反射后产生的光线以及对应景深效果渲染产生的光线生成圆锥;得到需要跟踪的光锥之后,首先拿光锥与包围体加速结构进行求交;每ー个光锥用两个棱锥来保守近似,两个棱锥都从光锥焦点发出,分别沿光线的正负方向;棱锥的四个面分别由法平面上与椭圆两个轴的正负方向分别垂直的四条线段,以及光锥焦点形成;之后利用分割轴定理快速判断光锥与包围体结构中的包围盒是否求交。
4.根据权利要求I所述基于光线跟踪的毛发渲染方法,其特征在于,所述步骤(3)包括以下子步骤 (3. I)将带形投影到法平面上形成四边形首先将线段的两个端点及其相应的宽度投影到光锥的法平面;投影后的端点上存储的宽度信息可以作为半径以该端点为圆心生成一个圆形,任选一条直径可以产生两个点;对于毛发末端这样没有别的线段共享的点,直接取与投影后的线段垂直的直径;而对于毛发中部有两条线段共享的点来说,取两条线段的中线来生成新的ー对点;这样ー来,每个带形投影过后将会形成一个四边形;而光锥在法平面上形成的是ー个由Rx和Ry决定的椭圆形;根据椭圆的两个轴Rx和Ry,可以定义ー个变换T=[Rx,Ry]。通过其逆变换,可以将椭圆和四边形变换到光锥的坐标系中,椭圆变换成圆形,四边形仍然变换成四边形; (3. 2)计算任意一个四边形与圆形相交的面积取四边形的每条边和圆形的圆心各形成ー个三角形,之后将圆形与每个三角形相交得到ー个具有正负性的面积,最后所有的带符号的面积相加其结果的绝对值就是四边形与圆形相交的面积,三角形与圆形相交所得带符号的面积是由三角形与圆形相交的不同情况分别计算的,将当前考虑的四边形的边称为边AB,将三角形的另外两条边称为边AO和B0,下面总结了四类相交情况(a)若边AB所在的直线与圆形有两个交点且均在AB之外,此时的相交面积就是三角形的面积;(b)若边AB所在直线与圆形有两个交点且只有一个交点在外,此时的相交面积是其中一个小三角形与一个扇形的和;(c)若两个交点都在AB之内,此时的面积为其中一个小三角形和两个扇形的和;(d)若边AB完全在圆形之外,此时的面积为一个扇形的面积;然后将每个带形产生的采样点合成以生成最终的采样结果;在假定光锥内的毛发的不透明度、着色以及遮挡都是不变,可将采样的结果近似为
全文摘要
本发明公开了一种基于光线跟踪的毛发渲染方法,该方法通过将一个像素内的采样集合成为一个光锥,显著地降低了渲染毛发这样精细几何所需要的采样率。为了降低光锥与发丝相交的代价,本发明方法建立了一个包围体加速结构来快速得到可能与光锥相交的发丝,并且用一系列相连的带形来近似投影到成像平面之后的发丝。此外,通过忽略光锥内着色、不透明度以及遮挡的变化,大大降低了合成以及滤波透明采样的开销。本发明的方法在生成同等质量的图像情况下,性能比其他方法提高一个数量级。
文档编号G06T15/06GK102982575SQ20121050503
公开日2013年3月20日 申请日期2012年11月29日 优先权日2012年11月29日
发明者秦昊 申请人:杭州挪云科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1