一种移动平台的非静态物体非实时阴影渲染的方法技术

技术编号:21480535 阅读:24 留言:0更新日期:2019-06-29 05:28
本发明专利技术涉及网络信息技术领域,尤其涉及一种移动平台的非静态物体非实时阴影渲染的方法。针对移动平台的性能十分的有限,然而阴影的实时计算生成是十分消耗性能,性能消耗是主流移动设备负担不起等问题,本发明专利技术的技术方案是:首先对物体阴影的预先生成的阴影贴图,保存生成阴影图集并记录好数据;利用生成好的阴影图集,根据利用记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个正方形的模型片。可以实现让非静态的物体产生阴影,同时拥有较低的性能消耗。

【技术实现步骤摘要】
一种移动平台的非静态物体非实时阴影渲染的方法
本专利技术涉及网络信息
,尤其涉及一种移动平台的非静态物体非实时阴影渲染的方法。
技术介绍
在真实自然界中,任何场景都可以看见阴影,游戏中的阴影是提升游戏真实性的重要手段。众所周知移动平台的性能十分的有限,远不能达到传统电脑的性能,然而阴影的实时计算生成是十分消耗性能的,因此无法在主流的移动手机上为了这一点效果上的提升,而放弃运行的流畅。目前也有预先生成阴影的技术LightMap,避免运行时的性能消耗,但是这种方式对于静止的物体是有效的,但是运动或变化的非静态物体无法采用。比如shadowMap,这种阴影的实现方式是实时的,它的基本思路是在光源的位置放置一个相机,拍摄当前的画面渲染得到当前画面的深度图像,运行时通过比较深度图,如果像素的速度比深度大着意味着它在阴影中。这种方式是使用比较多的解决方案,它能产生效果比较好,但是性能的消耗比较大,需要做大量的计算,同时ShadowMap产生的阴影还有其他的问题,比如有透视产生的锯齿,降低整体的品质,渲染图的分辨率较低导致最终比较采样时与预期会有差距。尽管已经有各种方法能解决上述产生的阴影质量的问题,但无疑会产生较大的性能消耗。Unity自带的混合光照系统,许多游戏引擎完成的光照系统。对于静态的物体我们可以使用LightMap,对于动态的物体我们可以使用实时光,当它们同时存在相互叠加就会出现问题,如场景过亮过暗。Unity自带混合光照系统它可以使用预先烘焙的LightMap与实时光的光照混合,这样对于非静态的物体我们可以使用实时光,让它产生阴影,并且能做到静态与非静态物体阴影的相互接受投射。然而这种方式的性能消耗是主流移动设备负担不起的,无法使用。
技术实现思路
针对移动平台的性能十分的有限,主流移动设备负担不起阴影的实时计算生成的问题,本专利技术提供一种移动平台的非静态物体非实时阴影渲染的方法。本专利技术的目的在于:让非静态的物体产生阴影,同时拥有较低的性能消耗。本专利技术采用的技术方案如下:一种移动平台的非静态物体非实时阴影渲染的方法,包括以下步骤:步骤1:首先将物体各个角度的阴影制作成阴影贴图,将所有阴影贴图保存生成阴影图集并记录好用于对应物体的角度和相应角度的阴影贴图在阴影图集中的位置的数据:步骤2:利用生成好的阴影图集,根据记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个正方形的模型片。采用了此方案,本方法使用了一种类似“欺骗”的方式,预先生成一种阴影片,叠加在游戏中的物体下,使看上去有阴影,同时拥有较低的性能消耗,由于预先记录了物体不同角度的阴影,能保证生成的阴影与物体自然产生的阴影是一致的,具有较高的质量水平。所述步骤1包括:步骤1.1:利用PlanarShaodw算法,这种算法会将三维模型的所有顶点,沿光线方向投射到平面上,形成一个二维的阴影贴图,此时我们就用该阴影贴图来代替物体产生的阴影;步骤1.2:利用一个正交相机,从物体的正上方拍摄并记录该阴影贴图;步骤1.3:记录物体以穿过质心的水平垂直轴为旋转轴,每旋转10度所产生的阴影贴图;步骤1.4:将得到的所有阴影贴图合并成一张大的阴影图集,并将每个角度的阴影贴图在阴影图集中对应的坐标位置序列化出来,生成一个索引表以便提取对应角度的阴影贴图的数据。采用了此方案,通过预先使用一种PlanarShaodw将物体投射到平面形成一个二维面,不断改变角度旋转二维面,记录不同角度时的阴影形状,通过这种生成图集的方式,降低了运行时的消耗,且方便通用,适用于任何物件。其中,所述步骤1中,保存阴影贴图时,只记录阴影贴图的rgba中的a值。采用了此方案,这样内存大小更小,同时方便我们的还原操作,这样拍摄记录出来的图片是一张周围透明中间为黑色的,形状是物体产生的阴影的形状。所述步骤2包括:步骤2.1:获取当前物体的局部旋转角度,计算得到该角度对应的索引;步骤2.2:根据索引获得当前物体的角度在阴影图集中对应的坐标位置;步骤2.3:在阴影图集中,将步骤2.2所获得的坐标位置上的数据提取出来,生成一个正方形的模型片,指定所述阴影贴图四个角的坐标,这样通过计算后生成的正方形的模型片就是物体影子的形状。采用了此方案,通过已经记录不同角度阴影的形状可以得到物体当前影子,其中运行时影子只是一个阴影贴图,性能消耗很低,同时生成的影子可移动伴随物体动态的变化,同时在阴影的还原上方式更为简洁,它只与渲染效果有关系,不会影响其他的流程。其中,所述步骤1.3中,所述旋转轴为N重轴时,旋转范围为360度除以N。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:1.本方法使用了一种类似“欺骗”的方式,预先生成一种阴影贴图,叠加在游戏中的物体下,使看上去有阴影,同时拥有较低的性能消耗。2.由于预先记录了物体不同角度的阴影,能保证生成的阴影与物体自然产生的阴影是一致的,具有较高的质量水平。3.通过预先使用一种PlanarShaodw将物体投射到平面形成一个二维面,不断改变角度旋转二维面,记录不同角度时的阴影形状,通过这种生成图集的方式,降低了运行时的消耗,且方便通用,适用于任何物件。4.通过已经记录不同角度阴影的形状可以得到物体当前影子,其中运行时影子只是一个片,性能消耗很低,同时生成的影子可移动伴随物体动态的变化,同时在阴影的还原上方式更为简洁,它只与渲染效果有关系,不会影响其他的流程。具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。一种移动平台的非静态物体非实时阴影渲染的方法,所述移动平台的非静态物体非实时阴影渲染的方法包括以下步骤:步骤1:首先对物体阴影的预先生成的阴影贴图,保存生成阴影图集并记录好数据:步骤2:利用生成好的阴影图集,根据利用记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个正方形的模型片。本方法使用了一种类似“欺骗”的方式,预先生成一种阴影贴图,叠加在游戏中的物体下,使看上去有阴影,同时拥有较低的性能消耗,由于预先记录了物体不同角度的阴影,能保证生成的阴影与物体自然产生的阴影是一致的,具有较高的质量水平。优选的,所述步骤1包括:步骤1.1:为了在游戏中生成阴影,我们首先需要得到物体产生的阴影的模样,利用PlanarShaodw算法,这种算法会将三维模型的所有顶点,沿光线方向投射到平面上,形成一个二维的阴影贴图。经过该算法处理,由三维模型形成的阴影贴图的形状刚好是物体经过投射变换的从某一光照方向产生的阴影,此时我们就用该阴影贴图来代替物体产生的阴影;步骤1.2:为了在游戏运行还原阴影,我们需要将阴影贴图的形状记录下来,利用一个正交相机,从物体的正上方拍摄该二维面,只记录它rgba中的a值,这样内存大小更小,同时方便我们的还原操作,这样拍摄记录出来的图片是一张周围透明中间为黑色的,形状是物体产生的阴影的形状;步骤1.3:为了还原时能准确的匹配,我们需要提前记录好这些数据,记录物体以穿过质心的竖直轴为旋转轴,假如物体以旋转轴旋转360度重合N次,则物体旋转360除以N,360度除以N每旋转10度所产生的阴影贴图,为了提高精度,可以将旋转角度减小。还原时会根据模型的旋转角度匹配记本文档来自技高网
...

