What I did today

glMultiDrawElementsIndirect is the pinnacle of OpenGL. It’s the fastest way to draw geometry because it allows you to serialize draw calls, put them in a buffer, upload it to the GPU and have a GPU-side loop execute the draw calls. This almost completely removes the need for batching geometry, as instead of a few thousand glDraw* calls per frame we can now get up to the equivalent of one million glDraw* calls per frame at 60Hz. Combined with 96bit-texture-handles and/or sparse-texture-arrays, this means most games posted on JGO could be rendered with a single call to glMultiDrawElementsIndirect. The more advanced games would need a couple more, due to switching FBOs, switching blend modes, and similar things.

Sadly, my AMD 6950 doesn’t fully support it in hardware (requires 7xxx) so I couldn’t use gl_DrawID in GLSL, which is invaluable as with it you can determine which draw-call you’re in. So I faked it using instance-attributes, and wrote the demo to see whether it worked. For example: you could use gl_DrawID to select another texture, which means there won’t be any glBindTexture calls to break up your draw calls. This is however the most basic of optimisations, but none the less it will have a massive impact on performance.

2 Likes

Pretty sick. Is that going to wind up in Battledroids or is it not supported widely enough you think?
Is the instance attributes detrimental compared to the DrawID?

Hi

I found myself on the social rankings :slight_smile:

CopyableCougar4

Cas basically has to cater to the bottom feeders, so OpenGL 3 level hardware is pretty much ruled out. Having said that, I read Battledroid was put on hold in favor of a game vastly narrower in scope, and more in the genre of puppygames’ earlier games. Follow his twitter account for the latest updates.

I figured as much. Alright, will do, I wasn’t aware of that.

Can rotate units now, took all day, dammit!

I managed to do fast and stable volumetric fog shadows using temporal reprojection, screenspace time varying jitter and 2x2 derivate blur. Result was really amazing even with really low sample counts.(4 is still usable)

Why not share a snapshot of said amazing masterpiece?

I started writing the preferences dialog for a profiler I’m working on.

I’m continuously staggered at how ugly even basic stuff in swing looks. :-\

Oooh goody shadows. Yum.
Yes, please post a picture. :slight_smile:

i walked with mother
i singed and danced alone in my room
i can’t get asleep now. 2 am here
listening to the bee gees. right what i need. light relaxing music

I’m currently working on my first Android Libgdx game, and today a bit of graphics and level design…
I’m also very surprised by Libgdx : an easy and very well done tool.

I made it on four social rankings.

Imgur

Line of sight! Not perfect but it is a good starting point.

I changed my avatar to something I doodled during school (way earlier in the year).


Screenshot is from our upcoming game called Hardland.

That’s beautiful!

drooling intensifies

That too beautiful to be a real in-game screenshot. :o
Good job, I’m looking forward to the game. :smiley: