Aidan Thomas
I was inspired by the AI character mesh navigation system in unreal engine and wanted to replicate that in OpenGL using the topics that we learned in class.
Relevant Techniques used include Linear Blend Skinning as well as A* Pathfinding
The project consists of an animated character and a grid that holds 20 x 20 nodes on a graph. The character animation and skinning code was repurposed from assignment 2 and then modified to hold the new animations and character. I also attempted to change the animation based on whether the character was walking or ide, but this proved to be more difficult that I planned, so now the character just T-poses when idling. I then layed out the graph nodes on the grid. These are all used during the A* search to find the fastest path while avoiding the red nodes which are obstacles.
The program employs the A* search algorithm to navigate a square grid that may include obstacles, aiming to find the shortest path from a starting node to a target node as efficiently as possible. At each step, A* selects the node with the lowest f-cost, a value stored in a struct that represents the sum of two components: g-cost and h-cost.
To calculate the distances for g-cost and h-cost, the algorithm uses a getDistance() function, which takes the grid, the starting point, and the target point as inputs. The algorithm maintains an open list, containing nodes near the start node that are available for exploration, and a closed list, tracking nodes that have already been evaluated (adapted from GeeksforGeeks).