CN112614041A - 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 - Google Patents
稀疏渲染的数据驱动方法及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN112614041A CN112614041A CN202011598856.5A CN202011598856A CN112614041A CN 112614041 A CN112614041 A CN 112614041A CN 202011598856 A CN202011598856 A CN 202011598856A CN 112614041 A CN112614041 A CN 112614041A
- Authority
- CN
- China
- Prior art keywords
- data
- map
- sparse
- rendering
- gpu
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种稀疏渲染的数据驱动方法及装置、存储介质、电子装置,其中,该方法包括:在移动设备中构建渲染对象的层次Z缓冲数据;在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;将所述贴图数据从所述GPU传输至可见缓冲区中;在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。通过本发明,解决了相关技术在贴图延迟渲染时系统内存占用和带宽开销过大的技术问题,均衡了GPU驱动通道中的内存分布,提高了整个GPU驱动的数据传输速度和画面渲染速度。
Description
技术领域
本发明涉及显示驱动领域,具体而言,涉及一种稀疏渲染的数据驱动方法及装置、存储介质、电子装置。
背景技术
相关技术中的移动GPU驱动(GPU Driven on Mobile)包括TBDR(Tile BasedDeferred Rendering,贴图延迟渲染)模式和Sparse Texture(稀疏贴图)模式,SparseTexture模型下的渲染也叫稀疏渲染,TBDR(Tile Based Deferred Rendering,贴图延迟渲染)算是TBR(Tile Based Rendering,贴图渲染)的延伸,跟TBR(贴图渲染)原理相似;但是通过HSR(Hidden Surface Removal,隐藏面消除)操作,在执行Pixel Shader(像素着色)之前进一步减少了不需要渲染的fragment(片段),降低了带宽需求。
在执行Pixel Shader(像素着色)之前,对Raster(光栅)生成的每个像素都做depth test(深度测试)的比较,剔除被遮挡的像素,这就是HSR(隐藏面消除)的原理,理论上经过HSR(隐藏面消除)剔除以后,TBDR(贴图延迟渲染)每帧需要渲染的像素上限就是屏幕像素的数量(没有考虑alpha blend(alpha混合)的情况下)。而传统的TBR(贴图渲染)在执行复杂一点的游戏时可能需要渲染6倍于屏幕的像素。对比Sparse Texture(稀疏贴图)分支与TBDR(贴图延迟渲染)分支的优缺点。ST分支的优点在于:Sparse Texture(稀疏贴图)+Indirect Draw(非直接的渲染指令)可以在同一Shader(渲染器)中最大化合批;Geometry(几何)信息可通过Visibility Buffer(可见缓冲区)重建,无需GBuffer Pass(G缓冲区通道);缺点在于:在合并Texture(贴图)的三种方案中,Bindless Texture(无粘结贴图)的支持率非常低,达不到实用阶段;而软实现的VT性能不如Sparse Texture(稀疏贴图),Sparse Texture(稀疏贴图)在iOS设备中A11+的GPU都具备该特性,所以在iOS设备中,会走Sparse Texture(稀疏贴图)的分支,Android设备中该特性也支持率非常低。TBDR(贴图延迟渲染)分支的优点在于:当前移动端设备GPU结构已几乎全部为Tile Based(基于贴图)架构,TBDR(贴图延迟渲染)分支流程在可控的Tile Buffer(贴图缓冲区)上将获得在带宽传输方面巨大的性能提升,不需要Special Hardware Feature(特殊硬件功能)支持;缺点在于:性能不如基于Sparse Texture(稀疏贴图)的分支流程。
相关技术的GPU Driven(GPU驱动)渲染流程中GPU Driven TBDR(贴图延迟渲染GPU驱动)所有Buffer(缓存区)都位于System Memory(系统存储器)中,导致System Memory(系统存储器)占用大量的宽带开销,而移动设备受限于设备和内部主板的面积,不能向PC端一样设置高宽带,进而导致移动设备的GPU渲染能力有限。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种稀疏渲染的数据驱动方法及装置、存储介质、电子装置。
根据本发明的一个实施例,提供了一种稀疏渲染的数据驱动方法,包括:在移动设备中构建渲染对象的层次Z缓冲数据;在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;将所述贴图数据从所述GPU传输至可见缓冲区中;在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
可选的,在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据包括:向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;基于所述预设贴图坐标信息构建几何坐标系,采用所述数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
可选的,根据所述稀疏贴图的贴图状态加载数据内容包括:若所述稀疏贴图的贴图状态为映射状态,将所述稀疏贴图的纹理信息加载至所述GPU的高速缓冲存储器,再向渲染器返回所述纹理信息;若所述稀疏贴图的贴图状态为未映射状态,将预设空数据加载至高速缓冲存储器,再向渲染器返回所述预设空数据。
可选的,向渲染器请求稀疏贴图的像素数据包括:判断当前请求的像素数据是否存储在所述GPU的高速缓冲存储器中;若当前请求的像素数据存储在高速缓冲存储器中,从所述高速缓冲存储器向渲染器传输所述像素数据;若当前请求的像素数据未存储在所述高速缓冲存储器中,增加批处理批处理的计数次数,并确定根据所述稀疏贴图的贴图状态加载数据内容。
可选的,在根据所述稀疏贴图的贴图状态加载数据内容之后,所述方法还包括:判断所述像素数据在当前级的纹理中是否加载完成;若所述像素数据在当前级的纹理中未加载完成,将剩余的像素数据回滚至下一级纹理,直到加载完成。
可选的,在移动设备构建渲染对象的层次Z缓冲数据包括:从所述移动设备的系统存储器的深度缓冲区读取所述渲染对象上一帧的深度数据;将所述深度数据从所述深度缓冲区传输至所述移动设备的GPU,并在所述GPU中基于所述深度数据构建所述渲染对象的层次Z缓冲数据。
根据本发明的另一个实施例,提供了一种稀疏渲染的数据驱动装置,包括:构建模块,用于在移动设备中构建渲染对象的层次Z缓冲数据;处理模块,用于在所述GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;传输模块,用于将所述贴图数据从所述GPU传输至可见缓冲区中;渲染模块,用于在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
可选的,所述渲染模块包括:请求单元,用于向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;加载单元,用于根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;构建单元,用于基于所述预设贴图坐标信息构建几何坐标系,采用数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
可选的,所述加载单元还包括:第一加载子单元,用于若所述稀疏贴图的贴图状态为映射状态,将所述稀疏贴图的纹理信息加载至所述GPU的高速缓冲存储器,再向渲染器返回所述纹理信息;第二加载子单元,用于若所述稀疏贴图的贴图状态为未映射状态,将预设空数据加载至高速缓冲存储器,再向渲染器返回所述预设空数据。
可选的,所述请求单元还包括:判断子单元,用于判断当前请求的像素数据是否存储在所述GPU的高速缓冲存储器中;处理子单元,用于若当前请求的像素数据存储在高速缓冲存储器中,从所述高速缓冲存储器向渲染器传输所述像素数据;若当前请求的像素数据未存储在所述高速缓冲存储器中,增加批处理批处理的计数次数,并确定根据所述稀疏贴图的贴图状态加载数据内容。
可选的,所述渲染模块还包括:判断单元,用于在所述加载单元根据所述稀疏贴图的贴图状态加载数据内容之后,判断所述像素数据在当前级的纹理中是否加载完成;回滚单元,用于若所述像素数据在当前级的纹理中未加载完成,将剩余的像素数据回滚至下一级纹理,直到加载完成。
可选的,所述构建模块包括:读取单元,用于从所述移动设备的系统存储器的深度缓冲区读取所述渲染对象上一帧的深度数据;构建单元,用于将所述深度数据从所述深度缓冲区传输至所述移动设备的GPU,并在所述GPU中基于所述深度数据构建所述渲染对象的层次Z缓冲数据。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,在移动设备中构建渲染对象的层次Z缓冲数据,在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据,将所述贴图数据从所述GPU传输至可见缓冲区中;在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染,利用将与当前帧要绘制的全部贴图数据相关的贴图都通过稀疏贴图来获取,构建出相关的几何数据,同时通过将层次Z缓冲数据传输和存储至贴图存储区,将系统存储器的数据分流至贴图存储区进行中转传输,可以减少系统存储器的存储压力和传输带宽,解决了相关技术在贴图延迟渲染时系统内存占用和带宽开销过大的技术问题,均衡了GPU驱动通道中的内存分布,提高了整个GPU驱动的数据传输速度和画面渲染速度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种稀疏渲染的数据驱动手机的硬件结构框图;
图2是根据本发明实施例的一种稀疏渲染的数据驱动方法的流程图;
图3是本发明实施例中稀疏贴图的流程示意图;
图4是本发明实施例的稀疏贴图的时序图;
图5是根据本发明实施例的一种稀疏渲染的数据驱动装置的结构框图;
图6是本发明实施例的一种电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请实施例一所提供的方法实施例可以在手机、平板或者类似的移动终端中执行。以运行在手机上为例,图1是本发明实施例的一种稀疏渲染的数据驱动手机的硬件结构框图。如图1所示,手机10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述手机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述手机的结构造成限定。例如,手机10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储手机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种稀疏渲染的数据驱动方法对应的手机程序,处理器102通过运行存储在存储器104内的手机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至手机10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括手机10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种稀疏渲染的数据驱动方法,图2是根据本发明实施例的一种稀疏渲染的数据驱动方法的流程图,如图2所示,该流程包括:
步骤S202,在移动设备中构建渲染对象的HZB(层次Z缓冲,Hierarchical-Zbuffer)数据;
本实施例的本实施例的移动设备可以是IOS设备,或者是采用类似CPU构架的电子设备,渲染对象是待使用GPU进行渲染和展示的图像数据。
步骤S204,在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;
在本实施例中,Occlusion Culling(遮挡剔除)是当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。遮挡剔除在3D图形计算中并不是自动进行的。因为在绝大多数情况下离camera(相机)最远的物体首先被渲染,靠近摄像机的物体后渲染并覆盖先前渲染的物体,遮挡剔除不同于视锥体剔除,视锥体剔除只是不渲染摄像机视角范围外的物体而对于被其他物体遮挡但依然在视角范围内的物体,则不会被剔除,当使用遮挡剔除时依然受益于Frustum Culling(视锥体剔除)。通过剔除视锥体和遮挡物,可以减少渲染数据,在不改变输出图像的前提下提高渲染速度。
步骤S206,将所述贴图数据从所述GPU传输至可见缓冲区中;
步骤S208,在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
通过上述步骤,在移动设备中构建渲染对象的层次Z缓冲数据,在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据,将所述贴图数据从所述GPU传输至可见缓冲区中;在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染,利用将与当前帧要绘制的全部贴图数据相关的贴图都通过稀疏贴图来获取,构建出相关的几何数据,同时通过将层次Z缓冲数据传输和存储至贴图存储区,将系统存储器的数据分流至贴图存储区进行中转传输,可以减少系统存储器的存储压力和传输带宽,解决了相关技术在贴图延迟渲染时系统内存占用和带宽开销过大的技术问题,均衡了GPU驱动通道中的内存分布,提高了整个GPU驱动的数据传输速度和画面渲染速度。
可选的,在移动设备中构建渲染对象的层次Z缓冲数据之后,还包括:将所述层次Z缓冲数据传输至所述移动设备的贴图存储区Tile Memory(贴图存储区)的Hi-Z Buffer(层次Z缓冲区)中;将所述层次Z缓冲数据从所述Tile Memory(贴图存储区)传输至所述移动设备的图像处理器GPU。
本实施例的Tile Memory(贴图存储区)是移动设备上独立于CPU、GPU、SystemMemory(系统存储器)的存储区域,是位于设备端靠近GPU的集成存储芯片。Tile Memory(贴图存储区)与移动设备的系统存储器连接,CPU、GPU、系统存储器一起组成移动设备的GPUDriven Pipeline(GPU驱动管线)。
在本实施例的一个实施方式中,在所述Visibility Buffer(可见缓冲区)中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据包括:向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;基于所述预设贴图坐标信息构建几何坐标系,采用数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
可选的,在根据所述稀疏贴图的贴图状态加载数据内容之后,还包括:判断所述像素数据在当前级的纹理中是否加载完成;若所述像素数据在当前级的纹理中未加载完成,将剩余的像素数据回滚至下一级纹理,直到加载完成。
在Sparse Texture(稀疏贴图)中,将与当前帧要绘制的全部Primitive(图元)相关的texture(贴图)都通过Sparse Texture(稀疏贴图)来获取,那么与之相关的Geometryinfo(几何数据)也就可以重构出来了,在Visibility Buffer(可见缓冲区)中额外保存一套uv信息(预设贴图坐标信息),结合Sparse Texture(稀疏贴图)来重建Geometry info(几何数据),这样就不需要GBuffer Pass(G缓冲区通道)了,可以进一步提高渲染效率。
可选的,根据所述稀疏贴图的贴图状态加载数据内容包括:若所述稀疏贴图的贴图状态为映射状态,将所述稀疏贴图的纹理信息加载至所述GPU的Cache(高速缓冲存储器),再向渲染器返回所述纹理信息;若所述稀疏贴图的贴图状态为未映射状态,将预设空数据加载至Cache(高速缓冲存储器),再向渲染器返回所述预设空数据。
可选的,向渲染器请求稀疏贴图的像素数据包括:判断当前请求的像素数据是否存储在所述GPU的Cache(高速缓冲存储器)中;若当前请求的像素数据存储在Cache(高速缓冲存储器)中,从所述Cache(高速缓冲存储器)向渲染器传输所述像素数据;若当前请求的像素数据未存储在所述Cache(高速缓冲存储器)中,增加批处理batching bufer(批处理)的计数次数,并确定根据所述稀疏贴图的贴图状态加载数据内容。
图3是本发明实施例中稀疏贴图的流程示意图,当Shader(渲染器)发起采样命令时,先检查采样像素是否位于Cache(高速缓冲存储器)中,如果在则直接返回像素给Shader(渲染器);如果不在,继续以下步骤;增加Counter(计数器)计数,向Sparse Tile(稀疏贴图)请求像素数据,如果Sparse Tile(稀疏贴图)是mapped(映射)状态,则加载texture(贴图数据)到Cache(高速缓冲存储器),再返回给Shader(渲染器);如果是unmapped(未映射)状态,则加载0字节的数据到Cache(高速缓冲存储器),向shader(渲染器)中返回空内容。
通过引入了Counter(计数器)机制,Sparse Texture(稀疏贴图)支持HardwareCounter(硬件计数器),为了评估经常访问的Texture区域,提高Cache(高速缓冲存储器)命中率。Counter(计数器)计数增加是发生在Cache(高速缓冲存储器)Miss(丢失)时,而非请求的采样像素不存在时。
在Shader(渲染器)采样Sparse Texture(稀疏贴图)采用的是一种Fallback(回调)机制,在请求的mip(多级纹理)未加载完成时,会fallback(回调)到下一层mip(多级纹理)显示。
在GPU渲染过程中,除了几何数据之外,还包括Light Grid Culling(光栅剔除)数据,通过将缓存光栅剔除数据存储buff(缓存区)放置在Tile Memory(贴图存储区)中,可以进一步节省系统存储器的带宽,提高渲染速度。
在渲染光栅剔除数据时,本实施例的方案还执行以下流程:从所述GPU中获取光栅剔除数据;将所述光栅剔除数据从所述GPU传输至所述Tile Memory(贴图存储区)的光源列表Light List(光源列表)中;从所述Light List(光源列表)将所述光栅剔除数据传输至所述GPU进行渲染。
图4是本发明实施例的稀疏贴图的时序图,在设置了Tile Memory Feature(贴图存储区特征)之后,尽可能的将Buffer(缓存区)都置于Tile Memory(贴图存储区)中,以节省带宽开销,本实施例的TBDR流程在时序上执行了如下优化:Hi-Z Buffer(层次Z缓冲区)、Light List(光源列表)、Visibility Buffer(可见缓冲区)可从System Memory(系统存储器)中移到Tile Memory(贴图存储区)中,在Visibility Buffer(可见缓冲区)中结合Sparse Texture(稀疏贴图)来重建Geometry info(几何数据),这样就不需要GBufferPass(G缓冲区通道)了。
在本实施例的一个实施方式中,在移动设备构建渲染对象的层次Z缓冲数据包括:从所述移动设备的系统存储器的深度缓冲区DepthBuffer(深度缓冲区)读取所述渲染对象上一帧的深度数据;将所述深度数据从所述深度缓冲区传输至所述移动设备的GPU,并在所述GPU中基于所述深度数据构建所述渲染对象的层次Z缓冲数据。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种稀疏渲染的数据驱动装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的一种稀疏渲染的数据驱动装置的结构框图,应用在移动端,如图5所示,该装置包括:构建模块50,处理模块52,传输模块54,渲染模块56,其中,
构建模块50,用于在移动设备中构建渲染对象的层次Z缓冲数据;
处理模块52,用于在所述GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;
传输模块54,用于将所述贴图数据从所述GPU传输至可见缓冲区中;
渲染模块56,用于在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
可选的,所述渲染模块包括:请求单元,用于向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;加载单元,用于根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;构建单元,用于基于所述预设贴图坐标信息构建几何坐标系,采用数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
可选的,所述加载单元还包括:第一加载子单元,用于若所述稀疏贴图的贴图状态为映射状态,将所述稀疏贴图的纹理信息加载至所述GPU的高速缓冲存储器,再向渲染器返回所述纹理信息;第二加载子单元,用于若所述稀疏贴图的贴图状态为未映射状态,将预设空数据加载至高速缓冲存储器,再向渲染器返回所述预设空数据。
可选的,所述请求单元还包括:判断子单元,用于判断当前请求的像素数据是否存储在所述GPU的高速缓冲存储器中;处理子单元,用于若当前请求的像素数据存储在高速缓冲存储器中,从所述高速缓冲存储器向渲染器传输所述像素数据;若当前请求的像素数据未存储在所述高速缓冲存储器中,增加批处理批处理的计数次数,并确定根据所述稀疏贴图的贴图状态加载数据内容。
可选的,所述渲染模块还包括:判断单元,用于在所述加载单元根据所述稀疏贴图的贴图状态加载数据内容之后,判断所述像素数据在当前级的纹理中是否加载完成;回滚单元,用于若所述像素数据在当前级的纹理中未加载完成,将剩余的像素数据回滚至下一级纹理,直到加载完成。
可选的,所述构建模块包括:读取单元,用于从所述移动设备的系统存储器的深度缓冲区读取所述渲染对象上一帧的深度数据;构建单元,用于将所述深度数据从所述深度缓冲区传输至所述移动设备的GPU,并在所述GPU中基于所述深度数据构建所述渲染对象的层次Z缓冲数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本申请实施例还提供了一种电子设备,图6是本发明实施例的一种电子设备的结构图,如图6所示,包括处理器61、通信接口62、存储器63和通信总线64,其中,处理器61,通信接口62,存储器63通过通信总线64完成相互间的通信,存储器63,用于存放计算机程序;处理器61,用于执行存储器63上所存放的程序时,实现如下步骤:在移动设备中构建渲染对象的层次Z缓冲数据;在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;将所述贴图数据从所述GPU传输至可见缓冲区中;在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
可选的,在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据包括:向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;基于所述预设贴图坐标信息构建几何坐标系,采用所述数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
可选的,根据所述稀疏贴图的贴图状态加载数据内容包括:若所述稀疏贴图的贴图状态为映射状态,将所述稀疏贴图的纹理信息加载至所述GPU的高速缓冲存储器,再向渲染器返回所述纹理信息;若所述稀疏贴图的贴图状态为未映射状态,将预设空数据加载至高速缓冲存储器,再向渲染器返回所述预设空数据。
可选的,向渲染器请求稀疏贴图的像素数据包括:判断当前请求的像素数据是否存储在所述GPU的高速缓冲存储器中;若当前请求的像素数据存储在高速缓冲存储器中,从所述高速缓冲存储器向渲染器传输所述像素数据;若当前请求的像素数据未存储在所述高速缓冲存储器中,增加批处理批处理的计数次数,并确定根据所述稀疏贴图的贴图状态加载数据内容。
可选的,在根据所述稀疏贴图的贴图状态加载数据内容之后,所述方法还包括:判断所述像素数据在当前级的纹理中是否加载完成;若所述像素数据在当前级的纹理中未加载完成,将剩余的像素数据回滚至下一级纹理,直到加载完成。
可选的,在移动设备构建渲染对象的层次Z缓冲数据包括:从所述移动设备的系统存储器的深度缓冲区读取所述渲染对象上一帧的深度数据;将所述深度数据从所述深度缓冲区传输至所述移动设备的GPU,并在所述GPU中基于所述深度数据构建所述渲染对象的层次Z缓冲数据。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的稀疏渲染的数据驱动方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的稀疏渲染的数据驱动方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种稀疏渲染的数据驱动方法,其特征在于,包括:
在移动设备中构建渲染对象的层次Z缓冲数据;
在所述移动设备的GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;
将所述贴图数据从所述GPU传输至可见缓冲区中;
在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
2.根据权利要求1所述的方法,其特征在于,在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据包括:
向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;
根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;
基于所述预设贴图坐标信息构建几何坐标系,采用所述数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
3.根据权利要求2所述的方法,其特征在于,根据所述稀疏贴图的贴图状态加载数据内容包括:
若所述稀疏贴图的贴图状态为映射状态,将所述稀疏贴图的纹理信息加载至所述GPU的高速缓冲存储器,再向渲染器返回所述纹理信息;若所述稀疏贴图的贴图状态为未映射状态,将预设空数据加载至高速缓冲存储器,再向渲染器返回所述预设空数据。
4.根据权利要求2所述的方法,其特征在于,向渲染器请求稀疏贴图的像素数据包括:
判断当前请求的像素数据是否存储在所述GPU的高速缓冲存储器中;
若当前请求的像素数据存储在高速缓冲存储器中,从所述高速缓冲存储器向渲染器传输所述像素数据;若当前请求的像素数据未存储在所述高速缓冲存储器中,增加批处理批处理的计数次数,并确定根据所述稀疏贴图的贴图状态加载数据内容。
5.根据权利要求2所述的方法,其特征在于,在根据所述稀疏贴图的贴图状态加载数据内容之后,所述方法还包括:
判断所述像素数据在当前级的纹理中是否加载完成;
若所述像素数据在当前级的纹理中未加载完成,将剩余的像素数据回滚至下一级纹理,直到加载完成。
6.根据权利要求1所述的方法,其特征在于,在移动设备构建渲染对象的层次Z缓冲数据包括:
从所述移动设备的系统存储器的深度缓冲区读取所述渲染对象上一帧的深度数据;
将所述深度数据从所述深度缓冲区传输至所述移动设备的GPU,并在所述GPU中基于所述深度数据构建所述渲染对象的层次Z缓冲数据。
7.一种稀疏渲染的数据驱动装置,其特征在于,包括:
构建模块,用于在移动设备中构建渲染对象的层次Z缓冲数据;
处理模块,用于在GPU中基于所述层次Z缓冲数据对所述渲染对象进行视锥体剔除和/或遮挡剔除,得到贴图数据;
传输模块,用于将所述贴图数据从所述GPU传输至可见缓冲区中;
渲染模块,用于在所述可见缓冲区中基于所述贴图数据和预设贴图坐标信息采用稀疏贴图构建所述渲染对象的几何数据,并将所述几何数据传输至所述GPU进行渲染。
8.根据权利要求7所述的装置,其特征在于,所述渲染模块包括:
请求单元,用于向渲染器请求稀疏贴图的像素数据,其中,所述稀疏贴图是加载内存中的最小纹理单元;
加载单元,用于根据所述稀疏贴图的贴图状态加载数据内容,其中,所述贴图状态包括映射状态和未映射状态;
构建单元,用于基于所述预设贴图坐标信息构建几何坐标系,采用数据内容和所述贴图数据在所述几何坐标系中构建所述渲染对象的几何数据。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598856.5A CN112614041B (zh) | 2020-12-29 | 2020-12-29 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
PCT/CN2021/121481 WO2022142546A1 (zh) | 2020-12-29 | 2021-09-28 | 稀疏渲染的数据驱动方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598856.5A CN112614041B (zh) | 2020-12-29 | 2020-12-29 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112614041A true CN112614041A (zh) | 2021-04-06 |
CN112614041B CN112614041B (zh) | 2022-10-25 |
Family
ID=75248899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011598856.5A Active CN112614041B (zh) | 2020-12-29 | 2020-12-29 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112614041B (zh) |
WO (1) | WO2022142546A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114581596A (zh) * | 2022-02-25 | 2022-06-03 | 北京构力科技有限公司 | 基于图形处理单元gpu驱动的几何形体快速渲染的方法 |
WO2022142546A1 (zh) * | 2020-12-29 | 2022-07-07 | 完美世界(北京)软件科技发展有限公司 | 稀疏渲染的数据驱动方法及装置、存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117541744B (zh) * | 2024-01-10 | 2024-04-26 | 埃洛克航空科技(北京)有限公司 | 一种城市级实景三维图像的渲染方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889128A (zh) * | 2006-07-17 | 2007-01-03 | 北京航空航天大学 | 基于gpu的预计算辐射度传递全频阴影的方法 |
CN101527051A (zh) * | 2009-03-26 | 2009-09-09 | 北京像素软件科技股份有限公司 | 基于大气散射原理对天空进行渲染的方法和装置 |
CN105809728A (zh) * | 2015-01-19 | 2016-07-27 | 想象技术有限公司 | 在图形处理单元中渲染场景的视图 |
WO2017095617A1 (en) * | 2015-12-03 | 2017-06-08 | Qualcomm Incorporated | Writing graphics data from local memory to system memory |
CN107025681A (zh) * | 2016-02-01 | 2017-08-08 | 想象技术有限公司 | 稀疏渲染 |
CN108648254A (zh) * | 2018-04-27 | 2018-10-12 | 中科创达软件股份有限公司 | 一种图像渲染方法及装置 |
CN111311478A (zh) * | 2020-03-23 | 2020-06-19 | 南京芯瞳半导体技术有限公司 | 一种gpu渲染核数据的预读取方法、装置及计算机存储介质 |
CN111476858A (zh) * | 2020-04-10 | 2020-07-31 | 浙江无端科技股份有限公司 | 一种基于WebGL的2d引擎渲染方法、装置及设备 |
CN111508053A (zh) * | 2020-04-26 | 2020-08-07 | 网易(杭州)网络有限公司 | 模型的渲染方法、装置、电子设备及计算机可读介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940279B2 (en) * | 2007-03-27 | 2011-05-10 | Utah State University | System and method for rendering of texel imagery |
US8284197B2 (en) * | 2008-07-11 | 2012-10-09 | Advanced Micro Devices, Inc. | Method and apparatus for rendering instance geometry |
WO2019088865A1 (ru) * | 2017-11-01 | 2019-05-09 | Вебгирз А Гэ | Способ и система удаления невидимых поверхностей трёхмерной сцены |
US10896525B2 (en) * | 2019-05-31 | 2021-01-19 | Apple Inc. | Graphics system and method for use of sparse textures |
CN112614041B (zh) * | 2020-12-29 | 2022-10-25 | 完美世界(北京)软件科技发展有限公司 | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 |
-
2020
- 2020-12-29 CN CN202011598856.5A patent/CN112614041B/zh active Active
-
2021
- 2021-09-28 WO PCT/CN2021/121481 patent/WO2022142546A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889128A (zh) * | 2006-07-17 | 2007-01-03 | 北京航空航天大学 | 基于gpu的预计算辐射度传递全频阴影的方法 |
CN101527051A (zh) * | 2009-03-26 | 2009-09-09 | 北京像素软件科技股份有限公司 | 基于大气散射原理对天空进行渲染的方法和装置 |
CN105809728A (zh) * | 2015-01-19 | 2016-07-27 | 想象技术有限公司 | 在图形处理单元中渲染场景的视图 |
WO2017095617A1 (en) * | 2015-12-03 | 2017-06-08 | Qualcomm Incorporated | Writing graphics data from local memory to system memory |
CN107025681A (zh) * | 2016-02-01 | 2017-08-08 | 想象技术有限公司 | 稀疏渲染 |
CN108648254A (zh) * | 2018-04-27 | 2018-10-12 | 中科创达软件股份有限公司 | 一种图像渲染方法及装置 |
CN111311478A (zh) * | 2020-03-23 | 2020-06-19 | 南京芯瞳半导体技术有限公司 | 一种gpu渲染核数据的预读取方法、装置及计算机存储介质 |
CN111476858A (zh) * | 2020-04-10 | 2020-07-31 | 浙江无端科技股份有限公司 | 一种基于WebGL的2d引擎渲染方法、装置及设备 |
CN111508053A (zh) * | 2020-04-26 | 2020-08-07 | 网易(杭州)网络有限公司 | 模型的渲染方法、装置、电子设备及计算机可读介质 |
Non-Patent Citations (4)
Title |
---|
EEPW电子产品世界: ""GPU如何工作:PowerVR/高通Adreno/ARM Mali的渲染模式分析"", 《HTTP://WWW.EEPW.COM.CN/ARTICLE/201606/292810.HTM》, 20 June 2016 (2016-06-20), pages 1 - 22 * |
张汉清 等: ""基于GPU粒子系统的战场实时雨雪效果模拟"", 《计算机仿真》, vol. 24, no. 10, 15 October 2007 (2007-10-15), pages 200 - 203 * |
林克不叫塞尔达: ""GPU 架构杂乱备忘——IMR、TBR、TBDR"", 《HTTPS://JUEJIN.CN/POST/6844904132864655367》, 20 April 2020 (2020-04-20), pages 1 - 4 * |
王浩: ""智能手机上三维构建与渲染架构的研究与实现"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》, no. 03, 15 March 2018 (2018-03-15), pages 138 - 1765 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142546A1 (zh) * | 2020-12-29 | 2022-07-07 | 完美世界(北京)软件科技发展有限公司 | 稀疏渲染的数据驱动方法及装置、存储介质 |
CN114581596A (zh) * | 2022-02-25 | 2022-06-03 | 北京构力科技有限公司 | 基于图形处理单元gpu驱动的几何形体快速渲染的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022142546A1 (zh) | 2022-07-07 |
CN112614041B (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112614041B (zh) | 稀疏渲染的数据驱动方法及装置、存储介质、电子装置 | |
CN112614042B (zh) | 贴图延迟渲染的数据驱动方法及装置 | |
RU2661763C2 (ru) | Использование межкадровой когерентности в архитектуре построения изображений с сортировкой примитивов на промежуточном этапе | |
RU2412469C2 (ru) | Графическая система с конфигурируемыми кэшами | |
KR102147356B1 (ko) | 캐시 메모리 시스템 및 그 동작방법 | |
TWI582751B (zh) | 避免發送未改變區域至顯示器之技術 | |
JP5684089B2 (ja) | デプスエンジンの動的な再配置を用いたグラフィックシステム | |
CN108022269A (zh) | 一种GPU压缩纹理存储Cache的建模结构 | |
US9251731B2 (en) | Multi-sampling anti-aliasing compression by use of unreachable bit combinations | |
WO2012109770A1 (en) | Techniques to request stored data from a memory | |
CN114529658A (zh) | 一种图形渲染方法及其相关设备 | |
US20220375186A1 (en) | Method and apparatus for generating bounding box, device and storage medium | |
US9336561B2 (en) | Color buffer caching | |
US20080055326A1 (en) | Processing of Command Sub-Lists by Multiple Graphics Processing Units | |
US11195248B2 (en) | Method and apparatus for processing pixel data of a video frame | |
WO2023169369A1 (zh) | 一种行人重识别方法、系统、装置、设备及介质 | |
CN111199569A (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
WO2023202366A1 (zh) | 图形处理器、系统、电子装置、设备及图形处理方法 | |
CN114445596B (zh) | 三维模型的显示方法、装置、设备及存储介质 | |
CN110384926B (zh) | 位置确定方法及装置 | |
CN107169917A (zh) | 矢量图形处理器不通过ddr完成图形图像实时绘制的装置 | |
CN114037795A (zh) | 一种不可见像素的剔除方法、装置及存储介质 | |
CN116977468A (zh) | 图像帧的绘制处理方法、装置、设备及介质 | |
CN116860782A (zh) | 图形处理器、系统、装置、设备及方法 | |
CN115563024A (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 |