基于osg的裸眼3d交互方法
【技术领域】
[0001]本发明涉及裸眼3D显示技术领域,具体涉及一种基于0SG的裸眼3D交互方法。
【背景技术】
[0002]裸眼3D显示技术,是不需要佩戴辅助设备(如眼镜或者头盔等)的一种显示技术,它在航空航天、军事、医学、广告设计和娱乐互动等领域有着广泛的应用。
[0003]0SG,全称OpenSceneGraph,使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(mi dd 1 eware)为应用软件提供了各种高级清染特性,10,以及空间结构组织函数;而更低层次的OpenGL硬件抽象层(HAL)实现了底层硬件显示的驱动。
【发明内容】
[0004]本发明克服了现有技术的不足,提供一种基于0SG的裸眼3D交互方法,用于增强0SG在虚拟交互时的沉浸感和体验感。
[0005]考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:
[0006]一种基于OSG的裸眼3D交互方法,它包括:
[0007]采用0SG开发3D场景,虚拟出多个具有视差的3D图像;
[0008]利用基于OpenGL的裸眼3D合成算法嵌入到0SG中将所述多个具有视差的3D图像合成;
[0009]将0SG普通3D图像输出修改成为裸眼3D合成图像输出,并调节相机参数,用于最终合成裸眼3D图像的测试或效果调整。
[0010]为了更好地实现本发明,进一步的技术方案是:
[0011]根据本发明的一个实施方案,它包括以下步骤:
[0012]第一步,初始化0SG配置,利用CMake工具将0SG源码生成可用的调用0SG库所需的相关文件,同时进行环境变量的设置;
[0013]第二步,创建0SG项目,加载资源文件至项目中,基于0SG进行3D场景的开发;
[0014]第三步,创建viewer,以及分别创建SceneCamera和DisPlayCamera并将其加载到viewer中,由SceneCamera虚拟出多个具有视差的普通3D图像;
[0015]第四步,将SceneCamera虚拟出的多个具有视差的普通3D图像存于buffer内;
[0016]第五步,利用OpenGLAPI函数,编写裸眼3D合成算法,获取多个具有视差的3D图像buffer;
[0017]第六步,将裸眼3D算法合成的裸眼3D图像输出到DisPlayCamera上;
[0018]第七步,将裸眼3D图像输出相机DisPlayCamera加载到viewer内,并且设置为主要输出相机;
[0019]第八步,裸眼3D显示终端调试,以确保裸眼3D的图像效果达到最佳。
[0020]本发明还可以是:
[0021]根据本发明的另一个实施方案,所述相机参数包括相机间距和相机焦距。
[0022]与现有技术相比,本发明的有益效果之一是:
[0023]本发明的一种基于0SG的裸眼3D交互方法,通过虚拟多个具有视差的摄像机获得视差图像,利用裸眼3D算法合成最终输出到裸眼3D显示终端,增强了 0SG在虚拟交互时的沉浸感、体验感和刺激感,将裸眼3D与工业仿真、数字城市等领域广泛使用的0SG技术相结合,进一步扩大了裸眼3D显示的应用范围。
【附图说明】
[0024]为了更清楚的说明本申请文件实施例或现有技术中的技术方案,下面将对实施例或现有技术的描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅是对本申请文件中一些实施例的参考,对于本领域技术人员来讲,在不付出创造性劳动的情况下,还可以根据这些附图得到其它的附图。
[0025]图1示出了根据本发明一个实施例的基于0SG的裸眼3D交互方法的流程示意图。
[0026]图2示出了本发明的另一个示意图。
【具体实施方式】
[0027]下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
[0028]本发明解决上述技术问题所采用的技术方案是:创建虚拟摄像机虚拟多个具有视差的普通3D图像;基于OpenGL裸眼3D图像合成算法;修改0SG普通3D图像输出为裸眼3D输出;通过调整相机间距和焦距两个参数在裸眼3D显示终端上进行不断测试效果。
[0029]一种基于0SG的裸眼3D交互方法,包括:基于0SG的普通3D场景搭建;,分别创建SceneCamera和DisPlayCamera分别为普通3D摄像机和最终裸眼3D输出摄像机;根据SceneCamera虚拟多个具有视差的场景3D图像;调用OpenGL API,编写裸眼3D合成图像算法,设置相应的裸眼3D参数;输出裸眼3D合成图像到裸眼3D显示终端。
[0030]下面结合附图及实施例对本发明的方案作更进一步的描述:
[0031]如图1所示,本例中的实现裸眼3D动画实时制作的方法包括以下步骤:
[0032]第一步,初始化0SG配置。利用CMake工具将0SG源码生成可用的调用0SG库所需的相关文件,同时进行环境变量等设置。
[0033]第二步,创建0SG项目,加载贴图、模型等资源文件。
[0034]第三步,基于0SG开发主要3D场景。建立0SG项目,进行相关的0SG项目配置。然后加载相应的贴图、模型至资源文件到项目中,基于0SG进行3D场景的开发。
[0035]第三步,创建viewer,同时分别创建SceneCamera和DisPlayCamera,加载到viewer中。为了虚拟多个具有视差的摄像机和区分裸眼3D输出图像和普通3D输出图像,分别创建SceneCamera和DisPlayCamera,后者作为裸眼3D输出图像。
[0036]第四步,由SceneCamera虚拟出多个具有视差的普通3D图像,存于buffer内,同时相机间距和焦距的参数设置为m和η。
[0037]如图2所示,m为相机间距,η为相机的焦距。参数在程序运行时可以进行调整,用于最终合成裸眼3D图像的测试和效果调整。
[0038]第五步,获取多个具有视差的3D图像buffer,利用OpenGL API函数,编写裸眼3D合成算法。多个具有视差的3D图像buf f er来自第四步SceneCamera中生成的buf f er。
[0039]第六步,将裸眼3D算法合成的裸眼3D图像输出到DisPlayCamera上。将0SG的普通3D输出Camera替换为已经设置好的裸眼3D图像输出相机DisPlayCamera,即把DisPlayCamera加载到viewer中并设置为主输出Camera。同时,DisPlayCamera为图像进行输出的载体。
[0040]第七步,将D将0SG普通3D图像的输出窗口设置裸眼3D图像输出。裸眼3D图像输出相机DisPlayCamera加载到viewer内,并且设置为主要输出相机。同时,从SceneCamera到DisPlayCamera的输出均是单向进行的,因此最终的输出图像不会对0SG普通3D场景产生其他影响。
[0041 ] 第八步,裸眼3D显示终端调试。不同尺寸和参数的裸眼3D显示终端在显示时会有所差异。通过不断调整机间距和焦距的参数m和n,观察裸眼3D显示终端上的实际效果,并且不断调整零平面和焦距的参数以达到最佳观看效果。
[0042]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分相互参见即可。
[0043]在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”、等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。
[0044]尽管这里参照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开和权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。
【主权项】
1.一种基于OSG的裸眼3D交互方法,其特征在于它包括: 采用0SG开发3D场景,虚拟出多个具有视差的3D图像; 利用基于OpenGL的裸眼3D合成算法嵌入到0SG中将所述多个具有视差的3D图像合成; 将0SG普通3D图像输出修改成为裸眼3D合成图像输出,并调节相机参数,用于最终合成裸眼3D图像的测试或效果调整。2.根据权利要求1所述的基于0SG的裸眼3D交互方法,其特征在于它包括以下步骤: 第一步,初始化OSG配置,利用CMake工具将OSG源码生成可用的调用OSG库所需的相关文件,同时进行环境变量的设置; 第二步,创建0SG项目,加载资源文件至项目中,基于0SG进行3D场景的开发; 第三步,创建viewer,以及分别创建SceneCamera和DisPlayCamera并将其加载到viewer中,由SceneCamera虚拟出多个具有视差的普通3D图像; 第四步,将SceneCamera虚拟出的多个具有视差的普通3D图像存于buf f er内; 第五步,利用OpenGL API函数,编写裸眼3D合成算法,获取多个具有视差的3D图像buffer; 第六步,将裸眼3D算法合成的裸眼3D图像输出到DisPlayCamera上; 第七步,将裸眼3D图像输出相机DisPlayCamera加载到viewer内,并且设置为主要输出相机; 第八步,裸眼3D显示终端调试,以确保裸眼3D的图像效果达到最佳。3.根据权利要求1所述的基于0SG的裸眼3D交互方法,其特征在于所述相机参数包括相机间距和相机焦距。
【专利摘要】本发明公开了一种基于OSG的裸眼3D交互方法,采用OSG开发3D场景,虚拟出多个具有视差的3D图像;利用基于OpenGL的裸眼3D合成算法嵌入到OSG中将所述多个具有视差的3D图像合成;将OSG普通3D图像输出修改成为裸眼3D合成图像输出,并调节相机参数,用于最终合成裸眼3D图像的测试或效果调整。本发明增强了OSG在虚拟交互时的沉浸感、体验感和刺激感,将裸眼3D与工业仿真、数字城市等领域广泛使用的OSG技术相结合,扩大了裸眼3D显示的应用范围。
【IPC分类】H04N13/00, G06F3/01, G06F9/44, G06T17/00
【公开号】CN105491366
【申请号】CN201510908854
【发明人】宋文博, 沈季, 刘浩, 魏爽, 曾超, 贾利红
【申请人】四川长虹电器股份有限公司
【公开日】2016年4月13日
【申请日】2015年12月9日