CN109035375A - 一种基于OpenGL的3D眼镜渲染方法及其系统 - Google Patents
一种基于OpenGL的3D眼镜渲染方法及其系统 Download PDFInfo
- Publication number
- CN109035375A CN109035375A CN201810649378.2A CN201810649378A CN109035375A CN 109035375 A CN109035375 A CN 109035375A CN 201810649378 A CN201810649378 A CN 201810649378A CN 109035375 A CN109035375 A CN 109035375A
- Authority
- CN
- China
- Prior art keywords
- model
- glasses
- buffer
- anchor point
- data
- 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.)
- Granted
Links
- 239000011521 glass Substances 0.000 title claims abstract description 71
- 238000009877 rendering Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims abstract description 19
- 239000000872 buffer Substances 0.000 claims abstract description 94
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种基于OpenGL的3D眼镜渲染方法,包括:建立3D眼镜模型;在3D眼镜模型上确定第一锚点,用于定位3D眼镜模型在人脸上的佩戴位置;根据3D眼镜模型数据,预设相对应的仿人头模型数据;以第一锚点为基准,建立仿人头模型,并在仿人头模型上确定第二锚点;在绘制时,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;在深度缓冲区和临时颜色缓冲区绘制仿人头模型;由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。本发明还提供一种基于OpenGL的3D眼镜渲染系统。
Description
技术领域
本发明属于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眼镜模型能基于人脸的转向而部分显示,避免镜框穿脸的现象。
本实施例所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (4)
1.一种基于OpenGL的3D眼镜渲染方法,其特征在于,所述方法包括以下步骤:
S1、建立3D眼镜模型;
S2、在3D眼镜模型上确定第一锚点,所述第一锚点用于定位3D眼镜模型在人脸上的佩戴位置;
S3、根据3D眼镜模型数据,预设相对应的仿人头模型数据;
S4、以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;
S5、在绘制时,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;
S6、在深度缓冲区和临时颜色缓冲区绘制仿人头模型;
S7、由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;
S8、将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括以下步骤:
在实现步骤S2前,通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第一锚点数据。
3.一种基于OpenGL的3D眼镜渲染系统,其特征在于,所述系统包括:
模型单元,用于建立3D眼镜模型,在3D眼镜模型上确定第一锚点,用于定位3D眼镜模型在人脸上的佩戴位置;所述模型单元根据3D眼镜模型数据,预设相对应的仿人头模型数据,以第一锚点为基准,根据预设的仿人头模型数据建立仿人头模型,并在仿人头模型上确定第二锚点;
绘制单元,利用OpenGL帧缓冲技术,首先将帧缓冲区绑定深度缓冲区、临时颜色缓冲区、颜色缓冲区;所述绘制单元在深度缓冲区和临时颜色缓冲区绘制仿人头模型;所述绘制单元由临时颜色缓冲区切换到颜色缓冲区,深度缓冲区保持不变,根据仿人头模型的第二锚点绘制3D眼镜模型;所述绘制单元将帧缓冲区绘制到屏幕显示,得出基于人脸转向可以部分显示的仿真3D眼镜模型。
4.根据权利要求3所述的系统,其特征在于,所述系统还包括:
识别单元,通过摄像头实时获取人脸数据,通过分析人脸数据确定3D眼镜模型的第一锚点数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810649378.2A CN109035375B (zh) | 2018-06-22 | 2018-06-22 | 一种基于OpenGL的3D眼镜渲染方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810649378.2A CN109035375B (zh) | 2018-06-22 | 2018-06-22 | 一种基于OpenGL的3D眼镜渲染方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109035375A true CN109035375A (zh) | 2018-12-18 |
CN109035375B CN109035375B (zh) | 2023-11-10 |
Family
ID=64609926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810649378.2A Active CN109035375B (zh) | 2018-06-22 | 2018-06-22 | 一种基于OpenGL的3D眼镜渲染方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109035375B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609562A (zh) * | 2008-01-23 | 2009-12-23 | 奥多比公司 | 在高深度复杂性场景中绘制透明面的系统和方法 |
CN102034079A (zh) * | 2009-09-24 | 2011-04-27 | 汉王科技股份有限公司 | 眼镜遮挡下的人脸识别方法和系统 |
US20130044108A1 (en) * | 2011-03-31 | 2013-02-21 | Panasonic Corporation | Image rendering device, image rendering method, and image rendering program for rendering stereoscopic panoramic images |
CN103456008A (zh) * | 2013-08-26 | 2013-12-18 | 刘晓英 | 一种面部与眼镜匹配方法 |
CN104809638A (zh) * | 2015-05-20 | 2015-07-29 | 成都通甲优博科技有限责任公司 | 一种基于移动终端的眼镜虚拟试戴方法和系统 |
CN107251098A (zh) * | 2015-03-23 | 2017-10-13 | 英特尔公司 | 使用动态三维形状促进真实对象的真三维虚拟表示 |
CN107492001A (zh) * | 2017-05-17 | 2017-12-19 | 成都通甲优博科技有限责任公司 | 虚拟眼镜试戴方法、装置及服务终端 |
CN107498846A (zh) * | 2017-09-20 | 2017-12-22 | 厦门云镜视界设计有限公司 | 一种基于3d模型的眼镜制作方法 |
US20170372510A1 (en) * | 2016-06-27 | 2017-12-28 | Robert Bosch Gmbh | Systems and methods for dynamic occlusion handling |
-
2018
- 2018-06-22 CN CN201810649378.2A patent/CN109035375B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609562A (zh) * | 2008-01-23 | 2009-12-23 | 奥多比公司 | 在高深度复杂性场景中绘制透明面的系统和方法 |
CN102034079A (zh) * | 2009-09-24 | 2011-04-27 | 汉王科技股份有限公司 | 眼镜遮挡下的人脸识别方法和系统 |
US20130044108A1 (en) * | 2011-03-31 | 2013-02-21 | Panasonic Corporation | Image rendering device, image rendering method, and image rendering program for rendering stereoscopic panoramic images |
CN103456008A (zh) * | 2013-08-26 | 2013-12-18 | 刘晓英 | 一种面部与眼镜匹配方法 |
CN107251098A (zh) * | 2015-03-23 | 2017-10-13 | 英特尔公司 | 使用动态三维形状促进真实对象的真三维虚拟表示 |
CN104809638A (zh) * | 2015-05-20 | 2015-07-29 | 成都通甲优博科技有限责任公司 | 一种基于移动终端的眼镜虚拟试戴方法和系统 |
US20170372510A1 (en) * | 2016-06-27 | 2017-12-28 | Robert Bosch Gmbh | Systems and methods for dynamic occlusion handling |
CN107492001A (zh) * | 2017-05-17 | 2017-12-19 | 成都通甲优博科技有限责任公司 | 虚拟眼镜试戴方法、装置及服务终端 |
CN107498846A (zh) * | 2017-09-20 | 2017-12-22 | 厦门云镜视界设计有限公司 | 一种基于3d模型的眼镜制作方法 |
Non-Patent Citations (2)
Title |
---|
FENG, YQ等: "《Three Dimensional Image Reconstruction Based on a Wide-field Optical Coherence Tomography System》", 《INTERNATIONAL SYMPOSIUM ON PHOTONICS AND OPTOELECTRONICS 2014》 * |
孙振海等: "《Delphi中OpenGL三维仿真开发环境设计与应用》", 《新余高专学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109035375B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104008569B (zh) | 一种基于深度视频的3d场景生成方法 | |
US8571304B2 (en) | Method and apparatus for generating stereoscopic image from two-dimensional image by using mesh map | |
WO2017092303A1 (zh) | 虚拟现实场景模型建立方法及装置 | |
US9106906B2 (en) | Image generation system, image generation method, and information storage medium | |
CN104899563A (zh) | 一种二维人脸关键特征点定位方法及系统 | |
CN102186067B (zh) | 一种图像帧的传输方法和装置、显示方法和系统 | |
CN103413353B (zh) | 一种资源展示方法、装置和终端 | |
CN103051908A (zh) | 一种基于视差图的空洞填充装置 | |
CN107451952A (zh) | 一种全景视频的拼接融合方法、设备以及系统 | |
CN111275801A (zh) | 一种三维画面渲染方法及装置 | |
CN102427542A (zh) | 一种立体图像处理方法、图像处理装置和相应的终端设备 | |
CN109816763A (zh) | 一种图形渲染方法 | |
CN106371834A (zh) | 一种弹幕数据的显示方法和装置 | |
CN107831895A (zh) | 闹钟控制方法、装置及终端 | |
CN104299143A (zh) | 虚拟试戴方法及装置 | |
KR20190134715A (ko) | 전자 디스플레이 앞에 또는 위에 투사한 것처럼 보이는 가상의 3차원 이미지를 생성하는 시스템, 방법 및 소프트웨어 | |
CN108228121A (zh) | 一种浏览器分屏的方法、装置及移动终端 | |
CN103731657B (zh) | 一种对dibr算法处理后的含有空洞影像的空洞填充处理方法 | |
CN109224448A (zh) | 一种流光渲染的方法和装置 | |
CN109035375A (zh) | 一种基于OpenGL的3D眼镜渲染方法及其系统 | |
CN105072433A (zh) | 应用于头跟踪虚拟现实系统的感知深度映射方法 | |
CN108769644B (zh) | 一种基于深度学习的双目动画风格化渲染方法 | |
CN105389847A (zh) | 一种3d场景的绘制系统及方法、终端 | |
CN108510433A (zh) | 空间展示方法、装置及终端 | |
TWI517667B (zh) | 將2d影像轉換為3d影像之裝置與方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |