Since my last update, I have done quite a major rewrite of the Theme Park scene's code and class structure in order to improve it's efficiency. Originally, when creating a primitive within a model, all that would be defined within the constructor would be the type of primitive and it's color or texture. This meant that at runtime, the program rotated, translated and scaled all of these objects into place for each model, and then again to place the models in the scene. This is a very inefficient way of generating the scene on each frame, and so I thought it would be more efficient to define primitive scale and position within a model within the constructor. This means that at runtime, all that needs to be transformed are the models themselves, greatly improving efficiency.
Whilst reworking the code, I was also able to rewrite all of my models, and in doing so add more detail to them. Below are some screenshots of the new version of my Theme Park scene.
An overview of what's completed in the new scene.
The benches are now modelled using cylinders to a more realistic effect.
The carousel has been given much more detail than the original.
An addition to the scene, this will soon be a ferris wheel.
Another addition to the scene is flower beds.
The fountain has been given extra detail.
The Go Kart Track is another new addition. It uses rings to make up the track and barrier, and also the tyres around the centre. These are placed using the same circle approximation algorithm used to generate discs and rings.
An image of the tyres around the centre of the Go Kart Track.
The river has now been dropped into the ground itself. This takes out the need for a river wall, and instead fences can be used. The fence model itself is now made to be of variable size, and the number of sections required and the length of each section can be passed into it's constructor. This creates a more realistic effect than before. The bridge has yet to be remodelled, and so is omitted in this image.