CN106504183B - 顶点属性存储的方法及装置 - Google Patents

顶点属性存储的方法及装置 Download PDF

Info

Publication number
CN106504183B
CN106504183B CN201510568042.XA CN201510568042A CN106504183B CN 106504183 B CN106504183 B CN 106504183B CN 201510568042 A CN201510568042 A CN 201510568042A CN 106504183 B CN106504183 B CN 106504183B
Authority
CN
China
Prior art keywords
vertex
memory space
attribute
stored
store
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
Application number
CN201510568042.XA
Other languages
English (en)
Other versions
CN106504183A (zh
Inventor
高翔
吴松伟
蔡万伟
薛双百
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201510568042.XA priority Critical patent/CN106504183B/zh
Publication of CN106504183A publication Critical patent/CN106504183A/zh
Application granted granted Critical
Publication of CN106504183B publication Critical patent/CN106504183B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)

Abstract

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

Description

顶点属性存储的方法及装置
技术领域
本发明实施例涉及存储技术,尤其涉及一种顶点属性存储的方法及装置。
背景技术
在计算机图形学中,图形由多个顶点组成,每个顶点具有不同的属性,例如顶点位置、顶点颜色以及顶点的法向量等。应用程序通过调用开放图形库(Open GraphicsLibrary,简称OpenGL)的显示列表中的函数来组织顶点的属性,并将顶点的属性发送给图形处理器(Graphics Processing Unit,简称GPU),由GPU根据顶点的属性进行渲染并显示该图形。
现有技术中,应用程序通过调用OpenGL的显示列表中的函数来组织顶点的属性,通常采用离散存储的方式。在该方式中,先分配存储空间,然后依次将该顶点的属性写入该存储空间。在具体处理过程中,将一个顶点的所有属性写入存储空间之后,判断存储空间的剩余空间是否可以容纳下一个顶点的所有属性,若是,则继续存储该下一个顶点的所有属性,若否,则再分配存储空间,直至所有顶点的所有属性都存储至存储空间。
然而,现有技术中对于各属性而言,各属性在存储空间中的存储是离散的,导致图形处理器根据顶点的属性,进行渲染并显示该图形时处理性能不佳。
发明内容
本发明实施例提供一种顶点属性存储的方法及装置,以使顶点的属性可连续存储至存储空间,使得图形处理器根据顶点的属性进行渲染并显示该图形时,性能提高。
第一方面,本发明提供一种顶点属性存储的方法,包括:
分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;
根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;
确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。
第二方面,本发明提供一种顶点属性存储的装置,包括:
分配模块,用于分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;
第一存储模块,用于根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据各所述属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;
处理模块,用于确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。
本实施例提供的顶点属性存储的方法及装置,通过分配第一存储空间,根据第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定第一存储空间能够容纳的第一待存储顶点的顶点数量;其中,第一待存储顶点中包括多个属性相同的顶点;根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储第一待存储顶点的各属性的偏移量,根据各属性的偏移量,在第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行连续存储;确定第一待存储顶点中的所有顶点的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量是否大于预设值,若是,根据第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的第一待存储顶点的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点的属性,不仅使得顶点属性可以连续存储,提高图形处理器的处理性能,还充分利用了存储空间,提高了空间利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明顶点属性存储的方法实施例一的流程图;
图2为本发明顶点属性存储的方法实施例二的流程图;
图3为本发明顶点属性存储的装置实施例一的结构示意图;
图4为本发明顶点属性存储的装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实际应用场景中,当应用程序需要绘图时,应用程序需要准备待绘制图形的所有的顶点的属性,由开放图形库(Open Graphics Library,简称OpenGL)通过显示列表组织属性,然后发送给图形处理器,由图形处理器根据顶点的属性进行渲染并图形。其中,OpenGL相当于一个中转站,因此,需要为OpenGL准备存储空间来缓存顶点的属性。
本实施例的存储方法具体可以应用到OpenGL技术中,本领域技术人员可以理解,本实施例的存储方法不仅可以应用到OpenGL技术中,还可以应用到其它方面,本实施例此处不再赘述。下面对本实施例提供的顶点属性存储的方法进行详细说明。
图1为本发明顶点属性存储的方法实施例一的流程图。本实施例提供的方法可由存储装置实现,该存储装置可由任意的软件和/或硬件实现。该存储装置还可以嵌入到终端设备中,以使终端设备实现本实施例的顶点属性存储的方法。如图1所示,本实施例的方法包括:
步骤101、分配第一存储空间,根据第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定第一存储空间能够容纳的第一待存储顶点的顶点数量;其中,第一待存储顶点中包括多个属性相同的顶点;
步骤102、根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储第一待存储顶点的各属性的偏移量,根据各属性的偏移量,在第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行连续存储;
步骤103、确定第一待存储顶点中的所有顶点的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量是否大于预设值,若是,根据第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的第一待存储顶点的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点的属性。
在具体实现过程中,在步骤101中,先分配第一存储空间,确定第一存储空间能够容纳的顶点数量。在本实施例中,第一存储空间用于存储第一待存储顶点的属性。因此,在具体实现过程中,可以根据第一存储空间的存储容量,第一待存储顶点中任一顶点每个属性所占的存储空间的大小,确定第一存储空间能够容纳的第一待存储顶点的顶点数量。
具体地,待绘制图形包括多个顶点,该多个顶点组成了第一待存储顶点,第一待存储顶点包括多个属性相同的顶点。第一待存储顶点的属性包括:顶点位置、顶点颜色、顶点法向量、顶点大小、顶点漫反射色等。第一待存储顶点中的所有顶点可以为一幅计算机图形的所有顶点,也可以为一幅计算机图形的部分顶点,本实施例此处不做具体限定。
在获取第一存储空间能够容纳的顶点数量时,由于第一待存储顶点中的顶点属性均相同,因此,可获取第一待存储顶点中任一顶点的每个属性所占的存储空间的大小;根据所述任一顶点的每个属性所占的存储空间的大小,得到任一顶点的所有属性占用的存储空间;根据第一存储空间的存储容量、以及任一顶点的所有属性占用的存储空间,确定第一存储空间能够容纳的顶点数量。本领域技术人员可以理解,本实施例确定的第一存储空间能够容纳的顶点数量,是指第一存储空间自身的容量理论上能够容纳的第一待存储顶点的数量。
例如,获取应用程序准备的待绘制图形的多个属性对应的属性的数量为5,根据各属性所占的空间的大小,得到每个顶点的所有属性占用的存储空间,即5个属性占用的存储空间之和。第一存储空间的存储容量与每个顶点的所有属性占用的存储空间的比值,即为第一存储空间可以容纳的第一待存储顶点的顶点数量。
在步骤102中,根据第一存储空间理论上可以容纳的第一待存储顶点的顶点数量,确定用于存储第一待存储顶点的各属性的偏移量。根据各属性的偏移量,至所述第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行连续存储。具体地,在本实施例中,属性的数量为5时,将第一存储空间分为5个连续的空间,根据第一个属性的偏移量,第一个连续空间用于存储所有顶点的第一个属性,根据第二个属性的偏移量,第二个连续空间用于存储所有顶点的第二个属性,依次类推。
在步骤103中,在确定第一待存储顶点中的所有顶点的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量是否大于预设值。该预设值可根据经验参数确定,例如,该预设值可以为第一存储空间的10%或5%的空间的大小。
本领域技术人员可以理解,第一待存储顶点中的所有顶点的属性能够存储到第一存储空间中,则说明第一存储空间理论上可以容纳的第一待存储顶点的顶点数量,大于第一待存储顶点中实际的顶点数量。
在判断第一存储空间的剩余存储容量小于预设值时,则确定第一存储空间的存储容量达到饱和状态,流程结束。
在判断第一存储空间的剩余存储容量大于预设值时,则表示第一存储空间没有达到饱和状态,空间利用率低。此时,根据第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的所有顶点的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点。在本实施例中,为了充分利用存储空间,第二存储空间的存储容量与第一待存储顶点中的所有顶点的属性所占的空间大小相同。
通过本实施例的存储方法,在实现顶点属性存储,性能提高的前提下,还保证了存储空间的充分利用,特别是在第一待存储顶点中的属性与第二待存储顶点中的属性不同,第一待存储顶点中的属性没有充分利用第一存储空间时,将第一存储空间中存储的所有顶点的属性存储至第二存储空间,使得第二待存储顶点中的属性可以存储至第一存储空间中,避免了第一存储空间的空间浪费,提高了空间利用率。
本实施例提供的顶点属性存储的方法,通过分配第一存储空间,根据第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定第一存储空间能够容纳的第一待存储顶点的顶点数量;其中,第一待存储顶点中包括多个属性相同的顶点;根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储第一待存储顶点的各属性的偏移量,根据各属性的偏移量,在第一存储空间中,对第一待存储顶点中的所有顶点的相同属性进行连续存储;确定第一待存储顶点中的所有顶点的属性存储到第一存储空间后,判断第一存储空间的剩余存储容量是否大于预设值,若是,根据第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将第一存储空间中存储的第一待存储顶点的属性移动至第二存储空间,以使第一存储空间存储第二待存储顶点的属性,不仅使得顶点属性可以连续存储,提高图形处理器的处理性能,还充分利用了存储空间,提高了空间利用率。
下面采用具体的实施例,来详细说明步骤102中,在第一存储空间中,对顶点属性进行连续存储的过程进行详细说明。
在具体实现过程中,根据第一存储空间能够容纳的顶点数量,确定用于存储第一待存储顶点的第M个属性的偏移量为(M-1)*N,1≤M≤第一待存储顶点的属性的数量,N为第一存储空间能够容纳的第一待存储顶点的顶点数量;
根据各属性的偏移量,将第一待存储顶点中的第一个顶点的第一个属性存储至第一存储空间中的[1,N]存储空间中的第一个位置,将第一待存储顶点中的第一个顶点的第二个属性存储至第一存储空间中的[N+1,2N]存储空间中的第一个位置,将第一待存储顶点中的第一个顶点的第M个属性存储至第一存储空间中的[(M-1)*N+1,MN]存储空间中的第一个位置,直至将第一待存储顶点中的第一个顶点的所有属性存储至第一存储空间,依次处理每个顶点,直至将第一待存储顶点中的所有顶点的属性存储至第一存储空间或第一存储空间存满。
本领域技术人员可以理解,本实施例中的[1,N]存储空间,并不代表存储空间的存储容量,其中,1代表[1,N]存储空间的第一个位置,2代表[1,N]存储空间的第二个位置,N代表[1,N]存储空间的第N个位置,而具体的位置的存储容量,可根据各属性所占的存储空间确定。例如,[1,N]存储空间用于存储第一个属性、[N+1,2N]存储空间用于存储第二个属性,[1,N]存储空间的容量由第一个属性所占的存储空间确定,[N+1,2N]存储空间存储空间的容量由第二个属性所占的存储空间确定。因此,[1,N]存储空间的存储容量与[N+1,2N]存储空间的存储容量可能相同,也可能不同。
以一个具体的例子为例,第一存储空间可存储8个顶点,第一待存储顶点中包括5个顶点,该5个顶点的属性相同,一共是3个属性,则[1,8]存储空间用于存储第一个属性,[9,16]用于存储第2个属性,[17,24]存储空间用于存储第三个属性。第一个属性的偏移量为0,第二个属性的偏移量为8,第三属性的偏移量为16。
在具体存储过程中,将第一个顶点的第一个属性存储至[1,8]存储空间中的第一个位置,将第一个顶点的第二个属性存储至[9,18]存储空间中的第一个位置,将第一个顶点的第三个属性存储至[17,24]存储空间中的第一个位置,将第二个顶点的第一个属性存储至[1,8]存储空间中的第二个位置,将第二个顶点的第二个属性存储至[9,18]存储空间中的第二个位置,将第二个顶点的第三个属性存储至[17,24]存储空间中的第二个位置,依次类推,直至第五个顶点的第三个属性存储至[17,24]存储空间的第三个位置。
由于第一待存储顶点中的顶点数量5小于第一存储空间可存储的顶点数8,所以,在将第一待存储顶点中的顶点的所有属性存储至第一存储空间之后,判断第一存储空间的剩余存储容量大于10%,则将第一存储空间中存储的所有顶点的属性移动至第二存储空间,释放第一存储空间中存储的属性,以达到提高空间利用率。
进一步地,在上述的各实施例中,确定第一存储空间存满,第一待存储顶点中存在未被第一存储空间容纳的顶点后,分配第三存储空间,在第三存储空间中,对未被第一存储空间容纳的第一待存储顶点的相同属性进行连续存储。
在具体实现过程中,在确定第一存储空间存满,第一待存储顶点中存在未被第一存储空间容纳的顶点后,此时说明第一存储空间理论上能够容纳的第一待存储顶点的顶点数量小于第一待存储顶点的实际顶点数量,说明第一存储空间不足以存储所有的第一待存储顶点中的顶点的属性,此时,分配第三存储空间,在第三存储空间中,对未被第一存储空间容纳的第一待存储顶点的相同属性进行连续存储。本领域技术人员可以理解,第三存储空间存储该部分第一待存储顶点的顶点属性的存储方式,与第一存储空间存储顶点属性的存储方式相同,本实施例此处不再赘述。
图2为本发明顶点属性存储的方法实施例二的流程图。本实施例在上述实施例的基础上,对存储方法的具体实现过程进行说明。如图2所示,本实施例提供的存储方法,包括:
步骤201、分配第一存储空间;
步骤202、获取第一待存储顶点的各属性所占的空间的大小;
具体地,获取待存储的第一待存储顶点的多个属性对应的属性的数量以及各属性所占的空间的大小,得到任一顶点的所有属性占用的存储空间。
步骤203、确定第一存储空间能够容纳的第一待存储顶点的顶点数量;
具体地,根据第一存储空间的存储容量、以及任一顶点的所有属性占用的存储空间,确定所述第一存储空间能够容纳的顶点数量。
步骤204、确定用于存储各属性的偏移量;
根据第一存储空间能够容纳的第一待存储顶点的顶点数量,确定第一待存储顶点的各属性的偏移量。
步骤205、判断第一待存储顶点的顶点属性是否全部存储至第一存储空间,若是,执行步骤209,若否,执行步骤206;
步骤206、将未存储至第一存储空间的第一待存储顶点的属性存储至第一存储空间中;
具体的存储方式,可参见上述实施例,本实施例此处不再赘述。
步骤207、判断第一存储空间是否存满,若是,执行步骤208,若否,返回执行步骤205;
步骤208、分配第三存储空间;
步骤209、判断第一存储空间的剩余存储容量是否大于预设值,若是,执行步骤210,若否,流程结束;
步骤210、分配第二存储空间;
步骤211、将第一存储空间中存储的所有顶点的属性移动至第二存储空间;
步骤212、释放第一存储空间;
步骤213、流程结束。
本实施例不仅使得顶点属性可以连续存储,从而提高图形处理器的处理性能,还充分利用了存储空间,提高了空间利用率。
图3为本发明顶点属性存储的装置实施例一的结构示意图。本实施例提供的存储装置,包括:
分配模块301,用于分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;
第一存储模块302,用于根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据各所述属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;
处理模块303,用于确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性。
本实施例提供的存储装置,可实现本发明提供的存储方法的实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图4为本发明顶点属性存储的装置实施例二的结构示意图,本实施例在图3实施例的基础上实现,具体如下:
所述分配模块301具体用于:
获取所述第一待存储顶点中任一顶点的每个属性所占的存储空间的大小;
根据所述任一顶点的每个属性所占的存储空间的大小,得到所述任一顶点的所有属性占用的存储空间;
根据所述第一存储空间的存储容量、以及所述任一顶点的所有属性占用的存储空间,确定所述第一存储空间能够容纳的第一待存储顶点的顶点数量。
可选地,所述第一存储模块302具体用于:
根据所述第一存储空间能够容纳的顶点数量,确定用于存储所述第一待存储顶点的第M个属性的偏移量为(M-1)*N,所述1≤M≤第一待存储顶点的属性的数量,所述N为所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;
根据各所述属性的偏移量,将所述第一待存储顶点中的第一个顶点的第一个属性存储至所述第一存储空间中的[1,N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第二个属性存储至所述第一存储空间中的[N+1,2N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第M个属性存储至所述第一存储空间中的[(M-1)*N+1,MN]存储空间中的第一个位置,直至将所述第一待存储顶点中的第一个顶点的所有属性存储至所述第一存储空间,依次处理每个顶点,直至将所述第一待存储顶点中的所有顶点的属性存储至第一存储空间或所述第一存储空间存满。
可选地,还包括:
第二存储模块304,用于确定所述第一存储空间存满,所述第一待存储顶点中存在未被所述第一存储空间容纳的顶点后,分配第三存储空间,在所述第三存储空间中,对未被所述第一存储空间容纳的所述第一待存储顶点的相同属性进行连续存储。
可选地,所述处理模块303还用于:确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若否,则确定所述第一存储空间的存储容量达到饱和状态。
本实施例提供的存储装置,可实现本发明提供的存储方法的实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种顶点属性存储的方法,其特征在于,包括:
分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;
根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;
确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性;
其中,所述根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储,包括:
根据所述第一存储空间能够容纳的顶点数量,确定用于存储所述第一待存储顶点的第M个属性的偏移量为(M-1)*N,1≤M≤第一待存储顶点的属性的数量,N为所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;
根据各所述属性的偏移量,将所述第一待存储顶点中的第一个顶点的第一个属性存储至所述第一存储空间中的[1,N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第二个属性存储至所述第一存储空间中的[N+1,2N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第M个属性存储至所述第一存储空间中的[(M-1)*N+1,MN]存储空间中的第一个位置,直至将所述第一待存储顶点中的第一个顶点的所有属性存储至所述第一存储空间,依次处理每个顶点,直至将所述第一待存储顶点中的所有顶点的属性存储至第一存储空间或所述第一存储空间存满。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的第一待存储顶点的顶点数量,包括:
获取所述第一待存储顶点中任一顶点的每个属性所占的存储空间的大小;
根据所述任一顶点的每个属性所占的存储空间的大小,得到所述任一顶点的所有属性占用的存储空间;
根据所述第一存储空间的存储容量、以及所述任一顶点的所有属性占用的存储空间,确定所述第一存储空间能够容纳的第一待存储顶点的顶点数量。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定所述第一存储空间存满,且所述第一待存储顶点中存在未被所述第一存储空间容纳的顶点后,分配第三存储空间,在所述第三存储空间中,对未被所述第一存储空间容纳的所述第一待存储顶点的相同属性进行连续存储。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若否,则确定所述第一存储空间的存储容量达到饱和状态。
5.一种顶点属性存储的装置,其特征在于,包括:
分配模块,用于分配第一存储空间,根据所述第一存储空间的存储容量、第一待存储顶点中任一顶点的每个属性所占的存储空间的大小,确定所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;其中,所述第一待存储顶点中包括多个属性相同的顶点;
第一存储模块,用于根据所述第一存储空间能够容纳的第一待存储顶点的顶点数量,确定用于存储所述第一待存储顶点的各属性的偏移量,根据所述各属性的偏移量,在所述第一存储空间中,对所述第一待存储顶点中的所有顶点的相同属性进行连续存储;
处理模块,用于确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若是,根据所述第一待存储顶点中的所有顶点的属性所占的空间,分配第二存储空间,将所述第一存储空间中存储的所述第一待存储顶点的属性移动至所述第二存储空间,以使所述第一存储空间存储第二待存储顶点的属性;
其中,所述第一存储模块具体用于:
根据所述第一存储空间能够容纳的顶点数量,确定用于存储所述第一待存储顶点的第M个属性的偏移量为(M-1)*N,1≤M≤第一待存储顶点的属性的数量,N为所述第一存储空间能够容纳的所述第一待存储顶点的顶点数量;并根据各所述属性的偏移量,将所述第一待存储顶点中的第一个顶点的第一个属性存储至所述第一存储空间中的[1,N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第二个属性存储至所述第一存储空间中的[N+1,2N]存储空间中的第一个位置,将所述第一待存储顶点中的第一个顶点的第M个属性存储至所述第一存储空间中的[(M-1)*N+1,MN]存储空间中的第一个位置,直至将所述第一待存储顶点中的第一个顶点的所有属性存储至所述第一存储空间,依次处理每个顶点,直至将所述第一待存储顶点中的所有顶点的属性存储至第一存储空间或所述第一存储空间存满。
6.根据权利要求5所述的装置,其特征在于,所述分配模块具体用于:
获取所述第一待存储顶点中任一顶点的每个属性所占的存储空间的大小;
根据所述任一顶点的每个属性所占的存储空间的大小,得到所述任一顶点的所有属性占用的存储空间;
根据所述第一存储空间的存储容量、以及所述任一顶点的所有属性占用的存储空间,确定所述第一存储空间能够容纳的第一待存储顶点的顶点数量。
7.根据权利要求5或6所述的装置,其特征在于,还包括:
第二存储模块,用于确定所述第一存储空间存满,所述第一待存储顶点中存在未被所述第一存储空间容纳的顶点后,分配第三存储空间,在所述第三存储空间中,对未被所述第一存储空间容纳的所述第一待存储顶点的相同属性进行连续存储。
8.根据权利要求5或6所述的装置,其特征在于,所述处理模块还用于:确定所述第一待存储顶点中的所有顶点的属性存储到所述第一存储空间后,判断所述第一存储空间的剩余存储容量是否大于预设值,若否,则确定所述第一存储空间的存储容量达到饱和状态。
CN201510568042.XA 2015-09-08 2015-09-08 顶点属性存储的方法及装置 Active CN106504183B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510568042.XA CN106504183B (zh) 2015-09-08 2015-09-08 顶点属性存储的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510568042.XA CN106504183B (zh) 2015-09-08 2015-09-08 顶点属性存储的方法及装置

Publications (2)

Publication Number Publication Date
CN106504183A CN106504183A (zh) 2017-03-15
CN106504183B true CN106504183B (zh) 2019-09-10

Family

ID=58286966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510568042.XA Active CN106504183B (zh) 2015-09-08 2015-09-08 顶点属性存储的方法及装置

Country Status (1)

Country Link
CN (1) CN106504183B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2564400B (en) 2017-07-06 2020-11-25 Advanced Risc Mach Ltd Graphics processing
US11189073B2 (en) 2020-03-20 2021-11-30 Arm Limited Graphics processing

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587474A (zh) * 2008-05-20 2009-11-25 比亚迪股份有限公司 一种图片数据的存储方法及系统
CN101923559A (zh) * 2010-03-24 2010-12-22 深圳市万兴软件有限公司 一种图像文件管理方法和系统
CN102255873A (zh) * 2010-05-21 2011-11-23 南京师范大学 基于有序点集像素无损压缩的矢量数据高效传输方法
CN102682103A (zh) * 2012-04-28 2012-09-19 北京建筑工程学院 一种面向海量激光雷达点云模型的三维空间索引方法
CN102890678A (zh) * 2011-07-20 2013-01-23 华东师范大学 一种基于格雷编码的分布式数据布局方法及查询方法
CN104166821A (zh) * 2013-05-17 2014-11-26 华为技术有限公司 一种数据处理的方法和装置
CN104407991A (zh) * 2014-12-10 2015-03-11 成都科来软件有限公司 一种数据存储方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006115424A (ja) * 2004-10-18 2006-04-27 Sharp Corp 画像処理装置、画像処理装置の転送制御方法、画像処理装置の出力制御方法、画像処理装置の制御プログラム、画像処理装置の制御プログラムを記録した記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587474A (zh) * 2008-05-20 2009-11-25 比亚迪股份有限公司 一种图片数据的存储方法及系统
CN101923559A (zh) * 2010-03-24 2010-12-22 深圳市万兴软件有限公司 一种图像文件管理方法和系统
CN102255873A (zh) * 2010-05-21 2011-11-23 南京师范大学 基于有序点集像素无损压缩的矢量数据高效传输方法
CN102890678A (zh) * 2011-07-20 2013-01-23 华东师范大学 一种基于格雷编码的分布式数据布局方法及查询方法
CN102682103A (zh) * 2012-04-28 2012-09-19 北京建筑工程学院 一种面向海量激光雷达点云模型的三维空间索引方法
CN104166821A (zh) * 2013-05-17 2014-11-26 华为技术有限公司 一种数据处理的方法和装置
CN104407991A (zh) * 2014-12-10 2015-03-11 成都科来软件有限公司 一种数据存储方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
可信计算中一种基于属性的封装存储方案;陆建新等;《信息技术》;20080131;第1-4页
对象存储设备端数据管理策略研究;刘景宁等;《计算机研究与发展》;20101031;第47卷(第10期);第1832-1839页

Also Published As

Publication number Publication date
CN106504183A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN103793893B (zh) 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序
CN103946789B (zh) 图形处理单元中的再现模式选择
CN103810669B (zh) 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块
CN105338358B (zh) 对图像进行解码的方法及装置
CN105701851B (zh) 一种基于地理信息的三维渲染引擎系统
CN107276827A (zh) 一种分布式存储系统中Qos的实现方法及装置
CN109448094B (zh) 一种纹理图集调度方法
CN103853621B (zh) 一种跨进程交互方法及相关终端设备
KR101609079B1 (ko) 그래픽 프로세싱 유닛에서의 명령 선별
CN103003839B (zh) 反锯齿样本的拆分存储
CN108416843A (zh) 三维场景构建方法、装置、设备及计算机可读存储介质
KR20210066727A (ko) 그래픽 처리 시스템
CN106504183B (zh) 顶点属性存储的方法及装置
CN105122310A (zh) 用于基于瓦片的渲染的帧内时戳
CN110389905A (zh) 资源释放方法、资源分配方法、设备和计算机程序产品
CN108429783A (zh) 电子装置、配置文件推送方法及存储介质
WO2023160050A1 (zh) 数据处理方法、装置、设备及存储介质
CN109491788A (zh) 一种虚拟化平台负载均衡实现方法及装置
CN108140233A (zh) 具有像素块级别粒度的图形处理单元抢占
CN109471843A (zh) 一种元数据缓存方法、系统及相关装置
CN106412039A (zh) 一种分布式存储的网络集成的方法及系统
US11734869B2 (en) Graphics processing
CN103164440B (zh) 面向虚拟现实的空间数据引擎方法
US9779537B2 (en) Method and apparatus for ray tracing
CN110245021A (zh) 移动终端的内存管理方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
C06 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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.