CN114399421A - 三维模型可见度数据的存储方法、装置、设备及存储介质 - Google Patents

三维模型可见度数据的存储方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114399421A
CN114399421A CN202111624049.0A CN202111624049A CN114399421A CN 114399421 A CN114399421 A CN 114399421A CN 202111624049 A CN202111624049 A CN 202111624049A CN 114399421 A CN114399421 A CN 114399421A
Authority
CN
China
Prior art keywords
target
visibility data
data
value
dimensional model
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
Application number
CN202111624049.0A
Other languages
English (en)
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.)
Tencent Technology Chengdu Co Ltd
Original Assignee
Tencent Technology Chengdu Co 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 Tencent Technology Chengdu Co Ltd filed Critical Tencent Technology Chengdu Co Ltd
Publication of CN114399421A publication Critical patent/CN114399421A/zh
Priority to PCT/CN2022/127985 priority Critical patent/WO2023088059A1/zh
Priority to US18/207,577 priority patent/US20230326129A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/60Extraction of image or video features relating to illumination properties, e.g. using a reflectance or lighting model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种三维模型可见度数据的存储方法、装置、设备及存储介质,涉及计算机和互联网技术领域。所述方法包括:获取三维模型的多个采样点的可见度数据,该采样点是像素级的采样点;以第一误差函数的取值收敛为目标,确定三维模型的各个顶点的可见度数据;在三维模型的顶点数据中,存储三维模型的各个顶点的可见度数据。通过第一误差函数计算得到三维模型的各个顶点的可见度数据,并将其进行存储到顶点数据中,而不用存储大量的采样点的可见度数据,充分减少了可见度数据的存储所要使用的空间,缓解了三维模型中的可见度数据的存储压力,并提升了渲染效率。

Description

