Saturday, February 27, 2010

Old Timers vs Real-Timers

Some time ago, I've heard from an insider of the game industry what's the next big thing... the luminare of knowledge said that it was Global Illumination in Real-Time... aha !! Why didn't anybody think of that ? 8)

I guess that that's going to be the next fad... probably driven by CryTek which now has some YouTube videos about this famous Real-Time GI... I mean, "exaggerated color bleeding".

Aside from the fact that cheap color-bleeding is far from being proper global illumination, the video doesn't even try to show any decent anti-aliasing.. because of course, that company is in the business of doing more stuff in real-time rather than getting the basics right.
If you ask to Pixar engineers, they'll tell you that they don't even dare to dish cheap anti-aliasing to the artists. Not today, not 20 years ago.
But in the games we don't care and we have to swallow this BS MSAA that NVidia, AMD and everybody else gives us.

You can bet that a bunch of smaller developers will be rushing to match CryTek with their "Real-Time exaggerated color-bleeding". This is just how things are..
My suggestion is to instead follow what Id Software does.. the MegaTexture stuff.. that is what is more important.. dealing with large quantity of data, streaming those data.

The average player can be fooled that he/she (most likely "he") is seeing something awesome because "shit blows up".. and that player can't quite spell out the quality.. but then again, another CG movie comes up and for some reason it's not quite like the games on the monitor..

