CN118470168A - 显示元素的渲染方法、装置、设备、存储介质及程序产品 - Google Patents
显示元素的渲染方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN118470168A CN118470168A CN202310152279.4A CN202310152279A CN118470168A CN 118470168 A CN118470168 A CN 118470168A CN 202310152279 A CN202310152279 A CN 202310152279A CN 118470168 A CN118470168 A CN 118470168A
- Authority
- CN
- China
- Prior art keywords
- world
- offset
- display element
- space
- vertex 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
- 238000000034 method Methods 0.000 title claims abstract description 138
- 238000009877 rendering Methods 0.000 title claims abstract description 91
- 238000003860 storage Methods 0.000 title claims abstract description 44
- 230000009466 transformation Effects 0.000 claims abstract description 112
- 230000008569 process Effects 0.000 claims abstract description 71
- 230000000007 visual effect Effects 0.000 claims abstract description 38
- 230000001131 transforming effect Effects 0.000 claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 50
- 239000002245 particle Substances 0.000 claims description 33
- 239000000463 material Substances 0.000 claims description 25
- 238000012360 testing method Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 241000592183 Eidolon Species 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000005538 encapsulation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- SNICXCGAKADSCV-UHFFFAOYSA-N nicotine Chemical compound CN1CCCC1C1=CC=CN=C1 SNICXCGAKADSCV-UHFFFAOYSA-N 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种显示元素的渲染方法、装置、设备、存储介质及程序产品,涉及计算机技术领域。方法包括:基于显示元素的顶点信息,确定显示元素的世界顶点坐标,显示元素是需保持屏幕显示位置不变的元素;基于视角变换过程中世界顶点坐标的偏移方式,确定显示元素的世界空间偏移量,世界空间偏移量用于抵消显示元素的世界顶点坐标在视角变换过程中的相对偏移;基于世界顶点坐标以及世界空间偏移量进行坐标空间变换,得到屏幕空间下显示元素的屏幕顶点坐标;基于屏幕顶点坐标,渲染得到显示元素。本申请实施例提供的方法通过实时计算世界空间偏移量的方式,保持显示元素的持续显示,无需占用额外的存储空间,且有助于提高渲染效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种显示元素的渲染方法、装置、设备、存储介质及程序产品。
背景技术
在显示画面的渲染过程中,可能存在一些特殊的显示元素,需始终保持显示在屏幕上,比如,粒子特效等。
相关技术中,为在屏幕上持续显示特定的显示元素,采用离屏渲染的方式进行渲染。在此过程中,使用2D相机拍摄显示元素并将拍摄结果存储,后续将存储的拍摄画面渲染至屏幕上。
可见,离屏渲染的方式需占用额外的存储空间,且效率较低。
发明内容
本申请实施例提供了一种显示元素的渲染方法、装置、设备、存储介质及程序产品,无需占用额外的存储空间,有助于提高渲染效率。所述技术方案如下:
一方面,本申请实施例提供了一种显示元素的渲染方法,所述方法包括:
基于显示元素的顶点信息,确定所述显示元素的世界顶点坐标,所述显示元素是需保持屏幕显示位置不变的元素;
基于视角变换过程中世界顶点坐标的偏移方式,确定所述显示元素的世界空间偏移量,所述世界空间偏移量用于抵消所述显示元素的世界顶点坐标在视角变换过程中的相对偏移;
基于所述世界顶点坐标以及所述世界空间偏移量进行坐标空间变换,得到屏幕空间下所述显示元素的屏幕顶点坐标;
基于所述屏幕顶点坐标,渲染得到所述显示元素。
另一方面,本申请实施例提供了一种显示元素的渲染装置,所述装置包括:
坐标确定模块,用于基于显示元素的顶点信息,确定所述显示元素的世界顶点坐标,所述显示元素是需保持屏幕显示位置不变的元素;
偏移量确定模块,用于基于视角变换过程中世界顶点坐标的偏移方式,确定所述显示元素的世界空间偏移量,所述世界空间偏移量用于抵消所述显示元素的世界顶点坐标在视角变换过程中的相对偏移;
空间变换模块,用于基于所述世界顶点坐标以及所述世界空间偏移量进行坐标空间变换,得到屏幕空间下所述显示元素的屏幕顶点坐标;
元素渲染模块,用于基于所述屏幕顶点坐标,渲染得到所述显示元素。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的显示元素的渲染方法。
另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的显示元素的渲染方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的显示元素的渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例中,在视角变换过程中,计算机设备可根据因视角变换引起的显示元素对应的世界空间的偏移,确定显示元素的世界空间偏移量,从而在坐标变换过程中,引入世界空间偏移量以抵消因视角变换引起的位置偏移,使得坐标变换后得到的屏幕顶点坐标保持不变,即使显示元素在屏幕中显示位置保持不变,实现显示元素跟随视角变换移动的动态效果。在此过程中,无需使用额外模块或插件,也无需占用额外的存储空间,通过实时计算世界空间偏移量的方式,保持显示元素的持续显示,有助于提高渲染效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的显示元素的渲染方法的流程图;
图2示出了本申请一个示例性实施例提供的视角变换过程中显示元素显示位置的示意图;
图3示出了本申请一个示例性实施例提供的渲染管线的流程图;
图4示出了本申请一个示例性实施例提供的坐标变换过程的流程图;
图5示出了本申请另一个示例性实施例提供的显示元素的渲染方法的流程图;
图6示出了本申请一个示例性实施例提供的世界空间偏移属性设置的界面示意图;
图7示出了本申请一个示例性实施例提供的预览显示元素的界面示意图;
图8示出了本申请一个示例性实施例提供的关闭深度测试的界面示意图;
图9示出了本申请一个示例性实施例提供的设置粒子朝向的界面示意图;
图10示出了本申请一个示例性实施例提供的显示元素的渲染装置的结构框图;
图11示出了本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在一些特殊渲染需求中,可能需将显示元素渲染在屏幕固定位置上,即将显示元素作为用户界面(User Interface,UI)组件渲染在屏幕上。相关技术中,虚幻引擎中内置有Unreal Motion Graphic组件,用于渲染UI元素,然而,该种方式下,无法实现动态效果,即无法使显示元素持续显示在屏幕固定位置处。另一种方式中,可通过后处理的方式实现部分屏幕效果的渲染,但同样无法实现上述动态效果。且相关技术中,还可通过离屏渲染的方式进行渲染,该方式中,使用SceneCapture2D相机拍摄显示元素并将拍摄结果实时写入一张Render Target,然后再将该Render Target渲染到屏幕上,该方式需占用额外的存储空间。
因此,为实现一种便于固定渲染的方式,本申请实施例中提出一种显示元素的渲染方法,通过引入世界空间偏移量,从而在坐标变换过程中,可基于世界空间偏移量抵消因视角变换引起的世界空间的相对偏移,从而使显示元素可渲染在固定的屏幕位置处,实现一种显示元素可跟随视角变换而移动的动态效果,该方式可用于实时渲染过程。在此过程中,无需引用额外的模块或插件,且不需要使用后处理方法,也不需要申请占用额外的内存中间,只需要通过推导改变目标显示元素材质的世界坐标偏移量,即可使得它可以最终作为UI渲染到屏幕上。该方案可实施度高,可以被广泛应用于显示元素的渲染过程中,扩展元素渲染的多样性与可能性。
本申请实施例提供的方法可应用于任意需固定显示在屏幕上的显示元素的渲染过程中。示意性的,可应用于粒子渲染过程中,当需将粒子特效(如烟花)固定显示在屏幕上时,则可在渲染过程中,根据视角变换引起的世界偏移,确定世界空间偏移量,再基于世界空间偏移量更新粒子顶点的世界空间坐标,以抵消视角变换引起的偏移,使粒子特效渲染在固定屏幕位置处。当然,本申请实施例提供的方法还可应用于其他元素的渲染场景中,在本实施例对此不做限定。
本申请实施例提供的方法可应用于计算机设备。其中,计算机设备是具有图像渲染功能的设备,该设备可以是智能手机、平板电脑或个人计算机等终端,也可以是用于提供图形渲染服务的后台服务器,本实施例对此不做限定。下面将以示例性实施例进行说明。
请参考图1,其示出了本申请一个示例性实施例提供的显示元素的渲染方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤:
步骤101,基于显示元素的顶点信息,确定显示元素的世界顶点坐标,显示元素是需保持屏幕显示位置不变的元素。
本申请实施例中,显示元素是指需保持屏幕显示位置不变的元素,即在视角变换过程中,显示元素始终保持显示在屏幕固定位置处。比如,显示元素可为粒子特效、虚拟角色、虚拟物体等,本实施例对此不做限定。
可选的,显示元素的屏幕显示位置可预先由用户进行调整,渲染过程中即根据用户设置的固定位置进行渲染。
其中,顶点信息是指组成显示元素的基本图形的顶点信息。顶点信息中包含各个顶点的顶点坐标,需要说明的是,顶点信息中的顶点坐标是本地空间(即模型空间)下的坐标信息,即顶点坐标以模型中心为原点的坐标,模型中心在建模时设定。在渲染过程中,首先需转换至世界空间下,得到显示元素对应的世界顶点坐标。
在一种可能的实施方式中,计算机设备可对本地空间下顶点对应的三维向量进行齐次化,再左乘模型矩阵得到世界空间下的齐次坐标,即世界顶点坐标。
步骤102,基于视角变换过程中世界顶点坐标的偏移方式,确定显示元素的世界空间偏移量,世界空间偏移量用于抵消显示元素的世界顶点坐标在视角变换过程中的相对偏移。
通常情况下,视角的变换会使屏幕上显示的画面发生变换,在此过程中,通常通过对世界空间下的物体进行偏移而实现,即在视角变换过程中,世界顶点坐标发生一定偏移。比如,当视角由左向右切换时,原屏幕内左侧显示的物体将逐渐不再显示。而为使显示元素能始终显示在屏幕固定位置上,本申请实施例中,引入世界空间偏移量,通过世界空间偏移量抵消显示元素在视角变换过程中的相对偏移,从而使显示元素的屏幕显示位置不变。
在一种可能的实施方式中,视角变换过程(即相机移动过程中),世界顶点坐标的偏移方式与相机的位置相关,计算机设备可根据视角变换过程中相机的位置确定世界顶点坐标的偏移量,从而根据世界顶点坐标的偏移量,确定显示元素的世界空间偏移量。
可选的,视角变换是指视角平移变换,比如,视角从左向右移动,从上向下移动,从左上向右下移动等,本实施例对此不做限定。
步骤103,基于世界顶点坐标以及世界空间偏移量进行坐标空间变换,得到屏幕空间下显示元素的屏幕顶点坐标。
当得到显示元素对应的世界空间偏移量之后,可首先基于世界空间偏移量对世界顶点坐标进行更新,再基于更新后的坐标进行空间转换,得到屏幕空间下显示元素的屏幕顶点坐标。
步骤104,基于屏幕顶点坐标,渲染得到显示元素。
在得到屏幕顶点坐标后,可将屏幕顶点坐标输入至光栅化器中进行光栅化计算,再逐步进行像素着色计算、测试与混合过程,将渲染得到的显示元素输出到帧缓冲中,最终可从帧缓冲中读取渲染数据进行屏幕显示。
其中,光栅化计算用于决定渲染图元中被绘制在屏幕上的像素。可根据上一阶段得到的顶点数据进行计算,完成二维屏幕空间的点向屏幕上像素点的转换。像素着色计算主要使用插值来处理每个像素的着色计算。
其中,屏幕中显示元素的显示位置始终保持不变。示意性的,如图2所示,在视角移动的情况下,屏幕中显示元素201的显示位置保持不变,仅虚拟场景202根据视角的切换发生相应改变。
即本申请实施例提供的方式,相较于相关技术中的方式可实现显示元素根据视角移动的动态效果,且相较于离屏渲染的方式可节省额外的存储空间,仅需通过世界空间偏移量的计算,即可使显示元素在屏幕显示位置保持不变,可扩展显示元素渲染的多样性与可能性。
本申请实施例中,在视角变换过程中,计算机设备可根据因视角变换引起的显示元素对应的世界空间的偏移,确定显示元素的世界空间偏移量,从而在坐标变换过程中,引入世界空间偏移量以抵消因视角变换引起的位置偏移,使得坐标变换后得到的屏幕顶点坐标保持不变,即使显示元素在屏幕中显示位置保持不变,实现显示元素跟随视角变换移动的动态效果。在此过程中,无需使用额外模块或插件,也无需占用额外的存储空间,通过实时计算世界空间偏移量的方式,保持显示元素的持续显示,有助于提高渲染效率。
世界空间偏移量与视角变换过程中世界顶点坐标的偏移相关,下面将对世界空间偏移量的计算原理进行说明。
显示元素的顶点信息由中央处理器(Central Processing Unit,CPU)通过图形接口传入图形处理单元(Graphics Processing Unit,GPU)中,由GPU内的渲染管线根据顶点信息进行渲染绘制,计算输出至帧缓冲区(屏幕缓冲区)中,最终在屏幕上显示渲染的画面。
整个渲染管线所涉及的渲染流程如图3所示,在输入顶点信息301后,顶点着色器进行顶点着色计算302,之后,输入至光栅化器中进行光栅化计算303,再输入至像素着色器中进行像素着色计算304,着色计算后再进行测试与混合305,完成渲染计算,将计算得到的渲染数据输出至帧缓冲306,得到最终的渲染画面。
其中,顶点着色计算主要进行坐标变化。在此过程中,首先将模型的顶点坐标由模型空间变换到世界空间;再由世界空间变换到观察空间(也称摄像机空间);之后,再由观察空间转换至裁剪空间,裁剪空间转换到屏幕空间得到最终的输出结果。坐标变换过程如图4所示,包含如下步骤:
步骤401,输入顶点信息;
步骤402,将顶点坐标变换到世界空间坐标;
步骤403,将世界空间坐标变换到观察空间坐标;
步骤404,将观察空间坐标变换到裁剪空间坐标;
步骤405,将裁剪空间坐标变换到屏幕空间坐标。
坐标变换的过程是通过矩阵相乘实现的,在此过程中,可将顶点坐标左乘模型矩阵得到世界空间下的坐标,再左乘视矩阵可得到观察空间下的坐标;再左乘投影矩阵可得到投影坐标,即裁剪空间坐标,最终屏幕空间坐标即为裁剪空间坐标系下的坐标。示意性的,当顶点坐标为A,模型矩阵为M,视矩阵为V,投影矩阵为P,则坐标变换过程可如下所示:
A′=P×x×M×A
当需显示元素渲染至固定屏幕位置时,则需使顶点的坐标变换固定为如下所示:
A′′=×V′×M×A
其中,V′是UI相机的视矩阵。UI相机是位于世界原点固定不变的相机,且UI相机用于拍摄显示元素,通过转换至UI相机对应的观察空间下以固定屏幕渲染位置。
而上式中的V则是场景相机的视矩阵,其中,场景相机是指默认拍摄整体场景的相机,即为观察者观察视角对应的相机,其位置跟随视角变换移动。在虚幻引擎中坐标变换过程被封装,无法直接修改,因此,通过引入世界空间偏移量,更改世界空间坐标,从而使A′等于A″,达到固定渲染的效果。即通过世界空间偏移量改变最终的世界空间坐标:
A′=P×V×(M×A+WPO)
其中,WPO即表示世界空间偏移量。
为达到保持显示元素屏幕显示位置不变的效果,令A′=A″,如下式所示:
P×V×(M×A+WPO)=P×V′×M×A
从而可得到世界空间偏移量为:
WPO=V-×V′×M×A-M×A
其中,V-即为场景相机的逆视矩阵。
可见,世界空间偏移量与场景相机的逆视矩阵、UI相机的视矩阵、以及显示元素的世界顶点坐标相关。下面对渲染过程中计算世界空间偏移量以及基于世界空间偏移量进行空间变换的方式进行示例性说明。
请参考图5,其示出了本申请另一个示例性实施例提供的显示元素的渲染方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤:
步骤501,基于显示元素的顶点信息,确定显示元素的世界顶点坐标。
本步骤的实施方式可参考上述实施例中的步骤101,本实施例不再赘述。
步骤502,基于场景相机的逆视矩阵以及UI相机的视矩阵,确定世界顶点坐标的偏移位置,场景相机是观察视角对应的相机,UI相机是在世界原点的相机。
为使视角变换过程中固定渲染显示元素,计算机设备可根据场景相机的逆视矩阵以及UI相机的视矩阵对世界顶点坐标进行变换,得到视角变换过程中世界顶点的偏移位置。该过程包含如下步骤:
步骤502a,基于UI相机的视矩阵对世界顶点坐标进行变换,得到UI观察坐标。
首先,计算机设备利用UI相机的视矩阵对世界顶点坐标进行变换。在世界原点创建的UI相机初始视角向上,为适配用户观察视角,需对坐标轴顺序进行调整,即调整UI相机视角。根据坐标轴调整,可知UI相机的视矩阵如下所示:
也即UI相机的视矩阵的转换方式为坐标轴变换,V′的变换相当于将X轴变换到Z轴,将Y轴变换到X轴,将Z轴变换到X轴。
计算机设备对世界顶点坐标进行坐标轴变换,得到UI观察坐标。
步骤502b,基于场景相机的逆视矩阵对UI观察坐标进行变换,得到偏移位置。
在得到UI观察坐标之后,计算机设备再基于场景相机的逆视矩阵对UI观察坐标进行变换,从而确定世界顶点坐标因视角变换引起的偏移位置。
其中,场景相机的视矩阵用于将世界空间坐标转换至场景相机对应的观察空间坐标。而逆视矩阵则用于将观察空间坐标转换为世界空间坐标。即逆视矩阵的转换方式与场景相机对应的观察空间到世界空间的变换方式相对应。因此,计算机设备可通过将观察空间坐标转换为世界空间坐标的方式,对UI观察坐标进行变换,得到偏移位置。
即在一种可能的实施方式中,计算机设备基于观察空间向世界空间的变换方式,对UI观察坐标进行变换,得到偏移位置。
如下式所示,偏移位置即为:
V-×V′×M×A
步骤503,将偏移位置与世界顶点坐标的差值,确定为世界空间偏移量。
在确定偏移位置之后,计算机设备可将偏移位置减去世界顶点坐标,即可得到世界空间偏移量。世界顶点坐标即为M×A。
需要说明的是,计算世界空间偏移量的过程可与上述将顶点坐标转换为世界空间下的顶点坐标的过程同步执行,也可先后执行,本实施例仅对实现方式进行示例性说明,不对执行时序进行限定。
步骤504,基于世界空间偏移量对世界顶点坐标进行偏移,得到更新后的世界顶点坐标。
当确定世界空间偏移量之后,计算机设备可对世界空间变换后得到的世界顶点坐标进行更新,即将世界空间偏移量与世界顶点坐标相加,得到更新后的世界顶点坐标。
步骤505,对更新后的世界顶点坐标进行观察空间变换、裁剪空间变换以及屏幕空间变换,得到屏幕顶点坐标。
之后,计算机设备可对更新后的世界顶点坐标依次进行观察空间变换、裁剪空间变换以及屏幕空间变换,得到屏幕顶点坐标。
在一种可能的实施方式中,计算机设备通过观察矩阵对更新后的世界顶点坐标进行观察空间变换,得到观察顶点坐标,再通过投影矩阵对观察顶点坐标进行变换,得到裁剪顶点坐标,之后,再进行裁剪等一系列处理,完成屏幕空间变换,得到屏幕顶点坐标。
步骤506,基于屏幕顶点坐标,渲染得到显示元素。
本步骤的实施方式可参考上述步骤104,本实施例不再赘述。
本实施例中,基于场景相机对应的逆视矩阵、UI相机的视矩阵确定视角变换过程中世界空间坐标的偏移位置,从而确定世界空间偏移量,通过世界空间偏移量抵消世界空间的偏移,使显示元素可作为UI固定渲染在屏幕上,扩展显示元素渲染多样性。
上述实施例中,通过引入世界空间偏移量改变世界空间坐标,实现显示元素固定渲染在屏幕上的方式。而世界空间偏移量则需通过修改显示元素的材质信息引入。材质信息为用户预先通过虚幻引擎中材质编辑器设置的信息,在材质信息中包含世界空间偏移属性,可通过对世界空间偏移属性的设置,使得渲染过程中可根据世界空间偏移属性的指示,计算得到世界空间偏移量,并对世界空间坐标进行偏移。
可选的,对于世界空间偏移属性的编辑过程可由用户执行,也可由计算机设备自动执行,本实施例对此不做限定。
上述世界空间偏移量与显示元素的世界顶点坐标、场景相机的逆视矩阵以及UI相机的视矩阵相关。其中,世界顶点坐标、场景相机的逆视矩阵以及UI相机的视矩阵可通过材料编辑器中的节点引入。
可选的,世界顶点坐标由虚拟引擎的材质编辑器中绝对世界位置节点(AbsoluteWorld Position)提供。或者,世界顶点坐标也可由不包括材质偏移节点(ExcludingMaterial Offsets)提供,如图6中Absolute World Position节点601所示。
而UI相机的视矩阵实际上是坐标轴的变换。而坐标轴变换可通过编辑材质编辑器中向量拆分节点以及向量拼接节点实现。可选的,向量拆分节点可为BreakOutFloat3Components节点,而向量拼接节点可为MakeFloat3节点,通过对节点的连接实现坐标轴的变换。示意性的,如图6所示,节点间的连接方式可为,将BreakOutFloat 3Components节点602中R节点与MakeFloat3节点603中的Z节点相连,实现X轴向Z轴的变换;将BreakOutFloat3Components节点602中G节点与MakeFloat3节点603中的X节点相连,实现Y轴向X轴的变换;将BreakOutFloat 3Components节点602中B节点与MakeFloat3节点603中的Y节点相连,实现Z轴向Y轴的变换。
在虚幻引擎的材质编辑器中无法取得场景相机的视矩阵以及计算求逆,因此,可通过坐标变换节点Transform Position实现逆视矩阵对应的变换。其中,世界空间的坐标左乘视矩阵可得到观察空间下的观察空间坐标,即:
xV=xM
等式两边乘以逆矩阵可得到:
V-xV=M
可见,将观察空间坐标变换回世界空间坐标即为左乘V的逆矩阵V-,从而可得到左乘V的逆矩阵V-的节点,如图6中Transform Position节点604所示。
在引入各个节点之后,可通过对节点之间的连接封装得到元素偏移函数对应的元素偏移函数节点,元素偏移函数即用于指示世界空间偏移量的计算方式。在得到节点之后,基于元素偏移函数节点设置世界空间偏移属性,使得后续渲染过程中可根据世界空间偏移属性指示的元素偏移函数进行世界空间偏移量的计算,即执行上述实施例中计算世界空间偏移量的步骤。
在一种可能的实施方式中,响应于对绝对世界位置节点、编辑后的向量拆分节点、向量拼接节点以及编辑后的坐标变换节点的连接操作,封装得到元素偏移函数节点,元素偏移函数节点用于调用元素偏移函数,元素偏移函数用于计算世界空间偏移量。
即用户可通过对上述节点的连接操作,编辑得到元素偏移函数节点。示意性的,如图6所示,将Absolute World Position节点601与BreakOutFloat3Components节点602和MakeFloat3节点603组成的用于坐标轴变换的节点相接,用于实现世界顶点坐标左乘UI相机视矩阵,且将输出结果与Transform Position节点604相接,实现左乘场景相机的逆视矩阵,将输出结果与减节点605中的节点A相连,且将Absolute World Position节点601与减节点605的节点B相连,实现左乘逆视矩阵后的坐标与世界顶点坐标间的差值计算,从而得到输出结果。
计算机设备可根据连接操作进行封装,得到元素偏移函数节点。当然,上述连接节点也可由计算机设备自动执行,本实施例对此不做限定。
当封装得到元素偏移函数节点之后,将元素偏移函数节点与材质编辑器中的世界空间偏移节点(World Position Offset)相接,即可完成对世界空间偏移属性的设置。且可对封装得到的元素偏移函数节点进行存储,以便后续渲染其他显示元素时进行调用。
在一种可能的实施方式中,响应于对元素偏移函数节点与世界空间偏移节点的相接操作,为显示元素添加世界空间偏移属性,世界空间偏移属性对应指示元素偏移函数。
即设置世界空间偏移属性可由用户进行设置,当用户需将当前显示元素固定渲染在屏幕上特定位置处时,可在材质编辑器中,将元素偏移函数节点与世界空间偏移节点相接,当计算机设备接收到对元素偏移函数节点与世界空间偏移节点的相接操作时,可为显示元素添加世界空间偏移属性。
在另一种可能的实施方式中,响应于元素固定显示指令,将元素偏移函数节点与世界空间偏移节点相接,以及为显示元素添加世界空间偏移属性,元素固定显示指令用于指示将显示元素固定显示在屏幕上。
或者,设置世界空间偏移属性可由计算机设备自动执行。在材质编辑器中可设置用于触发指示将显示元素固定显示在屏幕上的操作控件,用户可通过对操作控件的触发操作,触发元素固定显示指令,计算机设备接收到元素固定显示指令之后,即可将封装的元素偏移函数节点与世界空间偏移节点相接,为显示元素添加世界空间偏移属性,有助于简化用户设置操作。
或者,用户可预先设置需固定渲染的显示元素的元素类型。当检测到对应的元素类型时,即自动在材质编辑器中世界偏移函数节点处引入元素偏移函数节点,无需用户再进行设置。
示意性的,如图6所示,可封装得到元素偏移函数节点606,在元素偏移函数节点606与材质编辑器中世界空间偏移节点607相接的情况下,可为显示元素添加世界空间偏移属性。
其中,世界空间偏移属性属于显示元素的材质信息。CPU还通过图形接口向图形处理单元传输显示元素的材质信息,在GPU接收到材质信息后,可根据其中世界空间偏移属性所对应的元素偏移函数,计算得到世界空间偏移量,从而基于世界空间偏移量在坐标变换过程中改变世界空间坐标,实现显示元素的固定渲染。
示意性的,如图6所示,在材质信息(包含世界空间偏移属性)设置完成后,材质信息被传输至GPU,GPU可获取到对应的元素偏移函数,从而根据元素偏移函数计算得到各个顶点的世界空间偏移量,用于后续的坐标变换过程。
本实施例中,通过封装得到元素偏移函数节点,以及将元素偏移函数节点与材质编辑器中世界空间偏移节点的相接过程,为显示元素材质赋予世界空间偏移属性,使得渲染过程中可根据世界空间偏移属性对应的元素偏移函数计算得到世界空间偏移量,从而改变世界空间的偏移,实现固定渲染。
且本实施例中,还可根据用户的元素固定显示指令,自动设置元素材质的世界空间偏移属性,可简化用户操作,提高效率。
上述实施例中,介绍了预先设置显示元素对应材质的世界空间偏移属性的过程。而在修改元素材质之前,可通过对显示元素位置的调整,以提高在屏幕中的固定显示位置,从而使显示元素的显示位置符合用户需求。该过程可包含如下步骤:
步骤一、响应于相机创建指令,在世界空间的坐标原点创建UI相机,UI相机用于拍摄显示元素。
在一种可能的实施方式中,用户可在场景中创建虚拟相机,用于预览显示元素的显示效果从而进行调整。当计算机设备接收到相机创建指令时,可在场景中创建UI相机,用于拍摄显示元素。且在创建UI相机之后,还需重置其旋转变化,即将其设置于世界空间的坐标原点,避免对后续世界空间偏移的影响。
示意性的,如图7所示,在场景中创建虚拟相机701,且重置其旋转变化702,使其处于世界空间的坐标原点。
步骤二、在UI相机拍摄到场景内显示元素的情况下,在UI相机的拍摄画面中展示显示元素在屏幕中的元素显示位置。
用户可将显示元素放置在场景中,UI相机拍摄到场景内显示元素的情况,可在UI相机拍摄画面中展示元素显示位置,用于使用户预览显示元素的显示效果。
在一种可能的实施方式中,可将显示元素放置在世界空间原点附近,以便UI相机拍摄进行预览。
示意性的,如图7所示,可在场景内放置显示元素703,当UI相机拍摄到显示元素703时,则可在拍摄画面704中展示显示元素的显示位置。
步骤三、在显示元素移动的情况下,调整拍摄画面中显示元素的元素显示位置。
当用户通过预览画面查看显示元素的显示位置之后,若需调整显示元素的显示位置,则可改变场景中显示元素的位置,并根据拍摄画面中的显示效果进行调整。示意性的,当用户需将显示元素显示在左侧,而当前显示在屏幕右侧时,则可将显示元素进行移动,且根据拍摄画面预览是否移动至需求位置处。
当计算机设备接收到对显示元素的移动操作时,可根据移动位置调整拍摄画面中显示元素的元素显示位置,使用户进行预览。
可选的,显示元素可为粒子特效。在一种可能的实施方式中,用户可在场景的世界空间原点创建虚拟相机,且将预先设置完成的粒子组件放置在原点附近且位于相机的拍摄范围内。其中,用于可通过Niagara系统预先设置粒子组件,粒子系统是一种对模糊对象进行建模的方法,用于模拟一些特定的模糊对象,比如火、爆炸、烟花、落叶、云等具有抽象视觉效果的对象。通过Niagara系统,用户可设置用于模拟目标对象的粒子组件。
当虚拟相机拍摄到粒子组件之后,计算机设备可显示拍摄的粒子特效,使用户进行预览,从而可根据预览画面的指示对显示位置进行调整。
在显示位置调整完成后,即可打开显示元素使用的材质进行调整,即将元素偏移函数节点与世界空间偏移节点相接,为显示元素添加世界空间偏移属性。
且在显示位置调整完成后,可对删除创建的虚拟相机。
在一种可能的场景下,用户可能还需将显示元素显示在其他场景之上,即需避免场景中其他物体对显示元素的遮挡。该种场景下,用户可关闭显示元素的深度测试,从而在渲染过程,无需对显示元素进行深度测试,使显示元素渲染在场景画面之上。
或者,在另一种可能的实施方式中,关闭深度测试的方式可由计算机设备自动执行,即计算机设备在显示元素对应的深度测试开启的情况下,关闭显示元素的深度测试,其中,深度测试关闭后的显示元素被渲染至场景画面之上。
可选的,计算机设备可根据显示元素的特性判断是否关闭显示元素的深度测试。在一种可能的实施方式中,当计算机设备确定显示元素为透明物体或半透明物体时,则可自动关闭显示元素的深度测试。而当显示元素为非透明物体时,则可对用户进行提示,确认是否关闭深度测试,在接收到用户确认操作的情况下,关闭显示元素的深度测试。
示意性的,如图8所示,可在设置界面中关闭显示元素的深度测试801。
可选的,显示元素可能为粒子。粒子模型中存在一种精灵(Sprite)粒子,该粒子是基于公告板技术(Billboard)的模型,在渲染时会保持朝向场景相机,使得最终渲染时屏幕中的粒子随着镜头的转动而转动。当需实现粒子固定渲染在屏幕位置上时,则需设置Sprite粒子的朝向为固定朝向,避免因根据场景相机的转动而造成偏移。且固定朝向可为朝向UI相机的方向。
即当计算机设备检测到粒子模型采用的粒子为Sprite粒子时,可自动将其朝向设置为固定朝向。当然,朝向也可由用户进行设置,本实施例对此不做限定。
示意性的,如图9所示,可在粒子材质设置界面中设置Sprite粒子的朝向,通过对朝向设置控件901的触发操作,可触发朝向设置界面902,在朝向设置界面902中可将其设置为固定朝向(1,0,0)。
且需要说明的是,本申请实施例提供的方法仅将显示元素在屏幕上的渲染位置固定,但并不改变其原本具有的属性。示意性的,当粒子特效为绽放烟花时,始终在屏幕固定位置处绽放烟花,并不会影响其原本所具有的烟花绽放属性。
本实施例中,通过UI相机预览显示元素显示位置的方式,使得用户可根据预览画面调整显示元素的显示位置,完成显示位置的自定义设置,从而在后续渲染过程中可将显示元素渲染在自定义设置的位置上。
本实施例中,通过关闭深度测试,可使显示元素始终显示在其他场景画面之上,避免对显示元素的遮挡。
图10是本申请一个示例性实施例提供的显示元素的渲染装置的结构框图,如图10所示,该装置包括:
坐标确定模块1001,用于基于显示元素的顶点信息,确定所述显示元素的世界顶点坐标,所述显示元素是需保持屏幕显示位置不变的元素;
偏移量确定模块1002,用于基于视角变换过程中世界顶点坐标的偏移方式,确定所述显示元素的世界空间偏移量,所述世界空间偏移量用于抵消所述显示元素的世界顶点坐标在视角变换过程中的相对偏移;
空间变换模块1003,用于基于所述世界顶点坐标以及所述世界空间偏移量进行坐标空间变换,得到屏幕空间下所述显示元素的屏幕顶点坐标;
元素渲染模块1004,用于基于所述屏幕顶点坐标,渲染得到所述显示元素。
可选的,所述偏移量确定模块1002,还用于:
基于场景相机的逆视矩阵以及UI相机的视矩阵,确定所述世界顶点坐标的偏移位置,所述场景相机是观察视角对应的相机,所述UI相机是在世界原点的相机;
将所述偏移位置与所述世界顶点坐标的差值,确定为所述世界空间偏移量。
可选的,所述偏移量确定模块1002,还用于;
基于所述UI相机的视矩阵对所述世界顶点坐标进行变换,得到UI观察坐标;
基于所述场景相机的逆视矩阵对所述UI观察坐标进行变换,得到所述偏移位置。
可选的,所述UI相机的视矩阵的转换方式为坐标轴变换,所述场景相机的逆视矩阵的转换方式与由场景相机对应的观察空间到世界空间的变换方式相对应;
所述偏移量确定模块1002,还用于:
对所述世界顶点坐标进行坐标轴变换,得到所述UI观察坐标;
基于所述观察空间向所述世界空间的变换方式,对所述UI观察坐标进行变换,得到所述偏移位置。
可选的,所述世界顶点坐标由虚拟引擎的材质编辑器中的绝对世界位置节点提供;
可选的,所述坐标轴变换通过编辑所述材质编辑器中的向量拆分节点以及向量拼接节点实现;
可选的,所述观察空间向所述世界空间的转换通过编辑所述材质编辑器中的坐标变换节点实现。
可选的,所述装置还包括:
函数封装模块,用于响应于对所述绝对世界位置节点、所述编辑后的向量拆分节点、向量拼接节点以及所述编辑后的坐标变换节点的连接操作,封装得到元素偏移函数节点,所述元素偏移函数节点用于调用元素偏移函数,所述元素偏移函数用于计算所述世界空间偏移量。
可选的,所述装置还包括:
属性添加模块,用于响应于对所述元素偏移函数节点与所述世界空间偏移节点的相接操作,为所述显示元素添加世界空间偏移属性,所述世界空间偏移属性对应指示所述元素偏移函数;
或,
所述属性添加模块,还用于响应于元素固定显示指令,将所述元素偏移函数节点与所述世界空间偏移节点相接,以及为所述显示元素添加世界空间偏移属性,所述元素固定显示指令用于指示将显示元素固定显示在屏幕上。
可选的,所述装置还包括:
相机创建模块,用于响应于相机创建指令,在世界空间的坐标原点创建UI相机,所述UI相机用于拍摄所述显示元素;
元素显示模块,用于在所述UI相机拍摄到场景内所述显示元素的情况下,在所述UI相机的拍摄画面中展示所述显示元素在屏幕中的元素显示位置;
位置调整模块,用于在所述显示元素移动的情况下,调整所述拍摄画面中所述显示元素的所述元素显示位置。
可选的,所述显示元素为粒子;
所述装置还包括:
朝向设置模块,用于在采用的粒子模型为精灵粒子的情况下,设置所述精灵粒子的朝向为固定朝向,所述固定朝向是朝向所述UI相机的方向。
可选的,所述装置还包括:
测试关闭模块,用于在所述显示元素对应的深度测试开启的情况下,关闭所述显示元素的深度测试,其中,深度测试关闭后的所述显示元素被渲染至场景画面之上。
可选的,所述空间变换模块1003,还用于:
基于所述世界空间偏移量对所述世界顶点坐标进行偏移,得到更新后的世界顶点坐标;
对所述更新后的世界顶点坐标进行观察空间变换、裁剪空间变换以及屏幕空间变换,得到所述屏幕顶点坐标。
本申请实施例中,在视角变换过程中,计算机设备可根据因视角变换引起的显示元素对应的世界空间的偏移,确定显示元素的世界空间偏移量,从而在坐标变换过程中,引入世界空间偏移量以抵消因视角变换引起的位置偏移,使得坐标变换后得到的屏幕顶点坐标保持不变,即使显示元素在屏幕中显示位置保持不变,实现显示元素跟随视角变换移动的动态效果。在此过程中,无需使用额外模块或插件,也无需占用额外的存储空间,通过实时计算世界空间偏移量的方式,保持显示元素的持续显示,有助于提高渲染效率。
需要说明的是:上述实施例提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其实现过程详见方法实施例,这里不再赘述。
请参考图11,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1100包括中央处理单元(Central Processing Unit,CPU)1101、包括随机存取存储器1102和只读存储器1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。所述计算机设备1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
在一些实施例中,所述基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中所述显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。所述基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,所述大容量存储设备1107可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1101执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1101执行该一个或多个程序实现上述各个方法实施例提供的方法。
根据本申请的各种实施例,所述计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1100可以通过连接在所述系统总线1105上的网络接口单元1111接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由计算机设备所执行的步骤。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述任一实施例所述的显示元素的渲染方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的显示元素的渲染方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任一方法实施例所述的显示元素的渲染方法。
可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(Solid StateDrives,SSD)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(Resistance RandomAccess Memory,ReRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种显示元素的渲染方法,其特征在于,所述方法包括:
基于显示元素的顶点信息,确定所述显示元素的世界顶点坐标,所述显示元素是需保持屏幕显示位置不变的元素;
基于视角变换过程中世界顶点坐标的偏移方式,确定所述显示元素的世界空间偏移量,所述世界空间偏移量用于抵消所述显示元素的世界顶点坐标在视角变换过程中的相对偏移;
基于所述世界顶点坐标以及所述世界空间偏移量进行坐标空间变换,得到屏幕空间下所述显示元素的屏幕顶点坐标;
基于所述屏幕顶点坐标,渲染得到所述显示元素。
2.根据权利要求1所述的方法,其特征在于,所述基于视角变换过程中世界顶点坐标的偏移方式,确定所述显示元素的世界空间偏移量,包括:
基于场景相机的逆视矩阵以及UI相机的视矩阵,确定所述世界顶点坐标的偏移位置,所述场景相机是观察视角对应的相机,所述UI相机是在世界原点的相机;
将所述偏移位置与所述世界顶点坐标的差值,确定为所述世界空间偏移量。
3.根据权利要求2所述的方法,其特征在于,所述基于场景相机的逆视矩阵以及UI相机的视矩阵,确定偏移后的所述世界顶点坐标的偏移位置,包括:
基于所述UI相机的视矩阵对所述世界顶点坐标进行变换,得到UI观察坐标;
基于所述场景相机的逆视矩阵对所述UI观察坐标进行变换,得到所述偏移位置。
4.根据权利要求3所述的方法,其特征在于,所述UI相机的视矩阵的转换方式为坐标轴变换,所述场景相机的逆视矩阵的转换方式与由场景相机对应的观察空间到世界空间的变换方式相对应;
所述基于所述UI相机的视矩阵对所述世界顶点坐标进行变换,得到UI观察坐标,包括:
对所述世界顶点坐标进行坐标轴变换,得到所述UI观察坐标;
所述基于所述场景相机的逆视矩阵对所述UI观察坐标进行变换,得到所述偏移位置,包括:
基于所述观察空间向所述世界空间的变换方式,对所述UI观察坐标进行变换,得到所述偏移位置。
5.根据权利要求4所述的方法,其特征在于,
所述世界顶点坐标由虚拟引擎的材质编辑器中的绝对世界位置节点提供;
所述坐标轴变换通过编辑所述材质编辑器中的向量拆分节点以及向量拼接节点实现;
所述观察空间向所述世界空间的转换通过编辑所述材质编辑器中的坐标变换节点实现。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于对所述绝对世界位置节点、所述编辑后的向量拆分节点、向量拼接节点以及所述编辑后的坐标变换节点的连接操作,封装得到元素偏移函数节点,所述元素偏移函数节点用于调用元素偏移函数,所述元素偏移函数用于计算所述世界空间偏移量。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于对所述元素偏移函数节点与所述世界空间偏移节点的相接操作,为所述显示元素添加世界空间偏移属性,所述世界空间偏移属性对应指示所述元素偏移函数;
或,
响应于元素固定显示指令,将所述元素偏移函数节点与所述世界空间偏移节点相接,以及为所述显示元素添加世界空间偏移属性,所述元素固定显示指令用于指示将显示元素固定显示在屏幕上。
8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
响应于相机创建指令,在世界空间的坐标原点创建UI相机,所述UI相机用于拍摄所述显示元素;
在所述UI相机拍摄到场景内所述显示元素的情况下,在所述UI相机的拍摄画面中展示所述显示元素在屏幕中的元素显示位置;
在所述显示元素移动的情况下,调整所述拍摄画面中所述显示元素的所述元素显示位置。
9.根据权利要求8所述的方法,其特征在于,所述显示元素为粒子;
所述方法还包括:
在采用的粒子模型为精灵粒子的情况下,设置所述精灵粒子的朝向为固定朝向,所述固定朝向是朝向所述UI相机的方向。
10.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
在所述显示元素对应的深度测试开启的情况下,关闭所述显示元素的深度测试,其中,深度测试关闭后的所述显示元素被渲染至场景画面之上。
11.根据权利要求1至7任一所述的方法,其特征在于,所述基于所述世界顶点坐标以及所述世界空间偏移量进行坐标空间变换,得到屏幕空间下所述显示元素的屏幕顶点坐标,包括:
基于所述世界空间偏移量对所述世界顶点坐标进行偏移,得到更新后的世界顶点坐标;
对所述更新后的世界顶点坐标进行观察空间变换、裁剪空间变换以及屏幕空间变换,得到所述屏幕顶点坐标。
12.一种显示元素的渲染装置,其特征在于,所述装置包括:
坐标确定模块,用于基于显示元素的顶点信息,确定所述显示元素的世界顶点坐标,所述显示元素是需保持屏幕显示位置不变的元素;
偏移量确定模块,用于基于视角变换过程中世界顶点坐标的偏移方式,确定所述显示元素的世界空间偏移量,所述世界空间偏移量用于抵消所述显示元素的世界顶点坐标在视角变换过程中的相对偏移;
空间变换模块,用于基于所述世界顶点坐标以及所述世界空间偏移量进行坐标空间变换,得到屏幕空间下所述显示元素的屏幕顶点坐标;
元素渲染模块,用于基于所述屏幕顶点坐标,渲染得到所述显示元素。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至11任一所述的显示元素的渲染方法。
14.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至11任一所述的显示元素的渲染方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令以实现如权利要求1至11任一所述的显示元素的渲染方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310152279.4A CN118470168A (zh) | 2023-02-08 | 2023-02-08 | 显示元素的渲染方法、装置、设备、存储介质及程序产品 |
PCT/CN2023/130375 WO2024164598A1 (zh) | 2023-02-08 | 2023-11-08 | 显示元素的渲染方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310152279.4A CN118470168A (zh) | 2023-02-08 | 2023-02-08 | 显示元素的渲染方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118470168A true CN118470168A (zh) | 2024-08-09 |
Family
ID=92152002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310152279.4A Pending CN118470168A (zh) | 2023-02-08 | 2023-02-08 | 显示元素的渲染方法、装置、设备、存储介质及程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118470168A (zh) |
WO (1) | WO2024164598A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831631B (zh) * | 2012-08-23 | 2015-03-11 | 上海创图网络科技发展有限公司 | 一种大规模三维动画的渲染方法及渲染装置 |
US10102668B2 (en) * | 2016-05-05 | 2018-10-16 | Nvidia Corporation | System, method, and computer program product for rendering at variable sampling rates using projective geometric distortion |
CN114842127A (zh) * | 2022-05-23 | 2022-08-02 | 北京达佳互联信息技术有限公司 | 地形渲染方法及装置、电子设备、介质及产品 |
CN115588069A (zh) * | 2022-11-10 | 2023-01-10 | 南京欧珀软件科技有限公司 | 一种场景重建方法及装置、设备、存储介质 |
-
2023
- 2023-02-08 CN CN202310152279.4A patent/CN118470168A/zh active Pending
- 2023-11-08 WO PCT/CN2023/130375 patent/WO2024164598A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024164598A1 (zh) | 2024-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4481166B2 (ja) | ユーザによる合成画像およびビデオ画像のリアルタイムのミキシングを可能にする方法およびシステム | |
CN111161392B (zh) | 一种视频的生成方法、装置及计算机系统 | |
CN108939556B (zh) | 一种基于游戏平台的截图方法及装置 | |
US11044398B2 (en) | Panoramic light field capture, processing, and display | |
WO2021135320A1 (zh) | 一种视频的生成方法、装置及计算机系统 | |
KR20070086037A (ko) | 장면 간 전환 방법 | |
US20100265250A1 (en) | Method and system for fast rendering of a three dimensional scene | |
CN101969527A (zh) | 内容感知的视频稳定 | |
US9183654B2 (en) | Live editing and integrated control of image-based lighting of 3D models | |
US11238657B2 (en) | Augmented video prototyping | |
JP2001126085A (ja) | 画像生成システム、画像表示システム、画像生成プログラムを記録したコンピュータ読み取り可能な記録媒体および画像生成方法 | |
US9454845B2 (en) | Shadow contouring process for integrating 2D shadow characters into 3D scenes | |
CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
US20230360333A1 (en) | Systems and methods for augmented reality video generation | |
CN110889384A (zh) | 场景切换方法及装置、电子设备和存储介质 | |
CN117596349A (zh) | 基于虚拟引擎进行空间虚拟拍摄的方法及系统 | |
CN116524157B (zh) | 扩展现实合成方法、装置、电子设备及存储介质 | |
EP4111422A1 (en) | Visualisation of surface features of a virtual fluid | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
CN118470168A (zh) | 显示元素的渲染方法、装置、设备、存储介质及程序产品 | |
US11210849B2 (en) | System for procedural generation of braid representations in a computer image generation system | |
US20230196702A1 (en) | Object Deformation with Bindings and Deformers Interpolated from Key Poses | |
CN118409646A (zh) | 图像处理方法、装置、设备、介质及程序产品 | |
CN117651125A (zh) | 视频生成方法、装置、非易失性存储介质和计算机设备 | |
JP2002312810A (ja) | 合成動画像生成装置および合成動画像生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |