CN117372596A - 一种画面渲染方法、装置、设备及可读存储介质 - Google Patents
一种画面渲染方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117372596A CN117372596A CN202311404536.5A CN202311404536A CN117372596A CN 117372596 A CN117372596 A CN 117372596A CN 202311404536 A CN202311404536 A CN 202311404536A CN 117372596 A CN117372596 A CN 117372596A
- Authority
- CN
- China
- Prior art keywords
- rendering
- time stamp
- current
- information
- under
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 202
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000000872 buffer Substances 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 22
- 230000009471 action Effects 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 19
- 230000009466 transformation Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请公开了计算机技术领域内的一种画面渲染方法、装置、设备及可读存储介质。本申请在确定当前的渲染时间戳以及为当前设备配置的至少两个视口后,先计算目标三维场景中的各元素在当前渲染时间戳下的元素信息,而后将元素信息和渲染时间戳缓存至预设缓存区,后续在渲染各个视口下的画面时,都基于预设缓存区中的元素信息进行渲染,由此实现了同一渲染时间戳下的元素信息在不同视口下的渲染复用,可避免设备CPU在同一时刻重复处理三维元素的相关信息,节约了设备CPU资源,并且可预留更多时间进行不同视口的画面渲染,有利于实现多视口下的画面的同时呈现和渲染。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种画面渲染方法、装置、设备及可读存储介质。
背景技术
目前,同一三维场景中的三维元素可以从不同视口进行平面展示。为了在同一时刻从不同视口展示同一三维场景中的三维元素,需要设备CPU(Central Processing Unit,中央处理器)在同一时刻从不同视口重复处理同一三维场景中的三维元素的相关信息,以供不同视口下的画面渲染使用。此方式针对不同视口分别各进行一套完整的渲染运算过程,对执行渲染运算过程的设备的性能要求较高。
因此,如何结合设备性能对三维场景进行不同视口的画面渲染,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种画面渲染方法、装置、设备及可读存储介质,以结合设备性能对三维场景进行不同视口的画面渲染。其具体方案如下:
第一方面,本申请提供了一种画面渲染方法,包括:
获取目标三维场景;
确定当前的渲染时间戳以及为当前设备配置的至少两个视口;
计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,并将所述元素信息和所述渲染时间戳缓存至预设缓存区;
基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面。
可选地,所述确定当前的渲染时间戳以及为当前设备配置的至少两个视口,包括:
将当前的真实时间戳作为所述渲染时间戳;或按照预设的帧标记规则确定所述渲染时间戳;
根据当前设备的空闲资源量为当前设备配置所述至少两个视口。
可选地,所述计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,包括:
针对所述目标三维场景中的每一元素,分别计算当前元素自身的纹理信息、帧缓冲区信息、位置信息、旋转信息、缩放信息以及元素动作信息,得到当前元素在所述渲染时间戳下的元素信息。
可选地,所述将所述元素信息和所述渲染时间戳缓存至预设缓存区,包括:
使所述元素信息和所述渲染时间戳构成数据对;
根据当前设备的空闲资源量和所述预设缓存区的剩余空间将所述数据对缓存至所述预设缓存区。
可选地,所述根据当前设备的空闲资源量和所述预设缓存区的剩余空间将所述数据对缓存至所述预设缓存区,包括:
若当前设备的空闲资源量大于预设资源量阈值且所述预设缓存区的剩余空间大于预设空间阈值,则将所述数据对存储至所述预设缓存区的空闲地址;
若当前设备的空闲资源量不大于预设资源量阈值,则以覆盖方式将所述数据对存储至所述预设缓存区。
可选地,任意视口在所述渲染时间戳下的画面的渲染过程包括:
获取当前视口下的相机参数;
根据所述相机参数处理所述预设缓存区中的所述元素信息,得到元素间遮挡信息和当前视口外元素;
按照透视投影方式处理所述元素间遮挡信息和所述当前视口外元素,并渲染得到当前视口在所述渲染时间戳下的画面。
可选地,所述基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面,包括:
在所述至少两个视口中确定主视口;
基于所述预设缓存区中的所述元素信息渲染得到所述主视口在所述渲染时间戳下的画面后,再基于所述预设缓存区中的所述元素信息渲染得到除所述主视口之外的其他视口在所述渲染时间戳下的画面;
在同一页面展示所述至少两个视口在所述渲染时间戳下的画面。
第二方面,本申请提供了一种画面渲染装置,包括:
获取模块,用于获取目标三维场景;
确定模块,用于确定当前的渲染时间戳以及为当前设备配置的至少两个视口;
处理模块,用于计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,并将所述元素信息和所述渲染时间戳缓存至预设缓存区;
渲染模块,用于基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的画面渲染方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的画面渲染方法。
通过以上方案可知,本申请提供了一种画面渲染方法,包括:获取目标三维场景;确定当前的渲染时间戳以及为当前设备配置的至少两个视口;计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,并将所述元素信息和所述渲染时间戳缓存至预设缓存区;基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面。
可见,本申请在确定当前的渲染时间戳以及为当前设备配置的至少两个视口后,先计算目标三维场景中的各元素在当前渲染时间戳下的元素信息,而后将元素信息和渲染时间戳缓存至预设缓存区,后续在渲染各个视口下的画面时,都基于预设缓存区中的元素信息进行渲染,由此实现了同一渲染时间戳下的元素信息在不同视口下的渲染复用,可避免设备CPU在同一时刻重复处理三维元素的相关信息,节约了设备CPU资源,并且可预留更多时间使设备GPU(Graphics Processing Unit,图形处理器)进行不同视口的画面渲染,有利于实现多视口下的画面的同时呈现和渲染,整个过程还与设备性能相匹配,所需资源也相对较少,使得方案具有良好的普适性。
相应地,本申请提供的一种画面渲染装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种画面渲染方法流程图;
图2为本申请公开的另一种画面渲染方法流程图;
图3为本申请公开的一种画面显示示意图;
图4为本申请公开的一种坐标转换过程示意图;
图5为本申请公开的一种画面渲染装置示意图;
图6为本申请提供的一种服务器结构图;
图7为本申请提供的一种终端结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,需要设备CPU在同一时刻从不同视口重复处理同一三维场景中的三维元素的相关信息,以供不同视口下的画面渲染使用。此方式针对不同视口分别各进行一套完整的渲染运算过程,对执行渲染运算过程的设备的性能要求较高。为此,本申请提供了一种画面渲染方案,能够避免设备CPU在同一时刻重复处理三维元素的相关信息,节约了设备CPU资源,并且可预留更多时间进行不同视口的画面渲染。
参见图1所示,本申请实施例公开了一种画面渲染方法,包括:
S101、获取目标三维场景。
在本实施例中,目标三维场景可以是游戏三维场景和动画三维场景,也可以是实景三维场景等。一个目标三维场景中可以包括至少一个三维元素,如:人、树木和房子等。也即:目标三维场景中的各元素就是目标三维场景中的人、树木和房子等三维物体。
S102、确定当前的渲染时间戳以及为当前设备配置的至少两个视口。
需要说明的是,本实施例可以应用于软件客户端(如游戏客户端等),该软件客户端安装并运行于当前设备,当前设备可以为个人计算机等终端设备。由于作为终端的当前设备的存储资源、CPU计算资源等都较少,所以其可能不支持在同一时间戳下渲染多个视口的画面。多个视口如:主视口(即人眼所在位置的视角)、左视口、右视口和后视口等。
需要说明的是,当相机位于不同位置时可以有多个视角(即视口)。例如:一个相机与一个三维目标的底面处于同一高度位置、且平行设置、且该相机与一个三维目标的轮廓线的最近直线距离为1厘米,另一个相机与一个三维目标的顶面处于同一高度位置、且平行设置、且该相机与一个三维目标的轮廓线的最近直线距离为5厘米,可见这两个相机位于三维空间的不同位置,从这两个相机看同一个三维目标,将得到不同的画面,也就得到了两个视口下的画面。由此可见,不同视口即对应不同位置的相机。
其中,相机位置的确定方式为:相机位置一般是由SDK(Software DevelopmentKit,软件开发工具包)的调用方设置相机在3D(3Dimension)场景中的世界坐标来确定,如果SDK的调用方从未进行相机世界坐标的设置,会给相机设置一个默认位置(默认位置由3D设计师根据场景设计提供)。有了相机在3D场景中的世界坐标,就可以根据MVP(Model模型、View观察、Projection投影变换)来对该相机所在视口的画面进行渲染。
为了使当前设备在同一时间戳下渲染尽可能多的不同视口的画面,本实施例根据当前设备的空闲资源量为其配置至少两个视口,如:为当前设备配置主视口和左视口;其中主视口为必须要配置的视口,其他视口可根据需要灵活配置。
在一种实施方式中,确定当前的渲染时间戳以及为当前设备配置的至少两个视口,包括:将当前的真实时间戳(如当前设备的时钟时间)作为渲染时间戳;或按照预设的帧标记规则确定渲染时间戳,预设的帧标记规则如:目标三维场景初次展示时记渲染时间戳为1,每经过单帧画面的展示时间(如10毫秒),渲染时间戳递增1,也就是:以递增整数序列标记当前帧是第几帧画面;根据当前设备的空闲资源量为当前设备配置至少两个视口。其中,当前设备的空闲资源量如:内存剩余量、CPU资源剩余量等资源量之和。
S103、计算目标三维场景中的各元素在渲染时间戳下的元素信息,并将元素信息和渲染时间戳缓存至预设缓存区。
在本实施例中,计算目标三维场景中的各元素在渲染时间戳下的元素信息,包括:针对目标三维场景中的每一元素,分别计算当前元素自身的纹理信息、帧缓冲区信息(FBO信息)、位置信息、旋转信息、缩放信息以及元素动作信息,得到当前元素在渲染时间戳下的元素信息。
在一种实施方式中,将元素信息和渲染时间戳缓存至预设缓存区,包括:使元素信息和渲染时间戳构成数据对;数据对可以具体为:以渲染时间戳为key,以该渲染时间戳下的元素信息为value,得到的key-value键值对;根据当前设备的空闲资源量和预设缓存区的剩余空间将数据对缓存至预设缓存区。预设缓存区可以位于当前设备外接的存储器上,也可以位于当前设备的CPU中。执行步骤S103之前向当前设备申请此预设缓存区,所申请的预设缓存区的大小可以是预设值,也可以是基于当前设备的空闲资源量确定的数值,如:预设缓存区不大于当前设备CPU的空闲缓存资源;和/或预设缓存区不大于当前设备外接的存储器的空闲存储空间。
在一种实施方式中,根据当前设备的空闲资源量和预设缓存区的剩余空间将数据对缓存至预设缓存区,包括:若当前设备的空闲资源量大于预设资源量阈值且预设缓存区的剩余空间大于预设空间阈值,则将数据对存储至预设缓存区的空闲地址;若当前设备的空闲资源量不大于预设资源量阈值,则以覆盖方式将数据对存储至预设缓存区。
当然,为了节约当前设备的资源,并提高渲染效率,可以只在预设缓存区缓存一个渲染时间戳下的元素信息,那么除第一帧画面外,其他时间戳下的元素信息都以覆盖方式存储至预设缓存区。
S104、基于预设缓存区中的元素信息,渲染得到至少两个视口在渲染时间戳下的画面。
在一种示例中,任意视口在渲染时间戳下的画面的渲染过程包括:获取当前视口下的相机参数,如:相机在场景中的位置、相机焦点位置以及相机的视野范围等;根据相机参数处理预设缓存区中的元素信息,得到元素间遮挡信息和当前视口外元素;按照透视投影方式处理元素间遮挡信息和当前视口外元素,并渲染得到当前视口在渲染时间戳下的画面。
在一种实施方式中,基于预设缓存区中的元素信息,渲染得到至少两个视口在渲染时间戳下的画面,包括:在至少两个视口中确定主视口;基于预设缓存区中的元素信息渲染得到主视口在渲染时间戳下的画面后,再基于预设缓存区中的元素信息渲染得到除主视口之外的其他视口在渲染时间戳下的画面;在同一页面展示至少两个视口在渲染时间戳下的画面。其中,基于预设缓存区中的元素信息渲染得到除主视口之外的其他视口在渲染时间戳下的画面,包括:获取其他视口下的相机参数之后,先判断预设缓存区中是否存储有当前渲染时间戳下的元素信息;若是,则基于预设缓存区中的元素信息渲染得到其他视口在当前渲染时间戳下的画面;若否,则计算目标三维场景中的各元素在当前渲染时间戳下的元素信息,并将此元素信息和当前渲染时间戳缓存至预设缓存区;之后基于预设缓存区中的元素信息渲染得到其他视口在当前渲染时间戳下的画面。
可见,本申请在确定当前的渲染时间戳以及为当前设备配置的至少两个视口后,先计算目标三维场景中的各元素在当前渲染时间戳下的元素信息,而后将元素信息和渲染时间戳缓存至预设缓存区,后续在渲染各个视口下的画面时,都基于预设缓存区中的元素信息进行渲染,由此实现了同一渲染时间戳下的元素信息在不同视口(即视角)下的渲染复用,可避免设备CPU在同一时刻重复处理三维元素的相关信息,节约了设备CPU资源,并且可预留更多时间进行不同视角的画面渲染,有利于实现多视口下的画面的同时呈现和渲染,整个过程还与设备性能相匹配,所需资源也相对较少,使得方案具有良好的普适性。
请参见图2,时间戳A下主视口的画面渲染流程可以包括:
(1)获取主视口相机相关参数,相机相关参数包括:相机在场景中的位置、相机焦点位置以及相机的视野范围;视野范围可以是相机广角参数等。
(2)获取三维场景的当前帧的时间戳(一般可以取真实时间戳,也可以取从0开始的递增整数序列,用于标识当前帧是整个渲染序列中的第几帧画面)。
(3)分别计算三维场景中各个元素在当前时间戳下对应的纹理信息、FBO(FrameBuffer Object,帧缓冲区对象)信息、位置信息、旋转信息、缩放信息以及元素正在做的动作的信息。元素正在做的动作如:三维场景中人物的挥手动作、摇头动作等。FBO是一个可添加缓冲区的容器,可以为其添加纹理或渲染缓冲区对象。FBO本身不能用于渲染,只有添加了纹理或者渲染缓冲区之后才能作为渲染目标,它提供了3种附着,分别是颜色附着、深度附着和模板附着。
(4)将运算出的场景元素信息记录到缓存池中。
A、在记录元素信息时,以时间戳为key值(键值),方便之后渲染其他相机在相同时间戳下的画面内容时,可直接从缓存中获取对应元素信息。通过时间戳可以保证属于同一时间戳的不同相机画面的渲染时序一致性。
B、考虑到移动端硬件设备的资源限制,本实施例设置仅存储1个时间戳对应的元素信息,此时对终端内存消耗最低,同时也可以很好的满足渲染信息缓存的功能。例如:在时间戳1下,缓存池记录了元素信息。到达时间戳2时,由于缓存池记录的元素信息不适用于时间戳2,所以都会被清除,同时将时间戳2时对应的元素信息记入缓存池,方便其他视口进行时间戳2画面渲染时进行取用。
C、每次有新的时间戳对应的元素信息写入缓存池时,清除缓存池中记录的原时间戳对应的元素信息。
其中,在同一时间戳下,一般先渲染主视口画面,再渲染其他视口画面。也即:主视口渲染第1帧,其他视口也是渲染第1帧的内容,不会出现主视口渲染第1帧其他视口渲染第2帧或第3帧的情况。
(5)根据主视口的相机在场景中的位置、相机焦点位置以及相机的视野范围,使用OpenGL的视椎体裁剪技术计算场景元素间遮挡信息,并确定视角外的元素,位于视角外的元素不参与渲染。其中,视椎体裁剪技术的原理是:计算出视锥体六个面的空间平面方程,将元素上的点坐标代入六个面的平面方程做比较,来可以判断点是否在视锥体内,不在视椎体内的点所对应的元素则认为不可视,不参与当前渲染。
(6)根据透视投影方案,将主视口的相机在时间戳A的最终画面渲染到主视口的显示窗口上。
请参见图2,时间戳A下的其他视口的画面渲染流程可以包括:
(1)主视口在时间戳A下的当前帧渲染完成后,在主视口下一帧渲染开始前,触发在时间戳A下的其他视口渲染流程。
(2)获取当前其他视口的相机相关参数,如相机在场景中的位置、相机焦点位置以及相机的视野范围等。
(3)获取时间戳A。
(4)尝试从缓存池中获取主视口在时间戳A已经计算完成的元素信息,获取失败执行(5)至(8),获取成功执行(7)至(8)。
(5)分别运算场景中各个元素在时间戳A下对应的位置信息、旋转信息、缩放信息以及元素正在做的动作的信息。
(6)将运算出的元素信息记录到缓存池中。
(7)根据当前其他视口的相机在场景中的位置、相机焦点位置以及相机的视野范围,使用视椎体裁剪技术计算出场景元素间遮挡信息,并确定视角外的元素。
(8)根据透视投影方案,将当前其他视口在时间戳A的最终画面渲染到当前其他视口的显示窗口上,从而实现时间戳A下多视口画面在同一页面的同时展示。
其中,三维场景可以是如图3所示的虚拟人物。按照本实施例,用户在终端设备的页面上手动对虚拟人物进行轮廓、头饰等的调整,那么该页面中的不同视口下的渲染画面将实时同步显示调整后的内容。图3中的大窗口画面为主视角细节相机下的渲染画面,有上方的小窗口画面是主视角全景相机下的渲染画面。在该示例中,主视角全景相机展示虚拟人物的全局效果画面,主视角细节相机用于精细化展示虚拟人物的的细节效果画面。同时还可以实现:根据用户当前编辑的脸部区域的不同,动态调整细节相机的位置,保证细节相机画面实时聚焦于用户编辑区域。如图3所示,在同一屏幕画面中,同时展示当前正在编辑的虚拟人脸的全局样式和编辑部位的细节样式窗口,用户可以在精细化编辑人物的过程中,实时查看编辑带来的全局变化,大幅提高用户的创作想象空间,让用户能在移动端上可以流畅体验捏脸功能。
本实施例具体可使用OpenGL进行画面渲染。OpenGL是一个在终端设备上广泛使用的3D图形库。由于显示设备都是2D平面,OpenGL会通过坐标变换把3D图形映射到2D屏幕。通过OpenGL坐标变换,可以在一个给定的观察视角下,把3D物体投影到2D屏幕上,再经过后面的光棚化和片元着色,整个3D物体就映射成了2D屏幕上的像素。请参见图4,OpenGL的坐标变换流程如图4所示,图4中的模型变换、视变换和投影变换是顶点着色器负责完成,它决定了一个图元在3D空间中的位置;透视除法和视口变换是图元装配阶段完成的,它决定了一个图元在屏幕上的位置。
本实施例以3D空间里的时间戳为键值,将主视口渲染运算时得到的场景元素渲染信息记录缓存,在渲染同一时间点的其他视口内容时,取出这个缓存进行其他视口内容的渲染,减少了大量重复的渲染运算和数据操作,降低了渲染总时长,支持在中低端设备上进行画面渲染。
下面对本申请实施例提供的一种画面渲染装置进行介绍,下文描述的一种画面渲染装置与本文描述的其他实施例可以相互参照。
参见图5所示,本申请实施例公开了一种画面渲染装置,包括:
获取模块501,用于获取目标三维场景;
确定模块502,用于确定当前的渲染时间戳以及为当前设备配置的至少两个视口;
处理模块503,用于计算目标三维场景中的各元素在渲染时间戳下的元素信息,并将元素信息和渲染时间戳缓存至预设缓存区;
渲染模块504,用于基于预设缓存区中的元素信息,渲染得到至少两个视口在渲染时间戳下的画面。
在一种实施方式中,确定当前的渲染时间戳以及为当前设备配置的至少两个视口,包括:
将当前的真实时间戳作为渲染时间戳;或按照预设的帧标记规则确定渲染时间戳;
根据当前设备的空闲资源量为当前设备配置至少两个视口。
在一种实施方式中,计算目标三维场景中的各元素在渲染时间戳下的元素信息,包括:
针对目标三维场景中的每一元素,分别计算当前元素自身的纹理信息、帧缓冲区信息、位置信息、旋转信息、缩放信息以及元素动作信息,得到当前元素在渲染时间戳下的元素信息。
在一种实施方式中,将元素信息和渲染时间戳缓存至预设缓存区,包括:
使元素信息和渲染时间戳构成数据对;
根据当前设备的空闲资源量和预设缓存区的剩余空间将数据对缓存至预设缓存区。
在一种实施方式中,根据当前设备的空闲资源量和预设缓存区的剩余空间将数据对缓存至预设缓存区,包括:
若当前设备的空闲资源量大于预设资源量阈值且预设缓存区的剩余空间大于预设空间阈值,则将数据对存储至预设缓存区的空闲地址;
若当前设备的空闲资源量不大于预设资源量阈值,则以覆盖方式将数据对存储至预设缓存区。
在一种实施方式中,任意视口在渲染时间戳下的画面的渲染过程包括:
获取当前视口下的相机参数;
根据相机参数处理预设缓存区中的元素信息,得到元素间遮挡信息和当前视口外元素;
按照透视投影方式处理元素间遮挡信息和当前视口外元素,并渲染得到当前视口在渲染时间戳下的画面。
在一种实施方式中,基于预设缓存区中的元素信息,渲染得到至少两个视口在渲染时间戳下的画面,包括:
在至少两个视口中确定主视口;
基于预设缓存区中的元素信息渲染得到主视口在渲染时间戳下的画面后,再基于预设缓存区中的元素信息渲染得到除主视口之外的其他视口在渲染时间戳下的画面;
在同一页面展示至少两个视口在渲染时间戳下的画面。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种画面渲染装置,能够避免设备CPU在同一时刻重复处理三维元素的相关信息,节约了设备CPU资源,并且可预留更多时间进行不同视口的画面渲染。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。
本申请实施例公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
进一步的,本申请实施例还提供了一种电子设备。其中,上述电子设备既可以是如图6所示的服务器,也可以是如图7所示的终端。图6和图7均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的画面渲染中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的画面渲染方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图7为本申请实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的画面渲染方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
本领域技术人员可以理解,图7中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
本申请实施例公开了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的画面渲染方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种画面渲染方法,其特征在于,包括:
获取目标三维场景;
确定当前的渲染时间戳以及为当前设备配置的至少两个视口;
计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,并将所述元素信息和所述渲染时间戳缓存至预设缓存区;
基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面。
2.根据权利要求1所述的方法,其特征在于,所述确定当前的渲染时间戳以及为当前设备配置的至少两个视口,包括:
将当前的真实时间戳作为所述渲染时间戳;或按照预设的帧标记规则确定所述渲染时间戳;
根据当前设备的空闲资源量为当前设备配置所述至少两个视口。
3.根据权利要求1所述的方法,其特征在于,所述计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,包括:
针对所述目标三维场景中的每一元素,分别计算当前元素自身的纹理信息、帧缓冲区信息、位置信息、旋转信息、缩放信息以及元素动作信息,得到当前元素在所述渲染时间戳下的元素信息。
4.根据权利要求1所述的方法,其特征在于,所述将所述元素信息和所述渲染时间戳缓存至预设缓存区,包括:
使所述元素信息和所述渲染时间戳构成数据对;
根据当前设备的空闲资源量和所述预设缓存区的剩余空间将所述数据对缓存至所述预设缓存区。
5.根据权利要求4所述的方法,其特征在于,所述根据当前设备的空闲资源量和所述预设缓存区的剩余空间将所述数据对缓存至所述预设缓存区,包括:
若当前设备的空闲资源量大于预设资源量阈值且所述预设缓存区的剩余空间大于预设空间阈值,则将所述数据对存储至所述预设缓存区的空闲地址;
若当前设备的空闲资源量不大于预设资源量阈值,则以覆盖方式将所述数据对存储至所述预设缓存区。
6.根据权利要求1至5任意一项所述的方法,其特征在于,任意视口在所述渲染时间戳下的画面的渲染过程包括:
获取当前视口下的相机参数;
根据所述相机参数处理所述预设缓存区中的所述元素信息,得到元素间遮挡信息和当前视口外元素;
按照透视投影方式处理所述元素间遮挡信息和所述当前视口外元素,并渲染得到当前视口在所述渲染时间戳下的画面。
7.根据权利要求1至5任意一项所述的方法,其特征在于,所述基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面,包括:
在所述至少两个视口中确定主视口;
基于所述预设缓存区中的所述元素信息渲染得到所述主视口在所述渲染时间戳下的画面后,再基于所述预设缓存区中的所述元素信息渲染得到除所述主视口之外的其他视口在所述渲染时间戳下的画面;
在同一页面展示所述至少两个视口在所述渲染时间戳下的画面。
8.一种画面渲染装置,其特征在于,包括:
获取模块,用于获取目标三维场景;
确定模块,用于确定当前的渲染时间戳以及为当前设备配置的至少两个视口;
处理模块,用于计算所述目标三维场景中的各元素在所述渲染时间戳下的元素信息,并将所述元素信息和所述渲染时间戳缓存至预设缓存区;
渲染模块,用于基于所述预设缓存区中的所述元素信息,渲染得到所述至少两个视口在所述渲染时间戳下的画面。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311404536.5A CN117372596A (zh) | 2023-10-26 | 2023-10-26 | 一种画面渲染方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311404536.5A CN117372596A (zh) | 2023-10-26 | 2023-10-26 | 一种画面渲染方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117372596A true CN117372596A (zh) | 2024-01-09 |
Family
ID=89405657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311404536.5A Pending CN117372596A (zh) | 2023-10-26 | 2023-10-26 | 一种画面渲染方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117372596A (zh) |
-
2023
- 2023-10-26 CN CN202311404536.5A patent/CN117372596A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11257286B2 (en) | Method for rendering of simulating illumination and terminal | |
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
WO2020038407A1 (zh) | 一种图像渲染方法、装置及图像处理设备、存储介质 | |
EP4070865A1 (en) | Method and apparatus for displaying virtual scene, and device and storage medium | |
US8115767B2 (en) | Computer graphics shadow volumes using hierarchical occlusion culling | |
KR101086570B1 (ko) | 동적 윈도우 구조 | |
Schütz et al. | Real-time continuous level of detail rendering of point clouds | |
WO2017092303A1 (zh) | 虚拟现实场景模型建立方法及装置 | |
CN109151540B (zh) | 视频图像的交互处理方法及装置 | |
CN109035383B (zh) | 一种体积云的绘制方法、装置及计算机可读存储介质 | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
CN105550973B (zh) | 图形处理单元、图形处理系统及抗锯齿处理方法 | |
CN112053370A (zh) | 基于增强现实的显示方法、设备及存储介质 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
JP2001084404A (ja) | レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体 | |
CN115311395A (zh) | 三维场景渲染方法、装置及设备 | |
CN114066715A (zh) | 图像风格迁移方法、装置、电子设备以及存储介质 | |
CN109658495B (zh) | 环境光遮蔽效果的渲染方法、装置及电子设备 | |
CN117372596A (zh) | 一种画面渲染方法、装置、设备及可读存储介质 | |
CN109729285B (zh) | 熔线格特效生成方法、装置、电子设备及存储介质 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN115588070B (zh) | 一种三维图像风格化迁移方法及终端 | |
TWI844180B (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 |