Programmers also need to be able to judge things for themselves. Graphics programmers should forget for a minute about real-time and go investigate on what sets production rendering apart.. acknowledge that by analyzing the image quality rather than overcompensating by cranking up the HDR bloom.



  1. Umm propogating light volumes? does that mean 3d textures?

    Also what is a 'homogenous participating media'?

    some of the names that they come up with...

  2. ...I think that they are trying to use Siggraphish terms..
    They year expecially, game companies are pushed to show their presence at Siggraph.. mumble mumble

  3. Kaz-graphics-prophet!

    You speak the truth, but the masses will likely ignore your words simply because they prefer the road of 'instant visual gratification'. Keep your course and sooner or later, things will change. :)

  4. woooo.. what will happen is really just down to the "movers and shakers" (the tech leads, many of which obviously have no time to actually work things out themselves).

    I suppose that things will improve regardless, but it's sad to see so many people being sheep.. and when it comes to graphics, one can't even use the excuse: "but we put more effort into gameplay".. no you aren't, you are doing graphics not gameplay nor dynamics.


  5. Isn't the cost of the hardware a limiting factor at some point? How are you going to get the 'basics' right when your target is a $1000 PC? I think the best you can really hope for is that the next generation of commercial renderers looks better than the current one. Small incremental improvements!

  6. Mr. Paul,

    If everyone keeps hoping and adapting, then who is going to make the changes ? 8)

    I don't see why the developers shouldn't take a more active role in this.. actually I see why: because they hardly ever try to innovate.
    It's all about getting the best results possible with the hardware at hand.

    It should be clear by now that some older issues should be dealt with first. For example: order-dependent translucency, cheap anti-aliasing, triangular meshes..
    ..those three very basic things are more important than some "GI" fad.

    Get the basics right first and then see the productivity increase: making LODs and writing special code to deal with translucency is always such a waste of time.
    And better anti-aliasing and texture filtering is subtle but is going to be increasingly more important for things such as hair rendering and displacement mapping.

    Also who is going to present anything of value if shading is all left to basically Microsoft and the HW makers ?

    It seems to me that only Id Software and Epic are actually pushing for more radical changes in rendering.. but they do that by putting more weight to the software.. instead of working around limitations imposed by some mythical hardware God.

    There is no need for a supermultinational company to come up something newer in the field.. in fact, one could start by looking into off-line rendering of 30 years ago ;)

  7. Umm, I still dont understand what changes do you want to see taking place?

    Aliasing is an artifact of pixel based displays and any form of anti-aliasing even the most expensive one will not solve it completely.

    Translucency means overdraw. You can not render a complex scene made up entirely of expensive translucent materials without running into fillrate limitations. Infinite fillrate would be nice...

    Triangular meshes, I dont know... There must be a reason why a triangle became the basic primitive for rendering. I suspect its because we are rendering 3D geometry. 3 points in 3D are planar? Some experimentation must've gone into it at some point.

    How did the offline rendering 30 years ago handle those issues?

  8. This comment has been removed by the author.

  9. Arghh damned blogger.. where is my comment ? (luckily I copie dit into the clipboard before submitting 8)

    - Anti-aliasing can and should better for the foreseable future. Quality definitely makes a difference there. It shouldn't be optional nor cheap (box filtering, only at the edges)

    - Translucency is a pain to handle with standard Z-Buffer. It's a problem that should be dealt with at the lower level.. we can't go on pretending that translucency isn't important.. it's as if the Painter's algorithm never left us !
    DX11 seems to make some allowance for it.. but it should be there by design, not somethign that one implements in a tech demo and that's it.

    - Triangular meshes are there for real-time because rendering triangles is more simpler to render.. but with static (as structure) triangular meshes LOD is non-existent.
    Bezier patches and NURBS were more popular before, subdivision surfaces are more popular now. In any case you get a base mesh for animation and then refine the mesh at rendering time as needed to avoid showing polygons' edges.
    Pre-smoothing is a waste while using coarse meshes for rendering is just ugly..


  10. GPUs support the 'alpha to coverage' feature:

    Basically the GPU modifies the MSAA mask per pixel based on the alpha. I was thinking that if the HW supported 256xMSAA you could have 256 levels of sort independent translucency =)

    Of course if you get multiple translucent pixels on top of each other you would need to somehow make sure that the alpha to coverage mask is different for each one.

    So if that issue can be solved somehow and your HW had a fillrate capable of handling resolutions of 256xMSAA (720p becomes 20480x11520) then you have a solution for anti-aliasing and translucency.

  11. Alpha to Coverage (A2C) looks miserable for anything less than 8x MSAA.. and NVidia cards can't quite do 8x MSAA in my current project.. for some reason (ATI can though).

    It's still very much an hack because it makes you choose between AA and some limited translucency.

    The pattern it uses is regular.. so an A2C translucency often looks like some sorry CGA game ( )

  12. Yes the current implementation is like you say.

    But if we can have 256x MSAA with some good way to generate a non-repeating mask then we might see some acceptable results.

  13. Somebody went further and implemented a rudimentary A-Buffer (original 1984 paper not available outside the ACM site 8( ) with DX 10.. with the option of a faster solution for DX 10.1 and up ->
    ..though, considering that it works on a rather limited number of samples, I'm not sure exactly what's the advantage over MSAA (^^;)

    ..unfortunately, the paper (PDF) on which the demo is based on doesn't really spend much time explaining the negatives or comparing to MSAA.. TRICKYY !!


  14. A comment on this long article/rant about the company related culture/team bonding?

  15. Mr. Freddy,

    I only read it a little because it's too long and because I'm sure that there is nothing terribly new about it ...could be me writing about life in the US for that matter ;)

    These things are very subjective.. one day you love a place and a culture, the next day you cannot stand walking out of the house.

    One thing about Japan is that people are normally nice, so to really think negatively one has to start picturing how people are fake and silently hate you.. but that's madness because you may as well start "hearing voices" ;)

    For the little I read, the guy doesn't seem to care too much for chicks, and if you are in Japan and don't care for the girls, then I think that you are doing it wrong..

    Every foreigner worth his salt will tell you that the cuties are one of the chief reasons for staying in Japan.


  16. Davide, I think you should find some time and read it all because there are some arguments that actually makes sense related to the way society seems to be evolving.

    Unfortunately the good stuff is buried under the rant, but I think there is good material to discuss about social conventions and people interaction/being part of the team.

    It talks also about chicks but mistaking being nice (to a customer) with being a sort of servant then the author deranges and starts talking about hostess bars... :)

  17. Mr.Freddy,

    To me the guy is just another guy that lives in Japan.. there are many of those 8)
    His rants are pretty common.. ..he's homesick and he has voice on some famous otaku site.. oh well.

    I gave those 10 minutes to read briefly and read some replies. Because you and somebody else pointed the article to me, but otherwise I'm not going to spend 1-2 hours of my life to read some dude's rant that "knows Japan" ;)

    You are right, I'm sure one there are points that one could go and analyze. But to do that it would take forever and it would eventually all come down to two things:

    1) Everyone needs to experience things personally

    2) Many variables, including character, social and economical environment and time spent, lead to a wide range of opinions