首页 / 专利库 / 图形技术 / 光线跟踪 / 结合云端全局光照渲染的VR三维场景立体画面生成方法

结合端全局光照渲染的VR三维场景立体画面生成方法

阅读:651发布:2020-05-11

专利汇可以提供结合端全局光照渲染的VR三维场景立体画面生成方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种结合 云 端全局光照 渲染 的VR三维场景立体画面生成方法。本方法提出利用云端渲染生成立体画面的左眼子图,并根据左眼子图获得右眼子图的大量 像素 的 颜色 值,同时在云端渲染得到右眼子图的那些不能从左眼子图找到对应像素的像素颜色。本方法在 把立 体画面图像传送给用户时,只传送左眼子图以及右眼子图的那些不能在左眼子图中找到对应像素的像素颜色给用户,可减少在网络上传送的立体画面图像数据量。,下面是结合端全局光照渲染的VR三维场景立体画面生成方法专利的具体信息内容。

1.一种结合端全局光照渲染的VR三维场景立体画面生成方法,其特征在于:本方法的具体实现步骤如下:
1)本方法第一部分把VR三维场景模型从用户端VR应用程序加载到远程云端,具体步骤如下:
把用户端VR应用程序中的三维场景模型A001通过网络传送到远程云端,从而确保用户端VR应用程序和远程云端各有一份三维场景模型A001的拷贝;
2)本方法第二部分渲染VR三维场景的全局光照效果立体画面,具体步骤如下:
步骤Step201:用户端VR应用程序通过网络把当前观察参数对应的左右眼虚拟相机参数传送给远程云端;
步骤Step202:在用户端VR应用程序和远程云端中分别同时开始执行步骤Step202-1和步骤Step202-2;
步骤Step202-1:在用户端VR应用程序中,根据当前观察参数对应的左眼虚拟相机参数,利用光线投射技术,从左眼虚拟相机对应的视点位置发射穿过左眼虚拟相机的虚拟像素平面上的各个像素中心点的光线A002,计算光线A002与三维场景模型A001的几何对象的离左眼虚拟相机对应的视点最近的交点A003,记录交点A003在世界坐标系中的位置,交点A003是一个可视场景点;可视场景点与虚拟相机的虚拟像素平面上的像素一一对应;
步骤Step202-2:在远程云端中,执行如下操作:
步骤Step202-2-1:接收从用户端VR应用程序发来的当前观察参数对应的左右眼虚拟相机参数,根据左眼虚拟相机参数和三维场景模型A001,利用光线跟踪技术渲染三维场景的全局光照效果立体画面的左眼子图IML;在执行光线跟踪的过程中,记录从左眼虚拟相机对应的视点位置发射的穿过左眼虚拟相机的虚拟像素平面上的各个像素中心点的光线A004与三维场景模型A001的几何对象的离左眼虚拟相机对应的视点最近的交点A005在世界坐标系中的位置,交点A005是一个可视场景点;
步骤Step202-2-2:在远程云端中,创建一个包含MR行、NC列元素的二维数组Tag,MR表示右眼虚拟相机的虚拟像素平面上的像素行数,NC表示右眼虚拟相机的虚拟像素平面上的像素列数,二维数组Tag的元素与右眼虚拟相机的虚拟像素平面上的像素一一对应;把二维数组Tag的每个元素都初始化为0;二维数组Tag的元素的值用于标识右眼虚拟相机的虚拟像素平面上的对应像素的颜色值是否能从左眼子图IML投影获得;针对左眼虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
①计算像素Pix对应的可视场景点按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点位置A006;
②判断投影点位置A006是否落在右眼虚拟相机的虚拟像素平面上的某个像素矩形区域REG内,如果是,则转③,否则转⑤;
③计算像素矩形区域REG对应的像素在右眼虚拟相机的虚拟像素平面上的行号nRow和列号nCol;判断以像素Pix对应的可视场景点和右眼虚拟相机对应的视点为端点的线段A007与三维场景模型A001的几何对象之间是否无除线段A007的端点外的交点,如果是,则转④,否则转⑤;
④把二维数组Tag的第nRow行、第nCol列元素赋值为1;
⑤针对像素Pix的操作结束;
步骤Step202-2-3:在远程云端中,通过网络把左眼子图IML传送给用户端VR应用程序;
步骤Step202-2-4:在远程云端中,创建一个包含Num个元素的列表A009,列表A009的元素用于保存像素的颜色值,Num等于二维数组Tag的值为0的元素个数;令nR=1,nC=1,Idx=
1;
步骤Step202-2-5:如果二维数组Tag的第nR行、第nC列元素的值为0,则根据右眼虚拟相机参数和三维场景模型A001,利用光线跟踪技术渲染用右眼虚拟相机拍摄三维场景时的虚拟像素平面上的第nR行、第nC列像素对应的颜色值A008,把颜色值A008赋值给列表A009的第Idx个元素;令Idx=Idx+1;
步骤Step202-2-6:令nC=nC+1;如果nC≤NC,则转步骤Step202-2-5,否则转步骤Step202-2-7;
步骤Step202-2-7:令nR=nR+1,nC=1;如果nR≤MR,则转步骤Step202-2-5,否则转步骤Step202-2-8;
步骤Step202-2-8:在远程云端中,通过网络把列表A009传送给用户端VR应用程序;
步骤Step202-3:用户端VR应用程序执行步骤Step202-1结束,远程云端执行步骤Step202-2结束;
步骤Step202-4:用户端VR应用程序接收从远程云端发来的左眼子图IML和列表A009;
步骤Step202-5:在用户端VR应用程序中,创建一个左眼子图IML的拷贝副本作为初始的右眼子图IMR;在用户端VR应用程序中,创建一个包含MR行、NC列元素的二维数组Tag2,二维数组Tag2的元素与右眼虚拟相机的虚拟像素平面上的像素一一对应;把二维数组Tag2的每个元素都初始化为0;
步骤Step202-6:在用户端VR应用程序中,针对左眼虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
子步骤Ⅰ:计算像素Pix对应的可视场景点按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点位置A006;
子步骤Ⅱ:判断投影点位置A006是否落在右眼虚拟相机的虚拟像素平面上的某个像素矩形区域REG内,如果是,则转子步骤Ⅲ,否则转子步骤Ⅴ;
子步骤Ⅲ:计算像素矩形区域REG对应的像素在右眼虚拟相机的虚拟像素平面上的行号nRow和列号nCol;判断以像素Pix对应的可视场景点和右眼虚拟相机对应的视点为端点的线段A007与三维场景模型A001的几何对象之间是否无除线段A007的端点外的交点,如果是,则转子步骤Ⅳ,否则转子步骤Ⅴ;
子步骤Ⅳ:计算像素Pix在左眼虚拟相机的虚拟像素平面上的行号nr和列号nc;把二维数组Tag2的第nRow行、第nCol列元素赋值为1,把右眼子图IMR的第nRow行、第nCol列像素颜色设置为左眼子图IML的第nr行、第nc列像素的颜色值;
子步骤Ⅴ:针对像素Pix的操作结束;
步骤Step202-7:令IR=1,IC=1,idx=1;
步骤Step202-8:如果二维数组Tag2的第IR行、第IC列元素的值为0,则把列表A009第idx个元素保存的颜色值赋给右眼子图IMR的第IR行、第IC列像素;令idx=idx+1;
步骤Step202-9:令IC=IC+1;如果IC≤NC,则转步骤Step202-8,否则转步骤Step202-10;
步骤Step202-10:令IR=IR+1,IC=1;如果IR≤MR,则转步骤Step202-8,否则转步骤Step203;
步骤Step203:在用户端VR应用程序中,把左眼子图IML和右眼子图IMR显示在VR立体显示设备上;
当改变VR观看位置和方向后,更新观察参数对应的左右眼虚拟相机参数,然后再重新执行步骤Step201至步骤Step203可以实现VR三维场景立体画面的连续生成与显示;左眼虚拟相机的虚拟像素平面上的像素行数和右眼虚拟相机的虚拟像素平面上的像素行数相同;
左眼虚拟相机的虚拟像素平面上的像素列数和右眼虚拟相机的虚拟像素平面上的像素列数相同。

说明书全文

结合端全局光照渲染的VR三维场景立体画面生成方法

技术领域

[0001] 本发明属于虚拟三维场景立体画面渲染技术领域,涉及一种结合云端全局光照渲染的VR三维场景立体画面生成方法。

背景技术

[0002] 近年来,虚拟现实行业得到很大的发展,人们对虚拟现实产品的需求越来越强烈。虚拟三维场景立体画面渲染是虚拟现实中的关键技术。虚拟三维场景立体画面渲染对计算机硬件的要求比较高,为了使用虚拟现实产品,用户需要购买价格昂贵的专业图形计算机。
伴随着云计算技术的成熟,人们提出用云计算来实现虚拟三维场景立体画面渲染,以便让用户只花费很少的投资就可以使用虚拟现实产品。利用云端渲染技术可把虚拟三维场景画面渲染计算放在云端执行,并通过网络把渲染生成的画面传送给用户,从而让用户看到虚拟三维场景的画面图像。在云端渲染生成的立体画面需要通过网络传送给用户,受网络带宽限制,很明显减少立体画面图像的传送数据量可以提高用户虚拟现实体验的流畅感。
[0003] 为了增强体验效果,绝大多数虚拟现实应用都配备立体画面显示功能。当前,虚拟现实应用中的立体画面显示普遍采用双目立体显示方式,立体画面实际上包含左右眼两张子图。立体画面的左右眼子图尽管有差异,但却存在很明显的相似性。换句话说,立体画面的左右眼子图存在很强的相关性。因此,在通过网络传送立体画面时,没有必要分别单独传输左眼子图和右眼子图。在渲染立体画面时,可先渲染左眼子图,然后利用左右眼虚拟相机的空间位置关系,根据左眼子图获得右眼子图的许多像素颜色值。本发明提出利用云端渲染生成左眼子图,并根据左眼子图获得右眼子图的大量像素的颜色值,同时在云端渲染得到右眼子图的那些不能从左眼子图找到对应像素的像素颜色,另外只传送左眼子图以及右眼子图的那些不能在左眼子图中找到对应像素的像素颜色给用户,从而减少在网络上传送的立体画面图像数据量。

