本发明涉及图像渲染,具体而言,涉及一种基于opengl的3d液晶仪表系统控制系统及方法。
背景技术:
1、随着汽车市场日趋竞争激烈,各大汽车主机厂都在全液晶仪表上开展了相关的研发,全液晶仪表可以提供更加直观且丰富的信息,是目前为止最先进的汽车仪表,也是未来的发展方向与趋势。
2、传统液晶仪表界面大多采用2d图片实现,即便是车模部分,一般采取高精度渲染的图片来展示。但是在指针部分,如果仅仅采用2d图片,当指针转动时就会出现立体感不强的问题。
技术实现思路
1、本发明的目的是提供一种基于opengl的3d液晶仪表系统控制系统及方法,来解决现有技术中仅采用2d图片,当指针转动时就会出现立体感不强的问题。
2、本发明的实施例通过以下技术方案实现:
3、第一方面,本发明提供了一种基于opengl的3d液晶仪表系统控制方法,包括;
4、准备场景,所述场景包括待渲染的3d模型、光源位置和光源数量,并设置摄像机位置为光源位置;
5、创建一个屏幕分辨率大小的buffer,设置opengl渲染目标中的深度缓冲区为buffer;
6、将场景中的物体按照距离光源的远近排序,按照从远到近的顺序依次渲染,深度缓冲区保存场景中离光源最近的面片的深度信息;
7、对深度缓冲区进行边缘检测,提取阴影的边缘带,保存至阴影边缘带纹理中;
8、重新将opengl的渲染目标设置为屏幕对应的buffer,将摄像机位置还原为初始位置,再次从远到近渲染物体,根据深度信息和阴影边缘带纹理绘制最终阴影。
9、在本发明的一实施例中,所述边缘检测包括采用sobe l算子进行边缘检测。
10、在本发明的一实施例中,所述采用sobe l算子包括;
11、获取sobe l算子在x和y方向上的卷积核;
12、求得深度缓冲区每一个像素的梯度;
13、通过和设定阈值的比较,得到深度缓冲区中的边缘信息。
14、在本发明的一实施例中,所述根据深度信息和阴影边缘带纹理绘制阴影包括;
15、所述当前面片在阴影的边缘,则淡化当前纹理颜色;
16、若未在边缘,则设置颜色rgb值设置为均设置为0.1。
17、在本发明的一实施例中,所述光源使用点光源或者平行光源。
18、在本发明的一实施例中,所述3d模型包括定点和法线。
19、第二方面,本发明提供了一种基于opengl的3d液晶仪表系统,包括;
20、布景模块,被配置为准备场景,所述场景包括待渲染的3d模型、光源位置和光源数量,并设置摄像机位置为光源位置;
21、创建模块,被配置为创建一个屏幕分辨率大小的buffer,设置opengl渲染目标中的深度缓冲区为buffer;
22、渲染模块,被配置为将场景中的物体按照距离光源的远近排序,按照从远到近的顺序依次渲染,深度缓冲区保存场景中离光源最近的面片的深度信息;
23、边缘检测模块,被配置为对深度缓冲区进行边缘检测,提取阴影的边缘带,保存至阴影边缘带纹理中;
24、阴影绘制模块,被配置为重新将opengl的渲染目标设置为屏幕对应的buffer,将摄像机位置还原为初始位置,再次从远到近渲染物体,根据深度信息和阴影边缘带纹理绘制最终阴影;
25、主控模块,与所述布景模块、创建模块、渲染模块、边缘检测模块和阴影绘制模块连接,用于执行上述的一种基于opengl的3d液晶仪表系统控制方法。
26、在本发明的一实施例中,还包括sobe l算子模块,被配置为获取sobe l算子在x和y方向上的卷积核,求得深度缓冲区每一个像素的梯度,通过和设定阈值的比较,得到深度缓冲区中的边缘信息。
27、第三方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种基于opengl的3d液晶仪表系统控制方法。
28、第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述的一种基于opengl的3d液晶仪表系统控制方法。
29、本发明实施例的技术方案至少具有如下优点和有益效果:
30、本发明采用opengl图像渲染技术,巧妙利用深度缓冲区可以记录场景中物体深度关系的特点,从而获取物体相对遮挡关系,在绘制物体时结合该信息,如果未被遮挡则正常绘制,反之则绘制阴影,从而产生立体效果。本发明通过两次渲染,第一次渲染获取场景中基于光源的深度信息,第二次正常渲染时参考深度信息绘制阴影,从而产生立体效果。本方法重点运用在液晶仪表中的指针绘制,可以实现实时阴影和指针伴随的效果,大大提高3d特效。
1.一种基于opengl的3d液晶仪表系统控制方法,其特征在于,包括;
2.根据权利要求1所述的一种基于opengl的3d液晶仪表系统控制方法,其特征在于,所述边缘检测包括采用sobel算子进行边缘检测。
3.根据权利要求2所述的一种基于opengl的3d液晶仪表系统控制方法,其特征在于,所述采用sobel算子包括;
4.根据权利要求1所述的一种基于opengl的3d液晶仪表系统控制方法,其特征在于,所述根据深度信息和阴影边缘带纹理绘制最终阴影包括;
5.根据权利要求1所述的一种基于opengl的3d液晶仪表系统控制方法,其特征在于,所述光源使用点光源或者平行光源。
6.根据权利要求1所述的一种基于opengl的3d液晶仪表系统控制方法,其特征在于,所述3d模型包括定点和法线。
7.一种基于opengl的3d液晶仪表系统,其特征在于,包括;
8.根据权利要求7所述的一种基于opengl的3d液晶仪表系统,其特征在于,还包括sobel算子模块,被配置为获取sobel算子在x和y方向上的卷积核,求得深度缓冲区每一个像素的梯度,通过和设定阈值的比较,得到深度缓冲区中的边缘信息。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的一种基于opengl的3d液晶仪表系统控制方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的一种基于opengl的3d液晶仪表系统控制方法。