三维模型可见度数据的存储方法、装置、设备及存储介质
本申请要求于2021年11月19日提交的申请号为202111374336.0、发明名称为“三维模型可见度数据的存储方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及计算机和互联网技术领域,特别涉及一种三维模型可见度数据的存储方法、装置、设备及存储介质。
背景技术
三维模型渲染时,需要计算该三维模型上各个点的可见度数据,并将该可见度数据进行存储,以便在模型渲染过程中进行使用。
在相关技术中,计算三维模型上的任意一点的可见度数据时,在该点发射多条(如720条)射线,并根据各条射线是否与环境物体相交以及相交距离,来得到各条射线的相交数据,该点的可见度数据即包括从该点发射的各条射线的相交数据。
然而,由于三维模型上一个点的可见度数据就包括大量射线的相交数据,该数据量过大,不利于存储和计算,严重影响了三维模型的渲染效率。
发明内容
本申请实施例提供了一种三维模型可见度数据的存储方法、装置、设备及存储介质。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种三维模型可见度数据的存储方法,所述方法包括:
获取三维模型的多个采样点的可见度数据,所述采样点是像素级的采样点;
以第一误差函数的取值收敛为目标,确定所述三维模型的各个顶点的可见度数据;其中,所述各个顶点的可见度数据用于插值得到各个所述采样点的可见度数据的恢复值;所述第一误差函数用于衡量所述采样点的可见度数据的恢复值与原始值之间的差异度,以及所述采样点的可见度数据的恢复值的变化率;
在所述三维模型的顶点数据中,存储所述三维模型的各个顶点的可见度数据。
根据本申请实施例的一个方面,提供了一种三维模型可见度数据的存储装置,所述装置包括:
数据获取模块,用于获取三维模型的多个采样点的可见度数据,所述采样点是像素级的采样点;
数据确定模块,用于以第一误差函数的取值收敛为目标,确定所述三维模型的各个顶点的可见度数据;其中,所述各个顶点的可见度数据用于插值得到各个所述采样点的可见度数据的恢复值;所述第一误差函数用于衡量所述采样点的可见度数据的恢复值与原始值之间的差异度,以及所述采样点的可见度数据的恢复值的变化率;
数据存储模块,用于在所述三维模型的顶点数据中,存储所述三维模型的各个顶点的可见度数据。
根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述三维模型可见度数据的存储方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述三维模型可见度数据的存储方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现上述三维模型可见度数据的存储方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过获取三维模型的各个采样点的可见度数据的原始值,然后通过第一误差函数,使各个顶点的可见度数据插值得到的采样点的可见度数据的恢复值和原始值差异度最小,也就是第一误差函数在收敛的情况下,得到三维模型的各个顶点的可见度数据的最终结果,并将其存储到三维模型的顶点数据中。通过第一误差函数计算得到三维模型的各个顶点的可见度数据,并将其进行存储到顶点数据中,而不用存储大量的采样点的可见度数据,充分减少了可见度数据的存储所要使用的空间,缓解了三维模型中的可见度数据的存储压力,并提升了渲染效率。同时,第一误差函数在设计的时候,一方面用于衡量采样点的可见度数据的恢复值和原始值之间的差异度,使得采样点的可见度数据的恢复值和原始值之间的差异度尽可能小,从而使得渲染后的三维模型表面和原始三维模型表面的差别尽可能的小,保证了三维模型渲染时的准确度;另一方面用于衡量采样点的可见度数据的恢复值的变化率,使得可见度数据的恢复值之间连续,从而增强了三维模型通过可见度数据渲染后的模型表面的视觉效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的方案实施环境的示意图;
图2是本申请一个实施例提供的三维模型可见度数据的存储方法的流程图;
图3是本申请一个实施例提供的渲染后的模型的示意图;
图4是本申请一个实施例提供的插值函数的示意图;
图5是本申请另一个实施例提供的插值函数的示意图;
图6是本申请另一个实施例提供的三维模型可见度数据的存储方法的流程图;
图7是本申请一个实施例提供的采样点可见度数据的示意图;
图8是本申请另一个实施例提供的采样点可见度数据的示意图;
图9是本申请一个实施例提供的中心轴方向的示意图;
图10是本申请一个实施例提供的目标椎体的示意图;
图11是本申请一个实施例提供的投影后目标椎体的示意图;
图12是本申请一个实施例提供的最优方向的坐标系的示意图;
图13是本申请一个实施例提供的不同开口角度的目标椎体的示意图;
图14是本申请一个实施例提供的建筑模型的构建装置的框图;
图15是本申请另一个实施例提供的建筑模型的构建装置的框图;
图16是本申请一个实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的方案实施环境的示意图。该方案实施环境可以包括:终端10和服务器20。
终端10可以是诸如手机、平板电脑、PC(Personal Computer,个人计算机)、可穿戴设备、车载终端设备、VR(Virtual Reality,虚拟现实)设备、AR(Augmented Reality,增强现实)设备、智能电视等电子设备,本申请对此不作限定。终端10中可以安装运行有目标应用程序的客户端。例如,该目标应用程序可以是游戏应用程序或者其他需要使用三维模型可见度数据进行模型渲染的应用程序,如三维地图程序、社交类应用程序、互动娱乐类应用程序等,本申请对此不作限定。游戏应用程序可以包括射击类游戏、战旗类游戏、MOBA(Multiplayer Online Battle Arena,多人在线战术竞技游戏)类游戏等,本申请对此不作限定。
目标应用程序的客户端基于三维模型的可见度数据,对三维模型进行渲染,使三维模型更加真实。可见度数据是通过对三维模型中的各个像素点进行采样后,得到的整个模型的可见度,通过可见度表征该模型在场景中各个部位的明暗度,使三维模型在场景中更加符合光学规律,增强三维模型在场景中的真实感,增强用户的视觉体验。
服务器20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云计算服务的云服务器。服务器20可以是上述目标应用程序的后台服务器,用于为目标应用程序的客户端提供后台服务。
终端10和服务器20之间可以通过网络进行通信,例如该网络可以是有线网络或者无线网络。
在一些实施例中,上述目标应用程序可以提供场景,且该场景是三维场景,场景中存在三维模型。三维模型可以是动态的,例如三维模型可以是三维人物模型、三维宠物模型、三维载具模型等,其可以在场景中进行活动,如移动或执行各种其他操作。三维模型也可以是静态的,例如三维模型可以是三维建筑模型、三维植物模型等。
以游戏应用程序为例,上述场景可以称为虚拟场景,上述三维模型可以是游戏中的虚拟角色,或者虚拟建筑、虚拟宠物等。
虚拟场景是目标应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟场景是指营造出的供虚拟角色进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图等。该虚拟场景可以是对真实世界的仿真场景,也可以是半仿真半虚构的场景,还可以是纯虚构的场景。虚拟场景可以是三维虚拟场景。目标应用程序的客户端在终端上运行时,不同的时间段可以显示(或提供)不同的虚拟场景。
三维模型可以是虚拟场景中的任意模型,例如该三维模型可以是人物模型、动物模型、建筑模型、地貌模型等。通过本申请方法实施例,获取该三维模型的可见度数据并将其进行存储,在对该三维模型进行渲染时,可以从存储的数据中获取该三维模型的可见度数据进行使用。
请参考图2,其示出了本申请一个实施例提供的三维模型可见度数据的存储方法的流程图。该方法各步骤的执行主体可以是计算机设备,例如该计算机设备可以是图1所示方案实施环境中的服务器20。该方法可以包括如下几个步骤(210~230)中的至少一个步骤:
步骤210,获取三维模型的多个采样点的可见度数据,该采样点是像素级的采样点。
采样点是三维模型表面上的点,通过对三维模型表面上的点进行采样,得到多个采样点的可见度数据。其中,采样点是像素级别的采样点,也就是对模型上的所有像素点都可以进行采样,因此,采样点可以是三维模型表面上的任意一点。此时采样点的可见度数据是原始值,是三维模型表面采样点的真实的可见度数据。
可见度数据用于表示采样点的可见度,采样点的可见度用于表示从各个方向是否能观察到该采样点,记录上述各个方向上的数据并进行整合后,得到采样点的可见度数据。
步骤220,以第一误差函数的取值收敛为目标,确定三维模型的各个顶点的可见度数据;其中,各个顶点的可见度数据用于插值得到各个采样点的可见度数据的恢复值;第一误差函数用于衡量采样点的可见度数据的恢复值与原始值之间的差异度,以及采样点的可见度数据的恢复值的变化率。
顶点是三维模型表面网格上的点,三维模型的表面网格由多个面片组成。面片是用于上述三维模型建模的一种数据结构,是三维模型表面网格上的分割后的数据结构,每个面片的形状是任意的,可以是三角形,也可以是其他多边形。其中,三角形的面片被称为三角形面片。多个顶点形成的多边形称为一个面片。
三维模型的顶点的可见度数据,是顶点位置的采样点的可见度数据的原始值决定的。其中,采样点是三维模型中的任意一点,而顶点是三维模型中的经过网格划分后得到的面片的顶点,因此,每个顶点的位置上必然存在对应的采样点,该顶点的可见度数据由该顶点位置对应的采样点的可见度数据的原始值决定。
基于三维模型的顶点的可见度数据,通过插值得到对应的三维模型的顶点组成的面片中的各个采样点的可见度数据的恢复值,通过第一误差函数来衡量采样点的可见度数据的恢复值与原始值之间的差异度,以及采样点的可见度数据的恢复值的变化率。其中,差异度表示采样点的可见度数据的恢复值与原始值之间的大小关系。变化率表示相邻采样点的可见度数据的恢复值的连续性,变化率越低,相邻采样点的可见度数据的恢复值的连续性越高。以第一误差函数的取值收敛为目标,确定三维模型的各个顶点的可见度数据的最终结果。本申请对第一误差函数的取值方式不作限定。对于第一误差函数的具体形式在下文实施例中阐述。
可选地,步骤220包括如下步骤221~222:
步骤221,基于采样点的可见度数据的恢复值与原始值,构建第一误差函数;其中,第一误差函数的取值与采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系,第一误差函数的取值与采样点的可见度数据的恢复值的变化率呈正相关关系。
第一误差函数E(x)表示采样点的可见度数据的恢复值与原始值之间的差异度,其具体公式如下:
Figure BDA0003439175540000061
其中,f(p)是可见度数据的原始值,g(p)是可见度数据的恢复值,p是三维模型表面上的任一采样点,S是三维模型的表面。
可选地,步骤221包括如下步骤221a~221c:
步骤221a,基于采样点的可见度数据的恢复值与原始值之间的差值,构建第一子函数;其中,第一子函数的取值与采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系。
第一子函数表示各个采样点的可见度数据的恢复值与原始值之间的差异度。其中,第一子函数可以是采样点的可见度数据的恢复值与原始值的差值之和,也可以表示为采样点的可见度数据的恢复值与原始值的差值的平方和,本申请对此不作限定。在本实施例中,第一子函数E1(x)是采样点的可见度数据的恢复值与原始值的差值的平方和,其具体公式如下:
E1(x)=∫S(f(p)-g(p))2dp
在一些实施例中,如图3所示,图3中的三维模型渲染所使用的是只经过第一子函数处理后存储的可见度数据,显而易见的,图中三维模型31中区域32和区域33的地方,黑白交接处出现断层,从而显得该区域比较脏,视觉效果不好。在本申请中,可以通过下述步骤解决这个问题。
步骤221b,基于三维模型上的至少一组相邻面片对应的变化率之间的差值,构建第二子函数;其中,三维模型上的目标面片对应的变化率,是指目标面片对应的各个采样点的可见度数据的恢复值的变化率;第二子函数的取值与采样点的可见度数据的恢复值的变化率呈正相关关系。
第二子函数用于表示三维模型上的各组相邻面片对应的变化率之间的差异度,其中,第二子函数可以是各组相邻面片对应的变化率之间的差值之和,也可以是各组相邻面片对应的变化率之间的差值的绝对值的平方和,本申请对此不作限定。在本实施例中,第二子函数E2(x)是各组相邻面片对应的变化率之间的差值的绝对值的平方和,具体公式如下:
Figure BDA0003439175540000071
其中,t,u代表任意一组相邻面片。如果两个面片具有共同的边,那么这两个面片即可作为一组相邻面片。
步骤221c,基于第一子函数和第二子函数,构建第一误差函数。
将上述第一子函数E1(x)和第二子函数E2(x)合并,得到第一误差函数E(x)。
E(x)=E1(x)+E2(x)
步骤222,以最小化第一误差函数的取值为目标,确定三维模型的各个顶点的可见度数据。
当第一误差函数的取值为最小时,各个采样点的可见度数据的恢复值与原始值之间的差异度最小,此时可以得到尽可能与可见度数据的原始值最为相近的恢复值,保证了恢复数据的准确性。同时,当第一误差函数的取值为最小时,各组相邻面片对应的变化率之间的差异度最小,此时可以得到尽可能变化率小的相邻面片,使得相邻面片之间的可见度数据的连续性高,保证了数据整体的高连续性,保证了渲染后的三维模型的视觉效果。
以第一误差函数的取值收敛为目标,可以以第一互查函数的最小值为收敛目标,此时第一误差函数用于衡量采样点的可见度数据的恢复值与原始值之间的差异度越小,所述采样点的可见度数据的恢复值的变化率越小,得到的顶点的可见度数据就精确且连续性高。
其中,当第一误差函数的取值在测量中减少时,则对该第一误差函数的取值继续测量,直到测量得到的第一误差函数的取值开始增加后停止,此时上一次测量得到的第一误差函数的取值,即为该第一误差函数的最小值。
可选地,对第一误差函数的取值设置最小值的阈值,当测量得到的第一误差函数的取值小于该阈值时,停止测量,并将得到的第一误差函数的取值设置为最小值。
同样的,以第一误差函数的取值收敛为目标,还可以以第一误差函数的最大值为收敛目标,此时,第一误差函数用于衡量采样点的可见度数据的恢复值与原始值之间的接近度,接近度越高,采样点的可见度数据的恢复值与原始值之间的差异度就越小。
步骤230,在三维模型的顶点数据中,存储三维模型的各个顶点的可见度数据。
将上述步骤得到的三维模型的各个顶点的可见度数据的最终结果进行存储,存储到三维模型的顶点数据中。三维模型的顶点数据中,包括各个顶点分别对应的顶点数据,每一个顶点对应的顶点数据中,包括该顶点的可见度数据。可选地,还包括该顶点的位置数据、该顶点的颜色数据等,本申请对此不作限定。
本实施例通过获取三维模型的各个采样点的可见度数据的原始值,然后通过第一误差函数,使各个顶点的可见度数据插值得到的采样点的可见度数据的恢复值和原始值差异度最小,也就是第一误差函数在收敛的情况下,得到三维模型的各个顶点的可见度数据的最终结果,并将其存储到三维模型的顶点数据中。通过第一误差函数计算得到三维模型的各个顶点的可见度数据,并将其进行存储到顶点数据中,而不用存储大量的采样点的可见度数据,充分减少了可见度数据的存储所要使用的空间,缓解了三维模型中的可见度数据的存储压力,并提升了渲染效率。同时,第一误差函数在设计的时候,一方面用于衡量采样点的可见度数据的恢复值和原始值之间的差异度,使得采样点的可见度数据的恢复值和原始值之间的差异度尽可能小,从而使得渲染后的三维模型表面和原始三维模型表面的差别尽可能的小,保证了三维模型渲染时的准确度;另一方面用于衡量采样点的可见度数据的恢复值的变化率,使得可见度数据的恢复值之间连续,从而增强三维模型通过可见度数据渲染后的模型表面的视觉效果。
下面,对第一误差函数的构建过程进行介绍说明。
在不考虑各个面片之间的可见度数据连续性的情况下,第一误差函数只由第一子函数构成,此时,通过目标顶点的可见度数据,通过插值函数求得该面片中所有采样点的可见度数据的恢复值。
其中,插值函数是包含离散点以及对应函数值的表或文件定义,插值函数是将两个数据之间的空缺的数据通过计算而进行填充的函数。
在一些实施例中,如图4所示,图4中可知点A的值为1,点Vi,Vj和Vk的值为0,则通过插值函数,可以得到线段AVi,AVj,AVk上各个点的值,其中,线段AVi,AVj,AVk上各个点的值是连续的,且越接近A,它的值就越接近1且不大于1,同样的,越接近Vi,Vj和Vk,它的值就越接近0且不小于0。类似地,插值函数也可以用在其他图形中,如图5所示,图5示出了一个六边形51的插值函数的应用,具体操作方法与图4中相同,这里就不在赘述。
通过插值函数得到的面片中任意一点p的可见度数据的恢复值为:
Figure BDA0003439175540000091
其中,xi是该面片顶点对应采样点的可见度数据,Bi(p)是插值函数的表达式。由上文可知,第一子函数的公式如下表示:
E(x)=∫s(f(p)-g(p))2dp
代入g(p)得:
Figure BDA0003439175540000101
Figure BDA0003439175540000102
Figure BDA0003439175540000103
可以看出,上述式子中第一项是关于x的二次项,第二项是关于x的一次项,第三项是常数,因此,用矩阵形式写出上述第一子函数的公式为:
E(x)=xTAx-2xTb+c
其中:
Ai,j=∫SBi(p)Bj(p)dp
bi=∫SBi(p)f(p)dp
c=∫Sf(p)2dp
其中,Ai,j是矩阵,bi是向量,c是计算得到的常数值。
计算E(x)的最小值和E(x)取最小值时x的取值。
根据E(x)的计算公式,化简得到E(x)取最小值时的计算公式的矩阵形式为:
Ax=b
此时得到的x对应的顶点可见度数据即为三维模型所要存储的顶点可见度数据。
在考虑各个相邻面片之间的连续性的情况下,同时由于上述步骤采用了最小二乘法,而最小二乘法在进行计算时会产生过拟合,需要加入正则项。加入正则项后的计算公式的矩阵形式为:
(A+αR)x=b
正则项的引入是为了中和上述过拟合问题,使插值函数得到的值接近原值的同时,函数的形式要比较“平滑”,也就是目标顶点的插值函数和该点的插值函数的梯度要尽量一致,根据上述条件,计算得到采样点的可见度数据的恢复值与原始值之间的差异度:
Figure BDA0003439175540000111
其中,
Figure BDA0003439175540000112
是三角形面片t的变化率,
Figure BDA0003439175540000113
是三角形面片u的变化率。
根据插值函数的全局梯度差值大小,得到插值函数的全局梯度差值公式:
Figure BDA0003439175540000114
根据插值函数的重心值,得到差值函数的全局梯度的表现形式;
因为Bi(p)是相对于vi的重心值,所以:
Figure BDA0003439175540000115
其中at是三角形t的面积,这个式子里的变量只有hi,所以Bi(p)是hi的函数:
Figure BDA0003439175540000116
其中ui
Figure BDA0003439175540000117
的方向,所以:
Figure BDA0003439175540000118
为了将积分表示成矩阵形式,这里把
Figure BDA0003439175540000119
也写成矩阵形式,从上式可知
Figure BDA00034391755400001110
是xi,xj,xk的线性函数,所以可以写成:
Figure BDA00034391755400001111
根据插值函数的全局梯度的表现形式,计算得到正则项:
Figure BDA00034391755400001112
所以正则项矩阵就是:
R=(Ft-Fu)T(Ft-Fu)
将上式带入带有正则项E(x)取最小值时的计算公式的矩阵形式,计算得到的x对应的顶点可见度数据即为三维模型所要存储的顶点可见度数据。
请参考图6,其示出了本申请另一个实施例提供的三维模型可见度数据的存储方法的流程图。该方法各步骤的执行主体可以是计算机设备,例如该计算机设备可以是图1所示方案实施环境中的服务器20。该方法可以包括如下几个步骤(610~680)中的至少一个步骤:
步骤610,对于三维模型的目标采样点,获取目标采样点的初始可见度数据。
目标采样点的初始可见度数据包括:以目标采样点为顶点指向多个方向的相交数据。其中,目标方向上的相交数据用于指示从目标采样点发射的沿该目标方向的射线,是否与环境物体相交以及相交距离。在从目标采样点发射的沿目标方向的射线与环境物体相交的情况下,进一步获取相交距离,相交距离是指顶点(也即目标采样点)和相交点(也即上述沿目标方向的射线与环境物体的相交点)之间的距离。
在一些实施例中,如图7所示,图7中选取的目标采样点是人物模型71腋下一点,但在实际操作中,选取的目标采样点只位于人物模型71的表面,此处只为清楚地介绍目标采样点的可见度数据的具体表现形式。图7中人物模型71腋下一点72向外各个方向发散出大量射线,由图中细线和粗线表示。其中,细线表示该方向的射线没有与任何物体相交,粗线表示该方向的射线与其他物体相交。粗线的长度为相交距离。可见度数据由细线和粗线对应的数据组成。其中,细线数据中包括方向和判定没有相交的数据,粗线数据中包括方向和判定相交的数据和相交距离。
显而易见的,采样点发散出的射线数量越多,所得到的采样点的可见度数据也就越精确,同时,存储该采样点的可见度数据所需要的空间也就越大。
步骤620,确定用于拟合目标采样点的初始可见度数据的目标椎体。
在一些实施中,如图8所示,图8中对人物模型81上的采样点82进行可见度数据的采样,其中,右图中球体83是采样后得到,也就是左图中的球体84,显而易见的是,球体83的区域85是黑色的,表示为不可见,也就是球体84与人物模型81所重叠的部分,因此,只需考虑没有重叠的区域86的可见度信息,显然,可以将区域86和球体84的球心组成的一个椎体,通过椎体来对采样点82的可见度数据进行表示。
目标椎体仅需三个数据即可表示,分别为目标椎体的中心轴方向、开口角度和缩放值。其中,中心轴方向用于表示目标椎体的开口方向,也就是采样点的可见度数据的未被场景物体覆盖的区域的方向,开口角度用于表示目标椎体的大小,也就是采样点的可见度数据中未被场景物体覆盖的区域的大小,缩放值用于表示目标椎体的明暗度,也就是采样点的可见度数据中未被场景物体覆盖的区域中可见区域的占比。
可选地,目标椎体的中心轴方向采用2个浮点数表示,目标椎体的开口角度采用1个浮点数表示,目标椎体的缩放值采用1个浮点数表示。
浮点数(float),是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体地说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。浮点数是采用科学计数法来表示一个数字的,它的格式可以写成这样:V=(-1)^S*M*R^E。其中,各个变量的含义如下:
S:符号位,取值0或1,决定一个数字的符号,0表示正,1表示负;
M:尾数,用小数表示,例如8.345*10^0,8.345就是尾数;
R:基数,表示十进制数R就是10,表示二进制数R就是2;
E:指数,用整数表示,例如10^-1,-1即是指数。
在本申请实施例中,通过4个浮点数来表示空间中的一个椎体。
在一些实施例中,如图9所示,图9中射线91为目标椎体的中心轴方向,通过两个角度(如图中角度θ和角度φ)来得到目标椎体的中心轴方向,其中,两个角度对应上述两个浮点数。
如图10所示,点101是球体的球心,由球心101选取相应的开口角度截取到的图形102为目标椎体,目标椎体102是以球心101为顶点,底面为部分球面的椎体。将上述得到的目标采样点的可见度数据拟合到目标椎体中。可选地,根据目标采样点的可见度数据,将其中可见的部分设置为1,如图中白色区域103,将其中不可见部分设置为0,如图中划线部分,其中,相交距离不在图中显示。可选地,相交距离可以通过颜色的明暗设置,例如,目标椎体的明暗度与相交距离呈相关,相交距离越近,目标椎体对应位置的明暗度就越暗,相交距离越远,目标椎体对应位置的明暗度就越亮。
在一些实施例中,如图11所示,采用线条的间隔来表示目标椎体的明暗度,线条的间隔越小,目标椎体的明暗度越暗。其中,区域111中是完全可见的,区域112和114中不可见且相交距离较大,区域113和115中不可见且相交距离较小,其中,各个区域表示该区域中可见度信息的平均值。可选地,可以根据目标椎体中的各个采样点的每个采样点设置不同的明暗度。本申请对目标椎体的明暗度设置方式不作限定。
可选地,步骤620包括如下步骤621~624:
步骤621,将目标采样点的初始可见度数据投影到球谐函数空间,得到目标采样点的投影可见度数据。
将目标采样点的初始可见度数据投影到球谐函数空间中,得到目标采样点在球谐函数空间中的投影可见度数据。该投影可见度数据可以通过16个浮点数来表示。
步骤622,基于目标采样点的投影可见度数据,确定目标采样点对应的最优可见方向,最优可见方向是指在球谐函数空间中确定出的目标采样点对应的可见区域的中心轴方向。
根据目标采样点投影到球谐函数空间中的投影可见度数据,确定出目标采样点的最优可见方向。
在一些实施例中,如图12所示,图12中展示了目标采样点投影到球谐函数空间中的投影可见度数据,其中,球体120是上述投影得到的投影可见度数据,带箭头的坐标轴121,122,123分别表示球谐函数空间中的初始坐标轴,而射线124为球谐函数空间中目标采样点对应的可见区域的中心轴方向,也就是目标采样点对应的最优可见方向。射线125和126为根据目标采样点对应的最优可见方向通过右手定则确定出来的坐标系的另两个坐标轴。其中,射线124,125,126组成全新的坐标系。
步骤623,将最优可见方向,确定为目标椎体的中心轴方向。
将目标椎体投影到上述得到的全新的坐标系中,其中,目标椎体的中心轴方向为上述目标采样点的最优可见方向。
步骤624,以第二误差函数的取值收敛为目标,确定目标椎体的开口角度和缩放值;其中,第二误差函数用于衡量目标椎体在球谐函数空间中的投影表征与目标采样点的投影可见度数据之间的差异度。
将上述得到的目标椎体投影后得到的投影表征与投影可见度数据进行比较,得到目标椎体的开口角度。
在一些实施例中,如图13所示,图13展示了4个不同开口角度时的投影后的目标椎体,其中131,132,133,134分别为开口角度为15度,30度,45度和60的投影后的目标椎体,其中,各个图中最上边的区域为目标椎体的可见度数据,正常情况下,其他区域应为全不可见的黑色区域,但由于投影时容易出现数值震荡,使目标椎体的黑色区域中出现部分白色区域,但出现的白色区域并不影响最终结果,所以不去考虑这种情况。将上述4种投影后的目标椎体与采样点的初始可见度数据拟合到球谐函数空间中的投影可见度数据进行比较,将得到的最为接近的可见度数据中的开口角度确定为目标椎体的最终开口角度。
通过将复杂的16个浮点数的可见度数据,通过降频后得到4个浮点数的可见度数据,4个浮点数的椎体的可见度数据能很好地表示本申请中的可见度数据,在减少了大量可见度数据的数据量的同时,也保证了可见度数据的准确性。
步骤630,基于目标椎体确定目标采样点的可见度数据,目标采样点的可见度数据包括目标椎体的中心轴方向、开口角度和缩放值,缩放值用于表征可见区域的明暗度。
其中,可见区域的明暗度用于表示可见区域的遮挡情况。
目标采样点的可见度数据由4个浮点数组成,分别为中心轴方向、开口角度和缩放值。其中,中心轴方向采用2个浮点数表示,开口角度和缩放值分别采用1个浮点数表示。
步骤640,以第一误差函数的取值收敛为目标,确定三维模型的各个顶点的可见度数据;其中,各个顶点的可见度数据用于插值得到各个采样点的可见度数据的恢复值;第一误差函数用于衡量采样点的可见度数据的恢复值与原始值之间的差异度,以及采样点的可见度数据的恢复值的变化率。
步骤650,在三维模型的顶点数据中,存储三维模型的各个顶点的可见度数据。
步骤640和650已在上文实施例中介绍过,此处不再赘述。
步骤660,对于三维模型上的目标面片,从三维模型的顶点数据中,获取目标面片的各个顶点的可见度数据。
目标面片是由三维模型中的各个顶点组成的多边形,各个目标面片紧密贴合并均匀覆盖在三维模型的表面组成表面网格。
步骤670,根据目标面片的各个顶点的可见度数据,确定目标面片的重心点的可见度数据。
根据目标面片的各个顶点的可见度数据和重心点的计算公式,确定目标面片的重心点的位置和重心点的可见度数据。例如,根据目标面片中的各个顶点和重心点之间的距离,确定各个顶点分别对应的权重,根据各个顶点分别对应的权重对各个顶点的可见度数据进行加权计算,得到重心点的可见度数据。
步骤680,根据目标面片的各个顶点的可见度数据以及目标面片的重心点的可见度数据,插值得到目标面片对应的各个采样点的可见度数据的恢复值。
通过插值函数,根据目标面片的各个顶点和重心点的可见度数据,得到目标面片的各个采样点的可见度数据的恢复值。
通过对目标面片通过顶点和重心进行插值后得到目标面片的可见度数据,保证了渲染后的三维模型的准确性。
本实施例通过将采样点的可见度数据先拟合到球谐函数空间中,然后通过数据的降频得到4个浮点数的目标椎体中,通过数据降频减少了可见度数据的数据量的同时又不会损失太多的精度,在大量减少采样点的可见度数据的同时,还保证了数据的精度。
同时数据的使用时,使用目标面片中的目标顶点和重心点插值后,得到的面片中各个采样点的可见度数据,保证了数据的准确性。
下面,对目标椎体的开口角度和缩放值的计算过程进行介绍说明。
其中,4个浮点数的目标椎体投影到球谐函数空间后的可见度数据的表达式为:
Figure BDA0003439175540000161
其中,S,α,ω分别是目标椎体的缩放值,开口角度和中心轴方向向量,ci(α)是球谐函数中16个浮点数各自对应的值,Yi(ω)是球谐函数的基函数。
其中,4个浮点数的目标椎体的可见度数据的表达式为:
Vcone(x)=S(0<=x<=α)
其中,S是目标椎体的缩放值,目标椎体的明暗度由缩放值决定,目标椎体的所有明暗度设置为同一个明暗度,也就是同一个缩放值。
其中,各项SH值可以通过积分工具进行计算得到,各项SH值的结果如下:
Figure BDA0003439175540000162
Figure BDA0003439175540000163
Figure BDA0003439175540000171
Figure BDA0003439175540000172
c1,3,4,5,7,8,9,10,11,13,14,15(α)=0
将上述16个浮点值带入16个浮点数的球谐函数的可见度数据中,可以得到目标椎体投影后的可见度数据。
接下来通过最小化Vcone(S,α,ω)和VSH(ω)之间的差值来得到该目标顶点的圆锥的缩放值。
Figure BDA0003439175540000173
对α和S分别求导:
Figure BDA0003439175540000174
Figure BDA0003439175540000175
由SH的正交规范性可得:
ΩYi(ω)2dω=1
ΩYi(ω)Yj(ω)dω=0
可以推出:
Figure BDA0003439175540000176
Figure BDA0003439175540000177
把它们都设为0可以求得极值点条件等式为:
Figure BDA0003439175540000178
Figure BDA0003439175540000181
通过二分法计算得到圆锥的缩放值,此时,得到了该目标顶点的圆锥所表示的可见度数据,上述可见度数据由圆锥的开口角度、中心轴方向和缩放值表示。
下面,以游戏场景中三维模型的搭建与渲染过程为例,对本申请技术方案在该场景中的应用进行介绍说明,该方法可以包括如下几个步骤(1~6):
1.获取三维模型的模型结构数据和模型材质数据。
模型结构数据包括模型大小、表面轮廓、骨骼轮廓等数据。模型材质数据包括模型材质、表面颜色等数据。
2.根据三维模型的模型结构数据,构建三维模型的模型结构。
根据三维模型的模型大小、表面轮廓、骨骼轮廓等数据,构建三维模型的模型结构。
3.根据三维模型的模型材质数据,一次渲染得到三维模型的材质和表面颜色。
根据三维模型的模型材质数据,对构建完成的三维模型的模型结构进行渲染,得到三维模型的材质和表面颜色。其中,三维模型的材质包括的三维模型的密度、表面粗糙程度、表面光泽等。
4.根据三维模型的设定运动方式,设置三维模型的骨骼的运动数据。
设定运动方式是在设计三维模型时预先设计好的三维模型的运动方式,具体根据三维模型的设定运动方式,设置三维模型的骨骼的运动数据,三维模型的骨骼根据上述运动数据进行运动,从而带动三维模型运动,且能够做出设计好的相应的动作,得到三维模型的运动方式。其中,三维模型的运动方式与三维模型的设定运动方式相同。
5.根据三维模型所在的游戏场景中的灯光,获取三维模型的可见度数据。
将一次渲染完成并设置好骨骼运动数据的三维模型放置在游戏场景中,并加以灯光,通过上述实施例中的方法获取三维模型的可见度数据并将其存储。其中,三维模型根据该骨骼的运动数据驱动骨骼运动,使得三维模型在游戏场景中运动,同时,获取到的三维模型的可见度数据会随着三维模型的运动而发生改变,将获取到所有的运动状态时的可见度数据进行存储。
6.根据三维模型的可见度数据,二次渲染得到渲染完成的三维模型。
根据存储的三维模型的可见度数据,二次渲染得到渲染完成的三维模型,其中,二次渲染得到的三维模型表面表现出明暗度,三维模型表面表现出的明暗度会随着三维模型的运动而发生改变。
本实施例中,通过将一次渲染完成并设置好骨骼运动数据的三维模型放置在游戏场景中,并通过游戏场景中的灯光对三维模型的可见度数据进行二次渲染,得到具有明暗度的三维模型。在不添加二次渲染时,在将三维模型放置在游戏场景中时,由于没有考虑灯光因素,三维模型的表面不会显示出灯光带来的明暗度差异,使得三维模型不能很好的融入到游戏场景中,显得格格不入。但在考虑灯光因素并对三维模型进行二次渲染后,表现出三维模型的明暗度数据,使三维模型能够很好地融入游戏环境,且三维模型运动时,三维模型表面的明暗度也会随着运动而发生改变,使得三维模型在游戏环境中更加真实。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图14,其示出了本申请一个实施例提供的三维模型可见度数据的存储装置的框图。该装置具有实现上述方法示例的功能,该功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1400可以包括:数据获取模块1410、数据确定模块1420和数据存储模块1430。
数据获取模块1410,用于获取三维模型的多个采样点的可见度数据,采样点是像素级的采样点。
数据确定模块1420,用于以第一误差函数的取值收敛为目标,确定三维模型的各个顶点的可见度数据;其中,各个顶点的可见度数据用于插值得到各个采样点的可见度数据的恢复值;第一误差函数用于衡量采样点的可见度数据的恢复值与原始值之间的差异度,以及采样点的可见度数据的恢复值的变化率。
数据存储模块1430,用于在三维模型的顶点数据中,存储三维模型的各个顶点的可见度数据。
在一些实施例中,如图15所示,数据确定模块1420包括:函数构建单元1421和数据确定单元1422。
函数构建单元1421,用于基于采样点的可见度数据的恢复值与原始值,构建第一误差函数;其中,第一误差函数的取值与采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系,第一误差函数的取值与采样点的可见度数据的恢复值的变化率呈正相关关系。
数据确定单元1422,用于以最小化第一误差函数的取值为目标,确定三维模型的各个顶点的可见度数据。
在一些实施例中,函数构建模块1421用于基于采样点的可见度数据的恢复值与原始值之间的差值,构建第一子函数;其中,第一子函数的取值与采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系;基于三维模型上的至少一组相邻面片对应的变化率之间的差值,构建第二子函数;其中,三维模型上的目标面片对应的变化率,是指目标面片对应的各个采样点的可见度数据的恢复值的变化率;第二子函数的取值与采样点的可见度数据的恢复值的变化率呈正相关关系基于第一子函数和第二子函数,构建第一误差函数。
在一些实施例中,如图15所示,数据获取模块1410包括:数据获取单元1411、椎体拟合单元1412和数据确定单元1413。
数据获取单元1411,用于对于三维模型的目标采样点,获取目标采样点的初始可见度数据;其中,目标采样点的初始可见度数据包括:以目标采样点为顶点指向多个方向的相交数据。
椎体拟合单元1412,用于确定用于拟合目标采样点的初始可见度数据的目标椎体。
数据确定单元1413,用于基于目标椎体确定目标采样点的可见度数据,目标采样点的可见度数据包括目标椎体的中心轴方向、开口角度和缩放值,缩放值用于表征可见区域的明暗度。
在一些实施例中,椎体拟合单元1412用于将目标采样点的初始可见度数据投影到球谐函数空间,得到目标采样点的投影可见度数据;基于目标采样点的投影可见度数据,确定目标采样点对应的最优可见方向,最优可见方向是指在球谐函数空间中确定出的目标采样点对应的可见区域的中心轴方向;将最优可见方向,确定为目标椎体的中心轴方向;以第二误差函数的取值收敛为目标,确定目标椎体的开口角度和缩放值;其中,第二误差函数用于衡量目标椎体在球谐函数空间中的投影表征与目标采样点的投影可见度数据之间的差异度。
在一些实施例中,目标采样点的可见度数据采用4个浮点数表示;其中,目标椎体的中心轴方向采用2个浮点数表示,目标椎体的开口角度采用1个浮点数表示,目标椎体的缩放值采用1个浮点数表示。
在一些实施例中,装置1400还包括数据使用模块1440。
数据使用模块1440,用于对于三维模型上的目标面片,从三维模型的顶点数据中,获取目标面片的各个顶点的可见度数据;根据目标面片的各个顶点的可见度数据,确定目标面片的重心点的可见度数据;根据目标面片的各个顶点的可见度数据以及目标面片的重心点的可见度数据,插值得到目标面片对应的各个采样点的可见度数据的恢复值。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图16,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可以是任何具备数据计算、处理和存储功能的电子设备,如上文介绍的终端或服务器,用于实施上述实施例中提供的三维模型可见度数据的存储方法。具体来讲:
该计算机设备1600包括中央处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)1601、包括RAM(Random-Access Memory,随机存储存储器)1602和ROM(Read-Only Memory,只读存储器)1603的系统存储器1604,以及连接系统存储器1604和中央处理单元1601的系统总线1605。该计算机设备1600还包括帮助服务器内的各个器件之间传输信息的基本输入/输出系统(Input Output System,I/O系统)1606,和用于存储操作系统1613、应用程序1614和其他程序模块1615的大容量存储设备1607。
该基本输入/输出系统1606包括有用于显示信息的显示器1608和用于用户输入信息的诸如鼠标、键盘之类的输入设备1609。其中,该显示器1608和输入设备1609都通过连接到系统总线1605的输入输出控制器1610连接到中央处理单元1601。该基本输入/输出系统1606还可以包括输入输出控制器1610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1610还提供输出到显示屏、打印机或其他类型的输出设备。
该大容量存储设备1607通过连接到系统总线1605的大容量存储控制器(未示出)连接到中央处理单元1601。该大容量存储设备1607及其相关联的计算机可读介质为计算机设备1600提供非易失性存储。也就是说,该大容量存储设备1607可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器1604和大容量存储设备1607可以统称为存储器。
根据本申请实施例,该计算机设备1600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1600可以通过连接在该系统总线1605上的网络接口单元1611连接到网络1612,或者说,也可以使用网络接口单元1616来连接到其他类型的网络或远程计算机系统(未示出)。
存储器还包括至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述三维模型可见度数据的存储方法。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集在被计算机设备的处理器执行时实现上述三维模型可见度数据的存储方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取计算机指令,处理器执行计算机指令,使得计算机设备执行上述三维模型可见度数据的存储方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种三维模型可见度数据的存储方法,其特征在于,所述方法包括:
获取三维模型的多个采样点的可见度数据,所述采样点是像素级的采样点;
以第一误差函数的取值收敛为目标,确定所述三维模型的各个顶点的可见度数据;其中,所述各个顶点的可见度数据用于插值得到各个所述采样点的可见度数据的恢复值;所述第一误差函数用于衡量所述采样点的可见度数据的恢复值与原始值之间的差异度,以及所述采样点的可见度数据的恢复值的变化率;
在所述三维模型的顶点数据中,存储所述三维模型的各个顶点的可见度数据。
2.根据权利要求1所述的方法,其特征在于,所述以第一误差函数的取值收敛为目标,确定所述三维模型的各个顶点的可见度数据,包括:
基于所述采样点的可见度数据的恢复值与原始值,构建所述第一误差函数;其中,所述第一误差函数的取值与所述采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系,所述第一误差函数的取值与所述采样点的可见度数据的恢复值的变化率呈正相关关系;
以最小化所述第一误差函数的取值为目标,确定所述三维模型的各个顶点的可见度数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述采样点的可见度数据的恢复值与原始值,构建所述第一误差函数,包括:
基于所述采样点的可见度数据的恢复值与原始值之间的差值,构建第一子函数;其中,所述第一子函数的取值与所述采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系;
基于所述三维模型上的至少一组相邻面片对应的变化率之间的差值,构建第二子函数;其中,所述三维模型上的目标面片对应的变化率,是指所述目标面片对应的各个采样点的可见度数据的恢复值的变化率;所述第二子函数的取值与所述采样点的可见度数据的恢复值的变化率呈正相关关系;
基于所述第一子函数和所述第二子函数,构建所述第一误差函数。
4.根据权利要求1所述的方法,其特征在于,所述获取三维模型的多个采样点的可见度数据,包括:
对于所述三维模型的目标采样点,获取所述目标采样点的初始可见度数据;其中,所述目标采样点的初始可见度数据包括:以所述目标采样点为顶点指向多个方向的相交数据;
确定用于拟合所述目标采样点的初始可见度数据的目标椎体;
基于所述目标椎体确定所述目标采样点的可见度数据,所述目标采样点的可见度数据包括所述目标椎体的中心轴方向、开口角度和缩放值,所述缩放值用于表征可见区域的明暗度。
5.根据权利要求4所述的方法,其特征在于,所述确定用于拟合所述目标采样点的初始可见度数据的目标椎体,包括:
将所述目标采样点的初始可见度数据投影到球谐函数空间,得到所述目标采样点的投影可见度数据;
基于所述目标采样点的投影可见度数据,确定所述目标采样点对应的最优可见方向,所述最优可见方向是指在所述球谐函数空间中确定出的所述目标采样点对应的可见区域的中心轴方向;
将所述最优可见方向,确定为所述目标椎体的中心轴方向;
以第二误差函数的取值收敛为目标,确定所述目标椎体的开口角度和缩放值;其中,所述第二误差函数用于衡量所述目标椎体在所述球谐函数空间中的投影表征与所述目标采样点的投影可见度数据之间的差异度。
6.根据权利要求4所述的方法,其特征在于,所述目标采样点的可见度数据采用4个浮点数表示;其中,所述目标椎体的中心轴方向采用2个浮点数表示,所述目标椎体的开口角度采用1个浮点数表示,所述目标椎体的缩放值采用1个浮点数表示。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述在所述三维模型的顶点数据中,存储所述三维模型的各个顶点的可见度数据之后,还包括:
对于所述三维模型上的目标面片,从所述三维模型的顶点数据中,获取所述目标面片的各个顶点的可见度数据;
根据所述目标面片的各个顶点的可见度数据,确定所述目标面片的重心点的可见度数据;
根据所述目标面片的各个顶点的可见度数据以及所述目标面片的重心点的可见度数据,插值得到所述目标面片对应的各个采样点的可见度数据的恢复值。
8.一种三维模型可见度数据的存储装置,其特征在于,所述装置包括:
数据获取模块,用于获取三维模型的多个采样点的可见度数据,所述采样点是像素级的采样点;
数据确定模块,用于以第一误差函数的取值收敛为目标,确定所述三维模型的各个顶点的可见度数据;其中,所述各个顶点的可见度数据用于插值得到各个所述采样点的可见度数据的恢复值;所述第一误差函数用于衡量所述采样点的可见度数据的恢复值与原始值之间的差异度,以及所述采样点的可见度数据的恢复值的变化率;
数据存储模块,用于在所述三维模型的顶点数据中,存储所述三维模型的各个顶点的可见度数据。
9.根据权利要求8所述的装置,其特征在于,所述数据确定模块,包括:
函数构建单元,用于基于所述采样点的可见度数据的恢复值与原始值,构建所述第一误差函数;其中,所述第一误差函数的取值与所述采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系,所述第一误差函数的取值与所述采样点的可见度数据的恢复值的变化率呈正相关关系;
数据确定单元,用于以最小化所述第一误差函数的取值为目标,确定所述三维模型的各个顶点的可见度数据。
10.根据权利要求9所述的装置,其特征在于,所述函数构建单元,用于:
基于所述采样点的可见度数据的恢复值与原始值之间的差值,构建第一子函数;其中,所述第一子函数的取值与所述采样点的可见度数据的恢复值与原始值之间的差异度呈正相关关系;
基于所述三维模型上的至少一组相邻面片对应的变化率之间的差值,构建第二子函数;其中,所述三维模型上的目标面片对应的变化率,是指所述目标面片对应的各个采样点的可见度数据的恢复值的变化率;所述第二子函数的取值与所述采样点的可见度数据的恢复值的变化率呈正相关关系;
基于所述第一子函数和所述第二子函数,构建所述第一误差函数。
11.根据权利要求8所述的装置,其特征在于,所述数据获取模块,包括:
数据获取单元,用于对于所述三维模型的目标采样点,获取所述目标采样点的初始可见度数据;其中,所述目标采样点的初始可见度数据包括:以所述目标采样点为顶点指向多个方向的相交数据;
椎体拟合单元,用于确定用于拟合所述目标采样点的初始可见度数据的目标椎体;
数据确定单元,用于基于所述目标椎体确定所述目标采样点的可见度数据,所述目标采样点的可见度数据包括所述目标椎体的中心轴方向、开口角度和缩放值,所述缩放值用于表征可见区域的明暗度。
12.根据权利要求11所述的装置,其特征在于,所述椎体拟合单元,用于:
将所述目标采样点的初始可见度数据投影到球谐函数空间,得到所述目标采样点的投影可见度数据;
基于所述目标采样点的投影可见度数据,确定所述目标采样点对应的最优可见方向,所述最优可见方向是指在所述球谐函数空间中确定出的所述目标采样点对应的可见区域的中心轴方向;
将所述最优可见方向,确定为所述目标椎体的中心轴方向;
以第二误差函数的取值收敛为目标,确定所述目标椎体的开口角度和缩放值;其中,所述第二误差函数用于衡量所述目标椎体在所述球谐函数空间中的投影表征与所述目标采样点的投影可见度数据之间的差异度。
13.根据权利要求11所述的装置,其特征在于,所述目标采样点的可见度数据采用4个浮点数表示;其中,所述目标椎体的中心轴方向采用2个浮点数表示,所述目标椎体的开口角度采用1个浮点数表示,所述目标椎体的缩放值采用1个浮点数表示。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述装置还包括数据使用模块,用于:
对于所述三维模型上的目标面片,从所述三维模型的顶点数据中,获取所述目标面片的各个顶点的可见度数据;
根据所述目标面片的各个顶点的可见度数据,确定所述目标面片的重心点的可见度数据;
根据所述目标面片的各个顶点的可见度数据以及所述目标面片的重心点的可见度数据,插值得到所述目标面片对应的各个采样点的可见度数据的恢复值。
15.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一项所述的方法。
17.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现如权利要求1至7任一项所述的方法。
CN202111624049.0A 2021-11-19 2021-12-28 三维模型可见度数据的存储方法、装置、设备及存储介质 Pending CN114399421A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2022/127985 WO2023088059A1 (zh) 2021-11-19 2022-10-27 三维模型可见度数据的存储方法、装置、设备及存储介质
US18/207,577 US20230326129A1 (en) 2021-11-19 2023-06-08 Method and apparatus for storing visibility data of three-dimensional model, device, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021113743360 2021-11-19
CN202111374336 2021-11-19

