当前位置: 首页 > 专利查询>欧剑专利>正文

一种将普通3D程序转换成VR/XR扩展现实程序的方法技术

技术编号:38208088 阅读:8 留言:0更新日期:2023-07-21 16:57
本发明专利技术公开了一种将普通3D程序转换成VR/XR扩展现实程序的方法,所述方法如下:1、检测目标3D应用程序的类型;2、获取3D应用程序中存储虚拟摄像机的内存地址,将内存地址表转换成虚拟摄像机对象物体;3、在每一次渲染的循环函数中,操作虚拟摄像机进行场景渲染;4、建立一个新的虚拟摄像机,给其绑定材质程序,将渲染图像渲染到VR或者XR设备特定的显示缓冲区,并完成透视矫正;5、将原3D应用程序的指令操作映射到VR/XR的交互手柄上,实现对虚拟场景的交互操作;6、将程序编译成动态链接库文件,使用动态链接库注入程序实现VR/XR场景的渲染。该方法可以将普通3D图形程序直接转换成VR/XR应用程序。用程序。用程序。

【技术实现步骤摘要】
一种将普通3D程序转换成VR/XR扩展现实程序的方法


[0001]本专利技术涉及一种3D程序的转换方法,具体涉及一种将普通3D程序转换成VR/XR扩展现实程序的方法。

技术介绍

[0002]VR是虚拟现实,通常使用沉浸式虚拟现实头盔观看沉浸式的虚拟现实内容。虚拟显示内容有两种,第一种是720度视场角的图像视频内容,这种内容通常是通过包裹在一个球形网格模型上,观察者的视点落在球心位置,观察者转动头部,在头盔内就会看到不同视角的画面。第二种是通过虚拟摄像机动态生成场景内容,六自由度传感器会将观察者头部位姿信息传递给虚拟摄像机,虚拟摄像机渲染该位姿下的3D场景并在头盔内观看到该视角的虚拟图像。
[0003]XR是扩展现实,通常是用沉浸式LED环境呈现出虚拟场景,人可以不用佩戴头盔就能够获得身临其境的感觉,其内容生产方式与VR类似,一种是720度影片,一种是根据观察者的视点动态生成虚拟场景。在第二种方法中,通常是利用视点跟踪和视点透视矫正的方法对虚拟场景进行投影,以获得最佳观看效果。
[0004]VR/XR程序都需要开发人员使用专用的SDK(软件开发工具包)开发,不同的头盔,不同显示形状的LED都会对应不同的SDK或者不同的SDK设置,难以普及。
[0005]目前大部分的3D程序(3D游戏、虚拟仿真软件、3D互动展示软件)都不能直接在VR/XR设备上运行,其中关键的原因在于3D程序中的虚拟摄像机的视场角通常只有一个,视场角在120度以内,不能提供360视场角,而且这些3D程序不能够完成视点跟踪和透视矫正,所以画面即使显示在VR/XR设备上,也是扭曲变形的。

技术实现思路

