A 3D roaming and collision detection algorithm applicable for massive spatial data

In this paper, a novel 3D roaming algorithm considering collision detection and interaction is proposed that adopts a triangle mesh to organize and manage massive spatial data and uses a customized bounding box intersector to rapidly obtain the potential collided triangles. The proposed algorithm can satisfy the requirements of timeliness and practicability during complicated large 3D scene collision detection. Moreover, we designed a method to calculate the collision point coordinates according to the spatial position relation and distance change between the virtual collision detection sphere and triangles, with the triangle edges and three vertices being considered. Compared to the methods that use the native intersector of OpenSceneGraph (OSG) to obtain the collision point coordinates, the calculation efficiency of the proposed method is greatly improved. Usually, when there is a big split/pit in the scene, the viewpoints will fly off the scene due to the fall of the collision detection sphere, or the region interior cannot be accessed when the entrance of some local region (e.g., internal grotto) of the scene is too small. These problems are solved in this paper through 3D scene-path training and by self-adaptively adjusting the radius of the virtual collision detection sphere. The proposed 3D roaming and collision detection method applicable for massive spatial data overcomes the limitation that the existing roaming and collision detection methods are only applicable to 3D scenes with a small amount of data and simple models. It provides technical supports for freewill browsing and roaming of indoor/outdoor and overground/underground of the 3D scene in cases of massive spatial data.