Since last semester I have been working steadily on a new project, the recreation of Omaha beach in full 3D. As I am now partnered with Purdue University and under the guidance of Dr. Sorin Adam Matei, this project has been receiving most of my attention recently.
Some of the newest additions to the project include dynamic and accurate time of day, weather, and a brand new ocean shader. The environment of this project has never looked better, the rolling cloud shadows and creeping sun make the sim feel alive like never before. It is truly awe inspiring to watch the sun rise in the exact position it would have rose on June 6th, 1944.
The new ocean shader however is probably the most important new feature in this update. It includes tessellated Gerstner waves, wind responsiveness, and dynamic foam that appears on the tips of waves, and also on the shoreline in a realistic pattern. This was a much needed addition as before the “ocean” was simply the same terrain with a satellite ocean texture applied over it. Having a separate ocean plane also has the benefit of allowing me to add ships and other nautical objects and have them realistically float on the surface.
Along with these high fidelity improvements, the sim has also had a serious performance improvement over the summer. I was noticing high CPU usage in the rendering->culling operations. Eventually I was able to narrow it down to being a result of some kind of bug with the SpeedTree trees I was using on the terrain. Once I had figured this out it took me a few days to find a new solution. I settled on using GPUInstancer, another Unity asset. The default Unity instancer has never been up the task so this new asset was able to almost double foliage performance, and eliminate the culling bug SpeedTree was causing earlier.
So with that fixed the project actually runs faster than before, even with the volumetric clouds, time of day, and dynamic waves.
That’s all I have for this update,