CN116977528A - 图案渲染方法、装置、计算机设备、存储介质 - Google Patents
图案渲染方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN116977528A CN116977528A CN202310001899.8A CN202310001899A CN116977528A CN 116977528 A CN116977528 A CN 116977528A CN 202310001899 A CN202310001899 A CN 202310001899A CN 116977528 A CN116977528 A CN 116977528A
- Authority
- CN
- China
- Prior art keywords
- pattern
- object model
- decal
- attribute data
- coordinates
- 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 130
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 239000000463 material Substances 0.000 claims abstract description 202
- 238000005070 sampling Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 230000004927 fusion Effects 0.000 claims abstract description 23
- 239000000872 buffer Substances 0.000 claims description 182
- 238000005286 illumination Methods 0.000 claims description 92
- 238000012545 processing Methods 0.000 claims description 67
- 239000011159 matrix material Substances 0.000 claims description 48
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 239000000523 sample Substances 0.000 claims description 30
- 230000000694 effects Effects 0.000 abstract description 30
- 238000005516 engineering process Methods 0.000 description 28
- 238000002156 mixing Methods 0.000 description 26
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 241000220317 Rosa Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 102100038720 Histone deacetylase 9 Human genes 0.000 description 1
- 101100338512 Homo sapiens HDAC9 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000013072 incoming material Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种图案渲染方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:索引物体模型对应的图案属性数据;依据所述图案属性数据转换所述物体模型中像素的坐标,得到图案空间坐标;基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;基于所述图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息;融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;对所述融合材质信息进行渲染处理。采用本方法能够提高图案渲染效率的同时又能够保证渲染效果的准确性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种图案渲染方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术以及互联网技术的发展,图案渲染在不同业务场景的应用落地,使得各种类型的渲染技术广受大众关注。常见的渲染方式包括前向渲染(ForwardRendering)和延迟渲染(Deferred Rendering),其中,前向渲染的基本思想是依次遍历场景中的每个场景对象,将所有光源对它的影响考虑在内,计算光照结果并在屏幕空间中渲染该场景对象。
然而,目前的图案渲染方式中,通常是通过采用Volume Decal(体积贴花)的方式对每张图案进行光照计算,并依赖于深度、法线Buffer(缓存区)中的存储的信息,但在某些情况下,尤其对于需要控制各个图案混合顺序的渲染对象来说,采用上述方式难于控制图案混合顺序,需要重复计算大量的光照信息,容易导致图案渲染的效率较低,同时混合顺序不对,会引入色偏瑕疵,也会使得渲染效果较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高图案渲染效率的同时又能够保证渲染效果准确性的图案渲染方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种图案渲染方法。所述方法包括:索引物体模型对应的图案属性数据;依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标;基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;基于所述图案纹理坐标对包含图案的共享图片采样,得到图案材质信息;融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;对所述融合材质信息进行光照处理。
第二方面,本申请还提供了一种图案渲染装置。所述装置包括:索引模块,用于索引物体模型对应的图案属性数据;转换模块,用于依据所述图案属性数据转换所述物体模型中像素的坐标,得到图案空间坐标;确定模块,用于基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;采样模块,用于基于所述图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息;融合模块,用于融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;处理模块,用于对所述融合材质信息进行渲染处理。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:索引物体模型对应的图案属性数据;依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标;基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;基于所述图案纹理坐标对包含图案的共享图片采样,得到图案材质信息;融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;对所述融合材质信息进行光照处理。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:索引物体模型对应的图案属性数据;依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标;基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;基于所述图案纹理坐标对包含图案的共享图片采样,得到图案材质信息;融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;对所述融合材质信息进行光照处理。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:索引物体模型对应的图案属性数据;依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标;基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;基于所述图案纹理坐标对包含图案的共享图片采样,得到图案材质信息;融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;对所述融合材质信息进行光照处理。
上述图案渲染方法、装置、计算机设备、存储介质和计算机程序产品,通过索引物体模型对应的图案属性数据;依据图案属性数据转换物体模型中像素对应的空间坐标,得到图案空间坐标;基于图案属性数据和图案空间坐标确定图案纹理坐标;基于图案纹理坐标对包含图案的共享图片采样,得到图案材质信息;融合图案材质信息与物体模型的材质信息,得到融合材质信息,并对融合材质信息进行光照处理。由于可以从共享缓存区中索引物体模型对应的图案属性数据,故可以基于图案属性数据中的原始数据确定图案纹理坐标,进而基于图案纹理坐标对包含图案的共享图片采样,得到图案材质信息,并且,将图案材质信息与物体模型的材质信息进行融合,得到的融合材质信息作为物体模型的材质信息,各个图案材质信息也集成在物体模型的材质里同时一起进行光照处理,从而避免了额外生产深度给图案或者额外对图案进行光照的消耗,无需重复计算大量的光照信息,同时混合顺序可以控制,不会引入色偏瑕疵,在有效提高渲染效率的同时又能够保证渲染效果的准确性,也会使得渲染效果得到较大的提升。
附图说明
图1为一个实施例中图案渲染方法的应用环境图;
图2为一个实施例中图案渲染方法的流程示意图;
图3为一个实施例中基于图案属性数据,对物体模型中像素的图案空间坐标进行转换步骤的流程示意图;
图4为一个实施例中屏幕空间贴花的原理示意图;
图5为一个实施例中DBuffer Decal的原理示意图;
图6为一个实施例中前向嵌入式体积轻松快速贴花系统的渲染流程示意图;
图7为一个实施例中产品侧表现的渲染结果示意图;
图8为一个实施例中贴花贴在缺乏深度信息的半透明物体上的示意图;
图9为一个实施例中集成进材质的高效贴花渲染方法的实现原理示意图;
图10为一个实施例中前向嵌入式体积轻松快速贴花系统的实现原理图;
图11为一个实施例中性能对比数据的示意图;
图12为一个实施例中图案渲染装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
需要说明的是,在以下的描述中,所涉及的术语“第一、第二和第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一、第二和第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例提供的图案渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102从本地数据库中索引物体模型对应的图案属性数据,终端102也可以与服务器104进行交互,从服务器104中索引物体模型对应的图案属性数据;进一步的,终端102依据图案属性数据转换物体模型中像素对应的空间坐标,得到图案空间坐标,并基于图案属性数据和图案空间坐标确定图案纹理坐标;终端102基于图案纹理坐标对包含图案的共享图片采样,得到图案材质信息,并融合图案材质信息与物体模型的材质信息,得到融合材质信息,终端102对融合材质信息进行光照处理。
其中,终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调和智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
服务器104可以是独立的物理服务器,也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
此外,服务器104还可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端102与服务器104之间可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者网络等通讯连接方式进行连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种图案渲染方法,该方法可以由服务器或终端单独执行,也可以由服务器和终端共同执行,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,索引物体模型对应的图案属性数据。
其中,共享缓存区是指用于存储不同物体模型所对应的图案属性数据的缓存区,本申请中的共享缓存区可以是与物体模型具有引用关系或者绑定关系的共享缓存区,例如,假设当前运行的待渲染的模型为模型1,则可以在编辑阶段预先设置好模型1与哪个共享缓存区之间具有引用关系或者绑定关系,在渲染阶段,终端渲染该模型1时,终端可以基于模型1与共享缓存区之间的引用关系或者绑定关系,确定模型1对应的共享缓存区为共享缓存区2。
本申请中的共享缓存区可以为:“Per DecalProjectorGroup Block Buffer”,这个公共的“Per DecalProjectorGroup Block Buffer”用于存储多个“DecalProjectorGroup”对应的“Per DecalProjectorGroup Buffer”。“DecalProjectorGroup”是指贴花投射器组,“Per DecalProjectorGroup Buffer”是指将一个贴花投射器组中的数据存储在同一个Buffer中。即本申请中的公共缓存区也可以是指用于存储各个缓存分组的缓存区,比如,公共缓存区即“Per DecalProjectorGroup BlockBuffer”中存储了两个缓存分组:第一缓存区为第一个缓存分组即“PerDecalProjectorGroup Buffer”和第二缓存区为第二个缓存分组即“PerDecalProjectorGroup Buffer”,第一缓存区和第二缓存区即各个“PerDecalProjectorGroup Buffer”中又存储了不同物体模型所对应的贴花属性数据。
图案属性数据是指不同物体模型对应的图案属性数据,本申请中的图案属性数据又可以称为贴花属性数据,例如,本申请中的图案属性数据可以为图案属性数据集,图案属性数据集中可以包括不同类型的属性值,比如,颜色值、法线值、光滑度、金属度等属性值。
具体地,在编辑阶段,可以预先设置好模型1与哪个共享缓存区之间具有引用关系或者绑定关系,并将与模型1对应的图案属性数据集成到共享缓存区中,则在渲染阶段,当终端对物体模型进行渲染时,终端可以基于物体模型与共享缓存区之间的引用关系或者绑定关系,确定该物体模型对应的共享缓存区,并从该共享缓存区中索引物体模型对应的图案属性数据。例如,终端确定该物体模型对应的共享缓存区之后,终端可以基于物体模型对应的索引值,从该共享缓存区中索引该物体模型对应的图案属性数据。
举个例子,假设在编辑阶段预先设置了物体模型1与共享缓存区2之间具有引用关系或者绑定关系,并将物体模型1对应的贴花属性数据集成在共享缓存区2中,假设将物体模型1对应的贴花属性数据集成在共享缓存区2中得到的物体模型1对应的索引值为2-03,则在渲染阶段,当终端对物体模型1进行渲染时,终端可以基于物体模型1与共享缓存区之间的引用关系或者绑定关系,确定该物体模型1对应的共享缓存区为共享缓存区2,并基于物体模型1对应的索引值2-03,从该共享缓存区2中索引该物体模型1对应的贴花属性数据在共享缓存区2中的第三个缓存分组中,比如,终端基于物体模型1对应的索引值2-03,从该共享缓存区2中索引该物体模型1对应的贴花属性数据在共享缓存区2中的第三个“PerDecalProjectorGroup Buffer”里。
步骤204,依据图案属性数据转换物体模型中像素对应的空间坐标,得到图案空间坐标。
其中,像素是指渲染物体模型时物体模型对应的每个像素,例如,物体模型一共有100个像素,物体模型中像素可以是指物体模型中的各个像素,也可以是指物体模型的当前像素即第一个像素对应的空间坐标。
像素对应的空间坐标是指物体模型的各个像素对应的空间坐标,例如,物体模型一共有100个像素,则100个像素中的每个像素都有对应的空间坐标,比如,第一个像素对应的空间坐标为A1,第二个像素对应的空间坐标为A2。本申请中像素对应的空间坐标可以是像素对应的世界空间坐标。世界空间坐标是指在世界空间下的坐标。
图案空间坐标是指在图案空间下的坐标,本申请中的图案空间坐标也可以称为贴花空间坐标,贴花空间坐标是指在贴花空间中的坐标。
具体地,在渲染阶段,终端基于物体模型与共享缓存区之间的引用关系或者绑定关系,确定该物体模型对应的共享缓存区,并从该共享缓存区中索引到物体模型对应的图案属性数据之后,终端可以确定物体模型中像素在世界空间中的坐标即世界空间坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型中像素对应的世界空间坐标进行转换,以得到物体模型中像素对应的图案空间坐标。
此外,在一些情况下,若终端依据索引到的图案属性数据中的转换矩阵,对物体模型中像素对应的世界空间坐标进行转换,未转换出物体模型中像素对应的图案空间坐标,或者返回无法转换的提示消息时,则表明物体模型的该像素位置处不存在图案,则终端可以获取该像素位置处物体模型的材质信息,并对物体模型的材质信息进行光照处理,以得到该像素位置处的渲染数据。
举个例子,在渲染阶段,当终端对物体模型1进行渲染时,假设终端基于物体模型1与共享缓存区之间的引用关系或者绑定关系,确定该物体模型1对应的共享缓存区为共享缓存区2,并基于物体模型1对应的索引值2-03,从该共享缓存区2中索引该物体模型1对应的贴花属性数据在共享缓存区2中的第三个缓存分组中,比如,终端基于物体模型1对应的索引值2-03,从该共享缓存区2中索引出该物体模型1对应的贴花属性数据存储在共享缓存区2中的第三个“Per DecalProjectorGroup Buffer”中;进一步的,终端可以从共享缓存区2中的第三个“Per DecalProjectorGroup Buffer”中获取到物体模型1对应的贴花属性数据集1,并依据贴花属性数据集1中的转换矩阵,对物体模型的当前像素即第一个像素对应的世界空间坐标进行转换,得到当前像素对应的贴花空间坐标。
此外,当终端依据贴花属性数据集1中的转换矩阵,对物体模型的当前像素即第一个像素对应的世界空间坐标进行转换,无法转换出对应的贴花空间坐标或者提示不存在对应的贴花空间坐标时,则表明该物体模型1的当前像素即第一个像素位置处不存在贴花,即该物体模型1的第一个像素位置处没有叠放贴花。
步骤206,基于图案属性数据和图案空间坐标确定图案纹理坐标。
其中,图案纹理坐标是指在包含图案的共享图片中的采样纹理的坐标,本申请中的图案纹理坐标也可以称为贴花纹理坐标,比如,共享图片中包含5个贴花,物体模型1中所使用的贴花为第4个贴花,即需要对第4个贴花的纹理进行采样,则本申请中需要通过贴花纹理坐标来确定从共享图片的哪个位置进行采样。
具体地,在渲染阶段,终端依据索引到的图案属性数据中的转换矩阵,对物体模型中像素对应的世界空间坐标进行转换,得到物体模型中像素对应的图案空间坐标之后,终端可以基于图案属性数据中的位姿数据和图案空间坐标确定图案纹理坐标,即终端可以基于图案属性数据中的位姿数据,对物体模型中像素对应的图案空间坐标进行转换,即可得到物体模型中像素对应的图案纹理坐标。
举个例子,在渲染阶段,假设终端从共享缓存区2中的第三个“PerDecalProjectorGroup Buffer”中获取到物体模型1对应的贴花属性数据集1,并依据贴花属性数据集1中的转换矩阵,对物体模型的当前像素即第一个像素对应的世界空间坐标进行转换,得到当前像素对应的贴花空间坐标为A1之后,终端可以基于贴花属性数据集1中的位姿数据,对当前像素对应的贴花空间坐标A1进行转换,以得到转换后的贴花纹理坐标A2。
步骤208,基于图案纹理坐标对包含图案的共享图片采样,得到图案材质信息。
其中,图案是指共享图片中所包含的图案,本申请中的共享图片中包含的图案可以为一个或者多个,比如,共享图片中可以包含3个图案,分别为树叶1、玫瑰花2和月季花3。
共享图片是指包含图案的图片,包含图案的共享图片是指一张共享图片中可以包含一个或者多个图案。
图案材质信息是指各个图案所对应的材质信息,本申请中图案材质信息也可以称为贴花材质信息,贴花材质信息可以包括多个属性信息,比如:颜色、法线、光滑度、金属度等属性信息。
具体地,在渲染阶段,终端基于图案属性数据中的位姿数据和图案空间坐标确定图案纹理坐标之后,终端可以获取包含图案集的共享图片,并基于所确定的图案纹理坐标对包含图案集的共享图片采样,即可得到与该图案纹理坐标对应的图案材质信息,比如,终端可以基于所确定的图案纹理坐标对包含图案集的共享图片采样,即可得到与该图案纹理坐标对应的纹理信息。
举个例子,在渲染阶段,假设终端从共享缓存区2中的第三个“PerDecalProjectorGroup Buffer”中获取到物体模型1对应的贴花属性数据集1,并依据贴花属性数据集1中的转换矩阵,对物体模型的当前像素即第一个像素对应的世界空间坐标进行转换,得到当前像素对应的贴花空间坐标为A1之后,终端可以基于贴花属性数据集1中的位姿数据,对当前像素对应的贴花空间坐标A1进行转换,以得到转换后的贴花纹理坐标A2;进一步的,终端可以获取包含贴花集的共享图片,并基于所确定的贴花纹理坐标A2对包含贴花集的共享图片采样,即终端可以在共享图片中的贴花纹理坐标A2位置处进行采样,以得到与该贴花纹理坐标A2对应的贴花纹理信息A3。可以理解,采样得到的贴花纹理信息中包含多种纹理值,例如,贴花纹理信息A3中可以包括采样位置处对应的颜色值、法线值、光滑度值、金属度值等信息。
步骤210,融合图案材质信息与物体模型的材质信息,得到融合材质信息。
其中,物体模型的材质信息是指各个物体模型所对应的材质属性信息,本申请中物体模型的材质信息可以包括多种类型的材质属性信息,比如,物体模型的材质信息包括颜色、法线、光滑度、金属度等信息。
融合材质信息是指将该像素对应的图案材质信息与物体模型的材质信息进行融合后的材质信息,比如,物体模型1在当前像素对应的贴花空间坐标有两个,则融合材质信息是将该像素对应的两个图案材质信息和物体模型1的材质信息进行融合后得到的。
本申请中的融合材质信息可以包括多种类型的材质属性信息,比如,融合材质信息包括颜色、法线、光滑度、金属度等信息。
具体地,在渲染阶段,终端基于所确定的图案纹理坐标对包含图案集的共享图片采样,得到与图案纹理坐标对应的图案材质信息之后,终端可以融合图案材质信息与物体模型的材质信息,得到融合材质信息。可以理解,本申请中的图案材质信息的数量包括但不限于是一个,比如,在某些情况下,若终端基于图案属性数据和图案空间坐标确定的图案纹理坐标为两个,则终端基于所确定的两个图案纹理坐标对包含图案的共享图片采样,可以得到对应的两个图案材质信息,进一步的,终端可以基于共享缓存区存储各个图案属性数据的顺序或者图案之间的叠放顺序,将各个图案材质信息与物体模型的材质信息进行融合,即终端可以按照各个图案的通道系数和叠放顺序,将两个图案材质信息与物体模型本身的材质信息进行融合,即可得到按照正确的叠放顺序融合后的材质信息。
举个例子,在渲染阶段,假设终端从共享缓存区2中的第三个“PerDecalProjectorGroup Buffer”中获取到物体模型1对应的贴花属性数据集,假设该贴花属性数据集中包含贴花1的属性数据和贴花2的属性数据;终端可以依据贴花属性数据集中的转换矩阵,对物体模型的当前像素即第一个像素对应的世界空间坐标进行转换,得到当前像素对应的贴花空间坐标为A1和B1之后,终端可以基于贴花属性数据集中的位姿数据,对当前像素对应的贴花空间坐标A1、B1进行转换,以得到转换后的贴花纹理坐标A2和B2;进一步的,终端可以获取包含贴花1、贴花2的共享图片,并基于所确定的贴花纹理坐标A2对包含贴花1、贴花2的共享图片采样,即终端可以在共享图片中的贴花纹理坐标A2位置处进行采样,以得到与该贴花纹理坐标A2对应的贴花1的纹理信息A3;以此类推,终端也可以基于所确定的贴花纹理坐标B2对包含贴花1、贴花2的共享图片采样,即终端可以在共享图片中的贴花纹理坐标B2位置处进行采样,以得到与该贴花纹理坐标B2对应的贴花2的纹理信息B3;进一步的,终端可以按照贴花1、贴花2的通道系数,以及贴花1、贴花2之间的叠放顺序,将所得到的贴花1的纹理信息A3、贴花2的纹理信息B3和物体模型1的材质信息C进行融合,即可得到按照正确顺序融合后的材质信息。
步骤212,对融合材质信息进行光照处理。
其中,光照处理是指光照着色处理,例如,本申请中的光照处理可以为对融合材质信息进行光照计算,即无需分别对每个图案进行光照计算,只需要对融合材质信息进行一次光照计算。
具体地,在渲染阶段,终端融合图案材质信息与物体模型的材质信息,得到融合材质信息之后,终端可以对融合材质信息进行光照处理,即终端可以对包含有多层图案的物体模型的当前像素的融合材质信息进行光照计算,以得到物体模型在当前像素的光照数据,后续终端可以基于所得到的光照数据在屏幕中显示当前像素对应的渲染效果。
举个例子,在渲染阶段,假设终端融合两个贴花材质信息A3、B3与物体模型1的材质信息C,得到包含两个贴花材质信息的融合材质信息C-A3B3之后,终端可以对包含两个贴花材质信息的融合材质信息C-A3B3进行光照处理,即终端可以对包含有两层贴花的物体模型1的当前像素的融合材质信息C-A3B3进行光照计算,以得到物体模型1在当前像素的光照数据C-A3B3,后续终端可以基于所得到的光照数据C-A3B3在屏幕中显示物体模型1当前像素对应的渲染效果。
本实施例中,通过索引物体模型对应的图案属性数据,依据图案属性数据转换物体模型中像素的坐标,得到图案空间坐标,并基于图案属性数据和图案空间坐标确定图案纹理坐标;基于图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息;融合图案材质信息与物体模型的材质信息,得到融合材质信息,并对融合材质信息进行渲染处理。由于可以从共享缓存区中索引物体模型对应的图案属性数据,故可以基于图案属性数据中的原始数据确定图案纹理坐标,进而基于图案纹理坐标对包含图案的共享图片采样,得到图案材质信息,并且,将图案材质信息与物体模型的材质信息进行融合,得到的融合材质信息作为物体模型的材质信息,各个图案材质信息也集成在物体模型的材质里同时一起进行光照处理,从而避免了额外生产深度给图案或者额外对图案进行光照的消耗,无需重复计算大量的光照信息,同时混合顺序可以控制,不会引入色偏瑕疵,在有效提高渲染效率的同时又能够保证渲染效果的准确性,也会使得渲染效果得到较大的提升。
在一个实施例中,索引物体模型对应的图案属性数据之前,所述方法还包括:
预先将图案属性数据存储至共享缓存区中;共享缓存区与物体模型之间具有绑定关系;
索引物体模型对应的图案属性数据的步骤,包括:
基于绑定关系,确定物体模型对应的共享缓存区;
基于物体模型的索引值,从共享缓存区中索引与物体模型对应的图案属性数据。
其中,索引值是指用于表示索引关系的数据,本申请中的索引值可以是用于表示物体模型与图案属性数据之间索引关系的数据,比如,物体模型1的索引值为C2-03,C2表示物体模型1对应的共享缓存区为第2个,03表示物体模型1对应的图案属性数据存储在第2个共享缓存区的第03个缓存分组中,即终端可以通过索引的方式,从第2个共享缓存区的第03个缓存分组中获取物体模型1对应的图案属性数据。
绑定关系是指物体模型与共享缓存区之间的关系,即不同的物体模型对应的图案属性数据可以存储在不同的共享缓存区中,本申请中物体模型与共享缓存区之间的绑定关系可以为引用关系,即在编辑阶段,可以预先将需要合批绘制的图案属性数据整合到一个缓存分组中,在渲染阶段,终端可以将各个缓存分组中的图案属性数据搬运至GPU的共享缓存区中,以使终端可以基于各个物体模型的索引值,从与物体模型具有绑定关系的共享缓存区中索引对应的图案属性数据。
具体地,终端索引物体模型对应的图案属性数据之前,终端可以预先将图案属性数据存储至共享缓存区中,得到物体模型的索引值,其中,共享缓存区与物体模型之间具有绑定关系;进一步的,终端可以基于绑定关系,确定物体模型对应的共享缓存区,并基于物体模型的索引值,从所确定的共享缓存区中索引与物体模型对应的图案属性数据。可以理解,不同的物体模型所对应的索引值可以相同,也可以不同。
举个例子,假设在编辑阶段,预先将需要合批绘制的5个贴花的属性数据整合到一个缓存分组中,该缓存分组的标识为03,同时,将需要合批绘制的5个贴花的属性数据集成到与物体模型1具有绑定关系的共享缓存区C2中,即通过设置贴花的属性数据与物体模型1之间的索引关系,以及共享缓存区与物体模型1之间的绑定关系,即可得到物体模型1的索引值为C2-03,C2表示物体模型1对应的共享缓存区为第2个共享缓存区C2,03表示物体模型1对应的图案属性数据存储在第2个共享缓存区C2的第03个缓存分组中,在渲染阶段,终端可以基于共享缓存区与物体模型1之间的引用关系,确定物体模型1对应的共享缓存区为C2,并通过索引的方式,基于物体模型1的索引值C2-03,从共享缓存区C2的第03个缓存分组中获取物体模型1对应的5个贴花的属性数据。由此,通过在编辑阶段将贴花数据进行聚合,并存储在共享buffer中,以使得在渲染阶段,通过索引共享buffer中的贴花数据,就可以让这些本该不同的材质,变成对于GPUInstance技术或者SRPBatch技术来说可以合批的材质了,可以合批就会减少DrawCall的绘制成本,从而提高贴花渲染的效率。
在一个实施例中,预先将图案属性数据存储至共享缓存区中的步骤,包括:
将至少两个图案投射器组件和物体模型的细节层次信息进行组合,得到图案投射器分组;
将图案投射器分组内的各数据存储在第一缓存区中;
将第一缓存区中的各数据迁移到共享缓存区中。
其中,图案投射器组件是指可以将特定材质的图案投影到场景中,例如,本申请中的图案投射器组件可以为Decal Projector组件,该组件可以将特定材质(贴花)投影到场景中。贴花是使用贴花着色器(Decal Shader)或贴花主栈(Decal Master Stack)的材质。当Decal Projector组件将贴花投影到场景中时,这些贴花会与场景的光照相互影响并环绕网格,可以同时在场景中使用数千个贴花,因为高清渲染管线(High Definition RenderPipeline,HDRP)会对它们进行实例化。
物体模型的细节层次信息是指各个物体模型对应的与物体模型渲染相关的多细节层次信息,例如,本申请中的细节层次信息可以为LOD(Levels of Detail)信息,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
图案投射器分组是指将各个图案投射器组件整合到一个分组中,本申请中的图案投射器分组可以为贴花投射器组即Decal Projector Group,例如,图案投射器分组1即Decal Projector Group中包含Decal Projector组件1、Decal Projector组件2,以及LOD信息1和LOD信息2。
第一缓存区是指用于存储图案投射器分组数据的缓存分组,本申请中的第一缓存区可以为“Per DecalProjectorGroup Buffer”,即将一个贴花投射器组中的数据存储在同一个Buffer中,比如,将贴花投射器分组1即Decal Projector Group中所包含的数据存储在对应的第一缓存区即“Per DecalProjectorGroup Buffer”中。
具体地,终端从共享缓存区中索引物体模型对应的图案属性数据之前,在编辑阶段,终端可以将至少两个图案投射器组件和物体模型的细节层次信息进行组合,得到图案投射器分组,并将图案投射器分组内的各数据存储在与该图案投射器分组对应的第一缓存区中;进一步的,在渲染阶段,当终端需要对物体模型进行渲染时,终端可以将中央处理器(CPU,central processing unit)中第一缓存区中的各数据迁移到图形处理器(GPU,graphics processing unit)的共享缓存区中,以使得终端中的图形处理器可以快速准确的从共享缓存区中索引到与物体模型对应的图案属性数据。
可以理解,本申请的实施例中可以预先将Decal Projector组件1、和物体模型的细节层次信息进行组合,得到图案投射器分组,并将图案投射器分组内的各数据存储在与该图案投射器分组对应的第一缓存区中;也可以在渲染阶段,当终端需要对物体模型进行渲染时,将至少两个图案投射器组件和物体模型的细节层次信息进行组合,得到图案投射器分组,并将图案投射器分组内的各数据存储在与该图案投射器分组对应的第一缓存区中,进而终端可以将中央处理器(CPU,central processing unit)中第一缓存区中的各数据迁移到图形处理器(GPU,graphics processing unit)的共享缓存区中,以使得终端中的图形处理器可以快速准确的从共享缓存区中索引到与物体模型对应的图案属性数据。
举个例子,假设在编辑阶段,终端预先将Decal Projector组件1、DecalProjector组件2,以及物体模型1的LOD信息1和物体模型2的LOD信息进行组合,得到图案投射器分组1,图案投射器分组1即Decal Projector Group中包含Decal Projector组件1、Decal Projector组件2,以及LOD信息1和LOD信息2;进一步的,终端将图案投射器分组1即Decal Projector Group中所包含的数据存储在第一缓存区即“Per DecalProjectorGroupBuffer”中,该“Per DecalProjectorGroup Buffer”中存储了一个图案投射器分组中所包含的所有数据,即该“Per DecalProjectorGroup Buffer”中存储了该Decal ProjectorGroup中所包含的Decal Projector组件1信息、Decal Projector组件2信息,以及LOD信息1和LOD信息2。由此使得,在渲染阶段,当终端需要对物体模型进行渲染时,终端可以将中央处理器中第一缓存区中的各数据迁移到图形处理器的共享缓存区中,以使得终端中的图形处理器可以快速准确的从共享缓存区中索引到与物体模型对应的图案属性数据,进而提高减少DrawCall的绘制成本,提高贴花渲染的效率。
在一个实施例中,依据图案属性数据转换物体模型中像素对应的空间坐标,得到图案空间坐标的步骤,包括:
确定物体模型中像素的世界空间坐标;
基于图案属性数据中的转换矩阵,对物体模型中像素的世界空间坐标进行转换,得到图案空间坐标。
其中,转换矩阵是指用于转换空间坐标的矩阵,本申请中的转换矩阵可以是用于将像素的世界空间坐标转换到贴花空间坐标,比如,本申请中的转换矩阵可以是World toDecal Matrix矩阵,该矩阵可以是在编辑阶段自动存储的,并设置终端中的着色器的数据接口可以获得这个矩阵。
具体地,在渲染阶段,终端基于物体模型与共享缓存区之间的引用关系或者绑定关系,确定该物体模型对应的共享缓存区,并从该共享缓存区中索引到物体模型对应的图案属性数据之后,终端可以基于预设策略或算法,确定物体模型的当前像素在世界空间中的坐标即世界空间坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型当前像素对应的世界空间坐标进行转换,以得到物体模型当前像素对应的图案空间坐标,以此类推,当终端对物体模型当前像素的世界空间坐标转换完之后,终端可以继续计算物体模型下一个像素在世界空间中的坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型下一个像素对应的世界空间坐标进行转换,以得到物体模型下一个像素对应的图案空间坐标。
可以理解,本申请实施例中,终端依据图案属性数据转换物体模型中各个像素对应的空间坐标,得到各个像素对应的图案空间坐标的处理步骤可以是并行执行的,也可以是逐像素执行的,在这里不做具体的限定。
举个例子,假设在渲染阶段,终端基于物体模型1与共享缓存区C2之间的引用关系或者绑定关系,确定该物体模型1对应的共享缓存区为共享缓存区C2,并从该共享缓存区C2中索引到物体模型1对应的贴花属性数据1之后,终端可以基于预设策略或算法,确定物体模型1的当前像素P0在世界空间中的坐标即世界空间坐标为A1,并依据索引到的贴花属性数据中的World to Decal Matrix矩阵1,对物体模型1当前像素P0对应的世界空间坐标A1进行转换,以得到物体模型1当前像素P0对应的贴花空间坐标A2,以此类推,当终端对物体模型1当前像素P0的世界空间坐标A1转换完之后,终端可以继续计算该物体模型1下一个像素P1在世界空间中的坐标为B1,并依据索引到的贴花属性数据中的World to DecalMatrix矩阵1,对物体模型1下一个像素P1对应的世界空间坐标B1进行转换,以得到物体模型1下一个像素P1对应的图案空间坐标B2。由此,可以基于图案属性数据中的转换矩阵快速准确的确定贴花空间坐标,进而基于贴花空间坐标确定贴花纹理坐标,以实现对包含多层贴花的共享图片采样,得到各个贴花的材质信息,为后续融合材质信息提供准确的贴花的材质信息。
在一个实施例中,基于图案属性数据和图案空间坐标确定图案纹理坐标的步骤,包括:
基于图案属性数据,对物体模型中像素的图案空间坐标进行转换,得到物体模型中像素的图案纹理坐标。
具体地,在渲染阶段,终端基于物体模型与共享缓存区之间的引用关系或者绑定关系,确定该物体模型对应的共享缓存区,并从该共享缓存区中索引到物体模型对应的图案属性数据之后,终端可以基于预设策略或算法,计算物体模型当前像素在世界空间中的坐标,即终端确定物体模型的当前像素在世界空间中的坐标即世界空间坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型当前像素对应的世界空间坐标进行转换,以得到物体模型当前像素对应的图案空间坐标;进一步的,终端可以基于图案属性数据中的位姿数据,对转换得到的物体模型当前像素的图案空间坐标进行转换,以得到物体模型当前像素的图案纹理坐标。
可以理解,本申请实施例中,终端基于图案属性数据和图案空间坐标确定图案纹理坐标的处理步骤,可以是并行执行的,也可以是逐像素执行的,在这里不做具体的限定。
举个例子,假设在渲染阶段,终端基于物体模型1与共享缓存区C2之间的引用关系或者绑定关系,从该共享缓存区C2中索引到物体模型1对应的贴花属性数据1之后,终端可以基于预设策略或算法,确定物体模型1的当前像素P0在世界空间中的坐标即世界空间坐标为A1,并依据索引到的贴花属性数据中的World to Decal Matrix矩阵1,对物体模型1当前像素P0对应的世界空间坐标A1进行转换,以得到物体模型1当前像素P0对应的贴花空间坐标A2;进一步的,当终端对物体模型1当前像素P0的世界空间坐标A1转换完之后,终端可以基于贴花属性数据1所包含的各个贴花的位姿数据,对物体模型1的当前像素P0的贴花空间坐标A2进行转换,得到物体模型1当前像素P0的贴花纹理坐标A3。
此外,若依据索引到的贴花属性数据中的World to Decal Matrix矩阵1,对物体模型1当前像素P0对应的世界空间坐标A1进行转换,得到物体模型1当前像素P0对应的贴花空间坐标为两个贴花空间坐标时,则表明物体模型1当前像素P0的位置处包含两层贴花,假设第一层贴花1对应的贴花空间坐标为A21,第二层贴花2对应的贴花空间坐标为A22,则终端可以基于贴花属性数据1所包含的贴花1和贴花2的位姿数据,分别对物体模型1的当前像素P0的贴花空间坐标A21和A22进行转换,以得到物体模型1当前像素P0对应的贴花纹理坐标为A31和A32。
可以理解,本申请实施例中物体模型1当前像素P0的位置处所包含的贴花包括但不限于是两层贴花,还可以是其他的自定义的贴花数量,比如,物体模型1当前像素P0的位置处所包含的贴花可以是0层贴花、1层贴花、5层贴花等,终端可以分别对物体模型1的当前像素P0对应的各个贴花空间坐标进行转换,以得到物体模型1当前像素P0对应的各个贴花纹理坐标。
本实施例中,通过从共享缓存区中索引物体模型对应的贴花属性数据,故可以基于贴花属性数据中的原始数据确定各个贴花的纹理坐标,进而基于贴花纹理坐标对包含贴花集的共享图片采样,得到各个贴花的材质信息,即本申请实施例中获取法线信息的方式成本低,其次,相对于DBuffer方案不需要压缩法线,最终计算光照的时候使用的是原始精度的法线,故本申请实施例中得到贴花的法线还原度更好,在有效提高渲染效率的同时又能够保证渲染效果的准确性,也会使得渲染效果得到较大的提升。
在其中一个实施例中,如图3所示,基于图案属性数据,对物体模型中像素的图案空间坐标进行转换的步骤,包括:
步骤302,从图案属性数据中获取图案在共享图片中对应的图案区域;
步骤304,基于图案区域,对图案空间坐标进行线性处理。
其中,图案区域是指各个图案在共享图片中所位于的区域,即本申请中的图案区域可以是预先存储好的用于表示各个图案在共享图片中的所处位置的信息,比如,共享图片中包含了贴花1和贴花2两个不同的图案,贴花1位于该共享图片的左边区域,即贴花1在共享图片中对应的图案区域为左边区域中长为a、宽为b的矩形框C-ab区域中,贴花1在共享图片中对应的图案区域可以表示为:矩形框C-ab区域。
线性处理是指对图案空间坐标进行一系列的线性运算处理,例如,线性运算处理包括但不限于是加、减、乘、除的混合运算。
具体地,在渲染阶段,终端确定物体模型的当前像素在世界空间中的坐标即世界空间坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型当前像素对应的世界空间坐标进行转换,得到物体模型当前像素对应的图案空间坐标之后,终端可以从图案属性数据中获取各个图案在共享图片中对应的图案区域数据,并基于图案区域数据,对转换后的图案空间坐标进行线性处理,以得到线性处理后的物体模型当前像素对应的图案纹理坐标。
举个例子,假设在渲染阶段,终端确定物体模型1的当前像素P0在世界空间中的坐标即世界空间坐标为A1,并依据索引到的贴花属性数据中的World to Decal Matrix矩阵1,对物体模型1当前像素P0对应的世界空间坐标A1进行转换,得到物体模型1当前像素P0对应的贴花空间坐标为两个贴花空间坐标时,则表明物体模型1当前像素P0的位置处包含两层贴花,假设第一层贴花1对应的贴花空间坐标为A21,第二层贴花2对应的贴花空间坐标为A22,则终端可以基于贴花属性数据所包含的贴花1和贴花2的位姿数据,即终端可以从贴花属性数据中获取贴花1和贴花2在共享图片中对应的图案区域数据为:矩形框C-ab区域和矩形框C-cd区域,进一步的,终端可以基于贴花1和贴花2在共享图片中对应的图案区域数据矩形框C-ab区域和矩形框C-cd区域,分别对转换后的贴花空间坐标A21、A22进行线性处理,以得到线性处理后的物体模型1当前像素P0对应的两个贴花的贴花纹理坐标A31和A32。
可以理解,本申请实施例中物体模型1当前像素P0的位置处所包含的贴花包括但不限于是两层贴花,还可以是其他的自定义的贴花数量,比如,物体模型1当前像素P0的位置处所包含的贴花可以是0层贴花、1层贴花、5层贴花等,因此,终端可以基于各个贴花在共享图片中对应的图案区域数据,分别对转换后的各个贴花空间坐标进行线性处理,得到线性处理后的物体模型1当前像素P0对应的贴花纹理坐标也包括但不限于是两个贴花纹理坐标,还可以是其他数量的贴花纹理坐标,即物体模型1当前像素P0的位置处所包含的贴花的数量与贴花纹理坐标的数量是相同的,以使得后续终端可以基于各个贴花的贴花纹理坐标对包含贴花集的共享图片采样,得到各个贴花的贴花纹理坐标对应的贴花材质信息。由此,通过从共享缓存区中索引物体模型对应的贴花属性数据,故可以基于贴花属性数据中的原始数据确定各个贴花的纹理坐标,进而基于贴花纹理坐标对包含贴花集的共享图片采样,得到各个贴花的材质信息,即本申请实施例中获取法线信息的方式成本低,其次,相对于DBuffer方案不需要压缩法线,最终计算光照的时候使用的是原始精度的法线,故本申请实施例中得到贴花的法线还原度更好,在有效提高渲染效率的同时又能够保证渲染效果的准确性,也会使得渲染效果得到较大的提升。
在其中一个实施例中,基于图案区域,对图案空间坐标进行线性处理的步骤,包括:
基于图案区域,对图案空间坐标进行缩放和平移处理。
其中,缩放处理是指对图案空间坐标进行缩放处理,比如,对图案空间坐标进行乘、除运算,以实现对图案空间坐标的缩放处理。
平移处理是指对图案空间坐标进行平移处理,比如,对图案空间坐标进行加、减运算,以实现对图案空间坐标的平移处理。
具体地,在渲染阶段,终端确定物体模型的当前像素在世界空间中的坐标即世界空间坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型当前像素对应的世界空间坐标进行转换,得到物体模型当前像素对应的图案空间坐标之后,终端可以从图案属性数据中获取各个图案在共享图片中对应的图案区域数据,并基于图案区域数据,对转换后的图案空间坐标进行缩放和平移处理,以得到缩放和平移处理后的物体模型当前像素对应的图案纹理坐标。
举个例子,假设在渲染阶段,终端确定物体模型1的当前像素P0在世界空间中的坐标即世界空间坐标为A1,并依据索引到的贴花属性数据中的World to Decal Matrix矩阵1,对物体模型1当前像素P0对应的世界空间坐标A1进行转换,得到物体模型1当前像素P0对应的贴花空间坐标为两个贴花空间坐标时,则表明物体模型1当前像素P0的位置处包含两层贴花,假设第一层贴花1对应的贴花空间坐标为A21,第二层贴花2对应的贴花空间坐标为A22,则终端可以基于贴花属性数据所包含的贴花1和贴花2的位姿数据,即终端可以从贴花属性数据1中获取贴花1和贴花2在共享图片中对应的图案区域数据为:矩形框C-ab区域和矩形框C-cd区域,进一步的,终端可以基于贴花1和贴花2在共享图片中对应的图案区域数据矩形框C-ab区域和矩形框C-cd区域,分别对转换后的贴花空间坐标A21、A22进行进行缩放和平移处理,以得到缩放和平移处理后的物体模型1当前像素P0对应的两个贴花的贴花纹理坐标A31和A32。由此,省去了传统DBuffer方式中的相关读取和写入成本,也不需要依赖深度和法线缓冲区,贴花Decal的材质兼容SRPBatch及GPUInstance,DC(draw call)绘制成本低。
在一个实施例中,基于图案属性数据,对物体模型中像素的图案空间坐标进行线性处理,得到物体模型中像素的图案纹理坐标,包括:
当物体模型对应的图案属性数据包含第一图案属性数据和第二图案属性数据时,基于第一图案属性数据,对物体模型中像素的图案空间坐标进行线性处理,得到物体模型中像素的第一图案纹理坐标;
基于第二图案属性数据,对物体模型中像素的图案空间坐标进行线性处理,得到物体模型中像素的第二图案纹理坐标。
其中,第一图案属性数据和第二图案属性数据用于区分不同的图案属性数据,比如,第一图案属性数据可以是第一层贴花对应的属性数据,第二图案属性数据可以是第二层贴花对应的属性数据。
具体地,在渲染阶段,终端确定物体模型的当前像素在世界空间中的坐标即世界空间坐标,并依据索引到的图案属性数据中的转换矩阵,对物体模型当前像素对应的世界空间坐标进行转换,得到物体模型当前像素对应的图案空间坐标之后,当物体模型对应的图案属性数据包含第一图案属性数据和第二图案属性数据时,终端可以从第一图案属性数据中获取第一图案在共享图片中对应的第一图案区域,并基于第一图案区域,对物体模型当前像素的图案空间坐标进行线性处理,得到物体模型当前像素的第一图案纹理坐标;同理,终端可以从第二图案属性数据中获取第二图案在共享图片中对应的第二图案区域,并基于第二图案区域,对物体模型当前像素的图案空间坐标进行线性处理,得到物体模型当前像素的第二图案纹理坐标。
举个例子,假设在渲染阶段,终端确定物体模型1的当前像素P0在世界空间中的坐标即世界空间坐标为A1,并依据索引到的贴花属性数据中的World to Decal Matrix矩阵,对物体模型1当前像素P0对应的世界空间坐标A1进行转换,得到物体模型1当前像素P0对应的贴花空间坐标为两个贴花空间坐标时,则表明物体模型1当前像素P0的位置处包含两层贴花,即当物体模型1对应的贴花属性数据包含第一贴花属性数据和第二贴花属性数据时,终端可以从第一贴花属性数据中获取贴花1在共享图片中对应的贴花1区域,并基于贴花1区域,对物体模型1当前像素的贴花空间坐标A21进行线性处理,得到物体模型1当前像素的第一贴花纹理坐标A31;同理,终端可以从第二贴花属性数据中获取贴花2在共享图片中对应的贴花2区域,并基于贴花2区域,对物体模型1当前像素的贴花空间坐标A22进行线性处理,得到物体模型1当前像素的第二图案纹理坐标A32。由此,省去了传统DBuffer方式中的相关读取和写入成本,也不需要依赖深度和法线缓冲区,贴花Decal的材质兼容SRPBatch及GPUInstance,DC(draw call)绘制成本低。
在其中一个实施例中,共享图片包含第一图案和第二图案,图案纹理坐标包括第一图案纹理坐标和第二图案纹理坐标;
基于图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息,包括:
基于物体模型中像素的第一图案纹理坐标,对包含第一图案和第二图案的共享图片采样,得到第一图案材质信息;
基于物体模型中像素的第二图案纹理坐标,对包含第一图案和第二图案的共享图片采样,得到第二图案材质信息。
具体地,在渲染阶段,终端基于图案属性数据中的位姿数据和图案空间坐标确定图案纹理坐标之后,终端可以基于物体模型中当前像素的第一图案纹理坐标,对包含第一图案和第二图案的共享图片采样,得到第一图案材质信息;同时,终端也可以基于物体模型中当前像素的第二图案纹理坐标,对包含第一图案和第二图案的共享图片采样,得到第二图案材质信息。即当图案纹理坐标包括第一图案纹理坐标和第二图案纹理坐标时,终端可以基于不同的图案纹理坐标,从共享图片中所包含的不同图案中采样得到不同的图案材质信息。
可以理解,本申请实施例中物体模型当前像素的位置处所包含的贴花包括但不限于是两层贴花,还可以是其他的自定义的贴花数量,比如,物体模型当前像素的位置处所包含的贴花可以是0层贴花、1层贴花、5层贴花等,因此,终端可以基于各个贴花在共享图片中对应的图案区域数据,分别对转换后的各个贴花空间坐标进行线性处理,得到线性处理后的物体模型当前像素对应的贴花纹理坐标也包括但不限于是两个贴花纹理坐标,还可以是其他数量的贴花纹理坐标,即物体模型当前像素的位置处所包含的贴花的数量与贴花纹理坐标的数量是相同的,以使得后续终端可以基于各个贴花的贴花纹理坐标对包含贴花集的共享图片采样,得到各个贴花的贴花纹理坐标对应的贴花材质信息。
举个例子,在渲染阶段,假设终端从共享缓存区2中的第三个“PerDecalProjectorGroup Buffer”中获取到物体模型1对应的贴花属性数据集,并依据贴花属性数据集中的转换矩阵,对物体模型的当前像素即第一个像素对应的世界空间坐标进行转换,得到当前像素对应的贴花空间坐标为A21、A22之后,终端可以基于贴花属性数据集中的位姿数据,对当前像素对应的贴花空间坐标A21、A22进行转换,以得到转换后的贴花纹理坐标A31、A32;进一步的,终端可以获取包含贴花1和贴花2的共享图片,并基于物体模型1中当前像素的贴花纹理坐标A31,对包含贴花1和贴花2的共享图片采样,得到贴花1的材质信息;同理,终端也可以基于物体模型1中当前像素的贴花纹理坐标A32,对包含第一图案和第二图案的共享图片采样,得到贴花2的材质信息。
可以理解,采样得到的贴花的材质信息中包含多种纹理值,例如,贴花2的材质信息可以包括采样位置处对应的颜色值、法线值、光滑度值、金属度值等信息。
本实施例中,通过从共享缓存区中索引物体模型对应的贴花属性数据,故可以基于贴花属性数据中的原始数据确定各个贴花的纹理坐标,进而基于贴花纹理坐标对包含贴花集的共享图片采样,得到各个贴花的材质信息,即本申请实施例中获取法线信息的方式成本低,其次,相对于DBuffer方案不需要压缩法线,最终计算光照的时候使用的是原始精度的法线,故本申请实施例中得到贴花的法线还原度更好,在有效提高渲染效率的同时又能够保证渲染效果的准确性,也会使得渲染效果得到较大的提升。
在一个实施例中,融合图案材质信息与物体模型的材质信息,得到融合材质信息,包括:
基于图案属性数据中的通道系数和叠放顺序,对第一图案材质信息、第二图案材质信息和物体模型的材质信息进行融合,得到融合材质信息;通道系数是第一图案和第二图案对应的透明度通道的系数。
其中,通道系数是指各个像素对应的通道系数,本申请中的通道系数可以是阿尔法通道的系数,阿尔法通道(Alpha Channel)是指一张图片的透明和半透明度。例如:一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,最后一个比特是阿尔法。在这种情况下,它要么表示透明要么不是,因为阿尔法比特只有0或1两种不同表示的可能性。
具体地,在渲染阶段,终端基于所确定的图案纹理坐标对包含图案集的共享图片采样,得到与图案纹理坐标对应的图案材质信息之后,终端可以基于图案属性数据中的通道系数和叠放顺序,对第一图案材质信息、第二图案材质信息和物体模型的材质信息进行融合,得到融合材质信息,其中,通道系数是第一图案和第二图案对应的透明度通道的系数。即本申请中终端可以按照各层图案的alpha通道系数并以正确的顺序,将各层图案的材质信息和物体模型本身的材质信息进行混合,混合之后再光照,以实现有多层贴花物体的光照过程。
举个例子,假设当alpha通道值为1时,会覆盖底色,当alpha通道值为0时,表示透明,则终端基于所确定的两个图案纹理坐标对包含贴花集的共享图片采样,得到与两个图案纹理坐标分别对应的贴花1的材质信息1、贴花2的材质信2之后,终端可以基于贴花属性数据中的通道系数alpha1、alpha2和各层贴花之间的叠放顺序,对贴花1的材质信息1、贴花2的材质信2和物体模型1的材质信息3进行融合,即可得到融合材质信息F-123。由此,通过按照各个图案的通道系数和叠放顺序,将各层贴花的材质信息与物体模型本身的材质信息进行融合,即可得到按照正确的叠放顺序融合后的材质信息,并对融合后的材质信息进行统一的一次光照处理即可得到对应的渲染数据,光照计算成本及效果和原模型一致,同时省去了DBuffer方式中相关读取和写入成本,不需要依赖深度和法线缓冲区,同时也能够保证混合顺序及效果绝对正确。
在一个实施例中,对融合材质信息进行光照处理,包括:
在物体模型的顶点位置处生成光照探针;
获取光照探针对应的光照信息;
基于光照信息对融合材质信息进行光照处理。
其中,光照探针是一种光照渲染技术,可以用来收集从四周各个方向接收到的光照信息,然后将光照信息作用到被渲染物体上,从而影响被渲染物体的最终光照效果。
可以理解,对于光照探针的数量和分布位置,通常根据虚拟场景对应的点阵均匀布放数量众多的光照探针,而这种布放方式,将会占用大量的内存,同时还会耗费大量的布放时间,因此,本申请实施例中所采用的布放光照探针的方式包括但不限于是在物体模型的顶点位置处生成光照探针的方式,还可以为其他自定义的布放方式。
具体地,在渲染阶段,终端融合图案材质信息与物体模型的材质信息,得到融合材质信息之后,终端可以对融合材质信息进行光照处理,即终端可以在物体模型的顶点位置处生成光照探针,并获取光照探针对应的光照信息;进一步的,终端可以基于光照信息对融合材质信息进行光照处理,即终端可以基于光照信息对包含有多层图案的物体模型的当前像素的融合材质信息进行光照计算,以得到物体模型在当前像素的光照数据,后续终端可以基于所得到的光照数据在屏幕中显示当前像素对应的渲染效果。由此,光照计算成本及效果和原模型一致,避免了额外生产深度给图案或者额外对图案进行光照的消耗,无需重复计算大量的光照信息,同时混合顺序可以控制,不会引入色偏瑕疵,在有效提高渲染效率的同时又能够保证渲染效果的准确性,也会使得渲染效果得到较大的提升。
本申请还提供一种应用场景,该应用场景应用上述的图案渲染方法。具体地,该图案渲染方法在该应用场景的应用如下:
当用户想渲染游戏动画场景中的包含多层贴花的物体模型时,可以采用上述的图案渲染方法,即在编辑期,用户可以将贴花属性数据存储至用于合批绘制共享缓存区中,创建物体模型与共享缓存区之间具有绑定关系,同时,将贴花属性集成至物体模型的材质中,在渲染阶段,则终端可以基于物体模型的索引值,从具有绑定关系的共享缓存区中索引与该物体模型对应的贴花属性数据,并依据贴花属性数据转换物体模型中当前像素对应的空间坐标,得到贴花空间坐标;进一步的,终端可以基于贴花属性数据和贴花空间坐标确定贴花纹理坐标,并基于贴花纹理坐标对包含贴花集的共享图片采样,得到贴花材质信息;终端融合贴花材质信息与物体模型的材质信息,即可得到融合材质信息,并对融合材质信息进行光照处理。由此,通过将贴花数据集成到了模型材质中,因此,在模型渲染过程中有完整的所有渲染所需数据,无需缓存数据,即不需要依赖深度和法线缓冲区也是因为在模型材质中本来就有这些信息,第一时间就借此渲染了贴花,使得光照计算成本及效果和原模型一致,同时还省去了DBuffer及相关读取和写入成本,能够有效保证多层贴花之间的混合顺序及效果,提升渲染效率和渲染效果。
本申请实施例提供的方法,可以应用于各种虚拟动画的场景中。以下以多层贴花贴在半透明物体上的场景为例,对本申请实施例提供的图案渲染方法进行说明。
其中,VolumeDecal(屏幕空间贴花):指在屏幕空间通过深度缓冲数据和法线缓冲数据还原贴花所贴位置的3D世界坐标及其方向,进而进行光照着色,从而进行贴花渲染的技术。
DBuffer:即Decal Buffer的缩写,用于将贴花的材质属性缓冲进这个buffer,用于后期和其他模型材质一起作为材质输入进行光照渲染。
传统的贴花渲染方式中,通常是采用Volume Decal的方式和Decal Buffer的方式,如图4所示,为屏幕空间贴花的原理示意图。
1)Volume Decal的问题:
性能瓶颈:
1.依赖深度及法线Buffer;
2.每张贴花重复计算光照,则光照成本为(1+N)*LightingCost;
效果问题:
1.有时为了平衡性能,会减弱或者舍弃法线效果;
2.难于控制贴花混合顺序;
3.需要通过stencil buffer即模板缓冲等控制贴花影响范围,复杂度高且控制力差。
可以理解,传统的Volume Decal方式中之所以需要重复计算,是因为每张贴花彼此独立,两张贴花就算重叠,也不知道彼此存在,所以需要各自分别计算各自受的光照。传统的Volume Decal方式中之所以难于控制混合顺序,是因为混合顺序只存在于重叠的多个贴花之间,但体积贴花彼此不知道对方是否与自己重叠,更没有有效的方式告知渲染模块彼此先后顺序,所以无法控制混合顺序。此外,使用stencil buffer即模板缓冲区本来就是额外成本,模板缓冲区存储信息有限,容易被各种功能挤占,因此也会降低硬件渲染效率。
如图5所示,为DBuffer Decal的原理示意图。
2)DBuffer Decal的问题:
性能瓶颈:
1.依赖深度及法线Buffer,Gbuffer可以提供所需数据;
2.需要单独的Dbuffers来存储贴花信息,内存带宽压力增大。
效果问题:
1.Dbuffer混合顺序不对,会引入色偏瑕疵;
2.难于控制贴花混合顺序;
3.需要通过stencil buffer即模板缓冲等控制贴花影响范围,复杂度高且控制力差。
DBuffer Decal是为了解决VolumeDecal方法反复计算光照问题而发明的方法。DBuffer的方式会增加带宽压力的原因,是因为渲染DBuffer时,必须反复存取DBuffer进行混合(即便GPU有片上缓存优化),最终还需要把DBuffer写回系统内存,之后还需要把DBuffer读取出来渲染到最终屏幕,这些多次的读写内存访问就增加了带宽压力。同时,混合顺序不对,会引入色偏瑕疵是因为:原本颜色混合顺序及公式应该是:((1-a1)*Color+a1*Decal1Color)(1-a2)+a2*Decal2Color)(1-a3)+a3*Decal3Color;而Dbuffer将混合顺序变成(1-ax)color+[((1-a2)Decal1Color+a2*Decal2Color)(1-a3)+a3*Decal3Color],最终混合颜色其实和预期会有差异。
因此,为了解决上述两种渲染方式中存在的问题,本申请提供了一种集成进材质的高效贴花渲染方法,如图6所示,为前向嵌入式体积轻松快速贴花系统的渲染流程示意图。图6中提供的方法主要分为两个部分,即编辑阶段和渲染阶段两个部分,将传统贴花作为模型材质的一部分,在材质着色器中计算贴花与模型原本纹理混合的方式,解决了上述DBuffer Decal和VolumeDecal方法中混合顺序不对,会引入色偏瑕疵、难以控制贴花顺序等问题,具体包括:
关键点1:编辑期将贴花数据整合进用于合批的buffer(存纹理/存GPU-Buffer);
关键点2:将贴花属性集成进模型材质;
关键点3:计算模型当前像素在世界空间的坐标;
关键点4:计算当前像素转换到贴花空间坐标;
关键点5:计算贴花UV坐标并采样贴花纹理;
关键点6:贴花材质与模型材质混合;
本申请实施例提供的方法,在编辑阶段自动存储从世界空间转换到贴花对象空间的矩阵(World to Decal Matrix),并设计shader(着色器)数据接口可以获得这个矩阵。进而使得在渲染阶段,终端可以将当前shader(着色器)的世界坐标求出,然后再用(World toDecal Matrix)矩阵将世界空间坐标转换到贴花空间坐标,进而再将贴花空间坐标转换成对应的贴花UV坐标。可以理解,本申请实施例中所采用的计算UV的方法可以包括:将已经获得的贴花空间坐标,经过简单的缩放偏移计算,就可以获得贴花UV坐标了。
在产品侧,如图7所示,为产品侧表现的渲染结果示意图。如图7中所示的贴花渲染效果,表面表现上和普通贴花类似,但是法线还原度更好,实际性能上也更好,同时对产品其他功能集成度更好,简化了场景管理,使得产品在关闭后处理后,不会再需要额外绘制深度buffer及法线buffer,这在各种中端以及低端设备上,尤其是移动设备上,可以有更好的性能表现和适配能力。
本申请提供的方法之所以得到的法线还原度更好,是因为本申请提供的方法可以直接获取原始法线信息,即获取法线信息的这种方式的成本低,其次,相对于DBuffer方案不需要压缩法线,压缩是有损压缩,类似延迟渲染中的法线GBuffer压缩算法,本申请提供的方法计算光照的时候使用的是原始精度的法线。
如图8所示,为贴花贴在缺乏深度信息的半透明物体上的示意图。如图8中所示,本申请提供的方法,能够将多层贴花贴在缺乏深度信息的半透明物体上,这是其他贴花技术不具备的能力,这让贴花效果大幅扩展了应用场景。
本申请提供的方法之所以能使得贴花贴在半透明物体上的原因:是因为半透明物体只有在自身渲染时才有深度信息(世界空间坐标),而本申请提供的方案就是在模型渲染同时渲染贴花,所以多层贴花可以和半透明物体一起绘制在正确的位置上,即本申请实施例中的物体模型可以是半透明模型。
在技术侧,如图9所示,为集成进材质的高效贴花渲染方法的实现原理示意图。即本申请实施例中提供的方法的实现原理如图9所示,将N个贴在具体物件上的贴花,作为物件的材质的一部分,集成在物件材质里,与物件一起渲染。从而避免了额外生产深度给贴花或者额外对贴花进行光照的消耗,也避免了场景管理系统把贴花作为单独物件进行管理的负担。
如图10所示,为前向嵌入式体积轻松快速贴花系统的实现原理图。前向嵌入式体积轻松快速贴花系统(Forward Embedded Volume Easy&Rapid Decal System,FeverDecal),图10中方框1部分为贴花聚合实现示意,方框2部分为共享buffer实现示意,方框3部分为shader(着色器)引用共享buffer的示意。
如图10中所示,步骤1:通过DecalProjectorGroup将多个DecalProjector(组件,用来投影贴花)、多个模型(及其LOD)统一在一个组内,同组内的模型都会受同一批Decal的影响,并且这批Decal所需的shader属性也被打成一组保存在图10中所示的“PerDecalProjectorGroup Buffer”里。
其中,DecalProjector这个组件用来投影贴花,DecalProjector是指贴花投射器,DecalProjectorGroup是指贴花投射器组,代表多个贴花投射器数据存储到同一个buffer里;Per DecalProjectorGroup Buffer是指,每个DecalProjectorGroup对应的buffer。
LOD技术即Levels of Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
由于每个场景模型可能贴了不同的贴花,如果不加处理,所有的模型都会变成完全不同的材质,就会带来DrawCall增加的副作用,增加CPU端绘制提交的成本,所以本申请中将一定范围内的贴花数据想办法组织到一个buffer里,然后在shader中通过各自的索引进行访问,就可以让这些本该不同的材质,变成对于GPUInstance技术或者SRPBatch技术来说可以合批的材质了,可以合批就会减少DrawCall成本。
步骤2:通过DecalObjsGroup将多个DecalProjectorGroup打成一组,并为它们提供一个公共的“Per DecalProjectorGroup Block Buffer”,将步骤1中的“PerDecalProjectorGroup Buffer”存到这个公共Buffer里。
步骤3:各个物体的材质引用存有影响自己的贴花的Per DecalProjectorGroupBlock Buffer,在shader中通过Per Instance的索引方式,去访问属于自己的贴花属性。
步骤4:shader根据预存的World to Decal矩阵计算出贴花UV后,访问共享的贴花图集,将贴花材质和模型材质进行混合之后用于统一的光照计算。
步骤5:因为贴花图集和贴花buffer都是多个物体共享,所以可以高效的合批渲染。
编辑器逻辑就是会把这些贴花数据和物体材质关联起来,本申请中的Buffer可以认为是个数组,Per Instance的索引就是这个数组的索引,所以通过索引访问数组中的元素,就能拿到想要的贴花数据了。步骤2中的“Per DecalProjectorGroup Block Buffer”就是把多个DecalProjectorGroup存在同一个buffer里,Per Instance是指每个Instance,Instance是指一个场景对象。GPUInstance会把多个材质相近的场景对象合批一次绘制。一批中的多个对象会通过instance id在shader内访问各自的不同属性。
上述步骤4中的World to Decal矩阵是指从世界空间坐标转换到贴花对象(贴花投射器)空间坐标的一个变换矩阵。贴花UV是指绘制模型像素时应该采样贴花什么位置的纹理坐标,贴花的纹理坐标简称贴花UV。
上述步骤4中将贴花材质和模型材质进行混合的混合方法:就是按照贴花的alpha通道系数以正确顺序和模型本身的颜色、物理属性进行混合,法线也有法线的混合方式,方法很多,可以自由选择,在具体实践中一般选择效率最高最简单的混合方式;将贴花材质和模型材质混合之后再光照,这本来就符合现实中有多层贴花物体的光照过程,其他方式比如VolumeDecal、DBufferDecal的方式都不符合实际而且效率更低。
如图11所示,为性能对比数据的示意图。图11中提供的对比数据为本申请提供的方法与传统的DBuffer Decal方法和VolumeDecal方法的性能数据对比的示意图。
本申请技术方案所产生的有益效果包括:
1)光照计算成本及效果和原模型一致;
2)省去了DBuffer及相关读取和写入成本;
3)不需要依赖深度和法线缓冲区;
4)不依赖类似PLS的硬件特性,对低端机友好;
5)贴花Decal的材质兼容SRPBatch及GPUInstance,DC(draw call)绘制成本低;
6)消除了Decal对象的DC(draw call)成本;
7)混合顺序及效果绝对正确;
8)支持把贴花贴在半透明物体上;
9)易于控制贴花顺序及影响物体。
本申请中之所以可以省去DBuffer的原因,是因为把贴花集成到了模型材质中,所以在模型渲染过程中有完整的所有渲染所需数据,无需缓存数据,因此不需要依赖深度和法线缓冲区也是因为本申请方案中在模型材质中本来就有这些信息,第一时间就借此渲染了贴花,所以无需额外缓存这些数据了。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的图案渲染方法的图案渲染装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个图案渲染装置实施例中的具体限定可以参见上文中对于图案渲染方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种图案渲染装置,包括:索引模块1202、转换模块1204、确定模块1206、采样模块1208、融合模块1210和处理模块1212,其中:
索引模块1202,用于索引物体模型对应的图案属性数据。
转换模块1204,用于依据所述图案属性数据转换所述物体模型中像素的坐标,得到图案空间坐标。
确定模块1206,用于基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标。
采样模块1208,用于基于所述图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息。
融合模块1210,用于融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息。
处理模块1212,用于对所述融合材质信息进行渲染处理。
在一个实施例中,所述装置还包括:存储模块,存储模块用于预先将所述图案属性数据存储至共享缓存区中;所述共享缓存区与所述物体模型之间具有绑定关系;确定模块还用于基于所述绑定关系,确定所述物体模型对应的所述共享缓存区;索引模块还用于基于所述物体模型的索引值,从所述共享缓存区中索引与所述物体模型对应的图案属性数据。
在一个实施例中,所述装置还包括:组合模块和迁移模块,组合模块用于将至少两个图案投射器组件和所述物体模型的细节层次信息进行组合,得到图案投射器分组;存储模块还用于将所述图案投射器分组内的各数据存储在第一缓存区中;迁移模块用于将所述第一缓存区中的各数据迁移到所述共享缓存区中。
在一个实施例中,确定模块还用于确定所述物体模型中像素的世界空间坐标;转换模块还用于基于所述图案属性数据中的转换矩阵,对所述物体模型中像素的世界空间坐标进行转换,得到图案空间坐标。
在一个实施例中,转换模块还用于基于所述图案属性数据,对所述物体模型中像素的图案空间坐标进行转换,得到所述物体模型中像素的图案纹理坐标。
在一个实施例中,所述装置还包括:获取模块,用于从所述图案属性数据中获取所述图案在所述共享图片中对应的图案区域;处理模块还用于基于所述图案区域,对所述图案空间坐标进行线性处理。
在一个实施例中,处理模块还用于基于所述图案区域,对所述图案空间坐标进行缩放和平移处理。
在一个实施例中,处理模块还用于当所述物体模型对应的图案属性数据包含第一图案属性数据和第二图案属性数据时,基于所述第一图案属性数据,对所述物体模型中像素的图案空间坐标进行线性处理,得到所述物体模型中像素的第一图案纹理坐标;基于所述第二图案属性数据,对所述物体模型中像素的图案空间坐标进行线性处理,得到所述物体模型中像素的第二图案纹理坐标。
在一个实施例中,所述共享图片包含第一图案和第二图案,所述图案纹理坐标包括第一图案纹理坐标和第二图案纹理坐标;采样模块还用于基于所述物体模型中像素的第一图案纹理坐标,对包含所述第一图案和所述第二图案的共享图片采样,得到第一图案材质信息;基于所述物体模型中像素的第二图案纹理坐标,对包含所述第一图案和所述第二图案的共享图片采样,得到第二图案材质信息。
在一个实施例中,融合模块还用于基于所述图案属性数据中的通道系数和叠放顺序,对所述第一图案材质信息、第二图案材质信息和所述物体模型的材质信息进行融合,得到融合材质信息;所述通道系数是所述第一图案和所述第二图案对应的透明度通道的系数。
在一个实施例中,所述装置还包括:生成模块和转化模块,生成模块用于在所述物体模型的顶点位置处生成光照探针;获取模块还用于获取所述光照探针对应的光照信息;处理模块还用于基于所述光照信息对所述融合材质信息进行光照处理。
上述图案渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端或服务器,在本实施例中,以该计算机设备是终端为例进行说明,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图案渲染方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种图案渲染方法,其特征在于,所述方法包括:
索引物体模型对应的图案属性数据;
依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标;
基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;
基于所述图案纹理坐标对包含图案的共享图片采样,得到图案材质信息;
融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;
对所述融合材质信息进行光照处理。
2.根据权利要求1所述的方法,其特征在于,所述索引物体模型对应的图案属性数据之前,所述方法还包括:
预先将所述图案属性数据存储至共享缓存区中;所述共享缓存区与所述物体模型之间具有绑定关系;
所述索引物体模型对应的图案属性数据,包括:
基于所述绑定关系,确定所述物体模型对应的所述共享缓存区;
基于所述物体模型的索引值,从所述共享缓存区中索引与所述物体模型对应的图案属性数据。
3.根据权利要求2所述的方法,其特征在于,所述预先将所述图案属性数据存储至共享缓存区中,包括:
将至少两个图案投射器组件和所述物体模型的细节层次信息进行组合,得到图案投射器分组;
将所述图案投射器分组内的各数据存储在第一缓存区中;
将所述第一缓存区中的各数据迁移到所述共享缓存区中。
4.根据权利要求1所述的方法,其特征在于,所述依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标,包括:
确定所述物体模型中像素的世界空间坐标;
基于所述图案属性数据中的转换矩阵,对所述物体模型中像素的世界空间坐标进行转换,得到图案空间坐标。
5.根据权利要求1所述的方法,其特征在于,所述基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标,包括:
基于所述图案属性数据,对所述物体模型中像素的图案空间坐标进行转换,得到所述物体模型中像素的图案纹理坐标。
6.根据权利要求5所述的方法,其特征在于,所述基于所述图案属性数据,对所述物体模型中像素的图案空间坐标进行转换,包括:
从所述图案属性数据中获取所述图案在所述共享图片中对应的图案区域;
基于所述图案区域,对所述图案空间坐标进行线性处理。
7.根据权利要求6所述的方法,其特征在于,所述基于所述图案区域,对所述图案空间坐标进行线性处理,包括:
基于所述图案区域,对所述图案空间坐标进行缩放和平移处理。
8.根据权利要求5所述的方法,其特征在于,所述基于所述图案属性数据,对所述物体模型中像素的图案空间坐标进行线性处理,得到所述物体模型中像素的图案纹理坐标,包括:
当所述物体模型对应的图案属性数据包含第一图案属性数据和第二图案属性数据时,基于所述第一图案属性数据,对所述物体模型中像素的图案空间坐标进行线性处理,得到所述物体模型中像素的第一图案纹理坐标;
基于所述第二图案属性数据,对所述物体模型中像素的图案空间坐标进行线性处理,得到所述物体模型中像素的第二图案纹理坐标。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述共享图片包含第一图案和第二图案,所述图案纹理坐标包括第一图案纹理坐标和第二图案纹理坐标;
所述基于所述图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息,包括:
基于所述物体模型中像素的第一图案纹理坐标,对包含所述第一图案和所述第二图案的共享图片采样,得到第一图案材质信息;
基于所述物体模型中像素的第二图案纹理坐标,对包含所述第一图案和所述第二图案的共享图片采样,得到第二图案材质信息。
10.根据权利要求9所述的方法,其特征在于,所述融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息,包括:
基于所述图案属性数据中的通道系数和叠放顺序,对所述第一图案材质信息、第二图案材质信息和所述物体模型的材质信息进行融合,得到融合材质信息;所述通道系数是所述第一图案和所述第二图案对应的透明度通道的系数。
11.根据权利要求1所述的方法,其特征在于,所述对所述融合材质信息进行光照处理,包括:
在所述物体模型的顶点位置处生成光照探针;
获取所述光照探针对应的光照信息;
基于所述光照信息对所述融合材质信息进行光照处理。
12.一种图案渲染装置,其特征在于,所述装置包括:
索引模块,用于索引物体模型对应的图案属性数据;
转换模块,用于依据所述图案属性数据转换所述物体模型中像素对应的空间坐标,得到图案空间坐标;
确定模块,用于基于所述图案属性数据和所述图案空间坐标确定图案纹理坐标;
采样模块,用于基于所述图案纹理坐标对包含图案集的共享图片采样,得到图案材质信息;
融合模块,用于融合所述图案材质信息与所述物体模型的材质信息,得到融合材质信息;
处理模块,用于对所述融合材质信息进行光照处理。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310001899.8A CN116977528A (zh) | 2023-01-03 | 2023-01-03 | 图案渲染方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310001899.8A CN116977528A (zh) | 2023-01-03 | 2023-01-03 | 图案渲染方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116977528A true CN116977528A (zh) | 2023-10-31 |
Family
ID=88481989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310001899.8A Pending CN116977528A (zh) | 2023-01-03 | 2023-01-03 | 图案渲染方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116977528A (zh) |
-
2023
- 2023-01-03 CN CN202310001899.8A patent/CN116977528A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022193941A1 (zh) | 图像渲染方法、装置、设备、介质和计算机程序产品 | |
US8249834B2 (en) | Device, system, and method of computer aided design (CAD) | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
CN113498532B (zh) | 显示处理方法、显示处理装置、电子设备及存储介质 | |
Sýkora et al. | StyleBlit: Fast Example‐Based Stylization with Local Guidance | |
CN112365598B (zh) | 倾斜摄影数据转换三维数据的方法、装置及终端 | |
CN116824092B (zh) | 三维模型生成方法、装置、计算机设备和存储介质 | |
JP2023501640A (ja) | 点群処理の方法、コンピュータシステム、プログラム及びコンピュータ可読記憶媒体 | |
CN116897541A (zh) | 使用渲染引擎的沉浸式技术媒体格式(itmf)规范的映射架构 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
Sherlock et al. | Interactive data styling and multifocal visualization for a multigrid web-based Digital Earth | |
Kavan et al. | Least squares vertex baking | |
Mwalongo et al. | GPU-based remote visualization of dynamic molecular data on the web | |
CN116758206A (zh) | 矢量数据的融合渲染方法、装置、计算机设备、存储介质 | |
CN116977528A (zh) | 图案渲染方法、装置、计算机设备、存储介质 | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
JP7352032B2 (ja) | 動画生成方法、装置、電子デバイス及びコンピュータ読取可能記憶媒体 | |
CN115269756A (zh) | 一种在cesium中引入热力图的方法及系统 | |
Huang et al. | A binocular parallel rendering method for VR globes | |
Kim et al. | Real and virtual worlds linkage through cloud-mobile convergence | |
CN116883575B (zh) | 建筑群渲染方法、装置、计算机设备和存储介质 | |
WO2023221683A1 (zh) | 图像渲染方法、装置、设备和介质 | |
Hildebrandt et al. | Image-based strategies for interactive visualisation of complex 3D geovirtual environments on lightweight devices | |
CN117557711B (zh) | 可视域的确定方法、装置、计算机设备、存储介质 | |
CN114707680B (zh) | 航空器3d模型生成方法、装置、电子设备和可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |