Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Nubis: Authoring Real-Time Volumetric Cloudscapes with the Decima Engine

5,819 views

Published on

Download the full presentation here: http://www.guerrilla-games.com/read/nubis-authoring-real-time-volumetric-cloudscapes-with-the-decima-engine

Abstract: In the 2015 Advances in Real-Time Rendering Course, we presented a prototype solution for real-time volumetric cloudscapes which produced a variety of cloud types in various lighting conditions and rendered in under 2 milliseconds on the PlayStation 4. However, many practical challenges remained in the way of it becoming a successful production tool for use in our game Horizon: Zero Dawn: authoring cloudscapes on a regional scale, animation and transitions, integration into our atmospheric system, further optimization to pay for these new features, and the task of creating a language and long term plan for what we want to achieve in the context of our game engine, Decima. Nubis is our solution to these challenges. This talk will explain how and why the Nubis system works and highlight some advances beyond the prototype that we presented in 2015, including changes to the lighting model. In addition, we will go a bit more in-depth for several topics that have garnered interest in the development community, namely Perlin-Worley noise generation and our weather simulation. Finally, we will offer a quick look ahead to where we are going next with Nubis.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Nubis: Authoring Real-Time Volumetric Cloudscapes with the Decima Engine

  1. 1. Cloud Study by Luke Howard, 1802
  2. 2. Portrait / Art from the archive of the National Meteorological Library And Archive [UK] Advances in Real-Time Rendering, Siggraph 2017 Out Of Darkness Luke Howard, Meteorologist, 1802 [Hamblyn, 2001]
  3. 3. Cumulus Stratus Cirrus Advances in Real-Time Rendering, Siggraph 2017 The Clouds Renderings by Luke Howard [Hamblyn, 2001]
  4. 4. The Clouds Renderings by Luke Howard 8 km / 5 mi 4 km / 2.5 mi 1.5 km / .93 mi Alto Cirro Advances in Real-Time Rendering, Siggraph 2017[Hamblyn, 2001]
  5. 5. Painting by Claude Joseph Vernet, 1772 Advances in Real-Time Rendering, Siggraph 2017 Cloud Rendering
  6. 6. “Computer graphics can present us with imaginary worlds… …But used with some reflection, it can also help us to lift the veil on natures secrets” – P.H. Richter, 1970 Advances in Real-Time Rendering, Siggraph 2017 Computer Graphics
  7. 7. Advances in Real-Time Rendering, Siggraph 2017 Cloud Rendering Early Real-Time Volumetric Clouds • TrueSky [Simul, 2013] • Reset Engine [Reset, 2012]
  8. 8. Advances in Real-Time Rendering, Siggraph 2017 Cloud Rendering in-game render, 2015
  9. 9. SIGGRAPH 2017: Advances in Real-Time Rendering | Andrew Schneider & Nathan Vos | Guerrilla Games NUBIS Authoring Real-Time Volumetric Cloudscapes with the Decima Engine
  10. 10. Authoring System Cloud Density Model Cloud Lighting Model Ray March Post Process Advances in Real-Time Rendering, Siggraph 2017 NUBIS | System Components
  11. 11. Authoring System Cloud Density Model Cloud Lighting Model Ray March Post Process Advances in Real-Time Rendering, Siggraph 2017 NUBIS | System Components
  12. 12. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  13. 13. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  14. 14. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  15. 15. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  16. 16. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  17. 17. Video Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  18. 18. Video Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  19. 19. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  20. 20. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  21. 21. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  22. 22. Photograph Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Background
  23. 23. • Cloud type determined by vapor / heat • Density changes / height • Minus, Alto, Cirro • Roiling, Tearing, Curling, Spreading • Skewing by wind Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  24. 24. Cloud Coverage Cloud Type Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  25. 25. remap(value, original_min, original_max, new_min, new_max) { return new_min + (((value - original_min) / (original_max - original_min)) * (new_max - new_min)) } stratus = remap(height, 0.0, 0.1, 0.0, 1.0) * remap(height, 0.2, 0.3, 1.0, 0.0) Advances in Real-Time Rendering, Siggraph 2017 height NUBIS | Density Model
  26. 26. type 0 1 CumulusStratocumulusStratus remap(y, 0, .1, 0, 1) * remap(y, .2, .3, 1, 0) Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  27. 27. StratusStratocumulusCumulus Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | Density Model
  28. 28. Perlin-Worley1-WorleyPerlin Advances in Real-Time Rendering, Siggraph 2017[Schneider, 2015] NUBIS | Density Model
  29. 29. Perlin-Worley GameDev.net Forum: https://www.gamedev.net/forums/topic/680832-horizonzero-dawn-cloud-system Sebastien Hillaire from Frostbite published a generator: https://github.com/sebh/TileableVolumeNoise perlin-worley = remap(perlin, 1.0 - worley, 1.0, 0.0, 1.0) Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  30. 30. • Houdini Digital Asset • Comes with instructions, batteries not included. • Returns a tiling 2D Texture Array http://bit.ly/nubisnoisegen Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  31. 31. base_cloud = remap(low_freq_noise, high_freq_noise, 1.0, 0.0, 1.0) [code implementation example in the slides] Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  32. 32. Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | Density Model
  33. 33. coverage 0 1 cloud_with_coverage = remap(noise, cloud_coverage, 1.0, 0.0, 1.0) Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Density Model
  34. 34. Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | Density Model
  35. 35. Advances in Real-Time Rendering, Siggraph 2017in-game render p += wind_direction * time_offset; p += height_fraction * wind_direction * 500.0; NUBIS | Density Model
  36. 36. Advances in Real-Time Rendering, Siggraph 2017in-game render coverage = pow(coverage, remap(height, 0.7, 0.8, 1.0, lerp(1.0, 0.5, anvil_bias))); NUBIS | Density Model
  37. 37. Authoring System Cloud Density Model Cloud Lighting Model Ray March Post Process Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  38. 38. Advances in Real-Time Rendering, Siggraph 2017Photograph [Clausse & Facy, 1961] NUBIS | Authoring System
  39. 39. N S W E Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  40. 40. Advances in Real-Time Rendering, Siggraph 2017in-game render Perlin-WorleyPerlin NUBIS | Authoring System
  41. 41. N S W E Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  42. 42. Cloud Map “Cloudy” Weather State “Cloudy, Windy” -Skew -Anvil Shapes -Movement Speed -Movement Direction -Cloud Density Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  43. 43. Painting by John Constable “The Sky is the keynote and chief organ of sentiment.” – John Constable Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  44. 44. Advances in Real-Time Rendering, Siggraph 2017 Painting by Albert Bierstadt NUBIS | Authoring System
  45. 45. Advances in Real-Time Rendering, Siggraph 2017 Photograph by Ansel Adams NUBIS | Authoring System
  46. 46. • Set mood and tone for: • Encounters • Exploration • Cutscenes • Extend the landscape • Art-Directable, Realistic structures • Evolution of details, not cloud formations • Changes in behavior based on Weather. Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  47. 47. Advances in Real-Time Rendering, Siggraph 2017in-game render Cloud Map NUBIS | Authoring System
  48. 48. Advances in Real-Time Rendering, Siggraph 2017in-game render Cloud Map NUBIS | Authoring System
  49. 49. Cloud Map NUBIS | Authoring System Advances in Real-Time Rendering, Siggraph 2017in-game render
  50. 50. Weather Simulation (Shader) Controls (Decima Editor) RGB Texture (Generated by the Weather Simulation) Adjustments Cloud Map (RGB Buffer) Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  51. 51. Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System in-game render
  52. 52. Weather State “Cloudy” Weather State “Clear” Weather State “Storm” Weather Cycle Zone A Weather Scheduler Weather Cycle “Big Boss Fight” Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  53. 53. Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | Authoring System
  54. 54. Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Authoring System
  55. 55. Authoring System Cloud Density Model Cloud Lighting Model Ray March Post Process Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Cloud Lighting Model
  56. 56. “Clouds are bodies without surface.” – Leonardo da Vinci Advances in Real-Time Rendering, Siggraph 2017 Photograph NUBIS | Cloud Lighting Model
  57. 57. Energy = exp( -density_along_light_ray ) Advances in Real-Time Rendering, Siggraph 2017 * HG( cos(θ), eccentricity) Beer-Lambert Law Absorption / Out-scattering Henyey-Greenstein Phase Function Scattering NUBIS | Cloud Lighting Model
  58. 58. Absorption / Out-scatter Probability In-Scatter ProbabilityDirectional Scattering Probability Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Cloud Lighting Model
  59. 59. cos_angle = dot(normalize(light_vector), normalize(view_vector)); HenyeyGreenstein(cos_angle, eccentricity) { return ((1.0 - eccentricity * eccentricity) / pow((1.0 + eccentricity * eccentricity - 2.0 * eccentricity * cos_angle), 3.0 / 2.0)) / 4.0 * PI; } Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Cloud Lighting Model
  60. 60. Advances in Real-Time Rendering, Siggraph 2017 90o Energy = HG( cos(θ), eccentricity) eccentricity = 0.6eccentricity = 1.0eccentricity = 0.6 Energy = max( HG( cos(θ), eccentricity), silver_intensity * HG( cos(θ), 0.99 – silver_spread)) ++ -- in-game render NUBIS | Cloud Lighting Model
  61. 61. Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Cloud Lighting Model
  62. 62. Energy = exp( - density_along_light_ray)Energy = max( exp( - density_along_light_ray ), (exp(-density_along_light_ray * 0.25) * 0.7) ) Advances in Real-Time Rendering, Siggraph 2017 in-game render [Wrenninge, 2013] NUBIS | Cloud Lighting Model
  63. 63. Photograph Advances in Real-Time Rendering, Siggraph 2017 * NUBIS | Cloud Lighting Model
  64. 64. Advances in Real-Time Rendering, Siggraph 2017 in-game render depth_probability = 0.05 + pow( lodded_density, remap( height, 0.3, 0.85, 0.5, 2.0 ))2.0 ) vertical_probability = pow( remap( height, 0.07, 0.14, 0.1, 1.0 ), 0.8 ) [code implementation example in the slides] in-scatter_probability = depth_probability * vertical_probability NUBIS | Cloud Lighting Model
  65. 65. Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | Cloud Lighting Model
  66. 66. Authoring System Cloud Density Model Cloud Lighting Model Ray March Post Process Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Ray-March Optimizations
  67. 67. [code implementation example in the slides] Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Ray-March Optimizations
  68. 68. Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Ray-March Optimizations
  69. 69. Baseline + Reprojection 22 ms LOD & Step Size 8.1 ms Only Light Nonzero Density 3.34 ms Advances in Real-Time Rendering, Siggraph 2017in-game render [ PS4 ] NUBIS | Ray-March Optimizations
  70. 70. Ray-March Optimizations 3.34 ms Cull Below Horizon 1.81 ms Depth Culling 1.2 ms Advances in Real-Time Rendering, Siggraph 2017in-game render [ PS4 ] NUBIS | Ray-March Optimizations
  71. 71. Authoring System Cloud Density Model Cloud Lighting Model Ray March Post Process Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Post Processing
  72. 72. Advances in Real-Time Rendering, Siggraph 2017 Red = Direct Light Intensity Green = Atmospheric Blend Factor Blue = Ambient Light Intensity Alpha = Alpha in-game render NUBIS | Post Processing
  73. 73. Advances in Real-Time Rendering, Siggraph 2017 atmospheric_blend_factor = GetAtmosphere(depth, angle) in-game render NUBIS | Post Processing
  74. 74. Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | Post Processing
  75. 75. Advances in Real-Time Rendering, Siggraph 2017in-game render NUBIS | The Future
  76. 76. Rosa & our kids & and family.
  77. 77. • Thanks to: • Nathan Vos • Jan Bart van Beek • Marijn Giesbertz • Elco Vossers • Coen Klosters • Vlad Lopatin • Felix van den Bergh • Maarten van der Gaag • Hugh Malan • Giliam de Carpentier • Kevin Ortegren • Michal Valient • Michiel van der Leeuw • Hermen Hulst • Angie Smets • Kojima Productions • Personal Thanks: • Trevor Thomson • Matthew Wilson • Matthew Roach • Carl Ludwig • Hugo Ayala • Donald Sajda & Jerry Ford • Joe Pasquale, Malcom Kesson, Clarke Stallworth • Tim McLaughlin • Natalya Tatarchuk • SideFX Software • Colleagues around the Game and VFX industry • The community References: (in order of mention) [Hamblyn, 2001] Richard Hamblyn, The Invention Of Clouds. New York: Picador Reprints., 2011. [Peitgen & Richter, 1986] H.O. Peitgen & P.H. Richter, The Beauty of Fractals. Heidelberg: Springer-Verlag.,2011. [Ludwig, 1990] Carl Ludwig, “Cumulus." http://www.blueskystudios.com., 1990. [Simul, 2013] Simul, "TrueSKY." http://simul.co/truesky/. 2013. [Reset, 2012] Theory Interactive Ltd., “Reset” http://reset-game.net/?p=284. 2012. [Pretor-Pinney, 2007] Gavin Pretor-Pinney, The Cloudspotter’s Guide. London: Sceptre., 2007. [Schneider, 2015] A. Schneider. “The Real-Time Volumetric Cloudscapes Of Horizon: Zero Dawn”. ACM SIGGRAPH. Los Angeles, CA: ACM SIGGRAPH, 2015. Web. 26 Aug. 2015. [Hillaire, 2016] Sebastien Hillaire., “Tiling Volume Noise” https://github.com/sebh/TileableVolumeNoise. 2016. [Clausse and Facy, 1961] R. Clausse and L. Facy, The Clouds. London: Evergreen Books LTD., 1961. [Fiorani & Nova, 2013] Rfrancesca Fiorani & Alessandro Nova, Leonardo da Vinci and Optics. Venice: Marsilio Editori., 2013. [Wrenninge, 2013] M. Wrenninge, Production Volume Rendering: Design and Implementation. CRC Press, 2013. [Schneider 2016] Andrew Schneider, GPU Pro 7: Real Time Volumetric Cloudscapes. p.p. (97-128) CRC Press, 2016. [Hillaire, 2016] Sebastien Hillaire., “Physically based Sky, Atmosphere and Cloud Rendering” https://www.ea.com/frostbite/news/physically-based-sky-atmosphere-and-cloud-rendering. 2016. [Mitchell, 2007] Kenny Mitchell., “Volumetric Light Scattering as a Post Process”, https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch13.html. 2007. Advances in Real-Time Rendering, Siggraph 2017 NUBIS | Thanks & References

×