Sunday, May 26, 2019

Milestone: Procedural generation finished

The procedural generation is finished! Here comes a showcasing of the results.



Taking my poor Windows 10 to its absolute RAM limits, I increased the amount of grass blades from 50 000 to 100 000. This allowed for a denser, more realistic looking grass field. This is the result.

This implementation is a recreation of Markus R. Tillman's bachelor's thesis. In a number of ways, it is also an extension. The two most important ways ones are
  • Perlin noise determined color distribution
  • Grass blade variance
 See the below comparisons.

Most notably, the uniformity of the grass blades and their color has been broken, giving a much more realistic look to it.

Below is a compilation of what has been implemented.


The grass field
  1. has a Perlin noise map for ground height.
  2. has a Perlin noise map for color distribution.
  3. has a texture.
The grass blades
  1. have textures corresponding to the grass field pixel below it.
  2. vary in color depending on Perlin color map.
  3. simulate lighting.
  4. have randomized positionings.
  5. have normal distributed rotations, heights, widths and inclinations.

What has yet to be implemented: 

  1. Varying densities of grass.
  2. Simulated down-trodden paths through the grass field
  3. User interface
  4. Level of Detail optimizations
Currently, the only way of varying many of the parameters is to go directly into the code. It would be great to have a user interface for manipulating the most relevant and meaningful parameters. But due to time constraints, this will not be implemented.

1 comment:

  1. Link to the github code: