Jump to content

2d vs. 3d RTS rendering.

Recommended Posts

this might seem like a weird thing to say, but like. age of empires 2 had really good looking units. i dont mean the ships or buildings. i mean the people.

i dont know how much of a problem this is to anyone else but i notice a lot of 3d rts games have a problem with large numbers of units where the playing field becomes kind of visually cluttered and hard to read. and age of empires 2 got kinda crazy but it was always mostly visually readable.

and i think age of empires had a couple things going for it.

im going to overexplain a little here. sorry in advance if it sounds like i'm assuming people are ignorant of this stuff. its just that what im saying might sound superficially like a totally different idea

basically: edge unison vs. disruption

specifically silhouettes.

instead of polygons optimized for realtime rendering aoe2 had high poly prerendered graphics which i think is important but NOT because of detail or 'realism' or anything. because the people were the least detailed and realistic things in the game i think. they were kinda simplified and a lot of their details were just colours instead of textures, but the high polygon pre-renders meant the shapes were organic and kinda flowed together. and that meant that the silhouette was always easy to read.

if you ever read about perception theory. you know that your brain can put together and identify objects out of almost complete nonsense. i knew this but then a friend said something which made me think it might actually be a problem.

in 3d rts games the units are optimized so you can get a hundred on screen and not lag. we rough out the masses with as few polys as possible. thats long lines and sharp corners.

so now imagine 60 of them all fighting in a small space. i think this causes problems because of these two gestalt theory things: emergence, and the law of continuity (scroll down to find it in the laws of grouping)

long explanation here:

so like. gestalt perception is sort of the idea of a bunch of what seem to be 'global functions' that our visual cortex will call automatically whenever we look at something incomplete, right? i mean okay that's not actually what happens but bear with me.

the law of continuity (one of the functions) seems to happen when people look at a jumble of lines or edges. then people's brains always seem to try and connect any edges that line up. like the edges dont have to be touching, they just have to be pointing at each other. right?

so when you have sixty 3d soldiers with their really low poly arms and legs and their incredibly square linebacker polyshoulders all in a group, there's like this massive pile of straight edges which are separated from each other because all the units are cutting off the units behind them. the brain will try to line these up and connect them even if theyre not part of the same soldier because like. thats what the brain was trying to use to separate the soldiers in the first place.

and it gets better. instead of the lines curving into each other they form a bunch of sharp convex corners which are basically arrows. so they'll pull your line of sight in the direction theyre pointing.

so your brain will keep accidentally attaching different soldiers to each other and will also keep getting distracted by where all the arrows are pointing (everywhere). if the scene is animated its even worse because all the lines move and suddenly they dont line up any more and now your brain has to discard wrong connections and be distracted in real time.

its basically Visual Perception Hell.

like dont get me wrong. i am not saying its impossible to tell what soldier is what. clearly it is totally possible because the visual cortex has like a hundred ways of grouping information and can make its decision based on how many of these methods agree, and then use logic to figure out the rest. but the more useless decisions it has to discard and the more times its line of vision is broken up and needs to be re-established, the more the viewer might feel visually and mentally bogged down, i think.

in age of empires 2. like. the prerendered sprites thing was a LIMITATION of computer power at the time but i think it really worked for them

because the high res pre-renders meant that the unit borders were mostly curving organic shapes which flowed into each other. (besides like spears) so when you had a bunch of overlapping units each unit was kind of a blob of self referencing visual integrity. instead of dissolving into a bunch of fractured line segments.

the overall effect still held together even if a man-at-arms covered half of another man-at-arms. you know? i mean any connecting curves are seen as one whole edge so if one big curving line was sharply cut off by another line going a different direction, the mind would separate them by the law of continuity

maybe if units used simpler textures and had a few more polygons—because in a lot of ways polygons are cheaper computationally than textures are. but like i say 'more polygons'. i don't mean 'higher res graphics'. i mean more rounded. this is what i definitely wanted to make clear. i am not suggesting that the only way modern RTS units can become good is to become as realistic as prerendered sprites. because that's part of the point. the old pre-rendered sprites were not realistic. the buildings were but the people werent so much—they weren't cartoony, just less detailed and compared to modern stuff a lot less harder to break, visually.

anyway i dont really know what to do with this idea but i am certain there is something in it. like even just taking out the idea that 0ad would have to be involved on any level. i am not right now suggesting this project undergoes a paradigm shift or anything, but like: do any of the developers think this makes sense? even if fixing it in a modern 3d RTS isn't computationally feasible?

Edited by Sleepcircle
Link to comment
Share on other sites

Mythos Ruler already thought about increasing the polycount. There were tests made by either RedFox or Philip. I can't remember. Best search the forum.

The performance will be mitigated if the next SpiderMonkey promises really come true. And tests from Yves are already 18% increasing it.

Also the new long range pathfinder Philip, historic_bruno and RedFox and leper? worked on are really increasing the performance once again.

For many units on a place - as Sander correctly stated - we need a new short range pathfinder. Philip has outlined the AoK algorithm and I think it's pretty clear how it works - and if it's a speed-up ... calculation say it's O(n^2) instead of O(n^3) - then we really can reach new worlds.

