基于Unity3D引擎实现裸眼3D显示的方法技术

技术编号:12258284 阅读:86 留言:0更新日期:2015-10-28 20:49
本发明专利技术公开了一种基于Unity3D引擎实现裸眼3D显示的方法,涉及3D显示领域。包括:利用Unity3D模型接口加载制作好的模型、音效等场景文件;设置多个位于同一水平线上摄像机,调整摄像机间的间距;调整摄像机的近平面,加入图像后处理算法,编写shader将这些摄像机的图像进行合成。利用游戏引擎实现裸眼3D显示功能,便可以极大地扩展游戏引擎软件和裸眼3D显示技术这两者的应用领域,且可以将已有的基于游戏引擎完成的游戏增加3D处理模块便可实现裸眼3D显示,从而在很大程度上降低了裸眼3D游戏内容的制作成本。

【技术实现步骤摘要】

本专利技术涉及3D显示领域,具体涉及一种基于Unity3D引擎实现裸眼3D显示的方法
技术介绍
裸眼3D显示是不需要佩戴辅助设备(如红蓝、偏振、快门眼镜)的一种显示技术,它在广告、军事、医学和娱乐互动等领域有着广泛的应用背景。目前裸眼3D显示内容仅局限于视频或是图片格式,内容形式单一。为了丰富裸眼3D的显示内容,也为消费者开启全方位的裸眼3D娱乐生活,将游戏软件应用在裸眼3D电视上将是裸眼3D显示的一个发展趋势,同时也提升了游戏软件的视觉体验。目前,3D游戏主要是通过用3DMAX、MAYA等建模软件构建模型以及利用Unity3D、cocos3d、虚幻等游戏引擎开发出来的。本专利技术主要是基于Unity3D引擎来实现游戏内容在裸眼3D显示终端上的显示。Unity3D是Unity Technologies公司开发的一款3D游戏引擎,是一款专门用来制作游戏场景、建筑设计、动画展示的软件。这款引擎因其强大的跨平台开发特性、绚丽的3D渲染效果以及自由丰富的人机交互功能而闻名出众。其跨平台开发特性可以节省开发时间,加快游戏开发进度。因为平台之间的差异较大,比如屏幕尺寸、操作方式、运行环境等的不同会给开发者造成巨大麻烦,而Unity3D的跨平台特性恰能省去开发者在不同的平台之间的移植开发工作。
技术实现思路
本专利技术的目的是针对上述
技术介绍
中裸眼3D显示的局限,本专利技术提供一种基于Unity3D引擎来实现游戏内容在裸眼3D显示终端上的显示方法。为了达到上述的技术效果,本专利技术采取以下技术方案:基于Unity3D引擎实现裸眼3D显示的方法,包括以下步骤:S1、基于Unity3D编辑界面,摆放游戏对象,设置游戏场景;S2、在上述游戏场景中设置多个有视差的摄像机,所述摄像机位于同一水平线上;S3、在上述游戏场景中创建一个零平面,该零平面作为参考平面,所述摄像机的焦点均设置在所述零平面上;S4、创建多个Render Texture,所述Render Texture的个数与所述摄像机个数相同,Render Texture用于保存摄像机内容;S5、获得Render Texture保存的内容后,经过光栅合成算法处理,显示合成过后的图像。进一步的技术方案是:所述摄像机与Render Texture的个数都是八个。进一步的技术方案是:步骤S2中,位于同一水平线上的相邻摄像机的间距为0.012m~0.018m,优选0.015m。进一步的技术方案是:步骤S3中,摄像机的焦距为16.00m~24.00m,优选20.00m。进一步的技术方案是:步骤S5中,光栅合成算法处理,是采用视点数为8的柱镜光栅。进一步的技术方案是:步骤S5中,光栅合成算法处理,是采用编写shader算法实现多视点图像合成。下面对本专利技术的原理作进一步说明:游戏软件在普通2D显示设备上的应用现在已经较为成熟,它通过动画软件构成三维数字模型,产生逼真的虚拟环境,给用户一种立体的虚拟娱乐游戏的体验。游戏软件中的三维模型在裸眼3D电视上显示的立体效果和普通2D终端显示的3D效果是有区别的。普通2D终端上显示的3D场景是在平面里显示三维图形,不像现实世界里的真实三维空间,不会有真实的距离空间,只是看起来很像真实世界。而裸眼3D电视利用柱状透镜(Lenticular Lens)的技术,也就是贴在屏幕前面的一层光栅。可以达到一种相对于屏幕出屏和入屏的效果。通常为了获得更好的立体效果,往往采用多幅视差图像进行合成,观看者在不同观看位置只要看到其中的两幅图像就可以在大脑皮层中产生立体视觉。为了达到相对于电视屏幕出屏和入屏的真实距离空间感。裸眼3D通常需要多幅有视差(像素偏移)的图像,本实验采用的是视点数为8的柱镜光栅来实现的立体效果,最后将这8副有视差的图像通过复杂的光栅合成算法合成出一幅来实现。如果想达到A物体出屏的效果就需要这八幅图像中的A物体依次是向右偏移,我们叫这为正视差。如果想达到B物体入屏的效果就需要这八幅图像中的B物体依次是向左偏移,我们叫这为负视差。本专利技术与现有技术相比,具有以下的有益效果:1、本专利技术利用了第三方引擎强大的制作、渲染、处理功能,在实现了普通游戏制作技术的基础上将普通游戏的显示效果升级为裸眼3D的显示效果,可以作为一款裸眼3D游戏插件应用在Unity3D或是虚幻4等等第三方引擎之上,将现有的游戏升级为裸眼3D游戏显示效果。2、本专利技术通过利用第三方游戏引擎的Render Texutre功能,实现了暂时保存多个摄像机内容,而不是立刻马上输出到显示器上,通过后续合成算法处理之后再输出到显示设备上。3、本专利技术为了实现游戏实时显示的要求,采用了可编程流水线技术将渲染、合成以及显示的全过程在GPU下完成。编写shader语言完成合成算法提高了数据计算速度,同时避免了数据在CPU、GPU之间的拷贝,极大的提高了软件执行效率,达到了实时显示以及交互操作的要求。4、本专利技术利用游戏引擎实现裸眼3D显示功能,便可以极大地扩展游戏引擎软件和裸眼3D显示技术这两者的应用领域,且可以将已有的基于游戏引擎完成的游戏增加3D处理模块便可实现裸眼3D显示,从而在很大程度上降低了裸眼3D游戏内容的制作成本,并且可以将游戏引擎丰富的交互功能移植到裸眼3D显示技术中来,并借助于游戏引擎强大的模型兼容能力丰富裸眼3D的显示内容及素材。具体实施方式下面结合本专利技术的实施例对本专利技术作进一步的阐述和说明。实施例:第一步:本专利技术以在Unity3D游戏引擎为平台,在Unity3D平台中摆放游戏对象,设置游戏场景。第二步:摆放八台有视差的立体摄像机。在Unity3D软件中,可以通过合理布局多台虚拟立体相机,对同一个场景进行同步拍摄来获得多幅视差图像。立体相机需按一定结构摆放来拍摄场景以获得合理的视差图像。系统可以产生八视点图像,并且提供了UI界面来调整摄像机的间距或是摄像机焦点的距离,以便可以达到用户满意的立体效果。本实施例中摄像机的间距设置为0.015米摄像机焦距设置为20.0米。第三步:创建零平面,实现八摄像机的焦点在零平面,从而实现在零平面之前的物体是出屏的,在零平面之后的物体是入屏的。第四步:在Unity3D中创建八个不同的Render Texture,分别保存八个不同摄像机内容,将摄像画面以Render Texture形式保存下来。为每台相机的目标贴图中加入渲染贴图本文档来自技高网...

