首页> 中国专利> 基于GPU的大规模落叶实时渲染方法

基于GPU的大规模落叶实时渲染方法

摘要

本发明公开了一种基于GPU的大规模落叶实时渲染方法,该方法首先建立落叶运动的基础运动轨迹库;通过马尔科夫链模型,得到落叶轨迹的低维特征表示;在渲染的初始化阶段,向GPU输入存储在内存中的叶片粒子的运动特征参数与形状特征参数;在实时渲染阶段,逐帧向GPU输入当前系统时间与风场信息,在GPU中进行落叶运动位置的计算;在GPU中进行叶片多边形重建;最后进行渲染。本发明充分利用了GPU的并行计算优势,在GPU中使用独立线程完成对每一片叶片的运动轨迹计算,该方法在保证了渲染真实性的基础上,大大提高了落叶渲染的效率,满足了大场景植被落叶运动的实时渲染需求。

著录项

  • 公开/公告号CN104778737A

    专利类型发明专利

  • 公开/公告日2015-07-15

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN201510128634.X

  • 发明设计人 童若锋;钱景晔;

    申请日2015-03-23

  • 分类号

  • 代理机构杭州求是专利事务所有限公司;

  • 代理人邱启旺

  • 地址 310058 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-12-18 09:52:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-13

    授权

    授权

  • 2015-08-12

    实质审查的生效 IPC(主分类):G06T13/60 申请日:20150323

    实质审查的生效

  • 2015-07-15

    公开

    公开

说明书

技术领域

本发明属于计算机实时渲染领域,特别涉及一种基于GPU的大规模落叶实时渲染方法。

背景技术

在游戏以及其他各种3D展示应用中,往往涉及到大规模植被的渲染。在这些场景中, 落叶的运动模拟无疑能够增加场景的表现力。

传统的落叶运动模拟主要包括三种思路:一是模拟场景中的涡流,通过流体动力学来实 时计算涡流中叶片的位置。涡流模拟与动力学计算结合的方法可以较为精确的模拟轻小物体 的运动,然而涡流的事先模拟使得我们无法应对较大的空间条件和动态变化的风力场,再者 其计算亦十分耗时,不能满足实时渲染的需要。二是在渲染前预先由艺术家使用如Maya这 样的动画工具设计出数条物体飘落的三维轨迹,真实渲染时,每片叶片随机挑选一条作为自 身的运动轨迹模板。人工设计轨迹模板的方案拥有便于GPU实现的优势,更适合大场景计算, 但场景的真实性会因为模板的单调和轨迹设计者的水平下降。三是使用数据驱动的方式,预 先为每片叶片计算出复杂的运动轨迹。该方法的真实性与效率性介于前两者之间,且因为每 片叶片的运动轨迹都需要很大的数据量来存储,因此无法适用于大规模植被场景(叶片数量大 于10万)的落叶实时渲染。

发明内容

本发明的目的在于针对现有技术的不足,提供一种基于GPU的大规模落叶实时渲染方法。

本发明的目的是通过以下技术方案来实现的:一种基于GPU的大规模落叶实时渲染方 法,该方法包括以下步骤:

(1)建立落叶基础运动轨迹库,具体为:

将落叶的轨迹分为六种基础运动模板:稳速下降(SD),周期翻转(PT),混沌变动(TC), 周期振动(PF),变速螺旋(TH)以及周期螺旋(PS),通过Li(1≤i≤6,i为自然数)表示,其 中L1~L6分别表示SD,PT,TC,PF,TH,PS;其中,SD使用加上轻微扰动的匀速直线运 动模型;PT、TC、PF三种运动使用规律性的轨迹片段进行组合,所述轨迹片段表示如下:

xt=x0-AΩsin(Ωt)yt=y0-Ut-AΩsin(Ωt)---(1)

