基于Unity的渲染沉浸式内容的改良方法、装置和存储介质制造方法及图纸

技术编号:29936786 阅读:17 留言:0更新日期:2021-09-04 19:14
本发明专利技术涉及一种基于Unity的渲染沉浸式内容的改良方法、装置和存储介质,根据实际场景尺寸,获取相关参数,创建摄像机阵列,分别对应前、左、右、底,根据已知参数设置摄像机焦距,根据摄像机位置与对应屏幕的关系,计算摄像机的镜头偏移参数,得到最终正确的渲染画面。渲染分辨率与有效分辨率一致,能够渲染更高分辨率的沉浸式画面,保证最终呈现的沉浸式内容的细节,算法简单易懂,方便相关美术工作人员根据《裸眼3D沉浸式数字化样板间》的实际应用场地大小,更快的调节参数,配置软件适配内容到展示场地。提高渲染效率,降低硬件性能要求,有效降低费用投入。降低费用投入。降低费用投入。

【技术实现步骤摘要】
基于Unity的渲染沉浸式内容的改良方法、装置和存储介质


[0001]本专利技术涉及一种基于Unity的渲染沉浸式内容的改良方法、装置和存储介质。

技术介绍

[0002]在制作《裸眼3D沉浸式数字化样板间》数字内容的过程中,我们要利用到Cave折幕系统,对制作好的数字内容进行渲染展示,分为前视图画面、左视图画面、右视图画面以及底视图画面。
[0003]在实际的渲染过程中,用已知的插件的算法,每个对应画面的摄像机所渲染的画面远远大于实际沉浸式空间投射的画面大小,对于性能低下的配置往往无法正常运行,或因长时间的高负荷运算会导致相关软件的崩溃。
[0004]由于在实际引擎中摄像机的渲染分辨率要比实际场景中投射的画面大,在实际项目中要想得到较为清晰的分辨率画面,往往需要在引擎中渲染更大的分辨率图像,还要使用相关Shader进行画面切分,然后输出到现实的显示设备中,由于硬件及软件的一定限制,在极限情况下无法满足现有画面清晰度的要求。
[0005]例如:想要在一个4米*4米的投射画面区域投射4000*4000分辨率的画面,使用插件的算法,渲染时的画面分辨率为4000*7000,当前已知的算法方式会因摄像机与视口的远近、高度的不同,产生较大的分辨率变化。
[0006]摄像机离视口越远,则实际渲染分辨率与实际投射分辨率越接近,摄像机离视口越近,实际渲染分辨率与实际投射分辨率成反比。摄像机跟视口的左右关系也有关系,当摄像机在视口中心位置时,实际渲染分辨率与实际投射分辨率最接近,当向左右偏移时,偏移量越大则实际渲染分辨率越大,浪费的渲染分辨率越多。
[0007]现有技术(只针对4折幕裸眼3D沉浸式图像算法)缺点:实际渲染分辨率跟有效分辨率不一致,在特定情况下,实际渲染分辨率会极大,对渲染配置的要求较高,算法计算参数较多。

技术实现思路

