Jump to content

aeonios

Community Members
  • Posts

    229
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by aeonios

  1. I've looked through some of the graphics code and somewhat figured out how things work together, so I thought I'd report on what I found and what I want to do about it to let everyone know and get some opinions on what I plan to do. The renderer works and looks great overall, but is currently scattered between not less than 3 different places. Parts of it are under 'renderer', parts are under 'graphics', and the glsl has been dumped in with mods, which some of that should certainly go there but a lot of things definitely should be moved into the engine proper. I'd like to simplify the organization and keep all the graphics-related stuff that the engine should handle directly all in one place. That includes the GLSL, which needs JIT compiling and will need a new home in the engine. On a related note I think that maps should also have an option to include custom shaders, so that people can add things like fireflies to maps, for example. The renderer is also an ad-hoc mixture of GLSL and some non-GLSL stuff that is most definitely not very efficient. Overall the renderer performs excellently for the level of effects it produces but I think it could be better both in performance and effects. The admixture of code is bad for maintainability though, and I think the renderer should be moved entirely to GLSL. There was already a discussion about that 4 years ago and everyone seemed to agree that dinosaur cards weren't really worth supporting for all the downsides. That said, what I'd like to do is move everything also to OpenGL 3.1. The oldest/cheapest graphics cards you can buy today (ie GeForce 200 series as well as at least one generation earlier than that) support GL 3.1 and so do the vast majority of all embedded cards that have been produced since 2011. GL 3.1 allows for MRT, non-hardcoded conditionals, loops and other features which are useful for producing efficient renderers. I do not intend to use openCL, as not all cards (nor mine) support it (and it tends to be used for super expensive stuff anyway). Another thing is graphics options. I think a lot of things that are currently optional should either become defaults or removed. For example sky rendering isn't even visible in-game unless you hack the camera, and although sky is used in water reflections sky rendering isn't necessary for that to work. Lots of things that are optional also are trivially cheap and thus don't warrant options. Reflective/refractive water and 'use real water depth' fall in that category. Some things which are currently expensive (the shore waves part of HQ water, mainly) could probably be considerably cheaper than they are now, and may eventually end up in the 'trivially cheap + definitive aesthetic gain' list. FYI my current hardware is a Core i3 2120 with 4GB of RAM + Geforce 240GT with 1GB of DDR3 (not even GDDR). It's fairly old and low-end, and I'm also running at 1080p so I think the setup is pretty good for performance/generality testing (ati cards notwithstanding).
  2. First I want to improve water rendering. The distortion for refractions is too large and looks unnatural, and it isn't correctly interpolating between the refract color and the water fog color (it ends up increasing the fog color when it shouldn't). It also seems to be possible to eliminate a rendering step and a texture when blending the refract color and reflect colors together, which should make rendering a bit cheaper. Adding support for combining more than one normal map for waves is something I want to look into after that. (not that waves look bad now, but why not)
  3. Well, honestly I haven't learned every detail of the game as of yet, but I've been able to beat petra on a variety of maps. I also neglected to add links to all of the things that I mentioned previously, which I should correct. Zero-K Spring RTS Engine Zero-K Graph Based AI (does not cheat) Shine 2D, an openGL (fixed pipeline, because reasons) 2D graphics library for java Some things I would like to see implemented for 0AD: -Make refractive water less derpy and balance reflections/refractions to make water look more like water. -Dynamic clouds (with map settings) -Dynamic sun/moon with day/night cycles and color points for e.g. sunsets and sunrises, etc. -Precipitation, with related cloud settings (although not necessarily having the precipitation come from clouds, just changing their appearance during) There are plenty of other minor things (and a few major ones) that could be tuned or improved either to improve performance or improve the aesthetics and increase the sense of realism, but I don't really want to get ahead of myself. I don't really want to touch gameplay or balance for as long as humanly possible, although I may offer suggestions from time to time. I'm not fundamentally opposed to doing AI/unit AI type of work (and 0AD could certainly use it), but I am a bit burned out on that.
  4. Hi all! I heard about 0AD through zero-K/spring, which is similar but differently themed. I'd like to do some work on graphics and optimizing graphics (deferred shading, etc) because it interests me and I haven't done a lot with it yet. I have experience in mapmaking (like raw stuff using blender and world machine), AI (I've been working on a fairly advanced AI in java for about half a year now) and a little bit of graphics, and so far I like most of what I've seen in 0AD. I have some ridiculous ideas but I always prioritize simple things first. On the other hand I wish you'd use git. SVN doesn't let you search source content (that I've seen) which makes finding things difficult, and git's fork-and-pull-request process makes it easier to contribute (integrated issue tracking is nice too).
×
×
  • Create New...