Алгоритм преодоления препятствий

Алгритм препятствий аппроксимируются окружностью соответствующего радиуса. Поскольку форма препятствия заранее известна системе ИИ, это позволяет ей огибать такие препятствия очень эффективно. Конечно, понятно, что такое допущение далеко не всегда может быть приемлемым, особенно в современных компьютерных играх с их сложными структурами игрового мира. В частности, если в алгоритме используется аппроксимация препятствий окружностями, задача моделирования перемещений может стать сложной (например, при моделировании перемещений в длинных и прямолинейных коридорах). Именно по этой причине на практике лучше применять универсальный алгоритм огибания препятствий (generalized obstacle avoidance). Однако, к сожалению, он слишком зависит от математически точной информации о препятствиях (в частности, об ориентации поверхности препятствия, точнее о нормали к этой поверхности). В случаях, когда структура окружающей среды достаточно проста или выполняется предварительный просчет структуры игрового мира для системы ИИ, универсальный алгоритм можно использовать. Если же эти условия невыполнимы (например, отсутствует информация о нормалях или при создании структуры не были соблюдены соглашения о нормалях), этот алгоритм нуждается в некоторой доработке. Поэтому в следующем разделе сначала рассмотрим сам универсальный алгоритм огибания препятствий, а затем его улучшенную версию.