Displacement Mapping
To get even more realistic details from height maps that include self occlusion we implemented displacement mapping. Instead of perturbating the surface normal al triangle is tesselated and the resulting triangles are displaced according to a height map. To accomplish that we implemented a child class DisplacedTriangle of our Triangle class, that tesselates the base triangle and handles the intersection with the generated geometry.