CN116129024A - 模型的曲率处理方法、装置、计算机设备及存储介质 - Google Patents
模型的曲率处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116129024A CN116129024A CN202211635542.7A CN202211635542A CN116129024A CN 116129024 A CN116129024 A CN 116129024A CN 202211635542 A CN202211635542 A CN 202211635542A CN 116129024 A CN116129024 A CN 116129024A
- Authority
- CN
- China
- Prior art keywords
- polygon
- vertex
- curvature
- mesh
- space
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- 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
-
- 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/80—Special adaptations for executing a specific game genre or game mode
- A63F13/847—Cooperative playing, e.g. requiring coordinated actions from several players to achieve a common goal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种模型的曲率处理方法、装置、计算机设备及存储介质,获取待渲染模型一多边形网格各多边形顶点的像素深度值和屏幕坐标值,确定世界坐标值和第一顶点法线信息;根据每一多边形网格的世界坐标值和顶点法线信息得到切线坐标值和第二顶点法线信息,并结合世界坐标值、第一顶点法线信息计算坐标变换向量和法线变换向量;基于形状算子矩阵与坐标变换向量、法线变换向量的预设映射关系,以及各多边形顶点的坐标变换向量和法线变换向量计算计算后的形状算子矩阵;基于计算后的形状算子矩阵的第一特征值和第二特征值计算多边形顶点的曲率,以确定像素点的曲率;本申请实施例能够快速计算像素点的曲率信息,大幅度提升曲率的计算效率。
Description
技术领域
本申请涉及游戏技术领域,具体涉及一种模型的曲率处理方法、装置、计算机设备及存储介质。
背景技术
随着计算机通信技术的不断发展,智能手机、平板电脑及笔记本电脑等终端的大量普及应用,终端向着多样化、个性化的方向发展,日益成为人们在生活与工作中不可或缺的终端,为了满足人们对精神生活的追求,能够在终端上操作的娱乐游戏应运而生,例如,基于客户端或服务器架构开发的多人在线战术竞技游戏(Multiplayer Online BattleArena,MOBA)和大型多人在线游戏(Massive Multiplayer Online,MMO)等类型的游戏,由于具有高流畅度、操作手感好、即时战斗等特点,深受用户喜爱。
在游戏中,计算机设备的图形用户界面上会显示的游戏画面,游戏画面中通常会显示有三维网格模型渲染出的模型画面,在针对三维网格模型进行渲染时,会不可避免地导致三维网格模型的网格发生失真,同时影响着人们的主观视觉感受。三维网格模型的渲染质量评估对于评价和优化三维模型的获取及处理算法、减少三维模型的失真起着十分重要的作用。曲率是计算机图形学中一项重要的几何特征,它提供了表面弯曲行为的信息,针对虚拟模型的一些磨损、做旧材质也会经常利用表面的曲率信息,现有技术中,可以通过曲率衡量三维模型的渲染指令。目前,大部分算法都是针对静态几何体开发的,曲率的计算速度慢,导致曲率计算的效率比较低。
发明内容
本申请实施例提供一种模型的曲率处理方法、装置、计算机设备及存储介质,通过待渲染模型中每个像素的深度重建每个像素的世界位置和法线,可以创建多个虚拟三角形网格,通过虚拟三角形网格各屏幕像素的世界位置信息以及法线信息计算每一像素点的曲率,能够快速计算出像素点对应的曲率信息,大幅度提升曲率的计算效率。
本申请实施例提供了一种模型的曲率处理方法,该方法包括:
根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
本申请实施例还提供了一种模型的曲率处理装置,该模型的曲率处理装置包括:
第一确定单元,用于根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
转换单元,用于根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
第二确定单元,用于基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
第三确定单元,用于基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
本申请实施例还提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述模型的曲率处理方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述模型的曲率处理方法。
本申请实施例提供一种模型的曲率处理方法、装置、计算机设备及存储介质,通过根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;然后,根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;接着,基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;最后,基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。本申请实施例通过待渲染模型中每个像素的深度重建每个像素的世界位置和法线,可以创建多个虚拟三角形网格,通过虚拟三角形网格各屏幕像素的世界位置信息以及法线信息计算每一像素点的曲率,能够快速计算出像素点对应的曲率信息,大幅度提升曲率的计算效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的模型的曲率处理系统的场景示意图。
图2为本申请实施例提供的模型的曲率处理方法的一种流程示意图。
图3为本申请实施例提供的模型的曲率处理方法的一种应用示意图。
图4为本申请实施例提供的模型的曲率处理方法的另一种应用示意图。
图5为本申请实施例提供的模型的曲率处理装置的一种结构示意图。
图6为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种模型的曲率处理方法、装置、计算机设备及存储介质。具体地,本申请实施例的模型的曲率处理方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,当该模型的曲率处理方法运行于终端时,终端设备存储有游戏应用程序并用于呈现游戏画面中的虚拟场景。终端设备用于通过图形用户界面与用户进行交互,例如通过终端设备下载安装游戏应用程序并运行。该终端设备将图形用户界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现图形用户界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。
例如,当该模型的曲率处理方法运行于服务器时,可以为云游戏。云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏应用程序的运行主体和游戏画面呈现主体是分离的,模型的曲率处理方法的储存与运行是在云游戏服务器上完成的。而游戏画面呈现是在云游戏的客户端完成的,云游戏客户端主要用于游戏数据的接收、发送以及游戏画面的呈现,例如,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑、个人数字助理等,但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,用户操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。
请参阅图1,图1为本申请实施例提供的一种模型的曲率处理系统的场景示意图。该系统可以包括至少一个终端,至少一个服务器,至少一个数据库,以及网络。用户持有的终端可以通过网络连接到不同游戏的服务器。终端是具有计算硬件的任何设备,该计算硬件能够支持和执行与游戏对应的软件产品。另外,当系统包括多个终端、多个服务器、多个网络时,不同的终端可以通过不同的网络、通过不同的服务器相互连接。网络可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的终端之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器等。例如,多个用户可以通过不同的终端在线从而通过适当网络连接并且相互同步,以支持多玩家游戏。另外,该系统可以包括多个数据库,多个数据库耦合到不同的服务器,并且可以将与游戏环境有关的信息在不同用户在线进行多玩家游戏时连续地存储于数据库中。
需要说明的是,图1所示的模型的曲率处理系统的场景示意图仅仅是一个示例,本申请实施例描述的模型的曲率处理系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述问题,本申请实施例提供一种模型的曲率处理方法、装置、计算机设备及存储介质,可以大幅度提升曲率的计算效率。以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
请参阅图2,图2为本申请实施例提供的一种模型的曲率处理方法的流程示意图,该模型的曲率处理方法的具体流程可以如下步骤101至步骤104所示:
101,根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息。
在本申请实施例中,计算机设备可以获取待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,并基于所述像素深度值和所述屏幕坐标值确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息。其中,本申请实施例提供的多边形网格包括三角形网格,该三角形网格为虚拟三角形网格,还可以其他多边形组成的网格,在此不做限定。
请参阅图3,由于屏幕空间具有规则的网格和深度值,因此在屏幕空间中,相邻的像素之间存在一个恒定的步长(即像素宽度),导致这些像素可以被三角化,可以将每个像素中心视为一个三角形顶点,这样每三个像素可以视为一个虚拟的三角形,例如,以像素点S0中心视为一个三角形顶点,可以分别与像素点S1、像素点S2、像素点S3、像素点S4、像素点S5、像素点S6、像素点S7和像素点S8分别组成虚拟三角形网格,例如像素点S0、像素点S1和像素点S8可以组成第一虚拟三角形网格。也即在一个像素宽度内,每个像素最多可以构成8个虚拟三角形网格。这样每个像素会得到8个曲率值,然后,利用每个三角形的面积大小作为权重,求出当前像素的加权平均曲率值,三角形面积可以通过行列式的方式计算,取2~3个三角形计算平均曲率,即可得到某一像素的曲率。本申请实施例可以通过行列式的方式计算三角形面积的具体代码如下所示:
float e1=V2-V1;//计算三角形第一条边
float e2=V3-V1;//计算三角形第二条边
float area=abs(cross(e1,e2))/2.0f;//三角形两条边的叉积即为平行四边形面积,除以2得到三角形面积。
其中,世界空间(world space)即虚拟网格模型所存在的全局场景坐标系,也即一个三维坐标系。屏幕空间就是在终端设备的显示屏幕上建立一个二维坐标系,具体的,屏幕的左下角作为原点,各个像素的坐标写成(x,y)的形式,从而像素坐标的范围为(0,0)到(屏幕宽度-1,屏幕高度-1)。
在本申请实施例中,通过每个像素点的像素深度值,可以重建每个像素点的世界位置和法线信息,通过上述步骤即可构建一个简单的虚拟三角形网格,并在该虚拟三角形网格上利用下述介绍的算法估计该像素点的曲率。具体的,根据某一像素点的像素深度值和屏幕二维坐标可以构成该像素点的一个三维坐标,将该三维坐标乘以变换矩阵的逆矩阵,再做一个透视除法就可以得到该像素点在世界空间中的世界位置。
102,根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息。
为了简化曲率计算,本申请实施例可以将虚拟三角形网格的顶点位置和顶点法线从世界空间转换至所述多边形网格的切线空间,即从世界空间中变换到三角形自身的切线空间,其中,三角形自身的切线空间可以通过以第一个顶点作为原点,以第一个顶点到第二个顶点的向量作为切线来构建切线空间得到。在构建三角形的切线空间后,将虚拟三角形网格映射到三角形的切线空间,那么虚拟三角形网格就可以用二维形式代替三维形式表达,由于在三维空间中的虚拟三角形网格的每个顶点要计算3个坐标,维度降低之后可以便于后续曲率的计算。其中,切线空间是一个表示三角形表面的局部空间,切线空间是位于三角形表面之上的空间。
103,基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率。
为了在切线空间中对多边形网格进行处理,在步骤“所述根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息”之前,方法可以包括:
基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间。
具体的,所述多边形网格包括由第一多边形顶点、第二多边形顶点及第三多边形顶点组成的三角形网格。步骤“所述基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间”方法可以包括:
基于所述第一多边形顶点的世界坐标值和所述第二多边形顶点的世界坐标值,确定第一目标切线;
采用第一切线计算公式,基于所述第一目标切线、所述第一多边形顶点的世界坐标值、以及所述第三多边形顶点的世界坐标值进行计算,确定第二目标切线;
采用第二切线计算公式,基于所述第一目标切线和所述第二目标切线进行计算,确定第三目标切线;
以所述第一多边形顶点为切线空间的原点,根据所述第一目标切线、所述第二目标切线及所述第三目标切线,构建所述多边形网格的切线空间。
例如,请参阅图4,以将虚拟三角形网格在世界空间中的三个顶点V1、V2以及V3转换至三角形的切线空间中的三个顶点V`1、V`2以及V`3为例,首先,可以构建基向量用来表达切线空间,本申请实施例可以根据虚拟三角形网格的三个顶点位置构建三角形的切线空间中的三个基向量,其中,T为第一基向量,N为第二基向量,B为第三基向量,N是垂直于三角形的法线,具体构建三角形的切线空间中的三个基向量的公式如下所示:
由于上述3个基向量是正交矩阵,因此3个基向量互相垂直,并且都是单位向量。其中,V1在切线空间为原点(0,0,0),将三角形的顶点位置变换到切线空间的逆矩阵为切线空间矩阵的转置矩阵,将虚拟三角形网格在世界空间中的顶点V2以及V3转换至三角形的切线空间中的顶点V`2以及V`3变换公式如下:
上述公式中的x,y,z分别为形状算子矩阵中的三个系数。
其中,将虚拟三角形网格在世界空间中的顶点转换至三角形的切线空间中的顶点的实现代码如下所示:
float3 T=normalize(V2-V1);//计算切线向量(第一个基向量)
float3 N=normalize(cross(T,(V3-V1)));//利用三角形两条边的叉积得到法线(第二个基向量)
float3 B=normalize(cross(N,T));//利用法线和切线的叉积得到次切线(第三个基向量)
float x=dot(T,V2-V1);//这一步是上述公式的矩阵计算步骤。
float y=dot(B,V2-V1);//这一步是上述公式的矩阵计算步骤。
float z=dot(N,V2-V1);//这一步是上述公式的矩阵计算步骤。
return float3(x,y,z);//变换后的V2点,此时Z应该为0,V2点降维到二维。
在一具体实施例中,步骤“所述基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率”,方法可以包括:
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,计算所述多边形网格的各多边形顶点的像素点的坐标变换向量和法线变换向量;
基于形状算子矩阵、与所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量的预设映射关系,以及所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量,计算所述多边形网格对应的计算后的形状算子矩阵;
基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率。
进一步的,步骤“所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率”,方法可以包括:
获取第一权重值;
基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率。
在一实施例中,所述曲率包括平均曲率,步骤“所述基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率”,方法可以包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的和值;
获取所述第一权重值和所述和值的第一乘积,作为所述多边形顶点的平均曲率。
在另一实施例中,所述曲率包括高斯曲率;步骤“所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率”,方法可以包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的第二乘积,作为所述多边形顶点的高斯曲率。
其中,第一特征值λ1和第二特征值λ2为形状算子矩阵的特征向量的运动表示,基于第一特征值和第二特征值计算平均曲率Ca和高斯曲率Cg的具体计算公式如下所示:
Cg=1λ2
在本申请实施例中,在将虚拟三角形网格的顶点位置和顶点法线从世界空间变换到三角形的切线空间后,虚拟三角形网格各的顶点的位置从三维(3D)降维到二维(2D)向量,因此顶点位置变化量为dV也是2D向量,另外,顶点法线变化量dN也近似于2D向量。具体构建顶点位置变化量为dV和顶点法线变化量dN的公式如下所示:
其中,本申请实施例可以设置形状算子矩阵的三个分量分别为X、Y和Z,具体上述三个分量与dV、dN构建的计算公式如下所示:
由于上述公式中的dV和dN是已知的,具体可以根据步骤103中的公式计算得到dV和dN,因此需要求解的是三个分量X、Y和Z。基于此,可以结合三个顶点构成一个“Ax=b”形式的超定系统,具体公式如下所示:
其中,公式中的V1、V2、V3分别是顶点坐标V1、顶点坐标V2和顶点坐标V3,公式中的N1、N2、N3为之前计算的顶点法线。然后,可以采用最小二乘法,可以求解出x,具体求解x的计算公式如下所示:
x=(ATA)-1ATb
具体的,上述公式实现的代码如下所示:
float p=dV1.x*dV1.x+dV2.x*dV2.x+dV3.x*dV3.x;
float q=dV1.x*dV1.y+dV2.x*dV2.y+dV3.x*dV3.y;
float r=dV1.y*dV1.y+dV2.y*dV2.y+dV3.y*dV3.y;
float3 B1=float3(p,q,0);
float3 B2=float3(q,p+r,q);
float3 B3=float3(0,q,r);
//计算矩阵A的行列式
floatDet=1.0f/(B1.x*(B2.y*B3.z-B2.z*B3.y)-B1.y*(B2.x*B3.z-B2.z*B3.x)+B1.z*(B2.x*B3.y-B2.y*B3.x));
float b1=(B2.y*B3.z-B2.z*B3.y)*Det;
float b2=(B1.z*B3.y-B1.y*B3.z)*Det;
float b3=(B1.y*B2.z-B1.z*B3.y)*Det;
float b4=(B1.x*B3.z-B1.z*B3.x)*Det;
float b5=(B1.z*B2.x-B1.x*B2.z)*Det;
float b6=(B1.x*B2.y-B1.y*B2.x)*Det;
float3 B1A1=float3(dV1.x*b1+dV1.y*b2,dV1.x*b2+dV1.y*b3,dV2.x*b1+dV2.y*b2);
float3 B1A2=float3(dV1.x*b2+dV1.y*b4,dV1.x*b4+dV1.y*b5,dV2.x*b2+dV2.y*b4);
float3 B1A3=float3(dV1.x*b3+dV1.y*b5,dV1.x*b5+dV1.y*b6,dV2.x*b3+dV2.y*b5);
float3 B2A1=float3(dV2.x*b2+dV2.y*b3,dV3.x*b1+dV3.y*b2,dV3.x*b2+dV3.y*b3);
float3 B2A2=float3(dV2.x*b4+dV2.y*b5,dV3.x*b2+dV3.y*b4,dV3.x*b4+dV3.y*b5);
float3 B2A3=float3(dV2.x*b5+dV2.y*b6,dV3.x*b3+dV3.y*b5,dV3.x*b5+dV3.y*b6);
float3 N1=float3(dN1.x,dN1.y,dN2.x);
float3 N2=float3(dN2.y,dN3.x,dN3.y);
float x=dot(B1A1,N1)+dot(B2A1,N2);
float y=dot(B1A2,N1)+dot(B2A2,N2);
float z=dot(B1A3,N1)+dot(B2A3,N2);
//得到最终结果,x,y,z分别为形状算子矩阵中的三个系数X、Y和Z。
return float3(x,y,z);
在本申请实施例中,当得到形状算子矩阵W的2x2矩阵之后,可以通过求解此矩阵的特征值来得到对应的主曲率,具体计算矩阵特征值的代码如下所示:
float T=M.x+M.z;
float D=M.x*M.z-M.y*M.y;
float Discriminant=T*T*0.25f-D;
float2 EV=Discriminant>0?float2(T*0.5f+sqrt(Discriminant),T*
0.5f-sqrt(Discriminant)):float2(0,0);
return EV;
最后,可以根据曲率计算公式计算所需的曲率值,形状算子矩阵W有两个实特征值,即第一特征值λ1和第二特征值λ2,分别对应于两个主曲率。然后,就可以根据两个主曲率计算平均曲率Ca或高斯曲率Cg,平均曲率Ca和高斯曲率Cg具体计算公式如下:
Cg=1λ2
进一步的,由于计算得到的曲率值的取值区间在正负无穷大之间,因此可以利用函数“tan-1(sx)π+0.5/”,将计算得到的曲率值的取值区间映射到0到1之间,这样即可以实现当曲率值接近于0时,表示表面越凹,曲率值接近于1,表示表面越凸。其中,函数中有一个设置有一个“s”因子,可以用来调节缩放数值进行缩放。
可选的,在步骤“基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率”之后,方法可以包括:
确定所述多边形顶点的曲率的当前取值区间;
基于预设函数将所述当前取值区间映射到目标取值区间。
104,基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在本色还能去实施例中,步骤“所述基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率”,方法可以包括:
获取所述多边形网格的多边形面积;
基于所述多边形面积以及对应的多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
例如,在本申请实施中,在一个像素宽度内,每个像素最多可以构成8个虚拟三角形。这样,每个像素会得到8个曲率值,然后,利用每个三角形的面积大小作为权重,求出当前像素的加权平均曲率值,三角形面积可以通过行列式的方式计算。可以理解为当前三角形面积除以8个三角形总面积即为当前三角形权重,当前三角形曲率乘以当前三角形权重,就是加权平均曲率。最后把所有三角形加权平均曲率求和得到目标曲率。
具体的,本申请实施例可以集成到现有的延迟渲染框架中,并且不需要对现有渲染框架进行大量修改,本申请实施例提供的曲率方法计算速度快,完全可以运用于实时渲染,并且能够很好的捕捉法线细节。例如,在进行椅子模型中,由于从远距离观察椅子模型切换到近距离观察椅子模型时,由于法线变化而产生的曲率变化,当检测到椅子模型中像素点的法线产生了变化,采用本方案提供的上述公式,可以对变化法线后的像素点的曲率进行实时计算,得到新的曲率后,在屏幕上根据新的曲率对椅子模型。另外,本申请实施例还可以作为预计算曲率贴图方法,由于本申请实施例提供的曲率计算方法可以完全在屏幕空间计算,因此能够很好的利用GPU加速功能,极大的提高了计算速度。
综上所述,本申请实施例提供一种模型的曲率处理方法,通过根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;然后,根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;接着,基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;最后,基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。本申请实施例通过待渲染模型中每个像素的深度重建每个像素的世界位置和法线,可以创建多个虚拟三角形网格,通过虚拟三角形网格各屏幕像素的世界位置信息以及法线信息计算每一像素点的曲率,能够快速计算出像素点对应的曲率信息,大幅度提升曲率的计算效率。
为了对本申请实施例提供的模型的曲率处理方法进行进一步说明,下面将以模型的曲率处理方法在具体实施场景中的应用为例进行说明,具体应用场景如下所述。
(1)对于三角形表面上的每一个点存在一个形状算子W,它表示该点法线向量在切线方向上的变化。W是一个2x2的对称矩阵。它由两个基本形式组成,W=I^(-1)II。其中,I和II也是两个2x2对称矩阵。如果将三角形变换到自身的切线空间,那么,I将会称为单位矩阵,形状算子为:W=II。矩阵W有两个实特征值λ1和λ2,分别对应于两个主曲率。然后,就可以根据两个主曲率计算平均曲率Ca或高斯曲率Cg。
(2)为了简化曲率计算,首先需要将三角形的顶点位置和顶点法线从世界空间变换到三角形自身的切线空间。将三角形顶点位置和顶点法线变换到切线空间后,三角形的顶点位置降维到2D向量,顶点位置变化量为dV也是2D向量。另外,顶点法线变化量dN也近似于2D向量。
(3)当得到形状算子W的2x2矩阵之后,然后,通过求解此矩阵的特征值来得到对应的主曲率。
为便于更好的实施本申请实施例提供的模型的曲率处理方法,本申请实施例还提供一种基于上述模型的曲率处理装置。其中名词的含义与上述模型的曲率处理方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图5,图5为本申请实施例提供的一种模型的曲率处理装置的结构示意图,该装置包括:
第一确定单元201,用于根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
转换单元202,用于根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
第二确定单元203,用于基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
第三确定单元204,用于基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在一些实施例中,该模型的曲率处理装置包括:
第一确定子单元,用于根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
第一转换单元,用于根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
第一确定子单元,还用于基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
第一确定子单元,还用于基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在一些实施例中,该模型的曲率处理装置包括:
第一计算子单元,用于基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,计算所述多边形网格的各多边形顶点的像素点的坐标变换向量和法线变换向量;
第一计算子单元,还用于基于形状算子矩阵、与所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量的预设映射关系,以及所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量,计算所述多边形网格对应的计算后的形状算子矩阵;
第一计算子单元,还用于基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率。
在一些实施例中,该模型的曲率处理装置包括:
第一获取子单元,用于获取第一权重值;
第二计算子单元,用于基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率。
在一些实施例中,该模型的曲率处理装置包括:
第二获取子单元,用于获取所述计算后的形状算子矩阵的第一特征值和第二特征值的和值;
第二获取子单元,还用于获取所述第一权重值和所述和值的第一乘积,作为所述多边形顶点的平均曲率。
在一些实施例中,该模型的曲率处理装置包括:
第三获取子单元,用于获取所述计算后的形状算子矩阵的第一特征值和第二特征值的第二乘积,作为所述多边形顶点的高斯曲率。
在一些实施例中,该模型的曲率处理装置包括:
第一构建子单元,用于基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间。
在一些实施例中,该模型的曲率处理装置包括:
第二确定子单元,用于基于所述第一多边形顶点的世界坐标值和所述第二多边形顶点的世界坐标值,确定第一目标切线;
第二确定子单元,还用于采用第一切线计算公式,基于所述第一目标切线、所述第一多边形顶点的世界坐标值、以及所述第三多边形顶点的世界坐标值进行计算,确定第二目标切线;
第二确定子单元,还用于采用第二切线计算公式,基于所述第一目标切线和所述第二目标切线进行计算,确定第三目标切线;
第二构建子单元,用于以所述第一多边形顶点为切线空间的原点,根据所述第一目标切线、所述第二目标切线及所述第三目标切线,构建所述多边形网格的切线空间。
在一些实施例中,该模型的曲率处理装置包括:
第三确定子单元,用于确定所述多边形顶点的曲率的当前取值区间;
映射子单元,用于基于预设函数将所述当前取值区间映射到目标取值区间。
在一些实施例中,该模型的曲率处理装置包括:
第四获取子单元,用于获取所述多边形网格的多边形面积;
第四确定子单元,用于基于所述多边形面积以及对应的多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
本申请实施例提供一种模型的曲率处理装置,通过第一确定单元201根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;转换单元202根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;第二确定单元203基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;第三确定单元204基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。本申请实施例通过待渲染模型中每个像素的深度重建每个像素的世界位置和法线,可以创建多个虚拟三角形网格,通过虚拟三角形网格各屏幕像素的世界位置信息以及法线信息计算每一像素点的曲率,能够快速计算出像素点对应的曲率信息,大幅度提升曲率的计算效率。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图6所示,图6为本申请实施例提供的计算机设备的结构示意图。该计算机设备300包括有一个或者一个以上处理核心的处理器301、有一个或一个以上计算机可读存储介质的存储器302及存储在存储器302上并可在处理器上运行的计算机程序。其中,处理器301与存储器302电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器301是计算机设备300的控制中心,利用各种接口和线路连接整个计算机设备300的各个部分,通过运行或加载存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行计算机设备300的各种功能和处理数据,从而对计算机设备300进行整体监控。
在本申请实施例中,计算机设备300中的处理器301会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器302中,并由处理器301来运行存储在存储器302中的应用程序,从而实现各种功能:
根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在一实施例中,所述基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率,包括:
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,计算所述多边形网格的各多边形顶点的像素点的坐标变换向量和法线变换向量;
基于形状算子矩阵、与所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量的预设映射关系,以及所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量,计算所述多边形网格对应的计算后的形状算子矩阵;
基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率。
在一实施例中,所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率,包括:
获取第一权重值;
基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率。
在一实施例中,所述曲率包括平均曲率;
所述基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率,包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的和值;
获取所述第一权重值和所述和值的第一乘积,作为所述多边形顶点的平均曲率。
在一实施例中,所述曲率包括高斯曲率;
所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率,包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的第二乘积,作为所述多边形顶点的高斯曲率。
在一实施例中,所述根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息之前,还包括:
基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间。
在一实施例中,所述多边形网格包括由第一多边形顶点、第二多边形顶点及第三多边形顶点组成的三角形网格;
所述基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间,包括:
基于所述第一多边形顶点的世界坐标值和所述第二多边形顶点的世界坐标值,确定第一目标切线;
采用第一切线计算公式,基于所述第一目标切线、所述第一多边形顶点的世界坐标值、以及所述第三多边形顶点的世界坐标值进行计算,确定第二目标切线;
采用第二切线计算公式,基于所述第一目标切线和所述第二目标切线进行计算,确定第三目标切线;
以所述第一多边形顶点为切线空间的原点,根据所述第一目标切线、所述第二目标切线及所述第三目标切线,构建所述多边形网格的切线空间。
在一实施例中,在基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率之后,还包括:
确定所述多边形顶点的曲率的当前取值区间;
基于预设函数将所述当前取值区间映射到目标取值区间。
在一实施例中,所述基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率,包括:
获取所述多边形网格的多边形面积;
基于所述多边形面积以及对应的多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在一实施例中,所述多边形网格包括三角形网格。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图6所示,计算机设备300还包括:触控显示屏303、射频电路304、音频电路305、输入单元306以及电源307。其中,处理器301分别与触控显示屏303、射频电路304、音频电路305、输入单元306以及电源307电性连接。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏303可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏303可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器301,并能接收处理器301发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器301以确定触摸事件的类型,随后处理器301根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏303而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏303也可以作为输入单元306的一部分实现输入功能。
在本申请实施例中,通过处理器301执行游戏应用程序在触控显示屏303上生成图形用户界面。该触控显示屏303用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
射频电路304可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路305可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路305可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路305接收后转换为音频数据,再将音频数据输出处理器301处理后,经射频电路304以发送给比如另一计算机设备,或者将音频数据输出至存储器302以便进一步处理。音频电路305还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元306可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源307用于给计算机设备300的各个部件供电。可选的,电源307可以通过电源管理系统与处理器301逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源307还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图6中未示出,计算机设备300还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,通过根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;然后,根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;接着,基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;最后,基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。本申请实施例通过待渲染模型中每个像素的深度重建每个像素的世界位置和法线,可以创建多个虚拟三角形网格,通过虚拟三角形网格各屏幕像素的世界位置信息以及法线信息计算每一像素点的曲率,能够快速计算出像素点对应的曲率信息,大幅度提升曲率的计算效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种模型的曲率处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在一实施例中,所述基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率,包括:
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,计算所述多边形网格的各多边形顶点的像素点的坐标变换向量和法线变换向量;
基于形状算子矩阵、与所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量的预设映射关系,以及所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量,计算所述多边形网格对应的计算后的形状算子矩阵;
基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率。
在一实施例中,所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率,包括:
获取第一权重值;
基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率。
在一实施例中,所述曲率包括平均曲率;
所述基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率,包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的和值;
获取所述第一权重值和所述和值的第一乘积,作为所述多边形顶点的平均曲率。
在一实施例中,所述曲率包括高斯曲率;
所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率,包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的第二乘积,作为所述多边形顶点的高斯曲率。
在一实施例中,所述根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息之前,还包括:
基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间。
在一实施例中,所述多边形网格包括由第一多边形顶点、第二多边形顶点及第三多边形顶点组成的三角形网格;
所述基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间,包括:
基于所述第一多边形顶点的世界坐标值和所述第二多边形顶点的世界坐标值,确定第一目标切线;
采用第一切线计算公式,基于所述第一目标切线、所述第一多边形顶点的世界坐标值、以及所述第三多边形顶点的世界坐标值进行计算,确定第二目标切线;
采用第二切线计算公式,基于所述第一目标切线和所述第二目标切线进行计算,确定第三目标切线;
以所述第一多边形顶点为切线空间的原点,根据所述第一目标切线、所述第二目标切线及所述第三目标切线,构建所述多边形网格的切线空间。
在一实施例中,在基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率之后,还包括:
确定所述多边形顶点的曲率的当前取值区间;
基于预设函数将所述当前取值区间映射到目标取值区间。
在一实施例中,所述基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率,包括:
获取所述多边形网格的多边形面积;
基于所述多边形面积以及对应的多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
在一实施例中,所述多边形网格包括三角形网格。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,通过根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;然后,根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;接着,基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;最后,基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。本申请实施例通过待渲染模型中每个像素的深度重建每个像素的世界位置和法线,可以创建多个虚拟三角形网格,通过虚拟三角形网格各屏幕像素的世界位置信息以及法线信息计算每一像素点的曲率,能够快速计算出像素点对应的曲率信息,大幅度提升曲率的计算效率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例所提供的一种模型的曲率处理方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。
Claims (13)
1.一种模型的曲率处理方法,其特征在于,包括:
根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
2.根据权利要求1所述的模型的曲率处理方法,其特征在于,所述基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率,包括:
基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,计算所述多边形网格的各多边形顶点的像素点的坐标变换向量和法线变换向量;
基于形状算子矩阵、与所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量的预设映射关系,以及所述多边形网格的各多边形顶点的坐标变换向量和法线变换向量,计算所述多边形网格对应的计算后的形状算子矩阵;
基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率。
3.根据权利要求2所述的模型的曲率处理方法,其特征在于,所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率,包括:
获取第一权重值;
基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率。
4.根据权利要求3所述的模型的曲率处理方法,其特征在于,所述曲率包括平均曲率;
所述基于所述第一权重值、所述计算后的形状算子矩阵的第一特征值和第二特征值,计算所述多边形顶点的曲率,包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的和值;
获取所述第一权重值和所述和值的第一乘积,作为所述多边形顶点的平均曲率。
5.根据权利要求3所述的模型的曲率处理方法,其特征在于,所述曲率包括高斯曲率;
所述基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率,包括:
获取所述计算后的形状算子矩阵的第一特征值和第二特征值的第二乘积,作为所述多边形顶点的高斯曲率。
6.根据权利要求1所述的模型的曲率处理方法,其特征在于,所述根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息之前,还包括:
基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间。
7.根据权利要求6所述的模型的曲率处理方法,其特征在于,所述多边形网格包括由第一多边形顶点、第二多边形顶点及第三多边形顶点组成的三角形网格;
所述基于所述多边形网格中各多边形顶点的像素点在世界空间中的世界坐标值,构建所述多边形网格的切线空间,包括:
基于所述第一多边形顶点的世界坐标值和所述第二多边形顶点的世界坐标值,确定第一目标切线;
采用第一切线计算公式,基于所述第一目标切线、所述第一多边形顶点的世界坐标值、以及所述第三多边形顶点的世界坐标值进行计算,确定第二目标切线;
采用第二切线计算公式,基于所述第一目标切线和所述第二目标切线进行计算,确定第三目标切线;
以所述第一多边形顶点为切线空间的原点,根据所述第一目标切线、所述第二目标切线及所述第三目标切线,构建所述多边形网格的切线空间。
8.根据权利要求2所述的模型的曲率处理方法,其特征在于,在基于所述计算后的形状算子矩阵的第一特征值和第二特征值,计算每一多边形网格各多边形顶点的曲率之后,还包括:
确定所述多边形顶点的曲率的当前取值区间;
基于预设函数将所述当前取值区间映射到目标取值区间。
9.根据权利要求1所述的模型的曲率处理方法,其特征在于,所述基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率,包括:
获取所述多边形网格的多边形面积;
基于所述多边形面积以及对应的多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
10.根据权利要求1至9任一项所述的模型的曲率处理方法,其特征在于,所述多边形网格包括三角形网格。
11.一种模型的曲率处理装置,其特征在于,包括:
第一确定单元,用于根据待渲染模型在屏幕空间中每一多边形网格的各多边形顶点的像素点的像素深度值和屏幕坐标值,确定所述像素点在世界空间中的世界坐标值和第一顶点法线信息;
转换单元,用于根据每一多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值和顶点法线信息,将每一所述多边形网格从所述世界空间转换至所述多边形网格的切线空间中,得到所述多边形网格的多边形顶点在所述切线空间中的切线坐标值和第二顶点法线信息;
第二确定单元,用于基于所述多边形网格的各多边形顶点的像素点在世界空间中的世界坐标值与第一顶点法线信息,以及所述多边形网格的各多边形顶点在切线空间中的切线坐标值与第二顶点法线信息,确定每一多边形网格各多边形顶点的曲率;
第三确定单元,用于基于所述每一多边形网格各多边形顶点的曲率,确定所述屏幕空间中所述待渲染模型的渲染画面的每一像素点的曲率。
12.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1至10任一项所述的模型的曲率处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1至10任一项所述的模型的曲率处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211635542.7A CN116129024A (zh) | 2022-12-19 | 2022-12-19 | 模型的曲率处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211635542.7A CN116129024A (zh) | 2022-12-19 | 2022-12-19 | 模型的曲率处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116129024A true CN116129024A (zh) | 2023-05-16 |
Family
ID=86310947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211635542.7A Pending CN116129024A (zh) | 2022-12-19 | 2022-12-19 | 模型的曲率处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116129024A (zh) |
-
2022
- 2022-12-19 CN CN202211635542.7A patent/CN116129024A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112802172B (zh) | 三维模型的纹理映射方法、装置、存储介质及计算机设备 | |
CN112138386A (zh) | 一种体积渲染方法、装置、存储介质及计算机设备 | |
CN112245926B (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN112206517B (zh) | 一种渲染方法、装置、存储介质及计算机设备 | |
CN113952720A (zh) | 游戏场景渲染方法、装置、电子设备及存储介质 | |
CN111729307A (zh) | 虚拟场景显示方法、装置、设备以及存储介质 | |
CN112465945A (zh) | 一种模型生成方法、装置、存储介质及计算机设备 | |
CN109697748A (zh) | 模型压缩处理方法、模型贴图处理方法装置、存储介质 | |
CN115082608A (zh) | 虚拟角色服装渲染方法、装置、电子设备和存储介质 | |
CN113101666B (zh) | 游戏角色模型方法、装置、计算机设备及存储介质 | |
CN115082607A (zh) | 虚拟角色头发渲染方法、装置、电子设备和存储介质 | |
WO2022237116A1 (zh) | 图像处理方法及装置 | |
CN112206519B (zh) | 实现游戏场景环境变化的方法、装置、存储介质及计算机设备 | |
CN112950753B (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN115645921A (zh) | 游戏指示器的生成方法、装置、计算机设备及存储介质 | |
CN116129024A (zh) | 模型的曲率处理方法、装置、计算机设备及存储介质 | |
CN116212374A (zh) | 模型处理方法、装置、计算机设备和存储介质 | |
TW202217749A (zh) | 三維紋理化三維模型的方法以及用於紋理化三維模型的電子裝置 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN112843697A (zh) | 一种图像处理方法、装置、存储介质及计算机设备 | |
CN117899490A (zh) | 虚拟模型的处理方法、装置、计算机设备及存储介质 | |
CN118134773A (zh) | 虚拟流体模型的处理方法、装置、计算机设备及存储介质 | |
CN117953150A (zh) | 三维人体重建方法、装置、电子设备及存储介质 | |
CN116531750A (zh) | 网状结构生成方法、装置、电子设备和可读存储介质 | |
CN113546407A (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 |