其中,t表示当前时间,xt与yt表示t时刻下的轨迹片段空间坐标,x0与y0表示初始时刻 下的轨迹片段空间坐标,U表示匀速下降速度,A表示震荡幅度,Ω表示简谐运动频率;提 取时间内的x、y坐标作为轨迹片段;通过调整A、Ω、U的大小得到不同形态的轨 迹片段,从而组合得到具有随机性的PT、TC、PF基础运动模板;

TH、PS两种运动通过公式(2)表示:

xt=Aecos(Ωt)(1+Eesin(kΩt)),yt=h-Ut,zt=Aesin(Ωt)(1+Eesin(kΩt)),---(2)

其中Ae是XOZ平面的椭圆振幅,Ee是椭圆长短轴的比值,k是椭圆震荡周期与物体旋转周 期的比值,h是初始高度,Ω′是下降时的角速度,U′是下降时y方向的平均速度;

(2)通过马尔科夫链模型,得到落叶轨迹的低维特征表示:对Li(1≤i≤6)而言,运动轨 迹的无序性保持递增;设定一段自由坠落轨迹M{M=m1||m2||···||mi},所述M由数段mi拼 接而成,每一段mi对应某一种基础运动模板Li,M的切换概率由马尔科夫链模型计算;设定 特征D={S1,S2,S3,S4,S5},其中Si={Li,Ti,Pi},Li表示当前其所属的基础运动模板,Ti表示这 段轨迹在总体运动时间中所占的比例,Pi表示从该运动轨迹的哪一段开始运动;以此得到落 叶轨迹的低维特征表示D;

(3)在渲染的初始化阶段,向GPU输入存储在内存中的叶片粒子的运动特征参数与形 状特征参数;其中叶片粒子的运动特征参数为步骤2得到的特征D,形状特征参数包括叶片 的长宽与初始法向、切向;

(4)在实时渲染阶段,逐帧向GPU输入当前系统时间与风场信息,在GPU中进行落叶 运动位置的计算,具体包括以下步骤:

(4.1)通过逐帧传入的当前系统时间与步骤3中传入GPU的运动特征参数,得到当前 粒子所属的基础运动模板Li与其在基础运动模板中的位置;

(4.2)从基础轨迹模板中,获取粒子对应的轨迹运动速度VT与角速度ΩT

(4.3)由当前系统时间与叶片所处位置,从风场中得到对应的风场响应运动速度Vw

(4.4)粒子的最终速度V=Vw+VT,最终角速度Ω=ΩT;结合当前帧与上一帧间隔时间 Δt,更新叶片的空间位置和法向信息;

(5)利用叶片粒子形状特征参数和步骤4.4计算得到的叶片粒子空间位置、法向,在 GPU中进行叶片多边形重建,得到叶片多边形顶点与拓扑信息;具体为:通过求解叶片平面 上垂直于法向Nor和切向Tan的向量Lup,得到多边形四个顶点的空间坐标,各顶点的纹理 坐标由顶点顺序自动生成,各顶点的法向与质心法向一致。

(6)通过步骤5得到的叶片多边形顶点与拓扑信息,对生成的叶片多边形进行实时渲染。

本发明的有益效果为:本发明方法充分利用了GPU的并行计算优势,在GPU中使用独 立线程完成对每一片叶片的运动轨迹计算,该方法在保证了渲染真实性的基础上,大大提高 了落叶渲染的效率,满足了大场景植被落叶运动的实时渲染需求。

附图说明

图1是本发明方法流程图;

图2是基础运动轨迹运动形态示意图;

图3是GPU中计算流程图;

图4是GPU中几何重建示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细说明。

如图1所示,本发明一种基于GPU的大规模落叶实时渲染方法,包括以下步骤:

(1)建立落叶基础运动轨迹库,具体为:

将落叶的轨迹分为六种基础运动模板:稳速下降(Steady Descent/SD),周期翻转(Periodic  Tumbling/PT),混沌变动(Transitional Chaotic/TC),周期振动(Periodic Fluttering/PF),变速 螺旋(Transitional Helical/TH)以及周期螺旋(Periodic Spiral/PS),通过Li(1≤i≤6,i为自然数) 表示,其中L1~L6分别表示SD,PT,TC,PF,TH,PS,其运动形态可以参考图2;其中, SD使用加上轻微扰动的匀速直线运动模型;PT、TC、PF三种运动使用规律性的轨迹片段进 行组合,所述轨迹片段表示如下:

