aboutsummaryrefslogtreecommitdiff
path: root/doc/_sources
diff options
context:
space:
mode:
authorlbavoil <[email protected]>2018-03-15 11:08:34 +0100
committerlbavoil <[email protected]>2018-03-15 11:08:34 +0100
commit636807e68a85a978473764d171ed0c7cc36f9be6 (patch)
tree784a3d4fa8f48b4c085dd959678505b2af12f425 /doc/_sources
parentRemove test folder (diff)
downloadhbaoplus-636807e68a85a978473764d171ed0c7cc36f9be6.tar.xz
hbaoplus-636807e68a85a978473764d171ed0c7cc36f9be6.zip
HBAO+ 4.0.0.23740451
Diffstat (limited to 'doc/_sources')
-rw-r--r--doc/_sources/changelog.txt8
-rw-r--r--doc/_sources/product.txt31
-rw-r--r--doc/_sources/releasenotes.txt7
3 files changed, 40 insertions, 6 deletions
diff --git a/doc/_sources/changelog.txt b/doc/_sources/changelog.txt
index 98c0c31..54a3b4d 100644
--- a/doc/_sources/changelog.txt
+++ b/doc/_sources/changelog.txt
@@ -4,6 +4,14 @@ Change Log
|PRODUCTNAMEDOCRELEASEBOLD|
+**New in release 4.0**
+
+* Add a StepCount parameter. The default value behaves the same as in previous HBAO+ versions.
+* Added support for a second input depth texture (to reduce halo artifacts behind foreground objects).
+* Fixed possible crash bug (released PSOs still in use on the GPU) when changing AO parameters at runtime on DX12.
+* Removed the two-pass-blend option from the DX11 interface.
+* Removed support for OpenGL.
+
**New in release 3.1**
* The D3D11 non-UWP DLL now calls NVAPI (when available) to disable any SLI transfers for all render targets.
diff --git a/doc/_sources/product.txt b/doc/_sources/product.txt
index 5717233..d5a7a2d 100644
--- a/doc/_sources/product.txt
+++ b/doc/_sources/product.txt
@@ -16,6 +16,7 @@ The algorithm is based on HBAO [Bavoil and Sainz 2008], with the following diffe
#. To minimize flickering, the HBAO+ is always rendered in full resolution, from full-resolution depths.
+#. To reduce halo artifacts behind foreground objects, HBAO+ can take as input a second depth layer, using the multi-layer SSAO approach from [Bavoil and Sainz 2009] and [McGuire et al. 2013].
.. image:: \_static\hbao-plus-in-tom-clancys-splinter-cell-blacklist-2.jpg
@@ -24,7 +25,7 @@ Package
``doc/``\—this documentation page.
-``lib/``\—header file, import libraries and DLLs, for Win32, Win64, Mac OS X and Linux.
+``lib/``\—header file, import libraries and DLLs, for Win32 and Win64.
``samples/``\—source for sample applications demonstrating NVIDIA HBAO+.
@@ -47,6 +48,7 @@ Getting Started
GFSDK_SSAO_InputData_D3D11 Input;
Input.DepthData.DepthTextureType = GFSDK_SSAO_HARDWARE_DEPTHS;
Input.DepthData.pFullResDepthTextureSRV = pDepthStencilTextureSRV;
+ Input.DepthData.pFullResDepthTexture2ndLayerSRV = pDepthStencilTexture2ndLayerSRV; // Required only if Params.DualLayerAO=true
Input.DepthData.ProjectionMatrix.Data = GFSDK_SSAO_Float4x4(pProjectionMatrix);
Input.DepthData.ProjectionMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER;
Input.DepthData.MetersToViewSpaceUnits = SceneScale;
@@ -60,6 +62,7 @@ Getting Started
Params.Blur.Enable = true;
Params.Blur.Radius = GFSDK_SSAO_BLUR_RADIUS_4;
Params.Blur.Sharpness = 16.f;
+ Params.DualLayerAO = true;
#. SET RENDER TARGET::
@@ -96,6 +99,12 @@ Input Requirements
* The library re-allocates its internal render targets if the Viewport.Width or Viewport.Height changes for a given AO context.
+* Optionally, can also take as input a second depth texture (second depth layer), to add information about the scene geometry that is hidden behind the first depth layer.
+
+ * This enables removing halo artifacts behind foreground characters, and that with a single call to RenderAO.
+
+ * The second depth layer can simply be a copy of the scene depth buffer before the dynamic geometry is rendered into it.
+
MSAA Support
++++++++++++++++++++
@@ -248,6 +257,23 @@ The greater the sharpness parameter, the more the blur preserves edges
.. image:: \_static\Blur_Sharpness_8.png
+Dual Layer
+++++++++++++++++++++
+
+The dual layer feature increases the overall quality of the AO, by removing halo artifacts behind foreground objects. To use this feature, the application needs to provide a second depth texture via Input.DepthData.pFullResDepthTexture2ndLayerSRV, and set Params.DualLayerAO = true.
+
+Here are screenshots from our DX11 sample app, which is drawing
+
+* the shader-ball object into a first depth buffer
+
+* the shader-ball and background box into a second depth buffer
+
+and feeding these 2 depth layers as input to RenderAO.
+
+.. image:: \_static\DualLayer_Disabled.png
+
+.. image:: \_static\DualLayer_Enabled.png
+
Integration Time Estimates
##########################
@@ -270,12 +296,15 @@ Additional Links
`[Bavoil et al. 2008] "Image-Space Horizon-Based Ambient Occlusion" <http://www.nvidia.com/object/siggraph-2008-HBAO.html>`_
+`[Bavoil and Sainz 2009] "Multi-Layer Dual-Resolution Screen-Space Ambient Occlusion" <https://dl.acm.org/citation.cfm?id=1598035>`_
+
`[McGuire et al. 2012] "Scalable Ambient Obscurance" <http://graphics.cs.williams.edu/papers/SAOHPG12/>`_
`[Bukowski et al. 2012] "Scalable High-Quality Motion Blur and Ambient Occlusion" <http://graphics.cs.williams.edu/papers/VVSIGGRAPH12/>`_
`[Bavoil and Jansen 2013] "Particle Shadows & Cache-Efficient Post-Processing" <https://developer.nvidia.com/gdc-2013>`_
+`[McGuire et al. 2013] "Lighting Deep G-Buffers: Single-Pass, Layered Depth Images with Minimum Separation Applied to Indirect Illumination" <http://research.nvidia.com/publication/lighting-deep-g-buffers-single-pass-layered-depth-images-minimum-separation-applied>`_
.. Un-comment out if section is used
.. Additional Links
diff --git a/doc/_sources/releasenotes.txt b/doc/_sources/releasenotes.txt
index 8952ef6..9c28ef3 100644
--- a/doc/_sources/releasenotes.txt
+++ b/doc/_sources/releasenotes.txt
@@ -15,11 +15,8 @@ What's New
|VERSIONBOLD|
-* Added entry points for D3D12.
-* Now shipping separate DLLs and LIB files for D3D11 and GL.
-* Added the BackgroundAO parameter, which can be used to add larger-scale occlusion in the distance.
-* Removed the BLUR_RADIUS_8 mode (BLUR_RADIUS_4 looks better in general, and runs faster).
-* Added per-component debug-normal visualization modes in GFSDK_SSAO_RenderMask.
+* Added support for a second input depth texture (to reduce halo artifacts behind foreground objects)
+* Removed support for OpenGL.
.. -----------------------