CN107045437A - 一种实现批渲染的方法、装置和设备 - Google Patents
一种实现批渲染的方法、装置和设备 Download PDFInfo
- Publication number
- CN107045437A CN107045437A CN201610083256.2A CN201610083256A CN107045437A CN 107045437 A CN107045437 A CN 107045437A CN 201610083256 A CN201610083256 A CN 201610083256A CN 107045437 A CN107045437 A CN 107045437A
- Authority
- CN
- China
- Prior art keywords
- drawing object
- batch
- viewing area
- screen
- screen viewing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种实现批渲染的方法、装置和设备,其中方法包括:从待渲染数据帧中获取各图形对象;判断各图形对象是否在屏幕可视区域之外;对处于屏幕可视区域之外的图形对象不进行批渲染处理。通过本发明,处于屏幕可视区域之外的图形对象CPU不会提交给GPU,也不会占用显存空间,GPU也不会对其进行渲染处理,显然节约CPU、显存以及GPU等的处理资源,提高了渲染性能。
Description
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种实现批渲染的方法、装置和设备。
【背景技术】
当前批渲染技术已经被绝大多数图形引擎和图形框架所采用,其基本原理就是通过将一些渲染状态一致的图形对象放入一个批渲染对象(通常称为batch)中,从而一次提交给GPU(Graphics Processing Unit,图形处理器)进行绘制。这样CPU仅需要执行一次提交,减少了CPU的负担,对GPU而言也不用多次切换渲染状态,也减少了GPU的负担。
然而,在对一帧数据进行渲染时,例如对一个系统操作界面进行渲染,该系统操作界面中的所有渲染状态一致的图形对象都被放入batch中,然后被传入显存并最终被渲染。这其中,将所有渲染状态一致的图形对象都放入batch,并传入显存进行渲染,从而占用较多CPU、显存以及GPU等的处理资源。
【发明内容】
有鉴于此,本发明提供了一种实现批渲染的方法、装置和设备,以便于节约CPU、显存以及GPU等的处理资源。
具体技术方案如下:
本发明提供了一种实现批渲染的方法,该方法包括:
从待渲染数据帧中获取各图形对象;
判断各图形对象是否在屏幕可视区域之外;
对处于屏幕可视区域之外的图形对象不进行批渲染处理。
根据本发明一优选实施方式,所述判断各图形对象是否在屏幕可视区域之外包括:
分别确定各图形对象的包围盒;
基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外。
根据本发明一优选实施方式,所述基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外包括:
将图形对象的包围盒在几何空间的坐标映射到屏幕所在的像素空间的坐标;
若映射后得到的包围盒的坐标均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
根据本发明一优选实施方式,所述判断各图形对象是否在屏幕可视区域之外包括:
确定图形对象在几何空间的最大坐标值和最小坐标值;
将所述最大坐标值和最小坐标值分别映射到屏幕所在的像素空间的坐标;
若映射后得到的最大坐标值对应的点和最小坐标值对应的点均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
根据本发明一优选实施方式,所述对处于屏幕可视区域之外的图形对象不进行批渲染处理包括:
遍历各图形对象;
如果当前遍历到的图形对象处于屏幕可视区域之外,则继续遍历下一个图形对象;否则,将当前遍历到的图形对象加入批渲染对象batch。
根据本发明一优选实施方式,所述将当前遍历到的图形对象加入batch包括:
判断当前已有的batch中是否已经存在与当前遍历到的图形对象的渲染状态一致的图形对象,如果是,则将当前遍历到的图形对象放入与其渲染状态一致的图形对象所在的batch;否则,创建一个新的batch,将当前遍历到的图形对象放入该新的batch。
根据本发明一优选实施方式,该方法还包括:
将形成的各batch提交给图形处理器GPU,以便GPU对各batch中的图形对象进行批渲染。
本发明还提供了一种实现批渲染的装置,该装置包括:
获取单元,用于从待渲染数据帧中获取各图形对象;
判断单元,用于判断各图形对象是否在屏幕可视区域之外;
批处理单元,用于对处于屏幕可视区域之外的图形对象不进行批渲染处理。
根据本发明一优选实施方式,所述判断单元,具体用于分别确定各图形对象的包围盒;基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外。
根据本发明一优选实施方式,所述判断单元在基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外时,具体执行:
将图形对象的包围盒在几何空间的坐标映射到屏幕所在的像素空间的坐标;
若映射后得到的包围盒的坐标均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
根据本发明一优选实施方式,所述判断单元,具体用于:
确定图形对象在几何空间的最大坐标值和最小坐标值;
将所述最大坐标值和最小坐标值分别映射到屏幕所在的像素空间的坐标;
若映射后得到的最大坐标值对应的点和最小坐标值对应的点均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
根据本发明一优选实施方式,所述批处理单元,具体用于:
遍历各图形对象;
如果当前遍历到的图形对象处于屏幕可视区域之外,则继续遍历下一个图形对象;否则,将当前遍历到的图形对象加入batch。
根据本发明一优选实施方式,所述批处理单元在将当前遍历到的图形对象加入batch时,具体执行:
判断当前已有的batch中是否已经存在与当前遍历到的图形对象的渲染状态一致的图形对象,如果是,则将当前遍历到的图形对象放入与其渲染状态一致的图形对象所在的batch;否则,创建一个新的batch,将当前遍历到的图形对象放入该新的batch。
根据本发明一优选实施方式,该装置还包括:
提交单元,用于将形成的各batch提交给图形处理器GPU,以便GPU对各batch中的图形对象进行批渲染。
本发明还提供了一种设备,包括
一个或者多个处理器;
存储器;
一个或者多个程序,所述一个或者多个程序存储在所述存储器中,被所述一个或者多个处理器执行以实现如下操作:
从待渲染数据帧中获取各图形对象;
判断各图形对象是否在屏幕可视区域之外;
对处于屏幕可视区域之外的图形对象不进行批渲染处理。
由以上技术方案可以看出,本发明对待渲染数据帧中的图形对象会进行是否在屏幕可视区域之外的判断,对于处于屏幕可视区域之外的图形对象并不进行批渲染处理,这些处于屏幕可视区域之外的图形对象不会提交给GPU,也不会占用显存空间,GPU也不会对其进行渲染处理,显然节约CPU、显存以及GPU等的处理资源,提高了渲染性能。
【附图说明】
图1为本发明实施例提供的主要方法流程图;
图2为本发明实施例提供的一种包围盒的示意图;
图3a~图3c为本发明实施例提供的包围盒与屏幕所在坐标区域之间位置关系的示意图;
图4为本发明实施例提供的图形对象最大坐标和最小坐标的示意图;
图5为本发明实施例提供的一种优选方法流程图;
图6为本发明实施例提供的一种装置结构图;
图7为本发明实施例提供的设备结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1为本发明实施例提供的主要方法流程图,如图1中所示,该方法可以主要包括以下步骤:
在101中,从待渲染数据帧中获取各图形对象。
在每一个待渲染的数据帧中都可能会包含若干图像文件,例如某个待渲染的UI界面上存在一些icon(图标),每一个icon都是一个图像文件。在本步骤中首先从数据帧中获取各图像文件。
通常待渲染数据帧中的各图形对象处了包含图形数据之外,还会包含渲染状态。其中渲染状态可以包括但不限于着色状态、填充状态、反走样状态、纹理透视状态、明暗处理状态、雾化状态、平滑状态等。
在102中,判断各图形对象是否在屏幕可视区域之外。
在本发明实施例中,本步骤可以采用但不限于以下两种方式实现:
第一种方式:基于图形对象的包围盒,判断图形对象是否在屏幕可视区域之外。
在这种方式中,首先确定图形对象的包围盒,包围盒的基本思想是用体积稍大且特性简单的几何体来近似地代替复杂的几何对象,该包围盒完全包围图形对象所在区域,常用的包围盒形式可以包括包围矩形、包围圆形、包围三角形等等,对于三维平面而言,也可以采用包围立方体、包围球等等。以包围矩形为例,在几何空间的坐标系(通常图形对象均采用几何空间的坐标系)中,该包围矩形左右两边平行于Y轴,上下两边平行于X轴,包围矩形可以采用图形对象的外接矩形的方式。假设某图形对象为一个不规则几何体,其包围矩形可以如图2中所示。当然也可以不采用外接的方式,而保留一定距离。
然后将图形对象的包围盒在几何空间的坐标映射到屏幕所在的像素空间的坐标,若映射后得到的包围盒的坐标均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。如图3a中所示,若包围盒映射后的坐标与屏幕所在的坐标区域完全不相交,则确定对应图形对象在屏幕可视区域之外。如图3b中所示,若包围盒映射后的坐标与屏幕所在的坐标区域存在部分相交,则确定对应图形对象部分在屏幕可视区域之内。如图3c中所示,若包围盒映射后的坐标与屏幕所在的坐标区域完全相交,即落入屏幕所在的坐标区域,则确定赌赢图形对象在屏幕可视区域之内。
第二种方式:基于图形对象的最大坐标值和最小坐标值,判断图形对象是否在屏幕可视区域之外。
首先确定图形对象在几何空间的最大坐标值和最小坐标值,然后将最大坐标值和最小坐标值分别映射到屏幕所在的像素空间的坐标。若映射后得到的最大坐标值对应的点和最小坐标值对应的点均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
举个例子,如图4所示的图形对象找出其最大坐标和最小坐标,其Y轴最大坐标和最小坐标分别为ymax和ymin,X轴最大坐标和最小坐标分别为xmax和xmin,分别映射到屏幕所在的坐标区域后得到的最大坐标和最小坐标分别为ymax’和ymin’,xmax’和xmin’,最大坐标值对应的点为(xmax’,ymax’),最小坐标值对应的点为(xmin’,ymin’),若这两个点均未在屏幕所在的坐标区域,则确定该图形对象处于屏幕可视区域之外;若这两个点均落在屏幕所在的坐标区域之内,则确定该图形对象处于屏幕可视区域之内;若这两个点中有一个落在屏幕所在的坐标区域之内,则确定该图形对象部分处于屏幕可视区域之内。
在103中,对于处于屏幕可视区域之外的图形对象不进行批渲染处理。
对于处于屏幕可视区域之外的图形对象,因为其即便被渲染最终也不会显示于屏幕之上,因此不需要进行批渲染处理,即不需要将其加入batch。而对于处于屏幕可视区域之内或者部分处于屏幕可视区域之内的图形对象,需要将其加入batch。在将图形对象加入batch的过程中,遵循将渲染状态一致的图形对象放入同一batch的原则。
下面结合图5对上述方法进行详细描述。图5为本发明实施例提供的一种优选方法流程图,如图5中所示,该方法可以具体包括以下步骤:
在501中,从待渲染数据帧中获取各图形对象,遍历各图形对象并分别执行以下步骤:
在502中,确定当前遍历到的图形对象的包围盒。
在503中,基于当前遍历到的图形对象的包围盒,判断该图形对象是否在屏幕可视区域之外,如果是,执行507;否则,执行504。
包围盒的确定方式以及基于包围盒对图形对象是否处于屏幕可视区域之外的判断可以采用图1所示实施例步骤102中所描述的方式,在此不再赘述。
另外,需要说明的是,可以对图形对象进行遍历时,确定图形对象的包围盒以及基于包围盒判断图形对象是否处于屏幕可视区域之外。也可以对步骤501获取的所有图形对象均分别确定包围盒并基于包围盒分别判断各图形对象是否处于屏幕可视区域之外,然后再遍历各处于屏幕可视区域之内或部分处于屏幕可视区域之内的图形对象,并针对遍历到的图形对象执行504,在这种情况下在下述步骤507中判断结果为是的分支,对遍历的下一个图形对象转至执行504。
在504中,判断当前已有的batch中是否已经存在与当前遍历到的图形对象的渲染状态一致的图形对象,如果是,执行505;否则,执行506。
在505中,将当前遍历到的图形对象放入与其渲染状态一致的图形对象所在的batch,执行507。
通过本步骤将渲染状态一致的图形对象放入同一个batch,使得后续GPU进行批渲染时,能够采用同一个渲染状态完成同一batch中所有图形对象的渲染,而不必频繁切换渲染状态,降低对GPU性能的影响且提高渲染效率(渲染状态的切换是很耗时的)。
在506中,创建一个新的batch,将当前遍历到的图形对象放入该新的batch。
在507中,判断是否存在未遍历的图形对象,如果是,继续遍历下一个图形对象转至执行502;否则,执行508。
当数据帧中所有图形对象都遍历完毕,则针对该数据帧的batch创建完成,所有batch中包含的图形对象都是屏幕可视区域之内或部分处于屏幕可视区域之内的图形对象,且每个batch中的图形对象具有一致的渲染状态。
在508中,将形成的各batch提交给GPU,以便GPU对各batch中的图形对象进行批渲染。
上述执行过程均在CPU中完成,在本步骤中,首先向GPU申请各batch所占用的显存空间,然后将各batch上传至显存空间中,由GPU对各batch中的图形对象进行批渲染。
需要说明的是,在本实施例中以一个数据帧都处理完毕后,将创建的batch提交给GPU。除了这种方式之外,也可以采用其他触发batch提交的方式,例当一个batch中的图形对象达到设定的容量上限时,可以触发该batch的提交。或者,batch的提交也可以是周期性的,例如在达到一定时间后,将已创建的batch进行提交。另外,一个batch中除了容纳一个数据帧中的图形对象之外,也可以容纳不同数据帧中的图形对象。
上述方法的执行主体可以为实现批渲染的装置,该装置可以是位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,其中应用可以是系统级应用,也可以是用户级应用。或者,该装置还可以位于服务器端,本发明实施例对此不进行特别限定。下面结合图6对上述的纹理图集创建装置进行详细描述。
图6为本发明实施例提供的一种装置结构图,如图6中所示,该装置可以包括:获取单元01、判断单元02和批处理单元03,还可以进一步包括提交单元04。各组成单元的主要功能如下:
获取单元01负责从待渲染数据帧中获取各图形对象。通常待渲染数据帧中的各图形对象处了包含图形数据之外,还会包含渲染状态。其中渲染状态可以包括但不限于着色状态、填充状态、反走样状态、纹理透视状态、明暗处理状态、雾化状态、平滑状态等。
判断单元02负责判断获取单元01获取的各图形对象是否在屏幕可视区域之外。具体地,判断单元02可以采用但不限于以下两种方式:
第一种方式:判断单元02分别确定各图形对象的包围盒;基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外。
其中在基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外时,可以将图形对象的包围盒在几何空间的坐标映射到屏幕所在的像素空间的坐标;若映射后得到的包围盒的坐标均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
第二种方式:基于图形对象的最大坐标值和最小坐标值,判断图形对象是否在屏幕可视区域之外。
判断单元02确定图形对象在几何空间的最大坐标值和最小坐标值;然后将最大坐标值和最小坐标值分别映射到屏幕所在的像素空间的坐标;若映射后得到的最大坐标值对应的点和最小坐标值对应的点均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
批处理单元03对处于屏幕可视区域之外的图形对象不进行批渲染处理。具体地,批处理单元03可以遍历各图形对象;如果当前遍历到的图形对象处于屏幕可视区域之外,则继续遍历下一个图形对象;否则,将当前遍历到的图形对象加入batch。
其中批处理单元03在将当前遍历到的图形对象加入batch时,可以判断当前已有的batch中是否已经存在与当前遍历到的图形对象的渲染状态一致的图形对象,如果是,则将当前遍历到的图形对象放入与其渲染状态一致的图形对象所在的batch;否则,创建一个新的batch,将当前遍历到的图形对象放入该新的batch。
当数据帧中所有图形对象都遍历完毕,则针对该数据帧的batch创建完成,所有batch中包含的图形对象都是屏幕可视区域之内或部分处于屏幕可视区域之内的图形对象,且每个batch中的图形对象具有一致的渲染状态。
提交单元04负责将形成的各batch提交给图形处理器GPU,以便GPU对各batch中的图形对象进行批渲染。具体地,提交单元04可以首先向GPU申请各batch所占用的显存空间,然后将各batch上传至显存空间中,由GPU对各batch中的图形对象进行批渲染。
本发明实施例提供的上述方法和装置可以以设置并运行于设备中的计算机程序体现。该设备可以包括一个或多个处理器,还包括存储器和一个或多个程序,如图7中所示。其中该一个或多个程序存储于存储器中,被上述一个或多个处理器执行以实现本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行的方法流程,可以包括:
从待渲染数据帧中获取各图形对象;
判断各图形对象是否在屏幕可视区域之外;
对处于屏幕可视区域之外的图形对象不进行批渲染处理。
本发明所提供的上述方法、装置和设备可以应用于用户终端系统层的图形引擎,例如负责进行系统级操作界面的图形绘制,也可以应用于用户终端应用层的图形引擎,例如负责进行应用级界面的图形绘制。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (15)
1.一种实现批渲染的方法,其特征在于,该方法包括:
从待渲染数据帧中获取各图形对象;
判断各图形对象是否在屏幕可视区域之外;
对处于屏幕可视区域之外的图形对象不进行批渲染处理。
2.根据权利要求1所述的方法,其特征在于,所述判断各图形对象是否在屏幕可视区域之外包括:
分别确定各图形对象的包围盒;
基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外。
3.根据权利要求2所述的方法,其特征在于,所述基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外包括:
将图形对象的包围盒在几何空间的坐标映射到屏幕所在的像素空间的坐标;
若映射后得到的包围盒的坐标均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
4.根据权利要求1所述的方法,其特征在于,所述判断各图形对象是否在屏幕可视区域之外包括:
确定图形对象在几何空间的最大坐标值和最小坐标值;
将所述最大坐标值和最小坐标值分别映射到屏幕所在的像素空间的坐标;
若映射后得到的最大坐标值对应的点和最小坐标值对应的点均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
5.根据权利要求1至4任一权项所述的方法,其特征在于,所述对处于屏幕可视区域之外的图形对象不进行批渲染处理包括:
遍历各图形对象;
如果当前遍历到的图形对象处于屏幕可视区域之外,则继续遍历下一个图形对象;否则,将当前遍历到的图形对象加入批渲染对象batch。
6.根据权利要求5所述的方法,其特征在于,所述将当前遍历到的图形对象加入batch包括:
判断当前已有的batch中是否已经存在与当前遍历到的图形对象的渲染状态一致的图形对象,如果是,则将当前遍历到的图形对象放入与其渲染状态一致的图形对象所在的batch;否则,创建一个新的batch,将当前遍历到的图形对象放入该新的batch。
7.根据权利要求5所述的方法,其特征在于,该方法还包括:
将形成的各batch提交给图形处理器GPU,以便GPU对各batch中的图形对象进行批渲染。
8.一种实现批渲染的装置,其特征在于,该装置包括:
获取单元,用于从待渲染数据帧中获取各图形对象;
判断单元,用于判断各图形对象是否在屏幕可视区域之外;
批处理单元,用于对处于屏幕可视区域之外的图形对象不进行批渲染处理。
9.根据权利要求8所述的装置,其特征在于,所述判断单元,具体用于分别确定各图形对象的包围盒;基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外。
10.根据权利要求9所述的装置,其特征在于,所述判断单元在基于各图形对象的包围盒分别判断各图形对象是否在屏幕可视区域之外时,具体执行:
将图形对象的包围盒在几何空间的坐标映射到屏幕所在的像素空间的坐标;
若映射后得到的包围盒的坐标均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
11.根据权利要求8所述的装置,其特征在于,所述判断单元,具体用于:
确定图形对象在几何空间的最大坐标值和最小坐标值;
将所述最大坐标值和最小坐标值分别映射到屏幕所在的像素空间的坐标;
若映射后得到的最大坐标值对应的点和最小坐标值对应的点均未落入屏幕所在的坐标区域,则确定该图形对象在屏幕可视区域之外。
12.根据权利要求8至11任一权项所述的装置,其特征在于,所述批处理单元,具体用于:
遍历各图形对象;
如果当前遍历到的图形对象处于屏幕可视区域之外,则继续遍历下一个图形对象;否则,将当前遍历到的图形对象加入batch。
13.根据权利要求12所述的装置,其特征在于,所述批处理单元在将当前遍历到的图形对象加入batch时,具体执行:
判断当前已有的batch中是否已经存在与当前遍历到的图形对象的渲染状态一致的图形对象,如果是,则将当前遍历到的图形对象放入与其渲染状态一致的图形对象所在的batch;否则,创建一个新的batch,将当前遍历到的图形对象放入该新的batch。
14.根据权利要求12所述的装置,其特征在于,该装置还包括:
提交单元,用于将形成的各batch提交给图形处理器GPU,以便GPU对各batch中的图形对象进行批渲染。
15.一种设备,包括
一个或者多个处理器;
存储器;
一个或者多个程序,所述一个或者多个程序存储在所述存储器中,被所述一个或者多个处理器执行以实现如下操作:
从待渲染数据帧中获取各图形对象;
判断各图形对象是否在屏幕可视区域之外;
对处于屏幕可视区域之外的图形对象不进行批渲染处理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610083256.2A CN107045437A (zh) | 2016-02-05 | 2016-02-05 | 一种实现批渲染的方法、装置和设备 |
PCT/CN2017/072403 WO2017133567A1 (zh) | 2016-02-05 | 2017-01-24 | 一种实现批渲染的方法、装置和设备 |
US16/053,375 US20190122421A1 (en) | 2016-02-05 | 2018-08-02 | Batch rendering method, device, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610083256.2A CN107045437A (zh) | 2016-02-05 | 2016-02-05 | 一种实现批渲染的方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107045437A true CN107045437A (zh) | 2017-08-15 |
Family
ID=59500593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610083256.2A Pending CN107045437A (zh) | 2016-02-05 | 2016-02-05 | 一种实现批渲染的方法、装置和设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190122421A1 (zh) |
CN (1) | CN107045437A (zh) |
WO (1) | WO2017133567A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470368A (zh) * | 2018-03-14 | 2018-08-31 | 北京奇艺世纪科技有限公司 | 一种虚拟场景中渲染对象的确定方法、装置及电子设备 |
CN109529346A (zh) * | 2018-11-21 | 2019-03-29 | 北京像素软件科技股份有限公司 | 扇形区域确定方法、装置及电子设备 |
CN110286992A (zh) * | 2019-07-02 | 2019-09-27 | 中国工商银行股份有限公司 | 界面图形重绘的方法及装置 |
CN110928628A (zh) * | 2019-11-22 | 2020-03-27 | 网易(杭州)网络有限公司 | 游戏元素的处理方法和装置、存储介质及处理器 |
CN113769402A (zh) * | 2021-09-16 | 2021-12-10 | 厦门极致互动网络技术股份有限公司 | 一种大地图可视区域分帧更新的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636724A (zh) * | 2018-12-11 | 2019-04-16 | 北京微播视界科技有限公司 | 一种列表界面的显示方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1152745A (zh) * | 1995-12-21 | 1997-06-25 | 三菱电机株式会社 | 移动显示框的窗口显示方式及采用该方式的数据处理系统 |
CN102523473A (zh) * | 2011-12-01 | 2012-06-27 | 中兴通讯股份有限公司 | 一种三维界面显示装置、方法及终端 |
CN102708585A (zh) * | 2012-05-09 | 2012-10-03 | 北京像素软件科技股份有限公司 | 一种渲染模型轮廓边缘的方法 |
US20130300754A1 (en) * | 2012-05-14 | 2013-11-14 | Cass W. Everitt | Cull streams for fine-grained rendering predication |
CN104156999A (zh) * | 2014-08-13 | 2014-11-19 | 广东威创视讯科技股份有限公司 | 一种三维场景渲染方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6232527A (ja) * | 1985-08-06 | 1987-02-12 | Hitachi Ltd | 表示画面制御方式 |
US5522020A (en) * | 1993-09-14 | 1996-05-28 | International Business Machines Corporation | System and method for rapidly determining relative rectangle position |
JP2001008384A (ja) * | 1999-06-21 | 2001-01-12 | Toshiba Corp | 系統画面表示装置および記録媒体 |
US8356247B2 (en) * | 2008-12-16 | 2013-01-15 | Rich Media Worldwide, Llc | Content rendering control system and method |
US8315791B2 (en) * | 2010-06-18 | 2012-11-20 | Nokia Coporation | Method and apparatus for providing smart zooming of a geographic representation |
US20130212460A1 (en) * | 2012-02-12 | 2013-08-15 | Microsoft Corporation | Tracking visibility of rendered objects in a display area |
KR101338370B1 (ko) * | 2012-04-27 | 2013-12-10 | 주식회사 컴퍼니원헌드레드 | 지피유를 이용한 2차원 벡터 그래픽스 패스의 배치 렌더링 방법 |
US9280449B2 (en) * | 2012-05-10 | 2016-03-08 | Sap Se | HIT testing of visual objects |
CN105338394B (zh) * | 2014-06-19 | 2018-11-30 | 阿里巴巴集团控股有限公司 | 字幕数据的处理方法及系统 |
US10298841B2 (en) * | 2015-11-20 | 2019-05-21 | Sony Corporation | Device and method for generating a panoramic image |
-
2016
- 2016-02-05 CN CN201610083256.2A patent/CN107045437A/zh active Pending
-
2017
- 2017-01-24 WO PCT/CN2017/072403 patent/WO2017133567A1/zh active Application Filing
-
2018
- 2018-08-02 US US16/053,375 patent/US20190122421A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1152745A (zh) * | 1995-12-21 | 1997-06-25 | 三菱电机株式会社 | 移动显示框的窗口显示方式及采用该方式的数据处理系统 |
CN102523473A (zh) * | 2011-12-01 | 2012-06-27 | 中兴通讯股份有限公司 | 一种三维界面显示装置、方法及终端 |
CN102708585A (zh) * | 2012-05-09 | 2012-10-03 | 北京像素软件科技股份有限公司 | 一种渲染模型轮廓边缘的方法 |
US20130300754A1 (en) * | 2012-05-14 | 2013-11-14 | Cass W. Everitt | Cull streams for fine-grained rendering predication |
CN104156999A (zh) * | 2014-08-13 | 2014-11-19 | 广东威创视讯科技股份有限公司 | 一种三维场景渲染方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470368A (zh) * | 2018-03-14 | 2018-08-31 | 北京奇艺世纪科技有限公司 | 一种虚拟场景中渲染对象的确定方法、装置及电子设备 |
CN109529346A (zh) * | 2018-11-21 | 2019-03-29 | 北京像素软件科技股份有限公司 | 扇形区域确定方法、装置及电子设备 |
CN110286992A (zh) * | 2019-07-02 | 2019-09-27 | 中国工商银行股份有限公司 | 界面图形重绘的方法及装置 |
CN110928628A (zh) * | 2019-11-22 | 2020-03-27 | 网易(杭州)网络有限公司 | 游戏元素的处理方法和装置、存储介质及处理器 |
CN110928628B (zh) * | 2019-11-22 | 2022-12-27 | 网易(杭州)网络有限公司 | 游戏元素的处理方法和装置、存储介质及处理器 |
CN113769402A (zh) * | 2021-09-16 | 2021-12-10 | 厦门极致互动网络技术股份有限公司 | 一种大地图可视区域分帧更新的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190122421A1 (en) | 2019-04-25 |
WO2017133567A1 (zh) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107045437A (zh) | 一种实现批渲染的方法、装置和设备 | |
KR100793990B1 (ko) | 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템 | |
EP3561796A1 (en) | Tiled map generating method and apparatus in virtual map, and tiled map updating method and apparatus in virtual map | |
KR100510131B1 (ko) | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 | |
CN110097625B (zh) | 片段着色器执行顶点着色器计算 | |
US8988433B2 (en) | Systems and methods for primitive intersection in ray tracing | |
KR100833842B1 (ko) | 3차원 그래픽 엔진에서의 픽셀 래스터라이제이션 처리방법및 그의장치 | |
US11257181B2 (en) | Tiling a primitive in a graphics processing system by edge-specific testing of a subset of tiles in a rendering space | |
KR100762811B1 (ko) | 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템 | |
US10242482B2 (en) | Tiling a primitive in a graphics processing system | |
JP2015531918A (ja) | ヒットテスト方法および装置 | |
JP2020513631A (ja) | アウトオブオーダキャッシュリターン | |
JP2007242022A (ja) | 衝突感知装置及び方法 | |
CN114564630A (zh) | 一种图数据Web3D可视化的方法、系统和介质 | |
US8564589B1 (en) | System and method for accelerated ray-box intersection testing | |
CN107194982B (zh) | 创建纹理图集和纹理图集等待集合的方法、装置和设备 | |
CN112395375B (zh) | 一种地图呈现方法及终端、计算机可读存储介质 | |
Corbalán-Navarro et al. | Triangle dropping: an occluded-geometry predictor for energy-efficient mobile GPUs | |
EP3996048A1 (en) | Intersection testing for ray tracing | |
CN101620743A (zh) | 用隐藏面消除的图形处理 | |
US20220319111A1 (en) | Methods and systems for tile-based graphics processing | |
WO2017164923A1 (en) | Gpu batch occlusion query with spatial update | |
EP4254339A1 (en) | Reducing redundant rendering in a graphics system | |
Williams | Volumetric representation of virtual environments | |
JP4953450B2 (ja) | 画像作成装置及びプログラム |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201127 Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China Applicant after: Zebra smart travel network (Hong Kong) Limited Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Applicant before: Alibaba Group Holding Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170815 |