xt=x0-AΩsin(Ωt)yt=y0-Ut-AΩsin(Ωt)---(1)

其中,t表示当前时间,xt与yt表示t时刻下的轨迹片段空间坐标,x0与y0表示初始时刻 下的轨迹片段空间坐标,U表示匀速下降速度,A表示震荡幅度,Ω表示简谐运动频率;提 取时间内的x、y坐标作为轨迹片段;通过调整A、Ω、U的大小得到不同形态的轨 迹片段,从而组合得到具有随机性的PT、TC、PF基础运动模板;

TH、PS两种运动通过公式(2)表示:

xt=Aecos(Ωt)(1+Eesin(kΩt)),yt=h-Ut,zt=Aesin(Ωt)(1+Eesin(kΩt)),---(2)

其中Ae是XOZ平面的椭圆振幅,Ee是椭圆长短轴的比值,k是椭圆震荡周期与物体旋转周 期的比值,h是初始高度,Ω′是下降时的角速度,U′是下降时y方向的平均速度;

(2)通过马尔科夫链模型,得到落叶轨迹的低维特征表示:对Li(1≤i≤6)而言,运动轨 迹的无序性保持递增;设定一段自由坠落轨迹M{M=m1||m2||···||mi},所述M由数段mi拼 接而成,每一段mi对应某一种基础运动模板Li,M的切换概率由马尔科夫链模型计算;设定 特征D={S1,S2,S3,S4,S5},其中Si={Li,Ti,Pi},Li表示当前其所属的基础运动模板,Ti表示这 段轨迹在总体运动时间中所占的比例,Pi表示从该运动轨迹的哪一段开始运动;以此得到落 叶轨迹的低维特征表示D;

(3)在渲染的初始化阶段,向GPU输入存储在内存中的叶片粒子的运动特征参数与形 状特征参数;其中叶片粒子的运动特征参数为步骤2得到的特征D,形状特征参数包括叶片 的长宽与初始法向、切向;

(4)在实时渲染阶段,逐帧向GPU输入当前系统时间与风场信息,在GPU中进行落叶 运动位置的计算,如图3所示,具体包括以下步骤:

(4.1)通过逐帧传入的当前系统时间与步骤3中传入GPU的运动特征参数,得到当前 粒子所属的基础运动模板Li与其在基础运动模板中的位置;

(4.2)从基础轨迹模板中,获取粒子对应的轨迹运动速度VT与角速度ΩT

(4.3)由当前系统时间与叶片所处位置,从风场中得到对应的风场响应运动速度Vw

(4.4)粒子的最终速度V=Vw+VT,最终角速度Ω=ΩT;结合当前帧与上一帧间隔时间 Δt,更新叶片的空间位置和法向信息;

(5)利用叶片粒子形状特征参数和步骤4.4计算得到的叶片粒子空间位置、法向,在 GPU中进行叶片多边形重建,得到叶片多边形顶点与拓扑信息;如图4所示,具体为:通过 求解叶片平面上垂直于法向Nor和切向Tan的向量Lup,得到多边形四个顶点的空间坐标, 各顶点的纹理坐标由顶点顺序自动生成,各顶点的法向与质心法向一致。

(6)通过步骤5得到的叶片多边形顶点与拓扑信息,对生成的叶片多边形进行实时渲染。

用本发明方法进行的落叶场景渲染,在保证场景真实性的基础上,大大增加了渲染的效 率。不但提高了应用帧率,而且大大降低了CPU的消耗。如下表所示,是本发明方法与传统 方法的比较试验结果。

实验结果统计表。表格中数据格式为(FPS/CPU占用率)

粒子数目 1k 10k 50k 100k 传统方法 124/17% 65/21% 14/45% 3/63% 本文方法 450/13% 350/15% 220/15% 164/15%

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号