Merge branch 'master' of github.com:Faerbit/swp

Conflicts:
	report/report.log
	report/report.synctex.gz
This commit is contained in:
Fabian Klemp 2015-03-10 16:38:32 +01:00
commit 87942dbb14
2 changed files with 2 additions and 2 deletions

Binary file not shown.

View File

@ -89,11 +89,11 @@ We then blur the parts selected by the stencil shader.
The physics is based on \textit{Bullet Physics}, with a simple callback function used to relay the data to the graphics pipeline. We decided to use a btvhTerrainShape for the terrain. This is much more effective than using a triangle mesh. Additionally we have spheres, boxes, and a few other basic primitives. Finally we implemented btvhTriangleMesh shapes and concave triangle meshes, which are more strenuous for the system, but allow for moveable triangle meshes.
Unfortunately \textit{Bullet Physics} proved unable to handle many forms of constraints that we required. For this we created two instances of spring constraints. The first is a spring constraint which creates a force attempting to keep two rigid bodies a set distance apart. The second was a derivation of the first, generating a force in an attempt to confine the rigid body to a certain position. This constraint is what we used to create switches that could be embedded within the terrain by filtering out the collision between the two bodies.
We also used a similar constraint to create a physics based camera. The camera attempts to follow the player at an angle specified by the player. Finally we used the constraints to get the player to float in the air. To do this a constraint is added via the Lua script, allowing the player get an improved view of the sunrise.
We also used a similar constraint to create a physics based camera. The camera attempts to follow the player at an angle specified by the player. Finally we used the constraints to get the player to float in the air. To do this a constraint is added via the Lua script, allowing the player to get an improved view of the sunrise.
Additionally the respawn animation was created using the physics engine. It lets the ball continue to rotate, while changing certain properties of it, especially how it will move and that it will ignore the collision with all other objects. After it sinks a certain distance it will reappear in a similar fashion before its normal physic state is restored.
The physics came with many challenges, partially stemming from our integration into a new field, but also partially due to the nature of \textit{Bullet Physics} itself. If bullet does not recieve enough updates the simulation becomes jagged and unrealistic. To solve this it is suggested to recall the world multiple times per frame to allow a more accurate simulation. Unfortunately, especially with the introduction of the physics based camera, problems arose. To solve this we not only recalled the complete update method within the physics, but also recall the complete update method in the level to stabilize the experience.
The physics came with many challenges, partially stemming from our integration into a new field, but also partially due to the nature of \textit{Bullet Physics} itself. If bullet does not receive enough updates the simulation becomes jagged and unrealistic. To solve this it is suggested to recall the world multiple times per frame to allow a more accurate simulation. Unfortunately, especially with the introduction of the physics based camera, problems arose. To solve this we not only recall the complete update method within the physics, but also recall the complete update method in the level to stabilize the experience.
\subsection{Content Creation}
\textit{Saxum} contains many custom models that we created with the tools that the program Blender provides as well as several textures from the website cgtextures.com. We edited these textures, so they can fit our purposes: Texture editing work included smoothing for better UV-Mapping, removing seams etc. All editing, including the creation of the PNGs that are used for heightmap generation and object placement, as well as our completely custom textures were done with the GNU Image Manipulation Program.