The thesis is about planning and implementing a modelling software (which is capable of skeletal animation) in DirectX11. In the software you can import and manipulate existing modells position and texture, also you can create simple animations with them. The software also capable dispalying rigged models, where you can move the bone parts for kinematics effects. The goal of the thesis is to introduce the theory of inverse kinematics, the background of DirectX11 develepment and to discuss the challenges of planning and implementing a modelling/animation software.
In the first part of the thesis I talk about the interpretation of the task and the motivation behind it. I introduce the reasons of why I chose the task and my expections about it. Moreover I present the major goals for the planning of the software and I also specificate what does the software exactly is capable of.
On the next part I talk about the theory of Inverse Kinematics and developing in DirectX11. I introduce the mathematic backgroung of Inverse and Forward Kinematics and I present the main points of the DirectX11 pipeline. I also introduce the reader to some of the DirectX GUI-s in the industry that I researched. I also discuss the main benefits and counter benefits of them.
The third part is about the planning and implentation of the software. I discuss the main pillars of the architecture: the Entity-Component system and the Property-Segment. I present the techniques of displaying 3D models, both rigged and non rigged (for rigged I introduce the simple inverse kinamtics method for it). The last main point of this part is the user interface. I present my method of creating and displaying a user interface where the user can manipulate the modells for animation. The last part of the this section is about some of the smaller problems and the solutions to them. I talk about for example the selection (picking) by mouse in 3D, the dragging of entity in the space and the seralization.
In the last part I give a retrospective of the project. I discuss what decision I made turned out to be good and what turned out to be bad in the end. I present some of the problems that took more time than I planned and how should I avoided them in the first place.