New grass/vegetation requires some improvements still, but I think it brings much more variety on terrain.While turned off, the entire world looks nude!
Adding grass was a nice check for my FX system. I was experiencing huge slowdown while dealing with 10,000’s of billboards (grass, bushes, rain, clouds..). After a deeper study I found that it was a quite strange CPU bottleneck inside OGRE system!?
Ogre::BillboardSet->getBillboard()->getPosition() is an official/obvious slow method. Reading Ogre source code :
00078 // Note the intentional public access to main internal variables used at runtime
00079 // Forcing access via get/set would be too costly for 000’s of billboards
00080 Vector3 mPosition;
Seems nice at first sight. But mPosition access is not really much faster, not enough actually! I added some caching system to avoid accessing those datas. And CPU cost drop down to almost nothing. Eventually I’ve lost 100-200 Kb of Ram but… who cares? 😉
Still working on my Colony management class. Not really difficult, only really long to write 🙂 So I took a little break and decided to add now some classic billboard vegetation, using my FX class. I’ve got the exact same problem than for my trees… I need to add some smart space distribution. But I’m now quite regular with that! To be continued… now it’s time for Jamon, cerveza y Queso!!
Storm environment finally works fine. Just had to make a few adjustment right after waking up 🙂 Final solution are common oriented billboards. One hint was to make approximate computations to save gpu. That’s not a problem as fast rain drops don’t need much precision to be realistic! I although created a much more simpler texture. That might be less impressive on still images, but it brings a better feeling ingame!
So… now I can flip to a shinny day to go on work…
From now, clouds were kinda flat… so here are the new sky passthrough design! Full billboards, 100 faces, no shaders. Cheaper than ever!
Might need some improvement but… I find this already cool enough.
It’s pretty hard to switch between server and client’s sources, as always. First: start slowly and get my classes & methods back in mind! So I should avoid destroying everything 🙂
I’ve decided to work on small smoke FXs. That’s quite simple, no hazard here. I’d like to cross kind of volumetric clouds while flying through sky. When done I’ll be ready for adding more deep and usefull stuffs!