1. I was able to add specular elements to the terrain shader with no speed repercussions. This means that various "shiny" elements of the terrain now properly show up - highlights on grass, snow, shiny rocks, and wet sand are all possible.
2. I created a third paged geometry manager to handle bushes in the local regions (around the camera). This has the effect of increasing ground cover in regions otherwise devoid of anything but grass - adding a good bit of visual interest to the scene. They are set up to have density dependent on fertility and temperature.
3. I implemented several optimizations for the unit manager. Units will now do no per-frame code execution unless they are both visible and moving. They update their positions every N frames, where N is the number of frames it takes to move ~8 feet in any direction - and between these updates, they use a combination of original position, original timestamp (when they were at said position), and velocity to maintain their curent location. This has the added benefit of being highly useful for multiplayer.
Hypothetically, I should be able to handle upwards of 4000 units in an active game, or 200 for each of the 16 players plus 800 animals. I have high hopes for this system.
4. I have additionally created a graphics settings program- it contains all the useful graphical settings in one easy-to-use and easy-on-the-eyes location.
5. And finally, I have been experimenting with normal mapping on the foliage in the game, with mixed results. Generally speaking, it looks nice in close-ups of the trunks, but is invisible at standard playing distances. Overall, it probably ain't worth the extra cost in shaders.
On the other hand, I did manage to get the deciduous trees to render with lit trunks and unlit foliage, which does wonders for their cohesiveness. This is an optimization that may well be worth the effort... and it's possible I could add self-shadowing to complete the shading effect. I'll have to investigate this particular concept farther.
No comments:
Post a Comment