CN117576300A - 一种3d渲染方法、装置、设备及可读存储介质 - Google Patents
一种3d渲染方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117576300A CN117576300A CN202311494747.2A CN202311494747A CN117576300A CN 117576300 A CN117576300 A CN 117576300A CN 202311494747 A CN202311494747 A CN 202311494747A CN 117576300 A CN117576300 A CN 117576300A
- Authority
- CN
- China
- Prior art keywords
- primitives
- rendering
- image data
- image
- triangle
- 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 175
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical 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/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种3D渲染方法、装置、设备及可读存储介质,该3D渲染方法包括:获取待渲染模型;提取待渲染模型中多组三角型图元的图像数据;基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像;当下一帧的多组三角型图元的图像数据发生变化,基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据;基于发生变化的图像数据,更新当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。本申请通过比对当前帧的渲染图像和下一帧的多组三角型图元的图像数据,仅需要更新当前帧的渲染图像中对应的三角型图元,无需对待渲染模型中的所有三角型图元重新进行渲染,有效提高渲染效率。
Description
技术领域
本申请涉及图像生成技术领域,特别是涉及一种3D渲染方法、装置、设备及可读存储介质。
背景技术
3D渲染是指使用计算机从数字3D场景生成2D图像的过程;它在日常生活中的应用非常普遍,从建筑设计、室内设计,到大型动作电影、汽车广告或产品设计的预览,它为品牌方同用户之间构建起一座“沟通桥梁”,并有效提升用户体验。
3D渲染是通过opengl(Open Graphics Library,开放图形库或者开放式图形库),或者DirectX Graphics Technology(DirectX图形技术)等技术渲染基本图元的过程,任何复杂3D模型通过都是多个三角型图元组成,渲染模型其实是渲染对应三角型图元。
当渲染3D模型时,会渲染组成改模型的所有三角型图元,每个三角型图形都会经过一整套3D渲染流程处理,因此渲染效率会随着模型复杂度上升而直线下降。
发明内容
本申请提供一种3D渲染方法、装置、设备及可读存储介质,能够解决现有技术中3D渲染需要对每个三角型图元进行渲染所带来渲染效率低下的问题。
本申请第一方面提供了一种3D渲染方法,该3D渲染方法包括:
获取待渲染模型;
提取待渲染模型中多组三角型图元的图像数据;
基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像;
当下一帧的多组三角型图元的图像数据发生变化,基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据;
基于发生变化的图像数据,更新当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。
进一步地,基于发生变化的图像数据,更新当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像的步骤,包括:
读取缓存的当前帧的渲染图像;
基于发生变化的图像数据确定当前帧的渲染图像中对应的三角型图元集合,并删除三角型图元集合;
基于发生变化的图像数据渲染生成新的三角型图元集合;
基于新的三角型图元集合与当前帧的渲染图像未删除的三角型图元集合,形成下一帧的渲染图像。
进一步地,基于发生变化的图像数据确定当前帧的渲染图像中对应的三角型图元集合,并删除三角型图元集合的步骤,包括:
基于发生变化的图像数据确定对应的三角型图元;
基于所有与发生变化的图像数据对应的三角型图元确定最小绘制矩形;
删除最小绘制矩形中的所有三角型图元的图像数据。
进一步地,3D渲染方法还包括:
将下一帧的渲染图像作为新的当前帧的渲染图像,覆盖当前帧的渲染图像缓存;
获取新的下一帧的多组三角型图元,比对新的下一帧的多组三角型图元的图像数据与新的当前帧的渲染图像;
当新的下一帧的多组三角型图元的图像数据发生变化,返回执行基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据的步骤。
进一步地,当下一帧的多组三角型图元的图像数据发生变化,基于当前帧的多组三角型图元的图像数据和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据的步骤,包括:
提取下一帧的多组三角型图元中的一组三角型图元,其中下一帧的多组三角型图元的图像数据为第一数据;
基于一组三角型图元确定当前帧的多组三角型图元中对应的一组三角型图元,其中当前帧的多组三角型图元的图像数据为第二数据;
若第一数据和第二数据不一致,判断一组三角型图元发生变化;
若第一数据和第二数据一致,返回提取下一帧的多组三角型图元中的一组三角型图元的步骤,直至下一帧的多组三角型图元中的每一组三角型图元完成与当前帧的多组三角型图元的比对。
进一步地,3D渲染方法还包括:
若下一帧的多组三角型图元的图像数据与当前帧的多组三角型图元的图像数据一致,将当前帧的渲染图像作为下一帧的渲染图像。
进一步地,提取待渲染模型中多组三角型图元的图像数据的步骤,包括:
提取待渲染模型中多组三角型图元的坐标数据,其中坐标数据包括每组三角型图元的三个顶点的坐标数据;
提取待渲染模型中多组三角型图元的颜色数据,其中坐标数据包括每组三角型图元的三个顶点的颜色数据;
基于每组三角型图元的坐标数据和颜色数据,确定每组三角型图元的图像数据。
本申请第二方面提供了一种3D渲染装置,该3D渲染装置包括:
提取模块,用于提取输入的待渲染模型中多组三角型图元的图像数据;
渲染模块,用于基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像;当下一帧的多组三角型图元的图像数据发生变化,基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据;基于发生变化的图像数据,更新当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。
本申请第三方面提供了一种电子设备,该电子设备包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现如上述的3D渲染方法。
本申请第四方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序能够被处理器执行时实现如上述的3D渲染方法。
区别于现有技术,本申请通过当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像,并通过比对当前帧的渲染图像和下一帧的多组三角型图元的图像数据,在其中的任一组三角型图元的数据发生变化时,仅需要更新当前帧的渲染图像中对应的三角型图元,无需对待渲染模型中的所有三角型图元重新进行渲染,减少渲染的三角型图元的数量,能够有效提高渲染效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请3D渲染方法一实施例的流程示意图;
图2是图1中步骤S12一实施例的具体流程示意图;
图3是图1中步骤S14一实施例的具体流程示意图;
图4是图1中步骤S15一实施例的具体流程示意图;
图5是图4中步骤S152一实施例的具体流程示意图;
图6是本申请3D渲染方法另一实施例的流程示意图;
图7是本申请3D渲染方法又一实施例的流程示意图;
图8是本申请3D渲染装置一实施例的框架示意图;
图9是本申请电子设备一实施例的框架示意图;
图10是本申请计算机可读存储介质一实施例的框架示意图。
具体实施方式
为使本领域的技术人员更好地理解本申请的技术方案,下面结合附图和具体实施方式对本申请所提供的3D渲染方法、装置、设备及可读存储介质做进一步详细描述。可以理解的是,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
现有的3D渲染需要对所需渲染的3D模型中的所有三角型图元进行渲染,当所需渲染的3D模型的复杂度越高时,即其包括的三角型图元的数量越多时,渲染的时间越长,渲染效率也越低。
因此,本申请提供一种3D渲染方法,能够解决现有技术中3D渲染需要对每个三角型图元进行渲染所带来渲染效率低下的问题。请参阅图1,图1是本申请3D渲染方法一实施例的流程示意图。
本申请3D渲染方法的执行主体可以是一种3D渲染装置,例如,3D渲染方法可以由终端设备或服务器或其它处理设备执行,其中,3D渲染装置可以为用户设备(UserEquipment,UE)、移动设备、用户终端、终端、蜂窝电话、无线电话、个人数字处理(PersonalDigital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该3D渲染方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
具体而言,本公开实施例的3D渲染方法可以包括以下步骤:
步骤S11:获取待渲染模型。
其中,待渲染模型为任一需要进行3D渲染的3D模型。
步骤S12:提取待渲染模型中多组三角型图元的图像数据。
其中,每个待渲染模型由多组三角型图元组成,对待渲染模型进行渲染即为对多组三角型图元进行绘制,而绘制三角型图元需要获取三角型图元的图像数据。
具体地,三角型图元的图像数据可包括坐标数据以及颜色数据,具体提取图像数据的过程请继续参阅图2,图2是图1中步骤S12一实施例的具体流程示意图。具体而言,包括以下步骤:
步骤S121:提取待渲染模型中多组三角型图元的坐标数据。
其中,坐标数据包括每组三角型图元的三个顶点的坐标数据,具体地,三角型图元的坐标数据可如公式(1)所示:
Pn_m= (x,y,z) (1)
其中,n表示第n组三角型图元,m表示当前组三角型图元的第m个点,x,y,z分别代表该点在3D空间中的坐标值。
步骤S122:提取待渲染模型中多组三角型图元的颜色数据。
其中,颜色数据包括每组三角型图元的三个顶点的颜色数据,具体地,三角型图元的颜色数据可如公式(2)所示:
Cn_m= (r,g,b,a) (2)
其中,r是代表Red(红色),g是代表Green(绿色),b是代表Blue(蓝色),a是代表Alpha的色彩空间。
步骤S123:基于每组三角型图元的坐标数据和颜色数据,确定每组三角型图元的图像数据。
其中,结合三角型图元的坐标数据以及颜色数据即可得到三角型图元的图像数据,具体可如公式(3)所示:
Tn= (Pn_1,Pn_2,Pn_3,Cn_1,Cn_2,Cn_3) (3)
其中,Tn代表第n组的三角型图元的图像数据,具体包括当组的三个顶点的坐标数据Pn_1,Pn_2,Pn_3,以及包括当组的三个顶点的颜色数据Cn_1,Cn_2,Cn_3。具体地,当上述的六个数据中的任意一个数据发生变化,即可认为待渲染模型更新。
其中,图像连续出现在显示器上的频率(速率)称为帧率(Frame rate),则基于图像显示所要求的帧率不同,每秒对待渲染模型进行渲染的次数也不同。例如,当图像显示所要求的帧率为60,则需要每秒渲染60次待渲染模型,即需要每秒渲染60帧的图像。
步骤S13:基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像。
其中,根据步骤S121-步骤S123所获取的图像数据,具体包括多帧的多组三角型图元的图像数据。因此,基于当前帧的多组三角型图元的图像数据,即可绘制得到当前帧的渲染图像。
步骤S14:当下一帧的多组三角型图元的图像数据发生变化,基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据。
其中,当判断下一帧的多组三角型图元的图像数据发生变化,即下一帧的多组三角型图元的至少一个坐标数据和/或颜色数据发生变化时,即可判断该坐标数据和/或颜色数据所对应的三角型图元发生更新。
具体判断下一帧的多组三角型图元的图像数据是否发生变化的过程请继续参阅图3,图3是图1中步骤S14一实施例的具体流程示意图。
具体而言,包括以下步骤:
步骤S141:提取下一帧的多组三角型图元中的一组三角型图元。
其中,本实施例将下一帧的多组三角型图元的图像数据定义为第一数据,提取下一帧的多组三角型图元中的一组三角型图元,即为提取多组第一数据中的任一组第一数据。
步骤S142:基于一组三角型图元确定当前帧的多组三角型图元中对应的一组三角型图元。
其中,本实施例将当前帧的多组三角型图元的图像数据定义为第二数据,提取当前帧的多组三角型图元中的一组三角型图元,即为提取多组第二数据中的任一组第二数据。
具体地,当步骤S141确定所提取的三角型图元时,则提取该三角型图元对应的第二数据,实现对同一组的三角型图元的数据比较。
步骤S143:若第一数据和第二数据不一致,判断一组三角型图元发生变化。
其中,当判断步骤S141所提取的第一数据与步骤S142所提取的第二数据不一致时,由于步骤S142所提取的第二数据与步骤S141所提取的第一数据对应于同一组的三角型图元,则可判断该组三角型图元发生变化。
步骤S144:若第一数据和第二数据一致,返回提取下一帧的多组三角型图元中的一组三角型图元的步骤,直至下一帧的多组三角型图元中的每一组三角型图元完成与当前帧的多组三角型图元的比对。
其中,当判断步骤S141所提取的第一数据与步骤S142所提取的第二数据一致时,则可判断该组三角型图元未发生变化。
由于包括下一帧的多组三角型图元的图像数据包括多组的第二数据,需要一一与多组第一数据进行比对,因此当判断该组三角型图元未发生变化,需要对下一组第二数据进行比对,即返回执行步骤S141,提取新一组的三角型图元的图像数据,即提取新一组的三角型图元的第一数据,重新比对,直至所有组的三角型图元的第一数据和第二数据完成比对。
进一步地,当完成对所有组第二数据与对应组的第一数据的比对之后,若存在任意一组的第二数据与第一数据不同,则判断当前帧和下一帧相邻的两帧存在需要更新的内容。在基于不同的第一数据和第二数据对当前帧的渲染图像进行更新之后,此时下一帧即为新的当前帧,接收与新的当前帧相邻的下一帧,以新的当前帧的渲染图像与相邻的下一帧做进一步地比对。
当完成对所有组第二数据与对应组的第一数据的比对之后,若不存在任意一组的第二数据与第一数据不同,则判断当前帧和下一帧相邻的两帧内容相同,不需要更新。同时,将下一帧即为新的当前帧,并且复用当前帧的渲染图像作为新的当前帧的渲染图像,接收与新的当前帧相邻的下一帧,以新的当前帧的渲染图像与相邻的下一帧做进一步地比对。
本实施例通过依次对相邻两帧进行比对,不管是否存在数据更新,均可实现对相邻帧迭代比对的效果。
步骤S15:基于发生变化的图像数据,更新当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。
其中,本实施例基于步骤S141-步骤S144所确定的发生变化的图像数据,进而确定与其对应的三角型图元,复用当前帧的渲染图像,对当前帧的渲染图像中对应的三角型图元进行更新,以形成下一帧的渲染图像。
具体更新当前帧的渲染图像中对应的三角型图元的过程请继续参阅图4,图4是图1中步骤S15一实施例的具体流程示意图。具体而言,包括以下步骤:
步骤S151:读取缓存的当前帧的渲染图像。
其中,本实施例在完成步骤S13之后,缓存当前帧的渲染图像。
步骤S152:基于发生变化的图像数据确定当前帧的渲染图像中对应的三角型图元集合,并删除三角型图元集合。
其中,本实施例读取已缓存的当前帧的渲染图像,实现复用当前帧的渲染图像,对当前帧的渲染图像中的部分三角型图元进行更新,减少渲染的数据数量,提高渲染效率。
具体地,当判断下一帧的多组三角型图元的图像数据发生变化时,具体删除当前帧的渲染图像中发生变化的三角型图元的过程请继续参阅图5,图5是图4中步骤S152一实施例的具体流程示意图。具体而言,包括以下步骤:
步骤S1521:基于发生变化的图像数据确定对应的三角型图元。
其中,本实施例基于步骤S141-步骤S144可确定发生变化的图像数据,其所对应的三角型图元为发生变化的三角型图元,具体为待渲染模型中所更新的三角型图元。
步骤S1522:基于所有与发生变化的图像数据对应的三角型图元确定最小绘制矩形。
其中,渲染的具体步骤是在一个矩形框中绘制三角型,其中矩形框的表达式为R(x,y,w,h),x,y表示该矩形框的左上角的空间坐标,w表示该矩形框的宽度,h表示该矩形框的高度。
因此,基于所有发生变化的图像数据对应的三角型图元,可确定若干个包括所有三角型图元的绘制框,当该绘制框的四边恰好与所有三角型图元的最边角的顶点重合时,则该绘制框为最小绘制矩形。
步骤S1523:删除最小绘制矩形中的所有三角型图元的图像数据。
其中,本实施例基于步骤S1522所确定的最小绘制矩形包括所有发生变化的三角型图元,且不包括其余未发生变化的三角型图元,删除最小绘制矩形中的所有三角型图元的图像数据,即删除所有发生变化的三角型图元,同时保留了当前帧的渲染图像中其余未发生变化的三角型图元,避免二次绘制的冗余。
步骤S153:基于发生变化的图像数据渲染生成新的三角型图元集合。
其中,本实施例基于步骤S141-步骤S144可确定发生变化的图像数据重新渲染,即重新绘制得到新的三角型图元。可选地,当发生的三角型图元不止一个时,重新绘制的三角型图元可形成一三角型图元集合。
步骤S154:基于新的三角型图元集合与当前帧的渲染图像未删除的三角型图元集合,形成下一帧的渲染图像。
其中,本实施例基于步骤S153绘制得到新的三角型图元集合,同时当前帧的渲染图像中其余未发生变化的三角型图元为另一三角型图元集合,两个三角型图元集合的集合即为下一帧的渲染图像。
本申请通过当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像,并通过比对当前帧的渲染图像和下一帧的多组三角型图元的图像数据。其中本申请将发生变化的三角型图元和未发生变化的三角型图元分别看成单独的三角型图元集合,在其中的任一组三角型图元的数据发生变化时,仅需要更新当前帧的渲染图像中对应的三角型图元,即更新发生变化的三角型图元所对应的三角型图元集合,将多组三角型图元的渲染简化两组三角型图元集合的渲染,无需对待渲染模型中的所有三角型图元重新进行渲染,减少渲染的三角型图元的数量,能够有效提高渲染效率。
可选地,本申请还提供另一实施例,当判断输入的待渲染模型未更新时,直接复用缓存的当前帧的渲染图像。请继续参阅图6,图6是本申请3D渲染方法另一实施例的流程示意图。具体而言,包括以下步骤:
步骤S11:获取待渲染模型。
步骤S12:提取待渲染模型中多组三角型图元的图像数据。
步骤S13:基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像。
其中,本实施例中的步骤S11-步骤S13与上述实施例所述的步骤S11-步骤S13一致,在此不再赘述。
步骤S16:若下一帧的多组三角型图元的图像数据与当前帧的多组三角型图元的图像数据一致,将当前帧的渲染图像作为下一帧的渲染图像。
其中,当判断下一帧的多组三角型图元的所有图像数据均未发生变化,即可判断待渲染模型的所有三角型图元未发生更新。因此,本申请读取已缓存的当前帧的渲染图像,将其作为下一帧的渲染图像,实现复用当前帧的渲染图像,节省重复渲染的过程,提高整体渲染效率。
可选地,本申请还提供另一实施例,实现对多帧的多组三角型图元的图像数据的渲染。结合图1和图6,请进一步参阅图7,图7是本申请3D渲染方法又一实施例的流程示意图。具体而言,包括以下步骤:
步骤S21:将下一帧的渲染图像作为新的当前帧的渲染图像,覆盖当前帧的渲染图像缓存。
其中,本实施例在执行完成步骤S15或者步骤S16之后,将下一帧的渲染图像覆盖当前帧的渲染图像缓存,以形成新的当前帧的渲染图像。
步骤S22:获取新的下一帧的多组三角型图元,比对新的下一帧的多组三角型图元的图像数据与新的当前帧的渲染图像。
其中,本实施例获取新的下一帧的多组三角型图元的图像数据,比对新的下一帧的多组三角型图元的图像数据与新的当前帧的渲染图像,以基于比对结果实现对下一帧的多组三角型图元的渲染。
步骤S23:当新的下一帧的多组三角型图元的图像数据发生变化,返回执行基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据的步骤。
其中,本实施例响应于新的下一帧的多组三角型图元的图像数据发生变化则返回步骤S14,后续步骤与步骤S14-步骤S15相同,在形成新的下一帧的渲染图像时,重新执行步骤S21。本实施例通过步骤S21-步骤S23,在判断到待渲染模型存在更新时,能够持续进行渲染更新。
可选地,本实施例响应于新的下一帧的多组三角型图元的图像数据均未发生变化则返回步骤S16,后续步骤与步骤S16相同,在形成新的下一帧的渲染图像时,重新执行步骤S21。
本申请通过将下一帧的渲染图像持续覆盖当前帧的渲染图像,实现对多帧的多组三角型图元的迭代渲染,实现对待渲染模型的实时更新。
可选地,在另一实施例中,还可设置当检测到新的下一帧的多组三角型图元的图像数据均未发生变化时,即检测到待渲染模型不存在更新时,则可停止渲染。
请参阅图8,图8是本申请3D渲染装置一实施例的框架示意图。本实施例的3D渲染装置30包括提取模块31和渲染模块32,其中提取模块31连接3D渲染装置30的输入接口,接收输入3D渲染装置30的待渲染模型,渲染模块32连接提取模块31,基于提取模块31所提取的带渲染模型的数据生成渲染图像。
具体地,提取模块31用于提取输入的待渲染模型中多组三角型图元的图像数据,其中图像数据包括坐标数据以及颜色数据。由于待渲染模型由多组三角型图元组成,每组三角型图元包括三个顶点,则每组三角型图元的坐标数据以及颜色数据包括每组三角型图元的三个顶点的坐标数据以及颜色数据。
渲染模块32用于基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像。其中,图像连续出现在显示器上的频率(速率)称为帧率(Frame rate),则基于图像显示所要求的帧率不同,渲染模块32需要每秒对待渲染模型进行渲染的次数也不同。例如,当图像显示所要求的帧率为60,则渲染模块32需要每秒渲染60次。可以理解为,渲染模块32需要每秒渲染60帧的图像。
因此,提取模块31所提取输入的待渲染模型中多组三角型图元的图像数据包括多帧的多组三角型图元的图像数据,渲染模块32基于不同帧的图像数据渲染得到不同的渲染图像。
渲染模块32还用于当下一帧的多组三角型图元的图像数据发生变化,基于当前帧的渲染图像和下一帧的多组三角型图元的图像数据,获取发生变化的图像数据。
具体地,当渲染模块32监测到下一帧的多组三角型图元的图像数据发生变化,即多组三角型图元的若干坐标数据以及颜色数据中的任意数据发生变化时,则获取发生变化的图像数据。
渲染模块32还用于基于发生变化的图像数据,更新当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。
具体地,渲染模块32删除发生变化的图像数据对应的三角型图元数据,并基于发生变化的图像数据渲染生成新的三角型图元,结合当前帧的渲染图像中未删除的三角型图元数据,即可形成下一帧的渲染图像。
本申请通过提取模块31提取待渲染模型中多组三角型图元的图像数据,并通过渲染模块32基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像,进一步通渲染模块32过比对当前帧的渲染图像和下一帧的多组三角型图元的图像数据,在其中的任一组三角型图元的数据发生变化时,仅需要更新当前帧的渲染图像中对应的三角型图元,无需对待渲染模型中的所有三角型图元重新进行渲染,减少渲染的三角型图元的数量,能够有效提高渲染效率。
本申请还提供一种电子设备,请参阅图9,图9是本申请电子设备一实施例的框架示意图。电子设备40包括相互耦接的存储器41和处理器42,处理器42用于执行存储器41中存储的程序指令,以实现上述任一3D渲染方法实施例中的步骤。在一个具体的实施场景中,电子设备40可以包括但不限于:微型计算机、服务器,此外,电子设备40还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器42用于控制其自身以及存储器41以实现上述任一3D渲染方法实施例中的步骤。处理器42还可以称为CPU(Central Processing Unit,中央处理单元)。处理器42可能是一种集成电路芯片,具有信号的处理能力。处理器42还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器42可以由集成电路芯片共同实现。
本申请还提供一种计算机可读存储介质,请参阅图10,图10是本申请计算机可读存储介质一实施例的框架示意图。计算机可读存储介质50存储有能够被处理器运行的计算机程序51,计算机程序51用于实现上述任一3D渲染方法实施例中的步骤。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种3D渲染方法,其特征在于,包括:
获取待渲染模型;
提取所述待渲染模型中多组三角型图元的图像数据;
基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像;
当下一帧的多组三角型图元的图像数据发生变化,基于所述当前帧的渲染图像和所述下一帧的多组三角型图元的图像数据,获取发生变化的图像数据;
基于所述发生变化的图像数据,更新所述当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。
2.根据权利要求1所述的3D渲染方法,其特征在于,所述基于所述发生变化的图像数据,更新所述当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像的步骤,包括:
读取缓存的所述当前帧的渲染图像;
基于所述发生变化的图像数据确定所述当前帧的渲染图像中对应的三角型图元集合,并删除所述三角型图元集合;
基于所述发生变化的图像数据渲染生成新的三角型图元集合;
基于所述新的三角型图元集合与所述当前帧的渲染图像未删除的三角型图元集合,形成下一帧的渲染图像。
3.根据权利要求2所述的3D渲染方法,其特征在于,所述基于所述发生变化的图像数据确定所述当前帧的渲染图像中对应的三角型图元集合,并删除所述三角型图元集合的步骤,包括:
基于所述发生变化的图像数据确定对应的三角型图元;
基于所有与所述发生变化的图像数据对应的三角型图元确定最小绘制矩形;
删除所述最小绘制矩形中的所有三角型图元的图像数据。
4.根据权利要求1所述的3D渲染方法,其特征在于,所述3D渲染方法还包括:
将所述下一帧的渲染图像作为新的当前帧的渲染图像,覆盖所述当前帧的渲染图像缓存;
获取新的下一帧的多组三角型图元,比对所述新的下一帧的多组三角型图元的图像数据与所述新的当前帧的渲染图像;
当所述新的下一帧的多组三角型图元的图像数据发生变化,返回执行所述基于所述当前帧的渲染图像和所述下一帧的多组三角型图元的图像数据,获取发生变化的图像数据的步骤。
5.根据权利要求1所述的3D渲染方法,其特征在于,所述当下一帧的多组三角型图元的图像数据发生变化,基于所述当前帧的多组三角型图元的图像数据和所述下一帧的多组三角型图元的图像数据,获取发生变化的图像数据的步骤,包括:
提取所述下一帧的多组三角型图元中的一组三角型图元,其中所述下一帧的多组三角型图元的图像数据为第一数据;
基于所述一组三角型图元确定所述当前帧的多组三角型图元中对应的一组三角型图元,其中所述当前帧的多组三角型图元的图像数据为第二数据;
若所述第一数据和所述第二数据不一致,判断所述一组三角型图元发生变化;
若所述第一数据和所述第二数据一致,返回所述提取所述下一帧的多组三角型图元中的一组三角型图元的步骤,直至所述下一帧的多组三角型图元中的每一组三角型图元完成与所述当前帧的多组三角型图元的比对。
6.根据权利要求1所述的3D渲染方法,其特征在于,所述3D渲染方法还包括:
若所述下一帧的多组三角型图元的图像数据与所述当前帧的多组三角型图元的图像数据一致,将所述当前帧的渲染图像作为所述下一帧的渲染图像。
7.根据权利要求1所述的3D渲染方法,其特征在于,所述提取待渲染模型中多组三角型图元的图像数据的步骤,包括:
提取所述待渲染模型中多组三角型图元的坐标数据,其中所述坐标数据包括每组三角型图元的三个顶点的坐标数据;
提取所述待渲染模型中多组三角型图元的颜色数据,其中所述坐标数据包括每组三角型图元的三个顶点的颜色数据;
基于每组三角型图元的坐标数据和颜色数据,确定每组所述三角型图元的图像数据。
8.一种3D渲染装置,其特征在于,包括:
提取模块,用于提取输入的待渲染模型中多组三角型图元的图像数据;
渲染模块,用于基于当前帧的多组三角型图元的图像数据渲染生成当前帧的渲染图像;当下一帧的多组三角型图元的图像数据发生变化,基于所述当前帧的渲染图像和所述下一帧的多组三角型图元的图像数据,获取发生变化的图像数据;基于所述发生变化的图像数据,更新所述当前帧的渲染图像中对应的三角型图元,形成下一帧的渲染图像。
9.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现如权利要求1-7中任一项所述的3D渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被处理器执行时实现如权利要求1-7中任一项所述的3D渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311494747.2A CN117576300A (zh) | 2023-11-09 | 2023-11-09 | 一种3d渲染方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311494747.2A CN117576300A (zh) | 2023-11-09 | 2023-11-09 | 一种3d渲染方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117576300A true CN117576300A (zh) | 2024-02-20 |
Family
ID=89883564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311494747.2A Pending CN117576300A (zh) | 2023-11-09 | 2023-11-09 | 一种3d渲染方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117576300A (zh) |
-
2023
- 2023-11-09 CN CN202311494747.2A patent/CN117576300A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220261960A1 (en) | Super-resolution reconstruction method and related apparatus | |
CN108022212B (zh) | 高分辨率图片生成方法、生成装置及存储介质 | |
WO2021047429A1 (zh) | 一种图像渲染方法、装置、设备及存储介质 | |
CN106611435B (zh) | 动画处理方法和装置 | |
CN113034358B (zh) | 一种超分辨率图像处理方法以及相关装置 | |
CN104850388B (zh) | 网页绘制方法及装置 | |
JP2007280284A (ja) | 画像の高解像度化方法及び装置 | |
CN107563974B (zh) | 图像去噪方法、装置、电子设备及存储介质 | |
WO2022179045A1 (zh) | 图像处理方法、装置、存储介质、程序及程序产品 | |
CN112714357B (zh) | 视频播放方法、视频播放装置、电子设备和存储介质 | |
CN109377552B (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
CN112950640A (zh) | 视频人像分割方法、装置、电子设备及存储介质 | |
CN111294600A (zh) | 一种视频序列帧的压缩方法、解压方法及装置 | |
CN113657518B (zh) | 训练方法、目标图像检测方法、装置、电子设备以及介质 | |
CN112650460A (zh) | 媒体显示方法和媒体显示装置 | |
CN114040246A (zh) | 图形处理器的图像格式转换方法、装置、设备及存储介质 | |
CN113791857A (zh) | Linux系统中应用窗口背景模糊处理方法及装置 | |
CN113487478A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN109829963B (zh) | 一种图像绘制方法及装置、计算设备和存储介质 | |
JPWO2014171066A1 (ja) | 三次元画像表示システム、三次元画像表示システムのサーバ及び三次元画像表示方法 | |
CN117576300A (zh) | 一种3d渲染方法、装置、设备及可读存储介质 | |
CN114549303B (zh) | 图像显示、处理方法、装置、设备和存储介质 | |
US20110122140A1 (en) | Drawing device and drawing method | |
CN115049572A (zh) | 图像处理方法、装置、电子设备和计算机可读存储介质 | |
CN114782249A (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 |