顶点属性存储的方法及装置制造方法及图纸

技术编号:14836242 阅读:104 留言:0更新日期:2017-03-17 03:53
本发明专利技术提供一种顶点属性存储的方法及装置,该方法包括:分配第一存储空间,确定第一存储空间能够容纳的第一待存储顶点的顶点数量;根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定第一待存储顶点的各属性的偏移量,根据各属性的偏移量,在第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行存储;确定第一待存储顶点中的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量大于预设值,根据第一待存储顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点的属性。本发明专利技术不仅提高图形处理器的处理性能,还提高了空间利用率。

【技术实现步骤摘要】

本专利技术实施例涉及存储技术,尤其涉及一种顶点属性存储的方法及装置
技术介绍
在计算机图形学中,图形由多个顶点组成,每个顶点具有不同的属性,例如顶点位置、顶点颜色以及顶点的法向量等。应用程序通过调用开放图形库(OpenGraphicsLibrary,简称OpenGL)的显示列表中的函数来组织顶点的属性,并将顶点的属性发送给图形处理器(GraphicsProcessingUnit,简称GPU),由GPU根据顶点的属性进行渲染并显示该图形。现有技术中,应用程序通过调用OpenGL的显示列表中的函数来组织顶点的属性,通常采用离散存储的方式。在该方式中,先分配存储空间,然后依次将该顶点的属性写入该存储空间。在具体处理过程中,将一个顶点的所有属性写入存储空间之后,判断存储空间的剩余空间是否可以容纳下一个顶点的所有属性,若是,则继续存储该下一个顶点的所有属性,若否,则再分配存储空间,直至所有顶点的所有属性都存储至存储空间。然而,现有技术中对于各属性而言,各属性在存储空间中的存储是离散的,导致图形处理器根据顶点的属性,进行渲染并显示该图形时处理性能不佳。
技术实现思路
本专利技术实施例提供一种顶点属性存储的方法及装置,以使顶点的属性可连续存储至存储空间,使得图形处理器根据顶点的属性进行渲染并显示该图形时,性能提高。第一方面,本专利技术提供一种顶点属性存储的方法,包括:分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。第二方面,本专利技术提供一种顶点属性存储的装置,包括:分配模块,用于分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;第一存储模块,用于根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据各所述属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;处理模块,用于确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。本实施例提供的顶点属性存储的方法及装置,通过分配第一存储空间,根据第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定第一存储空间能够容纳的第一待存储顶点的顶点数量;其中,第一待存储顶点中包括多个属性相同的顶点;根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储第一待存储顶点的各属性的偏移量,根据各属性的偏移量,在第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行连续存储;确定第一待存储顶点中的所有顶点的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量是否大于预设值,若是,根据第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的第一待存储顶点的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点的属性,不仅使得顶点属性可以连续存储,提高图形处理器的处理性能,还充分利用了存储空间,提高了空间利用率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术顶点属性存储的方法实施例一的流程图;图2为本专利技术顶点属性存储的方法实施例二的流程图;图3为本专利技术顶点属性存储的装置实施例一的结构示意图;图4为本专利技术顶点属性存储的装置实施例二的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在实际应用场景中,当应用程序需要绘图时,应用程序需要准备待绘制图形的所有的顶点的属性,由开放图形库(OpenGraphicsLibrary,简称OpenGL)通过显示列表组织属性,然后发送给图形处理器,由图形处理器根据顶点的属性进行渲染并图形。其中,OpenGL相当于一个中转站,因此,需要为OpenGL准备存储空间来缓存顶点的属性。本实施例的存储方法具体可以应用到OpenGL技术中,本领域技术人员可以理解,本实施例的存储方法不仅可以应用到OpenGL技术中,还可以应用到其它方面,本实施例此处不再赘述。下面对本实施例提供的顶点属性存储的方法进行详细说明。图1为本专利技术顶点属性存储的方法实施例一的流程图。本实施例提供的方法可由存储装置实现,该存储装置可由任意的软件和/或硬件实现。该存储装置还可以嵌入到终端设备中,以使终端设备实现本实施例的顶点属性存储的方法。如图1所示,本实施例的方法包括:步骤101、分配第一存储空间,根据第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定第一存储空间能够容纳的第一待存储顶点的顶点数量;其中,第一待存储顶点中包括多个属性相同的顶点;步骤102、根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储第一待存储顶点的各属性的偏移量,根据各属性的偏移量,在第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行连续存储;步骤103、确定第一待存储顶点中的所有顶点的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量是否大于预设值,若是,根据第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的第一待存储顶点的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点的属性。在具体实现过程中,在步骤101中,先分配第一存储空间,确定第一存储空间能够容纳的顶点数量。在本实施例中,第一存储空间用于存储第一待存储顶点的属性本文档来自技高网...
顶点属性存储的方法及装置

【技术保护点】
一种顶点属性存储的方法,其特征在于,包括:分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。

【技术特征摘要】
1.一种顶点属性存储的方法,其特征在于,包括:分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的第一待存储顶点的顶点数量,包括:获取所述第一待存储顶点中任一顶点的每个属性所占的存储空间的大小;根据所述任一顶点的每个属性所占的存储空间的大小,得到所述任一顶点的所有属性占用的存储空间;根据所述第一存储空间的存储容量、以及所述任一顶点的所有属性占用的存储空间,确定所述第一存储空间能够容纳的第一待存储顶点的顶点数量。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储,
\t包括:根据所述第一存储空间能够容纳的顶点数量,确定用于存储所述第一待存储顶点的第M个属性的偏移量为(M-1)*N,所述1≤M≤第一待存储顶点的属性的数量,所述N为所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;根据各所述属性的偏移量,将所述第一待存储顶点中的第一个顶点的第一个属性存储至所述第一存储空间中的[1,N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第二个属性存储至所述第一存储空间中的[N+1,2N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第M个属性存储至所述第一存储空间中的[(M-1)*N+1,MN]存储空间中的第一个位置,直至将所述第一待存储顶点中的第一个顶点的所有属性存储至所述第一存储空间,依次处理每个顶点,直至将所述第一待存储顶点中的所有顶点的属性存储至第一存储空间或所述第一存储空间存满。4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:确定所述第一存储空间存满,且所述第一待存储顶点中存在未被所述第一存储空间容纳的顶点后,分配第三存储空间,在所述第三存储空间中,对未被所述第一存储空间容纳的所述第一待存储顶点的相同属性进行连续存储。5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:确定所述第一待存储顶点中的所有顶点的...

【专利技术属性】
技术研发人员:高翔吴松伟蔡万伟薛双百
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1