
1.本技术涉及汽车技术领域,尤其涉及一种车模渲染方法、装置、电子设备和存储介质。
背景技术:2.随着科学技术的不断发展以及人民生活水平的不断提高,行车安全以及泊车安全得到了越来越多的重视。
3.目前,在行车过程中,用户可以通过车载环视系统查看车辆周围的环境,以根据车辆周围的环境实现安全行车或泊车。然而,在目前的车载环视系统中,用户无法查看车辆底部的环境,因此可能因无法查看车辆底部的环境导致行车或泊车过程中存在不安全隐患。
技术实现要素:4.本技术提供了一种车模渲染方法、装置、电子设备和存储介质,能够实现渲染后的车模的车身部分具有一定的透明度的效果,进而可以透过具有一定透明度的车身部分可以查看车辆底部的环境,进而可以提高行车安全和泊车安全。
5.第一方面,本技术提供了一种车模渲染方法,包括:基于目标变换矩阵,将车辆对应的车模的各个车轮部分和环境数据渲染到第一初始fbo,得到第一fbo;基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo,第二初始fbo的大小与第一初始fbo的大小相同;将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo,该目标fbo所绑定的纹理中,该车身部分的透明度为第一透明度,第一透明度小于或等于透明度阈值;将该目标fbo输出到屏幕。
6.可选地,第一透明度大于或等于0.2,且小于或等于0.8。
7.可选地,该将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo之前,该方法还包括:将用户指令对应的透明度,确定为第一透明度。
8.可选地,该将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo之前,该方法还包括:在检测到该车辆行驶的路况包括目标对象的情况下,将该目标对象对应的透明度确定为第一透明度。
9.可选地,该方法还包括:设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,该车身部分对应的像素点的透明度为第一透明度,除该车身部分外的像素点的透明度为0。
10.可选地,第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值;该车身部分对应的像素点为像素值与第一默认值的差值大于或等于预设阈值的像素点,除该车身部分外的像素点为像素值与第一默认值的差值小于该预设阈值的像素点。
11.可选地,该基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo之前,该方法还包括:将第二初始fbo对应的屏幕的视口区域的所有像素点的像素值设置为第一默认值。
12.可选地,该设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,该车身部分对应的像素点的透明度为第一透明度,除该车身部分外的像素点的透明度为0,包括:设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,该片段着色器中纹理采样后的所有像素点的透明度为第一透明度,设置该片段着色器中纹理采样后的所有像素点中像素值与第一默认值的差值小于该预设阈值的像素点的透明度由第一透明度变为0。
13.第二方面,本技术提供了一种车模渲染装置,包括:渲染模块和输出模块;该渲染模块,用于基于目标变换矩阵,将车辆对应的车模的各个车轮部分和环境数据渲染到第一初始帧缓存对象fbo,得到第一fbo;基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo,第二初始fbo的大小与第一初始fbo的大小相同;并将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo,该目标fbo所绑定的纹理中,该车身部分的透明度为第一透明度,第一透明度小于或等于透明度阈值;该输出模块,用于将该目标fbo输出到屏幕。
14.可选地,第一透明度大于或等于0.2,且小于或等于0.8。
15.可选地,该车模渲染装置还包括:确定模块;该确定模块,用于在该渲染模块将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo之前,将用户指令对应的透明度,确定为第一透明度。
16.可选地,该车模渲染装置还包括:确定模块;该确定模块,用于在该渲染模块将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo之前,在检测到该车辆行驶的路况包括目标对象的情况下,将该目标对象对应的透明度确定为第一透明度。
17.可选地,该车模渲染装置还包括:设置模块;该设置模块,用于设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,该车身部分对应的像素点的透明度为第一透明度,除该车身部分外的像素点的透明度为0。
18.可选地,第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值;该车身部分对应的像素点为像素值与第一默认值的差值大于或等于预设阈值的像素点,除该车身部分外的像素点为像素值与第一默认值的差值小于该预设阈值的像素点。
19.可选地,该设置模块,还用于在渲染模块基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo之前,将第二初始fbo对应的屏幕的视口区域的所有像素点的像素值设置为第一默认值。
20.可选地,该设置模块,具体用于设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,该片段着色器中纹理采样后的所有像素点的透明度为第一透明度,设置该片段着色器中纹理采样后的所有像素点中像素值与第一默认值的差值小于该预设阈值的像素点的透明度由第一透明度变为0。
21.第三方面,本技术提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一种车模渲染方法的步骤。
22.第四方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一种车模渲染方法的步骤。
23.本技术实施例的第五方面,提供一种计算机程序产品,其中,该计算机程序产品包
括计算机程序或指令,当该计算机程序产品在处理器上运行时,使得处理器执行该计算机程序或指令,实现如第一方面所述的车模渲染方法的步骤。
24.本技术实施例的第六方面,提供了一种芯片,该芯片包括处理器、存储器和通信接口,该通信接口和该处理器耦合,该存储器用于存储可在该处理器上运行的程序或指令,该处理器用于执行该程序或指令,实现如第一方面所述的车模渲染方法的步骤。
25.本技术实施例提供的技术方案与现有技术相比具有如下优点:本技术实施例中,基于目标变换矩阵,将车辆对应的车模的各个车轮部分和环境数据渲染到第一初始帧缓存对象fbo,得到第一fbo;基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo,第二初始fbo的大小与第一初始fbo的大小相同;将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo,该目标fbo所绑定的纹理中,该车身部分的透明度为第一透明度,第一透明度小于或等于透明度阈值;将该目标fbo输出到屏幕。本方案中,通过将车模分为各个车轮部分和车身部分,然后分别对各个车轮部分和车身部分进行渲染,再将渲染后的车身部分,渲染到渲染后的各个车轮部分上,以实现车身部分的透明度小于或等于透明度阈值,即车身部分具有一定的透明度,如此可以透过具有一定透明度的车身部分查看车辆底部的环境,进而可以提高行车安全和泊车安全。
附图说明
26.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
27.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
28.图1为本技术提供的一种车模渲染方法的流程示意图;
29.图2为本技术提供的另一种车模渲染方法的流程示意图;
30.图3为本技术提供的另一种车模渲染方法的流程示意图;
31.图4为本技术提供的又一种车模渲染方法的流程示意图;
32.图5为本技术提供的又一种车模渲染方法的流程示意图;
33.图6为本技术提供的再一种车模渲染方法的流程示意图;
34.图7为本技术提供的一种车模渲染示意图;
35.图8为本技术提供的一种车模渲染装置的结构示意图;
36.图9为本技术提供的一种电子设备的硬件结构示意图。
具体实施方式
37.为了能够更清楚地理解本技术的上述目的、特征和优点,下面将对本技术的方案进行进一步描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
38.在下面的描述中阐述了很多具体细节以便于充分理解本技术,但本技术还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本技术的一部分实施例,而不是全部的实施例。
39.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
40.下面首先对本发明的权利要求书和说明书中涉及的一些名词或者术语进行解释说明。
41.帧缓存对象(frame buffer object,fbo),允许我们把渲染从窗口的帧缓冲区转移到我们所创建的一个或者多个离屏帧缓冲区。被推荐用于数据渲染到纹理对象,相对于其他同类技术,如数据拷贝或者交换缓冲区等等,使用fbo技术会更高效且易于实现。其中,fbo并不受窗口大小的限制;纹理可以连接到fbo,允许直接渲染到纹理,不需要显示glcopyteximage;fbo可以包含许多颜色缓冲区,可以同时从一个片段着色器写入。
42.透明度,即透光的程度,透明度取值范围为【0,1】,其中,透明度为0表示完全透明,透明度为1表示完全不透明。
43.rgb,是工业界的一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,rgb即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
44.本技术应用于对包括车载环视系统的车辆的车模渲染场景中,本技术实施例中的电子设备可以为车载终端,也可以为与车辆进行通信连接的手机、笔记本、计算机等,具体可以根据实际情况确定,此处不做限定。
45.以下通过几个具体的实施例,对本技术的技术方案进行详细的解释说明。
46.图1为本技术提供的一种车模渲染方法的流程示意图,如图1所示,该车模渲染方法可以包括下述的步骤101至步骤104:
47.101、基于目标变换矩阵,将车辆对应的车模的各个车轮部分和环境数据渲染到第一初始fbo,得到第一fbo。
48.其中,目标变换矩阵是为了将坐标从一个坐标系变换到另一个坐标系需要用到的矩阵,目标变换矩阵可以包括模型(model)矩阵、观察(view)矩阵和投影(projection)矩阵三个矩阵,还可以包括其他的可行性的矩阵,具体可以根据实际情况确定,此处不做限定。
49.其中,对模型(model)矩阵、观察(view)矩阵和投影(projection)矩阵的描述可以参考现有相关技术,此处不做限定。
50.其中,环境数据可以包括车辆周围的环视拼接数据,轨迹线等数据,具体可以根据实际情况确定,此处不做限定。
51.102、基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo。
52.其中,第二初始fbo的大小与第一初始fbo的大小相同。
53.103、将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo。
54.其中,该目标fbo所绑定的纹理中,该车身部分的透明度为第一透明度,第一透明度小于或等于透明度阈值。
55.其中,第一透明度可以是动态配置的,第一透明度可以根据实际情况确定,此处不
做限定。
56.其中,透明度阈值可以根据实际情况确定,此处不做限定。
57.本技术实施例中,可以先创建两个大小相同的初始fbo,即第一初始fbo和第二初始fbo,将车模分为各个车轮部分和车身部分,通过相同的目标变换矩阵,将车模的各个车轮部分渲染到第一初始fbo,得到第一fbo,将车模的车身部分渲染到第二初始fbo,得到第二fbo,然后将第二fbo所绑定的纹理渲染到第一fbo。其中使用相同的目标变换矩阵,对车模的各个车轮部分和车身部分分别进行渲染,可以确保将第二fbo绑定的纹理渲染到第一fbo时,车身部分可以准确落到各个车轮部分上。
58.104、将该目标fbo输出到屏幕。
59.示例性地,可以创建一个矩形模型,将目标fbo中的纹理渲染到屏幕即可。
60.本技术实施例中,基于目标变换矩阵,将车辆对应的车模的各个车轮部分和环境数据渲染到第一初始帧缓存对象fbo,得到第一fbo;基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo,第二初始fbo的大小与第一初始fbo的大小相同;将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo,该目标fbo所绑定的纹理中,该车身部分的透明度为第一透明度,第一透明度小于或等于透明度阈值;将该目标fbo输出到屏幕。本方案中,通过将车模分为各个车轮部分和车身部分,然后分别对各个车轮部分和车身部分进行渲染,再将渲染后的车身部分,渲染到渲染后的各个车轮部分上,以实现车身部分的透明度小于或等于透明度阈值,如此可以透过具有一定透明度的车身部分查看车辆底部的环境,进而可以提高行车安全和泊车安全。
61.可选地,第一透明度大于或等于0.2,且小于或等于0.8。
62.可以理解,第一透明度可以为大于或等于0.2,且小于或等于0.8中的任意值,例如,第一透明度可以为0.2、0.4、0.5、0.6或0.8等。
63.本公开实施例中,第一透明度大于或等于0.2可以保证车身的特征对用户仍清晰可见,如此可以根据车身特征所在位置更好地确定车辆底部环境中的位置。第一透明度小于或等于0.8可以保证可透过车身清晰查看车辆底部的环境。
64.可选地,第一透明度是动态可配的,也就是说对每帧车模图像进行渲染时,可以采用不同的第一透明度。例如可以根据用户指令调整第一透明度,也可以根据车辆底部的环境状况调整第一透明度,还可以通过其他方式调整第一透明度,此处不做限定。
65.可选地,结合图1,如图2所示,在上述步骤103之前,本技术实施例提供的车模渲染方法还可以包括下述的步骤105。
66.105、将用户指令对应的透明度,确定为第一透明度。
67.可选地,若用户需要通过降低车身的透明度查看车辆底部的环境时,用户可以通过开启“透明车身渲染”模式,触发将“透明车身渲染”模式对应的透明度确定为第一透明度。
68.可选地,若用户需要通过降低车身的透明度查看车辆底部的环境时,用户可以通过对“透明度调节按钮”的操作,选择用户需要的透明度,触发将用户选择的透明度确定为第一透明度。
69.本公开实施例中,可以根据用户需求动态配置第一透明度,然后基于第一透明度对车模进行渲染,以使得屏幕显示车身透明的车模,从而便于用户查看车辆底部的环境,进
而提高行车安全和泊车安全。
70.可选地,结合图1,如图3所示,在上述步骤103之前,本技术实施例提供的车模渲染方法还可以包括下述的步骤106。
71.106、在检测到该车辆行驶的路况包括目标对象的情况下,将该目标对象对应的透明度确定为第一透明度。
72.其中,目标对象可以为障碍物、轨迹线等,具体可以根据实际情况确定,此处不做限定,不同的对象,可以对应不同的透明度。可以理解,可以预先存储不同的对象与其对应的透明度的对应关系,当检测到为目标对象时,获取目标对象对应的透明度,并将其确定为第一透明度。
73.可以理解,通过车辆上设置的摄像头拍摄车辆前方的图片,通过对拍摄的图片进行分析,预测在车辆行驶到一定位置时,车辆底部包括目标对象,则可以确定对当前帧车模进行渲染时,将目标对象对应的透明度确定为第一透明度,如此,可以便于屏幕显示车身透明的车模,从而便于用户查看车辆底部的目标对象,进而提高行车安全和泊车安全。
74.本公开实施例中,可以根据车辆行驶的路况自动确定第一透明度,无需用户操作,即可以自动显示车身透明的车模,可以便于用户及时获知车辆底部的环境,可以有效提高行车安全和泊车安全。
75.可选地,结合图1,如图4所示,在上述步骤103之前,本技术实施例提供的车模渲染方法还可以包括下述的步骤107。
76.107、设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,该车身部分对应的像素点的透明度为第一透明度,除该车身部分外的像素点的透明度为0。
77.可以理解,在将第二fbo所绑定的纹理渲染到第一fbo的过程中,该车身部分对应的像素点的透明度为第一透明度,则将目标fbo输出到屏幕后,可以透过车身查看车辆底部的环境,除该车身部分外的像素点的透明度为0,即除该车身部分外的像素点为完全透明的,则将目标fbo输出到屏幕后,可以看到各个车轮部分,以及车辆周围的环境。
78.可选地,本技术实施例中,可以获取车身部分在第二fbo中的位置信息,然后设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中位于该位置信息中的像素点的透明度为第一透明度,其余像素点的透明度为0。
79.可选地,第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值;该车身部分对应的像素点为像素值与第一默认值的差值大于或等于预设阈值的像素点,除该车身部分外的像素点为像素值与第一默认值的差值小于该预设阈值的像素点。
80.其中,第一默认值可以为与车身部分任意像素点的像素值不同的值。例如,第一默认值可以为0,也可以为255,还可以为其他值,具体可以根据实际情况确定,此处不做限定。
81.其中,预设阈值可以根据实际情况确定,此处不做限定。例如,预设阈值可以为0、0.01或0.001等。
82.需要说明的是,本公开实施例中,像素点的像素值可以为像素点的灰度值,也可以为像素点的各颜色分量的值,还可以为像素点的各颜色分量的值之和,还可以为其他值,具体可以根据实际情况确定,此处不做限定。
83.需要说明的是,由于本技术实施例提供的渲染方法支持rgb颜色空间的图像,因此
像素点为rgb颜色空间的像素点,若车模为其他颜色空间的形式,需先转换成rgb颜色空间的形式。
84.本公开实施例中,设置第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值,然后设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,像素值与第一默认值的差值大于或等于预设阈值的像素点(即车身部分的像素点)的透明度为第一透明度,像素值与第一默认值的差值小于该预设阈值的像素点(即除车身部分外的像素点)的透明度为0,可以实现将目标fbo输出到屏幕后,可以透过车身查看车辆底部的环境,可以看到各个车轮部分,以及车辆周围的环境。
85.可选地,可以通过将第二初始fbo中的各个像素点的初始值设为第一默认值,然后基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo,以使得第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值。
86.可选地,结合图4,如图5所示,在上述步骤102之前,本技术实施例提供的车模渲染方法还可以包括下述的步骤108。
87.108、将第二初始fbo对应的屏幕的视口区域的所有像素点的像素值设置为第一默认值。
88.可以理解,通过上述步骤108和上述步骤102可以实现第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值。
89.本技术实施例中,通过将第二初始fbo对应的屏幕的视口区域的所有像素点的像素值设置为第一默认值,可以实现第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值,然后便于后续根据像素点的像素值与第一默认值的差值,设置片段着色器中纹理采样后的所有像素点的透明度,可以实现将目标fbo输出到屏幕后,可以透过车身查看车辆底部的环境,可以看到各个车轮部分,以及车辆周围的环境。
90.可选地,结合图5,如图6所示,上述步骤107具体可以通过下述步骤107a实现。
91.107a、设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,该片段着色器中纹理采样后的所有像素点的透明度为第一透明度,设置该片段着色器中纹理采样后的所有像素点中像素值与第一默认值的差值小于该预设阈值的像素点的透明度由第一透明度变为0。
92.可以理解,通过设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,该片段着色器中纹理采样后的所有像素点的透明度为第一透明度,设置该片段着色器中纹理采样后的所有像素点中像素值与第一默认值的差值小于该预设阈值的像素点(即除车身部分外的像素点)的透明度由第一透明度变为0(即刷新了除车身部分外的像素点的透明度),可以实现在将第二fbo所绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,车身部分的像素点的透明度为第一透明度,除车身部分外的像素点的透明度为0,进而可以实现将目标fbo输出到屏幕后,可以透过车身查看车辆底部的环境,可以看到各个车轮部分,以及车辆周围的环境。
93.可选地,本技术实施例中,车模可以是直接设置好的车身部分和各个车轮部分分离的模型,车模也可以是车身部分和各个车轮部分未分离的模型,具体可以根据实际情况确定,此处不做限定。
94.可选地,当车模是车身部分和各个车轮部分未分离的模型时,可以将车模输入机
器学习模型,输出车身部分和各个车轮部分分离的模型。
95.其中,机器学习模型是根据历史样本数据对机器学习基础模型进行训练得到的。历史样本数据中的每个样本包括历史完整车模和对应的车身部分和各个车轮部分分离的车模。机器学习基础模型可以是基于任意机器学习算法建立的基础模型,具体可以根据实际情况确定,此处不做限定。
96.示例性地,对于4轮的车模,由3d模型设计人员设计4轮和车身分离的车辆模型;创建两个相同大小的fbo1,fbo2,fbo1用于渲染4轮部分,fbo2用于渲染车身部分。如图7所述,基于view,model,projection等矩阵,将4轮部分,环视拼接数据,轨迹线等数据都渲染到fbo1;将fbo2对应的视口清屏为纯黑色,即设置r、g、b均为0,透明度默认为1,然后基于view,model,projection等矩阵将车身部分渲染到fbo2。需要说明的是,为了确保车身部分可以准确落到4轮上,要保证渲染车身部分时的view,model,projection矩阵要与渲染车身部分时的view,model,projection矩阵保持一致。将车身fbo2所绑定的纹理,渲染到车轮fbo1中,同时在片段着色器中将纹理采样后所有点的透明度设置为设定值(即第一透明度,0.2-0.8之间的指定值),然后r+g+b《0.01的点的透明度设置为0。由于上述步骤中将视口的r、g、b均置为0后渲染的车身,故车身fbo2所绑定的纹理中,除车身部分外,r+g+b均为0,因而可以实现车身透明度为设定值,其他部分为完全透明,因此可以直接看到车轮fbo1中的内容(4个车轮部分和车辆周围的环境),而且车身部分时有一定透明度的,可以看到透过车身部分查看车辆底部的环境。此时,4轮+车身+其他内容已经全部渲染到了fbo1中,再创建一个矩形模型,将fbo1中的纹理渲染到屏幕即可。
97.本技术实施例中,通过采用将车身部分和各个车轮部分分别渲染,然后再将渲染后的车身部分渲染到渲染后的各个车轮部分的方案,实现车身可动态调节透明度,无需设计人员设置车身透明度不同的多个车模,可以降低车模设计的复杂度。而且在本技术实施例提供的车模渲染方法的基础上,可以结合车辆底部填充技术,实现在车身部分透明度低于透明度阈值时,驾驶员可以查看车辆底部环境,进而提升驾驶安全性。
98.本公开还提供一种车模渲染装置,图8为本公开提供的一种车模渲染装置的结构示意图,如图8所示,该车模渲染装置包括:渲染模块801和输出模块802;该渲染模块801,用于基于目标变换矩阵,将车辆对应的车模的各个车轮部分和环境数据渲染到第一初始帧缓存对象fbo,得到第一fbo;基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo,第二初始fbo的大小与第一初始fbo的大小相同;并将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo,该目标fbo所绑定的纹理中,该车身部分的透明度为第一透明度,第一透明度小于或等于透明度阈值;该输出模块802,用于将该目标fbo输出到屏幕。
99.可选地,第一透明度大于或等于0.2,且小于或等于0.8。
100.可选地,该车模渲染装置还包括:确定模块;该确定模块,用于在该渲染模块将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo之前,将用户指令对应的透明度,确定为第一透明度。
101.可选地,该车模渲染装置还包括:确定模块;该确定模块,用于在该渲染模块将第二fbo所绑定的纹理渲染到第一fbo,得到目标fbo之前,在检测到该车辆行驶的路况包括目标对象的情况下,将该目标对象对应的透明度确定为第一透明度。
102.可选地,该车模渲染装置还包括:设置模块;该设置模块,用于设置在将第二fbo所
绑定的纹理渲染到第一fbo的过程中,片段着色器中纹理采样后的所有像素点中,该车身部分对应的像素点的透明度为第一透明度,除该车身部分外的像素点的透明度为0。
103.可选地,第二fbo所绑定的纹理中除该车身部分外,每个像素点的像素值均为第一默认值;该车身部分对应的像素点为像素值与第一默认值的差值大于或等于预设阈值的像素点,除该车身部分外的像素点为像素值与第一默认值的差值小于该预设阈值的像素点。
104.可选地,该设置模块,还用于在渲染模块基于该目标变换矩阵,将该车模的车身部分渲染到第二初始fbo,得到第二fbo之前,将第二初始fbo对应的屏幕的视口区域的所有像素点的像素值设置为第一默认值。
105.可选地,该设置模块,具体用于设置在将第二fbo所绑定的纹理渲染到第一fbo的过程中,该片段着色器中纹理采样后的所有像素点的透明度为第一透明度,设置该片段着色器中纹理采样后的所有像素点中像素值与第一默认值的差值小于该预设阈值的像素点的透明度由第一透明度变为0。
106.需要说明的是,上述车模渲染装置可以为本技术上述方法实施例中的电子设备,也可以是该电子设备中能够实现该装置实施例功能的功能模块和/或功能实体,本技术实施例不做限定。
107.本技术实施例中,各模块可以实现上述方法实施例提供的车模渲染方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
108.本技术实施例还提供一种电子设备,如图9所示,该电子设备可以包括:处理器901,存储器902以及存储在存储器902上并可在处理器901上运行的程序或指令,该程序或指令被处理器901执行时可以实现上述方法实施例提供的车模渲染方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
109.其中,处理器901可以是调制解调器,基带处理器,基带芯片,或,用于执行本技术方案的一个或多个芯片(或芯片系统)。处理器901利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行终端设备的各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
110.本技术实施例提供一种车辆,包括上述所述的电子设备,该车辆可以实现上述方法实施例提供的车模渲染方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
111.本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储程序或指令,该程序或指令被处理器执行时实现上述方法实施例提供的车模渲染方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
112.本技术实施例还提供一种计算机程序产品,其中,该计算机程序产品包括计算机
程序或指令,当该计算机程序产品在处理器上运行时,使得处理器执行该计算机程序或指令,实现上述方法实施例提供的车模渲染方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
113.本技术实施例另提供了一种芯片,所述芯片包括处理器、存储器和通信接口,所述通信接口和所述处理器耦合,该存储器用于存储可在该处理器上运行的程序或指令,该处理器用于执行该程序或指令,实现上述车模渲染方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
114.其中,处理器,例如可以是中央处理器(central processing unit,cpu),专用集成电路(application specific integrated circuit,asic),或被配置成实施本技术实施例的一个或多个集成电路。存储器可以是一个存储装置,也可以是多个存储元件的统称,且存储器可以包括随机存储器,也可以包括非易失性存储器,例如磁盘存储器,闪存等。
115.应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
116.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置,服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
117.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
118.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
119.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
120.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。