Publications (1)

Publication Number Publication Date
CN114399421A true CN114399421A (zh) 2022-04-26

Family

ID=81229452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111624049.0A Pending CN114399421A (zh) 2021-11-19 2021-12-28 三维模型可见度数据的存储方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US20230326129A1 (zh)
CN (1) CN114399421A (zh)
WO (1) WO2023088059A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023088059A1 (zh) * 2021-11-19 2023-05-25 腾讯科技(深圳)有限公司 三维模型可见度数据的存储方法、装置、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9536344B1 (en) * 2007-11-30 2017-01-03 Roblox Corporation Automatic decoration of a three-dimensional model
CN102270339B (zh) * 2011-07-21 2012-11-14 清华大学 一种空间各异模糊核三维运动去模糊的方法及系统
CN108038902B (zh) * 2017-12-07 2021-08-27 合肥工业大学 一种面向深度相机的高精度三维重建方法和系统
CN112446919B (zh) * 2020-12-01 2024-05-28 平安科技(深圳)有限公司 物体位姿估计方法、装置、电子设备及计算机存储介质
CN114399421A (zh) * 2021-11-19 2022-04-26 腾讯科技(成都)有限公司 三维模型可见度数据的存储方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023088059A1 (zh) * 2021-11-19 2023-05-25 腾讯科技(深圳)有限公司 三维模型可见度数据的存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2023088059A1 (zh) 2023-05-25
US20230326129A1 (en) 2023-10-12