【技术保护点】
1.一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:包括以下步骤:步骤1:首先将物体各个角度的阴影制作成阴影贴图,将所有阴影贴图保存生成阴影图集,并记录好用于对应物体的角度和相应角度的阴影贴图在阴影图集中的位置的数据:步骤2:利用生成好的阴影图集,根据记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个平面正方形的模型片,用该阴影贴图作为该模型片的影子。

【技术特征摘要】
1.一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:包括以下步骤:步骤1:首先将物体各个角度的阴影制作成阴影贴图,将所有阴影贴图保存生成阴影图集,并记录好用于对应物体的角度和相应角度的阴影贴图在阴影图集中的位置的数据:步骤2:利用生成好的阴影图集,根据记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个平面正方形的模型片,用该阴影贴图作为该模型片的影子。2.根据权利要求1所述的一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:所述步骤1包括:步骤1.1:利用PlanarShaodw算法,这种算法会将三维模型的所有顶点,沿光线方向投射到平面上,形成一个二维的阴影贴图,此时我们就用该阴影贴图来代替物体产生的阴影;步骤1.2:利用一个正交相机,从物体的正上方拍摄并记录该阴影贴图;步骤1.3:记录物体以穿过质心的水平垂直轴为旋转轴,每旋转10度所产生的阴影贴图;步骤1.4:将得到的所有阴影贴图合并成...

【专利技术属性】
技术研发人员:魏骁
申请(专利权)人:成都风际网络科技股份有限公司
类型:发明
国别省市:四川,51

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1