Readme.txt 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. Horizon Based Ambient Occlusion (HBAO) is a post processing image effect to use
  2. in order to add realism to your scenes. It helps accentuating small surface
  3. details and reproduce light attenuation due to occlusion.
  4. HBAO delivers more accurate AO compared to the other SSAO solutions
  5. available on the asset store, and this without any compromise on performances.
  6. This algorithm is highly optimized to use minimal GPU time and offers the best
  7. quality to performance ratio.
  8. -----------------------------------------------------------------------------
  9. Usage
  10. -----------------------------------------------------------------------------
  11. In order to use this image effect, just add HBAO compoment to your main camera.
  12. For this you can drag the HBAO.cs script on your camera or select it from the
  13. Add Component menu (Image Effects/HBAO).
  14. In most scenarios, using medium quality with a medium blur will yield very good
  15. results.
  16. Depending if you are targetting high performances vs beautiful AO you can use
  17. the following settings:
  18. - high performances: low quality with wide blur
  19. - normal : medium quality with medium blur
  20. - fine ao: high quality with narrow blur
  21. For even more performances you can use half resolution AO, but it generally
  22. introduces some objectionable flickering when the camera is in movement.
  23. Using color bleeding is heavier on performances as it requires additional color
  24. sampling. The normal color bleeding saturation to use is 1.
  25. Important notice:
  26. The placement of the HBAO component in your post FX stack is really important!
  27. It should theoretically be the first effect in the chain meaning it should be
  28. placed on top.
  29. Shader Model 3.0 compatible hardware is required.
  30. -----------------------------------------------------------------------------
  31. Forum thread & support
  32. -----------------------------------------------------------------------------
  33. Link to the forum thread:
  34. http://forum.unity3d.com/threads/horizon-based-ambient-occlusion-hbao-image-effect.387374/
  35. For any support request, please drop me an email at jimmikaelkael@gmail.com
  36. -----------------------------------------------------------------------------
  37. Changelog
  38. -----------------------------------------------------------------------------
  39. 3.4.10
  40. - Fixed bug with orthographic projection
  41. - Reduced number of shader variants
  42. - URP: fixed wrong camera view normals on URP versions 10 and 11
  43. 3.4.9
  44. - HDRP: fixed AO shifting issue
  45. 3.4.8
  46. - HDRP: fixed VR SPI
  47. - URP: prevent color bleeding to be used along with LitAO mode
  48. - URP: warn about 2021.2+ required for motion vectors (temporal filter)
  49. 3.4.7
  50. - Fixed temporal filter issues on URP (use BufferedRTHandleSystem)
  51. - Fixed obsolete hasAdvancedMode field on HDRP
  52. - Added min/max range for multibounce setting on HDRP
  53. 3.4.6
  54. - Fixed temporal filtering ghosting issue on URP
  55. 3.4.5
  56. - Added rendering path option in URP to fix issues with LitAO+Deferred
  57. - Fixed scene rendered black in URP12 with LitAO and opaque texture enabled
  58. 3.4.4
  59. - Fixed temporal filtering issue when using camera normals on URP
  60. 3.4.3
  61. - Fixed wrong camera view normals on URP
  62. 3.4.2
  63. - Enable temporal filtering on URP (URP12+, Unity 2021.2+)
  64. 3.4.1
  65. - Fixed Deinterleaving per frame GC allocation on URP
  66. 3.4
  67. - Added LitAO on URP (requires URP 10.0.0 or newer)
  68. 3.3.4
  69. - Fixed VR Single Pass on URP
  70. 3.3.3
  71. - Fixed VR on Standard Render Pipeline
  72. 3.3.2
  73. - Added support for URP 12.0.0
  74. 3.3.1
  75. - Added support for upcoming URP 10.0.0 (support view normals)
  76. 3.3
  77. - Added VR support to Standard Render Pipeline HBAO
  78. 3.2.1
  79. - Added assembly definitions for editor scripts
  80. 3.2
  81. - Fixed colorbleeding white color bleed beyond max distance
  82. - Switched HBAO for URP to Post Process VolumeComponent
  83. 3.1
  84. - Added HDRP support
  85. - Added more settings helper methods
  86. - Added namespaces for each render pipelines variants
  87. - Use 16bit floating point texture format for noise when platform supports it
  88. - Fixed wrong albedoMultipier setter method
  89. 3.0
  90. - Rewritten scripts/shaders code for Unity 2019.1+
  91. - Added scene view effect
  92. - Added temporal filtering
  93. - Added interleaved gradient and spatial distribution noises
  94. - Added possibility to stack AO components (both Standard and Universal Render Pipeline)
  95. - Added UI for Universal Render Pipeline AO setting assets
  96. - Fixed wrong RenderTextureFormat for color bleeding
  97. - Fixed memory leaks
  98. - Improved number of compiled shader variants
  99. 2.9
  100. - Fixed URP version shader keywords problem resulting in blackscreen in builds
  101. - Fixed URP support on OpenGLES2 graphic API
  102. - Fixed PS4 compilation error
  103. - Fixed orthographic camera support on OpenGL, OpenGLES2 and OpenGLES3 graphic APIs
  104. - Fixed AO consistency on various resolutions (render scale, dynamic resolution)
  105. - Fixed incorrect view normals sampling at half resolution
  106. - Allowed use of local shader keywords instead of global keywords
  107. - Removed obsolete random noise, downsampled blur and quarter AO resolution
  108. 2.8
  109. - Added URP support
  110. 2.7.2
  111. - Fixed deprecated editor API
  112. 2.7.1
  113. - Fixed obsolete scripting API
  114. - Added view normals debug display
  115. 2.7
  116. - Added multibounce approximation feature to replace older luminance influence setting
  117. - Improved AO intensity response
  118. - Improved blur
  119. - Fixed RGB colormask on composite passes
  120. 2.6
  121. - Fixed emission not cancelling AO in deferred occlusion
  122. - Added color bleeding emissive masking
  123. - Fixed VR Single Pass support in Unity 2017.2
  124. 2.5
  125. - Added offscreen samples contribution setting
  126. - Improved color bleeding performance
  127. 2.4
  128. - Added support for Single Pass Stereo Rendering
  129. 2.3
  130. - Fixed Camera.hdr obsolete warning in Unity 5.6
  131. - Fixed inconsistent line endings warning in HBAO.shader
  132. 2.2
  133. - HBAO_Integrated: adjusted to avoid any per frame GC allocation
  134. - Increased Max Radius Pixels limits to be compliant with 4K resolution
  135. - Prefixed radius Slider control variable type with namespace to avoid potential ambiguity
  136. 2.1
  137. - Fixed orthographic camera support with Deinterleaving in Unity 5.5+
  138. 2.0
  139. - Added a rendering pipeline integrated HBAO component (HBAO_Integrated.cs)
  140. - Fixed orthographic camera support in Unity 5.5+
  141. 1.8
  142. - Fixed bad rendering path detection in builds
  143. - Explicitely declared _NoiseTex as shader property
  144. 1.7
  145. - Added downsampled blur setting
  146. - Added quarter resolution setting
  147. - Improved samples distribution (Mersenne Twister)
  148. - Fixed black line artifacts in half resolution AO using reconstructed normals
  149. - Fixed SV_Target semantics to the proper case
  150. - Fixed ambiguous lerp in HBAO fragment
  151. 1.6
  152. - Added Reconstruct as a per pixel normals option
  153. - Simplified a few lerps in HBAO shader
  154. - Removed sliders for max distance and falloff distance so as to remove bounds
  155. 1.5
  156. - Added deinterleaving which gives performances gain for large radiuses and HD/UltraHD resolutions
  157. - Fixed luminance influence not handled correctly in debug views
  158. 1.4.3
  159. - Improved overall performances
  160. - Added support for orthographic camera projection
  161. 1.4.2
  162. - Added per pixel normals setting (GBuffer or Camera)
  163. - Added Max Distance and Distance Falloff settings
  164. - Fixed AO step size, allowing to get more interesting contact occlusion
  165. - Moved initialization to OnEnable instead of Start
  166. - Avoid to modify GUI.Label style directly as to not mess up the stats window
  167. - Renamed "Show Type" setting to "Display Mode"
  168. 1.4.1
  169. - Fix editor error when applying a preset in play mode
  170. 1.4
  171. - Added new user friendly UI & some presets
  172. - Fixed luminance influence not showing in AO only views
  173. - Fixed vanishing AO bug in while in editor
  174. 1.3.4
  175. - Integrate with Gaia as an extension
  176. 1.3.3
  177. - Added AO base color setting
  178. - Fix leaked noise texture
  179. - Fix demo scene
  180. 1.3.2:
  181. - Fix bad rendering path detection in unity editor with camera on "Use Player Settings"
  182. - Limit the maximum radius in pixels to address the close-up objects performance issue
  183. - Added an albedo contribution and multiplier for the color bleeding feature in deferred shading
  184. - Increased intensity upper bound (useful for dark environment)
  185. 1.3.1:
  186. - Improved color bleeding performances
  187. - Fix NPE when adding the HBAO component to a camera for the 1st time
  188. 1.3:
  189. - Improved performances
  190. - Improved compatibility (now compiles on every platforms, targetting shader model 3.0)
  191. - Improved settings (there are less settings, but they are more user-friendly)
  192. 1.2:
  193. - Added Color Beeding feature
  194. - Fixed artifacts on cutout materials in forward rendering
  195. 1.1:
  196. - Improved blur
  197. - Added another noise type