Similar Documents

Publication Publication Date Title
CN109523621B (zh) 对象的加载方法和装置、存储介质、电子装置
US7250948B2 (en) System and method visible surface determination in computer graphics using interval analysis
EP2898480B1 (en) A computer graphics method for rendering three dimensional scenes
EP2831848B1 (en) Method for estimating the opacity level in a scene and corresponding device
CN105283900A (zh) 用于压缩顶点着色器输出参数的方案
Livny et al. A GPU persistent grid mapping for terrain rendering
CN103247072A (zh) 基于安卓系统实现三维旋转界面的方法及装置
CN112052864B (zh) 一种图像绘制方法、装置、电子设备及可读存储介质
CN112184864B (zh) 一种百万量级三维态势目标的实时绘制方法
US20230326129A1 (en) Method and apparatus for storing visibility data of three-dimensional model, device, and storage medium
JP5916764B2 (ja) 仮想環境における隠蔽の推定方法
CN109697748A (zh) 模型压缩处理方法、模型贴图处理方法装置、存储介质
CN114375464A (zh) 使用边界体积表示对虚拟空间中的动态单元进行光线追踪
CN115512025A (zh) 模型渲染性能的检测方法、装置、电子设备及存储介质
JP2023525945A (ja) モバイル機器における大規模建築物の拡張現実具現のためのデータ最適化及びインターフェース向上方法
CN108230430B (zh) 云层遮罩图的处理方法及装置
CN110706149A (zh) 一种闪电粒子的渲染方法及装置
CN115906703A (zh) 一种用于实时交互应用的gpu流体仿真方法
CN116958390A (zh) 一种图像渲染方法、装置、设备、存储介质及程序产品
CN116958457A (zh) 一种基于OSGEarth的战争迷雾效果绘制方法
CN112802165A (zh) 游戏场景积雪渲染方法、装置及介质
EP4386685A1 (en) Method for 3d visualization of sensor data
US20220203231A1 (en) Methods and Systems for Determining Decal Projections Intersecting Spacial Units in a Frame of a Game Space
WO2024037116A9 (zh) 三维模型的渲染方法、装置、电子设备及存储介质
CN117011436A (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