CN113469883B - 动态分辨率的渲染方法、装置、电子设备及可读存储介质 - Google Patents
动态分辨率的渲染方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113469883B CN113469883B CN202110735362.5A CN202110735362A CN113469883B CN 113469883 B CN113469883 B CN 113469883B CN 202110735362 A CN202110735362 A CN 202110735362A CN 113469883 B CN113469883 B CN 113469883B
- Authority
- CN
- China
- Prior art keywords
- rendering
- resolution
- adjusted
- texture
- camera
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 312
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000005070 sampling Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000007 visual 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种动态分辨率的渲染方法、装置、电子设备及可读存储介质,涉及计算机技术领域,通过在渲染纹理上重新进行采样和渲染渲染实现分辨率的调整,无需生成新尺寸的渲染图,避免占用大量的渲染资源,达到节省资源的目的。所述方法包括:响应于分辨率调整指令,生成目标缩放比率和待调整分辨率;按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸;利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图;对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图;将第二渲染图叠加至第一渲染图,生成目标渲染图。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种动态分辨率的渲染方法、装置、电子设备及可读存储介质。
背景技术
随着计算机技术的不断发展,智能手机、平板电脑等终端设备逐渐普及,成为人们生活、学习、娱乐中不可或缺的一部分,深入地影响了人们社会生活的方方面面。目前,终端设备的配置各异,在开发软件应用时,为了保证软件应用在终端设备上运行时分辨率足够高,避免软件应用展示的字、2D图片等模糊,需要基于软件开发工具对软件应用的分辨率不断进行调整。
相关技术中,在对软件应用的分辨率进行调整时,需要确定软件应用的当前帧率,根据当前帧率确定待渲染的分辨率,生成尺寸与该待渲染的分辨率相符的渲染图,利用该渲染图渲染软件应用在当前帧率的页面,实现分辨率调整。
在实现本申请的过程中,申请人发现相关技术至少存在以下问题:
采用不断生成渲染图的方式实现分辨率的调整需要在软件应用的运行过程中不断生成新尺寸的渲染图,占用大量的渲染资源,造成资源的浪费。
发明内容
有鉴于此,本申请提供了一种动态分辨率的渲染方法、装置、电子设备及可读存储介质,主要目的在于解决目前不断生成新尺寸的渲染图,占用大量的渲染资源,造成资源的浪费的问题。
依据本申请第一方面,提供了一种动态分辨率的渲染方法,该方法包括:
响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率;
按照所述待调整分辨率调整渲染纹理,按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸;
利用调整后的所述相机视口和调整后的所述渲染纹理对所述动画场景进行渲染,得到第一渲染图;
对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图;
将所述第二渲染图叠加至所述第一渲染图,生成符合所述待调整分辨率的目标渲染图。
可选地,所述响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨之前,所述方法还包括:
检测当前时间点,在所述当前时间点符合调整周期时,确定接收到所述分辨率调整指令;或,
在检测到分辨率调整入口被触发时,确定接收到所述分辨率调整指令。
可选地,所述根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率,包括:
读取所述动画场景的当前帧的当前帧耗时;
查询所述历史帧的时间信息,对所述历史帧的时间信息进行平均值计算,得到所述历史帧的平均耗时;
确定预设期望帧率,计算所述当前帧耗时与所述平均耗时的第一比值、所述第一比值与所述预设期望帧率的第二比值,将所述第二比值作为所述目标缩放比率;
读取所述当前帧的当前分辨率,计算所述当前分辨率与所述目标缩放比率的第一乘积,将所述第一乘积作为所述待调整分辨率。
可选地,所述按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸,包括:
确定所述动画场景中挂载的所述场景相机;
获取所述渲染纹理的纹理尺寸,计算所述纹理尺寸与所述目标缩放比率的第二乘积;
根据所述第二乘积对所述场景相机的相机视口的长宽进行调整。
可选地,所述对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图,包括:
根据所述目标缩放比率对调整后的所述渲染纹理进行拉伸,得到待采样渲染纹理;
对所述待采样渲染纹理进行采样,将采样得到的像素点添加至所述颜色缓冲区;
利用所述界面相机,根据所述颜色缓冲区的数据进行界面渲染,得到所述第二渲染图。
可选地,所述方法还包括:
确定所述第一渲染图的第一轴线、所述第二渲染图的第二轴线,将所述第一轴线与所述第二轴线进行比对;
当所述第一轴线与所述第二轴线之间存在偏差时,对所述第二渲染图进行缩放以及位置处理,控制所述第一轴线与所述第二轴线重合。
可选地,所述方法还包括:
若所述动画场景关联了高动态范围渲染效果,则在每帧为所述动画场景渲染的目标渲染图中将所述渲染纹理删除。
依据本申请第二方面,提供了一种动态分辨率的渲染装置,该装置包括:
生成模块,用于响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率;
调整模块,用于按照所述待调整分辨率调整渲染纹理,按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸;
第一渲染模块,用于利用调整后的所述相机视口和调整后的所述渲染纹理对所述动画场景进行渲染,得到第一渲染图;
第二渲染模块,用于对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图;
叠加模块,用于将所述第二渲染图叠加至所述第一渲染图,生成符合所述待调整分辨率的目标渲染图。
可选地,所述装置还包括:
检测模块,用于检测当前时间点,在所述当前时间点符合调整周期时,确定接收到所述分辨率调整指令;或,在检测到分辨率调整入口被触发时,确定接收到所述分辨率调整指令。
可选地,所述生成模块,用于读取所述动画场景的当前帧的当前帧耗时;查询所述历史帧的时间信息,对所述历史帧的时间信息进行平均值计算,得到所述历史帧的平均耗时;确定预设期望帧率,计算所述当前帧耗时与所述平均耗时的第一比值、所述第一比值与所述预设期望帧率的第二比值,将所述第二比值作为所述目标缩放比率;读取所述当前帧的当前分辨率,计算所述当前分辨率与所述目标缩放比率的第一乘积,将所述第一乘积作为所述待调整分辨率。
可选地,所述调整模块,用于确定所述动画场景中挂载的所述场景相机;获取所述渲染纹理的纹理尺寸,计算所述纹理尺寸与所述目标缩放比率的第二乘积;根据所述第二乘积对所述场景相机的相机视口的长宽进行调整。
可选地,所述第二渲染模块,用于根据所述目标缩放比率对调整后的所述渲染纹理进行拉伸,得到待采样渲染纹理;对所述待采样渲染纹理进行采样,将采样得到的像素点添加至所述颜色缓冲区;利用所述界面相机,根据所述颜色缓冲区的数据进行界面渲染,得到所述第二渲染图。
可选地,所述第二渲染模块,还用于确定所述第一渲染图的第一轴线、所述第二渲染图的第二轴线,将所述第一轴线与所述第二轴线进行比对;当所述第一轴线与所述第二轴线之间存在偏差时,对所述第二渲染图进行缩放以及位置处理,控制所述第一轴线与所述第二轴线重合。
可选地,所述删除模块,用于若所述动画场景关联了高动态范围渲染效果,则在每帧为所述动画场景渲染的目标渲染图中将所述渲染纹理删除。
依据本申请第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述方法的步骤。
依据本申请第四方面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
借由上述技术方案,本申请提供的一种动态分辨率的渲染方法、装置、电子设备及可读存储介质,本申请根据游戏中动画场景当前帧以及历史帧的时间信息确定目标缩放比率以及待调整分辨率,按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸,并利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图,对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图,进而将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图,通过在渲染纹理上重新进行采样和渲染实现动态的分辨率的调整,无需生成新尺寸的渲染图,避免占用大量的渲染资源,达到节省资源的目的。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的一种动态分辨率的渲染方法流程示意图;
图2示出了本申请实施例提供的一种动态分辨率的渲染方法流程示意图;
图3A示出了本申请实施例提供的一种动态分辨率的渲染装置的结构示意图;
图3B示出了本申请实施例提供的一种动态分辨率的渲染装置的结构示意图;
图3C示出了本申请实施例提供的一种动态分辨率的渲染装置的结构示意图;
图4示出了本申请实施例提供的一种电子设备的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本申请实施例提供了一种动态分辨率的渲染方法,如图1所示,该方法包括:
101、响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率。
102、按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸。
103、利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图。
104、对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图。
105、将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图。
本申请实施例提供的方法,根据游戏中动画场景当前帧以及历史帧的时间信息确定目标缩放比率以及待调整分辨率,按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸,并利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图,对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图,进而将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图,通过在渲染纹理上重新进行采样和渲染实现动态的分辨率的调整,无需生成新尺寸的渲染图,避免占用大量的渲染资源,达到节省资源的目的。
本申请实施例提供了一种动态分辨率的渲染方法,如图2所示,该方法包括:
201、响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率。
近年来,计算机技术不断发展,为了便于开发人员开发游戏,游戏开发平台应运而生。游戏开发平台是一种实时3D(3Dimensions,三维)互动内容创作和运营的平台,比如Unity(一种游戏开发平台)平台。游戏开发平台提供了一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D(2Dimensions,二维)和3D内容,支持平台包括手机、平板电脑、PC(Personal Computer,个人计算机)、游戏主机、增强现实和虚拟现实设备等。游戏开发平台中有对应的设置游戏分辨率的接口,但是此接口会造成整个游戏分辨率的改变,导致UI(User Interface,用户界面)的分辨率降低,游戏中的字和2D图片模糊到无法直视。因此,在游戏的开发以及运行的过程中,需要根据帧率不断生成新的不同尺寸的场景渲染图供前端展示,从而实现对分辨率大小的调整。
但是,申请人认识到,在调整分辨率的过程中持续不断的生成新的场景渲染图会占用大量的渲染资源,渲染的开销很大,不仅造成资源的浪费,而且还可能会影响游戏的性能。因此,本申请提出了一种动态分辨率的渲染方法,根据游戏中动画场景当前帧以及历史帧的时间信息确定目标缩放比率以及待调整分辨率,按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸,并利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图,对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图,进而将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图,通过在渲染纹理上重新进行采样和渲染实现动态的分辨率的调整,无需生成新尺寸的渲染图,避免占用大量的渲染资源,达到节省资源的目的。
实际应用的过程中,游戏开发平台分为两种版本,一种是C#(C Sharpe,一种面向对象的编程语言)版本,另外一种是C++(一种计算机程序设计语言)版本。C#版本是以组件形式实现的本方案,也即在场景相机和界面相机上挂载DynamicResolutionLayer(动态分辨层)。而这种组件挂载的方式并不适用于C++版本,所以,为了保证在C++版本中成功进行分辨率的动态调整,需要进行初始化以及原始渲染图的设置。具体地,在进行初始化时,需要确定预设数目的类属性,将预设数目的类属性添加至质量设置类中。其中,预设数目的类属性为最大缩放值、最小缩放值和预设期望帧率,初始化也即是游戏开发平台的引擎层在QualitySettings(质量设置)类中扩展maxResolution(最大缩放值)、minResolution(最小缩放值)以及DynamicResolutionTargetFrame(预设期望帧率)这三个类属性,由C#层在Enable(可操作)前调用三个类属性的赋值。另外,在初始化过程中,还需要在C#层设置开启需要进行动态分辨率的场景相机,一般来说,界面相机默认不进行开启。初始化完毕后,调用场景相机,为场景相机设置默认的渲染纹理,也即为场景相机设置内置的渲染纹理,保证后续对该默认的渲染纹理的应用。
需要说明的是,对于一个动画场景来说,可能设置有多个主相机,因此,在调用场景相机时,基于多个主相机形成相机列表,将相机列表均作为调用的场景相机,使得场景相机为动画场景中一个或者一个以上的主相机,从而达到支持多个3D相机的目的。
可选地,本申请实施例中动态分辨率的渲染操作可以周期性的触发或者人工手动触发。具体地,可以设置分辨率的调整周期,比如0.5秒,进而持续的检测当前时间点,在当前时间点符合调整周期时,确定接收到分辨率调整指令,并开始进行动态分辨率的渲染。或者,也可以在检测到分辨率调整入口被触发时,确定接收到分辨率调整指令,并开始进行动态分辨率的渲染。本申请对动态分辨率的渲染的触发方式不进行具体限定。
响应于分辨率调整指令,开始根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率,进而在后续按照目标缩放比率以及待调整分辨率进行动态分辨率的渲。其中,在生成目标缩放比率时,需要先读取动画场景的当前帧的当前帧耗时(也即Time.deltaTime的赋值),并查询历史帧的时间信息,对历史帧的时间信息进行平均值计算,得到历史帧的平均耗时。接着,确定预设期望帧率,计算当前帧耗时与平均耗时的第一比值、第一比值与预设期望帧率的第二比值,将第二比值作为目标缩放比率。生成目标缩放比率后,读取当前帧的当前分辨率,计算当前分辨率与目标缩放比率的第一乘积,将第一乘积作为待调整分辨率。
需要说明的是,若基于C++版本进行,则可将Statistics(统计)方法注册到初始化中,每帧调用Statistics方法,使得每隔0.5秒完成一次目标缩放比率以及待调整分辨率的计算,以保证目标缩放比率的持续更新。
202、按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸。
在本申请实施例中,确定了目标缩放比率以及待调整分辨率后,开始重新进行分辨率的渲染,按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸,从而在后续按照调整后的相机视口和调整后的渲染纹理对动画场景进行渲染。由于游戏开发平台分为两种版本,因此,实际上不同的版本需要采用不同的方式进行相机视口尺寸的调整。
针对C++版本,由于C++版本的动画场景中具有设置场景相机的功能,因此,可以直接确定动画场景中挂载的场景相机,获取渲染纹理的纹理尺寸,计算纹理尺寸与目标缩放比率的第二乘积,根据第二乘积对场景相机的相机视口的长宽进行调整。
而针对C#版本,由于需要为C#版本的动画场景调用场景相机,因此,在动画场景中确定为其调用的场景相机,并获取渲染纹理的纹理尺寸,计算纹理尺寸与目标缩放比率的第二乘积,根据第二乘积对场景相机的相机视口的长宽进行调整。
203、利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图。
在本申请实施例中,为了后续在进行界面渲染时保证界面渲染的操作能有一个渲染的基础,因此,在对相机视口以及渲染纹理进行调整后,需要利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图,使第一渲染图不仅尺寸满足目标缩放比率,而且还包括了动画场景中的全部内容。
204、对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图。
在本申请实施例中,生成了第一渲染图后,考虑到游戏中提供给玩家的渲染图上需要显示按键、地图等能够与玩家进行交互的界面内容,因此,需要对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图,从而在实现动态分辨率渲染的同时,保证渲染图符合实际的游戏场景。
在生成第二渲染图时,首先,由于前端所搭载的终端设备的屏幕都是有一定的尺寸的,而诸如C++等版本中的界面相机不具备自动调控尺寸的功能,使得当前得到渲染纹理是缩小的,后续要在终端设备上显示正常的尺寸,因此,根据目标缩放比率对调整后的渲染纹理进行拉伸,得到待采样渲染纹理,以使得后续在前端为玩家展示尺寸与预设终端展示尺寸匹配的目标渲染图。随后,对待采样渲染纹理进行采样,将采样得到的像素点添加至颜色缓冲区,利用界面相机,根据颜色缓冲区的数据进行界面渲染,得到第二渲染图。
其中,在根据颜色缓冲区的数据进行界面渲染时,针对不同的版本,可采用不同的方式:
针对C++版本,在对调整后的渲染纹理进行拉伸时,可以由C#层调用BlitDynamicResolution(比利特动态分辨率)接口将待调整分辨率的调整后的渲染纹理缩小尺寸并采样Blit回正常尺寸的渲染纹理。接着,开始渲染时,可在界面相机中设置待调整分辨率,并获取一个RenderRectangle(渲染矩形),将RenderRectangle的尺寸调整为第二乘积,进而作为调整后的相机视口,从而实现对待调整分辨率的区域渲染,达到节省渲染开销的目的。
而针对C#版本,首先,对待采样渲染纹理进行采样,将采样得到的像素点添加至颜色缓冲区。随后,利用界面相机,根据颜色缓冲区的数据进行界面渲染,得到第二渲染图。实际应用中,在进行渲染时,可在不透明渲染前执行一次渲染,使待采样渲染纹理中的颜色进行缩放采样渲染回颜色缓冲区,并接着对界面相机的Shader(着色器)进行设置,实现动画场景的着色处理以及重新渲染。
205、将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图。
在本申请实施例中,生成了第一渲染图和第二渲染图后,由于第一渲染图指示了动画场景中的内容,第二渲染图指示了界面上的内容,因此,将第二渲染图叠加至第一渲染图,便可以生成符合待调整分辨率的目标渲染图。
需要说明的是,为了保证叠加的正确性,避免叠加发生偏差,可以进行渲染图的缩放以及位移处理,具体过程如下:确定第一渲染图的第一轴线、第二渲染图的第二轴线,将第一轴线与第二轴线进行比对。当第一轴线与第二轴线之间存在偏差时,对第二渲染图进行缩放以及位置处理,控制第一轴线与第二轴线重合。另外,针对GrabPass(一种具有内容抓取以及写入功能的类型)效果,GrabPass效果在界面相机设置了相机视口的情况下,在使用DX(数据寄存器)和Vulkan(跨平台的绘图应用程序接口)等API(Application ProgramInterface,应用程序接口)时,内置变量UNITY_UV_STARTS_AT_TOP会有抓取的纹理在场景模型上所处的位置不对的问题,因此,为了兼容需要把RenderRectangle改为屏幕y轴中间。再有,针对动画场景中额外设置的一些视觉后效,也存在UV坐标不正确的问题,同样需要结合FrameDebugger(帧调试器)对UV进行调整。
实际应用中,若动画场景关联了高动态范围渲染效果,比如开启了Bloom(光华)功能,则需要在每帧为动画场景渲染的目标渲染图中将渲染纹理删除。比如,如果场景相机开启了bloom(特效),需要每帧对渲染图进行清洗,防止HDR Texture(High-Dynamic RangeTexture,高动态光照渲染纹理)的颜色卷积后显示到前端展示的界面中。另外,针对HDR功能,如果动画场景开启了HDR,需要将渲染纹理的格式调整为与HDR功能匹配的格式,从而保证格式的兼容。
综上,实际上本申请针对不同的版本提供了不同的技术方案:
针对C#版本,以组件形式实现,该组件命名为DynamicResolutionLayer,挂到场景相机和界面相机上。界面相机获取场景相机渲染的渲染纹理,将此渲染纹理设置为MainTexture(主纹理),设置其待调整分辨率,将渲染纹理中的像素进行缩放采样回颜色缓冲区,实现3D相机下组件的动态分辨率渲染。
而针对C++版本,由C#逻辑层设置最大缩放值、最小缩放值以及预设期望帧率,再由游戏平台的引擎根据这些值进行计算得出当前帧下的待调整分辨率,将场景相机设置为offscreen(相机视口),并按照待调整分辨率调整相机视口的尺寸,以节省渲染时开销,并在后处理之前调用BlitDynamicResolution接口,由该接口返回一张尺寸满足预设终端展示尺寸的目标渲染图供展示。
本申请实施例提供的方法,根据游戏中动画场景当前帧以及历史帧的时间信息确定目标缩放比率以及待调整分辨率,按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸,并利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图,对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图,进而将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图,通过在渲染纹理上重新进行采样和渲染实现动态的分辨率的调整,无需生成新尺寸的渲染图,避免占用大量的渲染资源,达到节省资源的目的。
进一步地,作为图1所述方法的具体实现,本申请实施例提供了一种动态分辨率的渲染装置,如图3A所示,所述装置包括:生成模块301,调整模块302,第一渲染模块303,第二渲染模块304和叠加模块305。
该生成模块301,用于响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率;
该调整模块302,用于按照所述待调整分辨率调整渲染纹理,按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸;
该第一渲染模块303,用于利用调整后的所述相机视口和调整后的所述渲染纹理对所述动画场景进行渲染,得到第一渲染图;
该第二渲染模块304,用于对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图;
该叠加模块305,用于将所述第二渲染图叠加至所述第一渲染图,生成符合所述待调整分辨率的目标渲染图。
在具体的应用场景中,如图3B所示,该装置还包括:检测模块306。
该检测模块306,用于检测当前时间点,在所述当前时间点符合调整周期时,确定接收到所述分辨率调整指令;或,在检测到分辨率调整入口被触发时,确定接收到所述分辨率调整指令。
在具体的应用场景中,该生成模块301,用于读取所述动画场景的当前帧的当前帧耗时;查询所述历史帧的时间信息,对所述历史帧的时间信息进行平均值计算,得到所述历史帧的平均耗时;确定预设期望帧率,计算所述当前帧耗时与所述平均耗时的第一比值、所述第一比值与所述预设期望帧率的第二比值,将所述第二比值作为所述目标缩放比率;读取所述当前帧的当前分辨率,计算所述当前分辨率与所述目标缩放比率的第一乘积,将所述第一乘积作为所述待调整分辨率。
在具体的应用场景中,该调整模块302,用于确定所述动画场景中挂载的所述场景相机;获取所述渲染纹理的纹理尺寸,计算所述纹理尺寸与所述目标缩放比率的第二乘积;根据所述第二乘积对所述场景相机的相机视口的长宽进行调整。
在具体的应用场景中,该第二渲染模块304,用于根据所述目标缩放比率对调整后的所述渲染纹理进行拉伸,得到待采样渲染纹理;对所述待采样渲染纹理进行采样,将采样得到的像素点添加至所述颜色缓冲区;利用所述界面相机,根据所述颜色缓冲区的数据进行界面渲染,得到所述第二渲染图。
在具体的应用场景中,该第二渲染模块304,还用于确定所述第一渲染图的第一轴线、所述第二渲染图的第二轴线,将所述第一轴线与所述第二轴线进行比对;当所述第一轴线与所述第二轴线之间存在偏差时,对所述第二渲染图进行缩放以及位置处理,控制所述第一轴线与所述第二轴线重合。
在具体的应用场景中,如图3C所示,该删除模块307,用于若所述动画场景关联了高动态范围渲染效果,则在每帧为所述动画场景渲染的目标渲染图中将所述渲染纹理删除。
本申请实施例提供的装置,根据游戏中动画场景当前帧以及历史帧的时间信息确定目标缩放比率以及待调整分辨率,按照待调整分辨率调整渲染纹理,按照目标缩放比率调整动画场景的场景相机的相机视口的尺寸,并利用调整后的相机视口和调整后的渲染纹理对动画场景进行渲染,得到第一渲染图,对调整后的渲染纹理进行缩放采样渲染回颜色缓冲区,并利用动画场景的界面相机对颜色缓冲区进行渲染,得到第二渲染图,进而将第二渲染图叠加至第一渲染图,生成符合待调整分辨率的目标渲染图,通过在渲染纹理上重新进行采样和渲染实现动态的分辨率的调整,无需生成新尺寸的渲染图,避免占用大量的渲染资源,达到节省资源的目的。
需要说明的是,本申请实施例提供的一种动态分辨率的渲染装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
在示例性实施例中,参见图4,还提供了一种设备,该设备包括通信总线、处理器、存储器和通信接口,还可以包括输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的动态分辨率的渲染方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的动态分辨率的渲染方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (9)
1.一种动态分辨率的渲染方法,其特征在于,包括:
响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率;
按照所述待调整分辨率调整渲染纹理,按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸;
利用调整后的所述相机视口和调整后的所述渲染纹理对所述动画场景进行渲染,得到第一渲染图;
对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图;
将所述第二渲染图叠加至所述第一渲染图,生成符合所述待调整分辨率的目标渲染图;
其中,所述按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸,包括:确定所述动画场景中挂载的所述场景相机;获取所述渲染纹理的纹理尺寸,计算所述纹理尺寸与所述目标缩放比率的第二乘积;根据所述第二乘积对所述场景相机的相机视口的长宽进行调整。
2.根据权利要求1所述的方法,其特征在于,所述响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨之前,所述方法还包括:
检测当前时间点,在所述当前时间点符合调整周期时,确定接收到所述分辨率调整指令;或,
在检测到分辨率调整入口被触发时,确定接收到所述分辨率调整指令。
3.根据权利要求1所述的方法,其特征在于,所述根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率,包括:
读取所述动画场景的当前帧的当前帧耗时;
查询所述历史帧的时间信息,对所述历史帧的时间信息进行平均值计算,得到所述历史帧的平均耗时;
确定预设期望帧率,计算所述当前帧耗时与所述平均耗时的第一比值、所述第一比值与所述预设期望帧率的第二比值,将所述第二比值作为所述目标缩放比率;
读取所述当前帧的当前分辨率,计算所述当前分辨率与所述目标缩放比率的第一乘积,将所述第一乘积作为所述待调整分辨率。
4.根据权利要求1所述的方法,其特征在于,所述对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图,包括:
根据所述目标缩放比率对调整后的所述渲染纹理进行拉伸,得到待采样渲染纹理;
对所述待采样渲染纹理进行采样,将采样得到的像素点添加至所述颜色缓冲区;
利用所述界面相机,根据所述颜色缓冲区的数据进行界面渲染,得到所述第二渲染图。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一渲染图的第一轴线、所述第二渲染图的第二轴线,将所述第一轴线与所述第二轴线进行比对;
当所述第一轴线与所述第二轴线之间存在偏差时,对所述第二渲染图进行缩放以及位置处理,控制所述第一轴线与所述第二轴线重合。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述动画场景关联了高动态范围渲染效果,则在每帧为所述动画场景渲染的目标渲染图中将所述渲染纹理删除。
7.一种动态分辨率的渲染装置,其特征在于,包括:
生成模块,用于响应于分辨率调整指令,根据动画场景当前帧以及历史帧的时间信息,生成目标缩放比率和待调整分辨率;
调整模块,用于按照所述待调整分辨率调整渲染纹理,按照所述目标缩放比率调整所述动画场景的场景相机的相机视口的尺寸;
第一渲染模块,用于利用调整后的所述相机视口和调整后的所述渲染纹理对所述动画场景进行渲染,得到第一渲染图;
第二渲染模块,用于对调整后的所述渲染纹理进行缩放采样渲染回颜色缓冲区,并利用所述动画场景的界面相机对所述颜色缓冲区进行渲染,得到第二渲染图;
叠加模块,用于将所述第二渲染图叠加至所述第一渲染图,生成符合所述待调整分辨率的目标渲染图;
其中,所述调整模块具体用于确定所述动画场景中挂载的所述场景相机;获取所述渲染纹理的纹理尺寸,计算所述纹理尺寸与所述目标缩放比率的第二乘积;根据所述第二乘积对所述场景相机的相机视口的长宽进行调整。
8.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210403276.9A CN114913067A (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
CN202110735362.5A CN113469883B (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
PCT/CN2021/132538 WO2023273114A1 (zh) | 2021-06-30 | 2021-11-23 | 动态分辨率的渲染方法、装置、设备、程序和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110735362.5A CN113469883B (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210403276.9A Division CN114913067A (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113469883A CN113469883A (zh) | 2021-10-01 |
CN113469883B true CN113469883B (zh) | 2022-05-06 |
Family
ID=77874410
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210403276.9A Pending CN114913067A (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
CN202110735362.5A Active CN113469883B (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210403276.9A Pending CN114913067A (zh) | 2021-06-30 | 2021-06-30 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN114913067A (zh) |
WO (1) | WO2023273114A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114913067A (zh) * | 2021-06-30 | 2022-08-16 | 完美世界(北京)软件科技发展有限公司 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
CN113963110B (zh) * | 2021-10-11 | 2022-10-25 | 北京百度网讯科技有限公司 | 纹理图生成方法、装置、电子设备及存储介质 |
CN114170359A (zh) * | 2021-11-03 | 2022-03-11 | 完美世界(北京)软件科技发展有限公司 | 体积雾渲染方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742317A (zh) * | 2017-09-27 | 2018-02-27 | 杭州群核信息技术有限公司 | 一种渲染图像的获取方法、装置、渲染***及存储介质 |
CN110393921A (zh) * | 2019-08-08 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 云游戏的处理方法、装置、终端、服务器及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10311548B2 (en) * | 2017-09-05 | 2019-06-04 | Microsoft Technology Licensing, Llc | Scaling render targets to a higher rendering resolution to display higher quality video frames |
CN108063938A (zh) * | 2017-12-21 | 2018-05-22 | 深圳市得色科技有限公司 | 一种游戏引擎的裸眼3d成像显示方法及其*** |
US10776907B2 (en) * | 2018-10-24 | 2020-09-15 | Adobe Inc. | Dynamic image resolution adjustment for rendering changes to graphical content |
US10825200B2 (en) * | 2019-01-30 | 2020-11-03 | Trivver, Inc. | Texture based pixel count determination |
CN111918125B (zh) * | 2019-05-09 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置及*** |
CN111309430B (zh) * | 2020-03-16 | 2021-12-10 | 广东趣炫网络股份有限公司 | 一种自动缓存用户交互界面节点的方法和相关装置 |
CN112184877B (zh) * | 2020-09-30 | 2024-02-23 | 杭州电魂网络科技股份有限公司 | 辉光效果的渲染优化的方法和*** |
CN113041617B (zh) * | 2021-03-18 | 2022-07-26 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏画面渲染方法、装置、设备及存储介质 |
CN114913067A (zh) * | 2021-06-30 | 2022-08-16 | 完美世界(北京)软件科技发展有限公司 | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-06-30 CN CN202210403276.9A patent/CN114913067A/zh active Pending
- 2021-06-30 CN CN202110735362.5A patent/CN113469883B/zh active Active
- 2021-11-23 WO PCT/CN2021/132538 patent/WO2023273114A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742317A (zh) * | 2017-09-27 | 2018-02-27 | 杭州群核信息技术有限公司 | 一种渲染图像的获取方法、装置、渲染***及存储介质 |
CN110393921A (zh) * | 2019-08-08 | 2019-11-01 | 腾讯科技(深圳)有限公司 | 云游戏的处理方法、装置、终端、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114913067A (zh) | 2022-08-16 |
WO2023273114A1 (zh) | 2023-01-05 |
CN113469883A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113469883B (zh) | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 | |
CN107888845B (zh) | 一种视频图像处理方法、装置及终端 | |
US10311548B2 (en) | Scaling render targets to a higher rendering resolution to display higher quality video frames | |
CN112652046B (zh) | 游戏画面的生成方法、装置、设备及存储介质 | |
CN105389090B (zh) | 游戏交互界面显示的方法及装置、移动终端和电脑终端 | |
EP3822757A1 (en) | Method and apparatus for setting background of ui control | |
CN110968962B (zh) | 基于云渲染在移动端或大屏三维展示方法及*** | |
CN113225606B (zh) | 视频弹幕处理方法及装置 | |
TW202016876A (zh) | 一種圖像處理方法及裝置、電子設備、儲存介質 | |
JP2010514011A (ja) | ポストレンダー・グラフィックス回転 | |
CN111939567A (zh) | 游戏虚拟场景变换方法、装置以及电子终端 | |
CN107564085B (zh) | 图像扭曲处理方法、装置、计算设备及计算机存储介质 | |
CN112070854B (zh) | 一种图像生成方法、装置、设备及存储介质 | |
CN107644451B (zh) | 动画展示方法和装置 | |
CN109658495B (zh) | 环境光遮蔽效果的渲染方法、装置及电子设备 | |
CN114428573B (zh) | 特效图像处理方法、装置、电子设备及存储介质 | |
CN113256785B (zh) | 图像处理方法、装置、设备及介质 | |
CN112634444B (zh) | 一种基于三维信息的人体姿态迁移方法、装置、存储介质及终端 | |
CN115578540A (zh) | 用于增强现实的方法、装置、设备和存储介质 | |
CN114693894A (zh) | 一种虚拟世界中图片转换为积木块的方法、***及装置 | |
CN110874816B (zh) | 一种图像处理方法、装置、移动终端及存储介质 | |
CN107087114B (zh) | 一种拍摄的方法及装置 | |
CN109729285B (zh) | 熔线格特效生成方法、装置、电子设备及存储介质 | |
CN113393391B (zh) | 图像增强方法、图像增强装置、电子设备和存储介质 | |
CN113709372B (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 |