CN105631923A - 一种渲染方法和装置 - Google Patents
一种渲染方法和装置 Download PDFInfo
- Publication number
- CN105631923A CN105631923A CN201510993893.9A CN201510993893A CN105631923A CN 105631923 A CN105631923 A CN 105631923A CN 201510993893 A CN201510993893 A CN 201510993893A CN 105631923 A CN105631923 A CN 105631923A
- Authority
- CN
- China
- Prior art keywords
- batch
- rendering
- rendering content
- content
- order
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种渲染方法和装置,通过查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并获取渲染顺序位于所述所第一批次渲染内容和所述第二批次渲染内容之间的中间批次渲染内容;判断所述第二批次渲染内容与中间批次渲染内容是否相互覆盖,当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,在不对原渲染效果造成影响的情况下,较佳地减少了渲染的批次,有助于提高系统的渲染性能,减少画面卡顿。
Description
技术领域
本发明涉及计算机图形领域,尤其涉及一种渲染方法和装置。
背景技术
渲染(Render)也称为绘制,是指根据数据生成图像的过程。计算机程序通过反复地渲染图像,然后将图像展现在屏幕上,从而制造生动的视觉体验,为了让使用者感觉流畅,一般需要每秒渲染30帧甚至更多的图像。在高速图形编程接口中(例如Direct3D、OpenGL),需要成批的把数据提交到图形硬件并进行渲染。提交一次,就是一个渲染批次(drawbatch)。渲染批次的多少,是影响程序渲染性能的一个重要因素,在渲染内容不变的情况下,渲染批次越多,意味着数据越分散,渲染性能也越低,反之,则渲染性能越高。较多的渲染批次会导致渲染性能降低,让使用者感觉到画面卡顿,影响用户体验。因此,减少渲染批次是软件和游戏进行性能优化的一项重要内容。对于智能手机来说,减少渲染批次,不仅意味着程序运行更流畅,人机交互体验更佳,同时也意味着耗电量减少,发热量降低。由此可见,减少渲染批次对提高电子设备的渲染性能有着积极的意义。
由于受硬件限制,一个渲染批次通常只能对使用同一种材质的渲染内容进行渲染。因此,当需要渲染的内容使用两种或两种以上不同材质时,需要拆分为至少两个渲染批次,才能完成渲染。在不合并材质的情况下,唯有把使用材质相同的渲染内容合并到同一个渲染批次中,才能减少总的渲染批次。现有的减少渲染批次的方法主要如下:
第一种方法:针对对渲染顺序不敏感的场合,即无论什么内容先绘制,什么内容后绘制,最终总能得到相同的渲染结果。此时只需要简单的把所有材质相同的渲染内容合并到同一个批次,即可把渲染批次最小化。
第二种方法:针对对渲染顺序敏感的场合,即必须先绘制某内容,再绘制另外的内容,如果调换绘制的顺序,会导致渲染得到的最终结果发生变化。此时由于不能调换顺序,只能对顺序上相邻且使用材质相同的部分渲染内容进行合并。
例如:需要渲染10项内容,所使用的材质依次是A、B、A、A、C、A、B、B、C、A。
如果不进行优化,直接渲染,将需要10个渲染批次。
如果使用第一种方法,因为总共用到了A,B,C三种材质,所以把使用材质A的绘制内容全部合并为一个渲染批次,使用材质B的全部合并为一个批次,使用材质C的全部合并为一个批次。总共只需要3个渲染批次,即可完成渲染。
如果使用第二种方法,第3、4项渲染内容因为相邻且都使用同样的材质,可以合并。第7、8项渲染内容因为相邻且都使用同样的材质,可以合并。合并后总共需要8个渲染批次,即可完成渲染。
发明内容
由背景技术可知,采用第一种方法虽然可以实现最优的渲染批次,但是对于使用场合有严格要求,若各渲染内容对渲染顺序敏感,强行采用第一种方法将对最终的渲染结果造成影响。第二种方法虽然对于使用场合几乎没有限制,但是优化之后,渲染批次的数量仍然较多,优化效果不如人意。
本发明实施例的目的在于提供了一种渲染方法和装置,在不对原渲染结果造成影响的情况下,减少渲染批次,优化渲染过程。
为了实现上述目的,本发明实施例提供了一种渲染方法,包括:
获取待渲染画面中所有批次的渲染内容的渲染顺序;
在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并依据所述渲染顺序,获取中间批次渲染内容;所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容;
判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖;
当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,形成新的渲染顺序;
根据所述新的渲染顺序,依次对所述待渲染画面中各批次的渲染内容进行批次渲染。
优选地,所述获取待渲染画面中所有批次的渲染内容的渲染顺序,具体为:
对所述待渲染画面的渲染树进行深度优先遍历,获取所述渲染顺序。
优选地,所述判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖,具体为:
为所述第二批次渲染内容和所述中间批次渲染内容分别添加包围体;
判断所述第二批次渲染内容的包围体与所述中间批次渲染内容的包围体是否存在重叠的地方;若存在,则判定所述第二批次渲染内容与所述中间批次渲染内容相互覆盖;若不存在,则判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。
优选地,所述包围体为轴向包围盒、定向包围盒、包围球或者多边形网格。
优选地,所述在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,包括:
根据渲染顺序在前的所述第一批次渲染内容,查找使用材质相同但渲染顺序在后的所述第二批次渲染内容;或者,
根据渲染顺序在后的所述第一批次渲染内容,查找使用材质相同但渲染顺序在前的所述第二批次渲染内容。
相应地,本发明实施例还提供了一种渲染装置,包括:
渲染顺序获取模块,用于获取待渲染画面中所有批次的渲染内容的渲染顺序;
查找模块,用于在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并依据所述渲染顺序,获取中间批次渲染内容;所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容;
覆盖关系判断模块,用于判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖;
渲染批次合并模块,用于当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,形成新的渲染顺序;和,
批次渲染模块,用于根据所述新的渲染顺序,依次对所述待渲染画面中各批次的渲染内容进行批次渲染。
优选地,所述渲染顺序获取模块包括:
遍历单元,用于对所述待渲染画面的渲染树进行深度优先遍历,获取所述渲染顺序。
优选地,所述覆盖关系计算模块包括:
包围单元,用于为所述第二批次渲染内容和所述中间批次渲染内容分别添加包围体;和,
判断单元,用于判断所述第二批次渲染内容的包围体与所述中间批次渲染内容的包围体是否存在重叠的地方;若存在,则判定所述第二批次渲染内容与所述中间批次渲染内容相互覆盖;若不存在,则判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。
优选地,所述包围体为轴向包围盒、定向包围盒、包围球或者多边形网格。
优选地,所述查找模块包括第一查找单元或者第二查找单元;
所述第一查找单元,用于根据渲染顺序在前的所述第一批次渲染内容,查找使用材质相同但渲染顺序在后的所述第二批次渲染内容;
所述第二查找单元,用于根据渲染顺序在后的所述第一批次渲染内容,查找使用材质相同但渲染顺序在前的所述第二批次渲染内容。
与现有技术相比,本发明具有以下优点:
本发明实施例提供的渲染方法和装置,通过查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并获取渲染顺序位于所述所第一批次渲染内容和所述第二批次渲染内容之间的中间批次渲染内容;判断所述第二批次渲染内容与中间批次渲染内容是否相互覆盖,当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,在不对原渲染效果造成影响的情况下,较佳地减少了渲染的批次,有助于提高系统的渲染性能,减少画面卡顿,降低电子设备的耗电量和发热量。
附图说明
图1是本发明提供的渲染方法的一个实施例的流程图;
图2是游戏中“物品背包”的渲染树的树形结构示意图;
图3是本发明提供的渲染装置的一个实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的渲染方法的一个实施例的流程图。
如图1所示,所述渲染方法包括步骤S1~S5:
S1,获取待渲染画面中所有批次的渲染内容的渲染顺序;
在具体实施当中,初始的渲染顺序可以通过对所述待渲染画面的渲染树进行深度优先遍历来获取。
S2,在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并依据所述渲染顺序,获取中间批次渲染内容;所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容;
在渲染所使用的数据中,主要分为两类,一类是每个“顶点”(vertex)都要指定的数据,例如绘制一个三角形,有三个顶点,每个顶点都要指定其位置坐标。另一类是当前这一批顶点共用的数据。后者一般都统称为“材质”,包括了贴图、光源、阴影、是否半透明、是否使用alpha测试、是否使用深度测试等各种复杂信息。
所述第一批次渲染内容中可能包含一项或多项使用材质相同的渲染内容;同理,所述第二批次渲染内容中也可能包含一项多或多项使用材质相同的渲染内容。在具体实施当中,只需要所述第一批次渲染内容中的任一项渲染内容与所述第二批次渲染内容中的任一项渲染内容所使用的材质相同,则可认为所述第一批次渲染内容和所述第二批次渲染内容所使用材质相同。
应当说明的是,所述第一批次和所述第二批次仅为区分不同批次的渲染内容,并无必然的先后渲染顺序,在具体实施当中,所述第一批次渲染内容、所述中间批次渲染内容和所述第二批次渲染内容的渲染顺序依次为:先渲染所述第一批次渲染内容,然后渲染所述中间批次渲染内容,最后渲染所述第二批次渲染内容;或者,所述渲染顺序依次为:先渲染所述第二批次渲染内容,然后渲染所述中间批次渲染内容,最后渲染所述第一批次渲染内容。在具体实施当中,可根据渲染顺序在前的第一批次渲染内容,查找使用材质相同但渲染顺序在后的第二批次渲染内容;或者,根据渲染顺序在后的第一批次渲染内容,查找使用材质相同但渲染顺序在前的第二批次渲染内容。
所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容。在具体实施当中,所述中间批次渲染内容可以为一个或多个批次的渲染内容。特别地,当所述第一批次渲染内容和所述第二批次渲染内容相邻时,即所述中间渲染内容不存在时,可采用如背景技术中的第二种方法进行优化,直接将使用材质相同的所述第一批次渲染内容和所述第二批次渲染内容合并到同一渲染批次中。
S3,判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖;
具体地,所述步骤S3可通步骤S31~S32实现:
S31,为所述第二批次渲染内容和所述中间批次渲染内容分别添加包围体;
S32,判断所述第二批次渲染内容的包围体与所述中间批次渲染内容的包围体是否存在重叠的地方;若存在,则判定所述第二批次渲染内容与所述中间批次渲染内容相互覆盖;若不存在,则判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。
在具体实施当中,所述包围体可以为轴向包围盒、定向包围盒、包围球或者多边形网格。本实施例中优选采用轴向包围盒,通过为各渲染批次中的每一项渲染内容计算一个轴向包围盒,如果两项渲染内容的包围盒有覆盖关系,则认为这两项渲染内容有覆盖关系,反之则认为这两项渲染内容不存在覆盖关系,当所述第二批次渲染内容中的任一项渲染内容与所述中间批次渲染内容中的任一项渲染内容均不存在覆盖关系时,则可判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。采用包围盒来判断渲染内容之间的覆盖关系虽然可能会造成少量误判,使得一些原本没有覆盖关系、可以合并渲染批次的内容变为不能合并,但是使用包围盒之后覆盖关系的计算变得简单,有利于加快覆盖关系的检测速度。
需要说明的是,本实施例中在使用包围体检查各批次渲染内容之间的覆盖关系时,由于需要考虑相机的拍摄方向,优选采用规格化设备坐标系(NormalizedDeviceCoordinateSystem),而不在世界坐标系(WorldCoordinateSystem)中进行。
S4,当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,形成新的渲染顺序;
在具体实施当中,当判定第二批次渲染内容与所述中间批次渲染内容互不覆盖时,可交换所述第二批次渲染内容和所述中间批次渲染内容的位置后,通过如背景技术中的第二种方法,将所述第二批次渲染内容和所述第一批次渲染内容合到同一渲染批次中。进一步地,可通过重复上述步骤S2~S4以更佳地减少渲染批次。
S5,根据所述新的渲染顺序,依次对所述待渲染画面中各批次的渲染内容进行批次渲染。
本发明的主要原理是:在对渲染顺序敏感的场合,计算渲染内容之间的覆盖关系,对可以局部调整渲染顺序的渲染内容进行调整,通过局部调整绘制顺序,把不相邻的渲染内容调整为相邻的渲染内容,从而使得相邻的渲染内容可以合并在同一渲染批次进行渲染,达到减少渲染批次的效果。
为了实现上述方案,本发明采用了如下定理:
定理1:假设使用相同材质的第一批次渲染内容X和第二批次渲染内容Y的渲染顺序为,X→O1,O2,O3,…,On→Y。如果第二批次渲染内容Y与中间批次渲染内容O1,O2,O3,…,On之间没有互相覆盖的关系,那么,不论先绘制Y,还是先绘制O1,O2,O3,…,On,最终的渲染结果都是一样的。
对定理1进行简要证明:对渲染结果中的任何一个像素,分三种情况:(1)不受Y影响,也不受O1,O2,O3,…,On影响;(2)受Y影响,不受O1,O2,O3,…,On影响;(3)不受Y影响,受O1,O2,O3,…,On影响。因为Y与O1,O2,O3,…,On不存在覆盖关系,因此不存在第四种情况。而对于这三种情况来说,不论先绘制Y,还是先绘制O1,O2,O3,…,On,像素的最终颜色都一致,归纳即所述定理1可得证。
下面以网络游戏中经常需要绘制的“物品背包”为例,对本发明进一步说明。
游戏中的“物品背包”包含一个底板背景和多个物品格子。每个格子分别拥有物品图标、物品等级文字、物品数量文字和物品特效辉光等。为了便于软件对渲染内容进行管理,一般采用树形结构,如图2所示:
在对这类内容进行渲染时,一般通过深度优先遍历的方法遍历整个树形结构,得到一个渲染顺序列表,然后按照这个列表的顺序来进行渲染。因此,渲染的顺序如下:
底板→图标1→金光→等级→图标1→绿光→等级→数量→图标2→金光→等级→图标3→绿光→等级→图标3→蓝光→等级→数量,总共18项渲染内容,如不进行优化,即一个批次中只对一项渲染内容进行渲染,总共需要18个渲染批次。通常地,类似的渲染内容总是会使用同一种材质。例如,图标1、图标2、图标3是使用同一种材质,所有的辉光(金光、绿光和蓝光等)使用同一种材质,所有的文字内容(如图2中的等级和数量等)使用同一种材质。
若要采用如背景技术中的第一种方法,要渲染的内容还必须要达到对渲染顺序不敏感(OIT,orderindependenttransparent),在现有的技术下实现难度较大;同时电子设备还需要拥有较强的图形处理硬件,才能顺利实现。而在手机等移动设备上,这样的硬件尚未普及。而如果采用如背景技术中的第二种方法,图2的示例中仅有两处“等级→数量”同时满足“相邻”并且“使用同一种材质”的条件,能够进行合并处理。因此,18个渲染批次,经过优化之后还有16个,优化效果并不理想。
本发明技术方案,主要针对背景技术中的第二种方法进行了改进。要求达到以下效果:渲染批次的数量与现有技术相比进一步减少,对使用场合的限制较小,并且符合一般软件思路。例如,如图2所示的“物品背包”的树形结构不能改为其它结构。在具体实施当中,如果不使用原有的树形结构,单纯从渲染性能出发,人工修改调整渲染顺序,确实可以进一步减少渲染批次数量,并且对使用场合的限制不会增加。但是,移除了树形结构之后,会让整个程序的数据变得难以管理,从而容易产生错误。另外,人工调整渲染顺序也很耗费人力和时间。
若采用本发明提供的渲染方法,由于各物品格子仅与底板存在覆盖关系,而各物品格子之间互不覆盖,初始的渲染顺序(底板→图标1→金光→等级→图标1→绿光→等级→数量→图标2→金光→等级→图标3→绿光→等级→图标3→蓝光→等级→数量)可以被调整为:底板批次(底板)→图标批次(图标1、图标1、图标2、图标3、图标3)→辉光批次(金光、绿光、金光、绿光、蓝光)→文字批次(等级、等级、数量、等级、等级、等级、数量),实际只需要4个渲染批次就能完成渲染,与现有技术相比有显著的进步。
参见图3,是本发明提供的渲染装置的一个实施例的结构图。本实施例的基本原理与图1所示实施例一致,本实施例中未详述之处可参见图1所示实施例中的相关描述。
如图3所示,所述渲染装置包括:
渲染顺序获取模块31,用于获取待渲染画面中所有批次的渲染内容的渲染顺序;
查找模块32,用于在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并依据所述渲染顺序,获取中间批次渲染内容;所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容;
覆盖关系判断模块33,用于判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖;
渲染批次合并模块34,用于当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,形成新的渲染顺序;和,
批次渲染模块35,用于根据所述新的渲染顺序,依次对所述待渲染画面中各批次的渲染内容进行批次渲染。
其中,所述渲染顺序获取模块31包括:
遍历单元,用于对所述待渲染画面的渲染树进行深度优先遍历,获取所述渲染顺序。
所述覆盖关系计算模块33包括:
包围单元,用于为所述第二批次渲染内容和所述中间批次渲染内容分别添加包围体;其中,所述包围体优选为轴向包围盒、定向包围盒、包围球或者多边形网格。
判断单元,用于判断所述第二批次渲染内容的包围体与所述中间批次渲染内容的包围体是否存在重叠的地方;若存在,则判定所述第二批次渲染内容与所述中间批次渲染内容相互覆盖;若不存在,则判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。
在具体实施当中,所述查找模块包括第一查找单元或者第二查找单元;所述第一查找单元,用于根据渲染顺序在前的所述第一批次渲染内容,查找使用材质相同但渲染顺序在后的所述第二批次渲染内容;所述第二查找单元,用于根据渲染顺序在后的所述第一批次渲染内容,查找使用材质相同但渲染顺序在前的所述第二批次渲染内容。
综上所述,本发明提供的渲染方法和装置,通过查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并获取渲染顺序位于所述所第一批次渲染内容和所述第二批次渲染内容之间的中间批次渲染内容;判断所述第二批次渲染内容与中间批次渲染内容是否相互覆盖,当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,在不对原渲染效果造成影响的情况下,较佳地减少了渲染的批次,有助于提高系统的渲染性能,减少画面卡顿,降低电子设备的耗电量和发热量。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种渲染方法,其特征在于,包括:
获取待渲染画面中所有批次的渲染内容的渲染顺序;
在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并依据所述渲染顺序,获取中间批次渲染内容;所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容;
判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖;
当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,形成新的渲染顺序;
根据所述新的渲染顺序,依次对所述待渲染画面中各批次的渲染内容的进行批次渲染。
2.如权利要求1所述的渲染方法,其特征在于,所述获取待渲染画面中所有批次的渲染内容的渲染顺序,具体为:
对所述待渲染画面的渲染树进行深度优先遍历,获取所述渲染顺序。
3.如权利要求1所述的渲染方法,其特征在于,所述判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖,具体为:
为所述第二批次渲染内容和所述中间批次渲染内容分别添加包围体;
判断所述第二批次渲染内容的包围体与所述中间批次渲染内容的包围体是否存在重叠的地方;若存在,则判定所述第二批次渲染内容与所述中间批次渲染内容相互覆盖;若不存在,则判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。
4.如权利要求3所述的渲染方法,其特征在于,所述包围体为轴向包围盒、定向包围盒、包围球或者多边形网格。
5.如权利要求1至4任一项所述的渲染方法,其特征在于,所述在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,包括:
根据渲染顺序在前的所述第一批次渲染内容,查找使用材质相同但渲染顺序在后的所述第二批次渲染内容;或者,
根据渲染顺序在后的所述第一批次渲染内容,查找使用材质相同但渲染顺序在前的所述第二批次渲染内容。
6.一种渲染装置,其特征在于,包括:
渲染顺序获取模块,用于获取待渲染画面中所有批次的渲染内容的渲染顺序;
查找模块,用于在所述所有批次的渲染内容中查找使用材质相同的第一批次渲染内容和第二批次渲染内容,并依据所述渲染顺序,获取中间批次渲染内容;所述中间批次渲染内容为渲染顺序位于所述第一批次渲染内容和所述第二批次渲染内容之间的全部批次的渲染内容;
覆盖关系判断模块,用于判断所述第二批次渲染内容与所述中间批次渲染内容是否相互覆盖;
渲染批次合并模块,用于当所述第二批次渲染内容与所述中间批次渲染内容互不覆盖时,将所述第二批次渲染内容合并到所述第一批次渲染内容的渲染批次中,形成新的渲染顺序;和,
批次渲染模块,用于根据所述新的渲染顺序,依次对所述待渲染画面中各批次的渲染内容进行批次渲染。
7.如权利要求6所述的渲染装置,其特征在于,所述渲染顺序获取模块包括:
遍历单元,用于对所述待渲染画面的渲染树进行深度优先遍历,获取所述渲染顺序。
8.如权利要求6所述的渲染装置,其特征在于,所述覆盖关系计算模块包括:
包围单元,用于为所述第二批次渲染内容和所述中间批次渲染内容分别添加包围体;和,
判断单元,用于判断所述第二批次渲染内容的包围体与所述中间批次渲染内容的包围体是否存在重叠的地方;若存在,则判定所述第二批次渲染内容与所述中间批次渲染内容相互覆盖;若不存在,则判定所述第二批次渲染内容与所述中间批次渲染内容互不覆盖。
9.如权利要求8所述的渲染装置,其特征在于,所述包围体为轴向包围盒、定向包围盒、包围球或者多边形网格。
10.如权利要求6至9任一项所述的渲染装置,其特征在于,所述查找模块包括第一查找单元或者第二查找单元;
所述第一查找单元,用于根据渲染顺序在前的所述第一批次渲染内容,查找使用材质相同但渲染顺序在后的所述第二批次渲染内容;
所述第二查找单元,用于根据渲染顺序在后的所述第一批次渲染内容,查找使用材质相同但渲染顺序在前的所述第二批次渲染内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510993893.9A CN105631923B (zh) | 2015-12-25 | 2015-12-25 | 一种渲染方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510993893.9A CN105631923B (zh) | 2015-12-25 | 2015-12-25 | 一种渲染方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105631923A true CN105631923A (zh) | 2016-06-01 |
CN105631923B CN105631923B (zh) | 2018-10-23 |
Family
ID=56046807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510993893.9A Active CN105631923B (zh) | 2015-12-25 | 2015-12-25 | 一种渲染方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105631923B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965975A (zh) * | 2017-05-24 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 一种绘制方法及装置 |
CN109741413A (zh) * | 2018-12-29 | 2019-05-10 | 北京金山安全软件有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN109767466A (zh) * | 2019-01-10 | 2019-05-17 | 深圳看到科技有限公司 | 画面渲染方法、装置、终端及对应的存储介质 |
WO2019223119A1 (zh) * | 2018-05-23 | 2019-11-28 | 歌尔科技有限公司 | 一种3d场景对象显示方法、装置、设备及存储介质 |
CN111026493A (zh) * | 2019-12-10 | 2020-04-17 | 网易(杭州)网络有限公司 | 界面渲染的处理方法和装置 |
CN111258474A (zh) * | 2020-01-15 | 2020-06-09 | 广东三维家信息科技有限公司 | 基于gui的交互方法、装置及电子设备 |
CN111508055A (zh) * | 2019-01-30 | 2020-08-07 | 华为技术有限公司 | 渲染方法及装置 |
CN117271046A (zh) * | 2023-11-23 | 2023-12-22 | 厦门东软汉和信息科技有限公司 | 一种用户界面渲染系统、方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030117403A1 (en) * | 2001-12-24 | 2003-06-26 | Tae Joon Park | System and method for operation optimization in hardware graphics accelerator for real-time rendering |
CN101067827A (zh) * | 2007-06-14 | 2007-11-07 | 上海创图网络科技发展有限公司 | 一种基于浏览器的三维网页实现方法 |
CN101127125A (zh) * | 2007-09-26 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及系统 |
CN103186920A (zh) * | 2011-12-30 | 2013-07-03 | 盛趣信息技术(上海)有限公司 | 基于材质赋权有向图的渲染状态优化方法及渲染系统 |
CN104143171A (zh) * | 2013-05-10 | 2014-11-12 | 正谓有限公司 | 用于渲染图像的方法和系统 |
-
2015
- 2015-12-25 CN CN201510993893.9A patent/CN105631923B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030117403A1 (en) * | 2001-12-24 | 2003-06-26 | Tae Joon Park | System and method for operation optimization in hardware graphics accelerator for real-time rendering |
CN101067827A (zh) * | 2007-06-14 | 2007-11-07 | 上海创图网络科技发展有限公司 | 一种基于浏览器的三维网页实现方法 |
CN101127125A (zh) * | 2007-09-26 | 2008-02-20 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及系统 |
CN103186920A (zh) * | 2011-12-30 | 2013-07-03 | 盛趣信息技术(上海)有限公司 | 基于材质赋权有向图的渲染状态优化方法及渲染系统 |
CN104143171A (zh) * | 2013-05-10 | 2014-11-12 | 正谓有限公司 | 用于渲染图像的方法和系统 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965975B (zh) * | 2017-05-24 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 一种绘制方法及装置 |
CN108965975A (zh) * | 2017-05-24 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 一种绘制方法及装置 |
WO2019223119A1 (zh) * | 2018-05-23 | 2019-11-28 | 歌尔科技有限公司 | 一种3d场景对象显示方法、装置、设备及存储介质 |
CN109741413A (zh) * | 2018-12-29 | 2019-05-10 | 北京金山安全软件有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN109741413B (zh) * | 2018-12-29 | 2023-09-19 | 超级魔方(北京)科技有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN109767466B (zh) * | 2019-01-10 | 2021-07-13 | 深圳看到科技有限公司 | 画面渲染方法、装置、终端及对应的存储介质 |
CN109767466A (zh) * | 2019-01-10 | 2019-05-17 | 深圳看到科技有限公司 | 画面渲染方法、装置、终端及对应的存储介质 |
CN111508055A (zh) * | 2019-01-30 | 2020-08-07 | 华为技术有限公司 | 渲染方法及装置 |
US11710266B2 (en) | 2019-01-30 | 2023-07-25 | Huawei Technologies Co., Ltd. | Rendering method and apparatus |
CN111026493A (zh) * | 2019-12-10 | 2020-04-17 | 网易(杭州)网络有限公司 | 界面渲染的处理方法和装置 |
CN111026493B (zh) * | 2019-12-10 | 2022-04-29 | 网易(杭州)网络有限公司 | 界面渲染的处理方法和装置 |
CN111258474A (zh) * | 2020-01-15 | 2020-06-09 | 广东三维家信息科技有限公司 | 基于gui的交互方法、装置及电子设备 |
CN111258474B (zh) * | 2020-01-15 | 2021-07-06 | 广东三维家信息科技有限公司 | 基于gui的交互方法、装置及电子设备 |
CN117271046A (zh) * | 2023-11-23 | 2023-12-22 | 厦门东软汉和信息科技有限公司 | 一种用户界面渲染系统、方法、装置及介质 |
CN117271046B (zh) * | 2023-11-23 | 2024-03-15 | 厦门东软汉和信息科技有限公司 | 一种用户界面渲染系统、方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105631923B (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105631923A (zh) | 一种渲染方法和装置 | |
US20140092006A1 (en) | Device and method for modifying rendering based on viewer focus area from eye tracking | |
CN103472997B (zh) | 一种根据横竖屏自动切换软件界面显示风格的方法 | |
CN104461573B (zh) | 一种视图层次的控制处理方法 | |
CN103971391A (zh) | 一种动画生成方法及装置 | |
CN104239431B (zh) | 三维gis模型显示方法及装置 | |
CN109064387A (zh) | 图像特效生成方法、装置和电子设备 | |
CN108933895A (zh) | 三维粒子特效生成方法、装置和电子设备 | |
WO2017092430A1 (zh) | 基于虚拟现实应用的用户界面控件实现方法和装置 | |
CN110363753A (zh) | 图像质量评估方法、装置及电子设备 | |
CN109144384A (zh) | 显示方法、装置、硬件装置和计算机可读存储介质 | |
CN110047123A (zh) | 一种地图渲染方法、装置、存储介质及计算机程序产品 | |
CN102104510A (zh) | 一种数据视图处理方法和系统 | |
JP2022515798A (ja) | 照明レンダリング方法、装置、電子装置及びコンピュータプログラム | |
WO2023160050A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
US11157551B2 (en) | Method and device for image loading | |
CN107823881A (zh) | 特效显示方法及装置 | |
CN106201396A (zh) | 一种数据展示方法及装置、虚拟现实设备与播放控制器 | |
CN107230249A (zh) | 阴影渲染方法和装置 | |
CN104424003A (zh) | 一种信息处理的方法及电子设备 | |
CN106485789A (zh) | 一种3d模型加载方法及其装置 | |
CN105243268A (zh) | 一种游戏地图定位方法、装置及用户终端 | |
CN112734900A (zh) | 阴影贴图的烘焙方法、装置、设备及计算机可读存储介质 | |
CN104461539A (zh) | 一种图标底座自动配色方法 | |
CN108280887B (zh) | 一种阴影图确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |