Game development presentations - a useful reference

Discussion in 'Rendering Technology and APIs' started by liolio, Sep 16, 2009.

  1. trinibwoy

    trinibwoy Meh
    Legend

    Joined:
    Mar 17, 2004
    Messages:
    12,057
    Likes Received:
    3,114
    Location:
    New York
    Really fantastic series of articles. I might be missing something but he seems to be using hardware triangle setup and rasterization in the first pass when rendering the visibility buffer. This seems not ideal for pixel sized triangles.

    Nanite works differently right? I believe it passes the raw geometry directly into a compute shader bypassing all geometry hardware.
     
  2. JoeJ

    Veteran

    Joined:
    Apr 1, 2018
    Messages:
    1,523
    Likes Received:
    1,772
    Yes, which may be their primary motivation to use visibility buffer. The CS rasterizer does one 64bit atomic to VRAM per pixel. Generating full GBuffer directly would need two passes or a spinlock per pixel.
    Now RDNA2 already has 128bit cache lines. I wonder if we could get 128bit atomics too. Then we could put more stuff into a pixel, like barycentric coords or some material info.
     
  3. Dictator

    Regular

    Joined:
    Feb 11, 2011
    Messages:
    682
    Likes Received:
    3,969
    techuse, PSman1700, Clukos and 3 others like this.
  4. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,833
    Likes Received:
    18,633
    Location:
    The North
    pharma, jlippo and Clukos like this.
  5. trinibwoy

    trinibwoy Meh
    Legend

    Joined:
    Mar 17, 2004
    Messages:
    12,057
    Likes Received:
    3,114
    Location:
    New York
    Did you write chapter 26 of RT Gems II? :-D

     
    chris1515 and JoeJ like this.
  6. JoeJ

    Veteran

    Joined:
    Apr 1, 2018
    Messages:
    1,523
    Likes Received:
    1,772
    hehe :) We discussed NVs stochastic LOD paper (which the chapter is based on) vs. the earlier Intel paper introducing 'traversal shaders' before.
    IIRC, the limitation in NVs solution is it can not switch LODs as the ray goes through the scene, it can only select LOD on generation or hit. So it cant be a full solution to the continuous LOD problem, but it is nice to hide popping of discrete LODs as shown.
     
    Krteq likes this.
  7. Remij

    Regular

    Joined:
    May 3, 2008
    Messages:
    678
    Likes Received:
    1,258
  8. CarstenS

    Legend Subscriber

    Joined:
    May 31, 2002
    Messages:
    5,800
    Likes Received:
    3,920
    Location:
    Germany
  9. CarstenS

    Legend Subscriber

    Joined:
    May 31, 2002
    Messages:
    5,800
    Likes Received:
    3,920
    Location:
    Germany
    First Siggraph Slides are up. Natascha was very quick with it this time. Thanks for that!
    http://advances.realtimerendering.com/s2021/index.html

    Advances in Real-Time Rendering in Games: Part I
    Improved Spatial Upscaling through FidelityFX Super Resolution for Real-Time Game Engines
    Timothy Lottes (Unity Technologies)
    Kleber Garcia (Unity Technologies)

    Experimenting with Concurrent Binary Trees for Large Scale Terrain Rendering
    Thomas Deliot (Unity Technologies)
    Jonathan Dupuy (Unity Technologies)
    Kees Rijnen (Unity Technologies)
    Xiaoling Yao (Unity Technologies)

    A Deep Dive into Nanite Virtualized Geometry
    Brian Karis (Epic Games)
    Rune Stubbe (Epic Games)
    Graham Wihlidal (Epic Games)

    Large-Scale Global Illumination at Activision
    Ari Silvennoinen (Activision Publishing)

    Advances in Real-Time Rendering in Games: Part II
    Real-Time Samurai Cinema: Lighting, Atmosphere, and Tone mapping in Ghost of Tsushima
    Jasmin Patry (Sucker Punch Productions)

    Radiance Caching for Real-time Global Illumination
    Daniel Wright (Epic Games)

    Global Illumination Based on Surfels
    Henrik Halen (SEED at Electronic Arts),
    Andreas Brinck (Ripple Effect Studios at Electronic Arts),
    Kyle Hayward (Frostbite at Electronic Arts),
    Xiangshun Bei (Ripple Effect Studios at Electronic Arts)
     
    #789 CarstenS, Aug 10, 2021
    Last edited: Aug 12, 2021
    chris1515, Krteq, jlippo and 8 others like this.
  10. CarstenS

    Legend Subscriber

    Joined:
    May 31, 2002
    Messages:
    5,800
    Likes Received:
    3,920
    Location:
    Germany
    Clukos, Jawed and Remij like this.
  11. CarstenS

    Legend Subscriber

    Joined:
    May 31, 2002
    Messages:
    5,800
    Likes Received:
    3,920
    Location:
    Germany
    Siggraph slides part II (link see two above) are online.
     
    chris1515 likes this.
  12. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,157
    Likes Received:
    7,965
    Location:
    Barcelona Spain
    Surfel GI is interesting and performance test are done on PS5 a stress test and some using Plant versus Zombie games more realistic for a game.

    It is probably a bit faster on XSX and faster on RDNA 2 GPU and NVIDIA GPUs.

    It looks like faster than Lumen but for geometry with too much details with overlapping surfel it fallback to SSGI.

    Not a solution for Nanite level of geometry.
     
    #792 chris1515, Aug 12, 2021
    Last edited: Aug 12, 2021
    CarstenS likes this.
  13. OlegSH

    Regular

    Joined:
    Jan 10, 2010
    Messages:
    801
    Likes Received:
    1,630
    Would you mind sharing the quote from the presentation?

    There are many cases where Lumen falls back to the SSGI.
    For example, Lumen builds up its cards cache around geometry without implicit parametrization (i.e. UVs for the cards), it does so in a cube map manner, so it does not support complexly shaped geometry with curls and self occlusion (cards can't be projected to the occluded parts of geometry, so the cards cache won't work for something like trees for example), that's where Lumen will always fall back to SSGI with current implementation.
    Unlike the cards in Lumen, surfels support arbitrarily shaped geometry and hence the self illumination of geometry.

    Following this logic, neither SDFs are. Global SDF is super oversimplified and low res and doesn't match the Nanite geometry precisely at all, local SDFs are a bit better, but still nowhere near the Nanite geometry complexity, also, both work just for non deformable geometry (doesn't support foliage, skinned models, etc).
    Surfels on the other hand are just for irradiance caching and support all types of geometry, tracing happens for geometry and should provide way better precision for GI and ambient shadowing in comparison with SDFs.
    Overall surfels seem to be more versatile and advanced solution for the cache, but also more complex to implement.
     
    #793 OlegSH, Aug 12, 2021
    Last edited: Aug 12, 2021
  14. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,157
    Likes Received:
    7,965
    Location:
    Barcelona Spain
    Page 204
    Surfels work better and has better performance 3.41 ms per seconds on a PS5 and they say they can improve performance using intrinsics and other optimizations.

    But it has some limitation for very detailed geometry in certains conditions but they don't give details. If most of the time it fallback to SSGI, this is not a good solution for Nanite. All depends of the limitations.

    Imo I prefer the surfel solution.
     
    #794 chris1515, Aug 12, 2021
    Last edited: Aug 12, 2021
  15. OlegSH

    Regular

    Joined:
    Jan 10, 2010
    Messages:
    801
    Likes Received:
    1,630
    Thanks!
    So world space tracing does not fall back to SSGI.
    The screen traces can be used in places where the SSGI works and then fall back to the more expensive world space tracing where SSGI fails.
    Since surfels are spawned in adaptive manner, using screen traces can also help with better surfels distribution in current frame, but that's not a limitation of the surfel cache when it comes to complex geometry, there is no need in screen traces at all, that's just a small potential optimization that will most likely fail since screen traces are view dependent.
     
    PSman1700 likes this.
  16. JoeJ

    Veteran

    Joined:
    Apr 1, 2018
    Messages:
    1,523
    Likes Received:
    1,772
    Well, they could build a angular representation per surfel, so local normals get a directional term when shading. Increases memory cost ofc.
    Further one could precompute directional close range(s) occlusion on the geometry, which increases storage and memory costs.
    But then high detail should work pretty well already without further SS sampling or rays.

    Interesting: Their tech only gives a incomplete scene representation from the frame buffer. Similar to how Cryteks partial voxelization in Crysis 2.
    Thus they get bounces only from some geomtery (is or was visible some time ago).
    Comparing this with DDGI, they have an advantage of accuracy from surface samples, but in a global sense their surfel method is even less accurate.
     

    Attached Files:

  17. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,157
    Likes Received:
    7,965
    Location:
    Barcelona Spain
    This is a performance problem with high details geometry overspawning surfels. Not so small if they think of an alternative. Will it works well with for example Nanite level of geometry of the first PS5 demo?They only use SSGI for this case. This is not the only the case with transparency where they don't use surfel but probe based GI.

    There is probably some solution. If it was not the case surfels would have not used in offline rendering for GI. They say themselve it is a work in progress and probably people will push the idea further.

    I prefer it to Lumen, less performant hungry work for everything out of transparency. :)

    But at least surfel arrive in realtime rendering and more people not only you @JoeJ will become interested. :)
     
    #797 chris1515, Aug 12, 2021
    Last edited: Aug 12, 2021
  18. JoeJ

    Veteran

    Joined:
    Apr 1, 2018
    Messages:
    1,523
    Likes Received:
    1,772
    Yeah, the solution simply is to generate surfels from the scene, not from what's currently visible.
    But then we have a need for global parametrization, likely adding preprocessing affecting production, and a lot of work to implement related tools.
    Another option would be to use volume probes like DDGI as fall back for offscreen stuff.
    (Maybe they did something here and i'd need to correct myself, not done yet reading the whole paper... too much of them at once :) )

    Edit: pasted in the picture of froxel grid by accident and can't remove it. (I see the same happened with earlier post - not intended)
    Funnily i had this same idea some weeks ago in regard of doing full scene fluid simulations. But i did not realize it's interesting to map surfels to the scene as well.
     

    Attached Files:

  19. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,157
    Likes Received:
    7,965
    Location:
    Barcelona Spain
    Here at least some solution exist where they can solve the problem. But is is funny something so useful was forget because it was used before in realtime but never released in any games by Michael Bunnel and it was the defacto method for GI before pathtracing. I think the patent about surfel is abandoned maybe due to the fact everyone use pathtracing in offline rendering.

    In realtime field all people were running after voxel and sdf as an alternative to triangle based raytracing.

    And it is using hardware raytracing. :) Something so useful not lost.
     
  20. trinibwoy

    trinibwoy Meh
    Legend

    Joined:
    Mar 17, 2004
    Messages:
    12,057
    Likes Received:
    3,114
    Location:
    New York
    This seems like it would be a problem since surfels only spawn for geometry that was on screen at some point. What if the ray hits back facing or offscreen geometry? You get one bounce but that’s it.

    The different approaches to dynamic GI are intriguing. There’s DDGI, Lumen, GIBS so far all taking slightly different approaches to the problem. Interestingly both Lumen and GIBS use probe grids in addition to their surface caches. GIBS seems to be the most complete in terms of accuracy and asset compatibility. Lumen’s advantage is support for older non-RT hardware but that seems not so relevant given the performance required. DDGI is less accurate as it only uses probes but is the most straightforward to implement.

    What’s clear is that native 4K will not be a thing this generation. GIBS is struggling with checkerboard 1800p on PS5.
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...