CN111340925A - 一种区域划分的渲染优化方法及终端 - Google Patents
一种区域划分的渲染优化方法及终端 Download PDFInfo
- Publication number
- CN111340925A CN111340925A CN202010127487.5A CN202010127487A CN111340925A CN 111340925 A CN111340925 A CN 111340925A CN 202010127487 A CN202010127487 A CN 202010127487A CN 111340925 A CN111340925 A CN 111340925A
- Authority
- CN
- China
- Prior art keywords
- model
- batch
- static
- unit area
- data
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种区域划分的渲染优化方法及终端,根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;建立与各个单元区域对应的模型批次集合,在模型批次集合中建立映射表,映射表以静态模型的材质为键,以各个模型批次的批次数据为值,批次数据包括静态模型的顶点缓存和索引缓存;并对材质相同的静态模型进行合批处理,材质不同的则新建模型批次,然后在渲染过程中获取虚拟相机的位置,根据虚拟相机的位置确定所在的单元区域,根据单元区域的模型批次集合的映射表渲染对应的模型批次。本发明在渲染时只要确定需要渲染的单元区域,并对单元区域对应的模型批次集合中的各个模型批次进行渲染即可,渲染效率高。
Description
技术领域
本发明涉及一种计算机软件领域,尤其涉及一种区域划分的渲染优化方法及终端。
背景技术
在对虚拟场景中的模型进行渲染时,一般是获取场景内的所有模型的数据,对所有模型进行渲染,渲染的数据量极大,从而导致渲染过程中发生卡顿的现象,且渲染的效率较低。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本实用新提供一种区域划分的渲染优化方法及终端,能够提高渲染效率。
(二)技术方案
为了达到上述目的,本发明采用的一种技术方案为:一种区域划分的渲染优化方法,包括:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
本发明采用的另一种技术方案为:一种区域划分的渲染优化的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
(三)有益效果
本发明的有益效果是:通过对场景进行区域的划分,并对各个区域内的静态模型按材质来划分形成各个模型批次,在渲染时只要确定需要渲染的单元区域,并对单元区域对应的模型批次集合中的各个模型批次进行渲染即可,不需要对整个场景进行渲染,避免了渲染过程中发生卡顿的现象,提高了渲染效率。
附图说明
图1为本发明的区域划分的渲染优化方法的流程图;
图2为本发明的区域划分的渲染优化终端的结构示意图;
【附图标记说明】
1、区域划分的渲染优化终端;2、存储器;3、处理器。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
请参照图1所示,一种区域划分的渲染优化方法,包括:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
从上述描述可知,本发明的有益效果在于:通过对场景进行区域的划分,并对各个区域内的静态模型按材质来划分形成各个模型批次,在渲染时只要确定需要渲染的单元区域,并对单元区域对应的模型批次集合中的各个模型批次进行渲染即可,不需要对整个场景进行渲染,避免了渲染过程中发生卡顿的现象,提高了渲染效率。
进一步地,所述S3包括:
依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,建立所述模型批次的顶点缓存和索引缓存,在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,替换原有的与本地空间坐标系适配的顶点着色器为与所述世界空间坐标系适配的顶点着色器,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,根据所述顶点着色器获取所述静态模型的颜色信息,将所述静态模型的顶点缓存数据和材质中的颜色信息写入顶点缓存中,将所述静态模型的索引缓存数据写入索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中。
从上述描述可知,通过将静态模型所在的本地空间坐标系转换为世界空间坐标系,能够将所有的静态模型统一到同一个坐标系下,在材质中包含有颜色信息外的其他信息,只要静态模型的材质的其他信息都相同,只有颜色信息不同的情况,则也能将该静态模型进行材质上的合并,从而能够将更多的静态模型合并至同一个模型批次中,从而能够在渲染时提高效率。
进一步地,在所述S4之前还包括:
S31、为每个模型批次集合的模型批次设置批次渲染顺序,当渲染到批次渲染顺序为n+1的模型批次之前,提交批次渲染顺序为n的批次。
从上述描述可知,通过为每个模型批次集合的模型批次设置批次渲染顺序,能够保证每个模型批次可以在正确的顺序下被渲染。
进一步地,所述S4包括:
获取各个单元区域的世界空间位置信息,并获取所述虚拟相机的视口大小,将所述视口的左上、左下、右上、右下四个点的屏幕空间坐标转换为世界空间坐标,根据所述世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
从上述描述可知,通过上述方法获取虚拟相机的世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,方法简单效率快。
进一步地,所述S4还包括:
当发生静态模型的新增/删除和隐藏/显示时所述静态模型的状态会发生改变,在对各个模型批次进行渲染时,检查所述模型批次内的各静态模型的状态是否发生改变,若是,则标记该静态模型所在的单元区域中对应的模型批次为需要更新,在下一帧渲染时对所述单元区域中对应的模型批次进行重建。
从上述描述可知,当渲染时发现静态模型的状态发生改变才会触发模型批次的更新操作,其更新操作所造成变动的计算量也只是某个单元区域中对应的某个批次进行重建,更新的代建很小且更新效率高。
请参照图2所示,一种区域划分的渲染优化的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
从上述描述可知,本发明的有益效果在于:通过对场景进行区域的划分,并对各个区域内的静态模型按材质来划分形成各个模型批次,在渲染时只要确定需要渲染的单元区域,并对单元区域对应的模型批次集合中的各个模型批次进行渲染即可,不需要对整个场景进行渲染,避免了渲染过程中发生卡顿的现象,提高了渲染效率。
进一步地,所述S3包括:
依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,建立所述模型批次的顶点缓存和索引缓存,在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,替换原有的与本地空间坐标系适配的顶点着色器为与所述世界空间坐标系适配的顶点着色器,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,根据所述顶点着色器获取所述静态模型的颜色信息,将所述静态模型的顶点缓存数据和材质中的颜色信息写入顶点缓存中,将所述静态模型的索引缓存数据写入索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中。
从上述描述可知,通过将静态模型所在的本地空间坐标系转换为世界空间坐标系,能够将所有的静态模型统一到同一个坐标系下,在材质中包含有颜色信息外的其他信息,只要静态模型的材质的其他信息都相同,只有颜色信息不同的情况,则也能将该静态模型进行材质上的合并,从而能够将更多的静态模型合并至同一个模型批次中,从而能够在渲染时提高效率。
进一步地,在所述S4之前还包括:
S31、为每个模型批次集合的模型批次设置批次渲染顺序,当渲染到批次渲染顺序为n+1的模型批次之前,提交批次渲染顺序为n的批次。
从上述描述可知,通过为每个模型批次集合的模型批次设置批次渲染顺序,能够保证每个模型批次可以在正确的顺序下被渲染。
进一步地,所述S4包括:
获取各个单元区域的世界空间位置信息,并获取所述虚拟相机的视口大小,将所述视口的左上、左下、右上、右下四个点的屏幕空间坐标转换为世界空间坐标,根据所述世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
从上述描述可知,通过上述方法获取虚拟相机的世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,方法简单效率快。
进一步地,所述S4还包括:
当发生静态模型的新增/删除和隐藏/显示时所述静态模型的状态会发生改变,在对各个模型批次进行渲染时,检查所述模型批次内的各静态模型的状态是否发生改变,若是,则标记该静态模型所在的单元区域中对应的模型批次为需要更新,在下一帧渲染时对所述单元区域中对应的模型批次进行重建。
从上述描述可知,当渲染时发现静态模型的状态发生改变才会触发模型批次的更新操作,其更新操作所造成变动的计算量也只是某个单元区域中对应的某个批次进行重建,更新的代建很小且更新效率高。
实施例一
请参照图1所示,一种区域划分的渲染优化方法,包括:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
其中,若场景为三维场景,则将三维场景根据场景大小的需求划分为x*y*z个区域,若为二维场景,则将二维场景划分为x*y个区域。由于带骨骼的模型不支持批次合并,因此若该模型为带骨骼的模型,则不标记该模型为静态模型。
在确定各个静态模型与其所属的单元区域的对应关系时,可以根据该静态模型的位置信息计算出对应单元区域的位置,计算方式为:先确定各个单元区域的索引序号,若静态模型的位置为P(x0,y0),二维场景的x,y方向上的最大最小坐标值分别为xmax、xmin、ymax和ymin,由此计算出每个区域的宽高,宽w为(xmax-xmin)/x,高h为(ymax-ymin)/y,则该静态模型模型所在P点的区域坐标为((x0-xmin)/w,(y0-ymin)/h),转换为该模型在场景中的单元区域索引序号为(y0-ymin)/h*y+(x0-xmin)/w,从而确定各个静态模型与其所属的单元区域的对应关系。
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
其中,所述映射表优选为哈希映射表。
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
其中,所述S3包括:
依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,建立所述模型批次的顶点缓存和索引缓存,在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,替换原有的与本地空间坐标系适配的顶点着色器为与所述世界空间坐标系适配的顶点着色器,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,根据所述顶点着色器获取所述静态模型的颜色信息,将所述静态模型的顶点缓存数据和材质中的颜色信息写入顶点缓存中,将所述静态模型的索引缓存数据写入索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中。
其中,索引缓存包含有多个静态模型的索引缓存数据(索引缓存数据包括静态模型的顶点的索引),在静态模型合批的过程中,由于多个静态模型的组合,需要将当前批次的顶点缓存中顶点的数量作为后一个静态模型的索引缓存的偏移量,对每个索引进行偏移的校正,从而保证其索引的有序性。
其中,还包括:
S31、为每个模型批次集合的模型批次设置批次渲染顺序,当渲染到批次渲染顺序为n+1的模型批次之前,提交批次渲染顺序为n的批次。
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
其中,所述S4包括:
获取各个单元区域的世界空间位置信息,并获取所述虚拟相机的视口大小,将所述视口的左上、左下、右上、右下四个点的屏幕空间坐标转换为世界空间坐标,根据所述世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
其中,所述S4还包括:
当发生静态模型的新增/删除和隐藏/显示时所述静态模型的状态会发生改变,在对各个模型批次进行渲染时,检查所述模型批次内的各静态模型的状态是否发生改变,若是,则标记该静态模型所在的单元区域中对应的模型批次为需要更新,在下一帧渲染时对所述单元区域中对应的模型批次进行重建。
其中,静态模型在初始化时加入所在单元区域对应的模型批次集合中后,每个模型批次的顶点缓存、索引缓存的信息只需要在CPU中预处理一次便提交到GPU端,在其状态无改变的情况下,不需要额外进行批次处理和缓存的工作。
实施例二
请参照图2,一种区域划分的渲染优化终端1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的步骤。
综上所述,本发明提供的一种区域划分的渲染优化方法及终端,通过对场景进行区域的划分,并对各个区域内的静态模型按材质来划分形成各个模型批次,在渲染时只要确定需要渲染的单元区域,并对单元区域对应的模型批次集合中的各个模型批次进行渲染即可,不需要对整个场景进行渲染,避免了渲染过程中发生卡顿的现象,提高了渲染效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区域划分的渲染优化方法,其特征在于,包括:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
2.根据权利要求1所述的区域划分的渲染优化方法,其特征在于,所述S3包括:
依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,建立所述模型批次的顶点缓存和索引缓存,在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,替换原有的与本地空间坐标系适配的顶点着色器为与所述世界空间坐标系适配的顶点着色器,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,根据所述顶点着色器获取所述静态模型的颜色信息,将所述静态模型的顶点缓存数据和材质中的颜色信息写入顶点缓存中,将所述静态模型的索引缓存数据写入索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中。
3.根据权利要求1所述的区域划分的渲染优化方法,其特征在于,在所述S4之前还包括:
S31、为每个模型批次集合的模型批次设置批次渲染顺序,当渲染到批次渲染顺序为n+1的模型批次之前,提交批次渲染顺序为n的批次。
4.根据权利要求2所述的区域划分的渲染优化方法,其特征在于,所述S4包括:
获取各个单元区域的世界空间位置信息,并获取所述虚拟相机的视口大小,将所述视口的左上、左下、右上、右下四个点的屏幕空间坐标转换为世界空间坐标,根据所述世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
5.根据权利要求1所述的区域划分的渲染优化方法,其特征在于,所述S4还包括:
当发生静态模型的新增/删除和隐藏/显示时所述静态模型的状态会发生改变,在对各个模型批次进行渲染时,检查所述模型批次内的各静态模型的状态是否发生改变,若是,则标记该静态模型所在的单元区域中对应的模型批次为需要更新,在下一帧渲染时对所述单元区域中对应的模型批次进行重建。
6.一种区域划分的渲染优化的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据场景大小划分为多个单元区域,将场景中不需要频繁更新的可渲染模型标记为静态模型;
S2、建立与各个单元区域对应的模型批次集合,在所述模型批次集合中建立映射表,所述映射表以静态模型的材质为键,以各个模型批次的批次数据为值,所述批次数据包括所述静态模型的顶点缓存和索引缓存;
S3、依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,并建立所述模型批次的顶点缓存和索引缓存,计算所述静态模型的顶点缓存数据和索引缓存数据并分别写入所述顶点缓存和索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中;
S4、获取虚拟相机的位置,根据所述虚拟相机的位置确定所在的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
7.根据权利要求6所述的区域划分的渲染优化的终端,其特征在于,所述S3包括:
依次获取各个单元区域内的静态模型,判断所述映射表的键是否存在与所述静态模型相同的材质;
若否,则新建一个模型批次,建立所述模型批次的顶点缓存和索引缓存,在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,替换原有的与本地空间坐标系适配的顶点着色器为与所述世界空间坐标系适配的顶点着色器,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,根据所述顶点着色器获取所述静态模型的颜色信息,将所述静态模型的顶点缓存数据和材质中的颜色信息写入顶点缓存中,将所述静态模型的索引缓存数据写入索引缓存中,在所述映射表的键中新增所述静态模型的材质,并在与所述键对应的值中添加所述模型批次的批次数据;
若是,则在CPU中将所述静态模型所在的本地空间坐标系转换为世界空间坐标系,计算所述静态模型在所述世界空间坐标系下的顶点缓存数据和索引缓存数据,则将所述静态模型的顶点缓存数据和索引缓存数据合并写入与所述键对应的批次数据的顶点缓存和索引缓存中。
8.根据权利要求6所述的区域划分的渲染优化的终端,其特征在于,在所述S4之前还包括:
S31、为每个模型批次集合的模型批次设置批次渲染顺序,当渲染到批次渲染顺序为n+1的模型批次之前,提交批次渲染顺序为n的批次。
9.根据权利要求7所述的区域划分的渲染优化的终端,其特征在于,所述S4包括:
获取各个单元区域的世界空间位置信息,并获取所述虚拟相机的视口大小,将所述视口的左上、左下、右上、右下四个点的屏幕空间坐标转换为世界空间坐标,根据所述世界空间坐标与所述单元区域的世界空间位置信息的相交计算结果确定渲染的单元区域,根据所述单元区域的模型批次集合的映射表渲染对应的模型批次。
10.根据权利要求6所述的区域划分的渲染优化的终端,其特征在于,所述S4还包括:
当发生静态模型的新增/删除和隐藏/显示时所述静态模型的状态会发生改变,在对各个模型批次进行渲染时,检查所述模型批次内的各静态模型的状态是否发生改变,若是,则标记该静态模型所在的单元区域中对应的模型批次为需要更新,在下一帧渲染时对所述单元区域中对应的模型批次进行重建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127487.5A CN111340925B (zh) | 2020-02-28 | 2020-02-28 | 一种区域划分的渲染优化方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127487.5A CN111340925B (zh) | 2020-02-28 | 2020-02-28 | 一种区域划分的渲染优化方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340925A true CN111340925A (zh) | 2020-06-26 |
CN111340925B CN111340925B (zh) | 2023-02-28 |
Family
ID=71183790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010127487.5A Active CN111340925B (zh) | 2020-02-28 | 2020-02-28 | 一种区域划分的渲染优化方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340925B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111744182A (zh) * | 2020-07-03 | 2020-10-09 | 广州要玩娱乐网络技术股份有限公司 | 游戏场景的批处理渲染方法、装置以及服务器 |
CN112685110A (zh) * | 2020-12-23 | 2021-04-20 | 广东三维家信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169871A (zh) * | 2007-12-03 | 2008-04-30 | 北京航空航天大学 | 面向大规模静态场景实时渲染的hlod预处理方法 |
CN105954969A (zh) * | 2016-07-14 | 2016-09-21 | 谢云 | 一种用于幻影成像的3d引擎及其实现方法 |
CN106204713A (zh) * | 2016-07-22 | 2016-12-07 | 网易(杭州)网络有限公司 | 静态合并处理方法和装置 |
WO2019034142A1 (zh) * | 2017-08-17 | 2019-02-21 | 腾讯科技(深圳)有限公司 | 三维虚拟形象的显示方法、装置、终端及存储介质 |
-
2020
- 2020-02-28 CN CN202010127487.5A patent/CN111340925B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169871A (zh) * | 2007-12-03 | 2008-04-30 | 北京航空航天大学 | 面向大规模静态场景实时渲染的hlod预处理方法 |
CN105954969A (zh) * | 2016-07-14 | 2016-09-21 | 谢云 | 一种用于幻影成像的3d引擎及其实现方法 |
CN106204713A (zh) * | 2016-07-22 | 2016-12-07 | 网易(杭州)网络有限公司 | 静态合并处理方法和装置 |
WO2019034142A1 (zh) * | 2017-08-17 | 2019-02-21 | 腾讯科技(深圳)有限公司 | 三维虚拟形象的显示方法、装置、终端及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111744182A (zh) * | 2020-07-03 | 2020-10-09 | 广州要玩娱乐网络技术股份有限公司 | 游戏场景的批处理渲染方法、装置以及服务器 |
CN112685110A (zh) * | 2020-12-23 | 2021-04-20 | 广东三维家信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2022135149A1 (zh) * | 2020-12-23 | 2022-06-30 | 广东三维家信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111340925B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270756B (zh) | 一种应用于bim模型文件的数据渲染方法 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN109840931B (zh) | 骨骼动画的合批渲染方法、装置、系统及存储介质 | |
CN111340925B (zh) | 一种区域划分的渲染优化方法及终端 | |
CN110544290A (zh) | 数据渲染方法及装置 | |
Roettger et al. | A two-step approach for interactive pre-integrated volume rendering of unstructured grids | |
KR20080067840A (ko) | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 | |
CN110706326B (zh) | 数据展示方法及装置 | |
CN101604453A (zh) | 基于分块策略的大规模数据场体绘制方法 | |
CN105894551B (zh) | 图像绘制方法及装置 | |
Livnat et al. | Interactive point-based isosurface extraction | |
CN114241151A (zh) | 三维模型简化方法、装置、计算机设备和计算机存储介质 | |
CN110570491A (zh) | 热力图生成方法及装置 | |
CN114820990A (zh) | 一种基于数字孪生的流域防洪可视化方法及系统 | |
CN114511659B (zh) | 数字地球地形约束下的体绘制渲染优化方法 | |
JPH10320573A (ja) | 画像処理装置及び画像処理方法 | |
Woodward | Ray tracing parametric surfaces by subdivision in viewing plane | |
CN113345049A (zh) | 一种基于地块的热力图生成方法 | |
CN112116522A (zh) | 一种基于现代可编程图形管线的雷达数据可视化框架 | |
CN112669419A (zh) | 用于渲染的方法、中央处理器、图像处理器、系统和存储介质 | |
US20040008204A1 (en) | Switching sample buffer context in response to sample requests for real-time sample filtering and video generation | |
CN103543974A (zh) | 一种提高字体清晰度的方法及系统 | |
CN111681307B (zh) | 一种应用于三维软件的动态三维坐标轴的实现方法 | |
CN114581548A (zh) | 基于碰撞检测的场景模型表面纹理叠加方法及装置 | |
CN114529674A (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 |