[0006]针对目前开发VR/XR 3D应用程序只能使用专用SDK进行开发的问题,本专利技术提供了一种将普通3D程序转换成VR/XR扩展现实程序的方法。该方法能够将已经编译好的3D图形类型的可执行APP文件转换成具有720度视场角(水平360度垂直360度)的互动3D场景程序,可用于跟虚拟现实领域相关的虚拟仿真程序应用开发,使开发人员无需考虑终端设备的类型(头盔VR、XR),能够在终端设备中直接运行并呈现出沉浸式的显示效果。
[0007]本专利技术的目的是通过以下技术方案实现的:
[0008]一种将普通3D程序转换成VR/XR扩展现实程序的方法,包括如下步骤:
[0009]步骤1、检测目标3D应用程序的类型;
[0010]步骤2、通过修改器方法,获取3D应用程序中存储虚拟摄像机的内存地址,并解析摄像机对象类型,使用C++或者C#将内存地址表转换成可以操作的虚拟摄像机对象物体,通过内存地址的指针访问虚拟摄像机的参数;
[0011]步骤3、在每一次渲染的循环函数中,操作虚拟摄像机,设定其视场角为90度,分别朝向量方向(1,0,0)、(

1,0,0)、(0,0,1)、(0,0,

1)、(0,1,0)和(0,

1,0)进行场景渲染,其
渲染图像分别是R1、R2、R3、R4、R5、R6;
[0012]步骤4、利用C++或者C#建立一个新的虚拟摄像机,给其绑定一个cg/HLSL/GLSL材质程序,将R1、R2、R3、R4、R5、R6根据用户的视点位姿参数,渲染到VR或者XR设备特定的显示缓冲区,并完成透视矫正;
[0013]步骤5、将原3D应用程序的指令操作通过键盘映射映射到VR/XR的交互手柄上,实现对虚拟场景的交互操作;
[0014]步骤6、将程序编译成动态链接库文件,使用动态链接库注入程序实现VR/XR场景的渲染。
[0015]相比于现有技术,本专利技术具有如下优点:
[0016]1、3D应用程序在编译好以后,里面的虚拟相机以及虚拟相机的数量已经被程序固化,无法调整其视角以及3D场景渲染的方式。而本专利技术则可以通过动态链接库注入的方式,在显示芯片层面对虚拟相机进行操作,调整虚拟相机的视场角和数量,并根据终端设备的类型完成视点跟踪和透视矫正,使设备上呈现出沉浸的VR画面,从而实现普通3D应用程序转化成VR/XR程序。
[0017]2、利用本专利技术转换方法开发的播放器,能够将已经编译好的3D程序(exe apk app)直接在VR/XR设备上运行,并且还原其720度的观察画面。通过此技术,可以将已有的大量3D应用直接转换成VR/XR应用。
[0018]3、本专利技术的转换方法可以将普通3D图形程序如游戏、虚拟仿真应用都直接转换成VR/XR应用程序;分辨率比原有3D图形程序更大,交互性和沉浸性更强;无需要考虑终端设备的类型,能够基于当前设备情况完成自动适配。
附图说明
[0019]图1为转换前的3D游戏画面;
[0020]图2为转换后在XR中的3D游戏画面;
[0021]图3为修改器加载器的类实现。
具体实施方式
[0022]下面结合附图对本专利技术的技术方案作进一步的说明,但并不局限于此,凡是对本专利技术技术方案进行修改或者等同替换,而不脱离本专利技术技术方案的精神和范围,均应涵盖在本专利技术的保护范围中。
[0023]本专利技术提供了一种将普通3D程序转换成VR/XR扩展现实程序的方法,所述方法包括如下步骤:
[0024]1、检测目标3D应用程序的类型:3D应用程序分成3大类:Unity引擎开发、Unreal Engine开发以及其他使用图形API(directX OpenGl),根据不同3D应用程序会使用不同的应用程序API接口方法。
[0025]2、通过修改器方法,获取3D应用程序中存储虚拟摄像机的内存地址,并解析摄像机对象类型,使用C++或者C#将内存地址表转换成可以操作的虚拟摄像机对象物体。这样,就可以通过内存地址的指针访问虚拟摄像机的参数。
[0026]3、在每一次渲染的循环函数中,操作虚拟摄像机,设定其视场角为90度,分别朝向
量方向(1,0,0)、(

1,0,0)、(0,0,1)、(0,0,

1)、(0,1,0)和(0,

1,0)进行场景渲染,其渲染图像分别是R1、R2、R3、R4、R5、R6;
[0027]4、利用C++或者C#建立一个新的虚拟摄像机,给其绑定一个cg/HLSL/GLSL材质程序,该CG材质程序的作用是将R1、R2、R3、R4、R5、R6根据用户的视点位姿参数,渲染到VR或者XR设备特定的显示缓冲区,并完成透视矫正;
[0028]5、将原3D应用程序的指令操作通过键盘映射如WM_MESSAGE映射到VR/XR的交互手柄上,实现对虚拟场景的交互操作。
[0029]6、如果3D应用程序存在鼠标操作,那么则需要将鼠标的输入信息转换成基于视点位置的视线信息,映射到VR/XR的交互手柄上,实现虚拟鼠标操作。
[0030]7、将程序编译成动态链接库文件,使用动态链接库注入程序实现VR/XR场景的渲染。
[0031]实施例:
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种将普通3D程序转换成VR/XR扩展现实程序的方法,其特征在于所述方法包括如下步骤:步骤1、检测目标3D应用程序的类型;步骤2、通过修改器方法,获取3D应用程序中存储虚拟摄像机的内存地址,并解析摄像机对象类型,使用C++或者C#将内存地址表转换成可以操作的虚拟摄像机对象物体,通过内存地址的指针访问虚拟摄像机的参数;步骤3、在每一次渲染的循环函数中,操作虚拟摄像机,设定其视场角为90度,分别朝向量方向(1,0,0)、(

1,0,0)、(0,0,1)、(0,0,

1)、(0,1,0)和(0,

1,0)进行场景渲染,其渲染图像分别是R1、R2、R3、R4、R5、R6;步骤4、利用C++或者C#建立一个新的虚拟摄像机,给其绑定一个cg/HLS...

【专利技术属性】
技术研发人员:欧剑
申请(专利权)人:欧剑
类型:发明
国别省市:

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

1