CN109035383B - 一种体积云的绘制方法、装置及计算机可读存储介质 - Google Patents
一种体积云的绘制方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109035383B CN109035383B CN201810667812.XA CN201810667812A CN109035383B CN 109035383 B CN109035383 B CN 109035383B CN 201810667812 A CN201810667812 A CN 201810667812A CN 109035383 B CN109035383 B CN 109035383B
- Authority
- CN
- China
- Prior art keywords
- volume cloud
- color
- scene
- cloud
- volume
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种体积云的绘制方法,包括以下步骤:1)进行场景信息的绘制,将场景中的虚拟物体绘制到显存中;2)生产天空背景色,并形成天空背景三维纹理;3)对场景深度贴图进行降采样操作;4)使用降采样后的深度贴图和体积云密度3D纹理,生成体积云颜色与权重数据;5)通过重投影操作,对生成的体积云颜色与权重数据进行数据校正;6)使用修正后体积云颜色、权重数据和场景颜色进行叠加混合,完成体积云绘制。本发明使用低分辨率的渲染目标纹理,同时在不额外增加显卡带宽和负载的情况下,有效的减少体积云绘制时产生的锯齿和闪烁。
Description
技术领域
本发明涉及游戏图像处理技术领域,特别涉及一种渲染仿真的体积云的绘制方法。
背景技术
目前三维游戏中渲染仿真的体积云效果,需要在显卡的显存中记录体积云的数据(比如存储体积云形态与密度的三维纹理)和屏幕空间的场景信息(比如场景深度)等,为了节省显卡的传输带宽,从而提高帧率,数据往往使用低分辨率的贴图进行存储(比如当前游戏窗口分辨率为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))
式中,prevDepth为像素在上一帧的深度值,currDepth为像素在当前帧的深度值,DepthFactor为配置的控制参数。
本发明使用低分辨率的渲染目标纹理,同时在不额外增加显卡带宽和负载的情况下,有效的减少体积云绘制时产生的锯齿和闪烁。改善玩家的视觉体验。
本发明具有以下有益效果:
(1)静态视觉效果明显改善。不透明物体穿插在体积云中时,不透明物体边缘没有明显的锯齿。
(2)动态视觉效果明显改善。不透明物体在体积云中运动时不会产生闪烁的现象。例如树叶在体积云中的晃动,不透明的树叶与体积云混合后的颜色变化连续,不会因为数据精度问题引起树叶颜色的突变。而传统的体积云绘制,会避免发生物体在云中运动的情况,游戏场景设计因此受到了制约。
(3)本发明使用的数据量较小,对GPU资源的占用也小,是一种性价比高的解决体积云绘制问题的方案。
同时,本发明在原有体积云绘制基础上加入重投影技术(Reprojection),在数据使用上的特点如下:
(1)校正体积云绘制的颜色时,需要增加显存,用于缓存体积云数据。在绘制下一帧数据时使用,由于缓存的贴图精度较低,所以对显存消耗较小。
(2)校正体积云绘制的颜色时,不需要从CPU端传递数据到GPU端,不会增加额外的带宽消耗。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的体积云的绘制方法流程图;
图2为根据本发明的重投影详细流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的体积云的绘制方法流程图,图2为根据本发明的重投影(Reprojection)的详细流程图。下面将参考图1和图2,对本发明的减少体积云的绘制方法进行详细描述。
首先,参考图1,在步骤101,游戏场景延迟渲染结束,开始绘制体积云。
在该步骤中,完成场景信息的绘制。将场景中的虚拟物体绘制到显存中,准备绘制体积云。体积云绘制需要使用到GBuffer中场景的颜色信息(SceneColor),深度信息(SceneDepth)等贴图(Texture)。
在步骤102,生产天空的背景色。
在该步骤中,将生成天空背景三维纹理。
在步骤103,获取场景深度信息,并降低分辨率,进行降采样(DownScaleDepth)操作。
在该步骤中,对场景深度贴图(SceneDepth)进行降采样,其中降采样后的贴图分辨率为原始分辨率的1/4。通过该步骤,将获得降采样后的场景深度。
在步骤104中,生成需要混合到图像上的云的颜色信息。
在该步骤中,使用降采样后的深度贴图(SceneDepth)和预制的体积云密度3D纹理,使用光线追踪等算法生成当前帧的体积云颜色与权重数据。
该步骤在GPU上的计算量较大,使用低分辨率的深度贴图(SceneDepth)可以有效节省GPU时间。但同时也会导致生成的体积云颜色和权重信息精度不足,这一问题将在采用步骤105-步骤107之后得以解决。
在步骤105中,备份当前帧的数据,在下一帧使用。
至此,在体积云绘制的基础部分(步骤101-步骤105),绘制生成了基础的体积云颜色、权重等数据。如果不对数据进行校正,直接与场景颜色进行混合,最终的图像会产生明显的锯齿,因为在生成体积云颜色等数据时为了加速计算,生成的数据精度较低(为当前视口分辨率的1/4),摄像机或者云中物体的移动时,易造成两帧绘制有较大的视觉差异(闪烁现象)。
在步骤106中,通过重投影(Reprojection)操作,结合上一帧的信息,重新计算新的云颜色。
本步骤为本发明加入的数据校正部分,主要目的是通过缓存上一帧体积云颜色等数据,还原当前像素点在上一帧绘制时颜色和权重信息(通过重投影操作还原),再与当前帧绘制的结果做线性插值,从而减少锯齿和闪烁现象的发生。
下面将参考图2,对步骤106进行详细描述。
在步骤201-202,针对屏幕每一个像素进行重投影(Reprojection),计算当前帧屏幕空间坐标对应的3D空间中的点,在上一帧的屏幕空间坐标。
已知当前像素的屏幕空间坐标X、当前帧投影矩阵A的逆矩阵A1、上一帧投影矩阵B,可以计算得到当前像素点在上一帧的屏幕空间坐标Y=X*A1*B。
在步骤203,获取上一帧的云的颜色值、权重值,根据深度差异进行线性差值。
通过202计算得到的屏幕空间坐标Y采样上一帧的体积云颜色与权重数据,得到上一帧该位置对应的云颜色与权重数据。
在步骤204,使用步骤202获得的数据与当前帧的数据做线性过渡,线性过渡使用的权重值为Similarity=Exp2(-DepthFactor*abs(prevDepth - currDepth)),式中,prevDepth代表像素在上一帧的深度值、currDepth代表像素在当前帧的深度值,DepthFactor为配置的控制参数。
在步骤204-205,生成修正的云颜色和权重信息。
现返回图1,在步骤107,使用修正后的云颜色与场景颜色进行叠加(混合),体积云绘制完成。
在该步骤中,使用线性过渡后的体积云颜色与权重数据与场景颜色(SceneColor)进行混合,输出图像。备份当前帧生成的体积云颜色与权重等数据,完成体积云的绘制流程。
实施例1
利用本发明的技术方案,在以下条件下,进行连续测试:
英伟达GTX960显卡,测试程序分辨率为1920*1080。
测试结果如下:
完整的体积云绘制过程在GPU上平均耗时是2.3ms,其中数据校正部分执行时间少于0.1ms。
本发明在原有通用的体积云绘制基础(步骤102-步骤104)上添加了校正数据的部分(步骤106-步骤107),使用重投影(Reprojection)技术对体积云绘制使用的数据进行校正,再使用校正后的云颜色贴图融合到场景颜色中,减少画面显示的锯齿和画面的闪烁,同时不会增加过多的消耗。
本发明与原有体积云绘制方式相比,数据校正部分只缓存了上一帧的低分辨率的贴图数据,使用少量的显存和GPU计算时间,较好解决了体积云绘制时发生的锯齿和闪烁的问题。
本发明具有通用性,可以进行替换或者修改通用的体积云绘制的方案(体积云绘制基础部分),然后只需要在体积云颜色与场景颜色(SceneColor)混合前,对生成的体积云颜色使用本发明进行校正,可以达到相同的效果。
本发明提供的体积云的绘制装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,计算机程序被处理器执行时实现本发明提供的体积云的绘制方法。
本发明提供的计算机可读存储介质,可位于一个或者多个体积云的绘制装置,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现本发明提供的体积云的绘制方法。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种体积云的绘制方法,其特征在于,包括以下步骤:
1)进行场景信息的绘制,将场景中的虚拟物体绘制到显存中;
2)生产天空背景色,并形成天空背景三维纹理;
3)对场景深度贴图进行降采样操作;
4)使用降采样后的深度贴图和体积云密度3D纹理,生成体积云颜色与权重数据;
5)通过重投影操作,对生成的体积云颜色与权重数据进行数据校正;
6)使用修正后体积云的颜色、权重数据和场景颜色进行叠加混合,完成体积云绘制;
所述步骤5)进一步包括,针对屏幕每一个像素进行重投影,计算当前帧屏幕空间坐标X对应的3D空间中的点在上一帧的屏幕空间坐标Y,计算公式为:
Y=X*A1*B
其中,X为当前像素的屏幕空间坐标,A为当前帧投影矩阵,A1为当前帧投影矩阵A的逆矩阵,B为上一帧投影矩阵;
通过所述屏幕空间坐标Y采样上一帧的体积云颜色与权重数据,得到上一帧位置对应的体积云颜色与权重数据;
将所述体积云颜色与权重数据与当前帧的数据做线性过渡,使用的权重值的计算公式为:
Similarity=Exp2(-DepthFactor*abs(prevDepth - currDepth))
式中,prevDepth为像素在上一帧的深度值,currDepth为像素在当前帧的深度值,DepthFactor为配置的控制参数。
2.根据权利要求1所述的体积云的绘制方法,其特征在于,所述步骤3)是将需要的降采样的场景深度贴图分辨率降为原始分辨率的1/4。
3.根据权利要求1所述的体积云的绘制方法,其特征在于,在所述步骤4)是使用降采样后的场景深度贴图和体积云密度3D纹理,采用光线追踪算法生成当前帧的体积云的颜色与权重数据。
4.一种体积云的绘制装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3任一项所述方法的步骤。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-3任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810667812.XA CN109035383B (zh) | 2018-06-26 | 2018-06-26 | 一种体积云的绘制方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810667812.XA CN109035383B (zh) | 2018-06-26 | 2018-06-26 | 一种体积云的绘制方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109035383A CN109035383A (zh) | 2018-12-18 |
CN109035383B true CN109035383B (zh) | 2022-07-15 |
Family
ID=64610511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810667812.XA Active CN109035383B (zh) | 2018-06-26 | 2018-06-26 | 一种体积云的绘制方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109035383B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109887078B (zh) * | 2019-03-12 | 2023-04-07 | 阿波罗智联(北京)科技有限公司 | 天空绘制方法、装置、设备和介质 |
CN111145326B (zh) * | 2019-12-26 | 2023-12-19 | 网易(杭州)网络有限公司 | 三维虚拟云模型的处理方法、存储介质、处理器及电子装置 |
CN111275607B (zh) * | 2020-01-17 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
CN111951362A (zh) * | 2020-07-01 | 2020-11-17 | 北京领为军融科技有限公司 | 一种基于三维噪声图的三维体积云渲染方法及系统 |
CN111968214B (zh) * | 2020-07-29 | 2024-04-19 | 完美世界(北京)软件科技发展有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
CN112465941B (zh) * | 2020-12-02 | 2023-04-28 | 成都完美时空网络技术有限公司 | 一种体积云处理方法、装置、电子设备及存储介质 |
CN113205583A (zh) * | 2021-04-28 | 2021-08-03 | 北京字跳网络技术有限公司 | 场景渲染方法、装置、电子设备及可读存储介质 |
CN113313798B (zh) * | 2021-06-23 | 2022-05-03 | 完美世界(北京)软件科技发展有限公司 | 云图的制作方法及装置、存储介质、计算机设备 |
CN113256755B (zh) * | 2021-07-19 | 2021-10-12 | 广州中望龙腾软件股份有限公司 | 图像的渲染方法、智能终端以及存储装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104091363A (zh) * | 2014-07-09 | 2014-10-08 | 无锡梵天信息技术股份有限公司 | 一种基于屏幕空间实时的体积云计算方法 |
-
2018
- 2018-06-26 CN CN201810667812.XA patent/CN109035383B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109035383A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109035383B (zh) | 一种体积云的绘制方法、装置及计算机可读存储介质 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US11270492B2 (en) | Graphics processing systems | |
US11348308B2 (en) | Hybrid frustum traced shadows systems and methods | |
US7173631B2 (en) | Flexible antialiasing in embedded devices | |
CN105487848B (zh) | 一种3d应用的显示刷新方法及系统 | |
US11417065B2 (en) | Methods and systems for reprojection in augmented-reality displays | |
KR102247565B1 (ko) | 렌더링 방법 및 장치 | |
US12020442B2 (en) | Graphics processing systems | |
KR102442488B1 (ko) | 그래픽 처리 시스템 및 그래픽 프로세서 | |
GB2546720B (en) | Method of and apparatus for graphics processing | |
CN112184575A (zh) | 图像渲染的方法和装置 | |
CN112652046B (zh) | 游戏画面的生成方法、装置、设备及存储介质 | |
US9652886B2 (en) | Rendering processing device and rendering processing method using interpolation rendering result | |
KR20160004096A (ko) | 밉맵 생성 방법 및 장치 | |
JP7460641B2 (ja) | 光強度画像を生成するための装置及び方法 | |
US10388060B2 (en) | System and method for multi-view rendering | |
US11887245B2 (en) | Techniques for rendering signed distance functions | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
CN114241101A (zh) | 三维场景渲染方法、系统、装置及存储介质 | |
JP2023538828A (ja) | 距離場グラフィックスレンダリングのためのアンチエイリアシング | |
US20210225049A1 (en) | Perceptual Rasterization for Image Rendering | |
CN111951361B (zh) | 一种实现ar图像显示效果的方法和装置 | |
JP2002369076A (ja) | 3次元特殊効果装置 | |
Kolic et al. | Camera space shadow maps for large virtual environments |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |