1.一种适用于虚拟漫游系统的实际与虚拟空间的映射方法,其特征是:包括以下步骤:
对给定的虚拟漫游场景,抽取其二维平面图,并为该二维平面图建立Voronoi图;
根据建立的Voronoi图,建立骨架路径;
根据输入的漫游路径的起始点,生成相应的骨架漫游路径,并进行路径的归并得到漫游路径;
将虚拟场景中的漫游路径映射为实际空间中的实际行走路径;获取实时追踪的使用者沿实际行走路径行走过程中的在物理空间中的空间位置及方向,利用位置逆映射算法实时计算使用者在虚拟空间中相应的空间位置及方向进行画面渲染;
将虚拟场景中的漫游路径映射为实际空间中的实际行走路径的具体过程为:在实际空间的边界内划一个虚拟边界,该虚拟边界到跟踪区域边界的距离为d,实际边界与虚拟边界间的空间为缓冲区;
用数组VPath[ ]存贮虚拟漫游路径,用数组RPath[ ]存放实际行走路径;
遍历VPath[ ]中的所有线段路径,每次取出前后相邻的两条路径curPath和nextPath,对于当前路径curPath,其长度为‖curPath‖;
遍历VPath[ ]中的所有路径,直到所有直线路径被映射为弧线并放入RPaht[ ]中;
根据人在实际空间中的位置,若使用者不在缓冲区边界或者内部,计算沿着该弧行走,用户在抵达缓冲区前可以前进的最大弧线距离||l||,如果||curPath||≤||l||,将该弧线放入RPath[ ];如果||curPath||>||l||,则当前路径curPath需要被分成两段,一段长度为||l||,一段为||curPath||‑||l||,更新VPath[ ]并将该弧线放入RPath[ ];
若使用者在缓冲区边界,引导使用者沿着半径为Rs的圆弧行走半圈,使得人从面向缓冲区,变成背向缓冲区;若||curPath||>||πRs||,则当前路径curPath需要被分成两段,一段长度为||πRs||,一段为||curPath||‑||πRs||,更新VPath[ ]并将弧线放入RPath[ ];若||curPath||≤||πRs||,采用RDW技术中的重置方法,在RPath[ ]中增加一个长度为0,仅仅转向180度的实际路径;
若使用者在缓冲区内,引导使用者沿着半径为Rm的圆弧行走1/4圈,快速离开缓冲区,若在建立的搜索树中,进行深度优先遍历,得到漫游的骨架路径;
遍历骨架路径,若前后两条路径的夹角小于设定角度,则合并这两条路径,以简化骨架路径;用线段连接用户选择的起点和终点到骨架路径上,得到虚拟场景中的漫游路径。
4.一种适用于虚拟漫游系统的实际与虚拟空间的映射系统,其特征是:包括:
Voronoi图构建模块,被配置为对给定的虚拟漫游场景,抽取其二维平面图,并为该二维平面图建立Voronoi图;
骨架路径构建模块,被配置为根据建立的Voronoi图,建立骨架路径;
漫游路径生成模块,被配置为根据输入的漫游路径的起始点,生成相应的骨架漫游路径,并进行路径的归并得到漫游路径;
映射模块,被配置为将虚拟场景中的漫游路径映射为实际空间中的实际行走路径;将虚拟场景中的漫游路径映射为实际空间中的实际行走路径的具体过程为:在实际空间的边界内划一个虚拟边界,该虚拟边界到跟踪区域边界的距离为d,实际边界与虚拟边界间的空间为缓冲区;
用数组VPath[ ]存贮虚拟漫游路径,用数组RPath[ ]存放实际行走路径;
遍历VPath[ ]中的所有线段路径,每次取出前后相邻的两条路径curPath和nextPath,对于当前路径curPath,其长度为||curPath||;
遍历VPath[ ]中的所有路径,直到所有直线路径被映射为弧线并放入RPaht[ ]中;
根据人在实际空间中的位置,若使用者不在缓冲区边界或者内部,计算沿着该弧行走,用户在抵达缓冲区前可以前进的最大弧线距离||l||,如果||curPath||≤||l||,将该弧线放入RPath[ ];如果||curPath||>||l||,则当前路径curPath需要被分成两段,一段长度为||l||,一段为||curPath||‑||l||,更新VPath[ ]并将该弧线放入RPath[ ];
若使用者在缓冲区边界,引导使用者沿着半径为Rs的圆弧行走半圈,使得人从面向缓冲区,变成背向缓冲区;若||curPath||>||πRs||,则当前路径curPath需要被分成两段,一段长度为||πRs||,一段为||curPath||‑||πRs||,更新VPath[ ]并将弧线放入RPath[ ];若||curPath||≤||πRs||,采用RDW技术中的重置方法,在RPath[ ]中增加一个长度为0,仅仅转向180度的实际路径;
若使用者在缓冲区内,引导使用者沿着半径为Rm的圆弧行走1/4圈,快速离开缓冲区,若令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行权利要求1‑3中任一项所述的一种适用于虚拟漫游系统的实际与虚拟空间的映射方法的步骤。