HBAO+ Compatibility Flags Thread

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by MrBonk, Mar 3, 2014.

  1. MrBonk

    MrBonk Ancient Guru

    Messages:
    3,287
    Likes Received:
    212
    GPU:
    MSI RTX 2080
    That just reminds me I keep needing to post my Revelations mod. Too lazy.
     
  2. GroinShooter

    GroinShooter Master Guru

    Messages:
    440
    Likes Received:
    98
    GPU:
    GTX 1080 SC
    MGS Phantom Pain's HBAO flag (0x00180000) seems to work in Metal Gear Survive with zero issues. No bleeding etc. Looks and works just as it does in Phantom Pain.
     
    Susahamat likes this.
  3. MrBonk

    MrBonk Ancient Guru

    Messages:
    3,287
    Likes Received:
    212
    GPU:
    MSI RTX 2080
    Nice. Would you post some shots when you have time?
     
  4. GroinShooter

    GroinShooter Master Guru

    Messages:
    440
    Likes Received:
    98
    GPU:
    GTX 1080 SC
    Here's a simple Off/On

    [​IMG]

    AO Off

    [​IMG]

    HBAO+ (0x00180000)
     
    Susahamat likes this.

  5. MrBonk

    MrBonk Ancient Guru

    Messages:
    3,287
    Likes Received:
    212
    GPU:
    MSI RTX 2080
    Thank you.
     
  6. AKDragonPC

    AKDragonPC Member

    Messages:
    34
    Likes Received:
    2
    GPU:
    1080 ti FTW3 Hybrid
    Anyone got HBAO working in Devil May Cry HD Collection?
     
  7. Dragam1337

    Dragam1337 Ancient Guru

    Messages:
    3,060
    Likes Received:
    1,876
    GPU:
    Rtx 3090 Strix OC
    Anyone know what bits to use to get hbao working in final fantasy xv ?
     
  8. AKDragonPC

    AKDragonPC Member

    Messages:
    34
    Likes Received:
    2
    GPU:
    1080 ti FTW3 Hybrid
    Why not just use in-game VXAO?
     
  9. Dragam1337

    Dragam1337 Ancient Guru

    Messages:
    3,060
    Likes Received:
    1,876
    GPU:
    Rtx 3090 Strix OC
    It's 4 times more demanding than HBAO, and not that much better in quality.
     
  10. jorimt

    jorimt Active Member

    Messages:
    65
    Likes Received:
    45
    GPU:
    EVGA RTX 3080 FTW3
    Because VXAO has a small radius with extremely selective coverage in FFXV, and a very disproportionate performance hit for what little coverage it does offer outdoors:

    [​IMG]
     

  11. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,110
    Likes Received:
    466
    GPU:
    RTX 3080
    It actually has a big radius as it's world space volume based shadowing and thus it just doesn't work for smaller details. It's a mystery really why SE decided to cut off the HBAO+ part from ShadowWorks library as generally VXAO is supposed to work with HBAO+ as each method provide contact shadowing for different scales of world geometry.
     
  12. JonasBeckman

    JonasBeckman Ancient Guru

    Messages:
    17,518
    Likes Received:
    2,912
    GPU:
    MSI 6800 "Vanilla"
    The engine also has HBAO+ support but I'm not really sure it works in the current version of the game, there's actually a couple of different options after one dumps the text strings via for example Microsoft's own Sysinternals utilities or Process Explorer specifically. :)

    [NVIDIAGameWorksSettings]
    NvidiaHairWorks
    NvidiaVXAO
    NvidiaHBAO
    NvidiaTurf
    NvidiaShadowLibs
    NvidiaFlow
    NvidiaAnsel
    NvidiaHighlights
    NvidiaSLI

    For the full thing for the NVIDIA settings.

    Hairworks, VXAO, TurfFX, ShadowLibs these are in-game options already.
    Ansel, Highlights these are likely controlled by GeForce Experience or the Ansel utility rather than the game itself.
    SLI, unknown but I assume it's somewhat supported depending on the driver used with the game or just a custom flag via inspector.

    Leaving HBAO and Flow with Flow having been a separate option but it now appears to be part of the screen effects which also affects other shaders and for HBAO it's probably part of the game engine but it might not be implemented currently or it's disabled for unknown reasons such as compatibility with the way the game renders or not being fully implemented or configured currently.

    For whatever reason the developers went with their custom AO instead (SSAO of some sort I assume.) and then VXAO if toggled on. I can't really be certain if HBAO works since I'm on AMD and the shadow libs are grayed out but with the right in-game areas it should be more easily comparable. Meaning chapter 3 and some grassier terrain I'm thinking.


    EDIT: Rooting around in the dumped text strings also provides other hits on HBAO. :)

    Black.Sequence.PostEffect.SequenceActionSetNVHBAO
    Black.Sequence.PostEffect.SequenceActionSetNVHBAO.BLUR_RADIUS_TYPE
    Black.Sequence.PostEffect.SequenceActionSetNVHBAO.DEPTH_CLAMP_TYPE

    .?AVSequenceActionSetNVHBAO@PostEffect@Sequence@Black@@

    For VXAO there's these.

    Black.Sequence.PostEffect.SequenceActionSetNVVXAO
    Black.Sequence.PostEffect.SequenceActionSetNVVXAO.BLEND_MODE_TYPE
    Black.Sequence.PostEffect.SequenceActionSetNVVXAO.VOXEL_RESOLUTION_TYPE
    Black.Sequence.PostEffect.SequenceActionSetNVVXAO.VOXEL_DIMENSION_TYPE

    NVVXAO_
    NVVXAO_.pinName_
    NVVXAO_.name_
    NVVXAO_.connections_
    NVVXAO_.pinValueType_

    .?AVSequenceActionSetNVVXAO@PostEffect@Sequence@Black@@

    (And some voxel settings.)

    The pin things don't exist for HBAO though whereas they do exist for Flow, Hairworks and Shadow LIbs in addition to VXAO.

    Which might mean it's not currently functional but it was either planned at one point or it's coming in a later patch. :)
     
    Last edited: Mar 17, 2018
  13. jorimt

    jorimt Active Member

    Messages:
    65
    Likes Received:
    45
    GPU:
    EVGA RTX 3080 FTW3
    Yes, my usage of "radius" was a casual reference to what VXAO visibly applies to in that scene; if you look at the AO off vs. VXAO in my comparison image, VXAO coverage appears to entirely stop just past the closest middle-right cluster of trees.

    VXAO does have greater coverage in other scenes, but said increase in coverage seems to be mostly limited to interiors. They obviously reigned in it's usage for performance purposes (alternately, that may just be how VXAO is; don't know enough about it to say myself), because it's demanding enough as is.

    Their default AO solution appears to be temporal, and pretty integral to the original look of the game (those distant tree models do not look like they were intended to go AO-bare, for instance), so maybe HBAO+ implementation proved to too problematic (as you say, for whatever reason) to be worth implementing? Because I can't see another reason, especially this being a GameWorks title.
     
    Last edited: Mar 17, 2018
  14. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,110
    Likes Received:
    466
    GPU:
    RTX 3080
    This is a perfectly obvious performance optimization as running world space ray marching without any Z limit will result in non realtime fps most likely.
     
  15. jorimt

    jorimt Active Member

    Messages:
    65
    Likes Received:
    45
    GPU:
    EVGA RTX 3080 FTW3
    No doubt, which brings us right back to HBAO+ as supplement, as it usually is with other GameWorks titles featuring VXAO.

    Ah well, seeing as none of us likely know any of the devs, it not like we're going to get a direct answer as to why HBAO+ isn't a feature. We'll just have to wait for a flag to eventually show up, wait for it to be patched in, or resign to the fact that it may never be supported in this game I suppose.
     

  16. dr_rus

    dr_rus Ancient Guru

    Messages:
    3,110
    Likes Received:
    466
    GPU:
    RTX 3080
    AFAIK, HBAO+ has similar distance cut off optimization although I'd imagine that it can be further than VXAO's as it's less expensive in general.
    One thing to remember though is that VXAO is res independent while HBAO's cost goes up considerably with resolution increase.
     
  17. jorimt

    jorimt Active Member

    Messages:
    65
    Likes Received:
    45
    GPU:
    EVGA RTX 3080 FTW3
    All things considered then, we've probably answered our own question; it was likely a mix of artistic and performance purposes that HBAO+ ultimately wasn't implemented, because even systems with the minimum requirements can easily afford the default AO, imperfect as it is.

    Time will tell, I guess.
     
  18. JonasBeckman

    JonasBeckman Ancient Guru

    Messages:
    17,518
    Likes Received:
    2,912
    GPU:
    MSI 6800 "Vanilla"
    Yeah higher draw distance is possible but it's not something you see often in games due to I assume it's from the performance trade-off, far as I know I think Assassin's Creed Syndicate is one of the few games that really push the distance of the effect when the user enables the HBAO+ ultra setting though it also has other advantages including using a second sample for correcting occlusion errors and it increases the resolution of the ambient occlusion too though all this in turn means it requires a pretty good GPU to run well although VXAO would likely be far more severe on the framerate if a similar method was attempted.

    From my understanding VXAO is pretty optimized but still quite costly. - https://developer.nvidia.com/sites/...s/vxao/atatarinov_alpanteleev_advanced_ao.pdf This covers a bit of both HBAO+ and VXAO in more detail.
    (And the GeForce.com guide for AC Syndicate goes into more detail on the changes brought by HBAO+ Ultra.)

    I think Fallout 4 could also be a sort of unofficial example of this since the console commands allows users to tweak several variables related to the GameWorks settings that game uses, HBAO+ and the volumetric tessellated sun-rays for example.

    And I guess NVIDIA might be showcasing ray-tracing this Monday if the current rumors are accurate, wonder how they have solved that considering it's a very costly effect rarely used in real-time such as games and on consumer hardware.
    https://www.resetera.com/threads/ru...ameworks-in-partnership-with-microsoft.30042/


    And temporal huh, that might explain things if the default AO is using something like that, shouldn't be too hard to check either.

    EDIT: Yeah it seems so, there's some factors for it at least.

    temporalNearThreshold_
    temporalFarExpFactor_

    Or to take the full list from the text strings.

    Black.Sequence.PostEffect.SequenceActionSetSAO
    contrast_
    bias_
    falloffRadius_
    spiralTurns_
    blurThreshold_
    blurThresholdNormal_
    blurFalloff_
    blurDistFalloff_
    numSamples_
    temporalNearThreshold_
    temporalFarExpFactor_
    skinAOStrength_
    eyeAOStrength_
    backscatterAOStrength_
    directionalLightAO_
    directionalLightAOStrength_
    directionalLightAOMultiplier_
    directionalLightAOContrast_
    directionalLightAOFalloffStart_
    directionalLightAOFalloffEnd_
    enableNewFoliageAO_
    foliageAOStrength_
    foliageAOMultiplier_
    foliageAOContrast_
    foliageAOFalloffStart_
    foliageAOFalloffEnd_

    (And a lot more.)


    Doesn't really help with ambient occlusion though, if that's what they are using it might be the other way around and it'll be difficult to implement HBAO+ instead due to this requirement.

    AA appears to be a variant of SMAA from what I'm seeing too but that's unrelated to AO or HBAO+ support. :)

    Depends I suppose, VXAO in world space and then the games default AA in screen space which is also where HBAO+ would be. Temporal HBAO+ then? (Which I don't think exists at the moment.)
     
    Last edited: Mar 17, 2018
  19. jorimt

    jorimt Active Member

    Messages:
    65
    Likes Received:
    45
    GPU:
    EVGA RTX 3080 FTW3
    Yup, that was my assumption from the beginning also; temporal element may make HBAO+ implementation impractical. This game seems to rely heavily on frame blending for a number of its effects as well.

    The default AO in this game reminds me of the solution used in Deus Ex: Mankind Divided, which is also temporal, and has a lot of the same artifacts.

    [offtopic]
    And not to get too off topic, regarding TAA, I'm a bit disappointed in this game's specific implementation; while it's decent (and better than nothing), for all the blur and ghosting it adds, it has some pretty poor subpixel coverage, especially with specular highlights. I've seen much better, with less blur and more stability in other games (the recent AC: Origins comes to mind).
    [/offtopic]
     
    Last edited: Mar 17, 2018
  20. MrBonk

    MrBonk Ancient Guru

    Messages:
    3,287
    Likes Received:
    212
    GPU:
    MSI RTX 2080
    Nvidia added to hbao+ for distance with syndicate didn't they┬┐Maybe if enough people ask they will add it. As the in game ssao is pure garbage and the TAA doesn't help it at all and causes some smearing in some sections of overlap. When I played the demo I disabled ao completely as it is just so obscenely bad for the performance hit. The trade off just isn't worth it. I couldn't try VXAO in the demo but I imagine the performance on my 980 would not be adequate.


    Also I don't think the ao is being filtered by the ao. Not that I can see anyway, not like the ground dithering or the shadows.
     

Share This Page