Renderer General Discussion

Discussion in 'Mobius Engine Project' started by Gen, Mar 9, 2012.

  1. Gen

    Gen

    This is halloween! This is halloween! Member
    309
    0
    0
    The Mobius Engine
    So, until we can get sub forums for the sub forum so we can sub forum while we sub forum, we'll just aggregate any general rendering discussion here.

    For now, keep it to ideas. Don't keep posts to one or two words, instead if you think your idea is great, try to back it up with reasons why it's great.

    A good example of explaining a reason to put time and effort into said feature:
    <X Feature here> is awesome, because it would improve quality with <low or no> performance impact. You can find examples of it at <URL where said technique is used>, where they <provide some kind of pants shittingly important details about the implementation, performance characteristics, comparisons with similar techniques, or all of the above>.

    A bad example of explaining a reason to put time and effort into said feature:
    <X Feature here> is awesome, because <X engine here> uses it.

    Just a note about any feature that is being considered: consideration does not mean it will for sure make it in. A developer's interest doesn't mean it'll make it in either. Do not take either of these things as promises.

    That said, here's a couple of things that will likely make the cut:
    User facing features that will more than likely make it in thus far:
    Gamma Correction
    Deferred Lighting (not full blown deferred shading, mostly a material system consideration)
    Energy Conserving Specularity

    Lower level technical features that will more than likely make it in thus far:
    OpenGL 2.1 "Compatibility" contexts for older hardware
    OpenGL 3.2 "Core" contexts for newer hardware
    GLM to handle vector math and noise map generation functions (unless someone has a better vector math library in mind)

    Things that are being worked on now:
    Cross platform OpenGL Context manager. Mac version's being implemented now, Windows and Linux will follow in that order.
     
  2. StreakThunderstorm

    StreakThunderstorm

    Member Member
    216
    0
    0
    Mecha Madness
    SSDO, Screen Space Directional Occlusion is awesome because it would improve graphical lighting quality. Screen space global illumination could be implemented with it easily which would ramp graphics up. Its as easy as implementing SSAO and takes about the same computing power. You can easily lower samples to make it run faster. Coupled with Deferred lighting, it could turn out looking pretty sweet. Obviously with SSDO, you'd get the same features as SSAO but with colored shadows and one light bounce.

    http://kayru.org/articles/dssdo/
    http://www.mpi-inf.mpg.de/~ritschel/SSDO/
    http://www.ogre3d.org/forums/viewtopic.php?f=11&t=46794&sid=000c35eb277fa568984e1b69dfa2a3a1
    http://www.geeks3d.com/20100619/ssdo-screen-space-directional-occlusion/

    The guy even has open source code for it on the ogre link I sent you. He released his game's source code and it has the SSDO he implemented in it.
     
  3. Covarr

    Covarr

    Sentient Cash Register Member
    4,222
    0
    16
    Trapped in my own thoughts.
    Two stageplays, a screenplay, and an album
    I'm gonna make a strong request for FXAA support. It's pretty much a must-have if you want AA on a low-end system without the speed hit.
     
  4. Gen

    Gen

    This is halloween! This is halloween! Member
    309
    0
    0
    The Mobius Engine
    I'm still looking at different screen space AA techniques to accommodate deferred rendering. I'm leaning moreso to SMLAA than FXAA however, since the performance hit is about on par with FXAA, and can provide about the same if not better quality than MLAA.
     
  5. StreakThunderstorm

    StreakThunderstorm

    Member Member
    216
    0
    0
    Mecha Madness
    SMAA is lovely. Very cheap too.
     
  6. Mr Lange

    Mr Lange

    A wise guy eh. I know how to DEAL with wise guys. Member
    1,286
    0
    16
    The Land of Waldos
    Sonic Utopia, Sonic Overture
    ...volumetrics...*slowly inhales cigar*
     
  7. Aerosol

    Aerosol

    FML and FU2 Member
    10,259
    2
    18
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    I'd love for whatever method games like Just Cause and Skyrim use to stream large game worlds to be implemented into Mobius Engine. I don't even know if it's an actual method or not. What I do know is that, somehow, the Havok Physics engine limits how big levels can be in Unleashed and Generations, and that's not a limit I think the Mobius Engine should have.

    Yes, I've been playing quite a bit of Skyrim recently. I also have fond memories of Just Cause 2, thinking about how awesome it would've been if you could boost from island to island as Sonic. Imagine that? A 20 square mile playground! That'd be impossible for Havok...shouldn't be for Mobius.
     
  8. Candescence

    Candescence

    Member Member
    1,966
    0
    16
    Sydney, Australia
    3D Indie Stuff
    Last I checked, Skyrim uses Havok as well (like nearly every other big-budget game these days), so that physics engine isn't a limiter of how large your game world can be. CryEngine 3, if I remember correctly, has streaming so efficient that it can have a map larger than the Earth itself. And this is on top of having physics and realtime GI. It's one major reason I conside CE3 one of the finest engines in the industry, and far superior to the likes of UE3.

    Of course, for a game like Sonic where a focus is on going fast, streaming quickly is a must.
     
  9. Dario FF

    Dario FF

    Tech Support Hotline Tech Member
    Havok indeed has a limitation at large levels due to floating point calculations losing precision when they're in really big numbers, but most really large open world games using it like Skyrim just use a trick which is shifting the entire world to be centered at a new position every time the player changes to another world cell, and reposition the objects to it.

    EDIT: I'm not proposing to use Havok, just merely clarifying a point. Sorry for being OT. :v:
     
  10. Candescence

    Candescence

    Member Member
    1,966
    0
    16
    Sydney, Australia
    3D Indie Stuff
    We're not using Havok, rather, I believe we're using Bullet, which is basically the most well-known and reliable open-source alternative, I think.
     
  11. Aerosol

    Aerosol

    FML and FU2 Member
    10,259
    2
    18
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Oh is that so? Well, does Bullet have a similar problem? If so...will this little workaround work for a modern Sonic game? Sonic moves reaally fast, after all.
     
  12. Candescence

    Candescence

    Member Member
    1,966
    0
    16
    Sydney, Australia
    3D Indie Stuff
    Not sure, but as long as most of the physics objects in the world are inert when a world cell is changed, I imagine that little workaround would work easily. Physics objects that are inert go into 'sleep mode' until something happens to them, thus not using any processing power whatsoever.

    Anyway, I'd like to throw out two rendering ideas:

    - Voxel-based terrain, based off the Transvoxel terrain system from the C4 engine. Heightmaps have been used in terrain for years, but their limitations are obvious. Look at any Minecraft fly-over video (or just play Minecraft), and you'll see terrain formations that, despite looking blocky, look far more natural than anything you'll see in any heightmap. Arches, caves, cliffs, the works. And, play it right, and changing the terrain on the fly in-game might be possible, too, allowing for gameplay applications, as well!

    - Tesselation, geometry instancing or whatever, whatever the hell will allow us to do this:



    Other people have done it with equally stunning quality. It's been done in Unity, for Christ's sake. If there is one thing that will make this engine stand out among the rest, it is this. And you could probably even turn it off for people with less powerful computers. I want to see Sonic running across an open field in real-time, with actual grass blowing in the wind, not that cardboard cut-out crap you see in every game these days. I don't care if I need a beast of a computer to actually run it, it would be one of my graphical wet dreams (other wet dreams include fluid dynamics, among other things).
     
  13. Aerosol

    Aerosol

    FML and FU2 Member
    10,259
    2
    18
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    That's a pretty specific effect. How much use would it really be? An open world game set in a land filled with grassy plans? I could see this effect being of use. A Sonic game? I don't see the effort one would have to go through to get it to work worth it.
     
  14. Candescence

    Candescence

    Member Member
    1,966
    0
    16
    Sydney, Australia
    3D Indie Stuff
    I imagine it would be good for foliage in general, really. Foliage rendering in games these days is seriously crap, it's just a bunch of billboarded geometry placed in pairs in a cross shape to try and give the illusion of proper 3D geometry, but it looks terrible up-close. Having an option for better foliage would be a nice idea, what with most of Sonic's environments being outdoors.

    As I said before in another topic, I want a playable version of that Sonic 06 tech demo that originally blew everyone's socks off, dammit.
     
  15. Aerosol

    Aerosol

    FML and FU2 Member
    10,259
    2
    18
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    off-topic(kinda): which tech demo are you talking about, exactly? I don't remember it.

    The effect certainly looks pretty, but I'm just not sure if the work required to pull it off would be worth it. I'm open to being proven wrong, though.
     
  16. Candescence

    Candescence

    Member Member
    1,966
    0
    16
    Sydney, Australia
    3D Indie Stuff
    You know, the very first tech demo for Sonic 06 that was shown at E3 2005 where Sonic was running around in a green field, fighting Eggman's robots, and finally ends with him facing off against hundreds of robots and going Super Sonic. It was spectacular at the time. It also came with a couple of screenshots including a shot of Sonic in the air above an expansive green field. Probably the easiest kind of tech demo to do, I reckon.



    I've talked with Gen about this before, before the whole engine thing, and he reckoned it was certainly doable. Hell, with the video I posted, the guy who made it did his own masters thesis on the subject which is viewable online, so we have at least one way of doing it to go off of. Another example:



    This guy did short grass in insane quantities... With OpenGL and a graphics card that, by today's standards, is terrible. There's apparently whitepapers on the algorithms and approach, can't find any yet, but it's certainly an excellent proof of concept. I hear he's working for EA Sports, now. In any case, though, if there is any way to make this engine stand out, it's something like this.
     
  17. Aerosol

    Aerosol

    FML and FU2 Member
    10,259
    2
    18
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Well if it's rather simple to pull off, I don't see why not. I still think it's awfully specific but that doesn't matter if it's not difficult either.

    EDIT(definitely offtopic): And now that I've seen that tech demo again, I can't help but notice similarities to modern gameplay. Makes sense, because 06 did have those Mach Speed sections.
     
  18. Candescence

    Candescence

    Member Member
    1,966
    0
    16
    Sydney, Australia
    3D Indie Stuff
    Well, it's only 'simple' in how there's a couple of actual documented techniques out there, but... As I said, I know it's specific, but it will make this game stand out amongst the pack, because, really, no game of actual note (except possibly sports games, but they don't count because they're the same shit every year) makes use of this sort of thing.
     
  19. Aerosol

    Aerosol

    FML and FU2 Member
    10,259
    2
    18
    Not where I want to be.
    Sonic (?): Coming summer of 2055...?
    Well we've just come about full circle haven't we? Let me just state my stance on this clearly. If the effort to make this work is deemed 'worth it' by the coding types around here, then I'm okay with it. Do note, however, that whatever implementation of "fancy foliage" we use, it has to be optimized to be able to rendered extremely quickly and still look good. Citation needed on this, but Sonic runs at about 60mph or so in Unleashed. All the pretty foliage in the world will look like garbage if it keeps popping in due to Sonic moving too quickly.
     
  20. Falk

    Falk

    Member Member
    1,568
    0
    0
    http://madebyevan.com/webgl-water/

    oh my god