View Issue Details

IDProjectCategoryLast Update
0000930AI War 1 / ClassicSuggestionDec 23, 2010 6:02 pm
ReporterLancefighter Assigned ToChris_McElligottPark  
Status minor fix for laterResolutionopen 
Product Version4.000 
Summary0000930: Range circles are incredibly intensive
DescriptionSay, take your regular ball of death of ~1k units, and press z... and wonder why all the sudden your getting a slideshow.

My general suggestion on the matter would be get the size of any given group of units (say, 100 fighters alltogether in a circle), get the size of that circle, and add the range of fighters to it, then project that single range circle from the center of the group.

Oddly, doesnt seem to be an issue for my few dozen starships. Weird, huh?
TagsNo tags attached.
Internal Weight

Activities

orzelek

Oct 27, 2010 8:44 pm

reporter   ~0002261

Last edited: Oct 27, 2010 8:45 pm

I have only death ball of 400 something units to test on - but I would bet on GPU usage here. Number of draw calls goes up when you use z for range rings. Do you see similar behavior when you press alt when group numbers are shown?

I'm not noticing performance drop with range rings even with z+x combination but my GPU is not fully loaded when AI War is running. Actually range rings look much better than in SlimDX variant - how are they drawn now?

Lancefighter

Oct 27, 2010 8:53 pm

reporter   ~0002267

er. I dont know.

Your right, it might be gpu.. I was assuming the issue was calculating where the points would be for the circle.

Draco18s

Nov 8, 2010 6:54 pm

developer   ~0003014

The circle is a graphic, its scaled up (which is why the larger rings have thicker dashes). It's probably a vector graphic and not a raster one, but calculating the draw location isn't the issue, it's the 400 multiplication calls on the GPU to render the transparency effect.

orzelek

Nov 9, 2010 1:53 pm

reporter   ~0003082

From what I remember circles were prerendered textures - but this may have been changed. So main time would be to render the quads and apply proper alpha blends. Memory bandwidth would be the prime requirement due to quite large texture. Take a look at RuntimeData\Images\Circles folder and you'll see the circles :D

Chris_McElligottPark

Dec 23, 2010 5:44 pm

administrator   ~0006951

Actually, we already do a lot of things that make it draw way fewer lines than it could, but there's always more that could be done.

Chris_McElligottPark

Dec 23, 2010 5:46 pm

administrator   ~0006952

And: yes, it's just a prerendered texture rendered on a quad, like everything in AI War. I am not aware of any hardware-accelerated way to use vector graphics on current GPU hardware, and at any rate we don't use them. In this case it's the calculation of both the transparency and the scaling, plus just the draw itself, that's the intensive part.

TechSY730

Dec 23, 2010 5:47 pm

reporter   ~0006953

Last edited: Dec 23, 2010 5:49 pm

Maybe there should be an option in the preferences to turn on the alpha blending on ship ranges, and if it is on, only show the colored outline and not "blend" its color into the circle. More simply put, an option to remove the translucent filling in range circles.

Chris_McElligottPark

Dec 23, 2010 6:02 pm

administrator   ~0006960

Hmm, I'd forgotten that they were using a partial-alpha color. That can just be taken off in general, it was an extremely subtle effect to begin with.

* The range circles no longer draw with partially-transparent colors for the lines, thus reducing their GPU overhead quite a bit, more or less depending on the GPU in question.

Issue History

Date Modified Username Field Change
Oct 27, 2010 5:26 pm Lancefighter New Issue
Oct 27, 2010 8:44 pm orzelek Note Added: 0002261
Oct 27, 2010 8:45 pm orzelek Note Edited: 0002261
Oct 27, 2010 8:53 pm Lancefighter Note Added: 0002267
Oct 27, 2010 8:55 pm Lancefighter Summary Range circles are incredibly cpu intensive => Range circles are incredibly intensive
Nov 8, 2010 6:54 pm Draco18s Note Added: 0003014
Nov 9, 2010 1:53 pm orzelek Note Added: 0003082
Dec 23, 2010 5:44 pm Chris_McElligottPark Note Added: 0006951
Dec 23, 2010 5:44 pm Chris_McElligottPark Assigned To => Chris_McElligottPark
Dec 23, 2010 5:44 pm Chris_McElligottPark Status new => minor fix for later
Dec 23, 2010 5:46 pm Chris_McElligottPark Note Added: 0006952
Dec 23, 2010 5:47 pm TechSY730 Note Added: 0006953
Dec 23, 2010 5:49 pm TechSY730 Note Edited: 0006953
Dec 23, 2010 6:02 pm Chris_McElligottPark Note Added: 0006960
Apr 14, 2014 9:28 am Chris_McElligottPark Category Suggestion - General Idea => Suggestion - General
Apr 14, 2014 9:30 am Chris_McElligottPark Category Suggestion - General => Suggestion