girivs Posted November 29, 2013 Report Posted November 29, 2013 I have a friendly suggestion to keep the frame rate more or less constant. At the moment, what happens is periodically, the clouds get redrawn (maybe when new weather is downloaded or based on some other event loop). When that happens, the fps drops to single digit, all clouds get redrawn and fps picks up again. What could be done: 1. Shared VBOs and fill in the vertex data from another thread, with a different context2. Staggered drawing over multiple draw cycles to prevent sudden overload of the CPU. Also, with medium settings, even with the draw distance set to max, the clouds are forming in front of the plane as it moves; may not be able to do much about it, just checking if this is the expected behavior. Quote
sundog Posted November 29, 2013 Report Posted November 29, 2013 Thanks for the suggestions! When the weather conditions change, what's really taking all the time is "growing" new cumulus clouds. SilverLining creates each cloud shape using a cellular automata technique, which ensures no two clouds look the same. They already share VBO's, it's this simulation of cloud growth that takes some CPU cycles. The way we usually get around that is to create a single cumulus cloud layer at 100% coverage when loading, and then just enable and disable individual clouds at runtime to achieve the desired coverage. I'm hesitant to do that in SkyMaxx Pro, however, since we would need to have three of these 100% coverage layers around in case we need them, and they would each consume quite a few GPU resources even if sitting there unused. Since a lot of users are already on the verge of running out of GPU memory with high resolution scenery etc., this seems like a risky thing to do. However, it could be something we could expose as an option for users who have graphics cards with large amounts of GPU memory. As for clouds forming in front of the plane - check your visibility setting in the weather dialog. Clouds will fade out at the specified visibility distance, so if this is set too low you will see clouds forming close to the camera even if you have a high draw distance set. Quote
girivs Posted November 29, 2013 Author Report Posted November 29, 2013 Thanks for the explanation. How about staggered automata generation? Split the generation into say 20 parts, use a millisecond timer to force the generation to stop and resume next second or so. It will then take about 20 seconds for all the clouds to be built, but in the meantime, replace every newly formed cloud shape in the next render cycle. This would slowly update each cloud and over 20-30 seconds completely replace the clouds. Just thinking out loud. Shankar Quote
sundog Posted November 30, 2013 Report Posted November 30, 2013 Yes, the underlying cloud system (SIlverLining) does have a real-time cloud growth feature. That could help spread it out, and it might even look pretty cool to see the clouds form in front of you. We're working on testing out a smaller patch release right now, but I'll have a look at this when we're looking at new features for a version 2.0 down the road. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.