CN112933599B - 三维模型渲染方法、装置、设备及存储介质 - Google Patents
三维模型渲染方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112933599B CN112933599B CN202110377711.0A CN202110377711A CN112933599B CN 112933599 B CN112933599 B CN 112933599B CN 202110377711 A CN202110377711 A CN 202110377711A CN 112933599 B CN112933599 B CN 112933599B
- Authority
- CN
- China
- Prior art keywords
- target
- dimensional model
- triangle
- rendering
- visible
- 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
- A63F13/525—Changing parameters of virtual cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种三维模型渲染方法、装置、设备及存储介质,属于计算机图形学领域。该方法包括:在离线计算阶段,获取用户输入数据;根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域;获取不同视角区域下所述目标三维模型的三角形可见集;根据不同视角区域的三角形可见集,构造索引缓冲区;其中,所述索引缓冲区用于存储所述三角形可见集中各个三角形的顶点索引;在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间;根据所述目标子区间对应的三角可见集,渲染所述目标三维模型。本申请能够优化图形产品的渲染性能。
Description
技术领域
本申请涉及计算机图形学领域,特别涉及一种三维模型渲染方法、装置、设备及存储介质。
背景技术
在图形渲染场景中,遮挡剔除(Occlusion Culling)是指一个三维模型因被场景中的其他部分(比如其他三维模型)遮挡,进而导致该三维模型在虚拟摄像机的视野范围内无法看见时,取消对该三维模型进行渲染。举例来说,游戏场景中的三维模型之间通常存在遮挡关系,利用三维模型之间的遮挡关系可以选择将不可见的三维模型剔除,取消对其进行渲染,而仅渲染可见的三维模型,从而减少每帧游戏画面的渲染量,达到降低中央处理器(Central Processing Unit,CPU)和图形处理单元(Graphics Processing Unit,GPU)的开销,进而优化图形产品的渲染性能的目的。
目前在图形渲染领域和行业应用中,遮挡剔除方案主要分为两大类。一类是发生在CPU端以模型为粒度的遮挡剔除;另一类是通过改变GPU渲染管线实现的以像素为粒度的遮挡剔除。然而,在现今的图形应用场景中,场景的同屏顶点和三角形数量高达几百万甚至上千万,在这种情况下,无论上述哪类遮挡剔除方案都不能很好地降低渲染负担而不引入其他更大的计算量。为此,如何进行三维模型渲染,进而优化图形产品的渲染性能,成为了时下本领域技术人员亟待解决的一个问题。
发明内容
本申请实施例提供了一种三维模型渲染方法、装置、设备及存储介质,能够优化图形产品的渲染性能。所述技术方案如下:
一方面,提供了一种三维模型渲染方法,所述方法包括:
在离线计算阶段,获取用户输入数据;根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域;
在离线计算阶段,获取不同视角区域下所述目标三维模型的三角形可见集;以及,根据不同视角区域的三角形可见集,构造索引缓冲区;其中,所述索引缓冲区用于存储所述三角形可见集中各个三角形的顶点索引;
在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间;根据所述目标子区间对应的三角可见集,渲染所述目标三维模型。
另一方面,提供了一种三维模型渲染装置,所述装置包括:
划分模块,被配置为在离线计算阶段,获取用户输入数据;根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域;
获取模块,被配置为在离线计算阶段,获取不同视角区域下所述目标三维模型的三角形可见集;
构造模块,被配置为在离线计算阶段,根据不同视角区域的三角形可见集,构造索引缓冲区;其中,所述索引缓冲区用于存储所述三角形可见集中各个三角形的顶点索引;
渲染模块,被配置为在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间;根据所述目标子区间对应的三角可见集,渲染所述目标三维模型。
在一些实施例中,所述视角范围为球面;所述划分模块,被配置为:
根据所述目标三维模型的顶点数据,确定所述目标三维模型的轴对齐包围盒;以所述轴对齐包围盒的中心点作为所述目标三维模型的中心点,确定单位球面;按照经纬度对所述单位球面进行区域划分,得到所述至少两个视角区域。
在一些实施例中,所述获取模块,被配置为:
对于任意一个视角区域,在所述视角区域中均匀采样出至少两个视角;
获取所述至少两个视角下所述目标三维模型的三角形可见集;
将所述至少两个视角的三角形可见集的并集,确定为所述视角区域的三角形可见集。
在一些实施例中,所述获取模块,被配置为:
对于任意一个视角,将构成所述目标三维模型的各个三角形按顺序编号;
按照编号顺序为构成所述目标三维模型的各个三角形指定唯一颜色;
在所述视角下将所述目标三维模型渲染到帧缓冲区;
回读并解析帧缓冲结果;响应于解析到的颜色对应三角形编号,将所述三角形编号指示的三角形确定为所述视角下的可见三角形;
其中,所述视角下的全部可见三角形构成了所述视角的三角形可见集。
在一些实施例中,所述获取模块,被配置为:
将构成所述目标三维模型的各个三角形设置为不可见;
将深度测试设置为就近原则,开启深度写入;在任意一个视角下,通过绘制所述目标三维模型,得到所述目标三维模型各个像素的深度信息;将所述深度信息写入深度缓冲区;
将所述深度测试设置为值相等原则,关闭深度写入;对于构成所述目标三维模型的任意一个三角形,响应于所述三角形通过要求为值相等的深度测试,且所述三角形的绘制像素量大于零,将所述三角形由不可见设置为可见;
其中,所述视角下的全部可见三角形构成了所述视角的三角形可见集。
在一些实施例中,所述就近原则是指:响应于同一像素位置出现像素重合,在所述深度缓冲区中存储所述像素位置的取值最小的深度值;其中,深度值越小,与三维空间中虚拟摄像机的距离越近;
所述值相等是指当前深度值与所述深度缓冲区中存储的对应深度值一致。
在一些实施例中,所述构造模块,被配置为:
将所述至少两个视角区域按顺序编号;
按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到所述索引缓冲区。
在一些实施例中,所述构造模块,被配置为:
将所述至少两个视角区域按顺序编号;
按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到所述索引缓冲区;其中,一个三角形可见集对应所述索引缓冲区的一个子区间;
对所述子区间进行三角形的顶点索引重排序,并将相邻子区间中重复出现的三角形的顶点索引进行合并,得到压缩后的所述索引缓冲区。
在一些实施例中,所述装置还包括:
存储模块,被配置为在离线计算阶段,将所述索引缓冲区存储到模型文件中。
在一些实施例中,所述渲染模块,被配置为:
在实时渲染阶段,从所述模型文件中读取所述索引缓冲区;
获取所述目标三维模型相对于世界坐标系的旋转矩阵;
根据所述旋转矩阵、当前视角、所述目标三维模型的中心点位置,确定当前视角相对于所述目标三维模型的中心点的方向向量;
确定所述方向向量所在的目标视角区域;
将所述索引缓冲区中所述目标视角区域对应的子区间,确定为所述目标子区间。
在一些实施例中,所述渲染模块,被配置为:
在实时渲染阶段,获取所述目标子区间在所述索引缓冲区中的偏移量;以及,获取所述目标子区间对应的三角形绘制数量;
将绘制指令提交给图形处理单元,所述绘制指令中包括所述偏移量和所述三角形绘制数量,由所述图形处理单元根据所述偏移量和所述三角形绘制数量确定所述三角可见集,完成渲染。
在一些实施例中,所述划分模块,被配置为:
将所述单位球面上纬度值大于目标阈值的两个区域,划分成两个独立的视角区域;
将纬度值不大于所述目标阈值的区域,按照经度均匀划分成N个视角区域,N为不小于2的正整数。
另一方面,提供了一种计算机设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行以实现上述的三维模型渲染方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现上述的三维模型渲染方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述的三维模型渲染方法。
在离线计算阶段,本申请首先将针对三维模型的视角范围划分成多个视角区域,之后查询该视角范围内该三维模型的多个三角形可见集,接下来基于不同视角区域的三角形可见集,构造视角相关索引缓冲区。在实时渲染阶段,本申请根据当前视角在视角相关索引缓冲区中查询对应的子区间,并组成DrawCall提交给GPU进行渲染。本申请能够在离线计算阶段构造视角相关索引缓冲区,这样在实时渲染阶段根据当前视角查询该索引缓冲区的对应子区间即可完成渲染。该种方案不但在离线计算阶段实现了细粒度的遮挡剔除,而且在实时渲染阶段能够降低模型渲染流程的顶点数量和三角形数量,进而降低GPU了的开销,提升了渲染性能。综上所述,本申请在保证了遮挡剔除精细度的同时,还不带来额外的性能消耗,能够优化图形产品的渲染性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种三维模型渲染方法涉及的实施环境示意图;
图2是本申请实施例提供的一种工具蓝图的界面示意图;
图3是本申请实施例提供的一种帧缓冲结果的示意图;
图4是本申请实施例提供的一种自遮挡剔除的可视化界面示意图;
图5是本申请实施例提供的一种离线计算阶段的流程示意图;
图6是本申请实施例提供的一种在线渲染阶段的流程示意图;
图7是本申请实施例提供的一种三模型渲染方法的流程图;
图8是本申请实施例提供的一种视角范围的区域划分示意图;
图9是本申请实施例提供的一种遮挡查询的流程示意图;
图10是本申请实施例提供的一种索引缓冲区的示意图;
图11是本申请实施例提供的另一种索引缓冲区的示意图;
图12是本申请实施例提供的另一种索引缓冲区的示意图;
图13是本申请实施例提供的另一种索引缓冲区的示意图;
图14是本申请实施例提供的另一种索引缓冲区的示意图;
图15是本申请实施例提供的另一种索引缓冲区的示意图;
图16是本申请实施例提供的另一种索引缓冲区的示意图;
图17是本申请实施例提供的一种相邻重复率与压缩比率的曲线示意图;
图18是本申请实施例提供的一种三维模型渲染装置的结构示意图;
图19是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。
这些术语只是用于将一个元素与另一个元素区别开。例如,在不脱离各种示例的范围的情况下,第一元素能够被称为第二元素,并且类似地,第二元素也能够被称为第一元素。第一元素和第二元素都可以是元素,并且在某些情况下,可以是单独且不同的元素。
其中,至少一个是指一个或一个以上,例如,至少一个元素可以是一个元素、两个元素、三个元素等任意大于等于一的整数个元素。而至少两个是指两个或者两个以上,例如,至少两个元素可以是两个元素、三个元素等任意大于等于二的整数个元素。
本申请实施例提供了一种三维模型渲染方案。示例性地,该方案涉及云技术(Cloud Technology)领域。
其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。另外,云技术还可以是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
在一些实施例中,本申请实施例可能涉及到云技术领域中的数据传输,即终端和服务器之间可以进行双向数据传输,本申请实施例对此不进行具体限定。
在另一些实施例中,本申请实施例也可能涉及到云技术领域到的云游戏(CloudGaming)。其中,云游戏又可称为游戏点播(Gaming On Demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(ThinClient)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
下面对本申请实施例可能提及的缩略语或关键术语进行介绍。
渲染:三维图形学的关键技术,可以将将一个三维物体模型正确地显示在电子屏幕上。
三维模型:由顶点数据、三角形索引和纹理构成。其中,三个不共线的点可以构成一个平面,这个平面就是一个三角形。示例性地,立方体的一个面可以由2个三角形组成,所以一个面有2个三角形索引。
可选地,三维模型在本申请实施例中指代出现在游戏场景中的物体模型。
可选地,物体模型包括静态物体模型和动态物体模型;静态物体模型指代游戏场景中一直处于静止状态的物体,比如小山、房屋、墙壁、工厂、街道等等;动态物体模型指代游戏场景中能够移动的物体,比如玩家控制的角色对象即为动态物体模型。
渲染优化(Rendering Optimization):在图形渲染中存在很多的性能瓶颈,渲染优化是指寻找这些性能瓶颈并进行针对性地优化,以提高渲染效率。
遮挡剔除(Occlusion Culling):一种剔除方法,通过找到游戏场景中的遮挡信息,对被遮挡的三维模型进行剔除。简言之,遮挡剔除是当一个三维模型被其他三维模型遮挡住而不在虚拟摄像机的可视范围内时不对其进行渲染。
换言之,遮挡剔除指代的是一个三维模型因被游戏场景中的其他部分,比如其他三维模型遮挡,进而导致该三维模型在虚拟摄像机的视野范围内无法看见时,取消对该三维模型进行渲染。示例性地,游戏场景中的三维模型之间存在遮挡关系,利用三维模型之间的遮挡关系将不可见的三维模型剔除,不进行渲染操作。
自身遮挡剔除:是以模型自身的三角形或像素点为粒度,找到遮挡关系并进行剔除的方法。
视野:指代玩家控制的角色对象的虚拟摄像机在游戏场景中的可视范围,即能够看得见的范围。
GPU:又称显示核心、视觉处理器、显示芯片,是一种专门在个人计算机、游戏主机和移动设备(比如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
背面剔除:一种剔除方法,通常发生在GPU阶段。其中,GPU经过光栅化时,根据三角形的法线与当前视角的夹角来判断是否背面剔除;如果某个三角形背对当前视角则不对其进行渲染。简言之,背面剔除,是指丢弃对观察者来说是背面的片元的一种方法。
过度绘制:由于渲染物件提交的顺序不一致,且GPU对于像素着色的无序性,距离当前视角近的像素可能会被最后绘制,使得画面中存在某些像素被重复擦除改写,造成多余的绘制,这些绘制即为过度绘制。比如,在同一个区域中叠加了多个物件,也即,一个像素点上会出现多个像素的叠加,实际上最终呈现在我们眼前的仅是是最上面的一个物件。
离线计算阶段:在渲染优化中,很多方案中的大规模密集计算会在实际渲染运行之前预先计算好,这个过程即是优化方案的离线计算阶段。
实时渲染阶段:指在图形产品中的实时运行阶段,计算机设备通常需要在极短时间内完成画面渲染并提交给显示器。每秒钟提交的画面数量称为帧率,一般来说,为了保证动态画面的流畅性,帧率可以为30帧、60帧甚至更多。
渲染管线:在GPU中运行的图形渲染流程。一般我们讨论渲染管线的顶点着色器、光栅化和像素着色器。通过在着色器中编写代码能够灵活控制GPU对渲染组件进行渲染。
顶点着色器:渲染管线的一个必选环节,其会根据代码对三维模型的顶点进行逐个计算,并将结果输出到下一个阶段。
像素着色器:渲染管线的一个必选环节,其会根据代码将光栅化后的像素进行着色计算,通过测试之后输出到帧缓冲区,完成一次渲染管线流程。
深度缓冲区:GPU中的一个缓冲区,用于记录帧缓冲区中的像素对应的深度信息,通常用于确定像素绘制时的前后顺序,以保证渲染结果的正确。开发人员通过指令可以指定深度缓冲的开关、深度测试方法及深度写入开关,灵活实现渲染需求。
遮挡查询(Occlusion Query):在GPU端支持的一种查询功能,可以查询某个区间内绘制调用所产生的实际像素量,并将查询结果返回给CPU端。详细来说,遮挡查询方法是渲染一个三维模型时,CPU首先向GPU发出遮挡查询命令,然后等待查询结果返回;如果查询结果为渲染的像素数量大于0,则表示该三维模型应该被渲染,否则不被渲染。
索引缓冲区(Element Buffer Object,EBO):在GPU绘制三维模型的时候,三维模型的顶点数据会传入到顶点缓冲区中,而索引缓冲区则将顶点索引按照三角形方式排列成另一个数组,同样传入到GPU中等待被渲染绘制调用。
针对顶点缓冲区,我们会将一系列的顶点数据存放到一个容器中,这个容器就叫做顶点缓冲区。另外,为了使用GPU处理顶点数据,需要按照下面的步骤进行操作:1.创建顶点缓冲区;2.将顶点数据存储至顶点缓冲区。
其中,索引缓冲区中存储的信息为三维模型的三角形对应的顶点索引。一般来说,每三个序号代表一个三角形,各个三角形之间可以无序存储。示例性地,每个三角形对应三个无符号整型数据变量。
下面对本申请提供的物体模型的渲染方案涉及的实施环境进行介绍。
图1是本申请提供的一种三维模型渲染方法涉及的实施环境的示意图。参见图1,该实施环境包括:终端110、服务器120。
终端110安装和运行有支持虚拟环境的客户端111,该客户端111可以是游戏应用程序。当终端运行客户端111时,终端110的屏幕上显示客户端111的用户界面。
终端110是用户112使用的终端。可选地,用户112使用终端110控制位于虚拟环境中的某个虚拟角色进行活动,该虚拟角色可以称为用户112的主控虚拟角色。
可选地,终端110可以泛指多个终端中的一个,本申请实施例仅以终端110举例说明。终端110的设备类型可以包括:智能手机、平板电脑、电子书阅读器、MP3(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、台式计算机、智能音箱、智能手表等,但并不局限于此。
图1中仅示出了一个终端,但在不同实施例中存在多个其它终端130可以接入服务器120。可选地,还存在一个或多个终端130是开发者对应的终端,在终端130上安装有支持虚拟环境的客户端的开发和编辑平台,开发者可在终端130上对客户端进行编辑和更新,并将更新后的客户端的安装包通过有线或无线网络传输至服务器120,终端110可从服务器120下载客户端安装包实现对客户端的更新。
另外,服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器120可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
其中,服务器120用于为支持三维虚拟环境的客户端提供后台服务。可选地,服务器120承担主要计算工作,终端承担次要计算工作;或者,服务器120承担次要计算工作,终端承担主要计算工作;或者,服务器120和终端之间采用分布式计算架构进行协同计算。
下面对本申请提供的三维模型渲染方法的应用场景进行介绍。
可选地,本申请实施例提供的三维模型渲染方法以渲染引擎的工具插件形式给图形渲染开发流程提供支持。
可选地,开发人员在渲染引擎中选择模型并调用工具蓝图向该工具插件发送预计算命令,该工具插件读取模型数据和剔除设置,进行一段时间的预计算,之后输出自遮挡剔除参数并保存到模型文件中。工具蓝图的界面如图2所示。可选地,在工具蓝图的界面上可以设置包括纬度划分数量、纬度范围、经度划分数量、烘焙分辨率、烘焙采样次数、烘焙方法在内的多种参数。
可选地,图3所示图片是在某个视角区域下进行模型烘焙的帧缓冲结果。该图片由多个采样视角的结果拼合而成,比如,在16个视角将能看到的三角形渲染到这张图片上并回读该图片。另外,图3所示的球体上每个三角形的颜色均不同,即为每个三角形指定唯一颜色。可选地,每个三角形的颜色是对相应三角形编号进行编码之后的纯色渲染结果。
可选地,在构建场景时,自遮挡剔除参数会随着模型放置同步到渲染组件中。示例性地,渲染组件中的自遮挡剔除可视化界面如图4所示。在该界面上可以设置视角旋转偏移量、调试旋转角度、查询当前视角旋转角度、查询自遮挡剔除的烘焙参数和烘焙结果等,本申请在此不做限制。在实时渲染时,渲染组件会根据自遮挡剔除参数和当前视角在CPU端对三维模型进行剔除。剔除结果提交到GPU并最终被渲染到屏幕缓冲区。由于在整个渲染过程中不包含其他的人机交互,因此具有较高的自动化程度。
需要说明的是,本申请实施例提供的三维模型渲染方案可以广泛应用于移动设备、高性能主机或个人计算机等的场景渲染过程中,能够达到优化渲染性能的目的。另外,以上介绍的应用场景仅用于说明本申请实施例而非限定。在实际实施时,可以根据实际需要灵活地应用本申请实施例的技术方案。
下面通过以下实施方式对本申请提供的三维模型渲染方案进行详细介绍。
该种三维模型渲染方案在技术实现上可以分为图5所示的离线计算阶段(简称离线阶段)和图6所示的在线渲染阶段或实时渲染阶段(简称渲染阶段)。
可选地,参见图5,离线计算阶段的流程包括但不限于如下步骤:51、获取用户输入数据,得到需要剔除计算的模型数据和剔除设置;52、划分视角范围,得到多个视角区域;53、分别计算每个视角区域下的三角形可见集;54、构造视角相关索引缓冲区;55、压缩视角相关索引缓冲区并存储到模型文件。
可选地,参见图6,在线渲染阶段的流程包括但不限于如下步骤:61、读取模型的视角相关索引缓冲区和模型当前相对于世界坐标系的旋转矩阵;62、计算当前视角对模型中心点的方向向量;63、根据该方向向量查找视角相关索引缓冲区的子区间;64、向GPU提交绘制命令。
下面通过如下实施例介绍上述步骤的详细实现过程。
图7是本申请实施例提供的一种三维模型渲染方法的流程图。该方法的执行主体为计算机设备,以计算机设备为终端为例,参见图7,本申请实施例提供的方法流程包括:
701、在离线计算阶段,获取用户输入数据;根据用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域。
可选地,目标三维模型为在游戏场景中出现的静态物体模型或动态物体模型,本申请实施例在此不做限制。
可选地,用户输入数据包括模型数据和剔除设置。其中,模型数据包括但不限于:待处理模型上包括哪些三角形,以及这些三角形在待处理模型上的分布等;剔除设置包括但不限于:纬度划分数量、纬度范围、经度划分数量、烘焙分辨率等,本申请在此不做限制。
其中,目标三维模型包括顶点数据和三角形的顶点索引,根据目标三维模型顶点数据的坐标上下限,可以得到目标三维模型的轴对齐包围盒AABB,该轴对齐包围盒的中心点即为目标三维模型的中心点C。其中,轴对齐包围盒被定义为包含该目标三维模型,且边平行于坐标轴的最小六面体。
可选地,三维空间中任意一个视角E与该目标三维模型的中心点C的连线方向即为视角方向,在三维空间中该视角范围表现为如图8所示的单位球面。本申请实施例将针对目标三维模型的视角范围划分成多个视角区域,可选地,考虑到索引便利性,工具插件会读取剔除设置,结合经度和纬度对单位球面进行区域划分,详细步骤如下。
701-1、根据目标三维模型的顶点数据,确定目标三维模型的轴对齐包围盒;以轴对齐包围盒的中心点作为目标三维模型的中心点,确定单位球面。
701-2、按照经纬度对单位球面进行区域划分,得到至少两个视角区域。
可选地,按照经纬度对单位球面进行区域划分,得到至少两个视角区域,包括但不限于:将单位球面上纬度值大于目标阈值的两个区域,划分成两个独立的视角区域;将纬度值不大于目标阈值的区域,按照经度均匀划分成N个视角区域。其中,N为不小于2的正整数,目标阈值为南纬60度和北纬60度,本申请在此不做限制。
示例性地,将两个高纬度区域单独划成两个视角区域,对应图8中的视角区域1和视角区域10;将中纬度区域和低纬度区域按照经度均匀划分成多个区域,比如,划分成图8所示的视角区域2至视角区域9。其中,图8中的数字为对相关视角区域的编号。
需要说明的第一点是,纬度是地球上重力方向的铅垂线与赤道平面的夹角。其数值在0至90度之间。位于赤道以北的点的纬度称为北纬;位于赤道以南的点的纬度称为南纬。另外,为了研究问题方便,将纬度分为低纬度、中纬度和高纬度。其中,0度到30度为低纬度,30度到60度为中纬度,60度到90度为高纬度。
需要说明的第二点是,视角区域的划分数量与索引缓冲区空间开销、离线计算量和遮挡剔除率有关,可以在工程中根据实际需求来调整具体划分规则,本申请在此不做限制。
702、在离线计算阶段,获取不同视角区域下目标三维模型的三角形可见集。
可选地,获取不同视角区域下目标三维模型的三角形可见集,包括但不限于如下步骤:对于任意一个视角区域,在该视角区域中均匀采样出至少两个视角;获取至少两个视角下目标三维模型的三角形可见集;将至少两个视角的三角形可见集的并集,确定为该视角区域的三角形可见集。
换言之,本步骤需要查询出每个视角区域下目标三维模型的三角形可见集。例如,对于视角区域A,在视角区域A上均匀采样出多个视角E,从每个视角E查询目标三维模型的三角形可见集S(E),将多个视角E的三角形可见集求并集,即可得到视角区域A的三角形可见集S(A)。
可选地,在单个视角下查询目标三维模型的三角形可见集,可以通过渲染回读和遮挡查询这两种方式来完成。
渲染回读
针对渲染回读方式,获取单个视角下目标三维模型的三角形可见集,包括但不限于如下步骤:
7021、对于任意一个视角,将构成目标三维模型的各个三角形按顺序编号。
示例性地,假设构成目标三维模型的三角形数量总共有800个,则可以对这800个三角形按照数字1至800进行顺序编号,本申请在此不做限制。
7022、按照编号顺序为构成目标三维模型的各个三角形指定唯一颜色。
可选地,每个三角形的颜色均不同。以RGB(Red Green Blue,红绿蓝)颜色为例,可以通过对每个三角形编号进行编码运算,为各个三角形指定唯一颜色。示例性地,该编码运算可以为三角形编码对255的取余运算,本申请在此不做限制。
7023、在该视角下将目标三维模型渲染到帧缓冲区。
可选地,本步骤使用GPU渲染管线在该视角下渲染目标三维模型到帧缓冲区。其中,帧缓冲区也称颜色缓冲区,游戏场景中物体模型的像素的颜色信息均要写入帧缓冲区,然后再渲染到屏幕上进行显示。
7024、回读并解析帧缓冲结果;响应于解析到的颜色对应三角形编号,将该三角形编号指示的三角形确定为该视角下的可见三角形;其中,当前视角下的全部可见三角形构成了该视角的三角形可见集。
其中,帧缓冲结果为图3所示的图片文件形式。本步骤回读帧缓冲区结果并解析颜色为三角形编号,三角形编号对应的三角形即是当前视角下的可见三角形。另外,由于回读帧缓冲结果的速度较慢,所以通常会设置较小的缓冲区分辨率,以避免影响遮挡剔除的正确性。
遮挡查询
图9示出了遮挡查询方式的整体流程。针对遮挡查询方式,获取单个视角下目标三维模型的三角形可见集,包括但不限于如下步骤:
7025、将构成目标三维模型的各个三角形设置为不可见。
本步骤为初始化步骤,即将全部三角形均初始化为不可见。
7026、将深度测试设置为就近原则,开启深度写入;在任意一个视角下,通过绘制目标三维模型,得到目标三维模型各个像素的深度信息;将深度信息写入深度缓冲区。
在本申请实施例中,就近原则是指:如果同一像素位置出现像素重合,即在未进行遮挡剔除之前,同一像素位置可能需要渲染多个像素,为了避免过渡绘制,在深度缓冲区中会存储该像素位置的取值最小的深度值;其中,深度值越小,表明与三维空间中虚拟摄像机的距离越近。
需要说明的是,只有在开启深度写入的情况下,才能向深度缓冲区中写入深度值。其中,深度缓冲区(Depth Buffer,DB)同颜色缓冲区(Color Buffer,CB)是对应的,颜色缓冲区存储像素的颜色信息,深度缓冲区存储像素的深度信息。
7027、将深度测试设置为值相等原则,关闭深度写入,不再写入深度信息。
7028、对于构成目标三维模型的任意一个三角形,响应于该三角形通过要求为值相等的深度测试,且该三角形的绘制像素量大于零,将该三角形由不可见设置为可见;其中,当前视角下的全部可见三角形构成了该视角的三角形可见集。
在本申请实施例中,值相等是指当前深度值与深度缓冲区中存储的对应深度值一致。其中,在将将深度测试修改为值相等后,分别绘制目标三维模型的每一个三角形,如果能够通过要求为值相等的深度测试、在屏幕缓冲区中输出像素,说明当前视角可以见到该三角形。换言之,利用GPU的遮挡查询技术即可获知构成目标三维模型的每个三角形在当前视角下是否可见,进而得到当前视角下的三角形可见集。
另外,由于遮挡查询方式不需要回读帧缓冲区,计算主要开销在于大量的绘制调用与查询,因此可以设置高分辨率的缓冲区来提高计算精度。
703、在离线计算阶段,根据不同视角区域的三角形可见集,构造索引缓冲区;其中,该索引缓冲区用于存储三角形可见集中各个三角形的顶点索引。
其中,目标三维模型的索引缓冲区中存储的信息为顶点索引。可选地,每个三角形的顶点索引对应三个无符号整型数据变量。
可选地,在向GPU提交绘制指令时,会指定索引缓冲区的某个子区间,并通过偏移量和三角形绘制数量来确定模型绘制的上下限。示例性地,在默认的模型绘制流水线中,模型绘制通常是整个索引缓冲区,也即偏移量为0,三角形绘制数量为缓冲区大小,如图10所示。
在前面步骤702中,已经得到多个(以n个为例)视角区域Ak的三角形可见集Set(Ak),将Set(Ak)按照Set(A1)、Set(A2)……Set(An)的顺序依次排列,得到视角相关索引缓冲区,简称索引缓冲区。换一种表达方式,根据不同视角区域下的三角形可见集,构造索引缓冲区,包括下述步骤7031。
7031、将划分出来的视角区域按顺序编号;按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到如图11所示的视角相关索引缓冲区。
上述这种简单的构造方式会导致索引缓冲区占用的额外空间过大。而实际上不同的视角区域中存在着大量的重复三角形。例如,图12示出的视角相关索引缓冲区包含四个子区间,其中,通过步骤702确定的每三角形可见集均对应视角相关索引缓冲区中的一个子区间;这四个子区间对应的三角形可见集中存在大量的重复,图中白色元素为与相邻子区间存在重复的元素。
为了避免对空间的过多占用,在初步构造索引缓冲区后,本申请实施例还会对索引缓冲区进行压缩。即,根据不同视角区域下的三角形可见集,构造索引缓冲区,还包括下述步骤7032。
7032、将划分出来的视角区域按顺序编号;按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到索引缓冲区;对索引缓冲区包括的子区间进行三角形的顶点索引重排序,并将相邻子区间中重复出现的三角形的顶点索引进行合并,得到压缩后的索引缓冲区。
利用三角形的顶点索引在索引缓冲区中的无序性,本申请实施例会将图12中每一对子区间进行基于三角形的重排序,以使每一对子区间中重复出现的三角形相邻,得到图13。比如,在图13中,子区间1中的元素a、d、h、i和子区间2中重复出现的元素a、d、h、i相邻排序。子区间3中的元素a、t、w、x、z和子区间4中重复出现的元素a、t、w、x、z相邻排序。之后,将相邻索子区间进行合并,即,将子区间1中的元素a、d、h、i和子区间2中重复出现的元素a、d、h、i进行合并,将子区间3中的元素a、t、w、x、z和子区间4中重复出现的元素a、t、w、x、z进行合并,得到如图14所示的结果。采用类似的方法,对子区间2和子区间3的剩余元素继续进行合并,得到如图15所示的最终压缩结果。
需要说明的第一点是,在离线计算阶段,本申请实施例会将压缩后的索引缓冲区存储到模型文件中。
需要说明的第二点是,假设相邻子区间之间的平均重复率为α,那么连续两个子区间的压缩比率x可以表达为如下公式:
接下来,对剩余的相邻子区间继续进行压缩,此时的相邻重复率为α(1-α),最终的压缩比率x可以表达为如下公式:
可选地,α的取值在0到1的范围内,曲线y=x(α)的对应关系如图16所示。基于图16可知,当α的取值在50%时,压缩比率x已经达到62.5%。由于视角区域的划分数量变大时相邻重复率也会随之提高,这使得索引缓冲区的大小不会随着划分的视角区域数量变大而线性增长。另外,视角区域的划分数量可以根据产品实际需求而进行弹性调整,本申请在此不做限制。
需要说明的第三点是,上述步骤701至步骤703均发生在CPU端,即本申请实施例提出了一种能够在CPU端执行的细粒度的遮挡剔除,保证了剔除精细度的同时还不带来额外性能消耗。
704、在实时渲染阶段,根据当前视角在索引缓冲区中确定目标子区间;以及,根据目标子区间对应的三角可见集,渲染目标三维模型。
在线渲染阶段调用绘制时,根据当前视角查询索引缓冲区的目标子区间,将该目标子区间在索引缓冲区中的偏移量和三角形绘制数量(子区间长度)即可向GPU提交渲染。
可选地,在实时渲染阶段,根据当前视角在索引缓冲区中确定目标子区间,以及,根据目标子区间对应的三角可见集,渲染目标三维模型,包括但不限于如下步骤:
7041、在实时渲染阶段,从模型文件中读取压缩后的索引缓冲区。
7042、获取目标三维模型相对于世界坐标系的旋转矩阵;根据该旋转矩阵、当前视角、目标三维模型的中心点位置,按照下述公式,确定当前视角相对于目标三维模型的中心点的方向向量。
其中,P指代当前视角,C指代目标三维模型的中心点,R指代旋转矩阵,norm()指代求范数。
7043、确定该方向向量所在的目标视角区域;将索引缓冲区中目标视角区域对应的子区间,确定为目标子区间。
7044、获取目标子区间在索引缓冲区中的偏移量;以及,获取目标子区间对应的三角形绘制数量。
7045、将绘制指令提交给图形处理单元,其中,该绘制指令中包括获取到的偏移量和三角形绘制数量,进而由图GPU根据该偏移量和三角形绘制数量确定出一个三角可见集,据此完成渲染。
本申请实施例提供的方法至少具有如下有益效果:
在离线计算阶段,本申请首先将针对三维模型的视角范围划分成多个视角区域,之后查询该视角范围内该三维模型的多个三角形可见集,接下来基于不同视角区域的三角形可见集,构造视角相关索引缓冲区。在实时渲染阶段,本申请根据当前视角在视角相关索引缓冲区中查询对应的子区间,并组成DrawCall提交给GPU进行渲染。本申请能够在离线计算阶段构造视角相关索引缓冲区,这样在实时渲染阶段根据当前视角查询该索引缓冲区的对应子区间,即可完成渲染。该种方案不但在离线计算阶段实现了细粒度的遮挡剔除,而且在实时渲染阶段通过向GPU提交该子区间对应的三角形可见集的偏移量和三角形绘制数量,能够降低模型渲染流程的顶点数量和三角形数量,进而降低GPU了的开销,提升了渲染性能。另外,本申请在完成模型自遮挡剔除的同时,还能够在CPU端提前进行模型的背面剔除,进一步了降低GPU的消耗。
综上所述,本申请在保证了遮挡剔除精细度的同时,还不带来额外的性能消耗,能够优化图形产品的渲染性能。该种方案本身的开销较小,渲染结果质量可控,有较强的伸缩性,可以被应用在各个平台的相关产品上。
另外,本申请提出了一种渲染优化方案,利用极低的运行时消耗和可接受的额外空间便能取得较大的剔除率,且兼容于现有的大部分图形生产流程,并对不同的运行平台具有可缩放性,可以被应用于业界不同的图形渲染产品中。
另外,本申请解决了目前业界已有方案不能解决的问题:相关技术在CPU阶段进行遮挡剔除的方案均以模型为粒度,无法更精细地进行遮挡剔除;而以细粒度对模型进行遮挡剔除的过程均发生在GPU阶段,像素着色器的消耗量仍旧较大,在顶点数量成为瓶颈的场景中带来低效优化甚至负优化。而本申请提出了一种能够在CPU端执行的细粒度的遮挡剔除,保证了剔除精细度的同时,不带来额外性能消耗。
另外,本申请优化了目前业界已有方案不能优化的问题:默认的模型背面剔除均发生在GPU阶段的顶点着色之后,这使得不通过正面测试的顶点为无效计算,在业界暂无通用的优化方案。本申请在解决自身遮挡剔除的同时,能够将大部分的背面剔除提前在CPU中发生,降低提交到GPU的图元的无效绘制量,优化了背面剔除性能。
示例性地,在UE4引擎实验环境中对本申请的理论优化效果进行了实际测试。对于原三角形数量为11832的建筑模型,将其南纬30度到北纬30度区域划分成4个视角区域,使用遮挡查询方法对分辨率为512x512的缓冲区进行计算,得到视角相关索引缓冲区,预计算时间为35秒。得到的视角相关索引缓冲区需要额外占用空间86.70%。在运行时的绘制结果如图17。
在遮挡剔除之后,向GPU提交渲染的三角形数量为1990个到2690个之间,剔除效率达到77.3%到83.2%。绘制性能也从83.30微秒降低到了61.92微秒,绘制效率相比之前提升了25.67%。且随着视角的拉远,模型的像素着色器绘制开销降低,而顶点着色器绘制开销不变,这时视角相关索引缓冲区的效率提升也会随之提升。在多组模型上进行测试,视角相关索引缓冲区的性能提升在22%到32%之间。
需要说明的是,除了基于球面的视角区域划分方法之外,还可采取其他的视角区域划分方法。另外,还可以在UE4以外的引擎、平台或产品中实现以上方案。另外,还可以将本方案应用于除游戏之外其他类似的模型遮挡剔除场景中。
图18是本申请实施例提供的一种三维模型渲染装置的结构示意图。参见图18,该装置包括:
划分模块1801,被配置为在离线计算阶段,获取用户输入数据;根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域;
获取模块1802,被配置为在离线计算阶段,获取不同视角区域下所述目标三维模型的三角形可见集;
构造模块1803,被配置为在离线计算阶段,根据不同视角区域的三角形可见集,构造索引缓冲区;其中,所述索引缓冲区用于存储所述三角形可见集中各个三角形的顶点索引;
渲染模块1804,被配置为在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间;根据所述目标子区间对应的三角可见集,渲染所述目标三维模型。
在离线计算阶段,本申请首先将针对三维模型的视角范围划分成多个视角区域,之后查询该视角范围内该三维模型的多个三角形可见集,接下来基于不同视角区域的三角形可见集,构造视角相关索引缓冲区。在实时渲染阶段,本申请根据当前视角在视角相关索引缓冲区中查询对应的子区间,并组成DrawCall提交给GPU进行渲染。本申请能够在离线计算阶段构造视角相关索引缓冲区,这样在实时渲染阶段根据当前视角查询该索引缓冲区的对应子区间即可完成渲染。该种方案不但在离线计算阶段实现了细粒度的遮挡剔除,而且在实时渲染阶段能够降低模型渲染流程的顶点数量和三角形数量,进而降低GPU了的开销,提升了渲染性能。综上所述,本申请在保证了遮挡剔除精细度的同时,还不带来额外的性能消耗,能够优化图形产品的渲染性能。
在一些实施例中,所述视角范围为球面;所述划分模块,被配置为:
根据所述目标三维模型的顶点数据,确定所述目标三维模型的轴对齐包围盒;以所述轴对齐包围盒的中心点作为所述目标三维模型的中心点,确定单位球面;按照经纬度对所述单位球面进行区域划分,得到所述至少两个视角区域。
在一些实施例中,所述获取模块,被配置为:
对于任意一个视角区域,在所述视角区域中均匀采样出至少两个视角;
获取所述至少两个视角下所述目标三维模型的三角形可见集;
将所述至少两个视角的三角形可见集的并集,确定为所述视角区域的三角形可见集。
在一些实施例中,所述获取模块,被配置为:
对于任意一个视角,将构成所述目标三维模型的各个三角形按顺序编号;
按照编号顺序为构成所述目标三维模型的各个三角形指定唯一颜色;
在所述视角下将所述目标三维模型渲染到帧缓冲区;
回读并解析帧缓冲结果;响应于解析到的颜色对应三角形编号,将所述三角形编号指示的三角形确定为所述视角下的可见三角形;
其中,所述视角下的全部可见三角形构成了所述视角的三角形可见集。
在一些实施例中,所述获取模块,被配置为:
将构成所述目标三维模型的各个三角形设置为不可见;
将深度测试设置为就近原则,开启深度写入;在任意一个视角下,通过绘制所述目标三维模型,得到所述目标三维模型各个像素的深度信息;将所述深度信息写入深度缓冲区;
将所述深度测试设置为值相等原则,关闭深度写入;对于构成所述目标三维模型的任意一个三角形,响应于所述三角形通过要求为值相等的深度测试,且所述三角形的绘制像素量大于零,将所述三角形由不可见设置为可见;
其中,所述视角下的全部可见三角形构成了所述视角的三角形可见集。
在一些实施例中,所述就近原则是指:响应于同一像素位置出现像素重合,在所述深度缓冲区中存储所述像素位置的取值最小的深度值;其中,深度值越小,与三维空间中虚拟摄像机的距离越近;
所述值相等是指当前深度值与所述深度缓冲区中存储的对应深度值一致。
在一些实施例中,所述构造模块,被配置为:
将所述至少两个视角区域按顺序编号;
按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到所述索引缓冲区。
在一些实施例中,所述构造模块,被配置为:
将所述至少两个视角区域按顺序编号;
按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到所述索引缓冲区;其中,一个三角形可见集对应所述索引缓冲区的一个子区间;
对所述子区间进行三角形的顶点索引重排序,并将相邻子区间中重复出现的三角形的顶点索引进行合并,得到压缩后的所述索引缓冲区。
在一些实施例中,所述装置还包括:
存储模块,被配置为在离线计算阶段,将所述索引缓冲区存储到模型文件中。
在一些实施例中,所述渲染模块,被配置为:
在实时渲染阶段,从所述模型文件中读取所述索引缓冲区;
获取所述目标三维模型相对于世界坐标系的旋转矩阵;
根据所述旋转矩阵、当前视角、所述目标三维模型的中心点位置,确定当前视角相对于所述目标三维模型的中心点的方向向量;
确定所述方向向量所在的目标视角区域;
将所述索引缓冲区中所述目标视角区域对应的子区间,确定为所述目标子区间。
在一些实施例中,所述渲染模块,被配置为:
在实时渲染阶段,获取所述目标子区间在所述索引缓冲区中的偏移量;以及,获取所述目标子区间对应的三角形绘制数量;
将绘制指令提交给图形处理单元,所述绘制指令中包括所述偏移量和所述三角形绘制数量,由所述图形处理单元根据所述偏移量和所述三角形绘制数量确定所述三角可见集,完成渲染。
在一些实施例中,所述划分模块,被配置为:
将所述单位球面上纬度值大于目标阈值的两个区域,划分成两个独立的视角区域;
将纬度值不大于所述目标阈值的区域,按照经度均匀划分成N个视角区域,N为不小于2的正整数。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的三维模型渲染装置在渲染三维模型时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的三维模型渲染装置与三维模型渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图19示出了本申请一个示例性实施例提供的计算机设备1900的结构框图。该计算机设备1900可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,计算机设备1900包括有:处理器1901和存储器1902。
处理器1901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1901可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1902中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1901所执行以实现本申请中方法实施例提供的三维模型渲染方法。
在一些实施例中,计算机设备1900还可选包括有:***设备接口1903和至少一个***设备。处理器1901、存储器1902和***设备接口1903之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口1903相连。具体地,***设备包括:射频电路1904、显示屏1905、摄像头组件1906、音频电路1907、定位组件1908和电源1909中的至少一种。
***设备接口1903可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器1901和存储器1902。在一些实施例中,处理器1901、存储器1902和***设备接口1903被集成在同一芯片或电路板上;在一些其他实施例中,处理器1901、存储器1902和***设备接口1903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1904包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1905是触摸显示屏时,显示屏1905还具有采集在显示屏1905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1901进行处理。此时,显示屏1905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1905可以为一个,设置在计算机设备1900的前面板;在另一些实施例中,显示屏1905可以为至少两个,分别设置在计算机设备1900的不同表面或呈折叠设计;在另一些实施例中,显示屏1905可以是柔性显示屏,设置在计算机设备1900的弯曲表面上或折叠面上。甚至,显示屏1905还可以设置成非矩形的不规则图形,也即异形屏。显示屏1905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1906用于采集图像或视频。可选地,摄像头组件1906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1901进行处理,或者输入至射频电路1904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1901或射频电路1904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1907还可以包括耳机插孔。
定位组件1908用于定位计算机设备1900的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1908可以是基于美国的GPS(Global Positioning System,全球定位***)、中国的北斗***或俄罗斯的伽利略***的定位组件。
电源1909用于为计算机设备1900中的各个组件进行供电。电源1909可以是交流电、直流电、一次性电池或可充电电池。当电源1909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备1900还包括有一个或多个传感器1910。该一个或多个传感器1910包括但不限于:加速度传感器1911、陀螺仪传感器1912、压力传感器1913、指纹传感器1914、光学传感器1915以及接近传感器1916。
加速度传感器1911可以检测以计算机设备1900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1911可以用于检测重力加速度在三个坐标轴上的分量。处理器1901可以根据加速度传感器1911采集的重力加速度信号,控制显示屏1905以横向视图或纵向视图进行用户界面的显示。加速度传感器1911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1912可以检测计算机设备1900的机体方向及转动角度,陀螺仪传感器1912可以与加速度传感器1911协同采集用户对计算机设备1900的3D动作。处理器1901根据陀螺仪传感器1912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1913可以设置在计算机设备1900的侧边框和/或显示屏1905的下层。当压力传感器1913设置在计算机设备1900的侧边框时,可以检测用户对计算机设备1900的握持信号,由处理器1901根据压力传感器1913采集的握持信号进行左右手识别或快捷操作。当压力传感器1913设置在显示屏1905的下层时,由处理器1901根据用户对显示屏1905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1914用于采集用户的指纹,由处理器1901根据指纹传感器1914采集到的指纹识别用户的身份,或者,由指纹传感器1914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1914可以被设置在计算机设备1900的正面、背面或侧面。当计算机设备1900上设置有物理按键或厂商Logo时,指纹传感器1914可以与物理按键或厂商Logo集成在一起。
光学传感器1915用于采集环境光强度。在一个实施例中,处理器1901可以根据光学传感器1915采集的环境光强度,控制显示屏1905的显示亮度。具体地,当环境光强度较高时,调高显示屏1905的显示亮度;当环境光强度较低时,调低显示屏1905的显示亮度。在另一个实施例中,处理器1901还可以根据光学传感器1915采集的环境光强度,动态调整摄像头组件1906的拍摄参数。
接近传感器1916,也称距离传感器,通常设置在计算机设备1900的前面板。接近传感器1916用于采集用户与计算机设备1900的正面之间的距离。在一个实施例中,当接近传感器1916检测到用户与计算机设备1900的正面之间的距离逐渐变小时,由处理器1901控制显示屏1905从亮屏状态切换为息屏状态;当接近传感器1916检测到用户与计算机设备1900的正面之间的距离逐渐变大时,由处理器1901控制显示屏1905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图19中示出的结构并不构成对计算机设备1900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由计算机设备中的处理器执行以完成上述实施例中的三维模型渲染方法。例如,所述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、光盘只读存储器(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该计算机设备执行上述三维模型渲染方法。
在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链***。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种三维模型渲染方法,其特征在于,所述方法包括:
在离线计算阶段,获取用户输入数据;根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域;
在离线计算阶段,对于所述至少两个视角区域中的任意一个视角区域,在所述视角区域中均匀采样出至少两个视角;
对于所述至少两个视角中的任意一个视角,将构成所述目标三维模型的各个三角形按顺序编号;按照编号顺序为构成所述目标三维模型的各个三角形指定唯一颜色;在所述视角下将所述目标三维模型渲染到帧缓冲区;回读并解析帧缓冲结果;响应于解析到的颜色对应三角形编号,将所述三角形编号指示的三角形确定为所述视角下的可见三角形;其中,所述视角下的全部可见三角形构成了所述视角下所述目标三维模型的三角形可见集;
将所述至少两个视角的三角形可见集的并集,确定为所述视角区域下所述目标三维模型的三角形可见集;
根据不同视角区域的三角形可见集,构造索引缓冲区;其中,所述索引缓冲区用于存储所述三角形可见集中各个三角形的顶点索引;
在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间;根据所述目标子区间对应的三角可见集,渲染所述目标三维模型。
2.根据权利要求1所述的方法,其特征在于,所述视角范围为球面;
所述根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域,包括:
根据所述目标三维模型的顶点数据,确定所述目标三维模型的轴对齐包围盒;以所述轴对齐包围盒的中心点作为所述目标三维模型的中心点,确定单位球面;
按照经纬度对所述单位球面进行区域划分,得到所述至少两个视角区域。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将构成所述目标三维模型的各个三角形设置为不可见;
将深度测试设置为就近原则,开启深度写入;在任意一个视角下,通过绘制所述目标三维模型,得到所述目标三维模型各个像素的深度信息;将所述深度信息写入深度缓冲区;
将所述深度测试设置为值相等原则,关闭深度写入;对于构成所述目标三维模型的任意一个三角形,响应于所述三角形通过要求为值相等的深度测试,且所述三角形的绘制像素量大于零,将所述三角形由不可见设置为可见;
其中,所述视角下的全部可见三角形构成了所述视角的三角形可见集。
4.根据权利要求3所述的方法,其特征在于,所述就近原则是指:响应于同一像素位置出现像素重合,在所述深度缓冲区中存储所述像素位置的取值最小的深度值;其中,深度值越小,与三维空间中虚拟摄像机的距离越近;
所述值相等是指当前深度值与所述深度缓冲区中存储的对应深度值一致。
5.根据权利要求1所述的方法,其特征在于,所述根据不同视角区域下的三角形可见集,构造索引缓冲区,包括:
将所述至少两个视角区域按顺序编号;
按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到所述索引缓冲区。
6.根据权利要求1所述的方法,其特征在于,所述根据不同视角区域下的三角形可见集,构造索引缓冲区,包括:
将所述至少两个视角区域按顺序编号;
按照编号顺序,顺次排列各个视角区域的三角形可见集的顶点索引,得到所述索引缓冲区;其中,一个三角形可见集对应所述索引缓冲区的一个子区间;
对所述子区间进行三角形的顶点索引重排序,并将相邻子区间中重复出现的三角形的顶点索引进行合并,得到压缩后的所述索引缓冲区。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在离线计算阶段,将所述索引缓冲区存储到模型文件中。
8.根据权利要求7所述的方法,其特征在于,所述在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间,包括:
在实时渲染阶段,从所述模型文件中读取所述索引缓冲区;
获取所述目标三维模型相对于世界坐标系的旋转矩阵;
根据所述旋转矩阵、当前视角、所述目标三维模型的中心点位置,确定当前视角相对于所述目标三维模型的中心点的方向向量;
确定所述方向向量所在的目标视角区域;
将所述索引缓冲区中所述目标视角区域对应的子区间,确定为所述目标子区间。
9.根据权利要求1所述的方法,其特征在于,所述根据所述目标子区间对应的三角可见集,渲染所述目标三维模型,包括:
在实时渲染阶段,获取所述目标子区间在所述索引缓冲区中的偏移量;以及,获取所述目标子区间对应的三角形绘制数量;
将绘制指令提交给图形处理单元,所述绘制指令中包括所述偏移量和所述三角形绘制数量,由所述图形处理单元根据所述偏移量和所述三角形绘制数量确定所述三角可见集,完成渲染。
10.根据权利要求2所述的方法,其特征在于,所述按照经纬度对所述单位球面进行区域划分,得到所述至少两个视角区域,包括:
将所述单位球面上纬度值大于目标阈值的两个区域,划分成两个独立的视角区域;
将纬度值不大于所述目标阈值的区域,按照经度均匀划分成N个视角区域,N为不小于2的正整数。
11.一种三维模型渲染装置,其特征在于,所述装置包括:
划分模块,被配置为在离线计算阶段,获取用户输入数据;根据所述用户输入数据,在三维空间中进行针对目标三维模型的视角范围划分,得到至少两个视角区域;
获取模块,被配置为在离线计算阶段,对于所述至少两个视角区域中的任意一个视角区域,在所述视角区域中均匀采样出至少两个视角;对于所述至少两个视角中的任意一个视角,将构成所述目标三维模型的各个三角形按顺序编号;按照编号顺序为构成所述目标三维模型的各个三角形指定唯一颜色;在所述视角下将所述目标三维模型渲染到帧缓冲区;回读并解析帧缓冲结果;响应于解析到的颜色对应三角形编号,将所述三角形编号指示的三角形确定为所述视角下的可见三角形;其中,所述视角下的全部可见三角形构成了所述视角下所述目标三维模型的三角形可见集;将所述至少两个视角的三角形可见集的并集,确定为所述视角区域下所述目标三维模型的三角形可见集;
构造模块,被配置为在离线计算阶段,根据不同视角区域的三角形可见集,构造索引缓冲区;其中,所述索引缓冲区用于存储所述三角形可见集中各个三角形的顶点索引;
渲染模块,被配置为在实时渲染阶段,根据当前视角在所述索引缓冲区中确定目标子区间;根据所述目标子区间对应的三角可见集,渲染所述目标三维模型。
12.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行以实现如权利要求1至10中任一项所述的三维模型渲染方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如权利要求1至10中任一项所述的三维模型渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110377711.0A CN112933599B (zh) | 2021-04-08 | 2021-04-08 | 三维模型渲染方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110377711.0A CN112933599B (zh) | 2021-04-08 | 2021-04-08 | 三维模型渲染方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112933599A CN112933599A (zh) | 2021-06-11 |
CN112933599B true CN112933599B (zh) | 2022-07-26 |
Family
ID=76231173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110377711.0A Active CN112933599B (zh) | 2021-04-08 | 2021-04-08 | 三维模型渲染方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112933599B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115546005A (zh) * | 2021-06-30 | 2022-12-30 | 华为技术有限公司 | 一种指令处理方法及其相关设备 |
CN114494570A (zh) * | 2021-10-18 | 2022-05-13 | 北京市商汤科技开发有限公司 | 三维模型的渲染方法和装置、存储介质及计算机设备 |
WO2023115408A1 (zh) * | 2021-12-22 | 2023-06-29 | 华为技术有限公司 | 图像处理装置和方法 |
CN114470766A (zh) * | 2022-02-14 | 2022-05-13 | 网易(杭州)网络有限公司 | 模型防穿插方法及装置、电子设备、存储介质 |
CN116777731A (zh) * | 2022-03-11 | 2023-09-19 | 腾讯科技(成都)有限公司 | 软光栅化的方法、装置、设备、介质及程序产品 |
CN116843811A (zh) * | 2022-03-23 | 2023-10-03 | 腾讯科技(成都)有限公司 | 三维模型渲染方法、装置、设备及存储介质 |
CN114494024B (zh) * | 2022-04-13 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、设备及存储介质 |
CN114742956B (zh) * | 2022-06-09 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 模型处理方法、装置、设备及计算机可读存储介质 |
CN115168112B (zh) * | 2022-09-07 | 2022-12-27 | 中建三局信息科技有限公司 | 动态区段变更下的区段数据还原方法、装置、设备及介质 |
CN116433818B (zh) * | 2023-03-22 | 2024-04-16 | 宝钢工程技术集团有限公司 | 一种云端cpu及gpu平行渲染方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446351A (zh) * | 2016-08-31 | 2017-02-22 | 郑州捷安高科股份有限公司 | 一种面向实时绘制的大规模场景组织与调度技术及仿真*** |
CN106909640A (zh) * | 2017-02-16 | 2017-06-30 | 杭州新迪数字工程***有限公司 | 基于webgl的三维模型轻量化展示技术 |
CN112233048A (zh) * | 2020-12-11 | 2021-01-15 | 成都成电光信科技股份有限公司 | 一种球形视频图像校正方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8902228B2 (en) * | 2011-09-19 | 2014-12-02 | Qualcomm Incorporated | Optimizing resolve performance with tiling graphics architectures |
-
2021
- 2021-04-08 CN CN202110377711.0A patent/CN112933599B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446351A (zh) * | 2016-08-31 | 2017-02-22 | 郑州捷安高科股份有限公司 | 一种面向实时绘制的大规模场景组织与调度技术及仿真*** |
CN106909640A (zh) * | 2017-02-16 | 2017-06-30 | 杭州新迪数字工程***有限公司 | 基于webgl的三维模型轻量化展示技术 |
CN112233048A (zh) * | 2020-12-11 | 2021-01-15 | 成都成电光信科技股份有限公司 | 一种球形视频图像校正方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112933599A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112933599B (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
US20230143323A1 (en) | Shadow rendering method and apparatus, computer device, and storage medium | |
US11205282B2 (en) | Relocalization method and apparatus in camera pose tracking process and storage medium | |
CN109754454B (zh) | 物体模型的渲染方法、装置、存储介质及设备 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN111932664B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
EP3960261A1 (en) | Object construction method and apparatus based on virtual environment, computer device, and readable storage medium | |
US8970587B2 (en) | Five-dimensional occlusion queries | |
CN109615686B (zh) | 潜在可视集合的确定方法、装置、设备及存储介质 | |
CN112370784B (zh) | 虚拟场景显示方法、装置、设备以及存储介质 | |
CN111932463B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN111489378A (zh) | 视频帧特征提取方法、装置、计算机设备及存储介质 | |
CN111258467A (zh) | 界面显示方法、装置、计算机设备及存储介质 | |
CN111738914A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
EP4290464A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
CN112245926A (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN112907716A (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
CN113384880A (zh) | 虚拟场景显示方法、装置、计算机设备及存储介质 | |
CN108492339B (zh) | 获取资源压缩包的方法、装置、电子设备及存储介质 | |
CN112750190B (zh) | 三维热力图生成方法、装置、设备及存储介质 | |
CN112116681A (zh) | 图像生成方法、装置、计算机设备及存储介质 | |
CN112053360A (zh) | 图像分割方法、装置、计算机设备及存储介质 | |
CN113762054A (zh) | 图像识别方法、装置、设备及可读存储介质 | |
CN113018865A (zh) | 攀爬线生成方法、装置、计算机设备及存储介质 | |
CN112163062A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046026 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |