CN112419147A - 图像渲染方法及装置 - Google Patents
图像渲染方法及装置 Download PDFInfo
- Publication number
- CN112419147A CN112419147A CN202010290188.3A CN202010290188A CN112419147A CN 112419147 A CN112419147 A CN 112419147A CN 202010290188 A CN202010290188 A CN 202010290188A CN 112419147 A CN112419147 A CN 112419147A
- Authority
- CN
- China
- Prior art keywords
- picture
- frame
- rendering
- quarter
- brightness
- 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.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 288
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000003068 static effect Effects 0.000 claims abstract description 62
- 238000004364 calculation method Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000000694 effects Effects 0.000 claims abstract description 46
- 238000010586 diagram Methods 0.000 claims description 69
- 238000006073 displacement reaction Methods 0.000 claims description 40
- 235000019557 luminance Nutrition 0.000 claims description 28
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 10
- 230000007797 corrosion Effects 0.000 claims description 9
- 238000005260 corrosion Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 16
- 238000012805 post-processing Methods 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003628 erosive effect Effects 0.000 description 3
- 230000007123 defense Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052755 nonmetal Inorganic materials 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4023—Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种图像渲染方法,该方法包括:获取当前画面,并对当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;将四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;将当前画面的画面帧像素分别和四周像素进行处理,得到动态图,动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;根据静态图、动态图和差异图进行插值计算,并将插值计算结果输出。本申请能够极大地提高渲染效率,提高GPU的处理性能。
Description
技术领域
本申请涉及图像处理技术领域,具体涉及一种图像渲染方法及装置。
背景技术
在计算机游戏中,经常需要对游戏画面进行渲染。在渲染方面,渲染性能的开销一般由以下内容组成:渲染深度、渲染不透明物体、渲染透明物体、抗锯齿以及后处理。其中:渲染深度、渲染透明物体、抗锯齿和后处理,都与屏幕分辨率有密切的关系,几乎成等比关系。屏幕分辨率越高,性能开销越大。现有的渲染方法,虽然计算速度快,但其计算过程依赖于强大的中央处理器(Central Processing Unit,CPU)和图形处理器(GraphicsProcessing Unit,GPU)的处理能力。随着计算机技术的迅猛发展,手机屏幕分辨率越来越高,如何提高GPU的处理性能,是本领域技术人员亟需解决的问题。
发明内容
本申请的目的在于提供一种图像渲染方法、装置、计算机设备及可读存储介质,用于解决现有渲染技术中,GPU处理性能低的缺陷。
根据本申请的一个方面,提供了一种图像渲染方法,该方法包括如下步骤:
获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;
将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;
将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;
根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;
根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。
可选地,所述对所述当前画面的四分之一画面帧进行渲染,包括:
获取所述当前画面帧的像素坐标;
根据所述像素坐标确定每个像素的横坐标和纵坐标的奇偶性;
根据所述横坐标和所述纵坐标的奇偶性,将所述当前画面帧的像素划分为四组;
按照预设的规则从四组像素中选取其中一组像素进行渲染。
可选地,所述将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,包括:
根据所述四分之一渲染结果和所述前面3帧画面的渲染结果所在的像素组,将所述四分之一渲染结果和所述前面3帧画面的渲染结果写入至所述图片对应的像素组中。
可选地,所述将所述当前画面的画面帧和四周画面进行处理,包括:
对所述画面帧进行模糊处理,得到第一初始画面帧;
根据所述画面帧的位置信息对所述第一初始画面帧进行偏移校正,得到第二初始画面帧;
将所述第二初始画面帧与前一画面帧的动态图以50%的方式混合,得到所述画面帧的动态图。
可选地,所述对所述画面帧进行模糊处理,得到第一初始画面帧,包括:
遍历所述画面帧的所有像素点,并获取每个像素点的亮度值;
将每个像素点的亮度值与四周像素点的亮度值进行比较;
当所述四周像素的最小亮度值低于所述像素点的亮度值时,则将所述最小亮度值对应的像素代替所述像素;
当所述四周像素的最小亮度值大于所述像素点的亮度值时,则所述像素保持不动。
可选地,所述根据所述画面帧的位置信息对所述第一画面帧进行偏移校正,包括:
获取所述画面帧的位置信息;
将所述位置信息减去摄像机投影矩阵的偏移值。
可选地,所述方法还包括:
根据用户输入的设置指令设置位移阈值和旋转阈值;
获取所述摄像机当前位移值和当前旋转值;
判断所述当前位移值是否超过所述位移阈值以及所述当前旋转阈值是否超过所述旋转阈值;
当所述当前位移值超过所述位移阈值或所述当前旋转值超过所述旋转阈值时,直接渲染全分辨率或者将摄像机投影矩阵设置为0,并进行半分辨率渲染,得到所述动态图。
可选地,所述根据当前画面的画面帧亮度、上一画面的四分之一画面帧亮度和前面第四画面的四分之一画面帧亮度进行计算,得到差异图,包括:
将所述当前画面的画面帧亮度与上个一画面的四分之一画面帧亮度进行亮度差异计算,得到第一差异图;
将所述当前画面的画面帧亮度与前面第四个画面的四分之一画面帧亮度进行亮度差异计算,得到第二差异图;
将所述第一差异图和所述第二差异图分别进行腐蚀处理,得到第三差异图和第四差异图;
将所述第三差异图和所述第四差异图相加得到第五差异图;
将所述第五差异图进行膨胀处理,得到所述差异图。
可选地,所述亮度差异的计算公式为:
D=abs(Lc-Lp),
其中,Lc表示当前画面的画面帧亮度,Lp表示上一个画面的四分之一画面帧亮度或者前面第四个画面的四分之一画面帧亮度,D表示亮度差异,abs函数表示两个亮度之间差值的绝对值。
可选地,所述插值的计算公式为:
Lerp(a,b,t)=a+(b-a)*t,
其中,a表示静止图,b表示运动图,t表示差异图。
为了实现上述目的,本申请还提供一种图像渲染装置,包括:
渲染模块,用于获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;
填充模块,用于将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;
处理模块,用于当所述当前画面处于完全运动状态时,将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;
亮度计算模块,用于根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;
插值计算模块,用于根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。
为了实现上述目的,本申请还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的图像渲染方法的步骤。
为了实现上述目的,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的图像渲染方法的步骤。
本申请提供的图像渲染方法、计算机设备及可读存储介质,首先,通过渲染每个画面的四分之一,然后,假设画面处于完全静止状态和完全运动状态,分别对渲染后的四分之一画面帧处理,得到对应的静态图和动态图,并根据当前画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度计算,得到差异图,最后,根据静态图、动态图和差异图进行插值计算,并将计算结果输出,进而还原出高清画面。由于每次渲染的内容减少了四分之三,极大地提高了渲染效率,从而提高了GPU的处理性能。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为菲涅尔效果图;
图2为本公开实施例提供的图像渲染方法的一种可选的流程示意图;
图3为所述图2中步骤S100的一种可选的具体流程示意图;
图4为当前画面像素拆分成四个像素组示意图,其中图4(a)为当前画面像素图,图4(b)为拆分后的四个像素组图;
图5为所述图2中步骤S102的一种可选的具体流程示意图;
图6为4帧四分之一画面帧渲染效果填充效果图;
图7为原始分辨率的渲染效果图;
图8为所述图2中步骤S104的一种可选的具体流程示意图;
图9为所述图8中步骤S400的一种可选的具体流程示意图;
图10为所述图8中步骤S402的一种可选的具体流程示意图;
图11为本公开实施例提供的图像渲染方法的另一种可选的流程示意图;
图12为所述图2中步骤S106的一种可选的具体流程示意图;
图13为示例性的第一差异图;
图14为示例性的第二差异图;
图15为示例性的第三差异图;
图16为示例性的第四差异图;
图17为示例性的第五差异图;
图18为本公开实施例提供的渲染方法一示例性的渲染效果图;
图19为正常分辨率下一示例性的渲染效果图;
图20为四分之一分辨率下一示例性的渲染效果图;
图21为示例性的插值计算过程中输入输出图;
图22为本公开实施例提供的图像渲染系统的一种可选的程序模块示意图;
图23本公开实施例提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
名词解释:
半分辨率渲染:宽为1/2屏幕宽度,高度不变的渲染。
1/4分辨率渲染:宽为1/2屏幕宽度,高为1/2屏幕高度的渲染。下面简称为四分之一渲染。
菲涅尔:非金属粗糙物体四周边缘会出现的反射环境的现象。如图1为菲涅尔效果图。
抗锯齿:英文全称为anti-aliasing,简称AA。由于在3D图像中,受分辨的制约,物体边缘总会呈现三角形的锯齿,而抗锯齿就是指对图像边缘进行柔化处理,使图像边缘看起来更平滑,更接近实物的物体。它是提高画质以使之柔和的一种方法。
快速接近抗锯齿:英文全称为Fast Approximate Anti-Aliasing,简称FXAA。一种后处理抗锯齿方案,单纯的后期处理像素着色器。
时间性抗锯齿:英文全称为Temporal Anti-Aliasing,简称TAA,是一种以全分辨率持续渲染若干帧画面进行的抗锯齿算法,对帧之间的整个场景进行抖动采样,以减少闪烁情形。
多重采样抗锯齿:英文全称为MultiSampling Anti-Aliasing,简称MSAA,是一种对渲染物体的边缘做多次渲染求平均值来减少锯齿的算法。
腐蚀:使用算法将图像的边缘腐蚀掉,作用在于将目标的边缘的“毛刺”踢除掉。
膨胀:使用算法将图像的边缘扩大些,作用在于将目标的边缘或者是内部的坑填掉。使用相同次数的腐蚀与膨胀,可以使目标表面更平滑。
下面结合附图对本申请提供的图像渲染方法进行说明。
图2为本申请图像渲染方法的一种可选的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定,下面以计算机设备为执行主体进行示例性描述。所述计算机设备可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便携式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
如图2所示,该方法具体包括以下步骤:
步骤S100:获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果。
需要说明的是,通过每次渲染四分之一的画面,每次渲染的内容可以减少四分之三,可以极大地提高渲染效率。
在示例性的实施例中,如图3所示,所述步骤S100还可以包括步骤S200~S206:
步骤S200:获取所述当前画面帧的像素坐标。所述像素坐标包括横坐标和纵坐标。
步骤S202:根据所述像素坐标确定每个像素的横坐标和纵坐标的奇偶性。
步骤S204:根据所述横坐标和所述纵坐标的奇偶性,将所述当前画面帧的像素划分为四组。
具体地,通过将像素根据坐标的奇偶性划分,得到在当前画面中均匀分布的像素点组成的画面帧。示例性地,根据横坐标和纵坐标的奇偶性,将当前四分之一的画面帧的像素划分为坐标分别为:(奇,奇),(奇,偶),(偶,奇)以及(偶,偶)这四组像素。每组像素标记有对应的颜色,例如:(奇,奇)这组像素标记为蓝色,(奇,偶)这组像素标记为黄色,(偶,奇)这组像素标记为绿色,(偶,偶)这组像素标记为红色。请参阅图4,图4为当前画面像素拆分成四个像素组示意图,其中图4(a)为当前画面像素图,图4(b)为图拆分后的四个像素组图。
步骤S206:按照预设的规则从四组像素中选取其中一组像素进行渲染。
具体地,若当前画面为第一帧画面,则从四组像素中选取横纵坐标均为偶数的那组像素进行渲染,也即对坐标为(偶,偶)的所有像素进行渲染。若当前画面为第二帧画面,则从剩下的三组像素中选取横坐标为奇数,纵坐标为偶数的那组像素进行渲染,也即对坐标为(奇,偶)的所有像素进行渲染。若当前画面为第三帧画面,则从剩下的两组像素中选取横坐标为奇数,纵坐标也为奇数的那组像素进行渲染,也即对坐标为(奇,奇)的所有像素进行渲染。若当前画面为第四帧画面,则将剩下的最后一组像素进行渲染,也即对坐标为(偶,奇)的所有像素进行渲染。若当前画面为第五帧画面,则选取与第一帧画面相同的一组像素进行渲染,也即对坐标为(偶,偶)的所有像素进行渲染。若当前画面为第六帧画面,则选取与第二帧画面相同的一组像素进行渲染,也即对坐标为(奇,偶)的所有像素进行渲染。…依此,每连续的四帧画面按照坐标为(偶,偶),(奇,偶),(奇,奇)和(偶,奇)的顺序循环渲染。
示例性地,若坐标为(偶,偶)的所有像素标记为红色,坐标为(奇,偶)的所有像素标记为黄色,坐标为(奇,奇)的所有像素标记为蓝色,坐标为(偶,奇)的所有像素标记为绿色,则第一帧只渲染所有红色标记的像素,第二帧只渲染所有黄色标记的像素,第三帧只渲染所有蓝色标记的像素,第四帧只渲染所有绿色标记的像素,第五帧只渲染所有红色标记的像素,第六帧只渲染所有黄色标记的像素。具体的渲染方法可以为每帧偏移摄像机投影矩阵渲染。
在实际渲染过程中,屏幕左下角的第一个像素坐标定义为(0,0),属于坐标为(偶,偶)像素。
上述步骤通过将画面根据像素坐标的奇偶性拆分,每帧只渲染其中的一组像素,有助于提高渲染效率。
在实际渲染过程中,在渲染完当前画面的四分之一画面帧后,还按照如下渲染顺序进行渲染:渲染深度、渲染不透明物体(从前往后)+MSAA,渲染天空盒,渲染半透明物体(从后往前或随机,视GPU硬件而定)+MSAA,后处理(PostProcess)。当后处理完成之后,再执行后续实施例的内容。需要说明的是,通过该渲染顺序,使得后处理过程也处于四分之一分辨率下执行,极大地提高了渲染效率。
步骤S102:将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果。
具体地,假设当前画面处于完全静止状态,表示当前画面为静态图,此时,前面渲染的3个四分之一的画面帧与当前画面的四分之一画面帧组成一张全分辨率的完整画面,直接将当前画面的四分之一画面帧的渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,即可得到高清的静态图。需要说明的是,所述完全静止状态指的是当前画面的所有像素点均处于静止的状态。
在示例性的实施例中,如图5所示,所述步骤S102包括步骤S300:
根据所述四分之一渲染结果和所述前面3帧画面的渲染结果所在的像素组,将所述四分之一渲染结果和所述前面3帧画面的渲染结果写入至所述图片对应的像素组中。
具体地,若四分之一渲染结果是通过选取黄色标记的像素组渲染成的,前面3帧画面的渲染结果依次是通过选取红色、蓝色和绿色标记的像素组渲染成的,则将四分之一渲染结果写入全分辨率的图片中黄色标记的像素组,将前面3帧画面的渲染结果依次写入全分辨的图片中红色、蓝色和绿色标记的像素组中。通过该步骤可以在提高渲染效率的同时,得到高清的静态图。4帧四分之一画面帧渲染效果填充效果图请参阅图6,图7为原始分辨率的渲染效果图。经过对比图6和图7,两者的渲染效果没有明显区别。
步骤S104:将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果。
具体地,假设画面完全在运动,那么前面3帧画面的内容不再具有可信性。如果将前面3帧画面的渲染结果和当前画面帧填充至全分辨率的图形中,会形成残影(Ghosting)。因此,此时需要将当前画面的画面帧中所有像素与四周像素进行融合处理,得到动态图。需要说明的是,所述运动状态指的是画面中的所有像素点均处于运动的状态。
在示例性的实施例中,如图8所示,所述步骤S104包括步骤S400~S404:
步骤S400:对所述画面帧进行模糊处理,得到第一初始画面帧。
需要说明的是,大部分情况下,因为物体边缘的菲涅尔效果导致出现画面闪点。当物体表面与视角接近垂直时,菲涅尔亮度越高,面积越小。在半分辨率下,因为屏幕光栅化的原因,可能随机把菲涅尔放入任意一组屏幕像素,即可能出现在连续4帧画面中的任意一帧,而另外3帧没有出现菲涅尔效果。通过对画面帧进行模糊处理,进而可以对抗闪点。
在示例性的实施例中,如图9所示,所述步骤S400包括步骤S500~S506:
步骤S500:遍历所述画面帧的所有像素点,并获取每个像素点的亮度值。
步骤S502:将每个像素点的亮度值与四周像素点的亮度值进行比较。
步骤S504:当所述四周像素的最小亮度值低于所述像素点的亮度值时,则将所述最小亮度值对应的像素代替所述像素。
步骤S506:当所述四周像素的最小亮度值大于所述像素点的亮度值时,则所述像素保持不动。
具体地,将每个像素点的亮度值与四周像素点的亮度值进行比较,将这5个像素点中亮度值最小的像素代替该像素。例如:中心像素与上下左右相邻四个像素的亮度值进行比较,若上下左右相邻像素中最小的亮度值低于中心像素的亮度值,则将该最小亮度值对应的像素代替中心像素;若上下左右相邻像素中最小的亮度值也高于中心像素的亮度值,则保持中心像素不变。通过该步骤,降低该画面帧的像素亮度,进而实现模糊画面的目的,有效地对抗由于菲涅尔效果导致的画面闪点。
步骤S402:根据所述画面帧的位置信息对所述第一初始画面帧进行偏移校正,得到第二初始画面帧。
由于摄像机的投影矩阵在不断地运动,所以每帧画面与上一帧画面始终偏移一个像素,此时需要对模糊处理后得到的第一初始画面帧进行偏移校正,得到第二初始画面帧。
在示例性的实施例中,如图10所示,所述步骤S402包括步骤S600~S602:
步骤S600:获取所述画面帧的位置信息。
步骤S602:将所述位置信息减去摄像机投影矩阵的偏移值。
步骤S404:将所述第二初始画面帧与前一画面帧的动态图以50%的方式混合,得到所述画面帧的动态图。
具体地,每个画面帧的动态图均是由当前的初始画面帧与上一画面帧的动态图以50%的方式混合得到。例如:第一帧由于没有上一画面帧,故第一帧的最终动态图就是第一帧的动态图;第二帧之前为第一帧,故第二帧最终的动态图为:第一帧的动态图的50%+第二帧的50%;第三帧之前有第二帧和第三帧,故第三帧最终的动态图为:第一帧的25%+第二帧的25%+第三帧的50%;依此,第四帧最终的动态图为:第一帧的12.5%+第二帧的12.5%+第三帧的25%+第四帧的50%。
需要说明的是,当前帧的百分比越高,抖动越明显,拖尾现象越不明显;反之,当前帧的百分比越低,抖动越不明显,但拖尾越明显,50%是实验得出的较理想数值。通过上述步骤可以明显缓解抖动现象。
在示例性的实施例中,如图11所示,所述方法还可以包括步骤S700~S706:
步骤S700:根据用户输入的设置指令设置位移阈值和旋转阈值。
步骤S702:获取所述摄像机当前位移值和当前旋转值。
步骤S704:判断所述当前位移值是否超过所述位移阈值以及所述当前旋转阈值是否超过所述旋转阈值。
步骤S706:当所述当前位移值超过所述位移阈值或所述当前旋转值超过所述旋转阈值时,直接渲染全分辨率或者将摄像机投影矩阵设置为0,并进行半分辨率渲染,得到所述动态图。
具体地,在摄像机开始渲染之前,需要设定位移阈值和旋转阈值,渲染时,通过摄像机的当前位移值与设定的位移阈值进行比较,同时将摄像机的当前旋转值与设定的旋转阈值进行比较,然后根据比较结果确定渲染的方式。如果摄像机当前位移值超过位移阈值或当前旋转值超过旋转阈值,则表示之前的画面的所有像素均失去可信性,此时,直接进行全分辨率渲染或半分辨率渲染,得到的渲染结果即为动态图。通过该步骤可以进一步地提高渲染的精确度。
步骤S106:根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图。
需要说明的是,通过根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行亮度差异计算,根据计算结果得到的差异图确定画面中哪个位置使用静态图,哪个位置使用动态图。例如:差异图中黑色部分表示结果使用静态图,白色部分表示结果使用动态图。该步骤实现了画面的运动检测,由于该运动检测在渲染之后,且通过画面帧亮度进行判断,使得运动检测的速度更快。
在示例性的实施例中,如图12所示,所述步骤S106包括步骤S800~S808。
步骤S800:将所述当前画面的画面帧亮度与上个一画面的四分之一画面帧亮度进行亮度差异计算,得到第一差异图。请参阅图13所示,为示例性的第一差异图。
步骤S802:将所述当前画面的画面帧亮度与前面第四个画面的四分之一画面帧亮度进行亮度差异计算,得到第二差异图。请参阅图14所示,为示例性的第二差异图。
其中,亮度差异的计算公式为:
D=abs(Lc-Lp),
其中,Lc表示当前画面的画面帧亮度,Lp表示上一个画面的四分之一画面帧亮度或者前面第四个画面的四分之一画面帧亮度,D表示亮度差异,abs函数表示两个亮度之间差值的绝对值。
步骤S804:将所述第一差异图和所述第二差异图分别进行腐蚀处理,得到第三差异图和第四差异图。请参阅15和图16所示,图15为示例性的第三差异图,图16为示例性的第四差异图。
需要说明的是,所述第一差异图和所述第二差异图由于投影矩阵的偏移,使得画面中出现闪点,此时需要进行腐蚀处理。
步骤S806:将所述第三差异图和所述第四差异图相加得到第五差异图。请参阅图17,为示例性的第五差异图。
步骤S808:将所述第五差异图进行膨胀处理,得到所述差异图。
上述步骤通过运用腐蚀膨胀算法,可以剔除掉孤立的像素,即去除噪音(也即画面中出现的闪点)。
步骤S108:根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。请参阅图18,为本公开实施例提供的渲染方法一示例性的渲染效果图。图19为正常分辨率下一示例性的渲染效果图。图20为四分之一分辨率下一示例性的渲染效果图。
所述插值的计算公式为:
Lerp(a,b,t)=a+(b-a)*t,
其中,a表示静止图,b表示运动图,t表示差异图,Lerp(a,b,t)表示根据差异图的黑白分布,在静止图和运动图之间插值。
示例性地,差异图为一张黑白图,差异图中白色部分,则返回运动图,差异图为黑色部分,返回静止图。请参阅图21所示,为插值计算过程中输入输出图,其中图21(a)为示例性的插值计算输入的差异图,图21(b)为示例性的插值计算输入的动态图,图21(c)为示例性的插值计算输入的静态图,图21(d)为插值计算输出图。图21(a)的差异图表示该画面内容中仅有战士在运动,其他均为静止状态。经过插值处理后,结果输出为:战士边缘模糊,场景是高清的。
在一示例性的实施例中,若摄像机当前位移值超过位移阈值或当前旋转值超过旋转阈值,此时得到的差异图为纯白,表示当前画面处于完全运动的状态,不用进行插值计算,直接输出上述的全分辨率渲染或者半分辨率渲染得到的动态图。
需要说明的是,在进行渲染时,在执行本申请实施例之前,若执行任何时间性渲染,例如:TAA,运动模糊(MotionBlur),FXAA等,由于时间性渲染会混合上一帧内容的渲染,会造成画面模糊或出现锯齿。故,在实际渲染过程中,在执行本方案之前,不能执行任何时间性渲染。若执行时间性渲染,则将该时间性渲染置于本申请实施例之后。当然,在执行本申请实施例之前,可以开启MSAA以提升渲染效果。
需要指出的是,本申请实施例提供的图像渲染方法在兼容性方面:
渲染路径:兼容Forward Rendering和Deffererd Rendering。
渲染管线:兼容标准渲染管线,lwrp,hdrp,urp。
设备:不需要特定显卡,手机设备也可以运行,不像TAA需要设备支持MotionVector计算。
适用的游戏类型:
摄像机位移不频繁的游戏,如塔防,经营,卡牌,战棋,格斗,RPG。
本申请实施例提供的图像渲染方法,首先,通过渲染每个画面的四分之一,然后,假设画面处于完全静止状态和完全运动状态,分别对渲染后的四分之一画面帧处理,得到对应的静态图和动态图,并根据当前画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度计算,得到差异图,最后,根据静态图、动态图和差异图进行插值计算,并将插值计算结果输出,进而还原出高清画面。由于每次渲染的内容减少了四分之三,极大地提高了渲染效率,从而提高了GPU的处理性能。
基于上述实施例中提供的图像渲染方法,本实施例中提供一种图像渲染系统,所述图像渲染系统可以应用于计算机设备。具体地,图21示出了该图像渲染系统的可选的结构框图,该图像渲染系统被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请。本申请所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述图像渲染系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图25所示,图像渲染系统具体包括以下组成部分:
渲染模块201,用于获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果。
需要说明的是,通过每次渲染四分之一的画面,每次渲染的内容可以减少四分之三,可以极大地提高渲染效率。
在示例性的实施例中,所述渲染模块201可以包括获取单元、确定单元、划分单元以及选取单元。
所述获取单元,用于获取所述当前画面帧的像素坐标。所述像素坐标包括横坐标和纵坐标。
所述确定单元,用于根据所述像素坐标确定每个像素的横坐标和纵坐标的奇偶性。
所述划分单元,用于根据所述横坐标和所述纵坐标的奇偶性,将所述当前画面帧的像素划分为四组。
具体地,通过将像素根据坐标的奇偶性划分,得到在当前画面中均匀分布的像素点组成的画面帧。示例性地,根据横坐标和纵坐标的奇偶性,将当前四分之一的画面帧的像素划分为坐标分别为:(奇,奇),(奇,偶),(偶,奇)以及(偶,偶)这四组像素。每组像素标记有对应的颜色,例如:(奇,奇)这组像素标记为蓝色,(奇,偶)这组像素标记为黄色,(偶,奇)这组像素标记为绿色,(偶,偶)这组像素标记为红色。请参阅图4,图4为当前画面像素拆分成四个像素组示意图,其中图4(a)为当前画面像素图,图4(b)为图拆分后的四个像素组图。
所述选取单元,用于按照预设的规则从四组像素中选取其中一组像素进行渲染。
具体地,若当前画面为第一帧画面,则所述选取单元从四组像素中选取横纵坐标均为偶数的那组像素进行渲染,也即对坐标为(偶,偶)的所有像素进行渲染。若当前画面为第二帧画面,则所述选取单元从剩下的三组像素中选取横坐标为奇数,纵坐标为偶数的那组像素进行渲染,也即对坐标为(奇,偶)的所有像素进行渲染。若当前画面为第三帧画面,则所述选取单元从剩下的两组像素中选取横坐标为奇数,纵坐标也为奇数的那组像素进行渲染,也即对坐标为(奇,奇)的所有像素进行渲染。若当前画面为第四帧画面,则所述选取单元将剩下的最后一组像素进行渲染,也即对坐标为(偶,奇)的所有像素进行渲染。若当前画面为第五帧画面,则选取与第一帧画面相同的一组像素进行渲染,也即对坐标为(偶,偶)的所有像素进行渲染。若当前画面为第六帧画面,则选取与第二帧画面相同的一组像素进行渲染,也即对坐标为(奇,偶)的所有像素进行渲染。…依此,每连续的四帧画面按照坐标为(偶,偶),(奇,偶),(奇,奇)和(偶,奇)的顺序循环渲染。
示例性地,若坐标为(偶,偶)的所有像素标记为红色,坐标为(奇,偶)的所有像素标记为黄色,坐标为(奇,奇)的所有像素标记为蓝色,坐标为(偶,奇)的所有像素标记为绿色,则第一帧只渲染所有红色标记的像素,第二帧只渲染所有黄色标记的像素,第三帧只渲染所有蓝色标记的像素,第四帧只渲染所有绿色标记的像素,第五帧只渲染所有红色标记的像素,第六帧只渲染所有黄色标记的像素。具体的渲染方法可以为每帧偏移摄像机投影矩阵渲染。
在实际渲染过程中,屏幕左下角的第一个像素坐标定义为(0,0),属于坐标为(偶,偶)像素。
通过将画面根据像素坐标的奇偶性拆分,每帧只渲染其中的一组像素,有助于提高渲染效率。
在实际渲染过程中,在渲染完当前画面的四分之一画面帧后,还按照如下渲染顺序进行渲染:渲染深度、渲染不透明物体(从前往后)+MSAA,渲染天空盒,渲染半透明物体(从后往前或随机,视GPU硬件而定)+MSAA,后处理(PostProcess)。当后处理完成之后,再执行后续实施例的内容。需要说明的是,通过该渲染顺序,使得后处理过程也处于四分之一分辨率下执行,极大地提高了渲染效率。
填充模块202,用于将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果。
具体地,假设当前画面处于完全静止状态,表示当前画面为静态图,此时,前面渲染的3个四分之一的画面帧与当前画面的四分之一画面帧组成一张全分辨率的完整画面,所述填充模块202直接将当前画面的四分之一画面帧的渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,即可得到高清的静态图。需要说明的是,所述完全静止状态指的是当前画面的所有像素点均处于静止的状态。
在示例性的实施例中,所述填充模块202具体用于:
根据所述四分之一渲染结果和所述前面3帧画面的渲染结果所在的像素组,将所述四分之一渲染结果和所述前面3帧画面的渲染结果写入至所述图片对应的像素组中。
具体地,若四分之一渲染结果是通过选取黄色标记的像素组渲染成的,前面3帧画面的渲染结果依次是通过选取红色、蓝色和绿色标记的像素组渲染成的,则所述填充模块202将四分之一渲染结果写入全分辨率的图片中黄色标记的像素组,将前面3帧画面的渲染结果依次写入全分辨的图片中红色、蓝色和绿色标记的像素组中。通过该步骤可以在提高渲染效率的同时,得到高清的静态图。4帧四分之一画面帧渲染效果填充效果图请参阅图6,图7为原始分辨率的渲染效果图。经过对比图6和图7,两者的渲染效果没有明显区别。
处理模块203,用于将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果。
具体地,假设画面完全在运动,那么前面3帧画面的内容不再具有可信性。如果将前面3帧画面的渲染结果和当前画面帧填充至全分辨率的图形中,会形成残影(Ghosting)。因此,此时所述处理模块203需要将当前画面的画面帧中所有像素与四周像素进行融合处理,得到动态图。需要说明的是,所述运动状态指的是画面中的所有像素点均处于运动的状态。
在示例性的实施例中,所述处理模块203可以包括模糊处理单元、偏移校正单元以及混合单元。
所述模糊处理单元,用于对所述画面帧进行模糊处理,得到第一初始画面帧。
需要说明的是,大部分情况下,因为物体边缘的菲涅尔效果导致出现画面闪点。当物体表面与视角接近垂直时,菲涅尔亮度越高,面积越小。在半分辨率下,因为屏幕光栅化的原因,可能随机把菲涅尔放入任意一组屏幕像素,即可能出现在连续4帧画面中的任意一帧,而另外3帧没有出现菲涅尔效果。通过对画面帧进行模糊处理,进而可以对抗闪点。
在示例性的实施例中,所述模糊处理单元具体用于:
遍历所述画面帧的所有像素点,并获取每个像素点的亮度值;
将每个像素点的亮度值与四周像素点的亮度值进行比较;
当所述四周像素的最小亮度值低于所述像素点的亮度值时,则将所述最小亮度值对应的像素代替所述像素;
当所述四周像素的最小亮度值大于所述像素点的亮度值时,则所述像素保持不动。
具体地,所述模糊处理单元将每个像素点的亮度值与四周像素点的亮度值进行比较,将这5个像素点中亮度值最小的像素代替该像素。例如:中心像素与上下左右相邻四个像素的亮度值进行比较,若上下左右相邻像素中最小的亮度值低于中心像素的亮度值,则将该最小亮度值对应的像素代替中心像素;若上下左右相邻像素中最小的亮度值也高于中心像素的亮度值,则保持中心像素不变。通过该步骤,降低该画面帧的像素亮度,进而实现模糊画面的目的,有效地对抗由于菲涅尔效果导致的画面闪点。
所述偏移校正单元,用于根据所述画面帧的位置信息对所述第一初始画面帧进行偏移校正,得到第二初始画面帧。
由于摄像机的投影矩阵在不断地运动,所以每帧画面与上一帧画面始终偏移一个像素,此时需要对模糊处理后得到的第一初始画面帧进行偏移校正,得到第二初始画面帧。
在示例性的实施例中,所述偏移校正单元具体用于:
获取所述画面帧的位置信息;
将所述位置信息减去摄像机投影矩阵的偏移值。
所述混合单元,用于将所述第二初始画面帧与前一画面帧的动态图以50%的方式混合,得到所述画面帧的动态图。
具体地,每个画面帧的动态图均是由当前的初始画面帧与上一画面帧的动态图以50%的方式混合得到。例如:第一帧由于没有上一画面帧,故第一帧的最终动态图就是第一帧的动态图;第二帧之前为第一帧,故第二帧最终的动态图为:第一帧的动态图的50%+第二帧的50%;第三帧之前有第二帧和第三帧,故第三帧最终的动态图为:第一帧的25%+第二帧的25%+第三帧的50%;依此,第四帧最终的动态图为:第一帧的12.5%+第二帧的12.5%+第三帧的25%+第四帧的50%。
需要说明的是,当前帧的百分比越高,抖动越明显,拖尾现象越不明显;反之,当前帧的百分比越低,抖动越不明显,但拖尾越明显,50%是实验得出的较理想数值。通过上述步骤可以明显缓解抖动现象。
在示例性的实施例中,所述图像渲染系统还可以包括设置模块、获取模块和判断模块。
所述设置模块,用于根据用户输入的设置指令设置位移阈值和旋转阈值。
所述获取模块,用于获取所述摄像机当前位移值和当前旋转值。
所述判断模块,用于判断所述当前位移值是否超过所述位移阈值以及所述当前旋转阈值是否超过所述旋转阈值。
所述渲染模块201,还用于当所述当前位移值超过所述位移阈值或所述当前旋转值超过所述旋转阈值时,直接渲染全分辨率或者将摄像机投影矩阵设置为0,并进行半分辨率渲染,得到所述动态图。
具体地,在摄像机开始渲染之前,需要设定位移阈值和旋转阈值,渲染时,通过摄像机的当前位移值与设定的位移阈值进行比较,同时将摄像机的当前旋转值与设定的旋转阈值进行比较,然后根据比较结果确定渲染的方式。如果摄像机当前位移值超过位移阈值或当前旋转值超过旋转阈值,则表示之前的画面的所有像素均失去可信性,此时,直接进行全分辨率渲染或半分辨率渲染,得到的渲染结果即为动态图。通过该步骤可以进一步地提高渲染的精确度。
亮度计算模块204,用于根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图。
需要说明的是,通过根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行亮度差异计算,根据计算结果得到的差异图确定画面中哪个位置使用静态图,哪个位置使用动态图。例如:差异图中黑色部分表示结果使用静态图,白色部分表示结果使用动态图。该步骤实现了画面的运动检测,由于该运动检测在渲染之后,且通过画面帧亮度进行判断,使得运动检测的速度更快。
在示例性的实施例中,所述亮度计算模块204可以包括亮度差异计算单元、腐蚀处理单元、相加计算单元和膨胀处理单元。
所述亮度差异计算单元,用于将所述当前画面的画面帧亮度与上个一画面的四分之一画面帧亮度进行亮度差异计算,得到第一差异图。请参阅图13所示,为示例性的第一差异图。
所述亮度差异计算单元,还用于将所述当前画面的画面帧亮度与前面第四个画面的四分之一画面帧亮度进行亮度差异计算,得到第二差异图。请参阅图14所示,为示例性的第二差异图。
其中,亮度差异的计算公式为:
D=abs(Lc-Lp),
其中,Lc表示当前画面的画面帧亮度,Lp表示上一个画面的四分之一画面帧亮度或者前面第四个画面的四分之一画面帧亮度,D表示亮度差异,abs函数表示两个亮度之间差值的绝对值。
所述腐蚀处理单元,用于将所述第一差异图和所述第二差异图分别进行腐蚀处理,得到第三差异图和第四差异图。请参阅15和图16所示,图15为示例性的第三差异图,图16为示例性的第四差异图。
需要说明的是,所述第一差异图和所述第二差异图由于投影矩阵的偏移,使得画面中出现闪点,此时需要进行腐蚀处理。
所述相加计算单元,用于将所述第三差异图和所述第四差异图相加得到第五差异图。请参阅图17,为示例性的第五差异图。
所述膨胀处理单元,用于将所述第五差异图进行膨胀处理,得到所述差异图。
上述步骤通过运用腐蚀膨胀算法,可以剔除掉孤立的像素,即去除噪音(也即画面中出现的闪点)。
插值计算模块205,用于根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。请参阅图18,为本公开实施例提供的渲染方法一示例性的渲染效果图。图19为正常分辨率下一示例性的渲染效果图。图20为四分之一分辨率下一示例性的渲染效果图。
所述插值的计算公式为:
Lerp(a,b,t)=a+(b-a)*t,
其中,a表示静止图,b表示运动图,t表示差异图,Lerp(a,b,t)表示根据差异图的黑白分布,在静止图和运动图之间插值。
示例性地,差异图为一张黑白图,差异图中白色部分,则返回运动图,差异图为黑色部分,返回静止图。请参阅图21所示,为插值计算过程中输入输出图,其中图21(a)为示例性的插值计算输入的差异图,图21(b)为示例性的插值计算输入的动态图,图21(c)为示例性的插值计算输入的静态图,图21(d)为插值计算输出图。图21(a)的差异图表示该画面内容中仅有战士在运动,其他均为静止状态。经过插值处理后,结果输出为:战士边缘模糊,场景是高清的。
在一示例性的实施例中,若摄像机当前位移值超过位移阈值或当前旋转值超过旋转阈值,此时得到的差异图为纯白,表示当前画面处于完全运动的状态,不用进行插值计算,直接输出上述的全分辨率渲染或者半分辨率渲染得到的动态图。
需要说明的是,在进行渲染时,在执行本申请实施例之前,若执行任何时间性渲染,例如:TAA,运动模糊(MotionBlur),FXAA等,由于时间性渲染会混合上一帧内容的渲染,会造成画面模糊或出现锯齿。故,在实际渲染过程中,在执行本方案之前,不能执行任何时间性渲染。若执行时间性渲染,则将该时间性渲染置于本申请实施例之后。当然,在执行本申请实施例之前,可以开启MSAA以提升渲染效果。
需要指出的是,本申请实施例提供的图像渲染方法在兼容性方面:
渲染路径:兼容Forward Rendering和Deffererd Rendering。
渲染管线:兼容标准渲染管线,lwrp,hdrp,urp。
设备:不需要特定显卡,手机设备也可以运行,不像TAA需要设备支持MotionVector计算。
适用的游戏类型:
摄像机位移不频繁的游戏,如塔防,经营,卡牌,战棋,格斗,RPG。
本申请实施例提供的图像渲染装置,首先,通过渲染每个画面的四分之一,然后,假设画面处于完全静止状态和完全运动状态,分别对渲染后的四分之一画面帧处理,得到对应的静态图和动态图,并根据当前画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度计算,得到差异图,最后,根据静态图、动态图和差异图进行插值计算,并将插值计算结果输出,进而还原出高清画面。由于每次渲染的内容减少了四分之三,极大地提高了渲染效率,从而提高了GPU的处理性能。
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机等。如图22所示,本实施例的计算机设备30至少包括但不限于:可通过系统总线相互通信连接的存储器301、处理器302。需要指出的是,图22仅示出了具有组件301-302的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器301(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器301可以是计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,存储器301也可以是计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器301还可以既包括计算机设备30的内部存储单元也包括其外部存储设备。在本实施例中,存储器301通常用于存储安装于计算机设备30的操作系统和各类应用软件,例如上述实施例的图像渲染系统的程序代码等。此外,存储器301还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器302在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器302通常用于控制计算机设备30的总体操作。
具体的,在本实施例中,处理器302用于执行处理器302中存储的图像渲染方法的程序,所述图像渲染方法的程序被执行时实现如下步骤:
获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;
将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;
将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;
根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;
根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。
上述方法步骤的具体实施例过程可参见上述实施例,本实施例在此不再重复赘述。
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;
将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;
将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;
根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;
根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。
上述方法步骤的具体实施例过程可参见上述实施例,本实施例在此不再重复赘述。
本实施例提供的计算机设备及可读存储介质,首先,通过渲染每个画面的四分之一,然后,假设当画面处于完全静止状态和完全运动状态,分别对渲染后的四分之一画面帧处理,得到对应的静态图和动态图,并根据当前画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度计算,得到差异图,最后,根据静态图、动态图和差异图进行插值计算,并将计算结果输出,进而还原出高清画面。由于每次渲染的内容减少了四分之三,极大地提高了渲染效率,从而提高了GPU的处理性能。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (13)
1.一种图像渲染方法,其特征在于,所述方法包括:
获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;
将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;
将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;
根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;
根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。
2.如权利要求1所述的图像渲染方法,其特征在于,所述对所述当前画面的四分之一画面帧进行渲染,包括:
获取所述当前画面帧的像素坐标;
根据所述像素坐标确定每个像素的横坐标和纵坐标的奇偶性;
根据所述横坐标和所述纵坐标的奇偶性,将所述当前画面帧的像素划分为四组;
按照预设的规则从四组像素中选取其中一组像素进行渲染。
3.如权利要求2所述的图像渲染方法,其特征在于,所述将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,包括:
根据所述四分之一渲染结果和所述前面3帧画面的渲染结果所在的像素组,将所述四分之一渲染结果和所述前面3帧画面的渲染结果写入至所述图片对应的像素组中。
4.如权利要求1所述的图像渲染方法,其特征在于,所述将所述当前画面的画面帧和四周画面进行处理,包括:
对所述画面帧进行模糊处理,得到第一初始画面帧;
根据所述画面帧的位置信息对所述第一初始画面帧进行偏移校正,得到第二初始画面帧;
将所述第二初始画面帧与前一画面帧的动态图以50%的方式混合,得到所述画面帧的动态图。
5.如权利要求4所述的图像渲染方法,其特征在于,所述对所述画面帧进行模糊处理,得到第一初始画面帧,包括:
遍历所述画面帧的所有像素点,并获取每个像素点的亮度值;
将每个像素点的亮度值与四周像素点的亮度值进行比较;
当所述四周像素的最小亮度值低于所述像素点的亮度值时,则将所述最小亮度值对应的像素代替所述像素;
当所述四周像素的最小亮度值大于所述像素点的亮度值时,则所述像素保持不动。
6.如权利要求4所述的图像渲染方法,其特征在于,所述根据所述画面帧的位置信息对所述第一画面帧进行偏移校正,包括:
获取所述画面帧的位置信息;
将所述位置信息减去摄像机投影矩阵的偏移值。
7.如权利要求1所述的图像渲染方法,其特征在于,所述方法还包括:
根据用户输入的设置指令设置位移阈值和旋转阈值;
获取所述摄像机当前位移值和当前旋转值;
判断所述当前位移值是否超过所述位移阈值以及所述当前旋转阈值是否超过所述旋转阈值;
当所述当前位移值超过所述位移阈值或所述当前旋转值超过所述旋转阈值时,直接渲染全分辨率或者将摄像机投影矩阵设置为0,并进行半分辨率渲染,得到所述动态图。
8.如权利要求1所述的图像渲染方法,其特征在于,所述根据当前画面的画面帧亮度、上一画面的四分之一画面帧亮度和前面第四画面的四分之一画面帧亮度进行计算,得到差异图,包括:
将所述当前画面的画面帧亮度与上个一画面的四分之一画面帧亮度进行亮度差异计算,得到第一差异图;
将所述当前画面的画面帧亮度与前面第四个画面的四分之一画面帧亮度进行亮度差异计算,得到第二差异图;
将所述第一差异图和所述第二差异图分别进行腐蚀处理,得到第三差异图和第四差异图;
将所述第三差异图和所述第四差异图相加得到第五差异图;
将所述第五差异图进行膨胀处理,得到所述差异图。
9.如权利要求8所述的图像渲染方法,其特征在于,所述亮度差异的计算公式为:
D=abs(Lc-Lp),
其中,Lc表示当前画面的画面帧亮度,Lp表示上一个画面的四分之一画面帧亮度或者前面第四个画面的四分之一画面帧亮度,D表示亮度差异,abs函数表示两个亮度之间差值的绝对值。
10.如权利要求1所述的图像渲染系统,其特征在于,所述插值的计算公式为:
Lerp(a,b,t)=a+(b-a)*t,
其中,a表示静止图,b表示运动图,t表示差异图。
11.一种图像渲染装置,其特征在于,包括:
渲染模块,用于获取当前画面,并对所述当前画面的四分之一画面帧进行渲染,得到四分之一渲染结果;
填充模块,用于将所述四分之一渲染结果和前面3帧画面的渲染结果填充至全分辨率的图片上,得到静态图,所述静态图对应于假设所述当前画面处于完全静止状态时的渲染效果;
处理模块,用于当所述当前画面处于完全运动状态时,将所述当前画面的画面帧像素分别和四周像素进行处理,得到动态图,所述动态图对应于假设所述当前画面处于完全运动状态时的渲染效果;
亮度计算模块,用于根据当前画面的画面帧亮度、上一个画面的四分之一画面帧亮度和前面第四个画面的四分之一画面帧亮度进行计算,得到差异图;
插值计算模块,用于根据所述静态图、所述动态图和所述差异图进行插值计算,并将插值计算结果输出。
12.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项的所述图像渲染方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项的所述图像渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010290188.3A CN112419147B (zh) | 2020-04-14 | 2020-04-14 | 图像渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010290188.3A CN112419147B (zh) | 2020-04-14 | 2020-04-14 | 图像渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112419147A true CN112419147A (zh) | 2021-02-26 |
CN112419147B CN112419147B (zh) | 2023-07-04 |
Family
ID=74844208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010290188.3A Active CN112419147B (zh) | 2020-04-14 | 2020-04-14 | 图像渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112419147B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113079409A (zh) * | 2021-03-26 | 2021-07-06 | 深圳市凉屋游戏科技有限公司 | 画面渲染方法及画面渲染装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0751683A2 (en) * | 1995-06-30 | 1997-01-02 | Victor Company Of Japan Limited | Image processing apparatus, image display apparatus and image sensing apparatus |
AU2005201929A1 (en) * | 2005-05-06 | 2006-11-23 | Canon Kabushiki Kaisha | Rendering graphic object images |
CN101849227A (zh) * | 2005-01-25 | 2010-09-29 | 透明信息技术有限公司 | 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统 |
CN103680382A (zh) * | 2012-09-24 | 2014-03-26 | 三星显示有限公司 | 显示器驱动方法及其集成驱动设备 |
CN103761770A (zh) * | 2009-04-29 | 2014-04-30 | 英特尔公司 | 图像形成技术 |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN104656263A (zh) * | 2015-03-17 | 2015-05-27 | 京东方科技集团股份有限公司 | 三维显示方法和装置 |
CN105793896A (zh) * | 2013-11-28 | 2016-07-20 | 三星电子株式会社 | 图像输出装置和渲染图像的方法 |
CN106600521A (zh) * | 2016-11-30 | 2017-04-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种图像处理方法及终端设备 |
CN109767466A (zh) * | 2019-01-10 | 2019-05-17 | 深圳看到科技有限公司 | 画面渲染方法、装置、终端及对应的存储介质 |
US20190206121A1 (en) * | 2017-12-28 | 2019-07-04 | Samsung Electronics Co., Ltd. | Graphic processor performing sampling-based rendering and method of operating the same |
CN110047417A (zh) * | 2019-04-24 | 2019-07-23 | 上海兆芯集成电路有限公司 | 子像素渲染方法及装置 |
CN110060619A (zh) * | 2019-04-24 | 2019-07-26 | 上海兆芯集成电路有限公司 | 子像素渲染方法及装置 |
-
2020
- 2020-04-14 CN CN202010290188.3A patent/CN112419147B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0751683A2 (en) * | 1995-06-30 | 1997-01-02 | Victor Company Of Japan Limited | Image processing apparatus, image display apparatus and image sensing apparatus |
CN101849227A (zh) * | 2005-01-25 | 2010-09-29 | 透明信息技术有限公司 | 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统 |
AU2005201929A1 (en) * | 2005-05-06 | 2006-11-23 | Canon Kabushiki Kaisha | Rendering graphic object images |
CN103761770A (zh) * | 2009-04-29 | 2014-04-30 | 英特尔公司 | 图像形成技术 |
CN103680382A (zh) * | 2012-09-24 | 2014-03-26 | 三星显示有限公司 | 显示器驱动方法及其集成驱动设备 |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN105793896A (zh) * | 2013-11-28 | 2016-07-20 | 三星电子株式会社 | 图像输出装置和渲染图像的方法 |
CN104656263A (zh) * | 2015-03-17 | 2015-05-27 | 京东方科技集团股份有限公司 | 三维显示方法和装置 |
CN106600521A (zh) * | 2016-11-30 | 2017-04-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种图像处理方法及终端设备 |
US20190206121A1 (en) * | 2017-12-28 | 2019-07-04 | Samsung Electronics Co., Ltd. | Graphic processor performing sampling-based rendering and method of operating the same |
CN109767466A (zh) * | 2019-01-10 | 2019-05-17 | 深圳看到科技有限公司 | 画面渲染方法、装置、终端及对应的存储介质 |
CN110047417A (zh) * | 2019-04-24 | 2019-07-23 | 上海兆芯集成电路有限公司 | 子像素渲染方法及装置 |
CN110060619A (zh) * | 2019-04-24 | 2019-07-26 | 上海兆芯集成电路有限公司 | 子像素渲染方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113079409A (zh) * | 2021-03-26 | 2021-07-06 | 深圳市凉屋游戏科技有限公司 | 画面渲染方法及画面渲染装置 |
CN113079409B (zh) * | 2021-03-26 | 2021-11-26 | 深圳市凉屋游戏科技有限公司 | 画面渲染方法及画面渲染装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112419147B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108171677B (zh) | 一种图像处理方法及相关设备 | |
US11704883B2 (en) | Methods and systems for reprojection in augmented-reality displays | |
US7508390B1 (en) | Method and system for implementing real time soft shadows using penumbra maps and occluder maps | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
US11049269B2 (en) | Motion based adaptive rendering | |
CN105225264B (zh) | 基于运动的自适应渲染 | |
CN112367481A (zh) | 一种视频片段的处理方法和装置 | |
JP2008521081A (ja) | 画像セグメンテーションに基づく画像レンダリング | |
US7050066B2 (en) | Image processing apparatus and image processing program | |
CN113538271A (zh) | 图像显示方法、装置、电子设备和计算机可读存储介质 | |
CN112419147B (zh) | 图像渲染方法及装置 | |
CN112426711B (zh) | Bloom效果处理的方法、系统、电子装置和存储介质 | |
US11783527B2 (en) | Apparatus and method for generating a light intensity image | |
CN109859303B (zh) | 图像的渲染方法、装置、终端设备及可读存储介质 | |
CN109859328B (zh) | 一种场景切换方法、装置、设备和介质 | |
CN112567430A (zh) | 图像生成装置、图像生成方法和程序 | |
CN115049572A (zh) | 图像处理方法、装置、电子设备和计算机可读存储介质 | |
US11328494B2 (en) | Image processing apparatus, image processing method, and storage medium | |
CN114626978A (zh) | 一种图像处理方法、装置、计算机设备以及存储介质 | |
CN115526809B (zh) | 一种图像处理方法、装置及电子设备和存储介质 | |
WO2023031999A1 (ja) | 映像情報処理装置、方法およびプログラム | |
CN114647467B (zh) | 水印更新方法、装置、系统及存储介质 | |
US9064347B2 (en) | Method, medium, and system rendering 3 dimensional graphics data considering fog effect | |
CN117974814A (zh) | 用于图像处理的方法、装置及存储介质 | |
CN117132470A (zh) | 超分辨率图像的重建方法、设备和存储介质 |
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 |