CN114241096A - 三维模型生成方法、装置、设备及存储介质 - Google Patents
三维模型生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114241096A CN114241096A CN202111564325.9A CN202111564325A CN114241096A CN 114241096 A CN114241096 A CN 114241096A CN 202111564325 A CN202111564325 A CN 202111564325A CN 114241096 A CN114241096 A CN 114241096A
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- initial
- collision
- vector
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种三维模型生成方法、装置、设备及存储介质,涉及计算机图形技术领域。该方法包括:根据初始三维模型的位置信息以及摄像机的坐标信息,确定摄像机与初始三维模型的视线碰撞信息,视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量;根据视线碰撞信息,确定材质信息;将材质信息赋予初始三维模型,得到目标三维模型。本方案可以得到一个边缘光滑的目标三维模型,这样,使得将目标三维模型放大超大倍后,也不会从目标三维模型中看到明显的棱角,进而有效解决了现有技术中对网格模型按照一定比例放大之后存在的棱角问题,同时也不会导致目标三维模型的所占用的内存急剧上升,有效避免了造成游戏性能消耗过大的问题。
Description
技术领域
本发明涉及计算机图形技术领域,具体而言,涉及一种三维模型生成方法、装置、设备及存储介质。
背景技术
在一些游戏中,存在还原各种大型球体(比如地球、火星)的场景需求,以增强游戏场景的视觉效果。
目前,主要是通过对制作出相应的球体网格模型,并对其进行裁切减面至弧形片,从而保证获得球体的连贯形状的同时降低其模型大小。
但是,由于网格模型中的球体是由有限面数的多面体制作而成的,所以,即便是高精度的球体网格模型,在按照一定比例放大之后,就会看到明显的棱角。但为了避免看见棱角,就不得不成倍的提高球体网格模型的面数,模型的数据量急剧上升,进而导致球体模型所占用的内存急剧上升,从而造成游戏性能消耗过大的问题。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种三维模型生成方法、装置、设备及存储介质,以便解决现有技术中对网格模型按照一定比例放大之后存在的棱角问题,同时也不会导致目标三维模型的所占用的内存急剧上升,有效避免了造成游戏性能消耗过大的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种三维模型生成方法,所述方法包括:
根据初始三维模型的位置信息以及摄像机的坐标信息,确定所述摄像机与所述初始三维模型的视线碰撞信息,所述视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,所述碰撞状态用于指示所述摄像机的视线是否与所述初始三维模型碰撞;
根据所述视线碰撞信息,确定材质信息,所述材质信息包括:不透明度以及用于连接法线贴图的法线参数;
将所述材质信息赋予所述初始三维模型,得到目标三维模型,所述目标三维模型具有所述材质信息所表征的材质属性。
在一种可能的实现方式中,所述初始三维模型为球体模型,所述初始三维模型的位置信息包括:目标像素点的坐标、所述初始三维模型的球体半径、所述初始三维模型的球体中心点的坐标。
在一种可能的实现方式中,所述根据初始三维模型的位置信息以及摄像机的坐标信息,确定所述摄像机与所述初始三维模型的视线碰撞信息,包括:
根据所述初始三维模型的球体半径、球体中心点的坐标,确定所述初始三维模型的空间表达式;
根据单位视线向量、以及所述摄像机的坐标信息,确定视线向量表达式;
使用所述初始三维模型的空间表达式以及所述视线向量表达式,得到所述摄像机与所述初始三维模型的视线碰撞信息。
在一种可能的实现方式中,所述根据所述视线碰撞信息,确定材质信息,包括:
根据所述第一碰撞点向量和所述第二碰撞点向量,确定目标碰撞点向量;
根据所述碰撞状态、所述第一碰撞点向量以及所述第二碰撞点向量,确定所述不透明度;
根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定所述法线参数。
在一种可能的实现方式中,所述根据所述碰撞状态、所述第一碰撞点向量以及所述第二碰撞点向量,确定所述不透明度,包括:
若所述碰撞状态指示所述摄像机的视线与所述初始三维模型碰撞,确定所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离;
根据所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离,确定所述不透明度。
在一种可能的实现方式中,所述根据所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离,确定所述不透明度,包括:
确定所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离与预设密度值的比值,得到所述向量距离所表征的密度信息;
将所述向量距离所表征的密度信息作为所述不透明度。
在一种可能的实现方式中,所述根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定所述法线参数,包括:
根据所述初始三维模型的球体中心点的坐标,确定所述初始三维模型的球心向量;
将所述目标碰撞点向量与所述球心向量相减,得到相减后向量;所述相减后向量用于表征所述初始三维模型的球心沿所述摄像机的视线方向的向量;
根据所述相减后向量,确定所述法线参数。
在一种可能的实现方式中,所述根据所述相减后向量,确定所述法线参数,包括:
对所述相减后向量进行归一化处理以及坐标系转换,得到所述法线参数。
第二方面,本申请实施例还提供了一种三维模型生成装置,所述装置包括:
确定模块,用于根据初始三维模型的位置信息以及摄像机的坐标信息,确定所述摄像机与所述初始三维模型的视线碰撞信息,所述视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,所述碰撞状态用于指示所述摄像机的视线是否与所述初始三维模型碰撞;根据所述视线碰撞信息,确定材质信息,所述材质信息包括:不透明度以及用于连接法线贴图的法线参数;
赋予模块,用于将所述材质信息赋予所述初始三维模型,得到目标三维模型,所述目标三维模型具有所述材质信息所表征的材质属性。
在一种可能的实现方式中,所述初始三维模型为球体模型,所述初始三维模型的位置信息包括:目标像素点的坐标、所述初始三维模型的球体半径、所述初始三维模型的球体中心点的坐标。
在一种可能的实现方式中,所述确定模块,还用于:
根据所述初始三维模型的球体半径、球体中心点的坐标,确定所述初始三维模型的空间表达式;
根据单位视线向量、以及所述摄像机的坐标信息,确定视线向量表达式;
使用所述初始三维模型的空间表达式以及所述视线向量表达式,得到所述摄像机与所述初始三维模型的视线碰撞信息。
在一种可能的实现方式中,所述确定模块,还用于:
根据所述第一碰撞点向量和所述第二碰撞点向量,确定目标碰撞点向量;
根据所述碰撞状态、所述第一碰撞点向量以及所述第二碰撞点向量,确定所述不透明度;
根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定所述法线参数。
在一种可能的实现方式中,所述确定模块,还用于:
若所述碰撞状态指示所述摄像机的视线与所述初始三维模型碰撞,确定所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离;
根据所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离,确定所述不透明度。
在一种可能的实现方式中,所述确定模块,还用于:
确定所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离与预设密度值的比值,得到所述向量距离所表征的密度信息;
将所述向量距离所表征的密度信息作为所述不透明度。
在一种可能的实现方式中,所述确定模块,还用于:
根据所述初始三维模型的球体中心点的坐标,确定所述初始三维模型的球心向量;
将所述目标碰撞点向量与所述球心向量相减,得到相减后向量;所述相减后向量用于表征所述初始三维模型的球心沿所述摄像机的视线方向的向量;
根据所述相减后向量,确定所述法线参数。
在一种可能的实现方式中,所述确定模块,还用于:
对所述相减后向量进行归一化处理以及坐标系转换,得到所述法线参数。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面所述的三维模型生成方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面所述的三维模型生成方法的步骤。
本申请的有益效果是:
本申请实施例提供一种三维模型生成方法、装置、设备及存储介质,该方法包括:根据初始三维模型的位置信息以及摄像机坐标信息,确定摄像机与初始三维模型的视线碰撞信息,视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,碰撞状态用于指示摄像机的视线是否与初始三维模型碰撞;根据视线碰撞信息,确定材质信息,材质信息包括:不透明度以及用于连接法线贴图的法线参数;将材质信息赋予初始三维模型,得到目标三维模型,目标三维模型具有材质信息所表征的材质属性。在本方案中,主要是使用摄像机向初始三维模型的表面发射出的视线,根据初始三维模型的位置信息、摄像机坐标信息,计算得到摄像机与初始三维模型发生视线碰撞时的碰撞状态、第一碰撞点向量以及第二碰撞点向量,然后,根据视线碰撞信息,进一步确定初始三维模型表面上的材质信息,最后,将得到的材质信息赋予初始三维模型,得到一个边缘光滑的目标三维模型。这样,使得即使将目标三维模型放大超大倍后,从目标三维模型中也不会出现明显的棱角,进而有效解决了现有技术中对网格模型按照一定比例放大之后存在的棱角问题,同时也不会导致目标三维模型的所占用的内存急剧上升,有效避免了造成游戏性能消耗过大的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的三维模型生成方法的流程示意图;
图2为本申请实施例提供的三维模型生成方法中摄像机的视线与初始三维模型的碰撞示意图;
图3为本申请实施例提供的三维模型生成方法中将材质信息赋予初始三维模型的示意图;
图4为本申请实施例提供的三维模型生成方法的另一流程示意图;
图5为本申请实施例提供的三维模型生成方法的又一流程示意图;
图6为本申请实施例提供的三维模型生成方法的另一流程示意图;
图7为本申请实施例提供的三维模型生成方法的又一流程示意图;
图8为本申请实施例提供的三维模型生成方法的另一流程示意图;
图9为本申请实施例提供的三维模型生成方法中确定材质信息中的法线参数的示意图;
图10为本申请实施例提供的三维模型生成装置的模块结构图;
图11为本申请实施例提供的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
在提出本申请方案之前,现有技术中,主要是通过对制作出相应的球体网格模型,并对其进行裁切减面至弧形片,从而保证获得球体的连贯形状的同时降低其模型大小。
但是,由于网格模型中的球体是由有限面数的多面体制作而成的,所以,即便是高精度的球体网格模型,在按照一定比例放大之后,会看到明显的棱角。但为了避免看见棱角,就不得不成倍的提高网格模型中球体的面数,模型的数据量急剧上升,进而导致球体模型所占用的内存急剧上升,从而造成游戏性能消耗过大的问题。
再者,如果想改变游戏内天体的形状,那么就需要重新制作网格模型。此外,如果游戏画面中同时出现多个不同形状的天体时,则只能使用多个不同的网格模型资源,进而导致消耗更多的内存,造成游戏性能消耗过大的问题。
本申请实施例基于上述问题,提出一种三维模型生成方法,主要是将摄像机发射出的视线投射至初始三维模型表面上,利用初始三维模型的位置信息以及摄像机坐标信息,计算得到视线与球体的碰撞状态、碰撞点的视线向量,然后,再根据碰撞点的视线向量,计算得到初始三维模型对应的目标三维模型的材质信息,并将材质信息赋予初始三维模型,得到目标三维模型,完成了对初始三维模型的材质信息的生成。这样,使得不需要依靠网格模型中的顶点数据,也能够生成初始三维模型的材质信息,并将生成的材质信息赋予初始三维模型,得到一个边缘光滑的目标三维模型,有效解决了现有技术中对网格模型按照一定比例放大之后存在的棱角问题,同时也不会导致目标三维模型的所占用的内存急剧上升,有效避免了造成游戏性能消耗过大的问题。
在本申请其中一种实施例中的三维模型生成方法可以运行于本地终端设备或者是服务器。当三维模型生成方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,三维模型生成方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
如下将通过多个实施例对本申请的三维模型生成方法的具体实现进行详细说明。
图1为本申请实施例提供的三维模型生成方法的流程示意图,需要说明的是,本申请所提供的三维模型生成方法并不以图1以及以下所述的具体顺序为限制。应当理解,在其它实施例中,本申请所提供的三维模型生成方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。如图1所示,该方法包括:
S101、根据初始三维模型的位置信息以及摄像机的坐标信息,确定摄像机与初始三维模型的视线碰撞信息。
其中,视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量。碰撞状态用于指示摄像机的视线是否与初始三维模型碰撞。
为便于描述,本申请以下部分实施例中以初始三维模型为球体模型进行解释说明。应理解,初始三维模型也可以是利用构造实体几何(Constructive Solid Geometry,简称CSG)技术,构造得到的其他任意形状的体积模型,比如,椭球模型、锥模型或者正方体模型等。
例如,参考图2所示,在本申请提供的实施例中,初始三维模型的位置信息以及摄像机坐标信息均是默认为世界空间坐标体系,主要是使用摄像机向初始三维模型的表面发射出的多条视线(如,L1、L2、L3等),然后,再根据初始三维模型的位置信息(如,球体模型的球体中心的位置)、摄像机坐标信息,计算得到摄像机所发射出的视线是否与初始三维模型表面上的某一像素点发生碰撞,若发生碰撞,则还需要计算得到两者的碰撞点向量,也即,第一碰撞点向量和第二碰撞点向量。
以第一碰撞点向量为例进行说明,第一碰撞点向量是指以摄像机的坐标位置为起点,沿着视线L1至第一碰撞点t0的向量。同理,第二碰撞点向量是指以摄像机的坐标位置为起点,沿着视线L1至第二碰撞点t1的向量。
例如,以摄像机发射出的视线L1为例,则可以从图2中,获取到摄像机所发射出的视线L1与初始三维模型表面上的像素点P1发生碰撞,第一碰撞点向量和第二碰撞点向量。
值得说明的是,若第一碰撞点向量与第二碰撞点向量相等,则可以确定摄像机视线与初始三维模型只有一个相交点,也即,初始三维模型表面上的t3。
S102、根据视线碰撞信息,确定材质信息。
其中,材质信息包括:不透明度以及用于连接法线贴图的法线参数。
示例性地,例如,可以利用上述得到的第一碰撞点向量和第二碰撞点向量,计算得到初始三维模型表面上像素点P1的材质信息中的不透明度、以及用于连接法线贴图的法线参数。
应理解,初始三维模型表面上某一像素点的材质信息还包括:基础颜色、发光颜色和折射率等,这些材质信息可以依据实际需求自行调整设置,在此不做具体赘述。
S103、将材质信息赋予初始三维模型,得到目标三维模型。
其中,目标三维模型具有材质信息所表征的材质属性。
在本实施例中,基于上述实施例,例如,参考图3(a)和图3(b)所示,在得到初始三维模型的材质信息后,可以选中图3(a)所示的射线球体材质,并点击图3(b)界面中所示的箭头,即可实现将图3(a)中生成的材质信息拖拽到图3(b)所示的普通球体的表面上,得到一个边缘光滑的目标三维模型。
这样,使得将目标三维模型放大1000倍后,也不会从目标三维模型中看到明显的棱角,进而有效解决了现有技术中对网格模型按照一定比例放大之后存在的棱角问题,同时也不会导致目标三维模型的所占用的内存急剧上升,有效避免了造成游戏性能消耗过大的问题。
综上所述,本申请实施例提供一种三维模型生成方法,该方法包括:根据初始三维模型的位置信息以及摄像机坐标信息,确定摄像机与初始三维模型的视线碰撞信息,视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,碰撞状态用于指示摄像机的视线是否与初始三维模型碰撞;根据视线碰撞信息,确定材质信息,材质信息包括:不透明度以及用于连接法线贴图的法线参数;将材质信息赋予初始三维模型,得到目标三维模型,目标三维模型具有材质信息所表征的材质属性。在本方案中,主要是使用摄像机向初始三维模型的表面发射出的视线,根据初始三维模型的位置信息、摄像机坐标信息,计算得到摄像机与初始三维模型发生视线碰撞时的碰撞状态、第一碰撞点向量以及第二碰撞点向量,然后,根据视线碰撞信息,进一步确定初始三维模型表面上的材质信息,最后,将得到的材质信息赋予初始三维模型,得到一个边缘光滑的目标三维模型。这样,使得将目标三维模型放大超大倍后,也不会从目标三维模型中看到明显的棱角,进而有效解决了现有技术中对网格模型按照一定比例放大之后存在的棱角问题,同时也不会导致目标三维模型的所占用的内存急剧上升,有效避免了造成游戏性能消耗过大的问题。
作为一种可选的实施方式,初始三维模型为球体模型,初始三维模型的位置信息包括:目标像素点的坐标、球体模型的球体半径、球体模型的球体中心点的坐标。
其中,目标像素点是指初始三维模型表面上的任意一点。
例如,继续参考图2所示,目标像素点可以是图2中所示的球体模型表面上的P1点,也即,目标像素点P1的坐标可以表示为(xp,yp,zp)。
初始三维模型的球体半径可以表示为R,初始三维模型的球体中心点O的坐标可以表示为O(xo,yo,zo)。
将通过如下实施例,具体讲解如何根据初始三维模型的位置信息以及摄像机的坐标信息,确定摄像机与初始三维模型的视线碰撞信息。
作为一种可选的实施方式,参考图4所示,上述步骤S101的一种可选方式包括:
S401、根据初始三维模型的球体半径、球体中心点的坐标,确定初始三维模型的空间表达式。
示例性地,例如,初始三维模型的球体半径为R,球体中心点O的坐标可以表示为O(xo,yo,zo),则可以得到初始三维模型的空间表达式为如下公式(1)所示:
(x-xo)2+(y-yo)2+(z-zo)2=R2 (1)
也即,可以根据上述公式(1),确定初始三维模型在世界坐标系中的位置区域。
S402、根据单位视线向量、以及摄像机的坐标信息,确定视线向量表达式。
具体的,设摄像机向初始三维模型的表面发射出的视线的单位视线向量摄像机的空间向量以及摄像机C的坐标为O(xc,yc,zc),则可以得到摄像机在t时刻向任意一点发射出的视线向量表达式为如下公式(2)所示:
S403、使用初始三维模型的空间表达式以及视线向量表达式,得到摄像机与初始三维模型的视线碰撞信息。
可选地,可以结合上述实施例得到的初始三维模型的空间表达式、视线向量表达式,可以计算得到摄像机与初始三维模型的视线碰撞信息,如公式(3)所示:
可见,上述公式(3)是一个一元二次方程,可以将公式(3)整合为At2+Bt+C=0,整理可得:
根据一元二次方程式中根的判别式(b2-4ac),可以使用函数saturate(sign(b2-4ac)+1)确定上述公式(3)是否有解。若(b2-4ac)<0,则无解;若(b2-4ac)>=0,即有解。也即,可以根据函数saturate(sign(b2-4ac)+1)的计算结果,确定碰撞状态的布尔值(即0为无解无碰撞,1为有解有碰撞)。
在有解有碰撞的情况下,t0和t1可以分别表示为t0=(-B-sqrt(b2-4ac))/2A、t1=(-B+sqrt(b2-4ac))/2A。并分别将求解到的两个解作为第一碰撞点的位置、第二碰撞点的位置。
这样,可以将碰撞状态的布尔值与第一碰撞点到第二碰撞点之间的向量的模长相乘,便可以在染色器中代替if功能节点,从而减少性能开销。
然后,可以根据摄像机的位置、第一碰撞点的位置,得到第一碰撞点向量;同理,也可以根据摄像机的位置、第一碰撞点的位置,得到第二碰撞点向量。
将通过如下实施例,具体讲解如何根据视线碰撞信息,确定材质信息。
作为一种可选的实施方式,参考图5所示,上述步骤S102的一种可选方式包括:
S501、根据第一碰撞点向量和第二碰撞点向量,确定目标碰撞点向量。
在一种可实现的方式中,可以将第一碰撞点向量和第二碰撞点向量中的任意一个作为目标碰撞点向量。也即,目标碰撞点向量可以为第一碰撞点向量,也可以为第二碰撞点向量。
在另一种可实现的方式中,还可以设第一碰撞点向量的权重系数为α,第二碰撞点向量的权重系数为1-α。也即,将“第一碰撞点向量与权重系数α的乘积”、以及“第二碰撞点向量与权重系数1-α的乘积”的和作为目标碰撞点向量。示例性地,α的取值可以为0.5,在此不做具体限定,可以根据实际情况选取。
S502、根据碰撞状态、第一碰撞点向量以及第二碰撞点向量,确定不透明度。
其中,不透明度用于表征初始三维模型表面材质的透光度。
在一种可选的实施方式中,若碰撞状态指示摄像机的视线与初始三维模型发生碰撞,则可以直接根据第一碰撞点向量与第二碰撞点向量,计算得到在发生碰撞的这一像素点的不透明度。
应理解,在另一种可选的实施方式中,若碰撞状态指示摄像机的视线与初始三维模型未发生碰撞,则可以直接将未发生碰撞的这一像素点的不透光度设为0。也即,未发生碰撞的这一像素点的表面材质是完全透明。
S503、根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定法线参数。
可选地,可以根据初始三维模型的球体中心点的坐标,得到初始三维模型的球心向量;然后,结合初始三维模型的球心向量、第一碰撞点向量(或第二碰撞点向量),得到摄像机的视线与初始三维模型发生碰撞的这一像素点的法线参数。
将通过如下实施例,具体讲解如何根据碰撞状态、第一碰撞点向量以及第二碰撞点向量,确定不透明度。
作为一种可选的实施方式,参考图6所示,上述步骤S501中的一种可选方式包括:
S601、若碰撞状态指示摄像机的视线与初始三维模型碰撞,确定第一碰撞点向量与第二碰撞点向量之间的向量距离。
可选地,若碰撞状态指示摄像机的视线与初始三维模型发生碰撞,则可以直接根据第一碰撞点向量与第二碰撞点向量,计算得到第一碰撞点向量与第二碰撞点向量之间的向量距离。应理解,可以将“第一碰撞点向量与第二碰撞点向量之间的向量距离”看成是摄像机的视线在初始三维模型表面上步行的距离。
S602、根据第一碰撞点向量与第二碰撞点向量之间的向量距离,确定不透明度。
作为一种可选的实施方式,参考图7所示,上述步骤S602的一种可选方式包括:
S701、确定第一碰撞点向量与第二碰撞点向量之间的向量距离与预设密度值的比值,得到向量距离所表征的密度信息。
其中,预设密度值可以是指初始三维模型表面的单位密度信息,可以根据实际需求设置。
在本实施例中,直接计算“第一碰撞点向量与第二碰撞点向量之间的向量距离”与“预设密度值”之间的比值,将计算得到比值作为这一向量距离所表征的密度信息。
在另一种可选的实施方式中,也可以直接将“第一碰撞点向量与第二碰撞点向量之间的向量距离”等价为初始三维模型表面在该像素点上的密度信息。
S702、将向量距离所表征的密度信息作为不透明度。
应理解,若初始三维模型表面上某一个像素点的密度越高,则该像素点的透明度越低;同理,若初始三维模型表面上某一个像素点的密度越低的地方,则该像素点的透明度越高。
在本实施例中,可以将向量距离所表征的密度信息作为初始三维模型表面上目标像素点的不透明度。
将通过如下实施例,具体讲解如何根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定所述法线参数。
作为一种可选的实施方式,参考图8所示,上述步骤S502的一种可选方式包括:
S801、根据初始三维模型的球体中心点的坐标,确定初始三维模型的球心向量。
S802、将目标碰撞点向量与球心向量相减,得到相减后向量。
其中,相减后向量用于表征初始三维模型的球心沿摄像机的视线方向的向量。
作为一种可选的实施方式,还可以对相减后向量进行归一化处理以及坐标系转换,得到法线参数。
可以参考图9所示,目标碰撞点向量选取的是第一碰撞点向量,也即,第一碰撞点向量减去球心向量后得到的一个向量,并对相减后向量进行归一化处理,然后,对相减后向量归一化处理后的结果进行坐标系转换处理,使得从世界空间转换切线空间。
S803、根据相减后向量,确定法线参数。
应理解,可以将相减后向量的看作是初始三维模型表面上的目标像素点的法线向量。也即,根据相减后向量,确定法线参数。
为了便于理解,如何根据使用上述得到的视线碰撞信息,确定材质信息。通过如下具体实施例进行详细说明。
本申请可以通过一个半透明(translucent)模式的表面类型(surface type)材质染色器,生成初始三维模型表面的材质。
具体的,可以将步骤S702中确定的不透明度连接至染色器的opacity输出节点上,并将步骤S803中确定的法线参数连接至染色器的Normal输出节点上,同时,可以依据实际需求自行调整设置基础颜色和发光颜色,将设置的值连接至染色器的Basic Color、Emissive Color输出节点上等,得到初始三维模型表面上各像素点的材质染色器,将材质染色器赋予初始三维模型,得到目标三维模型。
基于同一发明构思,本申请实施例中还提供了与三维模型生成方法对应的三维模型生成装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述三维模型生成相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参考图10所示,是本申请实施例提供的三维模型生成装置,该装置包括:
确定模块1001,用于根据初始三维模型的位置信息以及摄像机坐标信息,确定摄像机与初始三维模型的视线碰撞信息,视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,碰撞状态用于指示摄像机的视线是否与初始三维模型碰撞;根据视线碰撞信息,确定材质信息,材质信息包括:不透明度以及用于连接法线贴图的法线参数;
赋予模块1002,用于将材质信息赋予初始三维模型,得到目标三维模型,目标三维模型具有材质信息所表征的材质属性。
在一种可能的实现方式中,初始三维模型为球体模型,初始三维模型的位置信息包括:目标像素点的坐标、初始三维模型的球体半径、初始三维模型的球体中心点的坐标。
在一种可能的实现方式中,确定模块1001,还用于:
根据初始三维模型的球体半径、球体中心点的坐标,确定初始三维模型的空间表达式;
根据单位视线向量、以及摄像机的坐标,确定视线向量表达式;
使用初始三维模型的空间表达式以及视线向量表达式,得到摄像机与初始三维模型的视线碰撞信息。
在一种可能的实现方式中,确定模块1001,还用于:
根据第一碰撞点向量和第二碰撞点向量,确定目标碰撞点向量;
根据碰撞状态、第一碰撞点向量以及第二碰撞点向量,确定不透明度;
根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定法线参数。
在一种可能的实现方式中,确定模块1001,还用于:
若碰撞状态指示摄像机的视线与初始三维模型碰撞,确定第一碰撞点向量与第二碰撞点向量之间的向量距离;
根据第一碰撞点向量与第二碰撞点向量之间的向量距离,确定不透明度。
在一种可能的实现方式中,确定模块1001,还用于:
确定第一碰撞点向量与第二碰撞点向量之间的向量距离与预设密度值的比值,得到向量距离所表征的密度信息;
将向量距离所表征的密度信息作为不透明度。
在一种可能的实现方式中,确定模块1001,还用于:
根据初始三维模型的球体中心点的坐标,确定初始三维模型的球心向量;
将目标碰撞点向量与球心向量相减,得到相减后向量;相减后向量用于表征初始三维模型的球心沿摄像机视线方向的向量;
根据相减后向量,确定法线参数。
在一种可能的实现方式中,确定模块1001,还用于:
对相减后向量进行归一化处理以及坐标系转换,得到法线参数。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上三维模型生成方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考三维模型生成方法实施例中的对应过程,本申请中不再赘述。
需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。
图11为本申请实施例提供的一种电子设备的结构示意图,该设备可以是本地终端设备,也可以是云交互系统中的客户端设备。
该设备可包括:处理器1101、存储器1102。
存储器1102用于存储程序,处理器1101调用存储器1102存储的程序,以执行上述三维模型生成方法实施例。具体实现方式和技术效果类似,这里不再赘述。
其中,存储器1102存储有程序代码,当程序代码被处理器1101执行时,使得处理器1101执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的方法中的各种步骤。
处理器1101可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的游戏直播间显示方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (11)
1.一种三维模型生成方法,其特征在于,所述方法包括:
根据初始三维模型的位置信息以及摄像机的坐标信息,确定所述摄像机与所述初始三维模型的视线碰撞信息,所述视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,所述碰撞状态用于指示所述摄像机的视线是否与所述初始三维模型碰撞;
根据所述视线碰撞信息,确定材质信息,所述材质信息包括:不透明度以及用于连接法线贴图的法线参数;
将所述材质信息赋予所述初始三维模型,得到目标三维模型,所述目标三维模型具有所述材质信息所表征的材质属性。
2.根据权利要求1所述的三维模型生成方法,其特征在于,所述初始三维模型为球体模型,所述初始三维模型的位置信息包括:目标像素点的坐标、所述初始三维模型的球体半径、所述初始三维模型的球体中心点的坐标。
3.根据权利要求2所述的三维模型生成方法,其特征在于,所述根据初始三维模型的位置信息以及摄像机的坐标信息,确定所述摄像机与所述初始三维模型的视线碰撞信息,包括:
根据所述初始三维模型的球体半径、球体中心点的坐标,确定所述初始三维模型的空间表达式;
根据单位视线向量、以及所述摄像机的坐标信息,确定视线向量表达式;
使用所述初始三维模型的空间表达式以及所述视线向量表达式,得到所述摄像机与所述初始三维模型的视线碰撞信息。
4.根据权利要求1-3任一项所述的三维模型生成方法,其特征在于,所述根据所述视线碰撞信息,确定材质信息,包括:
根据所述第一碰撞点向量和所述第二碰撞点向量,确定目标碰撞点向量;
根据所述碰撞状态、所述第一碰撞点向量以及所述第二碰撞点向量,确定所述不透明度;
根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定所述法线参数。
5.根据权利要求4所述的三维模型生成方法,其特征在于,所述根据所述碰撞状态、所述第一碰撞点向量以及所述第二碰撞点向量,确定所述不透明度,包括:
若所述碰撞状态指示所述摄像机的视线与所述初始三维模型碰撞,确定所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离;
根据所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离,确定所述不透明度。
6.根据权利要求5所述的三维模型生成方法,其特征在于,所述根据所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离,确定所述不透明度,包括:
确定所述第一碰撞点向量与所述第二碰撞点向量之间的向量距离与预设密度值的比值,得到所述向量距离所表征的密度信息;
将所述向量距离所表征的密度信息作为所述不透明度。
7.根据权利要求4所述的三维模型生成方法,其特征在于,所述根据目标碰撞点向量以及初始三维模型的球体中心点的坐标,确定所述法线参数,包括:
根据所述初始三维模型的球体中心点的坐标,确定所述初始三维模型的球心向量;
将所述目标碰撞点向量与所述球心向量相减,得到相减后向量;所述相减后向量用于表征所述初始三维模型的球心沿所述摄像机的视线方向的向量;
根据所述相减后向量,确定所述法线参数。
8.根据权利要求7所述的三维模型生成方法,其特征在于,所述根据所述相减后向量,确定所述法线参数,包括:
对所述相减后向量进行归一化处理以及坐标系转换,得到所述法线参数。
9.一种三维模型生成装置,其特征在于,所述装置包括:
确定模块,用于根据初始三维模型的位置信息以及摄像机的坐标信息,确定所述摄像机与所述初始三维模型的视线碰撞信息,所述视线碰撞信息包括:碰撞状态、第一碰撞点向量以及第二碰撞点向量,其中,所述碰撞状态用于指示所述摄像机的视线是否与所述初始三维模型碰撞;根据所述视线碰撞信息,确定材质信息,所述材质信息包括:不透明度以及用于连接法线贴图的法线参数;
赋予模块,用于将所述材质信息赋予所述初始三维模型,得到目标三维模型,所述目标三维模型具有所述材质信息所表征的材质属性。
10.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-8任一所述的三维模型生成方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-8任一所述的三维模型生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111564325.9A CN114241096A (zh) | 2021-12-20 | 2021-12-20 | 三维模型生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111564325.9A CN114241096A (zh) | 2021-12-20 | 2021-12-20 | 三维模型生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114241096A true CN114241096A (zh) | 2022-03-25 |
Family
ID=80759490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111564325.9A Pending CN114241096A (zh) | 2021-12-20 | 2021-12-20 | 三维模型生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114241096A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117547825A (zh) * | 2024-01-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 碰撞数据的管理方法、装置、设备及存储介质 |
-
2021
- 2021-12-20 CN CN202111564325.9A patent/CN114241096A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117547825A (zh) * | 2024-01-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 碰撞数据的管理方法、装置、设备及存储介质 |
CN117547825B (zh) * | 2024-01-12 | 2024-03-22 | 腾讯科技(深圳)有限公司 | 碰撞数据的管理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111369655B (zh) | 渲染方法、装置和终端设备 | |
US20170154468A1 (en) | Method and electronic apparatus for constructing virtual reality scene model | |
US11908039B2 (en) | Graphics rendering method and apparatus, and computer-readable storage medium | |
US20170186219A1 (en) | Method for 360-degree panoramic display, display module and mobile terminal | |
US9508191B2 (en) | Optimal point density using camera proximity for point-based global illumination | |
CN105556565A (zh) | 片段着色器执行顶点着色器计算 | |
CN111598986B (zh) | 虚拟流体表面的渲染方法、装置、设备及存储介质 | |
EP4213102A1 (en) | Rendering method and apparatus, and device | |
US20180061119A1 (en) | Quadrangulated layered depth images | |
CN111145329A (zh) | 模型渲染方法、系统及电子装置 | |
CN111739142A (zh) | 场景渲染方法、装置、电子设备及计算机可读存储介质 | |
WO2024027237A1 (zh) | 渲染的优化方法、电子设备和计算机可读存储介质 | |
CN107835403B (zh) | 一种以3d视差效果显示的方法及装置 | |
US9401044B1 (en) | Method for conformal visualization | |
CN113797531B (zh) | 遮挡剔除实现方法、装置、计算机设备及存储介质 | |
KR20140000170A (ko) | 관여 매질에 의해 수광된 광의 양을 추정하기 위한 방법 및 대응하는 장치 | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
CN114241096A (zh) | 三维模型生成方法、装置、设备及存储介质 | |
CN117635799A (zh) | 三维模型的渲染方法、装置、电子设备及存储介质 | |
CN114529648A (zh) | 模型展示方法、设备、装置、电子设备及存储介质 | |
US10754498B2 (en) | Hybrid image rendering system | |
CN115761123B (zh) | 三维模型处理方法、装置、电子设备以及存储介质 | |
CN115631320B (zh) | 预计算单元格显示方法、预计算单元格生成方法及装置 | |
CN113426131B (zh) | 虚拟场景的画面生成方法、装置、计算机设备及存储介质 | |
US10262631B1 (en) | Large scale highly detailed model review using augmented reality |
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 |