[0008]为了解决上述技术问题,本专利技术提供一种基于Unity的渲染沉浸式内容的改良方法、装置和存储介质。
[0009]一种基于Unity的渲染沉浸式内容的改良方法,包括:根据实际场景尺寸,获取相关参数;创建摄像机阵列,分别对应前、左、右、底;根据所述相关参数设置摄像机焦距,摄像机焦距公式为:Focal Length = 摄像机到对应屏幕的垂直距离;根据摄像机位置与对应屏幕的关系,计算摄像机的镜头偏移参数,计算公式为:垂直偏移 = (屏幕高度/2
ꢀ‑ꢀ
摄像机高度)/屏幕高度;水平偏移 = (屏幕高度/2
ꢀ‑ꢀ
摄像机高度)/屏幕高度;
得到最终正确的渲染画面。
[0010]进一步地,所述相关参数包括:屏幕长、宽、高、观察点距离前屏距离、观察点底屏的垂直高度距离。
[0011]一种基于Unity的渲染沉浸式内容的改良装置,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的基于Unity的渲染沉浸式内容的改良方法。
[0012]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述的基于Unity的渲染沉浸式内容的改良方法。
[0013]本专利技术的技术效果包括:渲染分辨率与有效分辨率一致,能够渲染更高分辨率的沉浸式画面,保证最终呈现的沉浸式内容的细节,算法简单易懂,方便相关美术工作人员根据《裸眼3D沉浸式数字化样板间》的实际应用场地大小,更快的调节参数,配置软件适配内容到展示场地,提高渲染效率,降低硬件性能要求,有效降低费用投入。
附图说明
[0014]图1是标准沉浸式投影空间的示例图;图2是传统计算方式的示意图;图3是是基于Unity的渲染沉浸式内容的改良方法的流程图;图4是本专利技术提供的计算方式的示意图。
具体实施方式
[0015]本实施例中,一个标准沉浸式投影空间内,空间大小配置如下:前投影屏幕尺寸:4米*2.51米;左右投影屏幕尺寸:4米*2.51米;底部投影屏幕尺寸:4米*3米;观察点位置距前屏距离:3.5米;观察点高度:1.6米;示例图如图1所示。
[0016]传统计算方式,如图2所示:(1)根据实际场景尺寸,获取相关参数,如屏幕长、宽、高、观察点(摄像机)距离前屏距离、观察点底屏的垂直高度距离。
[0017](2)创建摄像机阵列,分别对应前、左、右、底。
[0018](3)计算摄像机视场角FOV,计算公式为:FOV = (atan(屏幕宽度/2+(abs相机与屏幕中心点的左右偏移量)) /屏幕距摄像机的距离 )*2。以前摄像为例,摄像机视场角为:FOV = (atan(400/2 + 0)/350)*2 = 59.4898;左右摄像机视场角为120.51;底摄像机视场角为:102.68。
[0019](4)计算完摄像机的视场角后,由此,可计算出前摄像机的渲染分辨率为4000*3200;左右摄像机的渲染分辨率7000*3200;底摄像机的渲染分辨率为4000*7000。
[0020](5)根据实际场景的尺寸大小,最终我们需求的分辨率大小分别为:前、左、右:4000*2510,底:4000*4000,根据摄像机参数及场景参数,计算裁切参数,然后对画面进行裁切,得到最终的投影画面。
[0021]本实施例提供一种基于Unity的渲染沉浸式内容的改良方法,如图3所示,包括:(1)根据实际场景尺寸,获取相关参数,本实施例中,相关参数包括:屏幕长、宽、高、观察点距离前屏距离、观察点底屏的垂直高度距离;
(2)创建摄像机阵列,分别对应前、左、右、底;(3)根据相关参数设置摄像机焦距,摄像机焦距公式为:Focal Length = 摄像机到对应屏幕的垂直距离;(4)根据摄像机位置与对应屏幕的关系,计算摄像机的镜头偏移参数(LensShift),计算公式为:LenShift_Y = (screenCenterPos.y

eyesPos.y) / screen.y即:垂直偏移 = (屏幕高度/2
ꢀ‑ꢀ
摄像机高度)/屏幕高度LenShift_X = (screenCenterPos.z

eyesPos.z) / screen.x即:水平偏移 = (屏幕高度/2
ꢀ‑ꢀ
摄像机高度)/屏幕高度在Unity引擎内的代码为:(这里以前摄像机为例)Vector3 screenFrontCenterPos=newVector3(0,screenFront.y/2,sceenLength);float eyesToScreenDis_Z = screenFrontCenterPos.z
ꢀ‑ꢀ
eyesPos.z;float eyesToScreenDis_Y = screenFrontCenterPos.y
ꢀ‑ꢀ
eyesPos.y;float eyesToScreenDis_X = eyesPos.x;float le本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Unity的渲染沉浸式内容的改良方法,其特征在于,包括:根据实际场景尺寸,获取相关参数;创建摄像机阵列,分别对应前、左、右、底;根据所述相关参数设置摄像机焦距,摄像机焦距公式为:Focal Length = 摄像机到对应屏幕的垂直距离;根据摄像机位置与对应屏幕的关系,计算摄像机的镜头偏移参数,计算公式为:垂直偏移 = (屏幕高度/2
ꢀ‑ꢀ
摄像机高度)/屏幕高度;水平偏移 = (屏幕高度/2
ꢀ‑ꢀ
摄像机高度)/屏幕高度;得到最终正确的渲染画面。2.根据权利要求1所述的基于Unity的渲染沉浸式内容的改良方法,其特...

【专利技术属性】
技术研发人员:陈梦龙陈英才李东马振江
申请(专利权)人:筑友建筑装饰装修工程有限公司
类型:发明
国别省市:

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

1