Skip to content

HBAO pass is not the "real" HBAO, but N8AO #27295

@Rabbid76

Description

@Rabbid76

Description

HBAO pass is not a "real" HBAO, but N8AO

The HBAOPass and HABOShader implement an algorithm presented here: N8AO
This algorithm is a kind of mixture of SSAO and HBAO, but not the original HBAO algorithm.
Actually, this is not a bug or judges the quality of the algorithm, it is just a naming issue.

Solution

Since there are various ambient occlusion algorithms around, it would be nice to have a pass where the AO algorithm can be simply selected, this pass could completely replace the HBAO pass.
All the AO algorithms operate on the same source data and produce a result in the same format. The algorithms differ only in some details of the internal formulas and the sampling of the hemisphere. It should be possible to activate the different algorithms simply with preprocessor definitions in the shader.
The use of the names AOPass and AOShader would also not indicate a particular algorithm like the name HBAOPass.

Alternatives

Rename HBAO to N8AO or something else.

Additional context

Since I implemented the HBAO pass, I feel responsible for this. The problem arose from a lack of knowledge. I was familiar with the math behind various AO implementations, but I paid less attention to the names than to the algorithms themselves. I found my mistake by reading some AO papers in the last few days and I feel guilty. To compensate for this, I would like to provide a solution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions