A framework for navigation of autonomous characters in complex virtual environments

In order to create autonomous characters it is necessary to solve the problem of moving agents between two locations, at both the global and local navigation levels. Global navigation has two main components: the path finding algorithms being used and the space representation needed to abstract away...

Descripción completa

Detalles Bibliográficos
Autor: Oliva Martínez, Ramon
Tipo de recurso: tesis doctoral
Estado:Versión publicada
Fecha de publicación:2016
País:España
Institución:CBUC, CESCA
Repositorio:TDR. Tesis Doctorales en Red
OAI Identifier:oai:www.tdx.cat:10803/404338
Acceso en línea:http://hdl.handle.net/10803/404338
https://dx.doi.org/10.5821/dissertation-2117-106282
Access Level:acceso abierto
Palabra clave:Àrees temàtiques de la UPC::Informàtica
004
Descripción
Sumario:In order to create autonomous characters it is necessary to solve the problem of moving agents between two locations, at both the global and local navigation levels. Global navigation has two main components: the path finding algorithms being used and the space representation needed to abstract away the complexity of the static geometry. Once a path is found in a virtual environment, a local movement algorithm is applied to guide the agent through the free space representation from one way point to the next. This PhD dissertation therefore explores two areas: (1) new algorithms to automatically compute navigation meshes from complex virtual environments that can improve the global navigation; and (2) new methods to enrich the quality of the local movement given a general navigation mesh. The main goal of this thesis has been the development of a unified framework for the movement of autonomous characters in complex virtual environments, specifically aimed at those challenging applications that require a real-time response. In order to accomplish this goal, we first focused the research on developing a fully automatic system capable of generating a navigation mesh (a special space partition used for navigation) for any 3D scene represented as a polygon soup. Our system, entitled NEOGEN (from NEar-Optimal GEnerator of Navigation meshes) produces a navigation mesh that satisfies two very important requirements: it provides a near-optimal space subdivision and a tight adjustment to the input geometry. The first requirement is very important in order to minimize the computational cost of path finding, while the second is important for local movement. Realistic local movement requires an accurate representation of the walkable space that allows the algorithm to make a more realistic use of the environment by letting the characters move within the whole navigable space. We call our algorithm near-optimal since it almost always yields a solution in the lower fourth of the optimality interval. As presented in this dissertation, the autonomous navigation mesh generator has been built in several phases: (1) first we present a novel solution to compute a near-optimal partition for a 2D polygon with holes (NEOGEN-2D); (2) then we introduce a novel method to flatten the geometry given by a 3D polygon soup to obtain the 2D simple polygon with holes needed for the previous step; (3) next we present a method entitled NEOGEN-ML (the ML is for Multi-Layered geometry), to classify any 3D geometry into layers through a GPU based voxelization process, and then flatten each individual 3D floor. NEOGEN-ML provides 2.5D navigation mesh as it can handle multiple layers with a tight adjustment in 2D (X and Z axis) but not in Y; Finally (4), with the knowledge acquired at this stage of the PhD and being aware of the limitations of the voxelization phase, we present a final method, entitled NEOGEN-3D, which is a novel algorithm that can handle any 3D geometry and extract a navigation mesh that adjusts to the input geometry in its three dimensions. Taken together, our contributions are a powerful tool to ease the process of creating the navigation meshes needed to move characters in complex virtual environments. The final contribution is a real-time technique to compute paths with any desired amount of clearance that is independent of the underlying navigation mesh being used. Clearance values are used for both global navigation (discarding unreachable nodes due to the character's size) and local movement by strategically steering the characters. Attractor points for characters are set based on clearance, position and trajectory, thus guaranteeing that agents in a crowd will have different attractor points assigned. This reduces considerably the number of collisions between agents or against the static geometry, as well as obtaining a better usage of all the available space for navigation.