CN111476872B - 一种图像绘制方法及图像绘制装置 - Google Patents
一种图像绘制方法及图像绘制装置 Download PDFInfo
- Publication number
- CN111476872B CN111476872B CN201910063906.0A CN201910063906A CN111476872B CN 111476872 B CN111476872 B CN 111476872B CN 201910063906 A CN201910063906 A CN 201910063906A CN 111476872 B CN111476872 B CN 111476872B
- Authority
- CN
- China
- Prior art keywords
- model
- weight
- simplification
- simplified
- calculating
- 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
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种图像绘制方法及图像绘制装置,通过计算在预设时间段内包含第一模型的帧的数量值,模拟了在快速变化的场景中用户对于模型精度的需求,使得在预设时间段内包含的第一模型的帧的数量值比较小时,生成低精度的第二模型,可以节约***资源,减少掉帧的概率,从而提高用户体验。
Description
技术领域
本申请涉及计算机领域,具体涉及一种图像绘制方法、图像绘制装置、计算机存储介质以及计算机程序产品等。
背景技术
当前在智能终端平台上渲染的场景越来越复杂,为了获得较高质量的更真实的视觉效果,往往对渲染模型的精度要求比较高,所以模型会比较复杂。
一般采用多细节层次(levels of detail,LOD)技术对模型进行处理,即为场景中的同一个物体构造成多个模型,各个模型之间的区别在于细节描述程度的不同,用这些具有多层次结构的物体集合描述一个场景。根据人的视觉特点,对于离视点不同距离选择调用不同细节层级的模型,即不同的LODX模型,X为细节层级数。例如游戏设计者依赖渲染引擎(如Unity3D等),设置某些物体采用LOD的方式渲染,当此物体在远处时,需要简单的模型,则采用低精度的模型,相应的,较近时采用高精度模型。
然而,在快速变化的场景中,物体离用户视点的距离的变化频率较高,若还采用上述方法,即一旦此物体距离比较近就采用高精度的模型,那就意味着需要***提供更多的资源,但是往往由于***资源的限制容易出现掉帧的现象,从而影响用户体验。
发明内容
本申请提供了一种图像绘制方法及图像绘制装置,可以节约***资源,减少掉帧的概率,提高用户体验。
本申请第一方面提供一种图像绘制方法,该方法可应用于终端设备程序逻辑中,该方法在执行过程中涉及到的具体装置可以在终端设备中对应相应的功能实体。该方法可以包括:获取第一模型的第一信息,该第一信息包括在预设时间段内包含该第一模型的帧的数量值;获取该第一模型的第一简化权值,该第一简化权值包括时间简化权值,该时间简化权值由包含该第一模型的帧的数量值计算所得,该时间简化权值与包含该第一模型的帧的数量成反比;获取第一细节层级,该第一细节层级由该第一简化权值计算所得;生成第二模型并基于所述第二模型绘制图像。该第二模型由第一细节层级计算所得,该第二模型的精度小于该第一模型的精度。由该可能的实现方式可见,根据预设时间段内包含第一模型的帧的数量值判断第一模型的第一简化权值,可以很好地模拟出用户在感知模型的过程中的感知程度,在节约***负担的同时达到优化用户体验的效果。
可选的,在本申请的一些实施例中,该第一信息还可以包括第一顶点数,该第一简化权值为当该第一顶点数大于第一预设阈值时,根据该包含第一模型的帧的数量值计算得到。由该可能的实现方式可见,通过对于场景中模型顶点数的筛选,在场景含有大量模型的情况下,减轻了***的负载压力,提高了***运行的稳定性。
可选的,在本申请的一些实施例中,该获取该第一模型的第一简化权值,可以包括:根据第一公式计算该第一模型的该时间简化权值M1,该第一公式为:M1=A-B*C,其中,A为预设时间简化权值,B为时间简化系数,C为在预设时间段内包含第一模型的帧的数量值。由该可能的实现方式可见,在预设时间段内包含第一模型的帧的数量值与时间简化权值M1成反比,即第一模型出现的帧数越多,时间简化权值M1的值越小,对应的细节层级D越小,简化程度越小,其模型精度越高,进一步的通过时间简化系数B的校准,可以提高模拟用户需求的精确度。
可选的,在本申请的一些实施例中,当该时间简化权值M1为负值时,该时间简化权值M1取0。由该可能的实现方式可见,通过对于时间简化权值M1为负值时取值的定义,避免了由于计算产生的无效操作,提高了***运行的稳定性。
可选的,在本申请的一些实施例中,该第一简化权值还包括位置简化权值,该方法可以还包括:根据该第一模型的坐标计算该第一模型的视距,该视距为该坐标在坐标系中距离原点的距离;根据该第一模型的视距和第二公式计算该位置简化权值M2,该第二公式为:M2=(D/D0)-E,其中,D为该第一模型的视距,D0为参考视距,E为加权值。由该可能的实现方式可见,通过对于视距的计算,可以将位置较远的模型采用低精度模型,将位置较近的采用高精度模型,提高了用户需求模拟的准确性。
可选的,在本申请的一些实施例中,该第一简化权值还包括重要度简化权值,该方法还可以包括:获取在预设时间段内包含多个模型的帧的数量值;根据该第一信息计算该第一模型的第一简化权值,可以包括:根据第三公式计算该第一模型的该重要度简化权值M3,该第三公式为:M3=F/F0,其中,F为该在预设时间段内包含该第一模型的帧的数量值,F0为在该预设时间段内包含多个模型的帧的数量值。由该可能的实现方式可见,通过对于重要度简化权值的定义,使得出现次数较少的非重要模型模糊化处理,节约了***资源,避免了掉帧的发生。
可选的,在本申请的一些实施例中,该根据第三公式计算该第一模型的该重要度简化权值之后,该方法还可以包括:当该重要度简化权值大于第二预设阈值,则对该第一模型添加第一标识,该第一标识用于指示该第一模型为重要模型。由该可能的实现方式可见,通过对重要模型的设定,使得重要度简化权值大于第二预设阈值的模型出现时无需进行渲染流程,减少了***渲染模型的数量,节约了***资源。
可选的,在本申请的一些实施例中,该第一信息还包括第一标识,该第一标识用于指示该第一模型为重要模型,该第一简化权值还包括重要度简化权值,根据该第一信息计算该第一模型的第一简化权值,可以包括:根据该第一标识确定该第一模型的该重要度简化权值。由该可能的实现方式可见,通过第一标识的设定,可以响应于用户的需求,有侧重的对模型进行简化,一方面,提高了用户体验,另一方面,标识了第一标识的模型无需进行简化权值计算线程,节约了***资源。
可选的,在本申请的一些实施例中,该方法还可以包括:若第一模型的重要度简化权值大于第三预设阈值,则取消对该第一模型的简化操作。由该可能的实现方式可见,当第一模型的重要度简化权值大于第三预设阈值时,可以认为该第一模型为场景中必要的模型,可以无需进行简化,提高了用户需求模拟的精确度。
可选的,在本申请的一些实施例中,该第一简化权值还包括该重要度简化权值,该方法还可以包括:响应用户的操作,设置该第一模型的该重要度简化权值。由该可能的实现方式可见,用户可以根据自身需求设定模型的重要度权值,可以提高用户体验,设定后的模型无需进一步计算简化权值,节约了***资源。
可选的,在本申请的一些实施例中,该生成第二模型之后,该方法还可以包括:生成该第一模型与该第二模型以及第一细节层级的第一对应关系。由该可能的实现方式可见,通过生成该第一模型与该第二模型以及第一细节层级的第一对应关系,可以实现第一模型再次出现在场景中时的调用过程,节约了渲染进程的时间。
可选的,在本申请的一些实施例中,该方法还可以包括:获取该第一模型的第二信息;根据该第二信息计算该第一模型的第二简化权值,该第二简化权值包括第二时间简化权值和第二位置简化权值;根据该第二简化权值,计算该第一模型的第二细节层级;当该第二细节层级与该第一细节层级相同时,根据该第一对应关系,调用该第二模型。由该可能的实现方式可见,当第一模型再次出现在场景中且计算的第二细节层级与第一细节层级相同时,可以直接调用第二模型,节约了***资源,且不会堵塞渲染进程。
可选的,在本申请的一些实施例中,该生成第二模型之后,该方法还可以包括:生成该第一模型顶点数与该第二模型的第二对应关系,该第一模型与该第一顶点数对应。由该可能的实现方式可见,通过生成该第一模型顶点数与该第二模型的第二对应关系,可以实现第一模型再次出现在场景中时的调用过程,节约了渲染进程的时间。
可选的,在本申请的一些实施例中,该方法还可以包括:获取第三模型的第三信息,该第三信息包括第三顶点数;根据该第三信息计算该第三模型的第三简化权值,该第三简化权值包括第三时间简化权值和第三位置简化权值;根据该第三简化权值,计算该第三模型的第三细节层级;当该第三顶点数与该第一顶点数相同,该第三细节层级与该第一细节层级相同时,根据该第二对应关系,调用该第二模型。由该可能的实现方式可见,当第三模型与第一模型的顶点数相同且计算的第二细节层级与第一细节层级相同时,可以直接调用第二模型,节约了***资源,且不会堵塞渲染进程。
可选的,在本申请的一些实施例中,该获取第一模型的信息之前,该方法还可以包括:获取应用程序的第二标识,该第二标识用于指示包含第一模型的模型库的名称;若该第二标识在预设名称范围,则执行如权利要求1该的方法。由该可能的实现方式可见,通过应用程序的筛选,提高了渲染过程的可控性。
可选的,在本申请的一些实施例中,该获取第一细节层级,可以包括:根据第四公式计算该第一细节层级,该第四公式为:X=ROUND(N*Min(M1,M2,M3),Y),其中,X为该第一细节层级,N为预设细节层级,M1为该时间简化权值,M2为该位置简化权值,M3为该重要度简化权值,Min为取括号内最小值,ROUND(N*Min(M1,M2,M3),X)为对N*Min(M1,M2,M3)的数值执行四舍五入以保留小数点后Y位。由该可能的实现方式可见,通过对于时间简化权值、位置简化权值和重要度简化权值的计算,可以得出最切合实际情况的细节层级数值,不会由于某一维度的值较大而影响细节层级数值的可靠性,提高了细节层级数值计算过程的精确性。
本申请第二方面提供一种图像绘制装置,该图像绘制装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供一种图像绘制装置,该图像绘制装置可以包括终端设备或者芯片等实体,所述优化装置包括:输入/输出(I/O)接口、处理器和存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述图像绘制装置执行如前述第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述第一方面及任一可选实现方式中所述的方法。
该计算机存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
第五方面,本申请实施例提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行如前述第一方面及任一可选实现方式中所述的方法。
第六方面,本申请提供了一种芯片***,该芯片***包括处理器,用于支持优化设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片***还包括存储器,所述存储器,用于保存优化设备必要的程序指令和数据。该芯片***,既可以是图像绘制装置,也可以是应用在图像绘制装置中执行相应功能的***芯片。
在本申请实施例中,获取第一模型的第一信息,该第一信息包括在预设时间段内包含所述第一模型的帧的数量值;再获取第一模型的第一简化权值,第一简化权值包括时间简化权值,其中,第一简化权值由第一模型的帧的数量计算得到,所述时间简化权值与所述第一模型的帧的数量成反比;再根据第一简化权值简化第一模型,生成第二模型。相对于现有技术,本申请中的第一简化权值是根据在预设时间段内包含的第一模型的帧的数量值来计算得到的,并不是根据位置信息来计算得到的,而且,在预设时间段内包含的第一模型的帧的数量值越小时,因为时间简化权值与包含所述第一模型的帧的数量成反比,对第一模型的简化程度越大,生成的第二模型的复杂度也就越低。所以,在快速变化的场景中,在预设时间段内包含的第一模型的帧的数量值比较小时,可以生成第二模型,所述第二模型的精度小于所述第一模型的精度。就不需要第一模型这种复杂度比较高的模型,所以,可以节约***资源,减少掉帧的概率,提高用户体验。
附图说明
图1是现有技术中利用LOD技术对模型简化的流程示意图;
图2是本申请实施例所应用的***架构图;
图3是是本申请实施例提供的一种图形调用***结构示意图;
图4是是本申请实施例提供的一种图像绘制装置的结构示意图;
图5是本申请实施例提供的一种图像绘制方法示意图;
图6是本申请实施例提供的一种重要度简化权值计算方法的示意图;
图7是本申请实施例提供的另一种图像绘制方法示意图;
图8是本申请实施例提供的另一种图像绘制方法示意图;
图9是本申请实施例提供的另一种图像绘制方法示意图;
图10是本申请实施例提供的另一种图像绘制方法示意图;
图11A是本申请实施例提供的一种应用场景中的图像绘制效果图;
图11B是本申请实施例提供的另一种应用场景中的图像绘制效果图。
具体实施方式
本申请实施例提供了一种图像绘制方法及优化装置,用于通过对模型的坐标和在预设时间段内的出现次数计算,得到适合于当前场景的简化权值,进一步得到相应的细节层级,优化了细节层级的取值。在快速变化的场景中,通过本实施例提供的方法能够简化快速变化且用户感知不强烈的模型,不会占用大量***资源,减少掉帧问题的出现,提高了用户体验。
当前在智能手机平台上需要渲染的场景越来越复杂,为了获得较高质量的、更真实的视觉效果,往往对一个物体的模型的细节程度要求比较高,所以模型会比较复杂。
一般采用多细节层次(levels of detail,LOD)技术对模型进行处理,即为场景中的同一个物体构造多个模型,各个模型之间的区别在于细节描述程度的不同,用这些具有多层次结构的物体集合描述一个场景。如图1所示,是现有技术中利用LOD技术对模型简化的流程示意图,可见,一个复杂的原始模型经过LOD技术的渲染可以被处理为简单模型,LOD技术可以运行在渲染引擎中。可以理解的是,在LOD技术中,场景中的同一个物体需构造成多个不同层级的LODX模型,即细节层级X取值不同的模型,例如:LOD1、LOD2等,各个模型之间的区别在于精度的不同,通常X值越大,对原始模型的简化程度越大,渲染后的模型精度越低,反之,X值越小,对原始模型的简化程度越小,渲染后的模型精度越高。在现有技术中,根据人的视觉特点,对于离视点不同距离选择调用不同细节层级的模型。例如游戏设计者依赖渲染引擎(如Unity3D等),设置某些物体采用LOD的方式渲染,一个模型可以由多个面片组成,即模型的精度可以通过面片的精度来反映,当此物体在远处时,需要简单的模型,则采用低精度的面片,相应的,较近时采用高精度面片。
当前的LOD技术依赖于特定的渲染引擎,对每个需要渲染的物体(或者说原始模型)准备多个LODX级别的模型,并进行设置。它必然带来的问题是只能使用特定的渲染引擎,而且设置复杂,增加应用(APP)设计者的工作量。同时因为需要保存多个模型,增加了大量的内存。
而且,在现实情况中,用户不需要很细节的物体模型,比如用户快速切换视角,用户对周围非重要的物体的感知不需要高精度的模型。现在我们绘制细节很高的物体模型时,因为***资源的限制,经常会出现一些掉帧的问题;另一方面,对所有模型采用LOD的方式渲染,因为***资源的限制,也会造成一些掉帧的问题,影响用户体验。
为解决上述问题,本申请实施例提出一种图像绘制方法。图2是本申请实施例所应用的***架构的示意图。该***架构包括应用程序201、图形接口层202、指令流动态重组(command stream dynamic reconstruction,CSDR)模块203、图形优化模块204以及图形驱动模块205,其中CSDR模块203包括指令缓存模块203a、指令重组模块203b以及指令分析模块203c,图形优化模块包括模型分析管理模块204a和细节层级管理模块204b。下面对各模块进行说明。
应用程序(application,APP)201:包括基于安卓操作***Android或苹果操作***(iPhone operation system,iOS)等***的应用。本申请实施例提供的方法可作为一种操作***组件,也可以作为APP中的组件,还可以作为单独的APP。
图形接口层202:可基于Android/Windows等平台提供的开放图形库(opengraphics library,OpengGL)或Vulkan等图形编程接口(application programminginterface,API)实现相关操作。由于参照统一的标准API,本申请实施例的技术方案可以利用标准API的参数得到模型的相关信息。
指令流动态重组模块203:用于捕获APP调用图形接口API的指令并进行动态优化,优化操作可以包括各种可能的调整操作,例如重组、合并等。
指令缓存模块203a:用于储存/获取待操作的API指令流信息,例如:调用原始模型参数的指令、获取原始模型视距的指令等。
指令重组模块203b:用于根据操作需求调整相应的API指令流,例如:在执行生成原始模型的细节层级为1时的简化模型操作指令时,由于原始模型的LOD1模型已经存在在OpengGL中,则将上述操作指令调整为数据库调用指令。
指令分析模块203c:用于实时获取API指令流信息的变化情况,并反馈给指令重组模块203b以进行调整。
图形优化模块204:用于分析图形的实时状态信息,并根据该状态信息进行相应的优化操作。
模型分析管理模块204a:1、可以保存模型主要信息,包括:模型标识(ID),模型顶点数、模型顶点数组、模型顶点的原型、绘制的总帧数、当前绘制的总帧数、位置、重要度、LOD模型等。2、调用LOD算法生成LOD模型。
细节层级管理模块204b:利用本申请实施例提供的计算方法计算模型的细节层级。
图形驱动模块205:是利用底层的图形接口实现图形绘制的模块,如Mali驱动等。
在本申请实施例中,图像绘制方法可以通过指令流动态重组模块203、图形优化模块204(包括模型分析管理模块204a和细节层级管理模块204b)和图形驱动模块205来实现,下面进行详细说明。
模型分析管理模块204a,用于获取第一模型的第一信息,所述第一信息包括在预设时间段内包含所述第一模型的帧的数量值;
模型分析管理模块204a,还用于获取所述第一模型的第一简化权值,所述第一简化权值包括时间简化权值,所述时间简化权值由获取的所述帧的数量值计算得到,所述时间简化权值与所述帧的数量值成反比;
细节层级管理模块204b,用于获取第一细节层级,所述第一细节层级由所述第一简化权值计算所得。本文中的“第一”和“第二”仅为了区分,和前面介绍的LOD技术中的LODX的X没有必然关系。
图形驱动模块205,用于生成第二模型,所述第二模型由第一细节层级计算所得,所述第二模型的精度小于所述第一模型的精度。图形驱动模块205还用于基于所述第二模型绘制图像。
可选的,模型分析管理模块204a具体用于根据第一公式计算所述第一模型的所述时间简化权值M1,所述第一公式为:M1=A-B*C,其中,A为预设时间简化权值,B为时间简化系数,C为在预设时间段内包含所述第一模型的帧的数量。
可选的,模型分析管理模块204a还用于根据所述第一模型的视距和第二公式计算位置简化权值M2,所述第二公式为:M2=(D/D0)-E,其中,D为所述第一模型的视距,D0为参考视距,E为加权值。
可选的,模型分析管理模块204a还用于获取在预设时间段内包含多个模型的帧的数量值,并根据第三公式计算所述第一模型的重要度简化权值M3,所述第三公式为:M3=F/F0,其中,F为8在预设时间段内包含所述第一模型的帧的数量值,F0为在所述预设时间段内包含多个模型的帧的数量值。
可选的,模型分析管理模块204a还用于当所述重要度简化权值大于第二预设阈值,则对所述第一模型添加第一标识,所述第一标识用于指示所述第一模型为重要模型。
可选的,模型分析管理模块204a还用于根据所述第一标识确定所述第一模型的所述重要度简化权值。
可选的,模型分析管理模块204a还用于若所述重要度简化权值大于第三预设阈值,则取消对所述第一模型的简化操作。
可选的,模型分析管理模块204a还用于响应用户的操作,设置所述第一模型的所述重要度简化权值。
可选的,细节层级管理模块204b具体用于根据第四公式计算所述第一细节层级,所述第四公式为:X=ROUND(N*Min(M1,M2,M3),Y),其中,X为所述第一细节层级,N为预设细节层级,M1为所述时间简化权值,M2为所述位置简化权值,M3为所述重要度简化权值,Min为取括号内最小值,ROUND(N*Min(M1,M2,M3),Y)为对N*Min(M1,M2,M3)的数值执行四舍五入以保留小数点后Y位。
可以理解的是,在模型分析管理模块204a协同细节层级管理模块204b和图形驱动模块205生成第二模型后,可以将第二模型以及生成第二模型过程中的对应关系保存在模型数据库中。如图3所示,是本申请实施例提供的一种图形调用***结构示意图。
在图形调用过程中会应用到指令流动态重组模块301、图形优化模块302和图形驱动模块303,其中,图形优化模块302可以划分为模型分析管理模块302a、细节层级管理模块302b、模型数据库302c和算法管理模块302d。下面对图形调用过程中各模块的功能进行说明。
模型分析管理模块302a用于生成所述第一模型与所述第二模型以及第一细节层级的第一对应关系;还用于获取所述第一模型的第二信息;根据所述第二信息计算所述第一模型的第二简化权值,所述第二简化权值包括第二时间简化权值和第二位置简化权值。
细节层级管理模块302b用于根据所述第二简化权值,计算所述第一模型的第二细节层级。
模型数据库302c用于储存所述第二模型;
算法管理模块302d用于储存所述第一模型与所述第二模型以及第一细节层级的第一对应关系;
图形驱动模块303用于当所述第二细节层级与所述第一细节层级相同时,根据所述第一对应关系,调用所述第二模型。
在一种可能的场景中,模型分析管理模块302a还用于生成所述第一模型顶点数与所述第二模型的第二对应关系,所述第一模型与所述第一顶点数对应;还用于获取第三模型的第三信息,所述第三信息包括第三顶点数;并根据所述第三信息计算所述第三模型的第三简化权值,所述第三简化权值包括第三时间简化权值和第三位置简化权值。
模型数据库302c用于储存所述第二模型;
算法管理模块302d用于储存所述第一模型顶点数与所述第二模型的第二对应关系;
图形驱动模块303用于当所述第三顶点数与所述第一顶点数相同,所述第三细节层级与所述第一细节层级相同时,根据所述第二对应关系,调用所述第二模型。
可以理解的是,图形与模型均为渲染场景中物体的一种呈现形式,例如:物体可以为二维图形、三维图形或三维模型等呈现形式,上述说明中图形与模型可等同,例如:模型数据库302c可以表述为图形数据库,图形驱动模块303也可以表述为模型驱动模块303;故渲染场景中物体的具体呈现形式或命名因实际情况而定,此处不做限定。
需要注意的是,上述模块划分方式为对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本实施例的图像绘制实现方式可以包含在***的软件架构中,作为操作***的一个组件设置在设备中,例如图3中的图形优化模块302可以作为操作***的一个组件。
如图4所示,是本申请实施例提供的一种图像绘制装置的结构示意图,图像绘制装置400包括:输入/输出(I/O)接口401、处理器402、存储器403。具体的,图4中的处理器402可以通过调用存储器403中存储的计算机执行指令,使得图像绘制装置400执行上述功能模块划分实施例中的实现图形算优化的步骤。
具体的,图3中的模块分析管理模块302a、细节层级管理模块302b、模型数据库302c和算法管理模块302d的功能/实现过程可以通过图4中的处理器402调用存储器403中存储的计算机执行指令来实现。或者,图3中的模块分析管理模块302a、细节层级管理模块302b、模型数据库302c和算法管理模块302d的功能/实现过程可以通过图4中的输入/输出(I/O)接口401来实现。
需要说明的是,上述对于功能性模块所执行的步骤可以体现在具体的方法实施例中,下面结合图2所示的终端架构图,对本申请技术方案做进一步的说明。
首先,对细节层级计算过程中图形参数的选择和优化方法进行说明,如图5所示,是本申请实施例提供的一种图像绘制的方法示意图,该方法包括但不限于如下步骤:
501、模型分析管理模块获取第一模型的第一信息,该第一信息包括在预设时间段内包含第一模型的帧的数量值。
本实施例中,第一模型在预设时间段内包含第一模型的帧的数量值可以为第一模型出现次数的叠加,也可以为对出现第一模型的画面帧的计数,具体情况因实际场景而定,此处不做限定。
可以理解的是,第一模型在预设时间段内包含第一模型的帧可以是连续的帧,也可以是间断的帧,预设时间段可以按照当前时刻作为标准进行选定,具体情况因实际场景而定,此处不做限定。
在一种可能的场景中,需反应当前时刻模型的出现情况,则可以利用第一模型在预设时间段内距离当前时刻最近的包含第一模型的连续帧来计算简化权值,可以表述为第一模型在预设时间段内连续出现的次数,此时预设时间段包含了当前的时刻,当某帧此模型不出现后,重新开始计数,例如:当前时刻为10.0s,每帧出现0.1s,预设时间段为时刻9.0s-10.0s,共11帧,第一模型在9.3s-9.5s时间段的3帧中出现,在9.6s时刻未出现,在9.7s-10.0s的4帧中出现,由于第一模型在9.6s时刻出现中断了,需重新开始计数,则第一模型在预设时间段内连续出现的次数为4。
应当注意的是,本实施例中对于第一模型在预设时间段内连续出现的次数的说明仅为举例,即可以为这类场景的表述,也可以为其他包含此种逻辑的其他场景,具体情况因实际场景而定,此处不做限定。
由于对于在预设时间段内包含第一模型的帧的数0量值的统计,深入模拟了用户对该模型的感知强烈度;由于预设时间段的设定,可以得到最近时间段内模型的出现情况,提高了时间统计的准确性,对于当前第一次出现或出现时间较短的模型采用低精度的模型,节约了***资源,便于***的流畅运行。
本实施例根据预设时间段内包含第一模型的帧的数量值判断第一模型的第一简化权值,且***对于帧中第一模型的识别方便测量且具有代表性,可以很好地模拟出用户在感知模型的过程中的感知程度,在节约***负担的同时达到优化用户体验的效果。
可选的,模型分析管理模块还可以获取第一模型的坐标,第一模型的坐标可以为基于运行程序默认的参考坐标所确定的,即该坐标可以为相对值,或可以表述为视距;并将视距作为模拟第一模型距离参考坐标原点的参数,若第一模型距离较远则采用低精度的模型。
可选的,在一种可能的场景中,第一模型的第一信息还包括第一模型的顶点数,可以由第一模型顶点数搜索到对应的第一模型,即第一模型顶点数与第一模型是一一对应的关系。在获取第一模型的顶点数的顶点数之后,判断顶点数是否超过第一预设阈值,因为当顶点数不超过第一预设阈值的模型可以称为轻量级模型,此类模型对负载要求不高,可无需进一步优化;若第一模型顶点数超过第一预设阈值,获取第一模型的坐标和在预设时间段内的出现次数,以便于进行后续优化。
本实施例通过对于场景中模型顶点数的筛选,在场景含有大量模型的情况下,减轻了***的负载压力,提高了***运行的稳定性。
可选的,在另一种可能的场景中,模型分析管理模块在获取第一模型的第一信息之前,还可以判断第一模型所在的应用程序是否为待优化程序,具体的,可以是判断应用程序的包名是否具有重要应用标识,该重要应用标识可响应于用户的设定,也可根据***对于该应用程序的使用情况统计所得,具体情况因实际场景而定,此处不做赘述。
502、模型分析管理模块根据第一信息计算第一模型的第一简化权值。
本实施例中,第一简化权值可以包括根据预设时间段内包含第一模型的帧的数量值计算得到的时间简化权值。
在计算时间简化权值M1的过程中,可以运用公式M1=A–B*C进行计算,其中,A为预设时间简化权值,B为时间简化系数,其中,预设时间简化权值可以为第一模型的期望时间简化权值,所述简化系数的取值范围为(0.01-0.1),反应了该第一模型的期待度,C为在预设时间段内该第一模型的出现次数。
例如,在一种可能的场景中,第一模型的出现次数为50,预设时间简化权值为0.9,简化系数为0.01,则第一模型的时间简化权值M1=0.9-0.01*50=0.4。
应当注意的是,当M1的计算值小于0时,按取值为0进行接下来的计算。
可选的,第一简化权值还可以包括根据第一模型的坐标计算得到的位置简化权值。
本实施例在计算位置简化权值的过程中,可以将所有模型(除天空和地面)的视距最大值记为1,将第一模型的视距根据最大视距进行归一化处理,然后减去加权值,即可得到位置简化权值M2,在公式中可表述为M2=(D/D0)-E,其中,D为所述第一模型的视距,D0为参考视距(最大视距),E为加权值,其中,加权值可以为(0.1-0.9)之间的任一数值,可以根据不同模型事先的筛选,对其加权值进行设定,可以达到区别简化的效果。
例如,在一种可能的场景中,第一模型的视距为40,最大视距为50,加权值为0.5,则第一模型的位置简化权值M2=(40/50-0.5)=0.3。
应当注意的是,当M2的计算值小于0时,按取值为0进行接下来的计算。
503、细节层级管理模块根据第一简化权值,计算第一模型的第一细节层级。
本实施例中,细节层级管理模块根据第一简化权值可以包括根据时间简化权值M1或位置简化权值M2,即可以只由时间简化权值计算,也可以只由位置简化权值计算,还可以由时间简化权值和位置简化权值共同计算,具体情况因实际场景而定,此处不做限定。
若细节层级管理模块根据时间简化权值M1计算第一细节层级,则可采用公式X=ROUND(N*M1,0),其中,X为第一细节层级,N为预设细节层级,M1为时间简化权值,M2为位置简化权值,Min为取括号内最小值,ROUND(N*M1,0)为取括号内N*M1的值的整数。例如:在一种可能的场景中,第一模型的时间简化权值M1为0.3,预设细节层级N为4,则第一模型的第一细节层级X=ROUND(4*0.3,0)=1,即第一模型将进行LOD1的简化操作。
若细节层级管理模块根据时间简化权值M1和位置简化权值M2计算第一细节层级,则可采用公式X=ROUND(N*Min(M1,M2),0)D=ROUND(,其中,X为第一细节层级,N为预设细节层级,M1为时间简化权值,M2为位置简化权值,Min为取括号内最小值,ROUND为取括号内值的整数。
可以理解的是,预设细节层级N的取值可以响应于用户的预设,也可以为对于第一模型历史优化的统计产生的相对值,其取值范围可以为(2-6)。
例如,在一种可能的场景中,第一模型的时间简化权值M1为0.25,位置简化权值M2为0.56,预设细节层级N为4,则第一模型的第一细节层级X=ROUND(4*Min(0.25,0.56),0)=1,即第一模型将进行LOD1的简化操作。
应当注意的是,X=ROUND(N*Min(M1,M2),0)中也可以取非整数,即对X数值执行四舍五入以保留小数点后Y位,例如:若Y=1,N*Min(M1,M2)=2.24,则X=2.2。
本实施例通过对于各简化权值的筛选,以及按照预设细节层级的优化,使得到的细节层级更具有代表性,且方便计算,提高了渲染过程的效率。
504、图形驱动模块根据第一细节层级对第一模型进行简化处理,生成第二模型。之后,计算机将根据该简化后的第二模型绘制图像。
本实施例中,第一细节层级对应了相应的LOD简化程序,即当第一细节层级取值为1时,LOD简化模型为LOD1;当第一细节层级取值为3时,LOD简化模型为LOD3;其中,第一细节层级的数值越大,简化越多,第二模型精度越小,相对的,数值越小,简化越少,第二模型精度越高,这也反应了各简化权值在设定过程中的原理依据。
本实施例通过对在预设时间段内包含第一模型的帧的数量值的计算,得到适合于当前场景的简化权值,进一步得到相应的细节层级,优化了细节层级的取值,在快速变化的场景中,简化了快速变化且用户感知不强烈的模型,从而减少了LOD的计算时间,减少了LOD的计算量,不会占用大量***资源,减少掉帧问题的出现,提高了用户体验。
可以理解的是,在一种可能的场景中,图形驱动模块根据在预设时间段内包含第一模型的帧的数量还可以计算第一模型的重要度简化权值,即通过在预设时间段内包含第一模型的帧的数量值可以反映出第一模型在场景中的重要程度,下面根据附图进行说明。
如图6所示,是本申请实施例提供的一种重要度简化权值计算方法的示意图,该方法包括但不限于如下步骤:
需要说明的是,在预设时间段内包含第一模型的帧的数量值可以指示第一模型的出现次数,但由于在每一帧中第一模型可能出现一次,也可能出现多次,为精确反映第一模型的出现状况,可以使用模型在预设时间段内的出现次数来反映重要度简化权值,下面根据第一模型在预设时间段内的出现次数进行说明。
601、模型分析管理模块获取多个模型在预设时间段内的出现次数。
本实施例中,多个模型可以是场景中主要的模型,也可以是所有模型,所有模型可以是除天空和地面之外的模型的集合,也可以是所有感兴趣的模型的集合,该感兴趣的模型可以是用户设定的,也可以是根据程序分析历史数据标定的,具体情况因实际场景而定,此处不做限定。
通过对所有模型的出现次数的获取,提高了第一模型的重要度简化权值的可参考性,提高了简化的精确度。
602、模型分析管理模块确定第一模型在预设时间段内的出现次数。
本实施例中,第一模型在预设时间段内的出现次数可以为图形出现次数的叠加,也可以为对出现第一模型的画面帧的计数,具体情况因实际场景而定,此处不做限定。
可以理解的是,第一模型在预设时间段内的出现次数可以是连续的出现次数,也可以是间断的出现次数,预设时间段可以按照当前时刻作为标准进行选定,具体情况因实际场景而定,此处不做限定。
603、模型分析管理模块计算第一模型的重要度简化权值。
本实施例中,重要度简化权值可以是根据所有模型在预设时间段内的出现次数对第一模型在预设时间段内的出现次数进行归一化处理的结果,其公式可以表示为:M3=F/F0,其中,F为在预设时间段内第一模型的出现次数,F0为在预设时间段内所有模型的出现次数的最大值。例如:在预设时间段内第一模型的出现次数为20,在预设时间段内所有模型的出现次数最大值为400,则重要度简化权值M3=20/400=0.05。
可选的,在一种可能的场景中,当第一模型在预设时间段内出现的次数大于第二预设阈值时,可以认为是重要模型,可以对第一模型标识重要度标记。其中,第二预设阈值用于表示重要模型的出现次数,第一预设阈值的取值可以表示出现次数,也可以为对出现第一模型的画面帧的计数,具体情况因实际场景而定,此处不做限定。
可选的,在一种可能的场景中,主要模型的出现次数或包含主要模型的帧的数量会超过第三预设阈值,则可认为当第一模型的重要度简化权值大于第三预设阈值时,可以取消对第一模型的简化操作,即退出LOD渲染线程。
本实施例中,标识重要度标记的过程,可以是对于第一模型ID的标记,也可以是对于第一模型顶点数的标记,该标记可以是文件名称的扩展,也可以是额外的带有指令的附加信息,例如:第一模型的ID为20181112,当第一模型判定为重要模型后,其ID变为A20181112,其中,A即为重要度标记;在另一种可能的场景中,当第一模型判定为重要模型后,在其信息指令流中标识IM,则IM即为重要度标记,具体情况因实际场景而定,此处不做限定。
可以理解的是,当第一模型具有重要度标记后,其取值为预设的固定值,该方法可引用到上述实施例中,下面根据附图进行说明。
如图7所示,是本申请实施例提供的另一种图像绘制方法示意图,该方法包括但不限于如下步骤:
701、模型分析管理模块获取第一模型的第一信息。
本实施例中,第一模型的第一信息可以是第一模型的顶点数,也可以是第一模型的ID信息,还可以是标记于ID信息上的标识,以及标记于顶点数上的标识,具体情况因实际场景而定,此处不做限定。
702、模型分析管理模块判断是否有重要度标记。
本实施例中,重要度标记的判断可以是对于第一模型ID的遍历,也可以是对于第一模型顶点数的遍历,遍历的过程可以涉及文件名称的扩展名称,也可以涉及基于ID或顶点数的额外的带有指令的附加信息,具体情况因实际场景而定,此处不做限定。
703、模型分析管理模块获取第一模型在预设时间段内的出现次数。
704、模型分析管理模块计算第一模型的重要度简化权值。
本实施例中,步骤703和704可参照图6中步骤602和603的相关描述,此处不做赘述。
705、模型分析管理模块获取第一模型的预设重要度简化权值。
本实施例中,若第一模型的信息中包含重要度标记,则获取第一模型的预设重要度简化权值,该预设重要度简化权值可以是用于预先设定的,也可以是预设重要度简化权值范围中的最大值,具体情况因实际场景而定,此处不做限定。
706、细节层级管理模块计算第一模型的细节层级。
707、图形驱动模块根据第一细节层级对第一模型进行简化处理,生成第二模型。
本实施例中,步骤706和707与图5中步骤503和504相似,此处不做赘述。
本实施例中通过对于重要度标记的判断,增加了一种新的重要度简化权值获取方式,简化了简化计算过程,且调用过程无需额外计算,减轻了***的计算压力,保证了***的正常运行。
可以理解的是,上述实施例的结合可以得出以下一种可能的图像绘制方法,下面根据附图进行说明。
如图8所示,是本申请实施例提供的另一种图像绘制的方法示意图,该方法包括但不限于如下步骤:
801、模型分析管理模块获取第一模型的坐标。
802、模型分析管理模块计算位置简化权值。
本实施例中,步骤801和802可参照图5中步骤501和502的相关描述,此处不做赘述。
803、模型分析管理模块获取多个模型在预设时间段内的出现次数。
804、模型分析管理模块确定第一模型在预设时间段内的出现次数。
本实施例中,步骤803和804可参照图6中步骤601和602的相关描述,此处不做赘述。
805、模型分析管理模块计算时间简化权值。
本实施例中,步骤805可参照图5中步骤502的相关描述,此处不做赘述。
806、模型分析管理模块计算重要度简化权值。
本实施例中,步骤806可参照图6中步骤603的相关描述,此处不做赘述。
807、细节层级管理模块计算第一模型的第一细节层级。
在一种可能的计算方法中,第一细节层级X的计算公式可以表达为X=ROUND(NMin(M1,M2,M3),Y),其中,X为第一细节层级,N为预设细节层级,M1为时间简化权值,M2为位置简化权值,M3为重要度简化权值,Min为取括号内最小值,ROUND(N Min(M1,M2,M3),Y)为对N*Min(M1,M2,M3)的数值保留小数点后Y位进行四舍五入。
可以理解的是,预设细节层级N的取值可以响应于用户的预设,也可以为对于第一模型历史优化的统计产生的相对值,其取值范围可以为(2-6)。
例如,在一种可能的场景中,第一模型的时间简化权值M1为0.65,位置简化权值M2为0.52,重要度简化权值为0.62,预设细节层级N为4,则第一模型的第一细节层级X=ROUND(4*Min(0.65,0.52,0.62),0)=2,即第一模型将进行LOD2的简化操作。
本实施例通过对于各简化权值的筛选,以及按照预设细节层级的优化,使得到的细节层级更具有代表性,且方便计算,提高了渲染过程的效率。
808、图形驱动模块根据第一细节层级对第一模型进行简化处理,生成第二模型。
本实施例中,步骤808与图5中的步骤504相似,此处不做赘述。
可以理解的是,上述实施例通过对第一模型的位置简化权值、时间简化权值或重要度简化权值的计算,再进一步的计算出对应的细节层级,以准确的根据模型当前的场景提供更为节约***资源的LOD优化操作,得到第二模型。在一种可能的场景中,第一模型可能是第二次出现在场景中,且计算得到的细节层级也相同,此时若再次将其指令流导入到LOD优化线程中,会对同一模型进行重复操作,造成***资源的浪费。
由此,本实施例提供一种异步化获取第二模型的方法,下面根据附图进行说明。
如图9所示,是本申请实施例提供的另一种图像绘制的方法示意图,该方法包括但不限于如下步骤:
901、模型分析管理模块获取第一模型的第一信息。
902、模型分析管理模块根据第一模型的第一信息计算第一简化权值。
903、细节层级管理模块根据第一简化权值,计算第一模型的第一细节层级。
904、图形驱动模块根据第一细节层级对第一模型进行简化处理,生成第二模型。
本实施例中,步骤901-904可参照图5中步骤501-504的相关描述,此处不做赘述。
905、模型分析管理模块生成第一模型与第二模型以及第一细节层级的第一对应关系。
本实施例中,第一对应关系可以储存在第一数据库中,该第一数据库的数据来源于之前LOD进程的计算过程,例如:在开始LOD进程前,将第一模型包装成buffer格式数据,该buffer格式可以是OpenGL格式,然后将数据储存在内存cache中,待LOD进程计算完毕,并得到第一细节层级,进一步得到对应的第二模型后,将第二模型的数据指令流与第一模型数据以及第一细节层级关联,产生一种对应关系。
906、模型分析管理模块获取第一模型的第二信息。
907、模型分析管理模块根据第二信息计算第一模型的第二简化权值。
908、细节层级管理模块根据第二简化权值,计算第一模型的第二细节层级。
本实施例中,步骤906-908可参照图5中步骤501-503的相关描述,此处不做赘述。
909、当第二细节层级与第一细节层级相同时,图形驱动模块根据所述第一对应关系,调用第二模型。
应当注意的是,第一模型由于第一细节层级的不同可以对应不同的LOD模型,即第一模型可能存在不同简化程度的简化模型,故第二细节层级需与第一细节层级相同时,才可调用第二模型。
可以理解的是,第二细节层级与第一细节层级相同可以是数值上的相同,也可以是具有相同的简化程度标识信息,具体情况因实际场景而定,此处不做限制。
本实施例中,调用第一模型对应的第二模型逻辑与LOD计算逻辑相互不会干扰,即属于不同的运行线程中,即异步化操作,保证了不会阻塞正常渲染。
可以理解的是,通过上述实施例的异步化操作,各个模型对应的LOD模型只需要计算一次,减少了***负载程度,提高了LOD优化进程的运行效率,使程序运行更加顺畅。
可以理解的是,由于第一模型顶点数与第一模型具有对应关系,通过第一模型顶点数与第二模型的对应关系也可以达到上述实施例的效果,下面根据附图进行说明。
如图10所示,是本申请实施例提供的另一种图像绘制的方法示意图,该方法包括但不限于如下步骤:
1001、模型分析管理模块获取第一模型的第一信息。
1002、模型分析管理模块根据第一模型的第一信息计算第一简化权值。
1003、细节层级管理模块根据第一简化权值,计算第一模型的第一细节层级。
1004、图形驱动模块根据第一细节层级对第一模型进行简化处理,生成第二模型。
本实施例中,步骤1001-1004可参照图5中步骤501-504的相关描述,此处不做赘述。
1005、模型分析管理模块生成第一模型顶点数与第二模型以及第一细节层级的第二对应关系。
本实施例中,第二对应关系可以储存在第二数据库中,该第二数据库的数据来源于之前LOD进程的计算过程,例如:在开始LOD进程前,将第一模型顶点数包装成buffer格式数据,该buffer格式可以是OpenGL格式,然后将数据储存在内存cache中,待LOD进程计算完毕,并得到第一细节层级,进一步得到对应的第二模型后,将第二模型的数据指令流与第一模型顶点数数据以及第一细节层级关联,产生一种对应关系。
可以理解的是,第一数据库与第二数据库可以是逻辑上的划分,即可以是同一数据库对于不同储存区域的划分,也可以是同一数据库同一储存区域各个变量关联的细化表述,具体情况因实际场景而定,此处不做限定。
1006、模型分析管理模块获取第三模型的第三信息。
1007、模型分析管理模块根据第三信息计算第三模型的第三简化权值。
1008、细节层级管理模块根据第三简化权值,计算第三模型的第三细节层级。
本实施例中,步骤1006-1008可参照图5中步骤501-503的相关描述,此处不做赘述。
1009、当第三细节层级与第一细节层级相同,且第三模型顶点数与第一模型顶点数相同时,图形驱动模块根据所述第二对应关系,调用第二模型。
应当注意的是,第一模型由于第一细节层级的不同可以对应不同的LOD模型,即第一模型可能存在不同简化程度的简化模型,故第三细节层级需与第一细节层级相同时,才可调用第二模型。
可以理解的是,第三细节层级与第一细节层级相同可以是数值上的相同,也可以是具有相同的简化程度标识信息,具体情况因实际场景而定,此处不做限制。
本实施例中,调用第一模型对应的第二模型逻辑与LOD计算逻辑相互不会干扰,即属于不同的运行线程中,即异步化操作,保证了不会阻塞正常渲染。通过上述实施例的异步化操作,各个模型对应的LOD模型只需要计算一次,减少了***负载程度,提高了LOD优化进程的运行效率,使程序运行更加顺畅。
需要说明的是,对于上述的实施例,在具体的实现方式中,可以任意组合成新的一个实施例,此处不再详细赘述。
在一种可能的场景中,上述方法实施例可应用于刺激战场这种游戏应用中,如图11A所示,是本申请实施例提供的一种应用场景中的图像绘制效果图。
在本实施例中,一颗在刺激战场游戏应用中出现的树,其初始模型顶点数为1329,面片数为2478,经过上述一些实施例的方法计算得到细节层级X=5,则生成其对应的LOD5模型,即简化为顶点数为14,面片数为12。
如图11B所示,是本申请实施例提供的另一种应用场景中的图像绘制效果图。
在本实施例中,一架在刺激战场游戏应用中出现的飞机,其初始模型顶点数为2578,面片数为10368,由于视距较远,经过上述一些实施例的方法简化为顶点数为562,面片数为2341。
可以理解的是,本实施例中,面片数为一种模型量化数据的表述方式,其逻辑上与顶点数具有相似的含义,可根据顶点数出现的场景引援到上述任一实施例中。
通过上述实施例方法,在该场景中,经过对比统计,在场景快速变化情况下,每一帧顶点数可减少25%,LOD优化时间减少10%;在普通场景中,每一帧顶点数可减少10%,LOD优化时间减少5%。
可选的,本申请实施例提供了一种芯片***,该芯片***包括处理器,用于支持图像绘制装置实现上述图像绘制的方法。在一种可能的设计中,该芯片***还包括存储器。该存储器,用于保存优化装置必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
Claims (19)
1.一种图像绘制方法,其特征在于,包括:
获取第一模型的第一信息,所述第一信息包括在预设时间段内包含所述第一模型的帧的数量值;
获取所述第一模型的第一简化权值,所述第一简化权值包括时间简化权值,所述时间简化权值由包含所述第一模型的帧的数量值计算所得,所述时间简化权值与包含所述第一模型的帧的数量成反比;
获取第一细节层级,所述第一细节层级由所述第一简化权值计算所得;
生成第二模型,所述第二模型由第一细节层级计算所得,所述第二模型的精度小于所述第一模型的精度,并基于所述第二模型绘制图像。
2.根据权利要求1所述的方法,其特征在于,所述第一信息还包括第一顶点数,所述第一简化权值为当所述第一顶点数大于第一预设阈值时,根据包含所述第一模型的帧的数量值计算得到。
3.根据权利要求1或2所述的方法,其特征在于,所述获取所述第一模型的第一简化权值,包括:
根据第一公式计算所述第一模型的所述时间简化权值M1,所述第一公式为:M1=A–B*C,其中,A为预设时间简化权值,B为时间简化系数,C为在预设时间段内包含所述第一模型的帧的数量值。
4.根据权利要求3所述的方法,其特征在于,当所述M1为负值时,所述时间简化权值取0。
5.根据权利要求1或2所述的方法,其特征在于,所述第一简化权值还包括位置简化权值,所述方法还包括:
根据所述第一模型的坐标计算所述第一模型的视距,所述视距为所述坐标在坐标系中距离原点的距离;
根据所述第一模型的视距和第二公式计算所述位置简化权值M2,所述第二公式为:M2=(D/D0)-E,其中,D为所述第一模型的视距,D0为参考视距,E为加权值。
6.根据权利要求1或2所述的方法,其特征在于,所述第一简化权值还包括重要度简化权值,所述方法还包括:
获取在预设时间段内包含多个模型的帧的数量值;
根据所述第一信息计算所述第一模型的第一简化权值,包括:
根据第三公式计算所述第一模型的所述重要度简化权值M3,所述第三公式为:M3=F/F0,
其中,F为所述在预设时间段内包含所述第一模型的帧的数量值,F0为在所述预设时间段内包含多个模型的帧的数量值。
7.根据权利要求6所述的方法,其特征在于,所述根据第三公式计算所述第一模型的所述重要度简化权值之后,所述方法还包括:
当所述重要度简化权值大于第二预设阈值,则对所述第一模型添加第一标识,所述第一标识用于指示所述第一模型为重要模型。
8.根据权利要求1所述的方法,其特征在于,所述第一信息还包括第一标识,所述第一标识用于指示所述第一模型为重要模型,所述第一简化权值还包括重要度简化权值,根据所述第一信息计算所述第一模型的第一简化权值,包括:
根据所述第一标识确定所述第一模型的所述重要度简化权值。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:若所述重要度简化权值大于第三预设阈值,则取消对所述第一模型的简化操作。
10.根据权利要求1所述的方法,其特征在于,所述第一简化权值还包括重要度简化权值,所述方法还包括:
响应用户的操作,设置所述第一模型的所述重要度简化权值。
11.根据权利要求1所述的方法,其特征在于,所述生成第二模型之后,所述方法还包括:
生成所述第一模型与所述第二模型以及第一细节层级的第一对应关系。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
获取所述第一模型的第二信息;
根据所述第二信息计算所述第一模型的第二简化权值,所述第二简化权值包括第二时间简化权值和第二位置简化权值;
根据所述第二简化权值,计算所述第一模型的第二细节层级;
当所述第二细节层级与所述第一细节层级相同时,根据所述第一对应关系,调用所述第二模型。
13.根据权利要求2所述的方法,其特征在于,所述生成第二模型之后,所述方法还包括:
生成所述第一模型顶点数与所述第二模型的第二对应关系,所述第一模型与所述第一顶点数对应。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
获取第三模型的第三信息,所述第三信息包括第三顶点数;
根据所述第三信息计算所述第三模型的第三简化权值,所述第三简化权值包括第三时间简化权值和第三位置简化权值;
根据所述第三简化权值,计算所述第三模型的第三细节层级;
当所述第三顶点数与所述第一顶点数相同,所述第三细节层级与所述第一细节层级相同时,根据所述第二对应关系,调用所述第二模型。
15.根据权利要求1所述的方法,其特征在于,所述获取第一模型的信息之前,所述方法还包括:
获取应用程序的第二标识,所述第二标识用于指示包含第一模型的模型库的名称;
若所述第二标识在预设名称范围,则执行如权利要求1所述的方法。
16.根据权利要求6所述的方法,其特征在于,所述获取第一细节层级,包括:
根据第四公式计算所述第一细节层级,所述第四公式为:X=ROUND(N*Min(M1,M2,M3),Y),其中,X为所述第一细节层级,N为预设细节层级,M1为所述时间简化权值,M2为位置简化权值,M3为所述重要度简化权值,Min为取括号内最小值,ROUND(N*Min(M1,M2,M3),X)为对N*Min(M1,M2,M3)的数值执行四舍五入以保留小数点后Y位。
17.一种图像绘制装置,其特征在于,包括:
模型分析管理模块,用于获取第一模型的第一信息,所述第一信息包括在预设时间段内包含所述第一模型的帧的数量值;
所述模型分析管理模块,还用于获取所述第一模型的第一简化权值,所述第一简化权值包括时间简化权值,所述时间简化权值由包含所述第一模型的帧的数量值计算所得,所述时间简化权值与包含所述第一模型的帧的数量成反比;
细节层级管理模块,用于获取第一细节层级,所述第一细节层级由所述第一简化权值计算所得;
图形驱动模块,用于生成第二模型,所述第二模型由第一细节层级计算所得,所述第二模型的精度小于所述第一模型的精度,并基于所述第二模型绘制图像。
18.一种图像绘制装置,其特征在于,包括:处理器和存储器,所述存储器中存储有程序指令;所述处理器用于执行存储器中存储的程序指令,执行如权利要求1至权利要求16所述的方法。
19.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,所述计算机执行上述权利要求1至权利要求16所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063906.0A CN111476872B (zh) | 2019-01-23 | 2019-01-23 | 一种图像绘制方法及图像绘制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063906.0A CN111476872B (zh) | 2019-01-23 | 2019-01-23 | 一种图像绘制方法及图像绘制装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111476872A CN111476872A (zh) | 2020-07-31 |
CN111476872B true CN111476872B (zh) | 2022-10-11 |
Family
ID=71743255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910063906.0A Active CN111476872B (zh) | 2019-01-23 | 2019-01-23 | 一种图像绘制方法及图像绘制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111476872B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615495A (zh) * | 2020-12-09 | 2022-06-10 | Oppo广东移动通信有限公司 | 模型量化方法、装置、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008105092A1 (ja) * | 2007-02-28 | 2008-09-04 | Panasonic Corporation | グラフィックス描画装置及びグラフィックス描画方法 |
CN101615191A (zh) * | 2009-07-28 | 2009-12-30 | 武汉大学 | 海量点云数据的存储与实时可视化方法 |
CN102232294A (zh) * | 2008-12-01 | 2011-11-02 | 图象公司 | 用于呈现具有内容自适应信息的三维动态影像的方法和*** |
CN104050708A (zh) * | 2014-06-09 | 2014-09-17 | 无锡梵天信息技术股份有限公司 | 一种3d游戏引擎lod***的实现方法 |
CN108211352A (zh) * | 2017-12-28 | 2018-06-29 | 深圳市创梦天地科技股份有限公司 | 一种调节画质的方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3889394B2 (ja) * | 2003-12-16 | 2007-03-07 | 株式会社スクウェア・エニックス | 画像描画装置及び方法、プログラム並びに記録媒体 |
-
2019
- 2019-01-23 CN CN201910063906.0A patent/CN111476872B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008105092A1 (ja) * | 2007-02-28 | 2008-09-04 | Panasonic Corporation | グラフィックス描画装置及びグラフィックス描画方法 |
CN102232294A (zh) * | 2008-12-01 | 2011-11-02 | 图象公司 | 用于呈现具有内容自适应信息的三维动态影像的方法和*** |
CN101615191A (zh) * | 2009-07-28 | 2009-12-30 | 武汉大学 | 海量点云数据的存储与实时可视化方法 |
CN104050708A (zh) * | 2014-06-09 | 2014-09-17 | 无锡梵天信息技术股份有限公司 | 一种3d游戏引擎lod***的实现方法 |
CN108211352A (zh) * | 2017-12-28 | 2018-06-29 | 深圳市创梦天地科技股份有限公司 | 一种调节画质的方法及终端 |
Non-Patent Citations (2)
Title |
---|
A Survey of Real-Time Crowd Rendering;A. Beacco,et al;《COMPUTER GRAPHICS forum》;20151015;正文第32-50页 * |
网格与着色器多细节层次的自动生成方法研究;宋麒;《中国优秀硕士论文全文数据库》;20181215;I138-1326 * |
Also Published As
Publication number | Publication date |
---|---|
CN111476872A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795691B2 (en) | System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations | |
CN108211352A (zh) | 一种调节画质的方法及终端 | |
CN106898040A (zh) | 虚拟资源对象渲染方法和装置 | |
CN110478898B (zh) | 游戏中虚拟场景的配置方法及装置、存储介质及电子设备 | |
CN106155683A (zh) | 电子地图点位聚合方法以及服务端装置 | |
CN111784817B (zh) | 阴影的展示方法和装置、存储介质、电子装置 | |
CN114596423A (zh) | 基于虚拟场景网格化的模型渲染方法、装置和计算机设备 | |
CN111476872B (zh) | 一种图像绘制方法及图像绘制装置 | |
CN109272567B (zh) | 三维模型优化方法和装置 | |
CN112843700B (zh) | 地形图像的生成方法、装置、计算机设备和存储介质 | |
CN110349253A (zh) | 一种场景的三维重建方法、终端和可读存储介质 | |
CN112221151B (zh) | 一种地图生成方法、装置、计算机设备及存储介质 | |
CN112231020B (zh) | 模型切换方法和装置、电子设备和存储介质 | |
US9898873B2 (en) | Methods and systems for processing 3D graphic objects at a content processor | |
CN111445567B (zh) | 动态物体的烘焙方法、装置、计算机设备和存储介质 | |
CN110838167B (zh) | 模型的渲染方法、装置和存储介质 | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
CN111724469A (zh) | 三维模型的加载方法、显示方法、车辆和存储介质 | |
CN111898276A (zh) | 架空线路的模型处理方法、装置、计算机设备和介质 | |
CN106780693B (zh) | 一种通过绘制方式选择三维场景中物体的方法及*** | |
CN108648136B (zh) | 对二维查找表进行压缩的方法及装置 | |
CN113808246B (zh) | 一种贴图的生成方法、装置、计算机设备及计算机可读存储介质 | |
CN116310060A (zh) | 一种渲染数据的方法、装置、设备及存储介质 | |
CN113786616B (zh) | 一种间接光照实现方法、装置、存储介质及计算设备 | |
CN115908687A (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 |