[发明专利]一种体积云的绘制方法、装置及计算机可读存储介质有效
申请号: | 201810667812.X | 申请日: | 2018-06-26 |
公开(公告)号: | CN109035383B | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 吕文伟;许晨 | 申请(专利权)人: | 苏州蜗牛数字科技股份有限公司 |
主分类号: | G06T15/50 | 分类号: | G06T15/50;G06T15/00;G06T17/00 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
地址: | 215000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 体积 绘制 方法 装置 计算机 可读 存储 介质 | ||
一种体积云的绘制方法,包括以下步骤:1)进行场景信息的绘制,将场景中的虚拟物体绘制到显存中;2)生产天空背景色,并形成天空背景三维纹理;3)对场景深度贴图进行降采样操作;4)使用降采样后的深度贴图和体积云密度3D纹理,生成体积云颜色与权重数据;5)通过重投影操作,对生成的体积云颜色与权重数据进行数据校正;6)使用修正后体积云颜色、权重数据和场景颜色进行叠加混合,完成体积云绘制。本发明使用低分辨率的渲染目标纹理,同时在不额外增加显卡带宽和负载的情况下,有效的减少体积云绘制时产生的锯齿和闪烁。
技术领域
本发明涉及游戏图像处理技术领域,特别涉及一种渲染仿真的体积云的绘制方法。
背景技术
目前三维游戏中渲染仿真的体积云效果,需要在显卡的显存中记录体积云的数据(比如存储体积云形态与密度的三维纹理)和屏幕空间的场景信息(比如场景深度)等,为了节省显卡的传输带宽,从而提高帧率,数据往往使用低分辨率的贴图进行存储(比如当前游戏窗口分辨率为1024*768,云的数据只有256*192)。但是,当使用低分辨率的贴图进行绘制处理,如果不透明物体在云雾穿梭移动时,不透明物体与体积云的相交处容易形成比较明显的锯齿,导致产生视觉误差。因此,目前亟需一种适用于低分辨率数据的,能够减少体积云绘制时产生的锯齿和闪烁问题的方案。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种体积云的绘制方法、装置及计算机可读存储介质。在普通的体积云绘制的基础上,使用重投影(Reprojection)技术对体积云绘制使用的数据进行校正,再使用校正后的云颜色贴图融合到场景颜色中,减少画面显示的锯齿和画面的闪烁,同时不会增加过多的消耗。
为实现上述目的,本发明提供的体积云的绘制方法,包括以下步骤:
1)进行场景信息的绘制,将场景中的虚拟物体绘制到显存中;
2)生产天空背景色,并形成天空背景三维纹理;
3)对场景深度贴图进行降采样操作;
4)使用降采样后的深度贴图和体积云密度3D纹理,生成体积云颜色与权重数据;
5)通过重投影操作,对生成的体积云颜色与权重数据进行数据校正;
6)使用修正后体积云颜色、权重数据和场景颜色进行叠加混合,完成体积云绘制。
进一步地,所述步骤3)是将需要的降采样的场景深度贴图分辨率降为原始分辨率的1/4。
进一步地,在所述步骤4)是使用降采样后的场景深度贴图和体积云密度3D纹理,采用光线追踪算法生成当前帧的体积云的颜色与权重数据。
进一步地,所述步骤5)进一步包括以下步骤:
计算当前帧屏幕空间坐标X对应的3D空间中的点在上一帧的屏幕空间坐标Y;
通过所述屏幕空间坐标Y采样上一帧的体积云颜色与权重数据,得到上一帧该位置对应的体积云颜色与权重数据;
将所述体积云颜色与权重数据与当前帧的数据做线性过渡。
进一步地,所述计算当前帧屏幕空间坐标X对应的3D空间中的点在上一帧的屏幕空间坐标Y,计算公式为:
Y=X*A1*B
其中,X为当前像素的屏幕空间坐标,A为当前帧投影矩阵,A1为当前帧投影矩阵A的逆矩阵,B为上一帧投影矩阵。
更进一步地,所述将所述体积云颜色与权重数据与当前帧的数据做线性过渡的步骤,使用的权重值的计算公式为:
Similarity=Exp2(-DepthFactor*abs(prevDepth - currDepth))
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州蜗牛数字科技股份有限公司,未经苏州蜗牛数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810667812.X/2.html,转载请声明来源钻瓜专利网。