Ykkrosh Posted August 8, 2010 Report Share Posted August 8, 2010 I changed the colour of selection circles to match the player colour (instead of always being white) and also changed them to 2 pixels wide, like this, in an attempt to make them easier to see and easier to distinguish from other players' units. I don't know whether this is the best design - do people have experience/examples/opinions of what would look good and help players the most? Quote Link to comment Share on other sites More sharing options...
WhiteTreePaladin Posted August 8, 2010 Report Share Posted August 8, 2010 (edited) Sounds reasonable. Here's a few screenshots of AoE3 where they do something similar. The ships have ovals colored by player color.The Indians (American) have fancy outlines.In this shot, they show a star under a hero. (In vanillla AoE3, I believe that there was a circle around the star)I think regular units just have circles (which are thicker than those in AoK), but I don't know if there are colored or not. I know the health bars above the units heads are colored by player color. (They use black for the background fill color rather than red.) Regular health bars in the panel are green and red respectively.[edit]After trying your changes, I don't know if changing the color is a good idea. It will only work well if the thickness of the circle is also increased. (The thickness might be hard to change since it's just a circle drawn and not a proper decal.) Brighter colors would help too. Edited August 8, 2010 by WhiteTreePaladin Quote Link to comment Share on other sites More sharing options...
Mythos_Ruler Posted August 9, 2010 Report Share Posted August 9, 2010 I like the thickness of the circles, Philip. Any way we can have them anti-aliased though? Quote Link to comment Share on other sites More sharing options...
WhiteTreePaladin Posted August 9, 2010 Report Share Posted August 9, 2010 I like them too, but they're hard for me to see. Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted August 9, 2010 Author Report Share Posted August 9, 2010 I like the thickness of the circles, Philip. Any way we can have them anti-aliased though?It should be possible, but not trivial. There is a trivial way to antialias OpenGL lines but it often has absurdly terrible performance so we can't use that. What we probably need is the circle shape in a texture underneath the unit (fitted to the terrain appropriately), which'll allow more control over the rendering. If this is the behaviour we want, I can add a task to Trac and hope somebody (not me) implements it soon.After trying your changes, I don't know if changing the color is a good idea. It will only work well if the thickness of the circle is also increased.The thickness of the circle is increased (if you compiled from SVN), like in the image I linked - do you mean it should be increased more, or do you not see the thickness at all? (I guess it's possible some old OpenGL drivers might not support it.) Quote Link to comment Share on other sites More sharing options...
Mythos_Ruler Posted August 9, 2010 Report Share Posted August 9, 2010 (edited) I was thinking we'd have to go with decal textures beneath the units to achieve a nice anti-aliased selection circle. Like this: Edited August 9, 2010 by Mythos_Ruler Quote Link to comment Share on other sites More sharing options...
WhiteTreePaladin Posted August 9, 2010 Report Share Posted August 9, 2010 Hmm, that's thickened? I think it should be fairly thick (like Michael's screenshot). Although it won't be quite as nice without a smooth curve, at least it will be easier to see. Maybe something in between Michael's picture and the current thickness? Split the difference perhaps? Quote Link to comment Share on other sites More sharing options...
janwas Posted August 9, 2010 Report Share Posted August 9, 2010 A quick note before heading to work: the 'proper' way to do antialiasing is to convolve the continuous signal with a lowpass kernel. It turns out that (in the case of lines), the pixel intensity/blend factor is merely a function of its distance from the line and can be precomputed. Here's a nice description of how to implement this on a GPU: http://http.developer.nvidia.com/GPUGems2/..._chapter22.htmlI figure this could be easily adapted towards circles. If anyone is interested, I can provide the optimal (in the sense of minimizing aliasing energy) cubic polynomial filter kernel and help derive the term for convolution with the circle.Then again, this is probably overkill and a simple texture with a halfway decently rendered circle may also suffice Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted August 9, 2010 Author Report Share Posted August 9, 2010 Maybe something in between Michael's picture and the current thickness? Split the difference perhaps?This can be changed in simulation2/components/CCmpSelectable.cpp ("m_Overlay.m_Thickness = 2;") - could you try experimenting with that to see what you think works best?If anyone is interested, I can provide the optimal (in the sense of minimizing aliasing energy) cubic polynomial filter kernel and help derive the term for convolution with the circle.Then again, this is probably overkillYeah, I think it probably is . We don't want to require fragment shaders for this, and any textures can just be generated offline. Quote Link to comment Share on other sites More sharing options...
WhiteTreePaladin Posted August 9, 2010 Report Share Posted August 9, 2010 It stays at the same thickness regardless of distance. A thickness of 4 looks very good at one point but terrible when zoomed out. I guess just keep it as it is and we'll have to wait for someone to add terrain decals. (We also need that terrain alignment behavior for farms, rocks, etc.) Quote Link to comment Share on other sites More sharing options...
janwas Posted August 9, 2010 Report Share Posted August 9, 2010 Yeah, I think it probably is . We don't want to require fragment shaders for this, and any textures can just be generated offline.Roger that. It stays at the same thickness regardless of distance. A thickness of 4 looks very good at one point but terrible when zoomed out. Just to clarify: I meant a pixel's intensity depends on its own distance to the circle, not the circle's distance from the camera.BTW, looking terrible at low zoom factors is to be expected due to cheap downsampling filters. I've attached an image showing the difference between box, cone and the abovementioned optimal polynomial filter. Quote Link to comment Share on other sites More sharing options...
WhiteTreePaladin Posted August 9, 2010 Report Share Posted August 9, 2010 I was actually talking about zoomed out, not in. The circle gets way too thick when zoomed out if it is 4 pt, but looks okay at a medium distance. Zoomed in close it looks thin.Two pt looks thin at a normal zoom. Quote Link to comment Share on other sites More sharing options...
janwas Posted August 10, 2010 Report Share Posted August 10, 2010 hm, that sounds like it might be worth going with one of say three thicknesses depending on zoom. However, when zooming in/out, one would see the thickness 'pop' to the next level. Quote Link to comment Share on other sites More sharing options...
WhiteTreePaladin Posted August 10, 2010 Report Share Posted August 10, 2010 I guess it's probably best to just keep what we have and wait for proper decals. Quote Link to comment Share on other sites More sharing options...
chess007_phoenix_clan Posted August 10, 2010 Report Share Posted August 10, 2010 Different thicknesses depending on zoom makes sense. As long as there is a clearly visible selection circle (at all zoom levels) the player will able to tell what has been selected; whether the lines are smooth or jagged. Quote Link to comment Share on other sites More sharing options...
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.