CN109949401A - 一种移动平台的非静态物体非实时阴影渲染的方法 - Google Patents
一种移动平台的非静态物体非实时阴影渲染的方法 Download PDFInfo
- Publication number
- CN109949401A CN109949401A CN201910191598.XA CN201910191598A CN109949401A CN 109949401 A CN109949401 A CN 109949401A CN 201910191598 A CN201910191598 A CN 201910191598A CN 109949401 A CN109949401 A CN 109949401A
- Authority
- CN
- China
- Prior art keywords
- shade
- shadow
- shadow map
- mobile platform
- echo
- 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.)
- Pending
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明涉及网络信息技术领域,尤其涉及一种移动平台的非静态物体非实时阴影渲染的方法。针对移动平台的性能十分的有限,然而阴影的实时计算生成是十分消耗性能,性能消耗是主流移动设备负担不起等问题,本发明的技术方案是:首先对物体阴影的预先生成的阴影贴图,保存生成阴影图集并记录好数据;利用生成好的阴影图集,根据利用记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个正方形的模型片。可以实现让非静态的物体产生阴影,同时拥有较低的性能消耗。
Description
技术领域
本发明涉及网络信息技术领域,尤其涉及一种移动平台的非静态物体非实时阴影渲染的方法。
背景技术
在真实自然界中,任何场景都可以看见阴影,游戏中的阴影是提升游戏真实性的重要手段。众所周知移动平台的性能十分的有限,远不能达到传统电脑的性能,然而阴影的实时计算生成是十分消耗性能的,因此无法在主流的移动手机上为了这一点效果上的提升,而放弃运行的流畅。
目前也有预先生成阴影的技术LightMap,避免运行时的性能消耗,但是这种方式对于静止的物体是有效的,但是运动或变化的非静态物体无法采用。
比如shadowMap,这种阴影的实现方式是实时的,它的基本思路是在光源的位置放置一个相机,拍摄当前的画面渲染得到当前画面的深度图像,运行时通过比较深度图,如果像素的速度比深度大着意味着它在阴影中。这种方式是使用比较多的解决方案,它能产生效果比较好,但是性能的消耗比较大,需要做大量的计算,同时ShadowMap产生的阴影还有其他的问题,比如有透视产生的锯齿,降低整体的品质,渲染图的分辨率较低导致最终比较采样时与预期会有差距。尽管已经有各种方法能解决上述产生的阴影质量的问题,但无疑会产生较大的性能消耗。
Unity自带的混合光照***,许多游戏引擎完成的光照***。对于静态的物体我们可以使用LightMap,对于动态的物体我们可以使用实时光,当它们同时存在相互叠加就会出现问题,如场景过亮过暗。Unity自带混合光照***它可以使用预先烘焙的LightMap与实时光的光照混合,这样对于非静态的物体我们可以使用实时光,让它产生阴影,并且能做到静态与非静态物体阴影的相互接受投射。然而这种方式的性能消耗是主流移动设备负担不起的,无法使用。
发明内容
针对移动平台的性能十分的有限,主流移动设备负担不起阴影的实时计算生成的问题,本发明提供一种移动平台的非静态物体非实时阴影渲染的方法。
本发明的目的在于:让非静态的物体产生阴影,同时拥有较低的性能消耗。
本发明采用的技术方案如下:
一种移动平台的非静态物体非实时阴影渲染的方法,包括以下步骤:
步骤1:首先将物体各个角度的阴影制作成阴影贴图,将所有阴影贴图保存生成阴影图集并记录好用于对应物体的角度和相应角度的阴影贴图在阴影图集中的位置的数据:
步骤2:利用生成好的阴影图集,根据记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个正方形的模型片。
采用了此方案,本方法使用了一种类似“欺骗”的方式,预先生成一种阴影片,叠加在游戏中的物体下,使看上去有阴影,同时拥有较低的性能消耗,由于预先记录了物体不同角度的阴影,能保证生成的阴影与物体自然产生的阴影是一致的,具有较高的质量水平。
所述步骤1包括:
步骤1.1:利用Planar Shaodw算法,这种算法会将三维模型的所有顶点,沿光线方向投射到平面上,形成一个二维的阴影贴图,此时我们就用该阴影贴图来代替物体产生的阴影;
步骤1.2:利用一个正交相机,从物体的正上方拍摄并记录该阴影贴图;
步骤1.3:记录物体以穿过质心的水平垂直轴为旋转轴,每旋转10度所产生的阴影贴图;
步骤1.4:将得到的所有阴影贴图合并成一张大的阴影图集,并将每个角度的阴影贴图在阴影图集中对应的坐标位置序列化出来,生成一个索引表以便提取对应角度的阴影贴图的数据。
采用了此方案,通过预先使用一种Planar Shaodw将物体投射到平面形成一个二维面,不断改变角度旋转二维面,记录不同角度时的阴影形状,通过这种生成图集的方式,降低了运行时的消耗,且方便通用,适用于任何物件。
其中,所述步骤1中,保存阴影贴图时,只记录阴影贴图的rgba中的a值。
采用了此方案,这样内存大小更小,同时方便我们的还原操作,这样拍摄记录出来的图片是一张周围透明中间为黑色的,形状是物体产生的阴影的形状。
所述步骤2包括:
步骤2.1:获取当前物体的局部旋转角度,计算得到该角度对应的索引;
步骤2.2:根据索引获得当前物体的角度在阴影图集中对应的坐标位置;
步骤2.3:在阴影图集中,将步骤2.2所获得的坐标位置上的数据提取出来,生成一个正方形的模型片,指定所述阴影贴图四个角的坐标,这样通过计算后生成的正方形的模型片就是物体影子的形状。
采用了此方案,通过已经记录不同角度阴影的形状可以得到物体当前影子,其中运行时影子只是一个阴影贴图,性能消耗很低,同时生成的影子可移动伴随物体动态的变化,同时在阴影的还原上方式更为简洁,它只与渲染效果有关系,不会影响其他的流程。
其中,所述步骤1.3中,所述旋转轴为N重轴时,旋转范围为360度除以N。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本方法使用了一种类似“欺骗”的方式,预先生成一种阴影贴图,叠加在游戏中的物体下,使看上去有阴影,同时拥有较低的性能消耗。
2.由于预先记录了物体不同角度的阴影,能保证生成的阴影与物体自然产生的阴影是一致的,具有较高的质量水平。
3.通过预先使用一种Planar Shaodw将物体投射到平面形成一个二维面,不断改变角度旋转二维面,记录不同角度时的阴影形状,通过这种生成图集的方式,降低了运行时的消耗,且方便通用,适用于任何物件。
4.通过已经记录不同角度阴影的形状可以得到物体当前影子,其中运行时影子只是一个片,性能消耗很低,同时生成的影子可移动伴随物体动态的变化,同时在阴影的还原上方式更为简洁,它只与渲染效果有关系,不会影响其他的流程。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
一种移动平台的非静态物体非实时阴影渲染的方法,所述移动平台的非静态物体非实时阴影渲染的方法包括以下步骤:
步骤1:首先对物体阴影的预先生成的阴影贴图,保存生成阴影图集并记录好数据:
步骤2:利用生成好的阴影图集,根据利用记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个正方形的模型片。
本方法使用了一种类似“欺骗”的方式,预先生成一种阴影贴图,叠加在游戏中的物体下,使看上去有阴影,同时拥有较低的性能消耗,由于预先记录了物体不同角度的阴影,能保证生成的阴影与物体自然产生的阴影是一致的,具有较高的质量水平。
优选的,所述步骤1包括:
步骤1.1:为了在游戏中生成阴影,我们首先需要得到物体产生的阴影的模样,利用Planar Shaodw算法,这种算法会将三维模型的所有顶点,沿光线方向投射到平面上,形成一个二维的阴影贴图。经过该算法处理,由三维模型形成的阴影贴图的形状刚好是物体经过投射变换的从某一光照方向产生的阴影,此时我们就用该阴影贴图来代替物体产生的阴影;
步骤1.2:为了在游戏运行还原阴影,我们需要将阴影贴图的形状记录下来,利用一个正交相机,从物体的正上方拍摄该二维面,只记录它rgba中的a值,这样内存大小更小,同时方便我们的还原操作,这样拍摄记录出来的图片是一张周围透明中间为黑色的,形状是物体产生的阴影的形状;
步骤1.3:为了还原时能准确的匹配,我们需要提前记录好这些数据,记录物体以穿过质心的竖直轴为旋转轴,假如物体以旋转轴旋转360度重合N次,则物体旋转360除以N,360度除以N每旋转10度所产生的阴影贴图,为了提高精度,可以将旋转角度减小。还原时会根据模型的旋转角度匹配记录的旋转值最接近的阴影贴图,虽然会有微小的误差,但观感上可以忽略。
步骤1.4:将得到的所有阴影贴图合并成一张大的阴影图集,并将每个角度的阴影贴图在阴影图集中对应的坐标位置序列化出来,生成一个索引表以便提取对应角度的阴影贴图的数据。
通过预先使用一种Planar Shaodw将物体投射到平面形成一个二维面,不断改变角度旋转二维面,记录不同角度时的阴影形状,通过这种生成图集的方式,降低了运行时的消耗,且方便通用,适用于任何物件。
优选的,所述步骤2包括:
步骤2.1:获取当前物体的局部旋转角度,计算得到对应的索引;
步骤2.2:根据索引获得当前角度物体影子在阴影图集中对应的坐标位置;
步骤2.3:然后获取当前物体的局部旋转角度,计算得到对应的索引,根据索引获得当前角度物体影子在阴影图集中对应的坐标位置,生成一个正方形的模型片,指定它四个角的阴影贴图坐标,由于生成的阴影图集只要记录alpa值,它代表的是颜色的透明,对生成的阴影图采样,凡是透明度小于图片的地方显示为半透明黑色,大于则为透明即非阴影的区域。这样通过计算后生成的正方形的模型片就是物体影子的形状。还原时生成的正方形模型片,这个模型片的坐标位置是投射阴影物体的坐标值,然后减去高度值的一半。这样该模型片的位置就在阴影投射体的下方。由于是正方形的模型片,那有4个顶点,我们只要指定这个4个点的纹理坐标即可,坐标是之前生成阴影贴图时记录过的。知道好坐标后,计算正方形内部的像素点是透明还是黑色半透明即可。
通过已经记录不同角度阴影的形状可以得到物体当前影子,其中运行时影子只是一个阴影贴图,性能消耗很低,同时生成的影子可移动伴随物体动态的变化,同时在阴影的还原上方式更为简洁,它只与渲染效果有关系,不会影响其他的流程。
这样采用相机拍摄到物体的影子形状,同时在阴影的还原上,此方式更为简洁,它只与渲染效果有关系,不会影响其他的流程,这套流程能够非常方便制作任何物体的阴影,并且使用方式也十分的简单,性能消耗也非常低,此方案整套流程是完整的,同时使用简单,与项目的其他逻辑不关联。
以上所述实施例仅表达了本申请的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请技术方案构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。
Claims (5)
1.一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:包括以下步骤:
步骤1:首先将物体各个角度的阴影制作成阴影贴图,将所有阴影贴图保存生成阴影图集,并记录好用于对应物体的角度和相应角度的阴影贴图在阴影图集中的位置的数据:
步骤2:利用生成好的阴影图集,根据记录好的数据,从阴影图集中选取合适的阴影贴图,在物体下生成一个平面正方形的模型片,用该阴影贴图作为该模型片的影子。
2.根据权利要求1所述的一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:所述步骤1包括:
步骤1.1:利用Planar Shaodw算法,这种算法会将三维模型的所有顶点,沿光线方向投射到平面上,形成一个二维的阴影贴图,此时我们就用该阴影贴图来代替物体产生的阴影;
步骤1.2:利用一个正交相机,从物体的正上方拍摄并记录该阴影贴图;
步骤1.3:记录物体以穿过质心的水平垂直轴为旋转轴,每旋转10度所产生的阴影贴图;
步骤1.4:将得到的所有阴影贴图合并成一张大的阴影图集,并将每个角度的阴影贴图在阴影图集中对应的坐标位置序列化出来,生成一个索引表以便提取对应角度的阴影贴图的数据。
3.根据权利要求1所述的一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:所述步骤1中,保存阴影贴图时,只记录阴影贴图的rgba中的a值。
4.根据权利要求1所述的一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于:所述步骤2包括:
步骤2.1:获取当前物体的局部旋转角度,计算得到该角度对应的索引;
步骤2.2:根据索引获得当前物体的角度在阴影图集中对应的坐标位置;
步骤2.3:在阴影图集中,将步骤2.2所获得的坐标位置上的数据提取出来,生成一个正方形的模型片,指定所述阴影贴图四个角的坐标,这样通过计算后生成的正方形的模型片就是物体影子的形状。
5.根据权利要求2所述的一种移动平台的非静态物体非实时阴影渲染的方法,其特征在于,所述步骤1.3中,所述旋转轴为N重轴时,旋转范围为360度除以N。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910191598.XA CN109949401A (zh) | 2019-03-14 | 2019-03-14 | 一种移动平台的非静态物体非实时阴影渲染的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910191598.XA CN109949401A (zh) | 2019-03-14 | 2019-03-14 | 一种移动平台的非静态物体非实时阴影渲染的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109949401A true CN109949401A (zh) | 2019-06-28 |
Family
ID=67009805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910191598.XA Pending CN109949401A (zh) | 2019-03-14 | 2019-03-14 | 一种移动平台的非静态物体非实时阴影渲染的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109949401A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110517346A (zh) * | 2019-08-30 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
CN111724313A (zh) * | 2020-04-30 | 2020-09-29 | 完美世界(北京)软件科技发展有限公司 | 一种阴影贴图生成方法与装置 |
CN111815748A (zh) * | 2020-07-08 | 2020-10-23 | 上海米哈游天命科技有限公司 | 一种动画处理方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186631A1 (en) * | 2003-03-17 | 2004-09-23 | Keizo Ohta | Storage medium storing a shadow volume generation program, game device, and shadow volume generation method |
CN101840566A (zh) * | 2010-04-16 | 2010-09-22 | 中山大学 | 一种基于gpu并行计算的实时阴影生成方法及*** |
CN108038897A (zh) * | 2017-12-06 | 2018-05-15 | 北京像素软件科技股份有限公司 | 阴影贴图生成方法及装置 |
-
2019
- 2019-03-14 CN CN201910191598.XA patent/CN109949401A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186631A1 (en) * | 2003-03-17 | 2004-09-23 | Keizo Ohta | Storage medium storing a shadow volume generation program, game device, and shadow volume generation method |
CN101840566A (zh) * | 2010-04-16 | 2010-09-22 | 中山大学 | 一种基于gpu并行计算的实时阴影生成方法及*** |
CN108038897A (zh) * | 2017-12-06 | 2018-05-15 | 北京像素软件科技股份有限公司 | 阴影贴图生成方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110517346A (zh) * | 2019-08-30 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
CN111724313A (zh) * | 2020-04-30 | 2020-09-29 | 完美世界(北京)软件科技发展有限公司 | 一种阴影贴图生成方法与装置 |
CN111724313B (zh) * | 2020-04-30 | 2023-08-01 | 完美世界(北京)软件科技发展有限公司 | 一种阴影贴图生成方法与装置 |
CN111815748A (zh) * | 2020-07-08 | 2020-10-23 | 上海米哈游天命科技有限公司 | 一种动画处理方法、装置、存储介质及电子设备 |
CN111815748B (zh) * | 2020-07-08 | 2024-03-19 | 上海米哈游天命科技有限公司 | 一种动画处理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102768765B (zh) | 实时点光源软阴影渲染方法 | |
Greene | Environment mapping and other applications of world projections | |
US6930681B2 (en) | System and method for registering multiple images with three-dimensional objects | |
CN109949401A (zh) | 一种移动平台的非静态物体非实时阴影渲染的方法 | |
CN108876926A (zh) | 一种全景场景中的导航方法及***、ar/vr客户端设备 | |
CN102289845B (zh) | 一种三维模型绘制方法以及装置 | |
CN105261059B (zh) | 一种基于在屏幕空间计算间接反射高光的渲染方法 | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
CN111968216A (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
CN107330964A (zh) | 一种复杂三维物体的显示方法及*** | |
CN107145224B (zh) | 基于三维球面泰勒展开的人眼视线跟踪方法和装置 | |
CN104318605B (zh) | 矢量实线与三维地形的并行贴合渲染方法 | |
CN104217461B (zh) | 一种基于深度图模拟实时凹凸效果的视差映射方法 | |
Menna et al. | \HIGH RESOLUTION 3D MODELING OF THE BEHAIM GLOBE | |
CN104299257A (zh) | 一种基于室外太阳光实现实时动态阴影的方法 | |
CN107610225A (zh) | 一种倾斜摄影实景三维模型单体化方法 | |
CN103617650A (zh) | 一种复杂三维地形显示方法 | |
CN116385619B (zh) | 对象模型渲染方法、装置、计算机设备和存储介质 | |
Yang et al. | Study on the virtual natural landscape walkthrough by using Unity 3D | |
Wang et al. | Research and design of digital museum based on virtual reality | |
Zheng et al. | A method of 3D measurement and reconstruction for cultural relics in museums | |
CN106157321A (zh) | 基于平面表面高动态范围图像的真实点光源位置测算方法 | |
CN109658494A (zh) | 一种在三维可视化图形中的阴影渲染方法 | |
CN112562057B (zh) | 三维重建***及方法 | |
CN112002019B (zh) | 一种基于mr混合现实的模拟人物阴影的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20230728 |