Jump to content

LordHippo

Members
  • Posts

    71
  • Joined

  • Last visited

Posts posted by LordHippo

  1. How are you measuring time? A GPU performance query, I hope.

     

    Very nice stuff.

     

    Thanks Josh.

     

    No, I'm just measuring the frame time with and without the whole SSAO rendering (copying buffers, rendering SSAO, blurring it) and subtract them.

    Can you tell me more about "GPU performance query"? I've googled it and found no results for OpenGL.

    But this time was the same in any scene I've tested, so I think it's accurate enough.

    Correct me if I'm wrong :)

  2. Fantastic work mate! Really cool stuff. I can't wait to get my own hands on this. You really should consider also packaging it up as an injector so people can use it on other games - Its a surprisingly popular mod type among Fallout, Skyrim, GTA, etc.

     

    I would be interested to see what would happen if you halved again the resolution depth buffer so its 1 quarter of its original size. See if you can find that point where the speed returns versus the image quality meet that sweet spot.

     

    Once you're done with SSAO you might want to take a look at this brand new AA method I read about last night, Its making a real big splash in the graphics community because its extremely fast and does almost as well as really high end AA settings: http://www.iryoku.com/smaa

    Open source, so you can go at it.

     

    Thanks Scott.

    I've never heard of "injectors" before, and have no idea how to make them. But it would be interesting to make them, and test my shaders in AAA games!

    I will test the quarter res depth buffer, but I think there will be some halos around the objects. Currently running SSAO with half-res depth and in %75 resolution takes about 1.5ms in 720p on geforce GTS450 which is really good.

     

    About the AA method (SMAA), I think the performance is not good. It runs on GTX295 (which is really powerful) in 1.8ms with 4x memory footprint.

    So in my opinion, MLAA is the best post AA technique for the current generation of hardwares. I'll try to implement all the AA methods such as MLAA and SMAA and compare them in terms of quality, performance and memory footprint.

  3. Hi all,

     

    Here is my SSAO implementation.

    gallery_84_111_10125.png

     

    I've got some inspirations from HBAO, but it is a completely different method and is MUCH more optimized.

    I've also implemented Crysis 1 SSAO to be able to compare.

    gallery_84_110_476856.png

     

    The time values you see on the image is only SSAO render time. Screen resolution is 1280*720, and the SSAO is rendered in full resolution on a GeForce GTS450 card. ( FPS = 1000 / time )

     

    Model from Ywa by Harry ( http://harrysite.net/work/index.php?x=browse )

     

    I've also implemented a method for false occlusion removal:

    gallery_84_111_1530502.png

     

    It's a combination of a method implemented by Crytek in Crysis1, and my own method. It still needs more optimizations.

     

    Another improvement I've made is using a half resolution depth buffer for the SSAO rendering. The method is used in Uncharted2.

    As you can see on the picture, this method almost doubles the speed of SSAO, with almost no visual artifacts.

    gallery_84_111_402990.png

     

    From a technical point of view, the main bottleneck of the SSAO algorithms is their texture fetches. More specifically, they heavily do GPU cache trashing, because of their random sampling basis. Also cache trashing decreases shader performance dramatically.

    So any method that reduces cache trashing would boost up the SSAO.

    By using a half resolution depth buffer, one of the main benefits is that texture sampling points get closer, so the amount of cache trashing is reduced.

    Also as seen in the results, there is no noticeable difference or artifacts.

     

    So with this technique, you gain much more performance, with no visual cost! That's the magic of OPTIMIZATION :(

     

    I will share it to the community when I'm done with false occlusion removal optimizations.

     

    Also check the album page for more shots.

     

    BTW, I'll be happy if anyone have any visual or technical suggestions, cause I want to "get rid of it, once and for all" :P

    • Upvote 3
  4. Both Skyrim and Crysis also uses hundreds of decals to floors walls, and even other objects. I noticed a heavy use of decals to add variance to models.

     

    Note, that there are two techniques that I would want for Leadwerks:

    1. The ability to apply decal textures to any model / surface in-game, without the FPS overhead.

    2. A snow / rain shader OR "projector" light which can apply a surface normal

     

    You guys asked for screenshots, so here they are!

    Do you mean a light that modifies scene normal of its affected surfaces?

    What I understand is that something like a rain shader blends an animated rain normal on top of the scene normal. Is that correct?

     

    BTW, the first one is quite simple. It is a projected texture that blends on top of the g-buffer based on the scene depth. But it should be done between the g-buffer generation, and lighting step. So without having access to these steps of the Framework, the only way to do this is to rewrite the whole Framework.

    One other way that we currently use is to generate a decal mesh in an offline build step, and render it with overlay, depth mask and alpha blend settings. The results are good enough for us, as our decals can have normal and specular maps. But as it makes build step longer maybe I'll write my own Framework someday.

  5. Aggror posted a projector light which was invaluable, but what I'm talking about is normal-based texture lights.

     

    Crysis used them heavily for rain and snow effects using the normals to apply a speckled texture. While playing Skyrim I've noticed they took it one step further than snow, using the alpha of a texture to add vines to rock walls, etc.

     

    I would absolutely love if this was integrated into LE3 and as a patch to a version of LE2

     

    Please!

    Can you explain more about this technique?

    Or maybe a screenshot or a reference where it is explained?

    Maybe I'll do it if its worthy :)

  6. wow!

    Really amazing!

    Finally we see some real AI in leadwerks.

    I'm going to buy Eki One ASAP!

    Thank you Pixel for letting us know about this brilliant middleware.

  7. Really nice work Pixel.

    I saw the topic today and find it really useful.

    If a working demo of the integration comes out, I will surely buy it.

    (Indeed I'm going to buy it anyway :) )

     

    BTW maybe I will have some free times, and I will help on the integration if I can.

  8. There are a few different configurations that get used depending on hardware.

    I am looking for the gbuffer format.

    Is this table correct?

    post-84-0-49155800-1317234994_thumb.png

     

    Edit: what about HDR rendering? Does it affect color buffer format? Something like RGBA_8 to RGBA_16?

  9. Hi all,

     

    I was doing some lighting improvements, and wanted to know the exact frame buffer format?

    I saw it in an old document describing the deferred lighting in LE. But when I read mesh.frag I see some differences.

    So I thought there would be differences in bit numbers.

     

    So the question is: How many bits each render target have?

  10. Anything that is in the Private folder inside the SDK can only be used in the editor for testing/show. To use in your own standalone program, you will have to buy the models from dexsoft. There is a readme file called dexsoft-games.txt in the Private folder. Currently there is only the viperscout model and the spruce tree in the Private folder.

     

    Got it. Thanks. I should read "readme"s more :(

  11. well the only tree that came with 2.43 is the spruce_2... and that works ok as long as you only use it in the editor. if you are trying to use it with a standalone program, you will be unable to do so. what one are you having problems with?

     

    Thanks a lot.

    I had the same problem and I didn't realized it has something to do with the trees! ( There are about 2000 models in the scene I had problems with! )

     

    So was this mentioned anywhere?

    If not, what anyone is supposed to do when he faces such a problem?!

     

    Also, is there any other model that is the same?

  12. I voted for physx, beacause I have used it for a physics based behavior controll project, that simulates a 3 DOF robot in near future in a field containing 10 foreign controlled robots and a passive body, many times ( 10000 simulations, each lasts about 10 seconds in simulation world time! ).

    Back then I test it on both LE2's Newton and physx. Physx was about 2.5 times faster! By the way the GPU implementation is really nice, since some physics calculations are really parallel processing ready!

     

    EDIT: you can read more about the simulation here.

×
×
  • Create New...