三维交互界面的渲染方法及装置、电子设备、存储介质与流程

专利2023-02-03  143



1.本技术涉及计算机技术领域,特别是涉及三维交互界面的渲染方法及装置、电子设备、存储介质。


背景技术:

2.游戏显示画面中,除了包含游戏内三维场景,还包含交互界面。一般是先通过摄像机把三维场景渲染在屏幕上,然后,在摄像机把三维场景渲染完成后,基于这个三维场景的渲染结果再进行交互界面的渲染。此时,如果交互界面有半透明的部分,就需要采用颜色混合技术,将交互界面上的颜色与后方的三维场景渲染结果里的颜色进行混合。
3.随着三维游戏的发展,出现了三维交互界面,三维交互界面会存在被三维场景中的虚拟对象遮挡,以及遮挡其他虚拟对象的情况,采用上述提到的现有技术的渲染方式无法正确显示三维交互界面与三维场景的关系,影响玩家的沉浸式体验。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.鉴于上述问题,提出了本技术以便提供克服上述问题或者至少部分地解决上述问题的三维交互界面的渲染方法及装置、电子设备、存储介质,包括:
6.一种三维交互界面的渲染方法,所述三维交互界面包括多个半透明图层,所述方法包括:
7.采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图;
8.在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。
9.可选地,所述采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图,包括:
10.确定第一混合方式,所述第一混合方式包括第一透明度混合方式和第一半透明颜色混合方式;
11.依据所述三维交互界面对应的界面模型,生成所述三维交互界面对应的临时纹理贴图;
12.依据所述多个半透明图层的层级次序,采用所述第一透明度混合方式对所述多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将所述第一透明度信息存入所述临时纹理贴图对应的临时透明度通道;
13.依据所述多个半透明图层的层级次序和所述多个半透明图层的颜色信息,确定所述临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将所述第一颜色信息存入所述临时纹理贴图对应的临时颜色通道;
14.按照所述多个半透明图层的层级次序,采用所述第一半透明颜色混合方式对所述
临时纹理贴图存储的第一颜色信息和第一透明度信息以及所述多个半透明图层的颜色信息和透明度信息进行混合处理,得到所述三维交互界面的界面贴图的目标颜色信息;
15.依据所述临时纹理贴图存储的第一透明度信息确定所述界面贴图对应的目标透明度信息。
16.可选地,所述依据所述多个半透明图层的层级次序,采用第一透明度混合方式对所述多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将所述第一透明度信息存入所述临时纹理贴图对应的临时透明度通道,包括:
17.从最大层级开始,确定当前处理的第一目标半透明图层和临时纹理贴图存储的当前透明度信息;其中,当所述第一目标半透明图层的层级为最大层级时,所述临时纹理贴图存储的当前透明度信息为0;
18.采用第一透明度混合方式对所述第一目标半透明图层的透明度信息和所述临时纹理贴图存储的当前透明度信息进行混合处理,得到中间透明度信息;
19.采用所述中间透明度信息替换所述临时纹理贴图存储的当前透明度信息;
20.将层级减1,并返回所述确定当前处理的第一目标半透明度图层和临时纹理贴图存储的当前透明度信息的步骤继续执行,直至所述层级为第一层级;
21.将所述临时纹理贴图存储的当前透明度信息确定为第一透明度信息。
22.可选地,所述依据所述多个半透明图层的层级次序和所述多个半透明图层的颜色信息,确定所述临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将所述第一颜色信息存入所述临时纹理贴图对应的临时颜色通道,包括:
23.从最大层级开始,确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点;
24.当所述临时像素点的深度与所述第二目标半透明图层的第二目标像素点的深度不一致时,采用所述第二目标像素点的深度和第二目标颜色信息分别替换所述临时像素点的深度和临时颜色信息;其中,所述多个半透明图层的像素点的深度相同;
25.将层级减1,并返回所述确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点的步骤继续执行,直至所述层级为第一层级;
26.将所述临时纹理贴图的临时像素点的临时颜色信息确定为第一颜色信息。
27.可选地,所述按照所述多个半透明图层的层级次序,采用所述第一半透明颜色混合方式对所述临时纹理贴图存储的第一颜色信息和第一透明度信息以及所述多个半透明图层的颜色信息和透明度信息进行混合处理,得到所述三维交互界面的界面贴图的目标颜色信息,包括:
28.从最大层级开始,确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果;其中,所述最大层级的第三目标半透明图层对应的上一层级的颜色混合结果为第一颜色信息;所述上一层级为所述第三目标半透明图层对应层级加1;
29.采用所述第一半透明颜色混合方式对所述第三目标半透明图层的透明度信息、颜色信息以及第一透明度信息、初始颜色混合结果、第一颜色信息进行混合处理,得到当前层级颜色信息;
30.将层级减1,并返回所述确定当前处理的第三目标半透明图层和上一层级的初始
颜色混合结果的步骤继续执行,直至所述层级为第一层级;
31.将所述当前层级颜色信息确定为目标颜色信息。
32.可选地,所述在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面,包括:
33.采用第二半透明颜色混合方式对所述界面贴图的目标颜色信息和目标透明度信息以及当前虚拟场景的虚拟场景颜色信息和虚拟场景透明度信息进行混合处理,得到所述三维交互界面,所述第二半透明颜色混合方式不同于所述第一半透明颜色混合方式。
34.可选地,所述三维交互界面包括三维异形交互界面。
35.一种三维交互界面的渲染装置,所述三维交互界面包括多个半透明图层,所述装置包括:
36.界面贴图生成模块,用于采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图;
37.交互界面渲染模块,用于在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。
38.可选地,上述界面贴图生成模块,包括:
39.混合方式确定子模块,用于确定第一混合方式,所述第一混合方式包括第一透明度混合方式和第一半透明颜色混合方式;
40.临时纹理贴图生成子模块,用于依据所述三维交互界面对应的界面模型,生成所述三维交互界面对应的临时纹理贴图;
41.第一透明度信息确定子模块,用于依据所述多个半透明图层的层级次序,采用所述第一透明度混合方式对所述多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将所述第一透明度信息存入所述临时纹理贴图对应的临时透明度通道;
42.第一颜色信息确定子模块,用于依据所述多个半透明图层的层级次序和所述多个半透明图层的颜色信息,确定所述临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将所述第一颜色信息存入所述临时纹理贴图对应的临时颜色通道;
43.目标颜色信息确定子模块,用于按照所述多个半透明图层的层级次序,采用所述第一半透明颜色混合方式对所述临时纹理贴图存储的第一颜色信息和第一透明度信息以及所述多个半透明图层的颜色信息和透明度信息进行混合处理,得到所述三维交互界面的界面贴图的目标颜色信息;
44.目标透明度信息确定子模块,用于依据所述临时纹理贴图存储的第一透明度信息确定所述界面贴图对应的目标透明度信息。
45.可选地,所述第一透明度信息确定子模块,包括:
46.第一确定单元,用于从最大层级开始,确定当前处理的第一目标半透明图层和临时纹理贴图存储的当前透明度信息;其中,当所述第一目标半透明图层的层级为最大层级时,所述临时纹理贴图存储的当前透明度信息为0;
47.第一处理单元,用于采用第一透明度混合方式对所述第一目标半透明图层的透明度信息和所述临时纹理贴图存储的当前透明度信息进行混合处理,得到中间透明度信息;
48.第一替换单元,用于采用所述中间透明度信息替换所述临时纹理贴图存储的当前
透明度信息;
49.第二确定单元,用于将层级减1,并返回所述第一确定单元中确定当前处理的第一目标半透明度图层和临时纹理贴图存储的当前透明度信息,直至所述层级为第一层级;
50.第三确定单元,用于将所述临时纹理贴图存储的当前透明度信息确定为第一透明度信息。
51.可选地,所述第一颜色信息确定子模块,包括:
52.第四确定单元,用于从最大层级开始,确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点;
53.第二替换单元,用于当所述临时像素点的深度与所述第二目标半透明图层的第二目标像素点的深度不一致时,采用所述第二目标像素点的深度和第二目标颜色信息分别替换所述临时像素点的深度和临时颜色信息;其中,所述多个半透明图层的像素点的深度相同;
54.第五确定单元,用于将层级减1,并返回所述第四确定单元中确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点,直至所述层级为第一层级;
55.第六确定单元,用于将所述临时纹理贴图的临时像素点的临时颜色信息确定为第一颜色信息。
56.可选地,所述目标颜色信息确定子模块,包括:
57.第七确定单元,用于从最大层级开始,确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果;其中,所述最大层级的第三目标半透明图层对应的上一层级的颜色混合结果为第一颜色信息;所述上一层级为所述第三目标半透明图层对应层级加1;
58.第二处理单元,用于采用所述第一半透明颜色混合方式对所述第三目标半透明图层的透明度信息、颜色信息以及第一透明度信息、初始颜色混合结果、第一颜色信息进行混合处理,得到当前层级颜色信息;
59.第八确定单元,用于将层级减1,并返回所述第七确定模块中确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果,直至所述层级为第一层级;
60.第九确定单元,用于将所述当前层级颜色信息确定为目标颜色信息。
61.可选地,所述交互界面渲染模块,用于采用第二半透明颜色混合方式对所述界面贴图的目标颜色信息和目标透明度信息以及当前虚拟场景的虚拟场景颜色信息和虚拟场景透明度信息进行混合处理,得到所述三维交互界面,所述第二半透明颜色混合方式不同于所述第一半透明颜色混合方式。
62.可选地,所述三维交互界面包括三维异形交互界面。
63.一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的三维交互界面的渲染方法的步骤。
64.一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的三维交互界面的渲染方法的步骤。
65.本技术具有以下优点:
66.在本技术实施例中,通过采用第一混合方式对多个半透明图层进行混合处理,得
到三维交互界面的界面贴图,其中,第一混合方式用于消除基于渲染纹理技术得到的纹理贴图的颜色误差;在当前虚拟场景中渲染界面贴图,得到三维交互界面;可以实现正常显示三维交互界面与三维场景中的虚拟对象相互遮挡的关系,提高游戏的沉浸式体验效果;同时,通过用于消除基于渲染纹理技术得到的纹理贴图的颜色误差的第一混合方式,来生成三维交互界面的界面贴图,可以避免出现颜色偏差,提高三维交互界面的显示效果。
附图说明
67.为了更清楚地说明本技术的技术方案,下面将对本技术的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
68.图1为本技术实施例的一种三维交互界面的渲染方法的步骤流程图;
69.图2为本技术实施例的半透明图层的层级和渲染顺序的关系示意图;
70.图3为本技术实施例的一种交互界面与三维场景的关系示意图;
71.图4为本技术实施例在unity引擎中实现三维交互界面的渲染方法的步骤流程图;
72.图5为本技术实施例的一种三维交互界面的渲染装置的结构框图。
具体实施方式
73.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
74.在游戏显示界面中,如果交互界面有半透明的部分,就需要采用颜色混合技术,将交互界面上的颜色与后方的三维场景渲染结果里的颜色进行混合。
75.交互界面包括多个层级的半透明图层,其中,半透明图层的层级用于决定对应半透明图层在生成交互界面时的渲染顺序。半透明图层的层级越大,对应的渲染顺序越早;半透明图层的层级越小,对应的渲染顺序越晚。
76.如图2所示,当交互界面包括第一层级的半透明图层和第二层级的半透明图层时,第二层级的半透明图层优先于第一层级的半透明图层进行渲染。
77.在对包含多个半透明图层的交互界面进行渲染时,通常采用常规颜色混合公式实现颜色混合,该常规颜色混合公式包括常规半透明颜色混合公式和常规透明度混合公式,其中,常规半透明颜色混合公式表示如下:
78.color
ab
=colora*(1-alphab)+colorb*alphab79.其中,colorb表示当前图层的颜色信息,colora表示上一层级图层渲染后得到的颜色信息。alphab表示当前图层的透明度信息,color
ab
表示当前图层渲染后得到的混合颜色。其中,上一层级图层是指层级比当前图层的层级大1的图层,当当前图层是最大层级图层时,则colora为0。
80.常规透明度混合公式表示如下:
81.ab
alpha
=a
alpha
*(1-b
alpha
)+b
alpha
82.其中,alphaa表示上一层级图层渲染后得到的透明度信息,alphab表示当前图层的透明度信息,ab
alpha
表示当前图层渲染后得到的混合透明度信息。当当前图层是最大层级图层时,则alphaa为0。
83.如图3所示,交互界面200包括图层202和图层203,可以理解,图层202和图层203均表示交互界面中的一个层级,其中,图层202对应的渲染顺序在图层203之前。在一示例中,图层202表示30%透明度的红色图层,图层203表示60%透明度的绿色图层。三维场景201作为交互界面200的背景色,因此,不考虑透明度,即默认三维场景是不透明的,对应的透明度信息为1,三维场景201的颜色记为背景色,三维场景201所在图层大于交互界面200所在图层。
84.现有技术中,对图层202和图层203的重叠部分,即区域204的颜色处理过程如下:1、首先完成三维场景201的渲染,得到三维场景颜色,即透明度信息为1的背景色。2、渲染交互界面中的图层202,采用常规半透明颜色混合公式,可以得到图层202和三维场景混合后的颜色为:70%背景色+30%红色。3、渲染交互界面中的图层203,采用常规的半透明颜色混合公式,可以得到图层203和图层202以及三维场景混合后的颜色,即区域204的颜色为:(70%背景色+30%红色)*40%+60%绿色,也可以表示为:28%背景色+12%红色+60%绿色,即区域204最终在屏幕上呈现出来的颜色。
85.随着三维游戏的发展,出现了三维交互界面,三维交互界面与平面交互界面不同之处主要在于三维交互界面会存在被三维场景中的虚拟对象遮挡,以及遮挡其他虚拟对象的情况,例如,一个悬浮在虚拟角色手腕上的全息手环,全息手环上有按钮、文字、滑条等可交互对象,并且,全系手环会随着三维场景位移和旋转。该类的三维交互界面和三维场景中的虚拟对象具有一样的特性,因此,很多时候无法像传统交互界面一样,先完成三维场景的渲染,再单独渲染交互界面。也就是说,如果还是采用传统的交互界面的渲染方法来渲染三维交互界面,可能会导致无法正确显示出三维交互界面与三维场景的关系,进而影响玩家的沉浸式体验。
86.针对现有技术中,无法正确显示出三维交互界面与三维场景的关系的缺陷,发明人想到可以使用render to texture(渲染纹理)技术,简称rt技术或rtt技术。rt技术会预先将三维交互界面上需要展示和交互的界面内容,以常规平面交互界面方式进行组织和搭建,再用一个独立的摄像机(该摄像机可以称为rt相机)将平面交互界面绘制在一张图片上。最后再将该图片贴在预先做好的三维交互界面对应的界面模型上,此时,三维交互界面就像三维场景中的虚拟对象一样,具有模型、贴图等属性,可以参与到常规的三维场景渲染中。
87.但是发明人发现,在使用rt技术得到三维交互界面对应的界面贴图的过程中,对于存在多个半透明图层的三维交互界面,生成的纹理贴图会存在颜色偏差,影响最终的显示效果。
88.鉴于此,本技术实施例提供了一种三维交互界面的渲染方法,通过采用用于消除基于rt技术得到的纹理贴图的颜色误差的第一混合方式,对构成三维交互界面的多个半透明图层进行混合处理,以生成三维交互界面的界面贴图,可以避免出现颜色偏差;再在当前虚拟场景中渲染界面贴图,得到三维交互界面,其中,当前虚拟场景可以包括三维交互界面和三维场景中的虚拟对象,通过贴图形式可以兼顾三维交互界面与三维场景中的虚拟对象
可以存在相互遮挡的关系,保证游戏的沉浸式体验效果。
89.在本技术其中一个实施例中的三维交互界面的渲染方法可以运行于本地终端设备或者是服务器。当三维交互界面的渲染方法运行于服务器时,该三维交互界面的渲染方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
90.在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,三维交互界面的渲染方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,第一终端设备、电视机、计算机、掌上电脑等;但是进行三维交互界面的渲染方法的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
91.参照图1,示出了本技术一实施例提供的一种三维交互界面的渲染方法的步骤流程图,在本技术实施例中,三维交互界面包括多个半透明图层,该方法可以包括如下步骤:
92.步骤101,采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图。
93.其中,所述第一混合方式用于消除基于渲染纹理技术得到的纹理贴图的颜色误差。
94.步骤102,在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。
95.本技术实施例通过采用第一混合方式对多个半透明图层进行混合处理,得到三维交互界面的界面贴图,其中,第一混合方式用于消除基于渲染纹理技术得到的纹理贴图的颜色误差;在当前虚拟场景中渲染界面贴图,得到三维交互界面;可以实现正常显示三维交互界面与三维场景中的虚拟对象相互遮挡的关系,提高游戏的沉浸式体验效果;同时,通过用于消除基于渲染纹理技术得到的纹理贴图的颜色误差的第一混合方式,来生成三维交互界面的界面贴图,可以避免出现颜色偏差,提高三维交互界面的显示效果。
96.下面,将对本示例性实施例中三维交互界面的渲染方法作进一步地说明。
97.在步骤101中,采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图。
98.三维交互界面包括多个层级的半透明图层,其中,半透明图层的层级用于决定对应半透明图层在生成三维交互界面对应的界面贴图时的渲染顺序。半透明图层的层级越大,对应的渲染顺序越早;半透明图层的层级越小,对应的渲染顺序越晚。
99.渲染纹理技术即rt技术,是采用常规的颜色混合方式来生成纹理贴图,在本实施例中,可以将常规的颜色混合方式记为第二混合方式。第一混合方式用于消除基于渲染纹理技术得到的纹理贴图与三维场景渲染后的颜色误差,可以理解,第一混合方式是与第二混合方式对应的、可以解决第二混合方式对应缺陷的一种混合方式。具体地,第一混合方式的确定过程可以包括:通过采用第二混合方式的rt技术得到三维交互界面的初始纹理贴图;在当前虚拟场景中渲染初始纹理贴图,得到初始混合结果;在当前虚拟场景中渲染实际纹理贴图,得到实际混合结果;根据初始混合结果和实际混合结果之间的差异确定第一混
合方式。其中,得到初始混合结果和得到实际混合结果所采用的混合方式相同;可选地,得到初始混合结果和得到实际混合结果所采用的混合方式为第二混合方式。
100.为了方便本领域技术人员理解第一混合方式的确定过程,下面以第二混合方式是常规颜色混合公式对应的方式为例,即第二混合方式包括第二透明度混合方式和第二半透明颜色混合方式,而第二透明度混合方式对应的公式即为常规透明度混合公式,第二半透明颜色混合方式对应的公式即为常规半透明颜色混合公式。结合图3中包含的图层202和图层203的交互界面200进行示例性说明。
101.相关技术采用第二混合方式的rt技术将三维交互界面的内容渲染到一张图片上,然后将该图片作为三维交互界面的界面模型对应的纹理贴图参与到三维场景的渲染;具体过程如下:
102.首先,需要确定rt相机的背景色和透明度,为了与前文的背景色进行区分,这里将rt相机的背景色记为相机背景色。该相机背景色可以由开发者自定义,但作为背景色,是不需要考虑其透明度的,即透明度信息为1。
103.然后,渲染图层202,即渲染30%透明度的红色图层,采用常规颜色混合方式,得到图层202与相机背景混合后的颜色为:70%相机背景色+30%红色,透明度信息为:30%。
104.接着,渲染图层203,即渲染60%透明度的绿色图层,采用常规颜色混合方式,得到图层203与图层202以及相机背景混合后的颜色为:28%相机背景色+12%红色+60%绿色,透明度信息为:72%。即三维交互界面中区域204对应的初始纹理贴图的颜色为:28%相机背景色+12%红色+60%绿色,透明度信息为:72%。
105.最后,在当前虚拟场景中渲染初始纹理贴图,当当前虚拟场景中的虚拟对象没有遮挡三维交互界面时,当前虚拟场景中的除三维交互界面外的三维场景作为背景色,不需要考虑其透明度,即透明度信息为1,三维场景的颜色记为背景色;在当前虚拟场景中渲染初始纹理贴图,即以三维场景为背景渲染初始纹理贴图,采用常规颜色混合公式,得到初始纹理贴图中混合有图层203、图层202以及相机背景的区域与三维场景混合后的颜色为:28%背景色+20.16%相机背景色+8.64%红色+43.2%绿色。
106.当当前虚拟场景中的虚拟对象没有遮挡三维交互界面时,可以采用传统的先完成三维场景的渲染,再单独渲染交互界面的方式实现交互界面的渲染,此时,渲染得到的交互界面的颜色和透明度即为实际混合结果,实际混合结果中三维交互界面的图层203、图层202与三维场景混合后的颜色为:28%背景色+12%红色+60%。其中,实际混合结果的具体计算过程可以参见前文计算图3中区域204的颜色和透明度信息的过程,此处不再赘述。
107.通过对比可知,初始混合结果中的颜色与实际混合结果中的颜色不同,具体区别在于,初始混合结果的颜色中红色、绿色成分变少,多了rt相机的相机背景色。也就是说,rt技术中,rt相机的背景色会对混合结果产生干扰,让三维交互界面与三维场景混合后出现颜色偏差。
108.需要说明的是,当rt技术采用其他混合方式时,同样可以采用比对初始混合结果和实际混合结果之间的差异来推导出第一混合方式。
109.针对采用上述第二混合方式(即常规颜色混合公式对应的混合方式)的rt技术得到的初始混合结果与实际混合结果的颜色偏差,本技术实施例提出了第一混合方式。采用第一混合方式来生成三维交互界面的纹理贴图,即界面贴图,可以避免产生通过rt技术得
到的初始混合结果与实际混合结果的颜色偏差。
110.以第二混合方式是前文的常规颜色混合公式对应的混合方式为例,第一混合方式包括第一透明度混合方式和第一半透明颜色混合方式;
111.其中,第一透明度混合方式对应公式如下:
112.ab
alpha
=a
alpha
*(1-a
alpha
)+b
alpha
113.其中,alphaa表示上一层级图层渲染后得到的透明度信息,alphab表示当前图层的透明度信息,ab
alpha
表示当前图层渲染后得到的混合透明度信息。
114.第一半透明颜色混合方式对应公式如下:
[0115][0116]
其中,rt
color
表示当前图层渲染后得到的混合颜色信息;rt
alpha
表示界面贴图的最终透明度,即目标透明度信息;color
laststep
表示上一层级图层渲染后得到的混合颜色信息;alpha
current
表示当前图层的透明度信息;color
current
表示当前图层的颜色信息;a
color
表示临时纹理贴图对应的临时颜色通道存储的第一颜色信息,即各个半透明图层对应的底层颜色信息,也可以理解为三维交互界面对应的界面贴图中的底色信息。
[0117]
基于上述第一半透明颜色混合方式,上述步骤101可以包括:
[0118]
确定第一混合方式,第一混合方式包括第一透明度混合方式和第一半透明颜色混合方式;
[0119]
依据三维交互界面对应的界面模型,生成三维交互界面对应的临时纹理贴图;
[0120]
依据多个半透明图层的层级次序,采用第一透明度混合方式对多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将第一透明度信息存入临时纹理贴图对应的临时透明度通道;
[0121]
依据多个半透明图层的层级次序和多个半透明图层的颜色信息,确定临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将第一颜色信息存入临时纹理贴图对应的临时颜色通道;
[0122]
按照多个半透明图层的层级次序,采用第一半透明颜色混合方式对临时纹理贴图存储的第一颜色信息和第一透明度信息以及多个半透明图层的颜色信息和透明度信息进行混合处理,得到三维交互界面的界面贴图的目标颜色信息;
[0123]
依据临时纹理贴图存储的第一透明度信息确定界面贴图对应的目标透明度信息。
[0124]
在本实施例中,在生成三维交互界面的界面贴图的过程中,首先需要确定用于消除rt技术带来的颜色误差的第一混合方式,以解决rt技术带来的色差问题。第一混合方式的确定过程可以参见前文描述。
[0125]
在确定第一混合方式后,采用第一混合方式得到三维交互界面的界面贴图之前,需要先确定第一混合方式对应公式中的rt
alpha
和a
color

