CN116993889A - 纹理渲染方法、装置、终端及存储介质 - Google Patents
纹理渲染方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN116993889A CN116993889A CN202211514341.1A CN202211514341A CN116993889A CN 116993889 A CN116993889 A CN 116993889A CN 202211514341 A CN202211514341 A CN 202211514341A CN 116993889 A CN116993889 A CN 116993889A
- Authority
- CN
- China
- Prior art keywords
- texture
- point
- undersampled
- virtual object
- target virtual
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000005070 sampling Methods 0.000 claims abstract description 35
- 239000003086 colorant Substances 0.000 claims description 33
- 239000011159 matrix material Substances 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 16
- 238000005286 illumination Methods 0.000 abstract description 55
- 230000000007 visual effect Effects 0.000 abstract description 29
- 238000005457 optimization Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种纹理渲染方法、装置、终端及存储介质,属于计算机技术领域。方法包括:基于目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理;基于目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,欠采样点用于指示未进行光线采样的纹理像素点,光线信息用于指示纹理像素点的光线的颜色值;对于任一个欠采样点,基于欠采样点相邻的多个纹理像素点的光线,确定欠采样点的光线的颜色值;基于至少一个欠采样点的光线的颜色值,重新渲染目标虚拟对象的纹理。该方法能够对目标虚拟对象的纹理进行光照视觉重建,提升局部纹理的视觉效果,也即提升欠采样点的纹理的视觉效果,实现了对纹理的优化,且硬件资源的消耗量较少。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种纹理渲染方法、装置、终端及存储介质。
背景技术
随着计算机技术的发展,游戏的种类越来越多,用户更倾向于玩与真实世界更接近的游戏。其中,如果游戏中各个游戏对象的纹理具有真实世界的效果,则会提高游戏的真实性,从而吸引更多的用户。然而,在游戏中,很多时候游戏对象在光照下的纹理并没有达到光照效果。因此,如何优化游戏对象的纹理,是一个需要解决的问题。
目前,通常采用神经网络对游戏中各个游戏对象的纹理进行光照视觉重建,使得游戏对象在光照下的纹理能够达到光照效果,从而优化各个游戏对象的纹理。但是,由于上述方法是对游戏中的全部纹理进行光照视觉重建,导致计算量较大,需要耗费大量的硬件资源。
发明内容
本申请实施例提供了一种纹理渲染方法、装置、终端及存储介质,能够提升欠采样点的纹理的视觉效果,实现了对纹理的优化。所述技术方案如下:
一方面,提供了一种纹理渲染方法,所述方法包括:
基于目标虚拟对象的立方体表面光场图像,生成所述目标虚拟对象的3D纹理,所述立方体表面光场图像由所述目标虚拟对象的多个纹理图像组成,所述多个纹理图像通过从不同角度对所述目标虚拟对象已渲染的纹理进行拍摄得到;
基于所述目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,所述欠采样点用于指示未进行光线采样的纹理像素点,所述光线信息用于指示纹理像素点的光线的颜色值;
对于任一个欠采样点,基于所述欠采样点相邻的多个纹理像素点的光线,确定所述欠采样点的光线的颜色值;
基于所述至少一个欠采样点的光线的颜色值,重新渲染所述目标虚拟对象的纹理。
另一方面,提供了一种纹理渲染装置,所述装置包括:
生成模块,用于基于目标虚拟对象的立方体表面光场图像,生成所述目标虚拟对象的3D纹理,所述立方体表面光场图像由所述目标虚拟对象的多个纹理图像组成,所述多个纹理图像通过从不同角度对所述目标虚拟对象已渲染的纹理进行拍摄得到;
第一确定模块,用于基于所述目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,所述欠采样点用于指示未进行光线采样的纹理像素点,所述光线信息用于指示纹理像素点的光线的颜色值;
第二确定模块,用于对于任一个欠采样点,基于所述欠采样点相邻的多个纹理像素点的光线,确定所述欠采样点的光线的颜色值;
渲染模块,用于基于所述至少一个欠采样点的光线的颜色值,重新渲染所述目标虚拟对象的纹理。
在一些实施例中,所述第二确定模块,用于对于任一个欠采样点,确定与所述欠采样点的距离小于距离阈值的多个纹理像素点;基于所述纹理像素点的权重,对所述多个纹理像素点的光线的颜色值进行加权求和,得到所述欠采样点的光线的颜色值,所述纹理像素点的权重用于指示所述纹理像素点与所述欠采样点之间距离的远近。
在一些实施例中,所述装置还包括:
第三确定模块,用于对于所述多个纹理像素点中的任一纹理像素点,基于距离参数以及所述纹理像素点与所述欠采样点之间的距离,确定所述纹理像素点的权重。
在一些实施例中,所述第一确定模块,用于基于目标视点的视点参数,确定从所述目标视点到所述立方体表面光场图像的多条光线;确定所述多条光线与所述立方体表面光场图像的多个交点;对于所述多个交点中的任一交点,在所述交点为未进行光线采样的纹理像素点的情况下,确定所述交点为欠采样点。
在一些实施例中,所述第一确定模块,用于在所述交点为已进行光线采样的纹理像素点的情况下,基于所述目标虚拟对象的3D纹理中的光线信息,查询所述交点的颜色值;将所述交点的颜色值作为穿过所述交点的光线的颜色值。
在一些实施例中,所述立方体表面光场图像的六个表面分别对应六个立方体贴图;所述生成模块,用于生成所述六个立方体贴图分别对应的六个图像矩阵,所述图像矩阵中的元素用于表示所述立方体贴图中纹理像素点的坐标;对于所述六个图像矩阵中的任一图像矩阵,基于所述图像矩阵中的元素,对所述图像矩阵进行横向拼接,得到所述图像矩阵对应的一维矩阵,所述一维矩阵的维度的数量等于所述图像矩阵中的元素的数量;基于所述六个图像矩阵对应的六个一维矩阵,生成所述目标虚拟对象的3D纹理。
在一些实施例中,所述装置还包括:
划分模块,用于将所述目标虚拟对象的3D纹理划分成多个像素块,所述像素块包括多个纹理像素点;
第四确定模块,用于对于所述多个像素块中的任一像素块,基于所述像素块中多个纹理像素点的颜色值,确定所述像素块的灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,所述颜色系数用于确定所述纹理像素点的颜色值;
存储模块,用于存储所述灰度空间的两个端点颜色和所述每一个纹理像素点的颜色系数。
在一些实施例中,所述第四确定模块,用于基于所述像素块中多个纹理像素点的颜色值,确定所述像素块的RGB空间的两个端点颜色和每一个纹理像素点的颜色系数;将所述两个端点颜色由RGB空间转换至灰度空间,得到灰度空间的两个端点颜色。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行以实现本申请实施例中的纹理渲染方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一段计算机程序,所述至少一段计算机程序由处理器加载并执行以实现如本申请实施例中的纹理渲染方法。
另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行以实现本申请实施例中的纹理渲染方法。
本申请实施例提供了一种纹理渲染方案,通过目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理,能够根据3D纹理中的光线信息,确定欠采样点,也即是确定未进行光线采样的纹理像素点。欠采样点对应的纹理像素点在光照下并没有达到光照效果。通过与欠采样点相邻的多个已进行光线采样的纹理像素点的光线,确定欠采样点的光线的颜色值,并重新渲染目标虚拟对象的纹理,能够对目标虚拟对象的纹理进行光照视觉重建,从而提升局部纹理的视觉效果,也即提升欠采样点的纹理的视觉效果,实现了对纹理的优化,且硬件资源的消耗量较少。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的一种纹理渲染方法的实施环境;
图2是根据本申请实施例提供的一种纹理渲染方法的流程图;
图3是根据本申请实施例提供的另一种纹理渲染方法的流程图;
图4是根据本申请实施例提供的一种纹理加载的示意图;
图5是根据本申请实施例提供的一种立方体贴图的示意图;
图6是根据本申请实施例提供的一种纹理渲染的流程图;
图7是根据本申请实施例提供的一种纹理渲染装置的框图;
图8是根据本申请实施例提供的另一种纹理渲染装置的框图;
图9是根据本申请实施例提供的一种终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的目标虚拟对象的立方体表面光场图像是在充分授权的情况下获取的。
以下,对本申请涉及的术语进行解释。
虚拟场景:是一个虚拟的开放空间,该虚拟场景可以是对真实世界的仿真场景,也可以是半仿真半虚构的场景,还可以是纯虚构的场景。可选地,虚拟场景可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种,下述实施例以虚拟场景是三维虚拟场景来举例说明,但对此不加以限定。
示意性的,该虚拟场景中包括虚拟对象。可选地,虚拟对象可以是虚拟场景中的场景组成元素,如虚拟场景中的虚拟建筑物,也可以是位于虚拟场景中的场景参与元素,如,活动于虚拟场景中的虚拟对象等。可选地,上述虚拟对象可以是二维虚拟对象、2.5维虚拟对象和三维虚拟对象中的任意一种。
纹理图像:为提升虚拟场景的真实性,会在虚拟场景中添加虚拟光源,从而在虚拟场景中体现光照效果。为实现虚拟场景中虚拟光源对应光照效果,可以通过在虚拟场景中加载虚拟光源对应的纹理图像,即,上述纹理图像能够使得物体模型渲染出光照效果。
结合上述名词解释,对本申请提供的纹理渲染方法的应用场景进行示意性说明,该方法可以应用于如下场景中。
在游戏的设计调试阶段中,设计人员可以对游戏应用在生成虚拟场景时对虚拟场景中虚拟对象的纹理渲染效果进行调试。例如,将游戏应用运行在不同配置的设备上,根据虚拟对象在不同配置的设备上的纹理渲染情况进行调试。其中,在虚拟场景的纹理渲染过程中,由于设备机型不同或者虚拟对象的纹理渲染先后顺序的问题可能导致虚拟对象的纹理渲染耗费时间较长,甚至纹理渲染失败等异常情况。当存在纹理渲染的异常情况时,获取虚拟对象的立方体表面光场图像,基于立方体表面光场图像的立方体贴图,生成该虚拟对象的3D纹理。然后,基于3D纹理中的光线信息,确定至少一个欠采样点的光线的颜色值,重新渲染虚拟对象的纹理,得到包含更多光线信息的纹理图像。上述方式能够在纹理渲染效果调试过程中,对局部的纹理图像进行光照视觉重建,从而提升纹理图像的视觉效果。
需要说明的是,上述应用场景仅为举例性说明,该纹理渲染方法还可以应用于其他虚拟场景中纹理渲染的过程中,在此不进行具体限定。
本申请实施例提供的纹理渲染方法,能够由终端执行。下面介绍一下本申请实施例提供的纹理渲染方法的实施环境,图1是根据本申请实施例提供的一种纹理渲染方法的实施环境示意图。参见图1,该实施环境包括终端101和服务器102。
终端101和服务器102能够通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些实施例中,终端101是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、车载终端、飞行器以及VR(Virtual Reality,虚拟现实)、AR(AugmentedReality,增强现实)等虚拟现实设备,但并不局限于此。示意性的,终端110中运行有应用程序,该应用程序可实现为游戏应用或游戏调试应用。在一些实施例中,上述当上述应用程序实现为游戏应用时,上述游戏应用可以是第三人称射击(Third-Personal Shooting,TPS)游戏、第一人称射击(First-Person Shooting,FPS)游戏、多人在线战术竞技游戏(Multiplayer Online BattleArena,MOBA)、大型多人在线角色扮演游戏(MassiveMultiplayer Online Role-Playing Game,MMORPG)、策略游戏等中的任意一种。可选地,当应用程序实现为游戏调试应用时,上述游戏调试应用可以实现为能够构建虚拟场景并对虚拟场景中的虚拟对象进行渲染的游戏引擎。例如,虚幻引擎4(Unreal Engine 4,UE4)、Unity3D、狂暴引擎(RAGE Engine)、寒霜引擎(Frostbite Engine)等中的至少一种。
在一些实施例中,服务器102是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102用于为应用程序提供后台服务。在一些实施例中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102和终端101二者之间采用分布式计算架构进行协同计算。
本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。
图2是根据本申请实施例提供的一种纹理渲染方法的流程图,如图2所示,在本申请实施例中以由终端执行为例进行说明。该纹理渲染方法包括以下步骤:
201、终端基于目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理,立方体表面光场图像由目标虚拟对象的多个纹理图像组成,多个纹理图像通过从不同角度对目标虚拟对象已渲染的纹理进行拍摄得到的。
在本申请实施例中,终端上安装有支持虚拟场景的应用程序。终端在运行该应用程序时,能够在屏幕上显示虚拟场景,该虚拟场景中显示有至少一个虚拟对象。其中,在目标虚拟对象的纹理渲染较慢或者纹理渲染的质量较差的情况下,目标虚拟对象的纹理图像为低光照图像,目标虚拟对象的纹理在光照下并不能达到光照效果,需要对该目标虚拟对象的纹理进行光照视觉重建,以使提升目标虚拟对象的纹理的视觉效果。
对于纹理渲染质量较差的目标虚拟对象,终端提取该目标虚拟对象对应的立方体表面光场。该立方体表面光场的各个表面分别记录了目标虚拟对象不同角度的纹理。终端基于目标虚拟对象不同角度的纹理,生成目标虚拟对象的3D纹理。终端基于目标虚拟对象的3D纹理,能够对目标虚拟对象的纹理进行光照视觉重建。
202、终端基于目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,欠采样点用于指示未进行光线采样的纹理像素点,光线信息用于指示纹理像素点的光线的颜色值。
在本申请实施例中,目标虚拟对象的3D纹理中的光线信息能够指示立方体表面光场图像中纹理像素点的光线的颜色值以及该纹理像素点的光线采样情况。对于已进行光线采样的纹理像素点,纹理像素点的颜色值是该纹理像素点的光线的颜色值,该纹理像素点在光照下能够达到光照效果。对于未进行光线采样的纹理像素点,由于光线具有颜色值,但是该纹理像素点并没有采样到光线的颜色,因此该纹理像素点不具有颜色值,从而该纹理像素点在光照下不能达到光照效果。
终端基于目标虚拟对象的3D纹理中的光线信息,确定立方体表面光场图像中至少一个未进行光线采样的纹理像素点,并将未进行光线采样的纹理像素点确定为欠采样点。
203、对于任一个欠采样点,终端基于欠采样点相邻的多个纹理像素点的光线,确定欠采样点的光线的颜色值。
在本申请实施例中,部分纹理像素点为欠采样点。由于相邻的纹理像素点的光线的颜色值通常较为相近,因此通过与欠采样点相邻的已进行光线采样的纹理像素点的颜色值,能够确定欠采样点的光线的颜色值。对于任一个欠采样点,终端确定与该欠采样点相邻的已进行光线采样的多个纹理像素点。终端基于已进行光线采样的多个纹理像素点光线的颜色值,确定欠采样点的光线的颜色值。
204、终端基于至少一个欠采样点的光线的颜色值,重新渲染目标虚拟对象的纹理。
在本申请实施例中,终端确定至少一个欠采样点的光线的颜色值之后,能够通过具有该颜色值的光线,替换欠采样点没有颜色的光线,然后重新渲染目标虚拟对象的纹理,得到高光照图像,即是包括更多已进行光线采样的纹理像素点的纹理图像,从而使虚拟对象的纹理能够在光照下达到较好的光照效果。
本申请实施例提供了一种纹理渲染方法,通过目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理,能够根据3D纹理中的光线信息,确定欠采样点,也即是确定未进行光线采样的纹理像素点。欠采样点对应的纹理像素点在光照下并没有达到光照效果。通过与欠采样点相邻的多个已进行光线采样的纹理像素点的光线,确定欠采样点的光线的颜色值,并重新渲染目标虚拟对象的纹理,能够对目标虚拟对象的纹理进行光照视觉重建,从而提升局部纹理的视觉效果,也即提升欠采样点的纹理的视觉效果,实现了对纹理的优化,且硬件资源的消耗量较少。
图3是根据本申请实施例提供的另一种纹理渲染方法的流程图,如图3所示,在本申请实施例中以由终端执行为例进行说明。该纹理渲染方法包括以下步骤:
301、终端获取目标虚拟对象的立方体表面光场图像,立方体表面光场图像由目标虚拟对象的多个纹理图像组成,多个纹理图像通过从不同角度对目标虚拟对象已渲染的纹理进行拍摄得到。
在本申请实施例中,目标虚拟对象的纹理图像为低光照图像,即目标虚拟对象的纹理渲染较慢或者纹理渲染的质量较差,从而导致目标虚拟对象的纹理在光照下并不能达到光照效果,需要对该目标虚拟对象的纹理进行光照视觉重建,以提升目标虚拟对象的纹理的视觉效果。因此,终端提取该目标虚拟对象的立方体表面光场。该立方体表面光场的各个表面分别记录了目标虚拟对象不同角度的已渲染的纹理。
在一些实施例中,终端能够通过debug(故障调试)工具提取目标虚拟对象的立方体表面光场。在debug提取过程中,渲染速度较慢或者渲染的质量较差的纹理会出现加载较慢的情况。图4是根据本申请实施例提供的一种纹理加载的示意图。参见图4所示,401为显示有加载圆圈的纹理,该纹理的渲染速度较慢,需要对其进行光照视觉重建,以提升该纹理的视觉效果。402为渲染正常的纹理,该纹理在光照下能够达到光照效果。
终端基于目标虚拟对象的立方体表面光场图像,执行下述步骤302-307进行纹理处理,基于立方体表面光场图像对应的多视图图像,生成3D纹理,并压缩3D纹理以减少渲染过程中所需的纹理内存。在进行纹理处理的过程中,终端还能够执行下述步骤308-310进行几何处理,以通过光线与立方体表面光场图像之间的交点,确定渲染纹理所需的光线参数。
302、终端基于目标虚拟对象的立方体表面光场图像,生成六个立方体贴图分别对应的六个图像矩阵,立方体表面光场图像的六个表面分别对应六个立方体贴图,图像矩阵中的元素用于表示立方体贴图中纹理像素点的坐标。
在本申请实施例中,目标虚拟对象的立方体表面光场图像为六面体,包括六个表面,每个表面分别对应一个立方体贴图。例如,图5是根据本申请实施例提供的一种立方体贴图的示意图。参见图5所示,立方体表面光场图像的六个表面分别对应+X、+Y、+Z、-X、-Y、-Z六个立方体贴图,每个立方体贴图从+X到-Z线性排列。
终端基于六个立方体贴图,根据每个视点在采样点中的位置,为每个立方体贴图生成如下述公式(1)所示的m行n列的图像矩阵。其中,视点为转换立方体表面光场图像时,在某个表面正对屏幕时,人眼能够看见的点。采样点指的是整个屏幕的图像上的点。
其中,m为图像矩阵的行数,n为图像矩阵的列数。Iij表示第I个立方体贴图中第i行第j列的纹理像素点在该立方体贴图表面上的坐标。
303、对于六个图像矩阵中的任一图像矩阵,终端基于图像矩阵中的元素,对图像矩阵进行横向拼接,得到图像矩阵对应的一维矩阵,一维矩阵的维度的数量等于图像矩阵中的元素的数量。
在本申请实施例中,为了生成目标虚拟对象的3D纹理,需要将图像的2D图像矩阵,即公式(1)转换至线性空间。终端基于图像矩阵中的元素,通过下述公式(2),按照图像矩阵的行的序号对图像矩阵进行排列扫描,以对图像矩阵进行横向拼接,得到图像矩阵对应的一维矩阵。通过按照图像矩阵的行的序号,对图像矩阵进行排列扫描,能够快速对图像矩阵进行横向拼接,提升了处理速度。
z(i,j)=(m-1)×(j+i),z∈[0,i×j] (2)
其中,深度z能够指示扫描的位置。m为排列扫描时行的序号。i和j为坐标为(i,j)的纹理像素点在立方体贴图中所在的行数和列数。
304、终端基于六个图像矩阵对应的六个一维矩阵,生成目标虚拟对象的3D纹理。
在本申请实施例中,终端对每个图像矩阵分别执行上述步骤303后,得到每个图像矩阵对应的一维矩阵。终端基于六个图像矩阵对应的六个一维矩阵,通过下述公式(3),生成目标虚拟对象的3D纹理。通过将六个一维矩阵在单个立方体贴图表面的坐标进行映射,得到在立方体表面光场图像中的纹理像素点的坐标,能够将图像的2D矩阵,映射至3D空间,从而生成目标虚拟对象的3D纹理。
Tc(z,x,y)=[Iz(0,0)(x,y),…,Iz(0,n)(x,y),…,Iz(0,n)(i,j),…, (3)
Iz(m,0)(x,y),…,Iz(m,n)(x,y)]
其中,c的取值范围为[1,6],Tc(z,x,y)能够表示第c个图像矩阵对应的一维矩阵。Iz(0,0)(x,y)表示第c个立方体贴图中第0行第0列的纹理像素点通过公式(2)进行排列扫描并进行坐标映射后对应的坐标为(x,y)。Iz(m,n)(x,y)表示第c个立方体贴图中第m行第n列的纹理像素点通过公式(2)进行排列扫描并进行坐标映射后对应的坐标为(x,y)。x和y分别表示立方体表面光场图像中的纹理像素点的坐标。(i,j)表示第c个立方体贴图中第i行第j列的纹理像素点在该立方体贴图表面上的坐标。
需要说明的是,生成的3D纹理的数据量通常非常大。对于光照视觉分辨率为m×n×w×h的纹理,单个2D纹理的内存为w×h×4字节,所有纹理的内存是m×n×w×h×4字节。其中,m和n为图像矩阵的行和列,即立方体表面光场图像的角度分辨率。w和h为每个纹理图像的像素宽度和高度,即立方体表面光场图像的空间分辨率。例如,一个立方体表面光场图像的光照视觉分辨率为100×100×512×512,每个通道占用8位,则该立方体表面光场图像的角度分辨率为100×100,空间光照分辨率为512×512,在渲染中至少需要100M(兆)的内存。因此为了减少渲染立方体表面光场所占用的内存,可以通过执行下述步骤305-307对生成的3D纹理进行压缩。
需要说明的是,下述步骤305-307为可选步骤,也即生成目标虚拟对象的3D纹理之后,也可以不对该3D纹理进行压缩,直接基于该3D纹理进行处理。
305、终端将目标虚拟对象的3D纹理划分成多个像素块,像素块包括多个纹理像素点。
在本申请实施例中,由于3D纹理中相邻的纹理像素点的颜色值较为相近,因此终端将目标虚拟对象的3D纹理划分成多个像素块,每个像素块中的多个纹理像素点的颜色值较为相近,便于后续基于像素块对3D纹理进行压缩。
例如,终端将3D纹理中的每个纹理划分为若干个像素块,每个像素块包含4×4个纹理像素点。
306、对于多个像素块中的任一像素块,终端基于像素块中多个纹理像素点的颜色值,确定像素块的灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,颜色系数用于确定纹理像素点的颜色值。
在本申请实施例中,由于每个像素块中的多个纹理像素点的颜色值较为相近,因此可以根据少数几个颜色和每一个纹理像素点的颜色系数,确定像素块中每个纹理像素点的颜色。由于纹理像素点的颜色值均匀分布在RGB空间中,通过Y=0.3*R+0.59*G+0.11*B进行RGB空间与灰度空间的转换,能够得到该像素块在灰度空间中的两个端点的颜色。其中,两个端点的颜色分别为C0和C3,C0为该像素块中多个纹理像素点的颜色值对应的灰度值中最亮的灰度值,C3为该像素块中多个纹理像素点的颜色值对应的灰度值中最暗的灰度值。通过上述两个端点颜色以及每一个纹理像素点的颜色系数,能够确定每个纹理像素点的颜色值。
在一些实施例中,终端通过采用两种额外的颜色来进一步提高压缩率。相应地,每个4×4像素块由四种颜色和每一个纹理像素点的颜色系数表示。其中,四种颜色分别为C0、C1、C2和C3,本申请实施例对C1和C2的颜色值不做限定。因此,4×4像素块中每个纹理像素点的颜色值由上述四种颜色中最接近的颜色进行编码,并且能够通过查找表C0:00,C1:01,C2:10,C3:11表示该纹理像素点的颜色值。
在一些实施例中,终端通过下述公式(4)所示的压缩率公式,对像素块进行压缩。
Z=α*X+β*Y (4)
其中,α和β为常数,用于表示压缩率的大小。可选地,α为2/3,β为1/3。X表示像素块中纹理像素点的最亮颜色值,Y表示表示像素块中纹理像素点的最暗颜色值。
在一些实施例中,终端基于像素块中多个纹理像素点的颜色值,确定像素块的RGB空间的两个端点颜色和每一个纹理像素点的颜色系数。终端通过Y=0.3*R+0.59*G+0.11*B将两个端点颜色由RGB空间转换至灰度空间,得到灰度空间的两个端点颜色。通过灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,来表示像素块中多个纹理像素点的颜色值,能够实现对像素块的压缩。
307、终端存储灰度空间的两个端点颜色和每一个纹理像素点的颜色系数。
在本申请实施例中,终端存储压缩后的纹理的过程中,灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,其他纹理像素点的颜色值可以通过对应的颜色系数对上述两个端点颜色进行插值得到。通过灰度空间的两个端点颜色和每一个纹理像素点的颜色系数表示像素块中每个纹理像素点的颜色值,能够减少存储目标虚拟对象的3D纹理所需的存储空间。对于RGBA四个通道的3D纹理,每个4×4像素块压缩之前的数据量为16*4=64字节,压缩之后通过8个字节就能存储4×4像素块,每个纹理像素点平均可以用0.5个字节表示。因此,通过上述步骤对3D纹理进行压缩,每个像素块的数据量可以减少到未压缩之前数据量的1/8,能够有效的降低存储目标虚拟对象的3D纹理所需的存储空间。
需要说明的是,在进行上述纹理处理的过程中,终端还能够执行下述步骤308-310进行几何处理,以通过光线与立方体表面光场图像之间的交点,确定渲染纹理所需的光线参数。
308、终端基于目标视点的视点参数,确定从目标视点到立方体表面光场图像的多条光线。
在本申请实施例中,通过目标视点的视点参数(也可以称为相机参数),终端可以确定从该目标视点到像立方体表面光场图像中每个纹理像素点的光线。其中,从目标视点到立方体表面光场图像的光线可以通过单层光线投射来实现。
在一些实施例中,终端基于从目标视点发出的光线与立方体表面光场图像之间的交点就可以确定该光线的光线参数。其中,光线参数能够指示目标视点的视点参数与上述交点之间的坐标关系。
309、终端确定多条光线与立方体表面光场图像的多个交点。
在本申请实施例中,由于立方体表面光场图像的结构较为简单,并且立方体表面光场图像的模型为正方体,因此能够较为快速地确定多条光线与立方体表面光场图像的多个交点。
310、对于多个交点中的任一交点,终端在交点为未进行光线采样的纹理像素点的情况下,确定交点为欠采样点。
在本申请实施例中,每个交点分别对应立方体表面光场图像中的一个纹理像素点。目标虚拟对象的3D纹理中包括光线信息,光线信息能够指示立方体表面光场图像中纹理像素点的光线的颜色值以及该纹理像素点的光线采样情况。通过查询该纹理像素点在目标虚拟对象的3D纹理中的光线信息,能够确定该纹理像素点的光线的颜色值以及该纹理像素点的光线采样情况。对于已进行光线采样的纹理像素点,纹理像素点的颜色值是该纹理像素点的光线的颜色值,该纹理像素点在光照下能够达到光照效果。对于未进行光线采样的纹理像素点,由于光线具有颜色值,但是该纹理像素点并没有采样到光线的颜色,因此该纹理像素点不具有颜色值,从而该纹理像素点在光照下不能达到光照效果。
终端基于目标虚拟对象的3D纹理中的光线信息,从上述多个交点对应的纹理像素点中,确定至少一个未进行光线采样的纹理像素点,并将未进行光线采样的纹理像素点确定为欠采样点。通过将未进行光线采样的纹理像素点作为欠采样点,能够快速准确的在立方体表面光场图像中确定多个欠采样点。
在一些实施例中,在交点为已进行光线采样的纹理像素点的情况下,终端基于目标虚拟对象的3D纹理中的光线信息,查询交点对应的纹理像素点的颜色值。终端将交点对应的纹理像素点的颜色值作为穿过交点的光线的颜色值。通过将已进行光线采样的纹理像素点的颜色值作为穿过该纹理像素点的光线的颜色值,能够快速准确地确定穿过已进行光线采样的纹理像素点的光线的颜色值。
在一些实施例中,终端通过OPENGL(Open Graphics Library,开放式图形库)将目标虚拟对象的3D纹理压缩到一个单独的容器中,然后将DDS(Direct Draw Surface)文件作为目标虚拟对象的3D纹理传递给片段着色器,以供后续GPU(Graphics Processing Unit,图形处理器)查询纹理像素点的光线的颜色值。
311、对于任一个欠采样点,终端确定与欠采样点的距离小于距离阈值的多个纹理像素点。
在本申请实施例中,由于相邻的纹理像素点的光线的颜色值通常较为相近,因此通过与欠采样点相邻的已进行光线采样的纹理像素点的颜色值,能够确定欠采样点的光线的颜色值。对于任一个欠采样点,终端确定与该欠采样点的距离小于距离阈值的多个已进行光线采样的纹理像素点作为与该欠采样点相邻的纹理像素点。其中,距离阈值可以是与该欠采样点的距离5个纹理像素点或者与该欠采样点的距离10个纹理像素点等,本申请实施例对距离阈值不做限定。
例如,终端将与欠采样点的距离小于距离阈值的4×4个已进行光线采样的纹理像素点作为与该欠采样点相邻的纹理像素点。
312、对于多个纹理像素点中的任一纹理像素点,终端基于距离参数以及纹理像素点与欠采样点之间的距离,确定纹理像素点的权重,纹理像素点的权重用于指示纹理像素点与欠采样点之间距离的远近。
在本申请实施例中,对于多个纹理像素点中的任一纹理像素点,终端确定该纹理像素点和欠采样点的坐标。终端基于该纹理像素点和欠采样点的坐标,通过下述公式(5)和公式(6)确定纹理像素点与欠采样点之间的距离。其中,纹理像素点和欠采样点在3D纹理中的坐标为二维UV坐标,水平方向为U维度,垂直方向为V维度,通过二维的UV坐标系,能够确定任意一个纹理像素点的坐标(ui,vj)以及欠采样点的坐标(u,v)。
dui=ui-u (5)
其中,ui为纹理像素点在二维UV坐标系中U维度上的坐标,vj为纹理像素点在二维UV坐标系中V维度上的坐标。u为欠采样点在二维UV坐标系中U维度上的坐标,v为欠采样点在二维UV坐标系中V维度上的坐标。dui和dvj为纹理像素点与欠采样点在U维度和V维度上的距离。
终端基于距离参数以及纹理像素点与欠采样点之间的距离,通过下述公式(7)和公式(8)确定该纹理像素点的权重。
/>
w(ui,vj)=w(dui)*w(dvj) (8)
其中,a为距离参数,a的取值范围为(-1,0),一般为固定值-0.5。w(ui,vj)表示坐标为(ui,vj)的纹理像素点的权重。d为纹理像素点与欠采样点之间的距离。
313、终端基于纹理像素点的权重,对多个纹理像素点的光线的颜色值进行加权求和,得到欠采样点的光线的颜色值。
在本申请实施例中,终端基于每个纹理像素点的权重,对与该欠采样点的距离小于距离阈值的多个纹理像素点的光线的颜色值进行加权求和,以确定该欠采样点的光线的颜色值。通过纹理像素点与欠采样点之间距离的远近,来对多个纹理像素点的光线的颜色值进行加权求和,能够混合距离欠采样点较近的多个纹理像素点的颜色值,并作为欠采样点的光线的颜色,从而较为准确的得到欠采样点的光线的颜色值。
例如,终端通过下述公式(9)对与欠采样点的距离小于距离阈值的4×4个纹理像素点的光线的颜色值进行加权求和。
其中,L(u,v,s*,t*)为欠采样点的光线,(u,v)为欠采样点的坐标,(s*,t*)为该欠采样点的光线方向。L(ui,vj,s*,t*)为纹理像素点的光线,根据i和j的取值的不同,能够确定i×j个纹理像素点中的任一纹理像素点的坐标为(ui,vj),w(ui,vj)为该纹理像素点的权重。
314、终端基于至少一个欠采样点的光线的颜色值,重新渲染目标虚拟对象的纹理。
在本申请实施例中,终端基于至少一个欠采样点的光线的颜色值,重新渲染目标虚拟对象的纹理,得到高光照图像,即是包括更多已进行光线采样的纹理像素点的纹理图像,并将虚拟对象的纹理图像替换为高光照图像,能够使虚拟对象的纹理能够在光照下达到较好的光照效果。
在一些实施例中,终端使用重新渲染目标虚拟对象的纹理得到的高光照纹理图像替换掉原始的低光照纹理图像,然后进行重编译。如果性能损耗没有增加,并且虚拟对象的纹理能够在光照下达到较好的光照效果,表明对目标虚拟对象的纹理进行了有效的优化。
为了更清楚的说明对目标虚拟对象的纹理进行光照视觉重建的过程,下面结合图6所示的纹理渲染的流程图对上述纹理优化过程进行说明。首先,终端提取目标虚拟对象的立方体表面光场图像,分别对该立方体表面光场图像进行纹理处理和几何处理。在纹理处理过程中,终端基于立方体表面光场图像对应的多视图图像,生成3D纹理。然后对3D纹理进行块压缩,以减少渲染过程中所需的纹理内存。在几何处理过程中,终端采用单层相机投射方法,确定目标视点的视点参数(相机参数)和目标视点与立方体表面光场图像之间的多条光线。通过多条光线与立方体表面光场图像之间的交点,确定光线参数。然后终端通过GPU纹理映射,对多个纹理像素点的光线的颜色值进行加权求和,得到欠采样点的光线的颜色值,并重新渲染目标虚拟对象的纹理,以提升目标虚拟对象的纹理的视觉效果。
本申请实施例提供了一种纹理渲染方法,通过目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理,能够根据3D纹理中的光线信息,确定欠采样点,也即是确定未进行光线采样的纹理像素点。欠采样点对应的纹理像素点在光照下并没有达到光照效果。通过与欠采样点相邻的多个已进行光线采样的纹理像素点的光线,确定欠采样点的光线的颜色值,并重新渲染目标虚拟对象的纹理,能够对目标虚拟对象的纹理进行光照视觉重建,从而提升局部纹理的视觉效果,也即提升欠采样点的纹理的视觉效果,实现了对纹理的优化,且硬件资源的消耗量较少。
图7是根据本申请实施例提供的一种纹理渲染装置的框图。该装置用于执行上述纹理渲染方法,参见图7,装置包括:生成模块701、第一确定模块702、第二确定模块703和渲染模块704。
生成模块701,用于基于目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理,立方体表面光场图像由目标虚拟对象的多个纹理图像组成,多个纹理图像通过从不同角度对目标虚拟对象已渲染的纹理进行拍摄得到;
第一确定模块702,用于基于目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,欠采样点用于指示未进行光线采样的纹理像素点,光线信息用于指示纹理像素点的光线的颜色值;
第二确定模块703,用于对于任一个欠采样点,基于欠采样点相邻的多个纹理像素点的光线,确定欠采样点的光线的颜色值;
渲染模块704,用于基于至少一个欠采样点的光线的颜色值,重新渲染目标虚拟对象的纹理。
在一些实施例中,第二确定模块703,用于对于任一个欠采样点,确定与欠采样点的距离小于距离阈值的多个纹理像素点;基于纹理像素点的权重,对多个纹理像素点的光线的颜色值进行加权求和,得到欠采样点的光线的颜色值,纹理像素点的权重用于指示纹理像素点与欠采样点之间距离的远近。
图8是根据本申请实施例提供的另一种纹理渲染装置的框图。参见图8所示,装置还包括:
第三确定模块705,用于对于多个纹理像素点中的任一纹理像素点,基于距离参数以及纹理像素点与欠采样点之间的距离,确定纹理像素点的权重。
在一些实施例中,第一确定模块702,用于基于目标视点的视点参数,确定从目标视点到立方体表面光场图像的多条光线;确定多条光线与立方体表面光场图像的多个交点;对于多个交点中的任一交点,在交点为未进行光线采样的纹理像素点的情况下,确定交点为欠采样点。
在一些实施例中,第一确定模块702,用于在交点为已进行光线采样的纹理像素点的情况下,基于目标虚拟对象的3D纹理中的光线信息,查询交点的颜色值;将交点的颜色值作为穿过交点的光线的颜色值。
在一些实施例中,立方体表面光场图像的六个表面分别对应六个立方体贴图;生成模块701,用于生成六个立方体贴图分别对应的六个图像矩阵,图像矩阵中的元素用于表示立方体贴图中纹理像素点的坐标;对于六个图像矩阵中的任一图像矩阵,基于图像矩阵中的元素,对图像矩阵进行横向拼接,得到图像矩阵对应的一维矩阵,一维矩阵的维度的数量等于图像矩阵中的元素的数量;基于六个图像矩阵对应的六个一维矩阵,生成目标虚拟对象的3D纹理。
在一些实施例中,参见图8所示,装置还包括:
划分模块706,用于将目标虚拟对象的3D纹理划分成多个像素块,像素块包括多个纹理像素点;
第四确定模块707,用于对于多个像素块中的任一像素块,基于像素块中多个纹理像素点的颜色值,确定像素块的灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,颜色系数用于确定纹理像素点的颜色值;
存储模块708,用于存储灰度空间的两个端点颜色和每一个纹理像素点的颜色系数。
在一些实施例中,第四确定模块707,用于基于像素块中多个纹理像素点的颜色值,确定像素块的RGB空间的两个端点颜色和每一个纹理像素点的颜色系数;将两个端点颜色由RGB空间转换至灰度空间,得到灰度空间的两个端点颜色。
本申请实施例提供了一种纹理渲染装置,通过目标虚拟对象的立方体表面光场图像,生成目标虚拟对象的3D纹理,能够根据3D纹理中的光线信息,确定欠采样点,也即是确定未进行光线采样的纹理像素点。欠采样点对应的纹理像素点在光照下并没有达到光照效果。通过与欠采样点相邻的多个已进行光线采样的纹理像素点的光线,确定欠采样点的光线的颜色值,并重新渲染目标虚拟对象的纹理,能够对目标虚拟对象的纹理进行光照视觉重建,从而提升局部纹理的视觉效果,也即提升欠采样点的纹理的视觉效果,实现了对纹理的优化,且硬件资源的消耗量较少。
需要说明的是:上述实施例提供的纹理渲染装置在运行应用程序时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的纹理渲染装置与纹理渲染实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图9是根据本申请实施例提供的一种终端的结构框图。该终端900可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器901所执行以实现本申请中方法实施例提供的纹理渲染方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907和电源908中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。在一些实施例中,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(NearField Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置在终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在另一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。在一些实施例中,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
电源908用于为终端900中的各个组件进行供电。电源908可以是交流电、直流电、一次性电池或可充电电池。当电源908包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器909。该一个或多个传感器909包括但不限于:加速度传感器910、陀螺仪传感器911、压力传感器912、光学传感器913以及接近传感器914。
加速度传感器910可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器910可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器910采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器910还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器911可以检测终端900的机体方向及转动角度,陀螺仪传感器911可以与加速度传感器910协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器911采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器912可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器912设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器912采集的握持信号进行左右手识别或快捷操作。当压力传感器912设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器913用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器913采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器913采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器914,也称距离传感器,通常设置在终端900的前面板。接近传感器914用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器914检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器914检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一段计算机程序,该至少一段计算机程序由终端的处理器加载并执行以实现上述实施例的纹理渲染方法中终端所执行的操作。例如,计算机可读存储介质可以是只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,使得该终端执行上述各种可选实现方式中提供的纹理渲染方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种纹理渲染方法,其特征在于,所述方法包括:
基于目标虚拟对象的立方体表面光场图像,生成所述目标虚拟对象的3D纹理,所述立方体表面光场图像由所述目标虚拟对象的多个纹理图像组成,所述多个纹理图像通过从不同角度对所述目标虚拟对象已渲染的纹理进行拍摄得到;
基于所述目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,所述欠采样点用于指示未进行光线采样的纹理像素点,所述光线信息用于指示纹理像素点的光线的颜色值;
对于任一个欠采样点,基于所述欠采样点相邻的多个纹理像素点的光线,确定所述欠采样点的光线的颜色值;
基于所述至少一个欠采样点的光线的颜色值,重新渲染所述目标虚拟对象的纹理。
2.根据权利要求1所述的方法,其特征在于,所述对于任一个欠采样点,基于所述欠采样点相邻的多个纹理像素点的光线,确定所述欠采样点的光线的颜色值,包括:
对于任一个欠采样点,确定与所述欠采样点的距离小于距离阈值的多个纹理像素点;
基于所述纹理像素点的权重,对所述多个纹理像素点的光线的颜色值进行加权求和,得到所述欠采样点的光线的颜色值,所述纹理像素点的权重用于指示所述纹理像素点与所述欠采样点之间距离的远近。
3.根据权利要求2所述的方法,其特征在于,所述基于所述纹理像素点的权重,对所述多个纹理像素点的光线的颜色值进行加权求和,得到所述欠采样点的光线的颜色值之前,所述方法还包括:
对于所述多个纹理像素点中的任一纹理像素点,基于距离参数以及所述纹理像素点与所述欠采样点之间的距离,确定所述纹理像素点的权重。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,包括:
基于目标视点的视点参数,确定从所述目标视点到所述立方体表面光场图像的多条光线;
确定所述多条光线与所述立方体表面光场图像的多个交点;
对于所述多个交点中的任一交点,在所述交点为未进行光线采样的纹理像素点的情况下,确定所述交点为欠采样点。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述交点为已进行光线采样的纹理像素点的情况下,基于所述目标虚拟对象的3D纹理中的光线信息,查询所述交点的颜色值;
将所述交点的颜色值作为穿过所述交点的光线的颜色值。
6.根据权利要求1所述的方法,其特征在于,所述立方体表面光场图像的六个表面分别对应六个立方体贴图;
所述基于目标虚拟对象的立方体表面光场图像,生成所述目标虚拟对象的3D纹理,包括:
生成所述六个立方体贴图分别对应的六个图像矩阵,所述图像矩阵中的元素用于表示所述立方体贴图中纹理像素点的坐标;
对于所述六个图像矩阵中的任一图像矩阵,基于所述图像矩阵中的元素,对所述图像矩阵进行横向拼接,得到所述图像矩阵对应的一维矩阵,所述一维矩阵的维度的数量等于所述图像矩阵中的元素的数量;
基于所述六个图像矩阵对应的六个一维矩阵,生成所述目标虚拟对象的3D纹理。
7.根据权利要求1所述的方法,其特征在于,所述生成所述目标虚拟对象的3D纹理之后,所述方法还包括:
将所述目标虚拟对象的3D纹理划分成多个像素块,所述像素块包括多个纹理像素点;
对于所述多个像素块中的任一像素块,基于所述像素块中多个纹理像素点的颜色值,确定所述像素块的灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,所述颜色系数用于确定所述纹理像素点的颜色值;
存储所述灰度空间的两个端点颜色和所述每一个纹理像素点的颜色系数。
8.根据权利要求7所述的方法,其特征在于,所述基于所述像素块中多个纹理像素点的颜色值,确定所述像素块的灰度空间的两个端点颜色和每一个纹理像素点的颜色系数,包括:
基于所述像素块中多个纹理像素点的颜色值,确定所述像素块的RGB空间的两个端点颜色和每一个纹理像素点的颜色系数;
将所述两个端点颜色由RGB空间转换至灰度空间,得到灰度空间的两个端点颜色。
9.一种纹理渲染装置,其特征在于,所述装置包括:
生成模块,用于基于目标虚拟对象的立方体表面光场图像,生成所述目标虚拟对象的3D纹理,所述立方体表面光场图像由所述目标虚拟对象的多个纹理图像组成,所述多个纹理图像通过从不同角度对所述目标虚拟对象已渲染的纹理进行拍摄得到;
第一确定模块,用于基于所述目标虚拟对象的3D纹理中的光线信息,确定至少一个欠采样点,所述欠采样点用于指示未进行光线采样的纹理像素点,所述光线信息用于指示纹理像素点的光线的颜色值;
第二确定模块,用于对于任一个欠采样点,基于所述欠采样点相邻的多个纹理像素点的光线,确定所述欠采样点的光线的颜色值;
渲染模块,用于基于所述至少一个欠采样点的光线的颜色值,重新渲染所述目标虚拟对象的纹理。
10.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行权利要求1至8任一项权利要求所述的纹理渲染方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储至少一段计算机程序,所述至少一段计算机程序用于执行权利要求1至8任一项权利要求所述的纹理渲染方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项权利要求所述的纹理渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514341.1A CN116993889A (zh) | 2022-11-29 | 2022-11-29 | 纹理渲染方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514341.1A CN116993889A (zh) | 2022-11-29 | 2022-11-29 | 纹理渲染方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116993889A true CN116993889A (zh) | 2023-11-03 |
Family
ID=88529018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211514341.1A Pending CN116993889A (zh) | 2022-11-29 | 2022-11-29 | 纹理渲染方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116993889A (zh) |
-
2022
- 2022-11-29 CN CN202211514341.1A patent/CN116993889A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109978989B (zh) | 三维人脸模型生成方法、装置、计算机设备及存储介质 | |
US20210225067A1 (en) | Game screen rendering method and apparatus, terminal, and storage medium | |
CN109754454B (zh) | 物体模型的渲染方法、装置、存储介质及设备 | |
CN112263837B (zh) | 虚拟环境中的天气渲染方法、装置、设备及存储介质 | |
CN112933599B (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
CN112370784B (zh) | 虚拟场景显示方法、装置、设备以及存储介质 | |
CN111729307B (zh) | 虚拟场景显示方法、装置、设备以及存储介质 | |
CN112245926B (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN111701238A (zh) | 虚拟画卷的显示方法、装置、设备及存储介质 | |
CN111738914B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN111932463B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN112138386A (zh) | 一种体积渲染方法、装置、存储介质及计算机设备 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
CN112884874A (zh) | 在虚拟模型上贴花的方法、装置、设备及介质 | |
CN111068323B (zh) | 智能速度检测方法、装置、计算机设备及存储介质 | |
CN116672706B (zh) | 光照渲染方法、装置、终端和存储介质 | |
CN109939442B (zh) | 应用角色位置异常识别方法、装置、电子设备及存储介质 | |
CN112950753A (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN116993889A (zh) | 纹理渲染方法、装置、终端及存储介质 | |
CN116828207A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110097619B (zh) | 应用程序中的动画效果实现方法、装置及设备 | |
CN112383719A (zh) | 图像亮度的调整方法、装置、设备及可读存储介质 | |
CN112699223A (zh) | 数据搜索方法、装置、电子设备及存储介质 | |
CN116524063B (zh) | 光照颜色的计算方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40099466 Country of ref document: HK |