一种基于OpenGL的3D眼镜渲染方法及其系统技术方案

技术编号:19826161 阅读:24 留言:0更新日期:2018-12-19 16:19
本发明专利技术提供了一种基于OpenGL的3D眼镜渲染方法,包括:建立3D眼镜模型;在3D眼镜模型上确定第一锚点,用于定位3D眼镜模型在人脸上的佩戴位置;根据3D眼镜模型数据,预设相对应的仿人头模型数据;以第一锚点为基准,建立仿人头模型,并在仿人头模型上确定第二锚点;在绘制时,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;在深度缓冲区和临时颜色缓冲区绘制仿人头模型;由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。本发明专利技术还提供一种基于OpenGL的3D眼镜渲染系统。

【技术实现步骤摘要】
一种基于OpenGL的3D眼镜渲染方法及其系统
本专利技术属于3D渲染
,具体涉及一种基于OpenGL的3D眼镜渲染方法及其系统。
技术介绍
目前人脸跟踪的3D眼镜绘制一般实现有三种。第一种是将眼镜3D模型至少分为3个部分——左镜框、镜片、右镜框,然后根据人脸检测得出的人脸Yaw姿态角确定左右镜框的显示,例如,当人脸偏向左面,则不显示左镜框;当人脸偏向右面,则不显示右镜框;当人脸正对屏幕,则左右镜框均不显示。这种方法实现最为简单,但由于整个镜框都不被绘制,不够仿真。第二种是实时得出人脸的3D模型,结合眼镜3D模型实时渲染。这种实现效果最好,但实现难度极大,对设备计算能力要求极高,故难以广泛使用。
技术实现思路
为了解决上述问题,本专利技术的目的在于提供一种巧用OpenGL缓冲区的特性,计算简单,渲染性能高切实现容易的基于OpenGL的3D眼镜渲染方法及其系统。为了实现上述专利技术目的,本专利技术所采用的技术方案如下:一种基于OpenGL的3D眼镜渲染方法,所述方法包括以下步骤:S1、建立3D眼镜模型;S2、在3D眼镜模型上确定第一锚点,所述第一锚点用于定位3D眼镜模型在人脸上的佩戴位置;S3、根据3D眼镜模型数据,预设相对应的仿人头模型数据;S4、以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;S5、在绘制时,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;S6、在深度缓冲区和临时颜色缓冲区绘制仿人头模型;S7、由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;S8、将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。进一步,所述方法还包括以下步骤:在实现步骤S2前,通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第一锚点数据。为了实现本专利技术的另一目的,本专利技术还采用如下技术方案:一种基于OpenGL的3D眼镜渲染系统,所述系统包括:模型单元,用于建立3D眼镜模型,在3D眼镜模型上确定第一锚点,用于定位3D眼镜模型在人脸上的佩戴位置;所述模型单元根据3D眼镜模型数据,预设相对应的仿人头模型数据,以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;绘制单元,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;所述绘制单元在深度缓冲区和临时颜色缓冲区绘制仿人头模型;所述绘制单元由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;所述绘制单元将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。进一步,所述系统还包括:识别单元,通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第一锚点数据。与现有技术相比,本专利技术的有益效果在于:本专利技术巧用OpenGL缓冲区的特性,使用预设的仿人头模型作为深度缓冲区的标准,然后再绘制3D眼镜模型,由于首先绘制了仿人头模型,后绘制的3D眼镜模型某些部分则会被认为被遮挡,所以OpenGL不会对该部分进行绘制,达到了镜框部分显示的效果。本专利技术计算简单,渲染性能高,仿真效果好,3D眼镜模型能基于人脸的转向而部分显示,避免镜框穿脸的现象。附图说明此附图说明所提供的图片用来辅助对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的不当限定,在附图中:图1是本专利技术基于OpenGL的3D眼镜渲染系统的主要模块示意图;图2是本专利技术基于OpenGL的3D眼镜渲染方法的流程示意图。具体实施方式下面将结合附图以及具体实施方法来详细说明本专利技术,在本专利技术的示意性实施及说明用来解释本专利技术,但并不作为对本专利技术的限定。如图1所示,一种基于OpenGL的3D眼镜渲染系统,所述系统包括:模型单元,用于建立3D眼镜模型,在3D眼镜模型上确定第一锚点,用于定位3D眼镜模型在人脸上的佩戴位置;所述模型单元根据3D眼镜模型数据,预设相对应的仿人头模型数据,以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;3D眼镜模型与仿人头模型锚点一致,则可在渲染时同步变化;绘制单元,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;所述绘制单元在深度缓冲区和临时颜色缓冲区绘制仿人头模型;目的是只使用仿人头模型产生的深度缓冲为后续绘制3D眼镜模型提供遮挡检测,而仿人头模型的颜色效果并不需要;所述绘制单元由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;所述绘制单元将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型;识别单元,通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第一锚点数据。如图2所示,一种基于OpenGL的3D眼镜渲染方法,所述方法包括以下步骤:S101:建立3D眼镜模型;S102:通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第一锚点数据;S103:在3D眼镜模型上确定第一锚点,所述第一锚点用于定位3D眼镜模型在人脸上的佩戴位置;S104:根据3D眼镜模型数据,预设相对应的仿人头模型数据;S105:以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;S106:在绘制时,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;S107:在深度缓冲区和临时颜色缓冲区绘制仿人头模型;S108:由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;S109:将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。一般OpenGL利用颜色缓冲区以及深度缓冲区进行3D模型的绘制,颜色缓冲区即是最终显示在屏幕的内容;而深度缓冲区则是用于让OpenGL底层决定是否绘制后层物体的依据,即实现“前景不透明物体遮挡后景物体”。本专利技术巧用OpenGL缓冲区的特性,一个帧缓冲区可以同时绑定多个颜色缓冲区以及一个深度缓冲区,且支持动态切换颜色缓冲区或深度缓冲区。绘制时,帧缓冲区首先绑定深度缓冲区以及临时的颜色缓冲区,在深度缓冲区以及临时缓冲区使用预设的仿人头模型作为深度缓冲区的标准,然后帧缓冲区切换到颜色缓冲区再绘制3D眼镜模型,深度缓冲区保持不变;由于首先绘制了仿人头模型,后绘制的3D眼镜模型某些部分则会被认为被遮挡,所以OpenGL不会对该部分进行绘制,达到了镜框部分显示的效果。本专利技术计算简单,渲染性能高,仿真效果好,3D眼镜模型能基于人脸的转向而部分显示,避免镜框穿脸的现象。本实施例所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本专利技术实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本专利技术各个实施例所述方法的全部或部分步本文档来自技高网...

