CN100585636C - Gpu加速的轮廓区毛发状图形绘制方法 - Google Patents
Gpu加速的轮廓区毛发状图形绘制方法 Download PDFInfo
- Publication number
- CN100585636C CN100585636C CN200810113004A CN200810113004A CN100585636C CN 100585636 C CN100585636 C CN 100585636C CN 200810113004 A CN200810113004 A CN 200810113004A CN 200810113004 A CN200810113004 A CN 200810113004A CN 100585636 C CN100585636 C CN 100585636C
- Authority
- CN
- China
- Prior art keywords
- hair
- gpu
- fin
- texture
- summit
- 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
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种GPU加速的轮廓区毛发状图形绘制方法,属于计算机真实感图形学领域。本发明方法包括:生成表示轮廓区域毛发状图形的Fin纹理及相应的毛发状图形切向纹理;在GPU的顶点绘制器中判断物体模型的各个点是否处于轮廓区域;在GPU的像素绘制器中绘制轮廓区域内的各条边的Fin切片,并生成轮廓区域的毛发状图形效果。利用本发明方法绘制的毛发状图形可用于计算机仿真、虚拟现实、电子游戏等领域。
Description
技术领域
本发明涉及一种通过GPU加速的轮廓区毛发状图形绘制方法,更具体地说,本发明涉及一种基于层状纹理切片技术,利用GPU的可编程功能及其高效处理性能提高轮廓区域的毛发状图形绘制速度的方法,属于计算机真实感图形学领域。毛发状图形模拟结果可以用于计算机仿真、虚拟现实、电子游戏等领域。
背景技术
1.1毛发的真实感绘制
毛发的真实感绘制一直以来都是计算机图形学中的研究热点。至今已出现许多类表示毛发的方法。其中最直观的一类方法是采用几何元素将每根毛发都表示出来(G.Miller.From Wire-Frame to Furry Animals[C]//Proceedings of Graphics Interface.Mahwah,NJ:Lawrence Erlbaum Associates,1988:138-146;A.LeBlanc,R.Turner and D.Thalmann.Rendering hair using pixel blending and shadow buffers[J].The Journal of Visualization andComputer Animation,1991,2(1):92-97;Y.Watanabe and Y.Suenega.A trigonal prism-basedmethod for hair image generation[J].IEEE Computer Graphics and Application,1992,12(1):47-53;J.Berney and J.Redd.Stuart Little:A Tale of Fur,Costumes,Performance,andIntegration:Breathing Real Life Into a Digital Character[OL].SIGGRAPH 2000 Course Note#14)。但是由于物体表面上的毛发个体数量巨大,这些基于几何的方法很难达到较高的速度,无法满足实时绘制的要求。
不同于这些显式的几何方法,Kajiya等(J.T.Kajiya and T.L.Kay.Rendering Fur withThree Dimensional Textures[C]//Computer Graphics Proceedings,Annual Conference Series,ACM SIGGRAPH.New York:ACM Press,1989:271-280)在1989年提出利用体纹理来表示毛发的方法,取得了非常逼真的表达效果。不过由于这种方法采用了光线投射的绘制方式,使得速度很慢。
Meyer等(A.Meyer and F.Neyret.Interactive Volumetric Textures[C]//Proceedings ofEurographics Workshop on Rendering’98.Vienna:Springer-Verlag,1998:157-168)在Kajiya方法的基础上采用混合绘制多层次纹理切片的方法来表达体纹理的效果,大大提高了绘制效率。
基于Meyer这种层状纹理切片技术,Lengyel等(J.Lengyel.Real-time fur[C]//Proceedings of Eurographics Workshop on Rendering’00.Vienna:Springer-Verlag,2000:243-256;J.Lengyel,E.Praun,A.Finkelstein et al.Real-Time Fur over Arbitrary Surfaces[C]//Proceedings of ACM 2001 Symposium on Interactive 3D Graphics.New York:ACM Press,2001:227-232)实现了短毛的实时绘制。他们将物体的毛绒表面表示为一系列与物体表面平行的网格层,每层网格上映射相应的半透明毛发纹理;对这些半透明网格层进行混合绘制就可以产生短毛效果。Lengyel方法可以实时生成逼真的毛发效果,具有重要的应用价值。
在Lengyel方法基础上,Yang等(杨刚,孙汉秋,王文成,吴恩华,基于GPU的真实感毛发绘制[J].软件学报,2006,17(3):577-586)针对层状纹理切片方法的特点,提出了毛发自阴影的模拟方法,进一步增强了毛发绘制的真实感。此外,Yang等(“采用非均匀纹理层的短毛实时绘制”,杨刚,孙汉秋,王文成,吴恩华.计算机辅助设计与图形学学报,2007,19(4):430-435)还提出了采用非均匀纹理层的毛发表示技术,提高了毛发表示的效率和灵活性。
但是,在以上采用层状纹理切片来表示毛发的方法中,存在着轮廓处毛发表示效果不佳的问题。Lengyel等(J.Lengyel,E.Praun,A.Finkelstein et al.Real-Time Fur over ArbitrarySurfaces[C]//Proceedings of ACM 2001 Symposium on Interactive 3D Graphics.New York:ACM Press,2001:227-232)通过在物体轮廓边上添加“Fin切片”的方式来克服这个问题。但Fin切片的生成及其数据传输却需要消耗大量的时间,非常影响绘制效率。本发明即针对此问题提出了利用GPU加速轮廓毛发绘制的方法。该方法同样适用于在模型轮廓区域表现与毛发近似的毛发状图形,如草坪、植被、地毯等。
下面将具体介绍层状纹理切片方法及其存在的问题,并简要介绍GPU的可编程功能。
1.2基于层状纹理切片的毛发表示方法及其问题
Lengyel等(J.Lengyel,E.Praun,A.Finkelstein et al.Real-Time Fur over ArbitrarySurfaces[C]//Proceedings of ACM 2001 Symposium on Interactive 3D Graphics.New York:ACM Press,2001:227-232)和Yang(杨刚,孙汉秋,王文成,吴恩华,基于GPU的真实感毛发绘制[J].软件学报,2006,17(3):577-586;“采用非均匀纹理层的短毛实时绘制”,杨刚,孙汉秋,王文成,吴恩华.计算机辅助设计与图形学学报,2007,19(4):430-435)等都采用了层状纹理切片技术来表示真实感短毛。他们将物体的毛绒表面用一系列平行于物体表面的,半透明纹理层来表示。其主要步骤如图1所示:在预处理阶段,采用粒子系统生成一片几何毛发(图1a),然后对这片毛发进行水平方向的采样生成多层的半透明二维纹理(称为shell纹理,如图1b)。在绘制阶段,生成多层平行于物体表面的网格面,每层网格面映射相应层次的shell纹理,对这些网格面按照由内向外的顺序进行alpha混合绘制就产生了毛绒绒的效果。每层网格面都是通过将原模型顶点沿法向进行偏移而形成的(图1c)。
采用这种层状纹理切片方法,可以快速绘制出逼真的短毛效果。但是由于纹理网格层之间存在着空隙,当视线与网格表面接近平行时(这种情况一般发生在物体轮廓线附近),网格层间的空隙就可能会暴露出来,使人感觉轮廓处毛发的透明度过高,影响毛发绘制的真实感。Lengyel采用在轮廓边上添加四方形纹理切片(称为Fin切片)的方式来克服这个问题。每个Fin切片都垂直于物体表面,并映射有一簇毛发的纹理(称为Fin纹理),从而可以掩盖纹理网格层间的空隙,达到良好的绘制效果。但是为了生成Fin切片,需要在绘制前对物体的每一条边都进行轮廓边检测;每条被检测处于轮廓区域的边都要为其生成相应的Fin切片数据;并将这些Fin切片数据从CPU传送入GPU中进行绘制。这个过程往往会消耗整个毛发绘制流程30%的时间,非常影响绘制效率。
1.3GPU的可编程功能
近年来,图形处理器(Graphic Processing Unit,GPU)的体系结构不断更新,处理能力不断增强。由于GPU采用了并行处理的构架,使得GPU在图形处理上的计算速度远远高于CPU。更重要的是,GPU具有了越来越强大的可编程能力,这使得用户可以通过编程将相关运算处理转移到GPU中完成。在GPU中,用户可以进行编程控制的有两个部分:顶点绘制器(Vertex shader)和像素绘制器(Pixel shader)。当绘制物体时,物体的几何顶点数据首先被送入顶点绘制器中,用户可以对顶点绘制器进行编程来执行对物体顶点的各种处理;经过顶点绘制器处理的顶点数据在光栅化后生成像素数据进入像素绘制器,用户可以在这一部分进行编程来完成对像素色彩的处理,以产生预期的绘制效果。
目前,利用GPU的可编程功能将计算任务由CPU转移到GPU中来完成已成为一种非常有效的加速策略。Yang等[9]在毛发绘制过程中已经利用了GPU的计算能力。在其方法中,物体多层网格面的位置是在顶点绘制器中计算的,而毛发光照的计算则是在像素绘制器中编程完成的。本发明将进一步利用GPU的处理能力来完成轮廓边的检测和Fin切片的生成,以提高毛发绘制的效率。
发明内容
本发明的目的在于解决现有的基于层状纹理切片技术的毛发绘制方法中轮廓毛发(即Fin切片所表示的毛发)生成效率低,绘制速度慢的问题,提出一种高效的轮廓毛发绘制方法。该方法同样适用于采用Fin切片方式来表现的和毛发近似的毛发状图形。因此,下文中提到的绘制对象“毛发”应理解为包括了所有绘制技术和毛发相同的“毛发状图形”,比如,草坪,绒毛等等。
本发明方法利用GPU的可编程功能及其高效处理能力来加速Fin切片的计算和生成,从而加速轮廓毛发的绘制。该方法将轮廓边的检测和Fin切片的生成完全转移到GPU中进行。这样一方面充分利用了GPU强大的并行计算能力,另一方面免去了从CPU到GPU的数据传输负担,从而大大提高了Fin切片的处理速度,提高了真实感毛发的绘制效率。
物体的轮廓线是指物体表面上与视线相切的边线,也正是物体前向面和后向面的分界线。物体的轮廓区域可以定义为在轮廓线周围一定范围内的区域。
为使用Fin切片,需要在绘制前对物体模型(由多边形面片组成)的每条边进行轮廓区检测,只有被检测处于轮廓区域的边才需要为其生成Fin切片。常用的检测方法是计算视线方向V与当前边的法向N的点积,当此点积的绝对值小于某阈值β时,即认为此边处于轮廓区域。视线方向V采用视点Eye与此边中点Epos连线所成的向量。此过程用公式可以表示为:
|V*·N*|<β,其中V=Eye-Epos(1)
上式中V*和N*分别表示向量V和N的单位向量。β的取值可由用户指定。在发明人的实验中,β取为0.2即可得到不错的效果。被检测属于轮廓区的边就可以为其生成一个四边形Fin切片。Fin切片垂直放置在当前边上,其高度为当前边上的毛发长度。
在Lengyel和Yang的方法中,以上轮廓边的检测及Fin切片的生成都是在CPU中进行的。而本发明中,发明人通过设计适当的数据传输策略,将轮廓边的检测及Fin切片的生成完全转移到了GPU中的顶点绘制器中来完成;并利用像素绘制器来完成Fin切片的纹理映射和绘制。下面进行详细介绍。
2.1GPU加速的轮廓边检测及Fin切片生成
GPU的顶点绘制器虽然可以进行灵活的顶点运算,但是却无法直接用来完成轮廓边的检测及Fin切片的生成。这是因为:(1)为了生成Fin切片,需要增加一系列顶点数据来表示这些新生成的四边形面片。但是顶点绘制器尚不具备生成新顶点的功能。(2)顶点绘制器中处理的都是一个个孤立的顶点,并没有“边”的概念,无法进行轮廓边的判断。
为了克服这两个问题,发明人预先为模型上的每条边生成一套Fin切片数据。如图2所示,边e(即v1v2)上的Fin切片由四个顶点V1、V2、V3、V4组成,边e的Fin切片数据就由此四个顶点的数据组成。每个顶点的数据除了包含顶点的位置坐标和Fin纹理坐标外,还要包括两个“边信息”:即边e的法向Enormal和边e的中点位置Epos。其中Enormal可计算为此边左右两个邻接面的法向N1和N2的和,即Enormal=N1+N2。设当前模型的总边数为edgeNum,则所有边的Fin切片数据就一共包含edgeNum*4套顶点的数据。在绘制时,发明人将这edgeNum*4套顶点数据全部送入顶点绘制器中进行处理。在顶点绘制器中,根据边的法向量和边的中点位置这两个数据,就可以通过计算公式(1)判断出当前顶点所属的边是否处于轮廓区域。若是,则此顶点信息就可以参与随后的光栅化及绘制计算;否则就直接将此顶点移到视域之外(投影变换后的视域z坐标范围为[-1,1],所以我们只要将此顶点的z坐标设在[-1,1]之外即可,比如可将顶点位置设成(0,0,-2))。移到视域外的四边形片将会被自动裁减掉,不再进行光栅化等象素操作。
采用这种策略,实际上相当于在轮廓边检测之前事先生成了所有的四边形Fin切片,而顶点绘制器的作用只是去掉那些非轮廓边上的切片,这样就绕过了第一个问题;而通过为每个顶点附加“边信息”则使我们克服了第二个问题。
如前所述,预先生成的Fin切片数据一共包含edgeNum*4套顶点的数据,而且每套顶点数据中还包含有额外的“边信息”。如果在每次绘制时都要向GPU传输这些数据的话,将会占用相当的时间。所幸的是,这些Fin切片数据都是静态的,并不会发生变化;所以我们可以利用GPU的Vertex Buffer Object功能,将这部分静态数据驻留在显存中,完全省去了数据传输的负担。
由此,在本方法中,CPU将不再进行任何轮廓边的判断工作。我们只需要预先组织好所有的四边形切片数据,并将其存入显存中。然后在绘制时完全依靠GPU进行处理即可。相比于以往的方法,本发明方法将轮廓边的判断转移到了GPU中进行,并免去了Fin切片的实时生成及CPU→GPU的数据传输负担,起到了加速的作用。实施例中的表1对两种方法的速度进行了统计。可以看出,在Fin的生成和绘制上,本方法比现有方法在速度上提高了10-15倍。
2.2轮廓毛发的绘制
在生成Fin切片后,即可在像素绘制器中对Fin切片进行绘制计算。Fin切片在绘制时除了映射Fin纹理外,还要映射一幅记录毛发切向量的“切向纹理”,以用于毛发光照的计算。如图3所示,图3a为Fin纹理,图3b为毛发切向量的示意图。切向纹理中每个点的值记录着该点处毛发的切向量。Fin纹理及其切向纹理都是在预处理阶段通过采样绘制一块几何毛发而生成的。本发明采用的Fin纹理大小为512*128。在为某块Fin切片映射Fin纹理时,不需要映射整个长条形Fin纹理,只需要根据此Fin切片的宽度选取Fin纹理的一段进行映射即可。注意到图3中Fin纹理的左右两端是可以无缝拼接的,这样可以保证各Fin切片上的毛发纹理是连续的。
在像素绘制器中进行绘制时,首先从Fin纹理中取得毛发的颜色信息,从切向纹理中取得当前像素的毛发切向。然后根据式2完成毛发的绘制。式2是Lengyel等(J.Lengyel,E.Praun,A.Finkelstein et al.Real-Time Fur over Arbitrary Surfaces[C]//Proceedings of ACM2001 Symposium on Interactive 3D Graphics.New York:ACM Press,2001:227-232)采用的针对毛发的光照明模型。
FurLighting=ka+kd*Chair*(1-(T·L)2)pd/2+ks*(1-(T·H)2)ps/2(2)
式中,T是毛发的切向,Chair是毛发的颜色;L是光线方向,H是光线和视线夹角的角分线方向;ka,kd和ks是环境光,散射光和高光的颜色;pd和ps是散射光和高光的指数。
在绘制时,还需要对Fin切片的透明度乘以一个调节因子α。α=1-|V*·N*|,其中V*为视线方向,而N*为当前边的法向,V*和N*都是单位向量。当Fin切片越接近轮廓线时,其α值越接近1;反之,α越小。这就使得Fin切片从轮廓线向轮廓区的边缘区域逐渐变淡,减轻了Fin切片与层状纹理在绘制色彩上的冲突,可以产生更为平滑的绘制效果。图4中显示了采用本方法的轮廓毛发绘制效果。
附图说明
图1.采用层状纹理切片技术的毛发表示方法的原理简图;
图1(a).一块示意性的几何毛发;
图1(b).采样生成n层shell纹理,n=16;
图1(c).生成多层网格面来表示毛发;
图1(d).在模型网格表面添加四边形Fin切片;
其中,1-原模型网格;2-平移顶点形成外层网格;3-垂直于模型表面的Fin切片;
图2.Fin切片及其相关数据示意图;
图3.Fin纹理及毛发切向量示意图;
图3(a).Fin纹理示意图;
图3(b).毛发切向量示意图;
其中,4-点A处的毛发切向量;5-点B处的毛发切向量;
图4.采样样本毛发生成毛发纹理;
图4(a).采用粒子方法生成的样本毛发
图4(b).生成的多层毛发纹理。从左至右分别是第0,4,9,14层毛发纹理;上排是毛发纹理的颜色(RGB分量),下排是各自对应的alpha分量;
图5.本发明实施例绘制的毛发效果示意图;
图5(a).圆环模型的毛发绘制效果;
图5(b).兔子模型的毛发绘制效果;
图5(c).骆驼模型的毛发绘制效果;
其中左列图为没有添加Fin的绘制效果(可看到轮廓处毛发过度透明,往往可以直接看到模型轮廓);中列图为所绘制的Fin毛发效果;右列图为添加Fin后的效果。
具体实施方式
下面结合实施例对本发明方法作进一步说明。
本实施例的微机配置为P43.0G CPU,1G内存,GeForce6800GT显卡,256M显存。按照下述步骤绘制毛发物体:
预处理阶段:
(1)按照如图1中所示的方法,生成多层毛发纹理。
具体执行时,首先采用粒子系统的方法在一块正方形区域上方生成一片样本毛发体,然后沿着此正方形的法线方向对这块毛发体进行分段绘制以产生多层半透明毛发纹理(称为shell纹理)。shell纹理含有RGBA四个分量,RGB是颜色值,A表示不透明度。如图4(a)就是采用粒子系统方法生成的一块样本毛发,对这块毛发采样可生成16层毛发纹理,图4b中只显示了其中的四层。
(2)生成Fin纹理和Fin的“切向纹理”。
对图4(a)中的样本毛发从侧面进行采样就可以生成毛发的Fin纹理及其“切向纹理”(如图3中所示)。
(3)生成模型表面的纹理坐标。
为了能够将正方形的shell纹理映射到模型的表面,需要为模型表面的每个面片顶点设置好纹理坐标。本发明采用Lapped texture方法(E.Praun,A.Finkelstein,and H.Hoppe.Lapped textures[C]//Proceedings of SIGGRAPH‘2000,Computer Graphics,AnnualConference Series,2000:465-470)生成模型的纹理坐标。从而可以将shell纹理均匀而无缝地映射到模型表面。
(4)为模型上的每条边生成一套Fin切片数据。并利用GPU的Vertex Buffer Object功能,将这部分数据驻留在显存中(如2.1节中所述)。
绘制阶段:
(1)采用GPU加速完成轮廓毛发的绘制。
这是本发明方法所要完成的主要任务。发明人根据预先生成的Fin切片数据,采用GPU的顶点绘制器来完成轮廓边的检测及Fin切片的生成(如2.1节中所述);并在像素绘制器中完成轮廓毛发的绘制(如2.3节所述)。
(2)混合绘制多层网格面,完成物体表面毛发的绘制。
生成多层平行于物体表面的网格面,每层网格面映射相应层次的shell纹理,对这些网格面按照由内向外的顺序进行alpha混合绘制以生成毛发效果。每层网格面都是通过将原模型顶点沿法向进行偏移而形成的(如图1c中所示)。
在具体实现时,发明人采用GPU的顶点绘制器来完成多层网格面顶点偏移位置的计算,以辅助实现多层网格面的生成。随后,在绘制多层网格面时,发明人采用像素绘制器来完成毛发光照明的计算以及多层网格面的alpha混合。详细过程可参考文献(杨刚,费广正,吴恩华.实时生成带斑纹的毛发[J].计算机辅助设计与图形学学报,2004,16(9):1244-1249;杨刚,孙汉秋,王文成,吴恩华,基于GPU的真实感毛发绘制[J].软件学报,2006,17(3):577-586)。
上述过程是绘制物体毛发的完整过程。本发明所述方法是针对此过程中的轮廓边检测及轮廓毛发的绘制这部分而进行加速的。
按照上述过程,本实施例选用三个模型进行了毛发绘制实验。表1中对三个模型的绘制时间进行了统计,并将本方法与现有方法的绘制效率做了比较。三个模型的绘制效果如图5中所示。
表1
模型 | 圆环 | 兔子 | 骆驼 |
面片数/边数 | 576/864 | 3065/4599 | 4072/6112 |
采用GPU的Fin处理时间(毫秒) | 0.083 | 0.243 | 0.296 |
未采用GPU的Fin处理时间 | 1.204 | 2.964 | 3.525 |
采用本发明方法对整体绘制效率的提高 | 17% | 22% | 24% |
顶点附加数据结构所占空间(KB) | 148.5 | 790.5 | 1050.5 |
表1中第3行和第4行中所谓“Fin处理时间”包括绘制每帧画面时对轮廓边的检测、Fin切片数据的传输及Fin的绘制等一系列涉及Fin的时间总和。由这两行数据的对比可见,采用本发明方法比采用以往方法的Fin处理速度提高了10-15倍。第5行则给出了使用本发明方法使毛发整体绘制效率提高的程度。其计算方法为:(FPSnew-FPSold)/FPSold。其中FPSnew表示使用本发明方法时的整体绘制帧速率,而FPSold即为现有方法的帧速率。
值得说明的是,相对于现有技术,本发明方法的唯一代价在于增加了显存的占用量。本发明方法需要在显存中驻留所有边的Fin切片数据,而以往方法只需要提供轮廓区域内边的Fin数据。表1中第6行统计了采用本发明方法时Fin切片数据所占的显存空间。设模型总边数为edgeNum,所有边的Fin切片数据就一共包含edgeNum*4套顶点的数据,每套顶点数据包括该顶点坐标、该顶点的Fin纹理坐标、边的法向以及边中点的位置坐标。位置坐标或法向的三个坐标分量需要三个float型数据来存储,纹理坐标需要两个float型数据。则总的空间占用量可计算为:edgeNum*4*(3*3+2)=edgeNum*44*4(字节)。从表中可以看出,相对于目前日益增大的显存空间来说,这些空间占用量还是可以承受的。
因此本发明方法不存在显存容量不足导致本方法无法实施的问题。
本发明提出了一种利用GPU来加速轮廓毛发绘制的方法。该方法通过为顶点数据添加“边信息”而将轮廓边的检测计算巧妙地转移到了GPU中进行;并通过预先存储Fin切片数据而绕过了顶点绘制器无法生成新顶点的问题,免去了CPU→GPU的数据传输负担。该方法加速了轮廓毛发的处理,有效提高了毛发的整体绘制效率。
值得强调的是,模型轮廓边的检测是图形处理中的一个典型问题,不仅仅绘制轮廓毛发时需要轮廓边的检测,在对模型进行非真实感风格的绘制(M.Lee,A.K.Michael,et al.Real-Time Nonphotorealistic Rendering[C]//Proceedings of SIGGRAPH′97,1997:415-420)、阴影生成、遮挡剔除等许多图形问题中都可能需要进行轮廓边的检测。本发明中利用GPU加速轮廓边检测的方法可以直接推广应用到所有需要轮廓边检测的图形处理过程中,具有普遍意义。
Claims (8)
1.一种GPU加速的轮廓区毛发状图形绘制方法,其包含如下步骤:
a)生成表示轮廓区域毛发状图形的Fin纹理及相应的毛发状图形切向纹理;
b)在GPU的顶点绘制器中按照下列方法判断物体模型的各个点是否处于轮廓区域:
在CPU中为物体模型每条边所在的Fin切片的四个顶点各生成一套顶点数据,所述的顶点数据包含:当前顶点的位置坐标和Fin纹理坐标,当前边的法向信息、中点位置信息和视点位置信息;
将上述顶点数据发送至GPU的顶点绘制器;
在顶点绘制器中,判断当前边的视线方向和法向之间的点积的绝对值是否小于设定的阈值,若是,则认为当前边所在的点处于轮廓区域,若否,则认为当前边所在的点不处于轮廓区域;
所述的视线方向为当前边的中点到视点的矢量;
c)在GPU的像素绘制器中绘制轮廓区域内的各条边的Fin切片,并生成轮廓区域的毛发状图形效果。
2.如权利要求1所述的方法,其特征在于利用GPU的Vertex Buffer Object功能,将所述的顶点数据驻留在显存中。
3.如权利要求1所述的方法,其特征在于,步骤a)所述的Fin纹理及相应的毛发切向纹理通过绘制几何毛发而生成。
4.如权利要求1所述的方法,其特征在于,所述的当前边的法向信息为当前边的两个邻接面片的法向的和。
5.如权利要求1所述的方法,其特征在于,所述的设定的阈值为0.2。
6.如权利要求1所述的方法,其特征在于,所述的GPU采用并行处理的构架,并具备可编程功能。
7.如权利要求1所述的方法,其特征在于,所述的GPU的型号为Geforce 6800GT。
8.如权利要求1所述的方法,其特征在于,所述毛发状图形为毛发或草坪或绒毛。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810113004A CN100585636C (zh) | 2008-05-27 | 2008-05-27 | Gpu加速的轮廓区毛发状图形绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810113004A CN100585636C (zh) | 2008-05-27 | 2008-05-27 | Gpu加速的轮廓区毛发状图形绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101281655A CN101281655A (zh) | 2008-10-08 |
CN100585636C true CN100585636C (zh) | 2010-01-27 |
Family
ID=40014100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810113004A Expired - Fee Related CN100585636C (zh) | 2008-05-27 | 2008-05-27 | Gpu加速的轮廓区毛发状图形绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100585636C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102568032A (zh) * | 2010-12-09 | 2012-07-11 | 中国科学院软件研究所 | 真实感地表形变模型生成方法 |
CN102339475B (zh) * | 2011-10-26 | 2014-01-29 | 浙江大学 | 基于表面网格的快速毛发建模方法 |
CN106575445B (zh) * | 2014-09-24 | 2021-02-05 | 英特尔公司 | 毛皮虚拟化身动画 |
CN113822981B (zh) * | 2020-06-19 | 2023-12-12 | 北京达佳互联信息技术有限公司 | 一种图像渲染方法、装置、电子设备及存储介质 |
US11551387B2 (en) * | 2020-09-16 | 2023-01-10 | Electronic Arts Inc. | Systems and methods for hair rasterization |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667652A (zh) * | 2005-04-15 | 2005-09-14 | 北京大学 | 一种基于图形处理芯片的视觉凸壳加速绘制方法 |
US20070217690A1 (en) * | 2006-03-20 | 2007-09-20 | Accenture Global Services Gmbh | Image processing system for skin detection and localization |
-
2008
- 2008-05-27 CN CN200810113004A patent/CN100585636C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667652A (zh) * | 2005-04-15 | 2005-09-14 | 北京大学 | 一种基于图形处理芯片的视觉凸壳加速绘制方法 |
US20070217690A1 (en) * | 2006-03-20 | 2007-09-20 | Accenture Global Services Gmbh | Image processing system for skin detection and localization |
Non-Patent Citations (2)
Title |
---|
采用非均匀纹理层的短毛实时绘制. 杨刚,孙汉秋,王文成,吴恩华.计算机辅助设计与图形学学报,第19卷第4期. 2007 |
采用非均匀纹理层的短毛实时绘制. 杨刚,孙汉秋,王文成,吴恩华.计算机辅助设计与图形学学报,第19卷第4期. 2007 * |
Also Published As
Publication number | Publication date |
---|---|
CN101281655A (zh) | 2008-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Raskar et al. | Image precision silhouette edges | |
CN108510577B (zh) | 基于已有动作数据的真实感动作迁移和生成方法及系统 | |
US20170372508A1 (en) | Efficient rendering based on ray intersections with virtual objects | |
Naylor | Interactive solid geometry via partitioning trees | |
AU2006236289A1 (en) | Techniques and workflows for computer graphics animation system | |
CN100585636C (zh) | Gpu加速的轮廓区毛发状图形绘制方法 | |
US20170330372A1 (en) | Graphics processing systems | |
Li et al. | Vox-surf: Voxel-based implicit surface representation | |
US9905045B1 (en) | Statistical hair scattering model | |
Hudon et al. | Deep normal estimation for automatic shading of hand-drawn characters | |
Bruckner et al. | Hybrid visibility compositing and masking for illustrative rendering | |
CN1776747A (zh) | 医学图像中基于gpu硬件加速的体绘制方法 | |
Barringer et al. | High-quality curve rendering using line sampled visibility | |
Ryder et al. | Survey of real‐time rendering techniques for crowds | |
CN107689076A (zh) | 一种用于虚拟手术系统切割时的高效渲染方法 | |
Hanniel et al. | Direct rendering of solid CAD models on the GPU | |
CN103745495A (zh) | 基于医学体数据的体绘制方法 | |
CN106803278B (zh) | 一种虚拟人物半透明分层排序方法及系统 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
Hajagos et al. | Fast silhouette and crease edge synthesis with geometry shaders | |
Duan et al. | Optimization of multi-view texture mapping for reconstructed 3D model | |
US9646412B1 (en) | Pre-sorted order independent transparency | |
Li | An automatic rendering method of line strokes for Chinese landscape painting | |
Trapp et al. | Occlusion management techniques for the visualization of transportation networks in virtual 3D city models | |
Lin et al. | A feature-adaptive subdivision method for real-time 3D reconstruction of repeated topology surfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20100127 Termination date: 20150527 |
|
EXPY | Termination of patent right or utility model |