CN115272552A - 模型渲染方法和装置 - Google Patents
模型渲染方法和装置 Download PDFInfo
- Publication number
- CN115272552A CN115272552A CN202210964258.8A CN202210964258A CN115272552A CN 115272552 A CN115272552 A CN 115272552A CN 202210964258 A CN202210964258 A CN 202210964258A CN 115272552 A CN115272552 A CN 115272552A
- Authority
- CN
- China
- Prior art keywords
- normal
- information
- model
- component
- normal 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种模型渲染方法和装置,以至少解决相关技术中存的现有采用复杂模型进行渲染,模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题。上述方法可以包括,获取第一模型的第一法线信息;将所述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;通过法线UV表示信息计算第二法线信息;基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种模型渲染方法和装置。
背景技术
目前,对于多面数的复杂模型,模型渲染的着色开销较高,不利于模型渲染工作在移动端设备中的运行。
而对于面数较少的简单模型,通过现有方式进行渲染,又不能达到良好的渲染效果。
发明内容
本申请实施例提供了一种模型渲染方法、装置、电子设备和存储介质,以至少解决相关技术中存的现有采用复杂模型进行渲染,模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题。
根据本申请实施例的第一方面,提供了一种模型渲染方法,包括:
获取第一模型的第一法线信息;
将所述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;
通过法线UV表示信息计算第二法线信息;
基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
根据本申请实施例的第一方面的第一种可能实现方式,所述将所述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息,包括:
利用所述第一法线信息中的第一分量和第二分量表示所述第一法线信息中的第三分量;
基于所述第一分量和第二分量确定所述法线UV表示信息。
根据本申请实施例的第一方面的第二种可能实现方式,所述利用第一法线信息中的第一分量和第二分量表示所述第一法线信息中的第三分量,包括:
利用标准化向量特性通过所述第一法线信息中的第一分量和第二分量表示所述第一法线信息中的第三分量。
根据本申请实施例的第一方面的第三种可能实现方式,所述方法还包括:
将所述第一分量或所述第二分量的值由[-1,1]区间映射至[0,1]区间;
利用所述映射到[0,1]区间的第一分量或第二分量的符号记录所述第三分量的符号。
根据本申请实施例的第一方面的第四种可能实现方式,用于记录所述第三分量的符号的所述第一分量或所述第二分量不为零。
根据本申请实施例的第一方面的第五种可能实现方式,所述法线UV表示信息的坐标空间为世界空间。
根据本申请实施例的第一方面的第六种可能实现方式,还包括:
利用第二模型存储所述第一模型的至少一套法线信息,所述第二模型与所述第一模型的模型架构相同,每套法线信息在第二模型的写入通道不同,所述法线UV表示信息还包括:所述第二模型的标识、所述写入通道标识和法线UV标识。
根据本申请实施例的一个方面的第七种可能实现方式,所述方法还包括:
在顶点着色阶段进行所述法线UV表示信息至所述法线信息的转换。
根据本申请实施例的一个方面的第八种可能实现方式,所述方法还包括:
在所述第三分量始终为正的情况下,在顶点着色阶段和像素着色阶段进行所述法线UV表示信息至所述法线信息的转换,否则,在顶点着色阶段进行所述法线UV表示信息至所述法线信息的转换。
根据本申请实施例的一个方面的第九种可能实现方式,所述获取第一模型的第一法线信息,包括:
生成所述第一模型的复制模型;
获取所述复制模型的法线信息作为所述第一法线信息。
根据本申请实施例的一个方面的第十种可能实现方式,所述获取所述复制模型的法线信息作为所述第一法线信息,包括:
对所述复制模型进行平滑处理和/或倒角处理,生成目标圆滑模型;
获取所述目标圆滑模型的法线信息作为所述第一法线信息。
根据本申请实施例的一个方面的第十一种可能实现方式,所述基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染,包括:
通过顶点颜色贴图或材质贴图的方式基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
根据本申请实施例的第二方面,提供了一种模型渲染装置,包括:
获取单元,用于获取第一模型的第一法线信息;
表示单元,用于将所述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;
计算单元,用于通过法线UV表示信息计算第二法线信息;
渲染单元,用于基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
根据本申请实施例的第三方面,还提供了一种电子设备,包括处理器和存储器,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的模型渲染方法步骤。
根据本申请实施例的第四方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的模型渲染方法步骤。
在本申请实施例中提供的一种模型渲染方法,对于模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题,通过获取第一模型的第一法线信息。将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。通过法线UV表示信息计算第二法线信息。基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。由此,通过叠加二套甚至更多的法线信息,在进行模型渲染时,能够在避免生成较多面数的复杂模型的情况下,生成较好的渲染效果,利于模型渲染工作在移动端设备中的运行。其中,将法线信息采用UV坐标形式进行表示,即便上述法线信息为同一顶点包含多条法线的硬边信息的情况下,依然可以通过UV坐标形式完整的表示,不会造成法线信息的缺失或需要将多条法线信息的硬边信息均衡成软边信息进行存储,极大的改善了利用顶点色存储法线造成的法线存储精度较低的问题。并且,由于基于一个模型可以生成不限数量的多套UV,也即,信息理论上可以生成不限数量的法线UV表示信息,那么在需要存储多套法线信息的情况下,通过将上述法线信息采用UV坐标形式进行表示,解决了现有的顶点色存储方案中仅能存储一套法线信息的问题。而存储多套法线信息,对于后续模型的渲染等处理带来了较高的自由度,利用多套法线的混合形成较好效果的同时能够尽可能保证较低的着色开销,从而支持模型渲染方案适用更多类型的终端设备。
相应的,上述模型渲染装置、电子设备和存储介质也具有相同效果,上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申请实施例的技术手段,而可依照说明书的内容予以实施。并且为了让本申请实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请实施例的具体实施方式。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种可选的模型渲染方法的硬件环境的示意图;
图2是根据本申请实施例的一种模型渲染方法的流程示意图;
图3是根据本申请实施例的一种法线信息存储方法的模型示意图;
图4是根据本申请实施例的一种法线信息存储方法的法线UV表示信息示意图;
图5是根据本申请实施例的另一种法线信息存储方法的模型示意图;
图6是根据本申请实施例的另一种法线信息存储方法的法线UV表示信息示意图;
图7是根据本申请实施例的一种可选的模型渲染装置的结构框图;
图8是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的第一方面,提供了一种模型渲染方法。可选地,在本实施例中,上述模型渲染方法可以应用于如图1所示的由终端102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务。
上述网络包括但不限于以下至少之一:有线网络,无线网络,该有线网络可以包括但不限于以下至少之一:广域网、城域网或局域网,该无线网络可以包括但不限于以下至少之一:蓝牙、WIFI(Wireless Fidelity,无线保真)及其他实现无线通信的网络。上述终端102可以是计算数据的终端,如移动终端(例如手机、平板电脑)、笔记本电脑、PC机等终端上。上述服务器可以包括但不限于任何可以进行计算的硬件设备。
本申请实施例的模型渲染方法可以由终端102来执行,也可以是由服务器104或由服务器104和终端102共同执行。其中,终端102配合服务器104执行本申请实施例的模型渲染方法的部分也可以是由安装在其上的客户端来执行。
以由终端102来执行本实施例中的模型渲染方法为例,图2是根据本申请实施例的一种可选的模型渲染方法的流程示意图,如图2所示,该方法的流程可以包括步骤:S202、S204、S206和S208。
在步骤S202中,获取第一模型的第一法线信息。
示例性的,上述第一法线信息可以是硬边信息也可以是软边信息,在此不做限定。以立方体模型为例,当上述立方体模型的法线信息为硬边信息的情况下,每个顶点可以存在三个法线方向,分别平行于与该顶点相接的三个面的法线方向,而当上述立方体模型的法线信息为软边信息的情况下,每个顶点的法线只有一个方向,并且相当于硬边法线信息中该顶点所有法线方向的平均。
在步骤S204中,将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。
需要说明的是,上述法线信息是三维坐标信息,而上述UV坐标是指U,V纹理贴图坐标。它定义了图像上每个点的位置的信息。所有的图象文件都是二维的一个平面。水平方向是U,垂直方向是V,通过这个平面的二维的UV坐标系,可以定位图象上的任意一个象素。这些点与模型是相互联系的,以决定表面纹理贴图的位置。UV坐标可以将图像上每一个点精确对应到模型的表面。
示例性的,通过将上述法线信息采用UV坐标形式进行表示后,可以存储生成的法线UV表示信息。由于基于一个模型可以生成不限数量的多套UV,也即,理论上可以生成不限数量的法线UV表示信息,那么在需要存储多套法线信息的情况下,通过将上述法线信息采用UV坐标形式进行表示,解决了现有的顶点色存储方案中仅能存储一套法线信息的问题。
步骤S206中,通过法线UV表示信息计算第二法线信息。
示例性的,对上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息,在需要提取法线UV表示信息中的法线信息的情况下,需要进行上述法线UV表示信息至法线信息的转换。这样就能够获得第一模型自身法线信息以外的另外一套法线信息。以便后续模型渲染构成中,多双法线甚至更多法线信息的叠加使用。
步骤S208中,基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。
通过上述步骤S202至步骤S208,对于模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题,通过获取第一模型的第一法线信息。将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。通过法线UV表示信息计算第二法线信息。基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。由此,通过叠加二套甚至更多的法线信息,在进行模型渲染时,能够在避免生成较多面数的复杂模型的情况下,生成较好的渲染效果,利于模型渲染工作在移动端设备中的运行。其中,将法线信息采用UV坐标形式进行表示,即便上述法线信息为同一顶点包含多条法线的硬边信息的情况下,依然可以通过UV坐标形式完整的表示,不会造成法线信息的缺失或需要将多条法线信息的硬边信息均衡成软边信息进行存储,极大的改善了利用顶点色存储法线造成的法线存储精度较低的问题。并且,由于基于一个模型可以生成不限数量的多套UV,也即,信息理论上可以生成不限数量的法线UV表示信息,那么在需要存储多套法线信息的情况下,通过将上述法线信息采用UV坐标形式进行表示,解决了现有的顶点色存储方案中仅能存储一套法线信息的问题。而存储多套法线信息,对于后续模型的渲染等处理带来了较高的自由度,利用多套法线的混合形成较好效果的同时能够尽可能保证较低的着色开销,从而支持模型渲染方案适用更多类型的终端设备。
根据一些实施例,上述将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息,包括:
S21,利用上述第一法线信息中的第一分量和第二分量表示上述法线信息中的第三分量;
S22,基于上述第一分量和第二分量确定上述法线UV表示信息。
示例性的,上述法线信息是三维坐标信息,那么上述第一分量和第二分量可以分别代表X轴分量和Y轴分量,那么上述第三分量可以代表Z轴分量,当然,第一分量和第二分量也可以分别代表Z轴分量和Y轴分量,那么上述第三分量可以代表X轴分量,或第一分量和第二分量也可以分别代表X轴分量和Z轴分量,那么上述第三分量可以代表Y轴分量,在此不做限定。
示例性的,在上述第一分量和第二分量可以分别代表X轴分量和Y轴分量,那么上述第三分量可以代表Z轴分量的情况下,可以利用X轴分量和Y轴分量表示上述法线信息中的Z轴分量。那么,就可以完全将三维的法线信息转化为二维的UV信息进行表示了。这样,可以将需要较大空间存储的三维的法线信息转化为占用较小存储空间的二维的法线UV表示信息进行存储。这使得需要存储的法线信息仅需占用较小的存储空间,能够较好的节省法线信息的存储空间。在存在多套法线信息进行存储的情况下,不仅可以对法线信息进行完整的表示,不会造成法线信息的缺失或需要将多条法线信息的硬边信息均衡成软边信息进行存储,极大的改善了利用顶点色存储法线造成的法线存储精度较低的问题,并且,由于将需要较大空间存储的三维的法线信息转化为占用较小存储空间的二维的法线UV表示信息进行存储,在保证存储精度的同时压缩的存储空间的占用。
根据一些实施例,上述利用第一法线信息中的第一分量和第二分量表示上述第一法线信息中的第三分量,包括:
S31,利用标准化向量特性通过上述第一法线信息中的第一分量和第二分量表示上述第一法线信息中的第三分量。
示例性的,由于法线信息中的第一分量、第二分量和第三分量具有标准化向量的特性,即,第一分量的平方、第二分量的平方与第三分量的平方之和为1。那么,可知第三分量的绝对值为sqrt(1-第一分量的平方-第二分量的平方)。例如,在第一分量为X轴分量、第二分量为Y轴分量的情况下,利用标准向量Z轴反算方法,可以采用X轴分量和Y轴分量来表示Z轴分量,即,即X2+Y2+Z2=1,那么Z轴分量的绝对值为sqrt(1-X2-Y2)。
根据一些实施例,上述方法还包括:
S41,将上述第一分量或上述第二分量的值由[-1,1]区间映射至[0,1]区间;
S42,利用上述映射到[0,1]区间的第一分量或第二分量的符号记录上述第三分量的符号。
示例性的,因为法线信息存储的位置是UV,UV信息是两分量的浮点数,所以,可以将第三分量的符号位存储在第一分量和第二分量的其中一个分量。例如,在第一分量为X轴分量、第二分量为Y轴分量的情况下,可以将第三分量的符号位存储在X轴分量,可以保留Y轴分量不变。将X轴分量值从[-1,1]映射至[0,1]区间,而X轴分量的符号用来存储Z轴分量的符号,以此来完成三个分量值和符号位的表示。
示例性的,在Encode法线信息的过程中,可以利用函数Normal.xy*0.5f+0.5f来生成法线UV表示信息,其中,Normal.xy表示转换前的法线信息中的X轴分量和Y轴分量,f为浮点数,利用函数Normal.xy*0.5f+0.5f,将Normal的X轴分量和Y轴分量从[-1,1]区间转换为[0,1]区间。
根据一些实施例,用于记录上述第三分量的符号的上述第一分量或上述第二分量不为零。
可以理解的是,由于需要用将第三分量的符号位存储在上述第一分量或上述第二分量中,所以,用于存储上述第三分量的符号的上述第一分量或上述第二分量不能为零。例如,在第一分量为X轴分量、第二分量为Y轴分量的情况下,可以将第三分量的符号位存储在X轴分量,可以保留Y轴分量不变。将X轴分量值从[-1,1]映射至[0,1]区间,而X轴分量的符号用来存储Z轴分量的符号,因此,X轴分量的值不能取0,以便于记录Z轴分量的符号。
根据一些实施实施例,上述法线UV表示信息的坐标空间为世界空间。
示例性的,法线UV表示信息的坐标空间可以为切线空间和世界空间。其中,切线空间是由顶点所构成的平面的UV坐标轴以及表面的法线所构成,一般用T(Tangent),B(Bitangent),N(Normal)三个字母表示,即切线,副切线,法线,TT对应UV中的UU,BB对应UV中的VV。例如,可以采用世界空间表示法线UV表示信息,在3dsMax中,切线空间的值是通过世界法线计算得到,而在这个过程中,精度就会丢失一部分,而在计算后,这个误差将会被放大,以至于误差更大,所以使用世界空间的计算误差更小。因此,采用世界空间表示法线UV表示信息,能够进一步提高法线信息存储的精度。
根据一些实施例,还包括:
S51,利用第二模型存储上述第一模型的至少一套法线信息。
上述第二模型与所述第一模型的模型架构相同,每套法线信息在第二模型的写入通道不同,上述法线UV表示信息还包括:上述第二模型的标识、上述写入通道标识和法线UV标识。
示例性的,如图3和图5所示,记录有法线信息的第一模型可以为图3左侧的模型也可以为图5左侧的模型,当然上述第一模型还可以具有其他的形式的法线信息,在此不做限定,用于导入法线UV表示信息的第二模型可以为图3右侧的模型或图5右侧的模型。可以看出,图3右侧的模型或图5右侧的模型与图3左侧的模型也可以为图5左侧的模型唯一的区别就是法线信息不同。可以将图3左侧的模型的法线信息提取出后,采用UV坐标形式进行表示,以生成法线UV表示信息,并将生成的法线UV表示信息导入到图3右侧的模型中去。同理,可以将图5左侧的模型的法线信息提取出后,采用UV坐标形式进行表示,以生成法线UV表示信息,并将生成的法线UV表示信息导入到图5右侧的模型中去。
示例性的,上述图3中的模型可以应用到3ds Max工具,定义右侧模型为写入UV模型,也即待导入法线UV表示信息的模型。例如,可以定义右侧模型标识为Sphere001、左侧模型的标识为Sphere002、写入通道标识2、法线UV标识为1。那么这些信息可以代表法线UV表示信息为从模型Sphere002读取的写入到模型Sphere001的通道2的采用UV表示的法线信息。上述法线UV表示信息具体可以如图4所示。
示例性的,上述图5中的模型可以应用到Maya工具,定义右侧模型为写入UV模型,也即待导入法线UV表示信息的模型。例如,可以定义右侧模型标识为pSphereShape002、左侧模型的标识为pSphereShape001、写入通道标识test、法线UV标识为1。那么这些信息可以表示法线UV表示为从模型pSphereShape001读取的写入到模型pSphereShape002的通道test的采用UV表示的法线信息。上述法线UV表示信息具体可以如图6所示。
根据一些实施例,上述方法还可以包括:
S61,在顶点着色阶段进行上述法线UV表示信息至上述法线信息的转换。
示例性的,在上述法线信息采用UV坐标形式进行表示,以生成法线UV表示信息,在需要提取法线UV表示信息中的法线信息的情况下,需要进行上述法线UV表示信息至上述法线信息的转换。
示例性的,可以去除法线UV表示信息的符号位,并将结果从[0,1]区间转换至[-1,1]区间。其中,U关联于第一分量,V关联于第二分量,再通过第一分量和第二分量,反算第三分量的值。最后将第一分量或第二分量记录的第三分量的符号位赋予给上述第三分量。在上述在第一分量为X轴分量、第二分量为Y轴分量的情况下,即U关联于X轴分量,V关联于Y轴分量的情况下,依然可以利用标准化向量特性通过上述X轴分量和Y轴分量反算出Z轴分量的值。并且,在Z轴分量记录在X轴分量的情况下,可以将X轴分量记录的Z轴分量符号赋予给反算出的Z轴分量的值。
示例性的,由于法线信息中的第一分量、第二分量和第三分量具有标准化向量的特性,即,第一分量的平方、第二分量的平方与第三分量的平方之和为1。那么,可知第三分量的绝对值为sqrt(1-第一分量的平方-第二分量的平方)。例如,在第一分量为X轴分量、第二分量为Y轴分量的情况下,利用标准向量Z轴反算方法,可以采用X轴分量和Y轴分量来表示Z轴分量,即,即X2+Y2+Z2=1,那么Z轴分量的绝对值为sqrt(1-X2-Y2)。
需要说明的是,在Decode法线信息的过程中,可以利用函数abs(UV.xy)*2f-1f来获得X轴分量和Y轴分量,其中,abs()函数为hlsl语言中的函数,表示将该函数的参数取绝对值,即只改变符号位:负数变为正数,正数还是正数,0不变。UV.xy表示法线信息的法线UV表示信息,f为浮点数,利用函数abs(UV.xy)*2f-1f,将法线UV表示信息从[0,1]转换为[-1,1]区间。
示例性的,因为UV表示信息是浮点数,包含法线Z轴符号,则在Z轴都为正时,经过VertexShader插值给PixelShader的结果不会有问题,但当一个三角形内,三个顶点携带的法线Z轴分量符号不同时,插值到PixelShader的结果就会出现错误。因此,在顶点着色阶段进行上述法线UV表示信息至上述法线信息的转换,能够避免插值到PixelShader的结果造成错误。
根据一些实施例,上述方法还包括:
S71,在上述第三分量始终为正的情况下,在顶点着色阶段和像素着色阶段进行所述法线UV表示信息至上述法线信息的转换,否则,在顶点着色阶段进行上述法线UV表示信息至上述法线信息的转换。
示例性的,因为UV表示信息是浮点数,包含法线Z轴符号,则在Z轴都为正时,经过VertexShader插值给PixelShader的结果不会有问题,但当一个三角形内,三个顶点携带的法线Z轴分量符号不同时,插值到PixelShader的结果就会出现错误。因此,当Z轴分量始终为正时,该数据可以在VertexShader和PixelShader完成Decode法线信息过程,当Z轴分量无法始终为正时,则只能在VertexShader中完成Decode法线信息过程,并将结果插值给PixelShader以完成计算。能够避免插值到PixelShader的结果造成错误。
根据一些实施例,所述获取第一模型的第一法线信息,可以包括:
S81,生成上述第一模型的复制模型;
S82,获取上述复制模型的法线信息作为上述第一法线信息。
示例性的,上述复制模型与上述第一模型相同,那么上述复制模型的法线信息与上述第一模型的法线信息也相同,获取上述复制模型的法线信息可以作为上述第一模型的法线信息。
根据一些实施例,上述获取所述复制模型的法线信息作为上述第一法线信息,可以包括:
对上述复制模型进行平滑处理和/或倒角处理,生成目标圆滑模型;
获取上述目标圆滑模型的法线信息作为上述第一法线信息。
示例性的,可以对上述复制模型分别进行平滑处理或倒角处理以生成边缘圆滑的模型。还可以对上述复制模型先进行倒角处理后进行平滑处理能够产生更好的边缘圆滑效果。
根据一些实施例,上述基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染,可以包括:
S91,通过顶点颜色贴图或材质贴图的方式基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。
示例性的,可以通过顶点颜色贴图的方式或材质贴图的方式对上述第一模型进行光照渲染。进行光照渲染时,可以选择将上述第一法线信息与上述第一模型本身的法线进行叠加,可以选择将上述第二法线信息与上述第一模型本身的法线进行叠加,也可以选择将上述第一法线信息和上述第二法线信息的混合法线与上述第一模型本身的法线进行叠加。最终生成的渲染效果,能够使第一模型在较低面数的情况下,依然产生复杂精细的渲染效果,利于模型渲染工作在移动端设备中的运行。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述模型渲染方法的模型渲染装置。图7是根据本申请实施例的一种可选的模型渲染装置的结构框图,如图7所示,该装置可以包括:
获取单元31,用于获取第一模型的第一法线信息。
表示单元32,与获取单元32相连,用于将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。
计算单元33,与表示单元32相连,用于通过法线UV表示信息计算第二法线信息。
渲染单元34,与计算单元33相连,用于基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。
需要说明的是,该实施例中的获取单元31可以用于执行上述步骤S202,该实施例中的表示单元32可以用于执行上述步骤S204,该实施例中的计算单元33可以用于执行上述步骤S206,该实施例中的渲染单元34可以用于执行上述步骤S208。
通过上述装置,对于模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题,通过获取第一模型的第一法线信息。将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。通过法线UV表示信息计算第二法线信息。基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。由此,通过叠加二套甚至更多的法线信息,在进行模型渲染时,能够在避免生成较多面数的复杂模型的情况下,生成较好的渲染效果,利于模型渲染工作在移动端设备中的运行。其中,将法线信息采用UV坐标形式进行表示,即便上述法线信息为同一顶点包含多条法线的硬边信息的情况下,依然可以通过UV坐标形式完整的表示,不会造成法线信息的缺失或需要将多条法线信息的硬边信息均衡成软边信息进行存储,极大的改善了利用顶点色存储法线造成的法线存储精度较低的问题。并且,由于基于一个模型可以生成不限数量的多套UV,也即,信息理论上可以生成不限数量的法线UV表示信息,那么在需要存储多套法线信息的情况下,通过将上述法线信息采用UV坐标形式进行表示,解决了现有的顶点色存储方案中仅能存储一套法线信息的问题。而存储多套法线信息,对于后续模型的渲染等处理带来了较高的自由度,利用多套法线的混合形成较好效果的同时能够尽可能保证较低的着色开销,从而支持模型渲染方案适用更多类型的终端设备。
根据一些实施例,上述表示单元还可以用于:
利用上述第一法线信息中的第一分量和第二分量表示上述第一法线信息中的第三分量;
基于上述第一分量和第二分量确定上述法线UV表示信息。
根据一些实施例,上述表示单元还可以用于:
利用标准化向量特性通过上述第一法线信息中的第一分量和第二分量表示上述第一法线信息中的第三分量。
根据一些实施例,上述表示单元还可以用于:
将上述第一分量或上述第二分量的值由[-1,1]区间映射至[0,1]区间;
利用上述映射到[0,1]区间的第一分量或第二分量的符号记录上述第三分量的符号。
根据一些实施例,用于记录上述第三分量的符号的上述第一分量或上述第二分量不为零。
根据一些实施例,上述法线UV表示信息的坐标空间为世界空间。
根据一些实施例,上述模型渲染装置还可以包括存储单元,上述存储单元可以用于:
利用第二模型存储上述第一模型的至少一套法线信息。
上述第二模型与上述第一模型的模型架构相同,每套法线信息在第二模型的写入通道不同,上述法线UV表示信息还包括:上述第二模型的标识、上述写入通道标识和法线UV标识。
根据一些实施例,上述装置还可以包括转换单元,上述转换单元可以用于:
在顶点着色阶段进行上述法线UV表示信息至上述法线信息的转换。
根据一些实施例,上述转换单元还可以用于:
在上述第三分量始终为正的情况下,在顶点着色阶段和像素着色阶段进行所述法线UV表示信息至上述法线信息的转换,否则,在顶点着色阶段进行上述法线UV表示信息至上述法线信息的转换。
根据一些实施例,上述获取单元还可以用于:
生成上述第一模型的复制模型;
获取上述复制模型的法线信息作为上述第一法线信息。
根据一些实施例,上述获取单元还可以用于:
对上述复制模型进行平滑处理和/或倒角处理,生成目标圆滑模型;
获取上述目标圆滑模型的法线信息作为上述第一法线信息。
根据一些实施例,上述渲染单元还可以用于:
通过顶点颜色贴图或材质贴图的方式基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。
此处需要说明的是,上述模块单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块单元作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的第三方面,还提供了一种用于实施上述模型渲染方法的电子设备,该电子设备可以是终端、服务器、或者服务器与终端的组合。
图8是根据本申请实施例的一种可选的电子设备的结构框图,如图8所示,包括处理器402、通信接口404、存储器406和通信总线408,其中,处理器402、通信接口404和存储器406通过通信总线408完成相互间的通信,其中,
存储器406,用于存储计算机程序;
处理器402,用于执行存储器406上所存放的计算机程序时,实现如下步骤:
S1,获取第一模型的第一法线信息;
S2,将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;
S3,通过法线UV表示信息计算第二法线信息;
S4,基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。
上述电子设备,对于模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题,通过获取第一模型的第一法线信息。将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。通过法线UV表示信息计算第二法线信息。基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。由此,通过叠加二套甚至更多的法线信息,在进行模型渲染时,能够在避免生成较多面数的复杂模型的情况下,生成较好的渲染效果,利于模型渲染工作在移动端设备中的运行。其中,将法线信息采用UV坐标形式进行表示,即便上述法线信息为同一顶点包含多条法线的硬边信息的情况下,依然可以通过UV坐标形式完整的表示,不会造成法线信息的缺失或需要将多条法线信息的硬边信息均衡成软边信息进行存储,极大的改善了利用顶点色存储法线造成的法线存储精度较低的问题。并且,由于基于一个模型可以生成不限数量的多套UV,也即,信息理论上可以生成不限数量的法线UV表示信息,那么在需要存储多套法线信息的情况下,通过将上述法线信息采用UV坐标形式进行表示,解决了现有的顶点色存储方案中仅能存储一套法线信息的问题。而存储多套法线信息,对于后续模型的渲染等处理带来了较高的自由度,利用多套法线的混合形成较好效果的同时能够尽可能保证较低的着色开销,从而支持模型渲染方案适用更多类型的终端设备。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器406中可以但不限于包括上述模型渲染装置中的获取单元31、表示单元32、计算单元33和渲染单元34。此外,还可以包括但不限于上述模型渲染装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
此外,上述电子设备还包括:显示器,用于显示目标客户端的显示界面。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图8所示的结构仅为示意,实施上述模型渲染方法的设备可以包括终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图8其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中上述任一项模型渲染方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取第一模型的第一法线信息;
S2,将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;
S3,通过法线UV表示信息计算第二法线信息;
S4,基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。
上述存储介质,对于模型着色开销较高不利于模型渲染工作在移动端设备中的运行而简单模型渲染效果差的问题,通过获取第一模型的第一法线信息。将上述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息。通过法线UV表示信息计算第二法线信息。基于上述第一法线信息和/或上述第二法线信息对上述第一模型进行光照渲染。由此,通过叠加二套甚至更多的法线信息,在进行模型渲染时,能够在避免生成较多面数的复杂模型的情况下,生成较好的渲染效果,利于模型渲染工作在移动端设备中的运行。其中,将法线信息采用UV坐标形式进行表示,即便上述法线信息为同一顶点包含多条法线的硬边信息的情况下,依然可以通过UV坐标形式完整的表示,不会造成法线信息的缺失或需要将多条法线信息的硬边信息均衡成软边信息进行存储,极大的改善了利用顶点色存储法线造成的法线存储精度较低的问题。并且,由于基于一个模型可以生成不限数量的多套UV,也即,信息理论上可以生成不限数量的法线UV表示信息,那么在需要存储多套法线信息的情况下,通过将上述法线信息采用UV坐标形式进行表示,解决了现有的顶点色存储方案中仅能存储一套法线信息的问题。而存储多套法线信息,对于后续模型的渲染等处理带来了较高的自由度,利用多套法线的混合形成较好效果的同时能够尽可能保证较低的着色开销,从而支持模型渲染方案适用更多类型的终端设备。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种模型渲染方法,其特征在于,包括:
获取第一模型的第一法线信息;
将所述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;
通过法线UV表示信息计算第二法线信息;
基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
2.根据权利要求1所述的方法,其特征在于,所述获取第一模型的第一法线信息,包括:
生成所述第一模型的复制模型;
获取所述复制模型的法线信息作为所述第一法线信息。
3.根据权利要求2所述的方法,其特征在于,所述获取所述复制模型的法线信息作为所述第一法线信息,包括:
对所述复制模型进行平滑处理和/或倒角处理,生成目标圆滑模型;
获取所述目标圆滑模型的法线信息作为所述第一法线信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染,包括:
通过顶点颜色贴图或材质贴图的方式基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
5.根据权利要求1所述的方法,其特征在于,所述将所述第一法线信息采用UV坐标形式进行表示,以生成法线UV表示信息,包括:
利用标准化向量特性通过所述第一法线信息中的第一分量和第二分量表示所述第一法线信息中的第三分量;
基于所述第一分量和第二分量确定所述法线UV表示信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一分量或所述第二分量的值由[-1,1]区间映射至[0,1]区间;
利用所述映射到[0,1]区间的第一分量或第二分量的符号记录所述第三分量的符号,用于记录所述第三分量的符号的所述第一分量或所述第二分量不为零。
7.根据权利要求1所述的方法,其特征在于,所述法线UV表示信息的坐标空间为世界空间。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在顶点着色阶段进行所述法线UV表示信息至所述法线信息的转换。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第三分量始终为正的情况下,在顶点着色阶段和像素着色阶段进行所述法线UV表示信息至所述法线信息的转换,否则,在顶点着色阶段进行所述法线UV表示信息至所述法线信息的转换。
10.一种模型渲染装置,其特征在于,包括:
获取单元,用于获取第一模型的第一法线信息;
表示单元,用于将所述法线信息采用UV坐标形式进行表示,以生成法线UV表示信息;
计算单元,用于通过法线UV表示信息计算第二法线信息;
渲染单元,用于基于所述第一法线信息和/或所述第二法线信息对所述第一模型进行光照渲染。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210964258.8A CN115272552A (zh) | 2022-08-11 | 2022-08-11 | 模型渲染方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210964258.8A CN115272552A (zh) | 2022-08-11 | 2022-08-11 | 模型渲染方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115272552A true CN115272552A (zh) | 2022-11-01 |
Family
ID=83750768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210964258.8A Pending CN115272552A (zh) | 2022-08-11 | 2022-08-11 | 模型渲染方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115272552A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483783A (zh) * | 2023-04-21 | 2023-07-25 | 北京优酷科技有限公司 | 文件导出方法、装置及设备 |
-
2022
- 2022-08-11 CN CN202210964258.8A patent/CN115272552A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483783A (zh) * | 2023-04-21 | 2023-07-25 | 北京优酷科技有限公司 | 文件导出方法、装置及设备 |
CN116483783B (zh) * | 2023-04-21 | 2023-11-17 | 北京优酷科技有限公司 | 文件导出方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3715792B1 (en) | Method and device for drawing intersection | |
CN111402390B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN110533707B (zh) | 照明估计 | |
JP6868119B2 (ja) | ホログラフィック偽造防止コードの検査方法及び装置 | |
JP2005310160A (ja) | 3次元グラフィックデータの再構成装置及び方法 | |
US8471852B1 (en) | Method and system for tessellation of subdivision surfaces | |
US9177418B1 (en) | System and method for converting computer aided design data into a three dimensional model | |
CN115272552A (zh) | 模型渲染方法和装置 | |
CN111179391A (zh) | 一种三维动画制作方法、系统及存储介质 | |
CN112365598A (zh) | 倾斜摄影数据转换三维数据的方法、装置及终端 | |
CN113470092B (zh) | 地形的渲染方法和装置、电子设备和存储介质 | |
CN113610958A (zh) | 一种基于风格迁移的3d图像构建方法、装置及终端 | |
CN117292039A (zh) | 顶点坐标生成方法、装置、电子设备及计算机存储介质 | |
CN111815748A (zh) | 一种动画处理方法、装置、存储介质及电子设备 | |
CN108564661B (zh) | 一种基于增强现实场景的记录方法 | |
CN114022616B (zh) | 模型处理方法及装置、电子设备及存储介质 | |
CN115713585A (zh) | 纹理图像重建方法、装置、计算机设备和存储介质 | |
US11222478B1 (en) | System and method for automated transformation of multimedia content into a unitary augmented reality module | |
CN115375812A (zh) | Cad数据渲染方法、装置、电子设备及存储介质 | |
CN113205579B (zh) | 三维重建方法、装置、设备及存储介质 | |
JP6847033B2 (ja) | ハイブリッドブロックベースの圧縮 | |
CN114049403A (zh) | 一种多角度三维人脸重建方法、装置及存储介质 | |
CN110038301B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113434919A (zh) | 几何模型重建方法、装置、电子设备及存储介质 | |
CN113496468A (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 |