This all together will trash performance problems for us until we do something crazy either ultra-high-res or ultra-hordes-of-units -- no matter if quantuum or optics make it - 0AD is looking into a bright future.

Edit: The more lag the more jump units around (though it's interpolated). That's why it looks like a simulation speed-up in the late game - no matter if 0.5 x initial speed is chosen from the settings or not. As stated above, this will no longer play role for 0AD with the upcoming speed-ups.

Edited by Hephaestion
Link to comment
Share on other sites

fexor: i dont think a 2d outline would fix what im talking about. it might help a little but its like treating a symptom and not the cause itself.

niektb: i am not suggesting we do anything 2d. and also you can have 2d sprites that suck still so that wouldnt necessarily fix stuff. i was gonna get into some stuff about poorly used ambient lighting and bad texturing practice and some other stuff too but i was kinda thinking id postpone the more technical problems until people had decided whether or not i was nuts.

hephaestion: i dunno about spider monkey promises or anything. im kinda new to this whole arena.

also i wasnt really suggesting getting into the technical nitty gritty of hypothetically doing anything to 0ad. like i know about the technical hurdles that would have to be jumped and i have a couple ideas on how to jump them but unless anyone else notices what im talking about then this entire discussion is pointless to look at from a technical side.

so thats why i was asking: does what i am saying about edge disruption and visual perception make sense? has anyone else noticed that in things like age of mythology and age of empires 3 and stuff that the battles were always kinda distracting to look at compared to aoe 2? like im not talking about PUSHING THINGS TO THE MAX or REACHING NEW WORLDS i am just talking about visual ergonomics. because even if we reach some kind of theoretical plane of ascendant technology where rts units can have a jillion polys each that still doesnt make the battles any easier to watch if we dont use them responsibly.

Edited by Sleepcircle
Link to comment
Share on other sites

I admit it's easy to lose overview in those battles. If you manage this careful painting .. then this would be awesome.

Do you have some technical tips?

Though I think Enrique's textures are already an improvement from the colours point of view - looking very realistic/aesthetic (Ptolemies? Mauryans for example). (But I'm a layman. Hopefully our artists see your ideas.)

Edited by Hephaestion
Link to comment
Share on other sites

I've got all those discussions if someone wants to take a trip down memory lane ;)

This has to be one of my all time favorite 0 A.D. Screenshots:


I'd love to see an updated one with all the new graphical features like AO.

yeah, that would be a cool screenshot. Though, nowadays, the "isometric" view makes me tend to think of cheap Facebook games unfortunately.

Link to comment
Share on other sites

just going to say again that i never suggested 2d anything.

basically i think realistic unit textures might not give back improvements in all departments. youll notice the aoe2 units were actually textured really simply, lots of untextured, matte materials which were just given detail by the shading of the geometry they were applied to. this aint doable in real time of course, you cant make the units THAT high poly. but yeah the only textures really on the human aoe2 units were shield/drape decals and the occasional wood texture.

once again i dont know if this was an intentional design decision but i think it worked out because it meant the internal shapes of each sprite were solid, definite blocks of colour, instead of noisy piles of photo details and gradients.

i think in cases like this details are ultimately only good for eye candy close ups. the problem is that distance destroys detail in 3d rendering. even with really high anisotropic filtering it seems like the problem arises again when you start wrapping textures around the edges of things, and the textures have to transition to representations of the same texture at a more oblique angle. and on skinned meshes this has to happen constantly, changing every frame as the polygons shift. and when you are zoomed out enough to see the field of battle there's probably not really enough room in onscreen pixels to do a proper transition.

the actual solution for saving photorealistic texture detail at a distance might be like, idk, full screen anti-aliasing or something. but hahahah that's kind of an insane goal for even modern hardware.

that said i think photorealistic textures are still doable but i think theres gotta be some deliberate visual 'hinting' involved, where the textures are designed first as blocks of color for distance readability, and then the details are laid over--kinda low contrast though so they don't obscure the forms or muddy the textures too much at a distance. maybe this sounds stupid but it isnt that dumb when you consider how valve planned all the unit designs for tf2 to be as readable and clear as possible.

btw i'm NOT saying change the environment textures. the environment textures are just fine. basically if the human units are made to be a little simpler in contrast with the dense and realistic environment textures. they'll like be units of negative space in a densely detailed positive space world, which will make them automatically pop out, to the viewer. itll be an advantage to have the world textures remain high-detail, tbh.

so moving back to the 'higher poly for a clear, self-contained silhouette' idea. i heard someone mention somewhere in an interview that you guys were considering deferred lighting which i think would probably make lighting a tonne of higher poly units easier cause the amount of pixels that need actual lighting will never change.

that said poly fill might still be kind of a bottleneck, but have you guys looked into instanced skinning? you might end up needing something like that anyway, if you ever gun for higher screen resolutions, higher unit counts, or more special effects. and itd definitely let you add like ~250 extra polys per unit. now i guess you guys are using glsl instead of directx which might give you some problems because glsl doesnt seem to totally have a clear way to do some of the things directx does—but idk maybe it does and i just didnt read carefully enough?

idk these are just ideas. good luck with your project whatever happens. its a cool goal and i hope you make it.

Edited by Sleepcircle
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...