发明内容

[0004] 本发明的目的在于,提供一种结合云端全局光照渲染的VR三维场景立体画面生成方法,实现在云端渲染VR三维场景立体画面并传送给用户,最终在用户端重建完整的立体画面图像。
[0005] 本发明的技术方案是这样实现的:
[0006] 1)本方法第一部分把VR三维场景模型从用户端VR应用程序加载到远程云端,具体步骤如下:
[0007] 把用户端VR应用程序中的三维场景模型A001通过网络传送到远程云端,从而确保用户端VR应用程序和远程云端各有一份三维场景模型A001的拷贝。
[0008] 2)本方法第二部分渲染VR三维场景的全局光照效果立体画面,具体步骤如下:
[0009] 步骤Step201:用户端VR应用程序通过网络把当前观察参数对应的左右眼虚拟相机参数传送给远程云端;
[0010] 步骤Step202:在用户端VR应用程序和远程云端中分别同时开始执行步骤Step202-1和步骤Step202-2;
[0011] 步骤Step202-1:在用户端VR应用程序中,根据当前观察参数对应的左眼虚拟相机参数,利用光线投射技术,从左眼虚拟相机对应的视点位置发射穿过左眼虚拟相机的虚拟像素平面上的各个像素中心点的光线A002,计算光线A002与三维场景模型A001的几何对象的离左眼虚拟相机对应的视点最近的交点A003,记录交点A003在世界坐标系中的位置,交点A003是一个可视场景点;可视场景点与虚拟相机的虚拟像素平面上的像素一一对应;
[0012] 步骤Step202-2:在远程云端中,执行如下操作:
[0013] 步骤Step202-2-1:接收从用户端VR应用程序发来的当前观察参数对应的左右眼虚拟相机参数,根据左眼虚拟相机参数和三维场景模型A001,利用光线跟踪技术渲染三维场景的全局光照效果立体画面的左眼子图IML;在执行光线跟踪的过程中,记录从左眼虚拟相机对应的视点位置发射的穿过左眼虚拟相机的虚拟像素平面上的各个像素中心点的光线A004与三维场景模型A001的几何对象的离左眼虚拟相机对应的视点最近的交点A005在世界坐标系中的位置,交点A005是一个可视场景点;
[0014] 步骤Step202-2-2:在远程云端中,创建一个包含MR行、NC列元素的二维数组Tag,MR表示右眼虚拟相机的虚拟像素平面上的像素行数,NC表示右眼虚拟相机的虚拟像素平面上的像素列数,二维数组Tag的元素与右眼虚拟相机的虚拟像素平面上的像素一一对应;把二维数组Tag的每个元素都初始化为0;二维数组Tag的元素的值用于标识右眼虚拟相机的虚拟像素平面上的对应像素的颜色值是否能从左眼子图IML投影获得;针对左眼虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0015] ①计算像素Pix对应的可视场景点按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点位置A006;如图1所示,可视场景点P按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点为Qr;
[0016] ②判断投影点位置A006是否落在右眼虚拟相机的虚拟像素平面上的某个像素矩形区域REG内,如果是,则转③,否则转⑤;
[0017] ③计算像素矩形区域REG对应的像素在右眼虚拟相机的虚拟像素平面上的行号nRow和列号nCol;判断以像素Pix对应的可视场景点和右眼虚拟相机对应的视点为端点的线段A007与三维场景模型A001的几何对象之间是否无除线段A007的端点外的交点,如果是,则转④,否则转⑤;
[0018] ④把二维数组Tag的第nRow行、第nCol列元素赋值为1;
[0019] ⑤针对像素Pix的操作结束;
[0020] 步骤Step202-2-3:在远程云端中,通过网络把左眼子图IML传送给用户端VR应用程序;
[0021] 步骤Step202-2-4:在远程云端中,创建一个包含Num个元素的列表A009,列表A009的元素用于保存像素的颜色值,Num等于二维数组Tag的值为0的元素个数;令nR=1,nC=1,Idx=1;
[0022] 步骤Step202-2-5:如果二维数组Tag的第nR行、第nC列元素的值为0,则根据右眼虚拟相机参数和三维场景模型A001,利用光线跟踪技术渲染用右眼虚拟相机拍摄三维场景时的虚拟像素平面上的第nR行、第nC列像素对应的颜色值A008,把颜色值A008赋值给列表A009的第Idx个元素;令Idx=Idx+1;
[0023] 步骤Step202-2-6:令nC=nC+1;如果nC≤NC,则转步骤Step202-2-5,否则转步骤Step202-2-7;
[0024] 步骤Step202-2-7:令nR=nR+1,nC=1;如果nR≤MR,则转步骤Step202-2-5,否则转步骤Step202-2-8;
[0025] 步骤Step202-2-8:在远程云端中,通过网络把列表A009传送给用户端VR应用程序;
[0026] 步骤Step202-3:用户端VR应用程序执行步骤Step202-1结束,远程云端执行步骤Step202-2结束;
[0027] 步骤Step202-4:用户端VR应用程序接收从远程云端发来的左眼子图IML和列表A009;
[0028] 步骤Step202-5:在用户端VR应用程序中,创建一个左眼子图IML的拷贝副本作为初始的右眼子图IMR;在用户端VR应用程序中,创建一个包含MR行、NC列元素的二维数组Tag2,二维数组Tag2的元素与右眼虚拟相机的虚拟像素平面上的像素一一对应;把二维数组Tag2的每个元素都初始化为0;
[0029] 步骤Step202-6:在用户端VR应用程序中,针对左眼虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0030] ⑴计算像素Pix对应的可视场景点按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点位置A006;
[0031] ⑵判断投影点位置A006是否落在右眼虚拟相机的虚拟像素平面上的某个像素矩形区域REG内,如果是,则转⑶,否则转⑸;
[0032] ⑶计算像素矩形区域REG对应的像素在右眼虚拟相机的虚拟像素平面上的行号nRow和列号nCol;判断以像素Pix对应的可视场景点和右眼虚拟相机对应的视点为端点的线段A007与三维场景模型A001的几何对象之间是否无除线段A007的端点外的交点,如果是,则转⑷,否则转⑸;
[0033] ⑷计算像素Pix在左眼虚拟相机的虚拟像素平面上的行号nr和列号nc;把二维数组Tag2的第nRow行、第nCol列元素赋值为1,把右眼子图IMR的第nRow行、第nCol列像素颜色设置为左眼子图IML的第nr行、第nc列像素的颜色值;
[0034] ⑸针对像素Pix的操作结束;
[0035] 步骤Step202-7:令IR=1,IC=1,idx=1;
[0036] 步骤Step202-8:如果二维数组Tag2的第IR行、第IC列元素的值为0,则把列表A009第idx个元素保存的颜色值赋给右眼子图IMR的第IR行、第IC列像素;令idx=idx+1;
[0037] 步骤Step202-9:令IC=IC+1;如果IC≤NC,则转步骤Step202-8,否则转步骤Step202-10;
[0038] 步骤Step202-10:令IR=IR+1,IC=1;如果IR≤MR,则转步骤Step202-8,否则转步骤Step203;
[0039] 步骤Step203:在用户端VR应用程序中,把左眼子图IML和右眼子图IMR显示在VR立体显示设备上。
[0040] 当改变VR观看位置和方向后,更新观察参数对应的左右眼虚拟相机参数,然后再重新执行步骤Step201至步骤Step203可以实现VR三维场景立体画面的连续生成与显示。左眼虚拟相机的虚拟像素平面上的像素行数和右眼虚拟相机的虚拟像素平面上的像素行数相同。左眼虚拟相机的虚拟像素平面上的像素列数和右眼虚拟相机的虚拟像素平面上的像素列数相同。
[0041] 本发明的积极效果是:本方法能够利用云端计算能实现VR三维场景全局光照效果立体画面渲染,可在用户端计算能力不足的条件下,实现用户端VR三维场景的逼真立体显示。对于移动VR应用来说,移动VR观看设备的计算能力就比较弱,利用本方法可以通过云端的计算能力来保证渲染出逼真的立体画面。此外,由于本方法根据左眼子图获得右眼子图的绝大多数像素颜色值,因此右眼子图的绝大多数像素颜色值无需通过网络从远程云端传送给用户。本方法对右眼子图中的那些在左眼子图中找不到对应像素的像素进行了正常光线跟踪,因此能保证用户端VR应用程序最终能得到正确的右眼子图。附图说明
[0042] 图1为左右眼虚拟相机坐标系示意图;
[0043] 图2为虚拟相机的虚拟像素平面上的像素示意图。