【技术保护点】
基于Unity3D引擎实现裸眼3D显示的方法,其特征在于,包括以下步骤:S1、基于Unity3D编辑界面,摆放游戏对象,设置游戏场景;S2、在上述游戏场景中设置多个有视差的摄像机,所述摄像机位于同一水平线上;S3、在上述游戏场景中创建一个零平面,该零平面作为参考平面,所述摄像机的焦点均设置在所述零平面上;S4、创建多个Render Texture,所述Render Texture的个数与所述摄像机个数相同,Render Texture用于保存摄像机内容;S5、获得Render Texture保存的内容后,经过光栅合成算法处理,显示合成过后的图像。

【技术特征摘要】
1.基于Unity3D引擎实现裸眼3D显示的方法,其特征在于,包括以下步
骤:
S1、基于Unity3D编辑界面,摆放游戏对象,设置游戏场景;
S2、在上述游戏场景中设置多个有视差的摄像机,所述摄像机位于同一水
平线上;
S3、在上述游戏场景中创建一个零平面,该零平面作为参考平面,所述摄
像机的焦点均设置在所述零平面上;
S4、创建多个Render Texture,所述Render Texture的个数与所述摄像
机个数相同,Render Texture用于保存摄像机内容;
S5、获得Render Texture保存的内容后,经过光栅合成算法处理,显示
合成过后的图像。
2.根据权利要求1所述的基于Unity3D引擎实现裸眼3D显示的方法,其
特征在于:所述摄像机与Render Texture的个数都是八个。
3.根据权利要求1所述的基于Unity3D引擎实现裸眼3D显示的方法,其
特征在于...

【专利技术属性】
技术研发人员:沈季
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

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

1