【技术保护点】
1.一种基于OpenGL的3D眼镜渲染方法,其特征在于,所述方法包括以下步骤:S1、建立3D眼镜模型;S2、在3D眼镜模型上确定第一锚点,所述第一锚点用于定位3D眼镜模型在人脸上的佩戴位置;S3、根据3D眼镜模型数据,预设相对应的仿人头模型数据;S4、以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;S5、在绘制时,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;S6、在深度缓冲区和临时颜色缓冲区绘制仿人头模型;S7、由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;S8、将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。

【技术特征摘要】
1.一种基于OpenGL的3D眼镜渲染方法,其特征在于,所述方法包括以下步骤:S1、建立3D眼镜模型;S2、在3D眼镜模型上确定第一锚点,所述第一锚点用于定位3D眼镜模型在人脸上的佩戴位置;S3、根据3D眼镜模型数据,预设相对应的仿人头模型数据;S4、以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;S5、在绘制时,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;S6、在深度缓冲区和临时颜色缓冲区绘制仿人头模型;S7、由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;S8、将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。2.根据权利要求1所述的方法,其特征在于,所述方法还包括以下步骤:在实现步骤S2前,通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第...

【专利技术属性】
技术研发人员:邓裕强阮杰维区永强
申请(专利权)人:广州久邦世纪科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1