具体实施方式

[0044] 为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。在本实施例中,考虑如下虚拟房间三维场景:在房间中放着1张桌子和1把椅子,桌子上放着香蕉、报纸、书籍等物品,三维场景中的所有几何对象都是纯漫反射材质,房间的天花板上有一个灯向下照射三维场景。
[0045] 本发明的技术方案是这样实现的:
[0046] 1)本方法第一部分把VR三维场景模型从用户端VR应用程序加载到远程云端,具体步骤如下:
[0047] 把用户端VR应用程序中的三维场景模型A001通过网络传送到远程云端,从而确保用户端VR应用程序和远程云端各有一份三维场景模型A001的拷贝。
[0048] 2)本方法第二部分渲染VR三维场景的全局光照效果立体画面,具体步骤如下:
[0049] 步骤Step201:用户端VR应用程序通过网络把当前观察参数对应的左右眼虚拟相机参数传送给远程云端;
[0050] 步骤Step202:在用户端VR应用程序和远程云端中分别同时开始执行步骤Step202-1和步骤Step202-2;
[0051] 步骤Step202-1:在用户端VR应用程序中,根据当前观察参数对应的左眼虚拟相机参数,利用光线投射技术,从左眼虚拟相机对应的视点位置发射穿过左眼虚拟相机的虚拟像素平面上的各个像素中心点的光线A002,计算光线A002与三维场景模型A001的几何对象的离左眼虚拟相机对应的视点最近的交点A003,记录交点A003在世界坐标系中的位置,交点A003是一个可视场景点;可视场景点与虚拟相机的虚拟像素平面上的像素一一对应;
[0052] 步骤Step202-2:在远程云端中,执行如下操作:
[0053] 步骤Step202-2-1:接收从用户端VR应用程序发来的当前观察参数对应的左右眼虚拟相机参数,根据左眼虚拟相机参数和三维场景模型A001,利用光线跟踪技术渲染三维场景的全局光照效果立体画面的左眼子图IML;在执行光线跟踪的过程中,记录从左眼虚拟相机对应的视点位置发射的穿过左眼虚拟相机的虚拟像素平面上的各个像素中心点的光线A004与三维场景模型A001的几何对象的离左眼虚拟相机对应的视点最近的交点A005在世界坐标系中的位置,交点A005是一个可视场景点;
[0054] 步骤Step202-2-2:在远程云端中,创建一个包含MR行、NC列元素的二维数组Tag,MR表示右眼虚拟相机的虚拟像素平面上的像素行数,NC表示右眼虚拟相机的虚拟像素平面上的像素列数,二维数组Tag的元素与右眼虚拟相机的虚拟像素平面上的像素一一对应;把二维数组Tag的每个元素都初始化为0;二维数组Tag的元素的值用于标识右眼虚拟相机的虚拟像素平面上的对应像素的颜色值是否能从左眼子图IML投影获得;针对左眼虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0055] ①计算像素Pix对应的可视场景点按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点位置A006;如图1所示,可视场景点P按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点为Qr;
[0056] ②判断投影点位置A006是否落在右眼虚拟相机的虚拟像素平面上的某个像素矩形区域REG内,如果是,则转③,否则转⑤;
[0057] ③计算像素矩形区域REG对应的像素在右眼虚拟相机的虚拟像素平面上的行号nRow和列号nCol;判断以像素Pix对应的可视场景点和右眼虚拟相机对应的视点为端点的线段A007与三维场景模型A001的几何对象之间是否无除线段A007的端点外的交点,如果是,则转④,否则转⑤;
[0058] ④把二维数组Tag的第nRow行、第nCol列元素赋值为1;
[0059] ⑤针对像素Pix的操作结束;
[0060] 步骤Step202-2-3:在远程云端中,通过网络把左眼子图IML传送给用户端VR应用程序;
[0061] 步骤Step202-2-4:在远程云端中,创建一个包含Num个元素的列表A009,列表A009的元素用于保存像素的颜色值,Num等于二维数组Tag的值为0的元素个数;令nR=1,nC=1,Idx=1;
[0062] 步骤Step202-2-5:如果二维数组Tag的第nR行、第nC列元素的值为0,则根据右眼虚拟相机参数和三维场景模型A001,利用光线跟踪技术渲染用右眼虚拟相机拍摄三维场景时的虚拟像素平面上的第nR行、第nC列像素对应的颜色值A008,把颜色值A008赋值给列表A009的第Idx个元素;令Idx=Idx+1;
[0063] 步骤Step202-2-6:令nC=nC+1;如果nC≤NC,则转步骤Step202-2-5,否则转步骤Step202-2-7;
[0064] 步骤Step202-2-7:令nR=nR+1,nC=1;如果nR≤MR,则转步骤Step202-2-5,否则转步骤Step202-2-8;
[0065] 步骤Step202-2-8:在远程云端中,通过网络把列表A009传送给用户端VR应用程序;
[0066] 步骤Step202-3:用户端VR应用程序执行步骤Step202-1结束,远程云端执行步骤Step202-2结束;
[0067] 步骤Step202-4:用户端VR应用程序接收从远程云端发来的左眼子图IML和列表A009;
[0068] 步骤Step202-5:在用户端VR应用程序中,创建一个左眼子图IML的拷贝副本作为初始的右眼子图IMR;在用户端VR应用程序中,创建一个包含MR行、NC列元素的二维数组Tag2,二维数组Tag2的元素与右眼虚拟相机的虚拟像素平面上的像素一一对应;把二维数组Tag2的每个元素都初始化为0;
[0069] 步骤Step202-6:在用户端VR应用程序中,针对左眼虚拟相机的虚拟像素平面上的每个像素Pix,做如下操作:
[0070] ⑴计算像素Pix对应的可视场景点按透视投影方式投影到右眼虚拟相机的虚拟像素平面上的投影点位置A006;
[0071] ⑵判断投影点位置A006是否落在右眼虚拟相机的虚拟像素平面上的某个像素矩形区域REG内,如果是,则转⑶,否则转⑸;
[0072] ⑶计算像素矩形区域REG对应的像素在右眼虚拟相机的虚拟像素平面上的行号nRow和列号nCol;判断以像素Pix对应的可视场景点和右眼虚拟相机对应的视点为端点的线段A007与三维场景模型A001的几何对象之间是否无除线段A007的端点外的交点,如果是,则转⑷,否则转⑸;
[0073] ⑷计算像素Pix在左眼虚拟相机的虚拟像素平面上的行号nr和列号nc;把二维数组Tag2的第nRow行、第nCol列元素赋值为1,把右眼子图IMR的第nRow行、第nCol列像素颜色设置为左眼子图IML的第nr行、第nc列像素的颜色值;
[0074] ⑸针对像素Pix的操作结束;
[0075] 步骤Step202-7:令IR=1,IC=1,idx=1;
[0076] 步骤Step202-8:如果二维数组Tag2的第IR行、第IC列元素的值为0,则把列表A009第idx个元素保存的颜色值赋给右眼子图IMR的第IR行、第IC列像素;令idx=idx+1;
[0077] 步骤Step202-9:令IC=IC+1;如果IC≤NC,则转步骤Step202-8,否则转步骤Step202-10;
[0078] 步骤Step202-10:令IR=IR+1,IC=1;如果IR≤MR,则转步骤Step202-8,否则转步骤Step203;
[0079] 步骤Step203:在用户端VR应用程序中,把左眼子图IML和右眼子图IMR显示在VR立体显示设备上。
[0080] 当改变VR观看位置和方向后,更新观察参数对应的左右眼虚拟相机参数,然后再重新执行步骤Step201至步骤Step203可以实现VR三维场景立体画面的连续生成与显示。左眼虚拟相机的虚拟像素平面上的像素行数和右眼虚拟相机的虚拟像素平面上的像素行数相同。左眼虚拟相机的虚拟像素平面上的像素列数和右眼虚拟相机的虚拟像素平面上的像素列数相同。
[0081] 在本实施例中,MR=768,NC=1024。在步骤Step202-6的⑴中,像素Pix对应的可视场景点在步骤Step202-1中计算得到。
[0082] 虚拟相机的虚拟像素平面上的像素为一个矩形区域,如图2所示,其中的每个矩形方格就代表一个像素。虚拟相机的虚拟像素平面上的所有像素组成一个大矩形区域,可称为成像区域;图2中的矩形A1B1C1D1就是图1中的矩形A1B1C1D1,矩形A1B1C1D1就是成像区域。根据左眼虚拟相机对应的视点位置E1、前向观察方向w1、向上方向u1、平视场半β1、垂直视场半角α1、虚拟像素平面到视点位置E1的距离df等参数,可计算矩形A1B1C1D1的四个顶点在左眼虚拟相机坐标系中的空间位置。前向观察方向w1和矩形A1B1C1D1平面垂直,线段A1D1和向上方向u1平行。根据左眼虚拟相机的虚拟像素平面上的像素行数和像素列数可以确定图2所示的每个矩形方格的左上角顶点和右下角顶点的位置。可以用相同的方法确定右眼虚拟相机的虚拟像素平面上的各个像素对应的矩形方格的左上角顶点和右下角顶点的位置。
图2所示的各矩形方格完全由其左上角顶点和右下角顶点位置确定。虚拟相机的位置可以看成是虚拟观察点(即视点)。J.F.Hughes等撰写的由Addison-Wesley公司于2014年出版的《Computer Graphics:Principles and Practice,3rd Edition》的图13.2中的“Location”就是虚拟相机对应的视点。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