[0126]
示例性地,在确定rt
alpha
和a
color
的过程中,可以先依据三维交互界面对应的界面模型,生成三维交互界面对应的临时纹理贴图,临时纹理贴图可以理解为与界面贴图大小相等的缓冲区,临时纹理贴图中的每个像素点都具有四个通道,包括一个临时透明度通道和由三个通道组成的临时颜色通道;然后,根据三维交互界面的多个半透明图层的层级次序,采用第一透明度混合方式对多个半透明图层的透明度信息进行混合处理,确定第一透
明度信息,该第一透明度信息即为界面贴图的目标透明度信息rt
alpha
,为了方便后续处理,此时会将第一透明度信息存入到临时纹理贴图对应的临时透明度通道中。接着,依据多个半透明图层的层级次序和多个半透明图层的颜色信息,确定临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,该第一颜色信息即为界面贴图的底色信息a
color
,为了方便后续处理,将第一颜色信息存入临时纹理贴图对应的临时颜色通道。
[0127]
在确定rt
alpha
和a
color
后,按照多个半透明图层的层级次序,将临时纹理贴图存储的第一颜色信息和第一透明度信息以及多个半透明图层的颜色信息和透明度信息代入到第一半透明颜色混合方式对应的公式中,可以得到三维交互界面的界面贴图的目标颜色信息。
[0128]
可选地,上述依据多个半透明图层的层级次序,采用第一透明度混合方式对多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将第一透明度信息存入临时纹理贴图对应的临时透明度通道,可以包括:
[0129]
从最大层级开始,确定当前处理的第一目标半透明图层和临时纹理贴图存储的当前透明度信息;其中,当第一目标半透明图层的层级为最大层级时,临时纹理贴图存储的当前透明度信息为0;
[0130]
采用第一透明度混合方式对第一目标半透明图层的透明度信息和临时纹理贴图存储的当前透明度信息进行混合处理,得到中间透明度信息;
[0131]
采用中间透明度信息替换临时纹理贴图存储的当前透明度信息;
[0132]
将层级减1,并返回确定当前处理的第一目标半透明度图层和临时纹理贴图存储的当前透明度信息的步骤继续执行,直至层级为第一层级;
[0133]
将临时纹理贴图存储的当前透明度信息确定为第一透明度信息。
[0134]
半透明图层的层级决定了其在生成界面贴图过程中的渲染顺序,层级越大,渲染顺序越靠前,因此,从最大层级开始,也即从第一渲染顺序开始对多个半透明层级进行混合处理,以得到界面贴图。
[0135]
根据前文的第一透明度混合公式可知,在对每个半透明图层进行渲染时,还需要确定对应的上一层级图层的透明度渲染结果,本实施例采用临时纹理贴图的临时透明度通道存储上一层级图层的渲染结果中的透明度渲染结果,因此,在对每个半透明图层进行渲染时,不仅要确定当前处理的半透明图层,还需要确定临时纹理贴图存储的当前透明度信息,然后再将当前处理的半透明图层,即第一目标半透明图层的透明度信息和临时纹理贴图存储的当前透明度信息代入到第一透明度混合方式对应的公式中,计算出第一目标半透明图层的透明度混合结果,即中间透明度信息,并用中间透明度信息来替换临时纹理贴图存储的当前透明度信息,当第一层级的半透明图层渲染完毕后,此时临时纹理贴图存储的当前透明度信息就是最终的透明度信息,即临时纹理贴图存储的第一透明度信息,也即界面贴图的目标透明度信息。
[0136]
可选地,上述依据多个半透明图层的渲染顺序和多个半透明图层的颜色信息,确定临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将第一颜色信息存入临时纹理贴图对应的临时颜色通道,可以包括:
[0137]
从最大层级开始,确定当前处理的第二目标半透明图层和临时纹理贴图中与第二目标半透明图层对应的临时像素点;
[0138]
当临时像素点的深度与第二目标半透明图层的第二目标像素点的深度不一致时,采用第二目标像素点的深度和第二目标颜色信息分别替换临时像素点的深度和临时颜色信息;其中,多个半透明图层的像素点的深度相同;
[0139]
将层级减1,并返回确定当前处理的第二目标半透明图层和临时纹理贴图中与第二目标半透明图层对应的临时像素点的步骤继续执行,直至层级为第一层级;
[0140]
将临时纹理贴图的临时像素点的临时颜色信息确定为第一颜色信息。
[0141]
临时纹理贴图存储的第一颜色信息可以理解为界面贴图的底色信息,结合图2所示的多个半透明图层可知,每个半透明图层中的像素点可以仅与界面贴图中的部分像素点对应,也就是说,界面贴图中的不同像素点的底色信息可以对应不同半透明图层中对应的像素点的颜色信息。本技术实施例根据图层的渲染顺序,从最大层级的半透明图层开始,确定当前处理的半透明图层,即第二目标半透明图层,以及临时纹理贴图中与第二目标半透明图层对应的临时像素点,例如,若第二目标半透明图层是图2中的第二层级的图层时,则临时像素点是与第二层级的图层中三角形对应的像素点,即第二层级的图层中构成三角形的像素点为第二目标像素点。
[0142]
通过深度检测,可以判断出临时像素点的深度与第二目标半透明图层的第二目标像素点的深度是否一致,若不一致,则采用第二目标像素点的深度和第二目标颜色信息替换临时像素点的深度和临时颜色信息。其中,临时纹理贴图中的像素点的深度可以理解为无限远,而半透明图层中的像素点的深度可以通过计算半透明图层与虚拟摄像机的的距离来得到,多个半透明图层用于生成同一个界面贴图,因此,多个半透明图层的像素点的深度相同。也就是说,临时纹理贴图中的像素点的深度最多只能被替换一次,当第一层级的半透明图层渲染完毕后,此时临时纹理贴图存储的临时颜色信息就是临时纹理贴图的最终颜色信息,即临时纹理贴图存储的第一颜色信息,也即界面贴图的底色信息。
[0143]
可选地,上述按照多个半透明图层的层级次序,采用第一半透明颜色混合方式对临时纹理贴图存储的第一颜色信息和第一透明度信息以及多个半透明图层的颜色信息和透明度信息进行混合处理,得到三维交互界面的界面贴图的目标颜色信息,可以包括:
[0144]
从最大层级开始,确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果;其中,最大层级的第三目标半透明图层对应的上一层级的颜色混合结果为第一颜色信息;上一层级为第三目标半透明图层对应层级加1;
[0145]
采用第一半透明颜色混合方式对第三目标半透明图层的透明度信息、颜色信息以及第一透明度信息、初始颜色混合结果、第一颜色信息进行混合处理,得到当前层级颜色信息;
[0146]
将层级减1,并返回确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果的步骤继续执行,直至层级为第一层级;
[0147]
将当前层级颜色信息确定为目标颜色信息。
[0148]
在获得第一透明度信息和第一颜色信息后,根据前文的第一半透明颜色混合公式可知,在对每个半透明图层进行渲染时,还需要确定对应的上一层级图层的颜色渲染结果,因此,在对每个半透明图层进行渲染时,不仅要确定当前处理的半透明图层,即第三目标半透明图层,还需要确定上一层级的图层对应的初始颜色混合结果,然后再将第三目标半透明图层的透明度信息、颜色信息以及第一透明度信息和初始颜色混合结果、第一颜色信息
代入到第一半透明颜色混合方式对应的公式中,计算出第三目标半透明图层的透明度混合结果,即当前层级颜色信息,当第一层级的半透明图层渲染完毕后,此时的当前层级颜色信息就是界面贴图的最终的颜色信息,即界面贴图的目标颜色信息。
[0149]
在步骤102中,在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。
[0150]
在得到界面贴图后,将界面贴图贴在对应的界面模型中,作为当前虚拟场景中的一部分,进行渲染,可以得到三维交互界面。
[0151]
示例性地,在当前虚拟场景中渲染界面贴图,得到三维交互界面的过程,可以包括:
[0152]
采用第二半透明颜色混合方式对界面贴图的目标颜色信息和目标透明度信息以及当前虚拟场景的虚拟场景颜色信息和虚拟场景透明度信息进行混合处理,得到三维交互界面。
[0153]
其中,第二半透明颜色混合方式可以是前文提到的常规颜色混合方式,也可以是其他的不会产生颜色偏差的混合方式。本实施例在生成界面贴图的过程中,采用第一混合方式将rt技术生成的纹理贴图的色差考虑进入了,因此,此时在生成三维交互界面时,不再存在色差,即可以实现将三维交互界面无色差显示在游戏画面中。
[0154]
示例性地,可以采用常规半透明材质进行渲染,在渲染过程中通过第二半透明颜色混合方式对三维交互界面以及三维场景中的虚拟对象进行颜色混合处理,以得到三维交互界面和三维场景中的虚拟对象的渲染结果。
[0155]
需要说明的是,当三维交互界面被当前虚拟场景中的虚拟对象遮挡时,则将被虚拟对象遮挡的部分对应的界面贴图作为虚拟对象的背景,虚拟对象作为前景,也就是说,被虚拟对象遮挡的部分对应的界面贴图对应的层级大于虚拟对象的层级,再代入到第二半透明颜色混合方式对应的公式中进行计算。对于三维交互界面中没有被当前虚拟场景中的虚拟对象遮挡的部分,则将当前虚拟场景作为背景,没有被虚拟对象遮挡的部分对应的界面贴图作为前景,也就是说,没有被虚拟对象遮挡的部分对应的界面贴图对应的层级小于当前虚拟场景对应的层级,再代入到第二半透明颜色混合方式对应的公式中进行计算。因此,本技术实施例提供的三维交互界面的渲染方法还可以实现对三维异形交互界面进行正确渲染,示例性地,三维异形交互界面可以理解为边缘不规则的和/或非平面的交互界面。
[0156]
为了方便本领域技术人员的理解,下面将结合图4介绍在unity游戏引擎中实现本技术实施例提供的三维交互界面的渲染方法的主要步骤。
[0157]
步骤401,生成与三维交互界面的界面贴图大小一致的缓冲区。该缓冲区可以表示为三维交互界面的临时纹理贴图,为了确保颜色和透明度的精确性,临时纹理贴图的颜色格式是32位的rgba,可以理解,临时纹理贴图包括透明度通道和颜色通道,其中,透明度通道也称a通道,颜色通道也称rgb通道,并且初始状态的a为0,也就是说,临时纹理贴图的初始透明度状态是完全透明的。
[0158]
步骤402,通过第一渲染指令在缓冲区的a通道中写入透明度数值,即透明度信息。写入方式遵循的公式如下:
[0159]
dst
alpha
*(1-src
alpha
)+src
alpha
[0160]
其中,src
alpha
代表当前需要被渲染的像素的透明度信息,dst
alpha
代表目前缓存区中的已有像素的透明度。
[0161]
通过步骤402可以得到界面贴图的最终透明度信息,即目标透明度信息。
[0162]
步骤403,通过第一渲染指令在缓冲区的rgb通道中写入颜色数值,即颜色信息。需要说明的是,本步骤在缓冲区的rgb通道中写入颜色数值的同时,会往一个深度缓冲区中写入当前渲染像素到摄像机的距离,以供后续进行深度检测。也就是说,本步骤在缓冲区的rgb通道中写入颜色数值的过程中,需要做深度检测,将当前需要渲染的像素深度与深度缓冲区里对应的深度进行比对,当深度不一致时,才将当前需要渲染的像素的颜色信息写入缓冲区对应的rgb通道中。写入方式遵循的公式如下:
[0163]
dst
color
*0+src
color
[0164]
其中,src
color
代表当前需要被渲染的像素的颜色,dst
color
代表目前缓存区中的已有像素的颜色。
[0165]
步骤404,通过第三渲染指令将缓冲区a通道中存储的信息拷贝到界面贴图的a通道中,以及在界面贴图的rgb通道中写入目标颜色信息。
[0166]
在界面贴图的rgb通道中写入目标颜色信息需要遵循的公式即为前文中的第一半透明颜色混合公式,可以避免出现色差。
[0167]
步骤405,通过第四渲染指令渲染当前虚拟场景。当前虚拟场景包括三维交互界面和三维场景。即将界面贴图贴在对应的界面模型上,界面模型作为当前虚拟场景中的一个虚拟对象进行渲染,以确保三维交互界面与三维场景中的虚拟对象的位置关系准确,提高游戏的沉浸感。在具体渲染过程中,可以采用半透明材质进行渲染,通过第二半透明颜色混合方式对三维交互界面以及三维场景中的虚拟对象进行颜色混合处理,以得到三维交互界面和三维场景中的虚拟对象的渲染结果。
[0168]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术实施例所必须的。
[0169]
参照图5,示出了本技术的一种三维交互界面的渲染装置实施例的结构框图,与上述三维交互界面的渲染方法实施例相对应,三维交互界面包括多个半透明图层,该装置可以包括如下模块:
[0170]
界面贴图生成模块501,用于采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图;
[0171]
交互界面渲染模块502,用于在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。
[0172]
可选地,上述界面贴图生成模块501,可以包括:
[0173]
混合方式确定子模块,用于确定第一混合方式,所述第一混合方式包括第一透明度混合方式和第一半透明颜色混合方式;
[0174]
临时纹理贴图生成子模块,用于依据所述三维交互界面对应的界面模型,生成所述三维交互界面对应的临时纹理贴图;
[0175]
第一透明度信息确定子模块,用于依据所述多个半透明图层的层级次序,采用所述第一透明度混合方式对所述多个半透明图层的透明度信息进行混合处理,确定第一透明
度信息,并将所述第一透明度信息存入所述临时纹理贴图对应的临时透明度通道;
[0176]
第一颜色信息确定子模块,用于依据所述多个半透明图层的层级次序和所述多个半透明图层的颜色信息,确定所述临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将所述第一颜色信息存入所述临时纹理贴图对应的临时颜色通道;
[0177]
目标颜色信息确定子模块,用于按照所述多个半透明图层的层级次序,采用所述第一半透明颜色混合方式对所述临时纹理贴图存储的第一颜色信息和第一透明度信息以及所述多个半透明图层的颜色信息和透明度信息进行混合处理,得到所述三维交互界面的界面贴图的目标颜色信息;
[0178]
目标透明度信息确定子模块,用于依据所述临时纹理贴图存储的第一透明度信息确定所述界面贴图对应的目标透明度信息。
[0179]
可选地,所述第一透明度信息确定子模块,可以包括:
[0180]
第一确定单元,用于从最大层级开始,确定当前处理的第一目标半透明图层和临时纹理贴图存储的当前透明度信息;其中,当所述第一目标半透明图层的层级为最大层级时,所述临时纹理贴图存储的当前透明度信息为0;
[0181]
第一处理单元,用于采用第一透明度混合方式对所述第一目标半透明图层的透明度信息和所述临时纹理贴图存储的当前透明度信息进行混合处理,得到中间透明度信息;
[0182]
第一替换单元,用于采用所述中间透明度信息替换所述临时纹理贴图存储的当前透明度信息;
[0183]
第二确定单元,用于将层级减1,并返回所述第一确定模块中确定当前处理的第一目标半透明度图层和临时纹理贴图存储的当前透明度信息,直至所述层级为第一层级;
[0184]
第三确定单元,用于将所述临时纹理贴图存储的当前透明度信息确定为第一透明度信息。
[0185]
可选地,所述第一颜色信息确定子模块,可以包括:
[0186]
第四确定单元,用于从最大层级开始,确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点;
[0187]
第二替换单元,用于当所述临时像素点的深度与所述第二目标半透明图层的第二目标像素点的深度不一致时,采用所述第二目标像素点的深度和第二目标颜色信息分别替换所述临时像素点的深度和临时颜色信息;其中,所述多个半透明图层的像素点的深度相同;
[0188]
第五确定单元,用于将层级减1,并返回第四确定模块中确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点,直至所述层级为第一层级;
[0189]
第六确定单元,用于将所述临时纹理贴图的临时像素点的临时颜色信息确定为第一颜色信息。
[0190]
可选地,所述目标颜色信息确定子模块,可以包括:
[0191]
第七确定单元,用于从最大层级开始,确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果;其中,所述最大层级的第三目标半透明图层对应的上一层级的颜色混合结果为第一颜色信息;所述上一层级为所述第三目标半透明图层对应层级加1;
[0192]
第二处理单元,用于采用所述第一半透明颜色混合方式对所述第三目标半透明图层的透明度信息、颜色信息以及第一透明度信息、初始颜色混合结果、第一颜色信息进行混合处理,得到当前层级颜色信息;
[0193]
第八确定单元,用于将层级减1,并返回所述第七确定模块中确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果,直至所述层级为第一层级;
[0194]
第九确定单元,用于将所述当前层级颜色信息确定为目标颜色信息。
[0195]
可选地,所述交互界面渲染模块502,可以用于采用第二半透明颜色混合方式对所述界面贴图的目标颜色信息和目标透明度信息以及当前虚拟场景的虚拟场景颜色信息和虚拟场景透明度信息进行混合处理,得到所述三维交互界面,所述第二半透明颜色混合方式不同于所述第一半透明颜色混合方式。
[0196]
可选地,所述三维交互界面包括三维异形交互界面。
[0197]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0198]
本技术实施例还公开了电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的三维交互界面的渲染方法的步骤。
[0199]
本技术实施例还公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的三维交互界面的渲染方法的步骤。
[0200]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0201]
本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0202]
本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0203]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0204]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在
计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0205]
尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
[0206]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0207]
以上对本技术所提供的一种三维交互界面的渲染方法及装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种三维交互界面的渲染方法,其特征在于,所述三维交互界面包括多个半透明图层,所述方法包括:采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图;在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。2.根据权利要求1所述的方法,其特征在于,所述采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图,包括:确定第一混合方式,所述第一混合方式包括第一透明度混合方式和第一半透明颜色混合方式;依据所述三维交互界面对应的界面模型,生成所述三维交互界面对应的临时纹理贴图;依据所述多个半透明图层的层级次序,采用所述第一透明度混合方式对所述多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将所述第一透明度信息存入所述临时纹理贴图对应的临时透明度通道;依据所述多个半透明图层的层级次序和所述多个半透明图层的颜色信息,确定所述临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将所述第一颜色信息存入所述临时纹理贴图对应的临时颜色通道;按照所述多个半透明图层的层级次序,采用所述第一半透明颜色混合方式对所述临时纹理贴图存储的第一颜色信息和第一透明度信息以及所述多个半透明图层的颜色信息和透明度信息进行混合处理,得到所述三维交互界面的界面贴图的目标颜色信息;依据所述临时纹理贴图存储的第一透明度信息确定所述界面贴图对应的目标透明度信息。3.根据权利要求2所述的方法,其特征在于,所述依据所述多个半透明图层的层级次序,采用第一透明度混合方式对所述多个半透明图层的透明度信息进行混合处理,确定第一透明度信息,并将所述第一透明度信息存入所述临时纹理贴图对应的临时透明度通道,包括:从最大层级开始,确定当前处理的第一目标半透明图层和临时纹理贴图存储的当前透明度信息;其中,当所述第一目标半透明度图层的层级为最大层级时,所述临时纹理贴图存储的当前透明度信息为0;采用第一透明度混合方式对所述第一目标半透明图层的透明度信息和所述临时纹理贴图存储的当前透明度信息进行混合处理,得到中间透明度信息;采用所述中间透明度信息替换所述临时纹理贴图存储的当前透明度信息;将层级减1,并返回所述确定当前处理的第一目标半透明度图层和临时纹理贴图存储的当前透明度信息的步骤继续执行,直至所述层级为第一层级;将所述临时纹理贴图存储的当前透明度信息确定为第一透明度信息。4.根据权利要求3所述的方法,其特征在于,所述依据所述多个半透明图层的层级次序和所述多个半透明图层的颜色信息,确定所述临时纹理贴图的各个临时像素点对应的第一个渲染的半透明图层的第一颜色信息,并将所述第一颜色信息存入所述临时纹理贴图对应的临时颜色通道,包括:
从最大层级开始,确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点;当所述临时像素点的深度与所述第二目标半透明图层的第二目标像素点的深度不一致时,采用所述第二目标像素点的深度和第二目标颜色信息分别替换所述临时像素点的深度和临时颜色信息;其中,所述多个半透明图层的像素点的深度相同;将层级减1,并返回所述确定当前处理的第二目标半透明图层和临时纹理贴图中与所述第二目标半透明图层对应的临时像素点的步骤继续执行,直至所述层级为第一层级;将所述临时纹理贴图的临时像素点的临时颜色信息确定为第一颜色信息。5.根据权利要求4所述的方法,其特征在于,所述按照所述多个半透明图层的层级次序,采用所述第一半透明颜色混合方式对所述临时纹理贴图存储的第一颜色信息和第一透明度信息以及所述多个半透明图层的颜色信息和透明度信息进行混合处理,得到所述三维交互界面的界面贴图的目标颜色信息,包括:从最大层级开始,确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果;其中,所述最大层级的第三目标半透明图层对应的上一层级的颜色混合结果为第一颜色信息;所述上一层级为所述第三目标半透明图层对应层级加1;采用所述第一半透明颜色混合方式对所述第三目标半透明图层的透明度信息、颜色信息以及第一透明度信息、初始颜色混合结果、第一颜色信息进行混合处理,得到当前层级颜色信息;将层级减1,并返回所述确定当前处理的第三目标半透明图层和上一层级的初始颜色混合结果的步骤继续执行,直至所述层级为第一层级;将所述当前层级颜色信息确定为目标颜色信息。6.根据权利要求5所述的方法,其特征在于,所述在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面,包括:采用第二半透明颜色混合方式对所述界面贴图的目标颜色信息和目标透明度信息以及当前虚拟场景的虚拟场景颜色信息和虚拟场景透明度信息进行混合处理,得到所述三维交互界面,所述第二半透明颜色混合方式不同于所述第一半透明颜色混合方式。7.根据权利要求1所述的方法,其特征在于,所述三维交互界面包括三维异形交互界面。8.一种三维交互界面的渲染装置,其特征在于,所述三维交互界面包括多个半透明图层,所述装置包括:界面贴图生成模块,用于采用第一混合方式对所述多个半透明图层进行混合处理,得到所述三维交互界面的界面贴图;交互界面渲染模块,用于在当前虚拟场景中渲染所述界面贴图,得到所述三维交互界面。9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的三维交互界面的渲染方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的三维交互界面的
渲染方法的步骤。

技术总结
本申请提供了一种三维交互界面的渲染方法及装置、电子设备、存储介质,其中,方法包括:采用第一混合方式对多个半透明图层进行混合处理,得到三维交互界面的界面贴图,其中,第一混合方式用于消除基于渲染纹理技术得到的纹理贴图的颜色误差;在当前虚拟场景中渲染界面贴图,得到三维交互界面;可以实现正常显示三维交互界面与三维场景中的虚拟对象相互遮挡的关系,提高游戏的沉浸式体验效果;同时,通过用于消除基于渲染纹理技术得到的纹理贴图的颜色误差的第一混合方式,来生成三维交互界面的界面贴图,可以避免出现颜色偏差,提高三维交互界面的显示效果。交互界面的显示效果。交互界面的显示效果。


技术研发人员:董昕
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2022.07.26
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-608.html

最新回复(0)